vue-devui 1.0.0-alpha.0 → 1.0.0-alpha.11

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 (425) hide show
  1. package/README.md +140 -38
  2. package/alert/index.d.ts +7 -0
  3. package/alert/index.es.js +204 -1
  4. package/alert/index.umd.js +1 -1
  5. package/alert/style.css +1 -1
  6. package/auto-complete/index.d.ts +7 -0
  7. package/auto-complete/index.es.js +9051 -0
  8. package/auto-complete/index.umd.js +40 -0
  9. package/auto-complete/package.json +7 -0
  10. package/auto-complete/style.css +1 -0
  11. package/avatar/index.d.ts +7 -0
  12. package/avatar/index.es.js +308 -1
  13. package/avatar/index.umd.js +1 -1
  14. package/avatar/style.css +1 -1
  15. package/badge/index.d.ts +7 -0
  16. package/badge/index.es.js +120 -1
  17. package/badge/index.umd.js +1 -1
  18. package/badge/style.css +1 -1
  19. package/button/index.d.ts +7 -0
  20. package/button/index.es.js +5964 -1
  21. package/button/index.umd.js +27 -1
  22. package/button/style.css +1 -1
  23. package/card/index.d.ts +7 -0
  24. package/card/index.es.js +89 -1
  25. package/card/index.umd.js +1 -1
  26. package/card/style.css +1 -1
  27. package/checkbox/index.d.ts +7 -0
  28. package/checkbox/index.es.js +8207 -1
  29. package/checkbox/index.umd.js +38 -1
  30. package/checkbox/style.css +1 -1
  31. package/collapse/index.d.ts +7 -0
  32. package/collapse/index.es.js +195 -0
  33. package/collapse/index.umd.js +1 -0
  34. package/{carousel → collapse}/package.json +1 -1
  35. package/collapse/style.css +1 -0
  36. package/countdown/index.d.ts +7 -0
  37. package/countdown/index.es.js +217 -0
  38. package/countdown/index.umd.js +1 -0
  39. package/{accordion → countdown}/package.json +1 -1
  40. package/countdown/style.css +1 -0
  41. package/date-picker-pro/index.d.ts +7 -0
  42. package/date-picker-pro/index.es.js +12031 -0
  43. package/date-picker-pro/index.umd.js +38 -0
  44. package/date-picker-pro/package.json +7 -0
  45. package/date-picker-pro/style.css +1 -0
  46. package/drawer/index.d.ts +7 -0
  47. package/drawer/index.es.js +248 -0
  48. package/drawer/index.umd.js +1 -0
  49. package/{anchor → drawer}/package.json +1 -1
  50. package/drawer/style.css +1 -0
  51. package/dropdown/index.d.ts +7 -0
  52. package/dropdown/index.es.js +743 -0
  53. package/dropdown/index.umd.js +1 -0
  54. package/dropdown/package.json +7 -0
  55. package/dropdown/style.css +1 -0
  56. package/editable-select/index.d.ts +7 -0
  57. package/editable-select/index.es.js +991 -0
  58. package/editable-select/index.umd.js +1 -0
  59. package/editable-select/package.json +7 -0
  60. package/editable-select/style.css +1 -0
  61. package/form/index.d.ts +7 -0
  62. package/form/index.es.js +7751 -0
  63. package/form/index.umd.js +38 -0
  64. package/{theme → form}/package.json +1 -1
  65. package/form/style.css +1 -0
  66. package/fullscreen/index.d.ts +7 -0
  67. package/fullscreen/index.es.js +166 -0
  68. package/fullscreen/index.umd.js +1 -0
  69. package/fullscreen/package.json +7 -0
  70. package/fullscreen/style.css +1 -0
  71. package/grid/index.d.ts +7 -0
  72. package/grid/index.es.js +271 -0
  73. package/grid/index.umd.js +1 -0
  74. package/{toast → grid}/package.json +1 -1
  75. package/grid/style.css +1 -0
  76. package/icon/index.d.ts +7 -0
  77. package/icon/index.es.js +218 -1
  78. package/icon/index.umd.js +1 -1
  79. package/icon/style.css +1 -0
  80. package/image-preview/index.d.ts +7 -0
  81. package/image-preview/index.es.js +511 -1
  82. package/image-preview/index.umd.js +1 -1
  83. package/image-preview/style.css +1 -1
  84. package/index.d.ts +7 -0
  85. package/input/index.d.ts +7 -0
  86. package/input/index.es.js +8311 -1
  87. package/input/index.umd.js +38 -1
  88. package/input/style.css +1 -1
  89. package/input-number/index.d.ts +7 -0
  90. package/input-number/index.es.js +308 -0
  91. package/input-number/index.umd.js +1 -0
  92. package/input-number/package.json +7 -0
  93. package/input-number/style.css +1 -0
  94. package/layout/index.d.ts +7 -0
  95. package/layout/index.es.js +115 -0
  96. package/layout/index.umd.js +1 -0
  97. package/layout/package.json +7 -0
  98. package/layout/style.css +1 -0
  99. package/loading/index.d.ts +7 -0
  100. package/loading/index.es.js +272 -1
  101. package/loading/index.umd.js +1 -1
  102. package/loading/style.css +1 -1
  103. package/message/index.d.ts +7 -0
  104. package/message/index.es.js +534 -0
  105. package/message/index.umd.js +1 -0
  106. package/message/package.json +7 -0
  107. package/message/style.css +1 -0
  108. package/modal/index.d.ts +7 -0
  109. package/modal/index.es.js +741 -0
  110. package/modal/index.umd.js +1 -0
  111. package/modal/package.json +7 -0
  112. package/modal/style.css +1 -0
  113. package/notification/index.d.ts +7 -0
  114. package/notification/index.es.js +528 -0
  115. package/notification/index.umd.js +1 -0
  116. package/notification/package.json +7 -0
  117. package/notification/style.css +1 -0
  118. package/nuxt/components/Alert.js +3 -0
  119. package/nuxt/components/Aside.js +3 -0
  120. package/nuxt/components/AutoComplete.js +3 -0
  121. package/nuxt/components/Avatar.js +3 -0
  122. package/nuxt/components/Badge.js +3 -0
  123. package/nuxt/components/Button.js +3 -0
  124. package/nuxt/components/ButtonGroup.js +3 -0
  125. package/nuxt/components/Card.js +3 -0
  126. package/nuxt/components/Checkbox.js +3 -0
  127. package/nuxt/components/CheckboxButton.js +3 -0
  128. package/nuxt/components/CheckboxGroup.js +3 -0
  129. package/nuxt/components/Col.js +3 -0
  130. package/nuxt/components/Collapse.js +3 -0
  131. package/nuxt/components/CollapseItem.js +3 -0
  132. package/nuxt/components/Column.js +3 -0
  133. package/nuxt/components/Content.js +3 -0
  134. package/nuxt/components/Countdown.js +3 -0
  135. package/nuxt/components/DRangeDatePickerPro.js +3 -0
  136. package/nuxt/components/DatePickerPro.js +3 -0
  137. package/nuxt/components/Drawer.js +3 -0
  138. package/nuxt/components/DrawerService.js +3 -0
  139. package/nuxt/components/Dropdown.js +3 -0
  140. package/nuxt/components/DropdownMenu.js +3 -0
  141. package/nuxt/components/DropdownPropsKey.js +3 -0
  142. package/nuxt/components/EditableSelect.js +3 -0
  143. package/nuxt/components/FORM_ITEM_TOKEN.js +3 -0
  144. package/nuxt/components/FORM_TOKEN.js +3 -0
  145. package/nuxt/components/FixedOverlay.js +3 -0
  146. package/nuxt/components/FlexibleOverlay.js +3 -0
  147. package/nuxt/components/Footer.js +3 -0
  148. package/nuxt/components/Form.js +3 -0
  149. package/nuxt/components/FormItem.js +3 -0
  150. package/nuxt/components/FormOperation.js +3 -0
  151. package/nuxt/components/Fullscreen.js +3 -0
  152. package/nuxt/components/Header.js +3 -0
  153. package/nuxt/components/IFileOptions.js +3 -0
  154. package/nuxt/components/IUploadOptions.js +3 -0
  155. package/nuxt/components/Icon.js +3 -0
  156. package/nuxt/components/IconGroup.js +3 -0
  157. package/nuxt/components/ImagePreviewService.js +3 -0
  158. package/nuxt/components/Input.js +3 -0
  159. package/nuxt/components/InputNumber.js +3 -0
  160. package/nuxt/components/LABEL_DATA.js +3 -0
  161. package/nuxt/components/Layout.js +3 -0
  162. package/nuxt/components/Loading.js +3 -0
  163. package/nuxt/components/LoadingOptions.js +3 -0
  164. package/nuxt/components/LoadingService.js +3 -0
  165. package/nuxt/components/Message.js +3 -0
  166. package/nuxt/components/Modal.js +3 -0
  167. package/nuxt/components/Notification.js +3 -0
  168. package/nuxt/components/NotificationService.js +3 -0
  169. package/nuxt/components/Option.js +3 -0
  170. package/nuxt/components/OptionGroup.js +3 -0
  171. package/nuxt/components/Pagination.js +3 -0
  172. package/nuxt/components/Panel.js +3 -0
  173. package/nuxt/components/PanelBody.js +3 -0
  174. package/nuxt/components/PanelFooter.js +3 -0
  175. package/nuxt/components/PanelHeader.js +3 -0
  176. package/nuxt/components/Popover.js +3 -0
  177. package/nuxt/components/Progress.js +3 -0
  178. package/nuxt/components/Radio.js +3 -0
  179. package/nuxt/components/RadioButton.js +3 -0
  180. package/nuxt/components/RadioGroup.js +3 -0
  181. package/nuxt/components/Rate.js +3 -0
  182. package/nuxt/components/Result.js +3 -0
  183. package/nuxt/components/Row.js +3 -0
  184. package/nuxt/components/Search.js +3 -0
  185. package/nuxt/components/Select.js +3 -0
  186. package/nuxt/components/Skeleton.js +3 -0
  187. package/nuxt/components/SkeletonItem.js +3 -0
  188. package/nuxt/components/Slider.js +3 -0
  189. package/nuxt/components/Splitter.js +3 -0
  190. package/nuxt/components/Statistic.js +3 -0
  191. package/nuxt/components/Status.js +3 -0
  192. package/nuxt/components/Step.js +3 -0
  193. package/nuxt/components/Steps.js +3 -0
  194. package/nuxt/components/Switch.js +3 -0
  195. package/nuxt/components/TABLE_TOKEN.js +3 -0
  196. package/nuxt/components/Tab.js +3 -0
  197. package/nuxt/components/Table.js +3 -0
  198. package/nuxt/components/Tabs.js +3 -0
  199. package/nuxt/components/Tag.js +3 -0
  200. package/nuxt/components/Textarea.js +3 -0
  201. package/nuxt/components/TimePicker.js +3 -0
  202. package/nuxt/components/TimeSelect.js +3 -0
  203. package/nuxt/components/Timeline.js +3 -0
  204. package/nuxt/components/TimelineItem.js +3 -0
  205. package/nuxt/components/Tooltip.js +3 -0
  206. package/nuxt/components/Tree.js +3 -0
  207. package/nuxt/components/Upload.js +3 -0
  208. package/nuxt/components/UploadStatus.js +3 -0
  209. package/nuxt/components/alertProps.js +3 -0
  210. package/nuxt/components/animationInjectionKey.js +3 -0
  211. package/nuxt/components/autoCompleteProps.js +3 -0
  212. package/nuxt/components/avatarProps.js +3 -0
  213. package/nuxt/components/badgeProps.js +3 -0
  214. package/nuxt/components/buttonGroupInjectionKey.js +3 -0
  215. package/nuxt/components/buttonGroupProps.js +3 -0
  216. package/nuxt/components/buttonProps.js +3 -0
  217. package/nuxt/components/cardProps.js +3 -0
  218. package/nuxt/components/checkboxGroupInjectionKey.js +3 -0
  219. package/nuxt/components/checkboxGroupProps.js +3 -0
  220. package/nuxt/components/checkboxProps.js +3 -0
  221. package/nuxt/components/colProps.js +3 -0
  222. package/nuxt/components/colPropsBaseClass.js +3 -0
  223. package/nuxt/components/colPropsBaseStyle.js +3 -0
  224. package/nuxt/components/collapseItemProps.js +3 -0
  225. package/nuxt/components/collapseProps.js +3 -0
  226. package/nuxt/components/countdownProps.js +3 -0
  227. package/nuxt/components/datePickerProCommonProps.js +3 -0
  228. package/nuxt/components/datePickerProPanelProps.js +3 -0
  229. package/nuxt/components/datePickerProProps.js +3 -0
  230. package/nuxt/components/dropdownMenuProps.js +3 -0
  231. package/nuxt/components/editableSelectProps.js +3 -0
  232. package/nuxt/components/fixedOverlayProps.js +3 -0
  233. package/nuxt/components/flexibleOverlayProps.js +3 -0
  234. package/nuxt/components/formItemProps.js +3 -0
  235. package/nuxt/components/formProps.js +3 -0
  236. package/nuxt/components/fullscreenProps.js +3 -0
  237. package/nuxt/components/iconProps.js +3 -0
  238. package/nuxt/components/imagePreviewProps.js +3 -0
  239. package/nuxt/components/inputProps.js +3 -0
  240. package/nuxt/components/loadingProps.js +3 -0
  241. package/nuxt/components/messageProps.js +3 -0
  242. package/nuxt/components/modalProps.js +3 -0
  243. package/nuxt/components/notificationProps.js +3 -0
  244. package/nuxt/components/paginationProps.js +3 -0
  245. package/nuxt/components/panelProps.js +3 -0
  246. package/nuxt/components/popoverProps.js +3 -0
  247. package/nuxt/components/progressProps.js +3 -0
  248. package/nuxt/components/rateProps.js +3 -0
  249. package/nuxt/components/resultProps.js +3 -0
  250. package/nuxt/components/roundInjectionKey.js +3 -0
  251. package/nuxt/components/rowProps.js +3 -0
  252. package/nuxt/components/screenSizes.js +3 -0
  253. package/nuxt/components/searchProps.js +3 -0
  254. package/nuxt/components/skeletonItemProps.js +3 -0
  255. package/nuxt/components/skeletonProps.js +3 -0
  256. package/nuxt/components/sliderProps.js +3 -0
  257. package/nuxt/components/splitterProps.js +3 -0
  258. package/nuxt/components/statisticProps.js +3 -0
  259. package/nuxt/components/stepProps.js +3 -0
  260. package/nuxt/components/stepsProps.js +3 -0
  261. package/nuxt/components/svgIconProps.js +3 -0
  262. package/nuxt/components/switchProps.js +3 -0
  263. package/nuxt/components/tableProps.js +3 -0
  264. package/nuxt/components/tabsProps.js +3 -0
  265. package/nuxt/components/tagProps.js +3 -0
  266. package/nuxt/components/textareaProps.js +3 -0
  267. package/nuxt/components/timeAxisProps.js +3 -0
  268. package/nuxt/components/timerPickerPanelProps.js +3 -0
  269. package/nuxt/components/tooltipProps.js +3 -0
  270. package/nuxt/components/treeProps.js +3 -0
  271. package/nuxt/components/uploadProps.js +3 -0
  272. package/nuxt/index.js +13 -0
  273. package/overlay/index.d.ts +7 -0
  274. package/overlay/index.es.js +293 -1
  275. package/overlay/index.umd.js +1 -1
  276. package/overlay/style.css +1 -1
  277. package/package.json +17 -78
  278. package/pagination/index.d.ts +7 -0
  279. package/pagination/index.es.js +820 -1
  280. package/pagination/index.umd.js +1 -1
  281. package/pagination/style.css +1 -1
  282. package/panel/index.d.ts +7 -0
  283. package/panel/index.es.js +218 -1
  284. package/panel/index.umd.js +1 -1
  285. package/panel/style.css +1 -1
  286. package/popover/index.d.ts +7 -0
  287. package/popover/index.es.js +6062 -0
  288. package/popover/index.umd.js +27 -0
  289. package/popover/package.json +7 -0
  290. package/popover/style.css +1 -0
  291. package/progress/index.d.ts +7 -0
  292. package/progress/index.es.js +207 -1
  293. package/progress/index.umd.js +3 -1
  294. package/progress/style.css +1 -1
  295. package/radio/index.d.ts +7 -0
  296. package/radio/index.es.js +8056 -1
  297. package/radio/index.umd.js +38 -1
  298. package/radio/style.css +1 -1
  299. package/rate/index.d.ts +7 -0
  300. package/rate/index.es.js +242 -1
  301. package/rate/index.umd.js +1 -1
  302. package/rate/style.css +1 -1
  303. package/result/index.d.ts +7 -0
  304. package/result/index.es.js +248 -0
  305. package/result/index.umd.js +1 -0
  306. package/result/package.json +7 -0
  307. package/result/style.css +1 -0
  308. package/ripple/index.d.ts +7 -0
  309. package/ripple/index.es.js +173 -0
  310. package/ripple/index.umd.js +1 -0
  311. package/ripple/package.json +7 -0
  312. package/search/index.d.ts +7 -0
  313. package/search/index.es.js +8504 -2
  314. package/search/index.umd.js +38 -10
  315. package/search/style.css +1 -1
  316. package/select/index.d.ts +7 -0
  317. package/select/index.es.js +9423 -1
  318. package/select/index.umd.js +38 -1
  319. package/select/style.css +1 -1
  320. package/skeleton/index.d.ts +7 -0
  321. package/skeleton/index.es.js +145 -0
  322. package/skeleton/index.umd.js +1 -0
  323. package/skeleton/package.json +7 -0
  324. package/skeleton/style.css +1 -0
  325. package/slider/index.d.ts +7 -0
  326. package/slider/index.es.js +203 -1
  327. package/slider/index.umd.js +1 -1
  328. package/slider/style.css +1 -1
  329. package/splitter/index.d.ts +7 -0
  330. package/splitter/index.es.js +6754 -0
  331. package/splitter/index.umd.js +27 -0
  332. package/splitter/package.json +7 -0
  333. package/splitter/style.css +1 -0
  334. package/statistic/index.d.ts +7 -0
  335. package/statistic/index.es.js +253 -0
  336. package/statistic/index.umd.js +1 -0
  337. package/{tag-input → statistic}/package.json +1 -1
  338. package/statistic/style.css +1 -0
  339. package/status/index.d.ts +7 -0
  340. package/status/index.es.js +63 -1
  341. package/status/index.umd.js +1 -1
  342. package/status/style.css +1 -1
  343. package/steps/index.d.ts +7 -0
  344. package/steps/index.es.js +386 -0
  345. package/steps/index.umd.js +1 -0
  346. package/steps/package.json +7 -0
  347. package/steps/style.css +1 -0
  348. package/style.css +1 -1
  349. package/switch/index.d.ts +7 -0
  350. package/switch/index.es.js +7852 -1
  351. package/switch/index.umd.js +38 -1
  352. package/switch/style.css +1 -1
  353. package/table/index.d.ts +7 -0
  354. package/table/index.es.js +11527 -0
  355. package/table/index.umd.js +38 -0
  356. package/table/package.json +7 -0
  357. package/table/style.css +1 -0
  358. package/tabs/index.d.ts +7 -0
  359. package/tabs/index.es.js +407 -1
  360. package/tabs/index.umd.js +1 -1
  361. package/tabs/style.css +1 -1
  362. package/tag/index.d.ts +7 -0
  363. package/tag/index.es.js +156 -0
  364. package/tag/index.umd.js +1 -0
  365. package/tag/package.json +7 -0
  366. package/tag/style.css +1 -0
  367. package/textarea/index.d.ts +7 -0
  368. package/textarea/index.es.js +7986 -0
  369. package/textarea/index.umd.js +46 -0
  370. package/textarea/package.json +7 -0
  371. package/textarea/style.css +1 -0
  372. package/time-picker/index.d.ts +7 -0
  373. package/time-picker/index.es.js +9556 -0
  374. package/time-picker/index.umd.js +38 -0
  375. package/{date-picker → time-picker}/package.json +1 -1
  376. package/time-picker/style.css +1 -0
  377. package/time-select/index.d.ts +7 -0
  378. package/time-select/index.es.js +9604 -0
  379. package/time-select/index.umd.js +38 -0
  380. package/time-select/package.json +7 -0
  381. package/time-select/style.css +1 -0
  382. package/timeline/index.d.ts +7 -0
  383. package/timeline/index.es.js +427 -0
  384. package/timeline/index.umd.js +1 -0
  385. package/timeline/package.json +7 -0
  386. package/timeline/style.css +1 -0
  387. package/tooltip/index.d.ts +7 -0
  388. package/tooltip/index.es.js +5900 -0
  389. package/tooltip/index.umd.js +27 -0
  390. package/tooltip/package.json +7 -0
  391. package/tooltip/style.css +1 -0
  392. package/tree/index.d.ts +7 -0
  393. package/tree/index.es.js +10336 -0
  394. package/tree/index.umd.js +38 -0
  395. package/tree/package.json +7 -0
  396. package/tree/style.css +1 -0
  397. package/upload/index.d.ts +7 -0
  398. package/upload/index.es.js +1398 -15
  399. package/upload/index.umd.js +1 -15
  400. package/upload/style.css +1 -1
  401. package/vue-devui.es.js +27443 -16
  402. package/vue-devui.umd.js +50 -24
  403. package/accordion/index.es.js +0 -1
  404. package/accordion/index.umd.js +0 -1
  405. package/accordion/style.css +0 -1
  406. package/anchor/index.es.js +0 -1
  407. package/anchor/index.umd.js +0 -1
  408. package/carousel/index.es.js +0 -1
  409. package/carousel/index.umd.js +0 -1
  410. package/carousel/style.css +0 -1
  411. package/date-picker/index.es.js +0 -1
  412. package/date-picker/index.umd.js +0 -1
  413. package/date-picker/style.css +0 -1
  414. package/quadrant-diagram/index.es.js +0 -10
  415. package/quadrant-diagram/index.umd.js +0 -10
  416. package/quadrant-diagram/package.json +0 -7
  417. package/quadrant-diagram/style.css +0 -1
  418. package/tag-input/index.es.js +0 -1
  419. package/tag-input/index.umd.js +0 -1
  420. package/tag-input/style.css +0 -1
  421. package/theme/index.es.js +0 -1
  422. package/theme/index.umd.js +0 -1
  423. package/toast/index.es.js +0 -1
  424. package/toast/index.umd.js +0 -1
  425. package/toast/style.css +0 -1
@@ -0,0 +1,743 @@
1
+ import { toRefs, watch, onMounted, onUnmounted, ref, computed, defineComponent, createVNode, Transition, mergeProps, nextTick, unref, Comment, Text, Fragment, h, inject, withDirectives, cloneVNode, provide, Teleport, vShow } from "vue";
2
+ import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
3
+ import { onClickOutside } from "@vueuse/core";
4
+ const dropdownProps = {
5
+ visible: {
6
+ type: Boolean,
7
+ default: false
8
+ },
9
+ trigger: {
10
+ type: String,
11
+ default: "click"
12
+ },
13
+ closeScope: {
14
+ type: String,
15
+ default: "all"
16
+ },
17
+ position: {
18
+ type: Array,
19
+ default: ["bottom"]
20
+ },
21
+ align: {
22
+ type: String,
23
+ default: null
24
+ },
25
+ offset: {
26
+ type: [Number, Object],
27
+ default: 4
28
+ },
29
+ shiftOffset: {
30
+ type: Number
31
+ },
32
+ closeOnMouseLeaveMenu: {
33
+ type: Boolean,
34
+ default: false
35
+ },
36
+ showAnimation: {
37
+ type: Boolean,
38
+ default: true
39
+ },
40
+ overlayClass: {
41
+ type: String,
42
+ default: ""
43
+ },
44
+ destroyOnHide: {
45
+ type: Boolean,
46
+ default: true
47
+ }
48
+ };
49
+ const POPPER_TRIGGER_TOKEN = Symbol("popper-trigger");
50
+ function getElement(element) {
51
+ if (element instanceof Element) {
52
+ return element;
53
+ }
54
+ if (element && typeof element === "object" && element.$el instanceof Element) {
55
+ return element.$el;
56
+ }
57
+ return null;
58
+ }
59
+ const dropdownMap = /* @__PURE__ */ new Map();
60
+ function subscribeEvent(dom, type, callback) {
61
+ dom == null ? void 0 : dom.addEventListener(type, callback);
62
+ return () => {
63
+ dom == null ? void 0 : dom.removeEventListener(type, callback);
64
+ };
65
+ }
66
+ const useDropdownEvent = ({
67
+ id,
68
+ isOpen,
69
+ origin,
70
+ dropdownRef,
71
+ props,
72
+ emit
73
+ }) => {
74
+ let overlayEnter = false;
75
+ let originEnter = false;
76
+ const { trigger, closeScope, closeOnMouseLeaveMenu } = toRefs(props);
77
+ const toggle = (status) => {
78
+ isOpen.value = status;
79
+ emit("toggle", isOpen.value);
80
+ };
81
+ const handleLeave = async (elementType, closeAll) => {
82
+ await new Promise((resolve) => setTimeout(resolve, 50));
83
+ if (elementType === "origin" && overlayEnter || elementType === "dropdown" && originEnter) {
84
+ return;
85
+ }
86
+ if (closeAll) {
87
+ [...dropdownMap.values()].reverse().forEach((item) => {
88
+ setTimeout(() => {
89
+ var _a;
90
+ (_a = item.toggle) == null ? void 0 : _a.call(item);
91
+ }, 0);
92
+ });
93
+ }
94
+ toggle(false);
95
+ };
96
+ watch([trigger, origin, dropdownRef], ([triggerVal, originVal, dropdownEl], ov, onInvalidate) => {
97
+ const originEl = getElement(originVal);
98
+ const subscriptions = [];
99
+ setTimeout(() => {
100
+ subscriptions.push(subscribeEvent(document, "click", (e) => {
101
+ const dropdownValues = [...dropdownMap.values()];
102
+ if (!isOpen.value || closeScope.value === "none" || (dropdownEl == null ? void 0 : dropdownEl.contains(e.target)) && closeScope.value === "blank" || dropdownValues.some((item) => {
103
+ var _a;
104
+ return (_a = item.toggleEl) == null ? void 0 : _a.contains(e.target);
105
+ }) && dropdownValues.some((item) => {
106
+ var _a;
107
+ return (_a = item.menuEl) == null ? void 0 : _a.contains(e.target);
108
+ })) {
109
+ return;
110
+ }
111
+ [...dropdownMap.values()].reverse().forEach((item) => {
112
+ setTimeout(() => {
113
+ var _a, _b;
114
+ if (!((_a = item.toggleEl) == null ? void 0 : _a.contains(e.target))) {
115
+ (_b = item.toggle) == null ? void 0 : _b.call(item);
116
+ }
117
+ }, 0);
118
+ });
119
+ overlayEnter = false;
120
+ }));
121
+ }, 0);
122
+ if (triggerVal === "click") {
123
+ subscriptions.push(subscribeEvent(originEl, "click", () => toggle(!isOpen.value)), subscribeEvent(dropdownEl, "mouseleave", (e) => {
124
+ var _a;
125
+ if (closeOnMouseLeaveMenu.value && !((_a = dropdownMap.get(id).child) == null ? void 0 : _a.contains(e.relatedTarget))) {
126
+ handleLeave("dropdown", true);
127
+ }
128
+ }));
129
+ } else if (triggerVal === "hover") {
130
+ subscriptions.push(subscribeEvent(originEl, "mouseenter", () => {
131
+ originEnter = true;
132
+ toggle(true);
133
+ }), subscribeEvent(originEl, "mouseleave", () => {
134
+ originEnter = false;
135
+ handleLeave("origin");
136
+ }), subscribeEvent(dropdownEl, "mouseenter", () => {
137
+ overlayEnter = true;
138
+ isOpen.value = true;
139
+ }), subscribeEvent(dropdownEl, "mouseleave", (e) => {
140
+ var _a;
141
+ overlayEnter = false;
142
+ if (e.relatedTarget && ((originEl == null ? void 0 : originEl.contains(e.relatedTarget)) || ((_a = dropdownMap.get(id).child) == null ? void 0 : _a.contains(e.relatedTarget)))) {
143
+ return;
144
+ }
145
+ handleLeave("dropdown", true);
146
+ }));
147
+ }
148
+ onInvalidate(() => subscriptions.forEach((v) => v()));
149
+ });
150
+ };
151
+ function useDropdown(id, visible, isOpen, origin, dropdownRef, popDirection, emit) {
152
+ const calcPopDirection = (dropdownEl) => {
153
+ const elementHeight = dropdownEl.offsetHeight;
154
+ const bottomDistance = window.innerHeight - origin.value.getBoundingClientRect().bottom;
155
+ const isBottomEnough = bottomDistance >= elementHeight;
156
+ if (!isBottomEnough) {
157
+ popDirection.value = "top";
158
+ } else {
159
+ popDirection.value = "bottom";
160
+ }
161
+ };
162
+ watch(visible, (newVal, oldVal) => {
163
+ if (oldVal === void 0) {
164
+ return;
165
+ }
166
+ isOpen.value = newVal;
167
+ emit("toggle", isOpen.value);
168
+ }, { immediate: true });
169
+ watch([isOpen, dropdownRef], ([isOpenVal, dropdownEl]) => {
170
+ var _a;
171
+ if (isOpenVal) {
172
+ dropdownMap.set(id, {
173
+ ...dropdownMap.get(id),
174
+ menuEl: dropdownEl,
175
+ toggle: () => {
176
+ isOpen.value = false;
177
+ emit("toggle", isOpen.value);
178
+ }
179
+ });
180
+ for (const value of dropdownMap.values()) {
181
+ if ((_a = value.menuEl) == null ? void 0 : _a.contains(origin.value)) {
182
+ value.child = dropdownEl;
183
+ }
184
+ }
185
+ }
186
+ if (dropdownEl) {
187
+ calcPopDirection(dropdownEl);
188
+ }
189
+ });
190
+ onMounted(() => {
191
+ dropdownMap.set(id, { toggleEl: origin.value });
192
+ });
193
+ onUnmounted(() => {
194
+ dropdownMap.delete(id);
195
+ });
196
+ }
197
+ function useOverlayProps(props, currentPosition, isOpen) {
198
+ const { showAnimation, overlayClass, destroyOnHide } = toRefs(props);
199
+ const overlayModelValue = ref(false);
200
+ const overlayShowValue = ref(false);
201
+ const styles = computed(() => ({
202
+ transformOrigin: currentPosition.value === "top" ? "0% 100%" : "0% 0%"
203
+ }));
204
+ const classes = computed(() => ({
205
+ "fade-in-bottom": showAnimation.value && isOpen.value && currentPosition.value === "bottom",
206
+ "fade-in-top": showAnimation.value && isOpen.value && currentPosition.value === "top",
207
+ [`${overlayClass.value}`]: true
208
+ }));
209
+ const handlePositionChange = (pos) => {
210
+ currentPosition.value = pos.includes("top") || pos.includes("end") ? "top" : "bottom";
211
+ };
212
+ watch(isOpen, (isOpenVal) => {
213
+ overlayModelValue.value = destroyOnHide.value ? isOpenVal : true;
214
+ overlayShowValue.value = isOpenVal;
215
+ });
216
+ return { overlayModelValue, overlayShowValue, styles, classes, handlePositionChange };
217
+ }
218
+ const fixedOverlayProps = {
219
+ modelValue: {
220
+ type: Boolean,
221
+ default: false
222
+ },
223
+ lockScroll: {
224
+ type: Boolean,
225
+ default: true
226
+ },
227
+ closeOnClickOverlay: {
228
+ type: Boolean,
229
+ default: true
230
+ }
231
+ };
232
+ function lockScroll() {
233
+ if (document.documentElement.scrollHeight > document.documentElement.clientHeight) {
234
+ const scrollTop = document.documentElement.scrollTop;
235
+ const style = document.documentElement.getAttribute("style");
236
+ document.documentElement.style.position = "fixed";
237
+ document.documentElement.style.top = `-${scrollTop}px`;
238
+ document.documentElement.style.width = document.documentElement.style.width || "100%";
239
+ document.documentElement.style.overflowY = "scroll";
240
+ return () => {
241
+ if (style) {
242
+ document.documentElement.setAttribute("style", style);
243
+ } else {
244
+ document.documentElement.removeAttribute("style");
245
+ }
246
+ document.documentElement.scrollTop = scrollTop;
247
+ };
248
+ }
249
+ return;
250
+ }
251
+ function useFixedOverlay(props, ctx) {
252
+ let lockScrollCb;
253
+ const onClick = (event) => {
254
+ event.preventDefault();
255
+ ctx.emit("click", event);
256
+ if (props.closeOnClickOverlay) {
257
+ ctx.emit("update:modelValue", false);
258
+ }
259
+ };
260
+ const removeBodyAdditions = () => {
261
+ lockScrollCb == null ? void 0 : lockScrollCb();
262
+ };
263
+ watch(() => props.modelValue, (val) => {
264
+ if (val) {
265
+ props.lockScroll && (lockScrollCb = lockScroll());
266
+ } else {
267
+ removeBodyAdditions();
268
+ }
269
+ });
270
+ onUnmounted(removeBodyAdditions);
271
+ return { onClick };
272
+ }
273
+ function createBem(namespace, element, modifier) {
274
+ let cls = namespace;
275
+ if (element) {
276
+ cls += `__${element}`;
277
+ }
278
+ if (modifier) {
279
+ cls += `--${modifier}`;
280
+ }
281
+ return cls;
282
+ }
283
+ function useNamespace(block, needDot = false) {
284
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
285
+ const b = () => createBem(namespace);
286
+ const e = (element) => element ? createBem(namespace, element) : "";
287
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
288
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
289
+ return {
290
+ b,
291
+ e,
292
+ m,
293
+ em
294
+ };
295
+ }
296
+ var fixedOverlay = "";
297
+ defineComponent({
298
+ name: "DFixedOverlay",
299
+ inheritAttrs: false,
300
+ props: fixedOverlayProps,
301
+ emits: ["update:modelValue", "click"],
302
+ setup(props, ctx) {
303
+ const {
304
+ modelValue
305
+ } = toRefs(props);
306
+ const ns2 = useNamespace("fixed-overlay");
307
+ const {
308
+ onClick
309
+ } = useFixedOverlay(props, ctx);
310
+ return () => createVNode(Transition, {
311
+ "name": ns2.m("fade")
312
+ }, {
313
+ default: () => {
314
+ var _a, _b;
315
+ return [modelValue.value && createVNode("div", mergeProps({
316
+ "class": ns2.b()
317
+ }, ctx.attrs, {
318
+ "onClick": onClick
319
+ }), [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)])];
320
+ }
321
+ });
322
+ }
323
+ });
324
+ const flexibleOverlayProps = {
325
+ modelValue: {
326
+ type: Boolean,
327
+ default: false
328
+ },
329
+ origin: {
330
+ type: Object,
331
+ require: true
332
+ },
333
+ position: {
334
+ type: Array,
335
+ default: ["bottom"]
336
+ },
337
+ offset: {
338
+ type: [Number, Object],
339
+ default: 8
340
+ },
341
+ shiftOffset: {
342
+ type: Number
343
+ },
344
+ align: {
345
+ type: String,
346
+ default: null
347
+ },
348
+ showArrow: {
349
+ type: Boolean,
350
+ default: false
351
+ },
352
+ isArrowCenter: {
353
+ type: Boolean,
354
+ default: true
355
+ }
356
+ };
357
+ function getScrollParent(element) {
358
+ const overflowRegex = /(auto|scroll|hidden)/;
359
+ for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
360
+ const style = window.getComputedStyle(parent);
361
+ if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
362
+ return parent;
363
+ }
364
+ }
365
+ return window;
366
+ }
367
+ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
368
+ let { x, y } = point;
369
+ if (!isArrowCenter) {
370
+ const { width, height } = originRect;
371
+ if (x && placement.includes("start")) {
372
+ x = 12;
373
+ }
374
+ if (x && placement.includes("end")) {
375
+ x = Math.round(width - 24);
376
+ }
377
+ if (y && placement.includes("start")) {
378
+ y = 10;
379
+ }
380
+ if (y && placement.includes("end")) {
381
+ y = height - 14;
382
+ }
383
+ }
384
+ return { x, y };
385
+ }
386
+ function useOverlay(props, emit) {
387
+ const overlayRef = ref();
388
+ const arrowRef = ref();
389
+ let originParent = null;
390
+ const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
391
+ const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
392
+ const staticSide = {
393
+ top: "bottom",
394
+ right: "left",
395
+ bottom: "top",
396
+ left: "right"
397
+ }[placement.split("-")[0]];
398
+ Object.assign(arrowEl.style, {
399
+ left: x ? `${x}px` : "",
400
+ top: y ? `${y}px` : "",
401
+ right: "",
402
+ bottom: "",
403
+ [staticSide]: "-4px"
404
+ });
405
+ };
406
+ const updatePosition = async () => {
407
+ const hostEl = props.origin;
408
+ const overlayEl = unref(overlayRef.value);
409
+ const arrowEl = unref(arrowRef.value);
410
+ const middleware = [
411
+ offset(props.offset),
412
+ autoPlacement({
413
+ alignment: props.align,
414
+ allowedPlacements: props.position
415
+ })
416
+ ];
417
+ props.showArrow && middleware.push(arrow({ element: arrowEl }));
418
+ props.shiftOffset !== void 0 && middleware.push(shift());
419
+ const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
420
+ strategy: "fixed",
421
+ middleware
422
+ });
423
+ let applyX = x;
424
+ let applyY = y;
425
+ if (props.shiftOffset !== void 0) {
426
+ const { x: shiftX, y: shiftY } = middlewareData.shift;
427
+ shiftX < 0 && (applyX -= props.shiftOffset);
428
+ shiftX > 0 && (applyX += props.shiftOffset);
429
+ shiftY < 0 && (applyY -= props.shiftOffset);
430
+ shiftY > 0 && (applyY += props.shiftOffset);
431
+ }
432
+ emit("positionChange", placement);
433
+ Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
434
+ props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
435
+ };
436
+ watch(() => props.modelValue, () => {
437
+ if (props.modelValue && props.origin) {
438
+ originParent = getScrollParent(props.origin);
439
+ nextTick(updatePosition);
440
+ originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
441
+ originParent !== window && window.addEventListener("scroll", updatePosition);
442
+ window.addEventListener("resize", updatePosition);
443
+ } else {
444
+ originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
445
+ originParent !== window && window.removeEventListener("scroll", updatePosition);
446
+ window.removeEventListener("resize", updatePosition);
447
+ }
448
+ });
449
+ onUnmounted(() => {
450
+ originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
451
+ originParent !== window && window.removeEventListener("scroll", updatePosition);
452
+ window.removeEventListener("resize", updatePosition);
453
+ });
454
+ return { arrowRef, overlayRef, updatePosition };
455
+ }
456
+ var flexibleOverlay = "";
457
+ const FlexibleOverlay = defineComponent({
458
+ name: "DFlexibleOverlay",
459
+ inheritAttrs: false,
460
+ props: flexibleOverlayProps,
461
+ emits: ["update:modelValue", "positionChange"],
462
+ setup(props, {
463
+ slots,
464
+ attrs,
465
+ emit,
466
+ expose
467
+ }) {
468
+ const ns2 = useNamespace("flexible-overlay");
469
+ const {
470
+ arrowRef,
471
+ overlayRef,
472
+ updatePosition
473
+ } = useOverlay(props, emit);
474
+ expose({
475
+ updatePosition
476
+ });
477
+ return () => {
478
+ var _a;
479
+ return props.modelValue && createVNode("div", mergeProps({
480
+ "ref": overlayRef,
481
+ "class": ns2.b()
482
+ }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots), props.showArrow && createVNode("div", {
483
+ "ref": arrowRef,
484
+ "class": ns2.e("arrow")
485
+ }, null)]);
486
+ };
487
+ }
488
+ });
489
+ const isObject = (val) => val !== null && typeof val === "object";
490
+ const ns = useNamespace("popper-trigger");
491
+ function wrapContent(content) {
492
+ return h("span", { class: ns.b() }, content);
493
+ }
494
+ function getFirstValidChild(nodes) {
495
+ for (const child of nodes) {
496
+ if (isObject(child)) {
497
+ if (child.type === Comment) {
498
+ continue;
499
+ }
500
+ if (child.type === "svg" || child.type === Text) {
501
+ return wrapContent(child);
502
+ }
503
+ if (child.type === Fragment) {
504
+ return getFirstValidChild(child.children);
505
+ }
506
+ return child;
507
+ }
508
+ return wrapContent(child);
509
+ }
510
+ return null;
511
+ }
512
+ var PopperTrigger = defineComponent({
513
+ name: "DPopperTrigger",
514
+ setup(_, ctx) {
515
+ const {
516
+ slots,
517
+ attrs
518
+ } = ctx;
519
+ return () => {
520
+ var _a;
521
+ const defaultSlot = (_a = slots.default) == null ? void 0 : _a.call(slots, attrs);
522
+ const triggerRef = inject(POPPER_TRIGGER_TOKEN);
523
+ if (!defaultSlot) {
524
+ return null;
525
+ }
526
+ const firstValidChild = getFirstValidChild(defaultSlot);
527
+ if (!firstValidChild) {
528
+ return null;
529
+ }
530
+ return withDirectives(cloneVNode(firstValidChild, attrs), [[{
531
+ mounted(el) {
532
+ triggerRef.value = el;
533
+ },
534
+ updated(el) {
535
+ triggerRef.value = el;
536
+ },
537
+ unmounted() {
538
+ triggerRef.value = null;
539
+ }
540
+ }]]);
541
+ };
542
+ }
543
+ });
544
+ var dropdown = "";
545
+ let dropdownId = 1;
546
+ var Dropdown = defineComponent({
547
+ name: "DDropdown",
548
+ inheritAttrs: false,
549
+ props: dropdownProps,
550
+ emits: ["toggle"],
551
+ setup(props, {
552
+ slots,
553
+ attrs,
554
+ emit,
555
+ expose
556
+ }) {
557
+ const {
558
+ visible,
559
+ position,
560
+ align,
561
+ offset: offset2,
562
+ destroyOnHide,
563
+ shiftOffset,
564
+ showAnimation
565
+ } = toRefs(props);
566
+ const origin = ref();
567
+ const dropdownRef = ref();
568
+ const overlayRef = ref();
569
+ const id = `dropdown_${dropdownId++}`;
570
+ const isOpen = ref(false);
571
+ const currentPosition = ref("bottom");
572
+ const ns2 = useNamespace("dropdown");
573
+ provide(POPPER_TRIGGER_TOKEN, origin);
574
+ useDropdownEvent({
575
+ id,
576
+ isOpen,
577
+ origin,
578
+ dropdownRef,
579
+ props,
580
+ emit
581
+ });
582
+ useDropdown(id, visible, isOpen, origin, dropdownRef, currentPosition, emit);
583
+ const {
584
+ overlayModelValue,
585
+ overlayShowValue,
586
+ styles,
587
+ classes,
588
+ handlePositionChange
589
+ } = useOverlayProps(props, currentPosition, isOpen);
590
+ watch(overlayShowValue, (overlayShowValueVal) => {
591
+ nextTick(() => {
592
+ if (!destroyOnHide.value && overlayShowValueVal) {
593
+ overlayRef.value.updatePosition();
594
+ }
595
+ });
596
+ });
597
+ expose({
598
+ updatePosition: () => overlayRef.value.updatePosition()
599
+ });
600
+ return () => createVNode(Fragment, null, [createVNode(PopperTrigger, null, {
601
+ default: () => {
602
+ var _a;
603
+ return [(_a = slots.default) == null ? void 0 : _a.call(slots)];
604
+ }
605
+ }), createVNode(Teleport, {
606
+ "to": "body"
607
+ }, {
608
+ default: () => [createVNode(Transition, {
609
+ "name": showAnimation.value ? ns2.m(`fade-${currentPosition.value}`) : ""
610
+ }, {
611
+ default: () => [withDirectives(createVNode(FlexibleOverlay, {
612
+ "modelValue": overlayModelValue.value,
613
+ "onUpdate:modelValue": ($event) => overlayModelValue.value = $event,
614
+ "ref": overlayRef,
615
+ "origin": origin.value,
616
+ "position": position.value,
617
+ "align": align.value,
618
+ "offset": offset2.value,
619
+ "shiftOffset": shiftOffset == null ? void 0 : shiftOffset.value,
620
+ "onPositionChange": handlePositionChange,
621
+ "class": classes.value,
622
+ "style": styles.value
623
+ }, {
624
+ default: () => {
625
+ var _a;
626
+ return [createVNode("div", mergeProps({
627
+ "ref": dropdownRef,
628
+ "class": ns2.e("menu-wrap")
629
+ }, attrs), [(_a = slots.menu) == null ? void 0 : _a.call(slots)])];
630
+ }
631
+ }), [[vShow, overlayShowValue.value]])]
632
+ })]
633
+ })]);
634
+ }
635
+ });
636
+ const dropdownMenuProps = {
637
+ modelValue: {
638
+ type: Boolean,
639
+ default: false
640
+ },
641
+ origin: {
642
+ type: Object,
643
+ require: true
644
+ },
645
+ position: {
646
+ type: Array,
647
+ default: ["bottom"]
648
+ },
649
+ align: {
650
+ type: String,
651
+ default: null
652
+ },
653
+ offset: {
654
+ type: [Number, Object],
655
+ default: 4
656
+ },
657
+ clickOutside: {
658
+ type: Function,
659
+ default: () => true
660
+ },
661
+ showAnimation: {
662
+ type: Boolean,
663
+ default: true
664
+ },
665
+ overlayClass: {
666
+ type: String,
667
+ default: ""
668
+ }
669
+ };
670
+ var DropdownMenu = defineComponent({
671
+ name: "DDropdownMenu",
672
+ inheritAttrs: false,
673
+ props: dropdownMenuProps,
674
+ emits: ["update:modelValue"],
675
+ setup(props, {
676
+ slots,
677
+ attrs,
678
+ emit
679
+ }) {
680
+ const {
681
+ modelValue,
682
+ origin,
683
+ position,
684
+ align,
685
+ offset: offset2,
686
+ clickOutside,
687
+ showAnimation,
688
+ overlayClass
689
+ } = toRefs(props);
690
+ const dropdownMenuRef = ref(null);
691
+ const ns2 = useNamespace("dropdown");
692
+ onClickOutside(dropdownMenuRef, (value) => {
693
+ var _a, _b;
694
+ if (((_a = clickOutside.value) == null ? void 0 : _a.call(clickOutside)) && !((_b = origin == null ? void 0 : origin.value) == null ? void 0 : _b.contains(value.target))) {
695
+ emit("update:modelValue", false);
696
+ }
697
+ });
698
+ const currentPosition = ref("bottom");
699
+ const handlePositionChange = (pos) => {
700
+ currentPosition.value = pos.split("-")[0] === "top" ? "top" : "bottom";
701
+ };
702
+ const styles = computed(() => ({
703
+ transformOrigin: currentPosition.value === "top" ? "0% 100%" : "0% 0%"
704
+ }));
705
+ return () => createVNode(Teleport, {
706
+ "to": "body"
707
+ }, {
708
+ default: () => [createVNode(Transition, {
709
+ "name": showAnimation.value ? ns2.m(`fade-${currentPosition.value}`) : ""
710
+ }, {
711
+ default: () => [createVNode(FlexibleOverlay, {
712
+ "modelValue": modelValue.value,
713
+ "onUpdate:modelValue": ($event) => modelValue.value = $event,
714
+ "origin": origin == null ? void 0 : origin.value,
715
+ "position": position.value,
716
+ "align": align.value,
717
+ "offset": offset2.value,
718
+ "onPositionChange": handlePositionChange,
719
+ "class": overlayClass.value,
720
+ "style": styles.value
721
+ }, {
722
+ default: () => {
723
+ var _a;
724
+ return [createVNode("div", mergeProps({
725
+ "ref": dropdownMenuRef,
726
+ "class": ns2.e("menu-wrap")
727
+ }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots)])];
728
+ }
729
+ })]
730
+ })]
731
+ });
732
+ }
733
+ });
734
+ var index = {
735
+ title: "Dropdown \u4E0B\u62C9\u83DC\u5355",
736
+ category: "\u5BFC\u822A",
737
+ status: "50%",
738
+ install(app) {
739
+ app.component(Dropdown.name, Dropdown);
740
+ app.component(DropdownMenu.name, DropdownMenu);
741
+ }
742
+ };
743
+ export { Dropdown, DropdownMenu, index as default, dropdownMenuProps };