vft 0.0.74 → 0.0.77

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 (373) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/es/component.js +67 -48
  4. package/es/components/affix/affix.js +45 -0
  5. package/es/components/affix/affix.vue.js +4 -0
  6. package/es/components/affix/affix.vue2.js +83 -0
  7. package/es/components/affix/index.js +12 -0
  8. package/es/components/affix/style/css.js +2 -0
  9. package/es/components/affix/style/index.js +2 -0
  10. package/es/components/back-top/back-top.vue2.js +10 -2
  11. package/es/components/button/button.vue2.js +58 -59
  12. package/es/components/button/use-button.js +26 -20
  13. package/es/components/card/card.vue.js +4 -0
  14. package/es/components/card/card.vue2.js +44 -0
  15. package/es/components/card/index.js +12 -0
  16. package/es/components/card/instance.js +1 -0
  17. package/es/components/card/style/css.js +2 -0
  18. package/es/components/card/style/index.js +2 -0
  19. package/es/components/check-tag/check-tag.vue.js +4 -0
  20. package/es/components/check-tag/check-tag.vue2.js +35 -0
  21. package/es/components/check-tag/index.js +12 -0
  22. package/es/components/check-tag/style/css.js +2 -0
  23. package/es/components/check-tag/style/index.js +2 -0
  24. package/es/components/color-picker/color-picker.vue2.js +1 -1
  25. package/es/components/context-menu/context-menu.vue2.js +10 -2
  26. package/es/components/date-picker/composables/use-month-range-header.js +1 -1
  27. package/es/components/date-picker/constants.js +16 -2
  28. package/es/components/date-picker/date-picker-com/basic-month-table.vue2.js +37 -34
  29. package/es/components/date-picker/date-picker-com/basic-year-table.vue2.js +0 -1
  30. package/es/components/date-picker/date-picker-com/panel-date-pick.vue2.js +177 -178
  31. package/es/components/date-picker/date-picker-com/panel-date-range.vue2.js +328 -336
  32. package/es/components/date-picker/date-picker.js +18 -18
  33. package/es/components/date-picker/index.js +5 -4
  34. package/es/components/date-picker/props/shared.js +1 -1
  35. package/es/components/date-time-select/date-time-select.vue2.js +59 -59
  36. package/es/components/dialog/dialog.vue2.js +12 -12
  37. package/es/components/dialog/hooks/use-dialog.js +4 -4
  38. package/es/components/dropdown/dropdown-menu.vue2.js +4 -4
  39. package/es/components/footer-layout/footer-layout.vue2.js +10 -2
  40. package/es/components/header-layout/header-layout.vue2.js +10 -2
  41. package/es/components/horizontal-menu/constants.js +4 -0
  42. package/es/components/horizontal-menu/horizontal-menu.vue2.js +153 -86
  43. package/es/components/horizontal-menu/index.js +7 -5
  44. package/es/components/horizontal-menu/style/css.js +3 -0
  45. package/es/components/horizontal-menu/style/index.js +3 -0
  46. package/es/components/index.js +228 -194
  47. package/es/components/md-container/md-container.vue2.js +10 -2
  48. package/es/components/menu/menu-item.vue2.js +58 -58
  49. package/es/components/menu/menu.vue2.js +72 -68
  50. package/es/components/menu/style/css.js +3 -0
  51. package/es/components/menu/style/index.js +3 -0
  52. package/es/components/menu/sub-menu.vue2.js +139 -117
  53. package/es/components/multiple-tabs/multiple-tabs.vue2.js +35 -26
  54. package/es/components/option/style/css.js +2 -0
  55. package/es/components/option/style/index.js +2 -0
  56. package/es/components/option-group/style/css.js +2 -0
  57. package/es/components/option-group/style/index.js +2 -0
  58. package/es/components/popconfirm/index.js +12 -0
  59. package/es/components/popconfirm/popconfirm.vue.js +4 -0
  60. package/es/components/popconfirm/popconfirm.vue2.js +112 -0
  61. package/es/components/popconfirm/style/css.js +6 -0
  62. package/es/components/popconfirm/style/index.js +6 -0
  63. package/es/components/result/result.vue2.js +10 -2
  64. package/es/components/roving-focus-group/roving-focus-item.vue2.js +1 -1
  65. package/es/components/select/index.js +22 -0
  66. package/es/components/select/option-group.vue.js +25 -0
  67. package/es/components/select/option-group.vue2.js +53 -0
  68. package/es/components/select/option.vue.js +27 -0
  69. package/es/components/select/option.vue2.js +58 -0
  70. package/es/components/select/options.js +34 -0
  71. package/es/components/select/select-dropdown.vue.js +15 -0
  72. package/es/components/select/select-dropdown.vue2.js +32 -0
  73. package/es/components/select/select.vue.js +327 -0
  74. package/es/components/select/select.vue2.js +348 -0
  75. package/es/components/select/style/css.js +8 -0
  76. package/es/components/select/style/index.js +8 -0
  77. package/es/components/select/token.js +5 -0
  78. package/es/components/select/useOption.js +71 -0
  79. package/es/components/select/useSelect.js +414 -0
  80. package/es/components/select-v2/select-dropdown.js +1 -1
  81. package/es/components/select-v2/useSelect.js +269 -269
  82. package/es/components/side-menu/side-menu.vue2.js +153 -142
  83. package/es/components/side-menu/style/css.js +3 -0
  84. package/es/components/side-menu/style/index.js +3 -0
  85. package/es/components/skeleton/index.js +16 -0
  86. package/es/components/skeleton/skeleton-item.vue.js +4 -0
  87. package/es/components/skeleton/skeleton-item.vue2.js +31 -0
  88. package/es/components/skeleton/skeleton.vue.js +4 -0
  89. package/es/components/skeleton/skeleton.vue2.js +55 -0
  90. package/es/components/skeleton/style/css.js +3 -0
  91. package/es/components/skeleton/style/index.js +3 -0
  92. package/es/components/skeleton-item/style/css.js +2 -0
  93. package/es/components/skeleton-item/style/index.js +2 -0
  94. package/es/components/space/index.js +17 -0
  95. package/es/components/space/item.js +24 -0
  96. package/es/components/space/space.js +182 -0
  97. package/es/components/space/style/css.js +2 -0
  98. package/es/components/space/style/index.js +2 -0
  99. package/es/components/space/use-space.js +44 -0
  100. package/es/components/switch/switch.vue2.js +1 -1
  101. package/es/components/tabs/tab-nav.vue2.js +30 -22
  102. package/es/components/tabs/tabs.vue2.js +37 -37
  103. package/es/components/time-picker/common/picker.vue2.js +241 -257
  104. package/es/components/time-picker/common/props.js +10 -6
  105. package/es/components/time-picker/time-picker-com/panel-time-range.vue2.js +1 -1
  106. package/es/components/time-picker/time-picker.js +10 -10
  107. package/es/components/time-select/time-select.vue2.js +38 -42
  108. package/es/components/tooltip/content.vue2.js +1 -1
  109. package/es/components/tree/index.js +14 -0
  110. package/es/components/tree/model/node.js +248 -0
  111. package/es/components/tree/model/tree-store.js +197 -0
  112. package/es/components/tree/model/useDragNode.js +71 -0
  113. package/es/components/tree/model/useKeydown.js +81 -0
  114. package/es/components/tree/model/useNodeExpandEventBroadcast.js +19 -0
  115. package/es/components/tree/model/util.js +21 -0
  116. package/es/components/tree/style/css.js +3 -0
  117. package/es/components/tree/style/index.js +3 -0
  118. package/es/components/tree/tree-node-content.vue.js +4 -0
  119. package/es/components/tree/tree-node-content.vue2.js +28 -0
  120. package/es/components/tree/tree-node.vue.js +98 -0
  121. package/es/components/tree/tree-node.vue2.js +152 -0
  122. package/es/components/tree/tree.type.js +1 -0
  123. package/es/components/tree/tree.vue.js +48 -0
  124. package/es/components/tree/tree.vue2.js +268 -0
  125. package/es/components/tree-select/cache-options.js +32 -0
  126. package/es/components/tree-select/index.js +9 -0
  127. package/es/components/tree-select/select.js +38 -0
  128. package/es/components/tree-select/style/css.js +11 -0
  129. package/es/components/tree-select/style/index.js +11 -0
  130. package/es/components/tree-select/tree-select-option.js +21 -0
  131. package/es/components/tree-select/tree-select.vue.js +4 -0
  132. package/es/components/tree-select/tree-select.vue2.js +81 -0
  133. package/es/components/tree-select/tree.js +137 -0
  134. package/es/components/tree-select/utils.js +45 -0
  135. package/es/hooks/index.js +25 -21
  136. package/es/hooks/use-focus/index.js +9 -0
  137. package/es/hooks/use-throttle-render/index.js +21 -0
  138. package/es/index.js +408 -368
  139. package/es/package.json.js +1 -1
  140. package/es/utils/helper.js +5 -2
  141. package/es/utils/index.js +48 -46
  142. package/lib/component.cjs +1 -1
  143. package/lib/components/affix/affix.cjs +1 -0
  144. package/lib/components/affix/affix.vue.cjs +1 -0
  145. package/lib/components/affix/affix.vue2.cjs +1 -0
  146. package/lib/components/affix/index.cjs +1 -0
  147. package/lib/components/affix/style/css.cjs +1 -0
  148. package/lib/components/affix/style/index.cjs +1 -0
  149. package/lib/components/back-top/back-top.vue2.cjs +1 -1
  150. package/lib/components/button/button.vue2.cjs +1 -1
  151. package/lib/components/button/use-button.cjs +1 -1
  152. package/lib/components/card/card.vue.cjs +1 -0
  153. package/lib/components/card/card.vue2.cjs +1 -0
  154. package/lib/components/card/index.cjs +1 -0
  155. package/lib/components/card/instance.cjs +1 -0
  156. package/lib/components/card/style/css.cjs +1 -0
  157. package/lib/components/card/style/index.cjs +1 -0
  158. package/lib/components/check-tag/check-tag.vue.cjs +1 -0
  159. package/lib/components/check-tag/check-tag.vue2.cjs +1 -0
  160. package/lib/components/check-tag/index.cjs +1 -0
  161. package/lib/components/check-tag/style/css.cjs +1 -0
  162. package/lib/components/check-tag/style/index.cjs +1 -0
  163. package/lib/components/color-picker/color-picker.vue2.cjs +1 -1
  164. package/lib/components/context-menu/context-menu.vue2.cjs +1 -1
  165. package/lib/components/date-picker/composables/use-month-range-header.cjs +1 -1
  166. package/lib/components/date-picker/constants.cjs +1 -1
  167. package/lib/components/date-picker/date-picker-com/basic-month-table.vue2.cjs +1 -1
  168. package/lib/components/date-picker/date-picker-com/basic-year-table.vue2.cjs +1 -1
  169. package/lib/components/date-picker/date-picker-com/panel-date-pick.vue2.cjs +1 -1
  170. package/lib/components/date-picker/date-picker-com/panel-date-range.vue2.cjs +1 -1
  171. package/lib/components/date-picker/date-picker.cjs +1 -1
  172. package/lib/components/date-picker/index.cjs +1 -1
  173. package/lib/components/date-picker/props/shared.cjs +1 -1
  174. package/lib/components/date-time-select/date-time-select.vue2.cjs +1 -1
  175. package/lib/components/dialog/dialog.vue2.cjs +1 -1
  176. package/lib/components/dialog/hooks/use-dialog.cjs +1 -1
  177. package/lib/components/dropdown/dropdown-menu.vue2.cjs +1 -1
  178. package/lib/components/footer-layout/footer-layout.vue2.cjs +1 -1
  179. package/lib/components/header-layout/header-layout.vue2.cjs +1 -1
  180. package/lib/components/horizontal-menu/constants.cjs +1 -0
  181. package/lib/components/horizontal-menu/horizontal-menu.vue2.cjs +1 -1
  182. package/lib/components/horizontal-menu/index.cjs +1 -1
  183. package/lib/components/horizontal-menu/style/css.cjs +1 -1
  184. package/lib/components/horizontal-menu/style/index.cjs +1 -1
  185. package/lib/components/index.cjs +1 -1
  186. package/lib/components/md-container/md-container.vue2.cjs +1 -1
  187. package/lib/components/menu/menu-item.vue2.cjs +1 -1
  188. package/lib/components/menu/menu.vue2.cjs +1 -1
  189. package/lib/components/menu/style/css.cjs +1 -1
  190. package/lib/components/menu/style/index.cjs +1 -1
  191. package/lib/components/menu/sub-menu.vue2.cjs +1 -1
  192. package/lib/components/multiple-tabs/multiple-tabs.vue2.cjs +1 -1
  193. package/lib/components/option/style/css.cjs +1 -0
  194. package/lib/components/option/style/index.cjs +1 -0
  195. package/lib/components/option-group/style/css.cjs +1 -0
  196. package/lib/components/option-group/style/index.cjs +1 -0
  197. package/lib/components/popconfirm/index.cjs +1 -0
  198. package/lib/components/popconfirm/popconfirm.vue.cjs +1 -0
  199. package/lib/components/popconfirm/popconfirm.vue2.cjs +1 -0
  200. package/lib/components/popconfirm/style/css.cjs +1 -0
  201. package/lib/components/popconfirm/style/index.cjs +1 -0
  202. package/lib/components/result/result.vue2.cjs +1 -1
  203. package/lib/components/roving-focus-group/roving-focus-item.vue2.cjs +1 -1
  204. package/lib/components/select/index.cjs +1 -0
  205. package/lib/components/select/option-group.vue.cjs +1 -0
  206. package/lib/components/select/option-group.vue2.cjs +1 -0
  207. package/lib/components/select/option.vue.cjs +1 -0
  208. package/lib/components/select/option.vue2.cjs +1 -0
  209. package/lib/components/select/options.cjs +1 -0
  210. package/lib/components/select/select-dropdown.vue.cjs +1 -0
  211. package/lib/components/select/select-dropdown.vue2.cjs +1 -0
  212. package/lib/components/select/select.vue.cjs +1 -0
  213. package/lib/components/select/select.vue2.cjs +1 -0
  214. package/lib/components/select/style/css.cjs +1 -0
  215. package/lib/components/select/style/index.cjs +1 -0
  216. package/lib/components/select/token.cjs +1 -0
  217. package/lib/components/select/useOption.cjs +1 -0
  218. package/lib/components/select/useSelect.cjs +1 -0
  219. package/lib/components/select-v2/select-dropdown.cjs +1 -1
  220. package/lib/components/select-v2/useSelect.cjs +1 -1
  221. package/lib/components/side-menu/side-menu.vue2.cjs +1 -1
  222. package/lib/components/side-menu/style/css.cjs +1 -1
  223. package/lib/components/side-menu/style/index.cjs +1 -1
  224. package/lib/components/skeleton/index.cjs +1 -0
  225. package/lib/components/skeleton/skeleton-item.vue.cjs +1 -0
  226. package/lib/components/skeleton/skeleton-item.vue2.cjs +1 -0
  227. package/lib/components/skeleton/skeleton.vue.cjs +1 -0
  228. package/lib/components/skeleton/skeleton.vue2.cjs +1 -0
  229. package/lib/components/skeleton/style/css.cjs +1 -0
  230. package/lib/components/skeleton/style/index.cjs +1 -0
  231. package/lib/components/skeleton-item/style/css.cjs +1 -0
  232. package/lib/components/skeleton-item/style/index.cjs +1 -0
  233. package/lib/components/space/index.cjs +1 -0
  234. package/lib/components/space/item.cjs +1 -0
  235. package/lib/components/space/space.cjs +1 -0
  236. package/lib/components/space/style/css.cjs +1 -0
  237. package/lib/components/space/style/index.cjs +1 -0
  238. package/lib/components/space/use-space.cjs +1 -0
  239. package/lib/components/switch/switch.vue2.cjs +1 -1
  240. package/lib/components/tabs/tab-nav.vue2.cjs +1 -1
  241. package/lib/components/tabs/tabs.vue2.cjs +1 -1
  242. package/lib/components/time-picker/common/picker.vue2.cjs +1 -1
  243. package/lib/components/time-picker/common/props.cjs +1 -1
  244. package/lib/components/time-picker/time-picker-com/panel-time-range.vue2.cjs +1 -1
  245. package/lib/components/time-picker/time-picker.cjs +1 -1
  246. package/lib/components/time-select/time-select.vue2.cjs +1 -1
  247. package/lib/components/tooltip/content.vue2.cjs +1 -1
  248. package/lib/components/tree/index.cjs +1 -0
  249. package/lib/components/tree/model/node.cjs +1 -0
  250. package/lib/components/tree/model/tree-store.cjs +1 -0
  251. package/lib/components/tree/model/useDragNode.cjs +1 -0
  252. package/lib/components/tree/model/useKeydown.cjs +1 -0
  253. package/lib/components/tree/model/useNodeExpandEventBroadcast.cjs +1 -0
  254. package/lib/components/tree/model/util.cjs +1 -0
  255. package/lib/components/tree/style/css.cjs +1 -0
  256. package/lib/components/tree/style/index.cjs +1 -0
  257. package/lib/components/tree/tree-node-content.vue.cjs +1 -0
  258. package/lib/components/tree/tree-node-content.vue2.cjs +1 -0
  259. package/lib/components/tree/tree-node.vue.cjs +1 -0
  260. package/lib/components/tree/tree-node.vue2.cjs +1 -0
  261. package/lib/components/tree/tree.type.cjs +1 -0
  262. package/lib/components/tree/tree.vue.cjs +1 -0
  263. package/lib/components/tree/tree.vue2.cjs +1 -0
  264. package/lib/components/tree-select/cache-options.cjs +1 -0
  265. package/lib/components/tree-select/index.cjs +1 -0
  266. package/lib/components/tree-select/select.cjs +1 -0
  267. package/lib/components/tree-select/style/css.cjs +1 -0
  268. package/lib/components/tree-select/style/index.cjs +1 -0
  269. package/lib/components/tree-select/tree-select-option.cjs +1 -0
  270. package/lib/components/tree-select/tree-select.vue.cjs +1 -0
  271. package/lib/components/tree-select/tree-select.vue2.cjs +1 -0
  272. package/lib/components/tree-select/tree.cjs +1 -0
  273. package/lib/components/tree-select/utils.cjs +1 -0
  274. package/lib/hooks/index.cjs +1 -1
  275. package/lib/hooks/use-focus/index.cjs +1 -0
  276. package/lib/hooks/use-throttle-render/index.cjs +1 -0
  277. package/lib/index.cjs +1 -1
  278. package/lib/package.json.cjs +1 -1
  279. package/lib/utils/helper.cjs +1 -1
  280. package/lib/utils/index.cjs +1 -1
  281. package/package.json +2 -2
  282. package/tags.json +1 -1
  283. package/theme-style/base.css +1 -1
  284. package/theme-style/index.css +1 -1
  285. package/theme-style/src/alert.scss +1 -1
  286. package/theme-style/src/autocomplete.scss +2 -2
  287. package/theme-style/src/breadcrumb.scss +4 -4
  288. package/theme-style/src/calendar.scss +2 -2
  289. package/theme-style/src/card.scss +1 -1
  290. package/theme-style/src/carousel.scss +1 -1
  291. package/theme-style/src/cascader.scss +3 -3
  292. package/theme-style/src/check-tag.scss +3 -3
  293. package/theme-style/src/checkbox.scss +1 -1
  294. package/theme-style/src/color-picker.scss +2 -2
  295. package/theme-style/src/common/var.scss +527 -521
  296. package/theme-style/src/date-picker/date-picker.scss +1 -1
  297. package/theme-style/src/date-picker/date-range-picker.scss +2 -2
  298. package/theme-style/src/date-picker/date-table.scss +1 -1
  299. package/theme-style/src/date-picker/month-table.scss +2 -2
  300. package/theme-style/src/date-picker/picker-panel.scss +4 -5
  301. package/theme-style/src/date-picker/picker.scss +7 -9
  302. package/theme-style/src/date-picker/time-picker.scss +2 -2
  303. package/theme-style/src/date-picker/time-spinner.scss +6 -8
  304. package/theme-style/src/date-picker/year-table.scss +3 -3
  305. package/theme-style/src/date-time-select.scss +3 -4
  306. package/theme-style/src/descriptions-item.scss +4 -4
  307. package/theme-style/src/descriptions.scss +2 -2
  308. package/theme-style/src/header-layout.scss +1 -1
  309. package/theme-style/src/horizontal-menu.scss +27 -39
  310. package/theme-style/src/image-viewer.scss +1 -1
  311. package/theme-style/src/index.scss +3 -0
  312. package/theme-style/src/input-number.scss +1 -1
  313. package/theme-style/src/menu.scss +76 -66
  314. package/theme-style/src/mixins/_var.scss +2 -2
  315. package/theme-style/src/mixins/mixins.scss +2 -2
  316. package/theme-style/src/popconfirm.scss +16 -0
  317. package/theme-style/src/popper.scss +4 -2
  318. package/theme-style/src/progress.scss +1 -1
  319. package/theme-style/src/reset.scss +3 -3
  320. package/theme-style/src/result.scss +2 -2
  321. package/theme-style/src/select-dropdown-v2.scss +1 -1
  322. package/theme-style/src/select-dropdown.scss +1 -1
  323. package/theme-style/src/select-v2.scss +2 -2
  324. package/theme-style/src/select.scss +4 -5
  325. package/theme-style/src/skeleton-item.scss +83 -0
  326. package/theme-style/src/skeleton.scss +44 -0
  327. package/theme-style/src/step.scss +10 -10
  328. package/theme-style/src/tabs.scss +15 -155
  329. package/theme-style/src/timeline-item.scss +2 -2
  330. package/theme-style/src/transfer.scss +5 -5
  331. package/theme-style/src/tree.scss +2 -5
  332. package/theme-style/src/upload.scss +11 -11
  333. package/theme-style/src/var.scss +1 -1
  334. package/theme-style/vft-alert.css +1 -1
  335. package/theme-style/vft-autocomplete.css +1 -1
  336. package/theme-style/vft-breadcrumb.css +1 -1
  337. package/theme-style/vft-calendar.css +1 -1
  338. package/theme-style/vft-card.css +1 -1
  339. package/theme-style/vft-carousel.css +1 -1
  340. package/theme-style/vft-cascader.css +1 -1
  341. package/theme-style/vft-check-tag.css +1 -1
  342. package/theme-style/vft-checkbox.css +1 -1
  343. package/theme-style/vft-color-picker.css +1 -1
  344. package/theme-style/vft-date-picker.css +1 -1
  345. package/theme-style/vft-date-time-select.css +1 -1
  346. package/theme-style/vft-descriptions-item.css +1 -1
  347. package/theme-style/vft-descriptions.css +1 -1
  348. package/theme-style/vft-header-layout.css +1 -1
  349. package/theme-style/vft-horizontal-menu.css +1 -1
  350. package/theme-style/vft-image-viewer.css +1 -1
  351. package/theme-style/vft-input-number.css +1 -1
  352. package/theme-style/vft-menu.css +1 -1
  353. package/theme-style/vft-popconfirm.css +1 -0
  354. package/theme-style/vft-popper.css +1 -1
  355. package/theme-style/vft-progress.css +1 -1
  356. package/theme-style/vft-reset.css +1 -1
  357. package/theme-style/vft-result.css +1 -1
  358. package/theme-style/vft-select-dropdown-v2.css +1 -1
  359. package/theme-style/vft-select-dropdown.css +1 -1
  360. package/theme-style/vft-select-v2.css +1 -1
  361. package/theme-style/vft-select.css +1 -1
  362. package/theme-style/vft-skeleton-item.css +1 -0
  363. package/theme-style/vft-skeleton.css +1 -0
  364. package/theme-style/vft-step.css +1 -1
  365. package/theme-style/vft-tabs.css +1 -1
  366. package/theme-style/vft-time-picker.css +1 -1
  367. package/theme-style/vft-time-select.css +1 -1
  368. package/theme-style/vft-timeline-item.css +1 -1
  369. package/theme-style/vft-transfer.css +1 -1
  370. package/theme-style/vft-tree.css +1 -1
  371. package/theme-style/vft-upload.css +1 -1
  372. package/theme-style/vft-var.css +1 -1
  373. package/web-types.json +1 -1
@@ -0,0 +1,414 @@
1
+ import { reactive as Qe, ref as g, shallowRef as oe, computed as c, watch as x, nextTick as f, triggerRef as w, toRaw as Re } from "vue";
2
+ import { toRawType as R } from "@vue/shared";
3
+ import { isFunction as S, isClient as We, isNumber as $e, isObject as ue, isString as Be, isKorean as ke } from "@vft/utils";
4
+ import { isEqual as re, get as C, debounce as te } from "lodash";
5
+ import { EVENT_CODE as ce } from "../../constants/aria.js";
6
+ import { UPDATE_MODEL_EVENT as T, CHANGE_EVENT as _e } from "../../constants/event.js";
7
+ import { debugWarn as je } from "../../utils/error.js";
8
+ import "@vueuse/core";
9
+ import { getComponentSize as Ue } from "../../utils/helper.js";
10
+ import "../../utils/ns-cover.js";
11
+ import { scrollIntoView as Ge } from "../../utils/dom/scroll.js";
12
+ import { useNamespace as Je } from "../../hooks/use-namespace/index.js";
13
+ import "@popperjs/core";
14
+ import "../../hooks/use-z-index/index.js";
15
+ import "../form/index.js";
16
+ import { useFormItem as Xe } from "../form/hooks/use-form-item.js";
17
+ import { useFormSize as Ye } from "../form/hooks/use-form-common-props.js";
18
+ function sl(n) {
19
+ return Qe({
20
+ options: /* @__PURE__ */ new Map(),
21
+ cachedOptions: /* @__PURE__ */ new Map(),
22
+ createdLabel: null,
23
+ createdSelected: !1,
24
+ selected: n.multiple ? [] : {},
25
+ inputLength: 20,
26
+ inputWidth: 0,
27
+ optionsCount: 0,
28
+ filteredOptionsCount: 0,
29
+ visible: !1,
30
+ softFocus: !1,
31
+ selectedLabel: "",
32
+ hoverIndex: -1,
33
+ query: "",
34
+ previousQuery: null,
35
+ inputHovering: !1,
36
+ cachedPlaceHolder: "",
37
+ currentPlaceholder: "请选择",
38
+ menuVisibleOnFocus: !1,
39
+ isOnComposition: !1,
40
+ isSilentBlur: !1,
41
+ prefixWidth: 11,
42
+ tagInMultiLine: !1,
43
+ mouseEnter: !1
44
+ });
45
+ }
46
+ const Ol = (n, e, v) => {
47
+ const W = Je("select"), O = g(null), a = g(null), z = g(null), h = g(null), $ = g(null), B = g(null), k = g(null), F = g(-1), V = oe({ query: "" }), H = oe(""), _ = g([]);
48
+ let E = 0;
49
+ const { form: b, formItem: D } = Xe(), ae = c(
50
+ () => !n.filterable || n.multiple || !e.visible
51
+ ), P = c(() => n.disabled || (b == null ? void 0 : b.disabled)), de = c(() => {
52
+ const l = n.multiple ? Array.isArray(n.modelValue) && n.modelValue.length > 0 : n.modelValue !== void 0 && n.modelValue !== null && n.modelValue !== "";
53
+ return n.clearable && !P.value && e.inputHovering && l;
54
+ }), j = c(
55
+ () => n.remote && n.filterable && !n.remoteShowSuffix ? "" : n.suffixIcon
56
+ ), fe = c(
57
+ () => W.is(
58
+ "reverse",
59
+ j.value && e.visible && n.suffixTransition
60
+ )
61
+ ), U = c(() => n.remote ? 300 : 0), p = c(() => n.loading ? n.loadingText || "loading..." : n.remote && e.query === "" && e.options.size === 0 ? !1 : n.filterable && e.query && e.options.size > 0 && e.filteredOptionsCount === 0 ? n.noMatchText || "没有相关的数据" : e.options.size === 0 ? n.noDataText || "无数据" : null), d = c(() => {
62
+ const l = Array.from(e.options.values()), i = [];
63
+ return _.value.forEach((o) => {
64
+ const u = l.findIndex((t) => t.currentLabel === o);
65
+ u > -1 && i.push(l[u]);
66
+ }), i.length ? i : l;
67
+ }), ve = c(
68
+ () => Array.from(e.cachedOptions.values())
69
+ ), he = c(() => {
70
+ const l = d.value.filter((i) => !i.created).some((i) => i.currentLabel === e.query);
71
+ return n.filterable && n.allowCreate && e.query !== "" && !l;
72
+ }), q = Ye(), me = c(
73
+ () => ["small"].includes(q.value) ? "small" : "default"
74
+ ), be = c({
75
+ get() {
76
+ return e.visible && p.value !== !1;
77
+ },
78
+ set(l) {
79
+ e.visible = l;
80
+ }
81
+ });
82
+ x(
83
+ [() => P.value, () => q.value, () => b == null ? void 0 : b.size],
84
+ () => {
85
+ f(() => {
86
+ y();
87
+ });
88
+ }
89
+ ), x(
90
+ () => n.placeholder,
91
+ (l) => {
92
+ e.cachedPlaceHolder = e.currentPlaceholder = l;
93
+ }
94
+ ), x(
95
+ () => n.modelValue,
96
+ (l, i) => {
97
+ n.multiple && (y(), l && l.length > 0 || a.value && e.query !== "" ? e.currentPlaceholder = "" : e.currentPlaceholder = e.cachedPlaceHolder, n.filterable && !n.reserveKeyword && (e.query = "", L(e.query))), K(), n.filterable && !n.multiple && (e.inputLength = 20), !re(l, i) && n.validateEvent && (D == null || D.validate("change").catch((o) => je(o)));
98
+ },
99
+ {
100
+ flush: "post",
101
+ deep: !0
102
+ }
103
+ ), x(
104
+ () => e.visible,
105
+ (l) => {
106
+ var i, o, u, t, r;
107
+ l ? ((o = (i = h.value) == null ? void 0 : i.updatePopper) == null || o.call(i), n.filterable && (e.filteredOptionsCount = e.optionsCount, e.query = n.remote ? "" : e.selectedLabel, (t = (u = z.value) == null ? void 0 : u.focus) == null || t.call(u), n.multiple ? (r = a.value) == null || r.focus() : e.selectedLabel && (e.currentPlaceholder = `${e.selectedLabel}`, e.selectedLabel = ""), L(e.query), !n.multiple && !n.remote && (V.value.query = "", w(V), w(H)))) : (n.filterable && (S(n.filterMethod) && n.filterMethod(""), S(n.remoteMethod) && n.remoteMethod("")), a.value && a.value.blur(), e.query = "", e.previousQuery = null, e.selectedLabel = "", e.inputLength = 20, e.menuVisibleOnFocus = !1, ge(), f(() => {
108
+ a.value && a.value.value === "" && e.selected.length === 0 && (e.currentPlaceholder = e.cachedPlaceHolder);
109
+ }), n.multiple || (e.selected && (n.filterable && n.allowCreate && e.createdSelected && e.createdLabel ? e.selectedLabel = e.createdLabel : e.selectedLabel = e.selected.currentLabel, n.filterable && (e.query = e.selectedLabel)), n.filterable && (e.currentPlaceholder = e.cachedPlaceHolder))), v.emit("visible-change", l);
110
+ }
111
+ ), x(
112
+ // fix `Array.prototype.push/splice/..` cannot trigger non-deep watcher
113
+ // https://github.com/vuejs/vue-next/issues/2116
114
+ () => e.options.entries(),
115
+ () => {
116
+ var i, o, u;
117
+ if (!We)
118
+ return;
119
+ (o = (i = h.value) == null ? void 0 : i.updatePopper) == null || o.call(i), n.multiple && y();
120
+ const l = ((u = B.value) == null ? void 0 : u.querySelectorAll("input")) || [];
121
+ Array.from(l).includes(document.activeElement) || K(), n.defaultFirstOption && (n.filterable || n.remote) && e.filteredOptionsCount && J();
122
+ },
123
+ {
124
+ flush: "post"
125
+ }
126
+ ), x(
127
+ () => e.hoverIndex,
128
+ (l) => {
129
+ $e(l) && l > -1 ? F.value = d.value[l] || {} : F.value = {}, d.value.forEach((i) => {
130
+ i.hover = F.value === i;
131
+ });
132
+ }
133
+ );
134
+ const y = () => {
135
+ f(() => {
136
+ var r, s;
137
+ if (!O.value)
138
+ return;
139
+ const l = O.value.$el.querySelector(
140
+ "input"
141
+ );
142
+ E = E || (l.clientHeight > 0 ? l.clientHeight + 2 : 0);
143
+ const i = $.value, o = Ue(q.value || (b == null ? void 0 : b.size)), u = q.value || o === E || E <= 0 ? o : E;
144
+ !(l.offsetParent === null) && (l.style.height = `${(e.selected.length === 0 ? u : Math.max(
145
+ i ? i.clientHeight + (i.clientHeight > u ? 6 : 0) : 0,
146
+ u
147
+ )) - 2}px`), e.tagInMultiLine = Number.parseFloat(l.style.height) >= u, e.visible && p.value !== !1 && ((s = (r = h.value) == null ? void 0 : r.updatePopper) == null || s.call(r));
148
+ });
149
+ }, L = async (l) => {
150
+ if (!(e.previousQuery === l || e.isOnComposition)) {
151
+ if (e.previousQuery === null && (S(n.filterMethod) || S(n.remoteMethod))) {
152
+ e.previousQuery = l;
153
+ return;
154
+ }
155
+ e.previousQuery = l, f(() => {
156
+ var i, o;
157
+ e.visible && ((o = (i = h.value) == null ? void 0 : i.updatePopper) == null || o.call(i));
158
+ }), e.hoverIndex = -1, n.multiple && n.filterable && f(() => {
159
+ const i = a.value.value.length * 15 + 20;
160
+ e.inputLength = n.collapseTags ? Math.min(50, i) : i, G(), y();
161
+ }), n.remote && S(n.remoteMethod) ? (e.hoverIndex = -1, n.remoteMethod(l)) : S(n.filterMethod) ? (n.filterMethod(l), w(H)) : (e.filteredOptionsCount = e.optionsCount, V.value.query = l, w(V), w(H)), n.defaultFirstOption && (n.filterable || n.remote) && e.filteredOptionsCount && (await f(), J());
162
+ }
163
+ }, G = () => {
164
+ e.currentPlaceholder !== "" && (e.currentPlaceholder = a.value.value ? "" : e.cachedPlaceHolder);
165
+ }, J = () => {
166
+ const l = d.value.filter(
167
+ (u) => u.visible && !u.disabled && !u.states.groupDisabled
168
+ ), i = l.find((u) => u.created), o = l[0];
169
+ e.hoverIndex = ee(
170
+ d.value,
171
+ i || o
172
+ );
173
+ }, K = () => {
174
+ var i;
175
+ if (n.multiple)
176
+ e.selectedLabel = "";
177
+ else {
178
+ const o = X(n.modelValue);
179
+ (i = o.props) != null && i.created ? (e.createdLabel = o.props.value, e.createdSelected = !0) : e.createdSelected = !1, e.selectedLabel = o.currentLabel, e.selected = o, n.filterable && (e.query = e.selectedLabel);
180
+ return;
181
+ }
182
+ const l = [];
183
+ Array.isArray(n.modelValue) && n.modelValue.forEach((o) => {
184
+ l.push(X(o));
185
+ }), e.selected = l, f(() => {
186
+ y();
187
+ });
188
+ }, X = (l) => {
189
+ let i;
190
+ const o = R(l).toLowerCase() === "object", u = R(l).toLowerCase() === "null", t = R(l).toLowerCase() === "undefined";
191
+ for (let I = e.cachedOptions.size - 1; I >= 0; I--) {
192
+ const m = ve.value[I];
193
+ if (o ? C(m.value, n.valueKey) === C(l, n.valueKey) : m.value === l) {
194
+ i = {
195
+ value: l,
196
+ currentLabel: m.currentLabel,
197
+ isDisabled: m.isDisabled
198
+ };
199
+ break;
200
+ }
201
+ }
202
+ if (i)
203
+ return i;
204
+ const r = o ? l.label : !u && !t ? l : "", s = {
205
+ value: l,
206
+ currentLabel: r
207
+ };
208
+ return n.multiple && (s.hitState = !1), s;
209
+ }, ge = () => {
210
+ setTimeout(() => {
211
+ const l = n.valueKey;
212
+ n.multiple ? e.selected.length > 0 ? e.hoverIndex = Math.min.apply(
213
+ null,
214
+ e.selected.map((i) => d.value.findIndex((o) => C(o, l) === C(i, l)))
215
+ ) : e.hoverIndex = -1 : e.hoverIndex = d.value.findIndex((i) => Q(i) === Q(e.selected));
216
+ }, 300);
217
+ }, ye = () => {
218
+ var l, i;
219
+ se(), (i = (l = h.value) == null ? void 0 : l.updatePopper) == null || i.call(l), n.multiple && y();
220
+ }, se = () => {
221
+ var l;
222
+ e.inputWidth = (l = O.value) == null ? void 0 : l.$el.offsetWidth;
223
+ }, Oe = () => {
224
+ n.filterable && e.query !== e.selectedLabel && (e.query = e.selectedLabel, L(e.query));
225
+ }, Ce = te(() => {
226
+ Oe();
227
+ }, U.value), Le = te((l) => {
228
+ L(l.target.value);
229
+ }, U.value), M = (l) => {
230
+ re(n.modelValue, l) || v.emit(_e, l);
231
+ }, Ie = (l) => {
232
+ if (l.code !== ce.delete) {
233
+ if (l.target.value.length <= 0 && !N()) {
234
+ const i = n.modelValue.slice();
235
+ i.pop(), v.emit(T, i), M(i);
236
+ }
237
+ l.target.value.length === 1 && n.modelValue.length === 0 && (e.currentPlaceholder = e.cachedPlaceHolder);
238
+ }
239
+ }, xe = (l, i) => {
240
+ const o = e.selected.indexOf(i);
241
+ if (o > -1 && !P.value) {
242
+ const u = n.modelValue.slice();
243
+ u.splice(o, 1), v.emit(T, u), M(u), v.emit("remove-tag", i.value);
244
+ }
245
+ l.stopPropagation();
246
+ }, Y = (l) => {
247
+ l.stopPropagation();
248
+ const i = n.multiple ? [] : "";
249
+ if (!Be(i))
250
+ for (const o of e.selected)
251
+ o.isDisabled && i.push(o.value);
252
+ v.emit(T, i), M(i), e.hoverIndex = -1, e.visible = !1, v.emit("clear");
253
+ }, Z = (l, i) => {
254
+ var o;
255
+ if (n.multiple) {
256
+ const u = (n.modelValue || []).slice(), t = ee(u, l.value);
257
+ t > -1 ? u.splice(t, 1) : (n.multipleLimit <= 0 || u.length < n.multipleLimit) && u.push(l.value), v.emit(T, u), M(u), l.created && (e.query = "", L(""), e.inputLength = 20), n.filterable && ((o = a.value) == null || o.focus());
258
+ } else
259
+ v.emit(T, l.value), M(l.value), e.visible = !1;
260
+ e.isSilentBlur = i, Se(), !e.visible && f(() => {
261
+ A(l);
262
+ });
263
+ }, ee = (l = [], i) => {
264
+ if (!ue(i))
265
+ return l.indexOf(i);
266
+ const o = n.valueKey;
267
+ let u = -1;
268
+ return l.some((t, r) => Re(C(t, o)) === C(i, o) ? (u = r, !0) : !1), u;
269
+ }, Se = () => {
270
+ e.softFocus = !0;
271
+ const l = a.value || O.value;
272
+ l && (l == null || l.focus());
273
+ }, A = (l) => {
274
+ var u, t, r, s, I;
275
+ const i = Array.isArray(l) ? l[0] : l;
276
+ let o = null;
277
+ if (i != null && i.value) {
278
+ const m = d.value.filter(
279
+ (ne) => ne.value === i.value
280
+ );
281
+ m.length > 0 && (o = m[0].$el);
282
+ }
283
+ if (h.value && o) {
284
+ const m = (s = (r = (t = (u = h.value) == null ? void 0 : u.popperRef) == null ? void 0 : t.contentRef) == null ? void 0 : r.querySelector) == null ? void 0 : s.call(
285
+ r,
286
+ `.${W.be("dropdown", "wrap")}`
287
+ );
288
+ m && Ge(m, o);
289
+ }
290
+ (I = k.value) == null || I.handleScroll();
291
+ }, Ve = (l) => {
292
+ e.optionsCount++, e.filteredOptionsCount++, e.options.set(l.value, l), e.cachedOptions.set(l.value, l);
293
+ }, Ee = (l, i) => {
294
+ e.options.get(l) === i && (e.optionsCount--, e.filteredOptionsCount--, e.options.delete(l));
295
+ }, Pe = (l) => {
296
+ l.code !== ce.backspace && N(!1), e.inputLength = a.value.value.length * 15 + 20, y();
297
+ }, N = (l) => {
298
+ if (!Array.isArray(e.selected))
299
+ return;
300
+ const i = e.selected[e.selected.length - 1];
301
+ if (i)
302
+ return l === !0 || l === !1 ? (i.hitState = l, l) : (i.hitState = !i.hitState, i.hitState);
303
+ }, qe = (l) => {
304
+ const i = l.target.value;
305
+ if (l.type === "compositionend")
306
+ e.isOnComposition = !1, f(() => L(i));
307
+ else {
308
+ const o = i[i.length - 1] || "";
309
+ e.isOnComposition = !ke(o);
310
+ }
311
+ }, Me = () => {
312
+ f(() => A(e.selected));
313
+ }, we = (l) => {
314
+ e.softFocus ? e.softFocus = !1 : ((n.automaticDropdown || n.filterable) && (n.filterable && !e.visible && (e.menuVisibleOnFocus = !0), e.visible = !0), v.emit("focus", l));
315
+ }, Te = () => {
316
+ var l, i, o;
317
+ e.visible = !1, (l = O.value) == null || l.blur(), (o = (i = z.value) == null ? void 0 : i.blur) == null || o.call(i);
318
+ }, Fe = (l) => {
319
+ f(() => {
320
+ e.isSilentBlur ? e.isSilentBlur = !1 : v.emit("blur", l);
321
+ }), e.softFocus = !1;
322
+ }, He = (l) => {
323
+ Y(l);
324
+ }, Ae = () => {
325
+ e.visible = !1;
326
+ }, ze = (l) => {
327
+ e.visible && (l.preventDefault(), l.stopPropagation(), e.visible = !1);
328
+ }, le = (l) => {
329
+ var i;
330
+ l && !e.mouseEnter || P.value || (e.menuVisibleOnFocus ? e.menuVisibleOnFocus = !1 : (!h.value || !h.value.isFocusInsideContent()) && (e.visible = !e.visible), e.visible && ((i = a.value || O.value) == null || i.focus()));
331
+ }, De = () => {
332
+ e.visible ? d.value[e.hoverIndex] && Z(d.value[e.hoverIndex], void 0) : le();
333
+ }, Q = (l) => ue(l.value) ? C(l.value, n.valueKey) : l.value, pe = c(
334
+ () => d.value.filter((l) => l.visible).every((l) => l.disabled)
335
+ ), Ke = c(
336
+ () => e.selected.slice(0, n.maxCollapseTags)
337
+ ), Ne = c(
338
+ () => e.selected.slice(n.maxCollapseTags)
339
+ ), ie = (l) => {
340
+ if (!e.visible) {
341
+ e.visible = !0;
342
+ return;
343
+ }
344
+ if (!(e.options.size === 0 || e.filteredOptionsCount === 0) && !e.isOnComposition && !pe.value) {
345
+ l === "next" ? (e.hoverIndex++, e.hoverIndex === e.options.size && (e.hoverIndex = 0)) : l === "prev" && (e.hoverIndex--, e.hoverIndex < 0 && (e.hoverIndex = e.options.size - 1));
346
+ const i = d.value[e.hoverIndex];
347
+ (i.disabled === !0 || i.states.groupDisabled === !0 || !i.visible) && ie(l), f(() => A(F.value));
348
+ }
349
+ };
350
+ return {
351
+ optionList: _,
352
+ optionsArray: d,
353
+ selectSize: q,
354
+ handleResize: ye,
355
+ debouncedOnInputChange: Ce,
356
+ debouncedQueryChange: Le,
357
+ deletePrevTag: Ie,
358
+ deleteTag: xe,
359
+ deleteSelected: Y,
360
+ handleOptionSelect: Z,
361
+ scrollToOption: A,
362
+ readonly: ae,
363
+ resetInputHeight: y,
364
+ showClose: de,
365
+ iconComponent: j,
366
+ iconReverse: fe,
367
+ showNewOption: he,
368
+ collapseTagSize: me,
369
+ setSelected: K,
370
+ managePlaceholder: G,
371
+ selectDisabled: P,
372
+ emptyText: p,
373
+ toggleLastOptionHitState: N,
374
+ resetInputState: Pe,
375
+ handleComposition: qe,
376
+ onOptionCreate: Ve,
377
+ onOptionDestroy: Ee,
378
+ handleMenuEnter: Me,
379
+ handleFocus: we,
380
+ blur: Te,
381
+ handleBlur: Fe,
382
+ handleClearClick: He,
383
+ handleClose: Ae,
384
+ handleKeydownEscape: ze,
385
+ toggleMenu: le,
386
+ selectOption: De,
387
+ getValueKey: Q,
388
+ navigateOptions: ie,
389
+ dropMenuVisible: be,
390
+ queryChange: V,
391
+ groupQueryChange: H,
392
+ showTagList: Ke,
393
+ collapseTagList: Ne,
394
+ // DOM ref
395
+ reference: O,
396
+ input: a,
397
+ iOSInput: z,
398
+ tooltipRef: h,
399
+ tags: $,
400
+ selectWrapper: B,
401
+ scrollbar: k,
402
+ // Mouser Event
403
+ handleMouseEnter: () => {
404
+ e.mouseEnter = !0;
405
+ },
406
+ handleMouseLeave: () => {
407
+ e.mouseEnter = !1;
408
+ }
409
+ };
410
+ };
411
+ export {
412
+ Ol as useSelect,
413
+ sl as useSelectStates
414
+ };
@@ -10,8 +10,8 @@ import { useNamespace as X } from "../../hooks/use-namespace/index.js";
10
10
  import "@popperjs/core";
11
11
  import "../../hooks/use-z-index/index.js";
12
12
  import "@vueuse/core";
13
- import "../../utils/ns-cover.js";
14
13
  import { EVENT_CODE as Y } from "../../constants/aria.js";
14
+ import "../../utils/ns-cover.js";
15
15
  import Z from "./group-item.vue.js";
16
16
  import ee from "./option-item.vue.js";
17
17
  import { selectV2InjectionKey as te } from "./token.js";