@rdeam/qui 2.0.0

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 (434) hide show
  1. package/README.md +59 -0
  2. package/es/_virtual/_@oxc-project_runtime@0.127.0/helpers/defineProperty.mjs +12 -0
  3. package/es/_virtual/_@oxc-project_runtime@0.127.0/helpers/toPrimitive.mjs +14 -0
  4. package/es/_virtual/_@oxc-project_runtime@0.127.0/helpers/toPropertyKey.mjs +9 -0
  5. package/es/_virtual/_@oxc-project_runtime@0.127.0/helpers/typeof.mjs +11 -0
  6. package/es/component.d.ts +3 -0
  7. package/es/component.mjs +39 -0
  8. package/es/component.mjs.map +1 -0
  9. package/es/components/date-picker/index.d.ts +6 -0
  10. package/es/components/date-picker/index.mjs +9 -0
  11. package/es/components/date-picker/index.mjs.map +1 -0
  12. package/es/components/date-picker/src/date-picker.d.ts +19 -0
  13. package/es/components/date-picker/src/date-picker.mjs +28 -0
  14. package/es/components/date-picker/src/date-picker.mjs.map +1 -0
  15. package/es/components/date-picker/src/date-picker.vue.d.ts +33 -0
  16. package/es/components/date-picker/src/date-picker.vue.mjs +7 -0
  17. package/es/components/date-picker/src/date-picker.vue.mjs.map +1 -0
  18. package/es/components/date-picker/src/date-picker.vue_vue_type_script_setup_true_lang.mjs +42 -0
  19. package/es/components/date-picker/src/date-picker.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  20. package/es/components/date-picker/src/instance.d.ts +2 -0
  21. package/es/components/date-picker/src/instance.mjs +0 -0
  22. package/es/components/date-picker/style/index.d.ts +1 -0
  23. package/es/components/descriptions/index.d.ts +6 -0
  24. package/es/components/descriptions/index.mjs +9 -0
  25. package/es/components/descriptions/index.mjs.map +1 -0
  26. package/es/components/descriptions/src/descriptions.d.ts +42 -0
  27. package/es/components/descriptions/src/descriptions.mjs +86 -0
  28. package/es/components/descriptions/src/descriptions.mjs.map +1 -0
  29. package/es/components/descriptions/src/idescriptions.d.ts +72 -0
  30. package/es/components/descriptions/src/idescriptions.mjs +55 -0
  31. package/es/components/descriptions/src/idescriptions.mjs.map +1 -0
  32. package/es/components/descriptions/src/instance.d.ts +2 -0
  33. package/es/components/descriptions/src/instance.mjs +0 -0
  34. package/es/components/descriptions/style/index.d.ts +1 -0
  35. package/es/components/ellipsis-tag/index.d.ts +6 -0
  36. package/es/components/ellipsis-tag/index.mjs +9 -0
  37. package/es/components/ellipsis-tag/index.mjs.map +1 -0
  38. package/es/components/ellipsis-tag/src/ellipsis-tag.d.ts +20 -0
  39. package/es/components/ellipsis-tag/src/ellipsis-tag.mjs +19 -0
  40. package/es/components/ellipsis-tag/src/ellipsis-tag.mjs.map +1 -0
  41. package/es/components/ellipsis-tag/src/ellipsis-tag.vue.d.ts +51 -0
  42. package/es/components/ellipsis-tag/src/ellipsis-tag.vue.mjs +7 -0
  43. package/es/components/ellipsis-tag/src/ellipsis-tag.vue.mjs.map +1 -0
  44. package/es/components/ellipsis-tag/src/ellipsis-tag.vue_vue_type_script_setup_true_lang.mjs +74 -0
  45. package/es/components/ellipsis-tag/src/ellipsis-tag.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  46. package/es/components/ellipsis-tag/src/instance.d.ts +2 -0
  47. package/es/components/ellipsis-tag/src/instance.mjs +0 -0
  48. package/es/components/ellipsis-tag/style/index.d.ts +1 -0
  49. package/es/components/empty/index.d.ts +6 -0
  50. package/es/components/empty/index.mjs +9 -0
  51. package/es/components/empty/index.mjs.map +1 -0
  52. package/es/components/empty/src/empty.d.ts +86 -0
  53. package/es/components/empty/src/empty.mjs +158 -0
  54. package/es/components/empty/src/empty.mjs.map +1 -0
  55. package/es/components/empty/src/iempty.d.ts +41 -0
  56. package/es/components/empty/src/iempty.mjs +44 -0
  57. package/es/components/empty/src/iempty.mjs.map +1 -0
  58. package/es/components/empty/src/instance.d.ts +2 -0
  59. package/es/components/empty/src/instance.mjs +0 -0
  60. package/es/components/empty/style/index.d.ts +1 -0
  61. package/es/components/index.d.ts +16 -0
  62. package/es/components/index.mjs +33 -0
  63. package/es/components/jdata-viewer/index.d.ts +6 -0
  64. package/es/components/jdata-viewer/index.mjs +9 -0
  65. package/es/components/jdata-viewer/index.mjs.map +1 -0
  66. package/es/components/jdata-viewer/src/ijdata-viewer.d.ts +40 -0
  67. package/es/components/jdata-viewer/src/ijdata-viewer.mjs +43 -0
  68. package/es/components/jdata-viewer/src/ijdata-viewer.mjs.map +1 -0
  69. package/es/components/jdata-viewer/src/instance.d.ts +2 -0
  70. package/es/components/jdata-viewer/src/instance.mjs +0 -0
  71. package/es/components/jdata-viewer/src/jdata-viewer.d.ts +87 -0
  72. package/es/components/jdata-viewer/src/jdata-viewer.mjs +125 -0
  73. package/es/components/jdata-viewer/src/jdata-viewer.mjs.map +1 -0
  74. package/es/components/jdata-viewer/src/use-view.d.ts +7 -0
  75. package/es/components/jdata-viewer/src/use-view.mjs +98 -0
  76. package/es/components/jdata-viewer/src/use-view.mjs.map +1 -0
  77. package/es/components/jdata-viewer/style/index.d.ts +1 -0
  78. package/es/components/radio/index.d.ts +6 -0
  79. package/es/components/radio/index.mjs +9 -0
  80. package/es/components/radio/index.mjs.map +1 -0
  81. package/es/components/radio/src/instance.d.ts +2 -0
  82. package/es/components/radio/src/instance.mjs +0 -0
  83. package/es/components/radio/src/radio.d.ts +16 -0
  84. package/es/components/radio/src/radio.mjs +37 -0
  85. package/es/components/radio/src/radio.mjs.map +1 -0
  86. package/es/components/radio/src/radio.vue.d.ts +25 -0
  87. package/es/components/radio/src/radio.vue.mjs +7 -0
  88. package/es/components/radio/src/radio.vue.mjs.map +1 -0
  89. package/es/components/radio/src/radio.vue_vue_type_script_setup_true_lang.mjs +44 -0
  90. package/es/components/radio/src/radio.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  91. package/es/components/radio/style/index.d.ts +1 -0
  92. package/es/components/remote-search/index.d.ts +6 -0
  93. package/es/components/remote-search/index.mjs +9 -0
  94. package/es/components/remote-search/index.mjs.map +1 -0
  95. package/es/components/remote-search/src/instance.d.ts +2 -0
  96. package/es/components/remote-search/src/instance.mjs +0 -0
  97. package/es/components/remote-search/src/iremote-search.d.ts +26 -0
  98. package/es/components/remote-search/src/iremote-search.mjs +94 -0
  99. package/es/components/remote-search/src/iremote-search.mjs.map +1 -0
  100. package/es/components/remote-search/src/remote-search.d.ts +72 -0
  101. package/es/components/remote-search/src/remote-search.mjs +191 -0
  102. package/es/components/remote-search/src/remote-search.mjs.map +1 -0
  103. package/es/components/remote-search/style/index.d.ts +1 -0
  104. package/es/components/search-form/index.d.ts +6 -0
  105. package/es/components/search-form/index.mjs +9 -0
  106. package/es/components/search-form/index.mjs.map +1 -0
  107. package/es/components/search-form/src/components/Grid/components/GridItem.vue.d.ts +33 -0
  108. package/es/components/search-form/src/components/Grid/components/GridItem.vue.mjs +7 -0
  109. package/es/components/search-form/src/components/Grid/components/GridItem.vue.mjs.map +1 -0
  110. package/es/components/search-form/src/components/Grid/components/GridItem.vue_vue_type_script_setup_true_lang.mjs +54 -0
  111. package/es/components/search-form/src/components/Grid/components/GridItem.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  112. package/es/components/search-form/src/components/Grid/index.vue.d.ts +28 -0
  113. package/es/components/search-form/src/components/Grid/index.vue.mjs +7 -0
  114. package/es/components/search-form/src/components/Grid/index.vue.mjs.map +1 -0
  115. package/es/components/search-form/src/components/Grid/index.vue_vue_type_script_setup_true_lang.mjs +62 -0
  116. package/es/components/search-form/src/components/Grid/index.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  117. package/es/components/search-form/src/components/Grid/interface/index.d.ts +5 -0
  118. package/es/components/search-form/src/components/Grid/interface/index.mjs +0 -0
  119. package/es/components/search-form/src/components/SearchFormItem.vue.d.ts +36 -0
  120. package/es/components/search-form/src/components/SearchFormItem.vue.mjs +7 -0
  121. package/es/components/search-form/src/components/SearchFormItem.vue.mjs.map +1 -0
  122. package/es/components/search-form/src/components/SearchFormItem.vue_vue_type_script_lang.mjs +103 -0
  123. package/es/components/search-form/src/components/SearchFormItem.vue_vue_type_script_lang.mjs.map +1 -0
  124. package/es/components/search-form/src/instance.d.ts +2 -0
  125. package/es/components/search-form/src/instance.mjs +0 -0
  126. package/es/components/search-form/src/isearch-form.d.ts +76 -0
  127. package/es/components/search-form/src/isearch-form.mjs +63 -0
  128. package/es/components/search-form/src/isearch-form.mjs.map +1 -0
  129. package/es/components/search-form/src/search-form.d.ts +55 -0
  130. package/es/components/search-form/src/search-form.mjs +319 -0
  131. package/es/components/search-form/src/search-form.mjs.map +1 -0
  132. package/es/components/search-form/style/index.d.ts +1 -0
  133. package/es/components/sticky-container/index.d.ts +6 -0
  134. package/es/components/sticky-container/index.mjs +9 -0
  135. package/es/components/sticky-container/index.mjs.map +1 -0
  136. package/es/components/sticky-container/src/instance.d.ts +2 -0
  137. package/es/components/sticky-container/src/instance.mjs +0 -0
  138. package/es/components/sticky-container/src/isticky-container.d.ts +4 -0
  139. package/es/components/sticky-container/src/isticky-container.mjs +8 -0
  140. package/es/components/sticky-container/src/isticky-container.mjs.map +1 -0
  141. package/es/components/sticky-container/src/sticky-container.d.ts +2 -0
  142. package/es/components/sticky-container/src/sticky-container.mjs +32 -0
  143. package/es/components/sticky-container/src/sticky-container.mjs.map +1 -0
  144. package/es/components/sticky-container/style/index.d.ts +1 -0
  145. package/es/components/table/index.d.ts +6 -0
  146. package/es/components/table/index.mjs +9 -0
  147. package/es/components/table/index.mjs.map +1 -0
  148. package/es/components/table/src/components/Setting.vue.d.ts +30 -0
  149. package/es/components/table/src/components/Setting.vue.mjs +7 -0
  150. package/es/components/table/src/components/Setting.vue.mjs.map +1 -0
  151. package/es/components/table/src/components/Setting.vue_vue_type_script_setup_true_lang.mjs +67 -0
  152. package/es/components/table/src/components/Setting.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  153. package/es/components/table/src/components/TableColumn.vue.d.ts +15 -0
  154. package/es/components/table/src/components/TableColumn.vue.mjs +7 -0
  155. package/es/components/table/src/components/TableColumn.vue.mjs.map +1 -0
  156. package/es/components/table/src/components/TableColumn.vue_vue_type_script_setup_true_lang.mjs +132 -0
  157. package/es/components/table/src/components/TableColumn.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  158. package/es/components/table/src/instance.d.ts +2 -0
  159. package/es/components/table/src/instance.mjs +0 -0
  160. package/es/components/table/src/table.d.ts +84 -0
  161. package/es/components/table/src/table.mjs +139 -0
  162. package/es/components/table/src/table.mjs.map +1 -0
  163. package/es/components/table/src/table.vue.d.ts +384 -0
  164. package/es/components/table/src/table.vue.mjs +7 -0
  165. package/es/components/table/src/table.vue.mjs.map +1 -0
  166. package/es/components/table/src/table.vue_vue_type_script_setup_true_lang.mjs +143 -0
  167. package/es/components/table/src/table.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  168. package/es/components/table/src/use-controller.d.ts +10 -0
  169. package/es/components/table/src/use-controller.mjs +117 -0
  170. package/es/components/table/src/use-controller.mjs.map +1 -0
  171. package/es/components/table/src/use-table.d.ts +26 -0
  172. package/es/components/table/src/use-table.mjs +188 -0
  173. package/es/components/table/src/use-table.mjs.map +1 -0
  174. package/es/components/table/style/index.d.ts +1 -0
  175. package/es/components/table-editor/index.d.ts +6 -0
  176. package/es/components/table-editor/index.mjs +9 -0
  177. package/es/components/table-editor/index.mjs.map +1 -0
  178. package/es/components/table-editor/src/components/BaseItem.vue.d.ts +15 -0
  179. package/es/components/table-editor/src/components/BaseItem.vue.mjs +7 -0
  180. package/es/components/table-editor/src/components/BaseItem.vue.mjs.map +1 -0
  181. package/es/components/table-editor/src/components/BaseItem.vue_vue_type_script_lang.mjs +37 -0
  182. package/es/components/table-editor/src/components/BaseItem.vue_vue_type_script_lang.mjs.map +1 -0
  183. package/es/components/table-editor/src/instance.d.ts +2 -0
  184. package/es/components/table-editor/src/instance.mjs +0 -0
  185. package/es/components/table-editor/src/table-editor.d.ts +45 -0
  186. package/es/components/table-editor/src/table-editor.mjs +24 -0
  187. package/es/components/table-editor/src/table-editor.mjs.map +1 -0
  188. package/es/components/table-editor/src/table-editor.vue.d.ts +82 -0
  189. package/es/components/table-editor/src/table-editor.vue.mjs +7 -0
  190. package/es/components/table-editor/src/table-editor.vue.mjs.map +1 -0
  191. package/es/components/table-editor/src/table-editor.vue_vue_type_script_setup_true_lang.mjs +75 -0
  192. package/es/components/table-editor/src/table-editor.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  193. package/es/components/table-editor/style/index.d.ts +1 -0
  194. package/es/components/tabs/index.d.ts +6 -0
  195. package/es/components/tabs/index.mjs +9 -0
  196. package/es/components/tabs/index.mjs.map +1 -0
  197. package/es/components/tabs/src/instance.d.ts +2 -0
  198. package/es/components/tabs/src/instance.mjs +0 -0
  199. package/es/components/tabs/src/itabs.d.ts +31 -0
  200. package/es/components/tabs/src/itabs.mjs +33 -0
  201. package/es/components/tabs/src/itabs.mjs.map +1 -0
  202. package/es/components/tabs/src/tabs.d.ts +55 -0
  203. package/es/components/tabs/src/tabs.mjs +58 -0
  204. package/es/components/tabs/src/tabs.mjs.map +1 -0
  205. package/es/components/tabs/style/index.d.ts +1 -0
  206. package/es/components/tarea-tag/index.d.ts +6 -0
  207. package/es/components/tarea-tag/index.mjs +9 -0
  208. package/es/components/tarea-tag/index.mjs.map +1 -0
  209. package/es/components/tarea-tag/src/instance.d.ts +2 -0
  210. package/es/components/tarea-tag/src/instance.mjs +0 -0
  211. package/es/components/tarea-tag/src/tarea-tag.d.ts +10 -0
  212. package/es/components/tarea-tag/src/tarea-tag.mjs +29 -0
  213. package/es/components/tarea-tag/src/tarea-tag.mjs.map +1 -0
  214. package/es/components/tarea-tag/src/tarea-tag.vue.d.ts +23 -0
  215. package/es/components/tarea-tag/src/tarea-tag.vue.mjs +7 -0
  216. package/es/components/tarea-tag/src/tarea-tag.vue.mjs.map +1 -0
  217. package/es/components/tarea-tag/src/tarea-tag.vue_vue_type_script_setup_true_lang.mjs +149 -0
  218. package/es/components/tarea-tag/src/tarea-tag.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  219. package/es/components/tarea-tag/style/index.d.ts +1 -0
  220. package/es/components/text-ellipsis/index.d.ts +5 -0
  221. package/es/components/text-ellipsis/index.mjs +9 -0
  222. package/es/components/text-ellipsis/index.mjs.map +1 -0
  223. package/es/components/text-ellipsis/src/instance.d.ts +2 -0
  224. package/es/components/text-ellipsis/src/instance.mjs +0 -0
  225. package/es/components/text-ellipsis/src/itext-ellipsis.d.ts +11 -0
  226. package/es/components/text-ellipsis/src/itext-ellipsis.mjs +16 -0
  227. package/es/components/text-ellipsis/src/itext-ellipsis.mjs.map +1 -0
  228. package/es/components/text-ellipsis/src/text-ellipsis.d.ts +25 -0
  229. package/es/components/text-ellipsis/src/text-ellipsis.mjs +115 -0
  230. package/es/components/text-ellipsis/src/text-ellipsis.mjs.map +1 -0
  231. package/es/components/text-ellipsis/src/use-window-size.d.ts +5 -0
  232. package/es/components/text-ellipsis/src/use-window-size.mjs +28 -0
  233. package/es/components/text-ellipsis/src/use-window-size.mjs.map +1 -0
  234. package/es/components/text-ellipsis/src/utils.d.ts +22 -0
  235. package/es/components/text-ellipsis/src/utils.mjs +26 -0
  236. package/es/components/text-ellipsis/src/utils.mjs.map +1 -0
  237. package/es/components/text-ellipsis/style/index.d.ts +1 -0
  238. package/es/components/time-line/index.d.ts +6 -0
  239. package/es/components/time-line/index.mjs +9 -0
  240. package/es/components/time-line/index.mjs.map +1 -0
  241. package/es/components/time-line/src/instance.d.ts +2 -0
  242. package/es/components/time-line/src/instance.mjs +0 -0
  243. package/es/components/time-line/src/time-line.d.ts +28 -0
  244. package/es/components/time-line/src/time-line.mjs +25 -0
  245. package/es/components/time-line/src/time-line.mjs.map +1 -0
  246. package/es/components/time-line/src/time-line.vue.d.ts +81 -0
  247. package/es/components/time-line/src/time-line.vue.mjs +7 -0
  248. package/es/components/time-line/src/time-line.vue.mjs.map +1 -0
  249. package/es/components/time-line/src/time-line.vue_vue_type_script_setup_true_lang.mjs +37 -0
  250. package/es/components/time-line/src/time-line.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  251. package/es/components/time-line/style/index.d.ts +1 -0
  252. package/es/components/uploader/index.d.ts +6 -0
  253. package/es/components/uploader/index.mjs +9 -0
  254. package/es/components/uploader/index.mjs.map +1 -0
  255. package/es/components/uploader/src/UploadInfo.vue.d.ts +30 -0
  256. package/es/components/uploader/src/UploadInfo.vue.mjs +7 -0
  257. package/es/components/uploader/src/UploadInfo.vue.mjs.map +1 -0
  258. package/es/components/uploader/src/UploadInfo.vue_vue_type_script_setup_true_lang.mjs +167 -0
  259. package/es/components/uploader/src/UploadInfo.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  260. package/es/components/uploader/src/instance.d.ts +2 -0
  261. package/es/components/uploader/src/instance.mjs +0 -0
  262. package/es/components/uploader/src/toast.d.ts +1 -0
  263. package/es/components/uploader/src/toast.mjs +37 -0
  264. package/es/components/uploader/src/toast.mjs.map +1 -0
  265. package/es/components/uploader/src/uploader.d.ts +32 -0
  266. package/es/components/uploader/src/uploader.mjs +104 -0
  267. package/es/components/uploader/src/uploader.mjs.map +1 -0
  268. package/es/components/uploader/src/uploader.vue.d.ts +98 -0
  269. package/es/components/uploader/src/uploader.vue.mjs +7 -0
  270. package/es/components/uploader/src/uploader.vue.mjs.map +1 -0
  271. package/es/components/uploader/src/uploader.vue_vue_type_script_setup_true_lang.mjs +48 -0
  272. package/es/components/uploader/src/uploader.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
  273. package/es/components/uploader/src/use-uploader.d.ts +20 -0
  274. package/es/components/uploader/src/use-uploader.mjs +263 -0
  275. package/es/components/uploader/src/use-uploader.mjs.map +1 -0
  276. package/es/components/uploader/style/index.d.ts +1 -0
  277. package/es/defaults.d.ts +5 -0
  278. package/es/defaults.mjs +8 -0
  279. package/es/defaults.mjs.map +1 -0
  280. package/es/directives/copy/index.d.ts +3 -0
  281. package/es/directives/copy/index.mjs +31 -0
  282. package/es/directives/copy/index.mjs.map +1 -0
  283. package/es/directives/draggable/index.d.ts +3 -0
  284. package/es/directives/draggable/index.mjs +28 -0
  285. package/es/directives/draggable/index.mjs.map +1 -0
  286. package/es/directives/index.d.ts +4 -0
  287. package/es/directives/index.mjs +5 -0
  288. package/es/directives/longpress/index.d.ts +7 -0
  289. package/es/directives/longpress/index.mjs +32 -0
  290. package/es/directives/longpress/index.mjs.map +1 -0
  291. package/es/directives/resize-element/index.d.ts +3 -0
  292. package/es/directives/resize-element/index.mjs +30 -0
  293. package/es/directives/resize-element/index.mjs.map +1 -0
  294. package/es/directives/show-tip/index.d.ts +3 -0
  295. package/es/directives/show-tip/index.mjs +19 -0
  296. package/es/directives/show-tip/index.mjs.map +1 -0
  297. package/es/hooks/_configurable.d.ts +27 -0
  298. package/es/hooks/_configurable.mjs +10 -0
  299. package/es/hooks/_configurable.mjs.map +1 -0
  300. package/es/hooks/index.d.ts +1 -0
  301. package/es/hooks/index.mjs +2 -0
  302. package/es/hooks/toRef/index.d.ts +14 -0
  303. package/es/hooks/toRef/index.mjs +19 -0
  304. package/es/hooks/toRef/index.mjs.map +1 -0
  305. package/es/hooks/tryOnScopeDispose/index.d.ts +7 -0
  306. package/es/hooks/tryOnScopeDispose/index.mjs +18 -0
  307. package/es/hooks/tryOnScopeDispose/index.mjs.map +1 -0
  308. package/es/hooks/unrefElement/index.d.ts +12 -0
  309. package/es/hooks/unrefElement/index.mjs +16 -0
  310. package/es/hooks/unrefElement/index.mjs.map +1 -0
  311. package/es/hooks/use-full-screen/index.d.ts +1 -0
  312. package/es/hooks/use-full-screen/index.mjs +32 -0
  313. package/es/hooks/use-full-screen/index.mjs.map +1 -0
  314. package/es/hooks/useEventListener/index.d.ts +83 -0
  315. package/es/hooks/useEventListener/index.mjs +47 -0
  316. package/es/hooks/useEventListener/index.mjs.map +1 -0
  317. package/es/hooks/useFullscreen/index.d.ts +25 -0
  318. package/es/hooks/useFullscreen/index.mjs +121 -0
  319. package/es/hooks/useFullscreen/index.mjs.map +1 -0
  320. package/es/hooks/useMounted/index.d.ts +6 -0
  321. package/es/hooks/useMounted/index.mjs +19 -0
  322. package/es/hooks/useMounted/index.mjs.map +1 -0
  323. package/es/hooks/useSupported/index.d.ts +2 -0
  324. package/es/hooks/useSupported/index.mjs +14 -0
  325. package/es/hooks/useSupported/index.mjs.map +1 -0
  326. package/es/hooks/utils/filters.d.ts +84 -0
  327. package/es/hooks/utils/filters.mjs +141 -0
  328. package/es/hooks/utils/filters.mjs.map +1 -0
  329. package/es/hooks/utils/general.d.ts +49 -0
  330. package/es/hooks/utils/general.mjs +85 -0
  331. package/es/hooks/utils/general.mjs.map +1 -0
  332. package/es/hooks/utils/index.d.ts +6 -0
  333. package/es/hooks/utils/index.mjs +6 -0
  334. package/es/hooks/utils/is.d.ts +13 -0
  335. package/es/hooks/utils/is.mjs +29 -0
  336. package/es/hooks/utils/is.mjs.map +1 -0
  337. package/es/hooks/utils/port.d.ts +2 -0
  338. package/es/hooks/utils/port.mjs +17 -0
  339. package/es/hooks/utils/port.mjs.map +1 -0
  340. package/es/hooks/utils/types.d.ts +117 -0
  341. package/es/hooks/utils/types.mjs +0 -0
  342. package/es/hooks/utils/vue.d.ts +1 -0
  343. package/es/hooks/utils/vue.mjs +9 -0
  344. package/es/hooks/utils/vue.mjs.map +1 -0
  345. package/es/hooks/watchImmediate/index.d.ts +5 -0
  346. package/es/hooks/watchImmediate/index.mjs +17 -0
  347. package/es/hooks/watchImmediate/index.mjs.map +1 -0
  348. package/es/index.d.ts +8 -0
  349. package/es/index.mjs +47 -0
  350. package/es/index.mjs.map +1 -0
  351. package/es/make-installer.d.ts +5 -0
  352. package/es/make-installer.mjs +15 -0
  353. package/es/make-installer.mjs.map +1 -0
  354. package/es/share/dist/index.d.ts +60 -0
  355. package/es/share/dist/index.mjs +16 -0
  356. package/es/share/dist/index.mjs.map +1 -0
  357. package/es/utils/browser.d.ts +3 -0
  358. package/es/utils/browser.mjs +9 -0
  359. package/es/utils/browser.mjs.map +1 -0
  360. package/es/utils/console-log/index.d.ts +3 -0
  361. package/es/utils/console-log/index.mjs +23 -0
  362. package/es/utils/console-log/index.mjs.map +1 -0
  363. package/es/utils/create/index.d.ts +21 -0
  364. package/es/utils/create/index.mjs +43 -0
  365. package/es/utils/create/index.mjs.map +1 -0
  366. package/es/utils/dom/index.d.ts +2 -0
  367. package/es/utils/dom/index.mjs +3 -0
  368. package/es/utils/dom/scroll.d.ts +11 -0
  369. package/es/utils/dom/scroll.mjs +107 -0
  370. package/es/utils/dom/scroll.mjs.map +1 -0
  371. package/es/utils/dom/style.d.ts +5 -0
  372. package/es/utils/dom/style.mjs +35 -0
  373. package/es/utils/dom/style.mjs.map +1 -0
  374. package/es/utils/easings.d.ts +1 -0
  375. package/es/utils/easings.mjs +11 -0
  376. package/es/utils/easings.mjs.map +1 -0
  377. package/es/utils/index.d.ts +11 -0
  378. package/es/utils/index.mjs +14 -0
  379. package/es/utils/objects.d.ts +8 -0
  380. package/es/utils/objects.mjs +19 -0
  381. package/es/utils/objects.mjs.map +1 -0
  382. package/es/utils/raf.d.ts +2 -0
  383. package/es/utils/raf.mjs +8 -0
  384. package/es/utils/raf.mjs.map +1 -0
  385. package/es/utils/request/index.d.ts +25 -0
  386. package/es/utils/request/index.mjs +49 -0
  387. package/es/utils/request/index.mjs.map +1 -0
  388. package/es/utils/types.d.ts +10 -0
  389. package/es/utils/types.mjs +22 -0
  390. package/es/utils/types.mjs.map +1 -0
  391. package/es/utils/typescript.d.ts +12 -0
  392. package/es/utils/typescript.mjs +6 -0
  393. package/es/utils/typescript.mjs.map +1 -0
  394. package/es/utils/vue/index.d.ts +3 -0
  395. package/es/utils/vue/index.mjs +3 -0
  396. package/es/utils/vue/install.d.ts +50 -0
  397. package/es/utils/vue/install.mjs +74 -0
  398. package/es/utils/vue/install.mjs.map +1 -0
  399. package/es/utils/vue/props/index.d.ts +3 -0
  400. package/es/utils/vue/props/index.mjs +2 -0
  401. package/es/utils/vue/props/runtime.d.ts +29 -0
  402. package/es/utils/vue/props/runtime.mjs +59 -0
  403. package/es/utils/vue/props/runtime.mjs.map +1 -0
  404. package/es/utils/vue/props/types.d.ts +120 -0
  405. package/es/utils/vue/props/types.mjs +0 -0
  406. package/es/utils/vue/props/util.d.ts +8 -0
  407. package/es/utils/vue/props/util.mjs +0 -0
  408. package/es/utils/vue/typescript.d.ts +6 -0
  409. package/es/utils/vue/typescript.mjs +0 -0
  410. package/es/version.d.ts +1 -0
  411. package/es/version.mjs +6 -0
  412. package/es/version.mjs.map +1 -0
  413. package/global.d.ts +1 -0
  414. package/package.json +80 -0
  415. package/resolvers/index.d.mts +19 -0
  416. package/resolvers/index.d.ts +19 -0
  417. package/resolvers/index.mjs +32 -0
  418. package/theme-chalk/hd-date-picker.css +1 -0
  419. package/theme-chalk/hd-descriptions.css +1 -0
  420. package/theme-chalk/hd-ellipsis-tag.css +1 -0
  421. package/theme-chalk/hd-empty.css +2 -0
  422. package/theme-chalk/hd-jdata-viewer.css +1 -0
  423. package/theme-chalk/hd-radio.css +1 -0
  424. package/theme-chalk/hd-remote-search.css +1 -0
  425. package/theme-chalk/hd-search-form.css +1 -0
  426. package/theme-chalk/hd-sticky-container.css +1 -0
  427. package/theme-chalk/hd-table-editor.css +1 -0
  428. package/theme-chalk/hd-table.css +1 -0
  429. package/theme-chalk/hd-tabs.css +1 -0
  430. package/theme-chalk/hd-tarea-tag.css +1 -0
  431. package/theme-chalk/hd-text-ellipsis.css +1 -0
  432. package/theme-chalk/hd-time-line.css +1 -0
  433. package/theme-chalk/hd-uploader.css +1 -0
  434. package/theme-chalk/index.css +1 -0
@@ -0,0 +1,263 @@
1
+ import { showToast } from "./toast.mjs";
2
+ import { onBeforeMount, onMounted, provide, ref } from "vue";
3
+ import SimpleUploader from "simple-uploader.js";
4
+ import SparkMD5 from "spark-md5";
5
+ //#region packages/components/uploader/src/use-uploader.ts
6
+ var baseOptions = {
7
+ target: "/api/v2/upload",
8
+ chunkSize: 1024 * 1024 * 1,
9
+ connectionCount: 3,
10
+ fileParameterName: "file",
11
+ maxChunkRetries: 3,
12
+ simultaneousUploads: 3,
13
+ testChunks: true,
14
+ checkChunkUploadedByResponse: null,
15
+ headers: {},
16
+ query: {}
17
+ };
18
+ var handleOptions = (props) => {
19
+ const query = (file, chunk) => {
20
+ return {
21
+ chunk: chunk.offset,
22
+ task_id: file.uniqueIdentifier,
23
+ ...file.params,
24
+ ...typeof props.requestParams === "function" ? props.requestParams() : props.requestParams || {}
25
+ };
26
+ };
27
+ return {
28
+ ...baseOptions,
29
+ query,
30
+ ...props.options,
31
+ ...props.checkChunkUploadedByResponse ? { checkChunkUploadedByResponse: props.checkChunkUploadedByResponse } : {}
32
+ };
33
+ };
34
+ var eventList = {
35
+ FILE_ADDED_EVENT: "fileAdded",
36
+ FILE_REMOVED_EVENT: "fileRemoved",
37
+ FILES_SUBMITTED_EVENT: "filesSubmitted",
38
+ FILE_COMPLETE_EVENT: "fileComplete",
39
+ FILE_SUCCESS_EVENT: "fileSuccess",
40
+ FILE_ERROR_EVENT: "fileError",
41
+ COMPLETE_EVENT: "complete",
42
+ UPLOAD_START_EVENT: "uploadStart"
43
+ };
44
+ var useUploader = (props, emits) => {
45
+ const uploadBtn = ref();
46
+ const files = ref([]);
47
+ const fileList = ref([]);
48
+ const UPLOADER = ref(null);
49
+ const initUploader = () => {
50
+ UPLOADER.value = new SimpleUploader(handleOptions(props));
51
+ };
52
+ const __removeFile = (file) => {
53
+ const fileList = UPLOADER.value.fileList;
54
+ UPLOADER.value.fileList = fileList.filter((item) => item.id !== file.id);
55
+ };
56
+ const fileLimitOver = (file) => {
57
+ __removeFile(file);
58
+ showToast(`最大允许上传 ${props.limit} 个文件!`);
59
+ emits("on-exceed-limit", file, props.limit);
60
+ };
61
+ const __checkFileType = (file) => {
62
+ const suffix = file.getExtension();
63
+ if (!props.accept.split(",").includes(`.${suffix}`)) {
64
+ __removeFile(file);
65
+ showToast(`文件类型错误,只支持 ${props.accept} 类型`);
66
+ emits("on-type-error", file, props.accept);
67
+ return false;
68
+ }
69
+ return true;
70
+ };
71
+ const fileAdded = (file) => {
72
+ const fileList = UPLOADER.value.fileList;
73
+ if (props.limit && fileList.length > props.limit) {
74
+ fileLimitOver(file);
75
+ return false;
76
+ }
77
+ if (props.accept && props.isCheckFileType && !__checkFileType(file)) return false;
78
+ if (props.onFileAdded) {
79
+ if (props.onFileAdded(file) === false) {
80
+ __removeFile(file);
81
+ return false;
82
+ }
83
+ }
84
+ emits("update:modelValue", UPLOADER.value.fileList);
85
+ return true;
86
+ };
87
+ const fileRemoved = (file) => {
88
+ files.value = UPLOADER.value.files;
89
+ fileList.value = UPLOADER.value.fileList;
90
+ if (props.onFileRemoved) props.onFileRemoved(file);
91
+ emits("update:modelValue", UPLOADER.value.fileList);
92
+ };
93
+ const filesSubmitted = (files) => {
94
+ files.value = UPLOADER.value.files;
95
+ fileList.value = UPLOADER.value.fileList;
96
+ emits("on-files-submitted", UPLOADER.value.getFileList());
97
+ if (props.autoUpload) files.forEach((file) => startUpload(file));
98
+ };
99
+ const fileComplete = (rootFile) => {
100
+ if (props.onFileComplete) props.onFileComplete(rootFile);
101
+ };
102
+ const processResponse = (message, file) => {
103
+ try {
104
+ file._response = JSON.parse(message);
105
+ } catch (error) {
106
+ console.error("processResponse", error);
107
+ }
108
+ };
109
+ const fileSuccess = (rootFile, file, message, chunk) => {
110
+ setTimeout(() => {
111
+ rootFile.setStatus("success");
112
+ }, 500);
113
+ processResponse(message, file);
114
+ if (props.onFileSuccess) props.onFileSuccess(rootFile, file, message, chunk);
115
+ emits("update:modelValue", UPLOADER.value.fileList);
116
+ };
117
+ const fileError = (rootFile, file, message, chunk) => {
118
+ if (props.onFileError) props.onFileError(rootFile, file, message, chunk);
119
+ emits("update:modelValue", UPLOADER.value.fileList);
120
+ };
121
+ const complete = () => {
122
+ emits("on-complete", UPLOADER.value.fileList);
123
+ };
124
+ const initUploaderEvent = () => {
125
+ var _uploadBtn$value;
126
+ const elements = ((_uploadBtn$value = uploadBtn.value) === null || _uploadBtn$value === void 0 ? void 0 : _uploadBtn$value.querySelectorAll(":scope > *:not(input)")) || [];
127
+ const arr = Array.from(elements);
128
+ if (arr.length > 0) UPLOADER.value.assignBrowse(arr[0]);
129
+ UPLOADER.value.fileStatusText = props.statusText;
130
+ [
131
+ {
132
+ event: eventList.FILE_ADDED_EVENT,
133
+ handler: fileAdded
134
+ },
135
+ {
136
+ event: eventList.FILE_REMOVED_EVENT,
137
+ handler: fileRemoved
138
+ },
139
+ {
140
+ event: eventList.FILES_SUBMITTED_EVENT,
141
+ handler: filesSubmitted
142
+ },
143
+ {
144
+ event: eventList.FILE_COMPLETE_EVENT,
145
+ handler: fileComplete
146
+ },
147
+ {
148
+ event: eventList.FILE_SUCCESS_EVENT,
149
+ handler: fileSuccess
150
+ },
151
+ {
152
+ event: eventList.FILE_ERROR_EVENT,
153
+ handler: fileError
154
+ },
155
+ {
156
+ event: eventList.COMPLETE_EVENT,
157
+ handler: complete
158
+ },
159
+ {
160
+ event: eventList.UPLOAD_START_EVENT,
161
+ handler: () => ({})
162
+ }
163
+ ].forEach(({ event, handler }) => {
164
+ UPLOADER.value.on(event, handler);
165
+ });
166
+ };
167
+ const chunksTotal = (file) => {
168
+ const round = props.options.forceChunkSize || false ? Math.ceil : Math.floor;
169
+ const chunkSize = props.options.chunkSize || baseOptions.chunkSize;
170
+ const _totalChunks = Math.max(round(file.size / chunkSize), 1);
171
+ file._totalChunks = _totalChunks;
172
+ return _totalChunks;
173
+ };
174
+ const startUpload = (file) => {
175
+ file.cmd5 = true;
176
+ const fileReader = new FileReader();
177
+ const time = (/* @__PURE__ */ new Date()).getTime();
178
+ const blobSlice = File.prototype.slice;
179
+ let currentChunk = 0;
180
+ const chunkSize = props.options.chunkSize || baseOptions.chunkSize;
181
+ const chunks = Math.ceil(file.size / chunkSize);
182
+ const spark = new SparkMD5.ArrayBuffer();
183
+ chunksTotal(file);
184
+ file.pause();
185
+ loadNext();
186
+ fileReader.onload = (e) => {
187
+ spark.append(e.target.result);
188
+ if (currentChunk < chunks) {
189
+ currentChunk++;
190
+ loadNext();
191
+ } else {
192
+ const HASH = spark.end();
193
+ const spark2 = new SparkMD5();
194
+ spark2.append(HASH + file.name);
195
+ file.uniqueIdentifier = spark2.end();
196
+ file.resume();
197
+ file.cmd5 = false;
198
+ console.log(`MD5计算完毕:${file.name} \nMD5:${HASH} \n分片:${chunks} 大小:${file.size} 用时:${Date.now() - time} ms`);
199
+ }
200
+ };
201
+ fileReader.onerror = function() {
202
+ console.error(`文件${file.name}读取出错,请检查该文件`);
203
+ file.cancel();
204
+ };
205
+ function loadNext() {
206
+ const start = currentChunk * chunkSize;
207
+ const end = start + chunkSize >= file.size ? file.size : start + chunkSize;
208
+ fileReader.readAsArrayBuffer(blobSlice.call(file.file, start, end));
209
+ }
210
+ };
211
+ const clearFiles = () => {
212
+ UPLOADER.value.fileList = [];
213
+ emits("update:modelValue", []);
214
+ };
215
+ const removeFile = (file) => {
216
+ file._removeFile(file);
217
+ };
218
+ const getFileList = () => {
219
+ return UPLOADER.value.fileList;
220
+ };
221
+ const __upload = () => {
222
+ uploadBtn.value.click();
223
+ };
224
+ const setInputMultiple = (multiple = true) => {
225
+ const inputElement = uploadBtn.value.querySelector("input[type=\"file\"]");
226
+ if (!props.multiple) inputElement.multiple = multiple;
227
+ if (props.accept) inputElement.accept = props.accept;
228
+ };
229
+ onBeforeMount(() => {
230
+ initUploader();
231
+ });
232
+ onMounted(() => {
233
+ initUploaderEvent();
234
+ UPLOADER.value.clearFiles = clearFiles;
235
+ UPLOADER.value.removeFile = removeFile;
236
+ UPLOADER.value.getFileList = getFileList;
237
+ UPLOADER.value._upload = __upload;
238
+ props.getInstance(UPLOADER);
239
+ if (props.exposeRef) props.exposeRef.value = {
240
+ clearFiles,
241
+ removeFile,
242
+ getFileList,
243
+ triggerUpload: () => {
244
+ __upload();
245
+ },
246
+ _upload: __upload,
247
+ upload: UPLOADER.value.upload,
248
+ cancel: UPLOADER.value.cancel
249
+ };
250
+ setInputMultiple(false);
251
+ });
252
+ provide("uploader", UPLOADER);
253
+ return {
254
+ uploadBtn,
255
+ files,
256
+ fileList,
257
+ UPLOADER
258
+ };
259
+ };
260
+ //#endregion
261
+ export { baseOptions, useUploader as default };
262
+
263
+ //# sourceMappingURL=use-uploader.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-uploader.mjs","names":[],"sources":["../../../../../../packages/components/uploader/src/use-uploader.ts"],"sourcesContent":["import SimpleUploader from 'simple-uploader.js'\nimport SparkMD5 from 'spark-md5'\nimport { ref, onBeforeMount, provide, onMounted } from 'vue'\nimport { UploaderProps } from './uploader'\nimport { showToast } from './toast'\n\nexport const baseOptions = {\n target: '/api/v2/upload', // 目标上传 URL\n chunkSize: 1024 * 1024 * 1, // 分块大小 4M\n connectionCount: 3, //同时上传的连接数\n fileParameterName: 'file', // 上传文件时文件的参数名,默认file\n maxChunkRetries: 3, // 最大自动失败重试上传次数\n simultaneousUploads: 3, // 并发上传数 默认为 3\n testChunks: true, // 是否开启服务器分片校验\n // 服务器分片校验函数,秒传及断点续传基础\n checkChunkUploadedByResponse: null,\n headers: {},\n // 额外的自定义查询参数\n query: {},\n}\n\n// 处理 options 参数\nconst handleOptions = (props: UploaderProps) => {\n const query = (file: any, chunk: any) => {\n return {\n chunk: chunk.offset,\n task_id: file.uniqueIdentifier,\n ...file.params,\n ...(typeof props.requestParams === 'function' ? props.requestParams() : props.requestParams || {}),\n }\n }\n\n const options = {\n ...baseOptions,\n query,\n ...props.options,\n ...(props.checkChunkUploadedByResponse ? { checkChunkUploadedByResponse: props.checkChunkUploadedByResponse } : {}),\n }\n\n return options\n}\n\nconst eventList = {\n FILE_ADDED_EVENT: 'fileAdded',\n FILE_REMOVED_EVENT: 'fileRemoved',\n FILES_SUBMITTED_EVENT: 'filesSubmitted',\n FILE_COMPLETE_EVENT: 'fileComplete',\n FILE_SUCCESS_EVENT: 'fileSuccess',\n FILE_ERROR_EVENT: 'fileError',\n COMPLETE_EVENT: 'complete',\n UPLOAD_START_EVENT: 'uploadStart',\n}\nconst useUploader = (props: UploaderProps, emits: any) => {\n const uploadBtn = ref()\n const files = ref<any[]>([])\n const fileList = ref<any[]>([])\n const UPLOADER = ref<any>(null)\n\n const initUploader = () => {\n const uploader = new SimpleUploader(handleOptions(props))\n UPLOADER.value = uploader\n }\n\n // 移除文件\n const __removeFile = (file: any) => {\n const fileList = UPLOADER.value.fileList\n UPLOADER.value.fileList = fileList.filter((item: any) => item.id !== file.id)\n }\n // 超出 limit 数量 时触发,并且从列表中移除当前文件\n const fileLimitOver = (file: any) => {\n __removeFile(file)\n showToast(`最大允许上传 ${props.limit} 个文件!`)\n emits('on-exceed-limit', file, props.limit)\n }\n\n // 文件类型校验,返回 false 禁止文件上传,并且从列表中移除当前文件\n const __checkFileType = (file: any) => {\n const suffix = file.getExtension()\n const suffies = props.accept.split(',')\n if (!suffies.includes(`.${suffix}`)) {\n __removeFile(file)\n showToast(`文件类型错误,只支持 ${props.accept} 类型`)\n emits('on-type-error', file, props.accept)\n return false\n }\n return true\n }\n //文件添加到上传队列之前调用,可用于文件校验,返回 false 禁止文件上传,并且从列表中移除当前文件\n const fileAdded = (file: any) => {\n const fileList = UPLOADER.value.fileList\n // 如果上传文件数量超过最大上传数 limit\n if (props.limit && fileList.length > props.limit) {\n fileLimitOver(file)\n return false\n }\n if (props.accept && props.isCheckFileType && !__checkFileType(file)) {\n return false\n }\n if (props.onFileAdded) {\n const bool = props.onFileAdded(file)\n if (bool === false) {\n __removeFile(file)\n return false\n }\n }\n\n // 当文件添加时触发update:modelValue事件\n emits('update:modelValue', UPLOADER.value.fileList)\n return true\n }\n\n //特定文件已从上传队列中移除时触发\n const fileRemoved = (file: any) => {\n files.value = UPLOADER.value.files\n fileList.value = UPLOADER.value.fileList\n if (props.onFileRemoved) {\n props.onFileRemoved(file)\n }\n // 当文件移除时触发update:modelValue事件\n emits('update:modelValue', UPLOADER.value.fileList)\n }\n\n //文件添加到上传队列之后,可用于开始上传当前添加的文件时触发,可用于开始上传当前添加的文件\n const filesSubmitted = (files: any) => {\n files.value = UPLOADER.value.files\n fileList.value = UPLOADER.value.fileList\n emits('on-files-submitted', UPLOADER.value.getFileList())\n if (props.autoUpload) {\n files.forEach((file: any) => startUpload(file))\n }\n }\n\n // 单个文件上传完成时触发\n // 无论文件上传成功还是失败,只要传输过程结束,就会触发此事件。\n // 用于执行在每个文件上传结束后需要进行的操作,比如更新 UI 或者移除加载指示器。\n\n const fileComplete = (rootFile: any) => {\n if (props.onFileComplete) {\n props.onFileComplete(rootFile)\n }\n }\n\n // 处理服务器返回的数据\n const processResponse = (message: any, file: any) => {\n try {\n file._response = JSON.parse(message)\n } catch (error) {\n console.error('processResponse', error)\n }\n }\n\n // 单个文件上传成功并且服务器返回成功响应后触发。\n // 通常用于处理成功上传后的业务逻辑,比如显示上传成功的消息,处理服务器返回的数据等。\n // 适用于只在文件成功上传时需要执行特定操作的场景。\n\n const fileSuccess = (rootFile: any, file: any, message: any, chunk: any) => {\n setTimeout(() => {\n rootFile.setStatus('success')\n }, 500)\n processResponse(message, file)\n if (props.onFileSuccess) {\n props.onFileSuccess(rootFile, file, message, chunk)\n }\n // 当文件上传成功时触发update:modelValue事件\n emits('update:modelValue', UPLOADER.value.fileList)\n }\n\n // 文件上传错误\n const fileError = (rootFile: any, file: any, message: any, chunk: any) => {\n if (props.onFileError) {\n props.onFileError(rootFile, file, message, chunk)\n }\n // 当文件上传失败时触发update:modelValue事件\n emits('update:modelValue', UPLOADER.value.fileList)\n }\n\n // 在整个上传任务完成后触发,通常是在所有文件上传完成时。\n // 用于执行与整个批次上传结束有关的操作,比如重置整个上传队列或更新整体进度。\n // 如果有多个文件上传时,通常在所有文件(不论成功或失败)都上传完成后触发此事件。\n\n const complete = () => {\n emits('on-complete', UPLOADER.value.fileList)\n }\n const initUploaderEvent = () => {\n const elements = uploadBtn.value?.querySelectorAll(':scope > *:not(input)') || []\n const arr = Array.from(elements)\n\n if (arr.length > 0) {\n UPLOADER.value.assignBrowse(arr[0])\n }\n\n UPLOADER.value.fileStatusText = props.statusText\n\n const events = [\n { event: eventList.FILE_ADDED_EVENT, handler: fileAdded },\n { event: eventList.FILE_REMOVED_EVENT, handler: fileRemoved },\n { event: eventList.FILES_SUBMITTED_EVENT, handler: filesSubmitted },\n { event: eventList.FILE_COMPLETE_EVENT, handler: fileComplete },\n { event: eventList.FILE_SUCCESS_EVENT, handler: fileSuccess },\n { event: eventList.FILE_ERROR_EVENT, handler: fileError },\n { event: eventList.COMPLETE_EVENT, handler: complete },\n { event: eventList.UPLOAD_START_EVENT, handler: () => ({}) },\n ]\n\n events.forEach(({ event, handler }) => {\n UPLOADER.value.on(event, handler)\n })\n }\n\n // 计算当前文件的切片数量\n const chunksTotal = (file: any) => {\n const _forceChunkSize = props.options.forceChunkSize || false\n const round = _forceChunkSize ? Math.ceil : Math.floor\n const chunkSize = props.options.chunkSize || baseOptions.chunkSize\n const _totalChunks = Math.max(round(file.size / chunkSize), 1)\n file._totalChunks = _totalChunks\n return _totalChunks\n }\n //开始上传\n const startUpload = (file: any) => {\n file.cmd5 = true\n const fileReader = new FileReader()\n const time = new Date().getTime()\n const blobSlice = File.prototype.slice\n let currentChunk = 0 // 初始化切片 id\n const chunkSize = props.options.chunkSize || baseOptions.chunkSize\n const chunks = Math.ceil(file.size / chunkSize) // 计算切片数量\n const spark: any = new SparkMD5.ArrayBuffer()\n chunksTotal(file)\n // 暂停上传,开始计算文件的 MD5 值\n file.pause()\n\n // 循环读取文件切片\n loadNext()\n\n // 文件读取完成\n fileReader.onload = (e: any) => {\n spark.append(e.target.result) //添加数组缓冲区\n if (currentChunk < chunks) {\n currentChunk++\n loadNext()\n } else {\n const HASH = spark.end() // MD5 计算结束\n const spark2: any = new SparkMD5() // 解决不同文件名生成唯一 MD5 值\n spark2.append(HASH + file.name)\n const HASH2 = spark2.end()\n file.uniqueIdentifier = HASH2 // 增加文件唯一标识\n file.resume() // 恢复文件开始上传\n file.cmd5 = false\n console.log(\n `MD5计算完毕:${file.name} \\nMD5:${HASH} \\n分片:${chunks} 大小:${file.size} 用时:${Date.now() - time} ms`,\n )\n }\n }\n // 文件读取过程中发生错误\n fileReader.onerror = function () {\n console.error(`文件${file.name}读取出错,请检查该文件`)\n file.cancel() // 取消上传\n }\n\n function loadNext() {\n const start = currentChunk * chunkSize\n const end = start + chunkSize >= file.size ? file.size : start + chunkSize\n fileReader.readAsArrayBuffer(blobSlice.call(file.file, start, end))\n }\n }\n\n const clearFiles = () => {\n UPLOADER.value.fileList = []\n // 当文件清空时触发update:modelValue事件\n emits('update:modelValue', [])\n }\n\n const removeFile = (file: any) => {\n file._removeFile(file)\n // 文件移除时的update:modelValue事件由fileRemoved事件处理\n }\n\n const getFileList = () => {\n return UPLOADER.value.fileList\n }\n\n const __upload = () => {\n uploadBtn.value.click()\n }\n\n // 设置 input multiple 属性\n const setInputMultiple = (multiple = true) => {\n const inputElement = uploadBtn.value.querySelector('input[type=\"file\"]')\n if (!props.multiple) {\n inputElement.multiple = multiple\n }\n if (props.accept) {\n inputElement.accept = props.accept\n }\n }\n\n onBeforeMount(() => {\n initUploader()\n })\n\n onMounted(() => {\n initUploaderEvent()\n UPLOADER.value.clearFiles = clearFiles\n UPLOADER.value.removeFile = removeFile\n UPLOADER.value.getFileList = getFileList\n UPLOADER.value._upload = __upload\n props.getInstance(UPLOADER)\n if (props.exposeRef) {\n props.exposeRef.value = {\n clearFiles,\n removeFile,\n getFileList,\n // 触发文件选择框\n triggerUpload: () => {\n __upload()\n },\n _upload: __upload,\n upload: UPLOADER.value.upload,\n cancel: UPLOADER.value.cancel,\n }\n }\n setInputMultiple(false)\n })\n\n provide('uploader', UPLOADER)\n\n return {\n uploadBtn,\n files,\n fileList,\n UPLOADER,\n }\n}\n\nexport default useUploader\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import '../src/uploader.scss';
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ version: string;
3
+ install: (app: import("vue").App) => void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import component_default from "./component.mjs";
2
+ import { makeInstaller } from "./make-installer.mjs";
3
+ //#region packages/hd-custom/defaults.ts
4
+ var defaults_default = makeInstaller(component_default);
5
+ //#endregion
6
+ export { defaults_default as default };
7
+
8
+ //# sourceMappingURL=defaults.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.mjs","names":[],"sources":["../../../packages/hd-custom/defaults.ts"],"sourcesContent":["import Components from './component'\nimport { makeInstaller } from './make-installer'\n\nexport default makeInstaller(Components)\n"],"mappings":";;;AAGA,IAAA,mBAAe,cAAc,kBAAW"}
@@ -0,0 +1,3 @@
1
+ import type { Directive } from 'vue';
2
+ declare const copy: Directive;
3
+ export default copy;
@@ -0,0 +1,31 @@
1
+ import { ElMessage } from "element-plus";
2
+ //#region packages/directives/copy/index.ts
3
+ var copy = {
4
+ mounted(el, binding) {
5
+ el.copyData = binding.value || el.innerHTML;
6
+ el.addEventListener("click", handleClick);
7
+ },
8
+ updated(el, binding) {
9
+ el.copyData = binding.value || el.innerHTML;
10
+ },
11
+ beforeUnmount(el) {
12
+ el.removeEventListener("click", el.__handleClick__);
13
+ }
14
+ };
15
+ function handleClick() {
16
+ const input = document.createElement("input");
17
+ console.log(this.copyData);
18
+ input.value = this.copyData.toLocaleString();
19
+ document.body.appendChild(input);
20
+ input.select();
21
+ document.execCommand("Copy");
22
+ document.body.removeChild(input);
23
+ ElMessage({
24
+ type: "success",
25
+ message: "复制成功"
26
+ });
27
+ }
28
+ //#endregion
29
+ export { copy as default };
30
+
31
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/directives/copy/index.ts"],"sourcesContent":["import type { Directive, DirectiveBinding } from 'vue'\r\nimport { ElMessage } from 'element-plus'\r\ninterface ElType extends HTMLElement {\r\n copyData: string | number\r\n __handleClick__: any\r\n}\r\nconst copy: Directive = {\r\n mounted(el: ElType, binding: DirectiveBinding) {\r\n el.copyData = binding.value || el.innerHTML\r\n el.addEventListener('click', handleClick)\r\n },\r\n updated(el: ElType, binding: DirectiveBinding) {\r\n el.copyData = binding.value || el.innerHTML\r\n },\r\n beforeUnmount(el: ElType) {\r\n el.removeEventListener('click', el.__handleClick__)\r\n },\r\n}\r\n\r\nfunction handleClick(this: any) {\r\n const input = document.createElement('input')\r\n console.log(this.copyData)\r\n input.value = this.copyData.toLocaleString()\r\n document.body.appendChild(input)\r\n input.select()\r\n document.execCommand('Copy')\r\n document.body.removeChild(input)\r\n ElMessage({\r\n type: 'success',\r\n message: '复制成功',\r\n })\r\n}\r\n\r\nexport default copy\r\n"],"mappings":";;AAMA,IAAM,OAAkB;CACtB,QAAQ,IAAY,SAA2B;AAC7C,KAAG,WAAW,QAAQ,SAAS,GAAG;AAClC,KAAG,iBAAiB,SAAS,YAAY;;CAE3C,QAAQ,IAAY,SAA2B;AAC7C,KAAG,WAAW,QAAQ,SAAS,GAAG;;CAEpC,cAAc,IAAY;AACxB,KAAG,oBAAoB,SAAS,GAAG,gBAAgB;;CAEtD;AAED,SAAS,cAAuB;CAC9B,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,SAAQ,IAAI,KAAK,SAAS;AAC1B,OAAM,QAAQ,KAAK,SAAS,gBAAgB;AAC5C,UAAS,KAAK,YAAY,MAAM;AAChC,OAAM,QAAQ;AACd,UAAS,YAAY,OAAO;AAC5B,UAAS,KAAK,YAAY,MAAM;AAChC,WAAU;EACR,MAAM;EACN,SAAS;EACV,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Directive } from 'vue';
2
+ declare const draggable: Directive;
3
+ export default draggable;
@@ -0,0 +1,28 @@
1
+ //#region packages/directives/draggable/index.ts
2
+ var draggable = { mounted: function(el) {
3
+ el.style.cursor = "move";
4
+ el.style.position = "absolute";
5
+ el.onmousedown = function(e) {
6
+ const disX = e.pageX - el.offsetLeft;
7
+ const disY = e.pageY - el.offsetTop;
8
+ document.onmousemove = function(e) {
9
+ let x = e.pageX - disX;
10
+ let y = e.pageY - disY;
11
+ const maxX = el.parentNode.offsetWidth - el.offsetWidth;
12
+ const maxY = el.parentNode.offsetHeight - el.offsetHeight;
13
+ if (x < 0) x = 0;
14
+ else if (x > maxX) x = maxX;
15
+ if (y < 0) y = 0;
16
+ else if (y > maxY) y = maxY;
17
+ el.style.left = x + "px";
18
+ el.style.top = y + "px";
19
+ };
20
+ document.onmouseup = function() {
21
+ document.onmousemove = document.onmouseup = null;
22
+ };
23
+ };
24
+ } };
25
+ //#endregion
26
+ export { draggable as default };
27
+
28
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/directives/draggable/index.ts"],"sourcesContent":["import type { Directive } from 'vue'\r\ninterface ElType extends HTMLElement {\r\n parentNode: any\r\n}\r\nconst draggable: Directive = {\r\n mounted: function (el: ElType) {\r\n el.style.cursor = 'move'\r\n el.style.position = 'absolute'\r\n el.onmousedown = function (e) {\r\n const disX = e.pageX - el.offsetLeft\r\n const disY = e.pageY - el.offsetTop\r\n document.onmousemove = function (e) {\r\n let x = e.pageX - disX\r\n let y = e.pageY - disY\r\n const maxX = el.parentNode.offsetWidth - el.offsetWidth\r\n const maxY = el.parentNode.offsetHeight - el.offsetHeight\r\n if (x < 0) {\r\n x = 0\r\n } else if (x > maxX) {\r\n x = maxX\r\n }\r\n\r\n if (y < 0) {\r\n y = 0\r\n } else if (y > maxY) {\r\n y = maxY\r\n }\r\n el.style.left = x + 'px'\r\n el.style.top = y + 'px'\r\n }\r\n document.onmouseup = function () {\r\n document.onmousemove = document.onmouseup = null\r\n }\r\n }\r\n },\r\n}\r\nexport default draggable\r\n"],"mappings":";AAIA,IAAM,YAAuB,EAC3B,SAAS,SAAU,IAAY;AAC7B,IAAG,MAAM,SAAS;AAClB,IAAG,MAAM,WAAW;AACpB,IAAG,cAAc,SAAU,GAAG;EAC5B,MAAM,OAAO,EAAE,QAAQ,GAAG;EAC1B,MAAM,OAAO,EAAE,QAAQ,GAAG;AAC1B,WAAS,cAAc,SAAU,GAAG;GAClC,IAAI,IAAI,EAAE,QAAQ;GAClB,IAAI,IAAI,EAAE,QAAQ;GAClB,MAAM,OAAO,GAAG,WAAW,cAAc,GAAG;GAC5C,MAAM,OAAO,GAAG,WAAW,eAAe,GAAG;AAC7C,OAAI,IAAI,EACN,KAAI;YACK,IAAI,KACb,KAAI;AAGN,OAAI,IAAI,EACN,KAAI;YACK,IAAI,KACb,KAAI;AAEN,MAAG,MAAM,OAAO,IAAI;AACpB,MAAG,MAAM,MAAM,IAAI;;AAErB,WAAS,YAAY,WAAY;AAC/B,YAAS,cAAc,SAAS,YAAY;;;GAInD"}
@@ -0,0 +1,4 @@
1
+ export { default as Copy } from './copy/index.js';
2
+ export { default as Draggable } from './draggable/index.js';
3
+ export { default as ResizeElement } from './resize-element/index.js';
4
+ export { default as ShowTip } from './show-tip/index.js';
@@ -0,0 +1,5 @@
1
+ import copy from "./copy/index.mjs";
2
+ import draggable from "./draggable/index.mjs";
3
+ import resizeElement from "./resize-element/index.mjs";
4
+ import showTip from "./show-tip/index.mjs";
5
+ export { copy as Copy, draggable as Draggable, resizeElement as ResizeElement, showTip as ShowTip };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * v-longpress
3
+ * 长按指令,长按时触发事件
4
+ */
5
+ import type { Directive } from 'vue';
6
+ declare const directive: Directive;
7
+ export default directive;
@@ -0,0 +1,32 @@
1
+ //#region packages/directives/longpress/index.ts
2
+ var directive = { mounted(el, binding) {
3
+ if (typeof binding.value !== "function") throw "callback must be a function";
4
+ let pressTimer = null;
5
+ const start = (e) => {
6
+ if (e.button) {
7
+ if (e.type === "click" && e.button !== 0) return;
8
+ }
9
+ if (pressTimer === null) pressTimer = setTimeout(() => {
10
+ handler(e);
11
+ }, 1e3);
12
+ };
13
+ const cancel = () => {
14
+ if (pressTimer !== null) {
15
+ clearTimeout(pressTimer);
16
+ pressTimer = null;
17
+ }
18
+ };
19
+ const handler = (e) => {
20
+ binding.value(e);
21
+ };
22
+ el.addEventListener("mousedown", start);
23
+ el.addEventListener("touchstart", start);
24
+ el.addEventListener("click", cancel);
25
+ el.addEventListener("mouseout", cancel);
26
+ el.addEventListener("touchend", cancel);
27
+ el.addEventListener("touchcancel", cancel);
28
+ } };
29
+ //#endregion
30
+ export { directive as default };
31
+
32
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/directives/longpress/index.ts"],"sourcesContent":["/**\r\n * v-longpress\r\n * 长按指令,长按时触发事件\r\n */\r\nimport type { Directive, DirectiveBinding } from 'vue'\r\n\r\nconst directive: Directive = {\r\n mounted(el: HTMLElement, binding: DirectiveBinding) {\r\n if (typeof binding.value !== 'function') {\r\n throw 'callback must be a function'\r\n }\r\n // 定义变量\r\n let pressTimer: any = null\r\n // 创建计时器( 2秒后执行函数 )\r\n const start = (e: any) => {\r\n if (e.button) {\r\n if (e.type === 'click' && e.button !== 0) {\r\n return\r\n }\r\n }\r\n if (pressTimer === null) {\r\n pressTimer = setTimeout(() => {\r\n handler(e)\r\n }, 1000)\r\n }\r\n }\r\n // 取消计时器\r\n const cancel = () => {\r\n if (pressTimer !== null) {\r\n clearTimeout(pressTimer)\r\n pressTimer = null\r\n }\r\n }\r\n // 运行函数\r\n const handler = (e: MouseEvent | TouchEvent) => {\r\n binding.value(e)\r\n }\r\n // 添加事件监听器\r\n el.addEventListener('mousedown', start)\r\n el.addEventListener('touchstart', start)\r\n // 取消计时器\r\n el.addEventListener('click', cancel)\r\n el.addEventListener('mouseout', cancel)\r\n el.addEventListener('touchend', cancel)\r\n el.addEventListener('touchcancel', cancel)\r\n },\r\n}\r\n\r\nexport default directive\r\n"],"mappings":";AAMA,IAAM,YAAuB,EAC3B,QAAQ,IAAiB,SAA2B;AAClD,KAAI,OAAO,QAAQ,UAAU,WAC3B,OAAM;CAGR,IAAI,aAAkB;CAEtB,MAAM,SAAS,MAAW;AACxB,MAAI,EAAE;OACA,EAAE,SAAS,WAAW,EAAE,WAAW,EACrC;;AAGJ,MAAI,eAAe,KACjB,cAAa,iBAAiB;AAC5B,WAAQ,EAAE;KACT,IAAK;;CAIZ,MAAM,eAAe;AACnB,MAAI,eAAe,MAAM;AACvB,gBAAa,WAAW;AACxB,gBAAa;;;CAIjB,MAAM,WAAW,MAA+B;AAC9C,UAAQ,MAAM,EAAE;;AAGlB,IAAG,iBAAiB,aAAa,MAAM;AACvC,IAAG,iBAAiB,cAAc,MAAM;AAExC,IAAG,iBAAiB,SAAS,OAAO;AACpC,IAAG,iBAAiB,YAAY,OAAO;AACvC,IAAG,iBAAiB,YAAY,OAAO;AACvC,IAAG,iBAAiB,eAAe,OAAO;GAE7C"}
@@ -0,0 +1,3 @@
1
+ import { Directive } from 'vue';
2
+ declare const resizeElement: Directive;
3
+ export default resizeElement;
@@ -0,0 +1,30 @@
1
+ //#region packages/directives/resize-element/index.ts
2
+ var map = /* @__PURE__ */ new WeakMap();
3
+ var ob = new ResizeObserver((entries) => {
4
+ window.requestAnimationFrame(() => {
5
+ for (const entry of entries) {
6
+ const handle = map.get(entry.target);
7
+ if (handle) {
8
+ const box = entry.borderBoxSize[0];
9
+ if (box.inlineSize === 0 && box.blockSize === 0) return;
10
+ handle({
11
+ width: box.inlineSize,
12
+ height: box.blockSize
13
+ });
14
+ }
15
+ }
16
+ });
17
+ });
18
+ var resizeElement = {
19
+ mounted: function(el, binding) {
20
+ ob.observe(el);
21
+ map.set(el, binding.value);
22
+ },
23
+ unmounted(el) {
24
+ ob.unobserve(el);
25
+ }
26
+ };
27
+ //#endregion
28
+ export { resizeElement as default };
29
+
30
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/directives/resize-element/index.ts"],"sourcesContent":["import { Directive } from 'vue'\r\nconst map = new WeakMap()\r\nconst ob = new ResizeObserver((entries) => {\r\n // 使用 requestAnimationFrame 来防止过度触发\r\n window.requestAnimationFrame(() => {\r\n for (const entry of entries) {\r\n const handle = map.get(entry.target)\r\n if (handle) {\r\n const box = entry.borderBoxSize[0]\r\n if (box.inlineSize === 0 && box.blockSize === 0) return\r\n handle({\r\n width: box.inlineSize,\r\n height: box.blockSize,\r\n })\r\n }\r\n }\r\n })\r\n})\r\n\r\nconst resizeElement: Directive = {\r\n mounted: function (el, binding) {\r\n ob.observe(el)\r\n map.set(el, binding.value)\r\n },\r\n unmounted(el) {\r\n ob.unobserve(el)\r\n },\r\n}\r\n\r\nexport default resizeElement\r\n"],"mappings":";AACA,IAAM,sBAAM,IAAI,SAAS;AACzB,IAAM,KAAK,IAAI,gBAAgB,YAAY;AAEzC,QAAO,4BAA4B;AACjC,OAAK,MAAM,SAAS,SAAS;GAC3B,MAAM,SAAS,IAAI,IAAI,MAAM,OAAO;AACpC,OAAI,QAAQ;IACV,MAAM,MAAM,MAAM,cAAc;AAChC,QAAI,IAAI,eAAe,KAAK,IAAI,cAAc,EAAG;AACjD,WAAO;KACL,OAAO,IAAI;KACX,QAAQ,IAAI;KACb,CAAC;;;GAGN;EACF;AAEF,IAAM,gBAA2B;CAC/B,SAAS,SAAU,IAAI,SAAS;AAC9B,KAAG,QAAQ,GAAG;AACd,MAAI,IAAI,IAAI,QAAQ,MAAM;;CAE5B,UAAU,IAAI;AACZ,KAAG,UAAU,GAAG;;CAEnB"}
@@ -0,0 +1,3 @@
1
+ import type { Directive } from 'vue';
2
+ declare const showTip: Directive;
3
+ export default showTip;
@@ -0,0 +1,19 @@
1
+ import { getStyle } from "../../utils/dom/style.mjs";
2
+ //#region packages/directives/show-tip/index.ts
3
+ var showTip = { created(el, _, vnode) {
4
+ const tooltipNode = vnode.children.find((childCmpt) => {
5
+ var _childCmpt$component;
6
+ return ((_childCmpt$component = childCmpt.component) === null || _childCmpt$component === void 0 ? void 0 : _childCmpt$component.type.name) == "ElTooltip";
7
+ });
8
+ if (tooltipNode) el.addEventListener("mouseenter", () => {
9
+ tooltipNode.component.props.disabled = true;
10
+ const range = document.createRange();
11
+ range.setStart(el, 0);
12
+ range.setEnd(el, el.childNodes.length);
13
+ if (Math.round(range.getBoundingClientRect().width) + ((parseInt(getStyle(el, "paddingLeft"), 10) || 0) + (parseInt(getStyle(el, "paddingRight"), 10) || 0)) > el.offsetWidth || el.scrollWidth > el.offsetWidth) tooltipNode.component.props.disabled = false;
14
+ });
15
+ } };
16
+ //#endregion
17
+ export { showTip as default };
18
+
19
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/directives/show-tip/index.ts"],"sourcesContent":["/*\n * @Author: kfz\n * @Date: 2023-12-08 13:58:41\n * @LastEditors: kfz\n * @LastEditTime: 2024-01-26 10:28:23\n * @Description: 超过宽度才显示 ElTooltip, 配合ElTooltip使用,ElTooltip 父元素使用\n * @use <div v-show-tip> <ElTooltip /> </div>\n */\nimport type { Directive } from 'vue'\nimport { getStyle } from '@hd-custom/utils'\n\nconst showTip: Directive = {\n created(el: any, _: any, vnode: any) {\n const tooltipNode = vnode.children.find((childCmpt: any) => childCmpt.component?.type.name == 'ElTooltip')\n if (tooltipNode) {\n el.addEventListener('mouseenter', () => {\n tooltipNode.component.props.disabled = true\n const range = document.createRange()\n range.setStart(el, 0)\n range.setEnd(el, el.childNodes.length)\n const rangeWidth = Math.round(range.getBoundingClientRect().width)\n const padding =\n (parseInt(getStyle(el, 'paddingLeft'), 10) || 0) + (parseInt(getStyle(el, 'paddingRight'), 10) || 0)\n if (rangeWidth + padding > el.offsetWidth || el.scrollWidth > el.offsetWidth) {\n tooltipNode.component.props.disabled = false\n }\n })\n }\n },\n}\n\nexport default showTip\n"],"mappings":";;AAWA,IAAM,UAAqB,EACzB,QAAQ,IAAS,GAAQ,OAAY;CACnC,MAAM,cAAc,MAAM,SAAS,MAAM,cAAmB;;4CAAU,eAAA,QAAA,yBAAA,KAAA,IAAA,KAAA,IAAA,qBAAW,KAAK,SAAQ;GAAY;AAC1G,KAAI,YACF,IAAG,iBAAiB,oBAAoB;AACtC,cAAY,UAAU,MAAM,WAAW;EACvC,MAAM,QAAQ,SAAS,aAAa;AACpC,QAAM,SAAS,IAAI,EAAE;AACrB,QAAM,OAAO,IAAI,GAAG,WAAW,OAAO;AAItC,MAHmB,KAAK,MAAM,MAAM,uBAAuB,CAAC,MAGxD,KADD,SAAS,SAAS,IAAI,cAAc,EAAE,GAAG,IAAI,MAAM,SAAS,SAAS,IAAI,eAAe,EAAE,GAAG,IAAI,MACzE,GAAG,eAAe,GAAG,cAAc,GAAG,YAC/D,aAAY,UAAU,MAAM,WAAW;GAEzC;GAGP"}
@@ -0,0 +1,27 @@
1
+ export interface ConfigurableWindow {
2
+ window?: Window;
3
+ }
4
+ export interface ConfigurableDocument {
5
+ document?: Document;
6
+ }
7
+ export interface ConfigurableDocumentOrShadowRoot {
8
+ document?: DocumentOrShadowRoot;
9
+ }
10
+ export interface ConfigurableNavigator {
11
+ navigator?: Navigator;
12
+ }
13
+ export interface ConfigurableLocation {
14
+ location?: Location;
15
+ }
16
+ export declare const defaultWindow: (Window & typeof globalThis) | undefined;
17
+ export declare const defaultDocument: Document | undefined;
18
+ export declare const defaultNavigator: Navigator | undefined;
19
+ export declare const defaultLocation: Location | undefined;
20
+ export interface ConfigurableDeepRefs<D extends boolean> {
21
+ /**
22
+ * Return deep refs instead of shallow refs.
23
+ *
24
+ * @default true - will be changed to `false` by default in the next major
25
+ */
26
+ deepRefs?: D;
27
+ }
@@ -0,0 +1,10 @@
1
+ import { isClient } from "./utils/is.mjs";
2
+ //#region packages/hooks/_configurable.ts
3
+ var defaultWindow = isClient ? window : void 0;
4
+ var defaultDocument = isClient ? window.document : void 0;
5
+ var defaultNavigator = isClient ? window.navigator : void 0;
6
+ var defaultLocation = isClient ? window.location : void 0;
7
+ //#endregion
8
+ export { defaultDocument, defaultLocation, defaultNavigator, defaultWindow };
9
+
10
+ //# sourceMappingURL=_configurable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_configurable.mjs","names":[],"sources":["../../../../packages/hooks/_configurable.ts"],"sourcesContent":["import { isClient } from './utils'\r\n\r\nexport interface ConfigurableWindow {\r\n /*\r\n * Specify a custom `window` instance, e.g. working with iframes or in testing environments.\r\n */\r\n window?: Window\r\n}\r\n\r\nexport interface ConfigurableDocument {\r\n /*\r\n * Specify a custom `document` instance, e.g. working with iframes or in testing environments.\r\n */\r\n document?: Document\r\n}\r\n\r\nexport interface ConfigurableDocumentOrShadowRoot {\r\n /*\r\n * Specify a custom `document` instance or a shadow root, e.g. working with iframes or in testing environments.\r\n */\r\n document?: DocumentOrShadowRoot\r\n}\r\n\r\nexport interface ConfigurableNavigator {\r\n /*\r\n * Specify a custom `navigator` instance, e.g. working with iframes or in testing environments.\r\n */\r\n navigator?: Navigator\r\n}\r\n\r\nexport interface ConfigurableLocation {\r\n /*\r\n * Specify a custom `location` instance, e.g. working with iframes or in testing environments.\r\n */\r\n location?: Location\r\n}\r\n\r\nexport const defaultWindow = /* #__PURE__ */ isClient ? window : undefined\r\nexport const defaultDocument = /* #__PURE__ */ isClient ? window.document : undefined\r\nexport const defaultNavigator = /* #__PURE__ */ isClient ? window.navigator : undefined\r\nexport const defaultLocation = /* #__PURE__ */ isClient ? window.location : undefined\r\n\r\nexport interface ConfigurableDeepRefs<D extends boolean> {\r\n /**\r\n * Return deep refs instead of shallow refs.\r\n *\r\n * @default true - will be changed to `false` by default in the next major\r\n */\r\n deepRefs?: D\r\n}\r\n"],"mappings":";;AAqCA,IAAa,gBAAgC,WAAW,SAAS,KAAA;AACjE,IAAa,kBAAkC,WAAW,OAAO,WAAW,KAAA;AAC5E,IAAa,mBAAmC,WAAW,OAAO,YAAY,KAAA;AAC9E,IAAa,kBAAkC,WAAW,OAAO,WAAW,KAAA"}
@@ -0,0 +1 @@
1
+ export * from './useFullscreen/index.js';
@@ -0,0 +1,2 @@
1
+ import { useFullscreen } from "./useFullscreen/index.mjs";
2
+ export { useFullscreen };
@@ -0,0 +1,14 @@
1
+ import type { ComputedRef, MaybeRefOrGetter, Ref, ToRef } from 'vue';
2
+ /**
3
+ * Normalize value/ref/getter to `ref` or `computed`.
4
+ */
5
+ export declare function toRef<T>(r: () => T): Readonly<Ref<T>>;
6
+ export declare function toRef<T>(r: ComputedRef<T>): ComputedRef<T>;
7
+ export declare function toRef<T>(r: MaybeRefOrGetter<T>): Ref<T>;
8
+ export declare function toRef<T>(r: T): Ref<T>;
9
+ export declare function toRef<T extends object, K extends keyof T>(object: T, key: K): ToRef<T[K]>;
10
+ export declare function toRef<T extends object, K extends keyof T>(object: T, key: K, defaultValue: T[K]): ToRef<Exclude<T[K], undefined>>;
11
+ /**
12
+ * @deprecated use `toRef` instead
13
+ */
14
+ export declare const resolveRef: typeof toRef;
@@ -0,0 +1,19 @@
1
+ import { noop } from "../utils/is.mjs";
2
+ import { customRef, readonly, ref, toRef as toRef$1 } from "vue";
3
+ //#region packages/hooks/toRef/index.ts
4
+ function toRef(...args) {
5
+ if (args.length !== 1) return toRef$1(...args);
6
+ const r = args[0];
7
+ return typeof r === "function" ? readonly(customRef(() => ({
8
+ get: r,
9
+ set: noop
10
+ }))) : ref(r);
11
+ }
12
+ /**
13
+ * @deprecated use `toRef` instead
14
+ */
15
+ var resolveRef = toRef;
16
+ //#endregion
17
+ export { resolveRef, toRef };
18
+
19
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/hooks/toRef/index.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter, Ref, ToRef } from 'vue'\r\nimport { customRef, ref as deepRef, readonly, toRef as vueToRef } from 'vue'\r\nimport { noop } from '../utils/is'\r\n\r\n/**\r\n * Normalize value/ref/getter to `ref` or `computed`.\r\n */\r\nexport function toRef<T>(r: () => T): Readonly<Ref<T>>\r\nexport function toRef<T>(r: ComputedRef<T>): ComputedRef<T>\r\nexport function toRef<T>(r: MaybeRefOrGetter<T>): Ref<T>\r\nexport function toRef<T>(r: T): Ref<T>\r\nexport function toRef<T extends object, K extends keyof T>(object: T, key: K): ToRef<T[K]>\r\nexport function toRef<T extends object, K extends keyof T>(\r\n object: T,\r\n key: K,\r\n defaultValue: T[K],\r\n): ToRef<Exclude<T[K], undefined>>\r\nexport function toRef(...args: any[]) {\r\n if (args.length !== 1) return vueToRef(...(args as [any, any]))\r\n const r = args[0]\r\n return typeof r === 'function' ? readonly(customRef(() => ({ get: r as any, set: noop }))) : deepRef(r)\r\n}\r\n\r\n/**\r\n * @deprecated use `toRef` instead\r\n */\r\nexport const resolveRef = toRef\r\n"],"mappings":";;;AAiBA,SAAgB,MAAM,GAAG,MAAa;AACpC,KAAI,KAAK,WAAW,EAAG,QAAO,QAAS,GAAI,KAAoB;CAC/D,MAAM,IAAI,KAAK;AACf,QAAO,OAAO,MAAM,aAAa,SAAS,iBAAiB;EAAE,KAAK;EAAU,KAAK;EAAM,EAAE,CAAC,GAAG,IAAQ,EAAE;;;;;AAMzG,IAAa,aAAa"}
@@ -0,0 +1,7 @@
1
+ import type { Fn } from '../utils/index.js';
2
+ /**
3
+ * Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing
4
+ *
5
+ * @param fn
6
+ */
7
+ export declare function tryOnScopeDispose(fn: Fn): boolean;