pcm-agents 0.6.11 → 0.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/error-event-J_ZWIqWF.js +33 -0
- package/dist/cjs/error-event-J_ZWIqWF.js.map +1 -0
- package/dist/cjs/{index-CvEfNyEj.js → index-CRlt8Nv6.js} +53 -3
- package/dist/cjs/index-CRlt8Nv6.js.map +1 -0
- package/dist/cjs/index-WNdOTXnX.js +11068 -0
- package/dist/cjs/index-WNdOTXnX.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +3 -5
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/message.service-DGUsA-FY.js +135 -0
- package/dist/cjs/message.service-DGUsA-FY.js.map +1 -0
- package/dist/cjs/{pcm-1zhanshi-mnms-modal_17.cjs.entry.js → pcm-1zhanshi-mnms-modal_21.cjs.entry.js} +3276 -216
- package/dist/cjs/pcm-1zhanshi-mnms-modal_21.cjs.entry.js.map +1 -0
- package/dist/cjs/pcm-agents.cjs.js +4 -6
- package/dist/cjs/pcm-agents.cjs.js.map +1 -1
- package/dist/cjs/pcm-message.cjs.entry.js +3 -3
- package/dist/cjs/pcm-message.cjs.entry.js.map +1 -1
- package/dist/cjs/pcm-message.entry.cjs.js.map +1 -1
- package/dist/cjs/pcm-mnms-video-modal.cjs.entry.js +8 -8
- package/dist/cjs/pcm-mnms-video-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/pcm-mnms-video-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/pcm-mnms-zp-modal.cjs.entry.js +29 -86
- package/dist/cjs/pcm-mnms-zp-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/pcm-mnms-zp-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/{sentry-reporter-BWFtw_aT.js → sentry-reporter-tpI4WdkE.js} +12 -40
- package/dist/cjs/sentry-reporter-tpI4WdkE.js.map +1 -0
- package/dist/collection/collection-manifest.json +5 -1
- package/dist/collection/components/pcm-1zhanshi-mnms-modal/pcm-1zhanshi-mnms-modal.js.map +1 -1
- package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.css +986 -986
- package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.js +7 -9
- package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.js.map +1 -1
- package/dist/collection/components/pcm-button/pcm-button.css +199 -199
- package/dist/collection/components/pcm-button/pcm-button.js +6 -6
- package/dist/collection/components/pcm-button/pcm-button.js.map +1 -1
- package/dist/collection/components/pcm-card/pcm-card.css +259 -259
- package/dist/collection/components/pcm-card/pcm-card.js +1 -1
- package/dist/collection/components/pcm-card/pcm-card.js.map +1 -1
- package/dist/collection/components/pcm-chat-message/pcm-chat-message.css +554 -554
- package/dist/collection/components/pcm-chat-message/pcm-chat-message.js +3 -3
- package/dist/collection/components/pcm-chat-message/pcm-chat-message.js.map +1 -1
- package/dist/collection/components/pcm-drawer/pcm-drawer.css +102 -102
- package/dist/collection/components/pcm-drawer/pcm-drawer.js +1 -1
- package/dist/collection/components/pcm-drawer/pcm-drawer.js.map +1 -1
- package/dist/collection/components/pcm-hr-chat-modal/pcm-hr-chat-modal.css +854 -854
- package/dist/collection/components/pcm-hr-chat-modal/pcm-hr-chat-modal.js +5 -7
- package/dist/collection/components/pcm-hr-chat-modal/pcm-hr-chat-modal.js.map +1 -1
- package/dist/collection/components/pcm-htws-modal/pcm-htws-modal.css +95 -95
- package/dist/collection/components/pcm-htws-modal/pcm-htws-modal.js +1 -1
- package/dist/collection/components/pcm-htws-modal/pcm-htws-modal.js.map +1 -1
- package/dist/collection/components/pcm-hyzj-modal/pcm-hyzj-modal.js +2 -2
- package/dist/collection/components/pcm-hyzj-modal/pcm-hyzj-modal.js.map +1 -1
- package/dist/collection/components/pcm-jd-modal/pcm-jd-modal.css +312 -312
- package/dist/collection/components/pcm-jd-modal/pcm-jd-modal.js +1 -1
- package/dist/collection/components/pcm-jd-modal/pcm-jd-modal.js.map +1 -1
- package/dist/collection/components/pcm-jlpp-modal/pcm-jlpp-modal.js +2 -2
- package/dist/collection/components/pcm-jlpp-modal/pcm-jlpp-modal.js.map +1 -1
- package/dist/collection/components/pcm-message/pcm-message.css +64 -64
- package/dist/collection/components/pcm-message/pcm-message.js +2 -2
- package/dist/collection/components/pcm-message/pcm-message.js.map +1 -1
- package/dist/collection/components/pcm-mnct-modal/pcm-mnct-modal.css +1 -1
- package/dist/collection/components/pcm-mnct-modal/pcm-mnct-modal.js +2 -2
- package/dist/collection/components/pcm-mnct-modal/pcm-mnct-modal.js.map +1 -1
- package/dist/collection/components/pcm-mnms-modal/pcm-mnms-modal.js +67 -84
- package/dist/collection/components/pcm-mnms-modal/pcm-mnms-modal.js.map +1 -1
- package/dist/collection/components/pcm-mnms-video-modal/pcm-mnms-video-modal.js +2 -2
- package/dist/collection/components/pcm-mnms-video-modal/pcm-mnms-video-modal.js.map +1 -1
- package/dist/collection/components/pcm-mnms-zp-modal/pcm-mnms-zp-modal.js +67 -84
- package/dist/collection/components/pcm-mnms-zp-modal/pcm-mnms-zp-modal.js.map +1 -1
- package/dist/collection/components/pcm-mobile-input-btn/pcm-mobile-input-btn.css +140 -0
- package/dist/collection/components/pcm-mobile-input-btn/pcm-mobile-input-btn.js +307 -0
- package/dist/collection/components/pcm-mobile-input-btn/pcm-mobile-input-btn.js.map +1 -0
- package/dist/collection/components/pcm-mobile-input-btn/uploadNumberSDK.js +25 -0
- package/dist/collection/components/pcm-mobile-input-btn/uploadNumberSDK.js.map +1 -0
- package/dist/collection/components/pcm-mobile-upload-btn/pcm-mobile-upload-btn.css +127 -0
- package/dist/collection/components/pcm-mobile-upload-btn/pcm-mobile-upload-btn.js +350 -0
- package/dist/collection/components/pcm-mobile-upload-btn/pcm-mobile-upload-btn.js.map +1 -0
- package/dist/collection/components/pcm-mobile-upload-btn/uploadNumberSDK.js +25 -0
- package/dist/collection/components/pcm-mobile-upload-btn/uploadNumberSDK.js.map +1 -0
- package/dist/collection/components/pcm-msbg-modal/pcm-msbg-modal.js +2 -2
- package/dist/collection/components/pcm-msbg-modal/pcm-msbg-modal.js.map +1 -1
- package/dist/collection/components/pcm-qgqjl-modal/pcm-qgqjl-modal.css +1 -1
- package/dist/collection/components/pcm-qgqjl-modal/pcm-qgqjl-modal.js +2 -2
- package/dist/collection/components/pcm-qgqjl-modal/pcm-qgqjl-modal.js.map +1 -1
- package/dist/collection/components/pcm-time-count-down/pcm-time-count-down.css +0 -0
- package/dist/collection/components/pcm-time-count-down/pcm-time-count-down.js +106 -0
- package/dist/collection/components/pcm-time-count-down/pcm-time-count-down.js.map +1 -0
- package/dist/collection/components/pcm-upload/pcm-upload.css +0 -0
- package/dist/collection/components/pcm-upload/pcm-upload.js +408 -0
- package/dist/collection/components/pcm-upload/pcm-upload.js.map +1 -0
- package/dist/collection/components/pcm-zsk-chat-modal/pcm-zsk-chat-modal.css +969 -969
- package/dist/collection/components/pcm-zsk-chat-modal/pcm-zsk-chat-modal.js +3 -5
- package/dist/collection/components/pcm-zsk-chat-modal/pcm-zsk-chat-modal.js.map +1 -1
- package/dist/collection/components/pcm-zygh-modal/pcm-zygh-modal.css +68 -68
- package/dist/collection/components/pcm-zygh-modal/pcm-zygh-modal.js +4 -4
- package/dist/collection/components/pcm-zygh-modal/pcm-zygh-modal.js.map +1 -1
- package/dist/collection/global/global.css +401 -398
- package/dist/collection/global/markdown.css +1233 -1233
- package/dist/collection/global/message.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/interfaces/chat.js.map +1 -1
- package/dist/collection/interfaces/events.js.map +1 -1
- package/dist/collection/services/message.service.js.map +1 -1
- package/dist/collection/utils/env.js +3 -0
- package/dist/collection/utils/env.js.map +1 -1
- package/dist/collection/utils/error-event.js.map +1 -1
- package/dist/collection/utils/init.js.map +1 -1
- package/dist/collection/utils/sentry-reporter.js.map +1 -1
- package/dist/collection/utils/utils.js +48 -24
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/index.js +3 -5482
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-AYWZDCn8.js → p-B0WOTw9J.js} +51 -4
- package/dist/components/p-B0WOTw9J.js.map +1 -0
- package/dist/components/{p-DUQ46MUh.js → p-BGXbWUJg.js} +3 -3
- package/dist/components/{p-DUQ46MUh.js.map → p-BGXbWUJg.js.map} +1 -1
- package/dist/{esm/sentry-reporter-BFBS363a.js → components/p-BW3r6Lrf.js} +5 -32
- package/dist/components/p-BW3r6Lrf.js.map +1 -0
- package/dist/{esm/app-globals-Chti62re.js → components/p-BdiUKin5.js} +9619 -4296
- package/dist/components/p-BdiUKin5.js.map +1 -0
- package/dist/components/{p-FjtoYPVY.js → p-BywzltXy.js} +10 -9
- package/dist/components/p-BywzltXy.js.map +1 -0
- package/dist/components/p-C2OsjtRx.js +208 -0
- package/dist/components/p-C2OsjtRx.js.map +1 -0
- package/dist/components/{p-D2Z8casl.js → p-CuIvbaWY.js} +5 -5
- package/dist/components/p-CuIvbaWY.js.map +1 -0
- package/dist/components/p-D0ZMoyH8.js +251 -0
- package/dist/components/p-D0ZMoyH8.js.map +1 -0
- package/dist/components/{p-CjbFHLT7.js → p-De3VHEUn.js} +7 -71
- package/dist/components/p-De3VHEUn.js.map +1 -0
- package/dist/components/p-Dv8qvK0w.js +2646 -0
- package/dist/components/p-Dv8qvK0w.js.map +1 -0
- package/dist/components/p-RD3mwuBX.js +226 -0
- package/dist/components/p-RD3mwuBX.js.map +1 -0
- package/dist/components/p-njngFX_n.js +80 -0
- package/dist/components/p-njngFX_n.js.map +1 -0
- package/dist/components/pcm-1zhanshi-mnms-modal.js +7 -7
- package/dist/components/pcm-1zhanshi-mnms-modal.js.map +1 -1
- package/dist/components/pcm-app-chat-modal.js +1 -1
- package/dist/components/pcm-button.js +2 -2
- package/dist/components/pcm-button.js.map +1 -1
- package/dist/components/pcm-card.js +3 -3
- package/dist/components/pcm-card.js.map +1 -1
- package/dist/components/pcm-chat-message.js +1 -1
- package/dist/components/pcm-drawer.js +1 -1
- package/dist/components/pcm-hr-chat-modal.js +5 -4
- package/dist/components/pcm-hr-chat-modal.js.map +1 -1
- package/dist/components/pcm-htws-modal.js +8 -7
- package/dist/components/pcm-htws-modal.js.map +1 -1
- package/dist/components/pcm-hyzj-modal.js +8 -7
- package/dist/components/pcm-hyzj-modal.js.map +1 -1
- package/dist/components/pcm-jd-modal.js +8 -7
- package/dist/components/pcm-jd-modal.js.map +1 -1
- package/dist/components/pcm-jlpp-modal.js +8 -7
- package/dist/components/pcm-jlpp-modal.js.map +1 -1
- package/dist/components/pcm-message.js +3 -3
- package/dist/components/pcm-message.js.map +1 -1
- package/dist/components/pcm-mnct-modal.js +8 -7
- package/dist/components/pcm-mnct-modal.js.map +1 -1
- package/dist/components/pcm-mnms-modal.js +60 -90
- package/dist/components/pcm-mnms-modal.js.map +1 -1
- package/dist/components/pcm-mnms-video-modal.js +8 -7
- package/dist/components/pcm-mnms-video-modal.js.map +1 -1
- package/dist/components/pcm-mnms-zp-modal.js +60 -90
- package/dist/components/pcm-mnms-zp-modal.js.map +1 -1
- package/dist/components/pcm-mobile-input-btn.d.ts +11 -0
- package/dist/components/pcm-mobile-input-btn.js +9 -0
- package/dist/components/pcm-mobile-input-btn.js.map +1 -0
- package/dist/components/pcm-mobile-upload-btn.d.ts +11 -0
- package/dist/components/pcm-mobile-upload-btn.js +9 -0
- package/dist/components/pcm-mobile-upload-btn.js.map +1 -0
- package/dist/components/pcm-msbg-modal.js +8 -7
- package/dist/components/pcm-msbg-modal.js.map +1 -1
- package/dist/components/pcm-qgqjl-modal.js +8 -7
- package/dist/components/pcm-qgqjl-modal.js.map +1 -1
- package/dist/components/pcm-time-count-down.d.ts +11 -0
- package/dist/components/pcm-time-count-down.js +9 -0
- package/dist/components/pcm-time-count-down.js.map +1 -0
- package/dist/components/pcm-upload.d.ts +11 -0
- package/dist/components/pcm-upload.js +9 -0
- package/dist/components/pcm-upload.js.map +1 -0
- package/dist/components/pcm-zsk-chat-modal.js +4 -4
- package/dist/components/pcm-zsk-chat-modal.js.map +1 -1
- package/dist/components/pcm-zygh-modal.js +8 -7
- package/dist/components/pcm-zygh-modal.js.map +1 -1
- package/dist/esm/error-event-C0FYX2-Z.js +31 -0
- package/dist/esm/error-event-C0FYX2-Z.js.map +1 -0
- package/dist/esm/{index-GyOE8SlD.js → index-BnNqOUZf.js} +51 -4
- package/dist/esm/index-BnNqOUZf.js.map +1 -0
- package/dist/esm/index-BuVfV0zo.js +11035 -0
- package/dist/esm/index-BuVfV0zo.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +3 -5
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/message.service-DXVhHj6-.js +133 -0
- package/dist/esm/message.service-DXVhHj6-.js.map +1 -0
- package/dist/esm/{pcm-1zhanshi-mnms-modal_17.entry.js → pcm-1zhanshi-mnms-modal_21.entry.js} +3225 -169
- package/dist/esm/pcm-1zhanshi-mnms-modal_21.entry.js.map +1 -0
- package/dist/esm/pcm-agents.js +4 -6
- package/dist/esm/pcm-agents.js.map +1 -1
- package/dist/esm/pcm-message.entry.js +3 -3
- package/dist/esm/pcm-message.entry.js.map +1 -1
- package/dist/esm/pcm-mnms-video-modal.entry.js +5 -5
- package/dist/esm/pcm-mnms-video-modal.entry.js.map +1 -1
- package/dist/esm/pcm-mnms-zp-modal.entry.js +28 -85
- package/dist/esm/pcm-mnms-zp-modal.entry.js.map +1 -1
- package/dist/esm/sentry-reporter-CYzy4_8O.js +70 -0
- package/dist/esm/sentry-reporter-CYzy4_8O.js.map +1 -0
- package/dist/pcm-agents/index.esm.js +1 -1
- package/dist/pcm-agents/loader.esm.js.map +1 -1
- package/dist/pcm-agents/p-18a06873.entry.js +2 -0
- package/dist/pcm-agents/p-18a06873.entry.js.map +1 -0
- package/dist/pcm-agents/p-47e2e1d0.entry.js +2 -0
- package/dist/pcm-agents/p-47e2e1d0.entry.js.map +1 -0
- package/dist/pcm-agents/{p-3608c0c6.entry.js → p-7a582f00.entry.js} +2 -2
- package/dist/pcm-agents/p-7a582f00.entry.js.map +1 -0
- package/dist/pcm-agents/p-BhFnI70g.js +2 -0
- package/dist/pcm-agents/p-BhFnI70g.js.map +1 -0
- package/dist/pcm-agents/p-BuVfV0zo.js +3 -0
- package/dist/pcm-agents/p-BuVfV0zo.js.map +1 -0
- package/dist/pcm-agents/p-C0FYX2-Z.js +2 -0
- package/dist/pcm-agents/p-C0FYX2-Z.js.map +1 -0
- package/dist/pcm-agents/p-DXVhHj6-.js +2 -0
- package/dist/pcm-agents/p-DXVhHj6-.js.map +1 -0
- package/dist/pcm-agents/p-DkeaAFic.js +2 -0
- package/dist/pcm-agents/p-DkeaAFic.js.map +1 -0
- package/dist/pcm-agents/p-f5f96853.entry.js +245 -0
- package/dist/pcm-agents/p-f5f96853.entry.js.map +1 -0
- package/dist/pcm-agents/pcm-agents.esm.js +1 -1
- package/dist/pcm-agents/pcm-agents.esm.js.map +1 -1
- package/dist/pcm-agents/pcm-message.entry.esm.js.map +1 -1
- package/dist/pcm-agents/pcm-mnms-video-modal.entry.esm.js.map +1 -1
- package/dist/pcm-agents/pcm-mnms-zp-modal.entry.esm.js.map +1 -1
- package/dist/store/auth.store.js.map +1 -1
- package/dist/store/config.store.js.map +1 -1
- package/dist/types/components/pcm-mnms-modal/pcm-mnms-modal.d.ts +9 -4
- package/dist/types/components/pcm-mnms-zp-modal/pcm-mnms-zp-modal.d.ts +9 -4
- package/dist/types/components/pcm-mobile-input-btn/pcm-mobile-input-btn.d.ts +36 -0
- package/dist/types/components/pcm-mobile-input-btn/uploadNumberSDK.d.ts +9 -0
- package/dist/types/components/pcm-mobile-upload-btn/pcm-mobile-upload-btn.d.ts +44 -0
- package/dist/types/components/pcm-mobile-upload-btn/uploadNumberSDK.d.ts +9 -0
- package/dist/types/components/pcm-time-count-down/pcm-time-count-down.d.ts +15 -0
- package/dist/types/components/pcm-upload/pcm-upload.d.ts +54 -0
- package/dist/types/components/pcm-upload/type.d.ts +4 -0
- package/dist/types/components.d.ts +798 -30
- package/dist/types/stencil-public-runtime.d.ts +1 -1
- package/dist/types/utils/env.d.ts +2 -0
- package/dist/types/utils/utils.d.ts +30 -12
- package/package.json +70 -69
- package/dist/cjs/app-globals-BIO4q6tX.js +0 -5487
- package/dist/cjs/app-globals-BIO4q6tX.js.map +0 -1
- package/dist/cjs/exports-Dc-pQh4A.js +0 -4087
- package/dist/cjs/exports-Dc-pQh4A.js.map +0 -1
- package/dist/cjs/index-C_qhED9Z.js +0 -1538
- package/dist/cjs/index-C_qhED9Z.js.map +0 -1
- package/dist/cjs/index-CvEfNyEj.js.map +0 -1
- package/dist/cjs/pcm-1zhanshi-mnms-modal_17.cjs.entry.js.map +0 -1
- package/dist/cjs/sentry-reporter-BWFtw_aT.js.map +0 -1
- package/dist/components/p-75J0r72D.js +0 -4017
- package/dist/components/p-75J0r72D.js.map +0 -1
- package/dist/components/p-AYWZDCn8.js.map +0 -1
- package/dist/components/p-CR7WLzmM.js +0 -1303
- package/dist/components/p-CR7WLzmM.js.map +0 -1
- package/dist/components/p-CjbFHLT7.js.map +0 -1
- package/dist/components/p-D2Z8casl.js.map +0 -1
- package/dist/components/p-FjtoYPVY.js.map +0 -1
- package/dist/esm/app-globals-Chti62re.js.map +0 -1
- package/dist/esm/exports-Bs-zO1WZ.js +0 -4017
- package/dist/esm/exports-Bs-zO1WZ.js.map +0 -1
- package/dist/esm/index-Bq0K-WqZ.js +0 -1528
- package/dist/esm/index-Bq0K-WqZ.js.map +0 -1
- package/dist/esm/index-GyOE8SlD.js.map +0 -1
- package/dist/esm/pcm-1zhanshi-mnms-modal_17.entry.js.map +0 -1
- package/dist/esm/sentry-reporter-BFBS363a.js.map +0 -1
- package/dist/pcm-agents/p-2Gpw8rvH.js +0 -2
- package/dist/pcm-agents/p-2Gpw8rvH.js.map +0 -1
- package/dist/pcm-agents/p-3608c0c6.entry.js.map +0 -1
- package/dist/pcm-agents/p-60d7a0b0.entry.js +0 -2
- package/dist/pcm-agents/p-60d7a0b0.entry.js.map +0 -1
- package/dist/pcm-agents/p-9e6efc2d.entry.js +0 -2
- package/dist/pcm-agents/p-9e6efc2d.entry.js.map +0 -1
- package/dist/pcm-agents/p-BUV0S8Cc.js +0 -2
- package/dist/pcm-agents/p-BUV0S8Cc.js.map +0 -1
- package/dist/pcm-agents/p-Bq0K-WqZ.js +0 -3
- package/dist/pcm-agents/p-Bq0K-WqZ.js.map +0 -1
- package/dist/pcm-agents/p-Bs-zO1WZ.js +0 -2
- package/dist/pcm-agents/p-Bs-zO1WZ.js.map +0 -1
- package/dist/pcm-agents/p-CeRTfvY9.js +0 -2
- package/dist/pcm-agents/p-CeRTfvY9.js.map +0 -1
- package/dist/pcm-agents/p-e6c87a78.entry.js +0 -2
- package/dist/pcm-agents/p-e6c87a78.entry.js.map +0 -1
- /package/dist/types/{code/agents-sdk → Users/debugksir/Documents/pcm/sdk}/packages/pcm-agents/.stencil/store/auth.store.d.ts +0 -0
- /package/dist/types/{code/agents-sdk → Users/debugksir/Documents/pcm/sdk}/packages/pcm-agents/.stencil/store/config.store.d.ts +0 -0
|
@@ -315,7 +315,7 @@ export class ChatMessageComponent {
|
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
317
|
render() {
|
|
318
|
-
return (h("div", { key: '
|
|
318
|
+
return (h("div", { key: 'c337dbb59e5236ac112554ec34da6355e63d806f', class: "message-round" }, this.renderUserMessage(), this.renderAssistantMessage()));
|
|
319
319
|
}
|
|
320
320
|
static get is() { return "pcm-chat-message"; }
|
|
321
321
|
static get encapsulation() { return "shadow"; }
|
|
@@ -465,7 +465,7 @@ export class ChatMessageComponent {
|
|
|
465
465
|
"optional": false,
|
|
466
466
|
"docs": {
|
|
467
467
|
"tags": [],
|
|
468
|
-
"text": "\u9644\u4EF6\u9884\u89C8\u6A21\u5F0F\
|
|
468
|
+
"text": "\u9644\u4EF6\u9884\u89C8\u6A21\u5F0F\n'drawer': \u5728\u53F3\u4FA7\u62BD\u5C49\u4E2D\u9884\u89C8\n'window': \u5728\u65B0\u7A97\u53E3\u4E2D\u6253\u5F00"
|
|
469
469
|
},
|
|
470
470
|
"getter": false,
|
|
471
471
|
"setter": false,
|
|
@@ -517,7 +517,7 @@ export class ChatMessageComponent {
|
|
|
517
517
|
"text": ""
|
|
518
518
|
},
|
|
519
519
|
"complexType": {
|
|
520
|
-
"original": "{\
|
|
520
|
+
"original": "{\n url?: string,\n fileName: string,\n content?: string,\n contentType: 'file' | 'markdown' | 'text'\n }",
|
|
521
521
|
"resolved": "{ url?: string; fileName: string; content?: string; contentType: \"text\" | \"file\" | \"markdown\"; }",
|
|
522
522
|
"references": {}
|
|
523
523
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pcm-chat-message.js","sourceRoot":"","sources":["../../../../src/components/pcm-chat-message/pcm-chat-message.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, Event, EventEmitter, State } from '@stencil/core';\r\nimport { marked } from 'marked';\r\nimport extendedTables from 'marked-extended-tables';\r\nimport { ChatMessage } from '../../interfaces/chat';\r\nimport { sendHttpRequest, getCosPresignedUrl, getCosPreviewUrl } from '../../utils/utils';\r\nimport { ErrorEventBus } from '../../utils/error-event';\r\nimport { SentryReporter } from '../../utils/sentry-reporter';\r\n\r\n@Component({\r\n tag: 'pcm-chat-message',\r\n styleUrls: ['../../global/markdown.css', 'pcm-chat-message.css'],\r\n shadow: true,\r\n})\r\nexport class ChatMessageComponent {\r\n /**\r\n * 消息数据\r\n */\r\n @Prop() message: ChatMessage;\r\n\r\n /**\r\n * 是否显示点赞点踩按钮 \r\n */\r\n @Prop() showFeedbackButtons: boolean = true;\r\n\r\n /**\r\n * 机器人ID\r\n */\r\n @Prop() botId?: string;\r\n\r\n /**\r\n * 消息变更事件\r\n */\r\n @Event() messageChange: EventEmitter<Partial<ChatMessage>>;\r\n\r\n // 使用 @Element 装饰器获取组件的 host 元素\r\n @Element() hostElement: HTMLElement;\r\n\r\n /**\r\n * 点赞点踩状态\r\n */\r\n @State() feedbackStatus: 'like' | 'dislike' | null = null;\r\n\r\n /**\r\n * 视频播放URLs缓存\r\n */\r\n @State() videoUrls: { [key: string]: string } = {};\r\n\r\n /**\r\n * 用户头像URL\r\n */\r\n @Prop() userAvatar?: string;\r\n\r\n /**\r\n * 助手头像URL\r\n */\r\n @Prop() assistantAvatar?: string;\r\n\r\n /**\r\n * 是否显示复制按钮\r\n */\r\n @Prop() showCopyButton: boolean = true;\r\n\r\n /**\r\n * 附件预览模式\r\n * 'drawer': 在右侧抽屉中预览\r\n * 'window': 在新窗口中打开\r\n */\r\n @Prop() filePreviewMode: 'drawer' | 'window' = 'window';\r\n\r\n @Event() filePreviewRequest: EventEmitter<{\r\n url?: string,\r\n fileName: string,\r\n content?: string,\r\n contentType: 'file' | 'markdown' | 'text'\r\n }>;\r\n\r\n /**\r\n * 重试事件\r\n */\r\n @Event() retryRequest: EventEmitter<string>; // 传递消息ID\r\n\r\n constructor() {\r\n // 配置 marked 选项\r\n marked.use(extendedTables);\r\n marked.setOptions({\r\n breaks: true,\r\n gfm: true\r\n });\r\n }\r\n\r\n /**\r\n * 组件加载时检查消息是否已有反馈状态\r\n */\r\n componentWillLoad() {\r\n\r\n // 如果消息已经有反馈状态,初始化feedbackStatus\r\n if (this.message && this.message.feedback) {\r\n this.feedbackStatus = this.message.feedback.rating as 'like' | 'dislike' | null;\r\n }\r\n }\r\n\r\n // 复制消息内容到剪贴板\r\n private copyMessageContent() {\r\n if (this.message.answer) {\r\n navigator.clipboard.writeText(this.message.answer)\r\n .then(() => {\r\n // 可以添加复制成功的提示\r\n console.log('内容已复制到剪贴板');\r\n alert('内容已复制到剪贴板');\r\n })\r\n .catch(err => {\r\n // 使用全局事件总线发送错误\r\n ErrorEventBus.emitError({\r\n error: err,\r\n message: '复制内容失败',\r\n });\r\n console.error('复制失败:', err);\r\n });\r\n }\r\n }\r\n\r\n // 渲染用户消息部分\r\n private renderUserMessage() {\r\n if (!this.message?.query?.trim()) return null;\r\n const htmlContent = this.message.query ? marked(this.message.query) : '';\r\n\r\n return (\r\n <div class={{ 'user-message-container': true }}>\r\n {this.userAvatar && (\r\n <div class=\"avatar user-avatar\">\r\n <img src={this.userAvatar} alt=\"用户头像\" />\r\n </div>\r\n )}\r\n <div class=\"message-bubble user-message\">\r\n <div innerHTML={htmlContent}></div>\r\n {this.renderInputs()}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // 渲染助手消息部分\r\n private renderAssistantMessage() {\r\n if (!this.message.answer && !this.message.isStreaming) return null;\r\n\r\n // 只有在开始流式输出且还没有内容时才显示loading\r\n const showLoading = this.message.isStreaming && !this.message.answer;\r\n const htmlContent = this.message.answer ? marked(this.message.answer) : '';\r\n\r\n return (\r\n <div class={{ 'assistant-message-container': true }}>\r\n {this.assistantAvatar && (\r\n <div class=\"avatar assistant-avatar\">\r\n <img src={this.assistantAvatar} alt=\"助手头像\" />\r\n </div>\r\n )}\r\n <div class=\"message-bubble \">\r\n <div class=\"assistant-message\">\r\n <div\r\n class=\"markdown-content markdown-body\"\r\n innerHTML={showLoading ?\r\n `请稍等...` :\r\n htmlContent\r\n }\r\n ></div>\r\n </div>\r\n {!showLoading && this.message.answer && !this.message.isStreaming && (\r\n <div class=\"message-actions\">\r\n {/* 根据父组件传入的属性决定是否显示重试按钮 */}\r\n {this.message.showRetryButton && (\r\n <button class=\"action-button retry-button\" onClick={() => this.handleRetry()} title=\"重试\">\r\n <span class=\"button-icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"23 4 23 10 17 10\"></polyline>\r\n <polyline points=\"1 20 1 14 7 14\"></polyline>\r\n <path d=\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"></path>\r\n </svg>\r\n </span>\r\n 重试\r\n </button>\r\n )}\r\n\r\n {this.showCopyButton && (\r\n <button class=\"action-button\" onClick={() => this.copyMessageContent()} title=\"复制内容\">\r\n <span class=\"button-icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"></rect>\r\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"></path>\r\n </svg>\r\n </span>\r\n 复制\r\n </button>\r\n )}\r\n {this.showFeedbackButtons && (\r\n <>\r\n <button\r\n class={`action-button icon-only ${this.feedbackStatus === 'like' ? 'active' : ''}`}\r\n title=\"赞\"\r\n onClick={() => this.handleLike()}\r\n >\r\n <span class=\"button-icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"></path>\r\n </svg>\r\n </span>\r\n </button>\r\n <button\r\n class={`action-button icon-only ${this.feedbackStatus === 'dislike' ? 'active' : ''}`}\r\n title=\"踩\"\r\n onClick={() => this.handleDislike()}\r\n >\r\n <span class=\"button-icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"></path>\r\n </svg>\r\n </span>\r\n </button>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private getFileName(fileUrl: string): string {\r\n const parts = fileUrl.split('/');\r\n return parts[parts.length - 1];\r\n }\r\n\r\n\r\n // 添加处理文本内容点击的方法\r\n private handleContentClick(title: string, content: string, contentType: 'markdown' | 'text' = 'text') {\r\n this.filePreviewRequest.emit({\r\n fileName: title,\r\n content: content,\r\n contentType: contentType\r\n });\r\n }\r\n\r\n // 加载视频播放URL\r\n private async loadVideoUrl(cosKey: string) {\r\n if (this.videoUrls[cosKey]) {\r\n return; // 已经加载过了\r\n }\r\n\r\n const videoUrl = await getCosPresignedUrl(cosKey);\r\n if (videoUrl) {\r\n this.videoUrls = {\r\n ...this.videoUrls,\r\n [cosKey]: videoUrl\r\n };\r\n }\r\n }\r\n\r\n // 修改处理文件点击的方法\r\n private async handleFileClick(fileUrl: string, fileName: string) {\r\n const previewUrl = await getCosPreviewUrl(fileUrl);\r\n if (previewUrl) {\r\n if (this.filePreviewMode === 'drawer') {\r\n this.filePreviewRequest.emit({\r\n url: previewUrl,\r\n fileName: fileName,\r\n contentType: 'file'\r\n });\r\n } else {\r\n window.open(previewUrl, '_blank');\r\n }\r\n } else {\r\n console.error('无法获取预览URL');\r\n SentryReporter.captureError('无法获取预览URL', {\r\n action: 'handleFileClick',\r\n component: 'pcm-chat-message',\r\n title: '无法获取预览URL'\r\n });\r\n ErrorEventBus.emitError({\r\n error: '无法获取预览URL',\r\n message: '无法获取预览URL',\r\n });\r\n }\r\n }\r\n\r\n // 修改渲染文件项的部分\r\n private renderFileItem(fileName: string, fileUrl: string, index: number) {\r\n return (\r\n <div key={index} class=\"file-card\" onClick={() => this.handleFileClick(fileUrl, fileName)}>\r\n <div class=\"file-card-icon\" style={{ background: 'linear-gradient(45deg, #ff5600, #ff8344)' }}>\r\n <img src=\"https://pub.pincaimao.com/static/web/images/home/i_file.png\"></img>\r\n </div>\r\n <div class=\"file-card-content\">\r\n <div class=\"file-card-type\">[附件信息]</div>\r\n <div class=\"file-card-name\">{fileName}</div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // 修改渲染输入数据的方法\r\n private renderInputs() {\r\n if (!this.message.inputs) return null;\r\n\r\n // 检查是否所有字段都为 null、undefined 或空字符串\r\n const hasValidInput = Object.keys(this.message.inputs).some(key => {\r\n const value = this.message.inputs[key];\r\n return value !== null && value !== undefined && value !== '' &&\r\n !key.startsWith('hide_') && key !== 'answer';\r\n });\r\n\r\n // 如果没有有效输入,返回 null\r\n if (!hasValidInput) return null;\r\n\r\n return (\r\n <div class=\"inputs-container\">\r\n {Object.keys(this.message.inputs).map((key, index) => {\r\n const value = this.message.inputs[key];\r\n if (value && !key.startsWith('hide_') && key !== 'answer') {\r\n if (key === 'video_url') {\r\n // 渲染视频播放区域\r\n const cosKey = value;\r\n const videoUrl = this.videoUrls[cosKey];\r\n\r\n // 如果还没有加载视频URL,异步加载\r\n if (!videoUrl) {\r\n this.loadVideoUrl(cosKey);\r\n }\r\n\r\n return (\r\n <div class=\"video-inputs-container\">\r\n <div key={index} class=\"video-container\">\r\n {videoUrl ? (\r\n <video\r\n key={cosKey}\r\n controls\r\n preload=\"metadata\"\r\n onLoadedMetaData={(e) => {\r\n // 确保进度条正确显示\r\n const video = e.target as HTMLVideoElement;\r\n video.currentTime = 0.01;\r\n }}\r\n controlsList=\"nodownload\"\r\n style={{\r\n width: '250px',\r\n height: 'auto',\r\n maxHeight: '250px',\r\n borderRadius: '8px',\r\n marginTop: '8px'\r\n }}\r\n >\r\n <source src={videoUrl} type=\"video/webm\" />\r\n <source src={videoUrl} type=\"video/mp4\" />\r\n <source src={videoUrl} type=\"video/ogg\" />\r\n 您的浏览器不支持视频播放。\r\n </video>\r\n ) : (\r\n <div class=\"video-loading\">\r\n <div class=\"loading-spinner\"></div>\r\n <span>正在加载视频...</span>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n } else if (key === 'file_url') {\r\n // 优先使用 file_name 属性,如果不存在则从 file_url 提取文件名\r\n const fileName = this.message.inputs.file_name || this.getFileName(value);\r\n return this.renderFileItem(fileName, value, index);\r\n } else if (key === 'file_urls') {\r\n // 始终将 file_urls 视为逗号分隔的字符串\r\n const fileList = typeof value === 'string' ? value.split(',') : [value.toString()];\r\n\r\n // 同样将 file_names 视为逗号分隔的字符串\r\n const fileNames = this.message.inputs.file_names ?\r\n (typeof this.message.inputs.file_names === 'string' ?\r\n this.message.inputs.file_names.split(',') :\r\n [this.message.inputs.file_names.toString()]) :\r\n [];\r\n\r\n return (\r\n <div key={index}>\r\n {fileList.map((fileUrl, fileIndex) => {\r\n // 使用对应的文件名,如果不存在则从URL提取\r\n const fileName = fileNames[fileIndex] || this.getFileName(fileUrl);\r\n return this.renderFileItem(fileName, fileUrl, fileIndex);\r\n })}\r\n </div>\r\n );\r\n } else if (key === 'job_info' || key === 'rule') {\r\n const title = key === 'job_info' ? '职位信息' : '评估规则';\r\n const content = typeof value === 'string' ? value : JSON.stringify(value, null, 2);\r\n\r\n return (\r\n <div key={index} class=\"file-card\" onClick={() => this.handleContentClick(title, content)}>\r\n <div class=\"file-card-icon\" style={{ background: '#0d75fb' }}>\r\n <img src=\"https://pub.pincaimao.com/static/web/images/home/i_position.png\"></img>\r\n </div>\r\n <div class=\"file-card-content\">\r\n <div class=\"file-card-type\">[{title}]</div>\r\n <div class=\"file-card-name\">{content.length > 50 ? content.substring(0, 50) + '...' : content}</div>\r\n </div>\r\n </div>\r\n );\r\n } else if (key === 'input') {\r\n return <div key={index} class=\"input-metadata\">{`${value}`}</div>;\r\n }\r\n }\r\n return null;\r\n })}\r\n </div>\r\n );\r\n }\r\n\r\n /**\r\n * 处理点赞操作\r\n */\r\n private async handleLike() {\r\n // 如果当前已经是点赞状态,则取消点赞\r\n const newStatus = this.feedbackStatus === 'like' ? null : 'like';\r\n\r\n // 发送请求到服务器\r\n await this.submitFeedback(newStatus);\r\n }\r\n\r\n /**\r\n * 处理点踩操作\r\n */\r\n private async handleDislike() {\r\n // 如果当前已经是点踩状态,则取消点踩\r\n const newStatus = this.feedbackStatus === 'dislike' ? null : 'dislike';\r\n\r\n // 发送请求到服务器\r\n await this.submitFeedback(newStatus);\r\n }\r\n\r\n /**\r\n * 提交反馈到服务器\r\n */\r\n private async submitFeedback(rating: 'like' | 'dislike' | null) {\r\n if (!this.message.id) {\r\n console.error('消息ID不存在,无法提交反馈');\r\n SentryReporter.captureError('消息ID不存在,无法提交反馈', {\r\n action: 'submitFeedback',\r\n component: 'pcm-chat-message',\r\n title: '无法提交反馈'\r\n });\r\n ErrorEventBus.emitError({\r\n error: '消息ID不存在,无法提交反馈',\r\n message: '消息ID不存在,无法提交反馈',\r\n });\r\n return;\r\n }\r\n\r\n try {\r\n const result = await sendHttpRequest({\r\n url: `/sdk/v1/chat/messages/${this.message.id}/feedbacks`,\r\n method: 'POST',\r\n data: {\r\n rating,\r\n bot_id: this.botId,\r\n content: '',\r\n }\r\n });\r\n if (result.success) {\r\n // 更新本地状态\r\n this.feedbackStatus = rating;\r\n\r\n // 更新消息对象中的反馈状态,创建新对象以确保引用变化\r\n if (this.message && this.message.feedback) {\r\n this.message = {\r\n ...this.message,\r\n feedback: {\r\n ...this.message.feedback,\r\n rating\r\n }\r\n };\r\n }\r\n\r\n console.log('反馈提交成功');\r\n } else {\r\n console.error('反馈提交失败:', result.message);\r\n }\r\n } catch (error) {\r\n console.error('提交反馈时发生错误:', error);\r\n SentryReporter.captureError(error, {\r\n action: 'submitFeedback',\r\n component: 'pcm-chat-message',\r\n title: '提交反馈失败'\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 处理重试操作\r\n */\r\n private handleRetry() {\r\n if (this.message.id) {\r\n this.retryRequest.emit(this.message.id);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div class=\"message-round\">\r\n {this.renderUserMessage()}\r\n {this.renderAssistantMessage()}\r\n </div>\r\n );\r\n }\r\n} "]}
|
|
1
|
+
{"version":3,"file":"pcm-chat-message.js","sourceRoot":"","sources":["../../../../src/components/pcm-chat-message/pcm-chat-message.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, Event, EventEmitter, State } from '@stencil/core';\nimport { marked } from 'marked';\nimport extendedTables from 'marked-extended-tables';\nimport { ChatMessage } from '../../interfaces/chat';\nimport { sendHttpRequest, getCosPresignedUrl, getCosPreviewUrl } from '../../utils/utils';\nimport { ErrorEventBus } from '../../utils/error-event';\nimport { SentryReporter } from '../../utils/sentry-reporter';\n\n@Component({\n tag: 'pcm-chat-message',\n styleUrls: ['../../global/markdown.css', 'pcm-chat-message.css'],\n shadow: true,\n})\nexport class ChatMessageComponent {\n /**\n * 消息数据\n */\n @Prop() message: ChatMessage;\n\n /**\n * 是否显示点赞点踩按钮 \n */\n @Prop() showFeedbackButtons: boolean = true;\n\n /**\n * 机器人ID\n */\n @Prop() botId?: string;\n\n /**\n * 消息变更事件\n */\n @Event() messageChange: EventEmitter<Partial<ChatMessage>>;\n\n // 使用 @Element 装饰器获取组件的 host 元素\n @Element() hostElement: HTMLElement;\n\n /**\n * 点赞点踩状态\n */\n @State() feedbackStatus: 'like' | 'dislike' | null = null;\n\n /**\n * 视频播放URLs缓存\n */\n @State() videoUrls: { [key: string]: string } = {};\n\n /**\n * 用户头像URL\n */\n @Prop() userAvatar?: string;\n\n /**\n * 助手头像URL\n */\n @Prop() assistantAvatar?: string;\n\n /**\n * 是否显示复制按钮\n */\n @Prop() showCopyButton: boolean = true;\n\n /**\n * 附件预览模式\n * 'drawer': 在右侧抽屉中预览\n * 'window': 在新窗口中打开\n */\n @Prop() filePreviewMode: 'drawer' | 'window' = 'window';\n\n @Event() filePreviewRequest: EventEmitter<{\n url?: string,\n fileName: string,\n content?: string,\n contentType: 'file' | 'markdown' | 'text'\n }>;\n\n /**\n * 重试事件\n */\n @Event() retryRequest: EventEmitter<string>; // 传递消息ID\n\n constructor() {\n // 配置 marked 选项\n marked.use(extendedTables);\n marked.setOptions({\n breaks: true,\n gfm: true\n });\n }\n\n /**\n * 组件加载时检查消息是否已有反馈状态\n */\n componentWillLoad() {\n\n // 如果消息已经有反馈状态,初始化feedbackStatus\n if (this.message && this.message.feedback) {\n this.feedbackStatus = this.message.feedback.rating as 'like' | 'dislike' | null;\n }\n }\n\n // 复制消息内容到剪贴板\n private copyMessageContent() {\n if (this.message.answer) {\n navigator.clipboard.writeText(this.message.answer)\n .then(() => {\n // 可以添加复制成功的提示\n console.log('内容已复制到剪贴板');\n alert('内容已复制到剪贴板');\n })\n .catch(err => {\n // 使用全局事件总线发送错误\n ErrorEventBus.emitError({\n error: err,\n message: '复制内容失败',\n });\n console.error('复制失败:', err);\n });\n }\n }\n\n // 渲染用户消息部分\n private renderUserMessage() {\n if (!this.message?.query?.trim()) return null;\n const htmlContent = this.message.query ? marked(this.message.query) : '';\n\n return (\n <div class={{ 'user-message-container': true }}>\n {this.userAvatar && (\n <div class=\"avatar user-avatar\">\n <img src={this.userAvatar} alt=\"用户头像\" />\n </div>\n )}\n <div class=\"message-bubble user-message\">\n <div innerHTML={htmlContent}></div>\n {this.renderInputs()}\n </div>\n </div>\n );\n }\n\n // 渲染助手消息部分\n private renderAssistantMessage() {\n if (!this.message.answer && !this.message.isStreaming) return null;\n\n // 只有在开始流式输出且还没有内容时才显示loading\n const showLoading = this.message.isStreaming && !this.message.answer;\n const htmlContent = this.message.answer ? marked(this.message.answer) : '';\n\n return (\n <div class={{ 'assistant-message-container': true }}>\n {this.assistantAvatar && (\n <div class=\"avatar assistant-avatar\">\n <img src={this.assistantAvatar} alt=\"助手头像\" />\n </div>\n )}\n <div class=\"message-bubble \">\n <div class=\"assistant-message\">\n <div\n class=\"markdown-content markdown-body\"\n innerHTML={showLoading ?\n `请稍等...` :\n htmlContent\n }\n ></div>\n </div>\n {!showLoading && this.message.answer && !this.message.isStreaming && (\n <div class=\"message-actions\">\n {/* 根据父组件传入的属性决定是否显示重试按钮 */}\n {this.message.showRetryButton && (\n <button class=\"action-button retry-button\" onClick={() => this.handleRetry()} title=\"重试\">\n <span class=\"button-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"23 4 23 10 17 10\"></polyline>\n <polyline points=\"1 20 1 14 7 14\"></polyline>\n <path d=\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"></path>\n </svg>\n </span>\n 重试\n </button>\n )}\n\n {this.showCopyButton && (\n <button class=\"action-button\" onClick={() => this.copyMessageContent()} title=\"复制内容\">\n <span class=\"button-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"></rect>\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"></path>\n </svg>\n </span>\n 复制\n </button>\n )}\n {this.showFeedbackButtons && (\n <>\n <button\n class={`action-button icon-only ${this.feedbackStatus === 'like' ? 'active' : ''}`}\n title=\"赞\"\n onClick={() => this.handleLike()}\n >\n <span class=\"button-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"></path>\n </svg>\n </span>\n </button>\n <button\n class={`action-button icon-only ${this.feedbackStatus === 'dislike' ? 'active' : ''}`}\n title=\"踩\"\n onClick={() => this.handleDislike()}\n >\n <span class=\"button-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"></path>\n </svg>\n </span>\n </button>\n </>\n )}\n </div>\n )}\n </div>\n </div>\n );\n }\n\n private getFileName(fileUrl: string): string {\n const parts = fileUrl.split('/');\n return parts[parts.length - 1];\n }\n\n\n // 添加处理文本内容点击的方法\n private handleContentClick(title: string, content: string, contentType: 'markdown' | 'text' = 'text') {\n this.filePreviewRequest.emit({\n fileName: title,\n content: content,\n contentType: contentType\n });\n }\n\n // 加载视频播放URL\n private async loadVideoUrl(cosKey: string) {\n if (this.videoUrls[cosKey]) {\n return; // 已经加载过了\n }\n\n const videoUrl = await getCosPresignedUrl(cosKey);\n if (videoUrl) {\n this.videoUrls = {\n ...this.videoUrls,\n [cosKey]: videoUrl\n };\n }\n }\n\n // 修改处理文件点击的方法\n private async handleFileClick(fileUrl: string, fileName: string) {\n const previewUrl = await getCosPreviewUrl(fileUrl);\n if (previewUrl) {\n if (this.filePreviewMode === 'drawer') {\n this.filePreviewRequest.emit({\n url: previewUrl,\n fileName: fileName,\n contentType: 'file'\n });\n } else {\n window.open(previewUrl, '_blank');\n }\n } else {\n console.error('无法获取预览URL');\n SentryReporter.captureError('无法获取预览URL', {\n action: 'handleFileClick',\n component: 'pcm-chat-message',\n title: '无法获取预览URL'\n });\n ErrorEventBus.emitError({\n error: '无法获取预览URL',\n message: '无法获取预览URL',\n });\n }\n }\n\n // 修改渲染文件项的部分\n private renderFileItem(fileName: string, fileUrl: string, index: number) {\n return (\n <div key={index} class=\"file-card\" onClick={() => this.handleFileClick(fileUrl, fileName)}>\n <div class=\"file-card-icon\" style={{ background: 'linear-gradient(45deg, #ff5600, #ff8344)' }}>\n <img src=\"https://pub.pincaimao.com/static/web/images/home/i_file.png\"></img>\n </div>\n <div class=\"file-card-content\">\n <div class=\"file-card-type\">[附件信息]</div>\n <div class=\"file-card-name\">{fileName}</div>\n </div>\n </div>\n );\n }\n\n // 修改渲染输入数据的方法\n private renderInputs() {\n if (!this.message.inputs) return null;\n\n // 检查是否所有字段都为 null、undefined 或空字符串\n const hasValidInput = Object.keys(this.message.inputs).some(key => {\n const value = this.message.inputs[key];\n return value !== null && value !== undefined && value !== '' &&\n !key.startsWith('hide_') && key !== 'answer';\n });\n\n // 如果没有有效输入,返回 null\n if (!hasValidInput) return null;\n\n return (\n <div class=\"inputs-container\">\n {Object.keys(this.message.inputs).map((key, index) => {\n const value = this.message.inputs[key];\n if (value && !key.startsWith('hide_') && key !== 'answer') {\n if (key === 'video_url') {\n // 渲染视频播放区域\n const cosKey = value;\n const videoUrl = this.videoUrls[cosKey];\n\n // 如果还没有加载视频URL,异步加载\n if (!videoUrl) {\n this.loadVideoUrl(cosKey);\n }\n\n return (\n <div class=\"video-inputs-container\">\n <div key={index} class=\"video-container\">\n {videoUrl ? (\n <video\n key={cosKey}\n controls\n preload=\"metadata\"\n onLoadedMetaData={(e) => {\n // 确保进度条正确显示\n const video = e.target as HTMLVideoElement;\n video.currentTime = 0.01;\n }}\n controlsList=\"nodownload\"\n style={{\n width: '250px',\n height: 'auto',\n maxHeight: '250px',\n borderRadius: '8px',\n marginTop: '8px'\n }}\n >\n <source src={videoUrl} type=\"video/webm\" />\n <source src={videoUrl} type=\"video/mp4\" />\n <source src={videoUrl} type=\"video/ogg\" />\n 您的浏览器不支持视频播放。\n </video>\n ) : (\n <div class=\"video-loading\">\n <div class=\"loading-spinner\"></div>\n <span>正在加载视频...</span>\n </div>\n )}\n </div>\n </div>\n );\n } else if (key === 'file_url') {\n // 优先使用 file_name 属性,如果不存在则从 file_url 提取文件名\n const fileName = this.message.inputs.file_name || this.getFileName(value);\n return this.renderFileItem(fileName, value, index);\n } else if (key === 'file_urls') {\n // 始终将 file_urls 视为逗号分隔的字符串\n const fileList = typeof value === 'string' ? value.split(',') : [value.toString()];\n\n // 同样将 file_names 视为逗号分隔的字符串\n const fileNames = this.message.inputs.file_names ?\n (typeof this.message.inputs.file_names === 'string' ?\n this.message.inputs.file_names.split(',') :\n [this.message.inputs.file_names.toString()]) :\n [];\n\n return (\n <div key={index}>\n {fileList.map((fileUrl, fileIndex) => {\n // 使用对应的文件名,如果不存在则从URL提取\n const fileName = fileNames[fileIndex] || this.getFileName(fileUrl);\n return this.renderFileItem(fileName, fileUrl, fileIndex);\n })}\n </div>\n );\n } else if (key === 'job_info' || key === 'rule') {\n const title = key === 'job_info' ? '职位信息' : '评估规则';\n const content = typeof value === 'string' ? value : JSON.stringify(value, null, 2);\n\n return (\n <div key={index} class=\"file-card\" onClick={() => this.handleContentClick(title, content)}>\n <div class=\"file-card-icon\" style={{ background: '#0d75fb' }}>\n <img src=\"https://pub.pincaimao.com/static/web/images/home/i_position.png\"></img>\n </div>\n <div class=\"file-card-content\">\n <div class=\"file-card-type\">[{title}]</div>\n <div class=\"file-card-name\">{content.length > 50 ? content.substring(0, 50) + '...' : content}</div>\n </div>\n </div>\n );\n } else if (key === 'input') {\n return <div key={index} class=\"input-metadata\">{`${value}`}</div>;\n }\n }\n return null;\n })}\n </div>\n );\n }\n\n /**\n * 处理点赞操作\n */\n private async handleLike() {\n // 如果当前已经是点赞状态,则取消点赞\n const newStatus = this.feedbackStatus === 'like' ? null : 'like';\n\n // 发送请求到服务器\n await this.submitFeedback(newStatus);\n }\n\n /**\n * 处理点踩操作\n */\n private async handleDislike() {\n // 如果当前已经是点踩状态,则取消点踩\n const newStatus = this.feedbackStatus === 'dislike' ? null : 'dislike';\n\n // 发送请求到服务器\n await this.submitFeedback(newStatus);\n }\n\n /**\n * 提交反馈到服务器\n */\n private async submitFeedback(rating: 'like' | 'dislike' | null) {\n if (!this.message.id) {\n console.error('消息ID不存在,无法提交反馈');\n SentryReporter.captureError('消息ID不存在,无法提交反馈', {\n action: 'submitFeedback',\n component: 'pcm-chat-message',\n title: '无法提交反馈'\n });\n ErrorEventBus.emitError({\n error: '消息ID不存在,无法提交反馈',\n message: '消息ID不存在,无法提交反馈',\n });\n return;\n }\n\n try {\n const result = await sendHttpRequest({\n url: `/sdk/v1/chat/messages/${this.message.id}/feedbacks`,\n method: 'POST',\n data: {\n rating,\n bot_id: this.botId,\n content: '',\n }\n });\n if (result.success) {\n // 更新本地状态\n this.feedbackStatus = rating;\n\n // 更新消息对象中的反馈状态,创建新对象以确保引用变化\n if (this.message && this.message.feedback) {\n this.message = {\n ...this.message,\n feedback: {\n ...this.message.feedback,\n rating\n }\n };\n }\n\n console.log('反馈提交成功');\n } else {\n console.error('反馈提交失败:', result.message);\n }\n } catch (error) {\n console.error('提交反馈时发生错误:', error);\n SentryReporter.captureError(error, {\n action: 'submitFeedback',\n component: 'pcm-chat-message',\n title: '提交反馈失败'\n });\n }\n }\n\n /**\n * 处理重试操作\n */\n private handleRetry() {\n if (this.message.id) {\n this.retryRequest.emit(this.message.id);\n }\n }\n\n render() {\n return (\n <div class=\"message-round\">\n {this.renderUserMessage()}\n {this.renderAssistantMessage()}\n </div>\n );\n }\n} "]}
|
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
:host {
|
|
2
|
-
display: block;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.drawer-container {
|
|
6
|
-
position: fixed;
|
|
7
|
-
top: 0;
|
|
8
|
-
left: 0;
|
|
9
|
-
width: 0;
|
|
10
|
-
height: 0;
|
|
11
|
-
overflow: visible;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.drawer-mask {
|
|
15
|
-
position: fixed;
|
|
16
|
-
top: 0;
|
|
17
|
-
left: 0;
|
|
18
|
-
right: 0;
|
|
19
|
-
bottom: 0;
|
|
20
|
-
background-color: rgba(0, 0, 0, 0.45);
|
|
21
|
-
opacity: 0;
|
|
22
|
-
visibility: hidden;
|
|
23
|
-
transition: opacity 0.3s ease, visibility 0.3s ease;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.mask-visible {
|
|
27
|
-
opacity: 1;
|
|
28
|
-
visibility: visible;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.drawer-content {
|
|
32
|
-
position: fixed;
|
|
33
|
-
top: 0;
|
|
34
|
-
right: 0;
|
|
35
|
-
bottom: 0;
|
|
36
|
-
display: flex;
|
|
37
|
-
flex-direction: column;
|
|
38
|
-
background-color: #fff;
|
|
39
|
-
box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15);
|
|
40
|
-
transform: translateX(100%);
|
|
41
|
-
transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.drawer-content-visible {
|
|
45
|
-
transform: translateX(0);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.drawer-header {
|
|
49
|
-
display: flex;
|
|
50
|
-
align-items: center;
|
|
51
|
-
justify-content: space-between;
|
|
52
|
-
padding: 16px 24px;
|
|
53
|
-
color: rgba(0, 0, 0, 0.85);
|
|
54
|
-
border-bottom: 1px solid #f0f0f0;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.drawer-title {
|
|
58
|
-
flex: 1;
|
|
59
|
-
margin: 0;
|
|
60
|
-
font-size: 16px;
|
|
61
|
-
line-height: 22px;
|
|
62
|
-
font-weight: 500;
|
|
63
|
-
color: rgba(0, 0, 0, 0.85);
|
|
64
|
-
overflow: hidden;
|
|
65
|
-
text-overflow: ellipsis;
|
|
66
|
-
white-space: nowrap;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.drawer-close {
|
|
70
|
-
padding: 0;
|
|
71
|
-
background: transparent;
|
|
72
|
-
border: none;
|
|
73
|
-
outline: none;
|
|
74
|
-
cursor: pointer;
|
|
75
|
-
font-size: 16px;
|
|
76
|
-
color: rgba(0, 0, 0, 0.45);
|
|
77
|
-
transition: color 0.3s;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.drawer-close:hover {
|
|
81
|
-
color: rgba(0, 0, 0, 0.85);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.drawer-body {
|
|
85
|
-
flex: 1;
|
|
86
|
-
padding: 24px;
|
|
87
|
-
overflow: auto;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/* 响应式样式 */
|
|
91
|
-
@media (max-width: 768px) {
|
|
92
|
-
.drawer-content {
|
|
93
|
-
width: 100% !important;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.drawer-header {
|
|
97
|
-
padding: 12px 16px;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.drawer-body {
|
|
101
|
-
padding: 16px;
|
|
102
|
-
}
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.drawer-container {
|
|
6
|
+
position: fixed;
|
|
7
|
+
top: 0;
|
|
8
|
+
left: 0;
|
|
9
|
+
width: 0;
|
|
10
|
+
height: 0;
|
|
11
|
+
overflow: visible;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.drawer-mask {
|
|
15
|
+
position: fixed;
|
|
16
|
+
top: 0;
|
|
17
|
+
left: 0;
|
|
18
|
+
right: 0;
|
|
19
|
+
bottom: 0;
|
|
20
|
+
background-color: rgba(0, 0, 0, 0.45);
|
|
21
|
+
opacity: 0;
|
|
22
|
+
visibility: hidden;
|
|
23
|
+
transition: opacity 0.3s ease, visibility 0.3s ease;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.mask-visible {
|
|
27
|
+
opacity: 1;
|
|
28
|
+
visibility: visible;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.drawer-content {
|
|
32
|
+
position: fixed;
|
|
33
|
+
top: 0;
|
|
34
|
+
right: 0;
|
|
35
|
+
bottom: 0;
|
|
36
|
+
display: flex;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
background-color: #fff;
|
|
39
|
+
box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15);
|
|
40
|
+
transform: translateX(100%);
|
|
41
|
+
transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.drawer-content-visible {
|
|
45
|
+
transform: translateX(0);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.drawer-header {
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
justify-content: space-between;
|
|
52
|
+
padding: 16px 24px;
|
|
53
|
+
color: rgba(0, 0, 0, 0.85);
|
|
54
|
+
border-bottom: 1px solid #f0f0f0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.drawer-title {
|
|
58
|
+
flex: 1;
|
|
59
|
+
margin: 0;
|
|
60
|
+
font-size: 16px;
|
|
61
|
+
line-height: 22px;
|
|
62
|
+
font-weight: 500;
|
|
63
|
+
color: rgba(0, 0, 0, 0.85);
|
|
64
|
+
overflow: hidden;
|
|
65
|
+
text-overflow: ellipsis;
|
|
66
|
+
white-space: nowrap;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.drawer-close {
|
|
70
|
+
padding: 0;
|
|
71
|
+
background: transparent;
|
|
72
|
+
border: none;
|
|
73
|
+
outline: none;
|
|
74
|
+
cursor: pointer;
|
|
75
|
+
font-size: 16px;
|
|
76
|
+
color: rgba(0, 0, 0, 0.45);
|
|
77
|
+
transition: color 0.3s;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.drawer-close:hover {
|
|
81
|
+
color: rgba(0, 0, 0, 0.85);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.drawer-body {
|
|
85
|
+
flex: 1;
|
|
86
|
+
padding: 24px;
|
|
87
|
+
overflow: auto;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* 响应式样式 */
|
|
91
|
+
@media (max-width: 768px) {
|
|
92
|
+
.drawer-content {
|
|
93
|
+
width: 100% !important;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.drawer-header {
|
|
97
|
+
padding: 12px 16px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.drawer-body {
|
|
101
|
+
padding: 16px;
|
|
102
|
+
}
|
|
103
103
|
}
|
|
@@ -123,7 +123,7 @@ export class PcmDrawer {
|
|
|
123
123
|
const maskStyle = {
|
|
124
124
|
zIndex: `${this.zIndex}`,
|
|
125
125
|
};
|
|
126
|
-
return (h("div", { key: '
|
|
126
|
+
return (h("div", { key: '5ca0630697aaf594d75095a631163a19ed8e4a9b', class: { 'drawer-container': true, 'drawer-open': this.isOpen } }, this.mask && (h("div", { key: '59e9f9f1d48dca079d76ff3ac4f3d4e2f7132bae', class: { 'drawer-mask': true, 'mask-visible': this.isOpen }, style: maskStyle, onClick: this.handleMaskClick })), h("div", { key: 'c9138ac3ff9139d2a199abba971481842eb78ee3', class: { 'drawer-content': true, 'drawer-content-visible': this.isOpen }, style: drawerStyle }, h("div", { key: 'fbcffe58c697b95b188609733afafc1531a87e5f', class: "drawer-header" }, this.drawerTitle && h("div", { key: '7f57ebafc446670961a05c0714a25f2650183e32', class: "drawer-title" }, this.drawerTitle), this.closable && (h("button", { key: '9d6ec03e600639be9c44fd87da0687b1777d0d92', class: "drawer-close", onClick: this.handleClose }, h("svg", { key: '8960f8ce5325339ed8c06b40043f19e17c45aa52', viewBox: "64 64 896 896", focusable: "false", "data-icon": "close", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true" }, h("path", { key: '0dede2ac0608601edde40bee26720ee938a8f7d9', d: "M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z" }))))), h("div", { key: '28d0ee3ededd2b7ee4b00747acc820227629f91d', class: "drawer-body" }, h("slot", { key: 'bbbd99d68c216d10afa4458fe9e4f384f17cb563' })))));
|
|
127
127
|
}
|
|
128
128
|
static get is() { return "pcm-drawer"; }
|
|
129
129
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pcm-drawer.js","sourceRoot":"","sources":["../../../../src/components/pcm-drawer/pcm-drawer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Event, EventEmitter, Watch, Method, Element, State } from '@stencil/core';\
|
|
1
|
+
{"version":3,"file":"pcm-drawer.js","sourceRoot":"","sources":["../../../../src/components/pcm-drawer/pcm-drawer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Event, EventEmitter, Watch, Method, Element, State } from '@stencil/core';\nimport { configStore } from '../../../store/config.store';\n\n/**\n * 抽屉组件\n * 从屏幕边缘滑出的浮层面板,类似 Ant Design 的 Drawer 组件\n */\n@Component({\n tag: 'pcm-drawer',\n styleUrl: 'pcm-drawer.css',\n shadow: true,\n})\nexport class PcmDrawer {\n /**\n * 抽屉是否可见\n */\n @Prop({ mutable: true, reflect: true }) isOpen: boolean = false;\n\n /**\n * 抽屉标题\n */\n @Prop() drawerTitle: string = '';\n\n /**\n * 宽度,可以是像素值或百分比\n */\n @Prop() width: string = '378px';\n\n /**\n * 高度,在 placement 为 top 或 bottom 时使用\n */\n @Prop() height: string = '378px';\n\n /**\n * 是否显示关闭按钮\n */\n @Prop() closable: boolean = true;\n\n /**\n * 点击蒙层是否允许关闭\n */\n @Prop() maskClosable: boolean = true;\n\n /**\n * 是否显示蒙层\n */\n @Prop() mask: boolean = true;\n\n /**\n * 抽屉关闭后的回调\n */\n @Event() closed: EventEmitter<void>;\n\n /**\n * 抽屉打开后的回调\n */\n @Event() afterOpen: EventEmitter<void>;\n\n /**\n * 抽屉关闭后的回调\n */\n @Event() afterClose: EventEmitter<void>;\n\n @Element() hostElement: HTMLElement;\n\n @State() zIndex: number = 1000;\n\n private bodyOverflowBeforeOpen: string = '';\n private transitionEndHandler: () => void;\n\n /**\n * 打开抽屉\n */\n @Method()\n async open() {\n this.isOpen = true;\n }\n\n /**\n * 关闭抽屉\n */\n @Method()\n async close() {\n this.isOpen = false;\n }\n\n @Watch('isOpen')\n visibleChanged(newValue: boolean) {\n if (newValue) {\n // 打开抽屉时,禁止背景滚动\n this.bodyOverflowBeforeOpen = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n \n // 添加过渡结束事件监听器\n const drawer = this.hostElement.shadowRoot.querySelector('.drawer-content') as HTMLElement;\n if (drawer) {\n this.transitionEndHandler = () => {\n this.afterOpen.emit();\n };\n drawer.addEventListener('transitionend', this.transitionEndHandler, { once: true });\n }\n } else {\n // 关闭抽屉时,恢复背景滚动\n document.body.style.overflow = this.bodyOverflowBeforeOpen;\n \n // 添加过渡结束事件监听器\n const drawer = this.hostElement.shadowRoot.querySelector('.drawer-content') as HTMLElement;\n if (drawer) {\n this.transitionEndHandler = () => {\n this.afterClose.emit();\n };\n drawer.addEventListener('transitionend', this.transitionEndHandler, { once: true });\n }\n }\n }\n\n componentWillLoad() {\n // 尝试从缓存中读取 zIndex\n const cachedZIndex = configStore.getItem<number>('modal-zIndex');\n if (cachedZIndex) {\n this.zIndex = cachedZIndex;\n }\n }\n\n disconnectedCallback() {\n // 组件卸载时恢复背景滚动\n if (this.isOpen) {\n document.body.style.overflow = this.bodyOverflowBeforeOpen;\n }\n \n // 移除事件监听器\n const drawer = this.hostElement.shadowRoot?.querySelector('.drawer-content') as HTMLElement;\n if (drawer && this.transitionEndHandler) {\n drawer.removeEventListener('transitionend', this.transitionEndHandler);\n }\n }\n\n private handleMaskClick = () => {\n if (this.maskClosable) {\n this.handleClose();\n }\n };\n\n private handleClose = () => {\n this.isOpen = false;\n this.closed.emit();\n };\n\n render() {\n const drawerStyle = {\n width: this.width,\n zIndex: `${this.zIndex + 1}`,\n };\n\n const maskStyle = {\n zIndex: `${this.zIndex}`,\n };\n\n return (\n <div class={{ 'drawer-container': true, 'drawer-open': this.isOpen }}>\n {this.mask && (\n <div \n class={{ 'drawer-mask': true, 'mask-visible': this.isOpen }} \n style={maskStyle}\n onClick={this.handleMaskClick}\n ></div>\n )}\n <div \n class={{ 'drawer-content': true, 'drawer-content-visible': this.isOpen }} \n style={drawerStyle}\n >\n <div class=\"drawer-header\">\n {this.drawerTitle && <div class=\"drawer-title\">{this.drawerTitle}</div>}\n {this.closable && (\n <button class=\"drawer-close\" onClick={this.handleClose}>\n <svg viewBox=\"64 64 896 896\" focusable=\"false\" data-icon=\"close\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\"></path>\n </svg>\n </button>\n )}\n </div>\n <div class=\"drawer-body\">\n <slot></slot>\n </div>\n </div>\n </div>\n );\n }\n} "]}
|