vue-devui 1.0.0-rc.8 → 1.0.1

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 (228) hide show
  1. package/README.md +188 -149
  2. package/alert/index.es.js +14 -9
  3. package/alert/index.umd.js +1 -1
  4. package/alert/style.css +1 -1
  5. package/auto-complete/index.es.js +8392 -418
  6. package/auto-complete/index.umd.js +29 -5
  7. package/auto-complete/style.css +1 -1
  8. package/avatar/index.es.js +59 -74
  9. package/avatar/index.umd.js +1 -1
  10. package/badge/index.es.js +10 -4
  11. package/badge/index.umd.js +1 -1
  12. package/badge/style.css +1 -1
  13. package/button/index.es.js +191 -53
  14. package/button/index.umd.js +17 -17
  15. package/button/style.css +1 -1
  16. package/card/index.es.js +7 -3
  17. package/card/index.umd.js +1 -1
  18. package/card/style.css +1 -1
  19. package/checkbox/index.es.js +8050 -241
  20. package/checkbox/index.umd.js +27 -1
  21. package/checkbox/style.css +1 -1
  22. package/{date-picker → collapse}/index.d.ts +0 -0
  23. package/collapse/index.es.js +213 -0
  24. package/collapse/index.umd.js +1 -0
  25. package/{date-picker → collapse}/package.json +1 -1
  26. package/collapse/style.css +1 -0
  27. package/countdown/index.es.js +56 -13
  28. package/countdown/index.umd.js +1 -1
  29. package/date-picker-pro/index.d.ts +7 -0
  30. package/date-picker-pro/index.es.js +12022 -0
  31. package/date-picker-pro/index.umd.js +27 -0
  32. package/date-picker-pro/package.json +7 -0
  33. package/date-picker-pro/style.css +1 -0
  34. package/drawer/index.es.js +24 -7
  35. package/drawer/index.umd.js +1 -1
  36. package/drawer/style.css +1 -1
  37. package/dropdown/index.es.js +190 -165
  38. package/dropdown/index.umd.js +1 -1
  39. package/dropdown/style.css +1 -1
  40. package/editable-select/index.es.js +785 -145
  41. package/editable-select/index.umd.js +1 -1
  42. package/editable-select/style.css +1 -1
  43. package/form/index.es.js +399 -300
  44. package/form/index.umd.js +16 -16
  45. package/form/style.css +1 -1
  46. package/fullscreen/index.es.js +2 -2
  47. package/fullscreen/index.umd.js +1 -1
  48. package/grid/index.es.js +8 -6
  49. package/grid/index.umd.js +1 -1
  50. package/icon/index.es.js +185 -23
  51. package/icon/index.umd.js +1 -1
  52. package/icon/style.css +1 -0
  53. package/image-preview/index.es.js +2 -2
  54. package/image-preview/index.umd.js +1 -1
  55. package/image-preview/style.css +1 -1
  56. package/input/index.es.js +8220 -45
  57. package/input/index.umd.js +27 -1
  58. package/input/style.css +1 -1
  59. package/input-number/index.es.js +279 -204
  60. package/input-number/index.umd.js +1 -1
  61. package/input-number/style.css +1 -1
  62. package/layout/index.es.js +3 -3
  63. package/layout/index.umd.js +1 -1
  64. package/loading/index.es.js +53 -53
  65. package/loading/index.umd.js +1 -1
  66. package/loading/style.css +1 -1
  67. package/mention/index.d.ts +7 -0
  68. package/mention/index.es.js +8319 -0
  69. package/mention/index.umd.js +36 -0
  70. package/mention/package.json +7 -0
  71. package/mention/style.css +1 -0
  72. package/menu/index.d.ts +7 -0
  73. package/menu/index.es.js +921 -0
  74. package/menu/index.umd.js +1 -0
  75. package/menu/package.json +7 -0
  76. package/menu/style.css +1 -0
  77. package/message/index.d.ts +7 -0
  78. package/message/index.es.js +539 -0
  79. package/message/index.umd.js +1 -0
  80. package/message/package.json +7 -0
  81. package/message/style.css +1 -0
  82. package/modal/index.es.js +451 -173
  83. package/modal/index.umd.js +1 -1
  84. package/modal/style.css +1 -1
  85. package/notification/index.es.js +212 -70
  86. package/notification/index.umd.js +1 -1
  87. package/notification/style.css +1 -1
  88. package/nuxt/components/CheckboxButton.js +3 -0
  89. package/nuxt/components/Collapse.js +3 -0
  90. package/nuxt/components/CollapseItem.js +3 -0
  91. package/nuxt/components/DRangeDatePickerPro.js +3 -0
  92. package/nuxt/components/DatePickerPro.js +3 -0
  93. package/nuxt/components/Icon.js +1 -0
  94. package/nuxt/components/IconGroup.js +3 -0
  95. package/nuxt/components/LABEL_DATA.js +3 -0
  96. package/nuxt/components/Mention.js +3 -0
  97. package/nuxt/components/Menu.js +3 -0
  98. package/nuxt/components/MenuItem.js +3 -0
  99. package/nuxt/components/Message.js +3 -0
  100. package/nuxt/components/Option.js +3 -0
  101. package/nuxt/components/OptionGroup.js +3 -0
  102. package/nuxt/components/RadioButton.js +3 -0
  103. package/nuxt/components/Step.js +3 -0
  104. package/nuxt/components/Steps.js +3 -0
  105. package/nuxt/components/SubMenu.js +3 -0
  106. package/nuxt/components/TABLE_TOKEN.js +3 -0
  107. package/nuxt/components/TimePicker.js +3 -0
  108. package/nuxt/components/TimeSelect.js +3 -0
  109. package/nuxt/components/animationInjectionKey.js +3 -0
  110. package/nuxt/components/collapseItemProps.js +3 -0
  111. package/nuxt/components/collapseProps.js +3 -0
  112. package/nuxt/components/datePickerProCommonProps.js +3 -0
  113. package/nuxt/components/datePickerProPanelProps.js +3 -0
  114. package/nuxt/components/datePickerProProps.js +3 -0
  115. package/nuxt/components/iconProps.js +1 -0
  116. package/nuxt/components/mentionProps.js +3 -0
  117. package/nuxt/components/messageProps.js +3 -0
  118. package/nuxt/components/paginationInjectionKey.js +3 -0
  119. package/nuxt/components/roundInjectionKey.js +3 -0
  120. package/nuxt/components/skeletonItemProps.js +3 -0
  121. package/nuxt/components/stepProps.js +3 -0
  122. package/nuxt/components/stepsProps.js +3 -0
  123. package/nuxt/components/svgIconProps.js +3 -0
  124. package/nuxt/components/tableProps.js +3 -0
  125. package/nuxt/components/timerPickerPanelProps.js +3 -0
  126. package/nuxt/components/treeNodeProps.js +3 -0
  127. package/overlay/index.es.js +89 -142
  128. package/overlay/index.umd.js +1 -1
  129. package/overlay/style.css +1 -1
  130. package/package.json +8 -4
  131. package/pagination/index.es.js +10180 -129
  132. package/pagination/index.umd.js +27 -1
  133. package/pagination/style.css +1 -1
  134. package/panel/index.es.js +4 -0
  135. package/panel/index.umd.js +1 -1
  136. package/panel/style.css +1 -1
  137. package/popover/index.es.js +262 -229
  138. package/popover/index.umd.js +15 -15
  139. package/popover/style.css +1 -1
  140. package/progress/index.es.js +2 -2
  141. package/progress/index.umd.js +2 -2
  142. package/progress/style.css +1 -1
  143. package/radio/index.es.js +7954 -156
  144. package/radio/index.umd.js +27 -1
  145. package/radio/style.css +1 -1
  146. package/rate/index.es.js +16 -8
  147. package/rate/index.umd.js +1 -1
  148. package/rate/style.css +1 -1
  149. package/result/index.es.js +170 -22
  150. package/result/index.umd.js +1 -1
  151. package/result/style.css +1 -1
  152. package/search/index.es.js +3829 -1042
  153. package/search/index.umd.js +18 -18
  154. package/search/style.css +1 -1
  155. package/select/index.es.js +9202 -495
  156. package/select/index.umd.js +27 -1
  157. package/select/style.css +1 -1
  158. package/skeleton/index.es.js +89 -263
  159. package/skeleton/index.umd.js +1 -1
  160. package/skeleton/style.css +1 -1
  161. package/slider/index.es.js +118 -145
  162. package/slider/index.umd.js +1 -1
  163. package/slider/style.css +1 -1
  164. package/splitter/index.es.js +454 -233
  165. package/splitter/index.umd.js +13 -13
  166. package/splitter/style.css +1 -1
  167. package/statistic/index.es.js +34 -16
  168. package/statistic/index.umd.js +1 -1
  169. package/statistic/style.css +1 -1
  170. package/status/index.es.js +6 -2
  171. package/status/index.umd.js +1 -1
  172. package/status/style.css +1 -1
  173. package/steps/index.d.ts +7 -0
  174. package/steps/index.es.js +387 -0
  175. package/steps/index.umd.js +1 -0
  176. package/steps/package.json +7 -0
  177. package/steps/style.css +1 -0
  178. package/style.css +1 -1
  179. package/switch/index.es.js +7787 -62
  180. package/switch/index.umd.js +27 -1
  181. package/switch/style.css +1 -1
  182. package/table/index.es.js +5225 -1726
  183. package/table/index.umd.js +18 -18
  184. package/table/style.css +1 -1
  185. package/tabs/index.es.js +303 -102
  186. package/tabs/index.umd.js +1 -1
  187. package/tabs/style.css +1 -1
  188. package/tag/index.es.js +11 -8
  189. package/tag/index.umd.js +1 -1
  190. package/tag/style.css +1 -1
  191. package/textarea/index.es.js +7876 -41
  192. package/textarea/index.umd.js +35 -1
  193. package/textarea/style.css +1 -1
  194. package/time-picker/index.d.ts +7 -0
  195. package/time-picker/index.es.js +9549 -0
  196. package/time-picker/index.umd.js +27 -0
  197. package/time-picker/package.json +7 -0
  198. package/time-picker/style.css +1 -0
  199. package/time-select/index.d.ts +7 -0
  200. package/time-select/index.es.js +9607 -0
  201. package/time-select/index.umd.js +27 -0
  202. package/time-select/package.json +7 -0
  203. package/time-select/style.css +1 -0
  204. package/timeline/index.es.js +170 -22
  205. package/timeline/index.umd.js +1 -1
  206. package/timeline/style.css +1 -1
  207. package/tooltip/index.es.js +286 -238
  208. package/tooltip/index.umd.js +14 -14
  209. package/tooltip/style.css +1 -1
  210. package/tree/index.es.js +11342 -793
  211. package/tree/index.umd.js +27 -1
  212. package/tree/style.css +1 -1
  213. package/upload/index.es.js +458 -102
  214. package/upload/index.umd.js +1 -1
  215. package/upload/style.css +1 -1
  216. package/vue-devui.es.js +20475 -11072
  217. package/vue-devui.umd.js +31 -24
  218. package/date-picker/index.es.js +0 -1097
  219. package/date-picker/index.umd.js +0 -1
  220. package/date-picker/style.css +0 -1
  221. package/nuxt/components/DatePicker.js +0 -3
  222. package/nuxt/components/FormControl.js +0 -3
  223. package/nuxt/components/FormLabel.js +0 -3
  224. package/nuxt/components/Loading.js +0 -3
  225. package/nuxt/components/StickSlider.js +0 -3
  226. package/nuxt/components/formControlProps.js +0 -3
  227. package/nuxt/components/overlayEmits.js +0 -3
  228. package/nuxt/components/overlayProps.js +0 -3
@@ -0,0 +1,3 @@
1
+ import '../../menu/style.css'
2
+
3
+ export { MenuItem as default } from '../../menu/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../message/style.css'
2
+
3
+ export { Message as default } from '../../message/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../select/style.css'
2
+
3
+ export { Option as default } from '../../select/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../select/style.css'
2
+
3
+ export { OptionGroup as default } from '../../select/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../radio/style.css'
2
+
3
+ export { RadioButton as default } from '../../radio/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../steps/style.css'
2
+
3
+ export { Step as default } from '../../steps/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../steps/style.css'
2
+
3
+ export { Steps as default } from '../../steps/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../menu/style.css'
2
+
3
+ export { SubMenu as default } from '../../menu/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../table/style.css'
2
+
3
+ export { TABLE_TOKEN as default } from '../../table/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../time-picker/style.css'
2
+
3
+ export { TimePicker as default } from '../../time-picker/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../time-select/style.css'
2
+
3
+ export { TimeSelect as default } from '../../time-select/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../skeleton/style.css'
2
+
3
+ export { animationInjectionKey as default } from '../../skeleton/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../collapse/style.css'
2
+
3
+ export { collapseItemProps as default } from '../../collapse/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../collapse/style.css'
2
+
3
+ export { collapseProps as default } from '../../collapse/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../date-picker-pro/style.css'
2
+
3
+ export { datePickerProCommonProps as default } from '../../date-picker-pro/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../date-picker-pro/style.css'
2
+
3
+ export { datePickerProPanelProps as default } from '../../date-picker-pro/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../date-picker-pro/style.css'
2
+
3
+ export { datePickerProProps as default } from '../../date-picker-pro/index.es.js'
@@ -1,2 +1,3 @@
1
+ import '../../icon/style.css'
1
2
 
2
3
  export { iconProps as default } from '../../icon/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../mention/style.css'
2
+
3
+ export { mentionProps as default } from '../../mention/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../message/style.css'
2
+
3
+ export { messageProps as default } from '../../message/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../pagination/style.css'
2
+
3
+ export { paginationInjectionKey as default } from '../../pagination/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../skeleton/style.css'
2
+
3
+ export { roundInjectionKey as default } from '../../skeleton/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../skeleton/style.css'
2
+
3
+ export { skeletonItemProps as default } from '../../skeleton/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../steps/style.css'
2
+
3
+ export { stepProps as default } from '../../steps/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../steps/style.css'
2
+
3
+ export { stepsProps as default } from '../../steps/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../icon/style.css'
2
+
3
+ export { svgIconProps as default } from '../../icon/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../table/style.css'
2
+
3
+ export { tableProps as default } from '../../table/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../date-picker-pro/style.css'
2
+
3
+ export { timerPickerPanelProps as default } from '../../date-picker-pro/index.es.js'
@@ -0,0 +1,3 @@
1
+ import '../../tree/style.css'
2
+
3
+ export { treeNodeProps as default } from '../../tree/index.es.js'
@@ -1,24 +1,60 @@
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, unref, nextTick, mergeProps } from "vue";
1
+ import { watch, onUnmounted, defineComponent, toRefs, createVNode, Transition, mergeProps, ref, unref, nextTick, withModifiers } from "vue";
21
2
  import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
3
+ const fixedOverlayProps = {
4
+ modelValue: {
5
+ type: Boolean,
6
+ default: false
7
+ },
8
+ lockScroll: {
9
+ type: Boolean,
10
+ default: true
11
+ },
12
+ closeOnClickOverlay: {
13
+ type: Boolean,
14
+ default: true
15
+ }
16
+ };
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
+ }
22
58
  function createBem(namespace, element, modifier) {
23
59
  let cls = namespace;
24
60
  if (element) {
@@ -29,8 +65,8 @@ function createBem(namespace, element, modifier) {
29
65
  }
30
66
  return cls;
31
67
  }
32
- function useNamespace(block) {
33
- const namespace = `devui-${block}`;
68
+ function useNamespace(block, needDot = false) {
69
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
34
70
  const b = () => createBem(namespace);
35
71
  const e = (element) => element ? createBem(namespace, element) : "";
36
72
  const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
@@ -42,130 +78,31 @@ function useNamespace(block) {
42
78
  em
43
79
  };
44
80
  }
45
- var baseOverlay = "";
46
- function _isSlot(s) {
47
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
48
- }
49
- const CommonOverlay = defineComponent({
50
- setup(props, ctx) {
51
- const ns = useNamespace("overlay");
52
- return () => {
53
- let _slot;
54
- return createVNode(Teleport, {
55
- "to": "#d-overlay-anchor"
56
- }, {
57
- default: () => [createVNode(Transition, {
58
- "name": ns.e("fade")
59
- }, _isSlot(_slot = renderSlot(ctx.slots, "default")) ? _slot : {
60
- default: () => [_slot]
61
- })]
62
- });
63
- };
64
- }
65
- });
66
- const overlayProps = {
67
- visible: {
68
- type: Boolean
69
- },
70
- backgroundBlock: {
71
- type: Boolean,
72
- default: false
73
- },
74
- backgroundClass: {
75
- type: String,
76
- default: ""
77
- },
78
- backgroundStyle: {
79
- type: [String, Object]
80
- },
81
- onBackdropClick: {
82
- type: Function
83
- },
84
- backdropClose: {
85
- type: Boolean,
86
- default: true
87
- },
88
- hasBackdrop: {
89
- type: Boolean,
90
- default: true
91
- }
92
- };
93
- const fixedOverlayProps = __spreadProps(__spreadValues({}, overlayProps), {
94
- overlayStyle: {
95
- type: [String, Object],
96
- default: void 0
97
- }
98
- });
99
- const overlayEmits = ["update:visible", "backdropClick"];
100
- function useOverlayLogic(props, ctx) {
101
- const ns = useNamespace("overlay");
102
- const backgroundClass = computed(() => {
103
- return [ns.e("background"), props.backgroundClass, !props.hasBackdrop ? ns.em("background", "disabled") : ns.em("background", "color")];
104
- });
105
- const overlayClass = computed(() => {
106
- return ns.b();
107
- });
108
- const handleBackdropClick = (event) => {
109
- var _a;
110
- event.preventDefault();
111
- (_a = props.onBackdropClick) == null ? void 0 : _a.call(props);
112
- if (props.backdropClose) {
113
- ctx.emit("update:visible", false);
114
- }
115
- };
116
- const handleOverlayBubbleCancel = (event) => event.cancelBubble = true;
117
- onMounted(() => {
118
- const body = document.body;
119
- const originOverflow = body.style.overflow;
120
- const originPosition = body.style.position;
121
- watch([() => props.visible, () => props.backgroundBlock], ([visible, backgroundBlock]) => {
122
- if (backgroundBlock) {
123
- const top = body.getBoundingClientRect().y;
124
- if (visible) {
125
- body.style.overflowY = "scroll";
126
- body.style.position = visible ? "fixed" : "";
127
- body.style.top = `${top}px`;
128
- } else {
129
- body.style.overflowY = originOverflow;
130
- body.style.position = originPosition;
131
- body.style.top = "";
132
- window.scrollTo(0, -top);
133
- }
134
- }
135
- });
136
- onUnmounted(() => {
137
- document.body.style.overflow = originOverflow;
138
- });
139
- });
140
- return {
141
- backgroundClass,
142
- overlayClass,
143
- handleBackdropClick,
144
- handleOverlayBubbleCancel
145
- };
146
- }
147
81
  var fixedOverlay = "";
148
82
  const FixedOverlay = defineComponent({
149
83
  name: "DFixedOverlay",
84
+ inheritAttrs: false,
150
85
  props: fixedOverlayProps,
151
- emits: overlayEmits,
86
+ emits: ["update:modelValue", "click"],
152
87
  setup(props, ctx) {
153
88
  const {
154
- backgroundClass,
155
- overlayClass,
156
- handleBackdropClick,
157
- handleOverlayBubbleCancel
158
- } = useOverlayLogic(props, ctx);
159
- return () => createVNode(CommonOverlay, null, {
160
- default: () => [props.visible && createVNode("div", {
161
- "class": backgroundClass.value,
162
- "style": props.backgroundStyle,
163
- "onClick": handleBackdropClick
164
- }, [createVNode("div", {
165
- "class": overlayClass.value,
166
- "style": props.overlayStyle,
167
- "onClick": handleOverlayBubbleCancel
168
- }, [renderSlot(ctx.slots, "default")])])]
89
+ modelValue
90
+ } = toRefs(props);
91
+ const ns = useNamespace("fixed-overlay");
92
+ const {
93
+ onClick
94
+ } = useFixedOverlay(props, ctx);
95
+ return () => createVNode(Transition, {
96
+ "name": ns.m("fade")
97
+ }, {
98
+ default: () => {
99
+ var _a, _b;
100
+ return [modelValue.value && createVNode("div", mergeProps({
101
+ "class": ns.b()
102
+ }, ctx.attrs, {
103
+ "onClick": onClick
104
+ }), [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)])];
105
+ }
169
106
  });
170
107
  }
171
108
  });
@@ -200,6 +137,10 @@ const flexibleOverlayProps = {
200
137
  isArrowCenter: {
201
138
  type: Boolean,
202
139
  default: true
140
+ },
141
+ clickEventBubble: {
142
+ type: Boolean,
143
+ default: false
203
144
  }
204
145
  };
205
146
  function getScrollParent(element) {
@@ -314,6 +255,9 @@ const FlexibleOverlay = defineComponent({
314
255
  expose
315
256
  }) {
316
257
  const ns = useNamespace("flexible-overlay");
258
+ const {
259
+ clickEventBubble
260
+ } = toRefs(props);
317
261
  const {
318
262
  arrowRef,
319
263
  overlayRef,
@@ -327,7 +271,10 @@ const FlexibleOverlay = defineComponent({
327
271
  return props.modelValue && createVNode("div", mergeProps({
328
272
  "ref": overlayRef,
329
273
  "class": ns.b()
330
- }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots), props.showArrow && createVNode("div", {
274
+ }, attrs, {
275
+ "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
276
+ "onPointerup": withModifiers(() => ({}), ["stop"])
277
+ }), [(_a = slots.default) == null ? void 0 : _a.call(slots), props.showArrow && createVNode("div", {
331
278
  "ref": arrowRef,
332
279
  "class": ns.e("arrow")
333
280
  }, null)]);
@@ -353,4 +300,4 @@ var index = {
353
300
  }
354
301
  }
355
302
  };
356
- export { FixedOverlay, FlexibleOverlay, index as default, fixedOverlayProps, flexibleOverlayProps, overlayEmits, overlayProps };
303
+ export { FixedOverlay, FlexibleOverlay, index as default, fixedOverlayProps, flexibleOverlayProps };
@@ -1 +1 @@
1
- var M=Object.defineProperty,q=Object.defineProperties;var X=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var I=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var P=(r,t,d)=>t in r?M(r,t,{enumerable:!0,configurable:!0,writable:!0,value:d}):r[t]=d,N=(r,t)=>{for(var d in t||(t={}))I.call(t,d)&&P(r,d,t[d]);if(j)for(var d of j(t))U.call(t,d)&&P(r,d,t[d]);return r},L=(r,t)=>q(r,X(t));(function(r,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],t):(r=typeof globalThis!="undefined"?globalThis:r||self,t(r.index={},r.Vue,r.dom))})(this,function(r,t,d){"use strict";function m(e,o,n){let s=e;return o&&(s+=`__${o}`),n&&(s+=`--${n}`),s}function h(e){const o=`devui-${e}`;return{b:()=>m(o),e:i=>i?m(o,i):"",m:i=>i?m(o,"",i):"",em:(i,a)=>i&&a?m(o,i,a):""}}var G="";function F(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const $=t.defineComponent({setup(e,o){const n=h("overlay");return()=>{let s;return t.createVNode(t.Teleport,{to:"#d-overlay-anchor"},{default:()=>[t.createVNode(t.Transition,{name:n.e("fade")},F(s=t.renderSlot(o.slots,"default"))?s:{default:()=>[s]})]})}}}),C={visible:{type:Boolean},backgroundBlock:{type:Boolean,default:!1},backgroundClass:{type:String,default:""},backgroundStyle:{type:[String,Object]},onBackdropClick:{type:Function},backdropClose:{type:Boolean,default:!0},hasBackdrop:{type:Boolean,default:!0}},x=L(N({},C),{overlayStyle:{type:[String,Object],default:void 0}}),B=["update:visible","backdropClick"];function R(e,o){const n=h("overlay"),s=t.computed(()=>[n.e("background"),e.backgroundClass,e.hasBackdrop?n.em("background","color"):n.em("background","disabled")]),l=t.computed(()=>n.b()),c=a=>{var f;a.preventDefault(),(f=e.onBackdropClick)==null||f.call(e),e.backdropClose&&o.emit("update:visible",!1)},i=a=>a.cancelBubble=!0;return t.onMounted(()=>{const a=document.body,f=a.style.overflow,u=a.style.position;t.watch([()=>e.visible,()=>e.backgroundBlock],([y,b])=>{if(b){const w=a.getBoundingClientRect().y;y?(a.style.overflowY="scroll",a.style.position=y?"fixed":"",a.style.top=`${w}px`):(a.style.overflowY=f,a.style.position=u,a.style.top="",window.scrollTo(0,-w))}}),t.onUnmounted(()=>{document.body.style.overflow=f})}),{backgroundClass:s,overlayClass:l,handleBackdropClick:c,handleOverlayBubbleCancel:i}}var H="";const g=t.defineComponent({name:"DFixedOverlay",props:x,emits:B,setup(e,o){const{backgroundClass:n,overlayClass:s,handleBackdropClick:l,handleOverlayBubbleCancel:c}=R(e,o);return()=>t.createVNode($,null,{default:()=>[e.visible&&t.createVNode("div",{class:n.value,style:e.backgroundStyle,onClick:l},[t.createVNode("div",{class:s.value,style:e.overlayStyle,onClick:c},[t.renderSlot(o.slots,"default")])])]})}}),E={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},offset:{type:[Number,Object],default:8},shiftOffset:{type:Number},align:{type:String,default:null},showArrow:{type:Boolean,default:!1},isArrowCenter:{type:Boolean,default:!0}};function T(e){const o=/(auto|scroll|hidden)/;for(let n=e;n=n.parentElement;n.parentElement!==document.body){const s=window.getComputedStyle(n);if(o.test(s.overflow+s.overflowX+s.overflowY))return n}return window}function _(e,o,n,s){let{x:l,y:c}=o;if(!e){const{width:i,height:a}=s;l&&n.includes("start")&&(l=12),l&&n.includes("end")&&(l=Math.round(i-24)),c&&n.includes("start")&&(c=10),c&&n.includes("end")&&(c=a-14)}return{x:l,y:c}}function Y(e,o){const n=t.ref(),s=t.ref();let l=null;const c=(a,f,u,y)=>{const{x:b,y:w}=_(e.isArrowCenter,u,f,y.getBoundingClientRect()),v={top:"bottom",right:"left",bottom:"top",left:"right"}[f.split("-")[0]];Object.assign(a.style,{left:b?`${b}px`:"",top:w?`${w}px`:"",right:"",bottom:"",[v]:"-4px"})},i=async()=>{const a=e.origin,f=t.unref(n.value),u=t.unref(s.value),y=[d.offset(e.offset),d.autoPlacement({alignment:e.align,allowedPlacements:e.position})];e.showArrow&&y.push(d.arrow({element:u})),e.shiftOffset!==void 0&&y.push(d.shift());const{x:b,y:w,placement:v,middlewareData:S}=await d.computePosition(a,f,{strategy:"fixed",middleware:y});let p=b,k=w;if(e.shiftOffset!==void 0){const{x:V,y:A}=S.shift;V<0&&(p-=e.shiftOffset),V>0&&(p+=e.shiftOffset),A<0&&(k-=e.shiftOffset),A>0&&(k+=e.shiftOffset)}o("positionChange",v),Object.assign(f.style,{top:`${k}px`,left:`${p}px`}),e.showArrow&&c(u,v,S.arrow,f)};return t.watch(()=>e.modelValue,()=>{e.modelValue&&e.origin?(l=T(e.origin),t.nextTick(i),l==null||l.addEventListener("scroll",i),l!==window&&window.addEventListener("scroll",i),window.addEventListener("resize",i)):(l==null||l.removeEventListener("scroll",i),l!==window&&window.removeEventListener("scroll",i),window.removeEventListener("resize",i))}),t.onUnmounted(()=>{l==null||l.removeEventListener("scroll",i),l!==window&&window.removeEventListener("scroll",i),window.removeEventListener("resize",i)}),{arrowRef:s,overlayRef:n,updatePosition:i}}var J="";const O=t.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:E,emits:["update:modelValue","positionChange"],setup(e,{slots:o,attrs:n,emit:s,expose:l}){const c=h("flexible-overlay"),{arrowRef:i,overlayRef:a,updatePosition:f}=Y(e,s);return l({updatePosition:f}),()=>{var u;return e.modelValue&&t.createVNode("div",t.mergeProps({ref:a,class:c.b()},n),[(u=o.default)==null?void 0:u.call(o),e.showArrow&&t.createVNode("div",{ref:i,class:c.e("arrow")},null)])}}}),z=typeof window!="undefined";var D={title:"Overlay \u906E\u7F69\u5C42",category:"\u901A\u7528",status:"100%",install(e){if(e.component(g.name,g),e.component(O.name,O),z&&!document.getElementById("d-overlay-anchor")){const o=document.createElement("div");o.setAttribute("id","d-overlay-anchor"),o.style.position="fixed",o.style.left="0",o.style.top="0",o.style.zIndex="1000",document.body.appendChild(o)}}};r.FixedOverlay=g,r.FlexibleOverlay=O,r.default=D,r.fixedOverlayProps=x,r.flexibleOverlayProps=E,r.overlayEmits=B,r.overlayProps=C,Object.defineProperty(r,"__esModule",{value:!0}),r[Symbol.toStringTag]="Module"});
1
+ (function(a,l){typeof exports=="object"&&typeof module!="undefined"?l(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],l):(a=typeof globalThis!="undefined"?globalThis:a||self,l(a.index={},a.Vue,a.dom))})(this,function(a,l,m){"use strict";const x={modelValue:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}};function k(){if(document.documentElement.scrollHeight>document.documentElement.clientHeight){const e=document.documentElement.scrollTop,t=document.documentElement.getAttribute("style");return document.documentElement.style.position="fixed",document.documentElement.style.top=`-${e}px`,document.documentElement.style.width=document.documentElement.style.width||"100%",document.documentElement.style.overflowY="scroll",()=>{t?document.documentElement.setAttribute("style",t):document.documentElement.removeAttribute("style"),document.documentElement.scrollTop=e}}}function P(e,t){let o;const i=s=>{s.preventDefault(),t.emit("click",s),e.closeOnClickOverlay&&t.emit("update:modelValue",!1)},n=()=>{o==null||o()};return l.watch(()=>e.modelValue,s=>{s?e.lockScroll&&(o=k()):n()}),l.onUnmounted(n),{onClick:i}}function y(e,t,o){let i=e;return t&&(i+=`__${t}`),o&&(i+=`--${o}`),i}function g(e,t=!1){const o=t?`.devui-${e}`:`devui-${e}`;return{b:()=>y(o),e:d=>d?y(o,d):"",m:d=>d?y(o,"",d):"",em:(d,c)=>d&&c?y(o,d,c):""}}var T="";const E=l.defineComponent({name:"DFixedOverlay",inheritAttrs:!1,props:x,emits:["update:modelValue","click"],setup(e,t){const{modelValue:o}=l.toRefs(e),i=g("fixed-overlay"),{onClick:n}=P(e,t);return()=>l.createVNode(l.Transition,{name:i.m("fade")},{default:()=>{var s,r;return[o.value&&l.createVNode("div",l.mergeProps({class:i.b()},t.attrs,{onClick:n}),[(r=(s=t.slots).default)==null?void 0:r.call(s)])]}})}}),A={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},offset:{type:[Number,Object],default:8},shiftOffset:{type:Number},align:{type:String,default:null},showArrow:{type:Boolean,default:!1},isArrowCenter:{type:Boolean,default:!0},clickEventBubble:{type:Boolean,default:!1}};function L(e){const t=/(auto|scroll|hidden)/;for(let o=e;o=o.parentElement;o.parentElement!==document.body){const i=window.getComputedStyle(o);if(t.test(i.overflow+i.overflowX+i.overflowY))return o}return window}function $(e,t,o,i){let{x:n,y:s}=t;if(!e){const{width:r,height:d}=i;n&&o.includes("start")&&(n=12),n&&o.includes("end")&&(n=Math.round(r-24)),s&&o.includes("start")&&(s=10),s&&o.includes("end")&&(s=d-14)}return{x:n,y:s}}function F(e,t){const o=l.ref(),i=l.ref();let n=null;const s=(d,c,u,f)=>{const{x:w,y:v}=$(e.isArrowCenter,u,c,f.getBoundingClientRect()),h={top:"bottom",right:"left",bottom:"top",left:"right"}[c.split("-")[0]];Object.assign(d.style,{left:w?`${w}px`:"",top:v?`${v}px`:"",right:"",bottom:"",[h]:"-4px"})},r=async()=>{const d=e.origin,c=l.unref(o.value),u=l.unref(i.value),f=[m.offset(e.offset),m.autoPlacement({alignment:e.align,allowedPlacements:e.position})];e.showArrow&&f.push(m.arrow({element:u})),e.shiftOffset!==void 0&&f.push(m.shift());const{x:w,y:v,placement:h,middlewareData:C}=await m.computePosition(d,c,{strategy:"fixed",middleware:f});let b=w,p=v;if(e.shiftOffset!==void 0){const{x:V,y:B}=C.shift;V<0&&(b-=e.shiftOffset),V>0&&(b+=e.shiftOffset),B<0&&(p-=e.shiftOffset),B>0&&(p+=e.shiftOffset)}t("positionChange",h),Object.assign(c.style,{top:`${p}px`,left:`${b}px`}),e.showArrow&&s(u,h,C.arrow,c)};return l.watch(()=>e.modelValue,()=>{e.modelValue&&e.origin?(n=L(e.origin),l.nextTick(r),n==null||n.addEventListener("scroll",r),n!==window&&window.addEventListener("scroll",r),window.addEventListener("resize",r)):(n==null||n.removeEventListener("scroll",r),n!==window&&window.removeEventListener("scroll",r),window.removeEventListener("resize",r))}),l.onUnmounted(()=>{n==null||n.removeEventListener("scroll",r),n!==window&&window.removeEventListener("scroll",r),window.removeEventListener("resize",r)}),{arrowRef:i,overlayRef:o,updatePosition:r}}var j="";const O=l.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:A,emits:["update:modelValue","positionChange"],setup(e,{slots:t,attrs:o,emit:i,expose:n}){const s=g("flexible-overlay"),{clickEventBubble:r}=l.toRefs(e),{arrowRef:d,overlayRef:c,updatePosition:u}=F(e,i);return n({updatePosition:u}),()=>{var f;return e.modelValue&&l.createVNode("div",l.mergeProps({ref:c,class:s.b()},o,{onClick:l.withModifiers(()=>({}),[r.value?"":"stop"]),onPointerup:l.withModifiers(()=>({}),["stop"])}),[(f=t.default)==null?void 0:f.call(t),e.showArrow&&l.createVNode("div",{ref:d,class:s.e("arrow")},null)])}}}),R=typeof window!="undefined";var S={title:"Overlay \u906E\u7F69\u5C42",category:"\u901A\u7528",status:"100%",install(e){if(e.component(E.name,E),e.component(O.name,O),R&&!document.getElementById("d-overlay-anchor")){const t=document.createElement("div");t.setAttribute("id","d-overlay-anchor"),t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.zIndex="1000",document.body.appendChild(t)}}};a.FixedOverlay=E,a.FlexibleOverlay=O,a.default=S,a.fixedOverlayProps=x,a.flexibleOverlayProps=A,Object.defineProperty(a,"__esModule",{value:!0}),a[Symbol.toStringTag]="Module"});
package/overlay/style.css CHANGED
@@ -1 +1 @@
1
- @keyframes d-overlay-fade{0%{opacity:0}to{opacity:1}}.devui-overlay__fade-enter{opacity:0}.devui-overlay__fade-enter-active{animation-name:d-overlay-fade;animation-duration:.3s}.devui-overlay__fade-leave{opacity:1}.devui-overlay__fade-leave-active{animation-name:d-overlay-fade;animation-duration:.3s;animation-direction:reverse}.devui-overlay__background{position:fixed;top:0;left:0;height:100vh;width:100vw;display:flex}.devui-overlay__background--color{background:rgba(0,0,0,.4)}.devui-overlay__background .devui-overlay{position:relative;z-index:1000;pointer-events:auto}.devui-overlay__background--disabled{pointer-events:none}.devui-flexible-overlay{position:fixed;border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-connected-overlay-bg, #ffffff);box-shadow:var(--devui-shadow-connected-overlay, 0 2px 8px 0) var(--devui-shadow, rgba(37, 43, 58, .2));z-index:1000}.devui-flexible-overlay__arrow{position:absolute;width:8px;height:8px;transform:rotate(45deg);background-color:inherit}
1
+ .devui-fixed-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--devui-shadow, rgba(37, 43, 58, .2));z-index:1050}.devui-fixed-overlay--fade-enter-active,.devui-fixed-overlay--fade-leave-active{transition:opacity .1s cubic-bezier(0,0,1,1)}.devui-fixed-overlay--fade-enter-from,.devui-fixed-overlay--fade-leave-to{opacity:0}.devui-flexible-overlay{position:fixed;border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-connected-overlay-bg, #ffffff);box-shadow:var(--devui-shadow-length-connected-overlay, 0 4px 8px 0) var(--devui-shadow, rgba(37, 43, 58, .2));z-index:1000}.devui-flexible-overlay__arrow{position:absolute;width:8px;height:8px;transform:rotate(45deg);background-color:inherit}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-devui",
3
- "version": "1.0.0-rc.8",
3
+ "version": "1.0.1",
4
4
  "license": "MIT",
5
5
  "description": "DevUI components based on Vite and Vue3",
6
6
  "keywords": [
@@ -23,18 +23,22 @@
23
23
  "main": "vue-devui.umd.js",
24
24
  "module": "vue-devui.es.js",
25
25
  "style": "style.css",
26
+ "peerDependencies": {
27
+ "vue": "^3.2"
28
+ },
26
29
  "dependencies": {
27
30
  "@devui-design/icons": "^1.3.0",
28
31
  "@floating-ui/dom": "^0.4.4",
29
32
  "@types/lodash-es": "^4.17.4",
30
- "@vueuse/core": "^7.7.1",
31
- "async-validator": "^4.0.2",
33
+ "@vue/shared": "^3.2.33",
34
+ "@vueuse/core": "8.9.4",
35
+ "async-validator": "^4.0.7",
36
+ "dayjs": "^1.11.3",
32
37
  "devui-theme": "^0.0.1",
33
38
  "fs-extra": "^10.0.0",
34
39
  "lodash": "^4.17.21",
35
40
  "lodash-es": "^4.17.20",
36
41
  "mitt": "^3.0.0",
37
- "vue": "^3.1.1",
38
42
  "vue-router": "^4.0.3"
39
43
  }
40
44
  }