pcm-agents 0.6.64 → 0.6.66

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.
Files changed (163) hide show
  1. package/dist/cjs/components-position-selector_28.cjs.entry.js +951 -30
  2. package/dist/cjs/components-position-selector_28.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-D7e2VYae.js → index-CG_hvINQ.js} +3 -3
  4. package/dist/cjs/{index-D7e2VYae.js.map → index-CG_hvINQ.js.map} +1 -1
  5. package/dist/cjs/index.cjs.js +1 -1
  6. package/dist/cjs/{message-utils-pPGi8R71.js → message-utils-OP5WQarf.js} +3 -2
  7. package/dist/cjs/{message-utils-pPGi8R71.js.map → message-utils-OP5WQarf.js.map} +1 -1
  8. package/dist/cjs/oem-htws-modal.cjs.entry.js +1 -1
  9. package/dist/cjs/oem-jd-modal.cjs.entry.js +2 -2
  10. package/dist/cjs/oem-jlpp-modal.cjs.entry.js +1 -1
  11. package/dist/cjs/oem-jlsx-modal.cjs.entry.js +3 -3
  12. package/dist/cjs/oem-jlzz-modal.cjs.entry.js +1 -1
  13. package/dist/cjs/oem-mnct-modal.cjs.entry.js +1 -1
  14. package/dist/cjs/oem-qgqjl-modal.cjs.entry.js +1 -1
  15. package/dist/cjs/oem-zygh-modal.cjs.entry.js +1 -1
  16. package/dist/cjs/pcm-hr-chat-modal.cjs.entry.js +3 -3
  17. package/dist/cjs/pcm-mnms-modal.cjs.entry.js +2 -2
  18. package/dist/cjs/pcm-mnms-modal.cjs.entry.js.map +1 -1
  19. package/dist/cjs/pcm-mnms-modal.entry.cjs.js.map +1 -1
  20. package/dist/cjs/pcm-zygh-v2-modal.cjs.entry.js +1 -1
  21. package/dist/cjs/{sentry-reporter-iBIprpZJ.js → sentry-reporter-BgMz8pzd.js} +3 -3
  22. package/dist/cjs/{sentry-reporter-iBIprpZJ.js.map → sentry-reporter-BgMz8pzd.js.map} +1 -1
  23. package/dist/collection/components/oem-mnms-modal/oem-mnms-modal.js +1 -1
  24. package/dist/collection/components/oem-mnms-modal/oem-mnms-modal.js.map +1 -1
  25. package/dist/collection/components/pcm-1zhanshi-mnms-modal/pcm-1zhanshi-mnms-modal.js +1 -1
  26. package/dist/collection/components/pcm-1zhanshi-mnms-modal/pcm-1zhanshi-mnms-modal.js.map +1 -1
  27. package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.js +2 -2
  28. package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.js.map +1 -1
  29. package/dist/collection/components/pcm-chat-message/pcm-chat-message.js +50 -19
  30. package/dist/collection/components/pcm-chat-message/pcm-chat-message.js.map +1 -1
  31. package/dist/collection/components/pcm-hr-chat-modal/pcm-hr-chat-modal.js +1 -1
  32. package/dist/collection/components/pcm-hr-chat-modal/pcm-hr-chat-modal.js.map +1 -1
  33. package/dist/collection/components/pcm-mnms-modal/pcm-mnms-modal.js +1 -1
  34. package/dist/collection/components/pcm-mnms-modal/pcm-mnms-modal.js.map +1 -1
  35. package/dist/collection/components/pcm-mnms-zp-modal/pcm-mnms-zp-modal.js +1 -1
  36. package/dist/collection/components/pcm-mnms-zp-modal/pcm-mnms-zp-modal.js.map +1 -1
  37. package/dist/collection/components/pcm-virtual-chat-modal/pcm-virtual-chat-modal.js +2 -2
  38. package/dist/collection/components/pcm-virtual-chat-modal/pcm-virtual-chat-modal.js.map +1 -1
  39. package/dist/collection/components/pcm-zsk-chat-modal/pcm-zsk-chat-modal.js +1 -1
  40. package/dist/collection/components/pcm-zsk-chat-modal/pcm-zsk-chat-modal.js.map +1 -1
  41. package/dist/components/components-position-selector.js +1 -1
  42. package/dist/components/index.js +1 -1
  43. package/dist/components/oem-htws-modal.js +6 -6
  44. package/dist/components/oem-jd-modal.js +4 -4
  45. package/dist/components/oem-jlpp-modal.js +8 -8
  46. package/dist/components/oem-jlsx-modal.js +7 -7
  47. package/dist/components/oem-jlzz-modal.js +6 -6
  48. package/dist/components/oem-mnct-modal.js +8 -8
  49. package/dist/components/oem-mnms-modal.js +10 -10
  50. package/dist/components/oem-mnms-modal.js.map +1 -1
  51. package/dist/components/oem-qgqjl-modal.js +8 -8
  52. package/dist/components/oem-zygh-modal.js +6 -6
  53. package/dist/components/{p-ChQxTqKv.js → p-BebD0_Pp.js} +3 -3
  54. package/dist/components/{p-ChQxTqKv.js.map → p-BebD0_Pp.js.map} +1 -1
  55. package/dist/components/{p-CC8S-HjF.js → p-Bj8ChT1e.js} +944 -23
  56. package/dist/components/p-Bj8ChT1e.js.map +1 -0
  57. package/dist/components/{p-Bz1ckpbt.js → p-C0v8U2fo.js} +4 -4
  58. package/dist/components/{p-Bz1ckpbt.js.map → p-C0v8U2fo.js.map} +1 -1
  59. package/dist/components/{p-ByUz4C99.js → p-CF4XmpjK.js} +3 -3
  60. package/dist/components/{p-ByUz4C99.js.map → p-CF4XmpjK.js.map} +1 -1
  61. package/dist/components/{p-BIII6p1D.js → p-CnK5J7Yw.js} +3 -3
  62. package/dist/components/{p-BIII6p1D.js.map → p-CnK5J7Yw.js.map} +1 -1
  63. package/dist/components/{p-BWL6R8EC.js → p-CsJzP2Ep.js} +8 -8
  64. package/dist/components/{p-BWL6R8EC.js.map → p-CsJzP2Ep.js.map} +1 -1
  65. package/dist/components/{p-CKT2jGH7.js → p-DV0LVvxp.js} +3 -3
  66. package/dist/components/{p-CKT2jGH7.js.map → p-DV0LVvxp.js.map} +1 -1
  67. package/dist/components/{p-ATX6YgJk.js → p-DfxZv1o3.js} +3 -3
  68. package/dist/components/{p-ATX6YgJk.js.map → p-DfxZv1o3.js.map} +1 -1
  69. package/dist/components/{p-BDPrLO89.js → p-DiTEmLCZ.js} +3 -3
  70. package/dist/components/{p-BDPrLO89.js.map → p-DiTEmLCZ.js.map} +1 -1
  71. package/dist/components/{p-DNPxxyLn.js → p-ELemGHz3.js} +5 -5
  72. package/dist/components/{p-DNPxxyLn.js.map → p-ELemGHz3.js.map} +1 -1
  73. package/dist/components/{p-Ct5Zx7MF.js → p-PlbLkewi.js} +3 -3
  74. package/dist/components/{p-Ct5Zx7MF.js.map → p-PlbLkewi.js.map} +1 -1
  75. package/dist/components/pcm-1zhanshi-mnms-modal.js +6 -6
  76. package/dist/components/pcm-1zhanshi-mnms-modal.js.map +1 -1
  77. package/dist/components/pcm-app-chat-modal.js +1 -1
  78. package/dist/components/pcm-card.js +1 -1
  79. package/dist/components/pcm-chat-message.js +1 -1
  80. package/dist/components/pcm-digital-human.js +1 -1
  81. package/dist/components/pcm-export-records-modal.js +1 -1
  82. package/dist/components/pcm-hr-chat-modal.js +3 -3
  83. package/dist/components/pcm-htws-modal.js +7 -7
  84. package/dist/components/pcm-hyzj-modal.js +4 -4
  85. package/dist/components/pcm-jd-modal.js +4 -4
  86. package/dist/components/pcm-jlpp-modal.js +7 -7
  87. package/dist/components/pcm-jlsx-modal.js +6 -6
  88. package/dist/components/pcm-jlzz-modal.js +6 -6
  89. package/dist/components/pcm-mnct-modal.js +4 -4
  90. package/dist/components/pcm-mnms-modal.js +9 -9
  91. package/dist/components/pcm-mnms-modal.js.map +1 -1
  92. package/dist/components/pcm-mnms-zp-modal.js +9 -9
  93. package/dist/components/pcm-mnms-zp-modal.js.map +1 -1
  94. package/dist/components/pcm-mobile-input-btn.js +1 -1
  95. package/dist/components/pcm-mobile-upload-btn.js +1 -1
  96. package/dist/components/pcm-msbg-modal.js +4 -4
  97. package/dist/components/pcm-qgqjl-modal.js +7 -7
  98. package/dist/components/pcm-upload.js +1 -1
  99. package/dist/components/pcm-virtual-chat-modal.js +1 -1
  100. package/dist/components/pcm-zsk-chat-modal.js +3 -3
  101. package/dist/components/pcm-zygh-modal.js +6 -6
  102. package/dist/components/pcm-zygh-v2-modal.js +6 -6
  103. package/dist/esm/components-position-selector_28.entry.js +951 -30
  104. package/dist/esm/components-position-selector_28.entry.js.map +1 -1
  105. package/dist/esm/{index-DJsmUbrD.js → index-DD5ZgYNn.js} +3 -3
  106. package/dist/esm/{index-DJsmUbrD.js.map → index-DD5ZgYNn.js.map} +1 -1
  107. package/dist/esm/index.js +1 -1
  108. package/dist/esm/{message-utils-C39egyl9.js → message-utils-CwVqDK3R.js} +3 -3
  109. package/dist/esm/{message-utils-C39egyl9.js.map → message-utils-CwVqDK3R.js.map} +1 -1
  110. package/dist/esm/oem-htws-modal.entry.js +1 -1
  111. package/dist/esm/oem-jd-modal.entry.js +2 -2
  112. package/dist/esm/oem-jlpp-modal.entry.js +1 -1
  113. package/dist/esm/oem-jlsx-modal.entry.js +3 -3
  114. package/dist/esm/oem-jlzz-modal.entry.js +1 -1
  115. package/dist/esm/oem-mnct-modal.entry.js +1 -1
  116. package/dist/esm/oem-qgqjl-modal.entry.js +1 -1
  117. package/dist/esm/oem-zygh-modal.entry.js +1 -1
  118. package/dist/esm/pcm-hr-chat-modal.entry.js +3 -3
  119. package/dist/esm/pcm-mnms-modal.entry.js +2 -2
  120. package/dist/esm/pcm-mnms-modal.entry.js.map +1 -1
  121. package/dist/esm/pcm-zygh-v2-modal.entry.js +1 -1
  122. package/dist/esm/{sentry-reporter-BZlWz1Uf.js → sentry-reporter-OYDNp9lw.js} +3 -3
  123. package/dist/esm/{sentry-reporter-BZlWz1Uf.js.map → sentry-reporter-OYDNp9lw.js.map} +1 -1
  124. package/dist/pcm-agents/index.esm.js +1 -1
  125. package/dist/pcm-agents/{p-1baa2740.entry.js → p-06f18707.entry.js} +2 -2
  126. package/dist/pcm-agents/{p-52bd1e33.entry.js → p-0e4faee1.entry.js} +2 -2
  127. package/dist/pcm-agents/p-30cc7d74.entry.js +251 -0
  128. package/dist/pcm-agents/p-30cc7d74.entry.js.map +1 -0
  129. package/dist/pcm-agents/{p-e440a0f8.entry.js → p-39b4a242.entry.js} +2 -2
  130. package/dist/pcm-agents/{p-08102c01.entry.js → p-565fd15d.entry.js} +2 -2
  131. package/dist/pcm-agents/p-565fd15d.entry.js.map +1 -0
  132. package/dist/pcm-agents/{p-d06f3c33.entry.js → p-7a61aef6.entry.js} +2 -2
  133. package/dist/pcm-agents/{p-d7055171.entry.js → p-86fbdfa0.entry.js} +2 -2
  134. package/dist/pcm-agents/{p-C39egyl9.js → p-CwVqDK3R.js} +2 -2
  135. package/dist/pcm-agents/{p-C39egyl9.js.map → p-CwVqDK3R.js.map} +1 -1
  136. package/dist/pcm-agents/p-DggC09h7.js +2 -0
  137. package/dist/pcm-agents/{p-hTY-3ZEF.js.map → p-DggC09h7.js.map} +1 -1
  138. package/dist/pcm-agents/{p-DSygvfY2.js → p-DtrLkASD.js} +2 -2
  139. package/dist/pcm-agents/{p-DSygvfY2.js.map → p-DtrLkASD.js.map} +1 -1
  140. package/dist/pcm-agents/{p-7535edee.entry.js → p-a61718ac.entry.js} +2 -2
  141. package/dist/pcm-agents/{p-3d1b2c31.entry.js → p-a7b66a58.entry.js} +2 -2
  142. package/dist/pcm-agents/{p-150de7ca.entry.js → p-bbc4daf7.entry.js} +2 -2
  143. package/dist/pcm-agents/{p-342ae17c.entry.js → p-bc211074.entry.js} +2 -2
  144. package/dist/pcm-agents/{p-d12cc46a.entry.js → p-c7c9f2ad.entry.js} +2 -2
  145. package/dist/pcm-agents/pcm-agents.esm.js +1 -1
  146. package/dist/pcm-agents/pcm-mnms-modal.entry.esm.js.map +1 -1
  147. package/dist/types/components/pcm-chat-message/pcm-chat-message.d.ts +16 -1
  148. package/package.json +2 -1
  149. package/dist/components/p-CC8S-HjF.js.map +0 -1
  150. package/dist/pcm-agents/p-08102c01.entry.js.map +0 -1
  151. package/dist/pcm-agents/p-a792aac3.entry.js +0 -245
  152. package/dist/pcm-agents/p-a792aac3.entry.js.map +0 -1
  153. package/dist/pcm-agents/p-hTY-3ZEF.js +0 -2
  154. /package/dist/pcm-agents/{p-1baa2740.entry.js.map → p-06f18707.entry.js.map} +0 -0
  155. /package/dist/pcm-agents/{p-52bd1e33.entry.js.map → p-0e4faee1.entry.js.map} +0 -0
  156. /package/dist/pcm-agents/{p-e440a0f8.entry.js.map → p-39b4a242.entry.js.map} +0 -0
  157. /package/dist/pcm-agents/{p-d06f3c33.entry.js.map → p-7a61aef6.entry.js.map} +0 -0
  158. /package/dist/pcm-agents/{p-d7055171.entry.js.map → p-86fbdfa0.entry.js.map} +0 -0
  159. /package/dist/pcm-agents/{p-7535edee.entry.js.map → p-a61718ac.entry.js.map} +0 -0
  160. /package/dist/pcm-agents/{p-3d1b2c31.entry.js.map → p-a7b66a58.entry.js.map} +0 -0
  161. /package/dist/pcm-agents/{p-150de7ca.entry.js.map → p-bbc4daf7.entry.js.map} +0 -0
  162. /package/dist/pcm-agents/{p-342ae17c.entry.js.map → p-bc211074.entry.js.map} +0 -0
  163. /package/dist/pcm-agents/{p-d12cc46a.entry.js.map → p-c7c9f2ad.entry.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-C_qhED9Z.js');
4
- var index$1 = require('./index-D7e2VYae.js');
4
+ var index$1 = require('./index-CG_hvINQ.js');
5
5
  var message_service = require('./message.service-DGUsA-FY.js');
6
6
  var errorEvent = require('./error-event-J_ZWIqWF.js');
7
- var messageUtils = require('./message-utils-pPGi8R71.js');
8
- var sentryReporter = require('./sentry-reporter-iBIprpZJ.js');
7
+ var messageUtils = require('./message-utils-OP5WQarf.js');
8
+ var sentryReporter = require('./sentry-reporter-BgMz8pzd.js');
9
9
  require('./exports-Dc-pQh4A.js');
10
10
 
11
11
  const componentsPositionSelectorCss = ":host{display:block;width:100%;height:100%}.position-selector-container{display:flex;flex-direction:column;width:100%;height:100%;background:#fff}.search-bar{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.search-input-wrapper{position:relative;display:flex;align-items:center;flex:1;min-width:200px;max-width:500px}.search-icon{position:absolute;left:12px;color:#bfbfbf;pointer-events:none}.search-input{width:100%;height:36px;padding:4px 36px 4px 36px;font-size:14px;line-height:1.5;color:rgba(0, 0, 0, 0.85);background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:6px;transition:all 0.3s;outline:none}.search-input:hover{border-color:#40a9ff}.search-input:focus{border-color:#40a9ff;box-shadow:0 0 0 2px rgba(24, 144, 255, 0.2)}.search-input::placeholder{color:#bfbfbf}.clear-button{position:absolute;right:12px;background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#bfbfbf;transition:color 0.3s}.clear-button:hover{color:#8c8c8c}.search-button{padding:4px 15px;height:36px;font-size:14px;line-height:1.5;border-radius:6px;color:#fff;background-color:#1890ff;border:1px solid #1890ff;cursor:pointer;transition:all 0.3s;outline:none;white-space:nowrap;flex-shrink:0}.search-button:hover{background-color:#40a9ff;border-color:#40a9ff}.search-button:active{background-color:#096dd9;border-color:#096dd9}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:16px;color:#8c8c8c}.loading-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#1890ff;border-radius:50%;animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.empty-icon{opacity:0.5}.empty-text{margin:0;color:#8c8c8c;font-size:14px}.position-list{flex:1;overflow-y:auto;min-height:0}.table-container{width:100%;overflow-x:auto}.position-table{width:100%;border-collapse:collapse;font-size:14px}.position-table thead{background-color:#fafafa;position:sticky;top:0;z-index:1}.position-table th{padding:12px 16px;text-align:left;font-weight:500;color:rgba(0, 0, 0, 0.85);border-bottom:1px solid #f0f0f0;white-space:nowrap}.position-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;color:rgba(0, 0, 0, 0.65)}.position-table tbody tr{transition:background-color 0.3s}.position-table tbody tr:hover{background-color:#fafafa}.position-table tbody tr.selected-row{background-color:#e6f7ff}.checkbox-column{width:50px;text-align:center}.title-column{min-width:150px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-column{min-width:120px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-column{min-width:100px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.requirements-column{min-width:200px;max-width:300px}.requirements-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;word-break:break-word;line-height:1.5}.salary-column{min-width:100px;white-space:nowrap}.action-column{width:100px;text-align:center}.position-checkbox{width:16px;height:16px;cursor:pointer;accent-color:#1890ff}.select-button{padding:4px 15px;height:28px;font-size:14px;line-height:1.5;border-radius:6px;color:#fff;background-color:#1890ff;border:1px solid #1890ff;cursor:pointer;transition:all 0.3s;outline:none}.select-button:hover{background-color:#40a9ff;border-color:#40a9ff}.select-button:active{background-color:#096dd9;border-color:#096dd9}@media screen and (max-width: 768px){.search-bar{padding:12px;gap:8px}.search-input-wrapper{min-width:auto;max-width:none}.search-input{height:40px;font-size:16px}.search-button{height:40px;padding:4px 12px}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.position-table{font-size:12px}.position-table th,.position-table td{padding:8px 12px}.title-column,.company-column,.location-column{min-width:100px}.select-button{padding:4px 12px;height:32px;font-size:14px}}.pagination-container{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px;border-top:1px solid #f0f0f0;flex-shrink:0}.pagination-button{padding:4px 15px;height:32px;font-size:14px;line-height:1.5;border-radius:6px;color:rgba(0, 0, 0, 0.85);background-color:#fff;border:1px solid #d9d9d9;cursor:pointer;transition:all 0.3s;outline:none}.pagination-button:hover:not(:disabled){color:#40a9ff;border-color:#40a9ff}.pagination-button:active:not(:disabled){color:#096dd9;border-color:#096dd9}.pagination-button:disabled{color:rgba(0, 0, 0, 0.25);background-color:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.pagination-info{font-size:14px;color:rgba(0, 0, 0, 0.65)}.position-list::-webkit-scrollbar{width:8px;height:8px}.position-list::-webkit-scrollbar-track{background:#f1f1f1}.position-list::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.position-list::-webkit-scrollbar-thumb:hover{background:#555}";
@@ -644,7 +644,7 @@ const OemMnmsModal = class {
644
644
  file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,
645
645
  job_info: this.customInputs?.job_info || this.jobDescription,
646
646
  question_number: this.customInputs?.question_number || 5,
647
- interview_type: this.digitalId,
647
+ ai_interview_type: this.digitalId,
648
648
  phone: this.phoneNumber.trim() || undefined
649
649
  } })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, showWorkspaceHistory: this.showWorkspaceHistory, botId: "3022316191018884", digitalId: this.digitalId, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, playbackRate: this.playbackRate, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
650
650
  ...this.customInputs,
@@ -880,7 +880,7 @@ const ZhanshiMnmsModal = class {
880
880
  file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,
881
881
  file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,
882
882
  job_info: this.customInputs?.job_info || this.jobDescription,
883
- interview_type: this.digitalId
883
+ ai_interview_type: this.digitalId
884
884
  } })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, botId: "3022316191018903", showEndInterviewButton: this.showEndInterviewButton, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, playbackRate: this.playbackRate, customInputs: {
885
885
  ...this.customInputs,
886
886
  file_url: this.uploadedFileInfo?.cos_key,
@@ -1396,7 +1396,7 @@ const ChatAPPModal = class {
1396
1396
  ...this.messages,
1397
1397
  {
1398
1398
  ...newMessage,
1399
- answer: '抱歉,发生了错误,请稍后再试。',
1399
+ answer: '消息发送失败,请检查网络。',
1400
1400
  error: error,
1401
1401
  isStreaming: false,
1402
1402
  },
@@ -1788,7 +1788,7 @@ const ChatAPPModal = class {
1788
1788
  errorMessage = '未检测到摄像头或麦克风设备';
1789
1789
  }
1790
1790
  else if (error.name === 'NotReadableError') {
1791
- errorMessage = '设备正在被其他应用程序使用';
1791
+ errorMessage = '您的浏览器不支持视频录制,请切换到微信或Chrome、Edge使用';
1792
1792
  }
1793
1793
  else if (error.name === 'OverconstrainedError') {
1794
1794
  errorMessage = '摄像头不支持指定的配置';
@@ -3045,6 +3045,897 @@ const PcmCard = class {
3045
3045
  };
3046
3046
  PcmCard.style = pcmCardCss + hostCss$l;
3047
3047
 
3048
+ var clipboard$1 = {exports: {}};
3049
+
3050
+ /*!
3051
+ * clipboard.js v2.0.11
3052
+ * https://clipboardjs.com/
3053
+ *
3054
+ * Licensed MIT © Zeno Rocha
3055
+ */
3056
+ var clipboard = clipboard$1.exports;
3057
+
3058
+ var hasRequiredClipboard;
3059
+
3060
+ function requireClipboard () {
3061
+ if (hasRequiredClipboard) return clipboard$1.exports;
3062
+ hasRequiredClipboard = 1;
3063
+ (function (module, exports) {
3064
+ (function webpackUniversalModuleDefinition(root, factory) {
3065
+ module.exports = factory();
3066
+ })(clipboard, function() {
3067
+ return /******/ (function() { // webpackBootstrap
3068
+ /******/ var __webpack_modules__ = ({
3069
+
3070
+ /***/ 686:
3071
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3072
+
3073
+ // EXPORTS
3074
+ __webpack_require__.d(__webpack_exports__, {
3075
+ "default": function() { return /* binding */ clipboard; }
3076
+ });
3077
+
3078
+ // EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js
3079
+ var tiny_emitter = __webpack_require__(279);
3080
+ var tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);
3081
+ // EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js
3082
+ var listen = __webpack_require__(370);
3083
+ var listen_default = /*#__PURE__*/__webpack_require__.n(listen);
3084
+ // EXTERNAL MODULE: ./node_modules/select/src/select.js
3085
+ var src_select = __webpack_require__(817);
3086
+ var select_default = /*#__PURE__*/__webpack_require__.n(src_select);
3087
+ /**
3088
+ * Executes a given operation type.
3089
+ * @param {String} type
3090
+ * @return {Boolean}
3091
+ */
3092
+ function command(type) {
3093
+ try {
3094
+ return document.execCommand(type);
3095
+ } catch (err) {
3096
+ return false;
3097
+ }
3098
+ }
3099
+
3100
+
3101
+ /**
3102
+ * Cut action wrapper.
3103
+ * @param {String|HTMLElement} target
3104
+ * @return {String}
3105
+ */
3106
+
3107
+ var ClipboardActionCut = function ClipboardActionCut(target) {
3108
+ var selectedText = select_default()(target);
3109
+ command('cut');
3110
+ return selectedText;
3111
+ };
3112
+
3113
+ /* harmony default export */ var actions_cut = (ClipboardActionCut);
3114
+ /**
3115
+ * Creates a fake textarea element with a value.
3116
+ * @param {String} value
3117
+ * @return {HTMLElement}
3118
+ */
3119
+ function createFakeElement(value) {
3120
+ var isRTL = document.documentElement.getAttribute('dir') === 'rtl';
3121
+ var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS
3122
+
3123
+ fakeElement.style.fontSize = '12pt'; // Reset box model
3124
+
3125
+ fakeElement.style.border = '0';
3126
+ fakeElement.style.padding = '0';
3127
+ fakeElement.style.margin = '0'; // Move element out of screen horizontally
3128
+
3129
+ fakeElement.style.position = 'absolute';
3130
+ fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically
3131
+
3132
+ var yPosition = window.pageYOffset || document.documentElement.scrollTop;
3133
+ fakeElement.style.top = "".concat(yPosition, "px");
3134
+ fakeElement.setAttribute('readonly', '');
3135
+ fakeElement.value = value;
3136
+ return fakeElement;
3137
+ }
3138
+
3139
+
3140
+
3141
+ /**
3142
+ * Create fake copy action wrapper using a fake element.
3143
+ * @param {String} target
3144
+ * @param {Object} options
3145
+ * @return {String}
3146
+ */
3147
+
3148
+ var fakeCopyAction = function fakeCopyAction(value, options) {
3149
+ var fakeElement = createFakeElement(value);
3150
+ options.container.appendChild(fakeElement);
3151
+ var selectedText = select_default()(fakeElement);
3152
+ command('copy');
3153
+ fakeElement.remove();
3154
+ return selectedText;
3155
+ };
3156
+ /**
3157
+ * Copy action wrapper.
3158
+ * @param {String|HTMLElement} target
3159
+ * @param {Object} options
3160
+ * @return {String}
3161
+ */
3162
+
3163
+
3164
+ var ClipboardActionCopy = function ClipboardActionCopy(target) {
3165
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
3166
+ container: document.body
3167
+ };
3168
+ var selectedText = '';
3169
+
3170
+ if (typeof target === 'string') {
3171
+ selectedText = fakeCopyAction(target, options);
3172
+ } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {
3173
+ // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange
3174
+ selectedText = fakeCopyAction(target.value, options);
3175
+ } else {
3176
+ selectedText = select_default()(target);
3177
+ command('copy');
3178
+ }
3179
+
3180
+ return selectedText;
3181
+ };
3182
+
3183
+ /* harmony default export */ var actions_copy = (ClipboardActionCopy);
3184
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3185
+
3186
+
3187
+
3188
+ /**
3189
+ * Inner function which performs selection from either `text` or `target`
3190
+ * properties and then executes copy or cut operations.
3191
+ * @param {Object} options
3192
+ */
3193
+
3194
+ var ClipboardActionDefault = function ClipboardActionDefault() {
3195
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3196
+ // Defines base properties passed from constructor.
3197
+ var _options$action = options.action,
3198
+ action = _options$action === void 0 ? 'copy' : _options$action,
3199
+ container = options.container,
3200
+ target = options.target,
3201
+ text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.
3202
+
3203
+ if (action !== 'copy' && action !== 'cut') {
3204
+ throw new Error('Invalid "action" value, use either "copy" or "cut"');
3205
+ } // Sets the `target` property using an element that will be have its content copied.
3206
+
3207
+
3208
+ if (target !== undefined) {
3209
+ if (target && _typeof(target) === 'object' && target.nodeType === 1) {
3210
+ if (action === 'copy' && target.hasAttribute('disabled')) {
3211
+ throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
3212
+ }
3213
+
3214
+ if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
3215
+ throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
3216
+ }
3217
+ } else {
3218
+ throw new Error('Invalid "target" value, use a valid Element');
3219
+ }
3220
+ } // Define selection strategy based on `text` property.
3221
+
3222
+
3223
+ if (text) {
3224
+ return actions_copy(text, {
3225
+ container: container
3226
+ });
3227
+ } // Defines which selection strategy based on `target` property.
3228
+
3229
+
3230
+ if (target) {
3231
+ return action === 'cut' ? actions_cut(target) : actions_copy(target, {
3232
+ container: container
3233
+ });
3234
+ }
3235
+ };
3236
+
3237
+ /* harmony default export */ var actions_default = (ClipboardActionDefault);
3238
+ function clipboard_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return clipboard_typeof(obj); }
3239
+
3240
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3241
+
3242
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
3243
+
3244
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
3245
+
3246
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
3247
+
3248
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
3249
+
3250
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
3251
+
3252
+ function _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
3253
+
3254
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
3255
+
3256
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
3257
+
3258
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
3259
+
3260
+
3261
+
3262
+
3263
+
3264
+
3265
+ /**
3266
+ * Helper function to retrieve attribute value.
3267
+ * @param {String} suffix
3268
+ * @param {Element} element
3269
+ */
3270
+
3271
+ function getAttributeValue(suffix, element) {
3272
+ var attribute = "data-clipboard-".concat(suffix);
3273
+
3274
+ if (!element.hasAttribute(attribute)) {
3275
+ return;
3276
+ }
3277
+
3278
+ return element.getAttribute(attribute);
3279
+ }
3280
+ /**
3281
+ * Base class which takes one or more elements, adds event listeners to them,
3282
+ * and instantiates a new `ClipboardAction` on each click.
3283
+ */
3284
+
3285
+
3286
+ var Clipboard = /*#__PURE__*/function (_Emitter) {
3287
+ _inherits(Clipboard, _Emitter);
3288
+
3289
+ var _super = _createSuper(Clipboard);
3290
+
3291
+ /**
3292
+ * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
3293
+ * @param {Object} options
3294
+ */
3295
+ function Clipboard(trigger, options) {
3296
+ var _this;
3297
+
3298
+ _classCallCheck(this, Clipboard);
3299
+
3300
+ _this = _super.call(this);
3301
+
3302
+ _this.resolveOptions(options);
3303
+
3304
+ _this.listenClick(trigger);
3305
+
3306
+ return _this;
3307
+ }
3308
+ /**
3309
+ * Defines if attributes would be resolved using internal setter functions
3310
+ * or custom functions that were passed in the constructor.
3311
+ * @param {Object} options
3312
+ */
3313
+
3314
+
3315
+ _createClass(Clipboard, [{
3316
+ key: "resolveOptions",
3317
+ value: function resolveOptions() {
3318
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3319
+ this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
3320
+ this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
3321
+ this.text = typeof options.text === 'function' ? options.text : this.defaultText;
3322
+ this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;
3323
+ }
3324
+ /**
3325
+ * Adds a click event listener to the passed trigger.
3326
+ * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
3327
+ */
3328
+
3329
+ }, {
3330
+ key: "listenClick",
3331
+ value: function listenClick(trigger) {
3332
+ var _this2 = this;
3333
+
3334
+ this.listener = listen_default()(trigger, 'click', function (e) {
3335
+ return _this2.onClick(e);
3336
+ });
3337
+ }
3338
+ /**
3339
+ * Defines a new `ClipboardAction` on each click event.
3340
+ * @param {Event} e
3341
+ */
3342
+
3343
+ }, {
3344
+ key: "onClick",
3345
+ value: function onClick(e) {
3346
+ var trigger = e.delegateTarget || e.currentTarget;
3347
+ var action = this.action(trigger) || 'copy';
3348
+ var text = actions_default({
3349
+ action: action,
3350
+ container: this.container,
3351
+ target: this.target(trigger),
3352
+ text: this.text(trigger)
3353
+ }); // Fires an event based on the copy operation result.
3354
+
3355
+ this.emit(text ? 'success' : 'error', {
3356
+ action: action,
3357
+ text: text,
3358
+ trigger: trigger,
3359
+ clearSelection: function clearSelection() {
3360
+ if (trigger) {
3361
+ trigger.focus();
3362
+ }
3363
+
3364
+ window.getSelection().removeAllRanges();
3365
+ }
3366
+ });
3367
+ }
3368
+ /**
3369
+ * Default `action` lookup function.
3370
+ * @param {Element} trigger
3371
+ */
3372
+
3373
+ }, {
3374
+ key: "defaultAction",
3375
+ value: function defaultAction(trigger) {
3376
+ return getAttributeValue('action', trigger);
3377
+ }
3378
+ /**
3379
+ * Default `target` lookup function.
3380
+ * @param {Element} trigger
3381
+ */
3382
+
3383
+ }, {
3384
+ key: "defaultTarget",
3385
+ value: function defaultTarget(trigger) {
3386
+ var selector = getAttributeValue('target', trigger);
3387
+
3388
+ if (selector) {
3389
+ return document.querySelector(selector);
3390
+ }
3391
+ }
3392
+ /**
3393
+ * Allow fire programmatically a copy action
3394
+ * @param {String|HTMLElement} target
3395
+ * @param {Object} options
3396
+ * @returns Text copied.
3397
+ */
3398
+
3399
+ }, {
3400
+ key: "defaultText",
3401
+
3402
+ /**
3403
+ * Default `text` lookup function.
3404
+ * @param {Element} trigger
3405
+ */
3406
+ value: function defaultText(trigger) {
3407
+ return getAttributeValue('text', trigger);
3408
+ }
3409
+ /**
3410
+ * Destroy lifecycle.
3411
+ */
3412
+
3413
+ }, {
3414
+ key: "destroy",
3415
+ value: function destroy() {
3416
+ this.listener.destroy();
3417
+ }
3418
+ }], [{
3419
+ key: "copy",
3420
+ value: function copy(target) {
3421
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
3422
+ container: document.body
3423
+ };
3424
+ return actions_copy(target, options);
3425
+ }
3426
+ /**
3427
+ * Allow fire programmatically a cut action
3428
+ * @param {String|HTMLElement} target
3429
+ * @returns Text cutted.
3430
+ */
3431
+
3432
+ }, {
3433
+ key: "cut",
3434
+ value: function cut(target) {
3435
+ return actions_cut(target);
3436
+ }
3437
+ /**
3438
+ * Returns the support of the given action, or all actions if no action is
3439
+ * given.
3440
+ * @param {String} [action]
3441
+ */
3442
+
3443
+ }, {
3444
+ key: "isSupported",
3445
+ value: function isSupported() {
3446
+ var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
3447
+ var actions = typeof action === 'string' ? [action] : action;
3448
+ var support = !!document.queryCommandSupported;
3449
+ actions.forEach(function (action) {
3450
+ support = support && !!document.queryCommandSupported(action);
3451
+ });
3452
+ return support;
3453
+ }
3454
+ }]);
3455
+
3456
+ return Clipboard;
3457
+ }((tiny_emitter_default()));
3458
+
3459
+ /* harmony default export */ var clipboard = (Clipboard);
3460
+
3461
+ /***/ }),
3462
+
3463
+ /***/ 828:
3464
+ /***/ (function(module) {
3465
+
3466
+ var DOCUMENT_NODE_TYPE = 9;
3467
+
3468
+ /**
3469
+ * A polyfill for Element.matches()
3470
+ */
3471
+ if (typeof Element !== 'undefined' && !Element.prototype.matches) {
3472
+ var proto = Element.prototype;
3473
+
3474
+ proto.matches = proto.matchesSelector ||
3475
+ proto.mozMatchesSelector ||
3476
+ proto.msMatchesSelector ||
3477
+ proto.oMatchesSelector ||
3478
+ proto.webkitMatchesSelector;
3479
+ }
3480
+
3481
+ /**
3482
+ * Finds the closest parent that matches a selector.
3483
+ *
3484
+ * @param {Element} element
3485
+ * @param {String} selector
3486
+ * @return {Function}
3487
+ */
3488
+ function closest (element, selector) {
3489
+ while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
3490
+ if (typeof element.matches === 'function' &&
3491
+ element.matches(selector)) {
3492
+ return element;
3493
+ }
3494
+ element = element.parentNode;
3495
+ }
3496
+ }
3497
+
3498
+ module.exports = closest;
3499
+
3500
+
3501
+ /***/ }),
3502
+
3503
+ /***/ 438:
3504
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
3505
+
3506
+ var closest = __webpack_require__(828);
3507
+
3508
+ /**
3509
+ * Delegates event to a selector.
3510
+ *
3511
+ * @param {Element} element
3512
+ * @param {String} selector
3513
+ * @param {String} type
3514
+ * @param {Function} callback
3515
+ * @param {Boolean} useCapture
3516
+ * @return {Object}
3517
+ */
3518
+ function _delegate(element, selector, type, callback, useCapture) {
3519
+ var listenerFn = listener.apply(this, arguments);
3520
+
3521
+ element.addEventListener(type, listenerFn, useCapture);
3522
+
3523
+ return {
3524
+ destroy: function() {
3525
+ element.removeEventListener(type, listenerFn, useCapture);
3526
+ }
3527
+ }
3528
+ }
3529
+
3530
+ /**
3531
+ * Delegates event to a selector.
3532
+ *
3533
+ * @param {Element|String|Array} [elements]
3534
+ * @param {String} selector
3535
+ * @param {String} type
3536
+ * @param {Function} callback
3537
+ * @param {Boolean} useCapture
3538
+ * @return {Object}
3539
+ */
3540
+ function delegate(elements, selector, type, callback, useCapture) {
3541
+ // Handle the regular Element usage
3542
+ if (typeof elements.addEventListener === 'function') {
3543
+ return _delegate.apply(null, arguments);
3544
+ }
3545
+
3546
+ // Handle Element-less usage, it defaults to global delegation
3547
+ if (typeof type === 'function') {
3548
+ // Use `document` as the first parameter, then apply arguments
3549
+ // This is a short way to .unshift `arguments` without running into deoptimizations
3550
+ return _delegate.bind(null, document).apply(null, arguments);
3551
+ }
3552
+
3553
+ // Handle Selector-based usage
3554
+ if (typeof elements === 'string') {
3555
+ elements = document.querySelectorAll(elements);
3556
+ }
3557
+
3558
+ // Handle Array-like based usage
3559
+ return Array.prototype.map.call(elements, function (element) {
3560
+ return _delegate(element, selector, type, callback, useCapture);
3561
+ });
3562
+ }
3563
+
3564
+ /**
3565
+ * Finds closest match and invokes callback.
3566
+ *
3567
+ * @param {Element} element
3568
+ * @param {String} selector
3569
+ * @param {String} type
3570
+ * @param {Function} callback
3571
+ * @return {Function}
3572
+ */
3573
+ function listener(element, selector, type, callback) {
3574
+ return function(e) {
3575
+ e.delegateTarget = closest(e.target, selector);
3576
+
3577
+ if (e.delegateTarget) {
3578
+ callback.call(element, e);
3579
+ }
3580
+ }
3581
+ }
3582
+
3583
+ module.exports = delegate;
3584
+
3585
+
3586
+ /***/ }),
3587
+
3588
+ /***/ 879:
3589
+ /***/ (function(__unused_webpack_module, exports) {
3590
+
3591
+ /**
3592
+ * Check if argument is a HTML element.
3593
+ *
3594
+ * @param {Object} value
3595
+ * @return {Boolean}
3596
+ */
3597
+ exports.node = function(value) {
3598
+ return value !== undefined
3599
+ && value instanceof HTMLElement
3600
+ && value.nodeType === 1;
3601
+ };
3602
+
3603
+ /**
3604
+ * Check if argument is a list of HTML elements.
3605
+ *
3606
+ * @param {Object} value
3607
+ * @return {Boolean}
3608
+ */
3609
+ exports.nodeList = function(value) {
3610
+ var type = Object.prototype.toString.call(value);
3611
+
3612
+ return value !== undefined
3613
+ && (type === '[object NodeList]' || type === '[object HTMLCollection]')
3614
+ && ('length' in value)
3615
+ && (value.length === 0 || exports.node(value[0]));
3616
+ };
3617
+
3618
+ /**
3619
+ * Check if argument is a string.
3620
+ *
3621
+ * @param {Object} value
3622
+ * @return {Boolean}
3623
+ */
3624
+ exports.string = function(value) {
3625
+ return typeof value === 'string'
3626
+ || value instanceof String;
3627
+ };
3628
+
3629
+ /**
3630
+ * Check if argument is a function.
3631
+ *
3632
+ * @param {Object} value
3633
+ * @return {Boolean}
3634
+ */
3635
+ exports.fn = function(value) {
3636
+ var type = Object.prototype.toString.call(value);
3637
+
3638
+ return type === '[object Function]';
3639
+ };
3640
+
3641
+
3642
+ /***/ }),
3643
+
3644
+ /***/ 370:
3645
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
3646
+
3647
+ var is = __webpack_require__(879);
3648
+ var delegate = __webpack_require__(438);
3649
+
3650
+ /**
3651
+ * Validates all params and calls the right
3652
+ * listener function based on its target type.
3653
+ *
3654
+ * @param {String|HTMLElement|HTMLCollection|NodeList} target
3655
+ * @param {String} type
3656
+ * @param {Function} callback
3657
+ * @return {Object}
3658
+ */
3659
+ function listen(target, type, callback) {
3660
+ if (!target && !type && !callback) {
3661
+ throw new Error('Missing required arguments');
3662
+ }
3663
+
3664
+ if (!is.string(type)) {
3665
+ throw new TypeError('Second argument must be a String');
3666
+ }
3667
+
3668
+ if (!is.fn(callback)) {
3669
+ throw new TypeError('Third argument must be a Function');
3670
+ }
3671
+
3672
+ if (is.node(target)) {
3673
+ return listenNode(target, type, callback);
3674
+ }
3675
+ else if (is.nodeList(target)) {
3676
+ return listenNodeList(target, type, callback);
3677
+ }
3678
+ else if (is.string(target)) {
3679
+ return listenSelector(target, type, callback);
3680
+ }
3681
+ else {
3682
+ throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
3683
+ }
3684
+ }
3685
+
3686
+ /**
3687
+ * Adds an event listener to a HTML element
3688
+ * and returns a remove listener function.
3689
+ *
3690
+ * @param {HTMLElement} node
3691
+ * @param {String} type
3692
+ * @param {Function} callback
3693
+ * @return {Object}
3694
+ */
3695
+ function listenNode(node, type, callback) {
3696
+ node.addEventListener(type, callback);
3697
+
3698
+ return {
3699
+ destroy: function() {
3700
+ node.removeEventListener(type, callback);
3701
+ }
3702
+ }
3703
+ }
3704
+
3705
+ /**
3706
+ * Add an event listener to a list of HTML elements
3707
+ * and returns a remove listener function.
3708
+ *
3709
+ * @param {NodeList|HTMLCollection} nodeList
3710
+ * @param {String} type
3711
+ * @param {Function} callback
3712
+ * @return {Object}
3713
+ */
3714
+ function listenNodeList(nodeList, type, callback) {
3715
+ Array.prototype.forEach.call(nodeList, function(node) {
3716
+ node.addEventListener(type, callback);
3717
+ });
3718
+
3719
+ return {
3720
+ destroy: function() {
3721
+ Array.prototype.forEach.call(nodeList, function(node) {
3722
+ node.removeEventListener(type, callback);
3723
+ });
3724
+ }
3725
+ }
3726
+ }
3727
+
3728
+ /**
3729
+ * Add an event listener to a selector
3730
+ * and returns a remove listener function.
3731
+ *
3732
+ * @param {String} selector
3733
+ * @param {String} type
3734
+ * @param {Function} callback
3735
+ * @return {Object}
3736
+ */
3737
+ function listenSelector(selector, type, callback) {
3738
+ return delegate(document.body, selector, type, callback);
3739
+ }
3740
+
3741
+ module.exports = listen;
3742
+
3743
+
3744
+ /***/ }),
3745
+
3746
+ /***/ 817:
3747
+ /***/ (function(module) {
3748
+
3749
+ function select(element) {
3750
+ var selectedText;
3751
+
3752
+ if (element.nodeName === 'SELECT') {
3753
+ element.focus();
3754
+
3755
+ selectedText = element.value;
3756
+ }
3757
+ else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
3758
+ var isReadOnly = element.hasAttribute('readonly');
3759
+
3760
+ if (!isReadOnly) {
3761
+ element.setAttribute('readonly', '');
3762
+ }
3763
+
3764
+ element.select();
3765
+ element.setSelectionRange(0, element.value.length);
3766
+
3767
+ if (!isReadOnly) {
3768
+ element.removeAttribute('readonly');
3769
+ }
3770
+
3771
+ selectedText = element.value;
3772
+ }
3773
+ else {
3774
+ if (element.hasAttribute('contenteditable')) {
3775
+ element.focus();
3776
+ }
3777
+
3778
+ var selection = window.getSelection();
3779
+ var range = document.createRange();
3780
+
3781
+ range.selectNodeContents(element);
3782
+ selection.removeAllRanges();
3783
+ selection.addRange(range);
3784
+
3785
+ selectedText = selection.toString();
3786
+ }
3787
+
3788
+ return selectedText;
3789
+ }
3790
+
3791
+ module.exports = select;
3792
+
3793
+
3794
+ /***/ }),
3795
+
3796
+ /***/ 279:
3797
+ /***/ (function(module) {
3798
+
3799
+ function E () {
3800
+ // Keep this empty so it's easier to inherit from
3801
+ // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
3802
+ }
3803
+
3804
+ E.prototype = {
3805
+ on: function (name, callback, ctx) {
3806
+ var e = this.e || (this.e = {});
3807
+
3808
+ (e[name] || (e[name] = [])).push({
3809
+ fn: callback,
3810
+ ctx: ctx
3811
+ });
3812
+
3813
+ return this;
3814
+ },
3815
+
3816
+ once: function (name, callback, ctx) {
3817
+ var self = this;
3818
+ function listener () {
3819
+ self.off(name, listener);
3820
+ callback.apply(ctx, arguments);
3821
+ }
3822
+ listener._ = callback;
3823
+ return this.on(name, listener, ctx);
3824
+ },
3825
+
3826
+ emit: function (name) {
3827
+ var data = [].slice.call(arguments, 1);
3828
+ var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
3829
+ var i = 0;
3830
+ var len = evtArr.length;
3831
+
3832
+ for (i; i < len; i++) {
3833
+ evtArr[i].fn.apply(evtArr[i].ctx, data);
3834
+ }
3835
+
3836
+ return this;
3837
+ },
3838
+
3839
+ off: function (name, callback) {
3840
+ var e = this.e || (this.e = {});
3841
+ var evts = e[name];
3842
+ var liveEvents = [];
3843
+
3844
+ if (evts && callback) {
3845
+ for (var i = 0, len = evts.length; i < len; i++) {
3846
+ if (evts[i].fn !== callback && evts[i].fn._ !== callback)
3847
+ liveEvents.push(evts[i]);
3848
+ }
3849
+ }
3850
+
3851
+ // Remove event from queue to prevent memory leak
3852
+ // Suggested by https://github.com/lazd
3853
+ // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
3854
+
3855
+ (liveEvents.length)
3856
+ ? e[name] = liveEvents
3857
+ : delete e[name];
3858
+
3859
+ return this;
3860
+ }
3861
+ };
3862
+
3863
+ module.exports = E;
3864
+ module.exports.TinyEmitter = E;
3865
+
3866
+
3867
+ /***/ })
3868
+
3869
+ /******/ });
3870
+ /************************************************************************/
3871
+ /******/ // The module cache
3872
+ /******/ var __webpack_module_cache__ = {};
3873
+ /******/
3874
+ /******/ // The require function
3875
+ /******/ function __webpack_require__(moduleId) {
3876
+ /******/ // Check if module is in cache
3877
+ /******/ if(__webpack_module_cache__[moduleId]) {
3878
+ /******/ return __webpack_module_cache__[moduleId].exports;
3879
+ /******/ }
3880
+ /******/ // Create a new module (and put it into the cache)
3881
+ /******/ var module = __webpack_module_cache__[moduleId] = {
3882
+ /******/ // no module.id needed
3883
+ /******/ // no module.loaded needed
3884
+ /******/ exports: {}
3885
+ /******/ };
3886
+ /******/
3887
+ /******/ // Execute the module function
3888
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
3889
+ /******/
3890
+ /******/ // Return the exports of the module
3891
+ /******/ return module.exports;
3892
+ /******/ }
3893
+ /******/
3894
+ /************************************************************************/
3895
+ /******/ /* webpack/runtime/compat get default export */
3896
+ /******/ !function() {
3897
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
3898
+ /******/ __webpack_require__.n = function(module) {
3899
+ /******/ var getter = module && module.__esModule ?
3900
+ /******/ function() { return module['default']; } :
3901
+ /******/ function() { return module; };
3902
+ /******/ __webpack_require__.d(getter, { a: getter });
3903
+ /******/ return getter;
3904
+ /******/ };
3905
+ /******/ }();
3906
+ /******/
3907
+ /******/ /* webpack/runtime/define property getters */
3908
+ /******/ !function() {
3909
+ /******/ // define getter functions for harmony exports
3910
+ /******/ __webpack_require__.d = function(exports, definition) {
3911
+ /******/ for(var key in definition) {
3912
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
3913
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
3914
+ /******/ }
3915
+ /******/ }
3916
+ /******/ };
3917
+ /******/ }();
3918
+ /******/
3919
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
3920
+ /******/ !function() {
3921
+ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); };
3922
+ /******/ }();
3923
+ /******/
3924
+ /************************************************************************/
3925
+ /******/ // module exports must be returned from runtime so entry inlining is disabled
3926
+ /******/ // startup
3927
+ /******/ // Load entry module and return exports
3928
+ /******/ return __webpack_require__(686);
3929
+ /******/ })()
3930
+ .default;
3931
+ });
3932
+ } (clipboard$1));
3933
+ return clipboard$1.exports;
3934
+ }
3935
+
3936
+ var clipboardExports = requireClipboard();
3937
+ var ClipboardJS = /*@__PURE__*/messageUtils.getDefaultExportFromCjs(clipboardExports);
3938
+
3048
3939
  const markdownCss$1 = ".markdown-body{--base-size-4:4px;--base-size-8:8px;--base-size-16:16px;--base-size-24:24px;--base-size-40:40px;--base-text-weight-normal:400;--base-text-weight-medium:500;--base-text-weight-semibold:600;--fontStack-monospace:ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;--fgColor-accent:Highlight}@media (prefers-color-scheme: dark){.markdown-body,[data-theme=\"dark\"]{color-scheme:dark;--focus-outlineColor:#0969da;--fgColor-default:#1f2328;--fgColor-muted:#59636e;--fgColor-accent:#0969da;--fgColor-success:#1a7f37;--fgColor-attention:#9a6700;--fgColor-danger:#d1242f;--fgColor-done:#8250df;--bgColor-default:#ffffff;--bgColor-muted:#f6f8fa;--bgColor-neutral-muted:#818b981f;--bgColor-attention-muted:#fff8c5;--borderColor-default:#d1d9e0;--borderColor-muted:#d1d9e0b3;--borderColor-neutral-muted:#d1d9e0b3;--borderColor-accent-emphasis:#0969da;--borderColor-success-emphasis:#1a7f37;--borderColor-attention-emphasis:#9a6700;--borderColor-danger-emphasis:#cf222e;--borderColor-done-emphasis:#8250df;--color-prettylights-syntax-comment:#59636e;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#1f2328;--color-prettylights-syntax-entity-tag:#0550ae;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-brackethighlighter-angle:#59636e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#1f2328;--color-prettylights-syntax-markup-bold:#1f2328;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#d1d9e0;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#818b98}}@media (prefers-color-scheme: light){.markdown-body,[data-theme=\"light\"]{color-scheme:light;--focus-outlineColor:#0969da;--fgColor-default:#1f2328;--fgColor-muted:#59636e;--fgColor-accent:#0969da;--fgColor-success:#1a7f37;--fgColor-attention:#9a6700;--fgColor-danger:#d1242f;--fgColor-done:#8250df;--bgColor-default:#ffffff;--bgColor-muted:#f6f8fa;--bgColor-neutral-muted:#818b981f;--bgColor-attention-muted:#fff8c5;--borderColor-default:#d1d9e0;--borderColor-muted:#d1d9e0b3;--borderColor-neutral-muted:#d1d9e0b3;--borderColor-accent-emphasis:#0969da;--borderColor-success-emphasis:#1a7f37;--borderColor-attention-emphasis:#9a6700;--borderColor-danger-emphasis:#cf222e;--borderColor-done-emphasis:#8250df;--color-prettylights-syntax-comment:#59636e;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#1f2328;--color-prettylights-syntax-entity-tag:#0550ae;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-brackethighlighter-angle:#59636e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#1f2328;--color-prettylights-syntax-markup-bold:#1f2328;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#d1d9e0;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#818b98}}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;font-family:-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Noto Sans\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:' ';display:inline-block;background-color:currentColor;-webkit-mask-image:url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>\");mask-image:url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>\")}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none !important}.markdown-body a{background-color:transparent;color:var(--fgColor-accent);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold, 600)}.markdown-body dfn{font-style:italic}.markdown-body h1{margin:.67em 0;font-weight:var(--base-text-weight-semibold, 600);padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--borderColor-muted)}.markdown-body mark{background-color:var(--bgColor-attention-muted);color:var(--fgColor-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-0.25em}.markdown-body sup{top:-0.5em}.markdown-body img{border-style:none;max-width:100%;box-sizing:content-box}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em var(--base-size-40)}.markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--borderColor-muted);height:.25em;padding:0;margin:var(--base-size-24) 0;background-color:var(--borderColor-default);border:0}.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::placeholder{color:var(--fgColor-muted);opacity:1}.markdown-body hr::before{display:table;content:\"\"}.markdown-body hr::after{display:table;clear:both;content:\"\"}.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;font-variant:tabular-nums}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body a:focus,.markdown-body [role=button]:focus,.markdown-body input[type=radio]:focus,.markdown-body input[type=checkbox]:focus{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}.markdown-body a:focus:not(:focus-visible),.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible){outline:solid 1px transparent}.markdown-body a:focus-visible,.markdown-body [role=button]:focus-visible,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible{outline-offset:0}.markdown-body kbd{display:inline-block;padding:var(--base-size-4);font:11px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);line-height:10px;color:var(--fgColor-default);vertical-align:middle;background-color:var(--bgColor-muted);border:solid 1px var(--borderColor-neutral-muted);border-bottom-color:var(--borderColor-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:var(--base-size-24);margin-bottom:var(--base-size-16);font-weight:var(--base-text-weight-semibold, 600);line-height:1.25}.markdown-body h2{font-weight:var(--base-text-weight-semibold, 600);padding-bottom:.3em;font-size:1.2em;border-bottom:1px solid var(--borderColor-muted)}.markdown-body h3{font-weight:var(--base-text-weight-semibold, 600);font-size:1.05em}.markdown-body h4{font-weight:var(--base-text-weight-semibold, 600);font-size:0.875em}.markdown-body h5{font-weight:var(--base-text-weight-semibold, 600);font-size:.85em}.markdown-body h6{font-weight:var(--base-text-weight-semibold, 600);font-size:.80em;color:var(--fgColor-muted)}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0;padding:0 1em;color:var(--fgColor-muted);border-left:.25em solid var(--borderColor-default)}.markdown-body ul,.markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body tt,.markdown-body code,.markdown-body samp{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;word-wrap:normal}.markdown-body .octicon{display:inline-block;overflow:visible !important;vertical-align:text-bottom;fill:currentColor}.markdown-body input::-webkit-outer-spin-button,.markdown-body input::-webkit-inner-spin-button{margin:0;appearance:none}.markdown-body .mr-2{margin-right:var(--base-size-8, 8px) !important}.markdown-body::before{display:table;content:\"\"}.markdown-body::after{display:table;clear:both;content:\"\"}.markdown-body>*:first-child{margin-top:0 !important}.markdown-body>*:last-child{margin-bottom:0 !important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--fgColor-danger)}.markdown-body .anchor{float:left;padding-right:var(--base-size-4);margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:var(--base-size-16);font-size:16px;font-weight:400}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--fgColor-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{padding:0 .2em;font-size:inherit}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{padding-bottom:0;border-bottom:0}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type=\"a s\"]{list-style-type:lower-alpha}.markdown-body ol[type=\"A s\"]{list-style-type:upper-alpha}.markdown-body ol[type=\"i s\"]{list-style-type:lower-roman}.markdown-body ol[type=\"I s\"]{list-style-type:upper-roman}.markdown-body ol[type=\"1\"]{list-style-type:decimal}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:var(--base-size-16)}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:var(--base-size-16);font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold, 600)}.markdown-body dl dd{padding:0 var(--base-size-16);margin-bottom:var(--base-size-16)}.markdown-body table th{font-weight:var(--base-text-weight-semibold, 600)}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid var(--borderColor-default)}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--bgColor-default);border-top:1px solid var(--borderColor-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--bgColor-muted)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--borderColor-default)}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--fgColor-default)}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--bgColor-neutral-muted);border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:var(--base-size-16)}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:var(--base-size-16);overflow:auto;font-size:85%;line-height:1.45;color:var(--fgColor-default);background-color:var(--bgColor-muted);border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px var(--base-size-8) 9px;text-align:right;background:var(--bgColor-default);border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:var(--base-text-weight-semibold, 600);background:var(--bgColor-muted);border-top:0}.markdown-body [data-footnote-ref]::before{content:\"[\"}.markdown-body [data-footnote-ref]::after{content:\"]\"}.markdown-body .footnotes{font-size:12px;color:var(--fgColor-muted);border-top:1px solid var(--borderColor-default)}.markdown-body .footnotes ol{padding-left:var(--base-size-16)}.markdown-body .footnotes ol ul{display:inline-block;padding-left:var(--base-size-16);margin-top:var(--base-size-16)}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target::before{position:absolute;top:calc(var(--base-size-8)*-1);right:calc(var(--base-size-8)*-1);bottom:calc(var(--base-size-8)*-1);left:calc(var(--base-size-24)*-1);pointer-events:none;content:\"\";border:2px solid var(--borderColor-accent-emphasis);border-radius:6px}.markdown-body .footnotes li:target{color:var(--fgColor-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body body:has(:modal){padding-right:var(--dialog-scrollgutter) !important}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-smi,.markdown-body .pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-s,.markdown-body .pl-pds,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-v,.markdown-body .pl-smw{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}.markdown-body .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}.markdown-body .pl-sr .pl-cce{font-weight:bold;color:var(--color-prettylights-syntax-string-regexp)}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:bold;color:var(--color-prettylights-syntax-markup-heading)}.markdown-body .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}.markdown-body .pl-mb{font-weight:bold;color:var(--color-prettylights-syntax-markup-bold)}.markdown-body .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.markdown-body .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.markdown-body .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}.markdown-body .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}.markdown-body .pl-mdr{font-weight:bold;color:var(--color-prettylights-syntax-meta-diff-range)}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body [role=tabpanel][tabindex=\"0\"]:focus:not(:focus-visible),.markdown-body button:focus:not(:focus-visible),.markdown-body summary:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible){outline:none;box-shadow:none}.markdown-body [tabindex=\"0\"]:focus:not(:focus-visible),.markdown-body details-dialog:focus:not(:focus-visible){outline:none}.markdown-body g-emoji{display:inline-block;min-width:1ch;font-family:\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1em;font-style:normal !important;font-weight:var(--base-text-weight-normal, 400);line-height:1;vertical-align:-0.075em}.markdown-body g-emoji img{width:1em;height:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal, 400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:var(--base-size-4)}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list:hover .task-list-item-convert-container,.markdown-body .contains-task-list:focus-within .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.markdown-body .markdown-alert{padding:var(--base-size-8) var(--base-size-16);margin-bottom:var(--base-size-16);color:inherit;border-left:.25em solid var(--borderColor-default)}.markdown-body .markdown-alert>:first-child{margin-top:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}.markdown-body .markdown-alert .markdown-alert-title{display:flex;font-weight:var(--base-text-weight-medium, 500);align-items:center;line-height:1}.markdown-body .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}.markdown-body .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}.markdown-body .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}.markdown-body .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}.markdown-body .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}.markdown-body>*:first-child>.heading-element:first-child{margin-top:0 !important}.markdown-body .highlight pre:has(+.zeroclipboard-container){min-height:52px}";
3049
3940
 
3050
3941
  const pcmChatMessageCss = ":host{display:block;width:100%}.message-round{margin-bottom:16px;width:100%}.user-message-container{display:flex;flex-direction:row-reverse;align-items:flex-start;margin-bottom:15px;position:relative}.assistant-message-container{display:flex;flex-direction:row;align-items:flex-start;margin-bottom:15px;position:relative}.message-bubble{max-width:85%;position:relative}.user-message{padding:5px 10px;background:#f5f7ff;font-size:14px;color:#1F2328;border-radius:6px;box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.1)}.assistant-message{padding:15px 10px;background-color:#fff;border-radius:6px;font-size:14px;color:#1F2328;box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05)}.message-time{font-size:12px;color:#999;margin-top:4px}.user-message-container .message-time{color:rgba(255, 255, 255, 0.7)}.loading-dots{display:flex;align-items:center;padding:12px 16px;background-color:#f0f0f0;border-radius:18px;border-top-left-radius:4px}.loading-dots span{width:8px;height:8px;margin:0 3px;background-color:#999;border-radius:50%;display:inline-block;animation:dot-pulse 1.5s infinite ease-in-out}.loading-dots span:nth-child(2){animation-delay:0.2s}.loading-dots span:nth-child(3){animation-delay:0.4s}@keyframes dot-pulse{0%,80%,100%{transform:scale(0.8);opacity:0.5}40%{transform:scale(1.2);opacity:1}}.file-view{margin-top:8px;padding:12px;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;font-size:14px;word-break:break-all;color:#2c3e50;line-height:1.5;box-shadow:0 1px 2px rgba(0, 0, 0, 0.05)}.input-view{margin-top:8px;margin-bottom:10px;padding-bottom:10px;border:1px solid #e9ecef;border-radius:6px;overflow:hidden;background-color:#ffffff;box-shadow:0 1px 2px rgba(0, 0, 0, 0.05)}.input-label-container{display:flex;align-items:center;margin-bottom:4px;background-color:#f8f9fa;border-bottom:1px solid #e9ecef;padding:8px 12px}.copy-input-button{background:transparent;border:none;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;color:#8c8c8c;opacity:0.7;transition:opacity 0.2s ease;margin-left:5px}.copy-input-button:hover{opacity:1;color:#1677ff}.input-label{font-size:13px;font-weight:600;color:#495057}.input-value{padding:12px 12px 0px;font-size:14px;line-height:1.5;color:#2c3e50;background-color:#ffffff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.input-metadata{font-size:13px;margin-top:8px}.message-actions{display:flex;align-items:center;gap:8px;transition:opacity 0.2s ease;margin-top:15px}.action-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d9d9d9;border-radius:6px;padding:4px 15px;font-size:14px;height:32px;background-color:white;cursor:pointer;color:rgba(0, 0, 0, 0.88);transition:all 0.2s}.action-button:hover{color:#1677ff;border-color:#1677ff}.action-button.primary{color:#1677ff;border-color:#1677ff}.action-button.primary:hover{color:#4096ff;border-color:#4096ff}.action-button.icon-only{padding:4px 8px;margin-right:9px}.button-icon{margin-right:8px;display:flex;align-items:center;justify-content:center}.icon-only .button-icon{margin-right:0}.file-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.file-item{display:flex;flex-direction:column;align-items:center;width:80px;cursor:pointer;padding:8px;border-radius:4px;transition:background-color 0.3s;margin:5px 10px}.file-item:hover{background-color:rgba(0, 0, 0, 0.04)}.file-icon{margin-bottom:4px}.file-name{font-size:12px;text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8B4513}.action-button.active{color:#1677ff;background-color:rgba(22, 119, 255, 0.1)}.action-button.active .button-icon svg{stroke:#1677ff}.inputs-container{margin-top:8px;display:flex;flex-direction:column;gap:8px}.file-list{display:flex;flex-direction:column;gap:8px}.file-item{display:flex;align-items:center;padding:8px 12px;background-color:#f5f5f5;border-radius:6px;cursor:pointer;transition:background-color 0.2s}.file-item:hover{background-color:#e8e8e8}.file-icon{margin-right:8px}.file-name{font-size:14px;color:#333;word-break:break-word}.input-view{background-color:#f9f9f9;border-radius:8px;padding:12px;border:1px solid #e8e8e8}.input-label-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.input-label{font-weight:500;color:#333}.input-value{color:#666;line-height:1.5;word-break:break-word;max-height:200px;overflow-y:auto}.copy-input-button{background:none;border:none;cursor:pointer;color:#1677ff;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.copy-input-button:hover{background-color:rgba(22, 119, 255, 0.1)}.input-metadata{font-size:14px;color:#666;padding:4px 0}.file-card{display:flex;align-items:center;padding:12px;background:linear-gradient(150deg, #2a6ee933, #0000 50%) 0 0 / 200px 100px no-repeat, #fff;border-radius:8px;cursor:pointer;transition:background-color 0.2s;border:1px solid #e8e8e8;margin-top:8px}.file-card:hover{background-color:#f0f0f0}.file-card-icon{margin-right:12px;flex-shrink:0;border-radius:12px;background:#0d75fb;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.file-card-icon img{width:40px;height:40px}.file-card-content{display:flex;flex-direction:column;flex:1;min-width:0}.file-card-type{font-size:14px;color:#8c8c8c;margin-bottom:4px}.file-card-name{font-size:16px;font-weight:500;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.copy-card-button{background:none;border:none;cursor:pointer;color:#8c8c8c;padding:8px;border-radius:4px;display:flex;align-items:center;justify-content:center;margin-left:8px;transition:color 0.2s}.copy-card-button:hover{color:#1677ff}.avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.user-avatar{margin-left:8px}.assistant-avatar{margin-right:8px}.retry-button{background-color:#ff6b35 !important;color:white !important;border:none !important}.retry-button:hover{background-color:#e55a2b !important}.retry-button .button-icon{margin-right:4px}.video-inputs-container{display:flex;flex-direction:column;align-items:end}.video-container{margin-top:0px;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);background-color:#000;width:250px;height:auto;max-height:250px;transition:transform 0.2s ease, box-shadow 0.2s ease}.video-container:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.15)}.video-container video{display:block;width:100%;max-width:500px;height:auto;border-radius:8px}.video-container video:focus{outline:none}.video-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background-color:#f8f9fa;border-radius:8px;color:#666;font-size:14px}.loading-spinner{width:24px;height:24px;border:2px solid #e9ecef;border-top:2px solid #1677ff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@media (max-width: 768px){.video-container{width:100%;max-width:300px}}";
@@ -3069,6 +3960,10 @@ const ChatMessageComponent = class {
3069
3960
  * 点赞点踩状态
3070
3961
  */
3071
3962
  feedbackStatus = null;
3963
+ /**
3964
+ * ClipboardJS 实例
3965
+ */
3966
+ clipboard = null;
3072
3967
  /**
3073
3968
  * 视频播放URLs缓存
3074
3969
  */
@@ -3134,25 +4029,51 @@ const ChatMessageComponent = class {
3134
4029
  this.feedbackStatus = this.message.feedback.rating;
3135
4030
  }
3136
4031
  }
3137
- // 复制消息内容到剪贴板
3138
- copyMessageContent() {
3139
- if (this.message.answer) {
3140
- navigator.clipboard.writeText(this.message.answer)
3141
- .then(() => {
3142
- // 可以添加复制成功的提示
3143
-
3144
- alert('内容已复制到剪贴板');
3145
- })
3146
- .catch(err => {
3147
- // 使用全局事件总线发送错误
3148
- errorEvent.ErrorEventBus.emitError({
3149
- error: err,
3150
- message: '复制内容失败',
3151
- });
3152
- console.error('复制失败:', err);
3153
- });
4032
+ /**
4033
+ * 组件加载完成后初始化 ClipboardJS
4034
+ */
4035
+ componentDidLoad() {
4036
+ this.initClipboard();
4037
+ }
4038
+ /**
4039
+ * 组件卸载时销毁 ClipboardJS
4040
+ */
4041
+ disconnectedCallback() {
4042
+ if (this.clipboard) {
4043
+ this.clipboard.destroy();
4044
+ this.clipboard = null;
3154
4045
  }
3155
4046
  }
4047
+ /**
4048
+ * 初始化 ClipboardJS
4049
+ */
4050
+ initClipboard() {
4051
+ // 如果已经初始化过,先销毁
4052
+ if (this.clipboard) {
4053
+ this.clipboard.destroy();
4054
+ }
4055
+ // 从 Shadow DOM 中获取复制按钮
4056
+ const copyButton = this.hostElement.shadowRoot?.querySelector('.copy-button');
4057
+ if (!copyButton) {
4058
+ console.warn('未找到复制按钮');
4059
+ return;
4060
+ }
4061
+ // 初始化 ClipboardJS
4062
+ this.clipboard = new ClipboardJS(copyButton);
4063
+ // 成功回调
4064
+ this.clipboard.on('success', (e) => {
4065
+ alert('内容已复制到剪贴板');
4066
+ e.clearSelection();
4067
+ });
4068
+ // 失败回调
4069
+ this.clipboard.on('error', (e) => {
4070
+ console.error('复制失败:', e);
4071
+ errorEvent.ErrorEventBus.emitError({
4072
+ error: e,
4073
+ message: '复制内容失败',
4074
+ });
4075
+ });
4076
+ }
3156
4077
  // 保存到职位库
3157
4078
  saveJdLoading = false;
3158
4079
  async handleSaveJd(job_info) {
@@ -3222,7 +4143,7 @@ const ChatMessageComponent = class {
3222
4143
  const showSaveJdButton = this.showSaveJdButton && this.botId == '3022316191018873';
3223
4144
  return (index.h("div", { class: { 'assistant-message-container': true } }, this.assistantAvatar && (index.h("div", { class: "avatar assistant-avatar" }, index.h("img", { src: this.assistantAvatar, alt: "\u52A9\u624B\u5934\u50CF" }))), index.h("div", { class: "message-bubble " }, index.h("div", { class: "assistant-message" }, index.h("div", { class: "markdown-content markdown-body", innerHTML: showLoading ?
3224
4145
  `请稍等...` :
3225
- htmlContent })), !showLoading && this.message.answer && !this.message.isStreaming && (index.h("div", { class: "message-actions" }, this.message.showRetryButton && (index.h("button", { class: "action-button retry-button", onClick: () => this.handleRetry(), title: "\u91CD\u8BD5" }, index.h("span", { class: "button-icon" }, index.h("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" }, index.h("polyline", { points: "23 4 23 10 17 10" }), index.h("polyline", { points: "1 20 1 14 7 14" }), index.h("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" }))), "\u91CD\u8BD5")), this.showCopyButton && (index.h("button", { class: "action-button", onClick: () => this.copyMessageContent(), title: "\u590D\u5236\u5185\u5BB9" }, index.h("span", { class: "button-icon" }, index.h("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" }, index.h("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }), index.h("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }))), "\u590D\u5236")), showSaveJdButton && (index.h("button", { class: "action-button", onClick: () => this.handleSaveJd(this.message.answer), title: this.saveJdButtonText, disabled: this.saveJdLoading }, this.saveJdLoading ? '处理中...' : this.saveJdButtonText)), this.showFeedbackButtons && (index.h(index.h.Fragment, null, index.h("button", { class: `action-button icon-only ${this.feedbackStatus === 'like' ? 'active' : ''}`, title: "\u8D5E", onClick: () => this.handleLike() }, index.h("span", { class: "button-icon" }, index.h("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" }, index.h("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" })))), index.h("button", { class: `action-button icon-only ${this.feedbackStatus === 'dislike' ? 'active' : ''}`, title: "\u8E29", onClick: () => this.handleDislike() }, index.h("span", { class: "button-icon" }, index.h("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" }, index.h("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" })))))))))));
4146
+ htmlContent })), !showLoading && this.message.answer && !this.message.isStreaming && (index.h("div", { class: "message-actions" }, this.message.showRetryButton && (index.h("button", { class: "action-button retry-button", onClick: () => this.handleRetry(), title: "\u91CD\u8BD5" }, index.h("span", { class: "button-icon" }, index.h("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" }, index.h("polyline", { points: "23 4 23 10 17 10" }), index.h("polyline", { points: "1 20 1 14 7 14" }), index.h("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" }))), "\u91CD\u8BD5")), this.showCopyButton && (index.h("button", { class: "action-button copy-button", title: "\u590D\u5236\u5185\u5BB9", "data-clipboard-text": this.message.answer || '' }, index.h("span", { class: "button-icon" }, index.h("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" }, index.h("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }), index.h("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }))), "\u590D\u5236")), showSaveJdButton && (index.h("button", { class: "action-button", onClick: () => this.handleSaveJd(this.message.answer), title: this.saveJdButtonText, disabled: this.saveJdLoading }, this.saveJdLoading ? '处理中...' : this.saveJdButtonText)), this.showFeedbackButtons && (index.h(index.h.Fragment, null, index.h("button", { class: `action-button icon-only ${this.feedbackStatus === 'like' ? 'active' : ''}`, title: "\u8D5E", onClick: () => this.handleLike() }, index.h("span", { class: "button-icon" }, index.h("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" }, index.h("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" })))), index.h("button", { class: `action-button icon-only ${this.feedbackStatus === 'dislike' ? 'active' : ''}`, title: "\u8E29", onClick: () => this.handleDislike() }, index.h("span", { class: "button-icon" }, index.h("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" }, index.h("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" })))))))))));
3226
4147
  }
3227
4148
  getFileName(fileUrl) {
3228
4149
  const parts = fileUrl.split('/');
@@ -3443,7 +4364,7 @@ const ChatMessageComponent = class {
3443
4364
  }
3444
4365
  }
3445
4366
  render() {
3446
- return (index.h("div", { key: '0136921c08146840b1d61e62ff144de60daceb62', class: "message-round" }, this.renderUserMessage(), this.renderAssistantMessage()));
4367
+ return (index.h("div", { key: '4322e4e98bb04dbca11fb4331e50dc1a64df36c6', class: "message-round" }, this.renderUserMessage(), this.renderAssistantMessage()));
3447
4368
  }
3448
4369
  };
3449
4370
  ChatMessageComponent.style = markdownCss$1 + (pcmChatMessageCss + hostCss$k);
@@ -7695,7 +8616,7 @@ const MnmsZpModal = class {
7695
8616
  file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,
7696
8617
  job_info: this.customInputs?.job_info || this.jobDescription,
7697
8618
  question_number: this.customInputs?.question_number || 5,
7698
- interview_type: this.digitalId
8619
+ ai_interview_type: this.digitalId
7699
8620
  } })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, showWorkspaceHistory: this.showWorkspaceHistory, botId: "3022316191018907", digitalId: this.digitalId, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, playbackRate: this.playbackRate, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
7700
8621
  ...this.customInputs,
7701
8622
  file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,
@@ -11953,7 +12874,7 @@ const ChatVirtualAPPModal = class {
11953
12874
  ...this.messages,
11954
12875
  {
11955
12876
  ...newMessage,
11956
- answer: '抱歉,发生了错误,请稍后再试。',
12877
+ answer: '消息发送失败,请检查网络。',
11957
12878
  error: error,
11958
12879
  isStreaming: false,
11959
12880
  },
@@ -12303,7 +13224,7 @@ const ChatVirtualAPPModal = class {
12303
13224
  errorMessage = '未检测到摄像头或麦克风设备';
12304
13225
  }
12305
13226
  else if (error.name === 'NotReadableError') {
12306
- errorMessage = '设备正在被其他应用程序使用';
13227
+ errorMessage = '您的浏览器不支持视频录制,请切换到微信或Chrome、Edge使用';
12307
13228
  }
12308
13229
  else if (error.name === 'OverconstrainedError') {
12309
13230
  errorMessage = '摄像头不支持指定的配置';
@@ -13560,7 +14481,7 @@ const ChatKBModal = class {
13560
14481
  alert(error instanceof Error ? error.message : '消息发送失败,请稍后再试');
13561
14482
  this.messages = [...this.messages, {
13562
14483
  ...newMessage,
13563
- answer: '抱歉,发生了错误,请稍后再试。',
14484
+ answer: '消息发送失败,请检查网络。',
13564
14485
  error: error,
13565
14486
  isStreaming: false
13566
14487
  }];