@acorex/modules 21.0.0-next.43 → 21.0.0-next.45
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 +31 -225
- package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-c8OrTwDw.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-BD5oxehv.mjs} +59 -75
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-BD5oxehv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-DEsJE7x3.mjs → acorex-modules-assessment-management-assessment-case.entity-BWj2PB39.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-DEsJE7x3.mjs.map → acorex-modules-assessment-management-assessment-case.entity-BWj2PB39.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-eNFfu-Jq.mjs → acorex-modules-assessment-management-assessment-session.entity-BQnYnNOz.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-eNFfu-Jq.mjs.map → acorex-modules-assessment-management-assessment-session.entity-BQnYnNOz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-BeSUBkI9.mjs → acorex-modules-assessment-management-fill-assessment-session.command-BiS7QO_E.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-BeSUBkI9.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-BiS7QO_E.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-index-3GB9Xkyv.mjs → acorex-modules-assessment-management-index-BXw0Lf5c.mjs} +4 -4
- package/fesm2022/{acorex-modules-assessment-management-index-3GB9Xkyv.mjs.map → acorex-modules-assessment-management-index-BXw0Lf5c.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-QinKZtTz.mjs → acorex-modules-assessment-management-preview-question.command-Bm1v6ngB.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-QinKZtTz.mjs.map → acorex-modules-assessment-management-preview-question.command-Bm1v6ngB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-CKZYSyOv.mjs → acorex-modules-assessment-management-preview-questionnaire.command-Dja4PbGz.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-CKZYSyOv.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-Dja4PbGz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-qZXANgNr.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BbkWs23A.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-qZXANgNr.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BbkWs23A.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-Dp4eYR3O.mjs → acorex-modules-assessment-management-question-bank-item.entity-X8s42nZH.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-Dp4eYR3O.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-X8s42nZH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-BMB9IEIv.mjs → acorex-modules-assessment-management-questionnaire-calculation.entity-d8HUAvWp.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-BMB9IEIv.mjs.map → acorex-modules-assessment-management-questionnaire-calculation.entity-d8HUAvWp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DgC1xuH9.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-YUDOSypz.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DgC1xuH9.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-YUDOSypz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-ChUNq9Bc.mjs → acorex-modules-assessment-management-questionnaire.entity-q3Z4VIiA.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-ChUNq9Bc.mjs.map → acorex-modules-assessment-management-questionnaire.entity-q3Z4VIiA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-sji05ut4.mjs → acorex-modules-assessment-management-save-questionnaire-questions.command-4OLYEn35.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-sji05ut4.mjs.map → acorex-modules-assessment-management-save-questionnaire-questions.command-4OLYEn35.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BIpotfIE.mjs → acorex-modules-assessment-management-view-session-answers.command-DWEd-ZM_.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BIpotfIE.mjs.map → acorex-modules-assessment-management-view-session-answers.command-DWEd-ZM_.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-fQ0rp8vu.mjs → acorex-modules-asset-management-acorex-modules-asset-management-B1mg2dIR.mjs} +8 -19
- package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-B1mg2dIR.mjs.map +1 -0
- package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-DuFgujR6.mjs → acorex-modules-asset-management-asset-system-assignment.entity-lL1FBlzA.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-DuFgujR6.mjs.map → acorex-modules-asset-management-asset-system-assignment.entity-lL1FBlzA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-sszGMFny.mjs → acorex-modules-asset-management-asset-system-type.entity-DFHVqE7a.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-sszGMFny.mjs.map → acorex-modules-asset-management-asset-system-type.entity-DFHVqE7a.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-system.entity-tWUPNYQq.mjs → acorex-modules-asset-management-asset-system.entity-DlpOp7Xj.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system.entity-tWUPNYQq.mjs.map → acorex-modules-asset-management-asset-system.entity-DlpOp7Xj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-l3xXMo2l.mjs → acorex-modules-asset-management-asset-type-section-component.entity-CIkXc51V.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-l3xXMo2l.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-CIkXc51V.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-CldvQBUW.mjs → acorex-modules-asset-management-asset-type-section.entity-Ctxh5hGa.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-CldvQBUW.mjs.map → acorex-modules-asset-management-asset-type-section.entity-Ctxh5hGa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-type.entity-CP0dryvp.mjs → acorex-modules-asset-management-asset-type.entity-CN6K0Uw3.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type.entity-CP0dryvp.mjs.map → acorex-modules-asset-management-asset-type.entity-CN6K0Uw3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset.entity-Du_fWe9V.mjs → acorex-modules-asset-management-asset.entity-2XZut6JS.mjs} +6 -5
- package/fesm2022/acorex-modules-asset-management-asset.entity-2XZut6JS.mjs.map +1 -0
- package/fesm2022/acorex-modules-asset-management.mjs +1 -1
- package/fesm2022/acorex-modules-common.mjs +399 -399
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bwk3-2wy.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-B37ZqEql.mjs} +301 -25
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-B37ZqEql.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-B5aSubCY.mjs → acorex-modules-human-capital-management-approve-leave-request.command-Bf8iPUE-.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-B5aSubCY.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-Bf8iPUE-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-l8dGe3kg.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-DqX9OAq4.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-l8dGe3kg.mjs.map → acorex-modules-human-capital-management-assign-position-assignment.command-DqX9OAq4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-CeV-5Y5n.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-DQG0Al0X.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-CeV-5Y5n.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-DQG0Al0X.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management-employee-lifecycle-process.entity-DSsgKG8S.mjs +225 -0
- package/fesm2022/acorex-modules-human-capital-management-employee-lifecycle-process.entity-DSsgKG8S.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-employee.entity-DNgt9yQm.mjs → acorex-modules-human-capital-management-employee.entity-C8PaZEDs.mjs} +38 -2
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-C8PaZEDs.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-rq8-Bauc.mjs → acorex-modules-human-capital-management-employment-type.entity-DhqHdESk.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-rq8-Bauc.mjs.map → acorex-modules-human-capital-management-employment-type.entity-DhqHdESk.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-DlQJw4F6.mjs → acorex-modules-human-capital-management-leave-request.entity-CPdV6kiR.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-DlQJw4F6.mjs.map → acorex-modules-human-capital-management-leave-request.entity-CPdV6kiR.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-D5J2oOuY.mjs → acorex-modules-human-capital-management-leave-type.entity-D3iarVMG.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-D5J2oOuY.mjs.map → acorex-modules-human-capital-management-leave-type.entity-D3iarVMG.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-process-type.entity-EazvPSR6.mjs +175 -0
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-process-type.entity-EazvPSR6.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-D7mKhxYp.mjs → acorex-modules-human-capital-management-position-assignment.entity-mROyAoz-.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-D7mKhxYp.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-mROyAoz-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-C4AWFOmG.mjs → acorex-modules-human-capital-management-reject-leave-request.command-Bq7OtST6.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-C4AWFOmG.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-Bq7OtST6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-BSJhBW3p.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-BpklMLve.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-BSJhBW3p.mjs.map → acorex-modules-human-capital-management-revoke-position-assignment.command-BpklMLve.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-acorex-modules-maintenance-management-C0LLBxMR.mjs → acorex-modules-maintenance-management-acorex-modules-maintenance-management-coPYjl8-.mjs} +321 -151
- package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-coPYjl8-.mjs.map +1 -0
- package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-D8yOqKWQ.mjs → acorex-modules-maintenance-management-failure-effect.entity-BdnnavfB.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-D8yOqKWQ.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-BdnnavfB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-CHXkbEHG.mjs → acorex-modules-maintenance-management-failure-mode-asset-type.entity-tlcqWco6.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-CHXkbEHG.mjs.map → acorex-modules-maintenance-management-failure-mode-asset-type.entity-tlcqWco6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-yR11e9TU.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-DivWl32L.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-yR11e9TU.mjs.map → acorex-modules-maintenance-management-failure-mode-mechanism.entity-DivWl32L.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-BD4Uz6G-.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-9FiLeySZ.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-BD4Uz6G-.mjs.map → acorex-modules-maintenance-management-failure-mode-solution.entity-9FiLeySZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-CZFgl-t4.mjs → acorex-modules-maintenance-management-failure-register-cause.entity-3cq1KeYM.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-CZFgl-t4.mjs.map → acorex-modules-maintenance-management-failure-register-cause.entity-3cq1KeYM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DQE5nqiN.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-CaVb6rDn.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DQE5nqiN.mjs.map → acorex-modules-maintenance-management-failure-register-effect.entity-CaVb6rDn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-C6mhbWzU.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-C2UKW63M.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-C6mhbWzU.mjs.map → acorex-modules-maintenance-management-failure-register-mechanism.entity-C2UKW63M.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-DSnrVaWI.mjs → acorex-modules-maintenance-management-failure-register.entity-KghFLCIJ.mjs} +16 -3
- package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-KghFLCIJ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-DZoMhgW7.mjs → acorex-modules-maintenance-management-failure-severity.entity-BebswR7S.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-DZoMhgW7.mjs.map → acorex-modules-maintenance-management-failure-severity.entity-BebswR7S.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-maintenance-template.entity-qf2WNKB_.mjs → acorex-modules-maintenance-management-maintenance-template.entity-1V4swUZ4.mjs} +191 -35
- package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-1V4swUZ4.mjs.map +1 -0
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-3hlrAtIr.mjs +154 -0
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-3hlrAtIr.mjs.map +1 -0
- package/fesm2022/acorex-modules-maintenance-management.mjs +1 -1
- package/fesm2022/{acorex-modules-organization-management-acorex-modules-organization-management-Dqhk5reQ.mjs → acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs} +141 -578
- package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-pnxqURIQ.mjs → acorex-modules-organization-management-add-business-unit-to-business-unit.command-BEJyfR3P.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-pnxqURIQ.mjs.map → acorex-modules-organization-management-add-business-unit-to-business-unit.command-BEJyfR3P.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-DbHKd1Nd.mjs → acorex-modules-organization-management-add-position-to-business-unit.command-DKgxg9q5.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-DbHKd1Nd.mjs.map → acorex-modules-organization-management-add-position-to-business-unit.command-DKgxg9q5.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-add-team-to-business-unit.command-DJJT7BXT.mjs +130 -0
- package/fesm2022/acorex-modules-organization-management-add-team-to-business-unit.command-DJJT7BXT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-business-unit.entity-FsF290Im.mjs → acorex-modules-organization-management-business-unit.entity-BAp38sib.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-business-unit.entity-FsF290Im.mjs.map → acorex-modules-organization-management-business-unit.entity-BAp38sib.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-chart.entity-_OJkO2zX.mjs → acorex-modules-organization-management-chart.entity-WfmpWj8R.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-chart.entity-_OJkO2zX.mjs.map → acorex-modules-organization-management-chart.entity-WfmpWj8R.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-company.entity-Dw7_BvxV.mjs → acorex-modules-organization-management-company.entity-BUVLrwjq.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-company.entity-Dw7_BvxV.mjs.map → acorex-modules-organization-management-company.entity-BUVLrwjq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-entity.provider-BWw2RN_V.mjs → acorex-modules-organization-management-entity.provider-DH3eUGTu.mjs} +15 -15
- package/fesm2022/{acorex-modules-organization-management-entity.provider-BWw2RN_V.mjs.map → acorex-modules-organization-management-entity.provider-DH3eUGTu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-D3WYwpy0.mjs → acorex-modules-organization-management-feature-definition.provider-DuScrBze.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-D3WYwpy0.mjs.map → acorex-modules-organization-management-feature-definition.provider-DuScrBze.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-CnS_nu1v.mjs → acorex-modules-organization-management-job-definition-pages-component.provider-D-J9JCsU.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-CnS_nu1v.mjs.map → acorex-modules-organization-management-job-definition-pages-component.provider-D-J9JCsU.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-ZTopEh2M.mjs → acorex-modules-organization-management-job-definition-responsibilities-page.component-Dsy5rFGw.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-ZTopEh2M.mjs.map → acorex-modules-organization-management-job-definition-responsibilities-page.component-Dsy5rFGw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-Yyzwqg0v.mjs → acorex-modules-organization-management-job-definition-skills-page.component-B73wLPby.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-Yyzwqg0v.mjs.map → acorex-modules-organization-management-job-definition-skills-page.component-B73wLPby.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-DJjmv1hf.mjs → acorex-modules-organization-management-job-definition.entity-B7mWKYqb.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-DJjmv1hf.mjs.map → acorex-modules-organization-management-job-definition.entity-B7mWKYqb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-level.datasource-DJH3zaNN.mjs → acorex-modules-organization-management-job-level.datasource-DibRoKXR.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-level.datasource-DJH3zaNN.mjs.map → acorex-modules-organization-management-job-level.datasource-DibRoKXR.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-level.entity-DBEFEBzu.mjs → acorex-modules-organization-management-job-level.entity-C_MzeTw5.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-level.entity-DBEFEBzu.mjs.map → acorex-modules-organization-management-job-level.entity-C_MzeTw5.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-menu.provider-yGn338K1.mjs → acorex-modules-organization-management-menu.provider-CQeJINzl.mjs} +3 -2
- package/fesm2022/{acorex-modules-organization-management-menu.provider-yGn338K1.mjs.map → acorex-modules-organization-management-menu.provider-CQeJINzl.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-default-node-contribution.provider-D3hCHSr_.mjs +228 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-default-node-contribution.provider-D3hCHSr_.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-Bv0I-45L.mjs +182 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-Bv0I-45L.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-DbfYza8q.mjs +170 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-DbfYza8q.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-ux-node-contribution.provider-C9APxguL.mjs +334 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-ux-node-contribution.provider-C9APxguL.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-C1J123cl.mjs → acorex-modules-organization-management-org-chart.page-BcHO5kKP.mjs} +104 -19
- package/fesm2022/acorex-modules-organization-management-org-chart.page-BcHO5kKP.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-B1f668X4.mjs → acorex-modules-organization-management-permission-definition.provider-BcIRJpBt.mjs} +3 -2
- package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-B1f668X4.mjs.map → acorex-modules-organization-management-permission-definition.provider-BcIRJpBt.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs +56 -0
- package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position.entity-BvSjM5Hs.mjs → acorex-modules-organization-management-position.entity-DBOpLtSI.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-position.entity-BvSjM5Hs.mjs.map → acorex-modules-organization-management-position.entity-DBOpLtSI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-CPdbVSno.mjs → acorex-modules-organization-management-remove-position-from-business-unit.command-TqYgfnsy.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-CPdbVSno.mjs.map → acorex-modules-organization-management-remove-position-from-business-unit.command-TqYgfnsy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-CQRcVN6R.mjs → acorex-modules-organization-management-replace-position-assignee.command-BJ2gn0-A.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-CQRcVN6R.mjs.map → acorex-modules-organization-management-replace-position-assignee.command-BJ2gn0-A.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-Ce3T04Qb.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CZdMLIL-.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-Ce3T04Qb.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CZdMLIL-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CIr7JDX-.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-BBo97rDN.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CIr7JDX-.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-BBo97rDN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-BXWso7Ga.mjs → acorex-modules-organization-management-responsibilities-matrix.component-D9oH_Fbb.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-BXWso7Ga.mjs.map → acorex-modules-organization-management-responsibilities-matrix.component-D9oH_Fbb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-DB04XTJ8.mjs → acorex-modules-organization-management-responsibility-level.entity-D6IG9Zc7.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-DB04XTJ8.mjs.map → acorex-modules-organization-management-responsibility-level.entity-D6IG9Zc7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-BMqhYqJS.mjs → acorex-modules-organization-management-responsibility.entity-BosNxYjW.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-BMqhYqJS.mjs.map → acorex-modules-organization-management-responsibility.entity-BosNxYjW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-settings.provider-BhIJkbq_.mjs → acorex-modules-organization-management-settings.provider-CL9C9UXA.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-settings.provider-BhIJkbq_.mjs.map → acorex-modules-organization-management-settings.provider-CL9C9UXA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-DkTtZv7y.mjs → acorex-modules-organization-management-team-business-unit.entity-CYFGTcHe.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-DkTtZv7y.mjs.map → acorex-modules-organization-management-team-business-unit.entity-CYFGTcHe.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-DPqEPpkP.mjs → acorex-modules-organization-management-team-member-role.entity-B5vNDne0.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-DPqEPpkP.mjs.map → acorex-modules-organization-management-team-member-role.entity-B5vNDne0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-member.entity-IN-CPv5W.mjs → acorex-modules-organization-management-team-member.entity-DsKuxCRB.mjs} +14 -2
- package/fesm2022/acorex-modules-organization-management-team-member.entity-DsKuxCRB.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-team.entity-D7B8ulFX.mjs → acorex-modules-organization-management-team.entity-Cg30cho_.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team.entity-D7B8ulFX.mjs.map → acorex-modules-organization-management-team.entity-Cg30cho_.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +1 -1
- package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-B-NoGoOJ.mjs → acorex-modules-report-management-report-runner-root-page.component-Dum62tB8.mjs} +4 -6
- package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-B-NoGoOJ.mjs.map → acorex-modules-report-management-report-runner-root-page.component-Dum62tB8.mjs.map} +1 -1
- package/fesm2022/acorex-modules-report-management.mjs +36 -19
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-CWlgXg_u.mjs → acorex-modules-task-management-acorex-modules-task-management-DDUq9FpA.mjs} +178 -14
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-DDUq9FpA.mjs.map +1 -0
- package/fesm2022/{acorex-modules-task-management-task-board.page-Bxpga0DN.mjs → acorex-modules-task-management-task-board.page-C6j-_aSD.mjs} +106 -68
- package/fesm2022/acorex-modules-task-management-task-board.page-C6j-_aSD.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +249 -52
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/organization-management/README.md +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-ai-management.d.ts +25 -67
- package/types/acorex-modules-common.d.ts +14 -14
- package/types/acorex-modules-human-capital-management.d.ts +100 -2
- package/types/acorex-modules-maintenance-management.d.ts +6 -6
- package/types/acorex-modules-organization-management.d.ts +128 -69
- package/types/acorex-modules-report-management.d.ts +8 -0
- package/types/acorex-modules-task-management.d.ts +12 -1
- package/types/acorex-modules-workflow-management.d.ts +51 -4
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-c8OrTwDw.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-fQ0rp8vu.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-asset.entity-Du_fWe9V.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bwk3-2wy.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-DNgt9yQm.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-C0LLBxMR.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-DSnrVaWI.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-qf2WNKB_.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-DTKNtyBF.mjs +0 -54
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-DTKNtyBF.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-Dqhk5reQ.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-C1J123cl.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-team-member.entity-IN-CPv5W.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-CWlgXg_u.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-Bxpga0DN.mjs.map +0 -1
|
@@ -31,9 +31,6 @@ import * as i1 from '@angular/forms';
|
|
|
31
31
|
import { FormsModule } from '@angular/forms';
|
|
32
32
|
import { AXOverlayService } from '@acorex/cdk/overlay';
|
|
33
33
|
import { defineCommand, AXP_COMMAND_DEFINITION_CATEGORY_AI_TOOLS } from '@acorex/platform/runtime';
|
|
34
|
-
import { AXBasePageComponent } from '@acorex/components/page';
|
|
35
|
-
import * as i3$1 from '@acorex/components/form';
|
|
36
|
-
import { AXFormModule } from '@acorex/components/form';
|
|
37
34
|
|
|
38
35
|
//#region ---- Module Config ----
|
|
39
36
|
const config = {
|
|
@@ -1854,9 +1851,9 @@ function axmMimeTypeForChatAttachment(file) {
|
|
|
1854
1851
|
//#endregion
|
|
1855
1852
|
//#region ---- Component ----
|
|
1856
1853
|
/**
|
|
1857
|
-
* Floating prompt UI for AI assist: gradient chrome, inner composer, and image/audio/document attachments.
|
|
1854
|
+
* Floating prompt UI for AI assist: gradient chrome, inner composer, and image/audio/document attachments. Target assist/agent comes from optional initial ids on open.
|
|
1858
1855
|
*/
|
|
1859
|
-
class
|
|
1856
|
+
class AXMAiAssistPromptBoxComponent {
|
|
1860
1857
|
constructor() {
|
|
1861
1858
|
//#region ---- Services & Dependencies ----
|
|
1862
1859
|
this.toastService = inject(AXToastService);
|
|
@@ -1870,8 +1867,6 @@ class AXMAiAssistPromptBottomPanelComponent {
|
|
|
1870
1867
|
this.placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
1871
1868
|
this.initialPrompt = input('', ...(ngDevMode ? [{ debugName: "initialPrompt" }] : /* istanbul ignore next */ []));
|
|
1872
1869
|
this.contentMaxWidthPx = input(680, ...(ngDevMode ? [{ debugName: "contentMaxWidthPx" }] : /* istanbul ignore next */ []));
|
|
1873
|
-
this.assistPickerRows = input([], ...(ngDevMode ? [{ debugName: "assistPickerRows" }] : /* istanbul ignore next */ []));
|
|
1874
|
-
this.agentPickerRows = input([], ...(ngDevMode ? [{ debugName: "agentPickerRows" }] : /* istanbul ignore next */ []));
|
|
1875
1870
|
this.initialAssistId = input(undefined, ...(ngDevMode ? [{ debugName: "initialAssistId" }] : /* istanbul ignore next */ []));
|
|
1876
1871
|
this.initialDirectAgentId = input(undefined, ...(ngDevMode ? [{ debugName: "initialDirectAgentId" }] : /* istanbul ignore next */ []));
|
|
1877
1872
|
this.runPrompt = input.required(...(ngDevMode ? [{ debugName: "runPrompt" }] : /* istanbul ignore next */ []));
|
|
@@ -1934,6 +1929,16 @@ class AXMAiAssistPromptBottomPanelComponent {
|
|
|
1934
1929
|
onPromptDraftChange(value) {
|
|
1935
1930
|
this.promptDraft.set((value ?? '').toString());
|
|
1936
1931
|
}
|
|
1932
|
+
/**
|
|
1933
|
+
* Enter sends; Shift+Enter inserts a newline. IME composition Enter is left unchanged.
|
|
1934
|
+
*/
|
|
1935
|
+
onPromptKeydown(event) {
|
|
1936
|
+
if (event.key !== 'Enter' || event.shiftKey || event.isComposing) {
|
|
1937
|
+
return;
|
|
1938
|
+
}
|
|
1939
|
+
event.preventDefault();
|
|
1940
|
+
void this.onSend();
|
|
1941
|
+
}
|
|
1937
1942
|
onCancel() {
|
|
1938
1943
|
this.requestClose()(null);
|
|
1939
1944
|
}
|
|
@@ -1945,7 +1950,7 @@ class AXMAiAssistPromptBottomPanelComponent {
|
|
|
1945
1950
|
this.onCancel();
|
|
1946
1951
|
}
|
|
1947
1952
|
/**
|
|
1948
|
-
* Dismisses the
|
|
1953
|
+
* Dismisses the prompt box like Cancel (disabled while a run is in flight, same as footer Cancel).
|
|
1949
1954
|
*/
|
|
1950
1955
|
onDocumentEscape() {
|
|
1951
1956
|
if (!isPlatformBrowser(this.platformId) || this.busy()) {
|
|
@@ -2380,12 +2385,12 @@ class AXMAiAssistPromptBottomPanelComponent {
|
|
|
2380
2385
|
const content = await this.translation.translateAsync(translationKey);
|
|
2381
2386
|
await this.toastService.show({ color: 'warning', title: errTitle, content });
|
|
2382
2387
|
}
|
|
2383
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
2384
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMAiAssistPromptBottomPanelComponent, isStandalone: true, selector: "axm-ai-assist-prompt-bottom-panel", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, initialPrompt: { classPropertyName: "initialPrompt", publicName: "initialPrompt", isSignal: true, isRequired: false, transformFunction: null }, contentMaxWidthPx: { classPropertyName: "contentMaxWidthPx", publicName: "contentMaxWidthPx", isSignal: true, isRequired: false, transformFunction: null }, assistPickerRows: { classPropertyName: "assistPickerRows", publicName: "assistPickerRows", isSignal: true, isRequired: false, transformFunction: null }, agentPickerRows: { classPropertyName: "agentPickerRows", publicName: "agentPickerRows", isSignal: true, isRequired: false, transformFunction: null }, initialAssistId: { classPropertyName: "initialAssistId", publicName: "initialAssistId", isSignal: true, isRequired: false, transformFunction: null }, initialDirectAgentId: { classPropertyName: "initialDirectAgentId", publicName: "initialDirectAgentId", isSignal: true, isRequired: false, transformFunction: null }, runPrompt: { classPropertyName: "runPrompt", publicName: "runPrompt", isSignal: true, isRequired: true, transformFunction: null }, requestClose: { classPropertyName: "requestClose", publicName: "requestClose", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:keydown.escape": "onDocumentEscape()" } }, ngImport: i0, template: "<div class=\"axm-ai-assist-prompt-bottom-panel ax-flex ax-flex-col ax-gap-2.5 ax-min-h-0 ax-w-full\"\n [style.max-width.px]=\"contentMaxWidthPx()\">\n <div\n class=\"axm-ai-assist-prompt-bottom-panel__eyebrow ax-flex ax-items-center ax-justify-between ax-gap-3 ax-shrink-0 ax-px-0.5\">\n <div class=\"axm-ai-assist-prompt-bottom-panel__brand ax-inline-flex ax-min-w-0 ax-items-center ax-gap-2\">\n <span class=\"axm-ai-assist-prompt-bottom-panel__brand-mark\" aria-hidden=\"true\">\n <i class=\"fa-light fa-sparkles\" aria-hidden=\"true\"></i>\n </span>\n <span class=\"axm-ai-assist-prompt-bottom-panel__brand-title ax-truncate\">{{ title() }}</span>\n </div>\n <ax-button class=\"ax-shrink-0 ax-xs\" look=\"blank\" color=\"default\" type=\"button\" [iconOnly]=\"true\"\n [disabled]=\"busy()\" [attr.aria-label]=\"('@general:actions.close.title' | translate | async) ?? ''\"\n (onClick)=\"onCancel()\">\n <ax-prefix>\n <i class=\"fa-light fa-xmark\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n\n <div class=\"axm-ai-assist-prompt-bottom-panel__sheet ax-flex ax-min-h-0 ax-flex-col ax-gap-2\">\n @if (\n draftComposerImages().length > 0 ||\n draftComposerAudios().length > 0 ||\n draftComposerFiles().length > 0 ||\n isComposerSaving()\n ) {\n <div\n class=\"ax-shrink-0 ax-rounded-xl ax-border ax-border-default/45 dark:ax-border-darker ax-bg-lightest/90 ax-p-1.5 ax-flex ax-flex-col ax-gap-1.5\"\n [attr.aria-label]=\"('@ai-management:chat.composer-attachments-region' | translate | async) ?? ''\">\n <div class=\"ax-flex ax-flex-wrap ax-items-center ax-justify-between ax-gap-1.5 ax-text-[0.65rem] ax-text-muted\">\n <span>\n @if (isComposerSaving()) {\n {{ '@ai-management:chat.composer-uploading' | translate | async }}\n } @else {\n @if (draftComposerImages().length > 0) {\n <span>{{ draftComposerImages().length }}\n {{ '@ai-management:chat.composer-images-count' | translate | async }}</span>\n }\n @if (draftComposerImages().length > 0 && draftComposerAudios().length > 0) {\n <span class=\"ax-mx-1\">\u00B7</span>\n }\n @if (draftComposerAudios().length > 0) {\n <span>{{ draftComposerAudios().length }}\n {{ '@ai-management:chat.composer-audio-count' | translate | async }}</span>\n }\n @if (draftComposerFiles().length > 0) {\n @if (draftComposerImages().length > 0 || draftComposerAudios().length > 0) {\n <span class=\"ax-mx-1\">\u00B7</span>\n }\n <span>{{ draftComposerFiles().length }}\n {{ '@ai-management:chat.composer-documents-count' | translate | async }}</span>\n }\n }\n </span>\n </div>\n @if (draftComposerImages().length > 0) {\n <div class=\"ax-flex ax-flex-wrap ax-gap-1.5\">\n @for (slot of draftComposerImages(); track slot.clientId) {\n <div\n class=\"ax-relative ax-h-12 ax-w-12 ax-shrink-0 ax-overflow-hidden ax-rounded-md ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest\">\n <img [src]=\"slot.previewUrl\" [alt]=\"slot.name ?? ''\" class=\"ax-h-full ax-w-full ax-object-cover\" />\n @if (!slot.fileId) {\n <span\n class=\"ax-absolute ax-inset-0 ax-flex ax-items-center ax-justify-center ax-bg-default/40 ax-text-[0.6rem] ax-font-medium ax-text-on-lightest\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-absolute ax-end-0.5 ax-top-0.5 ax-flex ax-h-4 ax-w-4 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.65rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-image' | translate | async) ?? ''\"\n (click)=\"removeDraftImage(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n @if (draftComposerAudios().length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n @for (slot of draftComposerAudios(); track slot.clientId) {\n <div\n class=\"ax-flex ax-items-center ax-justify-between ax-gap-1.5 ax-rounded ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest ax-px-1.5 ax-py-1 ax-text-[0.65rem] ax-min-w-0\">\n <span class=\"ax-truncate ax-text-on-lightest\" [attr.title]=\"slot.name ?? ''\">\n {{ '@ai-management:chat.attached-audio-label' | translate | async }}:\n {{ slot.name?.trim() || ('@ai-management:chat.audio-untitled' | translate | async) }}\n </span>\n @if (!slot.fileId) {\n <span class=\"ax-text-muted ax-shrink-0\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-shrink-0 ax-flex ax-h-5 ax-w-5 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.75rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-audio' | translate | async) ?? ''\"\n (click)=\"removeDraftAudio(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n @if (draftComposerFiles().length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n @for (slot of draftComposerFiles(); track slot.clientId) {\n <div\n class=\"ax-flex ax-items-center ax-justify-between ax-gap-1.5 ax-rounded ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest ax-px-1.5 ax-py-1 ax-text-[0.65rem] ax-min-w-0\">\n <span class=\"ax-truncate ax-text-on-lightest\" [attr.title]=\"slot.name ?? ''\">\n {{ '@ai-management:chat.attached-document-label' | translate | async }}:\n {{ slot.name?.trim() || ('@ai-management:chat.document-untitled' | translate | async) }}\n </span>\n @if (!slot.fileId) {\n <span class=\"ax-text-muted ax-shrink-0\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-shrink-0 ax-flex ax-h-5 ax-w-5 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.75rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-document' | translate | async) ?? ''\"\n (click)=\"removeDraftFile(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"axm-ai-assist-prompt-bottom-panel__body ax-flex ax-min-h-0 ax-flex-col\">\n <ax-text-area class=\"axm-ai-assist-prompt-bottom-panel__prompt-input ax-w-full ax-min-h-0\" [rows]=\"3\"\n [disabled]=\"busy()\" [ngModel]=\"promptDraft()\" (ngModelChange)=\"onPromptDraftChange($event)\" [placeholder]=\"\n placeholder().trim().length > 0\n ? placeholder()\n : ((('@ai-management:assist-popup.placeholder' | translate | async) ?? ''))\n \"></ax-text-area>\n </div>\n\n <div\n class=\"axm-ai-assist-prompt-bottom-panel__footer ax-flex ax-shrink-0 ax-items-center ax-justify-between ax-gap-2\">\n <ax-button class=\"axm-ai-assist-prompt-bottom-panel__menu-trigger\" look=\"solid\" color=\"primary\" type=\"button\"\n [iconOnly]=\"true\" [disabled]=\"busy()\"\n [attr.aria-label]=\"('@ai-management:assist-popup.composer-menu-aria' | translate | async) ?? ''\">\n <ax-prefix>\n <i class=\"fa-light fa-plus ax-text-sm\" aria-hidden=\"true\"></i>\n </ax-prefix>\n <ax-dropdown-panel #composerMenu>\n <ax-button-item-list class=\"ax-min-w-56\">\n <ax-button-item [text]=\"('@ai-management:chat.upload-images' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-images-aria' | translate | async) ?? ''\"\n (onClick)=\"openImagePicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-image ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item [text]=\"('@ai-management:chat.upload-audio' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-audio-aria' | translate | async) ?? ''\"\n (onClick)=\"openAudioPicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-microphone ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item [text]=\"('@ai-management:chat.upload-documents' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-documents-aria' | translate | async) ?? ''\"\n (onClick)=\"openDocumentPicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-paperclip ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-button class=\"axm-ai-assist-prompt-bottom-panel__send axm-ai-assist-prompt-bottom-panel__send-gradient\"\n color=\"primary\" type=\"button\" [disabled]=\"busy() || !canSend()\" [text]=\"\n busy()\n ? (('@ai-management:assist-popup.generating' | translate | async) ?? '')\n : (('@ai-management:assist-popup.generate' | translate | async) ?? '')\n \" (onClick)=\"onSend()\"></ax-button>\n </div>\n </div>\n</div>", styles: [".axm-ai-assist-prompt-bottom-panel-shell{pointer-events:none;box-sizing:border-box;inset:0;width:100%;max-height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-left:max(.75rem,env(safe-area-inset-left,0px));padding-right:max(.75rem,env(safe-area-inset-right,0px));padding-bottom:max(.75rem,env(safe-area-inset-bottom,0px));padding-top:max(.5rem,env(safe-area-inset-top,0px))}.axm-ai-assist-prompt-bottom-panel-shell .ax-overlay-pane{pointer-events:auto;border-style:none;background-color:transparent;flex:0 0 auto;width:auto!important;max-width:calc(100vw - 1.5rem);min-width:min(480px,100vw - 1.5rem)}.axm-ai-assist-prompt-bottom-panel{--axm-ai-assist-prompt-chrome-gradient: linear-gradient(125deg, rgb(var(--ax-sys-color-primary-200)) 0%, rgb(var(--ax-sys-color-primary-400)) 48%, rgb(var(--ax-sys-color-primary-300)) 100%);--axm-ai-assist-prompt-send-gradient: linear-gradient(90deg, rgb(var(--ax-sys-color-primary-500)), rgb(var(--ax-sys-color-primary-700)));box-sizing:border-box;margin:0;max-height:min(78vh,620px);overflow:hidden;padding:.65rem .7rem .7rem;border-radius:1.35rem;background:var(--axm-ai-assist-prompt-chrome-gradient);box-shadow:0 18px 50px -12px rgba(var(--ax-sys-color-on-surface),.12),0 8px 20px -8px rgba(var(--ax-sys-color-primary-400),.2)}.ax-dark .axm-ai-assist-prompt-bottom-panel,.dark .axm-ai-assist-prompt-bottom-panel{--axm-ai-assist-prompt-chrome-gradient: linear-gradient(125deg, rgb(var(--ax-sys-color-primary-600)) 0%, rgb(var(--ax-sys-color-primary-500)) 48%, rgb(var(--ax-sys-color-primary-400)) 100%);box-shadow:0 20px 55px -14px rgba(var(--ax-sys-color-dark),.48),0 8px 24px -8px rgba(var(--ax-sys-color-primary-400),.26)}.axm-ai-assist-prompt-bottom-panel__brand-title{font-size:.72rem;line-height:1.25;font-weight:600;letter-spacing:.01em;color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .axm-ai-assist-prompt-bottom-panel__brand-title{color:rgb(var(--ax-sys-color-on-lightest-surface))}.axm-ai-assist-prompt-bottom-panel__brand-mark{display:inline-flex;width:1.65rem;height:1.65rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;font-size:.75rem;line-height:1;color:rgb(var(--ax-sys-color-on-primary-surface));background:linear-gradient(145deg,rgb(var(--ax-sys-color-primary-500)),rgb(var(--ax-sys-color-primary-700)));box-shadow:0 2px 8px rgba(var(--ax-sys-color-primary-500),.35)}.axm-ai-assist-prompt-bottom-panel__sheet{flex:1 1 auto;min-height:0;padding:.65rem .65rem .55rem;border-radius:1rem;background:rgb(var(--ax-sys-color-lightest-surface));border:1px solid rgba(var(--ax-sys-color-neutral-300),.35);box-shadow:inset 0 1px rgba(var(--ax-sys-color-lightest-surface),.95)}.ax-dark .axm-ai-assist-prompt-bottom-panel__sheet{background:rgb(var(--ax-sys-color-neutral-800));border-color:rgba(var(--ax-sys-color-neutral-500),.4);box-shadow:inset 0 1px rgba(var(--ax-sys-color-lightest-surface),.06)}.axm-ai-assist-prompt-bottom-panel__body{overflow-y:auto;min-height:0;flex:1 1 auto}.axm-ai-assist-prompt-bottom-panel__prompt-input{display:block;width:100%;min-height:0;border:none!important;box-shadow:none!important;background:transparent!important}.axm-ai-assist-prompt-bottom-panel__prompt-input:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.axm-ai-assist-prompt-bottom-panel__prompt-input:focus-within>*{border:none!important;box-shadow:none!important;outline:none!important}.axm-ai-assist-prompt-bottom-panel__prompt-input textarea{min-height:4.5rem;max-height:min(30vh,240px);font-size:.8125rem;line-height:1.45;padding-block:.55rem;padding-inline:.65rem;border-radius:.65rem;border:none!important;box-shadow:none!important;background:transparent!important}.axm-ai-assist-prompt-bottom-panel__prompt-input textarea:focus,.axm-ai-assist-prompt-bottom-panel__prompt-input textarea:focus-visible,.axm-ai-assist-prompt-bottom-panel__prompt-input textarea:active{outline:none!important;outline-offset:0!important;border:none!important;box-shadow:none!important}.ax-dark .axm-ai-assist-prompt-bottom-panel__prompt-input textarea{color:rgb(var(--ax-sys-color-on-lightest-surface));background:rgb(var(--ax-sys-color-neutral-900))!important}.axm-ai-assist-prompt-bottom-panel__footer{min-height:0}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-hover-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-pressed-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;border-radius:9999px!important;overflow:hidden;background:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected),ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected){background:transparent!important;background-color:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger>button{width:2.25rem;height:2.25rem;min-width:2.25rem;min-height:2.25rem;padding:0!important;border-radius:9999px!important;border:none!important;color:rgb(var(--ax-sys-color-on-primary-surface))!important;background:linear-gradient(145deg,rgb(var(--ax-sys-color-primary-500)),rgb(var(--ax-sys-color-primary-700)))!important;box-shadow:0 2px 8px rgba(var(--ax-sys-color-primary-500),.35)}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger.ax-state-disabled>button,ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger.ax-state-loading>button,ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger>button:disabled{opacity:.55;box-shadow:none}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-hover-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-pressed-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;border-radius:9999px!important;overflow:hidden;background:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected),ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected){background:transparent!important;background-color:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient>button{min-height:2.25rem;padding-inline:1rem!important;font-size:.8rem;font-weight:600;letter-spacing:.01em;border-radius:9999px!important;border:none!important;color:rgb(var(--ax-sys-color-on-primary-surface))!important;background:var(--axm-ai-assist-prompt-send-gradient)!important;box-shadow:0 3px 12px rgba(var(--ax-sys-color-secondary-400),.35)}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient.ax-state-disabled>button,ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient.ax-state-loading>button,ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient>button:disabled{opacity:.55;box-shadow:none}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.94)}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.88)}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.96)}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.9)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: 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: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i5.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2388
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAiAssistPromptBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2389
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMAiAssistPromptBoxComponent, isStandalone: true, selector: "axm-ai-assist-prompt-box", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, initialPrompt: { classPropertyName: "initialPrompt", publicName: "initialPrompt", isSignal: true, isRequired: false, transformFunction: null }, contentMaxWidthPx: { classPropertyName: "contentMaxWidthPx", publicName: "contentMaxWidthPx", isSignal: true, isRequired: false, transformFunction: null }, initialAssistId: { classPropertyName: "initialAssistId", publicName: "initialAssistId", isSignal: true, isRequired: false, transformFunction: null }, initialDirectAgentId: { classPropertyName: "initialDirectAgentId", publicName: "initialDirectAgentId", isSignal: true, isRequired: false, transformFunction: null }, runPrompt: { classPropertyName: "runPrompt", publicName: "runPrompt", isSignal: true, isRequired: true, transformFunction: null }, requestClose: { classPropertyName: "requestClose", publicName: "requestClose", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:keydown.escape": "onDocumentEscape()" } }, ngImport: i0, template: "<div class=\"axm-ai-assist-prompt-box ax-flex ax-flex-col ax-gap-2.5 ax-min-h-0 ax-w-full\"\n [style.max-width.px]=\"contentMaxWidthPx()\">\n <div\n class=\"axm-ai-assist-prompt-box__eyebrow ax-flex ax-items-center ax-justify-between ax-gap-3 ax-shrink-0 ax-px-0.5\">\n <div class=\"axm-ai-assist-prompt-box__brand ax-inline-flex ax-min-w-0 ax-items-center ax-gap-2\">\n <span class=\"axm-ai-assist-prompt-box__brand-mark\" aria-hidden=\"true\">\n <i class=\"fa-light fa-sparkles\" aria-hidden=\"true\"></i>\n </span>\n <span class=\"axm-ai-assist-prompt-box__brand-title ax-truncate\">{{ title() }}</span>\n </div>\n <ax-button class=\"ax-shrink-0 ax-xs\" look=\"blank\" color=\"default\" type=\"button\" [iconOnly]=\"true\"\n [disabled]=\"busy()\" [attr.aria-label]=\"('@general:actions.close.title' | translate | async) ?? ''\"\n (onClick)=\"onCancel()\">\n <ax-prefix>\n <i class=\"fa-light fa-xmark\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n\n <div class=\"axm-ai-assist-prompt-box__sheet ax-flex ax-min-h-0 ax-flex-col ax-gap-2\">\n @if (\n draftComposerImages().length > 0 ||\n draftComposerAudios().length > 0 ||\n draftComposerFiles().length > 0 ||\n isComposerSaving()\n ) {\n <div\n class=\"ax-shrink-0 ax-rounded-xl ax-border ax-border-default/45 dark:ax-border-darker ax-bg-lightest/90 ax-p-1.5 ax-flex ax-flex-col ax-gap-1.5\"\n [attr.aria-label]=\"('@ai-management:chat.composer-attachments-region' | translate | async) ?? ''\">\n <div class=\"ax-flex ax-flex-wrap ax-items-center ax-justify-between ax-gap-1.5 ax-text-[0.65rem] ax-text-muted\">\n <span>\n @if (isComposerSaving()) {\n {{ '@ai-management:chat.composer-uploading' | translate | async }}\n } @else {\n @if (draftComposerImages().length > 0) {\n <span>{{ draftComposerImages().length }}\n {{ '@ai-management:chat.composer-images-count' | translate | async }}</span>\n }\n @if (draftComposerImages().length > 0 && draftComposerAudios().length > 0) {\n <span class=\"ax-mx-1\">\u00B7</span>\n }\n @if (draftComposerAudios().length > 0) {\n <span>{{ draftComposerAudios().length }}\n {{ '@ai-management:chat.composer-audio-count' | translate | async }}</span>\n }\n @if (draftComposerFiles().length > 0) {\n @if (draftComposerImages().length > 0 || draftComposerAudios().length > 0) {\n <span class=\"ax-mx-1\">\u00B7</span>\n }\n <span>{{ draftComposerFiles().length }}\n {{ '@ai-management:chat.composer-documents-count' | translate | async }}</span>\n }\n }\n </span>\n </div>\n @if (draftComposerImages().length > 0) {\n <div class=\"ax-flex ax-flex-wrap ax-gap-1.5\">\n @for (slot of draftComposerImages(); track slot.clientId) {\n <div\n class=\"ax-relative ax-h-12 ax-w-12 ax-shrink-0 ax-overflow-hidden ax-rounded-md ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest\">\n <img [src]=\"slot.previewUrl\" [alt]=\"slot.name ?? ''\" class=\"ax-h-full ax-w-full ax-object-cover\" />\n @if (!slot.fileId) {\n <span\n class=\"ax-absolute ax-inset-0 ax-flex ax-items-center ax-justify-center ax-bg-default/40 ax-text-[0.6rem] ax-font-medium ax-text-on-lightest\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-absolute ax-end-0.5 ax-top-0.5 ax-flex ax-h-4 ax-w-4 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.65rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-image' | translate | async) ?? ''\"\n (click)=\"removeDraftImage(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n @if (draftComposerAudios().length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n @for (slot of draftComposerAudios(); track slot.clientId) {\n <div\n class=\"ax-flex ax-items-center ax-justify-between ax-gap-1.5 ax-rounded ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest ax-px-1.5 ax-py-1 ax-text-[0.65rem] ax-min-w-0\">\n <span class=\"ax-truncate ax-text-on-lightest\" [attr.title]=\"slot.name ?? ''\">\n {{ '@ai-management:chat.attached-audio-label' | translate | async }}:\n {{ slot.name?.trim() || ('@ai-management:chat.audio-untitled' | translate | async) }}\n </span>\n @if (!slot.fileId) {\n <span class=\"ax-text-muted ax-shrink-0\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-shrink-0 ax-flex ax-h-5 ax-w-5 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.75rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-audio' | translate | async) ?? ''\"\n (click)=\"removeDraftAudio(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n @if (draftComposerFiles().length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n @for (slot of draftComposerFiles(); track slot.clientId) {\n <div\n class=\"ax-flex ax-items-center ax-justify-between ax-gap-1.5 ax-rounded ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest ax-px-1.5 ax-py-1 ax-text-[0.65rem] ax-min-w-0\">\n <span class=\"ax-truncate ax-text-on-lightest\" [attr.title]=\"slot.name ?? ''\">\n {{ '@ai-management:chat.attached-document-label' | translate | async }}:\n {{ slot.name?.trim() || ('@ai-management:chat.document-untitled' | translate | async) }}\n </span>\n @if (!slot.fileId) {\n <span class=\"ax-text-muted ax-shrink-0\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-shrink-0 ax-flex ax-h-5 ax-w-5 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.75rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-document' | translate | async) ?? ''\"\n (click)=\"removeDraftFile(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"axm-ai-assist-prompt-box__body ax-flex ax-min-h-0 ax-flex-col\">\n <ax-text-area class=\"axm-ai-assist-prompt-box__prompt-input ax-w-full ax-min-h-0\" [rows]=\"3\"\n [disabled]=\"busy()\" [ngModel]=\"promptDraft()\" (ngModelChange)=\"onPromptDraftChange($event)\"\n (keydown)=\"onPromptKeydown($event)\" [placeholder]=\"\n placeholder().trim().length > 0\n ? placeholder()\n : ((('@ai-management:assist-popup.placeholder' | translate | async) ?? ''))\n \"></ax-text-area>\n </div>\n\n <div\n class=\"axm-ai-assist-prompt-box__footer ax-flex ax-shrink-0 ax-items-center ax-justify-between ax-gap-2\">\n <ax-button class=\"axm-ai-assist-prompt-box__menu-trigger\" look=\"solid\" color=\"primary\" type=\"button\"\n [iconOnly]=\"true\" [disabled]=\"busy()\"\n [attr.aria-label]=\"('@ai-management:assist-popup.composer-menu-aria' | translate | async) ?? ''\">\n <ax-prefix>\n <i class=\"fa-light fa-plus ax-text-sm\" aria-hidden=\"true\"></i>\n </ax-prefix>\n <ax-dropdown-panel #composerMenu>\n <ax-button-item-list class=\"ax-min-w-56\">\n <ax-button-item [text]=\"('@ai-management:chat.upload-images' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-images-aria' | translate | async) ?? ''\"\n (onClick)=\"openImagePicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-image ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item [text]=\"('@ai-management:chat.upload-audio' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-audio-aria' | translate | async) ?? ''\"\n (onClick)=\"openAudioPicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-microphone ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item [text]=\"('@ai-management:chat.upload-documents' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-documents-aria' | translate | async) ?? ''\"\n (onClick)=\"openDocumentPicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-paperclip ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-button class=\"axm-ai-assist-prompt-box__send axm-ai-assist-prompt-box__send-gradient\"\n color=\"primary\" type=\"button\" [disabled]=\"busy() || !canSend()\" [text]=\"\n busy()\n ? (('@ai-management:assist-popup.generating' | translate | async) ?? '')\n : (('@ai-management:assist-popup.generate' | translate | async) ?? '')\n \" (onClick)=\"onSend()\"></ax-button>\n </div>\n </div>\n</div>", styles: [".axm-ai-assist-prompt-box-shell{pointer-events:none;box-sizing:border-box;inset:0;width:100%;max-height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-left:max(.75rem,env(safe-area-inset-left,0px));padding-right:max(.75rem,env(safe-area-inset-right,0px));padding-bottom:max(.75rem,env(safe-area-inset-bottom,0px));padding-top:max(.5rem,env(safe-area-inset-top,0px))}.axm-ai-assist-prompt-box-shell .ax-overlay-pane{pointer-events:auto;border-style:none;background-color:transparent;flex:0 0 auto;width:auto!important;max-width:calc(100vw - 1.5rem);min-width:min(480px,100vw - 1.5rem)}.axm-ai-assist-prompt-box{--axm-ai-assist-prompt-chrome-gradient: linear-gradient(125deg, rgb(var(--ax-sys-color-primary-200)) 0%, rgb(var(--ax-sys-color-primary-400)) 48%, rgb(var(--ax-sys-color-primary-300)) 100%);--axm-ai-assist-prompt-send-gradient: linear-gradient(90deg, rgb(var(--ax-sys-color-primary-500)), rgb(var(--ax-sys-color-primary-700)));box-sizing:border-box;margin:0;max-height:min(78vh,620px);overflow:hidden;padding:.65rem .7rem .7rem;border-radius:1.35rem;background:var(--axm-ai-assist-prompt-chrome-gradient);box-shadow:0 18px 50px -12px rgba(var(--ax-sys-color-on-surface),.12),0 8px 20px -8px rgba(var(--ax-sys-color-primary-400),.2)}.ax-dark .axm-ai-assist-prompt-box,.dark .axm-ai-assist-prompt-box{--axm-ai-assist-prompt-chrome-gradient: linear-gradient(125deg, rgb(var(--ax-sys-color-primary-600)) 0%, rgb(var(--ax-sys-color-primary-500)) 48%, rgb(var(--ax-sys-color-primary-400)) 100%);box-shadow:0 20px 55px -14px rgba(var(--ax-sys-color-dark),.48),0 8px 24px -8px rgba(var(--ax-sys-color-primary-400),.26)}.axm-ai-assist-prompt-box__brand-title{font-size:.72rem;line-height:1.25;font-weight:600;letter-spacing:.01em;color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .axm-ai-assist-prompt-box__brand-title{color:rgb(var(--ax-sys-color-on-lightest-surface))}.axm-ai-assist-prompt-box__brand-mark{display:inline-flex;width:1.65rem;height:1.65rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;font-size:.75rem;line-height:1;color:rgb(var(--ax-sys-color-on-primary-surface));background:linear-gradient(145deg,rgb(var(--ax-sys-color-primary-500)),rgb(var(--ax-sys-color-primary-700)));box-shadow:0 2px 8px rgba(var(--ax-sys-color-primary-500),.35)}.axm-ai-assist-prompt-box__sheet{flex:1 1 auto;min-height:0;padding:.65rem .65rem .55rem;border-radius:1rem;background:rgb(var(--ax-sys-color-lightest-surface));border:1px solid rgba(var(--ax-sys-color-neutral-300),.35);box-shadow:inset 0 1px rgba(var(--ax-sys-color-lightest-surface),.95)}.ax-dark .axm-ai-assist-prompt-box__sheet{background:rgb(var(--ax-sys-color-neutral-800));border-color:rgba(var(--ax-sys-color-neutral-500),.4);box-shadow:inset 0 1px rgba(var(--ax-sys-color-lightest-surface),.06)}.axm-ai-assist-prompt-box__body{overflow-y:auto;min-height:0;flex:1 1 auto}.axm-ai-assist-prompt-box__prompt-input{display:block;width:100%;min-height:0;border:none!important;box-shadow:none!important;background:transparent!important}.axm-ai-assist-prompt-box__prompt-input:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.axm-ai-assist-prompt-box__prompt-input:focus-within>*{border:none!important;box-shadow:none!important;outline:none!important}.axm-ai-assist-prompt-box__prompt-input textarea{min-height:4.5rem;max-height:min(30vh,240px);font-size:.8125rem;line-height:1.45;padding-block:.55rem;padding-inline:.65rem;border-radius:.65rem;border:none!important;box-shadow:none!important;background:transparent!important}.axm-ai-assist-prompt-box__prompt-input textarea:focus,.axm-ai-assist-prompt-box__prompt-input textarea:focus-visible,.axm-ai-assist-prompt-box__prompt-input textarea:active{outline:none!important;outline-offset:0!important;border:none!important;box-shadow:none!important}.ax-dark .axm-ai-assist-prompt-box__prompt-input textarea{color:rgb(var(--ax-sys-color-on-lightest-surface));background:rgb(var(--ax-sys-color-neutral-900))!important}.axm-ai-assist-prompt-box__footer{min-height:0}ax-button.axm-ai-assist-prompt-box__menu-trigger{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-hover-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-pressed-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;border-radius:9999px!important;overflow:hidden;background:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-box__menu-trigger:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected),ax-button.axm-ai-assist-prompt-box__menu-trigger:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected){background:transparent!important;background-color:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-box__menu-trigger>button{width:2.25rem;height:2.25rem;min-width:2.25rem;min-height:2.25rem;padding:0!important;border-radius:9999px!important;border:none!important;color:rgb(var(--ax-sys-color-on-primary-surface))!important;background:linear-gradient(145deg,rgb(var(--ax-sys-color-primary-500)),rgb(var(--ax-sys-color-primary-700)))!important;box-shadow:0 2px 8px rgba(var(--ax-sys-color-primary-500),.35)}ax-button.axm-ai-assist-prompt-box__menu-trigger.ax-state-disabled>button,ax-button.axm-ai-assist-prompt-box__menu-trigger.ax-state-loading>button,ax-button.axm-ai-assist-prompt-box__menu-trigger>button:disabled{opacity:.55;box-shadow:none}ax-button.axm-ai-assist-prompt-box__send-gradient{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-hover-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-pressed-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;border-radius:9999px!important;overflow:hidden;background:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-box__send-gradient:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected),ax-button.axm-ai-assist-prompt-box__send-gradient:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected){background:transparent!important;background-color:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-box__send-gradient>button{min-height:2.25rem;padding-inline:1rem!important;font-size:.8rem;font-weight:600;letter-spacing:.01em;border-radius:9999px!important;border:none!important;color:rgb(var(--ax-sys-color-on-primary-surface))!important;background:var(--axm-ai-assist-prompt-send-gradient)!important;box-shadow:0 3px 12px rgba(var(--ax-sys-color-secondary-400),.35)}ax-button.axm-ai-assist-prompt-box__send-gradient.ax-state-disabled>button,ax-button.axm-ai-assist-prompt-box__send-gradient.ax-state-loading>button,ax-button.axm-ai-assist-prompt-box__send-gradient>button:disabled{opacity:.55;box-shadow:none}ax-button.axm-ai-assist-prompt-box__menu-trigger:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.94)}ax-button.axm-ai-assist-prompt-box__menu-trigger:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.88)}ax-button.axm-ai-assist-prompt-box__send-gradient:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.96)}ax-button.axm-ai-assist-prompt-box__send-gradient:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.9)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: 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: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i5.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2385
2390
|
}
|
|
2386
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
2391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAiAssistPromptBoxComponent, decorators: [{
|
|
2387
2392
|
type: Component,
|
|
2388
|
-
args: [{ selector: 'axm-ai-assist-prompt-
|
|
2393
|
+
args: [{ selector: 'axm-ai-assist-prompt-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
2389
2394
|
'(document:keydown.escape)': 'onDocumentEscape()',
|
|
2390
2395
|
}, imports: [
|
|
2391
2396
|
CommonModule,
|
|
@@ -2396,15 +2401,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2396
2401
|
AXDropdownButtonModule,
|
|
2397
2402
|
AXTextAreaModule,
|
|
2398
2403
|
AXTranslationModule,
|
|
2399
|
-
], template: "<div class=\"axm-ai-assist-prompt-bottom-panel ax-flex ax-flex-col ax-gap-2.5 ax-min-h-0 ax-w-full\"\n [style.max-width.px]=\"contentMaxWidthPx()\">\n <div\n class=\"axm-ai-assist-prompt-bottom-panel__eyebrow ax-flex ax-items-center ax-justify-between ax-gap-3 ax-shrink-0 ax-px-0.5\">\n <div class=\"axm-ai-assist-prompt-bottom-panel__brand ax-inline-flex ax-min-w-0 ax-items-center ax-gap-2\">\n <span class=\"axm-ai-assist-prompt-bottom-panel__brand-mark\" aria-hidden=\"true\">\n <i class=\"fa-light fa-sparkles\" aria-hidden=\"true\"></i>\n </span>\n <span class=\"axm-ai-assist-prompt-bottom-panel__brand-title ax-truncate\">{{ title() }}</span>\n </div>\n <ax-button class=\"ax-shrink-0 ax-xs\" look=\"blank\" color=\"default\" type=\"button\" [iconOnly]=\"true\"\n [disabled]=\"busy()\" [attr.aria-label]=\"('@general:actions.close.title' | translate | async) ?? ''\"\n (onClick)=\"onCancel()\">\n <ax-prefix>\n <i class=\"fa-light fa-xmark\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n\n <div class=\"axm-ai-assist-prompt-bottom-panel__sheet ax-flex ax-min-h-0 ax-flex-col ax-gap-2\">\n @if (\n draftComposerImages().length > 0 ||\n draftComposerAudios().length > 0 ||\n draftComposerFiles().length > 0 ||\n isComposerSaving()\n ) {\n <div\n class=\"ax-shrink-0 ax-rounded-xl ax-border ax-border-default/45 dark:ax-border-darker ax-bg-lightest/90 ax-p-1.5 ax-flex ax-flex-col ax-gap-1.5\"\n [attr.aria-label]=\"('@ai-management:chat.composer-attachments-region' | translate | async) ?? ''\">\n <div class=\"ax-flex ax-flex-wrap ax-items-center ax-justify-between ax-gap-1.5 ax-text-[0.65rem] ax-text-muted\">\n <span>\n @if (isComposerSaving()) {\n {{ '@ai-management:chat.composer-uploading' | translate | async }}\n } @else {\n @if (draftComposerImages().length > 0) {\n <span>{{ draftComposerImages().length }}\n {{ '@ai-management:chat.composer-images-count' | translate | async }}</span>\n }\n @if (draftComposerImages().length > 0 && draftComposerAudios().length > 0) {\n <span class=\"ax-mx-1\">\u00B7</span>\n }\n @if (draftComposerAudios().length > 0) {\n <span>{{ draftComposerAudios().length }}\n {{ '@ai-management:chat.composer-audio-count' | translate | async }}</span>\n }\n @if (draftComposerFiles().length > 0) {\n @if (draftComposerImages().length > 0 || draftComposerAudios().length > 0) {\n <span class=\"ax-mx-1\">\u00B7</span>\n }\n <span>{{ draftComposerFiles().length }}\n {{ '@ai-management:chat.composer-documents-count' | translate | async }}</span>\n }\n }\n </span>\n </div>\n @if (draftComposerImages().length > 0) {\n <div class=\"ax-flex ax-flex-wrap ax-gap-1.5\">\n @for (slot of draftComposerImages(); track slot.clientId) {\n <div\n class=\"ax-relative ax-h-12 ax-w-12 ax-shrink-0 ax-overflow-hidden ax-rounded-md ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest\">\n <img [src]=\"slot.previewUrl\" [alt]=\"slot.name ?? ''\" class=\"ax-h-full ax-w-full ax-object-cover\" />\n @if (!slot.fileId) {\n <span\n class=\"ax-absolute ax-inset-0 ax-flex ax-items-center ax-justify-center ax-bg-default/40 ax-text-[0.6rem] ax-font-medium ax-text-on-lightest\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-absolute ax-end-0.5 ax-top-0.5 ax-flex ax-h-4 ax-w-4 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.65rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-image' | translate | async) ?? ''\"\n (click)=\"removeDraftImage(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n @if (draftComposerAudios().length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n @for (slot of draftComposerAudios(); track slot.clientId) {\n <div\n class=\"ax-flex ax-items-center ax-justify-between ax-gap-1.5 ax-rounded ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest ax-px-1.5 ax-py-1 ax-text-[0.65rem] ax-min-w-0\">\n <span class=\"ax-truncate ax-text-on-lightest\" [attr.title]=\"slot.name ?? ''\">\n {{ '@ai-management:chat.attached-audio-label' | translate | async }}:\n {{ slot.name?.trim() || ('@ai-management:chat.audio-untitled' | translate | async) }}\n </span>\n @if (!slot.fileId) {\n <span class=\"ax-text-muted ax-shrink-0\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-shrink-0 ax-flex ax-h-5 ax-w-5 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.75rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-audio' | translate | async) ?? ''\"\n (click)=\"removeDraftAudio(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n @if (draftComposerFiles().length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n @for (slot of draftComposerFiles(); track slot.clientId) {\n <div\n class=\"ax-flex ax-items-center ax-justify-between ax-gap-1.5 ax-rounded ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest ax-px-1.5 ax-py-1 ax-text-[0.65rem] ax-min-w-0\">\n <span class=\"ax-truncate ax-text-on-lightest\" [attr.title]=\"slot.name ?? ''\">\n {{ '@ai-management:chat.attached-document-label' | translate | async }}:\n {{ slot.name?.trim() || ('@ai-management:chat.document-untitled' | translate | async) }}\n </span>\n @if (!slot.fileId) {\n <span class=\"ax-text-muted ax-shrink-0\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-shrink-0 ax-flex ax-h-5 ax-w-5 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.75rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-document' | translate | async) ?? ''\"\n (click)=\"removeDraftFile(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"axm-ai-assist-prompt-bottom-panel__body ax-flex ax-min-h-0 ax-flex-col\">\n <ax-text-area class=\"axm-ai-assist-prompt-bottom-panel__prompt-input ax-w-full ax-min-h-0\" [rows]=\"3\"\n [disabled]=\"busy()\" [ngModel]=\"promptDraft()\" (ngModelChange)=\"onPromptDraftChange($event)\" [placeholder]=\"\n placeholder().trim().length > 0\n ? placeholder()\n : ((('@ai-management:assist-popup.placeholder' | translate | async) ?? ''))\n \"></ax-text-area>\n </div>\n\n <div\n class=\"axm-ai-assist-prompt-bottom-panel__footer ax-flex ax-shrink-0 ax-items-center ax-justify-between ax-gap-2\">\n <ax-button class=\"axm-ai-assist-prompt-bottom-panel__menu-trigger\" look=\"solid\" color=\"primary\" type=\"button\"\n [iconOnly]=\"true\" [disabled]=\"busy()\"\n [attr.aria-label]=\"('@ai-management:assist-popup.composer-menu-aria' | translate | async) ?? ''\">\n <ax-prefix>\n <i class=\"fa-light fa-plus ax-text-sm\" aria-hidden=\"true\"></i>\n </ax-prefix>\n <ax-dropdown-panel #composerMenu>\n <ax-button-item-list class=\"ax-min-w-56\">\n <ax-button-item [text]=\"('@ai-management:chat.upload-images' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-images-aria' | translate | async) ?? ''\"\n (onClick)=\"openImagePicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-image ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item [text]=\"('@ai-management:chat.upload-audio' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-audio-aria' | translate | async) ?? ''\"\n (onClick)=\"openAudioPicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-microphone ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item [text]=\"('@ai-management:chat.upload-documents' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-documents-aria' | translate | async) ?? ''\"\n (onClick)=\"openDocumentPicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-paperclip ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-button class=\"axm-ai-assist-prompt-bottom-panel__send axm-ai-assist-prompt-bottom-panel__send-gradient\"\n color=\"primary\" type=\"button\" [disabled]=\"busy() || !canSend()\" [text]=\"\n busy()\n ? (('@ai-management:assist-popup.generating' | translate | async) ?? '')\n : (('@ai-management:assist-popup.generate' | translate | async) ?? '')\n \" (onClick)=\"onSend()\"></ax-button>\n </div>\n </div>\n</div>", styles: [".axm-ai-assist-prompt-bottom-panel-shell{pointer-events:none;box-sizing:border-box;inset:0;width:100%;max-height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-left:max(.75rem,env(safe-area-inset-left,0px));padding-right:max(.75rem,env(safe-area-inset-right,0px));padding-bottom:max(.75rem,env(safe-area-inset-bottom,0px));padding-top:max(.5rem,env(safe-area-inset-top,0px))}.axm-ai-assist-prompt-bottom-panel-shell .ax-overlay-pane{pointer-events:auto;border-style:none;background-color:transparent;flex:0 0 auto;width:auto!important;max-width:calc(100vw - 1.5rem);min-width:min(480px,100vw - 1.5rem)}.axm-ai-assist-prompt-bottom-panel{--axm-ai-assist-prompt-chrome-gradient: linear-gradient(125deg, rgb(var(--ax-sys-color-primary-200)) 0%, rgb(var(--ax-sys-color-primary-400)) 48%, rgb(var(--ax-sys-color-primary-300)) 100%);--axm-ai-assist-prompt-send-gradient: linear-gradient(90deg, rgb(var(--ax-sys-color-primary-500)), rgb(var(--ax-sys-color-primary-700)));box-sizing:border-box;margin:0;max-height:min(78vh,620px);overflow:hidden;padding:.65rem .7rem .7rem;border-radius:1.35rem;background:var(--axm-ai-assist-prompt-chrome-gradient);box-shadow:0 18px 50px -12px rgba(var(--ax-sys-color-on-surface),.12),0 8px 20px -8px rgba(var(--ax-sys-color-primary-400),.2)}.ax-dark .axm-ai-assist-prompt-bottom-panel,.dark .axm-ai-assist-prompt-bottom-panel{--axm-ai-assist-prompt-chrome-gradient: linear-gradient(125deg, rgb(var(--ax-sys-color-primary-600)) 0%, rgb(var(--ax-sys-color-primary-500)) 48%, rgb(var(--ax-sys-color-primary-400)) 100%);box-shadow:0 20px 55px -14px rgba(var(--ax-sys-color-dark),.48),0 8px 24px -8px rgba(var(--ax-sys-color-primary-400),.26)}.axm-ai-assist-prompt-bottom-panel__brand-title{font-size:.72rem;line-height:1.25;font-weight:600;letter-spacing:.01em;color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .axm-ai-assist-prompt-bottom-panel__brand-title{color:rgb(var(--ax-sys-color-on-lightest-surface))}.axm-ai-assist-prompt-bottom-panel__brand-mark{display:inline-flex;width:1.65rem;height:1.65rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;font-size:.75rem;line-height:1;color:rgb(var(--ax-sys-color-on-primary-surface));background:linear-gradient(145deg,rgb(var(--ax-sys-color-primary-500)),rgb(var(--ax-sys-color-primary-700)));box-shadow:0 2px 8px rgba(var(--ax-sys-color-primary-500),.35)}.axm-ai-assist-prompt-bottom-panel__sheet{flex:1 1 auto;min-height:0;padding:.65rem .65rem .55rem;border-radius:1rem;background:rgb(var(--ax-sys-color-lightest-surface));border:1px solid rgba(var(--ax-sys-color-neutral-300),.35);box-shadow:inset 0 1px rgba(var(--ax-sys-color-lightest-surface),.95)}.ax-dark .axm-ai-assist-prompt-bottom-panel__sheet{background:rgb(var(--ax-sys-color-neutral-800));border-color:rgba(var(--ax-sys-color-neutral-500),.4);box-shadow:inset 0 1px rgba(var(--ax-sys-color-lightest-surface),.06)}.axm-ai-assist-prompt-bottom-panel__body{overflow-y:auto;min-height:0;flex:1 1 auto}.axm-ai-assist-prompt-bottom-panel__prompt-input{display:block;width:100%;min-height:0;border:none!important;box-shadow:none!important;background:transparent!important}.axm-ai-assist-prompt-bottom-panel__prompt-input:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.axm-ai-assist-prompt-bottom-panel__prompt-input:focus-within>*{border:none!important;box-shadow:none!important;outline:none!important}.axm-ai-assist-prompt-bottom-panel__prompt-input textarea{min-height:4.5rem;max-height:min(30vh,240px);font-size:.8125rem;line-height:1.45;padding-block:.55rem;padding-inline:.65rem;border-radius:.65rem;border:none!important;box-shadow:none!important;background:transparent!important}.axm-ai-assist-prompt-bottom-panel__prompt-input textarea:focus,.axm-ai-assist-prompt-bottom-panel__prompt-input textarea:focus-visible,.axm-ai-assist-prompt-bottom-panel__prompt-input textarea:active{outline:none!important;outline-offset:0!important;border:none!important;box-shadow:none!important}.ax-dark .axm-ai-assist-prompt-bottom-panel__prompt-input textarea{color:rgb(var(--ax-sys-color-on-lightest-surface));background:rgb(var(--ax-sys-color-neutral-900))!important}.axm-ai-assist-prompt-bottom-panel__footer{min-height:0}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-hover-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-pressed-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;border-radius:9999px!important;overflow:hidden;background:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected),ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected){background:transparent!important;background-color:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger>button{width:2.25rem;height:2.25rem;min-width:2.25rem;min-height:2.25rem;padding:0!important;border-radius:9999px!important;border:none!important;color:rgb(var(--ax-sys-color-on-primary-surface))!important;background:linear-gradient(145deg,rgb(var(--ax-sys-color-primary-500)),rgb(var(--ax-sys-color-primary-700)))!important;box-shadow:0 2px 8px rgba(var(--ax-sys-color-primary-500),.35)}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger.ax-state-disabled>button,ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger.ax-state-loading>button,ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger>button:disabled{opacity:.55;box-shadow:none}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-hover-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-pressed-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;border-radius:9999px!important;overflow:hidden;background:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected),ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected){background:transparent!important;background-color:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient>button{min-height:2.25rem;padding-inline:1rem!important;font-size:.8rem;font-weight:600;letter-spacing:.01em;border-radius:9999px!important;border:none!important;color:rgb(var(--ax-sys-color-on-primary-surface))!important;background:var(--axm-ai-assist-prompt-send-gradient)!important;box-shadow:0 3px 12px rgba(var(--ax-sys-color-secondary-400),.35)}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient.ax-state-disabled>button,ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient.ax-state-loading>button,ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient>button:disabled{opacity:.55;box-shadow:none}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.94)}ax-button.axm-ai-assist-prompt-bottom-panel__menu-trigger:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.88)}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.96)}ax-button.axm-ai-assist-prompt-bottom-panel__send-gradient:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.9)}\n"] }]
|
|
2400
|
-
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], initialPrompt: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialPrompt", required: false }] }], contentMaxWidthPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentMaxWidthPx", required: false }] }],
|
|
2404
|
+
], template: "<div class=\"axm-ai-assist-prompt-box ax-flex ax-flex-col ax-gap-2.5 ax-min-h-0 ax-w-full\"\n [style.max-width.px]=\"contentMaxWidthPx()\">\n <div\n class=\"axm-ai-assist-prompt-box__eyebrow ax-flex ax-items-center ax-justify-between ax-gap-3 ax-shrink-0 ax-px-0.5\">\n <div class=\"axm-ai-assist-prompt-box__brand ax-inline-flex ax-min-w-0 ax-items-center ax-gap-2\">\n <span class=\"axm-ai-assist-prompt-box__brand-mark\" aria-hidden=\"true\">\n <i class=\"fa-light fa-sparkles\" aria-hidden=\"true\"></i>\n </span>\n <span class=\"axm-ai-assist-prompt-box__brand-title ax-truncate\">{{ title() }}</span>\n </div>\n <ax-button class=\"ax-shrink-0 ax-xs\" look=\"blank\" color=\"default\" type=\"button\" [iconOnly]=\"true\"\n [disabled]=\"busy()\" [attr.aria-label]=\"('@general:actions.close.title' | translate | async) ?? ''\"\n (onClick)=\"onCancel()\">\n <ax-prefix>\n <i class=\"fa-light fa-xmark\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n\n <div class=\"axm-ai-assist-prompt-box__sheet ax-flex ax-min-h-0 ax-flex-col ax-gap-2\">\n @if (\n draftComposerImages().length > 0 ||\n draftComposerAudios().length > 0 ||\n draftComposerFiles().length > 0 ||\n isComposerSaving()\n ) {\n <div\n class=\"ax-shrink-0 ax-rounded-xl ax-border ax-border-default/45 dark:ax-border-darker ax-bg-lightest/90 ax-p-1.5 ax-flex ax-flex-col ax-gap-1.5\"\n [attr.aria-label]=\"('@ai-management:chat.composer-attachments-region' | translate | async) ?? ''\">\n <div class=\"ax-flex ax-flex-wrap ax-items-center ax-justify-between ax-gap-1.5 ax-text-[0.65rem] ax-text-muted\">\n <span>\n @if (isComposerSaving()) {\n {{ '@ai-management:chat.composer-uploading' | translate | async }}\n } @else {\n @if (draftComposerImages().length > 0) {\n <span>{{ draftComposerImages().length }}\n {{ '@ai-management:chat.composer-images-count' | translate | async }}</span>\n }\n @if (draftComposerImages().length > 0 && draftComposerAudios().length > 0) {\n <span class=\"ax-mx-1\">\u00B7</span>\n }\n @if (draftComposerAudios().length > 0) {\n <span>{{ draftComposerAudios().length }}\n {{ '@ai-management:chat.composer-audio-count' | translate | async }}</span>\n }\n @if (draftComposerFiles().length > 0) {\n @if (draftComposerImages().length > 0 || draftComposerAudios().length > 0) {\n <span class=\"ax-mx-1\">\u00B7</span>\n }\n <span>{{ draftComposerFiles().length }}\n {{ '@ai-management:chat.composer-documents-count' | translate | async }}</span>\n }\n }\n </span>\n </div>\n @if (draftComposerImages().length > 0) {\n <div class=\"ax-flex ax-flex-wrap ax-gap-1.5\">\n @for (slot of draftComposerImages(); track slot.clientId) {\n <div\n class=\"ax-relative ax-h-12 ax-w-12 ax-shrink-0 ax-overflow-hidden ax-rounded-md ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest\">\n <img [src]=\"slot.previewUrl\" [alt]=\"slot.name ?? ''\" class=\"ax-h-full ax-w-full ax-object-cover\" />\n @if (!slot.fileId) {\n <span\n class=\"ax-absolute ax-inset-0 ax-flex ax-items-center ax-justify-center ax-bg-default/40 ax-text-[0.6rem] ax-font-medium ax-text-on-lightest\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-absolute ax-end-0.5 ax-top-0.5 ax-flex ax-h-4 ax-w-4 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.65rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-image' | translate | async) ?? ''\"\n (click)=\"removeDraftImage(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n @if (draftComposerAudios().length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n @for (slot of draftComposerAudios(); track slot.clientId) {\n <div\n class=\"ax-flex ax-items-center ax-justify-between ax-gap-1.5 ax-rounded ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest ax-px-1.5 ax-py-1 ax-text-[0.65rem] ax-min-w-0\">\n <span class=\"ax-truncate ax-text-on-lightest\" [attr.title]=\"slot.name ?? ''\">\n {{ '@ai-management:chat.attached-audio-label' | translate | async }}:\n {{ slot.name?.trim() || ('@ai-management:chat.audio-untitled' | translate | async) }}\n </span>\n @if (!slot.fileId) {\n <span class=\"ax-text-muted ax-shrink-0\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-shrink-0 ax-flex ax-h-5 ax-w-5 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.75rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-audio' | translate | async) ?? ''\"\n (click)=\"removeDraftAudio(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n @if (draftComposerFiles().length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n @for (slot of draftComposerFiles(); track slot.clientId) {\n <div\n class=\"ax-flex ax-items-center ax-justify-between ax-gap-1.5 ax-rounded ax-border ax-border-default/60 dark:ax-border-darker ax-bg-lightest ax-px-1.5 ax-py-1 ax-text-[0.65rem] ax-min-w-0\">\n <span class=\"ax-truncate ax-text-on-lightest\" [attr.title]=\"slot.name ?? ''\">\n {{ '@ai-management:chat.attached-document-label' | translate | async }}:\n {{ slot.name?.trim() || ('@ai-management:chat.document-untitled' | translate | async) }}\n </span>\n @if (!slot.fileId) {\n <span class=\"ax-text-muted ax-shrink-0\">\u2026</span>\n }\n <button type=\"button\"\n class=\"ax-shrink-0 ax-flex ax-h-5 ax-w-5 ax-items-center ax-justify-center ax-rounded ax-bg-default/80 ax-text-[0.75rem] ax-leading-none ax-text-on-lightest hover:ax-bg-default focus-visible:ax-outline-none focus-visible:ax-ring-2 focus-visible:ax-ring-primary-400\"\n [disabled]=\"busy() || isComposerSaving()\"\n [attr.aria-label]=\"('@ai-management:chat.remove-draft-document' | translate | async) ?? ''\"\n (click)=\"removeDraftFile(slot.clientId)\">\n \u00D7\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <div class=\"axm-ai-assist-prompt-box__body ax-flex ax-min-h-0 ax-flex-col\">\n <ax-text-area class=\"axm-ai-assist-prompt-box__prompt-input ax-w-full ax-min-h-0\" [rows]=\"3\"\n [disabled]=\"busy()\" [ngModel]=\"promptDraft()\" (ngModelChange)=\"onPromptDraftChange($event)\"\n (keydown)=\"onPromptKeydown($event)\" [placeholder]=\"\n placeholder().trim().length > 0\n ? placeholder()\n : ((('@ai-management:assist-popup.placeholder' | translate | async) ?? ''))\n \"></ax-text-area>\n </div>\n\n <div\n class=\"axm-ai-assist-prompt-box__footer ax-flex ax-shrink-0 ax-items-center ax-justify-between ax-gap-2\">\n <ax-button class=\"axm-ai-assist-prompt-box__menu-trigger\" look=\"solid\" color=\"primary\" type=\"button\"\n [iconOnly]=\"true\" [disabled]=\"busy()\"\n [attr.aria-label]=\"('@ai-management:assist-popup.composer-menu-aria' | translate | async) ?? ''\">\n <ax-prefix>\n <i class=\"fa-light fa-plus ax-text-sm\" aria-hidden=\"true\"></i>\n </ax-prefix>\n <ax-dropdown-panel #composerMenu>\n <ax-button-item-list class=\"ax-min-w-56\">\n <ax-button-item [text]=\"('@ai-management:chat.upload-images' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-images-aria' | translate | async) ?? ''\"\n (onClick)=\"openImagePicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-image ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item [text]=\"('@ai-management:chat.upload-audio' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-audio-aria' | translate | async) ?? ''\"\n (onClick)=\"openAudioPicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-microphone ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item [text]=\"('@ai-management:chat.upload-documents' | translate | async) ?? ''\"\n [attr.aria-label]=\"('@ai-management:chat.upload-documents-aria' | translate | async) ?? ''\"\n (onClick)=\"openDocumentPicker(); composerMenu.close()\">\n <ax-prefix>\n <i class=\"fa-light fa-paperclip ax-size-4 ax-text-center\" aria-hidden=\"true\"></i>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-button class=\"axm-ai-assist-prompt-box__send axm-ai-assist-prompt-box__send-gradient\"\n color=\"primary\" type=\"button\" [disabled]=\"busy() || !canSend()\" [text]=\"\n busy()\n ? (('@ai-management:assist-popup.generating' | translate | async) ?? '')\n : (('@ai-management:assist-popup.generate' | translate | async) ?? '')\n \" (onClick)=\"onSend()\"></ax-button>\n </div>\n </div>\n</div>", styles: [".axm-ai-assist-prompt-box-shell{pointer-events:none;box-sizing:border-box;inset:0;width:100%;max-height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-left:max(.75rem,env(safe-area-inset-left,0px));padding-right:max(.75rem,env(safe-area-inset-right,0px));padding-bottom:max(.75rem,env(safe-area-inset-bottom,0px));padding-top:max(.5rem,env(safe-area-inset-top,0px))}.axm-ai-assist-prompt-box-shell .ax-overlay-pane{pointer-events:auto;border-style:none;background-color:transparent;flex:0 0 auto;width:auto!important;max-width:calc(100vw - 1.5rem);min-width:min(480px,100vw - 1.5rem)}.axm-ai-assist-prompt-box{--axm-ai-assist-prompt-chrome-gradient: linear-gradient(125deg, rgb(var(--ax-sys-color-primary-200)) 0%, rgb(var(--ax-sys-color-primary-400)) 48%, rgb(var(--ax-sys-color-primary-300)) 100%);--axm-ai-assist-prompt-send-gradient: linear-gradient(90deg, rgb(var(--ax-sys-color-primary-500)), rgb(var(--ax-sys-color-primary-700)));box-sizing:border-box;margin:0;max-height:min(78vh,620px);overflow:hidden;padding:.65rem .7rem .7rem;border-radius:1.35rem;background:var(--axm-ai-assist-prompt-chrome-gradient);box-shadow:0 18px 50px -12px rgba(var(--ax-sys-color-on-surface),.12),0 8px 20px -8px rgba(var(--ax-sys-color-primary-400),.2)}.ax-dark .axm-ai-assist-prompt-box,.dark .axm-ai-assist-prompt-box{--axm-ai-assist-prompt-chrome-gradient: linear-gradient(125deg, rgb(var(--ax-sys-color-primary-600)) 0%, rgb(var(--ax-sys-color-primary-500)) 48%, rgb(var(--ax-sys-color-primary-400)) 100%);box-shadow:0 20px 55px -14px rgba(var(--ax-sys-color-dark),.48),0 8px 24px -8px rgba(var(--ax-sys-color-primary-400),.26)}.axm-ai-assist-prompt-box__brand-title{font-size:.72rem;line-height:1.25;font-weight:600;letter-spacing:.01em;color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .axm-ai-assist-prompt-box__brand-title{color:rgb(var(--ax-sys-color-on-lightest-surface))}.axm-ai-assist-prompt-box__brand-mark{display:inline-flex;width:1.65rem;height:1.65rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;font-size:.75rem;line-height:1;color:rgb(var(--ax-sys-color-on-primary-surface));background:linear-gradient(145deg,rgb(var(--ax-sys-color-primary-500)),rgb(var(--ax-sys-color-primary-700)));box-shadow:0 2px 8px rgba(var(--ax-sys-color-primary-500),.35)}.axm-ai-assist-prompt-box__sheet{flex:1 1 auto;min-height:0;padding:.65rem .65rem .55rem;border-radius:1rem;background:rgb(var(--ax-sys-color-lightest-surface));border:1px solid rgba(var(--ax-sys-color-neutral-300),.35);box-shadow:inset 0 1px rgba(var(--ax-sys-color-lightest-surface),.95)}.ax-dark .axm-ai-assist-prompt-box__sheet{background:rgb(var(--ax-sys-color-neutral-800));border-color:rgba(var(--ax-sys-color-neutral-500),.4);box-shadow:inset 0 1px rgba(var(--ax-sys-color-lightest-surface),.06)}.axm-ai-assist-prompt-box__body{overflow-y:auto;min-height:0;flex:1 1 auto}.axm-ai-assist-prompt-box__prompt-input{display:block;width:100%;min-height:0;border:none!important;box-shadow:none!important;background:transparent!important}.axm-ai-assist-prompt-box__prompt-input:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.axm-ai-assist-prompt-box__prompt-input:focus-within>*{border:none!important;box-shadow:none!important;outline:none!important}.axm-ai-assist-prompt-box__prompt-input textarea{min-height:4.5rem;max-height:min(30vh,240px);font-size:.8125rem;line-height:1.45;padding-block:.55rem;padding-inline:.65rem;border-radius:.65rem;border:none!important;box-shadow:none!important;background:transparent!important}.axm-ai-assist-prompt-box__prompt-input textarea:focus,.axm-ai-assist-prompt-box__prompt-input textarea:focus-visible,.axm-ai-assist-prompt-box__prompt-input textarea:active{outline:none!important;outline-offset:0!important;border:none!important;box-shadow:none!important}.ax-dark .axm-ai-assist-prompt-box__prompt-input textarea{color:rgb(var(--ax-sys-color-on-lightest-surface));background:rgb(var(--ax-sys-color-neutral-900))!important}.axm-ai-assist-prompt-box__footer{min-height:0}ax-button.axm-ai-assist-prompt-box__menu-trigger{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-hover-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-pressed-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;border-radius:9999px!important;overflow:hidden;background:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-box__menu-trigger:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected),ax-button.axm-ai-assist-prompt-box__menu-trigger:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected){background:transparent!important;background-color:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-box__menu-trigger>button{width:2.25rem;height:2.25rem;min-width:2.25rem;min-height:2.25rem;padding:0!important;border-radius:9999px!important;border:none!important;color:rgb(var(--ax-sys-color-on-primary-surface))!important;background:linear-gradient(145deg,rgb(var(--ax-sys-color-primary-500)),rgb(var(--ax-sys-color-primary-700)))!important;box-shadow:0 2px 8px rgba(var(--ax-sys-color-primary-500),.35)}ax-button.axm-ai-assist-prompt-box__menu-trigger.ax-state-disabled>button,ax-button.axm-ai-assist-prompt-box__menu-trigger.ax-state-loading>button,ax-button.axm-ai-assist-prompt-box__menu-trigger>button:disabled{opacity:.55;box-shadow:none}ax-button.axm-ai-assist-prompt-box__send-gradient{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-hover-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-pressed-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;border-radius:9999px!important;overflow:hidden;background:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-box__send-gradient:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected),ax-button.axm-ai-assist-prompt-box__send-gradient:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected){background:transparent!important;background-color:transparent!important;border-color:transparent!important}ax-button.axm-ai-assist-prompt-box__send-gradient>button{min-height:2.25rem;padding-inline:1rem!important;font-size:.8rem;font-weight:600;letter-spacing:.01em;border-radius:9999px!important;border:none!important;color:rgb(var(--ax-sys-color-on-primary-surface))!important;background:var(--axm-ai-assist-prompt-send-gradient)!important;box-shadow:0 3px 12px rgba(var(--ax-sys-color-secondary-400),.35)}ax-button.axm-ai-assist-prompt-box__send-gradient.ax-state-disabled>button,ax-button.axm-ai-assist-prompt-box__send-gradient.ax-state-loading>button,ax-button.axm-ai-assist-prompt-box__send-gradient>button:disabled{opacity:.55;box-shadow:none}ax-button.axm-ai-assist-prompt-box__menu-trigger:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.94)}ax-button.axm-ai-assist-prompt-box__menu-trigger:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.88)}ax-button.axm-ai-assist-prompt-box__send-gradient:hover:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.96)}ax-button.axm-ai-assist-prompt-box__send-gradient:active:not(.ax-state-disabled,.ax-state-loading,.ax-state-selected)>button{filter:brightness(.9)}\n"] }]
|
|
2405
|
+
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], initialPrompt: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialPrompt", required: false }] }], contentMaxWidthPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentMaxWidthPx", required: false }] }], initialAssistId: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialAssistId", required: false }] }], initialDirectAgentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialDirectAgentId", required: false }] }], runPrompt: [{ type: i0.Input, args: [{ isSignal: true, alias: "runPrompt", required: true }] }], requestClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestClose", required: true }] }] } });
|
|
2401
2406
|
|
|
2402
2407
|
//#endregion
|
|
2403
2408
|
//#region ---- Service ----
|
|
2404
2409
|
/**
|
|
2405
|
-
* Opens the AI assist prompt in a bottom overlay using {@link AXOverlayService} (`centered: false`, panel CSS).
|
|
2410
|
+
* Opens the AI assist prompt box in a bottom overlay using {@link AXOverlayService} (`centered: false`, panel CSS).
|
|
2406
2411
|
*/
|
|
2407
|
-
class
|
|
2412
|
+
class AXMAiAssistPromptBoxService {
|
|
2408
2413
|
constructor() {
|
|
2409
2414
|
//#region ---- Services & Dependencies ----
|
|
2410
2415
|
this.overlayService = inject(AXOverlayService);
|
|
@@ -2417,9 +2422,9 @@ class AXMAiAssistPromptBottomPanelService {
|
|
|
2417
2422
|
//#endregion
|
|
2418
2423
|
//#region ---- Public Methods ----
|
|
2419
2424
|
/**
|
|
2420
|
-
* Presents the assist prompt
|
|
2425
|
+
* Presents the assist prompt box and resolves when the user submits, cancels, or dismisses the overlay.
|
|
2421
2426
|
*/
|
|
2422
|
-
open(options,
|
|
2427
|
+
open(options, executeRun) {
|
|
2423
2428
|
if (this.pendingResolve) {
|
|
2424
2429
|
const superseded = this.pendingResolve;
|
|
2425
2430
|
this.pendingResolve = null;
|
|
@@ -2434,11 +2439,11 @@ class AXMAiAssistPromptBottomPanelService {
|
|
|
2434
2439
|
this.overlayRef?.dispose();
|
|
2435
2440
|
};
|
|
2436
2441
|
void this.overlayService
|
|
2437
|
-
.create(
|
|
2442
|
+
.create(AXMAiAssistPromptBoxComponent, {
|
|
2438
2443
|
centered: false,
|
|
2439
2444
|
width: 'auto',
|
|
2440
2445
|
actionSheetStyle: false,
|
|
2441
|
-
panelClass: ['axm-ai-assist-prompt-
|
|
2446
|
+
panelClass: ['axm-ai-assist-prompt-box-shell'],
|
|
2442
2447
|
backdrop: {
|
|
2443
2448
|
enabled: false,
|
|
2444
2449
|
background: false,
|
|
@@ -2450,8 +2455,6 @@ class AXMAiAssistPromptBottomPanelService {
|
|
|
2450
2455
|
title: options.title,
|
|
2451
2456
|
placeholder: options.placeholder ?? '',
|
|
2452
2457
|
initialPrompt: options.initialPrompt ?? '',
|
|
2453
|
-
assistPickerRows: picker.assistPickerRows,
|
|
2454
|
-
agentPickerRows: picker.agentPickerRows,
|
|
2455
2458
|
initialAssistId: options.assistId,
|
|
2456
2459
|
initialDirectAgentId: options.directAgentId,
|
|
2457
2460
|
runPrompt: executeRun,
|
|
@@ -2492,10 +2495,10 @@ class AXMAiAssistPromptBottomPanelService {
|
|
|
2492
2495
|
this.overlayRef = null;
|
|
2493
2496
|
}
|
|
2494
2497
|
}
|
|
2495
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
2496
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
2498
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAiAssistPromptBoxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2499
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAiAssistPromptBoxService, providedIn: 'root' }); }
|
|
2497
2500
|
}
|
|
2498
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type:
|
|
2501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAiAssistPromptBoxService, decorators: [{
|
|
2499
2502
|
type: Injectable,
|
|
2500
2503
|
args: [{ providedIn: 'root' }]
|
|
2501
2504
|
}] });
|
|
@@ -3149,18 +3152,12 @@ class AXPAiManagerService extends AXPAiAssistService {
|
|
|
3149
3152
|
this.entityService = inject(AXPEntityService);
|
|
3150
3153
|
this.settings = inject(AXPSettingsService);
|
|
3151
3154
|
this.runtimeContextBuilder = inject(AXPAiPlatformRuntimeContextBuilder);
|
|
3152
|
-
this.
|
|
3155
|
+
this.assistPromptBox = inject(AXMAiAssistPromptBoxService);
|
|
3153
3156
|
this.localeId = inject(LOCALE_ID);
|
|
3154
3157
|
this.loadingDialog = inject(AXLoadingDialogService);
|
|
3155
3158
|
this.assistData = this.entityService
|
|
3156
3159
|
.withEntity(RootConfig.module.name, RootConfig.entities.assist.name)
|
|
3157
3160
|
.data();
|
|
3158
|
-
this.assistListData = this.entityService
|
|
3159
|
-
.withEntity(RootConfig.module.name, RootConfig.entities.assist.name)
|
|
3160
|
-
.data();
|
|
3161
|
-
this.agentListData = this.entityService
|
|
3162
|
-
.withEntity(RootConfig.module.name, RootConfig.entities.agent.name)
|
|
3163
|
-
.data();
|
|
3164
3161
|
this.modelEntityData = this.entityService
|
|
3165
3162
|
.withEntity(RootConfig.module.name, RootConfig.entities.model.name)
|
|
3166
3163
|
.data();
|
|
@@ -3170,53 +3167,6 @@ class AXPAiManagerService extends AXPAiAssistService {
|
|
|
3170
3167
|
}
|
|
3171
3168
|
//#endregion
|
|
3172
3169
|
//#region ---- Assist catalog (frontend) ----
|
|
3173
|
-
/**
|
|
3174
|
-
* Maps catalog `title` (multi-language or plain string) to a single-line picker label.
|
|
3175
|
-
*/
|
|
3176
|
-
toAssistPickerRow(row) {
|
|
3177
|
-
const id = row.id?.trim() ?? '';
|
|
3178
|
-
const raw = row.title ?? row.name ?? id;
|
|
3179
|
-
const title = raw == null || raw === ''
|
|
3180
|
-
? id
|
|
3181
|
-
: typeof raw === 'string'
|
|
3182
|
-
? raw.trim() || id
|
|
3183
|
-
: resolveMultiLanguageString(raw, this.localeId).trim() || id;
|
|
3184
|
-
return { id, name: row.name, title };
|
|
3185
|
-
}
|
|
3186
|
-
/**
|
|
3187
|
-
* Loads assist rows for UI pickers (e.g. header menu).
|
|
3188
|
-
*/
|
|
3189
|
-
async listAssistPickerRows() {
|
|
3190
|
-
try {
|
|
3191
|
-
const result = await this.assistListData.query({
|
|
3192
|
-
skip: 0,
|
|
3193
|
-
take: 500,
|
|
3194
|
-
sort: [{ field: 'title', dir: 'asc' }],
|
|
3195
|
-
});
|
|
3196
|
-
const items = (result?.items ?? []);
|
|
3197
|
-
return items.filter((r) => r.id?.trim()).map((r) => this.toAssistPickerRow(r));
|
|
3198
|
-
}
|
|
3199
|
-
catch {
|
|
3200
|
-
return [];
|
|
3201
|
-
}
|
|
3202
|
-
}
|
|
3203
|
-
/**
|
|
3204
|
-
* Loads AiAgent catalog rows for direct specialist chat (header picker).
|
|
3205
|
-
*/
|
|
3206
|
-
async listAgentPickerRows() {
|
|
3207
|
-
try {
|
|
3208
|
-
const result = await this.agentListData.query({
|
|
3209
|
-
skip: 0,
|
|
3210
|
-
take: 500,
|
|
3211
|
-
sort: [{ field: 'title', dir: 'asc' }],
|
|
3212
|
-
});
|
|
3213
|
-
const items = (result?.items ?? []);
|
|
3214
|
-
return items.filter((r) => r.id?.trim()).map((r) => this.toAssistPickerRow(r));
|
|
3215
|
-
}
|
|
3216
|
-
catch {
|
|
3217
|
-
return [];
|
|
3218
|
-
}
|
|
3219
|
-
}
|
|
3220
3170
|
/**
|
|
3221
3171
|
* Loads the effective assist from `DefaultAssistId` (tenant setting), or the assist named `platform-assistant`.
|
|
3222
3172
|
*/
|
|
@@ -3356,12 +3306,8 @@ class AXPAiManagerService extends AXPAiAssistService {
|
|
|
3356
3306
|
}
|
|
3357
3307
|
/** @inheritdoc */
|
|
3358
3308
|
async show(options) {
|
|
3359
|
-
const [assistPickerRows, agentPickerRows] = await Promise.all([
|
|
3360
|
-
this.listAssistPickerRows(),
|
|
3361
|
-
this.listAgentPickerRows(),
|
|
3362
|
-
]);
|
|
3363
3309
|
const runLoadingSpec = options.runLoadingDialog;
|
|
3364
|
-
const data = await this.
|
|
3310
|
+
const data = await this.assistPromptBox.open(options, async (payload) => {
|
|
3365
3311
|
let progressDialog;
|
|
3366
3312
|
if (runLoadingSpec) {
|
|
3367
3313
|
progressDialog = this.loadingDialog.show({
|
|
@@ -4489,149 +4435,9 @@ function modelItemSupportsChatCatalogPurpose(m, purpose) {
|
|
|
4489
4435
|
return p.includes('chat');
|
|
4490
4436
|
}
|
|
4491
4437
|
|
|
4492
|
-
//#region ---- Imports ----
|
|
4493
|
-
//#endregion
|
|
4494
|
-
//#region ---- Component ----
|
|
4495
|
-
class AXMAiAssistPromptPopupComponent extends AXBasePageComponent {
|
|
4496
|
-
constructor() {
|
|
4497
|
-
super(...arguments);
|
|
4498
|
-
//#region ---- Services & Dependencies ----
|
|
4499
|
-
this.toastService = inject(AXToastService);
|
|
4500
|
-
this.translation = inject(AXTranslationService);
|
|
4501
|
-
//#endregion
|
|
4502
|
-
//#region ---- State ----
|
|
4503
|
-
this.promptDraft = signal('', ...(ngDevMode ? [{ debugName: "promptDraft" }] : /* istanbul ignore next */ []));
|
|
4504
|
-
this.busy = signal(false, ...(ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []));
|
|
4505
|
-
}
|
|
4506
|
-
//#endregion
|
|
4507
|
-
//#region ---- Lifecycle ----
|
|
4508
|
-
ngOnInit() {
|
|
4509
|
-
super.ngOnInit();
|
|
4510
|
-
this.promptDraft.set(this.initialPrompt?.trim() ?? '');
|
|
4511
|
-
}
|
|
4512
|
-
//#endregion
|
|
4513
|
-
//#region ---- UI Handlers ----
|
|
4514
|
-
onPromptDraftChange(value) {
|
|
4515
|
-
this.promptDraft.set((value ?? '').toString());
|
|
4516
|
-
}
|
|
4517
|
-
canSend() {
|
|
4518
|
-
return this.promptDraft().trim().length > 0;
|
|
4519
|
-
}
|
|
4520
|
-
onCancel() {
|
|
4521
|
-
this.close(null);
|
|
4522
|
-
}
|
|
4523
|
-
async onSend() {
|
|
4524
|
-
const text = this.promptDraft().trim();
|
|
4525
|
-
if (!text || !this.onSubmit) {
|
|
4526
|
-
return;
|
|
4527
|
-
}
|
|
4528
|
-
this.busy.set(true);
|
|
4529
|
-
try {
|
|
4530
|
-
const result = await this.onSubmit(text);
|
|
4531
|
-
this.close(result);
|
|
4532
|
-
}
|
|
4533
|
-
catch (err) {
|
|
4534
|
-
const title = await this.translation.translateAsync('@general:messages.error.title');
|
|
4535
|
-
const fallback = await this.translation.translateAsync('@ai-management:assist-popup.run-error');
|
|
4536
|
-
const content = err instanceof Error ? err.message : fallback;
|
|
4537
|
-
await this.toastService.show({ color: 'danger', title, content });
|
|
4538
|
-
}
|
|
4539
|
-
finally {
|
|
4540
|
-
this.busy.set(false);
|
|
4541
|
-
}
|
|
4542
|
-
}
|
|
4543
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAiAssistPromptPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4544
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXMAiAssistPromptPopupComponent, isStandalone: true, selector: "axm-ai-assist-prompt-popup", usesInheritance: true, ngImport: i0, template: `
|
|
4545
|
-
<div class="ax-flex ax-flex-col ax-gap-4 ax-min-h-0">
|
|
4546
|
-
<ax-form-field>
|
|
4547
|
-
<ax-text-area
|
|
4548
|
-
[rows]="6"
|
|
4549
|
-
[disabled]="busy()"
|
|
4550
|
-
[ngModel]="promptDraft()"
|
|
4551
|
-
(ngModelChange)="onPromptDraftChange($event)"
|
|
4552
|
-
[placeholder]="
|
|
4553
|
-
placeholder && placeholder.trim().length > 0
|
|
4554
|
-
? placeholder
|
|
4555
|
-
: ((('@ai-management:assist-popup.placeholder' | translate | async) ?? ''))
|
|
4556
|
-
"
|
|
4557
|
-
></ax-text-area>
|
|
4558
|
-
</ax-form-field>
|
|
4559
|
-
|
|
4560
|
-
<div class="ax-flex ax-flex-wrap ax-items-center ax-justify-end ax-gap-2">
|
|
4561
|
-
<ax-button
|
|
4562
|
-
look="outline"
|
|
4563
|
-
color="secondary"
|
|
4564
|
-
type="button"
|
|
4565
|
-
[disabled]="busy()"
|
|
4566
|
-
[text]="('@ai-management:assist-popup.cancel' | translate | async) ?? ''"
|
|
4567
|
-
(onClick)="onCancel()"
|
|
4568
|
-
></ax-button>
|
|
4569
|
-
<ax-button
|
|
4570
|
-
color="primary"
|
|
4571
|
-
type="button"
|
|
4572
|
-
[disabled]="busy() || !canSend()"
|
|
4573
|
-
[text]="
|
|
4574
|
-
busy()
|
|
4575
|
-
? (('@ai-management:assist-popup.sending' | translate | async) ?? '')
|
|
4576
|
-
: (('@ai-management:assist-popup.send' | translate | async) ?? '')
|
|
4577
|
-
"
|
|
4578
|
-
(onClick)="onSend()"
|
|
4579
|
-
></ax-button>
|
|
4580
|
-
</div>
|
|
4581
|
-
</div>
|
|
4582
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: 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: AXFormModule }, { kind: "component", type: i3$1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i5.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4583
|
-
}
|
|
4584
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAiAssistPromptPopupComponent, decorators: [{
|
|
4585
|
-
type: Component,
|
|
4586
|
-
args: [{
|
|
4587
|
-
selector: 'axm-ai-assist-prompt-popup',
|
|
4588
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4589
|
-
imports: [CommonModule, FormsModule, AXButtonModule, AXFormModule, AXTextAreaModule, AXTranslationModule],
|
|
4590
|
-
template: `
|
|
4591
|
-
<div class="ax-flex ax-flex-col ax-gap-4 ax-min-h-0">
|
|
4592
|
-
<ax-form-field>
|
|
4593
|
-
<ax-text-area
|
|
4594
|
-
[rows]="6"
|
|
4595
|
-
[disabled]="busy()"
|
|
4596
|
-
[ngModel]="promptDraft()"
|
|
4597
|
-
(ngModelChange)="onPromptDraftChange($event)"
|
|
4598
|
-
[placeholder]="
|
|
4599
|
-
placeholder && placeholder.trim().length > 0
|
|
4600
|
-
? placeholder
|
|
4601
|
-
: ((('@ai-management:assist-popup.placeholder' | translate | async) ?? ''))
|
|
4602
|
-
"
|
|
4603
|
-
></ax-text-area>
|
|
4604
|
-
</ax-form-field>
|
|
4605
|
-
|
|
4606
|
-
<div class="ax-flex ax-flex-wrap ax-items-center ax-justify-end ax-gap-2">
|
|
4607
|
-
<ax-button
|
|
4608
|
-
look="outline"
|
|
4609
|
-
color="secondary"
|
|
4610
|
-
type="button"
|
|
4611
|
-
[disabled]="busy()"
|
|
4612
|
-
[text]="('@ai-management:assist-popup.cancel' | translate | async) ?? ''"
|
|
4613
|
-
(onClick)="onCancel()"
|
|
4614
|
-
></ax-button>
|
|
4615
|
-
<ax-button
|
|
4616
|
-
color="primary"
|
|
4617
|
-
type="button"
|
|
4618
|
-
[disabled]="busy() || !canSend()"
|
|
4619
|
-
[text]="
|
|
4620
|
-
busy()
|
|
4621
|
-
? (('@ai-management:assist-popup.sending' | translate | async) ?? '')
|
|
4622
|
-
: (('@ai-management:assist-popup.send' | translate | async) ?? '')
|
|
4623
|
-
"
|
|
4624
|
-
(onClick)="onSend()"
|
|
4625
|
-
></ax-button>
|
|
4626
|
-
</div>
|
|
4627
|
-
</div>
|
|
4628
|
-
`,
|
|
4629
|
-
}]
|
|
4630
|
-
}] });
|
|
4631
|
-
|
|
4632
4438
|
/**
|
|
4633
4439
|
* Generated bundle index. Do not edit.
|
|
4634
4440
|
*/
|
|
4635
4441
|
|
|
4636
|
-
export { AIMANAGEMENT_CHAT_GENERATE_IMAGE_COMMAND_KEY, AIMANAGEMENT_CHAT_SYNTHESIZE_SPEECH_COMMAND_KEY, AIMANAGEMENT_CHAT_TRANSCRIBE_SPEECH_COMMAND_KEY, AIMANAGEMENT_EXTRACT_DOCUMENT_TEXT_COMMAND_KEY, AIMANAGEMENT_STRUCTURED_TEXT_COMPLETION_COMMAND_KEY, AI_AGENT_CATALOG_DATASOURCE_NAME, AI_CHAT_ATTACHMENT_CATEGORY, AI_CHAT_ATTACHMENT_REF_TYPE, AI_CHAT_GENERATED_IMAGE_REF_TYPE, AI_CHAT_GENERATED_SPEECH_REF_TYPE, AI_COMMAND_REGISTRY_CATALOG_DATASOURCE_NAME, AI_GENERATED_IMAGE_MAX_REMOTE_URL_IN_TOOL, AI_MODEL_CATALOG_DATASOURCE_NAME, AI_MODEL_IMAGE_CATALOG_DATASOURCE_NAME, AI_MODEL_SPEECH_CATALOG_DATASOURCE_NAME, AI_MODEL_TTS_CATALOG_DATASOURCE_NAME, AI_QUERY_REGISTRY_CATALOG_DATASOURCE_NAME, AXMAiAgentCatalogDataSourceDefinition,
|
|
4442
|
+
export { AIMANAGEMENT_CHAT_GENERATE_IMAGE_COMMAND_KEY, AIMANAGEMENT_CHAT_SYNTHESIZE_SPEECH_COMMAND_KEY, AIMANAGEMENT_CHAT_TRANSCRIBE_SPEECH_COMMAND_KEY, AIMANAGEMENT_EXTRACT_DOCUMENT_TEXT_COMMAND_KEY, AIMANAGEMENT_STRUCTURED_TEXT_COMPLETION_COMMAND_KEY, AI_AGENT_CATALOG_DATASOURCE_NAME, AI_CHAT_ATTACHMENT_CATEGORY, AI_CHAT_ATTACHMENT_REF_TYPE, AI_CHAT_GENERATED_IMAGE_REF_TYPE, AI_CHAT_GENERATED_SPEECH_REF_TYPE, AI_COMMAND_REGISTRY_CATALOG_DATASOURCE_NAME, AI_GENERATED_IMAGE_MAX_REMOTE_URL_IN_TOOL, AI_MODEL_CATALOG_DATASOURCE_NAME, AI_MODEL_IMAGE_CATALOG_DATASOURCE_NAME, AI_MODEL_SPEECH_CATALOG_DATASOURCE_NAME, AI_MODEL_TTS_CATALOG_DATASOURCE_NAME, AI_QUERY_REGISTRY_CATALOG_DATASOURCE_NAME, AXMAiAgentCatalogDataSourceDefinition, AXMAiAssistPromptBoxComponent, AXMAiAssistPromptBoxService, AXMAiCommandRegistryCatalogDataSourceDefinition, AXMAiManagementEntityProvider, AXMAiManagementMenuProvider, AXMAiManagementModule, AXMAiModelCatalogDataSourceDefinition, AXMAiQueryRegistryCatalogDataSourceDefinition, AXPAI_DELEGATED_AGENT_DEFAULT_MAX_STEPS, AXPAI_DOCUMENT_VISION_DEFAULT_USER_INSTRUCTION, AXPAI_DOCUMENT_VISION_EXTRACTION_SYSTEM, AXPAI_ENGINE_DEFAULT_MAX_STEPS, AXPAI_SUPERVISOR_AGENT_TOOL_PREFIX, AXPAiAssistChatModelCatalogService, AXPAiAssistDefaultMaxStructuredRetries, AXPAiAssistDefaultStructuredMaxTokens, AXPAiAssistService, AXPAiChatToolRunContextService, AXPAiDefaultModelPickerService, AXPAiEngine, AXPAiManagementMenuKeys, AXPAiManagementSettings, AXPAiManagerService, AXPAiPlatformRuntimeContextBuilder, AXPAiStructuredOutputError, AiManagementManifest, RootConfig, axpAiAssistInitialMessagesToTranscript, axpAiChatAgentResultMessage, axpAiChatDelegatedReflectionAssistantMessage, axpAiChatMessageGetText, axpAiChatMessageIsDelegatedReflectionExcluded, axpAiChatMessagesFromProviderAssistant, axpAiChatTextMessage, axpAiChatToolOrAgentResultBodyJson, axpAiChatToolResultBodyJson, axpAiChatToolResultMessage, axpAiChatUserMessage, axpAiCoercePlanningAssistantTextToThink, axpAiCollectDelegatedAgentOutcomeResponses, axpAiDelegatedAgentOutcomeResponsesPlainText, axpAiDelegatedAgentPromptPreview, axpAiDelegatedSubTranscriptAppendFileArtifactFromToolResults, axpAiExtractLastStoredFileArtifactFromChatMessages, axpAiExtractStoredFileArtifactFromUnknown, axpAiMergePlainAssistantTextTurn, axpAiNormalizeHandlerResultToToolBody, axpAiParseDelegatedAgentResultSegmentsFromUnknown, axpAiParseSupervisorAgentToolName, axpAiPruneAssistantPiecesToFirstToolOnly, axpAiStripAssistInitialHtmlToPlain, axpAiSupervisorAgentToolName, axpAiToolCallFromAssistantToolMessage, blobOrFileFromImageResult, getAiChatCommandLlmParametersOverride, isChatPurposeModelRow, isImagePurposeModelRow, isSpeechPurposeModelRow, isTtsPurposeModelRow, modelRowHasPurpose, normalizeAiToolCommandArgs, normalizeModelPurposes, persistAiChatAttachmentImage, persistAiGeneratedImage, persistAiGeneratedSpeech };
|
|
4637
4443
|
//# sourceMappingURL=acorex-modules-ai-management.mjs.map
|