cnhis-design-vue 3.3.3-beta.7 → 3.3.3-beta.72

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 (306) hide show
  1. package/README.md +87 -87
  2. package/es/components/audio-sdk/index.d.ts +18 -16
  3. package/es/components/audio-sdk/src/Index.vue.d.ts +18 -16
  4. package/es/components/audio-sdk/src/Index.vue2.js +40 -5
  5. package/es/components/audio-sdk/src/components/recording-modal.vue.d.ts +6 -6
  6. package/es/components/audio-sdk/src/components/recording.vue.d.ts +6 -6
  7. package/es/components/audio-sdk/src/components/recording.vue2.js +17 -3
  8. package/es/components/base-search/index.d.ts +3 -0
  9. package/es/components/base-search/src/index.vue.d.ts +3 -0
  10. package/es/components/big-table/src/components/NoData.vue2.js +8 -1
  11. package/es/components/big-table/src/hooks/useTableParse.js +8 -1
  12. package/es/components/button-print/index.d.ts +67 -2
  13. package/es/components/button-print/src/ButtonPrint.vue.d.ts +67 -2
  14. package/es/components/button-print/src/ButtonPrint.vue2.js +6 -0
  15. package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +28 -3
  16. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +138 -15
  17. package/es/components/button-print/src/components/OldPrintComponent.vue.d.ts +18 -0
  18. package/es/components/button-print/src/components/OldPrintComponent.vue2.js +35 -6
  19. package/es/components/button-print/src/utils/print.d.ts +7 -5
  20. package/es/components/button-print/src/utils/print.js +183 -7
  21. package/es/components/button-print/style/index.css +1 -1
  22. package/es/components/calendar/src/Calendar.vue2.js +15 -5
  23. package/es/components/callback/src/components/render/popupMaps.d.ts +18 -0
  24. package/es/components/card-reader-sdk-cn/src/henan/index.js +8 -1
  25. package/es/components/classification/index.d.ts +555 -10
  26. package/es/components/classification/src/components/search-filter/index.vue.d.ts +555 -10
  27. package/es/components/classification/src/components/set-classification/index.vue.d.ts +555 -10
  28. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  29. package/es/components/classification/src/index.vue.d.ts +555 -10
  30. package/es/components/date-picker/src/DatePicker.vue2.js +8 -1
  31. package/es/components/expand-field/index.d.ts +792 -1
  32. package/es/components/expand-field/src/components/FormItemPerson.vue.d.ts +792 -1
  33. package/es/components/expand-field/src/components/PersonModal.vue.d.ts +792 -1
  34. package/es/components/expand-field/src/components/form.vue.d.ts +792 -1
  35. package/es/components/expand-field/src/components/form.vue2.js +8 -1
  36. package/es/components/expand-field/src/index.vue.d.ts +792 -1
  37. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcess.js +3 -1
  38. package/es/components/fabric-chart/src/hooks/temperature/useLeft.js +3 -2
  39. package/es/components/fabric-chart/src/hooks/temperature/useOther.d.ts +1 -1
  40. package/es/components/fabric-chart/src/hooks/temperature/useOther.js +58 -15
  41. package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.js +4 -3
  42. package/es/components/field-editor/index.d.ts +18 -0
  43. package/es/components/field-editor/src/FieldEditor.vue.d.ts +18 -0
  44. package/es/components/field-editor/src/FieldEditor.vue2.js +2 -1
  45. package/es/components/field-editor/src/fields.d.ts +1 -0
  46. package/es/components/field-editor/src/fields.js +6 -0
  47. package/es/components/field-set/src/FieldColor.vue.d.ts +10 -5
  48. package/es/components/field-set/src/FieldFilter.vue.d.ts +10 -5
  49. package/es/components/field-set/src/FieldSet.vue.d.ts +43 -6
  50. package/es/components/field-set/src/FieldSet.vue2.js +118 -69
  51. package/es/components/field-set/src/Index.vue2.js +8 -3
  52. package/es/components/field-set/src/TableStyle.vue2.js +2 -2
  53. package/es/components/field-set/src/components/table-row.vue.d.ts +6 -5
  54. package/es/components/field-set/src/components/table-row.vue2.js +21 -6
  55. package/es/components/field-set/src/constants/index.d.ts +1 -1
  56. package/es/components/field-set/src/types/index.d.ts +3 -1
  57. package/es/components/field-set/style/index.css +1 -1
  58. package/es/components/form-config/index.d.ts +102 -0
  59. package/es/components/form-config/src/FormConfig.vue.d.ts +102 -0
  60. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +18 -0
  61. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +63 -0
  62. package/es/components/form-config/src/components/FormConfigEdit.vue2.js +4 -4
  63. package/es/components/form-config/src/components/FormConfigEventSetting.vue.d.ts +18 -0
  64. package/es/components/form-config/src/components/FormConfigEventSetting.vue2.js +9 -2
  65. package/es/components/form-config/src/constants/index.d.ts +31 -1
  66. package/es/components/form-config/src/constants/index.js +150 -1
  67. package/es/components/form-config/src/hooks/useConfigurationField.d.ts +2 -2
  68. package/es/components/form-config/src/hooks/useConfigurationField.js +53 -6
  69. package/es/components/form-config/src/hooks/useLocale.d.ts +6 -0
  70. package/es/components/form-config/src/hooks/useLocale.js +34 -0
  71. package/es/components/form-config/src/types/index.d.ts +12 -0
  72. package/es/components/form-render/index.d.ts +18 -0
  73. package/es/components/form-render/src/FormRender.vue.d.ts +18 -0
  74. package/es/components/form-render/src/FormRender.vue2.js +5 -0
  75. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +18 -0
  76. package/es/components/form-render/src/components/renderer/date.d.ts +3 -1
  77. package/es/components/form-render/src/components/renderer/date.js +12 -10
  78. package/es/components/form-render/src/components/renderer/formItem.d.ts +2 -0
  79. package/es/components/form-render/src/components/renderer/formItem.js +17 -3
  80. package/es/components/form-render/src/components/renderer/levelSearchCascader/index.js +4 -2
  81. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.d.ts +1 -0
  82. package/es/components/form-render/src/components/renderer/lineBar/index.d.ts +1 -0
  83. package/es/components/form-render/src/components/renderer/radio_checkbox.js +9 -3
  84. package/es/components/form-render/src/components/renderer/searchCascade.js +3 -0
  85. package/es/components/form-render/src/hooks/useBusinessBinding.d.ts +12 -3
  86. package/es/components/form-render/src/hooks/useBusinessBinding.js +7 -7
  87. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +5 -2
  88. package/es/components/form-render/src/hooks/useFieldNormalize.d.ts +2 -0
  89. package/es/components/form-render/src/hooks/useFieldNormalize.js +15 -0
  90. package/es/components/form-render/src/hooks/useFormContext.js +1 -1
  91. package/es/components/form-render/src/hooks/useFormValidator.js +8 -1
  92. package/es/components/form-render/src/hooks/useLowCodeReactions.js +2 -1
  93. package/es/components/form-render/src/types/index.d.ts +1 -0
  94. package/es/components/form-render/src/utils/business.d.ts +3 -1
  95. package/es/components/form-render/src/utils/business.js +7 -1
  96. package/es/components/form-render/style/index.css +1 -1
  97. package/es/components/iho-chat/index.d.ts +902 -99
  98. package/es/components/iho-chat/src/Index.vue.d.ts +902 -99
  99. package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +24 -1
  100. package/es/components/iho-chat/src/components/ChatFile.vue.d.ts +181 -8
  101. package/es/components/iho-chat/src/components/ChatFile.vue2.js +51 -41
  102. package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +66 -6
  103. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +158 -57
  104. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +329 -15
  105. package/es/components/iho-chat/src/components/ChatHeader.vue2.js +21 -19
  106. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +235 -20
  107. package/es/components/iho-chat/src/components/ChatMain.vue2.js +298 -279
  108. package/es/components/iho-chat/src/components/ChatRecord.vue.d.ts +51 -5
  109. package/es/components/iho-chat/src/components/ChatRecord.vue2.js +3 -3
  110. package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +24 -1
  111. package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +48 -2
  112. package/es/components/iho-chat/src/components/ContextMenu.js +34 -27
  113. package/es/components/iho-chat/src/components/ImageLightbox.vue.d.ts +104 -0
  114. package/es/components/iho-chat/src/components/ImageLightbox.vue.js +6 -0
  115. package/es/components/iho-chat/src/components/ImageLightbox.vue2.js +307 -0
  116. package/es/components/iho-chat/src/components/MessageEvent.vue.d.ts +24 -1
  117. package/es/components/iho-chat/src/components/MessageMergeForward.vue.d.ts +53 -6
  118. package/es/components/iho-chat/src/components/MessageMergeForward.vue2.js +3 -3
  119. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +93 -30
  120. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +348 -144
  121. package/es/components/iho-chat/src/components/PersonProfile.vue.d.ts +24 -1
  122. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  123. package/es/components/iho-chat/src/components/SelectLabel.vue.d.ts +1 -1
  124. package/es/components/iho-chat/src/components/SiderList.vue.d.ts +24 -1
  125. package/es/components/iho-chat/src/components/Video.vue.d.ts +38 -25
  126. package/es/components/iho-chat/src/components/Video.vue2.js +35 -40
  127. package/es/components/iho-chat/src/hooks/index.d.ts +1 -0
  128. package/es/components/iho-chat/src/hooks/index.js +1 -0
  129. package/es/components/iho-chat/src/hooks/useData.d.ts +51 -4
  130. package/es/components/iho-chat/src/hooks/useData.js +2 -7
  131. package/es/components/iho-chat/src/hooks/useDraggable.d.ts +25 -0
  132. package/es/components/iho-chat/src/hooks/useDraggable.js +160 -0
  133. package/es/components/iho-chat/src/hooks/useVideo.d.ts +78 -11
  134. package/es/components/iho-chat/src/hooks/useVideo.js +420 -44
  135. package/es/components/iho-chat/src/types/index.d.ts +37 -1
  136. package/es/components/iho-chat/src/utils/emoji.d.ts +1 -1
  137. package/es/components/iho-chat/src/utils/emoji.js +1 -1
  138. package/es/components/iho-chat/src/utils/index.d.ts +4 -3
  139. package/es/components/iho-chat/src/utils/index.js +33 -39
  140. package/es/components/iho-chat/style/index.css +1 -1
  141. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +8 -1
  142. package/es/components/iho-table/src/plugins/headerPlugin/index.js +5 -2
  143. package/es/components/iho-table/src/plugins/highLightSetPlugin.js +2 -1
  144. package/es/components/index.css +1 -1
  145. package/es/components/index.d.ts +2 -0
  146. package/es/components/index.js +2 -1
  147. package/es/components/info-header/index.d.ts +41 -0
  148. package/es/components/info-header/src/InfoHeader.vue.d.ts +41 -0
  149. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue.d.ts +1 -0
  150. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue2.js +56 -22
  151. package/es/components/info-header/src/components/infoDescription/DescriptionList.vue.d.ts +1 -0
  152. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +19 -0
  153. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +18 -0
  154. package/es/components/info-header/src/components/patientInfo/index.vue2.js +16 -2
  155. package/es/components/keyboard/index.d.ts +9 -0
  156. package/es/components/keyboard/src/Keyboard.vue.d.ts +9 -0
  157. package/es/components/keyboard/src/Keyboard.vue2.js +33 -9
  158. package/es/components/keyboard/src/components/NumberPanel.vue.d.ts +4 -0
  159. package/es/components/keyboard/src/components/NumberPanel.vue2.js +50 -17
  160. package/es/components/keyboard/src/types.d.ts +17 -0
  161. package/es/components/keyboard/src/types.js +1 -0
  162. package/es/components/quick-search/index.d.ts +2 -0
  163. package/es/components/quick-search/src/index.vue.d.ts +2 -0
  164. package/es/components/scale-view/index.d.ts +66 -3
  165. package/es/components/scale-view/src/ScaleView.vue.d.ts +69 -5
  166. package/es/components/scale-view/src/ScaleView.vue2.js +79 -4
  167. package/es/components/scale-view/src/components/AnswerParse.vue.d.ts +5 -0
  168. package/es/components/scale-view/src/components/AnswerParse.vue2.js +74 -8
  169. package/es/components/scale-view/src/components/EvaluateCountdown.vue.d.ts +3 -0
  170. package/es/components/scale-view/src/components/EvaluateCountdown.vue2.js +26 -2
  171. package/es/components/scale-view/src/components/EvaluatePage.vue.d.ts +3 -0
  172. package/es/components/scale-view/src/components/EvaluatePage.vue2.js +27 -6
  173. package/es/components/scale-view/src/components/NoData.vue2.js +9 -3
  174. package/es/components/scale-view/src/components/ScaleScore.d.ts +1 -1
  175. package/es/components/scale-view/src/components/ScaleScore.js +45 -3
  176. package/es/components/scale-view/src/components/formitem/r-checkbox.js +16 -2
  177. package/es/components/scale-view/src/components/formitem/r-sign.js +32 -4
  178. package/es/components/scale-view/src/components/formitem/r-upload.js +65 -7
  179. package/es/components/scale-view/src/components/formitem/sign-com.js +8 -1
  180. package/es/components/scale-view/src/hooks/scaleview-computed.js +20 -4
  181. package/es/components/scale-view/src/hooks/scaleview-init.js +24 -3
  182. package/es/components/scale-view/src/hooks/scaleview-methods.js +40 -5
  183. package/es/components/scale-view/src/hooks/scaleview-props.d.ts +12 -0
  184. package/es/components/scale-view/src/hooks/scaleview-props.js +12 -0
  185. package/es/components/scale-view/src/hooks/scaleview-submit.d.ts +2 -1
  186. package/es/components/scale-view/src/hooks/scaleview-submit.js +64 -8
  187. package/es/components/scale-view/src/hooks/scaleview-validate.d.ts +1 -1
  188. package/es/components/scale-view/src/hooks/scaleview-validate.js +157 -24
  189. package/es/components/scale-view/src/hooks/use-evaluate.js +16 -2
  190. package/es/components/scale-view/src/hooks/use-noData.js +33 -5
  191. package/es/components/scale-view/src/utils/judge-types.d.ts +2 -1
  192. package/es/components/scale-view/src/utils/judge-types.js +10 -10
  193. package/es/components/scale-view/src/utils/watch-form-change.d.ts +13 -0
  194. package/es/components/scale-view/src/utils/watch-form-change.js +71 -0
  195. package/es/components/select-person/index.d.ts +792 -1
  196. package/es/components/select-person/src/SelectPerson.vue.d.ts +433 -273
  197. package/es/components/select-person/src/SelectPerson.vue.js +6 -0
  198. package/es/components/select-person/src/SelectPerson.vue2.js +795 -0
  199. package/es/components/select-person/src/SelectPersonRole.vue.js +2 -2
  200. package/es/components/select-person/src/components/GroupItem.vue.d.ts +19 -0
  201. package/es/components/select-person/src/components/GroupItem.vue.js +6 -0
  202. package/es/components/select-person/src/components/GroupItem.vue2.js +37 -0
  203. package/es/components/select-person/src/components/SearchGroupList.vue.d.ts +214 -0
  204. package/es/components/select-person/src/components/SearchGroupList.vue.js +6 -0
  205. package/es/components/select-person/src/components/SearchGroupList.vue2.js +145 -0
  206. package/es/components/select-person/src/components/SearchMultiple.vue2.js +1 -1
  207. package/es/components/select-person/src/components/SearchOrgAndStaff.vue2.js +21 -12
  208. package/es/components/select-person/src/components/TagItem.vue.d.ts +43 -0
  209. package/es/components/select-person/src/components/TagItem.vue.js +6 -0
  210. package/es/components/select-person/src/components/TagItem.vue2.js +40 -0
  211. package/es/components/select-person/src/index.vue.d.ts +793 -1
  212. package/es/components/select-person/src/index.vue2.js +21 -4
  213. package/es/components/select-person/src/types/index.d.ts +35 -0
  214. package/es/components/select-person/src/types/index.js +1 -0
  215. package/es/components/select-person/src/utils/index.d.ts +3 -0
  216. package/es/components/select-person/src/utils/index.js +25 -2
  217. package/es/components/select-person/style/index.css +1 -1
  218. package/es/components/shortcut-setter/index.d.ts +18 -0
  219. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +18 -0
  220. package/es/components/table-filter/index.js +1 -1
  221. package/es/components/table-filter/src/components/bi-filter/ValueCfg.vue.d.ts +1 -0
  222. package/es/components/table-filter/src/components/bi-filter/components/SelectFilter.vue.d.ts +1 -0
  223. package/es/components/table-filter/src/components/bi-filter/components/index.d.ts +1 -0
  224. package/es/components/table-filter/src/components/bi-filter/index.vue.d.ts +1 -0
  225. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue.d.ts +543 -6
  226. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue2.js +32 -10
  227. package/es/components/table-filter/src/components/classify-filter/components/Base/DateOption.vue.d.ts +226 -0
  228. package/es/components/table-filter/src/components/classify-filter/components/Base/DateOption.vue.js +6 -0
  229. package/es/components/table-filter/src/components/classify-filter/components/Base/DateOption.vue2.js +156 -0
  230. package/es/components/table-filter/src/components/classify-filter/components/Date.vue.d.ts +255 -2
  231. package/es/components/table-filter/src/components/classify-filter/components/Date.vue2.js +79 -5
  232. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue.d.ts +256 -2
  233. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue2.js +92 -6
  234. package/es/components/table-filter/src/components/classify-filter/components/SelectFilter.vue.d.ts +1 -0
  235. package/es/components/table-filter/src/components/classify-filter/components/index.d.ts +512 -4
  236. package/es/components/table-filter/src/components/classify-filter/helpers/options.d.ts +5 -1
  237. package/es/components/table-filter/src/components/classify-filter/helpers/options.js +49 -2
  238. package/es/components/table-filter/src/components/classify-filter/hooks/useFilterConditions.js +2 -1
  239. package/es/components/table-filter/src/components/classify-filter/index.vue.d.ts +554 -10
  240. package/es/components/table-filter/src/components/classify-filter/index.vue2.js +17 -7
  241. package/es/components/table-filter/src/components/render-widget/components/DateInner.vue.d.ts +2 -2
  242. package/es/components/table-filter/src/components/render-widget/components/DateOut.vue.d.ts +1 -1
  243. package/es/components/table-filter/src/components/render-widget/components/DateOut.vue2.js +12 -1
  244. package/es/components/table-filter/src/components/render-widget/components/DateQuickBtn/index.vue.d.ts +1 -1
  245. package/es/components/table-filter/src/components/render-widget/components/DateQuickBtn/index.vue2.js +25 -6
  246. package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue.d.ts +2 -2
  247. package/es/components/table-filter/src/components/render-widget/components/DateRangeOut.vue2.js +12 -1
  248. package/es/components/table-filter/src/components/render-widget/components/index.d.ts +5 -5
  249. package/es/components/table-filter/src/components/render-widget/helpers/dateExtraMap.js +32 -4
  250. package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.d.ts +1 -0
  251. package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.js +23 -2
  252. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +5 -5
  253. package/es/components/table-filter/src/hooks/useAdvanced.d.ts +2 -0
  254. package/es/components/table-filter/src/hooks/useAdvanced.js +25 -7
  255. package/es/components/table-filter/src/hooks/useRenderWidget.js +4 -0
  256. package/es/components/table-filter/src/tool/baseOptions.js +8 -1
  257. package/es/components/table-filter/src/tool/date.d.ts +3 -0
  258. package/es/components/table-filter/src/tool/date.js +139 -0
  259. package/es/components/table-filter/src/tool/transformData.d.ts +1 -0
  260. package/es/components/table-filter/src/tool/transformData.js +11 -8
  261. package/es/components/table-filter/src/types/enums.d.ts +5 -0
  262. package/es/components/table-filter/src/types/enums.js +7 -2
  263. package/es/components/table-filter/src/types/index.d.ts +12 -0
  264. package/es/components/vertify/index.d.ts +1 -0
  265. package/es/components/vertify/index.js +1 -0
  266. package/es/components/vertify/src/components/IdentityVerification.vue.d.ts +89 -0
  267. package/es/components/vertify/src/components/IdentityVerification.vue.js +6 -0
  268. package/es/components/vertify/src/components/IdentityVerification.vue2.js +256 -0
  269. package/es/components/vertify/src/utils/dialog.d.ts +7 -0
  270. package/es/components/vertify/src/utils/dialog.js +73 -0
  271. package/es/components/vertify/src/utils/index.d.ts +11 -0
  272. package/es/components/vertify/src/utils/index.js +24 -0
  273. package/es/components/vod-chunk-upload/index.d.ts +16 -0
  274. package/es/components/vod-chunk-upload/src/chunk-upload-new.vue.d.ts +20 -31
  275. package/es/components/vod-chunk-upload/src/chunk-upload-new.vue2.js +205 -78
  276. package/es/components/vod-chunk-upload/src/hooks/upload-computed.d.ts +1 -0
  277. package/es/components/vod-chunk-upload/src/hooks/upload-computed.js +35 -4
  278. package/es/components/vod-chunk-upload/src/hooks/upload-data.d.ts +4 -0
  279. package/es/components/vod-chunk-upload/src/hooks/upload-data.js +78 -11
  280. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue.d.ts +16 -0
  281. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue2.js +81 -10
  282. package/es/components/vod-chunk-upload/style/index.css +1 -1
  283. package/es/env.d.ts +25 -25
  284. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  285. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  286. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  287. package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
  288. package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
  289. package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
  290. package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
  291. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  292. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  293. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  294. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  295. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  296. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  297. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  298. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  299. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  300. package/es/shared/components/InputNumberSlash/InputNumberSlash.js +1 -1
  301. package/es/shared/hooks/selectHooks/useSearchContent.js +1 -1
  302. package/es/shared/hooks/useDateTime.js +1 -1
  303. package/es/shared/hooks/useLevelSearchCascader.js +3 -3
  304. package/es/shared/package.json.js +2 -2
  305. package/es/shared/utils/fabricjs/index.js +1 -1
  306. package/package.json +6 -5
@@ -7,7 +7,30 @@ declare const _default: import("vue").DefineComponent<{}, {
7
7
  currentSessionItem: AnyObject;
8
8
  id: string;
9
9
  userInfo: AnyObject;
10
- msgList: AnyObject[];
10
+ msgList: {
11
+ [x: string]: any;
12
+ id: string;
13
+ sessionKey: string;
14
+ content: {
15
+ [x: string]: any;
16
+ chatMessageType: string;
17
+ msg: string;
18
+ referenceContent?: any;
19
+ forwardMessageList?: AnyObject[] | undefined;
20
+ messageTemplate?: any;
21
+ messageTemplateData?: any;
22
+ fileUrl?: string | undefined;
23
+ avStatus?: string | undefined;
24
+ };
25
+ senderName: string;
26
+ sendTime: string;
27
+ sender: string;
28
+ status: string;
29
+ senderAvatar: string;
30
+ __content: string;
31
+ __time?: string | undefined;
32
+ __sendTime?: string | undefined;
33
+ }[];
11
34
  currentMsg: AnyObject;
12
35
  isAppendMsg: boolean;
13
36
  sessionList: AnyObject[];
@@ -225,7 +225,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
225
225
  round: "",
226
226
  size: 100,
227
227
  onClickCapture: _cache[0] || (_cache[0] = ($event) => showLargeAvatar.value = true)
228
- }, null, 8, ["src"]), createCommentVNode(' <n-upload abstract accept="image/*" @change="onChange">\r\n <n-upload-trigger #="{ handleClick }" abstract>\r\n <n-button\r\n circle\r\n secondary\r\n class="edit-avatar"\r\n v-show="userDetail.id === state.userInfo.id"\r\n @click="handleClick"\r\n >\r\n <template #icon>\r\n <n-icon size="16" color="#666666" :component="Camera" />\r\n </template>\r\n </n-button>\r\n </n-upload-trigger>\r\n </n-upload> '), createElementVNode("div", _hoisted_4, [createElementVNode("h4", null, [createElementVNode("label", _hoisted_5, toDisplayString(userDetail.name), 1), withDirectives(createElementVNode("label", {
228
+ }, null, 8, ["src"]), createCommentVNode(' <n-upload abstract accept="image/*" @change="onChange">\n <n-upload-trigger #="{ handleClick }" abstract>\n <n-button\n circle\n secondary\n class="edit-avatar"\n v-show="userDetail.id === state.userInfo.id"\n @click="handleClick"\n >\n <template #icon>\n <n-icon size="16" color="#666666" :component="Camera" />\n </template>\n </n-button>\n </n-upload-trigger>\n </n-upload> '), createElementVNode("div", _hoisted_4, [createElementVNode("h4", null, [createElementVNode("label", _hoisted_5, toDisplayString(userDetail.name), 1), withDirectives(createElementVNode("label", {
229
229
  class: normalizeClass(["iho-chatRole", unref(isDoctorRole)(userDetail.roleInfo) ? "isDoctor" : ""])
230
230
  }, toDisplayString(unref(getRoleName)(userDetail.roleInfo)), 3), [[vShow, unref(getRoleName)(userDetail.roleInfo)]])]), createElementVNode("p", null, toDisplayString(userDetail.orgName), 1)]), createVNode(unref(NButton), {
231
231
  strong: "",
@@ -36,7 +36,7 @@ declare const _default: import("vue").DefineComponent<{
36
36
  NTooltip: any;
37
37
  emojis: {
38
38
  default: string[][];
39
- findEmoji(name: string): any;
39
+ findEmoji(name: string): string | undefined;
40
40
  };
41
41
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:show"[], "update:show", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
42
42
  id: {
@@ -32,7 +32,30 @@ declare const _default: import("vue").DefineComponent<{}, {
32
32
  currentSessionItem: AnyObject;
33
33
  id: string;
34
34
  userInfo: AnyObject;
35
- msgList: AnyObject[];
35
+ msgList: {
36
+ [x: string]: any;
37
+ id: string;
38
+ sessionKey: string;
39
+ content: {
40
+ [x: string]: any;
41
+ chatMessageType: string;
42
+ msg: string;
43
+ referenceContent?: any;
44
+ forwardMessageList?: AnyObject[] | undefined;
45
+ messageTemplate?: any;
46
+ messageTemplateData?: any;
47
+ fileUrl?: string | undefined;
48
+ avStatus?: string | undefined;
49
+ };
50
+ senderName: string;
51
+ sendTime: string;
52
+ sender: string;
53
+ status: string;
54
+ senderAvatar: string;
55
+ __content: string;
56
+ __time?: string | undefined;
57
+ __sendTime?: string | undefined;
58
+ }[];
36
59
  currentMsg: AnyObject;
37
60
  isAppendMsg: boolean;
38
61
  sessionList: AnyObject[];
@@ -1,4 +1,4 @@
1
- import TRTC from 'trtc-sdk-v5';
1
+ import { type TRTCEvent } from '../hooks';
2
2
  import { AV_STATUS } from '../constants';
3
3
  declare const _default: import("vue").DefineComponent<{}, {
4
4
  sendMessage: (message: {
@@ -11,7 +11,30 @@ declare const _default: import("vue").DefineComponent<{}, {
11
11
  currentSessionItem: import("../../../../shared/types").AnyObject;
12
12
  id: string;
13
13
  userInfo: import("../../../../shared/types").AnyObject;
14
- msgList: import("../../../../shared/types").AnyObject[];
14
+ msgList: {
15
+ [x: string]: any;
16
+ id: string;
17
+ sessionKey: string;
18
+ content: {
19
+ [x: string]: any;
20
+ chatMessageType: string;
21
+ msg: string;
22
+ referenceContent?: any;
23
+ forwardMessageList?: import("../../../../shared/types").AnyObject[] | undefined;
24
+ messageTemplate?: any;
25
+ messageTemplateData?: any;
26
+ fileUrl?: string | undefined;
27
+ avStatus?: string | undefined;
28
+ };
29
+ senderName: string;
30
+ sendTime: string;
31
+ sender: string;
32
+ status: string;
33
+ senderAvatar: string;
34
+ __content: string;
35
+ __time?: string | undefined;
36
+ __sendTime?: string | undefined;
37
+ }[];
15
38
  currentMsg: import("../../../../shared/types").AnyObject;
16
39
  isAppendMsg: boolean;
17
40
  sessionList: import("../../../../shared/types").AnyObject[];
@@ -35,36 +58,26 @@ declare const _default: import("vue").DefineComponent<{}, {
35
58
  };
36
59
  isForward: boolean;
37
60
  };
38
- trtcProxy: import("vue").Ref<any>;
39
- trtc: TRTC;
61
+ trtc: import("trtc-sdk-v5").TRTC;
40
62
  timing: import("vue").Ref<string>;
41
63
  voiceClose: import("vue").Ref<boolean>;
42
64
  isAudio: import("vue").ComputedRef<boolean>;
43
65
  isCall: import("vue").ComputedRef<boolean>;
44
66
  startTimer: () => void;
45
- resetTimer: () => void;
46
67
  toggleAudio: () => Promise<void>;
47
68
  messageTypeText: import("vue").ComputedRef<"语音" | "视频">;
48
69
  time: {
49
70
  timer: any;
50
71
  seconds: number;
51
72
  };
52
- installEventHandlers: ({ handleError, handleRemoteUserEnter, handleRemoteAudioAvailable, handleRemoteUserExit, handleRemoteVideoAvailable }: {
53
- handleError: import("../../../../shared/types").AnyFn;
54
- handleRemoteUserEnter: import("../../../../shared/types").AnyFn;
55
- handleRemoteAudioAvailable: import("../../../../shared/types").AnyFn;
56
- handleRemoteUserExit: import("../../../../shared/types").AnyFn;
57
- handleRemoteVideoAvailable: import("../../../../shared/types").AnyFn;
58
- }) => void;
59
- uninstallEventHandlers: ({ handleError, handleRemoteUserEnter, handleRemoteAudioAvailable, handleRemoteUserExit, handleRemoteVideoAvailable }: {
60
- handleError: import("../../../../shared/types").AnyFn;
61
- handleRemoteUserEnter: import("../../../../shared/types").AnyFn;
62
- handleRemoteAudioAvailable: import("../../../../shared/types").AnyFn;
63
- handleRemoteUserExit: import("../../../../shared/types").AnyFn;
64
- handleRemoteVideoAvailable: import("../../../../shared/types").AnyFn;
65
- }) => void;
66
- videoRef: import("vue").Ref<any>;
67
- selfVideoRef: import("vue").Ref<any>;
73
+ installEventHandlers: (handlers: import("../hooks").VideoEventHandlers) => void;
74
+ uninstallEventHandlers: (handlers: import("../hooks").VideoEventHandlers) => void;
75
+ enterRoom: () => Promise<boolean>;
76
+ exitRoom: () => Promise<void>;
77
+ startLocalMedia: (selfVideoRef?: HTMLElement | undefined) => Promise<void>;
78
+ MAIN_STREAM_TYPE: any;
79
+ videoRef: import("vue").Ref<HTMLElement | undefined>;
80
+ selfVideoRef: import("vue").Ref<HTMLElement | undefined>;
68
81
  isConnect: import("vue").Ref<boolean>;
69
82
  timeout: any;
70
83
  info: import("vue").ComputedRef<{
@@ -79,10 +92,10 @@ declare const _default: import("vue").DefineComponent<{}, {
79
92
  handleEnter: () => Promise<void>;
80
93
  handleFinish: () => void;
81
94
  handleExit: () => Promise<void>;
82
- handleRemoteVideoAvailable: (event: any) => Promise<void>;
83
- handleRemoteAudioAvailable: (event: any) => void;
84
- handleRemoteUserEnter: () => void;
85
- handleRemoteUserExit: (event: any) => void;
95
+ handleRemoteVideoAvailable: (event: TRTCEvent) => Promise<void>;
96
+ handleRemoteAudioAvailable: (event: TRTCEvent) => void;
97
+ handleRemoteUserEnter: (event: TRTCEvent) => void;
98
+ handleRemoteUserExit: (event: TRTCEvent) => void;
86
99
  handleError: (error: any) => void;
87
100
  NButton: any;
88
101
  NAvatar: any;
@@ -15,7 +15,6 @@ import '../../../../shared/hooks/useScrollLoading.js';
15
15
  import 'stompjs';
16
16
  import 'sockjs-client/dist/sockjs.min.js';
17
17
  import { useVideo } from '../hooks/useVideo.js';
18
- import TRTC from 'trtc-sdk-v5';
19
18
 
20
19
  const _hoisted_1 = {
21
20
  class: "video-wrapper"
@@ -76,20 +75,25 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
76
75
  const {
77
76
  sendMessage,
78
77
  state,
79
- trtcProxy,
80
78
  trtc,
81
79
  timing,
82
80
  voiceClose,
83
81
  isAudio,
84
82
  isCall,
85
83
  startTimer,
86
- resetTimer,
87
84
  toggleAudio,
88
85
  messageTypeText,
89
86
  time,
90
87
  installEventHandlers,
91
- uninstallEventHandlers
92
- } = useVideo();
88
+ uninstallEventHandlers,
89
+ enterRoom,
90
+ exitRoom,
91
+ startLocalMedia,
92
+ MAIN_STREAM_TYPE
93
+ } = useVideo({
94
+ isMultiple: false,
95
+ enableRetry: false
96
+ });
93
97
  const videoRef = ref();
94
98
  const selfVideoRef = ref();
95
99
  const isConnect = ref(false);
@@ -150,20 +154,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
150
154
  }
151
155
  }
152
156
  async function handleEnter() {
153
- const checkResult = await TRTC.isSupported();
154
- if (!checkResult.result || !checkResult.detail.isH264EncodeSupported || !checkResult.detail.isH264DecodeSupported) {
155
- console.log("checkResult :>> ", checkResult);
157
+ const success = await enterRoom();
158
+ if (!success) {
156
159
  state.showVideo = false;
157
160
  return;
158
161
  }
159
162
  try {
160
- await trtc.enterRoom({
161
- strRoomId: state.currentAVMsg.strRoomId,
162
- sdkAppId: parseInt(state.userInfo.sdkAppID),
163
- userId: state.userInfo.id,
164
- userSig: state.userInfo.userSig,
165
- proxy: trtcProxy.value
166
- });
167
163
  if (!isCall.value) {
168
164
  isConnect.value = true;
169
165
  startTimer();
@@ -175,15 +171,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
175
171
  handleRemoteUserExit,
176
172
  handleRemoteVideoAvailable
177
173
  });
178
- await trtc.startLocalAudio();
179
- if (isAudio.value)
180
- return;
181
- await trtc.startLocalVideo({
182
- view: selfVideoRef.value
183
- });
174
+ await startLocalMedia(selfVideoRef.value);
184
175
  } catch (error) {
185
- console.log("error :>> ", error);
186
- $message.error(error);
176
+ console.error("Error setting up single video call:", error);
177
+ $message.error("\u8BBE\u7F6E\u89C6\u9891\u901A\u8BDD\u5931\u8D25");
187
178
  state.showVideo = false;
188
179
  }
189
180
  }
@@ -204,13 +195,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
204
195
  handleRemoteUserExit,
205
196
  handleRemoteVideoAvailable
206
197
  });
207
- await trtc.exitRoom();
208
- await trtc.stopLocalAudio();
209
- if (isAudio.value)
210
- return;
211
- await trtc.stopLocalVideo();
198
+ await exitRoom();
212
199
  } catch (error) {
213
- console.log("error :>> ", error);
200
+ console.error("Error during video exit:", error);
214
201
  }
215
202
  }
216
203
  async function handleRemoteVideoAvailable(event) {
@@ -219,27 +206,35 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
219
206
  streamType
220
207
  } = event;
221
208
  try {
222
- await trtc.startRemoteVideo({
223
- userId,
224
- streamType,
225
- view: videoRef.value
226
- });
209
+ if (streamType === MAIN_STREAM_TYPE && videoRef.value) {
210
+ await trtc.startRemoteVideo({
211
+ userId,
212
+ streamType,
213
+ view: videoRef.value
214
+ });
215
+ console.log("Remote video rendered for user:", userId);
216
+ }
227
217
  } catch (error) {
228
- console.log("error :>> ", error);
218
+ console.error("Error rendering remote video:", error);
229
219
  }
230
220
  }
231
221
  function handleRemoteAudioAvailable(event) {
222
+ console.log("Remote audio available:", event.userId);
232
223
  }
233
- function handleRemoteUserEnter() {
234
- isConnect.value = true;
235
- startTimer();
224
+ function handleRemoteUserEnter(event) {
225
+ console.log("Remote user entered:", event.userId);
226
+ if (isCall.value) {
227
+ isConnect.value = true;
228
+ startTimer();
229
+ }
236
230
  }
237
231
  function handleRemoteUserExit(event) {
238
- console.log("event :>> \u5BF9\u65B9\u5DF2\u6302\u65AD", event);
232
+ console.log("Remote user exited:", event.userId);
239
233
  handleExit();
240
234
  }
241
235
  function handleError(error) {
242
- console.log("error :>> ", error);
236
+ console.error("TRTC error in single video:", error);
237
+ $message.error("\u89C6\u9891\u901A\u8BDD\u51FA\u73B0\u9519\u8BEF");
243
238
  state.showVideo = false;
244
239
  }
245
240
  watch(() => status.value, (value) => {
@@ -1,3 +1,4 @@
1
1
  export * from './useData';
2
2
  export * from './useWebSocket';
3
3
  export * from './useVideo';
4
+ export * from './useDraggable';
@@ -1,3 +1,4 @@
1
1
  export { InjectionIChatData, initData, useData } from './useData.js';
2
2
  export { useWebSocket } from './useWebSocket.js';
3
3
  export { useVideo } from './useVideo.js';
4
+ export { useDraggable } from './useDraggable.js';
@@ -1,4 +1,5 @@
1
1
  import { InjectionKey } from 'vue';
2
+ import { MsgListItem } from '../types';
2
3
  import { ChatSock } from '../utils/chatSock';
3
4
  import { AnyObject } from '../../../../shared/types';
4
5
  export declare const InjectionIChatData: InjectionKey<ReturnType<typeof initData>>;
@@ -12,7 +13,30 @@ export declare function initData(props: AnyObject, emit: (event: 'template-click
12
13
  currentSessionItem: AnyObject;
13
14
  id: string;
14
15
  userInfo: AnyObject;
15
- msgList: AnyObject[];
16
+ msgList: {
17
+ [x: string]: any;
18
+ id: string;
19
+ sessionKey: string;
20
+ content: {
21
+ [x: string]: any;
22
+ chatMessageType: string;
23
+ msg: string;
24
+ referenceContent?: any;
25
+ forwardMessageList?: AnyObject[] | undefined;
26
+ messageTemplate?: any;
27
+ messageTemplateData?: any;
28
+ fileUrl?: string | undefined;
29
+ avStatus?: string | undefined;
30
+ };
31
+ senderName: string;
32
+ sendTime: string;
33
+ sender: string;
34
+ status: string;
35
+ senderAvatar: string;
36
+ __content: string;
37
+ __time?: string | undefined;
38
+ __sendTime?: string | undefined;
39
+ }[];
16
40
  currentMsg: AnyObject;
17
41
  isAppendMsg: boolean;
18
42
  sessionList: AnyObject[];
@@ -40,7 +64,7 @@ export declare function initData(props: AnyObject, emit: (event: 'template-click
40
64
  isGroupChat: import("vue").ComputedRef<boolean>;
41
65
  isGroupLeader: import("vue").ComputedRef<boolean>;
42
66
  isEnded: import("vue").ComputedRef<boolean>;
43
- setMsgList: (list?: AnyObject[]) => void;
67
+ setMsgList: (list?: AnyObject[] | MsgListItem) => void;
44
68
  sendMessage: (message: {
45
69
  chatType?: string;
46
70
  content: AnyObject;
@@ -75,7 +99,30 @@ export declare const useData: () => {
75
99
  currentSessionItem: AnyObject;
76
100
  id: string;
77
101
  userInfo: AnyObject;
78
- msgList: AnyObject[];
102
+ msgList: {
103
+ [x: string]: any;
104
+ id: string;
105
+ sessionKey: string;
106
+ content: {
107
+ [x: string]: any;
108
+ chatMessageType: string;
109
+ msg: string;
110
+ referenceContent?: any;
111
+ forwardMessageList?: AnyObject[] | undefined;
112
+ messageTemplate?: any;
113
+ messageTemplateData?: any;
114
+ fileUrl?: string | undefined;
115
+ avStatus?: string | undefined;
116
+ };
117
+ senderName: string;
118
+ sendTime: string;
119
+ sender: string;
120
+ status: string;
121
+ senderAvatar: string;
122
+ __content: string;
123
+ __time?: string | undefined;
124
+ __sendTime?: string | undefined;
125
+ }[];
79
126
  currentMsg: AnyObject;
80
127
  isAppendMsg: boolean;
81
128
  sessionList: AnyObject[];
@@ -103,7 +150,7 @@ export declare const useData: () => {
103
150
  isGroupChat: import("vue").ComputedRef<boolean>;
104
151
  isGroupLeader: import("vue").ComputedRef<boolean>;
105
152
  isEnded: import("vue").ComputedRef<boolean>;
106
- setMsgList: (list?: AnyObject[]) => void;
153
+ setMsgList: (list?: AnyObject[] | MsgListItem) => void;
107
154
  sendMessage: (message: {
108
155
  chatType?: string;
109
156
  content: AnyObject;
@@ -1,9 +1,9 @@
1
1
  import { ref, reactive, computed, watch, toRef, inject, toRaw } from 'vue';
2
2
  import { openSessionApi, updateStatusApi, groupUserApi } from '../api/index.js';
3
3
  import { promiseTimeout, useIntervalFn } from '@vueuse/core';
4
- import { isGroup, listSort, formatTime, transformMessage, getFileSize, $message, simplifyMessage } from '../utils/index.js';
4
+ import { isGroup, listSort, formatTime, transformMessage, $message, simplifyMessage } from '../utils/index.js';
5
5
  import { cloneDeep, remove, isArray, uniqBy } from 'lodash-es';
6
- import { STATUS, MESSAGE_TYPE, CHAT_TYPE } from '../constants/index.js';
6
+ import { STATUS, CHAT_TYPE, MESSAGE_TYPE } from '../constants/index.js';
7
7
  import { useTheme } from '../../../../shared/hooks/useTheme.js';
8
8
  import 'date-fns';
9
9
  import '@vue/shared';
@@ -139,11 +139,6 @@ function initData(props, emit) {
139
139
  __content: transformMessage(item.content),
140
140
  __sendTime: formatTime(item.sendTime).recordTime
141
141
  });
142
- if (item.content.chatMessageType === MESSAGE_TYPE.FILE && !item.__size) {
143
- getFileSize(item.content.fileUrl).then((size) => {
144
- item.__size = size;
145
- });
146
- }
147
142
  });
148
143
  if (needUpdateTime()) {
149
144
  resume();
@@ -0,0 +1,25 @@
1
+ import { type Ref } from 'vue';
2
+ interface Position {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ type PositionStr = 'center' | 'top-right';
7
+ interface UseDraggableOptions {
8
+ handle?: Ref<HTMLElement | null>;
9
+ initialPosition?: PositionStr;
10
+ onDragStart?: (position: Position) => void;
11
+ onDrag?: (position: Position) => void;
12
+ onDragEnd?: (position: Position) => void;
13
+ }
14
+ export declare function useDraggable(target: Ref<HTMLElement | null>, options?: UseDraggableOptions): {
15
+ style: Ref<{
16
+ left: string;
17
+ top: string;
18
+ }>;
19
+ position: {
20
+ x: Ref<number>;
21
+ y: Ref<number>;
22
+ };
23
+ changePosition: (position?: PositionStr) => void;
24
+ };
25
+ export {};
@@ -0,0 +1,160 @@
1
+ import { ref, onMounted, onBeforeUnmount } from 'vue';
2
+
3
+ function useDraggable(target, options = {}) {
4
+ const x = ref(0);
5
+ const y = ref(0);
6
+ const isDragging = ref(false);
7
+ const startPos = ref({
8
+ x: 0,
9
+ y: 0
10
+ });
11
+ const startMousePos = ref({
12
+ x: 0,
13
+ y: 0
14
+ });
15
+ const style = ref({
16
+ left: `${x.value}px`,
17
+ top: `${y.value}px`
18
+ });
19
+ const updatePosition = () => {
20
+ style.value = {
21
+ left: `${x.value}px`,
22
+ top: `${y.value}px`
23
+ };
24
+ };
25
+ const centerElement = () => {
26
+ if (!target.value)
27
+ return;
28
+ const {
29
+ width: width1,
30
+ height: height1
31
+ } = target.value.getBoundingClientRect();
32
+ const {
33
+ width: width2,
34
+ height: height2
35
+ } = getHiddenElementRect(target.value);
36
+ const width = width1 || width2 || 0;
37
+ const height = height1 || height2 || 0;
38
+ x.value = window.innerWidth / 2 - width / 2;
39
+ y.value = window.innerHeight / 2 - height / 2;
40
+ updatePosition();
41
+ };
42
+ const topRightElement = () => {
43
+ if (!target.value)
44
+ return;
45
+ const {
46
+ width: width1
47
+ } = target.value.getBoundingClientRect();
48
+ const {
49
+ width: width2
50
+ } = getHiddenElementRect(target.value);
51
+ const width = width1 || width2 || 0;
52
+ x.value = window.innerWidth - width - 20;
53
+ y.value = 20;
54
+ updatePosition();
55
+ };
56
+ const handlePosition = () => {
57
+ changePosition(options.initialPosition);
58
+ };
59
+ const changePosition = (position) => {
60
+ if (!position)
61
+ return;
62
+ if (position === "center") {
63
+ centerElement();
64
+ } else if (position === "top-right") {
65
+ topRightElement();
66
+ }
67
+ };
68
+ const clamp = (val, min, max) => Math.max(min, Math.min(val, max));
69
+ const onMouseDown = (e) => {
70
+ var _a;
71
+ if (!target.value)
72
+ return;
73
+ isDragging.value = true;
74
+ startMousePos.value = {
75
+ x: e.clientX,
76
+ y: e.clientY
77
+ };
78
+ startPos.value = {
79
+ x: x.value,
80
+ y: y.value
81
+ };
82
+ (_a = options.onDragStart) == null ? void 0 : _a.call(options, {
83
+ x: x.value,
84
+ y: y.value
85
+ });
86
+ e.preventDefault();
87
+ document.body.style.userSelect = "none";
88
+ };
89
+ const onMouseMove = (e) => {
90
+ var _a;
91
+ if (!isDragging.value || !target.value)
92
+ return;
93
+ const dx = e.clientX - startMousePos.value.x;
94
+ const dy = e.clientY - startMousePos.value.y;
95
+ const {
96
+ width,
97
+ height
98
+ } = target.value.getBoundingClientRect();
99
+ const minX = 0;
100
+ const minY = 0;
101
+ const maxX = window.innerWidth - width;
102
+ const maxY = window.innerHeight - height;
103
+ x.value = clamp(startPos.value.x + dx, minX, maxX);
104
+ y.value = clamp(startPos.value.y + dy, minY, maxY);
105
+ updatePosition();
106
+ (_a = options.onDrag) == null ? void 0 : _a.call(options, {
107
+ x: x.value,
108
+ y: y.value
109
+ });
110
+ };
111
+ const onMouseUp = () => {
112
+ var _a;
113
+ if (!isDragging.value)
114
+ return;
115
+ isDragging.value = false;
116
+ document.body.style.userSelect = "";
117
+ (_a = options.onDragEnd) == null ? void 0 : _a.call(options, {
118
+ x: x.value,
119
+ y: y.value
120
+ });
121
+ };
122
+ onMounted(() => {
123
+ var _a, _b;
124
+ const handle = (_b = (_a = options.handle) == null ? void 0 : _a.value) != null ? _b : target.value;
125
+ if (!handle)
126
+ return;
127
+ handlePosition();
128
+ handle.addEventListener("mousedown", onMouseDown);
129
+ document.addEventListener("mousemove", onMouseMove);
130
+ document.addEventListener("mouseup", onMouseUp);
131
+ window.addEventListener("resize", handlePosition);
132
+ });
133
+ onBeforeUnmount(() => {
134
+ var _a, _b;
135
+ const handle = (_b = (_a = options.handle) == null ? void 0 : _a.value) != null ? _b : target.value;
136
+ if (!handle)
137
+ return;
138
+ handle.removeEventListener("mousedown", onMouseDown);
139
+ document.removeEventListener("mousemove", onMouseMove);
140
+ document.removeEventListener("mouseup", onMouseUp);
141
+ window.removeEventListener("resize", handlePosition);
142
+ });
143
+ return {
144
+ style,
145
+ position: {
146
+ x,
147
+ y
148
+ },
149
+ changePosition
150
+ };
151
+ }
152
+ function getHiddenElementRect(element) {
153
+ const styles = window.getComputedStyle(element);
154
+ return {
155
+ width: parseFloat(styles.width),
156
+ height: parseFloat(styles.height)
157
+ };
158
+ }
159
+
160
+ export { useDraggable };