vue-devui 1.0.0-rc.0 → 1.0.0-rc.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 (353) hide show
  1. package/README.md +78 -116
  2. package/alert/index.es.js +74 -45
  3. package/alert/index.umd.js +1 -1
  4. package/alert/style.css +1 -1
  5. package/auto-complete/index.es.js +8190 -296
  6. package/auto-complete/index.umd.js +29 -1
  7. package/auto-complete/style.css +1 -1
  8. package/avatar/index.es.js +153 -146
  9. package/avatar/index.umd.js +1 -1
  10. package/avatar/style.css +1 -1
  11. package/badge/index.es.js +34 -5
  12. package/badge/index.umd.js +1 -1
  13. package/badge/style.css +1 -1
  14. package/button/index.es.js +5741 -127
  15. package/button/index.umd.js +27 -1
  16. package/button/style.css +1 -1
  17. package/card/index.es.js +63 -35
  18. package/card/index.umd.js +1 -1
  19. package/card/style.css +1 -1
  20. package/checkbox/index.es.js +8068 -255
  21. package/checkbox/index.umd.js +27 -1
  22. package/checkbox/style.css +1 -1
  23. package/{accordion → collapse}/index.d.ts +0 -0
  24. package/collapse/index.es.js +379 -0
  25. package/collapse/index.umd.js +1 -0
  26. package/{anchor → collapse}/package.json +1 -1
  27. package/collapse/style.css +1 -0
  28. package/countdown/index.es.js +5 -7
  29. package/countdown/index.umd.js +1 -1
  30. package/date-picker/index.es.js +8167 -288
  31. package/date-picker/index.umd.js +27 -1
  32. package/date-picker/style.css +1 -1
  33. package/drawer/index.es.js +31 -4
  34. package/drawer/index.umd.js +1 -1
  35. package/drawer/style.css +1 -1
  36. package/dropdown/index.es.js +297 -181
  37. package/dropdown/index.umd.js +1 -1
  38. package/dropdown/style.css +1 -1
  39. package/editable-select/index.es.js +525 -154
  40. package/editable-select/index.umd.js +1 -1
  41. package/editable-select/style.css +1 -1
  42. package/form/index.es.js +1048 -1176
  43. package/form/index.umd.js +16 -16
  44. package/form/style.css +1 -1
  45. package/fullscreen/index.es.js +42 -21
  46. package/fullscreen/index.umd.js +1 -1
  47. package/fullscreen/style.css +1 -1
  48. package/grid/index.es.js +101 -86
  49. package/grid/index.umd.js +1 -1
  50. package/grid/style.css +1 -1
  51. package/icon/index.es.js +197 -56
  52. package/icon/index.umd.js +1 -1
  53. package/icon/style.css +1 -0
  54. package/image-preview/index.es.js +55 -31
  55. package/image-preview/index.umd.js +1 -1
  56. package/image-preview/style.css +1 -1
  57. package/input/index.es.js +8074 -144
  58. package/input/index.umd.js +27 -1
  59. package/input/style.css +1 -1
  60. package/input-number/index.es.js +269 -183
  61. package/input-number/index.umd.js +1 -1
  62. package/input-number/style.css +1 -1
  63. package/layout/index.es.js +40 -25
  64. package/layout/index.umd.js +1 -1
  65. package/layout/style.css +1 -1
  66. package/loading/index.es.js +74 -35
  67. package/loading/index.umd.js +1 -1
  68. package/loading/style.css +1 -1
  69. package/modal/index.es.js +412 -204
  70. package/modal/index.umd.js +1 -1
  71. package/modal/style.css +1 -1
  72. package/notification/index.es.js +307 -57
  73. package/notification/index.umd.js +1 -1
  74. package/notification/style.css +1 -1
  75. package/nuxt/components/ButtonGroup.js +3 -0
  76. package/nuxt/components/CheckboxButton.js +3 -0
  77. package/nuxt/components/CheckboxGroup.js +3 -0
  78. package/nuxt/components/Collapse.js +3 -0
  79. package/nuxt/components/CollapseItem.js +3 -0
  80. package/nuxt/components/DropdownPropsKey.js +3 -0
  81. package/nuxt/components/FORM_ITEM_TOKEN.js +3 -0
  82. package/nuxt/components/FORM_TOKEN.js +3 -0
  83. package/nuxt/components/Icon.js +1 -0
  84. package/nuxt/components/IconGroup.js +3 -0
  85. package/nuxt/components/LABEL_DATA.js +3 -0
  86. package/nuxt/components/LoadingOptions.js +3 -0
  87. package/nuxt/components/Option.js +3 -0
  88. package/nuxt/components/PanelBody.js +3 -0
  89. package/nuxt/components/PanelFooter.js +3 -0
  90. package/nuxt/components/PanelHeader.js +3 -0
  91. package/nuxt/components/RadioButton.js +3 -0
  92. package/nuxt/components/TABLE_TOKEN.js +3 -0
  93. package/nuxt/components/Tab.js +3 -0
  94. package/nuxt/components/TimeSelect.js +3 -0
  95. package/nuxt/components/Timeline.js +3 -0
  96. package/nuxt/components/TimelineItem.js +3 -0
  97. package/nuxt/components/alertProps.js +3 -0
  98. package/nuxt/components/autoCompleteProps.js +3 -0
  99. package/nuxt/components/avatarProps.js +3 -0
  100. package/nuxt/components/buttonGroupInjectionKey.js +3 -0
  101. package/nuxt/components/buttonGroupProps.js +3 -0
  102. package/nuxt/components/cardProps.js +3 -0
  103. package/nuxt/components/checkboxGroupInjectionKey.js +3 -0
  104. package/nuxt/components/checkboxGroupProps.js +3 -0
  105. package/nuxt/components/checkboxProps.js +3 -0
  106. package/nuxt/components/colProps.js +3 -0
  107. package/nuxt/components/colPropsBaseClass.js +3 -0
  108. package/nuxt/components/colPropsBaseStyle.js +3 -0
  109. package/nuxt/components/collapseItemProps.js +3 -0
  110. package/nuxt/components/collapseProps.js +3 -0
  111. package/nuxt/components/countdownProps.js +3 -0
  112. package/nuxt/components/editableSelectProps.js +3 -0
  113. package/nuxt/components/formItemProps.js +3 -0
  114. package/nuxt/components/formProps.js +3 -0
  115. package/nuxt/components/fullscreenProps.js +3 -0
  116. package/nuxt/components/iconProps.js +3 -0
  117. package/nuxt/components/imagePreviewProps.js +3 -0
  118. package/nuxt/components/inputProps.js +3 -0
  119. package/nuxt/components/loadingProps.js +3 -0
  120. package/nuxt/components/modalProps.js +3 -0
  121. package/nuxt/components/paginationProps.js +3 -0
  122. package/nuxt/components/panelProps.js +3 -0
  123. package/nuxt/components/progressProps.js +3 -0
  124. package/nuxt/components/rateProps.js +3 -0
  125. package/nuxt/components/resultProps.js +3 -0
  126. package/nuxt/components/rowProps.js +3 -0
  127. package/nuxt/components/screenSizes.js +3 -0
  128. package/nuxt/components/searchProps.js +3 -0
  129. package/nuxt/components/skeletonProps.js +3 -0
  130. package/nuxt/components/sliderProps.js +3 -0
  131. package/nuxt/components/splitterProps.js +3 -0
  132. package/nuxt/components/statisticProps.js +3 -0
  133. package/nuxt/components/svgIconProps.js +3 -0
  134. package/nuxt/components/switchProps.js +3 -0
  135. package/nuxt/components/tableProps.js +3 -0
  136. package/nuxt/components/tabsProps.js +3 -0
  137. package/nuxt/components/tagProps.js +3 -0
  138. package/nuxt/components/textareaProps.js +3 -0
  139. package/nuxt/components/timeAxisProps.js +3 -0
  140. package/nuxt/components/treeProps.js +3 -0
  141. package/overlay/index.es.js +127 -149
  142. package/overlay/index.umd.js +1 -1
  143. package/overlay/style.css +1 -1
  144. package/package.json +11 -44
  145. package/pagination/index.es.js +158 -148
  146. package/pagination/index.umd.js +1 -1
  147. package/pagination/style.css +1 -1
  148. package/panel/index.es.js +45 -32
  149. package/panel/index.umd.js +1 -1
  150. package/panel/style.css +1 -1
  151. package/popover/index.es.js +317 -246
  152. package/popover/index.umd.js +15 -15
  153. package/popover/style.css +1 -1
  154. package/progress/index.es.js +110 -56
  155. package/progress/index.umd.js +3 -3
  156. package/progress/style.css +1 -1
  157. package/radio/index.es.js +7972 -157
  158. package/radio/index.umd.js +27 -1
  159. package/radio/style.css +1 -1
  160. package/rate/index.es.js +77 -55
  161. package/rate/index.umd.js +1 -1
  162. package/rate/style.css +1 -1
  163. package/result/index.es.js +184 -57
  164. package/result/index.umd.js +1 -1
  165. package/result/style.css +1 -1
  166. package/ripple/index.es.js +47 -42
  167. package/ripple/index.umd.js +1 -1
  168. package/search/index.es.js +3653 -1122
  169. package/search/index.umd.js +18 -18
  170. package/search/style.css +1 -1
  171. package/select/index.es.js +9170 -596
  172. package/select/index.umd.js +27 -1
  173. package/select/style.css +1 -1
  174. package/skeleton/index.es.js +63 -41
  175. package/skeleton/index.umd.js +1 -1
  176. package/skeleton/style.css +1 -1
  177. package/slider/index.es.js +144 -137
  178. package/slider/index.umd.js +1 -1
  179. package/slider/style.css +1 -1
  180. package/splitter/index.es.js +469 -349
  181. package/splitter/index.umd.js +15 -15
  182. package/splitter/style.css +1 -1
  183. package/statistic/index.es.js +41 -34
  184. package/statistic/index.umd.js +1 -1
  185. package/statistic/style.css +1 -1
  186. package/status/index.es.js +27 -6
  187. package/status/index.umd.js +1 -1
  188. package/status/style.css +1 -1
  189. package/style.css +1 -1
  190. package/switch/index.es.js +7802 -64
  191. package/switch/index.umd.js +27 -1
  192. package/switch/style.css +1 -1
  193. package/table/index.es.js +10459 -1511
  194. package/table/index.umd.js +27 -1
  195. package/table/style.css +1 -1
  196. package/tabs/index.es.js +344 -141
  197. package/tabs/index.umd.js +1 -1
  198. package/tabs/style.css +1 -1
  199. package/tag/index.es.js +49 -24
  200. package/tag/index.umd.js +1 -1
  201. package/tag/style.css +1 -1
  202. package/textarea/index.es.js +7921 -83
  203. package/textarea/index.umd.js +35 -1
  204. package/textarea/style.css +1 -1
  205. package/{anchor → time-select}/index.d.ts +0 -0
  206. package/{color-picker → time-select}/index.es.js +4171 -2898
  207. package/time-select/index.umd.js +27 -0
  208. package/{breadcrumb → time-select}/package.json +1 -1
  209. package/time-select/style.css +1 -0
  210. package/{back-top → timeline}/index.d.ts +0 -0
  211. package/timeline/index.es.js +425 -0
  212. package/timeline/index.umd.js +1 -0
  213. package/{back-top → timeline}/package.json +1 -1
  214. package/timeline/style.css +1 -0
  215. package/tooltip/index.es.js +308 -236
  216. package/tooltip/index.umd.js +15 -15
  217. package/tooltip/style.css +1 -1
  218. package/tree/index.es.js +5198 -1850
  219. package/tree/index.umd.js +18 -18
  220. package/tree/style.css +1 -1
  221. package/upload/index.es.js +427 -132
  222. package/upload/index.umd.js +1 -1
  223. package/upload/style.css +1 -1
  224. package/vue-devui.es.js +12064 -15841
  225. package/vue-devui.umd.js +30 -20
  226. package/accordion/index.es.js +0 -720
  227. package/accordion/index.umd.js +0 -1
  228. package/accordion/package.json +0 -7
  229. package/accordion/style.css +0 -1
  230. package/anchor/index.es.js +0 -263
  231. package/anchor/index.umd.js +0 -1
  232. package/anchor/style.css +0 -1
  233. package/back-top/index.es.js +0 -128
  234. package/back-top/index.umd.js +0 -1
  235. package/back-top/style.css +0 -1
  236. package/breadcrumb/index.d.ts +0 -7
  237. package/breadcrumb/index.es.js +0 -127
  238. package/breadcrumb/index.umd.js +0 -1
  239. package/breadcrumb/style.css +0 -1
  240. package/carousel/index.d.ts +0 -7
  241. package/carousel/index.es.js +0 -329
  242. package/carousel/index.umd.js +0 -1
  243. package/carousel/package.json +0 -7
  244. package/carousel/style.css +0 -1
  245. package/cascader/index.d.ts +0 -7
  246. package/cascader/index.es.js +0 -5963
  247. package/cascader/index.umd.js +0 -27
  248. package/cascader/package.json +0 -7
  249. package/cascader/style.css +0 -1
  250. package/color-picker/index.d.ts +0 -7
  251. package/color-picker/index.umd.js +0 -27
  252. package/color-picker/package.json +0 -7
  253. package/color-picker/style.css +0 -1
  254. package/comment/index.d.ts +0 -7
  255. package/comment/index.es.js +0 -86
  256. package/comment/index.umd.js +0 -1
  257. package/comment/package.json +0 -7
  258. package/comment/style.css +0 -1
  259. package/dragdrop/index.d.ts +0 -7
  260. package/dragdrop/index.es.js +0 -157
  261. package/dragdrop/index.umd.js +0 -1
  262. package/dragdrop/package.json +0 -7
  263. package/gantt/index.d.ts +0 -7
  264. package/gantt/index.es.js +0 -523
  265. package/gantt/index.umd.js +0 -1
  266. package/gantt/package.json +0 -7
  267. package/gantt/style.css +0 -1
  268. package/input-icon/index.d.ts +0 -7
  269. package/input-icon/index.es.js +0 -331
  270. package/input-icon/index.umd.js +0 -1
  271. package/input-icon/package.json +0 -7
  272. package/input-icon/style.css +0 -1
  273. package/list/index.d.ts +0 -7
  274. package/list/index.es.js +0 -39
  275. package/list/index.umd.js +0 -1
  276. package/list/package.json +0 -7
  277. package/list/style.css +0 -1
  278. package/nav-sprite/index.d.ts +0 -7
  279. package/nav-sprite/index.es.js +0 -68
  280. package/nav-sprite/index.umd.js +0 -1
  281. package/nav-sprite/package.json +0 -7
  282. package/nuxt/components/Accordion.js +0 -3
  283. package/nuxt/components/Anchor.js +0 -3
  284. package/nuxt/components/BackTop.js +0 -3
  285. package/nuxt/components/Breadcrumb.js +0 -3
  286. package/nuxt/components/Carousel.js +0 -3
  287. package/nuxt/components/CarouselItem.js +0 -3
  288. package/nuxt/components/Cascader.js +0 -3
  289. package/nuxt/components/ColorPicker.js +0 -3
  290. package/nuxt/components/Comment.js +0 -3
  291. package/nuxt/components/FormControl.js +0 -3
  292. package/nuxt/components/FormLabel.js +0 -3
  293. package/nuxt/components/Gantt.js +0 -3
  294. package/nuxt/components/InputIcon.js +0 -3
  295. package/nuxt/components/List.js +0 -3
  296. package/nuxt/components/ListItem.js +0 -3
  297. package/nuxt/components/NavSprite.js +0 -2
  298. package/nuxt/components/QuadrantDiagram.js +0 -3
  299. package/nuxt/components/ReadTip.js +0 -3
  300. package/nuxt/components/StepsGuide.js +0 -3
  301. package/nuxt/components/Sticky.js +0 -2
  302. package/nuxt/components/TagInput.js +0 -3
  303. package/nuxt/components/TimeAxis.js +0 -3
  304. package/nuxt/components/TimeAxisItem.js +0 -3
  305. package/nuxt/components/TimePicker.js +0 -3
  306. package/nuxt/components/Transfer.js +0 -3
  307. package/nuxt/components/TreeSelect.js +0 -3
  308. package/nuxt/components/overlayEmits.js +0 -3
  309. package/nuxt/components/overlayProps.js +0 -3
  310. package/quadrant-diagram/index.d.ts +0 -7
  311. package/quadrant-diagram/index.es.js +0 -5728
  312. package/quadrant-diagram/index.umd.js +0 -27
  313. package/quadrant-diagram/package.json +0 -7
  314. package/quadrant-diagram/style.css +0 -1
  315. package/read-tip/index.d.ts +0 -7
  316. package/read-tip/index.es.js +0 -258
  317. package/read-tip/index.umd.js +0 -1
  318. package/read-tip/package.json +0 -7
  319. package/read-tip/style.css +0 -1
  320. package/steps-guide/index.d.ts +0 -7
  321. package/steps-guide/index.es.js +0 -239
  322. package/steps-guide/index.umd.js +0 -1
  323. package/steps-guide/package.json +0 -7
  324. package/steps-guide/style.css +0 -1
  325. package/sticky/index.d.ts +0 -7
  326. package/sticky/index.es.js +0 -197
  327. package/sticky/index.umd.js +0 -1
  328. package/sticky/package.json +0 -7
  329. package/tag-input/index.d.ts +0 -7
  330. package/tag-input/index.es.js +0 -329
  331. package/tag-input/index.umd.js +0 -1
  332. package/tag-input/package.json +0 -7
  333. package/tag-input/style.css +0 -1
  334. package/time-axis/index.d.ts +0 -7
  335. package/time-axis/index.es.js +0 -299
  336. package/time-axis/index.umd.js +0 -1
  337. package/time-axis/package.json +0 -7
  338. package/time-axis/style.css +0 -1
  339. package/time-picker/index.d.ts +0 -7
  340. package/time-picker/index.es.js +0 -1237
  341. package/time-picker/index.umd.js +0 -1
  342. package/time-picker/package.json +0 -7
  343. package/time-picker/style.css +0 -1
  344. package/transfer/index.d.ts +0 -7
  345. package/transfer/index.es.js +0 -7608
  346. package/transfer/index.umd.js +0 -27
  347. package/transfer/package.json +0 -7
  348. package/transfer/style.css +0 -1
  349. package/tree-select/index.d.ts +0 -7
  350. package/tree-select/index.es.js +0 -623
  351. package/tree-select/index.umd.js +0 -1
  352. package/tree-select/package.json +0 -7
  353. package/tree-select/style.css +0 -1
@@ -1,76 +1,109 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import { defineComponent, createVNode, Teleport, Transition, renderSlot, isVNode, computed, onMounted, watch, onUnmounted, ref, nextTick, unref, mergeProps, toRefs, Fragment } from "vue";
21
- import { offset, autoPlacement, arrow, computePosition } from "@floating-ui/dom";
22
- var overlay = "";
23
- function _isSlot(s) {
24
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
25
- }
26
- const CommonOverlay = defineComponent({
27
- setup(props, ctx) {
28
- return () => {
29
- let _slot;
30
- return createVNode(Teleport, {
31
- "to": "#d-overlay-anchor"
32
- }, {
33
- default: () => [createVNode(Transition, {
34
- "name": "devui-overlay-fade"
35
- }, _isSlot(_slot = renderSlot(ctx.slots, "default")) ? _slot : {
36
- default: () => [_slot]
37
- })]
38
- });
39
- };
40
- }
41
- });
42
- const overlayProps = {
43
- visible: {
44
- type: Boolean
45
- },
46
- backgroundBlock: {
1
+ import { watch, onUnmounted, defineComponent, toRefs, createVNode, Transition, mergeProps, ref, unref, nextTick, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, computed, onMounted, provide, Teleport } from "vue";
2
+ import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
3
+ const fixedOverlayProps = {
4
+ modelValue: {
47
5
  type: Boolean,
48
6
  default: false
49
7
  },
50
- backgroundClass: {
51
- type: String,
52
- default: ""
53
- },
54
- backgroundStyle: {
55
- type: [String, Object]
56
- },
57
- onBackdropClick: {
58
- type: Function
59
- },
60
- backdropClose: {
8
+ lockScroll: {
61
9
  type: Boolean,
62
10
  default: true
63
11
  },
64
- hasBackdrop: {
12
+ closeOnClickOverlay: {
65
13
  type: Boolean,
66
14
  default: true
67
15
  }
68
16
  };
69
- const overlayEmits = ["update:visible", "backdropClick"];
70
- const fixedOverlayProps = __spreadProps(__spreadValues({}, overlayProps), {
71
- overlayStyle: {
72
- type: [String, Object],
73
- default: void 0
17
+ function lockScroll() {
18
+ if (document.documentElement.scrollHeight > document.documentElement.clientHeight) {
19
+ const scrollTop = document.documentElement.scrollTop;
20
+ const style = document.documentElement.getAttribute("style");
21
+ document.documentElement.style.position = "fixed";
22
+ document.documentElement.style.top = `-${scrollTop}px`;
23
+ document.documentElement.style.width = document.documentElement.style.width || "100%";
24
+ document.documentElement.style.overflowY = "scroll";
25
+ return () => {
26
+ if (style) {
27
+ document.documentElement.setAttribute("style", style);
28
+ } else {
29
+ document.documentElement.removeAttribute("style");
30
+ }
31
+ document.documentElement.scrollTop = scrollTop;
32
+ };
33
+ }
34
+ return;
35
+ }
36
+ function useFixedOverlay(props, ctx) {
37
+ let lockScrollCb;
38
+ const onClick = (event) => {
39
+ event.preventDefault();
40
+ ctx.emit("click", event);
41
+ if (props.closeOnClickOverlay) {
42
+ ctx.emit("update:modelValue", false);
43
+ }
44
+ };
45
+ const removeBodyAdditions = () => {
46
+ lockScrollCb == null ? void 0 : lockScrollCb();
47
+ };
48
+ watch(() => props.modelValue, (val) => {
49
+ if (val) {
50
+ props.lockScroll && (lockScrollCb = lockScroll());
51
+ } else {
52
+ removeBodyAdditions();
53
+ }
54
+ });
55
+ onUnmounted(removeBodyAdditions);
56
+ return { onClick };
57
+ }
58
+ function createBem(namespace, element, modifier) {
59
+ let cls = namespace;
60
+ if (element) {
61
+ cls += `__${element}`;
62
+ }
63
+ if (modifier) {
64
+ cls += `--${modifier}`;
65
+ }
66
+ return cls;
67
+ }
68
+ function useNamespace(block, needDot = false) {
69
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
70
+ const b = () => createBem(namespace);
71
+ const e = (element) => element ? createBem(namespace, element) : "";
72
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
73
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
74
+ return {
75
+ b,
76
+ e,
77
+ m,
78
+ em
79
+ };
80
+ }
81
+ var fixedOverlay = "";
82
+ defineComponent({
83
+ name: "DFixedOverlay",
84
+ inheritAttrs: false,
85
+ props: fixedOverlayProps,
86
+ emits: ["update:modelValue", "click"],
87
+ setup(props, ctx) {
88
+ const {
89
+ modelValue
90
+ } = toRefs(props);
91
+ const ns2 = useNamespace("fixed-overlay");
92
+ const {
93
+ onClick
94
+ } = useFixedOverlay(props, ctx);
95
+ return () => createVNode(Transition, {
96
+ "name": ns2.m("fade")
97
+ }, {
98
+ default: () => {
99
+ var _a, _b;
100
+ return [modelValue.value && createVNode("div", mergeProps({
101
+ "class": ns2.b()
102
+ }, ctx.attrs, {
103
+ "onClick": onClick
104
+ }), [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)])];
105
+ }
106
+ });
74
107
  }
75
108
  });
76
109
  const flexibleOverlayProps = {
@@ -90,6 +123,9 @@ const flexibleOverlayProps = {
90
123
  type: [Number, Object],
91
124
  default: 8
92
125
  },
126
+ shiftOffset: {
127
+ type: Number
128
+ },
93
129
  align: {
94
130
  type: String,
95
131
  default: null
@@ -103,80 +139,6 @@ const flexibleOverlayProps = {
103
139
  default: true
104
140
  }
105
141
  };
106
- function useOverlayLogic(props, ctx) {
107
- const backgroundClass = computed(() => {
108
- return [
109
- "devui-overlay-background",
110
- props.backgroundClass,
111
- !props.hasBackdrop ? "devui-overlay-background__disabled" : "devui-overlay-background__color"
112
- ];
113
- });
114
- const overlayClass = computed(() => {
115
- return "devui-overlay";
116
- });
117
- const handleBackdropClick = (event) => {
118
- var _a;
119
- event.preventDefault();
120
- (_a = props.onBackdropClick) == null ? void 0 : _a.call(props);
121
- if (props.backdropClose) {
122
- ctx.emit("update:visible", false);
123
- }
124
- };
125
- const handleOverlayBubbleCancel = (event) => event.cancelBubble = true;
126
- onMounted(() => {
127
- const body = document.body;
128
- const originOverflow = body.style.overflow;
129
- const originPosition = body.style.position;
130
- watch([() => props.visible, () => props.backgroundBlock], ([visible, backgroundBlock]) => {
131
- if (backgroundBlock) {
132
- const top = body.getBoundingClientRect().y;
133
- if (visible) {
134
- body.style.overflowY = "scroll";
135
- body.style.position = visible ? "fixed" : "";
136
- body.style.top = `${top}px`;
137
- } else {
138
- body.style.overflowY = originOverflow;
139
- body.style.position = originPosition;
140
- body.style.top = "";
141
- window.scrollTo(0, -top);
142
- }
143
- }
144
- });
145
- onUnmounted(() => {
146
- document.body.style.overflow = originOverflow;
147
- });
148
- });
149
- return {
150
- backgroundClass,
151
- overlayClass,
152
- handleBackdropClick,
153
- handleOverlayBubbleCancel
154
- };
155
- }
156
- defineComponent({
157
- name: "DFixedOverlay",
158
- props: fixedOverlayProps,
159
- emits: overlayEmits,
160
- setup(props, ctx) {
161
- const {
162
- backgroundClass,
163
- overlayClass,
164
- handleBackdropClick,
165
- handleOverlayBubbleCancel
166
- } = useOverlayLogic(props, ctx);
167
- return () => createVNode(CommonOverlay, null, {
168
- default: () => [props.visible && createVNode("div", {
169
- "class": backgroundClass.value,
170
- "style": props.backgroundStyle,
171
- "onClick": handleBackdropClick
172
- }, [createVNode("div", {
173
- "class": overlayClass.value,
174
- "style": props.overlayStyle,
175
- "onClick": handleOverlayBubbleCancel
176
- }, [renderSlot(ctx.slots, "default")])])]
177
- });
178
- }
179
- });
180
142
  function getScrollParent(element) {
181
143
  const overflowRegex = /(auto|scroll|hidden)/;
182
144
  for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
@@ -209,6 +171,7 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
209
171
  function useOverlay(props, emit) {
210
172
  const overlayRef = ref();
211
173
  const arrowRef = ref();
174
+ let originParent = null;
212
175
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
213
176
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
214
177
  const staticSide = {
@@ -237,34 +200,43 @@ function useOverlay(props, emit) {
237
200
  })
238
201
  ];
239
202
  props.showArrow && middleware.push(arrow({ element: arrowEl }));
203
+ props.shiftOffset !== void 0 && middleware.push(shift());
240
204
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
241
205
  strategy: "fixed",
242
206
  middleware
243
207
  });
208
+ let applyX = x;
209
+ let applyY = y;
210
+ if (props.shiftOffset !== void 0) {
211
+ const { x: shiftX, y: shiftY } = middlewareData.shift;
212
+ shiftX < 0 && (applyX -= props.shiftOffset);
213
+ shiftX > 0 && (applyX += props.shiftOffset);
214
+ shiftY < 0 && (applyY -= props.shiftOffset);
215
+ shiftY > 0 && (applyY += props.shiftOffset);
216
+ }
244
217
  emit("positionChange", placement);
245
- Object.assign(overlayEl.style, { top: `${y}px`, left: `${x}px` });
218
+ Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
246
219
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
247
220
  };
248
221
  watch(() => props.modelValue, () => {
249
- const originParent = getScrollParent(props.origin);
250
222
  if (props.modelValue && props.origin) {
223
+ originParent = getScrollParent(props.origin);
251
224
  nextTick(updatePosition);
252
- originParent.addEventListener("scroll", updatePosition);
225
+ originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
253
226
  originParent !== window && window.addEventListener("scroll", updatePosition);
254
227
  window.addEventListener("resize", updatePosition);
255
228
  } else {
256
- originParent.removeEventListener("scroll", updatePosition);
229
+ originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
257
230
  originParent !== window && window.removeEventListener("scroll", updatePosition);
258
231
  window.removeEventListener("resize", updatePosition);
259
232
  }
260
233
  });
261
234
  onUnmounted(() => {
262
- const originParent = getScrollParent(props.origin);
263
- originParent.removeEventListener("scroll", updatePosition);
235
+ originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
264
236
  originParent !== window && window.removeEventListener("scroll", updatePosition);
265
237
  window.removeEventListener("resize", updatePosition);
266
238
  });
267
- return { arrowRef, overlayRef };
239
+ return { arrowRef, overlayRef, updatePosition };
268
240
  }
269
241
  var flexibleOverlay = "";
270
242
  const FlexibleOverlay = defineComponent({
@@ -275,24 +247,86 @@ const FlexibleOverlay = defineComponent({
275
247
  setup(props, {
276
248
  slots,
277
249
  attrs,
278
- emit
250
+ emit,
251
+ expose
279
252
  }) {
253
+ const ns2 = useNamespace("flexible-overlay");
280
254
  const {
281
255
  arrowRef,
282
- overlayRef
256
+ overlayRef,
257
+ updatePosition
283
258
  } = useOverlay(props, emit);
259
+ expose({
260
+ updatePosition
261
+ });
284
262
  return () => {
285
263
  var _a;
286
264
  return props.modelValue && createVNode("div", mergeProps({
287
265
  "ref": overlayRef,
288
- "class": "devui-flexible-overlay"
266
+ "class": ns2.b()
289
267
  }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots), props.showArrow && createVNode("div", {
290
268
  "ref": arrowRef,
291
- "class": "devui-flexible-overlay-arrow"
269
+ "class": ns2.e("arrow")
292
270
  }, null)]);
293
271
  };
294
272
  }
295
273
  });
274
+ const POPPER_TRIGGER_TOKEN = Symbol("popper-trigger");
275
+ const isObject = (val) => val !== null && typeof val === "object";
276
+ const ns = useNamespace("popper-trigger");
277
+ function wrapContent(content) {
278
+ return h("span", { class: ns.b() }, content);
279
+ }
280
+ function getFirstValidChild(nodes) {
281
+ for (const child of nodes) {
282
+ if (isObject(child)) {
283
+ if (child.type === Comment) {
284
+ continue;
285
+ }
286
+ if (child.type === "svg" || child.type === Text) {
287
+ return wrapContent(child);
288
+ }
289
+ if (child.type === Fragment) {
290
+ return getFirstValidChild(child.children);
291
+ }
292
+ return child;
293
+ }
294
+ return wrapContent(child);
295
+ }
296
+ return null;
297
+ }
298
+ var PopperTrigger = defineComponent({
299
+ name: "DPopperTrigger",
300
+ setup(_, ctx) {
301
+ const {
302
+ slots,
303
+ attrs
304
+ } = ctx;
305
+ return () => {
306
+ var _a;
307
+ const defaultSlot = (_a = slots.default) == null ? void 0 : _a.call(slots, attrs);
308
+ const triggerRef = inject(POPPER_TRIGGER_TOKEN);
309
+ if (!defaultSlot) {
310
+ return null;
311
+ }
312
+ const firstValidChild = getFirstValidChild(defaultSlot);
313
+ if (!firstValidChild) {
314
+ return null;
315
+ }
316
+ return withDirectives(cloneVNode(firstValidChild, attrs), [[{
317
+ mounted(el) {
318
+ triggerRef.value = el;
319
+ },
320
+ updated(el) {
321
+ triggerRef.value = el;
322
+ },
323
+ unmounted() {
324
+ triggerRef.value = null;
325
+ }
326
+ }]]);
327
+ };
328
+ }
329
+ });
296
330
  const tooltipProps = {
297
331
  content: {
298
332
  type: String,
@@ -313,6 +347,18 @@ const tooltipProps = {
313
347
  mouseLeaveDelay: {
314
348
  type: Number,
315
349
  default: 100
350
+ },
351
+ enterable: {
352
+ type: Boolean,
353
+ default: true
354
+ },
355
+ disabled: {
356
+ type: Boolean,
357
+ default: false
358
+ },
359
+ hideAfter: {
360
+ type: Number,
361
+ default: 0
316
362
  }
317
363
  };
318
364
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
@@ -1012,7 +1058,7 @@ var lodash = { exports: {} };
1012
1058
  }
1013
1059
  var runInContext = function runInContext2(context) {
1014
1060
  context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
1015
- var Array2 = context.Array, Date = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;
1061
+ var Array2 = context.Array, Date = context.Date, Error = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError = context.TypeError;
1016
1062
  var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;
1017
1063
  var coreJsData = context["__core-js_shared__"];
1018
1064
  var funcToString = funcProto.toString;
@@ -1026,7 +1072,7 @@ var lodash = { exports: {} };
1026
1072
  var objectCtorString = funcToString.call(Object2);
1027
1073
  var oldDash = root._;
1028
1074
  var reIsNative = RegExp2("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
1029
- var Buffer2 = moduleExports ? context.Buffer : undefined$1, Symbol = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined$1, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined$1, symIterator = Symbol ? Symbol.iterator : undefined$1, symToStringTag = Symbol ? Symbol.toStringTag : undefined$1;
1075
+ var Buffer = moduleExports ? context.Buffer : undefined$1, Symbol2 = context.Symbol, Uint8Array = context.Uint8Array, allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined$1, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined$1, symIterator = Symbol2 ? Symbol2.iterator : undefined$1, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined$1;
1030
1076
  var defineProperty = function() {
1031
1077
  try {
1032
1078
  var func = getNative(Object2, "defineProperty");
@@ -1036,12 +1082,12 @@ var lodash = { exports: {} };
1036
1082
  }
1037
1083
  }();
1038
1084
  var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date && Date.now !== root.Date.now && Date.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
1039
- var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined$1, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;
1040
- var DataView = getNative(context, "DataView"), Map = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create");
1041
- var metaMap = WeakMap2 && new WeakMap2();
1085
+ var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined$1, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;
1086
+ var DataView = getNative(context, "DataView"), Map = getNative(context, "Map"), Promise = getNative(context, "Promise"), Set = getNative(context, "Set"), WeakMap = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create");
1087
+ var metaMap = WeakMap && new WeakMap();
1042
1088
  var realNames = {};
1043
- var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap2);
1044
- var symbolProto = Symbol ? Symbol.prototype : undefined$1, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined$1, symbolToString = symbolProto ? symbolProto.toString : undefined$1;
1089
+ var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap);
1090
+ var symbolProto = Symbol2 ? Symbol2.prototype : undefined$1, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined$1, symbolToString = symbolProto ? symbolProto.toString : undefined$1;
1045
1091
  function lodash2(value) {
1046
1092
  if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
1047
1093
  if (value instanceof LodashWrapper) {
@@ -1057,7 +1103,7 @@ var lodash = { exports: {} };
1057
1103
  function object() {
1058
1104
  }
1059
1105
  return function(proto) {
1060
- if (!isObject(proto)) {
1106
+ if (!isObject2(proto)) {
1061
1107
  return {};
1062
1108
  }
1063
1109
  if (objectCreate) {
@@ -1419,7 +1465,7 @@ var lodash = { exports: {} };
1419
1465
  if (result2 !== undefined$1) {
1420
1466
  return result2;
1421
1467
  }
1422
- if (!isObject(value)) {
1468
+ if (!isObject2(value)) {
1423
1469
  return value;
1424
1470
  }
1425
1471
  var isArr = isArray(value);
@@ -1493,9 +1539,9 @@ var lodash = { exports: {} };
1493
1539
  }
1494
1540
  function baseDelay(func, wait, args) {
1495
1541
  if (typeof func != "function") {
1496
- throw new TypeError2(FUNC_ERROR_TEXT);
1542
+ throw new TypeError(FUNC_ERROR_TEXT);
1497
1543
  }
1498
- return setTimeout(function() {
1544
+ return setTimeout2(function() {
1499
1545
  func.apply(undefined$1, args);
1500
1546
  }, wait);
1501
1547
  }
@@ -1766,7 +1812,7 @@ var lodash = { exports: {} };
1766
1812
  return true;
1767
1813
  }
1768
1814
  function baseIsNative(value) {
1769
- if (!isObject(value) || isMasked(value)) {
1815
+ if (!isObject2(value) || isMasked(value)) {
1770
1816
  return false;
1771
1817
  }
1772
1818
  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
@@ -1806,7 +1852,7 @@ var lodash = { exports: {} };
1806
1852
  return result2;
1807
1853
  }
1808
1854
  function baseKeysIn(object) {
1809
- if (!isObject(object)) {
1855
+ if (!isObject2(object)) {
1810
1856
  return nativeKeysIn(object);
1811
1857
  }
1812
1858
  var isProto = isPrototype(object), result2 = [];
@@ -1851,7 +1897,7 @@ var lodash = { exports: {} };
1851
1897
  }
1852
1898
  baseFor(source, function(srcValue, key) {
1853
1899
  stack || (stack = new Stack());
1854
- if (isObject(srcValue)) {
1900
+ if (isObject2(srcValue)) {
1855
1901
  baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
1856
1902
  } else {
1857
1903
  var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined$1;
@@ -1891,7 +1937,7 @@ var lodash = { exports: {} };
1891
1937
  newValue = objValue;
1892
1938
  if (isArguments(objValue)) {
1893
1939
  newValue = toPlainObject(objValue);
1894
- } else if (!isObject(objValue) || isFunction(objValue)) {
1940
+ } else if (!isObject2(objValue) || isFunction(objValue)) {
1895
1941
  newValue = initCloneObject(srcValue);
1896
1942
  }
1897
1943
  } else {
@@ -2030,7 +2076,7 @@ var lodash = { exports: {} };
2030
2076
  return shuffleSelf(array, baseClamp(n, 0, array.length));
2031
2077
  }
2032
2078
  function baseSet(object, path, value, customizer) {
2033
- if (!isObject(object)) {
2079
+ if (!isObject2(object)) {
2034
2080
  return object;
2035
2081
  }
2036
2082
  path = castPath(path, object);
@@ -2044,7 +2090,7 @@ var lodash = { exports: {} };
2044
2090
  var objValue = nested[key];
2045
2091
  newValue = customizer ? customizer(objValue, key, nested) : undefined$1;
2046
2092
  if (newValue === undefined$1) {
2047
- newValue = isObject(objValue) ? objValue : isIndex(path[index2 + 1]) ? [] : {};
2093
+ newValue = isObject2(objValue) ? objValue : isIndex(path[index2 + 1]) ? [] : {};
2048
2094
  }
2049
2095
  }
2050
2096
  assignValue(nested, key, newValue);
@@ -2275,7 +2321,7 @@ var lodash = { exports: {} };
2275
2321
  end = end === undefined$1 ? length : end;
2276
2322
  return !start && end >= length ? array : baseSlice(array, start, end);
2277
2323
  }
2278
- var clearTimeout = ctxClearTimeout || function(id) {
2324
+ var clearTimeout2 = ctxClearTimeout || function(id) {
2279
2325
  return root.clearTimeout(id);
2280
2326
  };
2281
2327
  function cloneBuffer(buffer, isDeep) {
@@ -2288,7 +2334,7 @@ var lodash = { exports: {} };
2288
2334
  }
2289
2335
  function cloneArrayBuffer(arrayBuffer) {
2290
2336
  var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength);
2291
- new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer));
2337
+ new Uint8Array(result2).set(new Uint8Array(arrayBuffer));
2292
2338
  return result2;
2293
2339
  }
2294
2340
  function cloneDataView(dataView, isDeep) {
@@ -2494,7 +2540,7 @@ var lodash = { exports: {} };
2494
2540
  return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
2495
2541
  }
2496
2542
  var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args);
2497
- return isObject(result2) ? result2 : thisBinding;
2543
+ return isObject2(result2) ? result2 : thisBinding;
2498
2544
  };
2499
2545
  }
2500
2546
  function createCurry(func, bitmask, arity) {
@@ -2537,7 +2583,7 @@ var lodash = { exports: {} };
2537
2583
  while (index2--) {
2538
2584
  var func = funcs[index2];
2539
2585
  if (typeof func != "function") {
2540
- throw new TypeError2(FUNC_ERROR_TEXT);
2586
+ throw new TypeError(FUNC_ERROR_TEXT);
2541
2587
  }
2542
2588
  if (prereq && !wrapper && getFuncName(func) == "wrapper") {
2543
2589
  var wrapper = new LodashWrapper([], true);
@@ -2750,7 +2796,7 @@ var lodash = { exports: {} };
2750
2796
  function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) {
2751
2797
  var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
2752
2798
  if (!isBindKey && typeof func != "function") {
2753
- throw new TypeError2(FUNC_ERROR_TEXT);
2799
+ throw new TypeError(FUNC_ERROR_TEXT);
2754
2800
  }
2755
2801
  var length = partials ? partials.length : 0;
2756
2802
  if (!length) {
@@ -2808,7 +2854,7 @@ var lodash = { exports: {} };
2808
2854
  return objValue;
2809
2855
  }
2810
2856
  function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
2811
- if (isObject(objValue) && isObject(srcValue)) {
2857
+ if (isObject2(objValue) && isObject2(srcValue)) {
2812
2858
  stack.set(srcValue, objValue);
2813
2859
  baseMerge(objValue, srcValue, undefined$1, customDefaultsMerge, stack);
2814
2860
  stack["delete"](srcValue);
@@ -2870,7 +2916,7 @@ var lodash = { exports: {} };
2870
2916
  object = object.buffer;
2871
2917
  other = other.buffer;
2872
2918
  case arrayBufferTag:
2873
- if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
2919
+ if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
2874
2920
  return false;
2875
2921
  }
2876
2922
  return true;
@@ -3032,7 +3078,7 @@ var lodash = { exports: {} };
3032
3078
  return result2;
3033
3079
  };
3034
3080
  var getTag = baseGetTag;
3035
- if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {
3081
+ if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {
3036
3082
  getTag = function(value) {
3037
3083
  var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined$1, ctorString = Ctor ? toSource(Ctor) : "";
3038
3084
  if (ctorString) {
@@ -3156,7 +3202,7 @@ var lodash = { exports: {} };
3156
3202
  return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
3157
3203
  }
3158
3204
  function isIterateeCall(value, index2, object) {
3159
- if (!isObject(object)) {
3205
+ if (!isObject2(object)) {
3160
3206
  return false;
3161
3207
  }
3162
3208
  var type = typeof index2;
@@ -3199,7 +3245,7 @@ var lodash = { exports: {} };
3199
3245
  return value === proto;
3200
3246
  }
3201
3247
  function isStrictComparable(value) {
3202
- return value === value && !isObject(value);
3248
+ return value === value && !isObject2(value);
3203
3249
  }
3204
3250
  function matchesStrictComparable(key, srcValue) {
3205
3251
  return function(object) {
@@ -3304,7 +3350,7 @@ var lodash = { exports: {} };
3304
3350
  return object[key];
3305
3351
  }
3306
3352
  var setData = shortOut(baseSetData);
3307
- var setTimeout = ctxSetTimeout || function(func, wait) {
3353
+ var setTimeout2 = ctxSetTimeout || function(func, wait) {
3308
3354
  return root.setTimeout(func, wait);
3309
3355
  };
3310
3356
  var setToString = shortOut(baseSetToString);
@@ -4017,7 +4063,7 @@ var lodash = { exports: {} };
4017
4063
  };
4018
4064
  function after(n, func) {
4019
4065
  if (typeof func != "function") {
4020
- throw new TypeError2(FUNC_ERROR_TEXT);
4066
+ throw new TypeError(FUNC_ERROR_TEXT);
4021
4067
  }
4022
4068
  n = toInteger(n);
4023
4069
  return function() {
@@ -4034,7 +4080,7 @@ var lodash = { exports: {} };
4034
4080
  function before(n, func) {
4035
4081
  var result2;
4036
4082
  if (typeof func != "function") {
4037
- throw new TypeError2(FUNC_ERROR_TEXT);
4083
+ throw new TypeError(FUNC_ERROR_TEXT);
4038
4084
  }
4039
4085
  n = toInteger(n);
4040
4086
  return function() {
@@ -4078,10 +4124,10 @@ var lodash = { exports: {} };
4078
4124
  function debounce(func, wait, options) {
4079
4125
  var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
4080
4126
  if (typeof func != "function") {
4081
- throw new TypeError2(FUNC_ERROR_TEXT);
4127
+ throw new TypeError(FUNC_ERROR_TEXT);
4082
4128
  }
4083
4129
  wait = toNumber(wait) || 0;
4084
- if (isObject(options)) {
4130
+ if (isObject2(options)) {
4085
4131
  leading = !!options.leading;
4086
4132
  maxing = "maxWait" in options;
4087
4133
  maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
@@ -4096,7 +4142,7 @@ var lodash = { exports: {} };
4096
4142
  }
4097
4143
  function leadingEdge(time) {
4098
4144
  lastInvokeTime = time;
4099
- timerId = setTimeout(timerExpired, wait);
4145
+ timerId = setTimeout2(timerExpired, wait);
4100
4146
  return leading ? invokeFunc(time) : result2;
4101
4147
  }
4102
4148
  function remainingWait(time) {
@@ -4112,7 +4158,7 @@ var lodash = { exports: {} };
4112
4158
  if (shouldInvoke(time)) {
4113
4159
  return trailingEdge(time);
4114
4160
  }
4115
- timerId = setTimeout(timerExpired, remainingWait(time));
4161
+ timerId = setTimeout2(timerExpired, remainingWait(time));
4116
4162
  }
4117
4163
  function trailingEdge(time) {
4118
4164
  timerId = undefined$1;
@@ -4124,7 +4170,7 @@ var lodash = { exports: {} };
4124
4170
  }
4125
4171
  function cancel() {
4126
4172
  if (timerId !== undefined$1) {
4127
- clearTimeout(timerId);
4173
+ clearTimeout2(timerId);
4128
4174
  }
4129
4175
  lastInvokeTime = 0;
4130
4176
  lastArgs = lastCallTime = lastThis = timerId = undefined$1;
@@ -4142,13 +4188,13 @@ var lodash = { exports: {} };
4142
4188
  return leadingEdge(lastCallTime);
4143
4189
  }
4144
4190
  if (maxing) {
4145
- clearTimeout(timerId);
4146
- timerId = setTimeout(timerExpired, wait);
4191
+ clearTimeout2(timerId);
4192
+ timerId = setTimeout2(timerExpired, wait);
4147
4193
  return invokeFunc(lastCallTime);
4148
4194
  }
4149
4195
  }
4150
4196
  if (timerId === undefined$1) {
4151
- timerId = setTimeout(timerExpired, wait);
4197
+ timerId = setTimeout2(timerExpired, wait);
4152
4198
  }
4153
4199
  return result2;
4154
4200
  }
@@ -4167,7 +4213,7 @@ var lodash = { exports: {} };
4167
4213
  }
4168
4214
  function memoize(func, resolver) {
4169
4215
  if (typeof func != "function" || resolver != null && typeof resolver != "function") {
4170
- throw new TypeError2(FUNC_ERROR_TEXT);
4216
+ throw new TypeError(FUNC_ERROR_TEXT);
4171
4217
  }
4172
4218
  var memoized = function() {
4173
4219
  var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
@@ -4184,7 +4230,7 @@ var lodash = { exports: {} };
4184
4230
  memoize.Cache = MapCache;
4185
4231
  function negate(predicate) {
4186
4232
  if (typeof predicate != "function") {
4187
- throw new TypeError2(FUNC_ERROR_TEXT);
4233
+ throw new TypeError(FUNC_ERROR_TEXT);
4188
4234
  }
4189
4235
  return function() {
4190
4236
  var args = arguments;
@@ -4228,14 +4274,14 @@ var lodash = { exports: {} };
4228
4274
  });
4229
4275
  function rest(func, start) {
4230
4276
  if (typeof func != "function") {
4231
- throw new TypeError2(FUNC_ERROR_TEXT);
4277
+ throw new TypeError(FUNC_ERROR_TEXT);
4232
4278
  }
4233
4279
  start = start === undefined$1 ? start : toInteger(start);
4234
4280
  return baseRest(func, start);
4235
4281
  }
4236
4282
  function spread(func, start) {
4237
4283
  if (typeof func != "function") {
4238
- throw new TypeError2(FUNC_ERROR_TEXT);
4284
+ throw new TypeError(FUNC_ERROR_TEXT);
4239
4285
  }
4240
4286
  start = start == null ? 0 : nativeMax(toInteger(start), 0);
4241
4287
  return baseRest(function(args) {
@@ -4249,9 +4295,9 @@ var lodash = { exports: {} };
4249
4295
  function throttle(func, wait, options) {
4250
4296
  var leading = true, trailing = true;
4251
4297
  if (typeof func != "function") {
4252
- throw new TypeError2(FUNC_ERROR_TEXT);
4298
+ throw new TypeError(FUNC_ERROR_TEXT);
4253
4299
  }
4254
- if (isObject(options)) {
4300
+ if (isObject2(options)) {
4255
4301
  leading = "leading" in options ? !!options.leading : leading;
4256
4302
  trailing = "trailing" in options ? !!options.trailing : trailing;
4257
4303
  }
@@ -4359,7 +4405,7 @@ var lodash = { exports: {} };
4359
4405
  return typeof value == "number" && nativeIsFinite(value);
4360
4406
  }
4361
4407
  function isFunction(value) {
4362
- if (!isObject(value)) {
4408
+ if (!isObject2(value)) {
4363
4409
  return false;
4364
4410
  }
4365
4411
  var tag = baseGetTag(value);
@@ -4371,7 +4417,7 @@ var lodash = { exports: {} };
4371
4417
  function isLength(value) {
4372
4418
  return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
4373
4419
  }
4374
- function isObject(value) {
4420
+ function isObject2(value) {
4375
4421
  var type = typeof value;
4376
4422
  return value != null && (type == "object" || type == "function");
4377
4423
  }
@@ -4391,7 +4437,7 @@ var lodash = { exports: {} };
4391
4437
  }
4392
4438
  function isNative(value) {
4393
4439
  if (isMaskable(value)) {
4394
- throw new Error2(CORE_ERROR_TEXT);
4440
+ throw new Error(CORE_ERROR_TEXT);
4395
4441
  }
4396
4442
  return baseIsNative(value);
4397
4443
  }
@@ -4478,9 +4524,9 @@ var lodash = { exports: {} };
4478
4524
  if (isSymbol(value)) {
4479
4525
  return NAN;
4480
4526
  }
4481
- if (isObject(value)) {
4527
+ if (isObject2(value)) {
4482
4528
  var other = typeof value.valueOf == "function" ? value.valueOf() : value;
4483
- value = isObject(other) ? other + "" : other;
4529
+ value = isObject2(other) ? other + "" : other;
4484
4530
  }
4485
4531
  if (typeof value != "string") {
4486
4532
  return value === 0 ? value : +value;
@@ -4701,7 +4747,7 @@ var lodash = { exports: {} };
4701
4747
  var Ctor = object && object.constructor;
4702
4748
  if (isArrLike) {
4703
4749
  accumulator = isArr ? new Ctor() : [];
4704
- } else if (isObject(object)) {
4750
+ } else if (isObject2(object)) {
4705
4751
  accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
4706
4752
  } else {
4707
4753
  accumulator = {};
@@ -4929,7 +4975,7 @@ var lodash = { exports: {} };
4929
4975
  if (!variable) {
4930
4976
  source = "with (obj) {\n" + source + "\n}\n";
4931
4977
  } else if (reForbiddenIdentifierChars.test(variable)) {
4932
- throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT);
4978
+ throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);
4933
4979
  }
4934
4980
  source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;");
4935
4981
  source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}";
@@ -4983,7 +5029,7 @@ var lodash = { exports: {} };
4983
5029
  }
4984
5030
  function truncate(string, options) {
4985
5031
  var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;
4986
- if (isObject(options)) {
5032
+ if (isObject2(options)) {
4987
5033
  var separator = "separator" in options ? options.separator : separator;
4988
5034
  length = "length" in options ? toInteger(options.length) : length;
4989
5035
  omission = "omission" in options ? baseToString(options.omission) : omission;
@@ -5048,7 +5094,7 @@ var lodash = { exports: {} };
5048
5094
  try {
5049
5095
  return apply(func, undefined$1, args);
5050
5096
  } catch (e) {
5051
- return isError(e) ? e : new Error2(e);
5097
+ return isError(e) ? e : new Error(e);
5052
5098
  }
5053
5099
  });
5054
5100
  var bindAll = flatRest(function(object, methodNames) {
@@ -5062,7 +5108,7 @@ var lodash = { exports: {} };
5062
5108
  var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee();
5063
5109
  pairs = !length ? [] : arrayMap(pairs, function(pair) {
5064
5110
  if (typeof pair[1] != "function") {
5065
- throw new TypeError2(FUNC_ERROR_TEXT);
5111
+ throw new TypeError(FUNC_ERROR_TEXT);
5066
5112
  }
5067
5113
  return [toIteratee(pair[0]), pair[1]];
5068
5114
  });
@@ -5113,13 +5159,13 @@ var lodash = { exports: {} };
5113
5159
  });
5114
5160
  function mixin(object, source, options) {
5115
5161
  var props = keys(source), methodNames = baseFunctions(source, props);
5116
- if (options == null && !(isObject(source) && (methodNames.length || !props.length))) {
5162
+ if (options == null && !(isObject2(source) && (methodNames.length || !props.length))) {
5117
5163
  options = source;
5118
5164
  source = object;
5119
5165
  object = this;
5120
5166
  methodNames = baseFunctions(source, keys(source));
5121
5167
  }
5122
- var chain2 = !(isObject(options) && "chain" in options) || !!options.chain, isFunc = isFunction(object);
5168
+ var chain2 = !(isObject2(options) && "chain" in options) || !!options.chain, isFunc = isFunction(object);
5123
5169
  arrayEach(methodNames, function(methodName) {
5124
5170
  var func = source[methodName];
5125
5171
  object[methodName] = func;
@@ -5465,7 +5511,7 @@ var lodash = { exports: {} };
5465
5511
  lodash2.isNil = isNil;
5466
5512
  lodash2.isNull = isNull;
5467
5513
  lodash2.isNumber = isNumber;
5468
- lodash2.isObject = isObject;
5514
+ lodash2.isObject = isObject2;
5469
5515
  lodash2.isObjectLike = isObjectLike;
5470
5516
  lodash2.isPlainObject = isPlainObject;
5471
5517
  lodash2.isRegExp = isRegExp;
@@ -5734,7 +5780,7 @@ const TransformOriginMap = {
5734
5780
  right: "-8px 50%"
5735
5781
  };
5736
5782
  function useTooltip(origin, props) {
5737
- const { position, mouseEnterDelay, mouseLeaveDelay } = toRefs(props);
5783
+ const { position, mouseEnterDelay, mouseLeaveDelay, enterable, disabled, hideAfter } = toRefs(props);
5738
5784
  const visible = ref(false);
5739
5785
  const isEnter = ref(false);
5740
5786
  const positionArr = computed(() => typeof position.value === "string" ? [position.value] : position.value);
@@ -5749,6 +5795,9 @@ function useTooltip(origin, props) {
5749
5795
  !isEnter.value && (visible.value = false);
5750
5796
  }, mouseLeaveDelay.value);
5751
5797
  const onMouseenter = () => {
5798
+ if (disabled.value) {
5799
+ return;
5800
+ }
5752
5801
  isEnter.value = true;
5753
5802
  enter();
5754
5803
  };
@@ -5759,11 +5808,29 @@ function useTooltip(origin, props) {
5759
5808
  const onPositionChange = (pos) => {
5760
5809
  placement.value = pos;
5761
5810
  };
5811
+ const quickLeave = () => {
5812
+ isEnter.value = false;
5813
+ visible.value = false;
5814
+ };
5815
+ const onMouseenterOverlay = () => {
5816
+ if (!enterable.value) {
5817
+ quickLeave();
5818
+ } else {
5819
+ onMouseenter();
5820
+ }
5821
+ };
5762
5822
  onMounted(() => {
5763
5823
  origin.value.addEventListener("mouseenter", onMouseenter);
5764
5824
  origin.value.addEventListener("mouseleave", onMouseleave);
5765
5825
  });
5766
- return { visible, placement, positionArr, overlayStyles, onPositionChange };
5826
+ let timer;
5827
+ watch(visible, (newVal) => {
5828
+ if (newVal && hideAfter.value) {
5829
+ timer && clearTimeout(timer);
5830
+ timer = setTimeout(quickLeave, hideAfter.value);
5831
+ }
5832
+ });
5833
+ return { visible, placement, positionArr, overlayStyles, onPositionChange, onMouseenter, onMouseleave, onMouseenterOverlay };
5767
5834
  }
5768
5835
  var tooltip = "";
5769
5836
  var Tooltip = defineComponent({
@@ -5783,42 +5850,47 @@ var Tooltip = defineComponent({
5783
5850
  placement,
5784
5851
  positionArr,
5785
5852
  overlayStyles,
5786
- onPositionChange
5853
+ onPositionChange,
5854
+ onMouseleave,
5855
+ onMouseenterOverlay
5787
5856
  } = useTooltip(origin, props);
5788
- return () => {
5789
- var _a;
5790
- return createVNode(Fragment, null, [createVNode("div", {
5791
- "ref": origin,
5792
- "class": "devui-tooltip-reference"
5793
- }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), createVNode(Teleport, {
5794
- "to": "body"
5857
+ const ns2 = useNamespace("tooltip");
5858
+ provide(POPPER_TRIGGER_TOKEN, origin);
5859
+ return () => createVNode(Fragment, null, [createVNode(PopperTrigger, null, {
5860
+ default: () => {
5861
+ var _a;
5862
+ return [(_a = slots.default) == null ? void 0 : _a.call(slots)];
5863
+ }
5864
+ }), createVNode(Teleport, {
5865
+ "to": "body"
5866
+ }, {
5867
+ default: () => [createVNode(Transition, {
5868
+ "name": showAnimation.value ? ns2.m(`fade-${placement.value}`) : ""
5795
5869
  }, {
5796
- default: () => [createVNode(Transition, {
5797
- "name": showAnimation.value ? `devui-tooltip-fade-${placement.value}` : ""
5870
+ default: () => [createVNode(FlexibleOverlay, {
5871
+ "modelValue": visible.value,
5872
+ "onUpdate:modelValue": ($event) => visible.value = $event,
5873
+ "ref": tooltipRef,
5874
+ "class": ns2.b(),
5875
+ "origin": origin.value,
5876
+ "position": positionArr.value,
5877
+ "offset": 6,
5878
+ "show-arrow": true,
5879
+ "style": overlayStyles.value,
5880
+ "onPositionChange": onPositionChange,
5881
+ "onMouseenter": onMouseenterOverlay,
5882
+ "onMouseleave": onMouseleave
5798
5883
  }, {
5799
- default: () => [createVNode(FlexibleOverlay, {
5800
- "modelValue": visible.value,
5801
- "onUpdate:modelValue": ($event) => visible.value = $event,
5802
- "ref": tooltipRef,
5803
- "class": "devui-tooltip",
5804
- "origin": origin.value,
5805
- "position": positionArr.value,
5806
- "offset": 6,
5807
- "show-arrow": true,
5808
- "style": overlayStyles.value,
5809
- "onPositionChange": onPositionChange
5810
- }, {
5811
- default: () => [createVNode("span", {
5812
- "innerHTML": content.value
5813
- }, null)]
5814
- })]
5884
+ default: () => [createVNode("span", {
5885
+ "innerHTML": content.value
5886
+ }, null)]
5815
5887
  })]
5816
- })]);
5817
- };
5888
+ })]
5889
+ })]);
5818
5890
  }
5819
5891
  });
5820
5892
  var index = {
5821
- title: "Tooltip\u63D0\u793A",
5893
+ title: "Tooltip \u63D0\u793A",
5822
5894
  category: "\u53CD\u9988",
5823
5895
  status: "70%",
5824
5896
  install(app) {