@king-design/intact 3.0.0-beta.0 → 3.0.0-beta.2

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 (603) hide show
  1. package/README.md +1 -1
  2. package/components/button/demos/basic.md +2 -1
  3. package/components/button/demos/disabled.md +2 -1
  4. package/components/button/demos/group.md +13 -2
  5. package/components/button/demos/icon.md +7 -6
  6. package/components/button/demos/loading.md +4 -4
  7. package/components/button/demos/size.md +4 -4
  8. package/components/button/index.md +1 -1
  9. package/components/button/index.ts +2 -2
  10. package/components/button/styles.ts +24 -13
  11. package/components/carousel/index.vdt +2 -2
  12. package/components/cascader/index.md +18 -0
  13. package/components/cascader/index.spec.ts +56 -0
  14. package/components/cascader/index.ts +35 -12
  15. package/components/cascader/index.vdt +10 -9
  16. package/components/cascader/styles.ts +2 -1
  17. package/components/cascader/useFields.ts +22 -0
  18. package/components/cascader/useFilterable.ts +23 -8
  19. package/components/cascader/useLabel.ts +7 -4
  20. package/components/cascader/useLoad.ts +4 -2
  21. package/components/checkbox/demos/basic.md +1 -1
  22. package/components/checkbox/demos/group.md +1 -1
  23. package/components/checkbox/demos/indeterminate.md +1 -1
  24. package/components/checkbox/demos/value.md +1 -1
  25. package/components/code/demos/basic.md +1 -1
  26. package/components/collapse/item.vdt +1 -1
  27. package/components/colorpicker/index.md +16 -0
  28. package/components/colorpicker/index.ts +4 -0
  29. package/components/colorpicker/index.vdt +3 -2
  30. package/components/copy/demos/basic.md +12 -0
  31. package/components/copy/demos/children.md +37 -0
  32. package/components/copy/index.md +21 -0
  33. package/components/copy/index.spec.ts +21 -0
  34. package/components/copy/index.ts +37 -0
  35. package/components/copy/index.vdt +23 -0
  36. package/components/copy/styles.ts +9 -0
  37. package/components/copy/useCopy.ts +91 -0
  38. package/components/datepicker/calendar.vdt +6 -6
  39. package/components/datepicker/demos/basic.md +1 -0
  40. package/components/datepicker/demos/datetime.md +5 -4
  41. package/components/datepicker/index.md +13 -0
  42. package/components/datepicker/index.spec.ts +13 -3
  43. package/components/datepicker/index.vdt +2 -2
  44. package/components/datepicker/styles.ts +13 -2
  45. package/components/datepicker/useValue.ts +35 -10
  46. package/components/dialog/alert.vdt +10 -6
  47. package/components/dialog/index.spec.ts +6 -6
  48. package/components/dialog/styles.ts +1 -1
  49. package/components/dropdown/demos/basic.md +1 -1
  50. package/components/dropdown/demos/checkbox.md +1 -1
  51. package/components/dropdown/demos/disabled.md +2 -2
  52. package/components/dropdown/demos/nested.md +6 -6
  53. package/components/dropdown/demos/position.md +3 -3
  54. package/components/dropdown/demos/tooltip.md +1 -1
  55. package/components/dropdown/demos/trigger.md +2 -2
  56. package/components/dropdown/dropdown.ts +51 -79
  57. package/components/dropdown/index.spec.ts +52 -3
  58. package/components/dropdown/item.ts +18 -7
  59. package/components/dropdown/menu.ts +4 -4
  60. package/components/dropdown/usePosition.ts +12 -1
  61. package/components/editable/index.ts +17 -3
  62. package/components/editable/index.vdt +1 -0
  63. package/components/form/demos/basic.md +2 -2
  64. package/components/form/demos/custom.md +2 -4
  65. package/components/form/index.spec.ts +1 -1
  66. package/components/form/item.vdt +1 -1
  67. package/components/form/styles.ts +22 -27
  68. package/components/grid/useGutter.ts +7 -6
  69. package/components/icon/demos/icons.md +130 -97
  70. package/components/icon/styles.ts +6 -2
  71. package/components/input/demos/autoRows.md +44 -0
  72. package/components/input/demos/blocks.md +7 -2
  73. package/components/input/demos/clearable.md +2 -2
  74. package/components/input/demos/flat.md +16 -0
  75. package/components/input/demos/password.md +12 -0
  76. package/components/input/demos/showCount.md +18 -0
  77. package/components/input/demos/size.md +6 -4
  78. package/components/input/demos/textarea.md +2 -2
  79. package/components/input/index.md +3 -0
  80. package/components/input/index.spec.ts +97 -1
  81. package/components/input/index.ts +26 -13
  82. package/components/input/index.vdt +48 -16
  83. package/components/input/search.vdt +2 -5
  84. package/components/input/styles.ts +111 -76
  85. package/components/input/useAutoRows.ts +65 -0
  86. package/components/input/useAutoWidth.ts +12 -3
  87. package/components/input/useFocus.ts +17 -0
  88. package/components/input/useShowPassword.ts +27 -0
  89. package/components/menu/demos/collapse.md +1 -1
  90. package/components/menu/index.spec.ts +9 -1
  91. package/components/menu/item.ts +7 -0
  92. package/components/menu/item.vdt +1 -1
  93. package/components/pagination/demos/flat.md +22 -0
  94. package/components/pagination/index.md +1 -1
  95. package/components/pagination/index.spec.ts +23 -0
  96. package/components/pagination/index.ts +4 -3
  97. package/components/pagination/index.vdt +8 -11
  98. package/components/pagination/styles.ts +2 -2
  99. package/components/popover/content.ts +40 -0
  100. package/components/popover/content.vdt +32 -0
  101. package/components/popover/demos/basic.md +47 -0
  102. package/components/popover/demos/button.md +49 -0
  103. package/components/popover/demos/content.md +36 -0
  104. package/components/popover/demos/text.md +38 -0
  105. package/components/popover/demos/type.md +51 -0
  106. package/components/popover/index.md +54 -0
  107. package/components/popover/index.spec.ts +91 -0
  108. package/components/popover/index.ts +52 -0
  109. package/components/popover/styles.ts +45 -0
  110. package/components/portal.ts +4 -4
  111. package/components/position.ts +5 -1
  112. package/components/progress/demos/children.md +1 -1
  113. package/components/progress/demos/circleSize.md +84 -0
  114. package/components/progress/demos/customColor.md +1 -3
  115. package/components/progress/index.ts +1 -1
  116. package/components/progress/index.vdt +36 -7
  117. package/components/progress/styles.ts +34 -21
  118. package/components/radio/demos/basic.md +1 -1
  119. package/components/radio/demos/group.md +1 -1
  120. package/components/radio/demos/value.md +1 -1
  121. package/components/rate/styles.ts +1 -0
  122. package/components/select/base.ts +11 -3
  123. package/components/select/base.vdt +56 -50
  124. package/components/select/demos/basic.md +21 -12
  125. package/components/select/demos/creatable.md +1 -1
  126. package/components/select/demos/customMenu.md +2 -2
  127. package/components/select/demos/draggable.md +55 -0
  128. package/components/select/demos/flat.md +42 -0
  129. package/components/select/demos/nowrap.md +24 -0
  130. package/components/select/demos/size.md +41 -1
  131. package/components/select/index.md +12 -0
  132. package/components/select/index.spec.ts +6 -3
  133. package/components/select/menu.vdt +7 -7
  134. package/components/select/option.vdt +1 -0
  135. package/components/select/styles.ts +57 -39
  136. package/components/select/useDraggble.ts +12 -0
  137. package/components/slider/index.spec.ts +32 -1
  138. package/components/slider/index.ts +2 -2
  139. package/components/slider/index.vdt +34 -16
  140. package/components/slider/styles.ts +21 -13
  141. package/components/slider/useValue.ts +15 -3
  142. package/components/spinner/index.md +1 -1
  143. package/components/spinner/index.ts +0 -9
  144. package/components/spinner/index.vdt +11 -8
  145. package/components/spinner/styles.ts +9 -6
  146. package/components/spinner/useChange.ts +2 -2
  147. package/components/spinner/useValue.ts +9 -1
  148. package/components/split/index.vdt +13 -3
  149. package/components/split/memo.ts +29 -0
  150. package/components/steps/demos/vertical.md +79 -0
  151. package/components/steps/index.md +1 -0
  152. package/components/steps/index.spec.ts +1 -1
  153. package/components/steps/index.ts +3 -1
  154. package/components/steps/index.vdt +4 -3
  155. package/components/steps/step.vdt +3 -3
  156. package/components/steps/styles.ts +159 -26
  157. package/components/switch/demos/onOff.md +2 -2
  158. package/components/switch/index.spec.ts +15 -10
  159. package/components/table/cell.ts +4 -5
  160. package/components/table/cell.vdt +1 -1
  161. package/components/table/column.vdt +27 -16
  162. package/components/table/demos/group.md +4 -3
  163. package/components/table/demos/hideHeader.md +33 -0
  164. package/components/table/demos/pagination.md +53 -0
  165. package/components/table/demos/title.md +3 -5
  166. package/components/table/index.md +22 -0
  167. package/components/table/index.spec.ts +91 -2
  168. package/components/table/row.ts +3 -3
  169. package/components/table/styles.ts +26 -28
  170. package/components/table/table.ts +29 -4
  171. package/components/table/table.vdt +21 -3
  172. package/components/table/useChecked.ts +21 -6
  173. package/components/table/useDisableRow.ts +3 -2
  174. package/components/table/useDraggable.ts +12 -8
  175. package/components/table/useGroup.ts +43 -23
  176. package/components/table/useMerge.ts +6 -3
  177. package/components/table/usePagination.ts +71 -0
  178. package/components/table/useRestRowStatus.ts +4 -1
  179. package/components/table/useStickyScrollbar.ts +2 -2
  180. package/components/table/useTree.ts +4 -3
  181. package/components/table/useWidth.ts +2 -2
  182. package/components/tabs/demos/beforeChange.md +2 -2
  183. package/components/tabs/demos/card.md +2 -11
  184. package/components/tabs/demos/closable.md +7 -6
  185. package/components/tabs/demos/scroll.md +104 -0
  186. package/components/tabs/demos/vertical.md +1 -9
  187. package/components/tabs/index.md +1 -1
  188. package/components/tabs/index.spec.ts +36 -0
  189. package/components/tabs/index.ts +11 -12
  190. package/components/tabs/index.vdt +7 -7
  191. package/components/tabs/styles.ts +113 -144
  192. package/components/tabs/useScroll.ts +101 -42
  193. package/components/tag/base.ts +1 -1
  194. package/components/tag/demos/draggable.md +49 -0
  195. package/components/tag/demos/tags.md +72 -0
  196. package/components/tag/index.md +42 -0
  197. package/components/tag/index.spec.ts +70 -2
  198. package/components/tag/index.ts +2 -0
  199. package/components/tag/styles.ts +53 -4
  200. package/components/tag/tags.ts +54 -0
  201. package/components/tag/tags.vdt +50 -0
  202. package/components/tag/useChildren.ts +42 -0
  203. package/components/tag/useDraggable.ts +97 -0
  204. package/components/tag/useNowrap.ts +117 -0
  205. package/components/timepicker/index.md +13 -0
  206. package/components/timepicker/index.spec.ts +1 -1
  207. package/components/tooltip/content.ts +21 -7
  208. package/components/tooltip/content.vdt +14 -8
  209. package/components/tooltip/demos/trigger.md +1 -1
  210. package/components/tooltip/index.md +3 -6
  211. package/components/tooltip/index.spec.ts +69 -40
  212. package/components/tooltip/styles.ts +3 -3
  213. package/components/tooltip/tooltip.ts +7 -1
  214. package/components/transfer/index.vdt +4 -3
  215. package/components/treeSelect/index.md +11 -0
  216. package/components/types.ts +1 -0
  217. package/components/upload/index.spec.ts +4 -4
  218. package/components/upload/index.vdt +5 -5
  219. package/components/upload/styles.ts +0 -2
  220. package/components/utils.ts +25 -4
  221. package/components/virtual.ts +98 -0
  222. package/es/components/button/index.d.ts +1 -1
  223. package/es/components/button/index.js +1 -1
  224. package/es/components/button/styles.d.ts +1 -1
  225. package/es/components/button/styles.js +3 -5
  226. package/es/components/carousel/index.vdt.js +2 -2
  227. package/es/components/cascader/index.d.ts +22 -11
  228. package/es/components/cascader/index.js +9 -12
  229. package/es/components/cascader/index.spec.js +81 -0
  230. package/es/components/cascader/index.vdt.js +11 -9
  231. package/es/components/cascader/styles.js +1 -1
  232. package/es/components/cascader/useFields.d.ts +2 -0
  233. package/es/components/cascader/useFields.js +18 -0
  234. package/es/components/cascader/useFilterable.d.ts +2 -1
  235. package/es/components/cascader/useFilterable.js +17 -6
  236. package/es/components/cascader/useLabel.d.ts +2 -1
  237. package/es/components/cascader/useLabel.js +4 -4
  238. package/es/components/cascader/useLoad.d.ts +2 -1
  239. package/es/components/cascader/useLoad.js +9 -7
  240. package/es/components/collapse/item.vdt.js +1 -1
  241. package/es/components/colorpicker/index.d.ts +2 -0
  242. package/es/components/colorpicker/index.js +7 -2
  243. package/es/components/colorpicker/index.vdt.js +3 -6
  244. package/es/components/copy/index.d.ts +17 -0
  245. package/es/components/copy/index.js +43 -0
  246. package/es/components/copy/index.spec.d.ts +1 -0
  247. package/es/components/copy/index.spec.js +52 -0
  248. package/es/components/copy/index.vdt.js +45 -0
  249. package/es/components/copy/styles.d.ts +2 -0
  250. package/es/components/copy/styles.js +14 -0
  251. package/es/components/copy/useCopy.d.ts +4 -0
  252. package/es/components/copy/useCopy.js +90 -0
  253. package/es/components/datepicker/calendar.vdt.js +6 -6
  254. package/es/components/datepicker/index.spec.js +171 -153
  255. package/es/components/datepicker/index.vdt.js +1 -1
  256. package/es/components/datepicker/styles.js +1 -1
  257. package/es/components/datepicker/useValue.d.ts +3 -3
  258. package/es/components/datepicker/useValue.js +38 -9
  259. package/es/components/diagram/shapes/callout.d.ts +1 -1
  260. package/es/components/diagram/shapes/circle.d.ts +1 -1
  261. package/es/components/diagram/shapes/document.d.ts +1 -1
  262. package/es/components/diagram/shapes/ellipse.d.ts +1 -1
  263. package/es/components/diagram/shapes/hexagon.d.ts +1 -1
  264. package/es/components/diagram/shapes/image.d.ts +1 -1
  265. package/es/components/diagram/shapes/parallelogram.d.ts +1 -1
  266. package/es/components/diagram/shapes/rectangle.d.ts +1 -1
  267. package/es/components/diagram/shapes/square.d.ts +1 -1
  268. package/es/components/diagram/shapes/text.d.ts +1 -1
  269. package/es/components/dialog/alert.vdt.js +6 -5
  270. package/es/components/dialog/index.spec.js +6 -6
  271. package/es/components/dialog/styles.js +1 -1
  272. package/es/components/dropdown/dropdown.d.ts +6 -6
  273. package/es/components/dropdown/dropdown.js +58 -75
  274. package/es/components/dropdown/index.spec.js +96 -17
  275. package/es/components/dropdown/item.d.ts +1 -1
  276. package/es/components/dropdown/item.js +19 -7
  277. package/es/components/dropdown/menu.js +1 -1
  278. package/es/components/dropdown/usePosition.js +11 -2
  279. package/es/components/editable/index.d.ts +1 -0
  280. package/es/components/editable/index.js +20 -6
  281. package/es/components/editable/index.vdt.js +2 -1
  282. package/es/components/form/index.spec.js +4 -2
  283. package/es/components/form/item.vdt.js +2 -1
  284. package/es/components/form/styles.js +4 -4
  285. package/es/components/grid/useGutter.js +8 -8
  286. package/es/components/icon/styles.js +1 -1
  287. package/es/components/input/index.d.ts +13 -2
  288. package/es/components/input/index.js +16 -13
  289. package/es/components/input/index.spec.js +169 -1
  290. package/es/components/input/index.vdt.js +44 -12
  291. package/es/components/input/search.vdt.js +2 -4
  292. package/es/components/input/styles.js +30 -6
  293. package/es/components/input/useAutoRows.d.ts +2 -0
  294. package/es/components/input/useAutoRows.js +79 -0
  295. package/es/components/input/useAutoWidth.js +13 -3
  296. package/es/components/input/useFocus.d.ts +4 -0
  297. package/es/components/input/useFocus.js +21 -0
  298. package/es/components/input/useShowPassword.d.ts +7 -0
  299. package/es/components/input/useShowPassword.js +31 -0
  300. package/es/components/menu/index.spec.js +26 -15
  301. package/es/components/menu/item.d.ts +2 -0
  302. package/es/components/menu/item.js +5 -0
  303. package/es/components/menu/item.vdt.js +4 -1
  304. package/es/components/pagination/index.d.ts +1 -1
  305. package/es/components/pagination/index.js +3 -2
  306. package/es/components/pagination/index.spec.js +49 -0
  307. package/es/components/pagination/index.vdt.js +10 -12
  308. package/es/components/pagination/styles.js +1 -1
  309. package/es/components/popover/content.d.ts +19 -0
  310. package/es/components/popover/content.js +31 -0
  311. package/es/components/popover/content.vdt.js +68 -0
  312. package/es/components/popover/index.d.ts +16 -0
  313. package/es/components/popover/index.js +44 -0
  314. package/es/components/popover/index.spec.d.ts +1 -0
  315. package/es/components/popover/index.spec.js +195 -0
  316. package/es/components/popover/styles.d.ts +1 -0
  317. package/es/components/popover/styles.js +22 -0
  318. package/es/components/portal.d.ts +6 -2
  319. package/es/components/portal.js +4 -3
  320. package/es/components/position.js +2 -1
  321. package/es/components/progress/index.js +1 -1
  322. package/es/components/progress/index.vdt.js +46 -8
  323. package/es/components/progress/styles.js +19 -13
  324. package/es/components/rate/styles.js +1 -1
  325. package/es/components/select/base.d.ts +7 -3
  326. package/es/components/select/base.js +9 -3
  327. package/es/components/select/base.vdt.js +75 -47
  328. package/es/components/select/index.spec.js +25 -13
  329. package/es/components/select/menu.vdt.js +6 -6
  330. package/es/components/select/option.vdt.js +2 -1
  331. package/es/components/select/styles.js +11 -5
  332. package/es/components/select/useDraggble.d.ts +2 -0
  333. package/es/components/select/useDraggble.js +11 -0
  334. package/es/components/slider/index.spec.js +48 -9
  335. package/es/components/slider/index.vdt.js +23 -12
  336. package/es/components/slider/styles.js +23 -14
  337. package/es/components/slider/useValue.d.ts +3 -1
  338. package/es/components/slider/useValue.js +12 -0
  339. package/es/components/spinner/index.d.ts +0 -1
  340. package/es/components/spinner/index.js +1 -19
  341. package/es/components/spinner/index.vdt.js +13 -8
  342. package/es/components/spinner/styles.js +2 -2
  343. package/es/components/spinner/useChange.d.ts +1 -1
  344. package/es/components/spinner/useChange.js +2 -2
  345. package/es/components/spinner/useValue.d.ts +1 -0
  346. package/es/components/spinner/useValue.js +16 -1
  347. package/es/components/split/index.vdt.js +32 -20
  348. package/es/components/split/memo.d.ts +9 -0
  349. package/es/components/split/memo.js +26 -0
  350. package/es/components/steps/index.d.ts +1 -0
  351. package/es/components/steps/index.js +2 -1
  352. package/es/components/steps/index.spec.js +1 -1
  353. package/es/components/steps/index.vdt.js +7 -4
  354. package/es/components/steps/step.vdt.js +2 -3
  355. package/es/components/steps/styles.d.ts +1 -0
  356. package/es/components/steps/styles.js +50 -17
  357. package/es/components/switch/index.spec.js +82 -65
  358. package/es/components/table/cell.js +1 -6
  359. package/es/components/table/cell.vdt.js +1 -1
  360. package/es/components/table/column.vdt.js +40 -24
  361. package/es/components/table/index.spec.js +162 -20
  362. package/es/components/table/row.d.ts +1 -1
  363. package/es/components/table/row.js +2 -1
  364. package/es/components/table/styles.js +16 -9
  365. package/es/components/table/table.d.ts +15 -0
  366. package/es/components/table/table.js +16 -7
  367. package/es/components/table/table.vdt.js +20 -6
  368. package/es/components/table/useChecked.d.ts +3 -2
  369. package/es/components/table/useChecked.js +23 -12
  370. package/es/components/table/useDisableRow.d.ts +2 -1
  371. package/es/components/table/useDisableRow.js +4 -4
  372. package/es/components/table/useDraggable.d.ts +3 -2
  373. package/es/components/table/useDraggable.js +11 -15
  374. package/es/components/table/useGroup.d.ts +9 -3
  375. package/es/components/table/useGroup.js +48 -37
  376. package/es/components/table/useMerge.d.ts +2 -1
  377. package/es/components/table/useMerge.js +5 -4
  378. package/es/components/table/usePagination.d.ts +8 -0
  379. package/es/components/table/usePagination.js +81 -0
  380. package/es/components/table/useStickyScrollbar.js +2 -2
  381. package/es/components/table/useTree.d.ts +2 -1
  382. package/es/components/table/useTree.js +3 -4
  383. package/es/components/table/useWidth.js +2 -2
  384. package/es/components/tabs/index.d.ts +1 -1
  385. package/es/components/tabs/index.js +1 -1
  386. package/es/components/tabs/index.spec.js +67 -0
  387. package/es/components/tabs/index.vdt.js +9 -4
  388. package/es/components/tabs/styles.js +32 -34
  389. package/es/components/tabs/useScroll.d.ts +1 -1
  390. package/es/components/tabs/useScroll.js +75 -48
  391. package/es/components/tag/base.d.ts +1 -0
  392. package/es/components/tag/base.js +1 -1
  393. package/es/components/tag/index.d.ts +1 -0
  394. package/es/components/tag/index.js +2 -1
  395. package/es/components/tag/index.spec.js +147 -4
  396. package/es/components/tag/styles.d.ts +67 -0
  397. package/es/components/tag/styles.js +33 -8
  398. package/es/components/tag/tags.d.ts +27 -0
  399. package/es/components/tag/tags.js +51 -0
  400. package/es/components/tag/tags.vdt.js +91 -0
  401. package/es/components/tag/useChildren.d.ts +2 -0
  402. package/es/components/tag/useChildren.js +39 -0
  403. package/es/components/tag/useDraggable.d.ts +3 -0
  404. package/es/components/tag/useDraggable.js +89 -0
  405. package/es/components/tag/useNowrap.d.ts +7 -0
  406. package/es/components/tag/useNowrap.js +115 -0
  407. package/es/components/timepicker/index.spec.js +1 -1
  408. package/es/components/tooltip/content.d.ts +3 -2
  409. package/es/components/tooltip/content.js +18 -1
  410. package/es/components/tooltip/content.vdt.js +22 -10
  411. package/es/components/tooltip/index.spec.js +147 -92
  412. package/es/components/tooltip/styles.d.ts +23 -0
  413. package/es/components/tooltip/styles.js +2 -2
  414. package/es/components/tooltip/tooltip.d.ts +1 -1
  415. package/es/components/tooltip/tooltip.js +11 -11
  416. package/es/components/transfer/index.vdt.js +14 -3
  417. package/es/components/types.d.ts +1 -0
  418. package/es/components/upload/index.spec.js +5 -6
  419. package/es/components/upload/index.vdt.js +7 -5
  420. package/es/components/utils.d.ts +2 -0
  421. package/es/components/utils.js +24 -3
  422. package/es/components/virtual.d.ts +8 -0
  423. package/es/components/virtual.js +126 -0
  424. package/es/hooks/useResizeObserver.d.ts +1 -1
  425. package/es/hooks/useResizeObserver.js +19 -6
  426. package/es/i18n/en-US.d.ts +4 -1
  427. package/es/i18n/en-US.js +6 -2
  428. package/es/index.d.ts +5 -3
  429. package/es/index.js +5 -3
  430. package/es/packages/kpc-react/__tests__/components/cascader.spec.d.ts +1 -0
  431. package/es/packages/kpc-react/__tests__/components/cascader.spec.js +79 -0
  432. package/es/packages/kpc-react/__tests__/components/drawer.spec.js +74 -6
  433. package/es/site/data/components/button/demos/basic/react.js +3 -1
  434. package/es/site/data/components/button/demos/disabled/react.js +5 -2
  435. package/es/site/data/components/button/demos/group/react.js +28 -2
  436. package/es/site/data/components/button/demos/icon/react.js +12 -6
  437. package/es/site/data/components/button/demos/loading/react.js +4 -4
  438. package/es/site/data/components/button/demos/size/react.js +4 -4
  439. package/es/site/data/components/copy/demos/basic/react.js +23 -0
  440. package/es/site/data/components/copy/demos/children/react.js +44 -0
  441. package/es/site/data/components/copy/index.d.ts +57 -0
  442. package/es/site/data/components/copy/index.js +42 -0
  443. package/es/site/data/components/datepicker/demos/basic/react.js +8 -0
  444. package/es/site/data/components/datepicker/demos/datetime/index.d.ts +1 -0
  445. package/es/site/data/components/datepicker/demos/datetime/index.js +1 -0
  446. package/es/site/data/components/dropdown/demos/basic/react.js +1 -1
  447. package/es/site/data/components/dropdown/demos/checkbox/react.js +1 -1
  448. package/es/site/data/components/dropdown/demos/disabled/react.js +2 -2
  449. package/es/site/data/components/dropdown/demos/nested/react.js +9 -9
  450. package/es/site/data/components/dropdown/demos/position/react.js +3 -3
  451. package/es/site/data/components/dropdown/demos/tooltip/react.js +2 -1
  452. package/es/site/data/components/dropdown/demos/trigger/react.js +2 -2
  453. package/es/site/data/components/form/demos/basic/react.js +1 -1
  454. package/es/site/data/components/icon/demos/icons/index.d.ts +8 -4
  455. package/es/site/data/components/icon/demos/icons/index.js +35 -1
  456. package/es/site/data/components/icon/demos/icons/react.d.ts +9 -4
  457. package/es/site/data/components/icon/demos/icons/react.js +51 -9
  458. package/es/site/data/components/input/demos/autoRows/index.d.ts +9 -0
  459. package/es/site/data/components/input/demos/autoRows/index.js +24 -0
  460. package/es/site/data/components/input/demos/autoRows/react.d.ts +8 -0
  461. package/es/site/data/components/input/demos/autoRows/react.js +62 -0
  462. package/es/site/data/components/input/demos/blocks/react.js +7 -7
  463. package/es/site/data/components/input/demos/clearable/react.js +2 -2
  464. package/es/site/data/components/input/demos/flat/index.d.ts +5 -0
  465. package/es/site/data/components/input/demos/flat/index.js +17 -0
  466. package/es/site/data/components/input/demos/flat/react.d.ts +4 -0
  467. package/es/site/data/components/input/demos/flat/react.js +29 -0
  468. package/es/site/data/components/input/demos/password/index.d.ts +5 -0
  469. package/es/site/data/components/input/demos/password/index.js +17 -0
  470. package/es/site/data/components/input/demos/password/react.d.ts +5 -0
  471. package/es/site/data/components/input/demos/password/react.js +41 -0
  472. package/es/site/data/components/input/demos/showCount/index.d.ts +5 -0
  473. package/es/site/data/components/input/demos/showCount/index.js +17 -0
  474. package/es/site/data/components/input/demos/showCount/react.d.ts +4 -0
  475. package/es/site/data/components/input/demos/showCount/react.js +33 -0
  476. package/es/site/data/components/input/demos/size/react.js +8 -8
  477. package/es/site/data/components/input/demos/textarea/react.js +4 -2
  478. package/es/site/data/components/menu/demos/collapse/index.js +1 -1
  479. package/es/site/data/components/menu/demos/collapse/react.js +1 -1
  480. package/es/site/data/components/pagination/demos/flat/index.d.ts +6 -0
  481. package/es/site/data/components/pagination/demos/flat/index.js +18 -0
  482. package/es/site/data/components/pagination/demos/flat/react.d.ts +5 -0
  483. package/es/site/data/components/pagination/demos/{noBoard → flat}/react.js +12 -8
  484. package/es/site/data/components/popover/demos/basic/react.d.ts +8 -0
  485. package/es/site/data/components/{tooltip/demos/confirm → popover/demos/basic}/react.js +14 -9
  486. package/es/site/data/components/popover/demos/button/index.d.ts +8 -0
  487. package/es/site/data/components/popover/demos/button/index.js +42 -0
  488. package/es/site/data/components/popover/demos/button/react.d.ts +8 -0
  489. package/es/site/data/components/popover/demos/button/react.js +73 -0
  490. package/es/site/data/components/popover/demos/content/index.d.ts +7 -0
  491. package/es/site/data/components/popover/demos/content/index.js +28 -0
  492. package/es/site/data/components/{tooltip/demos/confirm → popover/demos/content}/react.d.ts +0 -1
  493. package/es/site/data/components/popover/demos/content/react.js +43 -0
  494. package/es/site/data/components/popover/demos/text/index.d.ts +7 -0
  495. package/es/site/data/components/popover/demos/text/index.js +28 -0
  496. package/es/site/data/components/popover/demos/text/react.d.ts +6 -0
  497. package/es/site/data/components/popover/demos/text/react.js +36 -0
  498. package/es/site/data/components/popover/demos/type/index.d.ts +11 -0
  499. package/es/site/data/components/popover/demos/type/index.js +34 -0
  500. package/es/site/data/components/popover/demos/type/react.d.ts +11 -0
  501. package/es/site/data/components/popover/demos/type/react.js +58 -0
  502. package/es/site/data/components/popover/index.d.ts +57 -0
  503. package/es/site/data/components/popover/index.js +42 -0
  504. package/es/site/data/components/progress/demos/children/react.js +4 -4
  505. package/es/site/data/components/progress/demos/circleSize/index.d.ts +14 -0
  506. package/es/site/data/components/progress/demos/circleSize/index.js +43 -0
  507. package/es/site/data/components/progress/demos/circleSize/react.d.ts +14 -0
  508. package/es/site/data/components/progress/demos/circleSize/react.js +98 -0
  509. package/es/site/data/components/progress/demos/customColor/react.js +4 -4
  510. package/es/site/data/components/select/demos/basic/react.js +19 -7
  511. package/es/site/data/components/select/demos/creatable/react.js +2 -1
  512. package/es/site/data/components/select/demos/customMenu/react.js +5 -5
  513. package/es/site/data/components/select/demos/draggable/index.d.ts +10 -0
  514. package/es/site/data/components/select/demos/draggable/index.js +24 -0
  515. package/es/site/data/components/select/demos/draggable/react.d.ts +10 -0
  516. package/es/site/data/components/select/demos/draggable/react.js +85 -0
  517. package/es/site/data/components/select/demos/flat/index.d.ts +5 -0
  518. package/es/site/data/components/select/demos/flat/index.js +17 -0
  519. package/es/site/data/components/select/demos/flat/react.d.ts +4 -0
  520. package/es/site/data/components/select/demos/flat/react.js +73 -0
  521. package/es/site/data/components/select/demos/inline/index.d.ts +5 -0
  522. package/es/site/data/components/select/demos/inline/index.js +17 -0
  523. package/es/site/data/components/select/demos/inline/react.d.ts +4 -0
  524. package/es/site/data/components/select/demos/nowrap/index.d.ts +5 -0
  525. package/es/site/data/components/select/demos/nowrap/index.js +17 -0
  526. package/es/site/data/components/select/demos/nowrap/react.d.ts +4 -0
  527. package/es/site/data/components/select/demos/nowrap/react.js +41 -0
  528. package/es/site/data/components/select/demos/size/index.d.ts +1 -0
  529. package/es/site/data/components/select/demos/size/index.js +2 -1
  530. package/es/site/data/components/select/demos/size/react.d.ts +1 -0
  531. package/es/site/data/components/select/demos/size/react.js +93 -1
  532. package/es/site/data/components/steps/demos/vertical/index.d.ts +14 -0
  533. package/es/site/data/components/steps/demos/vertical/index.js +40 -0
  534. package/es/site/data/components/steps/demos/vertical/react.d.ts +14 -0
  535. package/es/site/data/components/steps/demos/vertical/react.js +124 -0
  536. package/es/site/data/components/switch/demos/onOff/react.js +1 -3
  537. package/es/site/data/components/table/demos/hideHeader/index.d.ts +12 -0
  538. package/es/site/data/components/table/demos/hideHeader/index.js +30 -0
  539. package/es/site/data/components/table/demos/hideHeader/react.d.ts +11 -0
  540. package/es/site/data/components/table/demos/hideHeader/react.js +60 -0
  541. package/es/site/data/components/table/demos/pagination/index.d.ts +12 -0
  542. package/es/site/data/components/table/demos/pagination/index.js +35 -0
  543. package/es/site/data/components/table/demos/pagination/react.d.ts +16 -0
  544. package/es/site/data/components/table/demos/pagination/react.js +65 -0
  545. package/es/site/data/components/table/demos/title/react.js +4 -4
  546. package/es/site/data/components/tabs/demos/card/react.js +1 -15
  547. package/es/site/data/components/tabs/demos/closable/index.js +1 -1
  548. package/es/site/data/components/tabs/demos/closable/react.js +9 -3
  549. package/es/site/data/components/tabs/demos/scroll/index.d.ts +18 -0
  550. package/es/site/data/components/tabs/demos/scroll/index.js +87 -0
  551. package/es/site/data/components/tabs/demos/scroll/react.d.ts +18 -0
  552. package/es/site/data/components/tabs/demos/scroll/react.js +166 -0
  553. package/es/site/data/components/tabs/demos/vertical/react.js +1 -16
  554. package/es/site/data/components/tag/demos/draggable/index.d.ts +11 -0
  555. package/es/site/data/components/tag/demos/draggable/index.js +24 -0
  556. package/es/site/data/components/tag/demos/draggable/react.d.ts +11 -0
  557. package/es/site/data/components/tag/demos/draggable/react.js +62 -0
  558. package/es/site/data/components/tag/demos/tags/index.d.ts +12 -0
  559. package/es/site/data/components/tag/demos/tags/index.js +39 -0
  560. package/es/site/data/components/tag/demos/tags/react.d.ts +12 -0
  561. package/es/site/data/components/tag/demos/tags/react.js +83 -0
  562. package/es/site/src/pages/document/index.js +2 -3
  563. package/es/site/src/pages/styles.js +1 -1
  564. package/es/site/src/router/index.js +1 -1
  565. package/es/styles/fonts/iconfont.eot +0 -0
  566. package/es/styles/fonts/iconfont.js +2 -2
  567. package/es/styles/fonts/iconfont.svg +35 -35
  568. package/es/styles/fonts/iconfont.ttf +0 -0
  569. package/es/styles/fonts/iconfont.woff +0 -0
  570. package/es/styles/fonts/ionicons.js +3 -3
  571. package/es/styles/global.js +1 -1
  572. package/hooks/useResizeObserver.ts +19 -7
  573. package/i18n/en-US.ts +6 -1
  574. package/index.ts +5 -3
  575. package/package.json +9 -5
  576. package/styles/fonts/demo.css +277 -108
  577. package/styles/fonts/demo_index.html +2169 -0
  578. package/styles/fonts/iconfont.css +52 -50
  579. package/styles/fonts/iconfont.eot +0 -0
  580. package/styles/fonts/iconfont.js +1 -0
  581. package/styles/fonts/iconfont.json +611 -0
  582. package/styles/fonts/iconfont.svg +35 -35
  583. package/styles/fonts/iconfont.ts +124 -125
  584. package/styles/fonts/iconfont.ttf +0 -0
  585. package/styles/fonts/iconfont.woff +0 -0
  586. package/styles/fonts/iconfont.woff2 +0 -0
  587. package/styles/fonts/ionicons.ts +2 -3
  588. package/styles/global.ts +7 -7
  589. package/components/pagination/demos/noBoard.md +0 -22
  590. package/components/table/useResizeObserver.ts +0 -22
  591. package/components/tooltip/demos/confirm.md +0 -41
  592. package/es/components/table/useResizeObserver.d.ts +0 -2
  593. package/es/components/table/useResizeObserver.js +0 -20
  594. /package/components/select/demos/{noBorder.md → inline.md} +0 -0
  595. /package/es/site/data/components/{select/demos/noBorder → copy/demos/basic}/index.d.ts +0 -0
  596. /package/es/site/data/components/{select/demos/noBorder → copy/demos/basic}/index.js +0 -0
  597. /package/es/site/data/components/{select/demos/noBorder → copy/demos/basic}/react.d.ts +0 -0
  598. /package/es/site/data/components/{pagination/demos/noBoard → copy/demos/children}/index.d.ts +0 -0
  599. /package/es/site/data/components/{pagination/demos/noBoard → copy/demos/children}/index.js +0 -0
  600. /package/es/site/data/components/{pagination/demos/noBoard → copy/demos/children}/react.d.ts +0 -0
  601. /package/es/site/data/components/{tooltip/demos/confirm → popover/demos/basic}/index.d.ts +0 -0
  602. /package/es/site/data/components/{tooltip/demos/confirm → popover/demos/basic}/index.js +0 -0
  603. /package/es/site/data/components/select/demos/{noBorder → inline}/react.js +0 -0
package/README.md CHANGED
@@ -96,7 +96,7 @@ Welcome to join us by QQ. Group Number: 529739732
96
96
 
97
97
  ## Develop
98
98
 
99
- > Require `node@10` and `npm@6.9` or above.
99
+ > Require `node@10 ~ node@14` and `npm@6.9` or above.
100
100
 
101
101
  ```shell
102
102
  git clone https://github.com/ksc-fe/kpc.git
@@ -3,7 +3,7 @@ title: 按钮类型
3
3
  order: 0
4
4
  ---
5
5
 
6
- 有如下几种类型:默认按钮,主按钮,次按钮,警告按钮,危险按钮,成功按钮,文字按钮,超链接按钮
6
+ 有如下几种类型:默认按钮,主按钮,次按钮,警告按钮,危险按钮,成功按钮,文字按钮,超链接按钮,扁平按钮
7
7
 
8
8
  ```vdt
9
9
  import {Button} from 'kpc';
@@ -17,6 +17,7 @@ import {Button} from 'kpc';
17
17
  <Button type="success">success</Button>
18
18
  <Button type="none">none</Button>
19
19
  <Button type="link">link</Button>
20
+ <Button type="flat">flat</Button>
20
21
  </div>
21
22
  ```
22
23
 
@@ -11,7 +11,8 @@ import {Button} from 'kpc';
11
11
  <div>
12
12
  <Button disabled>disabled</Button>
13
13
  <Button disabled type="none">disabled text</Button>
14
- <Button disabled icon circle><i class="k-icon ion-ios-search"></i></Button>
14
+ <Button disabled icon circle><i class="k-icon k-icon-search"></i></Button>
15
15
  <Button disabled type="link">link</Button>
16
+ <Button disabled type="flat">flat</Button>
16
17
  </div>
17
18
  ```
@@ -20,12 +20,17 @@ import {Button, ButtonGroup} from 'kpc';
20
20
  <Button type="danger">关机</Button>
21
21
  <Button type="danger">重启</Button>
22
22
  </ButtonGroup>
23
+ <ButtonGroup>
24
+ <Button type="flat">开机</Button>
25
+ <Button type="flat">关机</Button>
26
+ <Button type="flat">重启</Button>
27
+ </ButtonGroup>
23
28
  <ButtonGroup>
24
29
  <Button type="primary">
25
- <i class="k-icon ion-ios-arrow-left"></i>上一页
30
+ <i class="k-icon k-icon-left"></i>上一页
26
31
  </Button>
27
32
  <Button type="primary">
28
- 下一页<i class="k-icon ion-ios-arrow-right"></i>
33
+ 下一页<i class="k-icon k-icon-right"></i>
29
34
  </Button>
30
35
  </ButtonGroup>
31
36
  <br /><br />
@@ -43,6 +48,12 @@ import {Button, ButtonGroup} from 'kpc';
43
48
  <Button value="guangzhou">广州</Button>
44
49
  <Button value="shenzhen">深圳</Button>
45
50
  </ButtonGroup>
51
+ <ButtonGroup checkType="radio" v-model="city">
52
+ <Button type="flat" value="beijing">北京</Button>
53
+ <Button type="flat" value="shanghai">上海</Button>
54
+ <Button type="flat" value="guangzhou">广州</Button>
55
+ <Button type="flat" value="shenzhen">深圳</Button>
56
+ </ButtonGroup>
46
57
  <p>多选按钮组</p>
47
58
  <ButtonGroup checkType="checkbox" v-model="cities">
48
59
  <Button value="beijing" size="small">北京</Button>
@@ -11,12 +11,13 @@ order: 1
11
11
  import {Button, Icon} from 'kpc';
12
12
 
13
13
  <div>
14
- <Button icon><Icon class="ion-ios-search" /></Button>
15
- <Button icon circle><Icon class="ion-ios-search" /></Button>
16
- <Button icon circle type="none"><Icon class="ion-ios-search" /></Button>
17
- <Button type="danger" size="large" icon circle><Icon class="ion-ios-search" size="large" /></Button>
18
- <Button type="primary"><Icon class="ion-ios-search" size="small" />搜索</Button>
19
- <Button circle type='primary'><Icon class="ion-ios-search" size="small" />搜索</Button>
14
+ <Button icon><Icon class="k-icon-search" /></Button>
15
+ <Button icon circle><Icon class="k-icon-search" /></Button>
16
+ <Button icon circle type="none"><Icon class="k-icon-search" /></Button>
17
+ <Button icon circle type="flat"><Icon class="k-icon-search" /></Button>
18
+ <Button type="danger" size="large" icon circle><Icon class="k-icon-search" size="large" /></Button>
19
+ <Button type="primary"><Icon class="k-icon-search" size="small" />搜索</Button>
20
+ <Button circle type='primary'><Icon class="k-icon-search" size="small" />搜索</Button>
20
21
  </div>
21
22
  ```
22
23
 
@@ -13,7 +13,7 @@ import {Button, Icon} from 'kpc';
13
13
 
14
14
  <div>
15
15
  <Button type="primary" loading>确认</Button>
16
- <Button icon circle loading><i class="k-icon ion-ios-search"></i></Button>
16
+ <Button icon circle loading><i class="k-icon k-icon-search"></i></Button>
17
17
  <br /> <br />
18
18
  <Button type="primary"
19
19
  loading={this.get('loading1')}
@@ -22,15 +22,15 @@ import {Button, Icon} from 'kpc';
22
22
  <Button type="primary"
23
23
  loading={this.get('loading2')}
24
24
  ev-click={this.onClick.bind(this, 'loading2')}
25
- ><Icon class="ion-ios-search" />点击加载</Button>
25
+ ><Icon class="k-icon-search" />点击加载</Button>
26
26
  <Button icon circle
27
27
  loading={this.get('loading3')}
28
28
  ev-click={this.onClick.bind(this, 'loading3')}
29
- ><Icon class="ion-ios-search" /></Button>
29
+ ><Icon class="k-icon-search" /></Button>
30
30
  <Button type="primary"
31
31
  loading={this.get('loading4')}
32
32
  ev-click={this.onClick.bind(this, 'loading4')}
33
- >图标在右侧<Icon class="ion-ios-search" /></Button>
33
+ >图标在右侧<Icon class="k-icon-search" /></Button>
34
34
  </div>
35
35
  ```
36
36
 
@@ -14,10 +14,10 @@ import {Button, Icon} from 'kpc';
14
14
  <Button size="small">small</Button>
15
15
  <Button size="mini">mini</Button>
16
16
  <br /><br />
17
- <Button icon circle size="large"><Icon class="ion-ios-search" size="large" /></Button>
18
- <Button icon circle><Icon class="ion-ios-search" /></Button>
19
- <Button icon circle size="small"><Icon class="ion-ios-search" size="small" /></Button>
20
- <Button icon circle size="mini"><Icon class="ion-ios-search" size="mini" /></Button>
17
+ <Button icon circle size="large"><Icon class="k-icon-search" size="large" /></Button>
18
+ <Button icon circle><Icon class="k-icon-search" /></Button>
19
+ <Button icon circle size="small"><Icon class="k-icon-search" size="small" /></Button>
20
+ <Button icon circle size="mini"><Icon class="k-icon-search" size="mini" /></Button>
21
21
  </div>
22
22
  ```
23
23
 
@@ -11,7 +11,7 @@ sidebar: doc
11
11
 
12
12
  | 属性 | 说明 | 类型 | 默认值 |
13
13
  | --- | --- | --- | --- |
14
- | type | 按钮类型 | `"default"` &#124; `"primary"` &#124; `"warning"` &#124; `"danger"` &#124; `"success"` &#124; `"none"` &#124; `"secondary" `&#124; `"link"`| `"default"` |
14
+ | type | 按钮类型 | `"default"` &#124; `"primary"` &#124; `"warning"` &#124; `"danger"` &#124; `"success"` &#124; `"none"` &#124; `"secondary" `&#124; `"link"` &#124; `"flat"` | `"default"` |
15
15
  | size | 按钮尺寸 | `"default"` &#124; `"small"` &#124; `"mini"` | `"default"` |
16
16
  | icon | 是否为图标按钮(宽高相等)| `boolean` | `false` |
17
17
  | circle | 是否为圆角按钮 | `boolean` | `false` |
@@ -21,7 +21,7 @@ interface ButtonHTMLAttributes {
21
21
  }
22
22
 
23
23
  export interface ButtonProps extends ButtonHTMLAttributes {
24
- type?: Colors | 'none' | 'secondary' | 'link'
24
+ type?: Colors | 'none' | 'secondary' | 'link' | 'flat'
25
25
  size?: Sizes,
26
26
  icon?: boolean
27
27
  circle?: boolean
@@ -42,7 +42,7 @@ export interface ButtonEvents {
42
42
  }
43
43
 
44
44
  const typeDefs: Required<TypeDefs<Omit<ButtonProps, keyof ButtonHTMLAttributes>>> = {
45
- type: ['default', 'primary', 'warning', 'danger', 'success', 'none', 'secondary', 'link'],
45
+ type: ['default', 'primary', 'warning', 'danger', 'success', 'none', 'secondary', 'link', 'flat'],
46
46
  size: ['large', 'default', 'small', 'mini'],
47
47
  icon: Boolean,
48
48
  circle: Boolean,
@@ -29,7 +29,7 @@ export const types = ['primary', 'warning', 'danger', 'active', 'success'] as co
29
29
  const sizes = ['large', 'small', 'mini'] as const;
30
30
 
31
31
  const btnStyles = {
32
- get color() { return theme.color.lightBlack },
32
+ get color() { return theme.color.text },
33
33
  bgColor: '#fff',
34
34
  lineHeight: '1.15',
35
35
  get padding() { return `0 ${theme.default.padding}` },
@@ -114,7 +114,8 @@ const defaults = deepDefaults(
114
114
  link: {
115
115
  get color() { return theme.color.link },
116
116
  get hoverColor() { return theme.color.linkHover },
117
- get hoverBgColor() { return theme.color.hoverBg },
117
+ hoverBgColor: 'transparent',
118
+ // get hoverBgColor() { return theme.color.hoverBg },
118
119
  },
119
120
 
120
121
  none: {
@@ -234,18 +235,9 @@ export function makeButtonStyles({iconSide}: {iconSide?: string}) {
234
235
  }
235
236
  }
236
237
 
237
- // disabled
238
- &.k-disabled {
239
- &, &:hover {
240
- color: ${button.disabled.color};
241
- background: ${button.disabled.bgColor};
242
- border-color: ${button.disabled.borderColor};
243
- cursor: not-allowed
244
- }
245
- }
246
-
247
238
  &.k-none,
248
- &.k-link {
239
+ &.k-link,
240
+ &.k-flat {
249
241
  background: transparent;
250
242
  &, &:hover {
251
243
  border: none;
@@ -257,6 +249,25 @@ export function makeButtonStyles({iconSide}: {iconSide?: string}) {
257
249
  &.k-none:hover {
258
250
  background: ${button.none.hoverBgColor};
259
251
  }
252
+ &.k-flat {
253
+ background: ${button.none.hoverBgColor};
254
+ }
255
+
256
+ // disabled
257
+ &.k-disabled {
258
+ &, &:hover {
259
+ color: ${button.disabled.color};
260
+ background: ${button.disabled.bgColor};
261
+ border-color: ${button.disabled.borderColor};
262
+ cursor: not-allowed
263
+ }
264
+ }
265
+ &.k-none.k-disabled,
266
+ &.k-link.k-disabled {
267
+ &, &:hover {
268
+ background: transparent;
269
+ }
270
+ }
260
271
 
261
272
  ${sizes.map(size => {
262
273
  const styles = button[size];
@@ -36,12 +36,12 @@ const {stop, play} = this.autoplay;
36
36
  <Button icon circle type="none" size="large" class="k-carousel-btn k-prev"
37
37
  ev-click={this.prev}
38
38
  >
39
- <Icon class="ion-ios-arrow-left" />
39
+ <Icon class="k-icon-left" />
40
40
  </Button>
41
41
  <Button icon circle type="none" size="large" class="k-carousel-btn k-next"
42
42
  ev-click={this.next}
43
43
  >
44
- <Icon class="ion-ios-arrow-right" />
44
+ <Icon class="k-icon-right" />
45
45
  </Button>
46
46
  <div class="k-carousel-indicator c-clearfix">
47
47
  <div v-for={getItems()}
@@ -30,6 +30,8 @@ sidebar: doc
30
30
  | loadData | 如果`data`中的`children`属性值为空数组`[]`,则可以使用该属性定义动态加载逻辑,组件会将当前选中的数据项作为参数传入 | `(data: CascaderData<V>) => any` | `undefined` |
31
31
  | filter | 如果可搜索,你可以传入`filter`改变搜索逻辑,组件会将搜索关键词和数据项作为参数传入 | `(keywords: string, data: CascaderData<V>) => boolean` | `(keywords: string, data: CascaderData<V>) => data.label.includes(keywords)` |
32
32
  | show | 是否展示菜单项 | `boolean` | `false` |
33
+ | fields | 指定`value` `label` `children` `disabled`字段名 | `CascaderFields<CascaderData<any>>` | `{ value: 'value', label: 'label', children: 'children', disabled: 'disabled' }` |
34
+ | position | 菜单弹出的位置,默认与触发器左侧对齐向下偏移`8px`的地方 | `Position` &#124; `"left"` &#124; `"bottom"` &#124; `"right"` &#124; `"top"` | `{my: 'left top+8', 'left bottom'}` |
33
35
 
34
36
  ```ts
35
37
  export type CascaderData<V> = {
@@ -40,6 +42,22 @@ export type CascaderData<V> = {
40
42
  children?: CascaderData<V>[]
41
43
  }
42
44
 
45
+ export type CascaderFields<Data> = {
46
+ value?: keyof Data,
47
+ label?: keyof Data,
48
+ children?: keyof Data,
49
+ disabled?: keyof Data,
50
+ }
51
+
52
+ type Position = {
53
+ my?: string | [string, string]
54
+ at?: string | [string, string]
55
+ collision?: Collision | [Collision, Collision]
56
+ collisionDirection?: ['left'] | ['top'] | ['left', 'top']
57
+ }
58
+
59
+ type Collision = 'fit' | 'flip' | 'flipfit' | 'none'
60
+
43
61
  export type Container = string | ((parentDom: Element, anchor: Node | null) => Element)
44
62
  ```
45
63
 
@@ -205,4 +205,60 @@ describe('Cascader', () => {
205
205
  expect(instance.get('value')).to.eql(['hunan', 'haidian']);
206
206
  expect(element.textContent).to.eql('湖南 / 海淀区');
207
207
  });
208
+
209
+ it('specify fields', async () => {
210
+ class Demo extends Component {
211
+ static template = `
212
+ const {Cascader} = this;
213
+ <Cascader data={this.get('data')}
214
+ v-model="value"
215
+ fields={{value: 'v', label: 'l', children: 'c'}}
216
+ />
217
+ `;
218
+ static defaults() {
219
+ return {
220
+ value: [],
221
+ data: [
222
+ {
223
+ v: 'beijing',
224
+ l: '北京',
225
+ c: [
226
+ {
227
+ v: 'haidian',
228
+ l: '海淀区'
229
+ },
230
+ ]
231
+ },
232
+ {
233
+ v: 'hunan',
234
+ l: '湖南',
235
+ c: [
236
+ {
237
+ v: 'haidian',
238
+ l: '海淀区'
239
+ },
240
+ ]
241
+ },
242
+ ]
243
+ }
244
+ }
245
+ private Cascader = Cascader;
246
+ }
247
+
248
+ const [instance, element] = mount(Demo);
249
+ const select = element;
250
+ select.click();
251
+ await wait();
252
+ const dropdown1 = getElement('.k-cascader-menu')!;
253
+ const [item1] = dropdown1.querySelectorAll<HTMLElement>(':scope > .k-dropdown-item');
254
+ item1.click();
255
+ await wait();
256
+ expect(dropdown1.innerHTML).to.matchSnapshot();
257
+ const dropdown2 = getElement('.k-cascader-menu')!;
258
+ const [item11,] = dropdown2.querySelectorAll<HTMLElement>(':scope > .k-dropdown-item');
259
+ item11.click();
260
+ await wait();
261
+ expect(element.innerHTML).to.matchSnapshot();
262
+ expect(instance.get('value')).to.eql(['beijing', 'haidian']);
263
+ });
208
264
  });
@@ -7,22 +7,39 @@ import {useValue} from './useValue';
7
7
  import {useLabel} from './useLabel';
8
8
  import {useLoad} from './useLoad';
9
9
  import {useFilterable} from './useFilterable';
10
+ import { useFields } from './useFields';
10
11
 
11
- export interface CascaderProps<V = any, Multipe extends boolean = boolean> extends BaseSelectProps<V[], Multipe> {
12
- data?: CascaderData<V>[]
12
+ export interface CascaderProps<
13
+ V = any,
14
+ Multipe extends boolean = boolean,
15
+ Data extends BaseCascaderData = CascaderData<V>
16
+ > extends BaseSelectProps<V[], Multipe> {
17
+ data?: Data[],
13
18
  trigger?: 'click' | 'hover'
14
19
  changeOnSelect?: boolean
15
20
  format?: (labels: string[]) => string
16
- loadData?: (data: CascaderData<V>) => any
17
- filter?: (keywords: string, data: CascaderData<V>) => boolean,
21
+ loadData?: (data: Data) => any
22
+ filter?: (keywords: string, data: Data) => boolean,
23
+ fields?: CascaderFields<Data>,
24
+ }
25
+
26
+ export type CascaderFields<Data> = {
27
+ value?: keyof Data,
28
+ label?: keyof Data,
29
+ children?: keyof Data,
30
+ disabled?: keyof Data,
18
31
  }
19
32
 
20
- export type CascaderData<V> = {
33
+ export interface BaseCascaderData {
34
+ loaded?: boolean
35
+ [key: string]: any
36
+ }
37
+
38
+ export interface CascaderData<V> extends BaseCascaderData {
21
39
  value: V
22
40
  label: string
23
- disabled?: boolean
24
- loaded?: boolean
25
41
  children?: CascaderData<V>[]
42
+ disabled?: boolean
26
43
  }
27
44
 
28
45
  export interface CascaderEvents extends BaseSelectEvents { }
@@ -37,6 +54,7 @@ const typeDefs: Required<TypeDefs<CascaderProps>> = {
37
54
  format: Function,
38
55
  loadData: Function,
39
56
  filter: Function,
57
+ fields: Object,
40
58
  };
41
59
 
42
60
  const defaults = (): Partial<CascaderProps> => ({
@@ -44,21 +62,26 @@ const defaults = (): Partial<CascaderProps> => ({
44
62
  data: [],
45
63
  trigger: 'click',
46
64
  format: (labels: string[]) => labels.join(' / '),
47
- filter: (keywords: string, data: CascaderData<any>) => data.label.includes(keywords),
48
65
  });
49
66
 
50
67
  export class Cascader<
51
68
  V = any,
52
69
  Multipe extends boolean = false,
53
- > extends BaseSelect<CascaderProps<V, Multipe>, CascaderEvents, CascaderBlocks<V>> {
70
+ Data extends BaseCascaderData = CascaderData<V>
71
+ > extends BaseSelect<CascaderProps<V, Multipe, Data>, CascaderEvents, CascaderBlocks<V>> {
54
72
  static template = template;
55
73
  static typeDefs = typeDefs;
56
74
  static defaults = defaults;
57
75
 
76
+ private fields = useFields();
58
77
  private value = useValue();
59
- private label = useLabel();
60
- private load = useLoad();
61
- private filterable = useFilterable(this.input.keywords, this.value.setValue);
78
+ private label = useLabel(this.fields);
79
+ private load = useLoad(this.fields);
80
+ private filterable = useFilterable(
81
+ this.input.keywords,
82
+ this.value.setValue,
83
+ this.fields
84
+ );
62
85
  private positionObj = {my: 'left top', at: 'right top', collisionDirection: ['left']};
63
86
 
64
87
  protected getPlaceholder() {
@@ -3,12 +3,13 @@ import {Icon} from '../icon';
3
3
  import {_$} from '../../i18n';
4
4
  import {makeMenuStyles, makeFilterMenuStyles} from './styles';
5
5
 
6
- const {data, trigger, filterable} = this.get();
6
+ const {data, trigger, filterable, fields} = this.get();
7
7
  const baseMenuStyles = makeMenuStyles();
8
8
  const classNameObj = {
9
9
  'k-cascader-menu': true,
10
10
  [baseMenuStyles]: true,
11
11
  };
12
+ const getField = this.fields;
12
13
 
13
14
  const {values, isShowed, isSelected, onSelect, toggleShowedValue} = this.value;
14
15
  const Options = (data, level, loaded, parentSelected) => {
@@ -21,15 +22,15 @@ const Options = (data, level, loaded, parentSelected) => {
21
22
  }
22
23
 
23
24
  return data.map((item, index) => {
24
- const value = item.value;
25
+ const value = getField(item, 'value');
25
26
  const showed = isShowed(value, level);
26
27
  const selected = parentSelected && isSelected(value, level);
27
- const children = item.children;
28
+ const children = getField(item, 'children');
28
29
 
29
30
  const Item = () => {
30
31
  return (
31
32
  <DropdownItem
32
- disabled={item.disabled}
33
+ disabled={getField(item, 'disabled')}
33
34
  class={{
34
35
  'k-cascader-option': true,
35
36
  'k-active': showed,
@@ -37,9 +38,9 @@ const Options = (data, level, loaded, parentSelected) => {
37
38
  }}
38
39
  ev-select={onSelect.bind(null, value, level)}
39
40
  >
40
- {item.label}
41
+ {getField(item, 'label')}
41
42
  <Icon v-if={children}
42
- class="k-cascader-arrow ion-ios-arrow-right"
43
+ class="k-cascader-arrow k-icon-right"
43
44
  />
44
45
  </DropdownItem>
45
46
  );
@@ -50,10 +51,10 @@ const Options = (data, level, loaded, parentSelected) => {
50
51
  <Dropdown
51
52
  position={this.positionObj}
52
53
  of="parent"
53
- disabled={item.disabled}
54
+ disabled={getField(item, 'disabled')}
54
55
  trigger={trigger}
55
56
  value={showed}
56
- ev-$changed:value={toggleShowedValue.bind(null, value, level)}
57
+ ev-$change:value={toggleShowedValue.bind(null, value, level)}
57
58
  ev-show={this.load.bind(null, item)}
58
59
  >
59
60
  {Item()}
@@ -94,7 +95,7 @@ const {filter, keywords: {value: keywords}, selectByFilter} = this.filterable;
94
95
  >
95
96
  {(() => {
96
97
  // highlight keywords
97
- const label = $value.map(item => item.label).join(' / ');
98
+ const label = $value.map(item => getField(item, 'label')).join(' / ');
98
99
  const labels = label.split(keywords);
99
100
  const length = labels.length;
100
101
  return labels.map((item, index) => {
@@ -33,7 +33,8 @@ setDefault(() => {
33
33
  export function makeMenuStyles() {
34
34
  return css`
35
35
  min-width: ${cascader.width} !important;
36
- min-height: ${cascader.height};
36
+ height: ${cascader.height};
37
+ overflow: auto;
37
38
  .k-cascader-arrow {
38
39
  float: right;
39
40
  height: 100%;
@@ -0,0 +1,22 @@
1
+ import {useInstance} from 'intact';
2
+ import type {Cascader, CascaderData, BaseCascaderData, CascaderFields} from './';
3
+
4
+ export function useFields() {
5
+ const instance = useInstance() as Cascader;
6
+
7
+ return function getField<
8
+ Data extends BaseCascaderData = CascaderData<unknown>,
9
+ Key extends keyof Data = keyof Data
10
+ >(data: Data, key: Key): Data[Key] {
11
+ const {fields} = instance.get();
12
+
13
+ if (fields) {
14
+ const field = fields[key as keyof CascaderFields<Data>] as Key;
15
+ if (field) {
16
+ return data[field];
17
+ }
18
+ }
19
+
20
+ return data[key];
21
+ }
22
+ }
@@ -1,26 +1,41 @@
1
1
  import {useInstance} from 'intact';
2
- import type {Cascader, CascaderData} from './';
2
+ import type {Cascader, CascaderData, BaseCascaderData} from './';
3
3
  import {State} from '../../hooks/useState';
4
- import type {Value} from './useValue'
4
+ import type {Value} from './useValue';
5
+ import type {useFields} from './useFields';
5
6
 
6
7
  export function useFilterable(
7
8
  keywords: State<string>,
8
9
  setValue: (value: Value) => void,
10
+ getField: ReturnType<typeof useFields>
9
11
  ) {
10
12
  const instance = useInstance() as Cascader;
11
13
 
12
14
  function filter() {
13
- const {data, filter} = instance.get();
14
15
  const ret: CascaderData<any>[][] = [];
15
16
 
16
- const loop = (data: CascaderData<any>[], prefix: CascaderData<any>[] = [], valid = false, disabled = false) => {
17
+ let {data, filter} = instance.get();
18
+ if (!filter) {
19
+ filter = (keywords: string, data: CascaderData<any>) => {
20
+ return getField(data, 'label').includes(keywords);
21
+ }
22
+ }
23
+
24
+ const loop = (
25
+ data: CascaderData<any>[],
26
+ prefix: CascaderData<any>[] = [],
27
+ valid = false,
28
+ disabled = false
29
+ ) => {
17
30
  data.forEach(item => {
18
31
  const _valid = valid || filter!(keywords.value, item);
19
- const _disabled = disabled || item.disabled;
32
+ const _disabled = disabled || getField(item, 'disabled');
20
33
  const _prefix = prefix.slice(0);
21
34
  _prefix.push(item);
22
- if (item.children) {
23
- loop(item.children, _prefix, _valid, _disabled);
35
+
36
+ const children = getField(item, 'children');
37
+ if (children) {
38
+ loop(children, _prefix, _valid, _disabled);
24
39
  } else if (_valid) {
25
40
  (_prefix as any).disabled = _disabled;
26
41
  ret.push(_prefix);
@@ -33,7 +48,7 @@ export function useFilterable(
33
48
  }
34
49
 
35
50
  function selectByFilter(data: CascaderData<any>[]) {
36
- const value = data.map(item => item.value);
51
+ const value = data.map(item => getField(item, 'value'));
37
52
  setValue(value);
38
53
  }
39
54
 
@@ -3,11 +3,14 @@ import type {Cascader, CascaderData} from './';
3
3
  import {useState, watchState} from '../../hooks/useState';
4
4
  import {isNullOrUndefined} from 'intact-shared';
5
5
  import {useBaseLabel} from '../select/useBaseLabel';
6
+ import type {useFields} from './useFields';
6
7
 
7
8
  // treat value as string
8
9
  type CascaderStringData = CascaderData<string>
9
10
 
10
- export function useLabel() {
11
+ export function useLabel(
12
+ getField: ReturnType<typeof useFields>
13
+ ) {
11
14
  const instance = useInstance() as Cascader;
12
15
 
13
16
  function findLabel(data: CascaderStringData[], value: string[]) {
@@ -19,10 +22,10 @@ export function useLabel() {
19
22
 
20
23
  for (let i = 0; i < data.length; i++) {
21
24
  const item = data[i];
22
- if (item.value === value[level]) {
23
- labels.push(item.label);
25
+ if (getField(item, 'value') === value[level]) {
26
+ labels.push(getField(item, 'label'));
24
27
 
25
- const children = item.children;
28
+ const children = getField(item, 'children');
26
29
  if (children) {
27
30
  loop(children, level + 1);
28
31
  }
@@ -1,14 +1,16 @@
1
1
  import {useInstance} from 'intact';
2
2
  import type {Cascader, CascaderData} from './';
3
+ import type {useFields} from './useFields';
3
4
 
4
- export function useLoad() {
5
+ export function useLoad(getField: ReturnType<typeof useFields>) {
5
6
  const instance = useInstance() as Cascader;
6
7
 
7
8
  async function loadData(item: CascaderData<any>) {
8
9
  const {loadData} = instance.get();
9
10
  if (!loadData) return;
10
11
 
11
- if (item.children && !item.children.length && !item.loaded) {
12
+ const children = getField(item, 'children');
13
+ if (children && !children.length && !item.loaded) {
12
14
  await loadData(item);
13
15
  item.loaded = true;
14
16
  instance.forceUpdate();
@@ -20,7 +20,7 @@ import {Checkbox} from 'kpc';
20
20
 
21
21
  ```styl
22
22
  .k-checkbox
23
- margin-right 20px
23
+ margin-right 24px
24
24
  ```
25
25
 
26
26
  ```ts