neko-ui 2.8.21 → 2.8.23

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 (671) hide show
  1. package/es/avatar/README.mdx +10 -0
  2. package/es/avatar/examples/basic.md +14 -0
  3. package/es/avatar/examples/group.md +57 -0
  4. package/es/avatar/examples/size.md +21 -0
  5. package/es/avatar/group.js +2 -2
  6. package/es/avatar/group.js.map +1 -1
  7. package/es/avatar/index.js +2 -2
  8. package/es/avatar/index.js.map +1 -1
  9. package/es/avatar/style.js +2 -2
  10. package/es/avatar/style.js.map +1 -1
  11. package/es/back-top/README.mdx +10 -0
  12. package/es/back-top/examples/basic.md +19 -0
  13. package/es/back-top/examples/mount.md +36 -0
  14. package/es/back-top/examples/target.md +46 -0
  15. package/es/back-top/index.js +1 -1
  16. package/es/back-top/index.js.map +1 -1
  17. package/es/basic-config/README.mdx +11 -0
  18. package/es/button/README.mdx +10 -0
  19. package/es/button/examples/basic.md +21 -0
  20. package/es/button/examples/block.md +33 -0
  21. package/es/button/examples/circle.md +21 -0
  22. package/es/button/examples/danger.md +23 -0
  23. package/es/button/examples/dashed.md +21 -0
  24. package/es/button/examples/disabled.md +35 -0
  25. package/es/button/examples/fill.md +21 -0
  26. package/es/button/examples/flat.md +21 -0
  27. package/es/button/examples/ghost.md +21 -0
  28. package/es/button/examples/icon.md +30 -0
  29. package/es/button/examples/link.md +21 -0
  30. package/es/button/examples/size.md +23 -0
  31. package/es/button/index.js +1 -1
  32. package/es/button/index.js.map +1 -1
  33. package/es/button/style.js +1 -0
  34. package/es/button/style.js.map +1 -1
  35. package/es/capture-screen/README.mdx +10 -0
  36. package/es/capture-screen/examples/basic.md +13 -0
  37. package/es/capture-screen/examples/custom-save.md +30 -0
  38. package/es/capture-screen/examples/preview.md +13 -0
  39. package/es/capture-screen/examples/recorder-save.md +13 -0
  40. package/es/capture-screen/index.js +1 -1
  41. package/es/capture-screen/index.js.map +1 -1
  42. package/es/carousel/README.mdx +10 -0
  43. package/es/carousel/examples/autoplay.md +21 -0
  44. package/es/carousel/examples/basic.md +23 -0
  45. package/es/carousel/examples/dots.md +23 -0
  46. package/es/carousel/examples/header.md +38 -0
  47. package/es/carousel/index.js +1 -1
  48. package/es/carousel/index.js.map +1 -1
  49. package/es/checkbox/README.mdx +10 -0
  50. package/es/checkbox/examples/basic.md +31 -0
  51. package/es/checkbox/examples/check-all.md +37 -0
  52. package/es/checkbox/examples/disabled-all.md +28 -0
  53. package/es/checkbox/examples/disabled-option.md +35 -0
  54. package/es/checkbox/examples/field-names.md +40 -0
  55. package/es/checkbox/examples/status.md +37 -0
  56. package/es/checkbox/examples/vertical.md +36 -0
  57. package/es/checkbox/index.js +1 -1
  58. package/es/checkbox/index.js.map +1 -1
  59. package/es/code/README.mdx +10 -0
  60. package/es/code/examples/basic.md +19 -0
  61. package/es/code/examples/diff.md +45 -0
  62. package/es/code/examples/line-number.md +18 -0
  63. package/es/code/examples/live-edit.md +20 -0
  64. package/es/code/examples/toolbar.md +18 -0
  65. package/es/code/index.js +2 -2
  66. package/es/code/index.js.map +1 -1
  67. package/es/code/worker.js.map +1 -1
  68. package/es/color-palette/README.mdx +10 -0
  69. package/es/color-palette/examples/default-value.md +25 -0
  70. package/es/color-palette/examples/hexa.md +13 -0
  71. package/es/color-palette/examples/hsla.md +13 -0
  72. package/es/color-palette/examples/rgba.md +13 -0
  73. package/es/color-palette/index.js +1 -1
  74. package/es/color-palette/index.js.map +1 -1
  75. package/es/color-picker/README.mdx +10 -0
  76. package/es/color-picker/examples/basic.md +12 -0
  77. package/es/color-picker/examples/default-value.md +20 -0
  78. package/es/color-picker/examples/size.md +17 -0
  79. package/es/color-picker/index.js +1 -1
  80. package/es/color-picker/index.js.map +1 -1
  81. package/es/cron/README.mdx +10 -0
  82. package/es/cron/begin-interval.js.map +1 -1
  83. package/es/cron/day.js.map +1 -1
  84. package/es/cron/examples/basic.md +19 -0
  85. package/es/cron/examples/card.md +12 -0
  86. package/es/cron/examples/show-cron.md +12 -0
  87. package/es/cron/hour.js +1 -1
  88. package/es/cron/hour.js.map +1 -1
  89. package/es/cron/index.js +1 -1
  90. package/es/cron/index.js.map +1 -1
  91. package/es/cron/item.js.map +1 -1
  92. package/es/cron/minute.js +1 -1
  93. package/es/cron/minute.js.map +1 -1
  94. package/es/cron/month.js +1 -1
  95. package/es/cron/month.js.map +1 -1
  96. package/es/cron/period.js.map +1 -1
  97. package/es/cron/second.js +1 -1
  98. package/es/cron/second.js.map +1 -1
  99. package/es/cron/some.js.map +1 -1
  100. package/es/date-picker/README.mdx +10 -0
  101. package/es/date-picker/date.js +1 -1
  102. package/es/date-picker/date.js.map +1 -1
  103. package/es/date-picker/dayjs.js +1 -1
  104. package/es/date-picker/dayjs.js.map +1 -1
  105. package/es/date-picker/examples/basic.md +24 -0
  106. package/es/date-picker/examples/date.md +13 -0
  107. package/es/date-picker/examples/disbaled.md +13 -0
  108. package/es/date-picker/examples/header.md +13 -0
  109. package/es/date-picker/examples/month.md +13 -0
  110. package/es/date-picker/examples/time.md +15 -0
  111. package/es/date-picker/examples/today.md +13 -0
  112. package/es/date-picker/examples/year.md +13 -0
  113. package/es/date-picker/index.js +1 -1
  114. package/es/date-picker/index.js.map +1 -1
  115. package/es/date-picker/month.js +1 -1
  116. package/es/date-picker/month.js.map +1 -1
  117. package/es/date-picker/panel.js +1 -1
  118. package/es/date-picker/panel.js.map +1 -1
  119. package/es/date-picker/time.js +1 -1
  120. package/es/date-picker/time.js.map +1 -1
  121. package/es/date-picker/year.js +1 -1
  122. package/es/date-picker/year.js.map +1 -1
  123. package/es/dropdown/README.mdx +10 -0
  124. package/es/dropdown/examples/arrow.md +59 -0
  125. package/es/dropdown/examples/basic.md +17 -0
  126. package/es/dropdown/examples/click.md +45 -0
  127. package/es/dropdown/examples/context-menu.md +66 -0
  128. package/es/dropdown/examples/field-names.md +44 -0
  129. package/es/dropdown/examples/icon.md +30 -0
  130. package/es/dropdown/examples/multiple.md +45 -0
  131. package/es/dropdown/examples/no-data.md +16 -0
  132. package/es/dropdown/examples/placement.md +59 -0
  133. package/es/dropdown/examples/toggle.md +36 -0
  134. package/es/dropdown/index.js +1 -1
  135. package/es/dropdown/index.js.map +1 -1
  136. package/es/empty/index.js.map +1 -1
  137. package/es/from-schema/index.js +1 -1
  138. package/es/from-schema/index.js.map +1 -1
  139. package/es/highlight-text/README.mdx +10 -0
  140. package/es/highlight-text/examples/basic.md +19 -0
  141. package/es/highlight-text/examples/mut.md +47 -0
  142. package/es/highlight-text/examples/not-hightlight.md +19 -0
  143. package/es/highlight-text/index.js +2 -2
  144. package/es/highlight-text/index.js.map +1 -1
  145. package/es/img/README.mdx +10 -0
  146. package/es/img/examples/basic.md +17 -0
  147. package/es/img/examples/close-mask.md +21 -0
  148. package/es/img/examples/disabled.md +16 -0
  149. package/es/img/examples/error.md +13 -0
  150. package/es/img/examples/esc.md +21 -0
  151. package/es/img/examples/open-change.md +25 -0
  152. package/es/img/index.js +1 -1
  153. package/es/img/index.js.map +1 -1
  154. package/es/img/lazy.js +1 -1
  155. package/es/img/lazy.js.map +1 -1
  156. package/es/index.js +1 -1
  157. package/es/index.js.map +1 -1
  158. package/es/input/README.mdx +10 -0
  159. package/es/input/examples/basic.md +31 -0
  160. package/es/input/examples/prefix&suffix.md +33 -0
  161. package/es/input/examples/size.md +21 -0
  162. package/es/input/examples/status.md +23 -0
  163. package/es/input/index.js +1 -1
  164. package/es/input/index.js.map +1 -1
  165. package/es/input-number/README.mdx +10 -0
  166. package/es/input-number/examples/basic.md +26 -0
  167. package/es/input-number/examples/formatter.md +36 -0
  168. package/es/input-number/examples/max-min.md +13 -0
  169. package/es/input-number/index.js.map +1 -1
  170. package/es/katex/README.mdx +42 -0
  171. package/es/katex/examples/block.md +25 -0
  172. package/es/katex/examples/inline.md +19 -0
  173. package/es/md/README.mdx +10 -0
  174. package/es/md/examples/in-children.md +23 -0
  175. package/es/md/examples/in-text.md +32 -0
  176. package/es/md/examples/math.md +36 -0
  177. package/es/md/index.js +1 -1
  178. package/es/md/index.js.map +1 -1
  179. package/es/menu/README.mdx +10 -0
  180. package/es/menu/examples/basic.md +17 -0
  181. package/es/menu/examples/field-names.md +42 -0
  182. package/es/menu/examples/icon.md +125 -0
  183. package/es/menu/examples/multiple.md +42 -0
  184. package/es/menu/index.js +1 -1
  185. package/es/menu/index.js.map +1 -1
  186. package/es/modal/README.mdx +10 -0
  187. package/es/modal/examples/basic.md +56 -0
  188. package/es/modal/examples/close-icon.md +57 -0
  189. package/es/modal/examples/esc-closable.md +64 -0
  190. package/es/modal/examples/mask-blur.md +56 -0
  191. package/es/modal/examples/mask-closable.md +64 -0
  192. package/es/modal/index.js +1 -1
  193. package/es/modal/index.js.map +1 -1
  194. package/es/notification/README.mdx +11 -0
  195. package/es/notification/examples/basic.md +35 -0
  196. package/es/notification/examples/close.md +35 -0
  197. package/es/notification/examples/type.md +84 -0
  198. package/es/notification/examples/update.md +52 -0
  199. package/es/notification/index.js.map +1 -1
  200. package/es/notification/notification.js +1 -1
  201. package/es/notification/notification.js.map +1 -1
  202. package/es/pagination/README.mdx +10 -0
  203. package/es/pagination/examples/basic.md +13 -0
  204. package/es/pagination/examples/onchange.md +29 -0
  205. package/es/pagination/examples/size.md +23 -0
  206. package/es/pagination/examples/total-text.md +42 -0
  207. package/es/pagination/index.js +1 -1
  208. package/es/pagination/index.js.map +1 -1
  209. package/es/popover/README.mdx +10 -0
  210. package/es/popover/examples/basic.md +35 -0
  211. package/es/popover/examples/click.md +15 -0
  212. package/es/popover/examples/context-menu.md +58 -0
  213. package/es/popover/examples/controlled.md +47 -0
  214. package/es/popover/index.js +1 -1
  215. package/es/popover/index.js.map +1 -1
  216. package/es/prism/css.js.map +1 -1
  217. package/es/prism/index.js.map +1 -1
  218. package/es/provider/README.mdx +10 -0
  219. package/es/provider/examples/scheme.md +14 -0
  220. package/es/provider/index.js.map +1 -1
  221. package/es/radio/README.mdx +10 -0
  222. package/es/radio/examples/basic.md +19 -0
  223. package/es/radio/examples/disabled-option.md +19 -0
  224. package/es/radio/examples/disabled.md +19 -0
  225. package/es/radio/examples/field-names.md +39 -0
  226. package/es/radio/examples/layout-vertical.md +19 -0
  227. package/es/radio/examples/status.md +31 -0
  228. package/es/radio/index.js +1 -1
  229. package/es/radio/index.js.map +1 -1
  230. package/es/segmented/README.mdx +10 -0
  231. package/es/segmented/examples/basic.md +18 -0
  232. package/es/segmented/examples/custom-field-names.md +43 -0
  233. package/es/segmented/examples/disabled-option.md +29 -0
  234. package/es/segmented/examples/disabled.md +18 -0
  235. package/es/segmented/examples/icon.md +28 -0
  236. package/es/segmented/examples/options.md +21 -0
  237. package/es/segmented/index.js +2 -2
  238. package/es/segmented/index.js.map +1 -1
  239. package/es/select/README.mdx +10 -0
  240. package/es/select/examples/basic.md +44 -0
  241. package/es/select/examples/disabled-option.md +21 -0
  242. package/es/select/examples/disabled.md +24 -0
  243. package/es/select/examples/field-names.md +40 -0
  244. package/es/select/examples/item-suffix.md +84 -0
  245. package/es/select/examples/multiple.md +61 -0
  246. package/es/select/examples/no-data.md +12 -0
  247. package/es/select/examples/prefix-icon.md +74 -0
  248. package/es/select/index.js +1 -1
  249. package/es/select/index.js.map +1 -1
  250. package/es/skeleton/README.mdx +10 -0
  251. package/es/skeleton/examples/animation.md +13 -0
  252. package/es/skeleton/examples/avatar.md +13 -0
  253. package/es/skeleton/examples/basic.md +12 -0
  254. package/es/skeleton/examples/rows.md +13 -0
  255. package/es/skeleton/examples/title.md +12 -0
  256. package/es/skeleton/index.js +3 -3
  257. package/es/skeleton/index.js.map +1 -1
  258. package/es/spin/README.mdx +10 -0
  259. package/es/spin/examples/basic.md +67 -0
  260. package/es/spin/index.js +4 -4
  261. package/es/spin/index.js.map +1 -1
  262. package/es/switch/README.mdx +10 -0
  263. package/es/switch/examples/basic.md +24 -0
  264. package/es/switch/examples/checked-text.md +17 -0
  265. package/es/switch/examples/disabled.md +15 -0
  266. package/es/switch/examples/loading.md +17 -0
  267. package/es/switch/index.js +1 -1
  268. package/es/switch/index.js.map +1 -1
  269. package/es/table/README.mdx +10 -0
  270. package/es/table/examples/basic.md +29 -0
  271. package/es/table/examples/key.md +29 -0
  272. package/es/table/examples/order.md +29 -0
  273. package/es/table/examples/pagination.md +67 -0
  274. package/es/table/examples/render.md +92 -0
  275. package/es/table/examples/size.md +52 -0
  276. package/es/table/examples/summary.md +40 -0
  277. package/es/table/index.js +1 -1
  278. package/es/table/index.js.map +1 -1
  279. package/es/tabs/README.mdx +10 -0
  280. package/es/tabs/examples/add-remove.md +115 -0
  281. package/es/tabs/examples/animated.md +33 -0
  282. package/es/tabs/examples/basic.md +32 -0
  283. package/es/tabs/examples/card.md +33 -0
  284. package/es/tabs/examples/center.md +33 -0
  285. package/es/tabs/examples/disabled-tab.md +34 -0
  286. package/es/tabs/examples/disabled.md +33 -0
  287. package/es/tabs/examples/extra.md +65 -0
  288. package/es/tabs/index.js +2 -2
  289. package/es/tabs/index.js.map +1 -1
  290. package/es/tag/README.mdx +10 -0
  291. package/es/tag/examples/basic.md +28 -0
  292. package/es/tag/examples/bordered.md +19 -0
  293. package/es/tag/examples/color.md +25 -0
  294. package/es/tag/examples/icon.md +21 -0
  295. package/es/tag/examples/type.md +19 -0
  296. package/es/tag/index.js +3 -3
  297. package/es/tag/index.js.map +1 -1
  298. package/es/theme/README.mdx +10 -0
  299. package/es/theme/examples/colors.md +123 -0
  300. package/es/theme/examples/theme.md +19 -0
  301. package/es/theme/index.js +1 -1
  302. package/es/theme/index.js.map +1 -1
  303. package/es/tree/README.mdx +10 -0
  304. package/es/tree/examples/basic.md +108 -0
  305. package/es/tree/examples/custom-render.md +115 -0
  306. package/es/tree/examples/direction.md +100 -0
  307. package/es/tree/examples/field-names.md +114 -0
  308. package/es/tree/examples/multiple.md +117 -0
  309. package/es/tree/examples/readonly.md +90 -0
  310. package/es/tree/examples/render-tree-string1.md +70 -0
  311. package/es/tree/examples/render-tree-string2.md +52 -0
  312. package/es/tree/examples/schema.md +130 -0
  313. package/es/tree/examples/size.md +125 -0
  314. package/es/tree/examples/toggle.md +71 -0
  315. package/es/tree/index.js +1 -1
  316. package/es/tree/index.js.map +1 -1
  317. package/es/tree/register.js.map +1 -1
  318. package/es/typography/README.mdx +10 -0
  319. package/es/typography/examples/basic.md +27 -0
  320. package/es/typography/examples/tag.md +25 -0
  321. package/es/typography/examples/truncated.md +17 -0
  322. package/es/typography/index.js +3 -3
  323. package/es/typography/index.js.map +1 -1
  324. package/eslint.config.mjs +9 -0
  325. package/lib/avatar/README.mdx +10 -0
  326. package/lib/avatar/examples/basic.md +14 -0
  327. package/lib/avatar/examples/group.md +57 -0
  328. package/lib/avatar/examples/size.md +21 -0
  329. package/lib/avatar/group.js.map +1 -1
  330. package/lib/avatar/index.js +2 -2
  331. package/lib/avatar/index.js.map +1 -1
  332. package/lib/avatar/style.js +2 -2
  333. package/lib/avatar/style.js.map +1 -1
  334. package/lib/back-top/README.mdx +10 -0
  335. package/lib/back-top/examples/basic.md +19 -0
  336. package/lib/back-top/examples/mount.md +36 -0
  337. package/lib/back-top/examples/target.md +46 -0
  338. package/lib/back-top/index.js +1 -1
  339. package/lib/back-top/index.js.map +1 -1
  340. package/lib/basic-config/README.mdx +11 -0
  341. package/lib/button/README.mdx +10 -0
  342. package/lib/button/examples/basic.md +21 -0
  343. package/lib/button/examples/block.md +33 -0
  344. package/lib/button/examples/circle.md +21 -0
  345. package/lib/button/examples/danger.md +23 -0
  346. package/lib/button/examples/dashed.md +21 -0
  347. package/lib/button/examples/disabled.md +35 -0
  348. package/lib/button/examples/fill.md +21 -0
  349. package/lib/button/examples/flat.md +21 -0
  350. package/lib/button/examples/ghost.md +21 -0
  351. package/lib/button/examples/icon.md +30 -0
  352. package/lib/button/examples/link.md +21 -0
  353. package/lib/button/examples/size.md +23 -0
  354. package/lib/button/index.js +1 -1
  355. package/lib/button/index.js.map +1 -1
  356. package/lib/button/style.js +1 -0
  357. package/lib/button/style.js.map +1 -1
  358. package/lib/capture-screen/README.mdx +10 -0
  359. package/lib/capture-screen/examples/basic.md +13 -0
  360. package/lib/capture-screen/examples/custom-save.md +30 -0
  361. package/lib/capture-screen/examples/preview.md +13 -0
  362. package/lib/capture-screen/examples/recorder-save.md +13 -0
  363. package/lib/capture-screen/index.js +1 -1
  364. package/lib/capture-screen/index.js.map +1 -1
  365. package/lib/carousel/README.mdx +10 -0
  366. package/lib/carousel/examples/autoplay.md +21 -0
  367. package/lib/carousel/examples/basic.md +23 -0
  368. package/lib/carousel/examples/dots.md +23 -0
  369. package/lib/carousel/examples/header.md +38 -0
  370. package/lib/carousel/index.js +1 -1
  371. package/lib/carousel/index.js.map +1 -1
  372. package/lib/checkbox/README.mdx +10 -0
  373. package/lib/checkbox/examples/basic.md +31 -0
  374. package/lib/checkbox/examples/check-all.md +37 -0
  375. package/lib/checkbox/examples/disabled-all.md +28 -0
  376. package/lib/checkbox/examples/disabled-option.md +35 -0
  377. package/lib/checkbox/examples/field-names.md +40 -0
  378. package/lib/checkbox/examples/status.md +37 -0
  379. package/lib/checkbox/examples/vertical.md +36 -0
  380. package/lib/checkbox/index.js +1 -1
  381. package/lib/checkbox/index.js.map +1 -1
  382. package/lib/code/README.mdx +10 -0
  383. package/lib/code/examples/basic.md +19 -0
  384. package/lib/code/examples/diff.md +45 -0
  385. package/lib/code/examples/line-number.md +18 -0
  386. package/lib/code/examples/live-edit.md +20 -0
  387. package/lib/code/examples/toolbar.md +18 -0
  388. package/lib/code/index.js +2 -2
  389. package/lib/code/index.js.map +1 -1
  390. package/lib/code/worker.js.map +1 -1
  391. package/lib/color-palette/README.mdx +10 -0
  392. package/lib/color-palette/examples/default-value.md +25 -0
  393. package/lib/color-palette/examples/hexa.md +13 -0
  394. package/lib/color-palette/examples/hsla.md +13 -0
  395. package/lib/color-palette/examples/rgba.md +13 -0
  396. package/lib/color-palette/index.js +1 -1
  397. package/lib/color-palette/index.js.map +1 -1
  398. package/lib/color-picker/README.mdx +10 -0
  399. package/lib/color-picker/examples/basic.md +12 -0
  400. package/lib/color-picker/examples/default-value.md +20 -0
  401. package/lib/color-picker/examples/size.md +17 -0
  402. package/lib/color-picker/index.js +1 -1
  403. package/lib/color-picker/index.js.map +1 -1
  404. package/lib/cron/README.mdx +10 -0
  405. package/lib/cron/begin-interval.js.map +1 -1
  406. package/lib/cron/day.js.map +1 -1
  407. package/lib/cron/examples/basic.md +19 -0
  408. package/lib/cron/examples/card.md +12 -0
  409. package/lib/cron/examples/show-cron.md +12 -0
  410. package/lib/cron/hour.js +1 -1
  411. package/lib/cron/hour.js.map +1 -1
  412. package/lib/cron/index.js.map +1 -1
  413. package/lib/cron/item.js.map +1 -1
  414. package/lib/cron/minute.js +1 -1
  415. package/lib/cron/minute.js.map +1 -1
  416. package/lib/cron/month.js +1 -1
  417. package/lib/cron/month.js.map +1 -1
  418. package/lib/cron/period.js.map +1 -1
  419. package/lib/cron/second.js +1 -1
  420. package/lib/cron/second.js.map +1 -1
  421. package/lib/cron/some.js.map +1 -1
  422. package/lib/date-picker/README.mdx +10 -0
  423. package/lib/date-picker/date.js.map +1 -1
  424. package/lib/date-picker/dayjs.js +1 -1
  425. package/lib/date-picker/dayjs.js.map +1 -1
  426. package/lib/date-picker/examples/basic.md +24 -0
  427. package/lib/date-picker/examples/date.md +13 -0
  428. package/lib/date-picker/examples/disbaled.md +13 -0
  429. package/lib/date-picker/examples/header.md +13 -0
  430. package/lib/date-picker/examples/month.md +13 -0
  431. package/lib/date-picker/examples/time.md +15 -0
  432. package/lib/date-picker/examples/today.md +13 -0
  433. package/lib/date-picker/examples/year.md +13 -0
  434. package/lib/date-picker/index.js +1 -1
  435. package/lib/date-picker/index.js.map +1 -1
  436. package/lib/date-picker/month.js.map +1 -1
  437. package/lib/date-picker/panel.js +1 -1
  438. package/lib/date-picker/panel.js.map +1 -1
  439. package/lib/date-picker/time.js.map +1 -1
  440. package/lib/date-picker/year.js.map +1 -1
  441. package/lib/dropdown/README.mdx +10 -0
  442. package/lib/dropdown/examples/arrow.md +59 -0
  443. package/lib/dropdown/examples/basic.md +17 -0
  444. package/lib/dropdown/examples/click.md +45 -0
  445. package/lib/dropdown/examples/context-menu.md +66 -0
  446. package/lib/dropdown/examples/field-names.md +44 -0
  447. package/lib/dropdown/examples/icon.md +30 -0
  448. package/lib/dropdown/examples/multiple.md +45 -0
  449. package/lib/dropdown/examples/no-data.md +16 -0
  450. package/lib/dropdown/examples/placement.md +59 -0
  451. package/lib/dropdown/examples/toggle.md +36 -0
  452. package/lib/dropdown/index.js +1 -1
  453. package/lib/dropdown/index.js.map +1 -1
  454. package/lib/empty/index.js.map +1 -1
  455. package/lib/from-schema/index.js +1 -1
  456. package/lib/from-schema/index.js.map +1 -1
  457. package/lib/highlight-text/README.mdx +10 -0
  458. package/lib/highlight-text/examples/basic.md +19 -0
  459. package/lib/highlight-text/examples/mut.md +47 -0
  460. package/lib/highlight-text/examples/not-hightlight.md +19 -0
  461. package/lib/highlight-text/index.js.map +1 -1
  462. package/lib/img/README.mdx +10 -0
  463. package/lib/img/examples/basic.md +17 -0
  464. package/lib/img/examples/close-mask.md +21 -0
  465. package/lib/img/examples/disabled.md +16 -0
  466. package/lib/img/examples/error.md +13 -0
  467. package/lib/img/examples/esc.md +21 -0
  468. package/lib/img/examples/open-change.md +25 -0
  469. package/lib/img/index.js +1 -1
  470. package/lib/img/index.js.map +1 -1
  471. package/lib/img/lazy.js +1 -1
  472. package/lib/img/lazy.js.map +1 -1
  473. package/lib/index.js +1 -1
  474. package/lib/index.js.map +1 -1
  475. package/lib/input/README.mdx +10 -0
  476. package/lib/input/examples/basic.md +31 -0
  477. package/lib/input/examples/prefix&suffix.md +33 -0
  478. package/lib/input/examples/size.md +21 -0
  479. package/lib/input/examples/status.md +23 -0
  480. package/lib/input/index.js +1 -1
  481. package/lib/input/index.js.map +1 -1
  482. package/lib/input-number/README.mdx +10 -0
  483. package/lib/input-number/examples/basic.md +26 -0
  484. package/lib/input-number/examples/formatter.md +36 -0
  485. package/lib/input-number/examples/max-min.md +13 -0
  486. package/lib/input-number/index.js.map +1 -1
  487. package/lib/katex/README.mdx +42 -0
  488. package/lib/katex/examples/block.md +25 -0
  489. package/lib/katex/examples/inline.md +19 -0
  490. package/lib/md/README.mdx +10 -0
  491. package/lib/md/examples/in-children.md +23 -0
  492. package/lib/md/examples/in-text.md +32 -0
  493. package/lib/md/examples/math.md +36 -0
  494. package/lib/md/index.js +1 -1
  495. package/lib/md/index.js.map +1 -1
  496. package/lib/menu/README.mdx +10 -0
  497. package/lib/menu/examples/basic.md +17 -0
  498. package/lib/menu/examples/field-names.md +42 -0
  499. package/lib/menu/examples/icon.md +125 -0
  500. package/lib/menu/examples/multiple.md +42 -0
  501. package/lib/menu/index.js +1 -1
  502. package/lib/menu/index.js.map +1 -1
  503. package/lib/modal/README.mdx +10 -0
  504. package/lib/modal/examples/basic.md +56 -0
  505. package/lib/modal/examples/close-icon.md +57 -0
  506. package/lib/modal/examples/esc-closable.md +64 -0
  507. package/lib/modal/examples/mask-blur.md +56 -0
  508. package/lib/modal/examples/mask-closable.md +64 -0
  509. package/lib/modal/index.js.map +1 -1
  510. package/lib/notification/README.mdx +11 -0
  511. package/lib/notification/examples/basic.md +35 -0
  512. package/lib/notification/examples/close.md +35 -0
  513. package/lib/notification/examples/type.md +84 -0
  514. package/lib/notification/examples/update.md +52 -0
  515. package/lib/notification/index.js.map +1 -1
  516. package/lib/notification/notification.js +1 -1
  517. package/lib/notification/notification.js.map +1 -1
  518. package/lib/pagination/README.mdx +10 -0
  519. package/lib/pagination/examples/basic.md +13 -0
  520. package/lib/pagination/examples/onchange.md +29 -0
  521. package/lib/pagination/examples/size.md +23 -0
  522. package/lib/pagination/examples/total-text.md +42 -0
  523. package/lib/pagination/index.js +1 -1
  524. package/lib/pagination/index.js.map +1 -1
  525. package/lib/popover/README.mdx +10 -0
  526. package/lib/popover/examples/basic.md +35 -0
  527. package/lib/popover/examples/click.md +15 -0
  528. package/lib/popover/examples/context-menu.md +58 -0
  529. package/lib/popover/examples/controlled.md +47 -0
  530. package/lib/popover/index.js +1 -1
  531. package/lib/popover/index.js.map +1 -1
  532. package/lib/prism/css.js.map +1 -1
  533. package/lib/prism/index.js.map +1 -1
  534. package/lib/provider/README.mdx +10 -0
  535. package/lib/provider/examples/scheme.md +14 -0
  536. package/lib/provider/index.js.map +1 -1
  537. package/lib/radio/README.mdx +10 -0
  538. package/lib/radio/examples/basic.md +19 -0
  539. package/lib/radio/examples/disabled-option.md +19 -0
  540. package/lib/radio/examples/disabled.md +19 -0
  541. package/lib/radio/examples/field-names.md +39 -0
  542. package/lib/radio/examples/layout-vertical.md +19 -0
  543. package/lib/radio/examples/status.md +31 -0
  544. package/lib/radio/index.js +1 -1
  545. package/lib/radio/index.js.map +1 -1
  546. package/lib/segmented/README.mdx +10 -0
  547. package/lib/segmented/examples/basic.md +18 -0
  548. package/lib/segmented/examples/custom-field-names.md +43 -0
  549. package/lib/segmented/examples/disabled-option.md +29 -0
  550. package/lib/segmented/examples/disabled.md +18 -0
  551. package/lib/segmented/examples/icon.md +28 -0
  552. package/lib/segmented/examples/options.md +21 -0
  553. package/lib/segmented/index.js +2 -2
  554. package/lib/segmented/index.js.map +1 -1
  555. package/lib/select/README.mdx +10 -0
  556. package/lib/select/examples/basic.md +44 -0
  557. package/lib/select/examples/disabled-option.md +21 -0
  558. package/lib/select/examples/disabled.md +24 -0
  559. package/lib/select/examples/field-names.md +40 -0
  560. package/lib/select/examples/item-suffix.md +84 -0
  561. package/lib/select/examples/multiple.md +61 -0
  562. package/lib/select/examples/no-data.md +12 -0
  563. package/lib/select/examples/prefix-icon.md +74 -0
  564. package/lib/select/index.js +1 -1
  565. package/lib/select/index.js.map +1 -1
  566. package/lib/skeleton/README.mdx +10 -0
  567. package/lib/skeleton/examples/animation.md +13 -0
  568. package/lib/skeleton/examples/avatar.md +13 -0
  569. package/lib/skeleton/examples/basic.md +12 -0
  570. package/lib/skeleton/examples/rows.md +13 -0
  571. package/lib/skeleton/examples/title.md +12 -0
  572. package/lib/skeleton/index.js.map +1 -1
  573. package/lib/spin/README.mdx +10 -0
  574. package/lib/spin/examples/basic.md +67 -0
  575. package/lib/spin/index.js +3 -3
  576. package/lib/spin/index.js.map +1 -1
  577. package/lib/switch/README.mdx +10 -0
  578. package/lib/switch/examples/basic.md +24 -0
  579. package/lib/switch/examples/checked-text.md +17 -0
  580. package/lib/switch/examples/disabled.md +15 -0
  581. package/lib/switch/examples/loading.md +17 -0
  582. package/lib/switch/index.js +1 -1
  583. package/lib/switch/index.js.map +1 -1
  584. package/lib/table/README.mdx +10 -0
  585. package/lib/table/examples/basic.md +29 -0
  586. package/lib/table/examples/key.md +29 -0
  587. package/lib/table/examples/order.md +29 -0
  588. package/lib/table/examples/pagination.md +67 -0
  589. package/lib/table/examples/render.md +92 -0
  590. package/lib/table/examples/size.md +52 -0
  591. package/lib/table/examples/summary.md +40 -0
  592. package/lib/table/index.js +1 -1
  593. package/lib/table/index.js.map +1 -1
  594. package/lib/tabs/README.mdx +10 -0
  595. package/lib/tabs/examples/add-remove.md +115 -0
  596. package/lib/tabs/examples/animated.md +33 -0
  597. package/lib/tabs/examples/basic.md +32 -0
  598. package/lib/tabs/examples/card.md +33 -0
  599. package/lib/tabs/examples/center.md +33 -0
  600. package/lib/tabs/examples/disabled-tab.md +34 -0
  601. package/lib/tabs/examples/disabled.md +33 -0
  602. package/lib/tabs/examples/extra.md +65 -0
  603. package/lib/tabs/index.js +2 -2
  604. package/lib/tabs/index.js.map +1 -1
  605. package/lib/tag/README.mdx +10 -0
  606. package/lib/tag/examples/basic.md +28 -0
  607. package/lib/tag/examples/bordered.md +19 -0
  608. package/lib/tag/examples/color.md +25 -0
  609. package/lib/tag/examples/icon.md +21 -0
  610. package/lib/tag/examples/type.md +19 -0
  611. package/lib/tag/index.js +3 -3
  612. package/lib/tag/index.js.map +1 -1
  613. package/lib/theme/README.mdx +10 -0
  614. package/lib/theme/examples/colors.md +123 -0
  615. package/lib/theme/examples/theme.md +19 -0
  616. package/lib/theme/index.js +1 -1
  617. package/lib/theme/index.js.map +1 -1
  618. package/lib/tree/README.mdx +10 -0
  619. package/lib/tree/examples/basic.md +108 -0
  620. package/lib/tree/examples/custom-render.md +115 -0
  621. package/lib/tree/examples/direction.md +100 -0
  622. package/lib/tree/examples/field-names.md +114 -0
  623. package/lib/tree/examples/multiple.md +117 -0
  624. package/lib/tree/examples/readonly.md +90 -0
  625. package/lib/tree/examples/render-tree-string1.md +70 -0
  626. package/lib/tree/examples/render-tree-string2.md +52 -0
  627. package/lib/tree/examples/schema.md +130 -0
  628. package/lib/tree/examples/size.md +125 -0
  629. package/lib/tree/examples/toggle.md +71 -0
  630. package/lib/tree/index.js +1 -1
  631. package/lib/tree/index.js.map +1 -1
  632. package/lib/tree/register.js.map +1 -1
  633. package/lib/typography/README.mdx +10 -0
  634. package/lib/typography/examples/basic.md +27 -0
  635. package/lib/typography/examples/tag.md +25 -0
  636. package/lib/typography/examples/truncated.md +17 -0
  637. package/lib/typography/index.js.map +1 -1
  638. package/package.json +18 -18
  639. package/types/avatar/group.d.ts +1 -1
  640. package/types/back-top/index.d.ts +1 -1
  641. package/types/capture-screen/index.d.ts +1 -1
  642. package/types/color-palette/index.d.ts +1 -1
  643. package/types/color-picker/index.d.ts +1 -1
  644. package/types/cron/begin-interval.d.ts +3 -3
  645. package/types/cron/index.d.ts +5 -5
  646. package/types/cron/item.d.ts +4 -4
  647. package/types/cron/period.d.ts +3 -3
  648. package/types/cron/some.d.ts +3 -3
  649. package/types/date-picker/date.d.ts +2 -2
  650. package/types/date-picker/index.d.ts +2 -2
  651. package/types/date-picker/month.d.ts +2 -2
  652. package/types/date-picker/panel.d.ts +3 -3
  653. package/types/date-picker/time.d.ts +2 -2
  654. package/types/date-picker/year.d.ts +2 -2
  655. package/types/dropdown/index.d.ts +1 -1
  656. package/types/empty/index.d.ts +1 -1
  657. package/types/from-schema/index.d.ts +4 -4
  658. package/types/index.d.ts +12 -12
  659. package/types/md/index.d.ts +1 -1
  660. package/types/modal/index.d.ts +1 -1
  661. package/types/notification/index.d.ts +1 -1
  662. package/types/pagination/index.d.ts +1 -1
  663. package/types/provider/index.d.ts +1 -1
  664. package/types/segmented/index.d.ts +1 -1
  665. package/types/select/index.d.ts +1 -1
  666. package/types/table/index.d.ts +1 -1
  667. package/types/tabs/index.d.ts +1 -1
  668. package/types/tree/index.d.ts +1 -1
  669. package/umd/assets/svg/favicon.svg +1 -0
  670. package/umd/index.js +2 -2
  671. package/umd/js/46e8f96158e59015.js +1 -0
@@ -0,0 +1,92 @@
1
+ ---
2
+ title: 自定义渲染单元格
3
+ description: 使用 `render` 函数自定义渲染单元格
4
+ ---
5
+
6
+ ```html
7
+ <n-table title="表格标题"></n-table>
8
+ <script>
9
+ const el = container.querySelector('n-table');
10
+
11
+ el.columns = {
12
+ name: '用户名',
13
+ gender: {
14
+ label: '性别',
15
+ render: function (val) {
16
+ return ['女', '男'][val] || '未知';
17
+ },
18
+ },
19
+ alive: {
20
+ label: '状态',
21
+ render: function (val) {
22
+ const tag = document.createElement('n-tag');
23
+
24
+ tag.type = val ? 'success' : 'error';
25
+ tag.textContent = val ? '在线' : '离线';
26
+ return tag;
27
+ },
28
+ },
29
+ actions: {
30
+ label: '操作',
31
+ render: function (_, record) {
32
+ const btn = document.createElement('n-button');
33
+
34
+ btn.link = true;
35
+ btn.type = 'primary';
36
+ btn.textContent = '编辑';
37
+ btn.onclick = function () {
38
+ console.log(record);
39
+ };
40
+ return btn;
41
+ },
42
+ },
43
+ };
44
+ el.data = [
45
+ { name: 'user 1', gender: 1, alive: false },
46
+ { name: 'user 2', gender: 0, alive: true },
47
+ { name: 'user 3', gender: null, alive: false },
48
+ ];
49
+ </script>
50
+ ```
51
+
52
+ ```jsx
53
+ <n-table
54
+ title="表格标题"
55
+ columns={{
56
+ name: '用户名',
57
+ gender: {
58
+ label: '性别',
59
+ render: function (val) {
60
+ return ['女', '男'][val] || '未知';
61
+ },
62
+ },
63
+ alive: {
64
+ label: '状态',
65
+ render: function (val) {
66
+ return <n-tag type={val ? 'success' : 'error'}>{val ? '在线' : '离线'}</n-tag>;
67
+ },
68
+ },
69
+ actions: {
70
+ label: '操作',
71
+ render: function (_, record) {
72
+ return (
73
+ <n-button
74
+ type="primary"
75
+ link={true}
76
+ onClick={function () {
77
+ console.log(record);
78
+ }}
79
+ >
80
+ 编辑
81
+ </n-button>
82
+ );
83
+ },
84
+ },
85
+ }}
86
+ data={[
87
+ { name: 'user 1', gender: 1, alive: false },
88
+ { name: 'user 2', gender: 0, alive: true },
89
+ { name: 'user 3', gender: null, alive: false },
90
+ ]}
91
+ />
92
+ ```
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: 不同的尺寸
3
+ description: Table 内置有大、中、小三种尺寸。通过 `size` 进行设置; 默认为 'normal'。
4
+ order: 7
5
+ ---
6
+
7
+ ```html
8
+ <n-table>
9
+ <n-segmented slot="title" default-value="normal"></n-segmented>
10
+ </n-table>
11
+ <script>
12
+ const el = container.querySelector('n-table');
13
+ const segmented = el.querySelector('[slot="title"]');
14
+
15
+ segmented.options = [
16
+ { label: '小', value: 'small' },
17
+ { label: '默认:中', value: 'normal' },
18
+ { label: '大', value: 'large' },
19
+ ];
20
+ segmented.onchange = function (e) {
21
+ el.size = e.detail;
22
+ };
23
+ el.columns = { name: '用户名', age: '年龄' };
24
+ el.data = [
25
+ { name: 'user 1', age: 18 },
26
+ { name: 'user 2', age: 19 },
27
+ ];
28
+ </script>
29
+ ```
30
+
31
+ ```jsx
32
+ <n-table
33
+ columns={{ name: '用户名', age: '年龄' }}
34
+ data={[
35
+ { name: 'user 1', age: 18 },
36
+ { name: 'user 2', age: 19 },
37
+ ]}
38
+ >
39
+ <n-segmented
40
+ slot="title"
41
+ default-value="normal"
42
+ options={[
43
+ { label: '小', value: 'small' },
44
+ { label: '默认:中', value: 'normal' },
45
+ { label: '大', value: 'large' },
46
+ ]}
47
+ onChange={function (e) {
48
+ e.target.parentElement.size = e.detail;
49
+ }}
50
+ />
51
+ </n-table>
52
+ ```
@@ -0,0 +1,40 @@
1
+ ---
2
+ title: 求和
3
+ description: 通过 `summary` 设置需要求和的单元格
4
+ ---
5
+
6
+ ```html
7
+ <n-table align="center"></n-table>
8
+ <script>
9
+ const el = container.querySelector('n-table');
10
+
11
+ el.columns = {
12
+ order: { type: 'order', width: 50 },
13
+ name: '用户名',
14
+ age: '年龄',
15
+ };
16
+ el.summary = ['age'];
17
+ el.data = [
18
+ { name: 'user 1', age: 18 },
19
+ { name: 'user 2', age: 19 },
20
+ { name: 'user 3', age: 3 },
21
+ ];
22
+ </script>
23
+ ```
24
+
25
+ ```jsx
26
+ <n-table
27
+ align="center"
28
+ columns={{
29
+ order: { type: 'order', width: 50 },
30
+ name: '用户名',
31
+ age: '年龄',
32
+ }}
33
+ summary={['age']}
34
+ data={[
35
+ { name: 'user 1', age: 18 },
36
+ { name: 'user 2', age: 19 },
37
+ { name: 'user 3', age: 3 },
38
+ ]}
39
+ />
40
+ ```
@@ -1,2 +1,2 @@
1
- "use strict";var e,t,r,n;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return z}});const a=require("solid-js/web"),l=require("solid-js"),i=p(require("@moneko/common/lib/isObject")),o=p(require("@moneko/common/lib/isString")),s=p(require("@moneko/common/lib/isUndefined")),c=require("@moneko/css"),u=require("solid-element"),d=require("./styles");require("../pagination");const m=p(require("../theme"));function p(e){return e&&e.__esModule?e:{default:e}}const g=(0,a.template)("<span>"),h=(0,a.template)("<style> "),f=(0,a.template)("<style>"),v=(0,a.template)('<caption class="table-title"><slot name="title">'),b=(0,a.template)('<th class="table-cell">'),y=(0,a.template)('<tfoot class="table-foot"><tr>'),w=(0,a.template)("<table><thead><tr></tr></thead><tbody>"),_=(0,a.template)('<n-pagination class="table-pagination">',!0,!1),C=(0,a.template)("<th>"),S=(0,a.template)("<tr>"),$=(0,a.template)('<span class="empty-val">'),x=(0,a.template)("<td>"),P={page:1,pageSize:20,total:0,totalText:void 0,size:void 0};function q(e){let{baseStyle:t}=m.default,[r,n]=(0,l.splitProps)(e,["class","css","loading","summary","summaryText","columns","data","emptyVal","title","align","char","charoff","valign","pagination","size"]),[u]=(0,l.splitProps)(r,["align","char","charoff","valign"]),[p,q]=(0,l.createSignal)(!1),[z,j]=(0,l.createSignal)(1),[k,O]=(0,l.createSignal)(20),[T,M]=(0,l.createSignal)(0);function E(e){return{width:e.width,align:e.align,valign:e.valign,char:e.char,charoff:e.charoff,colspan:e.colspan,rowspan:e.rowspan}}(0,l.createEffect)(()=>{(0,l.batch)(()=>{r.pagination&&(j(r.pagination.page||1),O(r.pagination.pageSize||20),M(r.pagination.total||0))})});let F=(0,l.createMemo)(()=>Object.assign(P,r.pagination)),A=(0,l.createMemo)(()=>{let e=[],t=!1;for(let n in r.columns)if(Object.prototype.hasOwnProperty.call(r.columns,n)){let l=r.columns[n],o=Object.assign({key:n,originKey:n,label:l.toString()},(0,i.default)(l)&&{label:"order"===l.type&&"序号"||n,...l});"order"===o.type&&(t=!0,o.render=function(e,t,r){return(()=>{let e=g();return(0,a.insert)(e,()=>(z()-1)*k()+r+1),e})()}),e.push(o)}return(0,l.untrack)(p)!==t&&q(t),e});function V(e){r.pagination&&(j(e.detail[0]),O(e.detail[1]),r.pagination.onChange?.(...e.detail))}return[(()=>{let e=h(),r=e.firstChild;return(0,a.effect)(()=>r.data=t()),e})(),(()=>{let e=f();return e.textContent=d.styles,e})(),(0,a.createComponent)(l.Show,{get when(){return r.css},get children(){let e=h(),t=e.firstChild;return(0,a.effect)(()=>t.data=(0,c.css)(r.css)),e}}),(()=>{let e=w(),t=e.firstChild,i=t.firstChild,d=t.nextSibling;return(0,a.spread)(e,(0,a.mergeProps)(n,{get class(){return(0,c.cx)("table",r.size)},part:"table"}),!1,!0),(0,a.insert)(e,(0,a.createComponent)(l.Show,{get when(){return r.title},get children(){let e=v(),t=e.firstChild;return t._$owner=(0,a.getOwner)(),(0,a.insert)(t,()=>r.title),e}}),t),(0,a.spread)(t,(0,a.mergeProps)(u,{class:"table-head"}),!1,!0),(0,a.insert)(i,(0,a.createComponent)(l.For,{get each(){return A()},children:e=>{let t=E(e);return(()=>{let r=C();return(0,a.spread)(r,(0,a.mergeProps)(t,{class:"table-cell"}),!1,!0),(0,a.insert)(r,()=>e.label),r})()}})),(0,a.spread)(d,(0,a.mergeProps)(u,{class:"table-body"}),!1,!0),(0,a.insert)(d,(0,a.createComponent)(l.For,{get each(){return r.data},children:(e,t)=>(()=>{let n=S();return(0,a.insert)(n,(0,a.createComponent)(l.For,{get each(){return A()},children:n=>{let i=E(n),o=(0,l.createMemo)(()=>{if("order"===n.type){let e=F();return(e.page-1)*e.pageSize+t()+1}let l=e[n.key];return(0,s.default)(l)||null===l?(()=>{let e=$();return(0,a.insert)(e,()=>r.emptyVal),e})():l});return(()=>{let r=x();return(0,a.spread)(r,(0,a.mergeProps)(i,{class:"table-cell"}),!1,!0),(0,a.insert)(r,(0,a.createComponent)(l.Show,{get when(){return n.render},get fallback(){return(0,a.createComponent)(o,{})},get children(){return n.render?.(e[n.key],e,t())}})),r})()}})),n})()})),(0,a.insert)(e,(0,a.createComponent)(l.Show,{get when(){return r.summary?.length},get children(){let e=y(),t=e.firstChild;return(0,a.spread)(e,u,!1,!0),(0,a.insert)(t,(0,a.createComponent)(l.Show,{get when(){return p()},get children(){let e=b();return(0,a.spread)(e,(0,a.mergeProps)(()=>E(A()[0])),!1,!0),(0,a.insert)(e,()=>r.summaryText),e}}),null),(0,a.insert)(t,(0,a.createComponent)(l.For,{get each(){return A().filter(e=>!e.type||!["order"].includes(e.type))},children:e=>{let t=E(e),n=(0,l.createMemo)(()=>{if(r.data?.length&&r.summary?.includes(e.originKey)){var t,n;return t=r.data,n=e.key,t.reduce(function(e,t){let r=t[n];return(0,o.default)(r)||(0,s.default)(r)||null===r?e:e+t[n]},0)}return null});return(()=>{let e=x();return(0,a.spread)(e,(0,a.mergeProps)(t,{class:"table-cell"}),!1,!0),(0,a.insert)(e,n),e})()}}),null),e}}),null),e})(),(0,a.createComponent)(l.Show,{get when(){return r.pagination},get children(){let e=_();return(0,a.addEventListener)(e,"change",V),e._$owner=(0,a.getOwner)(),(0,a.effect)(t=>{let n=z(),a=k(),l=T(),i=F().totalText,o=F().size||r.size;return n!==t._v$&&(e.page=t._v$=n),a!==t._v$2&&(e.pageSize=t._v$2=a),l!==t._v$3&&(e.total=t._v$3=l),i!==t._v$4&&(e.totalText=t._v$4=i),o!==t._v$5&&(e.size=t._v$5=o),t},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0}),e}})]}(r=e||(e={})).left="left",r.right="right",r.center="center",r.justify="justify",r.char="char",(n=t||(t={})).top="top",n.middle="middle",n.bottom="bottom",n.baseline="baseline",(0,u.customElement)("n-table",{class:void 0,css:void 0,loading:!1,columns:{},data:[],emptyVal:"-",title:void 0,char:void 0,charoff:void 0,align:"left",valign:"middle",summary:void 0,summaryText:"合计",pagination:void 0,size:void 0},(e,t)=>{let r=t.element,n=(0,l.mergeProps)({css:r.css,columns:r.columns,data:r.data,pagination:r.pagination,summary:r.summary,summaryText:r.summaryText},e,{title:!!r.querySelector("[slot='title']")||e.title});return(0,l.createEffect)(()=>{r.removeAttribute("css"),r.removeAttribute("title"),r.removeAttribute("data")}),(0,a.createComponent)(q,n)});const z=q;
1
+ "use strict";var e,t,r,n;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return j}});const a=require("solid-js/web"),l=require("solid-js"),i=g(require("@moneko/common/lib/isFunction")),o=g(require("@moneko/common/lib/isObject")),s=g(require("@moneko/common/lib/isString")),c=g(require("@moneko/common/lib/isUndefined")),u=require("@moneko/css"),d=require("solid-element"),m=g(require("../theme")),p=require("./styles");function g(e){return e&&e.__esModule?e:{default:e}}require("../pagination");const h=(0,a.template)("<span>"),f=(0,a.template)("<style> "),v=(0,a.template)("<style>"),b=(0,a.template)('<caption class="table-title"><slot name="title">'),y=(0,a.template)('<th class="table-cell">'),w=(0,a.template)('<tfoot class="table-foot"><tr>'),_=(0,a.template)("<table><thead><tr></tr></thead><tbody>"),C=(0,a.template)('<n-pagination class="table-pagination">',!0,!1),S=(0,a.template)("<th>"),$=(0,a.template)("<tr>"),x=(0,a.template)('<span class="empty-val">'),P=(0,a.template)("<td>"),q={page:1,pageSize:20,total:0,totalText:void 0,size:void 0};function z(e){let{baseStyle:t}=m.default,[r,n]=(0,l.splitProps)(e,["class","css","loading","summary","summaryText","columns","data","emptyVal","title","align","char","charoff","valign","pagination","size"]),[d]=(0,l.splitProps)(r,["align","char","charoff","valign"]),[g,z]=(0,l.createSignal)(!1),[j,k]=(0,l.createSignal)(1),[O,T]=(0,l.createSignal)(20),[M,F]=(0,l.createSignal)(0);function E(e){return{width:e.width,align:e.align,valign:e.valign,char:e.char,charoff:e.charoff,colspan:e.colspan,rowspan:e.rowspan}}(0,l.createEffect)(()=>{(0,l.batch)(()=>{r.pagination&&(k(r.pagination.page||1),T(r.pagination.pageSize||20),F(r.pagination.total||0))})});let A=(0,l.createMemo)(()=>Object.assign(q,r.pagination)),V=(0,l.createMemo)(()=>{let e=[],t=!1;for(let n in r.columns)if(Object.prototype.hasOwnProperty.call(r.columns,n)){let l=r.columns[n],i=Object.assign({key:n,originKey:n,label:l.toString()},(0,o.default)(l)&&{label:"order"===l.type&&"序号"||n,...l});"order"===i.type&&(t=!0,i.render=function(e,t,r){return(()=>{let e=h();return(0,a.insert)(e,()=>(j()-1)*O()+r+1),e})()}),e.push(i)}return(0,l.untrack)(g)!==t&&z(t),e});function K(e){r.pagination&&(k(e.detail[0]),T(e.detail[1]),r.pagination.onChange?.(...e.detail))}return[(()=>{let e=f(),r=e.firstChild;return(0,a.effect)(()=>r.data=t()),e})(),(()=>{let e=v();return e.textContent=p.styles,e})(),(0,a.createComponent)(l.Show,{get when(){return r.css},get children(){let e=f(),t=e.firstChild;return(0,a.effect)(()=>t.data=(0,u.css)(r.css)),e}}),(()=>{let e=_(),t=e.firstChild,o=t.firstChild,m=t.nextSibling;return(0,a.spread)(e,(0,a.mergeProps)(n,{get class(){return(0,u.cx)("table",r.size)},part:"table"}),!1,!0),(0,a.insert)(e,(0,a.createComponent)(l.Show,{get when(){return r.title},get children(){let e=b(),t=e.firstChild;return t._$owner=(0,a.getOwner)(),(0,a.insert)(t,()=>r.title),e}}),t),(0,a.spread)(t,(0,a.mergeProps)(d,{class:"table-head"}),!1,!0),(0,a.insert)(o,(0,a.createComponent)(l.For,{get each(){return V()},children:e=>{let t=E(e);return(()=>{let r=S();return(0,a.spread)(r,(0,a.mergeProps)(t,{class:"table-cell"}),!1,!0),(0,a.insert)(r,()=>e.label),r})()}})),(0,a.spread)(m,(0,a.mergeProps)(d,{class:"table-body"}),!1,!0),(0,a.insert)(m,(0,a.createComponent)(l.For,{get each(){return r.data},children:(e,t)=>(()=>{let n=$();return(0,a.insert)(n,(0,a.createComponent)(l.For,{get each(){return V()},children:n=>{let o=E(n),s=(0,l.createMemo)(()=>{if("order"===n.type){let e=A();return(e.page-1)*e.pageSize+t()+1}let l=e[n.key];return(0,c.default)(l)||null===l?(()=>{let e=x();return(0,a.insert)(e,()=>r.emptyVal),e})():l});return(()=>{let r=P();return(0,a.spread)(r,(0,a.mergeProps)(o,{class:"table-cell"}),!1,!0),(0,a.insert)(r,(0,a.createComponent)(l.Show,{get when(){return(0,i.default)(n.render)},get fallback(){return(0,a.createComponent)(s,{})},get children(){return n.render(e[n.key],e,t())}})),r})()}})),n})()})),(0,a.insert)(e,(0,a.createComponent)(l.Show,{get when(){return r.summary?.length},get children(){let e=w(),t=e.firstChild;return(0,a.spread)(e,d,!1,!0),(0,a.insert)(t,(0,a.createComponent)(l.Show,{get when(){return g()},get children(){let e=y();return(0,a.spread)(e,(0,a.mergeProps)(()=>E(V()[0])),!1,!0),(0,a.insert)(e,()=>r.summaryText),e}}),null),(0,a.insert)(t,(0,a.createComponent)(l.For,{get each(){return V().filter(e=>!e.type||!["order"].includes(e.type))},children:e=>{let t=E(e),n=(0,l.createMemo)(()=>{if(r.data?.length&&r.summary?.includes(e.originKey)){var t,n;return t=r.data,n=e.key,t.reduce(function(e,t){let r=t[n];return(0,s.default)(r)||(0,c.default)(r)||null===r?e:e+t[n]},0)}return null});return(()=>{let e=P();return(0,a.spread)(e,(0,a.mergeProps)(t,{class:"table-cell"}),!1,!0),(0,a.insert)(e,n),e})()}}),null),e}}),null),e})(),(0,a.createComponent)(l.Show,{get when(){return r.pagination},get children(){let e=C();return(0,a.addEventListener)(e,"change",K),e._$owner=(0,a.getOwner)(),(0,a.effect)(t=>{let n=j(),a=O(),l=M(),i=A().totalText,o=A().size||r.size;return n!==t._v$&&(e.page=t._v$=n),a!==t._v$2&&(e.pageSize=t._v$2=a),l!==t._v$3&&(e.total=t._v$3=l),i!==t._v$4&&(e.totalText=t._v$4=i),o!==t._v$5&&(e.size=t._v$5=o),t},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0}),e}})]}(r=e||(e={})).left="left",r.right="right",r.center="center",r.justify="justify",r.char="char",(n=t||(t={})).top="top",n.middle="middle",n.bottom="bottom",n.baseline="baseline",(0,d.customElement)("n-table",{class:void 0,css:void 0,loading:!1,columns:{},data:[],emptyVal:"-",title:void 0,char:void 0,charoff:void 0,align:"left",valign:"middle",summary:void 0,summaryText:"合计",pagination:void 0,size:void 0},(e,t)=>{let r=t.element,n=(0,l.mergeProps)({css:r.css,columns:r.columns,data:r.data,pagination:r.pagination,summary:r.summary,summaryText:r.summaryText},e,{title:!!r.querySelector("[slot='title']")||e.title});return(0,l.createEffect)(()=>{r.removeAttribute("css"),r.removeAttribute("title"),r.removeAttribute("data")}),(0,a.createComponent)(z,n)});const j=z;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/table/index.tsx"],"sourcesContent":["import {\n For,\n Show,\n batch,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isObject, isString, isUndefined } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { styles } from './styles';\nimport '../pagination';\nimport theme from '../theme';\nimport type { BasicConfig, CustomElement, PaginationProps } from '..';\n\ntype Col = Column<Record<string, Any>>;\nconst defaultPagination = { page: 1, pageSize: 20, total: 0, totalText: void 0, size: void 0 };\n\nfunction Table(_: TableProps) {\n const { baseStyle } = theme;\n const [local, other] = splitProps(_, [\n 'class',\n 'css',\n 'loading',\n 'summary',\n 'summaryText',\n 'columns',\n 'data',\n 'emptyVal',\n 'title',\n 'align',\n 'char',\n 'charoff',\n 'valign',\n 'pagination',\n 'size',\n ]);\n const [layout] = splitProps(local, ['align', 'char', 'charoff', 'valign']);\n const [hasOrder, setHasOrder] = createSignal(false);\n const [page, setPage] = createSignal(1);\n const [pageSize, setPageSize] = createSignal(20);\n const [total, setTotal] = createSignal(0);\n\n createEffect(() => {\n batch(() => {\n if (local.pagination) {\n setPage(local.pagination.page || 1);\n setPageSize(local.pagination.pageSize || 20);\n setTotal(local.pagination.total || 0);\n }\n });\n });\n\n function getLayout(col: Col) {\n return {\n width: col.width,\n align: col.align,\n valign: col.valign,\n char: col.char,\n charoff: col.charoff,\n colspan: col.colspan,\n rowspan: col.rowspan,\n };\n }\n function sum(arr: Required<TableProps>['data'], key: string) {\n return arr.reduce(function (prev, curr) {\n const next = curr[key];\n\n if (isString(next) || isUndefined(next) || next === null) {\n return prev;\n }\n return prev + curr[key];\n }, 0);\n }\n const pagination = createMemo(() => Object.assign(defaultPagination, local.pagination));\n const columns = createMemo(() => {\n const cols: Required<Col>[] = [];\n let _hasOrder = false;\n\n for (const key in local.columns) {\n if (Object.prototype.hasOwnProperty.call(local.columns, key)) {\n const col = local.columns[key];\n const _col: Col = Object.assign(\n { key, originKey: key, label: col.toString() },\n isObject(col) && {\n label: (col.type === 'order' && '序号') || key,\n ...col,\n },\n );\n\n if (_col.type === 'order') {\n _hasOrder = true;\n _col.render = function (_val: unknown, _row: unknown, i: number) {\n return <span>{(page() - 1) * pageSize() + i + 1}</span>;\n };\n }\n cols.push(_col as Required<Col>);\n }\n }\n if (untrack(hasOrder) !== _hasOrder) {\n setHasOrder(_hasOrder);\n }\n return cols;\n });\n\n function handlePageChange(e: CustomEvent<[page: number, pageSize: number]>) {\n if (local.pagination) {\n setPage(e.detail[0]);\n setPageSize(e.detail[1]);\n local.pagination.onChange?.(...e.detail);\n }\n }\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={styles} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <table {...other} class={cx('table', local.size)} part=\"table\">\n <Show when={local.title}>\n <caption class=\"table-title\">\n <slot name=\"title\">{local.title}</slot>\n </caption>\n </Show>\n <thead {...layout} class=\"table-head\">\n <tr>\n <For each={columns()}>\n {(col) => {\n const _layout = getLayout(col);\n\n return (\n <th {..._layout} class=\"table-cell\">\n {col.label}\n </th>\n );\n }}\n </For>\n </tr>\n </thead>\n <tbody {...layout} class=\"table-body\">\n <For each={local.data}>\n {(row, i) => {\n return (\n <tr>\n <For each={columns()}>\n {(col) => {\n const _layout = getLayout(col);\n const Row = createMemo(() => {\n if (col.type === 'order') {\n const _pagination = pagination();\n\n return (_pagination.page - 1) * _pagination.pageSize + i() + 1;\n }\n const val = row[col.key];\n const isEmpty = isUndefined(val) || val === null;\n\n if (isEmpty) {\n return <span class=\"empty-val\">{local.emptyVal}</span>;\n }\n return val;\n });\n\n return (\n <td {..._layout} class=\"table-cell\">\n <Show when={col.render} fallback={<Row />}>\n {col.render?.(row[col.key], row, i())}\n </Show>\n </td>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n </tbody>\n <Show when={local.summary?.length}>\n <tfoot class=\"table-foot\" {...layout}>\n <tr>\n <Show when={hasOrder()}>\n <th class=\"table-cell\" {...getLayout(columns()[0])}>\n {local.summaryText}\n </th>\n </Show>\n <For each={columns().filter((c) => !c.type || !['order'].includes(c.type))}>\n {(col) => {\n const _layout = getLayout(col);\n const val = createMemo(() => {\n if (local.data?.length && local.summary?.includes(col.originKey)) {\n return sum(local.data, col.key);\n }\n return null;\n });\n\n return (\n <td {..._layout} class=\"table-cell\">\n {val()}\n </td>\n );\n }}\n </For>\n </tr>\n </tfoot>\n </Show>\n </table>\n <Show when={local.pagination}>\n <n-pagination\n class=\"table-pagination\"\n page={page()}\n page-size={pageSize()}\n total={total()}\n total-text={pagination().totalText}\n size={pagination().size || local.size}\n onChange={handlePageChange}\n />\n </Show>\n </>\n );\n}\n\n/** API\n * @since 2.1.0\n */\nexport interface TableProps<T extends Record<string, Any> = Record<string, Any>> extends Cell {\n /** 自定义类名 */\n class?: string;\n /** 自定义类名 */\n css?: string;\n /** 加载中 */\n loading?: boolean;\n /** 单元格值为 null 或 undefined 时的回填\n * @default '-'\n */\n emptyVal?: string;\n /** 栏配置 */\n columns?: Record<string, Column<T> | string>;\n /** 数据源 */\n data?: T[];\n /** 表格标题, 支持直接赋值给 'title' 属性, 或者通过[slot=\"title\"]插槽 */\n title?: JSX.Element | 'slot';\n /** 汇总行 */\n summary?: (keyof T)[];\n /** 汇总行描述\n * @default '合计'\n */\n summaryText?: JSX.Element;\n /** 分页器\n * @default false\n */\n pagination?: PaginationProps | false;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n children?: JSX.Element;\n}\n/** 栏 */\ninterface Column<T extends Record<string, Any>> extends Cell {\n /** 自定义取值的 key */\n key?: keyof T;\n /** 原始 key */\n originKey?: keyof T;\n /** 单元格表头标题 */\n label?: JSX.Element;\n /** 自定义渲染单元格 */\n render?(item: T[keyof T], row: T, index: number): JSX.Element;\n /** 单元格横跨的列数 */\n colspan?: number;\n /** 单元格横跨的行数 */\n rowspan?: number;\n /** 设置为 'order' 时则当作序号行 */\n type?: 'order';\n /** 单元格宽 */\n width?: number;\n}\n\n/** 单元格布局排列 */\ninterface Cell {\n /** 单元格内容的水平对齐方式\n * @default 'left'\n */\n align?: keyof typeof Align;\n /** 规定根据哪个字符来进行文本对齐 */\n char?: string;\n /** 规定第一个对齐字符的偏移量 */\n charoff?: number;\n /** 单元格内容的垂直对齐方式\n * @default 'middle'\n */\n valign?: keyof typeof Valign;\n}\n/** 水平对齐方式 */\nenum Align {\n /** 左对齐 */\n left = 'left',\n /** 右对齐 */\n right = 'right',\n /** 居中对齐 */\n center = 'center',\n /** 对行进行伸展,这样每行都可以有相等的长度 */\n justify = 'justify',\n /** 将内容对准指定字符 */\n char = 'char',\n}\n/** 垂直对齐方式 */\nenum Valign {\n /** 上对齐 */\n top = 'top',\n /** 居中对齐 */\n middle = 'middle',\n /** 下对齐 */\n bottom = 'bottom',\n /** 与基线对齐 */\n baseline = 'baseline',\n}\nexport type TableElement = CustomElement<TableProps>;\n\ncustomElement<TableProps>(\n 'n-table',\n {\n class: void 0,\n css: void 0,\n loading: false,\n columns: {},\n data: [],\n emptyVal: '-',\n title: void 0,\n char: void 0,\n charoff: void 0,\n align: Align.left,\n valign: Valign.middle,\n summary: void 0,\n summaryText: '合计',\n pagination: void 0,\n size: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n columns: el.columns,\n data: el.data,\n pagination: el.pagination,\n summary: el.summary,\n summaryText: el.summaryText,\n },\n _,\n {\n title: !!el.querySelector(\"[slot='title']\") || _.title,\n },\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.removeAttribute('title');\n el.removeAttribute('data');\n });\n return <Table {...props} />;\n },\n);\nexport default Table;\n"],"names":["Align","Valign","defaultPagination","page","pageSize","total","totalText","size","Table","_","baseStyle","theme","local","other","splitProps","layout","hasOrder","setHasOrder","createSignal","setPage","setPageSize","setTotal","getLayout","col","width","align","valign","char","charoff","colspan","rowspan","createEffect","batch","pagination","createMemo","Object","assign","columns","cols","_hasOrder","key","prototype","hasOwnProperty","call","_col","originKey","label","toString","isObject","type","render","_val","_row","i","push","untrack","handlePageChange","e","detail","onChange","styles","Show","css","cx","title","For","_layout","data","row","Row","_pagination","val","isUndefined","emptyVal","summary","length","summaryText","filter","c","includes","arr","reduce","prev","curr","next","isString","customElement","class","loading","opt","el","element","props","mergeProps","querySelector","removeAttribute"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/table/index.tsx"],"sourcesContent":["import {\n batch,\n createEffect,\n createMemo,\n createSignal,\n For,\n mergeProps,\n Show,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isFunction, isObject, isString, isUndefined } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { BasicConfig, CustomElement, PaginationProps } from '..';\nimport theme from '../theme';\n\nimport { styles } from './styles';\n\nimport '../pagination';\n\ntype Col = Column<Record<string, Any>>;\nconst defaultPagination = { page: 1, pageSize: 20, total: 0, totalText: void 0, size: void 0 };\n\nfunction Table(_: TableProps) {\n const { baseStyle } = theme;\n const [local, other] = splitProps(_, [\n 'class',\n 'css',\n 'loading',\n 'summary',\n 'summaryText',\n 'columns',\n 'data',\n 'emptyVal',\n 'title',\n 'align',\n 'char',\n 'charoff',\n 'valign',\n 'pagination',\n 'size',\n ]);\n const [layout] = splitProps(local, ['align', 'char', 'charoff', 'valign']);\n const [hasOrder, setHasOrder] = createSignal(false);\n const [page, setPage] = createSignal(1);\n const [pageSize, setPageSize] = createSignal(20);\n const [total, setTotal] = createSignal(0);\n\n createEffect(() => {\n batch(() => {\n if (local.pagination) {\n setPage(local.pagination.page || 1);\n setPageSize(local.pagination.pageSize || 20);\n setTotal(local.pagination.total || 0);\n }\n });\n });\n\n function getLayout(col: Col) {\n return {\n width: col.width,\n align: col.align,\n valign: col.valign,\n char: col.char,\n charoff: col.charoff,\n colspan: col.colspan,\n rowspan: col.rowspan,\n };\n }\n function sum(arr: Required<TableProps>['data'], key: string) {\n return arr.reduce(function (prev, curr) {\n const next = curr[key];\n\n if (isString(next) || isUndefined(next) || next === null) {\n return prev;\n }\n return prev + curr[key];\n }, 0);\n }\n const pagination = createMemo(() => Object.assign(defaultPagination, local.pagination));\n const columns = createMemo(() => {\n const cols: Required<Col>[] = [];\n let _hasOrder = false;\n\n for (const key in local.columns) {\n if (Object.prototype.hasOwnProperty.call(local.columns, key)) {\n const col = local.columns[key];\n const _col: Col = Object.assign(\n { key, originKey: key, label: col.toString() },\n isObject(col) && {\n label: (col.type === 'order' && '序号') || key,\n ...col,\n },\n );\n\n if (_col.type === 'order') {\n _hasOrder = true;\n _col.render = function (_val: unknown, _row: unknown, i: number) {\n return <span>{(page() - 1) * pageSize() + i + 1}</span>;\n };\n }\n cols.push(_col as Required<Col>);\n }\n }\n if (untrack(hasOrder) !== _hasOrder) {\n setHasOrder(_hasOrder);\n }\n return cols;\n });\n\n function handlePageChange(e: CustomEvent<[page: number, pageSize: number]>) {\n if (local.pagination) {\n setPage(e.detail[0]);\n setPageSize(e.detail[1]);\n local.pagination.onChange?.(...e.detail);\n }\n }\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={styles} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <table {...other} class={cx('table', local.size)} part=\"table\">\n <Show when={local.title}>\n <caption class=\"table-title\">\n <slot name=\"title\">{local.title}</slot>\n </caption>\n </Show>\n <thead {...layout} class=\"table-head\">\n <tr>\n <For each={columns()}>\n {(col) => {\n const _layout = getLayout(col);\n\n return (\n <th {..._layout} class=\"table-cell\">\n {col.label}\n </th>\n );\n }}\n </For>\n </tr>\n </thead>\n <tbody {...layout} class=\"table-body\">\n <For each={local.data}>\n {(row, i) => {\n return (\n <tr>\n <For each={columns()}>\n {(col) => {\n const _layout = getLayout(col);\n const Row = createMemo(() => {\n if (col.type === 'order') {\n const _pagination = pagination();\n\n return (_pagination.page - 1) * _pagination.pageSize + i() + 1;\n }\n const val = row[col.key];\n const isEmpty = isUndefined(val) || val === null;\n\n if (isEmpty) {\n return <span class=\"empty-val\">{local.emptyVal}</span>;\n }\n return val;\n });\n\n return (\n <td {..._layout} class=\"table-cell\">\n <Show when={isFunction(col.render)} fallback={<Row />}>\n {col.render(row[col.key], row, i())}\n </Show>\n </td>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n </tbody>\n <Show when={local.summary?.length}>\n <tfoot class=\"table-foot\" {...layout}>\n <tr>\n <Show when={hasOrder()}>\n <th class=\"table-cell\" {...getLayout(columns()[0])}>\n {local.summaryText}\n </th>\n </Show>\n <For each={columns().filter((c) => !c.type || !['order'].includes(c.type))}>\n {(col) => {\n const _layout = getLayout(col);\n const val = createMemo(() => {\n if (local.data?.length && local.summary?.includes(col.originKey)) {\n return sum(local.data, col.key);\n }\n return null;\n });\n\n return (\n <td {..._layout} class=\"table-cell\">\n {val()}\n </td>\n );\n }}\n </For>\n </tr>\n </tfoot>\n </Show>\n </table>\n <Show when={local.pagination}>\n <n-pagination\n class=\"table-pagination\"\n page={page()}\n page-size={pageSize()}\n total={total()}\n total-text={pagination().totalText}\n size={pagination().size || local.size}\n onChange={handlePageChange}\n />\n </Show>\n </>\n );\n}\n\n/** API\n * @since 2.1.0\n */\nexport interface TableProps<T extends Record<string, Any> = Record<string, Any>> extends Cell {\n /** 自定义类名 */\n class?: string;\n /** 自定义类名 */\n css?: string;\n /** 加载中 */\n loading?: boolean;\n /** 单元格值为 null 或 undefined 时的回填\n * @default '-'\n */\n emptyVal?: string;\n /** 栏配置 */\n columns?: Record<string, Column<T> | string>;\n /** 数据源 */\n data?: T[];\n /** 表格标题, 支持直接赋值给 'title' 属性, 或者通过[slot=\"title\"]插槽 */\n title?: JSX.Element | 'slot';\n /** 汇总行 */\n summary?: (keyof T)[];\n /** 汇总行描述\n * @default '合计'\n */\n summaryText?: JSX.Element;\n /** 分页器\n * @default false\n */\n pagination?: PaginationProps | false;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n children?: JSX.Element;\n}\n/** 栏 */\ninterface Column<T extends Record<string, Any>> extends Cell {\n /** 自定义取值的 key */\n key?: keyof T;\n /** 原始 key */\n originKey?: keyof T;\n /** 单元格表头标题 */\n label?: JSX.Element;\n /** 自定义渲染单元格 */\n render?(item: T[keyof T], row: T, index: number): JSX.Element;\n /** 单元格横跨的列数 */\n colspan?: number;\n /** 单元格横跨的行数 */\n rowspan?: number;\n /** 设置为 'order' 时则当作序号行 */\n type?: 'order';\n /** 单元格宽 */\n width?: number;\n}\n\n/** 单元格布局排列 */\ninterface Cell {\n /** 单元格内容的水平对齐方式\n * @default 'left'\n */\n align?: keyof typeof Align;\n /** 规定根据哪个字符来进行文本对齐 */\n char?: string;\n /** 规定第一个对齐字符的偏移量 */\n charoff?: number;\n /** 单元格内容的垂直对齐方式\n * @default 'middle'\n */\n valign?: keyof typeof Valign;\n}\n/** 水平对齐方式 */\nenum Align {\n /** 左对齐 */\n left = 'left',\n /** 右对齐 */\n right = 'right',\n /** 居中对齐 */\n center = 'center',\n /** 对行进行伸展,这样每行都可以有相等的长度 */\n justify = 'justify',\n /** 将内容对准指定字符 */\n char = 'char',\n}\n/** 垂直对齐方式 */\nenum Valign {\n /** 上对齐 */\n top = 'top',\n /** 居中对齐 */\n middle = 'middle',\n /** 下对齐 */\n bottom = 'bottom',\n /** 与基线对齐 */\n baseline = 'baseline',\n}\nexport type TableElement = CustomElement<TableProps>;\n\ncustomElement<TableProps>(\n 'n-table',\n {\n class: void 0,\n css: void 0,\n loading: false,\n columns: {},\n data: [],\n emptyVal: '-',\n title: void 0,\n char: void 0,\n charoff: void 0,\n align: Align.left,\n valign: Valign.middle,\n summary: void 0,\n summaryText: '合计',\n pagination: void 0,\n size: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n columns: el.columns,\n data: el.data,\n pagination: el.pagination,\n summary: el.summary,\n summaryText: el.summaryText,\n },\n _,\n {\n title: !!el.querySelector(\"[slot='title']\") || _.title,\n },\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n el.removeAttribute('title');\n el.removeAttribute('data');\n });\n return <Table {...props} />;\n },\n);\nexport default Table;\n"],"names":["Align","Valign","defaultPagination","page","pageSize","total","totalText","size","Table","_","baseStyle","theme","local","other","splitProps","layout","hasOrder","setHasOrder","createSignal","setPage","setPageSize","setTotal","getLayout","col","width","align","valign","char","charoff","colspan","rowspan","createEffect","batch","pagination","createMemo","Object","assign","columns","cols","_hasOrder","key","prototype","hasOwnProperty","call","_col","originKey","label","toString","isObject","type","render","_val","_row","i","push","untrack","handlePageChange","e","detail","onChange","styles","Show","css","cx","title","For","_layout","data","row","Row","_pagination","val","isUndefined","emptyVal","isFunction","summary","length","summaryText","filter","c","includes","arr","reduce","prev","curr","next","isString","customElement","class","loading","opt","el","element","props","mergeProps","querySelector","removeAttribute"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 通用
3
+ title: 标签页
4
+ subtitle: n-tabs
5
+ icon: ☱
6
+ ---
7
+
8
+ # Tab 标签页
9
+
10
+ > 选项卡切换组件,用于提供平级的区域将大块内容进行收纳和展现,保持界面整洁。
@@ -0,0 +1,115 @@
1
+ ---
2
+ title: 新增和关闭标签页
3
+ description: 添加 `add` 属性并设置为 `true` 显示新增按钮, 将选项的 `closable` 属性为 `true` 以支持关闭该选项
4
+ order: 7
5
+ ---
6
+
7
+ ```html
8
+ <div style="width:500px;">
9
+ <n-tabs value="2" type="card" add="true"></n-tabs>
10
+ </div>
11
+ <script>
12
+ const el = container.querySelector('n-tabs');
13
+
14
+ let count = 2;
15
+
16
+ el.items = new Array(3).fill(0).map((_, i) => {
17
+ return {
18
+ value: i,
19
+ label: `Tab ${i}`,
20
+ content: `Content of Tab Pane ${i}`,
21
+ closable: true,
22
+ };
23
+ });
24
+ el.addEventListener('change', function (e) {
25
+ el.value = e.detail[0];
26
+ });
27
+ el.addEventListener('edit', function (e) {
28
+ const [type, item, ev] = e.detail;
29
+
30
+ if (type === 'add') {
31
+ count++;
32
+ const val = count + new Date().getTime();
33
+ el.items = el.items.concat({
34
+ label: `Tab ${count}`,
35
+ value: val,
36
+ content: `Content of Tab Pane ${val}`,
37
+ closable: count % 5 !== 0,
38
+ });
39
+ el.value = val;
40
+ } else if (type === 'remove') {
41
+ let lastIndex = -1;
42
+ el.items = el.items.filter((o, i) => {
43
+ const flag = item.value !== o.value;
44
+
45
+ if (!flag) {
46
+ lastIndex = i ? i - 1 : 0;
47
+ }
48
+ return flag;
49
+ });
50
+ if (lastIndex >= 0 && el.items[lastIndex]) {
51
+ el.value = el.items[lastIndex].value;
52
+ }
53
+ }
54
+ });
55
+ </script>
56
+ ```
57
+
58
+ ```jsx
59
+ const Demo = () => {
60
+ let el;
61
+ let count = 2;
62
+ const items = new Array(3).fill(0).map((_, i) => {
63
+ return {
64
+ value: i,
65
+ label: `Tab ${i}`,
66
+ content: `Content of Tab Pane ${i}`,
67
+ closable: true,
68
+ };
69
+ });
70
+ const handleEdit = (e) => {
71
+ const [type, item, ev] = e.detail;
72
+
73
+ if (type === 'add') {
74
+ count++;
75
+ const val = count + new Date().getTime();
76
+ el.items = el.items.concat({
77
+ label: `Tab ${count}`,
78
+ value: val,
79
+ content: `Content of Tab Pane ${val}`,
80
+ closable: count % 5 !== 0,
81
+ });
82
+ el.value = val;
83
+ } else if (type === 'remove') {
84
+ let lastIndex = -1;
85
+ el.items = el.items.filter((o, i) => {
86
+ const flag = item.value !== o.value;
87
+
88
+ if (!flag) {
89
+ lastIndex = i ? i - 1 : 0;
90
+ }
91
+ return flag;
92
+ });
93
+ if (lastIndex >= 0 && el.items[lastIndex]) {
94
+ el.value = el.items[lastIndex].value;
95
+ }
96
+ }
97
+ };
98
+ return (
99
+ <div style={{ width: '500px' }}>
100
+ <n-tabs
101
+ ref={(e) => (el = e)}
102
+ type="card"
103
+ add={true}
104
+ items={items}
105
+ onChange={(e) => {
106
+ e.target.value = e.detail[0];
107
+ }}
108
+ onEdit={handleEdit}
109
+ />
110
+ </div>
111
+ );
112
+ };
113
+
114
+ render(<Demo />);
115
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: 动画
3
+ description: 添加切换动画
4
+ order: 9
5
+ ---
6
+
7
+ ```html
8
+ <n-tabs animated="true"></n-tabs>
9
+ <script>
10
+ const el = container.querySelector('n-tabs');
11
+
12
+ el.items = new Array(3).fill(0).map((_, i) => {
13
+ return {
14
+ value: i + 1,
15
+ label: `Tab ${i + 1}`,
16
+ content: `Content of Tab Pane ${i + 1}`,
17
+ };
18
+ });
19
+ </script>
20
+ ```
21
+
22
+ ```jsx
23
+ <n-tabs
24
+ animated={true}
25
+ items={new Array(3).fill(0).map((_, i) => {
26
+ return {
27
+ value: i + 1,
28
+ label: `Tab ${i + 1}`,
29
+ content: `Content of Tab Pane ${i + 1}`,
30
+ };
31
+ })}
32
+ />
33
+ ```
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: 基本使用
3
+ description: 最简单的使用方式, 默认选中第一项。
4
+ order: 1
5
+ ---
6
+
7
+ ```html
8
+ <n-tabs></n-tabs>
9
+ <script>
10
+ const el = container.querySelector('n-tabs');
11
+
12
+ el.items = new Array(3).fill(0).map((_, i) => {
13
+ return {
14
+ value: i + 1,
15
+ label: `Tab ${i + 1}`,
16
+ content: `Content of Tab Pane ${i + 1}`,
17
+ };
18
+ });
19
+ </script>
20
+ ```
21
+
22
+ ```jsx
23
+ <n-tabs
24
+ items={new Array(3).fill(0).map((_, i) => {
25
+ return {
26
+ value: i + 1,
27
+ label: `Tab ${i + 1}`,
28
+ content: `Content of Tab Pane ${i + 1}`,
29
+ };
30
+ })}
31
+ />
32
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: 卡片式标签页
3
+ description: 另一种样式的页签
4
+ order: 6
5
+ ---
6
+
7
+ ```html
8
+ <n-tabs type="card"></n-tabs>
9
+ <script>
10
+ const el = container.querySelector('n-tabs');
11
+
12
+ el.items = new Array(3).fill(0).map((_, i) => {
13
+ return {
14
+ value: i + 1,
15
+ label: `Tab ${i + 1}`,
16
+ content: `Content of Tab Pane ${i + 1}`,
17
+ };
18
+ });
19
+ </script>
20
+ ```
21
+
22
+ ```jsx
23
+ <n-tabs
24
+ type="card"
25
+ items={new Array(3).fill(0).map((_, i) => {
26
+ return {
27
+ value: i + 1,
28
+ label: `Tab ${i + 1}`,
29
+ content: `Content of Tab Pane ${i + 1}`,
30
+ };
31
+ })}
32
+ />
33
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: 居中
3
+ description: 标签居中展示。
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <n-tabs centered="true"></n-tabs>
9
+ <script>
10
+ const el = container.querySelector('n-tabs');
11
+
12
+ el.items = new Array(3).fill(0).map((_, i) => {
13
+ return {
14
+ value: i + 1,
15
+ label: `Tab ${i + 1}`,
16
+ content: `Content of Tab Pane ${i + 1}`,
17
+ };
18
+ });
19
+ </script>
20
+ ```
21
+
22
+ ```jsx
23
+ <n-tabs
24
+ centered={true}
25
+ items={new Array(3).fill(0).map((_, i) => {
26
+ return {
27
+ value: i + 1,
28
+ label: `Tab ${i + 1}`,
29
+ content: `Content of Tab Pane ${i + 1}`,
30
+ };
31
+ })}
32
+ />
33
+ ```
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: 禁用某一项。
3
+ description: 禁用某一项。
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-tabs></n-tabs>
9
+ <script>
10
+ const el = container.querySelector('n-tabs');
11
+
12
+ el.items = new Array(3).fill(0).map((_, i) => {
13
+ return {
14
+ value: i + 1,
15
+ label: `Tab ${i + 1}`,
16
+ content: `Content of Tab Pane ${i + 1}`,
17
+ disabled: i === 1,
18
+ };
19
+ });
20
+ </script>
21
+ ```
22
+
23
+ ```jsx
24
+ <n-tabs
25
+ items={new Array(3).fill(0).map((_, i) => {
26
+ return {
27
+ value: i + 1,
28
+ label: `Tab ${i + 1}`,
29
+ content: `Content of Tab Pane ${i + 1}`,
30
+ disabled: i === 1,
31
+ };
32
+ })}
33
+ />
34
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: 只读模式
3
+ description: 禁止任何操作。
4
+ order: 8
5
+ ---
6
+
7
+ ```html
8
+ <n-tabs disabled="true"></n-tabs>
9
+ <script>
10
+ const el = container.querySelector('n-tabs');
11
+
12
+ el.items = new Array(3).fill(0).map((_, i) => {
13
+ return {
14
+ value: i + 1,
15
+ label: `Tab ${i + 1}`,
16
+ content: `Content of Tab Pane ${i + 1}`,
17
+ };
18
+ });
19
+ </script>
20
+ ```
21
+
22
+ ```jsx
23
+ <n-tabs
24
+ disabled={true}
25
+ items={new Array(3).fill(0).map((_, i) => {
26
+ return {
27
+ value: i + 1,
28
+ label: `Tab ${i + 1}`,
29
+ content: `Content of Tab Pane ${i + 1}`,
30
+ };
31
+ })}
32
+ />
33
+ ```