vue-devui 1.0.0-alpha.1 → 1.0.0-alpha.10

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 +161 -172
  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 -1
  58. package/editable-select/index.umd.js +1 -1
  59. package/editable-select/style.css +1 -1
  60. package/form/index.d.ts +7 -0
  61. package/form/index.es.js +7751 -0
  62. package/form/index.umd.js +38 -0
  63. package/{toast → form}/package.json +1 -1
  64. package/form/style.css +1 -0
  65. package/fullscreen/index.d.ts +7 -0
  66. package/fullscreen/index.es.js +166 -0
  67. package/fullscreen/index.umd.js +1 -0
  68. package/fullscreen/package.json +7 -0
  69. package/fullscreen/style.css +1 -0
  70. package/grid/index.d.ts +7 -0
  71. package/grid/index.es.js +271 -0
  72. package/grid/index.umd.js +1 -0
  73. package/{sticky → grid}/package.json +1 -1
  74. package/grid/style.css +1 -0
  75. package/icon/index.d.ts +7 -0
  76. package/icon/index.es.js +218 -1
  77. package/icon/index.umd.js +1 -1
  78. package/icon/style.css +1 -0
  79. package/image-preview/index.d.ts +7 -0
  80. package/image-preview/index.es.js +511 -1
  81. package/image-preview/index.umd.js +1 -1
  82. package/image-preview/style.css +1 -1
  83. package/index.d.ts +7 -0
  84. package/input/index.d.ts +7 -0
  85. package/input/index.es.js +8311 -1
  86. package/input/index.umd.js +38 -1
  87. package/input/style.css +1 -1
  88. package/input-number/index.d.ts +7 -0
  89. package/input-number/index.es.js +308 -1
  90. package/input-number/index.umd.js +1 -1
  91. package/input-number/style.css +1 -1
  92. package/layout/index.d.ts +7 -0
  93. package/layout/index.es.js +115 -0
  94. package/layout/index.umd.js +1 -0
  95. package/layout/package.json +7 -0
  96. package/layout/style.css +1 -0
  97. package/loading/index.d.ts +7 -0
  98. package/loading/index.es.js +272 -1
  99. package/loading/index.umd.js +1 -1
  100. package/loading/style.css +1 -1
  101. package/message/index.d.ts +7 -0
  102. package/message/index.es.js +534 -0
  103. package/message/index.umd.js +1 -0
  104. package/message/package.json +7 -0
  105. package/message/style.css +1 -0
  106. package/modal/index.d.ts +7 -0
  107. package/modal/index.es.js +741 -0
  108. package/modal/index.umd.js +1 -0
  109. package/modal/package.json +7 -0
  110. package/modal/style.css +1 -0
  111. package/notification/index.d.ts +7 -0
  112. package/notification/index.es.js +528 -0
  113. package/notification/index.umd.js +1 -0
  114. package/notification/package.json +7 -0
  115. package/notification/style.css +1 -0
  116. package/nuxt/components/Alert.js +3 -0
  117. package/nuxt/components/Aside.js +3 -0
  118. package/nuxt/components/AutoComplete.js +3 -0
  119. package/nuxt/components/Avatar.js +3 -0
  120. package/nuxt/components/Badge.js +3 -0
  121. package/nuxt/components/Button.js +3 -0
  122. package/nuxt/components/ButtonGroup.js +3 -0
  123. package/nuxt/components/Card.js +3 -0
  124. package/nuxt/components/Checkbox.js +3 -0
  125. package/nuxt/components/CheckboxButton.js +3 -0
  126. package/nuxt/components/CheckboxGroup.js +3 -0
  127. package/nuxt/components/Col.js +3 -0
  128. package/nuxt/components/Collapse.js +3 -0
  129. package/nuxt/components/CollapseItem.js +3 -0
  130. package/nuxt/components/Column.js +3 -0
  131. package/nuxt/components/Content.js +3 -0
  132. package/nuxt/components/Countdown.js +3 -0
  133. package/nuxt/components/DRangeDatePickerPro.js +3 -0
  134. package/nuxt/components/DatePickerPro.js +3 -0
  135. package/nuxt/components/Drawer.js +3 -0
  136. package/nuxt/components/DrawerService.js +3 -0
  137. package/nuxt/components/Dropdown.js +3 -0
  138. package/nuxt/components/DropdownMenu.js +3 -0
  139. package/nuxt/components/DropdownPropsKey.js +3 -0
  140. package/nuxt/components/EditableSelect.js +3 -0
  141. package/nuxt/components/FORM_ITEM_TOKEN.js +3 -0
  142. package/nuxt/components/FORM_TOKEN.js +3 -0
  143. package/nuxt/components/FixedOverlay.js +3 -0
  144. package/nuxt/components/FlexibleOverlay.js +3 -0
  145. package/nuxt/components/Footer.js +3 -0
  146. package/nuxt/components/Form.js +3 -0
  147. package/nuxt/components/FormItem.js +3 -0
  148. package/nuxt/components/FormOperation.js +3 -0
  149. package/nuxt/components/Fullscreen.js +3 -0
  150. package/nuxt/components/Header.js +3 -0
  151. package/nuxt/components/IFileOptions.js +3 -0
  152. package/nuxt/components/IUploadOptions.js +3 -0
  153. package/nuxt/components/Icon.js +3 -0
  154. package/nuxt/components/IconGroup.js +3 -0
  155. package/nuxt/components/ImagePreviewService.js +3 -0
  156. package/nuxt/components/Input.js +3 -0
  157. package/nuxt/components/InputNumber.js +3 -0
  158. package/nuxt/components/LABEL_DATA.js +3 -0
  159. package/nuxt/components/Layout.js +3 -0
  160. package/nuxt/components/Loading.js +3 -0
  161. package/nuxt/components/LoadingOptions.js +3 -0
  162. package/nuxt/components/LoadingService.js +3 -0
  163. package/nuxt/components/Message.js +3 -0
  164. package/nuxt/components/Modal.js +3 -0
  165. package/nuxt/components/Notification.js +3 -0
  166. package/nuxt/components/NotificationService.js +3 -0
  167. package/nuxt/components/Option.js +3 -0
  168. package/nuxt/components/OptionGroup.js +3 -0
  169. package/nuxt/components/Pagination.js +3 -0
  170. package/nuxt/components/Panel.js +3 -0
  171. package/nuxt/components/PanelBody.js +3 -0
  172. package/nuxt/components/PanelFooter.js +3 -0
  173. package/nuxt/components/PanelHeader.js +3 -0
  174. package/nuxt/components/Popover.js +3 -0
  175. package/nuxt/components/Progress.js +3 -0
  176. package/nuxt/components/Radio.js +3 -0
  177. package/nuxt/components/RadioButton.js +3 -0
  178. package/nuxt/components/RadioGroup.js +3 -0
  179. package/nuxt/components/Rate.js +3 -0
  180. package/nuxt/components/Result.js +3 -0
  181. package/nuxt/components/Row.js +3 -0
  182. package/nuxt/components/Search.js +3 -0
  183. package/nuxt/components/Select.js +3 -0
  184. package/nuxt/components/Skeleton.js +3 -0
  185. package/nuxt/components/SkeletonItem.js +3 -0
  186. package/nuxt/components/Slider.js +3 -0
  187. package/nuxt/components/Splitter.js +3 -0
  188. package/nuxt/components/Statistic.js +3 -0
  189. package/nuxt/components/Status.js +3 -0
  190. package/nuxt/components/Step.js +3 -0
  191. package/nuxt/components/Steps.js +3 -0
  192. package/nuxt/components/Switch.js +3 -0
  193. package/nuxt/components/TABLE_TOKEN.js +3 -0
  194. package/nuxt/components/Tab.js +3 -0
  195. package/nuxt/components/Table.js +3 -0
  196. package/nuxt/components/Tabs.js +3 -0
  197. package/nuxt/components/Tag.js +3 -0
  198. package/nuxt/components/Textarea.js +3 -0
  199. package/nuxt/components/TimePicker.js +3 -0
  200. package/nuxt/components/TimeSelect.js +3 -0
  201. package/nuxt/components/Timeline.js +3 -0
  202. package/nuxt/components/TimelineItem.js +3 -0
  203. package/nuxt/components/Tooltip.js +3 -0
  204. package/nuxt/components/Tree.js +3 -0
  205. package/nuxt/components/Upload.js +3 -0
  206. package/nuxt/components/UploadStatus.js +3 -0
  207. package/nuxt/components/alertProps.js +3 -0
  208. package/nuxt/components/animationInjectionKey.js +3 -0
  209. package/nuxt/components/autoCompleteProps.js +3 -0
  210. package/nuxt/components/avatarProps.js +3 -0
  211. package/nuxt/components/badgeProps.js +3 -0
  212. package/nuxt/components/buttonGroupInjectionKey.js +3 -0
  213. package/nuxt/components/buttonGroupProps.js +3 -0
  214. package/nuxt/components/buttonProps.js +3 -0
  215. package/nuxt/components/cardProps.js +3 -0
  216. package/nuxt/components/checkboxGroupInjectionKey.js +3 -0
  217. package/nuxt/components/checkboxGroupProps.js +3 -0
  218. package/nuxt/components/checkboxProps.js +3 -0
  219. package/nuxt/components/colProps.js +3 -0
  220. package/nuxt/components/colPropsBaseClass.js +3 -0
  221. package/nuxt/components/colPropsBaseStyle.js +3 -0
  222. package/nuxt/components/collapseItemProps.js +3 -0
  223. package/nuxt/components/collapseProps.js +3 -0
  224. package/nuxt/components/countdownProps.js +3 -0
  225. package/nuxt/components/datePickerProCommonProps.js +3 -0
  226. package/nuxt/components/datePickerProPanelProps.js +3 -0
  227. package/nuxt/components/datePickerProProps.js +3 -0
  228. package/nuxt/components/dropdownMenuProps.js +3 -0
  229. package/nuxt/components/editableSelectProps.js +3 -0
  230. package/nuxt/components/fixedOverlayProps.js +3 -0
  231. package/nuxt/components/flexibleOverlayProps.js +3 -0
  232. package/nuxt/components/formItemProps.js +3 -0
  233. package/nuxt/components/formProps.js +3 -0
  234. package/nuxt/components/fullscreenProps.js +3 -0
  235. package/nuxt/components/iconProps.js +3 -0
  236. package/nuxt/components/imagePreviewProps.js +3 -0
  237. package/nuxt/components/inputProps.js +3 -0
  238. package/nuxt/components/loadingProps.js +3 -0
  239. package/nuxt/components/messageProps.js +3 -0
  240. package/nuxt/components/modalProps.js +3 -0
  241. package/nuxt/components/notificationProps.js +3 -0
  242. package/nuxt/components/paginationProps.js +3 -0
  243. package/nuxt/components/panelProps.js +3 -0
  244. package/nuxt/components/popoverProps.js +3 -0
  245. package/nuxt/components/progressProps.js +3 -0
  246. package/nuxt/components/rateProps.js +3 -0
  247. package/nuxt/components/resultProps.js +3 -0
  248. package/nuxt/components/roundInjectionKey.js +3 -0
  249. package/nuxt/components/rowProps.js +3 -0
  250. package/nuxt/components/screenSizes.js +3 -0
  251. package/nuxt/components/searchProps.js +3 -0
  252. package/nuxt/components/skeletonItemProps.js +3 -0
  253. package/nuxt/components/skeletonProps.js +3 -0
  254. package/nuxt/components/sliderProps.js +3 -0
  255. package/nuxt/components/splitterProps.js +3 -0
  256. package/nuxt/components/statisticProps.js +3 -0
  257. package/nuxt/components/stepProps.js +3 -0
  258. package/nuxt/components/stepsProps.js +3 -0
  259. package/nuxt/components/svgIconProps.js +3 -0
  260. package/nuxt/components/switchProps.js +3 -0
  261. package/nuxt/components/tableProps.js +3 -0
  262. package/nuxt/components/tabsProps.js +3 -0
  263. package/nuxt/components/tagProps.js +3 -0
  264. package/nuxt/components/textareaProps.js +3 -0
  265. package/nuxt/components/timeAxisProps.js +3 -0
  266. package/nuxt/components/timerPickerPanelProps.js +3 -0
  267. package/nuxt/components/tooltipProps.js +3 -0
  268. package/nuxt/components/treeProps.js +3 -0
  269. package/nuxt/components/uploadProps.js +3 -0
  270. package/nuxt/index.js +13 -0
  271. package/overlay/index.d.ts +7 -0
  272. package/overlay/index.es.js +293 -1
  273. package/overlay/index.umd.js +1 -1
  274. package/overlay/style.css +1 -1
  275. package/package.json +17 -82
  276. package/pagination/index.d.ts +7 -0
  277. package/pagination/index.es.js +820 -1
  278. package/pagination/index.umd.js +1 -1
  279. package/pagination/style.css +1 -1
  280. package/panel/index.d.ts +7 -0
  281. package/panel/index.es.js +218 -1
  282. package/panel/index.umd.js +1 -1
  283. package/panel/style.css +1 -1
  284. package/popover/index.d.ts +7 -0
  285. package/popover/index.es.js +6062 -1
  286. package/popover/index.umd.js +27 -1
  287. package/popover/style.css +1 -1
  288. package/progress/index.d.ts +7 -0
  289. package/progress/index.es.js +207 -1
  290. package/progress/index.umd.js +3 -1
  291. package/progress/style.css +1 -1
  292. package/radio/index.d.ts +7 -0
  293. package/radio/index.es.js +8056 -1
  294. package/radio/index.umd.js +38 -1
  295. package/radio/style.css +1 -1
  296. package/rate/index.d.ts +7 -0
  297. package/rate/index.es.js +242 -1
  298. package/rate/index.umd.js +1 -1
  299. package/rate/style.css +1 -1
  300. package/result/index.d.ts +7 -0
  301. package/result/index.es.js +248 -0
  302. package/result/index.umd.js +1 -0
  303. package/result/package.json +7 -0
  304. package/result/style.css +1 -0
  305. package/ripple/index.d.ts +7 -0
  306. package/ripple/index.es.js +173 -1
  307. package/ripple/index.umd.js +1 -1
  308. package/search/index.d.ts +7 -0
  309. package/search/index.es.js +8504 -2
  310. package/search/index.umd.js +38 -10
  311. package/search/style.css +1 -1
  312. package/select/index.d.ts +7 -0
  313. package/select/index.es.js +9423 -1
  314. package/select/index.umd.js +38 -1
  315. package/select/style.css +1 -1
  316. package/skeleton/index.d.ts +7 -0
  317. package/skeleton/index.es.js +145 -0
  318. package/skeleton/index.umd.js +1 -0
  319. package/skeleton/package.json +7 -0
  320. package/skeleton/style.css +1 -0
  321. package/slider/index.d.ts +7 -0
  322. package/slider/index.es.js +203 -1
  323. package/slider/index.umd.js +1 -1
  324. package/slider/style.css +1 -1
  325. package/splitter/index.d.ts +7 -0
  326. package/splitter/index.es.js +6754 -1
  327. package/splitter/index.umd.js +27 -1
  328. package/splitter/style.css +1 -1
  329. package/statistic/index.d.ts +7 -0
  330. package/statistic/index.es.js +253 -0
  331. package/statistic/index.umd.js +1 -0
  332. package/statistic/package.json +7 -0
  333. package/statistic/style.css +1 -0
  334. package/status/index.d.ts +7 -0
  335. package/status/index.es.js +63 -1
  336. package/status/index.umd.js +1 -1
  337. package/status/style.css +1 -1
  338. package/steps/index.d.ts +7 -0
  339. package/steps/index.es.js +386 -0
  340. package/steps/index.umd.js +1 -0
  341. package/steps/package.json +7 -0
  342. package/steps/style.css +1 -0
  343. package/style.css +1 -1
  344. package/switch/index.d.ts +7 -0
  345. package/switch/index.es.js +7852 -1
  346. package/switch/index.umd.js +38 -1
  347. package/switch/style.css +1 -1
  348. package/table/index.d.ts +7 -0
  349. package/table/index.es.js +11527 -0
  350. package/table/index.umd.js +38 -0
  351. package/table/package.json +7 -0
  352. package/table/style.css +1 -0
  353. package/tabs/index.d.ts +7 -0
  354. package/tabs/index.es.js +407 -1
  355. package/tabs/index.umd.js +1 -1
  356. package/tabs/style.css +1 -1
  357. package/tag/index.d.ts +7 -0
  358. package/tag/index.es.js +156 -0
  359. package/tag/index.umd.js +1 -0
  360. package/tag/package.json +7 -0
  361. package/tag/style.css +1 -0
  362. package/textarea/index.d.ts +7 -0
  363. package/textarea/index.es.js +7986 -0
  364. package/textarea/index.umd.js +46 -0
  365. package/textarea/package.json +7 -0
  366. package/textarea/style.css +1 -0
  367. package/{theme → theme/theme.scss} +0 -0
  368. package/time-picker/index.d.ts +7 -0
  369. package/time-picker/index.es.js +9556 -0
  370. package/time-picker/index.umd.js +38 -0
  371. package/{date-picker → time-picker}/package.json +1 -1
  372. package/time-picker/style.css +1 -0
  373. package/time-select/index.d.ts +7 -0
  374. package/time-select/index.es.js +9604 -0
  375. package/time-select/index.umd.js +38 -0
  376. package/time-select/package.json +7 -0
  377. package/time-select/style.css +1 -0
  378. package/timeline/index.d.ts +7 -0
  379. package/timeline/index.es.js +427 -0
  380. package/timeline/index.umd.js +1 -0
  381. package/timeline/package.json +7 -0
  382. package/timeline/style.css +1 -0
  383. package/tooltip/index.d.ts +7 -0
  384. package/tooltip/index.es.js +5900 -1
  385. package/tooltip/index.umd.js +27 -1
  386. package/tooltip/style.css +1 -1
  387. package/tree/index.d.ts +7 -0
  388. package/tree/index.es.js +10336 -1
  389. package/tree/index.umd.js +38 -1
  390. package/tree/style.css +1 -1
  391. package/upload/index.d.ts +7 -0
  392. package/upload/index.es.js +1398 -1
  393. package/upload/index.umd.js +1 -1
  394. package/upload/style.css +1 -1
  395. package/vue-devui.es.js +27443 -2
  396. package/vue-devui.umd.js +50 -10
  397. package/accordion/index.es.js +0 -1
  398. package/accordion/index.umd.js +0 -1
  399. package/accordion/style.css +0 -1
  400. package/anchor/index.es.js +0 -1
  401. package/anchor/index.umd.js +0 -1
  402. package/anchor/style.css +0 -1
  403. package/carousel/index.es.js +0 -1
  404. package/carousel/index.umd.js +0 -1
  405. package/carousel/style.css +0 -1
  406. package/date-picker/index.es.js +0 -1
  407. package/date-picker/index.umd.js +0 -1
  408. package/date-picker/style.css +0 -1
  409. package/quadrant-diagram/index.es.js +0 -10
  410. package/quadrant-diagram/index.umd.js +0 -10
  411. package/quadrant-diagram/package.json +0 -7
  412. package/quadrant-diagram/style.css +0 -1
  413. package/sticky/index.es.js +0 -1
  414. package/sticky/index.umd.js +0 -1
  415. package/tag-input/index.es.js +0 -1
  416. package/tag-input/index.umd.js +0 -1
  417. package/tag-input/package.json +0 -7
  418. package/tag-input/style.css +0 -1
  419. package/toast/index.es.js +0 -1
  420. package/toast/index.umd.js +0 -1
  421. package/toast/style.css +0 -1
  422. package/transfer/index.es.js +0 -10
  423. package/transfer/index.umd.js +0 -10
  424. package/transfer/package.json +0 -7
  425. package/transfer/style.css +0 -1
@@ -1 +1,991 @@
1
- var e=Object.defineProperty,t=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,l,o)=>l in t?e(t,l,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[l]=o;"undefined"!=typeof require&&require;import{defineComponent as r,createVNode as n,ref as a,reactive as s,Fragment as u,resolveComponent as d,renderSlot as p}from"vue";const c={width:{type:Number,default:450},appendToBody:{type:Boolean,default:!0},maxHeight:{type:Number,default:300}};var f=r({name:"DIcon",props:{name:{type:String,required:!0},size:{type:String,default:"inherit"},color:{type:String,default:"inherit"},classPrefix:{type:String,default:"icon"}},setup:e=>((e,r)=>{for(var n in r||(r={}))l.call(r,n)&&i(e,n,r[n]);if(t)for(var n of t(r))o.call(r,n)&&i(e,n,r[n]);return e})({},e),render(){const{name:e,size:t,color:l,classPrefix:o}=this;return n("i",{class:`${o} ${o}-${e}`,style:{fontSize:t,color:l}},null)}});f.install=function(e){e.component(f.name,f)};var v=r({name:"DEditableSelect",props:c,emits:[],setup(e,t){const l=a(null),o=a(!1),i=s({originX:"left",originY:"bottom",overlayX:"left",overlayY:"top"}),r=()=>{o.value=!o.value};return()=>n(u,null,[n("div",{class:"devui-form-group devui-has-feedback devui-select-open",onClick:r,ref:l},[n("input",{type:"text",class:"devui-form-control devui-dropdown-origin"},null),n("span",{class:"devui-form-control-feedback"},[n("span",{class:"devui-select-chevron-icon"},[n(f,{name:"select-arrow"},null)])])]),n(d("d-flexible-overlay"),{origin:l,visible:o.value,"onUpdate:visible":e=>o.value=e,position:i},{default:()=>[n("div",{class:"devui-dropdown-wrap",style:{width:e.width+"px"}},[n("div",{class:"devui-dropdown-menu"},[n("ul",{class:"devui-list-unstyled scroll-height",style:{maxHeight:e.maxHeight+"px"}},[p(t.slots,"default")])])])]})])}}),m=r({name:"DEditableSelectOption",setup(e,t){const l=t.slots.default&&t.slots.default();return()=>n("li",{class:"devui-dropdown-item"},[l])}});v.install=function(e){e.component(v.name,v),e.component(m.name,m)};var y={title:"EditableSelect 可输入下拉选择框",category:"数据录入",status:void 0,install(e){e.use(v)}};export{v as EditableSelect,m as EditableSelectOption,y as default};
1
+ import { defineComponent, ref, createVNode, h, render, computed, nextTick, watch, onUnmounted, unref, mergeProps, reactive, getCurrentInstance, withDirectives, withModifiers, resolveComponent, Teleport, Transition, vShow, resolveDirective } from "vue";
2
+ import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
3
+ const editableSelectProps = {
4
+ modelValue: {
5
+ type: String,
6
+ default: ""
7
+ },
8
+ options: {
9
+ type: Array,
10
+ default: () => []
11
+ },
12
+ allowClear: {
13
+ type: Boolean,
14
+ default: false
15
+ },
16
+ disabled: {
17
+ type: Boolean
18
+ },
19
+ disabledKey: {
20
+ type: String,
21
+ default: ""
22
+ },
23
+ placeholder: {
24
+ type: String,
25
+ default: "Search"
26
+ },
27
+ width: {
28
+ type: Number
29
+ },
30
+ maxHeight: {
31
+ type: Number
32
+ },
33
+ loading: {
34
+ type: Boolean
35
+ },
36
+ enableLazyLoad: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ searchFn: {
41
+ type: Function
42
+ },
43
+ filterOption: {
44
+ type: [Function, Boolean]
45
+ }
46
+ };
47
+ const inBrowser = typeof window !== "undefined";
48
+ function on(element, eventName, handler) {
49
+ if (document.addEventListener) {
50
+ if (element && eventName && handler) {
51
+ element.addEventListener(eventName, handler, false);
52
+ }
53
+ } else {
54
+ if (element && eventName && handler) {
55
+ element.attachEvent("on" + eventName, handler);
56
+ }
57
+ }
58
+ }
59
+ const ctx = Symbol("@@clickoutside");
60
+ const nodeList = /* @__PURE__ */ new Map();
61
+ let startClick;
62
+ let nid = 0;
63
+ let isFirst = true;
64
+ function createDocumentHandler(el, binding, vnode) {
65
+ if (inBrowser && isFirst) {
66
+ isFirst = false;
67
+ on(document, "mousedown", (e) => {
68
+ startClick = e;
69
+ });
70
+ on(document, "mouseup", (e) => {
71
+ for (const [id, node] of nodeList) {
72
+ node[ctx].documentHandler(e, startClick);
73
+ }
74
+ });
75
+ }
76
+ return function(mouseup, mousedown) {
77
+ if (!vnode || !binding.instance || !mouseup.target || !mousedown.target || el.contains(mouseup.target) || el.contains(mousedown.target) || el === mouseup.target) {
78
+ return;
79
+ }
80
+ el[ctx].bindingFn && el[ctx].bindingFn();
81
+ };
82
+ }
83
+ const clickoutsideDirective = {
84
+ beforeMount: function(el, binding, vnode) {
85
+ nid++;
86
+ nodeList.set(nid, el);
87
+ el[ctx] = {
88
+ nid,
89
+ documentHandler: createDocumentHandler(el, binding, vnode),
90
+ bindingFn: binding.value
91
+ };
92
+ },
93
+ updated: function(el, binding, vnode) {
94
+ el[ctx].documentHandler = createDocumentHandler(el, binding, vnode);
95
+ el[ctx].bindingFn = binding.value;
96
+ },
97
+ unmounted: function(el) {
98
+ nodeList.delete(el[ctx].nid);
99
+ delete el[ctx];
100
+ }
101
+ };
102
+ class View {
103
+ constructor() {
104
+ this.top = "50%";
105
+ this.left = "50%";
106
+ }
107
+ }
108
+ const loadingProps = {
109
+ message: String,
110
+ backdrop: Boolean,
111
+ view: {
112
+ type: Object,
113
+ default: () => new View()
114
+ },
115
+ zIndex: Number,
116
+ isFull: {
117
+ type: Boolean,
118
+ default: false
119
+ }
120
+ };
121
+ class LoadingOptions {
122
+ constructor() {
123
+ this.backdrop = true;
124
+ this.positionType = "relative";
125
+ this.view = new View();
126
+ }
127
+ }
128
+ function createBem(namespace, element, modifier) {
129
+ let cls = namespace;
130
+ if (element) {
131
+ cls += `__${element}`;
132
+ }
133
+ if (modifier) {
134
+ cls += `--${modifier}`;
135
+ }
136
+ return cls;
137
+ }
138
+ function useNamespace(block, needDot = false) {
139
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
140
+ const b = () => createBem(namespace);
141
+ const e = (element) => element ? createBem(namespace, element) : "";
142
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
143
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
144
+ return {
145
+ b,
146
+ e,
147
+ m,
148
+ em
149
+ };
150
+ }
151
+ var loading = "";
152
+ var Loading = defineComponent({
153
+ name: "DLoading",
154
+ inheritAttrs: false,
155
+ props: loadingProps,
156
+ setup(props) {
157
+ const style = {
158
+ top: props.view.top,
159
+ left: props.view.left,
160
+ zIndex: props.zIndex
161
+ };
162
+ if (!props.message) {
163
+ style.background = "none";
164
+ }
165
+ const isShow = ref(false);
166
+ const open = () => {
167
+ isShow.value = true;
168
+ };
169
+ const close = () => {
170
+ isShow.value = false;
171
+ };
172
+ return {
173
+ style,
174
+ isShow,
175
+ open,
176
+ close
177
+ };
178
+ },
179
+ render() {
180
+ var _a;
181
+ const {
182
+ isShow,
183
+ isFull,
184
+ backdrop,
185
+ style,
186
+ message,
187
+ $slots
188
+ } = this;
189
+ const ns = useNamespace("loading");
190
+ return isShow && createVNode("div", {
191
+ "class": [ns.b(), isFull ? ns.m("full") : ""]
192
+ }, [((_a = $slots.default) == null ? void 0 : _a.call($slots)) || createVNode("div", {
193
+ "class": ns.e("wrapper")
194
+ }, [backdrop ? createVNode("div", {
195
+ "class": ns.e("mask")
196
+ }, null) : null, createVNode("div", {
197
+ "style": style,
198
+ "class": ns.e("area")
199
+ }, [createVNode("div", {
200
+ "class": ns.e("busy-default-spinner")
201
+ }, [createVNode("div", {
202
+ "class": ns.e("bar1")
203
+ }, null), createVNode("div", {
204
+ "class": ns.e("bar2")
205
+ }, null), createVNode("div", {
206
+ "class": ns.e("bar3")
207
+ }, null), createVNode("div", {
208
+ "class": ns.e("bar4")
209
+ }, null)]), message ? createVNode("span", {
210
+ "class": ns.e("text")
211
+ }, [message]) : null])])]);
212
+ }
213
+ });
214
+ const COMPONENT_CONTAINER_SYMBOL = Symbol("dev_component_container");
215
+ function createComponent(component, props, children = null) {
216
+ const vnode = h(component, { ...props }, children);
217
+ const container = document.createElement("div");
218
+ vnode[COMPONENT_CONTAINER_SYMBOL] = container;
219
+ render(vnode, container);
220
+ return vnode.component;
221
+ }
222
+ function unmountComponent(ComponnetInstance) {
223
+ render(null, ComponnetInstance == null ? void 0 : ComponnetInstance.vnode[COMPONENT_CONTAINER_SYMBOL]);
224
+ }
225
+ const loadingConstructor = defineComponent(Loading);
226
+ const cacheInstance = /* @__PURE__ */ new WeakSet();
227
+ const isEmpty = (val) => {
228
+ if (!val) {
229
+ return true;
230
+ }
231
+ if (Array.isArray(val)) {
232
+ return val.length === 0;
233
+ }
234
+ if (val instanceof Set || val instanceof Map) {
235
+ return val.size === 0;
236
+ }
237
+ if (val instanceof Promise) {
238
+ return false;
239
+ }
240
+ if (typeof val === "object") {
241
+ try {
242
+ return Object.keys(val).length === 0;
243
+ } catch (e) {
244
+ return false;
245
+ }
246
+ }
247
+ return false;
248
+ };
249
+ const getType = (vari) => {
250
+ return Object.prototype.toString.call(vari).slice(8, -1).toLowerCase();
251
+ };
252
+ const isPromise = (value) => {
253
+ const type = getType(value);
254
+ switch (type) {
255
+ case "promise":
256
+ return [value];
257
+ case "array":
258
+ if (value.some((val) => getType(val) !== "promise")) {
259
+ console.error(new TypeError("Binding values should all be of type Promise"));
260
+ return "error";
261
+ }
262
+ return value;
263
+ default:
264
+ return false;
265
+ }
266
+ };
267
+ const unmount = (el) => {
268
+ cacheInstance.delete(el);
269
+ el.instance.proxy.close();
270
+ unmountComponent(el.instance);
271
+ };
272
+ const toggleLoading = (el, binding) => {
273
+ var _a, _b, _c;
274
+ if (binding.value) {
275
+ const vals = isPromise(binding.value);
276
+ if (vals === "error") {
277
+ return;
278
+ }
279
+ (_c = (_b = (_a = el == null ? void 0 : el.instance) == null ? void 0 : _a.proxy) == null ? void 0 : _b.open) == null ? void 0 : _c.call(_b);
280
+ el.appendChild(el.mask);
281
+ cacheInstance.add(el);
282
+ if (vals) {
283
+ Promise.all(vals).catch((err) => {
284
+ console.error(new Error("Promise handling errors"), err);
285
+ }).finally(() => {
286
+ unmount(el);
287
+ });
288
+ }
289
+ } else {
290
+ unmount(el);
291
+ }
292
+ };
293
+ const removeAttribute = (el) => {
294
+ el.removeAttribute("zindex");
295
+ el.removeAttribute("positiontype");
296
+ el.removeAttribute("backdrop");
297
+ el.removeAttribute("message");
298
+ el.removeAttribute("view");
299
+ el.removeAttribute("loadingtemplateref");
300
+ };
301
+ const handleProps = (el, vprops) => {
302
+ var _a;
303
+ const props = {
304
+ ...new LoadingOptions(),
305
+ ...vprops
306
+ };
307
+ const loadingTemplateRef = props.loadingTemplateRef;
308
+ const loadingInstance = createComponent(loadingConstructor, { ...props }, loadingTemplateRef ? () => loadingTemplateRef : null);
309
+ el.style.position = props.positionType;
310
+ el.options = props;
311
+ el.instance = loadingInstance;
312
+ el.mask = (_a = loadingInstance == null ? void 0 : loadingInstance.proxy) == null ? void 0 : _a.$el;
313
+ };
314
+ const loadingDirective = {
315
+ mounted: function(el, binding, vnode) {
316
+ handleProps(el, vnode.props);
317
+ removeAttribute(el);
318
+ !isEmpty(binding.value) && toggleLoading(el, binding);
319
+ },
320
+ updated: function(el, binding, vnode) {
321
+ if (!isEmpty(binding.value) && cacheInstance.has(el) || isEmpty(binding.value) && !cacheInstance.has(el)) {
322
+ return;
323
+ }
324
+ !cacheInstance.has(el) && handleProps(el, vnode.props);
325
+ removeAttribute(el);
326
+ toggleLoading(el, binding);
327
+ }
328
+ };
329
+ function className(classStr, classOpt) {
330
+ let classname = classStr;
331
+ if (typeof classOpt === "object") {
332
+ Object.keys(classOpt).forEach((key) => {
333
+ classOpt[key] && (classname += ` ${key}`);
334
+ });
335
+ }
336
+ return classname;
337
+ }
338
+ var editableSelect = "";
339
+ function useSelect(props) {
340
+ const normalizeOptions = computed(() => {
341
+ return props.options.map((option) => {
342
+ let res;
343
+ if (option !== "null" && typeof option === "object") {
344
+ res = {
345
+ ...option,
346
+ label: option.label || "",
347
+ value: option.value !== void 0 ? option.value : option.label || ""
348
+ };
349
+ } else {
350
+ res = {
351
+ label: String(option),
352
+ value: option
353
+ };
354
+ }
355
+ return res;
356
+ });
357
+ });
358
+ return { normalizeOptions };
359
+ }
360
+ function useFilterOptions(enableLazyLoad, normalizeOptions, inputValue, searchFn) {
361
+ const filteredOptions = computed(() => {
362
+ if (!inputValue.value || enableLazyLoad) {
363
+ return normalizeOptions.value;
364
+ }
365
+ return normalizeOptions.value.filter((option) => {
366
+ return searchFn(option, inputValue.value);
367
+ });
368
+ });
369
+ return { filteredOptions };
370
+ }
371
+ function useInput(inputValue, ctx2) {
372
+ const onInputChange = (value) => {
373
+ ctx2.emit("search", value);
374
+ };
375
+ const handleInput = (event) => {
376
+ const value = event.target.value;
377
+ inputValue.value = value;
378
+ onInputChange(value);
379
+ };
380
+ return {
381
+ handleInput
382
+ };
383
+ }
384
+ function useLazyLoad(dropdownRef, enableLazyLoad, ctx2) {
385
+ const loadMore = () => {
386
+ const dropdownVal = dropdownRef.value;
387
+ if (!enableLazyLoad) {
388
+ return;
389
+ }
390
+ if (dropdownVal.clientHeight + dropdownVal.scrollTop >= dropdownVal.scrollHeight) {
391
+ ctx2.emit("loadMore");
392
+ }
393
+ };
394
+ return { loadMore };
395
+ }
396
+ function useKeyboardSelect(dropdownRef, visible, inputValue, cacheInput, filteredOptions, optionDisabledKey, filterOption, loading2, handleClick, closeMenu, toggleMenu) {
397
+ const hoverIndex = ref(0);
398
+ const selectedIndex = ref(0);
399
+ const updateHoveringIndex = (index2) => {
400
+ hoverIndex.value = index2;
401
+ };
402
+ const scrollToItem = (index2) => {
403
+ const ul = dropdownRef.value;
404
+ const li = ul.children[index2];
405
+ nextTick(() => {
406
+ if (li.scrollIntoViewIfNeeded) {
407
+ li.scrollIntoViewIfNeeded(false);
408
+ } else {
409
+ const containerInfo = ul.getBoundingClientRect();
410
+ const elementInfo = li.getBoundingClientRect();
411
+ if (elementInfo.bottom > containerInfo.bottom || elementInfo.top < containerInfo.top) {
412
+ li.scrollIntoView(false);
413
+ }
414
+ }
415
+ });
416
+ };
417
+ const handleEscape = () => {
418
+ inputValue.value = cacheInput.value;
419
+ closeMenu();
420
+ };
421
+ const handleEnter = () => {
422
+ const len = filteredOptions.value.length;
423
+ if (!visible.value || !len) {
424
+ return toggleMenu();
425
+ }
426
+ len && len === 1 ? handleClick(filteredOptions.value[0], 1) : handleClick(filteredOptions.value[hoverIndex.value], hoverIndex.value);
427
+ return closeMenu();
428
+ };
429
+ const handleKeyboardNavigation = (direction) => {
430
+ const len = filteredOptions.value.length;
431
+ if (!len || len === 1) {
432
+ return;
433
+ }
434
+ if (!["ArrowDown", "ArrowUp"].includes(direction)) {
435
+ return;
436
+ }
437
+ if (filterOption === false && loading2.value) {
438
+ return;
439
+ }
440
+ let newIndex = 0;
441
+ newIndex = hoverIndex.value;
442
+ if (direction === "ArrowUp") {
443
+ newIndex -= 1;
444
+ if (newIndex === -1) {
445
+ newIndex = len - 1;
446
+ }
447
+ } else if (direction === "ArrowDown") {
448
+ newIndex += 1;
449
+ if (newIndex === len) {
450
+ newIndex = 0;
451
+ }
452
+ }
453
+ hoverIndex.value = newIndex;
454
+ const option = filteredOptions.value[newIndex];
455
+ if (option[optionDisabledKey]) {
456
+ return handleKeyboardNavigation(direction);
457
+ }
458
+ updateHoveringIndex(newIndex);
459
+ scrollToItem(newIndex);
460
+ };
461
+ const handleKeydown = (event) => {
462
+ const keyCode = event.key || event.code;
463
+ switch (keyCode) {
464
+ case "Escape":
465
+ handleEscape();
466
+ break;
467
+ case "Enter":
468
+ handleEnter();
469
+ break;
470
+ default:
471
+ handleKeyboardNavigation(keyCode);
472
+ }
473
+ };
474
+ return { handleKeydown, hoverIndex, selectedIndex };
475
+ }
476
+ const flexibleOverlayProps = {
477
+ modelValue: {
478
+ type: Boolean,
479
+ default: false
480
+ },
481
+ origin: {
482
+ type: Object,
483
+ require: true
484
+ },
485
+ position: {
486
+ type: Array,
487
+ default: ["bottom"]
488
+ },
489
+ offset: {
490
+ type: [Number, Object],
491
+ default: 8
492
+ },
493
+ shiftOffset: {
494
+ type: Number
495
+ },
496
+ align: {
497
+ type: String,
498
+ default: null
499
+ },
500
+ showArrow: {
501
+ type: Boolean,
502
+ default: false
503
+ },
504
+ isArrowCenter: {
505
+ type: Boolean,
506
+ default: true
507
+ }
508
+ };
509
+ function getScrollParent(element) {
510
+ const overflowRegex = /(auto|scroll|hidden)/;
511
+ for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
512
+ const style = window.getComputedStyle(parent);
513
+ if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
514
+ return parent;
515
+ }
516
+ }
517
+ return window;
518
+ }
519
+ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
520
+ let { x, y } = point;
521
+ if (!isArrowCenter) {
522
+ const { width, height } = originRect;
523
+ if (x && placement.includes("start")) {
524
+ x = 12;
525
+ }
526
+ if (x && placement.includes("end")) {
527
+ x = Math.round(width - 24);
528
+ }
529
+ if (y && placement.includes("start")) {
530
+ y = 10;
531
+ }
532
+ if (y && placement.includes("end")) {
533
+ y = height - 14;
534
+ }
535
+ }
536
+ return { x, y };
537
+ }
538
+ function useOverlay(props, emit) {
539
+ const overlayRef = ref();
540
+ const arrowRef = ref();
541
+ let originParent = null;
542
+ const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
543
+ const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
544
+ const staticSide = {
545
+ top: "bottom",
546
+ right: "left",
547
+ bottom: "top",
548
+ left: "right"
549
+ }[placement.split("-")[0]];
550
+ Object.assign(arrowEl.style, {
551
+ left: x ? `${x}px` : "",
552
+ top: y ? `${y}px` : "",
553
+ right: "",
554
+ bottom: "",
555
+ [staticSide]: "-4px"
556
+ });
557
+ };
558
+ const updatePosition = async () => {
559
+ const hostEl = props.origin;
560
+ const overlayEl = unref(overlayRef.value);
561
+ const arrowEl = unref(arrowRef.value);
562
+ const middleware = [
563
+ offset(props.offset),
564
+ autoPlacement({
565
+ alignment: props.align,
566
+ allowedPlacements: props.position
567
+ })
568
+ ];
569
+ props.showArrow && middleware.push(arrow({ element: arrowEl }));
570
+ props.shiftOffset !== void 0 && middleware.push(shift());
571
+ const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
572
+ strategy: "fixed",
573
+ middleware
574
+ });
575
+ let applyX = x;
576
+ let applyY = y;
577
+ if (props.shiftOffset !== void 0) {
578
+ const { x: shiftX, y: shiftY } = middlewareData.shift;
579
+ shiftX < 0 && (applyX -= props.shiftOffset);
580
+ shiftX > 0 && (applyX += props.shiftOffset);
581
+ shiftY < 0 && (applyY -= props.shiftOffset);
582
+ shiftY > 0 && (applyY += props.shiftOffset);
583
+ }
584
+ emit("positionChange", placement);
585
+ Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
586
+ props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
587
+ };
588
+ watch(() => props.modelValue, () => {
589
+ if (props.modelValue && props.origin) {
590
+ originParent = getScrollParent(props.origin);
591
+ nextTick(updatePosition);
592
+ originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
593
+ originParent !== window && window.addEventListener("scroll", updatePosition);
594
+ window.addEventListener("resize", updatePosition);
595
+ } else {
596
+ originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
597
+ originParent !== window && window.removeEventListener("scroll", updatePosition);
598
+ window.removeEventListener("resize", updatePosition);
599
+ }
600
+ });
601
+ onUnmounted(() => {
602
+ originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
603
+ originParent !== window && window.removeEventListener("scroll", updatePosition);
604
+ window.removeEventListener("resize", updatePosition);
605
+ });
606
+ return { arrowRef, overlayRef, updatePosition };
607
+ }
608
+ var flexibleOverlay = "";
609
+ const FlexibleOverlay = defineComponent({
610
+ name: "DFlexibleOverlay",
611
+ inheritAttrs: false,
612
+ props: flexibleOverlayProps,
613
+ emits: ["update:modelValue", "positionChange"],
614
+ setup(props, {
615
+ slots,
616
+ attrs,
617
+ emit,
618
+ expose
619
+ }) {
620
+ const ns = useNamespace("flexible-overlay");
621
+ const {
622
+ arrowRef,
623
+ overlayRef,
624
+ updatePosition
625
+ } = useOverlay(props, emit);
626
+ expose({
627
+ updatePosition
628
+ });
629
+ return () => {
630
+ var _a;
631
+ return props.modelValue && createVNode("div", mergeProps({
632
+ "ref": overlayRef,
633
+ "class": ns.b()
634
+ }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots), props.showArrow && createVNode("div", {
635
+ "ref": arrowRef,
636
+ "class": ns.e("arrow")
637
+ }, null)]);
638
+ };
639
+ }
640
+ });
641
+ function useCacheFilteredOptions(filteredOptions) {
642
+ const cacheFilteredOptions = computed(() => {
643
+ const map = /* @__PURE__ */ new Map();
644
+ filteredOptions.value.forEach((item) => {
645
+ map.set(item, item.value);
646
+ });
647
+ return map;
648
+ });
649
+ const getOptionValue = (option) => cacheFilteredOptions.value.get(option);
650
+ return {
651
+ getOptionValue
652
+ };
653
+ }
654
+ function deepAssign(...objects) {
655
+ const isObject = (obj) => obj && typeof obj === "object";
656
+ return objects.reduce((prev, from) => {
657
+ Object.keys(from).forEach((key) => {
658
+ const pVal = prev[key];
659
+ const oVal = from[key];
660
+ if (Array.isArray(pVal) && Array.isArray(oVal)) {
661
+ prev[key] = Array.from(/* @__PURE__ */ new Set([...oVal, ...pVal]));
662
+ } else if (isObject(pVal) && isObject(oVal)) {
663
+ prev[key] = deepAssign(pVal, oVal);
664
+ } else {
665
+ prev[key] = oVal;
666
+ }
667
+ });
668
+ return prev;
669
+ }, {});
670
+ }
671
+ var zhCN = {
672
+ pagination: {
673
+ totalItemText: "\u6240\u6709\u6761\u76EE",
674
+ goToText: "\u8DF3\u81F3"
675
+ },
676
+ accordion: {
677
+ loading: "\u52A0\u8F7D\u4E2D",
678
+ noData: "\u6CA1\u6709\u6570\u636E"
679
+ },
680
+ autoCompleteDropdown: {
681
+ latestInput: "\u6700\u8FD1\u8F93\u5165"
682
+ },
683
+ cascaderList: {
684
+ noData: "\u6CA1\u6709\u6570\u636E"
685
+ },
686
+ colorPicker: {
687
+ foundationPanel: "\u57FA\u7840\u9762\u677F",
688
+ advancedPanel: "\u9AD8\u7EA7\u9762\u677F"
689
+ },
690
+ datePickerPro: {
691
+ ok: "\u786E\u5B9A",
692
+ placeholder: "\u8BF7\u9009\u62E9\u65E5\u671F",
693
+ month1: "1\u6708",
694
+ month2: "2\u6708",
695
+ month3: "3\u6708",
696
+ month4: "4\u6708",
697
+ month5: "5\u6708",
698
+ month6: "6\u6708",
699
+ month7: "7\u6708",
700
+ month8: "8\u6708",
701
+ month9: "9\u6708",
702
+ month10: "10\u6708",
703
+ month11: "11\u6708",
704
+ month12: "12\u6708",
705
+ year: "\u5E74",
706
+ startPlaceholder: "\u8BF7\u9009\u62E9\u5F00\u59CB\u65E5\u671F",
707
+ endPlaceholder: "\u8BF7\u9009\u62E9\u7ED3\u675F\u65E5\u671F",
708
+ getWeekDays() {
709
+ return ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D"];
710
+ },
711
+ getTimeArr() {
712
+ return ["\u65F6", "\u5206", "\u79D2"];
713
+ },
714
+ getYearMonthStr(year, month) {
715
+ return `${year}\u5E74${month}\u6708`;
716
+ }
717
+ },
718
+ editableSelect: {
719
+ noRelatedRecords: "\u627E\u4E0D\u5230\u76F8\u5173\u8BB0\u5F55",
720
+ noData: "\u6CA1\u6709\u6570\u636E"
721
+ },
722
+ input: {
723
+ placeholder: "\u8BF7\u8F93\u5165"
724
+ },
725
+ splitterBar: {
726
+ collapse: "\u6536\u8D77",
727
+ expand: "\u5C55\u5F00"
728
+ },
729
+ stepsGuide: {
730
+ previous: "\u4E0A\u4E00\u6B65",
731
+ continue: "\u6211\u77E5\u9053\u5566\uFF0C\u7EE7\u7EED",
732
+ ok: "\u6211\u77E5\u9053\u5566"
733
+ },
734
+ table: {
735
+ selectAll: "\u5168\u9009",
736
+ ok: "\u786E\u5B9A"
737
+ },
738
+ timePopup: {
739
+ ok: "\u786E\u5B9A"
740
+ },
741
+ transfer: {
742
+ unit: "\u9879",
743
+ panelUnit: "\u9879",
744
+ headerUnit: "\u9879",
745
+ noData: "\u6682\u65E0\u6570\u636E",
746
+ placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22"
747
+ },
748
+ tree: {
749
+ loading: "\u52A0\u8F7D\u4E2D",
750
+ newNode: "\u65B0\u8282\u70B9",
751
+ selectPlaceholder: "\u8BF7\u9009\u62E9"
752
+ },
753
+ upload: {
754
+ placeholder: "\u9009\u62E9\u6587\u4EF6",
755
+ getExistSameNameFilesMsg(sameNames) {
756
+ return `\u60A8\u4E0A\u4F20\u7684 "${sameNames}" \u5B58\u5728\u91CD\u540D\u6587\u4EF6, \u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6`;
757
+ },
758
+ getAllFilesBeyondMaximalFileSizeMsg(maximalSize) {
759
+ return `\u6700\u5927\u652F\u6301\u4E0A\u4F20${maximalSize}MB\u7684\u6587\u4EF6, \u60A8\u672C\u6B21\u4E0A\u4F20\u7684\u6240\u6709\u6587\u4EF6\u8D85\u8FC7\u53EF\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F`;
760
+ },
761
+ getBeyondMaximalFileSizeMsg(filename, maximalSize) {
762
+ return `\u6700\u5927\u652F\u6301\u4E0A\u4F20${maximalSize}MB\u7684\u6587\u4EF6, \u60A8\u4E0A\u4F20\u7684\u6587\u4EF6"${filename}"\u8D85\u8FC7\u53EF\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F`;
763
+ },
764
+ getNotAllowedFileTypeMsg(filename, scope) {
765
+ return `\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B: "${scope}", \u60A8\u4E0A\u4F20\u7684\u6587\u4EF6"${filename}"\u4E0D\u5728\u5141\u8BB8\u8303\u56F4\u5185\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6`;
766
+ }
767
+ },
768
+ search: {
769
+ placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57"
770
+ },
771
+ select: {
772
+ placeholder: "\u8BF7\u9009\u62E9",
773
+ noDataText: "\u65E0\u6570\u636E",
774
+ noMatchText: "\u627E\u4E0D\u5230\u76F8\u5173\u8BB0\u5F55",
775
+ loadingText: "\u52A0\u8F7D\u4E2D..."
776
+ },
777
+ tagInput: {
778
+ maxTagsText: "\u5DF2\u8FBE\u5230\u6700\u5927\u4E2A\u6570\uFF1A"
779
+ },
780
+ timeSelect: {
781
+ placeholder: "\u8BF7\u9009\u62E9\u65F6\u95F4"
782
+ }
783
+ };
784
+ const lang = ref("zh-CN");
785
+ let langMessages = reactive({
786
+ [lang.value]: zhCN
787
+ });
788
+ const Locale = {
789
+ messages() {
790
+ return langMessages[lang.value];
791
+ },
792
+ lang() {
793
+ return lang.value;
794
+ },
795
+ use(newLang, newMessages) {
796
+ lang.value = newLang;
797
+ this.add({ [newLang]: newMessages });
798
+ },
799
+ add(newMessages = {}) {
800
+ langMessages = deepAssign(langMessages, newMessages);
801
+ }
802
+ };
803
+ const camelize = (name) => name.substring(1).replace(/^\S/, (s) => s.toLocaleLowerCase());
804
+ function get(object, path) {
805
+ const keys = path.split(".");
806
+ let result = object;
807
+ keys.forEach((key) => {
808
+ var _a;
809
+ result = (_a = result[key]) != null ? _a : "";
810
+ });
811
+ return result;
812
+ }
813
+ function createI18nTranslate(name, app, newPrefix) {
814
+ const prefix = newPrefix || camelize(name) + ".";
815
+ return (path) => {
816
+ var _a;
817
+ const messages = ((_a = app == null ? void 0 : app.appContext.config.globalProperties.langMessages) == null ? void 0 : _a.value) || Locale.messages();
818
+ const message = get(messages, prefix + path) || get(messages, path);
819
+ return message;
820
+ };
821
+ }
822
+ var EditableSelect = defineComponent({
823
+ name: "DEditableSelect",
824
+ directives: {
825
+ clickOutside: clickoutsideDirective,
826
+ dLoading: loadingDirective
827
+ },
828
+ props: editableSelectProps,
829
+ emits: ["update:modelValue", "search", "loadMore"],
830
+ setup(props, ctx2) {
831
+ const app = getCurrentInstance();
832
+ const t = createI18nTranslate("DEditableSelect", app);
833
+ const ns = useNamespace("editable-select");
834
+ const dropdownRef = ref();
835
+ const origin = ref();
836
+ const position = ref(["bottom"]);
837
+ const visible = ref(false);
838
+ const inputValue = ref(props.modelValue);
839
+ const cacheInput = ref();
840
+ const loading2 = ref(props.loading);
841
+ const {
842
+ normalizeOptions
843
+ } = useSelect(props);
844
+ const searchFn = props.searchFn || ((option, term) => option.label.toLocaleLowerCase().includes(term.trim().toLocaleLowerCase()));
845
+ const {
846
+ filteredOptions
847
+ } = useFilterOptions(props.enableLazyLoad, normalizeOptions, inputValue, searchFn);
848
+ const {
849
+ getOptionValue
850
+ } = useCacheFilteredOptions(filteredOptions);
851
+ const emptyText = computed(() => {
852
+ let text;
853
+ if (props.enableLazyLoad) {
854
+ text = t("noData");
855
+ } else {
856
+ text = t("noRelatedRecords");
857
+ }
858
+ return text;
859
+ });
860
+ watch(() => props.loading, (newVal) => {
861
+ loading2.value = newVal;
862
+ });
863
+ const toggleMenu = () => {
864
+ visible.value = !visible.value;
865
+ };
866
+ const closeMenu = () => {
867
+ visible.value = false;
868
+ };
869
+ const {
870
+ loadMore
871
+ } = useLazyLoad(dropdownRef, props.enableLazyLoad, ctx2);
872
+ const {
873
+ handleInput
874
+ } = useInput(inputValue, ctx2);
875
+ const handleClick = (option, index2, curSelectedIndex) => {
876
+ const {
877
+ disabledKey
878
+ } = props;
879
+ if (disabledKey && !!option[disabledKey]) {
880
+ return;
881
+ }
882
+ inputValue.value = option.label;
883
+ cacheInput.value = option.label;
884
+ curSelectedIndex.value = index2;
885
+ const value = getOptionValue(option);
886
+ ctx2.emit("update:modelValue", value + "");
887
+ closeMenu();
888
+ };
889
+ const handleClear = () => {
890
+ inputValue.value = "";
891
+ };
892
+ const {
893
+ handleKeydown,
894
+ hoverIndex,
895
+ selectedIndex
896
+ } = useKeyboardSelect(dropdownRef, visible, inputValue, cacheInput, filteredOptions, props.disabledKey, props.filterOption, loading2, (option, index2) => handleClick(option, index2, selectedIndex), closeMenu, toggleMenu);
897
+ const getItemCls = (option, index2) => {
898
+ const {
899
+ disabledKey
900
+ } = props;
901
+ return className(`devui-dropdown-item`, {
902
+ disabled: disabledKey ? !!option[disabledKey] : false,
903
+ selected: index2 === selectedIndex.value,
904
+ [`${ns.em("dropdown", "bg")}`]: index2 === hoverIndex.value
905
+ });
906
+ };
907
+ return () => {
908
+ const selectCls = className(`${ns.b()} devui-form-group devui-has-feedback ${inputValue.value && props.allowClear && "allow-clear"}`, {
909
+ [`${ns.m("open")}`]: visible.value === true
910
+ });
911
+ const inputCls = className(`devui-form-control devui-dropdown-origin`, {
912
+ "devui-dropdown-origin-open": visible.value === true
913
+ });
914
+ return withDirectives(createVNode("div", {
915
+ "class": selectCls,
916
+ "ref": origin,
917
+ "style": {
918
+ width: props.width + "px"
919
+ }
920
+ }, [createVNode("input", {
921
+ "class": inputCls,
922
+ "onClick": withModifiers(toggleMenu, ["self"]),
923
+ "onInput": handleInput,
924
+ "onKeydown": handleKeydown,
925
+ "value": inputValue.value,
926
+ "disabled": props.disabled,
927
+ "placeholder": props.placeholder,
928
+ "type": "text"
929
+ }, null), createVNode("span", {
930
+ "class": "devui-form-control-feedback"
931
+ }, [createVNode("span", {
932
+ "class": "devui-select-clear-icon",
933
+ "onClick": handleClear
934
+ }, [createVNode(resolveComponent("d-icon"), {
935
+ "name": "icon-remove"
936
+ }, null)]), createVNode("span", {
937
+ "class": "devui-select-chevron-icon"
938
+ }, [createVNode(resolveComponent("d-icon"), {
939
+ "name": "select-arrow"
940
+ }, null)])]), createVNode(Teleport, {
941
+ "to": "body"
942
+ }, {
943
+ default: () => [createVNode(Transition, {
944
+ "name": "fade"
945
+ }, {
946
+ default: () => [createVNode(FlexibleOverlay, {
947
+ "origin": origin.value,
948
+ "modelValue": visible.value,
949
+ "onUpdate:modelValue": ($event) => visible.value = $event,
950
+ "position": position.value
951
+ }, {
952
+ default: () => [createVNode("div", {
953
+ "style": {
954
+ width: props.width + "px"
955
+ },
956
+ "class": `${ns.e("menu")}`
957
+ }, [withDirectives(createVNode("div", {
958
+ "class": `devui-dropdown-menu`
959
+ }, [createVNode("ul", {
960
+ "ref": dropdownRef,
961
+ "class": `${ns.em("list", "unstyled")} devui-scrollbar scroll-height`,
962
+ "style": {
963
+ maxHeight: props.maxHeight + "px"
964
+ },
965
+ "onScroll": loadMore
966
+ }, [filteredOptions.value.map((option, index2) => {
967
+ return createVNode("li", {
968
+ "class": getItemCls(option, index2),
969
+ "onClick": (e) => {
970
+ e.stopPropagation();
971
+ handleClick(option, index2, selectedIndex);
972
+ }
973
+ }, [ctx2.slots.item ? ctx2.slots.item(option) : option.label]);
974
+ }), withDirectives(createVNode("div", {
975
+ "class": "devui-no-data-tip"
976
+ }, [ctx2.slots.noResultItem ? ctx2.slots.noResultItem(inputValue.value) : emptyText.value]), [[vShow, !filteredOptions.value.length]])])]), [[vShow, visible.value], [resolveDirective("d-loading"), props.loading]])])]
977
+ })]
978
+ })]
979
+ })]), [[resolveDirective("click-outside"), closeMenu]]);
980
+ };
981
+ }
982
+ });
983
+ var index = {
984
+ title: "EditableSelect \u53EF\u8F93\u5165\u4E0B\u62C9\u9009\u62E9\u6846",
985
+ category: "\u6570\u636E\u5F55\u5165",
986
+ status: "100%",
987
+ install(app) {
988
+ app.component(EditableSelect.name, EditableSelect);
989
+ }
990
+ };
991
+ export { EditableSelect, index as default, editableSelectProps };