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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/README.md +149 -200
  2. package/alert/index.es.js +46 -15
  3. package/alert/index.umd.js +1 -1
  4. package/alert/style.css +1 -1
  5. package/auto-complete/index.es.js +8166 -287
  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 +29 -4
  12. package/badge/index.umd.js +1 -1
  13. package/badge/style.css +1 -1
  14. package/button/index.es.js +5726 -111
  15. package/button/index.umd.js +27 -1
  16. package/button/style.css +1 -1
  17. package/card/index.es.js +59 -35
  18. package/card/index.umd.js +1 -1
  19. package/card/style.css +1 -1
  20. package/checkbox/index.es.js +8060 -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 +3 -6
  29. package/countdown/index.umd.js +1 -1
  30. package/date-picker/index.es.js +8130 -242
  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 +209 -148
  37. package/dropdown/index.umd.js +1 -1
  38. package/dropdown/style.css +1 -1
  39. package/editable-select/index.es.js +521 -153
  40. package/editable-select/index.umd.js +1 -1
  41. package/editable-select/style.css +1 -1
  42. package/form/index.es.js +1040 -1187
  43. package/form/index.umd.js +16 -16
  44. package/form/style.css +1 -1
  45. package/fullscreen/index.es.js +29 -5
  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 +182 -23
  52. package/icon/index.umd.js +1 -1
  53. package/icon/style.css +1 -0
  54. package/image-preview/index.es.js +53 -30
  55. package/image-preview/index.umd.js +1 -1
  56. package/image-preview/style.css +1 -1
  57. package/input/index.es.js +8066 -144
  58. package/input/index.umd.js +27 -1
  59. package/input/style.css +1 -1
  60. package/input-number/index.es.js +274 -177
  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 +374 -171
  70. package/modal/index.umd.js +1 -1
  71. package/modal/style.css +1 -1
  72. package/notification/index.es.js +292 -40
  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/RadioButton.js +3 -0
  89. package/nuxt/components/Tab.js +3 -0
  90. package/nuxt/components/autoCompleteProps.js +3 -0
  91. package/nuxt/components/avatarProps.js +3 -0
  92. package/nuxt/components/buttonGroupInjectionKey.js +3 -0
  93. package/nuxt/components/buttonGroupProps.js +3 -0
  94. package/nuxt/components/cardProps.js +3 -0
  95. package/nuxt/components/checkboxGroupInjectionKey.js +3 -0
  96. package/nuxt/components/checkboxGroupProps.js +3 -0
  97. package/nuxt/components/checkboxProps.js +3 -0
  98. package/nuxt/components/colProps.js +3 -0
  99. package/nuxt/components/colPropsBaseClass.js +3 -0
  100. package/nuxt/components/colPropsBaseStyle.js +3 -0
  101. package/nuxt/components/collapseItemProps.js +3 -0
  102. package/nuxt/components/collapseProps.js +3 -0
  103. package/nuxt/components/countdownProps.js +3 -0
  104. package/nuxt/components/editableSelectProps.js +3 -0
  105. package/nuxt/components/formItemProps.js +3 -0
  106. package/nuxt/components/formProps.js +3 -0
  107. package/nuxt/components/iconProps.js +1 -0
  108. package/nuxt/components/imagePreviewProps.js +3 -0
  109. package/nuxt/components/inputProps.js +3 -0
  110. package/nuxt/components/loadingProps.js +3 -0
  111. package/nuxt/components/modalProps.js +3 -0
  112. package/nuxt/components/progressProps.js +3 -0
  113. package/nuxt/components/rateProps.js +3 -0
  114. package/nuxt/components/resultProps.js +3 -0
  115. package/nuxt/components/rowProps.js +3 -0
  116. package/nuxt/components/screenSizes.js +3 -0
  117. package/nuxt/components/skeletonProps.js +3 -0
  118. package/nuxt/components/sliderProps.js +3 -0
  119. package/nuxt/components/splitterProps.js +3 -0
  120. package/nuxt/components/statisticProps.js +3 -0
  121. package/nuxt/components/svgIconProps.js +3 -0
  122. package/nuxt/components/switchProps.js +3 -0
  123. package/nuxt/components/tabsProps.js +3 -0
  124. package/nuxt/components/tagProps.js +3 -0
  125. package/nuxt/components/textareaProps.js +3 -0
  126. package/nuxt/components/timeAxisProps.js +3 -0
  127. package/nuxt/components/treeProps.js +3 -0
  128. package/overlay/index.es.js +104 -133
  129. package/overlay/index.umd.js +1 -1
  130. package/overlay/style.css +1 -1
  131. package/package.json +3 -2
  132. package/pagination/index.es.js +148 -136
  133. package/pagination/index.umd.js +1 -1
  134. package/pagination/style.css +1 -1
  135. package/panel/style.css +1 -1
  136. package/popover/index.es.js +294 -230
  137. package/popover/index.umd.js +15 -15
  138. package/popover/style.css +1 -1
  139. package/progress/index.es.js +110 -56
  140. package/progress/index.umd.js +3 -3
  141. package/progress/style.css +1 -1
  142. package/radio/index.es.js +7959 -146
  143. package/radio/index.umd.js +27 -1
  144. package/radio/style.css +1 -1
  145. package/rate/index.es.js +77 -55
  146. package/rate/index.umd.js +1 -1
  147. package/rate/style.css +1 -1
  148. package/result/index.es.js +169 -27
  149. package/result/index.umd.js +1 -1
  150. package/result/style.css +1 -1
  151. package/ripple/index.es.js +43 -42
  152. package/ripple/index.umd.js +1 -1
  153. package/search/index.es.js +3620 -1095
  154. package/search/index.umd.js +18 -18
  155. package/search/style.css +1 -1
  156. package/select/index.es.js +9131 -584
  157. package/select/index.umd.js +27 -1
  158. package/select/style.css +1 -1
  159. package/skeleton/index.es.js +46 -24
  160. package/skeleton/index.umd.js +1 -1
  161. package/skeleton/style.css +1 -1
  162. package/slider/index.es.js +108 -75
  163. package/slider/index.umd.js +1 -1
  164. package/slider/style.css +1 -1
  165. package/splitter/index.es.js +443 -335
  166. package/splitter/index.umd.js +15 -15
  167. package/splitter/style.css +1 -1
  168. package/statistic/index.es.js +7 -18
  169. package/statistic/index.umd.js +1 -1
  170. package/status/index.es.js +26 -2
  171. package/status/index.umd.js +1 -1
  172. package/status/style.css +1 -1
  173. package/style.css +1 -1
  174. package/switch/index.es.js +7794 -64
  175. package/switch/index.umd.js +27 -1
  176. package/switch/style.css +1 -1
  177. package/table/index.es.js +10038 -1180
  178. package/table/index.umd.js +27 -1
  179. package/table/style.css +1 -1
  180. package/tabs/index.es.js +342 -141
  181. package/tabs/index.umd.js +1 -1
  182. package/tabs/style.css +1 -1
  183. package/tag/index.es.js +47 -23
  184. package/tag/index.umd.js +1 -1
  185. package/tag/style.css +1 -1
  186. package/textarea/index.es.js +7913 -83
  187. package/textarea/index.umd.js +35 -1
  188. package/textarea/style.css +1 -1
  189. package/timeline/index.es.js +176 -37
  190. package/timeline/index.umd.js +1 -1
  191. package/timeline/style.css +1 -1
  192. package/tooltip/index.es.js +285 -220
  193. package/tooltip/index.umd.js +15 -15
  194. package/tooltip/style.css +1 -1
  195. package/tree/index.es.js +4190 -1857
  196. package/tree/index.umd.js +18 -18
  197. package/tree/style.css +1 -1
  198. package/upload/index.es.js +365 -106
  199. package/upload/index.umd.js +1 -1
  200. package/upload/style.css +1 -1
  201. package/vue-devui.es.js +20102 -25264
  202. package/vue-devui.umd.js +25 -15
  203. package/accordion/index.es.js +0 -723
  204. package/accordion/index.umd.js +0 -1
  205. package/accordion/package.json +0 -7
  206. package/accordion/style.css +0 -1
  207. package/anchor/index.d.ts +0 -7
  208. package/anchor/index.es.js +0 -263
  209. package/anchor/index.umd.js +0 -1
  210. package/anchor/style.css +0 -1
  211. package/back-top/index.d.ts +0 -7
  212. package/back-top/index.es.js +0 -130
  213. package/back-top/index.umd.js +0 -1
  214. package/back-top/package.json +0 -7
  215. package/back-top/style.css +0 -1
  216. package/breadcrumb/index.d.ts +0 -7
  217. package/breadcrumb/index.es.js +0 -128
  218. package/breadcrumb/index.umd.js +0 -1
  219. package/breadcrumb/package.json +0 -7
  220. package/breadcrumb/style.css +0 -1
  221. package/carousel/index.d.ts +0 -7
  222. package/carousel/index.es.js +0 -314
  223. package/carousel/index.umd.js +0 -1
  224. package/carousel/package.json +0 -7
  225. package/carousel/style.css +0 -1
  226. package/cascader/index.d.ts +0 -7
  227. package/cascader/index.es.js +0 -5971
  228. package/cascader/index.umd.js +0 -27
  229. package/cascader/package.json +0 -7
  230. package/cascader/style.css +0 -1
  231. package/color-picker/index.d.ts +0 -7
  232. package/color-picker/index.es.js +0 -8196
  233. package/color-picker/index.umd.js +0 -27
  234. package/color-picker/package.json +0 -7
  235. package/color-picker/style.css +0 -1
  236. package/comment/index.d.ts +0 -7
  237. package/comment/index.es.js +0 -86
  238. package/comment/index.umd.js +0 -1
  239. package/comment/package.json +0 -7
  240. package/comment/style.css +0 -1
  241. package/dragdrop/index.d.ts +0 -7
  242. package/dragdrop/index.es.js +0 -157
  243. package/dragdrop/index.umd.js +0 -1
  244. package/dragdrop/package.json +0 -7
  245. package/gantt/index.d.ts +0 -7
  246. package/gantt/index.es.js +0 -523
  247. package/gantt/index.umd.js +0 -1
  248. package/gantt/package.json +0 -7
  249. package/gantt/style.css +0 -1
  250. package/input-icon/index.d.ts +0 -7
  251. package/input-icon/index.es.js +0 -332
  252. package/input-icon/index.umd.js +0 -1
  253. package/input-icon/package.json +0 -7
  254. package/input-icon/style.css +0 -1
  255. package/list/index.d.ts +0 -7
  256. package/list/index.es.js +0 -39
  257. package/list/index.umd.js +0 -1
  258. package/list/package.json +0 -7
  259. package/list/style.css +0 -1
  260. package/nav-sprite/index.d.ts +0 -7
  261. package/nav-sprite/index.es.js +0 -68
  262. package/nav-sprite/index.umd.js +0 -1
  263. package/nav-sprite/package.json +0 -7
  264. package/nuxt/components/Accordion.js +0 -3
  265. package/nuxt/components/Anchor.js +0 -3
  266. package/nuxt/components/BackTop.js +0 -3
  267. package/nuxt/components/Breadcrumb.js +0 -3
  268. package/nuxt/components/Carousel.js +0 -3
  269. package/nuxt/components/CarouselItem.js +0 -3
  270. package/nuxt/components/Cascader.js +0 -3
  271. package/nuxt/components/ColorPicker.js +0 -3
  272. package/nuxt/components/Comment.js +0 -3
  273. package/nuxt/components/FormControl.js +0 -3
  274. package/nuxt/components/FormLabel.js +0 -3
  275. package/nuxt/components/Gantt.js +0 -3
  276. package/nuxt/components/InputIcon.js +0 -3
  277. package/nuxt/components/List.js +0 -3
  278. package/nuxt/components/ListItem.js +0 -3
  279. package/nuxt/components/NavSprite.js +0 -2
  280. package/nuxt/components/QuadrantDiagram.js +0 -3
  281. package/nuxt/components/ReadTip.js +0 -3
  282. package/nuxt/components/StepsGuide.js +0 -3
  283. package/nuxt/components/Sticky.js +0 -2
  284. package/nuxt/components/TagInput.js +0 -3
  285. package/nuxt/components/TimePicker.js +0 -3
  286. package/nuxt/components/Transfer.js +0 -3
  287. package/nuxt/components/TreeSelect.js +0 -3
  288. package/nuxt/components/overlayEmits.js +0 -3
  289. package/nuxt/components/overlayProps.js +0 -3
  290. package/quadrant-diagram/index.d.ts +0 -7
  291. package/quadrant-diagram/index.es.js +0 -5728
  292. package/quadrant-diagram/index.umd.js +0 -27
  293. package/quadrant-diagram/package.json +0 -7
  294. package/quadrant-diagram/style.css +0 -1
  295. package/read-tip/index.d.ts +0 -7
  296. package/read-tip/index.es.js +0 -261
  297. package/read-tip/index.umd.js +0 -1
  298. package/read-tip/package.json +0 -7
  299. package/read-tip/style.css +0 -1
  300. package/steps-guide/index.d.ts +0 -7
  301. package/steps-guide/index.es.js +0 -242
  302. package/steps-guide/index.umd.js +0 -1
  303. package/steps-guide/package.json +0 -7
  304. package/steps-guide/style.css +0 -1
  305. package/sticky/index.d.ts +0 -7
  306. package/sticky/index.es.js +0 -197
  307. package/sticky/index.umd.js +0 -1
  308. package/sticky/package.json +0 -7
  309. package/tag-input/index.d.ts +0 -7
  310. package/tag-input/index.es.js +0 -331
  311. package/tag-input/index.umd.js +0 -1
  312. package/tag-input/package.json +0 -7
  313. package/tag-input/style.css +0 -1
  314. package/time-picker/index.d.ts +0 -7
  315. package/time-picker/index.es.js +0 -1238
  316. package/time-picker/index.umd.js +0 -1
  317. package/time-picker/package.json +0 -7
  318. package/time-picker/style.css +0 -1
  319. package/transfer/index.d.ts +0 -7
  320. package/transfer/index.es.js +0 -7615
  321. package/transfer/index.umd.js +0 -27
  322. package/transfer/package.json +0 -7
  323. package/transfer/style.css +0 -1
  324. package/tree-select/index.d.ts +0 -7
  325. package/tree-select/index.es.js +0 -627
  326. package/tree-select/index.umd.js +0 -1
  327. package/tree-select/package.json +0 -7
  328. package/tree-select/style.css +0 -1
@@ -1,8 +1,22 @@
1
- import { defineComponent, toRefs, createVNode, ref, computed } from "vue";
1
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
2
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
4
+ var __objRest = (source, exclude) => {
5
+ var target = {};
6
+ for (var prop in source)
7
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
8
+ target[prop] = source[prop];
9
+ if (source != null && __getOwnPropSymbols)
10
+ for (var prop of __getOwnPropSymbols(source)) {
11
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
12
+ target[prop] = source[prop];
13
+ }
14
+ return target;
15
+ };
16
+ import { createVNode, computed, ref, toRefs, reactive, watch, defineComponent, mergeProps } from "vue";
2
17
  const inputNumberProps = {
3
18
  placeholder: {
4
- type: String,
5
- default: void 0
19
+ type: String
6
20
  },
7
21
  disabled: {
8
22
  type: Boolean,
@@ -10,7 +24,7 @@ const inputNumberProps = {
10
24
  },
11
25
  step: {
12
26
  type: Number,
13
- default: 0
27
+ default: 1
14
28
  },
15
29
  max: {
16
30
  type: Number,
@@ -25,194 +39,277 @@ const inputNumberProps = {
25
39
  default: ""
26
40
  },
27
41
  modelValue: {
28
- type: Number,
29
- default: 0
30
- },
31
- "onUpdate:modelValue": {
32
- type: Function,
33
- default: void 0
42
+ type: Number
34
43
  },
35
- "onChange": {
36
- type: Function,
37
- default: void 0
38
- },
39
- "onKeydown": {
40
- type: Function,
41
- default: void 0
42
- },
43
- "onFocus": {
44
- type: Function,
45
- default: void 0
46
- },
47
- "onBlur": {
48
- type: Function,
49
- default: void 0
44
+ precision: {
45
+ type: Number
50
46
  }
51
47
  };
52
- var inputNumber = "";
53
- const iconProps = {
54
- name: {
55
- type: String,
56
- default: "",
57
- required: true
58
- },
59
- size: {
60
- type: String,
61
- default: "inherit"
62
- },
63
- color: {
64
- type: String,
65
- default: "inherit"
66
- },
67
- classPrefix: {
68
- type: String,
69
- default: "icon"
48
+ function createBem(namespace, element, modifier) {
49
+ let cls = namespace;
50
+ if (element) {
51
+ cls += `__${element}`;
70
52
  }
71
- };
72
- var Icon = defineComponent({
73
- name: "DIcon",
74
- props: iconProps,
75
- setup(props) {
76
- const {
77
- name,
78
- size,
79
- color,
80
- classPrefix
81
- } = toRefs(props);
82
- return () => {
83
- return /^((https?):)?\/\//.test(name.value) ? createVNode("img", {
84
- "src": name.value,
85
- "alt": name.value.split("/")[name.value.split("/").length - 1],
86
- "style": {
87
- width: size.value,
88
- verticalAlign: "text-bottom"
89
- }
90
- }, null) : createVNode("i", {
91
- "class": `${classPrefix.value} ${classPrefix.value}-${name.value}`,
92
- "style": {
93
- fontSize: size.value,
94
- color: color.value
95
- }
96
- }, null);
97
- };
53
+ if (modifier) {
54
+ cls += `--${modifier}`;
98
55
  }
99
- });
56
+ return cls;
57
+ }
58
+ function useNamespace(block, needDot = false) {
59
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
60
+ const b = () => createBem(namespace);
61
+ const e = (element) => element ? createBem(namespace, element) : "";
62
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
63
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
64
+ return {
65
+ b,
66
+ e,
67
+ m,
68
+ em
69
+ };
70
+ }
71
+ const ns$1 = useNamespace("input-number");
72
+ function IncIcon() {
73
+ return createVNode("svg", {
74
+ "class": ns$1.e("icon-arrow"),
75
+ "width": "1em",
76
+ "height": "1em",
77
+ "viewBox": "0 0 16 16",
78
+ "version": "1.1",
79
+ "xmlns": "http://www.w3.org/2000/svg"
80
+ }, [createVNode("g", {
81
+ "stroke": "none",
82
+ "stroke-width": "1",
83
+ "fill": "none",
84
+ "fill-rule": "evenodd"
85
+ }, [createVNode("path", {
86
+ "d": "M12.1464466,6.85355339 L8.35355339,10.6464466 C8.15829124,10.8417088 7.84170876,10.8417088 7.64644661,10.6464466 L3.85355339,6.85355339 C3.65829124,6.65829124 3.65829124,6.34170876 3.85355339,6.14644661 C3.94732158,6.05267842 4.07449854,6 4.20710678,6 L11.7928932,6 C12.0690356,6 12.2928932,6.22385763 12.2928932,6.5 C12.2928932,6.63260824 12.2402148,6.7597852 12.1464466,6.85355339 Z",
87
+ "fill-rule": "nonzero"
88
+ }, null)])]);
89
+ }
90
+ function DecIcon() {
91
+ return createVNode("svg", {
92
+ "class": ns$1.e("icon-arrow"),
93
+ "width": "1em",
94
+ "height": "1em",
95
+ "viewBox": "0 0 16 16",
96
+ "version": "1.1",
97
+ "xmlns": "http://www.w3.org/2000/svg"
98
+ }, [createVNode("g", {
99
+ "stroke": "none",
100
+ "stroke-width": "1",
101
+ "fill": "none",
102
+ "fill-rule": "evenodd"
103
+ }, [createVNode("path", {
104
+ "d": "M12.1464466,6.85355339 L8.35355339,10.6464466 C8.15829124,10.8417088 7.84170876,10.8417088 7.64644661,10.6464466 L3.85355339,6.85355339 C3.65829124,6.65829124 3.65829124,6.34170876 3.85355339,6.14644661 C3.94732158,6.05267842 4.07449854,6 4.20710678,6 L11.7928932,6 C12.0690356,6 12.2928932,6.22385763 12.2928932,6.5 C12.2928932,6.63260824 12.2402148,6.7597852 12.1464466,6.85355339 Z",
105
+ "fill-rule": "nonzero"
106
+ }, null)])]);
107
+ }
108
+ const isNumber = (value) => typeof value === "number";
109
+ const isUndefined = (value) => value === void 0;
110
+ const isNull = (value) => value === null;
111
+ const ns = useNamespace("input-number");
112
+ function useRender(props, ctx) {
113
+ const _a = ctx.attrs, { style, class: customClass } = _a, otherAttrs = __objRest(_a, ["style", "class"]);
114
+ const customStyle = { style };
115
+ const wrapClass = computed(() => [
116
+ {
117
+ [ns.b()]: true
118
+ },
119
+ customClass
120
+ ]);
121
+ const controlButtonsClass = computed(() => ({
122
+ [ns.e("control-buttons")]: true,
123
+ disabled: props.disabled,
124
+ [ns.m(props.size)]: true
125
+ }));
126
+ const inputWrapClass = computed(() => ({
127
+ [ns.e("input-wrap")]: true,
128
+ [ns.m(props.size)]: true
129
+ }));
130
+ const inputInnerClass = computed(() => ({
131
+ [ns.e("input-box")]: true,
132
+ disabled: props.disabled
133
+ }));
134
+ return { wrapClass, customStyle, otherAttrs, controlButtonsClass, inputWrapClass, inputInnerClass };
135
+ }
136
+ function useExpose(ctx) {
137
+ const inputRef = ref();
138
+ const focus = () => {
139
+ inputRef.value.focus();
140
+ };
141
+ const blur = () => {
142
+ inputRef.value.blur();
143
+ };
144
+ const select = () => {
145
+ inputRef.value.select();
146
+ };
147
+ ctx.expose({ focus, blur, select });
148
+ return { inputRef };
149
+ }
150
+ function getPrecision(pre) {
151
+ let precision = 0;
152
+ if (isUndefined(pre)) {
153
+ return precision;
154
+ }
155
+ const preString = pre.toString();
156
+ const dotIndex = preString.indexOf(".");
157
+ if (dotIndex !== -1) {
158
+ precision = preString.length - dotIndex - 1;
159
+ }
160
+ return precision;
161
+ }
162
+ function useEvent(props, ctx, inputRef) {
163
+ const { min, max, step, disabled } = toRefs(props);
164
+ const state = reactive({
165
+ currentValue: props.modelValue || "",
166
+ userInputValue: void 0
167
+ });
168
+ const numPrecision = computed(() => {
169
+ if (!isUndefined(props.precision)) {
170
+ return props.precision;
171
+ } else {
172
+ return Math.max(getPrecision(props.modelValue), getPrecision(step.value));
173
+ }
174
+ });
175
+ const inputVal = computed(() => {
176
+ if (!isUndefined(state.userInputValue)) {
177
+ return state.userInputValue;
178
+ }
179
+ let currentValue = state.currentValue;
180
+ if (currentValue === "" || isUndefined(currentValue) || Number.isNaN(currentValue)) {
181
+ return "";
182
+ }
183
+ if (isNumber(currentValue)) {
184
+ currentValue = currentValue.toFixed(numPrecision.value);
185
+ }
186
+ return currentValue;
187
+ });
188
+ const toPrecision = (num) => {
189
+ return Number.parseFloat(num.toFixed(numPrecision.value));
190
+ };
191
+ const computeByStep = (val, addOrNot = 1) => {
192
+ if (!isNumber(val)) {
193
+ return state.currentValue;
194
+ }
195
+ return toPrecision(val + step.value * addOrNot);
196
+ };
197
+ const correctValue = (value, shouldUpdate) => {
198
+ if (value === "" || isUndefined(value) || isNull(value) || Number.isNaN(value)) {
199
+ return void 0;
200
+ }
201
+ let newVal = Number(value);
202
+ newVal = toPrecision(newVal);
203
+ if (newVal > max.value || newVal < min.value) {
204
+ newVal = newVal > max.value ? max.value : min.value;
205
+ shouldUpdate && ctx.emit("update:modelValue", newVal);
206
+ }
207
+ return newVal;
208
+ };
209
+ const setCurrentValue = (value) => {
210
+ const oldVal = state.currentValue;
211
+ const newVal = correctValue(value);
212
+ if (oldVal === newVal) {
213
+ return;
214
+ }
215
+ state.userInputValue = void 0;
216
+ ctx.emit("update:modelValue", newVal);
217
+ ctx.emit("input", newVal);
218
+ ctx.emit("change", newVal, oldVal);
219
+ state.currentValue = newVal;
220
+ };
221
+ const minDisabled = computed(() => isNumber(state.currentValue) && computeByStep(state.currentValue, -1) < props.min);
222
+ const maxDisabled = computed(() => isNumber(state.currentValue) && computeByStep(state.currentValue) > props.max);
223
+ const onAdd = () => {
224
+ if (disabled.value || maxDisabled.value) {
225
+ return;
226
+ }
227
+ inputRef.value.focus();
228
+ const newVal = computeByStep(state.currentValue || 0);
229
+ setCurrentValue(newVal);
230
+ };
231
+ const onSubtract = () => {
232
+ if (disabled.value || minDisabled.value) {
233
+ return;
234
+ }
235
+ inputRef.value.focus();
236
+ const newVal = computeByStep(state.currentValue || 0, -1);
237
+ setCurrentValue(newVal);
238
+ };
239
+ watch(() => props.modelValue, (val) => {
240
+ state.currentValue = correctValue(val, true);
241
+ state.userInputValue = void 0;
242
+ }, { immediate: true });
243
+ const onInput = (event) => {
244
+ const value = event.target.value;
245
+ state.userInputValue = value;
246
+ };
247
+ const onChange = (event) => {
248
+ const value = event.target.value;
249
+ const newVal = value !== "" ? Number(value) : "";
250
+ if (isNumber(newVal) && !Number.isNaN(newVal) || value === "") {
251
+ setCurrentValue(newVal);
252
+ }
253
+ state.userInputValue = void 0;
254
+ };
255
+ return { inputVal, minDisabled, maxDisabled, onAdd, onSubtract, onInput, onChange };
256
+ }
257
+ var inputNumber = "";
100
258
  var InputNumber = defineComponent({
101
259
  name: "DInputNumber",
102
260
  props: inputNumberProps,
103
- emits: ["update:modelValue", "change", "input", "focus", "blur", "keydown"],
261
+ emits: ["update:modelValue", "change", "input"],
104
262
  setup(props, ctx) {
105
- const inputVal = ref(props.modelValue);
106
- const focusVal = ref("");
107
- const isSize = computed(() => {
108
- return `devui-input-number-${props.size}`;
109
- });
110
- const isDisabled = computed(() => {
111
- return props.disabled;
112
- });
113
- const add = () => {
114
- if (props.disabled) {
115
- return;
116
- }
117
- if (inputVal.value >= props.max) {
118
- return;
119
- }
120
- inputVal.value += props.step != 0 ? props.step : 1;
121
- focusVal.value = "active";
122
- ctx.emit("change", inputVal.value);
123
- ctx.emit("update:modelValue", inputVal.value);
124
- };
125
- const subtract = () => {
126
- if (props.disabled) {
127
- return;
128
- }
129
- if (inputVal.value <= props.min) {
130
- return;
131
- }
132
- inputVal.value -= props.step != 0 ? props.step : 1;
133
- focusVal.value = "active";
134
- ctx.emit("change", inputVal.value);
135
- ctx.emit("update:modelValue", inputVal.value);
136
- };
137
- const onInput = (val) => {
138
- inputVal.value = parseInt(val.data);
139
- ctx.emit("input", val.data);
140
- ctx.emit("update:modelValue", val.data);
141
- };
142
- const onFocus = ($event) => {
143
- focusVal.value = "active";
144
- ctx.emit("focus", $event);
145
- };
146
- const onBlur = ($event) => {
147
- focusVal.value = "";
148
- ctx.emit("blur", $event);
149
- };
150
- const onChange = ($event) => {
151
- ctx.emit("change", $event.target.value);
152
- };
153
- const onKeydown = ($event) => {
154
- ctx.emit("keydown", $event);
155
- };
156
- return {
157
- inputVal,
158
- focusVal,
159
- isDisabled,
160
- isSize,
161
- add,
162
- subtract,
163
- onInput,
164
- onChange,
165
- onKeydown,
166
- onBlur,
167
- onFocus
168
- };
169
- },
170
- render() {
171
263
  const {
172
- focusVal,
173
- placeholder,
174
- add,
264
+ disabled
265
+ } = toRefs(props);
266
+ const {
267
+ wrapClass,
268
+ customStyle,
269
+ otherAttrs,
270
+ controlButtonsClass,
271
+ inputWrapClass,
272
+ inputInnerClass
273
+ } = useRender(props, ctx);
274
+ const {
275
+ inputRef
276
+ } = useExpose(ctx);
277
+ const {
175
278
  inputVal,
176
- isDisabled,
177
- isSize,
178
- subtract,
279
+ minDisabled,
280
+ maxDisabled,
281
+ onAdd,
282
+ onSubtract,
179
283
  onInput,
180
- onChange,
181
- onKeydown,
182
- onBlur,
183
- onFocus
184
- } = this;
185
- const dInputNum = ["devui-input-number", isDisabled ? "devui-input-disabled" : "", isSize];
186
- return createVNode("div", {
187
- "class": dInputNum
188
- }, [createVNode("div", {
189
- "onBlur": onBlur,
190
- "tabindex": "1",
191
- "class": ["devui-control-buttons", focusVal.value]
284
+ onChange
285
+ } = useEvent(props, ctx, inputRef);
286
+ return () => createVNode("div", mergeProps({
287
+ "class": wrapClass.value
288
+ }, customStyle), [createVNode("div", {
289
+ "class": controlButtonsClass.value
192
290
  }, [createVNode("span", {
193
- "onClick": add
194
- }, [createVNode(Icon, {
195
- "size": "12px",
196
- "name": "chevron-up"
197
- }, null)]), createVNode("span", {
198
- "onClick": subtract
199
- }, [createVNode(Icon, {
200
- "size": "12px",
201
- "name": "chevron-down"
202
- }, null)])]), createVNode("div", {
203
- "class": "devui-input-item"
204
- }, [createVNode("input", {
291
+ "class": ["control-button control-inc", {
292
+ disabled: maxDisabled.value
293
+ }],
294
+ "onClick": onAdd
295
+ }, [createVNode(IncIcon, null, null)]), createVNode("span", {
296
+ "class": ["control-button control-dec", {
297
+ disabled: minDisabled.value
298
+ }],
299
+ "onClick": onSubtract
300
+ }, [createVNode(DecIcon, null, null)])]), createVNode("div", {
301
+ "class": inputWrapClass.value
302
+ }, [createVNode("input", mergeProps({
205
303
  "type": "number",
206
- "value": inputVal,
207
- "placeholder": placeholder,
208
- "disabled": isDisabled,
209
- "class": ["devui-input-style devui-input-box", focusVal.value],
304
+ "ref": inputRef,
305
+ "value": inputVal.value,
306
+ "placeholder": props.placeholder,
307
+ "disabled": disabled.value,
308
+ "class": inputInnerClass.value
309
+ }, otherAttrs, {
210
310
  "onInput": onInput,
211
- "onChange": onChange,
212
- "onFocus": onFocus,
213
- "onBlur": onBlur,
214
- "onKeydown": onKeydown
215
- }, null)])]);
311
+ "onChange": onChange
312
+ }), null)])]);
216
313
  }
217
314
  });
218
315
  InputNumber.install = function(app) {
@@ -1 +1 @@
1
- (function(i,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(i=typeof globalThis!="undefined"?globalThis:i||self,e(i.index={},i.Vue))})(this,function(i,e){"use strict";const h={placeholder:{type:String,default:void 0},disabled:{type:Boolean,default:!1},step:{type:Number,default:0},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},size:{type:String,default:""},modelValue:{type:Number,default:0},"onUpdate:modelValue":{type:Function,default:void 0},onChange:{type:Function,default:void 0},onKeydown:{type:Function,default:void 0},onFocus:{type:Function,default:void 0},onBlur:{type:Function,default:void 0}};var N="";const V={name:{type:String,default:"",required:!0},size:{type:String,default:"inherit"},color:{type:String,default:"inherit"},classPrefix:{type:String,default:"icon"}};var c=e.defineComponent({name:"DIcon",props:V,setup(t){const{name:n,size:u,color:o,classPrefix:l}=e.toRefs(t);return()=>/^((https?):)?\/\//.test(n.value)?e.createVNode("img",{src:n.value,alt:n.value.split("/")[n.value.split("/").length-1],style:{width:u.value,verticalAlign:"text-bottom"}},null):e.createVNode("i",{class:`${l.value} ${l.value}-${n.value}`,style:{fontSize:u.value,color:o.value}},null)}}),d=e.defineComponent({name:"DInputNumber",props:h,emits:["update:modelValue","change","input","focus","blur","keydown"],setup(t,n){const u=e.ref(t.modelValue),o=e.ref(""),l=e.computed(()=>`devui-input-number-${t.size}`),s=e.computed(()=>t.disabled);return{inputVal:u,focusVal:o,isDisabled:s,isSize:l,add:()=>{t.disabled||u.value>=t.max||(u.value+=t.step!=0?t.step:1,o.value="active",n.emit("change",u.value),n.emit("update:modelValue",u.value))},subtract:()=>{t.disabled||u.value<=t.min||(u.value-=t.step!=0?t.step:1,o.value="active",n.emit("change",u.value),n.emit("update:modelValue",u.value))},onInput:a=>{u.value=parseInt(a.data),n.emit("input",a.data),n.emit("update:modelValue",a.data)},onChange:a=>{n.emit("change",a.target.value)},onKeydown:a=>{n.emit("keydown",a)},onBlur:a=>{o.value="",n.emit("blur",a)},onFocus:a=>{o.value="active",n.emit("focus",a)}}},render(){const{focusVal:t,placeholder:n,add:u,inputVal:o,isDisabled:l,isSize:s,subtract:p,onInput:m,onChange:f,onKeydown:v,onBlur:r,onFocus:y}=this,b=["devui-input-number",l?"devui-input-disabled":"",s];return e.createVNode("div",{class:b},[e.createVNode("div",{onBlur:r,tabindex:"1",class:["devui-control-buttons",t.value]},[e.createVNode("span",{onClick:u},[e.createVNode(c,{size:"12px",name:"chevron-up"},null)]),e.createVNode("span",{onClick:p},[e.createVNode(c,{size:"12px",name:"chevron-down"},null)])]),e.createVNode("div",{class:"devui-input-item"},[e.createVNode("input",{type:"number",value:o,placeholder:n,disabled:l,class:["devui-input-style devui-input-box",t.value],onInput:m,onChange:f,onFocus:y,onBlur:r,onKeydown:v},null)])])}});d.install=function(t){t.component(d.name,d)};var g={title:"InputNumber \u6570\u5B57\u8F93\u5165\u6846",category:"\u6570\u636E\u5F55\u5165",status:"50%",install(t){t.use(d)}};i.InputNumber=d,i.default=g,Object.defineProperty(i,"__esModule",{value:!0}),i[Symbol.toStringTag]="Module"});
1
+ var k=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var z=(s,t)=>{var g={};for(var c in s)j.call(s,c)&&t.indexOf(c)<0&&(g[c]=s[c]);if(s!=null&&k)for(var c of k(s))t.indexOf(c)<0&&O.call(s,c)&&(g[c]=s[c]);return g};(function(s,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(s=typeof globalThis!="undefined"?globalThis:s||self,t(s.index={},s.Vue))})(this,function(s,t){"use strict";const g={placeholder:{type:String},disabled:{type:Boolean,default:!1},step:{type:Number,default:1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},size:{type:String,default:""},modelValue:{type:Number},precision:{type:Number}};function c(e,o,r){let a=e;return o&&(a+=`__${o}`),r&&(a+=`--${r}`),a}function P(e,o=!1){const r=o?`.devui-${e}`:`devui-${e}`;return{b:()=>c(r),e:n=>n?c(r,n):"",m:n=>n?c(r,"",n):"",em:(n,m)=>n&&m?c(r,n,m):""}}const D=P("input-number");function F(){return t.createVNode("svg",{class:D.e("icon-arrow"),width:"1em",height:"1em",viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("path",{d:"M12.1464466,6.85355339 L8.35355339,10.6464466 C8.15829124,10.8417088 7.84170876,10.8417088 7.64644661,10.6464466 L3.85355339,6.85355339 C3.65829124,6.65829124 3.65829124,6.34170876 3.85355339,6.14644661 C3.94732158,6.05267842 4.07449854,6 4.20710678,6 L11.7928932,6 C12.0690356,6 12.2928932,6.22385763 12.2928932,6.5 C12.2928932,6.63260824 12.2402148,6.7597852 12.1464466,6.85355339 Z","fill-rule":"nonzero"},null)])])}function M(){return t.createVNode("svg",{class:D.e("icon-arrow"),width:"1em",height:"1em",viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("path",{d:"M12.1464466,6.85355339 L8.35355339,10.6464466 C8.15829124,10.8417088 7.84170876,10.8417088 7.64644661,10.6464466 L3.85355339,6.85355339 C3.65829124,6.65829124 3.65829124,6.34170876 3.85355339,6.14644661 C3.94732158,6.05267842 4.07449854,6 4.20710678,6 L11.7928932,6 C12.0690356,6 12.2928932,6.22385763 12.2928932,6.5 C12.2928932,6.63260824 12.2402148,6.7597852 12.1464466,6.85355339 Z","fill-rule":"nonzero"},null)])])}const C=e=>typeof e=="number",v=e=>e===void 0,$=e=>e===null,b=P("input-number");function A(e,o){const V=o.attrs,{style:r,class:a}=V,d=z(V,["style","class"]),p={style:r},f=t.computed(()=>[{[b.b()]:!0},a]),n=t.computed(()=>({[b.e("control-buttons")]:!0,disabled:e.disabled,[b.m(e.size)]:!0})),m=t.computed(()=>({[b.e("input-wrap")]:!0,[b.m(e.size)]:!0})),N=t.computed(()=>({[b.e("input-box")]:!0,disabled:e.disabled}));return{wrapClass:f,customStyle:p,otherAttrs:d,controlButtonsClass:n,inputWrapClass:m,inputInnerClass:N}}function R(e){const o=t.ref(),r=()=>{o.value.focus()},a=()=>{o.value.blur()},d=()=>{o.value.select()};return e.expose({focus:r,blur:a,select:d}),{inputRef:o}}function L(e){let o=0;if(v(e))return o;const r=e.toString(),a=r.indexOf(".");return a!==-1&&(o=r.length-a-1),o}function _(e,o,r){const{min:a,max:d,step:p,disabled:f}=t.toRefs(e),n=t.reactive({currentValue:e.modelValue||"",userInputValue:void 0}),m=t.computed(()=>v(e.precision)?Math.max(L(e.modelValue),L(p.value)):e.precision),N=t.computed(()=>{if(!v(n.userInputValue))return n.userInputValue;let u=n.currentValue;return u===""||v(u)||Number.isNaN(u)?"":(C(u)&&(u=u.toFixed(m.value)),u)}),V=u=>Number.parseFloat(u.toFixed(m.value)),h=(u,i=1)=>C(u)?V(u+p.value*i):n.currentValue,y=(u,i)=>{if(u===""||v(u)||$(u)||Number.isNaN(u))return;let l=Number(u);return l=V(l),(l>d.value||l<a.value)&&(l=l>d.value?d.value:a.value,i&&o.emit("update:modelValue",l)),l},I=u=>{const i=n.currentValue,l=y(u);i!==l&&(n.userInputValue=void 0,o.emit("update:modelValue",l),o.emit("input",l),o.emit("change",l,i),n.currentValue=l)},x=t.computed(()=>C(n.currentValue)&&h(n.currentValue,-1)<e.min),S=t.computed(()=>C(n.currentValue)&&h(n.currentValue)>e.max),B=()=>{if(f.value||S.value)return;r.value.focus();const u=h(n.currentValue||0);I(u)},T=()=>{if(f.value||x.value)return;r.value.focus();const u=h(n.currentValue||0,-1);I(u)};return t.watch(()=>e.modelValue,u=>{n.currentValue=y(u,!0),n.userInputValue=void 0},{immediate:!0}),{inputVal:N,minDisabled:x,maxDisabled:S,onAdd:B,onSubtract:T,onInput:u=>{const i=u.target.value;n.userInputValue=i},onChange:u=>{const i=u.target.value,l=i!==""?Number(i):"";(C(l)&&!Number.isNaN(l)||i==="")&&I(l),n.userInputValue=void 0}}}var W="",w=t.defineComponent({name:"DInputNumber",props:g,emits:["update:modelValue","change","input"],setup(e,o){const{disabled:r}=t.toRefs(e),{wrapClass:a,customStyle:d,otherAttrs:p,controlButtonsClass:f,inputWrapClass:n,inputInnerClass:m}=A(e,o),{inputRef:N}=R(o),{inputVal:V,minDisabled:h,maxDisabled:y,onAdd:I,onSubtract:x,onInput:S,onChange:B}=_(e,o,N);return()=>t.createVNode("div",t.mergeProps({class:a.value},d),[t.createVNode("div",{class:f.value},[t.createVNode("span",{class:["control-button control-inc",{disabled:y.value}],onClick:I},[t.createVNode(F,null,null)]),t.createVNode("span",{class:["control-button control-dec",{disabled:h.value}],onClick:x},[t.createVNode(M,null,null)])]),t.createVNode("div",{class:n.value},[t.createVNode("input",t.mergeProps({type:"number",ref:N,value:V.value,placeholder:e.placeholder,disabled:r.value,class:m.value},p,{onInput:S,onChange:B}),null)])])}});w.install=function(e){e.component(w.name,w)};var E={title:"InputNumber \u6570\u5B57\u8F93\u5165\u6846",category:"\u6570\u636E\u5F55\u5165",status:"50%",install(e){e.use(w)}};s.InputNumber=w,s.default=E,Object.defineProperty(s,"__esModule",{value:!0}),s[Symbol.toStringTag]="Module"});
@@ -1 +1 @@
1
- .devui-input-number{position:relative;display:inline-block;width:80px;line-height:38px;margin-right:12px}.devui-input-number:hover:not(.devui-input-disabled) .devui-input-box{border-color:var(--devui-form-control-line-hover)}.devui-input-number:hover:not(.devui-input-disabled) .devui-control-buttons:not(.disabled){display:flex;border-color:var(--devui-form-control-line-hover)}.devui-input-number:focus-within .devui-control-buttons{display:flex}.devui-input-number .active{border:1px solid var(--devui-form-control-line-active)!important;display:flex!important}.devui-input-number.devui-input-disabled .devui-subtract,.devui-input-number.devui-input-disabled .devui-add,.devui-input-number.devui-input-disabled .devui-input-style{cursor:not-allowed;border-color:#e4e7ed;color:#e4e7ed}.devui-input-number.devui-input-disabled .devui-input-style{border-color:var(--devui-disabled-line)!important;color:var(--devui-disabled-text)!important;background-color:var(--devui-disabled-bg)!important}.devui-input-number.devui-input-number-sm .devui-input-box{width:80px;height:26px;line-height:26px}.devui-input-number.devui-input-number-normal .devui-input-box{width:80px;height:28px;line-height:28px}.devui-input-number.devui-input-number-lg .devui-input-box{width:80px;height:46px;line-height:46px}.devui-input-number .devui-input-item{line-height:100%}.devui-input-number .devui-input-style::-webkit-outer-spin-button,.devui-input-number .devui-input-style::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.devui-input-number .devui-add,.devui-input-number .devui-subtract{display:inline-block;width:50px;height:38px;line-height:38px;text-align:center;font-size:16px;color:#333;background:#f5f7fa;cursor:pointer;border:1px solid #dcdfe6}.devui-input-number .devui-add{float:right;margin-left:-1px;border-radius:0 4px 4px 0}.devui-input-number .devui-subtract{float:left;margin-right:-1px;border-radius:4px 0 0 4px}.devui-input-number .devui-input-style{display:block;-moz-appearance:textfield}.devui-input-number .devui-input-style{outline:none;background-color:var(--devui-base-bg);border:1px solid var(--devui-form-control-line);border-radius:var(--devui-border-radius);padding:4px 8px;line-height:18px;font-size:var(--devui-font-size);color:var(--devui-text);width:100%;display:block;cursor:text;height:28px;transition:border-color .3s var(--devui-animation-ease-in-out-smooth)}.devui-input-number .devui-input-box{box-sizing:border-box;padding:4px 8px;font-size:var(--devui-font-size);vertical-align:middle;border-radius:var(--devui-border-radius);outline:none;width:100%;line-height:20px;height:28px;border-width:1px;border-style:solid}.devui-input-number .devui-input-box:not(.disabled){background-color:var(--devui-base-bg);border-color:var(--devui-line);color:var(--devui-text)}.devui-input-number .disabled{cursor:not-allowed}.devui-input-number .devui-control-buttons{display:none;position:absolute;right:0;width:22px;height:100%;flex-direction:column;justify-content:center;align-items:center;border-left:1px solid var(--devui-line);box-sizing:border-box;line-height:100%;border-radius:0 var(--devui-border-radius) var(--devui-border-radius) 0}.devui-input-number .devui-control-buttons:not(.disabled){cursor:pointer}.devui-input-number .devui-control-buttons>span{display:flex}
1
+ .devui-input-number{position:relative;display:inline-block;width:80px}.devui-input-number:hover .devui-input-number__input-box:not(.disabled){border:1px solid var(--devui-form-control-line-hover, #9b9fa8);padding-right:24px}.devui-input-number:hover .devui-input-number__control-buttons:not(.disabled){display:flex;border-color:var(--devui-form-control-line-hover, #9b9fa8)}.devui-input-number:focus-within .devui-input-number__input-box:not(.disabled){border:1px solid var(--devui-form-control-line-active, #5e7ce0);padding-right:24px}.devui-input-number:focus-within .devui-input-number__control-buttons:not(.disabled){display:flex;border-color:var(--devui-form-control-line-active, #5e7ce0)}.devui-input-number.devui-input-number--md{width:80px}.devui-input-number.devui-input-number--md .devui-input-number__input-box{height:32px;line-height:32px}.devui-input-number .devui-input-number__input-box{box-sizing:border-box;padding:4px 8px;font-size:var(--devui-font-size, 14px);border-radius:var(--devui-border-radius, 4px);border:1px solid var(--devui-form-control-line, #d7d8da);outline:none;width:100%;line-height:20px;height:28px;display:block;cursor:text;-moz-appearance:textfield;transition:border-color var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-input-number .devui-input-number__input-box:not(.disabled){background-color:var(--devui-base-bg, #ffffff);border-color:var(--devui-line, #d7d8da);color:var(--devui-text, #252b3a)}.devui-input-number .devui-input-number__input-box::-webkit-inner-spin-button,.devui-input-number .devui-input-number__input-box::-webkit-outer-spin-button{-webkit-appearance:none}.devui-input-number .devui-input-number__control-buttons{display:none;position:absolute;right:0;width:22px;height:100%;flex-direction:column;justify-content:center;align-items:center;border:1px solid transparent;border-left-color:var(--devui-line, #d7d8da);box-sizing:border-box;line-height:100%;border-radius:0 var(--devui-border-radius, 4px) var(--devui-border-radius, 4px) 0}.devui-input-number .devui-input-number__control-buttons.disabled{border-left-color:var(--devui-disabled-line, #dfe1e6)}.devui-input-number .devui-input-number__control-buttons .control-button{user-select:none;box-sizing:border-box;height:50%;line-height:50%;border-width:0 1px;transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1));display:flex;justify-content:center;align-items:center;background-color:var(--devui-base-bg, #ffffff)}.devui-input-number .devui-input-number__control-buttons .control-button.control-inc svg{position:relative;top:2px;transform:rotate(180deg)}.devui-input-number .devui-input-number__control-buttons .control-button.control-dec svg{position:relative;bottom:2px}.devui-input-number .devui-input-number__control-buttons .control-button svg path{fill:var(--devui-text-weak, #575d6c)}.devui-input-number .devui-input-number__control-buttons .control-button:not(.disabled){cursor:pointer}.devui-input-number .devui-input-number__control-buttons .control-button:not(.disabled):hover>svg path{fill:var(--devui-icon-fill-active-hover, #252b3a)}.devui-input-number .devui-input-number__control-buttons .control-button.disabled>svg path{fill:var(--devui-disabled-text, #cfd0d3)}.devui-input-number .devui-input-number--lg>.devui-input-number__input-box{font-size:var(--devui-font-size-lg, 14px);line-height:24px;height:46px}.devui-input-number .devui-input-number--lg.devui-input-number__control-buttons .control-button .devui-input-number__icon-arrow{width:16px;height:16px}.devui-input-number .devui-input-number--md>.devui-input-number__input-box{font-size:var(--devui-font-size, 14px);line-height:20px;height:28px}.devui-input-number .devui-input-number--sm>.devui-input-number__input-box{font-size:var(--devui-font-size-sm, 12px);line-height:18px;height:26px}.devui-input-number .devui-input-number--sm.devui-input-number__control-buttons .control-button:first-child .devui-input-number__icon-arrow{width:14px;height:14px}.devui-input-number .devui-input-number--sm.devui-input-number__control-buttons .control-button:last-child .devui-input-number__icon-arrow{width:14px;height:14px}.devui-input-number .devui-input-number__input-wrap{line-height:100%}.devui-input-number .disabled{cursor:not-allowed}
@@ -1,4 +1,27 @@
1
1
  import { defineComponent, createVNode } from "vue";
2
+ function createBem(namespace, element, modifier) {
3
+ let cls = namespace;
4
+ if (element) {
5
+ cls += `__${element}`;
6
+ }
7
+ if (modifier) {
8
+ cls += `--${modifier}`;
9
+ }
10
+ return cls;
11
+ }
12
+ function useNamespace(block, needDot = false) {
13
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
14
+ const b = () => createBem(namespace);
15
+ const e = (element) => element ? createBem(namespace, element) : "";
16
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
17
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
18
+ return {
19
+ b,
20
+ e,
21
+ m,
22
+ em
23
+ };
24
+ }
2
25
  var layout = "";
3
26
  var Layout = defineComponent({
4
27
  name: "DLayout",
@@ -6,11 +29,12 @@ var Layout = defineComponent({
6
29
  setup(props, {
7
30
  slots
8
31
  }) {
32
+ const ns = useNamespace("layout");
9
33
  return () => {
10
34
  var _a;
11
35
  const slotDefault = (_a = slots.default) == null ? void 0 : _a.call(slots);
12
36
  const isAside = slotDefault.some((item) => item.type.name === "DAside");
13
- const classNames = `${isAside ? "devui-layout-aside " : ""}devui-layout`;
37
+ const classNames = `${isAside ? ns.e("aside") : ""} ${ns.b()}`;
14
38
  return createVNode("div", {
15
39
  "class": classNames
16
40
  }, [slotDefault]);
@@ -23,10 +47,11 @@ var Content = defineComponent({
23
47
  setup(props, {
24
48
  slots
25
49
  }) {
50
+ const ns = useNamespace("layout");
26
51
  return () => {
27
52
  var _a;
28
53
  return createVNode("div", {
29
- "class": "devui-content"
54
+ "class": ns.e("content")
30
55
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
31
56
  };
32
57
  }
@@ -37,10 +62,11 @@ var Header = defineComponent({
37
62
  setup(props, {
38
63
  slots
39
64
  }) {
65
+ const ns = useNamespace("layout");
40
66
  return () => {
41
67
  var _a;
42
68
  return createVNode("div", {
43
- "class": "devui-header"
69
+ "class": ns.e("header")
44
70
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
45
71
  };
46
72
  }
@@ -51,10 +77,11 @@ var Footer = defineComponent({
51
77
  setup(props, {
52
78
  slots
53
79
  }) {
80
+ const ns = useNamespace("layout");
54
81
  return () => {
55
82
  var _a;
56
83
  return createVNode("div", {
57
- "class": "devui-footer"
84
+ "class": ns.e("footer")
58
85
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
59
86
  };
60
87
  }
@@ -64,37 +91,25 @@ var Aside = defineComponent({
64
91
  setup(props, {
65
92
  slots
66
93
  }) {
94
+ const ns = useNamespace("layout");
67
95
  return () => {
68
96
  var _a;
69
- return createVNode("div", null, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
97
+ return createVNode("div", {
98
+ "class": ns.e("aside")
99
+ }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
70
100
  };
71
101
  }
72
102
  });
73
- Layout.install = function(app) {
74
- app.component(Layout.name, Layout);
75
- };
76
- Content.install = function(app) {
77
- app.component(Content.name, Content);
78
- };
79
- Header.install = function(app) {
80
- app.component(Header.name, Header);
81
- };
82
- Footer.install = function(app) {
83
- app.component(Footer.name, Footer);
84
- };
85
- Aside.install = function(app) {
86
- app.component(Aside.name, Aside);
87
- };
88
103
  var index = {
89
104
  title: "Layout \u5E03\u5C40",
90
105
  category: "\u5E03\u5C40",
91
106
  status: "100%",
92
107
  install(app) {
93
- app.use(Layout);
94
- app.use(Content);
95
- app.use(Header);
96
- app.use(Footer);
97
- app.use(Aside);
108
+ app.component(Layout.name, Layout);
109
+ app.component(Content.name, Content);
110
+ app.component(Header.name, Header);
111
+ app.component(Footer.name, Footer);
112
+ app.component(Aside.name, Aside);
98
113
  }
99
114
  };
100
115
  export { Aside, Content, Footer, Header, Layout, index as default };