@king-design/intact 2.0.0-beta.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/README.md +20 -118
  2. package/components/affix/demos/basic.md +2 -1
  3. package/components/affix/demos/custom.md +5 -5
  4. package/components/affix/index.md +2 -2
  5. package/components/affix/styles.ts +1 -1
  6. package/components/badge/demos/text.md +1 -1
  7. package/components/badge/index.md +3 -3
  8. package/components/badge/styles.ts +1 -1
  9. package/components/breadcrumb/demos/basic.md +1 -1
  10. package/components/breadcrumb/index.md +3 -10
  11. package/components/breadcrumb/item.ts +4 -14
  12. package/components/breadcrumb/styles.ts +9 -5
  13. package/components/button/demos/group.md +2 -2
  14. package/components/button/demos/icon.md +1 -0
  15. package/components/button/demos/loading.md +1 -1
  16. package/components/button/demos/tagName.md +0 -1
  17. package/components/button/index.md +13 -13
  18. package/components/button/index.vdt +32 -23
  19. package/components/button/styles.ts +22 -12
  20. package/components/card/demos/basic.md +4 -4
  21. package/components/card/demos/extra.md +13 -7
  22. package/components/card/demos/noHeader.md +4 -4
  23. package/components/card/index.md +3 -3
  24. package/components/card/styles.ts +2 -2
  25. package/components/carousel/index.md +4 -4
  26. package/components/carousel/styles.ts +2 -2
  27. package/components/carousel/useSlide.ts +3 -2
  28. package/components/cascader/demos/loadData.md +1 -1
  29. package/components/cascader/index.md +45 -16
  30. package/components/cascader/index.spec.ts +1 -1
  31. package/components/cascader/styles.ts +1 -1
  32. package/components/checkbox/demos/basic.md +1 -1
  33. package/components/checkbox/demos/indeterminate.md +4 -20
  34. package/components/checkbox/demos/value.md +1 -1
  35. package/components/checkbox/index.md +10 -10
  36. package/components/checkbox/index.vdt +16 -13
  37. package/components/checkbox/styles.ts +3 -7
  38. package/components/code/demos/basic.md +3 -3
  39. package/components/code/index.md +8 -10
  40. package/components/collapse/index.md +8 -8
  41. package/components/collapse/item.vdt +1 -1
  42. package/components/collapse/styles.ts +4 -3
  43. package/components/colorpicker/index.md +3 -3
  44. package/components/colorpicker/index.spec.ts +1 -1
  45. package/components/colorpicker/index.ts +3 -0
  46. package/components/colorpicker/index.vdt +5 -1
  47. package/components/colorpicker/styles.ts +1 -1
  48. package/components/context.ts +14 -7
  49. package/components/datepicker/demos/disabledDate.md +0 -2
  50. package/components/datepicker/demos/format.md +1 -1
  51. package/components/datepicker/demos/shortcuts.md +2 -2
  52. package/components/datepicker/helpers.ts +9 -2
  53. package/components/datepicker/index.md +50 -27
  54. package/components/datepicker/index.spec.ts +1 -1
  55. package/components/datepicker/index.vdt +7 -6
  56. package/components/datepicker/styles.ts +1 -1
  57. package/components/diagram/index.md +108 -59
  58. package/components/diagram/shapes/line.ts +2 -3
  59. package/components/dialog/base.ts +2 -1
  60. package/components/dialog/demos/block.md +10 -56
  61. package/components/dialog/demos/size.md +1 -1
  62. package/components/dialog/index.md +47 -56
  63. package/components/dialog/index.spec.ts +2 -18
  64. package/components/dialog/styles.ts +4 -3
  65. package/components/dialog/useFixBody.ts +16 -0
  66. package/components/drawer/index.md +23 -20
  67. package/components/drawer/index.spec.ts +5 -5
  68. package/components/drawer/styles.ts +2 -2
  69. package/components/dropdown/demos/basic.md +4 -16
  70. package/components/dropdown/demos/contextmenu.md +1 -7
  71. package/components/dropdown/demos/disabled.md +1 -1
  72. package/components/dropdown/demos/nested.md +2 -4
  73. package/components/dropdown/demos/position.md +5 -6
  74. package/components/dropdown/demos/trigger.md +2 -4
  75. package/components/dropdown/dropdown.ts +2 -0
  76. package/components/dropdown/index.md +26 -15
  77. package/components/dropdown/index.spec.ts +3 -3
  78. package/components/dropdown/index.ts +1 -2
  79. package/components/dropdown/styles.ts +2 -2
  80. package/components/editable/index.md +10 -15
  81. package/components/editable/index.vdt +1 -0
  82. package/components/editable/styles.ts +1 -1
  83. package/components/form/demos/basic.md +15 -15
  84. package/components/form/index.md +29 -13
  85. package/components/form/index.spec.ts +8 -8
  86. package/components/form/item.vdt +6 -1
  87. package/components/form/methods.ts +6 -1
  88. package/components/form/styles.ts +1 -1
  89. package/components/form/useError.ts +3 -0
  90. package/components/form/useValidate.ts +2 -2
  91. package/components/grid/col.vdt +1 -1
  92. package/components/grid/index.md +34 -13
  93. package/components/grid/styles.ts +4 -1
  94. package/components/icon/index.md +4 -2
  95. package/components/icon/index.vdt +2 -2
  96. package/components/icon/styles.ts +11 -8
  97. package/components/input/demos/blocks.md +2 -2
  98. package/components/input/demos/clearable.md +3 -3
  99. package/components/input/demos/inline.md +12 -0
  100. package/components/input/demos/size.md +0 -1
  101. package/components/input/index.md +18 -22
  102. package/components/input/index.ts +2 -0
  103. package/components/input/index.vdt +42 -33
  104. package/components/input/search.vdt +4 -1
  105. package/components/input/styles.ts +8 -12
  106. package/components/layout/demos/asideFix.md +2 -3
  107. package/components/layout/index.md +5 -5
  108. package/components/layout/styles.ts +5 -4
  109. package/components/menu/index.md +11 -11
  110. package/components/menu/index.spec.ts +2 -2
  111. package/components/menu/item.ts +5 -12
  112. package/components/menu/styles.ts +6 -5
  113. package/components/message/index.md +23 -25
  114. package/components/message/index.spec.ts +1 -1
  115. package/components/message/styles.ts +7 -3
  116. package/components/pagination/index.md +11 -19
  117. package/components/pagination/styles.ts +2 -2
  118. package/components/progress/demos/customColor.md +1 -1
  119. package/components/progress/index.md +11 -5
  120. package/components/progress/styles.ts +2 -2
  121. package/components/radio/index.md +4 -7
  122. package/components/radio/index.vdt +15 -12
  123. package/components/radio/styles.ts +6 -10
  124. package/components/rate/index.md +5 -5
  125. package/components/rate/styles.ts +3 -2
  126. package/components/scrollSelect/index.md +14 -5
  127. package/components/scrollSelect/styles.ts +7 -2
  128. package/components/select/base.ts +0 -1
  129. package/components/select/base.vdt +128 -112
  130. package/components/select/demos/creatable.md +1 -1
  131. package/components/select/demos/customMenu.md +1 -1
  132. package/components/select/demos/format.md +3 -7
  133. package/components/select/index.md +35 -30
  134. package/components/select/index.spec.ts +1 -1
  135. package/components/select/menu.vdt +1 -0
  136. package/components/select/styles.ts +15 -9
  137. package/components/slider/demos/marks.md +2 -2
  138. package/components/slider/index.md +31 -16
  139. package/components/slider/styles.ts +5 -4
  140. package/components/spin/index.md +2 -2
  141. package/components/spin/styles.ts +1 -1
  142. package/components/spinner/index.md +23 -14
  143. package/components/spinner/index.ts +2 -2
  144. package/components/spinner/styles.ts +1 -1
  145. package/components/split/index.md +7 -7
  146. package/components/split/style.ts +2 -2
  147. package/components/steps/index.md +3 -3
  148. package/components/steps/styles.ts +3 -2
  149. package/components/switch/index.md +10 -19
  150. package/components/switch/styles.ts +5 -4
  151. package/components/table/demos/animation.md +92 -0
  152. package/components/table/demos/basic.md +1 -1
  153. package/components/table/demos/checkedKeys.md +2 -3
  154. package/components/table/demos/disableRow.md +2 -2
  155. package/components/table/demos/empty.md +1 -1
  156. package/components/table/demos/export.md +8 -7
  157. package/components/table/demos/fixColumn.md +2 -2
  158. package/components/table/demos/fixHeader.md +3 -3
  159. package/components/table/demos/group.md +3 -3
  160. package/components/table/demos/mergeCell.md +1 -1
  161. package/components/table/demos/resizable.md +1 -1
  162. package/components/table/demos/rowClassName.md +1 -1
  163. package/components/table/demos/rowExpandable.md +2 -6
  164. package/components/table/demos/sort.md +2 -1
  165. package/components/table/demos/stickHeader.md +3 -3
  166. package/components/table/demos/stickScrollbar.md +3 -3
  167. package/components/table/demos/tooltip.md +1 -2
  168. package/components/table/index.md +92 -66
  169. package/components/table/index.spec.ts +5 -2
  170. package/components/table/index.ts +1 -0
  171. package/components/table/row.vdt +5 -1
  172. package/components/table/styles.ts +17 -5
  173. package/components/table/table.ts +2 -0
  174. package/components/table/table.vdt +91 -86
  175. package/components/table/useFixedColumns.ts +5 -3
  176. package/components/table/useWidth.ts +11 -2
  177. package/components/tabs/index.md +15 -8
  178. package/components/tabs/index.spec.ts +1 -1
  179. package/components/tabs/styles.ts +11 -7
  180. package/components/tabs/tab.vdt +1 -1
  181. package/components/tabs/useActiveBar.ts +3 -2
  182. package/components/tag/base.ts +3 -0
  183. package/components/tag/demos/border.md +2 -1
  184. package/components/tag/index.md +4 -3
  185. package/components/tag/styles.ts +9 -4
  186. package/components/timeline/styles.ts +3 -3
  187. package/components/timepicker/constants.ts +3 -2
  188. package/components/timepicker/demos/basic.md +2 -2
  189. package/components/timepicker/demos/step.md +1 -1
  190. package/components/timepicker/index.md +47 -16
  191. package/components/timepicker/index.spec.ts +11 -10
  192. package/components/timepicker/styles.ts +1 -1
  193. package/components/timepicker/useStep.ts +3 -3
  194. package/components/timepicker/useValue.ts +2 -2
  195. package/components/tip/demos/closable.md +1 -1
  196. package/components/tip/index.md +8 -4
  197. package/components/tip/styles.ts +1 -1
  198. package/components/tooltip/demos/basic.md +2 -13
  199. package/components/tooltip/demos/trigger.md +1 -2
  200. package/components/tooltip/index.md +26 -13
  201. package/components/tooltip/index.spec.ts +24 -15
  202. package/components/tooltip/styles.ts +1 -1
  203. package/components/transfer/index.md +36 -23
  204. package/components/transfer/index.spec.ts +7 -6
  205. package/components/transfer/styles.ts +3 -9
  206. package/components/tree/index.md +76 -49
  207. package/components/tree/index.spec.ts +13 -12
  208. package/components/tree/index.ts +1 -0
  209. package/components/tree/index.vdt +1 -0
  210. package/components/tree/styles.ts +7 -4
  211. package/components/treeSelect/index.md +50 -20
  212. package/components/treeSelect/index.spec.ts +5 -5
  213. package/components/treeSelect/styles.ts +3 -2
  214. package/components/upload/index.md +55 -19
  215. package/components/upload/index.spec.ts +1 -1
  216. package/components/upload/index.ts +1 -1
  217. package/components/upload/index.vdt +3 -4
  218. package/components/upload/styles.ts +5 -4
  219. package/components/utils.ts +1 -1
  220. package/components/wave/index.ts +94 -0
  221. package/components/wave/styles.ts +50 -0
  222. package/es/components/breadcrumb/item.d.ts +1 -1
  223. package/es/components/breadcrumb/item.js +3 -14
  224. package/es/components/breadcrumb/styles.js +1 -1
  225. package/es/components/button/index.vdt.js +26 -17
  226. package/es/components/button/styles.d.ts +82 -1
  227. package/es/components/button/styles.js +16 -2
  228. package/es/components/card/styles.js +1 -1
  229. package/es/components/carousel/styles.js +4 -1
  230. package/es/components/carousel/useSlide.js +10 -9
  231. package/es/components/cascader/index.spec.js +1 -1
  232. package/es/components/checkbox/index.vdt.js +15 -10
  233. package/es/components/checkbox/styles.js +2 -2
  234. package/es/components/collapse/item.vdt.js +2 -1
  235. package/es/components/collapse/styles.js +5 -1
  236. package/es/components/colorpicker/index.d.ts +2 -0
  237. package/es/components/colorpicker/index.js +2 -1
  238. package/es/components/colorpicker/index.spec.js +1 -1
  239. package/es/components/colorpicker/index.vdt.js +3 -1
  240. package/es/components/context.d.ts +5 -2
  241. package/es/components/context.js +7 -4
  242. package/es/components/datepicker/helpers.d.ts +2 -1
  243. package/es/components/datepicker/helpers.js +8 -2
  244. package/es/components/datepicker/index.spec.js +1 -1
  245. package/es/components/datepicker/index.vdt.js +10 -5
  246. package/es/components/datepicker/styles.d.ts +46 -1
  247. package/es/components/diagram/shapes/generateShapes.js +3 -3
  248. package/es/components/diagram/shapes/line.d.ts +2 -2
  249. package/es/components/diagram/shapes/line.js +0 -1
  250. package/es/components/dialog/base.d.ts +2 -0
  251. package/es/components/dialog/base.js +2 -1
  252. package/es/components/dialog/index.spec.js +59 -94
  253. package/es/components/dialog/styles.js +5 -1
  254. package/es/components/dialog/useFixBody.d.ts +6 -0
  255. package/es/components/dialog/useFixBody.js +12 -0
  256. package/es/components/drawer/index.spec.js +5 -5
  257. package/es/components/drawer/styles.js +1 -1
  258. package/es/components/dropdown/dropdown.js +1 -0
  259. package/es/components/dropdown/index.js +1 -2
  260. package/es/components/dropdown/index.spec.js +3 -3
  261. package/es/components/dropdown/styles.js +1 -1
  262. package/es/components/editable/index.vdt.js +2 -1
  263. package/es/components/editable/styles.d.ts +8 -1
  264. package/es/components/form/index.spec.js +8 -8
  265. package/es/components/form/item.vdt.js +13 -9
  266. package/es/components/form/useError.d.ts +4 -0
  267. package/es/components/form/useError.js +3 -1
  268. package/es/components/form/useValidate.js +2 -2
  269. package/es/components/grid/col.vdt.js +4 -2
  270. package/es/components/grid/styles.js +1 -1
  271. package/es/components/grid/useGutter.d.ts +1 -1
  272. package/es/components/icon/index.vdt.js +3 -2
  273. package/es/components/icon/styles.js +8 -4
  274. package/es/components/input/index.d.ts +1 -0
  275. package/es/components/input/index.js +2 -1
  276. package/es/components/input/index.vdt.js +47 -32
  277. package/es/components/input/search.vdt.js +4 -2
  278. package/es/components/input/styles.js +8 -3
  279. package/es/components/layout/styles.d.ts +1 -1
  280. package/es/components/layout/styles.js +7 -3
  281. package/es/components/menu/index.spec.js +2 -2
  282. package/es/components/menu/item.d.ts +1 -1
  283. package/es/components/menu/item.js +4 -13
  284. package/es/components/menu/styles.d.ts +62 -1
  285. package/es/components/menu/styles.js +6 -2
  286. package/es/components/message/index.spec.js +1 -1
  287. package/es/components/message/styles.js +6 -2
  288. package/es/components/pagination/styles.js +1 -1
  289. package/es/components/radio/index.vdt.js +14 -9
  290. package/es/components/radio/styles.js +9 -1
  291. package/es/components/rate/styles.js +5 -1
  292. package/es/components/scrollSelect/styles.d.ts +14 -1
  293. package/es/components/scrollSelect/styles.js +9 -1
  294. package/es/components/select/base.vdt.js +135 -121
  295. package/es/components/select/index.spec.js +1 -1
  296. package/es/components/select/menu.vdt.js +1 -0
  297. package/es/components/select/styles.js +9 -4
  298. package/es/components/select/useSearchable.d.ts +1 -1
  299. package/es/components/slider/styles.js +5 -1
  300. package/es/components/spinner/index.d.ts +1 -1
  301. package/es/components/spinner/index.js +1 -1
  302. package/es/components/split/style.js +1 -1
  303. package/es/components/steps/context.d.ts +1 -1
  304. package/es/components/steps/styles.js +5 -1
  305. package/es/components/switch/styles.js +5 -1
  306. package/es/components/table/index.d.ts +1 -0
  307. package/es/components/table/index.spec.js +3 -2
  308. package/es/components/table/row.vdt.js +12 -4
  309. package/es/components/table/styles.js +6 -1
  310. package/es/components/table/table.d.ts +1 -0
  311. package/es/components/table/table.js +2 -1
  312. package/es/components/table/table.vdt.js +30 -27
  313. package/es/components/table/useColumns.d.ts +1 -1
  314. package/es/components/table/useFixedColumns.d.ts +1 -1
  315. package/es/components/table/useFixedColumns.js +5 -2
  316. package/es/components/table/useGroup.d.ts +1 -1
  317. package/es/components/table/useResizable.d.ts +1 -1
  318. package/es/components/table/useSortable.d.ts +1 -1
  319. package/es/components/table/useWidth.js +13 -2
  320. package/es/components/tabs/index.spec.js +1 -1
  321. package/es/components/tabs/styles.js +9 -2
  322. package/es/components/tabs/tab.vdt.js +2 -1
  323. package/es/components/tabs/useActiveBar.js +6 -3
  324. package/es/components/tag/base.js +1 -0
  325. package/es/components/tag/styles.js +8 -2
  326. package/es/components/timepicker/constants.d.ts +2 -1
  327. package/es/components/timepicker/constants.js +3 -2
  328. package/es/components/timepicker/index.spec.js +36 -35
  329. package/es/components/timepicker/useStep.js +3 -3
  330. package/es/components/timepicker/useValue.js +2 -2
  331. package/es/components/tooltip/index.spec.js +32 -25
  332. package/es/components/transfer/index.spec.js +20 -19
  333. package/es/components/transfer/styles.js +2 -6
  334. package/es/components/tree/index.d.ts +1 -1
  335. package/es/components/tree/index.js +1 -1
  336. package/es/components/tree/index.spec.js +20 -19
  337. package/es/components/tree/index.vdt.js +1 -0
  338. package/es/components/tree/styles.js +5 -1
  339. package/es/components/treeSelect/index.spec.js +5 -5
  340. package/es/components/treeSelect/styles.js +5 -1
  341. package/es/components/upload/index.d.ts +1 -1
  342. package/es/components/upload/index.spec.js +1 -1
  343. package/es/components/upload/index.vdt.js +10 -11
  344. package/es/components/upload/styles.js +5 -1
  345. package/es/components/utils.d.ts +1 -1
  346. package/es/components/wave/index.d.ts +19 -0
  347. package/es/components/wave/index.js +120 -0
  348. package/es/components/wave/styles.d.ts +2 -0
  349. package/es/components/wave/styles.js +17 -0
  350. package/es/hooks/useRouter.d.ts +1 -0
  351. package/es/hooks/useRouter.js +10 -0
  352. package/es/i18n/en-US.d.ts +1 -0
  353. package/es/i18n/en-US.js +1 -0
  354. package/es/index.d.ts +3 -2
  355. package/es/index.js +3 -2
  356. package/es/packages/kpc-react/__tests__/index.js +10 -7
  357. package/es/site/data/components/affix/demos/custom/index.d.ts +2 -2
  358. package/es/site/data/components/affix/demos/custom/index.js +4 -4
  359. package/es/site/data/components/affix/demos/custom/react.d.ts +2 -2
  360. package/es/site/data/components/affix/demos/custom/react.js +6 -6
  361. package/es/site/data/components/button/demos/group/react.js +2 -2
  362. package/es/site/data/components/button/demos/icon/react.js +6 -0
  363. package/es/site/data/components/card/demos/basic/react.js +2 -2
  364. package/es/site/data/components/card/demos/extra/react.js +19 -5
  365. package/es/site/data/components/card/demos/noHeader/react.js +2 -2
  366. package/es/site/data/components/checkbox/demos/indeterminate/index.d.ts +1 -1
  367. package/es/site/data/components/checkbox/demos/indeterminate/index.js +2 -2
  368. package/es/site/data/components/checkbox/demos/indeterminate/react.d.ts +1 -1
  369. package/es/site/data/components/checkbox/demos/indeterminate/react.js +5 -6
  370. package/es/site/data/components/dialog/demos/block/react.d.ts +9 -0
  371. package/es/site/data/components/dialog/demos/block/react.js +88 -0
  372. package/es/site/data/components/dropdown/demos/basic/react.js +1 -3
  373. package/es/site/data/components/dropdown/demos/nested/react.js +1 -3
  374. package/es/site/data/components/dropdown/demos/position/react.js +2 -7
  375. package/es/site/data/components/dropdown/demos/trigger/react.js +1 -3
  376. package/es/site/data/components/input/demos/blocks/react.js +4 -2
  377. package/es/site/data/components/input/demos/clearable/react.js +7 -5
  378. package/es/site/data/components/{dialog/demos/extends → input/demos/inline}/index.d.ts +0 -3
  379. package/es/site/data/components/input/demos/inline/index.js +17 -0
  380. package/es/site/data/components/input/demos/inline/react.d.ts +4 -0
  381. package/es/site/data/components/input/demos/inline/react.js +24 -0
  382. package/es/site/data/components/input/demos/size/react.js +0 -3
  383. package/es/site/data/components/layout/demos/asideFix/react.js +2 -1
  384. package/es/site/data/components/select/demos/creatable/react.js +1 -1
  385. package/es/site/data/components/select/demos/customMenu/react.js +1 -0
  386. package/es/site/data/components/select/demos/format/react.js +11 -18
  387. package/es/site/data/components/table/demos/animation/index.d.ts +23 -0
  388. package/es/site/data/components/table/demos/animation/index.js +78 -0
  389. package/es/site/data/components/table/demos/animation/react.d.ts +23 -0
  390. package/es/site/data/components/table/demos/animation/react.js +113 -0
  391. package/es/site/data/components/table/demos/export/react.js +1 -2
  392. package/es/site/data/components/table/demos/sort/react.js +4 -1
  393. package/es/site/data/components/tag/demos/border/react.js +3 -1
  394. package/es/site/data/components/tip/demos/closable/react.js +1 -0
  395. package/es/site/data/components/tooltip/demos/trigger/react.js +1 -2
  396. package/es/site/data/docs/design/{button → about}/index.d.ts +13 -11
  397. package/es/site/data/docs/design/{8point → about}/index.js +0 -0
  398. package/es/site/data/docs/design/{dialog → guide-1}/index.d.ts +15 -11
  399. package/es/site/data/docs/design/{button → guide-1}/index.js +0 -0
  400. package/es/site/data/docs/design/guide-2/index.d.ts +64 -0
  401. package/es/site/data/docs/design/{color → guide-2}/index.js +0 -0
  402. package/es/site/data/docs/design/guide-3/index.d.ts +64 -0
  403. package/es/site/data/docs/design/{dialog → guide-3}/index.js +0 -0
  404. package/es/site/data/docs/design/guide-4/index.d.ts +64 -0
  405. package/es/site/data/docs/design/{font → guide-4}/index.js +0 -0
  406. package/es/site/data/docs/design/guide-5/index.d.ts +64 -0
  407. package/es/site/data/docs/design/{format → guide-5}/index.js +0 -0
  408. package/es/site/data/docs/design/guide-6/index.d.ts +64 -0
  409. package/es/site/data/docs/design/{gutter → guide-6}/index.js +0 -0
  410. package/es/site/data/docs/design/guide-7/index.d.ts +64 -0
  411. package/es/site/data/docs/design/{hierarchy → guide-7}/index.js +0 -0
  412. package/es/site/data/docs/design/guide-8/index.d.ts +64 -0
  413. package/es/site/data/docs/design/{language → guide-8}/index.js +0 -0
  414. package/es/site/data/docs/design/guide-9/index.d.ts +64 -0
  415. package/es/site/data/docs/design/{navigator → guide-9}/index.js +0 -0
  416. package/es/site/data/docs/design/model/index.d.ts +64 -0
  417. package/es/site/data/docs/design/{tip → model}/index.js +0 -0
  418. package/es/site/data/docs/design/model-1/index.d.ts +64 -0
  419. package/es/site/data/docs/design/{text → model-1}/index.js +0 -0
  420. package/es/site/data/docs/design/pattern-1/index.d.ts +64 -0
  421. package/es/site/data/docs/design/pattern-1/index.js +42 -0
  422. package/es/site/data/docs/design/pattern-2/index.d.ts +64 -0
  423. package/es/site/data/docs/design/pattern-2/index.js +42 -0
  424. package/es/site/data/docs/design/pattern-3/index.d.ts +64 -0
  425. package/es/site/data/docs/design/pattern-3/index.js +42 -0
  426. package/es/site/data/docs/design/pattern-4/index.d.ts +64 -0
  427. package/es/site/data/docs/design/pattern-4/index.js +42 -0
  428. package/es/site/data/docs/design/pattern-5/index.d.ts +64 -0
  429. package/es/site/data/docs/design/pattern-5/index.js +42 -0
  430. package/es/site/data/docs/design/pattern-6/index.d.ts +64 -0
  431. package/es/site/data/docs/design/pattern-6/index.js +42 -0
  432. package/es/site/data/docs/design/{navigator → principle}/index.d.ts +13 -11
  433. package/es/site/data/docs/design/principle/index.js +42 -0
  434. package/es/site/data/docs/design/{tip → value}/index.d.ts +13 -11
  435. package/es/site/data/docs/design/value/index.js +42 -0
  436. package/es/site/data/docs/theme/index.d.ts +0 -2
  437. package/es/site/src/client.js +3 -0
  438. package/es/site/src/components/ImgBox/index.d.ts +21 -0
  439. package/es/site/src/components/ImgBox/index.js +69 -0
  440. package/es/site/src/{pages/designdoc → components/ImgBox}/styles.d.ts +0 -0
  441. package/es/site/src/components/ImgBox/styles.js +13 -0
  442. package/es/site/src/components/WorkflowCard/styles.js +3 -10
  443. package/es/site/src/components/article/index.d.ts +4 -1
  444. package/es/site/src/components/article/index.js +72 -6
  445. package/es/site/src/components/blockquote/index.d.ts +4 -0
  446. package/es/site/src/components/blockquote/index.js +13 -0
  447. package/es/site/src/components/blockquote/slot.d.ts +11 -0
  448. package/es/site/src/components/blockquote/slot.js +19 -0
  449. package/es/site/src/components/card/index.d.ts +1 -1
  450. package/es/site/src/components/card/index.js +4 -1
  451. package/es/site/src/components/card/styles.js +2 -10
  452. package/es/site/src/components/catalogue/index.js +2 -2
  453. package/es/site/src/components/catalogue/styles.js +1 -1
  454. package/es/site/src/components/footer/styles.js +2 -2
  455. package/es/site/src/components/link/index.d.ts +1 -0
  456. package/es/site/src/components/link/index.js +11 -3
  457. package/es/site/src/pages/design/index.d.ts +1 -0
  458. package/es/site/src/pages/design/index.js +19 -0
  459. package/es/site/src/pages/design/styles.d.ts +1 -0
  460. package/es/site/src/pages/design/styles.js +13 -0
  461. package/es/site/src/pages/document/index.d.ts +4 -2
  462. package/es/site/src/pages/document/index.js +89 -46
  463. package/es/site/src/pages/document/styles.js +1 -1
  464. package/es/site/src/pages/iframe/button/styles.js +4 -4
  465. package/es/site/src/pages/iframe/colorProcess/index.d.ts +1 -0
  466. package/es/site/src/pages/iframe/colorProcess/index.js +9 -5
  467. package/es/site/src/pages/iframe/colorProcess/styles.js +1 -1
  468. package/es/site/src/pages/index/BestPractice/index.d.ts +1 -0
  469. package/es/site/src/pages/index/BestPractice/index.js +14 -14
  470. package/es/site/src/pages/index/BestPractice/styles.d.ts +1 -1
  471. package/es/site/src/pages/index/BestPractice/styles.js +3 -3
  472. package/es/site/src/pages/index/ColorProcess/styles.d.ts +1 -1
  473. package/es/site/src/pages/index/ColorProcess/styles.js +14 -2
  474. package/es/site/src/pages/index/KingVersion/styles.js +1 -1
  475. package/es/site/src/pages/index/NewFunction/index.d.ts +1 -0
  476. package/es/site/src/pages/index/NewFunction/index.js +4 -2
  477. package/es/site/src/pages/index/NewFunction/styles.d.ts +1 -1
  478. package/es/site/src/pages/index/NewFunction/styles.js +4 -3
  479. package/es/site/src/pages/index/index.d.ts +2 -7
  480. package/es/site/src/pages/index/index.js +11 -8
  481. package/es/site/src/pages/index/styles.js +2 -4
  482. package/es/site/src/pages/layout.d.ts +2 -0
  483. package/es/site/src/pages/layout.js +33 -4
  484. package/es/site/src/pages/resource/index.d.ts +6 -0
  485. package/es/site/src/pages/resource/index.js +21 -1
  486. package/es/site/src/pages/resource/styles.js +5 -3
  487. package/es/site/src/pages/solution/index.d.ts +6 -0
  488. package/es/site/src/pages/solution/index.js +19 -1
  489. package/es/site/src/pages/solution/styles.js +3 -2
  490. package/es/site/src/pages/styles.d.ts +1 -0
  491. package/es/site/src/pages/styles.js +5 -2
  492. package/es/site/src/router/index.d.ts +1 -0
  493. package/es/site/src/router/index.js +327 -318
  494. package/es/site/src/styles/default.d.ts +1 -0
  495. package/es/site/src/styles/default.js +3 -2
  496. package/es/styles/global.js +4 -3
  497. package/es/styles/theme.d.ts +16 -7
  498. package/es/styles/theme.js +15 -7
  499. package/hooks/useRouter.ts +11 -0
  500. package/i18n/en-US.ts +1 -0
  501. package/index.ts +3 -2
  502. package/package.json +6 -6
  503. package/styles/global.ts +41 -8
  504. package/styles/theme.ts +12 -8
  505. package/typings/global.d.ts +2 -0
  506. package/components/dialog/demos/asyncOpen.md +0 -111
  507. package/components/dialog/demos/extends.md +0 -87
  508. package/es/site/data/components/dialog/demos/asyncOpen/dialog.d.ts +0 -28
  509. package/es/site/data/components/dialog/demos/asyncOpen/dialog.js +0 -45
  510. package/es/site/data/components/dialog/demos/asyncOpen/index.d.ts +0 -13
  511. package/es/site/data/components/dialog/demos/asyncOpen/index.js +0 -58
  512. package/es/site/data/components/dialog/demos/extends/dialog.d.ts +0 -28
  513. package/es/site/data/components/dialog/demos/extends/dialog.js +0 -39
  514. package/es/site/data/components/dialog/demos/extends/index.js +0 -49
  515. package/es/site/data/docs/design/8point/index.d.ts +0 -58
  516. package/es/site/data/docs/design/color/demos/demos0/index.d.ts +0 -3
  517. package/es/site/data/docs/design/color/demos/demos0/index.js +0 -3
  518. package/es/site/data/docs/design/color/index.d.ts +0 -56
  519. package/es/site/data/docs/design/font/index.d.ts +0 -58
  520. package/es/site/data/docs/design/format/index.d.ts +0 -58
  521. package/es/site/data/docs/design/gutter/index.d.ts +0 -58
  522. package/es/site/data/docs/design/hierarchy/index.d.ts +0 -58
  523. package/es/site/data/docs/design/language/index.d.ts +0 -56
  524. package/es/site/data/docs/design/text/index.d.ts +0 -58
  525. package/es/site/src/pages/designdoc/index.d.ts +0 -11
  526. package/es/site/src/pages/designdoc/index.js +0 -21
  527. package/es/site/src/pages/designdoc/styles.js +0 -6
@@ -4,7 +4,7 @@ order: 0.2
4
4
  ---
5
5
 
6
6
  添加`size`属性,定义如下尺寸:`large`, `default`,`small`,`mini`;另外你也可以通过`width`属性,给弹窗指定宽度,
7
- 如果该值为`Number`类型,则默认单位为`px`,`String`类型时,你需要指定单位
7
+ 如果该值为`number`类型,则默认单位为`px`,`string`类型时,你需要指定单位
8
8
 
9
9
  > `width`优先级高于`size`
10
10
 
@@ -9,67 +9,64 @@ sidebar: doc
9
9
  > 滚动,同时会添加`padding-right`来保证页面不闪动,但如果你页面存在`position: fixed`元素,则依然
10
10
  > 可能会在弹窗弹出时闪动。
11
11
  >
12
- > 组件提供了两个全局配置,用来自定义元素的修正逻辑。例如:本文档网站的配置如下
13
- > ```js
12
+ > 组件提供了钩子函数,用来自定义元素的修正逻辑。例如:本文档网站的配置如下
13
+ > ```ts
14
14
  > // @code
15
- > import {configure} from 'kpc';
16
- >
17
- > configure({
18
- > onDialogOpen(scrollbarWidth) {
19
- > document.body.style.backgroundColor = '#f1f1f5';
20
- > const header = document.querySelector('.header-wrapper');
21
- > if (header) {
22
- > header.style.paddingRight = `${scrollbarWidth}px`;
23
- > }
24
- > const tableOfContents = document.querySelector('.table-of-contents');
25
- > if (tableOfContents) {
26
- > tableOfContents.style.right = `${scrollbarWidth}px`;
27
- > }
28
- > },
15
+ > import {Dialog} from 'kpc';
29
16
  >
30
- > onDialogClose() {
31
- > const header = document.querySelector('.header-wrapper');
32
- > if (header) {
33
- > header.removeAttribute('style');
34
- > }
35
- > const tableOfContents = document.querySelector('.table-of-contents');
36
- > if (tableOfContents) {
37
- > tableOfContents.removeAttribute('style');
38
- > }
39
- > },
40
- > });
17
+ > Dialog.setHooks({
18
+ > onStart(scrollBarWidth) {
19
+ > if (scrollBarWidth) {
20
+ > const header = document.querySelector<HTMLElement>('.k-layout-header');
21
+ > if (header) {
22
+ > header.style.paddingRight = `${scrollBarWidth}px`;
23
+ > }
24
+ > }
25
+ > },
26
+ > onEnd() {
27
+ > const header = document.querySelector<HTMLElement>('.k-layout-header');
28
+ > if (header) {
29
+ > header.style.paddingRight = '0';
30
+ > }
31
+ > }
32
+ >});
41
33
  > ```
42
34
 
43
35
  # 属性
44
36
 
45
37
  | 属性 | 说明 | 类型 | 默认值 |
46
38
  | --- | --- | --- | --- |
47
- | title | 弹窗标题 | `String` | `"提示"` |
48
- | overlay | 是否展示遮罩层 | `Boolean` | `true` |
49
- | closable | 点击遮罩层是否可以关闭弹窗 | `Boolean` | `true` |
50
- | value | 弹窗是否展示出来 | `Boolean` | `false` |
39
+ | title | 弹窗标题 | `string` | `"提示"` |
40
+ | value | 弹窗是否展示出来 | `boolean` | `false` |
51
41
  | size | 弹窗尺寸 | `"large"` &#124; `"default"` &#124; `"small"` &#124; `"mini"` | `"default"` |
52
- | loading | “确定”按钮是否为加载状态 | `Boolean` | `false` |
53
- | okText | “确定”按钮文案 | `String` | `"确定"` |
54
- | cancelText | “取消”按钮文案 | `String` | `"取消"` |
55
- | disabledOk | “确定”按钮是否为禁用状态 | `Boolean` | `false` |
56
- | ok | “确定”按钮点击后自定义回调函数 | `Function` | `undefined` |
57
- | cancel | “取消”按钮点击后自定义回调函数 | `Function` | `undefined` |
58
- | container | 指定弹层插入的容器,默认会追加到`body`中。你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Function` &#124; `String` | `undefined` |
59
- | hideClose | 是否隐藏右上角关闭按钮 | `Boolean` | `false` |
60
- | escClosable | 是否按ESC时关闭弹窗 | `Boolean` | `true` |
61
- | terminate | 指定在用户点击“关闭”按钮,点击遮罩层或者按ESC键时的回调函数 | `Function` | `undefined` |
62
- | width | 指定弹窗宽度,`Number`类型时,单位为`px`;`String`类型时,需要指定单位 | `Number` &#124; `String` | `undefined` |
42
+ | loading | “确定”按钮是否为加载状态 | `boolean` | `false` |
43
+ | disabledOk | “确定”按钮是否为禁用状态 | `boolean` | `false` |
44
+ | okText | “确定”按钮文案 | `string` | `"确定"` |
45
+ | cancelText | “取消”按钮文案 | `string` | `"取消"` |
46
+ | ok | “确定”按钮点击后自定义回调函数 | `() => void` | `undefined` |
47
+ | cancel | “取消”按钮点击后自定义回调函数 | `() => void` | `undefined` |
48
+ | container | 指定弹层插入的位置,默认会追加到`body`中,你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Container` | `undefined` |
49
+ | hideClose | 是否隐藏右上角关闭按钮 | `boolean` | `false` |
50
+ | overlay | 是否展示遮罩层 | `boolean` | `true` |
51
+ | closable | 点击遮罩层是否可以关闭弹窗 | `boolean` | `true` |
52
+ | terminate | 指定在用户点击“关闭”按钮,点击遮罩层或者按ESC键时的回调函数 | `() => void` | `undefined` |
53
+ | escClosable | 是否按ESC时关闭弹窗 | `boolean` | `true` |
54
+ | width | 指定弹窗宽度,`number`类型时,单位为`px`;`string`类型时,需要指定单位 | `number` &#124; `string` | `undefined` |
63
55
  | mode | 指定主体元素在关闭状态下的渲染方式,`"destroy"`代表直接销毁,`"hide"`代表只是隐藏 | `"destroy"` &#124; `"hide"` | `"hide"` |
64
56
 
57
+ ```ts
58
+ export type Container = string | ((parentDom: Element, anchor: Node | null) => Element)
59
+ ```
60
+
65
61
  # 扩展点
66
62
 
67
63
  | 名称 | 说明 |
68
64
  | --- | --- |
65
+ | content | 定义整个弹窗体,包括header,body,footer |
69
66
  | header | 扩展弹窗头部 |
70
67
  | body | 扩展弹窗主体部分 |
71
68
  | footer | 扩展弹窗底部 |
72
- | footer-wrapper | 扩展弹窗整个底部,上述`footer`是它下面一个子扩展点 |
69
+ | footerWrapper | 扩展弹窗整个底部,上述`footer`是它下面一个子扩展点 |
73
70
 
74
71
  # 方法
75
72
 
@@ -96,33 +93,27 @@ sidebar: doc
96
93
  | error | 错误提示窗口 | `Options` | `Promise` |
97
94
  | confirm | 确定提示窗口 | `Options` | `Promise` |
98
95
 
99
- 其中`Options`对象常用属性说明如下
100
-
101
- > `Dialog`属性大都支持
96
+ 其中`Options`对象常用属性说明如下,除了`Dialog`的属性外,还支持如下属性
102
97
 
103
98
  | 属性 | 说明 | 类型 | 默认值 |
104
99
  | --- | --- | --- | --- |
105
- | title | 弹窗标题,如果传入标题,则展示样式会有所不同 | `String` | `undefined` |
106
- | content | 弹窗内容 | `String` &#124; `Number` &#124; `VNode` &#124; <code>Array&lt;String &#124; Number &#124; VNode&gt;</code> | `undefined` |
100
+ | content | 弹窗内容 | `string` &#124; `VNode` &#124; <code>Array&lt;string &#124; VNode&gt;</code> | `undefined` |
107
101
  | size | 弹窗尺寸 | `"large"` &#124; `"default"` &#124; `"small"` &#124; `"mini"` | `"default"` |
108
- | okText | “确定”按钮文案 | `String` | `"确定"` |
109
- | cancelText | “取消”按钮文案 | `String` | `"取消"` |
110
- | hideIcon | 是否隐藏提示图标 | `Boolean` | `false` |
111
- | hideFooter | 是否隐藏底部按钮 | `Boolean` | `false` |
112
- | showClose | 是否展示关闭按钮 | `Boolean` | `false` |
102
+ | hideIcon | 是否隐藏提示图标 | `boolean` | `false` |
103
+ | hideFooter | 是否隐藏底部按钮 | `boolean` | `false` |
113
104
 
114
105
  其中`Promise`对象会在点击“确定”按钮时`resolve()`,在点击“取消”按钮时`reject()`,你可以在`then()`
115
106
  中书写用户点击不同按钮的逻辑
116
107
 
117
108
  > 只有`confirm`类型的提示窗口才有“取消”按钮
118
109
 
119
-
120
110
  # 事件
121
111
 
122
112
  | 事件名 | 说明 | 参数 |
123
113
  | --- | --- | --- |
124
- | cancel | 点击取消按钮时触发 | - |
125
- | ok | 点击确定按钮时触发 | - |
126
114
  | open | 弹窗打开后触发 | - |
127
115
  | close | 弹窗关闭后触发,不管是什么原因导致的关闭 | - |
116
+ | ok | 点击确定按钮时触发 | - |
117
+ | cancel | 点击取消按钮时触发 | - |
128
118
  | terminate | 用户强行关闭弹窗时触发,即:点击“关闭”按钮,点击遮罩层,按ESC键 | - |
119
+ | afterClose | 弹窗退出动画执行完成后触发 | - |
@@ -3,14 +3,13 @@ import {Dialog, BaseDialog, DialogProps} from './';
3
3
  import {getElement, mount, unmount, dispatchEvent, wait} from '../../test/utils';
4
4
  import BasicDemo from '~/components/dialog/demos/basic';
5
5
  import AsyncCloseDemo from '~/components/dialog/demos/asyncClose';
6
- import AsyncOpenDemo from '~/components/dialog/demos/asyncOpen';
7
6
  import TerminateDemo from '~/components/dialog/demos/terminate';
8
7
  import DestroyDemo from '~/components/dialog/demos/destroy';
9
8
 
10
9
  describe('Dialog', () => {
11
10
  afterEach((done) => {
12
11
  unmount();
13
- setTimeout(done, 400);
12
+ setTimeout(done, 500);
14
13
  });
15
14
 
16
15
  function expectDialog() {
@@ -143,10 +142,9 @@ describe('Dialog', () => {
143
142
 
144
143
  it('demos test', async function() {
145
144
  this.timeout(0);
146
- const req = require.context('~/components/dialog/demos', true, /^((?!async).)*index\.ts$/i);
145
+ const req = require.context('~/components/dialog/demos', true, /^((?!static).)*index\.ts$/i);
147
146
  for (const item of req.keys()) {
148
147
  if (!item.startsWith('.')) continue;
149
- if (/static/.test(item)) continue;
150
148
 
151
149
  const Demo = req(item).default;
152
150
  const [instance, element] = mount(Demo);
@@ -174,20 +172,6 @@ describe('Dialog', () => {
174
172
  expect(dialog.className).to.eql(className);
175
173
  });
176
174
 
177
- it('async open', async function() {
178
- this.timeout(0);
179
-
180
- const [instance, element] = mount(AsyncOpenDemo);
181
-
182
- dispatchEvent(element.firstChild as HTMLElement, 'click');
183
- expect(getElement('.k-dialog')).to.be.undefined;
184
-
185
- await wait(3000);
186
- const dialog = expectDialog();
187
- // close
188
- dispatchEvent(dialog.querySelector('.k-dialog-ok') as HTMLElement, 'click');
189
- });
190
-
191
175
  it('drag', async () => {
192
176
  const [instance, element] = mount(BasicDemo);
193
177
 
@@ -7,6 +7,7 @@ const defaults = {
7
7
  width: '800px',
8
8
  bgColor: '#fff',
9
9
  get borderRadius() { return theme.borderRadius },
10
+ get transition() { return theme.transition.large },
10
11
  padding: '0',
11
12
  margin: '0 20px',
12
13
  get color() { return theme.color.text },
@@ -60,7 +61,7 @@ const defaults = {
60
61
  },
61
62
  };
62
63
 
63
- let dialog: any;
64
+ let dialog: typeof defaults;
64
65
  setDefault(() => {
65
66
  dialog = deepDefaults(theme, {dialog: defaults}).dialog;
66
67
  });
@@ -87,8 +88,8 @@ export function makeDialogStyles() {
87
88
  &.transition-enter-active,
88
89
  &.transition-leave-active,
89
90
  &.transition-appear-active {
90
- // transition: transform ${theme.transition}, opacity ${theme.transition};
91
- transition: all ${theme.transition};
91
+ // transition: transform ${dialog.transition}, opacity ${dialog.transition};
92
+ transition: all ${dialog.transition};
92
93
  }
93
94
  &.transition-enter-from,
94
95
  &.transition-leave-to,
@@ -4,8 +4,14 @@ import {position} from '../position';
4
4
  import {scrollbarWidth} from '../position';
5
5
  import {SHOW} from './constants';
6
6
 
7
+ type Hooks = {
8
+ onStart?: (scrollBarWidth: number | undefined) => void
9
+ onEnd?: () => void
10
+ }
11
+
7
12
  const dialogs = new Set<BaseDialog>();
8
13
  let originalStyle: string | null = null;
14
+ let hooks: Hooks | null = null;
9
15
 
10
16
  export function useFixBody(elementRef: RefObject<HTMLDivElement>) {
11
17
  const instance = useInstance() as BaseDialog;
@@ -36,6 +42,10 @@ export function useFixBody(elementRef: RefObject<HTMLDivElement>) {
36
42
  }
37
43
  }
38
44
 
45
+ export function setHooks(h: Hooks | null) {
46
+ hooks = h;
47
+ }
48
+
39
49
  function onOpen(dialog: BaseDialog) {
40
50
  const body = document.body;
41
51
  if (dialogs.size === 0) {
@@ -47,6 +57,9 @@ function onOpen(dialog: BaseDialog) {
47
57
  if (scrollBarWidth) {
48
58
  bodyStyle.paddingRight = `${scrollBarWidth}px`;
49
59
  }
60
+ if (hooks && hooks.onStart) {
61
+ hooks.onStart(scrollBarWidth);
62
+ }
50
63
  }
51
64
  dialogs.add(dialog);
52
65
  }
@@ -61,6 +74,9 @@ function onClosed(dialog: BaseDialog) {
61
74
  } else {
62
75
  body.removeAttribute('style');
63
76
  }
77
+ if (hooks && hooks.onEnd) {
78
+ hooks.onEnd();
79
+ }
64
80
  }
65
81
  }
66
82
 
@@ -9,29 +9,30 @@ sidebar: doc
9
9
 
10
10
  | 属性 | 说明 | 类型 | 默认值 |
11
11
  | --- | --- | --- | --- |
12
- | placement | 自定义位置 | `"top"` &#124; `"bottom"` &#124;`"left"` &#124;`"right"`|`"right"`|
13
- | overlay | 是否展示遮罩层 | `Boolean` | `true` |
14
- | closable | 点击遮罩层是否可以关闭抽屉 | `Boolean` | `true` |
15
- | title | 弹窗标题 | `String` | `"提示"` |
16
- | value | 弹窗是否展示出来 | `Boolean` | `false` |
12
+ | title | 弹窗标题 | `string` | `"提示"` |
13
+ | value | 弹窗是否展示出来 | `boolean` | `false` |
17
14
  | size | 弹窗尺寸 | `"large"` &#124; `"default"` &#124; `"small"` &#124; `"mini"` | `"default"` |
18
- | loading | “确定”按钮是否为加载状态 | `Boolean` | `false` |
19
- | okText | “确定”按钮文案 | `String` | `"确定"` |
20
- | cancelText | “取消”按钮文案 | `String` | `"取消"` |
21
- | disabledOk | “确定”按钮是否为禁用状态 | `Boolean` | `false` |
22
- | ok | “确定”按钮点击后自定义回调函数 | `Function` | `undefined` |
23
- | cancel | “取消”按钮点击后自定义回调函数 | `Function` | `undefined` |
24
- | container | 指定弹层插入的容器,默认会追加到`body`中。你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Function` &#124; `String` | `undefined` |
25
- | hideClose | 是否隐藏右上角关闭按钮 | `Boolean` | `false` |
26
- | escClosable | 是否按ESC时关闭抽屉 | `Boolean` | `true` |
27
- | terminate | 指定在用户点击“关闭”按钮,点击遮罩层或者按ESC键时的回调函数 | `Function` | `undefined` |
28
- | width | 指定抽屉宽度,`Number`类型时,单位为`px`;`String`类型时,需要指定单位 | `Number` &#124; `String` | `undefined` |
29
- | mode | 指定主体元素在关闭状态下的渲染方式,`"destroy"`代表直接销毁,`"hide"`代表只是隐藏 | `"destroy"` &#124; `"hide"` | `"destroy"` |
15
+ | loading | “确定”按钮是否为加载状态 | `boolean` | `false` |
16
+ | disabledOk | “确定”按钮是否为禁用状态 | `boolean` | `false` |
17
+ | okText | “确定”按钮文案 | `string` | `"确定"` |
18
+ | cancelText | “取消”按钮文案 | `string` | `"取消"` |
19
+ | ok | “确定”按钮点击后自定义回调函数 | `() => void` | `undefined` |
20
+ | cancel | “取消”按钮点击后自定义回调函数 | `() => void` | `undefined` |
21
+ | container | 指定弹层插入的位置,默认会追加到`body`中,你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Container` | `undefined` |
22
+ | hideClose | 是否隐藏右上角关闭按钮 | `boolean` | `false` |
23
+ | overlay | 是否展示遮罩层 | `boolean` | `true` |
24
+ | closable | 点击遮罩层是否可以关闭弹窗 | `boolean` | `true` |
25
+ | terminate | 指定在用户点击“关闭”按钮,点击遮罩层或者按ESC键时的回调函数 | `() => void` | `undefined` |
26
+ | escClosable | 是否按ESC时关闭弹窗 | `boolean` | `true` |
27
+ | width | 指定弹窗宽度,`number`类型时,单位为`px`;`string`类型时,需要指定单位 | `number` &#124; `string` | `undefined` |
28
+ | mode | 指定主体元素在关闭状态下的渲染方式,`"destroy"`代表直接销毁,`"hide"`代表只是隐藏 | `"destroy"` &#124; `"hide"` | `"hide"` |
29
+ | placement | 自定义位置 | `"top"` &#124; `"bottom"` &#124;`"left"` &#124;`"right"`|`"right"`|
30
30
 
31
31
  # 扩展点
32
32
 
33
33
  | 名称 | 说明 |
34
34
  | --- | --- |
35
+ | content | 定义整个弹窗体,包括header,body,footer |
35
36
  | header | 扩展弹窗头部 |
36
37
  | body | 扩展弹窗主体部分 |
37
38
  | footer | 扩展弹窗底部 |
@@ -54,7 +55,9 @@ sidebar: doc
54
55
 
55
56
  | 事件名 | 说明 | 参数 |
56
57
  | --- | --- | --- |
57
- | cancel | 点击取消按钮时触发 | - |
58
- | ok | 点击确定按钮时触发 | - |
59
58
  | open | 弹窗打开后触发 | - |
60
- | close | 弹窗关闭后触发 | - |
59
+ | close | 弹窗关闭后触发,不管是什么原因导致的关闭 | - |
60
+ | ok | 点击确定按钮时触发 | - |
61
+ | cancel | 点击取消按钮时触发 | - |
62
+ | terminate | 用户强行关闭弹窗时触发,即:点击“关闭”按钮,点击遮罩层,按ESC键 | - |
63
+ | afterClose | 弹窗退出动画执行完成后触发 | - |
@@ -6,7 +6,7 @@ import {mount, unmount, dispatchEvent, getElement, wait} from '../../test/utils'
6
6
  describe('Drawer', () => {
7
7
  afterEach((done) => {
8
8
  unmount();
9
- setTimeout(done, 400);
9
+ setTimeout(done, 500);
10
10
  });
11
11
 
12
12
  it('should show drawer correctly', async function() {
@@ -20,10 +20,10 @@ describe('Drawer', () => {
20
20
  const drawer = getElement('.k-dialog-wrapper')!;
21
21
  expect(drawer.innerHTML).to.matchSnapshot();
22
22
 
23
- await wait(400);
23
+ await wait(500);
24
24
  //hide
25
25
  getElement('.k-dialog-overlay')!.click();
26
- await wait(400);
26
+ await wait(500);
27
27
  expect(getElement('.k-drawer')).to.be.undefined;
28
28
  });
29
29
 
@@ -58,13 +58,13 @@ describe('Drawer', () => {
58
58
  expect(overlay).to.be.undefined;
59
59
  await wait(200);
60
60
  dispatchEvent(document, 'click');
61
- await wait(400);
61
+ await wait(500);
62
62
  const dialog = getElement('.k-dialog-wrapper')!;
63
63
  expect(dialog.innerHTML).to.matchSnapshot();
64
64
 
65
65
  const btn = dialog.querySelector('.k-dialog-ok') as HTMLElement;
66
66
  btn.click();
67
- await wait(400);
67
+ await wait(500);
68
68
  expect(getElement('.k-drawer')).to.be.undefined;
69
69
  });
70
70
  });
@@ -10,11 +10,11 @@ export type Placement = ValueOf<typeof placements>
10
10
  export const placements = ['top', 'right', 'bottom', 'left'] as const;
11
11
 
12
12
  const defaults = {
13
- get transition() { return theme.transition },
13
+ get transition() { return theme.transition.large },
14
14
  get boxShadow() { return theme.boxShadow }
15
15
  };
16
16
 
17
- let drawer: any;
17
+ let drawer: typeof defaults;
18
18
  setDefault(() => {
19
19
  drawer = deepDefaults(theme, {drawer: defaults}).drawer;
20
20
  });
@@ -6,24 +6,12 @@ order: 0
6
6
  一个完整的菜单需要用到`Dropdown`,`DropdownMenu`和`DropdownItem`三个组件。
7
7
  `Dropdown`会将第一个子元素作为触发器,第二个元素为菜单`DropdownMenu`。
8
8
 
9
- > 与`Tooltip`一样,在Intact下,`Dropdown`会返回两个元素(触发器和菜单),而不是将它们包裹起来,作为一个元素返回,
10
- > 所以不要将它作为模板的顶级元素,例如本例中,用`<div>`将之包裹起来才能作为模板元素返回。
11
-
12
- > `@since 0.9.0` `Dropdown`在`Vue/React`下渲染不会被元素包裹,这可能会影响你之前项目中定义的样式,
13
- > 如需渲染包裹元素,请做如下配置
14
- > ```js
15
- > // @code
16
- > import {configure} from 'kpc';
17
- >
18
- > // 该配置全局生效
19
- > configure({useWrapper: true});
20
- > ```
9
+ > 与`Tooltip`一样,`Dropdown`会返回两个元素(触发器和菜单),所以不要作为Vue2.0的模板顶层返回元素
10
+ > 因为Vue2.0只支持返回一个元素
21
11
 
22
12
 
23
13
  ```vdt
24
- import {Dropdown, DropdownMenu, DropdownItem} from 'kpc';
25
- import {Button} from 'kpc';
26
- import {Icon} from 'kpc';
14
+ import {Dropdown, DropdownMenu, DropdownItem, Button, Icon} from 'kpc';
27
15
 
28
16
  <div>
29
17
  <Dropdown>
@@ -45,5 +33,5 @@ import {Icon} from 'kpc';
45
33
  transition transform .25s ease-in-out
46
34
  .k-dropdown-open
47
35
  .k-icon
48
- transform rotate(180deg)
36
+ transform rotateX(180deg)
49
37
  ```
@@ -3,13 +3,7 @@ title: 右键菜单
3
3
  order: 7
4
4
  ---
5
5
 
6
- 将`DropdownMenu`作为顶层元素,而不是`Dropdown`的子元素,然后指定`of`属性为事件对象,即可以实现
7
- 跟随鼠标位置的弹出菜单
8
-
9
- > 这里将`position`属性指定为`left+1`是为了避免弹出菜单立即被选中第一项
10
-
11
- > `React`下事件对象会复用,我们不能在异步函数中调用事件对象的属性和方法,如果需要保留事件
12
- > 对象,需要调用`event.persist()`方法 https://reactjs.org/docs/events.html#event-pooling
6
+ 指定`trigger`为`contextmenu`即可实现右键菜单功能
13
7
 
14
8
  ```vdt
15
9
  import {Dropdown, DropdownMenu, DropdownItem} from 'kpc';
@@ -43,5 +43,5 @@ import {Icon} from 'kpc';
43
43
  transition transform .25s ease-in-out
44
44
  .k-dropdown-open
45
45
  .k-icon
46
- transform rotate(180deg)
46
+ transform rotateX(180deg)
47
47
  ```
@@ -7,9 +7,7 @@ order: 4
7
7
  我们还可以通过`trigger`单独子菜单触发方式。
8
8
 
9
9
  ```vdt
10
- import {Dropdown, DropdownMenu, DropdownItem} from 'kpc';
11
- import {Button} from 'kpc';
12
- import {Icon} from 'kpc';
10
+ import {Dropdown, DropdownMenu, DropdownItem, Button, Icon} from 'kpc';
13
11
 
14
12
  <div>
15
13
  <Dropdown trigger="click">
@@ -76,5 +74,5 @@ import {Icon} from 'kpc';
76
74
  transition transform .25s ease-in-out
77
75
  .k-dropdown-open
78
76
  .k-icon
79
- transform rotate(180deg)
77
+ transform rotateX(180deg)
80
78
  ```
@@ -3,12 +3,11 @@ title: 菜单位置
3
3
  order: 2
4
4
  ---
5
5
 
6
- 通过`position`属性,可以定义菜单相对触发器的位置。位置对象中`my`指菜单,`at`指触发器
6
+ 通过`position`属性,可以定义菜单相对触发器的位置。位置对象中`my`指菜单,`at`指触发器。
7
+ 通过`"top" | "bottom" | "left" | "right" `可以快速定位上下左右四个方向
7
8
 
8
9
  ```vdt
9
- import {Dropdown, DropdownMenu, DropdownItem} from 'kpc';
10
- import {Button} from 'kpc';
11
- import {Icon} from 'kpc';
10
+ import {Dropdown, DropdownMenu, DropdownItem, Button, Icon} from 'kpc';
12
11
 
13
12
  <div>
14
13
  <Dropdown position={{my: 'left top', at: 'left bottom+5'}}>
@@ -33,7 +32,7 @@ import {Icon} from 'kpc';
33
32
  </DropdownMenu>
34
33
  </Dropdown>
35
34
 
36
- <Dropdown position={{my: 'center bottom-5', at: 'center top'}}>
35
+ <Dropdown position="top">
37
36
  <Button type="primary">
38
37
  top center <Icon class="ion-ios-arrow-down" />
39
38
  </Button>
@@ -54,5 +53,5 @@ import {Icon} from 'kpc';
54
53
  transition transform .25s ease-in-out
55
54
  .k-dropdown-open
56
55
  .k-icon
57
- transform rotate(180deg)
56
+ transform rotateX(180deg)
58
57
  ```
@@ -7,9 +7,7 @@ order: 0
7
7
  通过`trigger`属性来指定它们。
8
8
 
9
9
  ```vdt
10
- import {Dropdown, DropdownMenu, DropdownItem} from 'kpc';
11
- import {Button} from 'kpc';
12
- import {Icon} from 'kpc';
10
+ import {Dropdown, DropdownMenu, DropdownItem, Button, Icon} from 'kpc';
13
11
 
14
12
  <div>
15
13
  <Dropdown>
@@ -44,5 +42,5 @@ import {Icon} from 'kpc';
44
42
  transition transform .25s ease-in-out
45
43
  .k-dropdown-open
46
44
  .k-icon
47
- transform rotate(180deg)
45
+ transform rotateX(180deg)
48
46
  ```
@@ -249,6 +249,8 @@ export class Dropdown<
249
249
  if (!vnode) return props;
250
250
 
251
251
  const _props = vnode.props;
252
+ if (!_props) return props;
253
+
252
254
  return {
253
255
  vnode,
254
256
  'ev-click': _props.onClick,
@@ -5,9 +5,6 @@ order: 11
5
5
  sidebar: doc
6
6
  ---
7
7
 
8
- > `kpc/component/dropdown`暴露出来的并非`Dropdown`组件本身,而是包装该组件的函数(vdt中称作宏函数)
9
- > 所以不要试图继承它。
10
-
11
8
  # 属性
12
9
 
13
10
  ## Dropdown
@@ -15,32 +12,46 @@ sidebar: doc
15
12
  | 属性 | 说明 | 类型 | 默认值 |
16
13
  | --- | --- | --- | --- |
17
14
  | trigger | 触发方式,`hover`为悬停触发,`click`为点击触发 | `"hover"` &#124; `"click"` | `"hover"` |
18
- | disabled | 是否禁用整个菜单 | `Boolean` | `false` |
19
- | position | 菜单弹出的位置,默认在触发器正下方向下偏移`5px`的地方 | `Object` | `{my: 'center top+5', 'center bottom'}` |
20
- | value | 是否将弹出菜单展示出来,可通过`v-model`双向绑定 | `Boolean` | `false` |
21
- | of | 弹出菜单的位置是相对当前触发元素,还是触发元素所在的菜单元素,这在嵌套菜单中可能会用到,可以使所有子菜单保持统一的对齐方式,例如:级联选择(Cascader)组件 | `"self"` &#124; `"parent"` | `"self"` |
22
- | container | 指定弹出菜单追加的位置,默认:`Dialog`类型的组件会追加到`Dialog`中,其他会追加到`body`中。你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Function` &#124; `String` | `undefined` |
15
+ | disabled | 是否禁用整个菜单 | `boolean` | `false` |
16
+ | value | 是否将弹出菜单展示出来,可通过`v-model`双向绑定 | `boolean` | `false` |
17
+ | position | 菜单弹出的位置,默认与触发器左侧对齐向下偏移`8px`的地方 | `Position` &#124; `"left"` &#124; `"bottom"` &#124; `"right"` &#124; `"top"` | `{my: 'left top+8', 'left bottom'}` |
18
+ | of | 弹出菜单的位置是相对当前触发元素,还是触发元素所在的菜单元素,这在嵌套菜单中可能会用到,可以使所有子菜单保持统一的对齐方式,例如:级联选择(Cascader)组件 | `"self"` &#124; `"parent"` &#124; `Event` | `"self"` |
19
+ | container | 指定弹出菜单追加的位置,默认:`Dialog`类型的组件会追加到`Dialog`中,其他会追加到`body`中。你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Container` | `undefined` |
20
+
21
+ ```ts
22
+ type Position = {
23
+ my?: string | [string, string]
24
+ at?: string | [string, string]
25
+ collision?: Collision | [Collision, Collision]
26
+ collisionDirection?: ['left'] | ['top'] | ['left', 'top']
27
+ }
28
+
29
+ type Collision = 'fit' | 'flip' | 'flipfit' | 'none'
30
+
31
+ export type Container = string | ((parentDom: Element, anchor: Node | null) => Element)
32
+ ```
23
33
 
24
34
  ## DropdownItem
25
35
 
26
36
  | 属性 | 说明 | 类型 | 默认值 |
27
37
  | --- | --- | --- | --- |
28
- | disabled | 是否禁用该菜单项 | `Boolean` | `false` |
29
- | hideOnSelect | 是否选中该菜单后隐藏整个菜单 | `Boolean` | `true` |
38
+ | disabled | 是否禁用该菜单项 | `boolean` | `false` |
39
+ | hideOnSelect | 是否选中该菜单后隐藏整个菜单 | `boolean` | `true` |
30
40
 
31
- ## 事件
41
+ # 事件
32
42
 
33
- ## DropdownMenu
43
+ ## Dropdown
34
44
 
35
45
  | 事件名 | 说明 | 参数 |
36
46
  | --- | --- | --- |
37
47
  | show | 菜单展示事件 | - |
48
+ | hide | 菜单隐藏事件 | - |
38
49
 
39
50
  ## DropdownItem
40
51
 
41
52
  | 事件名 | 说明 | 参数 |
42
53
  | --- | --- | --- |
43
54
  | select | 菜单项被选中时触发,不管是点击还是键盘操作选中 | 被选中的`DropdownItem`实例 |
44
- | click | 菜单项被点击时触发 | `Event` |
45
- | mouseenter | 鼠标进入菜单项时触发 | `Event` |
46
- | mouseleave | 鼠标离开菜单项时触发 | `Event` |
55
+ | click | 菜单项被点击时触发 | `MouseEvent` |
56
+ | mouseenter | 鼠标进入菜单项时触发 | `MouseEvent` |
57
+ | mouseleave | 鼠标离开菜单项时触发 | `MouseEvent` |
@@ -8,7 +8,7 @@ import ContextMenuDemo from '~/components/dropdown/demos/contextmenu';
8
8
  describe('Dropdown', () => {
9
9
  afterEach((done) => {
10
10
  unmount();
11
- setTimeout(done, 400);
11
+ setTimeout(done, 500);
12
12
  });
13
13
 
14
14
  // it('demos test', () => {
@@ -80,7 +80,7 @@ describe('Dropdown', () => {
80
80
  const dropdown = getElement('.k-dropdown-menu')!;
81
81
  const [, , , hoverItem, clickItem] = dropdown.querySelectorAll<HTMLElement>(':scope > .k-dropdown-item');
82
82
  clickItem.click();
83
- await wait(300);
83
+ await wait(500);
84
84
  const clickSubDropdown = getElement('.k-dropdown-menu')!;
85
85
  expect(clickSubDropdown.innerHTML).to.matchSnapshot();
86
86
 
@@ -271,7 +271,7 @@ describe('Dropdown', () => {
271
271
  const [instance, element] = mount(Demo);
272
272
 
273
273
  dispatchEvent(instance.refs.trigger, 'mouseenter');
274
- await wait(300);
274
+ await wait(500);
275
275
 
276
276
  const dropdown = getElement('.k-dropdown-menu')!;
277
277
  const [, item] = dropdown.querySelectorAll<HTMLElement>('.k-dropdown-item');
@@ -22,8 +22,7 @@ export type {
22
22
  DropdownMenuEvents,
23
23
  DropdownMenuBlocks,
24
24
  };
25
- // Don't export the generic type class, because it will let
26
- // the type inferring break down
25
+ // Don't export the generic type class, because it will break down the type inference
27
26
  // declare class _Dropdown extends BaseDropdown<
28
27
  // DropdownProps,
29
28
  // DropdownEvents,