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
@@ -0,0 +1,425 @@
1
+ import { defineComponent, toRefs, computed, createVNode, resolveDynamicComponent, mergeProps, inject, provide, ref, reactive, onMounted, watch, toRef, nextTick, Fragment } from "vue";
2
+ const timeAxisProps = {
3
+ direction: {
4
+ type: String,
5
+ default: "vertical"
6
+ },
7
+ center: {
8
+ type: Boolean,
9
+ default: false
10
+ },
11
+ mode: {
12
+ type: String,
13
+ default: "normal"
14
+ },
15
+ timePosition: {
16
+ type: String,
17
+ default: "left"
18
+ }
19
+ };
20
+ const DEFAULT_PREFIX = "icon";
21
+ const iconProps = {
22
+ name: {
23
+ type: String,
24
+ default: "",
25
+ required: true
26
+ },
27
+ size: {
28
+ type: [Number, String],
29
+ default: "inherit"
30
+ },
31
+ color: {
32
+ type: String,
33
+ default: "inherit"
34
+ },
35
+ component: {
36
+ type: Object,
37
+ default: null
38
+ },
39
+ classPrefix: {
40
+ type: String,
41
+ default: DEFAULT_PREFIX
42
+ },
43
+ operable: {
44
+ type: Boolean,
45
+ default: false
46
+ },
47
+ disabled: {
48
+ type: Boolean,
49
+ default: false
50
+ },
51
+ rotate: {
52
+ type: [Number, String]
53
+ }
54
+ };
55
+ const svgIconProps = {
56
+ name: {
57
+ type: String,
58
+ default: "",
59
+ required: true
60
+ },
61
+ color: {
62
+ type: String,
63
+ default: "inherit"
64
+ },
65
+ size: {
66
+ type: [Number, String],
67
+ default: "inherit"
68
+ }
69
+ };
70
+ function createBem(namespace, element, modifier) {
71
+ let cls = namespace;
72
+ if (element) {
73
+ cls += `__${element}`;
74
+ }
75
+ if (modifier) {
76
+ cls += `--${modifier}`;
77
+ }
78
+ return cls;
79
+ }
80
+ function useNamespace(block, needDot = false) {
81
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
82
+ const b = () => createBem(namespace);
83
+ const e = (element) => element ? createBem(namespace, element) : "";
84
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
85
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
86
+ return {
87
+ b,
88
+ e,
89
+ m,
90
+ em
91
+ };
92
+ }
93
+ var icon = "";
94
+ var svgIcon = defineComponent({
95
+ name: "DSvgIcon",
96
+ props: svgIconProps,
97
+ setup(props) {
98
+ const {
99
+ name,
100
+ color,
101
+ size
102
+ } = toRefs(props);
103
+ const ns = useNamespace("svg-icon");
104
+ const iconName = computed(() => `#icon-${name.value}`);
105
+ const iconSize = computed(() => {
106
+ return typeof size.value === "number" ? `${size.value}px` : size.value;
107
+ });
108
+ const styles = {
109
+ width: iconSize.value,
110
+ height: iconSize.value
111
+ };
112
+ return () => {
113
+ return createVNode("svg", {
114
+ "class": ns.b(),
115
+ "style": styles
116
+ }, [createVNode("use", {
117
+ "xlink:href": iconName.value,
118
+ "fill": color.value
119
+ }, null)]);
120
+ };
121
+ }
122
+ });
123
+ function isUrl(value) {
124
+ return /^((http|https):)?\/\//.test(value);
125
+ }
126
+ function useIconDom(props, ctx) {
127
+ const {
128
+ component,
129
+ name,
130
+ size,
131
+ color,
132
+ classPrefix,
133
+ rotate
134
+ } = toRefs(props);
135
+ const ns = useNamespace("icon");
136
+ const iconSize = computed(() => {
137
+ return typeof size.value === "number" ? `${size.value}px` : size.value;
138
+ });
139
+ const IconComponent = component.value ? resolveDynamicComponent(component.value) : resolveDynamicComponent(svgIcon);
140
+ const imgIconDom = () => {
141
+ return createVNode("img", mergeProps({
142
+ "src": name.value,
143
+ "alt": name.value.split("/")[name.value.split("/").length - 1],
144
+ "class": [(rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
145
+ "style": {
146
+ width: iconSize.value || "",
147
+ transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
148
+ }
149
+ }, ctx.attrs), null);
150
+ };
151
+ const svgIconDom = () => {
152
+ return createVNode(IconComponent, mergeProps({
153
+ "name": name.value,
154
+ "color": color.value,
155
+ "size": iconSize.value,
156
+ "class": [(rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
157
+ "style": {
158
+ transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
159
+ }
160
+ }, ctx.attrs), null);
161
+ };
162
+ const fontIconDom = () => {
163
+ const fontIconClass = /^icon-/.test(name.value) ? name.value : `${classPrefix.value}-${name.value}`;
164
+ return createVNode("i", mergeProps({
165
+ "class": [classPrefix.value, fontIconClass, (rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
166
+ "style": {
167
+ fontSize: iconSize.value,
168
+ color: color.value,
169
+ transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
170
+ }
171
+ }, ctx.attrs), null);
172
+ };
173
+ const iconDom = () => {
174
+ return component.value ? svgIconDom() : isUrl(name.value) ? imgIconDom() : fontIconDom();
175
+ };
176
+ return {
177
+ iconDom
178
+ };
179
+ }
180
+ var DIcon = defineComponent({
181
+ name: "DIcon",
182
+ props: iconProps,
183
+ setup(props, ctx) {
184
+ const {
185
+ disabled,
186
+ operable
187
+ } = toRefs(props);
188
+ const {
189
+ iconDom
190
+ } = useIconDom(props, ctx);
191
+ const ns = useNamespace("icon");
192
+ const wrapClassed = computed(() => ({
193
+ [ns.e("container")]: true,
194
+ [ns.m("disabled")]: disabled.value,
195
+ [ns.m("operable")]: operable.value
196
+ }));
197
+ const onClick = (e) => {
198
+ e.stopImmediatePropagation();
199
+ if (disabled.value) {
200
+ e.preventDefault();
201
+ }
202
+ };
203
+ return () => {
204
+ var _a, _b, _c, _d;
205
+ return createVNode("div", {
206
+ "class": wrapClassed.value,
207
+ "onClick": onClick
208
+ }, [(_b = (_a = ctx.slots).prefix) == null ? void 0 : _b.call(_a), iconDom(), (_d = (_c = ctx.slots).suffix) == null ? void 0 : _d.call(_c)]);
209
+ };
210
+ }
211
+ });
212
+ const timeAxisItemProps = {
213
+ time: {
214
+ type: String
215
+ },
216
+ dotColor: {
217
+ type: String
218
+ },
219
+ lineStyle: {
220
+ type: String,
221
+ default: "solid"
222
+ },
223
+ lineColor: {
224
+ type: String
225
+ },
226
+ position: {
227
+ type: String
228
+ },
229
+ timePosition: {
230
+ type: String,
231
+ default: "left"
232
+ },
233
+ type: {
234
+ type: String,
235
+ default: "primary"
236
+ }
237
+ };
238
+ var TimelineItem = defineComponent({
239
+ name: "DTimelineItem",
240
+ components: {
241
+ DIcon
242
+ },
243
+ props: timeAxisItemProps,
244
+ emits: [],
245
+ setup(props, ctx) {
246
+ const timeAxis = inject("timeAxis");
247
+ const itemClass = "devui-timeline-item";
248
+ const renderTime = () => {
249
+ var _a, _b;
250
+ return createVNode("div", {
251
+ "class": `${itemClass}-time`
252
+ }, [ctx.slots.time ? (_b = (_a = ctx.slots).time) == null ? void 0 : _b.call(_a) : props.time]);
253
+ };
254
+ const renderContent = () => {
255
+ var _a, _b;
256
+ return createVNode("div", {
257
+ "class": `${itemClass}-content`
258
+ }, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a, props)]);
259
+ };
260
+ const renderPosition = (types) => {
261
+ if (types.includes(props.position)) {
262
+ return renderContent();
263
+ } else {
264
+ if (timeAxis.props.direction === "horizontal") {
265
+ return renderTime();
266
+ } else {
267
+ return props.timePosition === "left" ? renderTime() : "";
268
+ }
269
+ }
270
+ };
271
+ const setTypeIcon = (type) => {
272
+ if (type === "primary") {
273
+ return "";
274
+ }
275
+ return createVNode("i", {
276
+ "class": `icon-${type === "success" ? "right" : type}-o`
277
+ }, null);
278
+ };
279
+ const renderDot = () => {
280
+ var _a, _b;
281
+ if (ctx.slots.dot) {
282
+ return createVNode("div", {
283
+ "style": {
284
+ color: props.dotColor
285
+ },
286
+ "class": `${itemClass}-dot`
287
+ }, [" ", (_b = (_a = ctx.slots).dot) == null ? void 0 : _b.call(_a)]);
288
+ } else {
289
+ return createVNode("div", {
290
+ "class": `${itemClass}-dot ${itemClass}-type-${props.type}`,
291
+ "style": {
292
+ borderColor: props.dotColor
293
+ }
294
+ }, [setTypeIcon(props.type)]);
295
+ }
296
+ };
297
+ return () => {
298
+ return createVNode("div", {
299
+ "class": itemClass
300
+ }, [createVNode("div", {
301
+ "class": `${itemClass}-data-left ${itemClass}-data-top`
302
+ }, [renderPosition(["top", "left"])]), createVNode("div", {
303
+ "class": `${itemClass}-axis`
304
+ }, [renderDot(), timeAxis.props.direction === "vertical" && props.timePosition === "bottom" ? renderTime() : "", createVNode("div", {
305
+ "class": `${itemClass}-line ${itemClass}-line-style-${props.lineStyle}`,
306
+ "style": {
307
+ borderColor: props.lineColor
308
+ }
309
+ }, [ctx.slots.extra ? createVNode("div", {
310
+ "class": `${itemClass}-line-extra`
311
+ }, [ctx.slots.extra()]) : ""])]), createVNode("div", {
312
+ "class": `${itemClass}-data-right ${itemClass}-data-bottom`
313
+ }, [renderPosition(["right", "bottom"])])]);
314
+ };
315
+ }
316
+ });
317
+ var timeline = "";
318
+ var Timeline = defineComponent({
319
+ name: "DTimeline",
320
+ components: {
321
+ TimelineItem
322
+ },
323
+ props: timeAxisProps,
324
+ emits: [],
325
+ setup(props, ctx) {
326
+ provide("timeAxis", {
327
+ ctx,
328
+ props
329
+ });
330
+ const timeAxis = ref();
331
+ const style = reactive({
332
+ marginLeft: "0px",
333
+ height: "auto"
334
+ });
335
+ const setStyle = () => {
336
+ style.height = "auto";
337
+ style.marginLeft = "0px";
338
+ if (props.direction === "horizontal") {
339
+ nextTick(() => {
340
+ var _a;
341
+ const element = timeAxis.value;
342
+ if (props.center) {
343
+ style.marginLeft = (((_a = element == null ? void 0 : element.firstElementChild) == null ? void 0 : _a.clientWidth) || 0) / 2 + "px";
344
+ }
345
+ style.height = Math.max(...Array.from(element == null ? void 0 : element.querySelectorAll(".devui-timeline-item-data-top")).map((el) => el.clientHeight), ...Array.from(element == null ? void 0 : element.querySelectorAll(".devui-timeline-item-data-bottom")).map((el) => el.clientHeight)) * 2 + Math.max(...Array.from(element == null ? void 0 : element.querySelectorAll(".devui-timeline-item-axis")).map((el) => el.clientHeight)) + "px";
346
+ });
347
+ }
348
+ };
349
+ onMounted(() => {
350
+ setStyle();
351
+ });
352
+ watch(toRef(props, "direction"), () => {
353
+ setStyle();
354
+ });
355
+ return () => {
356
+ const renderItemPosition = (item, position) => {
357
+ return position ? createVNode(item, {
358
+ "position": position
359
+ }, null) : createVNode(item, null, null);
360
+ };
361
+ const renderItem = () => {
362
+ var _a, _b, _c;
363
+ const slots = (_c = (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)) != null ? _c : [];
364
+ let children;
365
+ if (slots.length === 1 && slots[0].type === Fragment) {
366
+ children = slots[0].children || [];
367
+ } else {
368
+ children = slots;
369
+ }
370
+ return children.map((item, index2) => {
371
+ var _a2, _b2, _c2, _d, _e, _f, _g, _h;
372
+ if (index2 + 1 === children.length) {
373
+ if (!((_a2 = item.props) == null ? void 0 : _a2.lineStyle) && !((_b2 = item.props) == null ? void 0 : _b2["line-style"])) {
374
+ item = createVNode(item, {
375
+ "line-style": "none"
376
+ }, null);
377
+ }
378
+ }
379
+ if (!((_c2 = item.props) == null ? void 0 : _c2.timePosition) && !((_d = item.props) == null ? void 0 : _d["time-position"])) {
380
+ item = createVNode(item, {
381
+ "time-position": props.timePosition ? props.timePosition : "left"
382
+ }, null);
383
+ }
384
+ if (props.direction === "horizontal") {
385
+ if (((_e = item.props) == null ? void 0 : _e.position) === "top" || ((_f = item.props) == null ? void 0 : _f.position) === "bottom") {
386
+ return item;
387
+ }
388
+ if (props.mode === "alternative") {
389
+ return renderItemPosition(item, index2 % 2 === 0 ? "bottom" : "top");
390
+ } else {
391
+ return renderItemPosition(item, "bottom");
392
+ }
393
+ } else {
394
+ if (((_g = item.props) == null ? void 0 : _g.position) === "left" || ((_h = item.props) == null ? void 0 : _h.position) === "right") {
395
+ return item;
396
+ }
397
+ if (props.mode === "alternative") {
398
+ return renderItemPosition(item, index2 % 2 === 0 ? "left" : "right");
399
+ } else {
400
+ return renderItemPosition(item, "right");
401
+ }
402
+ }
403
+ });
404
+ };
405
+ const getDirection = () => {
406
+ return props.direction === "horizontal" ? "horizontal" : "vertical";
407
+ };
408
+ return createVNode("div", {
409
+ "class": `devui-timeline devui-timeline-${getDirection()} ${props.center ? "devui-timeline-" + getDirection() + "-center" : ""} `,
410
+ "ref": timeAxis,
411
+ "style": style
412
+ }, [renderItem()]);
413
+ };
414
+ }
415
+ });
416
+ var index = {
417
+ title: "Timeline \u65F6\u95F4\u8F74",
418
+ category: "\u6570\u636E\u5C55\u793A",
419
+ status: "100%",
420
+ install(app) {
421
+ app.component(Timeline.name, Timeline);
422
+ app.component(TimelineItem.name, TimelineItem);
423
+ }
424
+ };
425
+ export { Timeline, TimelineItem, index as default, timeAxisProps };
@@ -0,0 +1 @@
1
+ (function(f,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(f=typeof globalThis!="undefined"?globalThis:f||self,e(f.index={},f.Vue))})(this,function(f,e){"use strict";const b={direction:{type:String,default:"vertical"},center:{type:Boolean,default:!1},mode:{type:String,default:"normal"},timePosition:{type:String,default:"left"}},x={name:{type:String,default:"",required:!0},size:{type:[Number,String],default:"inherit"},color:{type:String,default:"inherit"},component:{type:Object,default:null},classPrefix:{type:String,default:"icon"},operable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},rotate:{type:[Number,String]}},z={name:{type:String,default:"",required:!0},color:{type:String,default:"inherit"},size:{type:[Number,String],default:"inherit"}};function y(n,l,s){let o=n;return l&&(o+=`__${l}`),s&&(o+=`--${s}`),o}function $(n,l=!1){const s=l?`.devui-${n}`:`devui-${n}`;return{b:()=>y(s),e:t=>t?y(s,t):"",m:t=>t?y(s,"",t):"",em:(t,a)=>t&&a?y(s,t,a):""}}var j="",F=e.defineComponent({name:"DSvgIcon",props:z,setup(n){const{name:l,color:s,size:o}=e.toRefs(n),m=$("svg-icon"),i=e.computed(()=>`#icon-${l.value}`),d=e.computed(()=>typeof o.value=="number"?`${o.value}px`:o.value),t={width:d.value,height:d.value};return()=>e.createVNode("svg",{class:m.b(),style:t},[e.createVNode("use",{"xlink:href":i.value,fill:s.value},null)])}});function q(n){return/^((http|https):)?\/\//.test(n)}function E(n,l){const{component:s,name:o,size:m,color:i,classPrefix:d,rotate:t}=e.toRefs(n),a=$("icon"),r=e.computed(()=>typeof m.value=="number"?`${m.value}px`:m.value),u=s.value?e.resolveDynamicComponent(s.value):e.resolveDynamicComponent(F),p=()=>e.createVNode("img",e.mergeProps({src:o.value,alt:o.value.split("/")[o.value.split("/").length-1],class:[(t==null?void 0:t.value)==="infinite"&&a.m("spin")],style:{width:r.value||"",transform:`rotate(${t==null?void 0:t.value}deg)`}},l.attrs),null),h=()=>e.createVNode(u,e.mergeProps({name:o.value,color:i.value,size:r.value,class:[(t==null?void 0:t.value)==="infinite"&&a.m("spin")],style:{transform:`rotate(${t==null?void 0:t.value}deg)`}},l.attrs),null),c=()=>{const S=/^icon-/.test(o.value)?o.value:`${d.value}-${o.value}`;return e.createVNode("i",e.mergeProps({class:[d.value,S,(t==null?void 0:t.value)==="infinite"&&a.m("spin")],style:{fontSize:r.value,color:i.value,transform:`rotate(${t==null?void 0:t.value}deg)`}},l.attrs),null)};return{iconDom:()=>s.value?h():q(o.value)?p():c()}}var R=e.defineComponent({name:"DIcon",props:x,setup(n,l){const{disabled:s,operable:o}=e.toRefs(n),{iconDom:m}=E(n,l),i=$("icon"),d=e.computed(()=>({[i.e("container")]:!0,[i.m("disabled")]:s.value,[i.m("operable")]:o.value})),t=a=>{a.stopImmediatePropagation(),s.value&&a.preventDefault()};return()=>{var a,r,u,p;return e.createVNode("div",{class:d.value,onClick:t},[(r=(a=l.slots).prefix)==null?void 0:r.call(a),m(),(p=(u=l.slots).suffix)==null?void 0:p.call(u)])}}});const _={time:{type:String},dotColor:{type:String},lineStyle:{type:String,default:"solid"},lineColor:{type:String},position:{type:String},timePosition:{type:String,default:"left"},type:{type:String,default:"primary"}};var g=e.defineComponent({name:"DTimelineItem",components:{DIcon:R},props:_,emits:[],setup(n,l){const s=e.inject("timeAxis"),o="devui-timeline-item",m=()=>{var r,u;return e.createVNode("div",{class:`${o}-time`},[l.slots.time?(u=(r=l.slots).time)==null?void 0:u.call(r):n.time])},i=()=>{var r,u;return e.createVNode("div",{class:`${o}-content`},[(u=(r=l.slots).default)==null?void 0:u.call(r,n)])},d=r=>r.includes(n.position)?i():s.props.direction==="horizontal"||n.timePosition==="left"?m():"",t=r=>r==="primary"?"":e.createVNode("i",{class:`icon-${r==="success"?"right":r}-o`},null),a=()=>{var r,u;return l.slots.dot?e.createVNode("div",{style:{color:n.dotColor},class:`${o}-dot`},[" ",(u=(r=l.slots).dot)==null?void 0:u.call(r)]):e.createVNode("div",{class:`${o}-dot ${o}-type-${n.type}`,style:{borderColor:n.dotColor}},[t(n.type)])};return()=>e.createVNode("div",{class:o},[e.createVNode("div",{class:`${o}-data-left ${o}-data-top`},[d(["top","left"])]),e.createVNode("div",{class:`${o}-axis`},[a(),s.props.direction==="vertical"&&n.timePosition==="bottom"?m():"",e.createVNode("div",{class:`${o}-line ${o}-line-style-${n.lineStyle}`,style:{borderColor:n.lineColor}},[l.slots.extra?e.createVNode("div",{class:`${o}-line-extra`},[l.slots.extra()]):""])]),e.createVNode("div",{class:`${o}-data-right ${o}-data-bottom`},[d(["right","bottom"])])])}}),w="",N=e.defineComponent({name:"DTimeline",components:{TimelineItem:g},props:b,emits:[],setup(n,l){e.provide("timeAxis",{ctx:l,props:n});const s=e.ref(),o=e.reactive({marginLeft:"0px",height:"auto"}),m=()=>{o.height="auto",o.marginLeft="0px",n.direction==="horizontal"&&e.nextTick(()=>{var d;const i=s.value;n.center&&(o.marginLeft=(((d=i==null?void 0:i.firstElementChild)==null?void 0:d.clientWidth)||0)/2+"px"),o.height=Math.max(...Array.from(i==null?void 0:i.querySelectorAll(".devui-timeline-item-data-top")).map(t=>t.clientHeight),...Array.from(i==null?void 0:i.querySelectorAll(".devui-timeline-item-data-bottom")).map(t=>t.clientHeight))*2+Math.max(...Array.from(i==null?void 0:i.querySelectorAll(".devui-timeline-item-axis")).map(t=>t.clientHeight))+"px"})};return e.onMounted(()=>{m()}),e.watch(e.toRef(n,"direction"),()=>{m()}),()=>{const i=(a,r)=>r?e.createVNode(a,{position:r},null):e.createVNode(a,null,null),d=()=>{var u,p,h;const a=(h=(p=(u=l.slots).default)==null?void 0:p.call(u))!=null?h:[];let r;return a.length===1&&a[0].type===e.Fragment?r=a[0].children||[]:r=a,r.map((c,v)=>{var S,P,V,C,I,D,A,T;return v+1===r.length&&!((S=c.props)==null?void 0:S.lineStyle)&&!((P=c.props)==null?void 0:P["line-style"])&&(c=e.createVNode(c,{"line-style":"none"},null)),!((V=c.props)==null?void 0:V.timePosition)&&!((C=c.props)==null?void 0:C["time-position"])&&(c=e.createVNode(c,{"time-position":n.timePosition?n.timePosition:"left"},null)),n.direction==="horizontal"?((I=c.props)==null?void 0:I.position)==="top"||((D=c.props)==null?void 0:D.position)==="bottom"?c:n.mode==="alternative"?i(c,v%2===0?"bottom":"top"):i(c,"bottom"):((A=c.props)==null?void 0:A.position)==="left"||((T=c.props)==null?void 0:T.position)==="right"?c:n.mode==="alternative"?i(c,v%2===0?"left":"right"):i(c,"right")})},t=()=>n.direction==="horizontal"?"horizontal":"vertical";return e.createVNode("div",{class:`devui-timeline devui-timeline-${t()} ${n.center?"devui-timeline-"+t()+"-center":""} `,ref:s,style:o},[d()])}}}),L={title:"Timeline \u65F6\u95F4\u8F74",category:"\u6570\u636E\u5C55\u793A",status:"100%",install(n){n.component(N.name,N),n.component(g.name,g)}};f.Timeline=N,f.TimelineItem=g,f.default=L,f.timeAxisProps=b,Object.defineProperty(f,"__esModule",{value:!0}),f[Symbol.toStringTag]="Module"});
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "back-top",
2
+ "name": "timeline",
3
3
  "version": "0.0.0",
4
4
  "main": "index.umd.js",
5
5
  "module": "index.es.js",
@@ -0,0 +1 @@
1
+ .devui-icon__container{display:inline-flex;align-items:center;color:var(--devui-icon-fill, #71757f)}.devui-icon__container>*:not(:last-child){vertical-align:middle;margin-right:8px}.devui-icon__container i{vertical-align:middle;transition:all var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--disabled{color:var(--devui-disabled-text, #adb0b8);cursor:not-allowed}.devui-icon--disabled i{color:var(--devui-disabled-text, #adb0b8)}.devui-icon--operable:not(.devui-icon--disabled){cursor:pointer;transition:color var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--operable:not(.devui-icon--disabled) i{cursor:pointer}.devui-icon--operable:hover:not(.devui-icon--disabled){color:var(--devui-icon-fill-hover, #252b3a)}.devui-icon--operable:hover:not(.devui-icon--disabled).devui-icon__container{background-color:var(--devui-icon-background-hover, var(--devui-list-item-hover-bg, #f2f2f3))}.devui-icon--operable:hover:not(.devui-icon--disabled) i{color:var(--devui-icon-fill-hover, #252b3a)}.devui-icon--operable:active:not(.devui-icon--disabled){color:var(--devui-icon-active-color, var(--devui-icon-fill-active, #252b3a))}.devui-icon--operable:active:not(.devui-icon--disabled).devui-icon__container{background-color:var(--devui-icon-background-active, var(--devui-list-item-active-bg, #f2f5fc))}.devui-icon--operable:active:not(.devui-icon--disabled) i{color:var(--devui-icon-active-color, var(--devui-icon-fill-active, #252b3a))}.devui-icon--operable.devui-icon__container{height:32px;padding:0 8px;margin-left:-8px;border-radius:var(--devui-border-radius, 4px);transition:all var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--spin{animation:iconSpin 2.5s linear infinite}.devui-svg-icon{vertical-align:middle}@keyframes iconSpin{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}.devui-timeline-vertical{display:flex;flex-direction:column;align-items:center;position:relative}.devui-timeline-vertical .devui-timeline-item{display:flex;flex-direction:row;width:100%}.devui-timeline-vertical .devui-timeline-item-axis{display:flex;flex-direction:column;align-items:center;padding:0 12px}.devui-timeline-vertical .devui-timeline-item-line{position:relative;height:calc(100% - 18px);min-height:20px;border-left-width:2px;border-left-color:var(--devui-dividing-line, #f2f2f3)}.devui-timeline-vertical .devui-timeline-item-line-extra{position:absolute;top:50%;transform:translate(-50%,-50%)}.devui-timeline-vertical .devui-timeline-item-line:first-child{display:none}.devui-timeline-vertical .devui-timeline-item-data-left{text-align:end}.devui-timeline-vertical .devui-timeline-item-data-left,.devui-timeline-vertical .devui-timeline-item-data-right{margin-bottom:24px;margin-top:-2px;flex:1}.devui-timeline-vertical .devui-timeline-item-line-style-dashed{border-left-style:dashed}.devui-timeline-vertical .devui-timeline-item-line-style-solid{border-left-style:solid}.devui-timeline-vertical .devui-timeline-item-line-style-dotted{border-left-style:dotted}.devui-timeline-vertical .devui-timeline-item-line-style-none{border-left-style:none}.devui-timeline-vertical .devui-timeline-item .devui-timeline-middle-zone{position:absolute;top:50%;transform:translate(-50%,-50%)}.devui-timeline-horizontal{display:flex;flex-direction:row;align-items:center;position:relative}.devui-timeline-horizontal-center .devui-timeline-item-data-top,.devui-timeline-horizontal-center .devui-timeline-item-data-bottom{text-align:center;padding:0 6px}.devui-timeline-horizontal-center .devui-timeline-item-data-top>div,.devui-timeline-horizontal-center .devui-timeline-item-data-bottom>div{transform:translate(-50%)}.devui-timeline-horizontal .devui-timeline-item{display:flex;flex-direction:column;height:100%}.devui-timeline-horizontal .devui-timeline-item-axis{display:flex;flex-direction:row;align-items:center;padding:12px 0}.devui-timeline-horizontal .devui-timeline-item-line{position:relative;min-width:60px;width:calc(100% - 18px);border-bottom-width:2px;border-bottom-color:var(--devui-dividing-line, #f2f2f3)}.devui-timeline-horizontal .devui-timeline-item-line-extra{position:absolute;left:50%;transform:translate(-50%,-50%)}.devui-timeline-horizontal .devui-timeline-item:first-child .devui-timeline-item-line:first-child{opacity:0}.devui-timeline-horizontal .devui-timeline-item-data-top,.devui-timeline-horizontal .devui-timeline-item-data-bottom{padding-right:12px;flex:1}.devui-timeline-horizontal .devui-timeline-item-line-style-dashed{border-bottom-style:dashed}.devui-timeline-horizontal .devui-timeline-item-line-style-solid{border-bottom-style:solid}.devui-timeline-horizontal .devui-timeline-item-line-style-dotted{border-bottom-style:dotted}.devui-timeline-horizontal .devui-timeline-item-line-style-none{border-bottom-style:none}.devui-timeline-horizontal .devui-timeline-item .devui-timeline-middle-zone{position:absolute;left:50%;transform:translate(-50%,-50%)}.devui-timeline-item-dot,.devui-timeline-item-dot>svg{width:18px;height:18px;flex-shrink:0}.devui-timeline-item-dot>i{font-size:18px;vertical-align:0}.devui-timeline-item-type-primary{border:2px solid var(--devui-placeholder, #babbc0);border-radius:50%}.devui-timeline-item-type-success i{color:var(--devui-success, #50d4ab)}.devui-timeline-item-type-error i{color:var(--devui-danger, #f66f6a)}.devui-timeline-item-type-warning i{color:var(--devui-warning, #fac20a)}.devui-timeline-item-type-running{line-height:16px;text-align:center;animation:devui-timeline-running 1.5s linear infinite;border:2px solid var(--devui-success, #50d4ab);border-radius:50%}@keyframes devui-timeline-running{0%{transform:rotate(0);color:var(--devui-success, #50d4ab);border-color:var(--devui-success, #50d4ab)}50%{transform:rotate(180deg);color:var(--devui-success, #50d4ab);border-color:var(--devui-success, #50d4ab)}to{transform:rotate(360deg);color:var(--devui-success, #50d4ab);border-color:var(--devui-success, #50d4ab)}}