@hi-ui/table 4.0.0-alpha.7 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/README.md +159 -6
  2. package/lib/cjs/BaseTable.js +298 -0
  3. package/lib/cjs/BaseTable.js.map +1 -0
  4. package/lib/cjs/Table.js +315 -0
  5. package/lib/cjs/Table.js.map +1 -0
  6. package/lib/cjs/TableAdvancedFilter.js +164 -0
  7. package/lib/cjs/TableAdvancedFilter.js.map +1 -0
  8. package/lib/cjs/TableBody.js +150 -0
  9. package/lib/cjs/TableBody.js.map +1 -0
  10. package/lib/cjs/TableCell.js +226 -0
  11. package/lib/cjs/TableCell.js.map +1 -0
  12. package/lib/cjs/TableColumnMenu.js +172 -0
  13. package/lib/cjs/TableColumnMenu.js.map +1 -0
  14. package/lib/cjs/TableEmbedRow.js +81 -0
  15. package/lib/cjs/TableEmbedRow.js.map +1 -0
  16. package/lib/cjs/TableHeader.js +129 -0
  17. package/lib/cjs/TableHeader.js.map +1 -0
  18. package/lib/cjs/TableRow.js +216 -0
  19. package/lib/cjs/TableRow.js.map +1 -0
  20. package/lib/cjs/TableSettingMenu.js +222 -0
  21. package/lib/cjs/TableSettingMenu.js.map +1 -0
  22. package/lib/cjs/context.js +33 -0
  23. package/lib/cjs/context.js.map +1 -0
  24. package/lib/cjs/hooks/use-async-switch.js +145 -0
  25. package/lib/cjs/hooks/use-async-switch.js.map +1 -0
  26. package/lib/cjs/hooks/use-check.js +106 -0
  27. package/lib/cjs/hooks/use-check.js.map +1 -0
  28. package/lib/cjs/hooks/use-col-hidden.js +76 -0
  29. package/lib/cjs/hooks/use-col-hidden.js.map +1 -0
  30. package/lib/cjs/hooks/use-col-sorter.js +64 -0
  31. package/lib/cjs/hooks/use-col-sorter.js.map +1 -0
  32. package/lib/cjs/hooks/use-col-width.js +134 -0
  33. package/lib/cjs/hooks/use-col-width.js.map +1 -0
  34. package/lib/cjs/hooks/use-colgroup.js +111 -0
  35. package/lib/cjs/hooks/use-colgroup.js.map +1 -0
  36. package/lib/cjs/hooks/use-drag-sorter/lib/esm/index.js +287 -0
  37. package/lib/cjs/hooks/use-drag-sorter/lib/esm/index.js.map +1 -0
  38. package/lib/cjs/hooks/use-drag.js +110 -0
  39. package/lib/cjs/hooks/use-drag.js.map +1 -0
  40. package/lib/cjs/hooks/use-embed-expand.js +185 -0
  41. package/lib/cjs/hooks/use-embed-expand.js.map +1 -0
  42. package/lib/cjs/hooks/use-expand.js +183 -0
  43. package/lib/cjs/hooks/use-expand.js.map +1 -0
  44. package/lib/cjs/hooks/use-pagination.js +66 -0
  45. package/lib/cjs/hooks/use-pagination.js.map +1 -0
  46. package/lib/cjs/hooks/use-queue.js +55 -0
  47. package/lib/cjs/hooks/use-queue.js.map +1 -0
  48. package/lib/cjs/icons/index.js +55 -0
  49. package/lib/cjs/icons/index.js.map +1 -0
  50. package/lib/cjs/index.js +23 -0
  51. package/lib/cjs/index.js.map +1 -0
  52. package/lib/cjs/styles/index.scss.js +22 -0
  53. package/lib/cjs/styles/index.scss.js.map +1 -0
  54. package/lib/cjs/use-table.js +599 -0
  55. package/lib/cjs/use-table.js.map +1 -0
  56. package/lib/cjs/utils/func-utils/lib/esm/_virtual/_cloneBuffer.js_commonjs-module.js +29 -0
  57. package/lib/cjs/utils/func-utils/lib/esm/_virtual/_cloneBuffer.js_commonjs-module.js.map +1 -0
  58. package/lib/cjs/utils/func-utils/lib/esm/_virtual/_commonjsHelpers.js +27 -0
  59. package/lib/cjs/utils/func-utils/lib/esm/_virtual/_commonjsHelpers.js.map +1 -0
  60. package/lib/cjs/utils/func-utils/lib/esm/_virtual/_nodeUtil.js_commonjs-module.js +29 -0
  61. package/lib/cjs/utils/func-utils/lib/esm/_virtual/_nodeUtil.js_commonjs-module.js.map +1 -0
  62. package/lib/cjs/utils/func-utils/lib/esm/_virtual/isBuffer.js_commonjs-module.js +29 -0
  63. package/lib/cjs/utils/func-utils/lib/esm/_virtual/isBuffer.js_commonjs-module.js.map +1 -0
  64. package/lib/cjs/utils/func-utils/lib/esm/index.js +62 -0
  65. package/lib/cjs/utils/func-utils/lib/esm/index.js.map +1 -0
  66. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_DataView.js +37 -0
  67. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_DataView.js.map +1 -0
  68. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Map.js +37 -0
  69. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Map.js.map +1 -0
  70. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Promise.js +37 -0
  71. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Promise.js.map +1 -0
  72. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Set.js +37 -0
  73. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Set.js.map +1 -0
  74. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Symbol.js +34 -0
  75. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Symbol.js.map +1 -0
  76. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_WeakMap.js +37 -0
  77. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_WeakMap.js.map +1 -0
  78. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseGetTag.js +60 -0
  79. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
  80. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseIsArguments.js +49 -0
  81. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseIsArguments.js.map +1 -0
  82. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseIsNative.js +80 -0
  83. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
  84. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_cloneBuffer.js +63 -0
  85. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_cloneBuffer.js.map +1 -0
  86. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_coreJsData.js +34 -0
  87. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_coreJsData.js.map +1 -0
  88. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_defineProperty.js +33 -0
  89. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_defineProperty.js.map +1 -0
  90. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_freeGlobal.js +36 -0
  91. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
  92. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getNative.js +48 -0
  93. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getNative.js.map +1 -0
  94. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getRawTag.js +77 -0
  95. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getRawTag.js.map +1 -0
  96. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getTag.js +96 -0
  97. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getTag.js.map +1 -0
  98. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getValue.js +40 -0
  99. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getValue.js.map +1 -0
  100. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_isMasked.js +50 -0
  101. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_isMasked.js.map +1 -0
  102. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_nativeCreate.js +28 -0
  103. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
  104. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_nodeUtil.js +58 -0
  105. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_nodeUtil.js.map +1 -0
  106. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_objectToString.js +49 -0
  107. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_objectToString.js.map +1 -0
  108. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_root.js +39 -0
  109. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_root.js.map +1 -0
  110. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_toSource.js +55 -0
  111. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_toSource.js.map +1 -0
  112. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isArguments.js +61 -0
  113. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isArguments.js.map +1 -0
  114. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isBuffer.js +67 -0
  115. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isBuffer.js.map +1 -0
  116. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isFunction.js +69 -0
  117. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isFunction.js.map +1 -0
  118. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isObject.js +72 -0
  119. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isObject.js.map +1 -0
  120. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isObjectLike.js +69 -0
  121. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isObjectLike.js.map +1 -0
  122. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/stubFalse.js +45 -0
  123. package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/stubFalse.js.map +1 -0
  124. package/lib/cjs/utils/index.js +190 -0
  125. package/lib/cjs/utils/index.js.map +1 -0
  126. package/lib/esm/BaseTable.js +266 -0
  127. package/lib/esm/BaseTable.js.map +1 -0
  128. package/lib/esm/Table.js +276 -0
  129. package/lib/esm/Table.js.map +1 -0
  130. package/lib/esm/TableAdvancedFilter.js +134 -0
  131. package/lib/esm/TableAdvancedFilter.js.map +1 -0
  132. package/lib/esm/TableBody.js +126 -0
  133. package/lib/esm/TableBody.js.map +1 -0
  134. package/lib/esm/TableCell.js +202 -0
  135. package/lib/esm/TableCell.js.map +1 -0
  136. package/lib/esm/TableColumnMenu.js +145 -0
  137. package/lib/esm/TableColumnMenu.js.map +1 -0
  138. package/lib/esm/TableEmbedRow.js +59 -0
  139. package/lib/esm/TableEmbedRow.js.map +1 -0
  140. package/lib/esm/TableHeader.js +107 -0
  141. package/lib/esm/TableHeader.js.map +1 -0
  142. package/lib/esm/TableRow.js +189 -0
  143. package/lib/esm/TableRow.js.map +1 -0
  144. package/lib/esm/TableSettingMenu.js +190 -0
  145. package/lib/esm/TableSettingMenu.js.map +1 -0
  146. package/lib/esm/context.js +25 -0
  147. package/lib/esm/context.js.map +1 -0
  148. package/lib/esm/hooks/use-async-switch.js +124 -0
  149. package/lib/esm/hooks/use-async-switch.js.map +1 -0
  150. package/lib/esm/hooks/use-check.js +87 -0
  151. package/lib/esm/hooks/use-check.js.map +1 -0
  152. package/lib/esm/hooks/use-col-hidden.js +67 -0
  153. package/lib/esm/hooks/use-col-hidden.js.map +1 -0
  154. package/lib/esm/hooks/use-col-sorter.js +55 -0
  155. package/lib/esm/hooks/use-col-sorter.js.map +1 -0
  156. package/lib/esm/hooks/use-col-width.js +116 -0
  157. package/lib/esm/hooks/use-col-width.js.map +1 -0
  158. package/lib/esm/hooks/use-colgroup.js +93 -0
  159. package/lib/esm/hooks/use-colgroup.js.map +1 -0
  160. package/lib/esm/hooks/use-drag-sorter/lib/esm/index.js +264 -0
  161. package/lib/esm/hooks/use-drag-sorter/lib/esm/index.js.map +1 -0
  162. package/lib/esm/hooks/use-drag.js +91 -0
  163. package/lib/esm/hooks/use-drag.js.map +1 -0
  164. package/lib/esm/hooks/use-embed-expand.js +160 -0
  165. package/lib/esm/hooks/use-embed-expand.js.map +1 -0
  166. package/lib/esm/hooks/use-expand.js +172 -0
  167. package/lib/esm/hooks/use-expand.js.map +1 -0
  168. package/lib/esm/hooks/use-pagination.js +46 -0
  169. package/lib/esm/hooks/use-pagination.js.map +1 -0
  170. package/lib/esm/hooks/use-queue.js +49 -0
  171. package/lib/esm/hooks/use-queue.js.map +1 -0
  172. package/lib/esm/icons/index.js +33 -0
  173. package/lib/esm/icons/index.js.map +1 -0
  174. package/lib/esm/index.js +12 -0
  175. package/lib/esm/index.js.map +1 -0
  176. package/lib/esm/styles/index.scss.js +17 -0
  177. package/lib/esm/styles/index.scss.js.map +1 -0
  178. package/lib/esm/use-table.js +567 -0
  179. package/lib/esm/use-table.js.map +1 -0
  180. package/lib/esm/utils/func-utils/lib/esm/_virtual/_cloneBuffer.js_commonjs-module.js +24 -0
  181. package/lib/esm/utils/func-utils/lib/esm/_virtual/_cloneBuffer.js_commonjs-module.js.map +1 -0
  182. package/lib/esm/utils/func-utils/lib/esm/_virtual/_commonjsHelpers.js +22 -0
  183. package/lib/esm/utils/func-utils/lib/esm/_virtual/_commonjsHelpers.js.map +1 -0
  184. package/lib/esm/utils/func-utils/lib/esm/_virtual/_nodeUtil.js_commonjs-module.js +24 -0
  185. package/lib/esm/utils/func-utils/lib/esm/_virtual/_nodeUtil.js_commonjs-module.js.map +1 -0
  186. package/lib/esm/utils/func-utils/lib/esm/_virtual/isBuffer.js_commonjs-module.js +24 -0
  187. package/lib/esm/utils/func-utils/lib/esm/_virtual/isBuffer.js_commonjs-module.js.map +1 -0
  188. package/lib/esm/utils/func-utils/lib/esm/index.js +45 -0
  189. package/lib/esm/utils/func-utils/lib/esm/index.js.map +1 -0
  190. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_DataView.js +29 -0
  191. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_DataView.js.map +1 -0
  192. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Map.js +29 -0
  193. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Map.js.map +1 -0
  194. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Promise.js +29 -0
  195. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Promise.js.map +1 -0
  196. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Set.js +29 -0
  197. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Set.js.map +1 -0
  198. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Symbol.js +27 -0
  199. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Symbol.js.map +1 -0
  200. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_WeakMap.js +29 -0
  201. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_WeakMap.js.map +1 -0
  202. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseGetTag.js +51 -0
  203. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
  204. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseIsArguments.js +41 -0
  205. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseIsArguments.js.map +1 -0
  206. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseIsNative.js +70 -0
  207. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
  208. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_cloneBuffer.js +59 -0
  209. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_cloneBuffer.js.map +1 -0
  210. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_coreJsData.js +27 -0
  211. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_coreJsData.js.map +1 -0
  212. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_defineProperty.js +30 -0
  213. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_defineProperty.js.map +1 -0
  214. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_freeGlobal.js +17 -0
  215. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
  216. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getNative.js +40 -0
  217. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getNative.js.map +1 -0
  218. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getRawTag.js +70 -0
  219. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getRawTag.js.map +1 -0
  220. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getTag.js +87 -0
  221. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getTag.js.map +1 -0
  222. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getValue.js +35 -0
  223. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getValue.js.map +1 -0
  224. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_isMasked.js +43 -0
  225. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_isMasked.js.map +1 -0
  226. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_nativeCreate.js +25 -0
  227. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
  228. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_nodeUtil.js +54 -0
  229. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_nodeUtil.js.map +1 -0
  230. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_objectToString.js +44 -0
  231. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_objectToString.js.map +1 -0
  232. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_root.js +21 -0
  233. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_root.js.map +1 -0
  234. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_toSource.js +50 -0
  235. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_toSource.js.map +1 -0
  236. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isArguments.js +57 -0
  237. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isArguments.js.map +1 -0
  238. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isBuffer.js +62 -0
  239. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isBuffer.js.map +1 -0
  240. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isFunction.js +61 -0
  241. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isFunction.js.map +1 -0
  242. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isObject.js +55 -0
  243. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isObject.js.map +1 -0
  244. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isObjectLike.js +52 -0
  245. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isObjectLike.js.map +1 -0
  246. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/stubFalse.js +40 -0
  247. package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/stubFalse.js.map +1 -0
  248. package/lib/esm/utils/index.js +178 -0
  249. package/lib/esm/utils/index.js.map +1 -0
  250. package/lib/types/BaseTable.d.ts +41 -0
  251. package/lib/types/Table.d.ts +18 -16
  252. package/lib/types/TableAdvancedFilter.d.ts +9 -0
  253. package/lib/types/TableBody.d.ts +11 -0
  254. package/lib/types/TableCell.d.ts +41 -0
  255. package/lib/types/TableColumnMenu.d.ts +18 -5
  256. package/lib/types/TableEmbedRow.d.ts +26 -0
  257. package/lib/types/TableHeader.d.ts +1 -7
  258. package/lib/types/TableRow.d.ts +32 -0
  259. package/lib/types/TableSettingMenu.d.ts +1 -2
  260. package/lib/types/context.d.ts +110 -85
  261. package/lib/types/hooks/use-async-switch.d.ts +2 -1
  262. package/lib/types/hooks/use-check.d.ts +4 -8
  263. package/lib/types/hooks/use-col-frozen.d.ts +1 -1
  264. package/lib/types/hooks/use-col-hidden.d.ts +1 -1
  265. package/lib/types/hooks/use-col-width.d.ts +5 -8
  266. package/lib/types/hooks/use-colgroup.d.ts +2 -1
  267. package/lib/types/hooks/use-drag.d.ts +13 -0
  268. package/lib/types/hooks/use-embed-expand.d.ts +39 -0
  269. package/lib/types/hooks/use-expand.d.ts +1 -1
  270. package/lib/types/hooks/use-pagination.d.ts +5 -6
  271. package/lib/types/index.d.ts +1 -0
  272. package/lib/types/types.d.ts +33 -32
  273. package/lib/types/use-table.d.ts +242 -0
  274. package/lib/types/utils/index.d.ts +11 -4
  275. package/package.json +35 -8
  276. package/lib/types/TableExpandedRow.d.ts +0 -28
@@ -0,0 +1,106 @@
1
+ /** @LICENSE
2
+ * @hi-ui/table
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ var _typeof = require("@babel/runtime/helpers/typeof");
13
+
14
+ Object.defineProperty(exports, '__esModule', {
15
+ value: true
16
+ });
17
+
18
+ var useCheck = require('@hi-ui/use-check');
19
+
20
+ var React = require('react');
21
+
22
+ var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
23
+
24
+ function _interopDefaultLegacy(e) {
25
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
26
+ 'default': e
27
+ };
28
+ }
29
+
30
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
+
32
+ var DEFAULT_CHECKED_ROW_KEYS = [];
33
+
34
+ var useTableCheck = function useTableCheck(_ref) {
35
+ var rowSelection = _ref.rowSelection,
36
+ flattedData = _ref.flattedData,
37
+ fieldKey = _ref.fieldKey;
38
+ var checkRowIsDisabledCheckbox = React__default['default'].useCallback(function (rowItem) {
39
+ var checkboxConfig = rowSelection && rowSelection.getCheckboxConfig && rowSelection.getCheckboxConfig(rowItem);
40
+ return checkboxConfig && checkboxConfig.disabled || false;
41
+ }, [rowSelection]);
42
+
43
+ var _useUncontrolledState = useUncontrolledState.useUncontrolledState(DEFAULT_CHECKED_ROW_KEYS, rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys, rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange),
44
+ checkedRowKeys = _useUncontrolledState[0],
45
+ trySetCheckedRowKeys = _useUncontrolledState[1]; // TODO: 暂时不支持正反选
46
+
47
+
48
+ var _useCheck = useCheck.useCheck({
49
+ checkedIds: checkedRowKeys,
50
+ onCheck: trySetCheckedRowKeys,
51
+ idFieldName: fieldKey
52
+ }),
53
+ onCheckedRowKeysChange = _useCheck[0],
54
+ isCheckedRowKey = _useCheck[1]; // 判断是否全选
55
+
56
+
57
+ var _React$useMemo = React__default['default'].useMemo(function () {
58
+ if (rowSelection) {
59
+ if (flattedData.length === 0 || checkedRowKeys.length === 0) {
60
+ return [false, false];
61
+ }
62
+
63
+ var _checkedAll = flattedData.filter(function (item) {
64
+ return !checkRowIsDisabledCheckbox(item.raw);
65
+ }) // TODO: 数组项完全匹配工具函数
66
+ . // TODO: 数组项完全匹配工具函数
67
+ every(function (item) {
68
+ return isCheckedRowKey(item.id);
69
+ });
70
+
71
+ return [_checkedAll, _checkedAll ? false : checkedRowKeys.length > 0];
72
+ }
73
+
74
+ return [false, false];
75
+ }, [flattedData, rowSelection, isCheckedRowKey, checkedRowKeys.length, checkRowIsDisabledCheckbox]),
76
+ checkedAll = _React$useMemo[0],
77
+ semiChecked = _React$useMemo[1];
78
+
79
+ var tryCheckAllRow = React__default['default'].useCallback(function () {
80
+ if (checkedAll) {
81
+ trySetCheckedRowKeys([], [], false);
82
+ return;
83
+ }
84
+
85
+ var targetItems = flattedData.filter(function (item) {
86
+ return !checkRowIsDisabledCheckbox(item.raw);
87
+ });
88
+ var checkedRowKeys = targetItems.map(function (item) {
89
+ return item.id;
90
+ });
91
+ trySetCheckedRowKeys(checkedRowKeys, targetItems, true);
92
+ }, [trySetCheckedRowKeys, flattedData, checkRowIsDisabledCheckbox, checkedAll]);
93
+ return {
94
+ tryCheckAllRow: tryCheckAllRow,
95
+ checkedAll: checkedAll,
96
+ semiChecked: semiChecked,
97
+ onCheckedRowKeysChange: onCheckedRowKeysChange,
98
+ isCheckedRowKey: isCheckedRowKey,
99
+ checkedRowKeys: checkedRowKeys,
100
+ trySetCheckedRowKeys: trySetCheckedRowKeys,
101
+ checkRowIsDisabledCheckbox: checkRowIsDisabledCheckbox
102
+ };
103
+ };
104
+
105
+ exports.useTableCheck = useTableCheck;
106
+ //# sourceMappingURL=use-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-check.js","sources":["../../../src/hooks/use-check.ts"],"sourcesContent":[null],"names":["DEFAULT_CHECKED_ROW_KEYS","useTableCheck","rowSelection","flattedData","fieldKey","checkRowIsDisabledCheckbox","React","useCallback","rowItem","checkboxConfig","getCheckboxConfig","disabled","useUncontrolledState","selectedRowKeys","onChange","checkedRowKeys","trySetCheckedRowKeys","useCheck","checkedIds","onCheck","idFieldName","onCheckedRowKeysChange","isCheckedRowKey","useMemo","length","checkedAll","filter","item","raw","every","id","semiChecked","tryCheckAllRow","targetItems","map"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,wBAAwB,GAAG,EAAjC;;IAEaC,aAAa,GAAG,SAAhBA,aAAgB,KAAA;MAC3BC,oBAAAA;MACAC,mBAAAA;MACAC,gBAAAA;MAMMC,0BAA0B,GAAGC,yBAAAA,CAAMC,WAAND,CACjC,UAACE,OAAD;QACQC,cAAc,GAClBP,YAAY,IAAIA,YAAY,CAACQ,iBAA7BR,IAAkDA,YAAY,CAACQ,iBAAbR,CAA+BM,OAA/BN;WAE5CO,cAAc,IAAIA,cAAc,CAACE,QAAjCF,IAA8C;AALvB,GAAAH,EAOjC,CAACJ,YAAD,CAPiCI;;8BAUYM,yCAAAA,CAC7CZ,wBAD6CY,EAE7CV,YAAY,SAAZA,IAAAA,YAAY,WAAZA,SAAAA,GAAAA,YAAY,CAAEW,eAF+BD,EAG7CV,YAAY,SAAZA,IAAAA,YAAY,WAAZA,SAAAA,GAAAA,YAAY,CAAEY,QAH+BF;MAAxCG,cAAP;MAAuBC,oBAAvB;;;kBAOkDC,iBAAAA,CAAS;AACzDC,IAAAA,UAAU,EAAEH,cAD6C;AAEzDI,IAAAA,OAAO,EAAEH,oBAFgD;AAGzDI,IAAAA,WAAW,EAAEhB;AAH4C,GAATa;MAA3CI,sBAAP;MAA+BC,eAA/B;;;uBAOkChB,yBAAAA,CAAMiB,OAANjB,CAAc;QAC1CJ,cAAc;UACZC,WAAW,CAACqB,MAAZrB,KAAuB,CAAvBA,IAA4BY,cAAc,CAACS,MAAfT,KAA0B,GAAG;eACpD,CAAC,KAAD,EAAQ,KAAR;;;UAGHU,WAAU,GAAGtB,WAAW,CAC3BuB,MADgBvB,CACT,UAACwB,IAAD;eAAU,CAACtB,0BAA0B,CAACsB,IAAI,CAACC,GAAN;AAD5B,OAAAzB;AAAAA;AAGhB0B,MAAAA,KAHgB1B,CAGV,UAACwB,IAAD;eAAUL,eAAe,CAACK,IAAI,CAACG,EAAN;AAHf,OAAA3B;;aAKZ,CAACsB,WAAD,EAAaA,WAAU,GAAG,KAAH,GAAWV,cAAc,CAACS,MAAfT,GAAwB,CAA1D;;;WAGF,CAAC,KAAD,EAAQ,KAAR;AAdyB,GAAAT,EAe/B,CACDH,WADC,EAEDD,YAFC,EAGDoB,eAHC,EAIDP,cAAc,CAACS,MAJd,EAKDnB,0BALC,CAf+BC;MAA3BmB,UAAP;MAAmBM,WAAnB;;MAuBMC,cAAc,GAAG1B,yBAAAA,CAAMC,WAAND,CAAkB;QACnCmB,YAAY;AACdT,MAAAA,oBAAoB,CAAC,EAAD,EAAY,EAAZ,EAAgB,KAAhB,CAApBA;;;;QAIIiB,WAAW,GAAG9B,WAAW,CAACuB,MAAZvB,CAAmB,UAACwB,IAAD;aAAe,CAACtB,0BAA0B,CAACsB,IAAI,CAACC,GAAN;AAA7D,KAAAzB;QACdY,cAAc,GAAGkB,WAAW,CAACC,GAAZD,CAAgB,UAACN,IAAD;aAAeA,IAAI,CAACG;AAApC,KAAAG;AAEvBjB,IAAAA,oBAAoB,CAACD,cAAD,EAAiBkB,WAAjB,EAA8B,IAA9B,CAApBjB;AATqB,GAAAV,EAUpB,CAACU,oBAAD,EAAuBb,WAAvB,EAAoCE,0BAApC,EAAgEoB,UAAhE,CAVoBnB;SAYhB;AACL0B,IAAAA,cAAc,EAAdA,cADK;AAELP,IAAAA,UAAU,EAAVA,UAFK;AAGLM,IAAAA,WAAW,EAAXA,WAHK;AAILV,IAAAA,sBAAsB,EAAtBA,sBAJK;AAKLC,IAAAA,eAAe,EAAfA,eALK;AAMLP,IAAAA,cAAc,EAAdA,cANK;AAOLC,IAAAA,oBAAoB,EAApBA,oBAPK;AAQLX,IAAAA,0BAA0B,EAA1BA;AARK;;;"}
@@ -0,0 +1,76 @@
1
+ /** @LICENSE
2
+ * @hi-ui/table
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ Object.defineProperty(exports, '__esModule', {
13
+ value: true
14
+ });
15
+
16
+ var React = require('react');
17
+
18
+ var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
19
+
20
+ var index = require('../utils/index.js');
21
+
22
+ var DEFAULT_COLUMNS = [];
23
+ /**
24
+ * 列操作逻辑
25
+ */
26
+
27
+ var useColHidden = function useColHidden(_ref) {
28
+ var uniqueId = _ref.uniqueId,
29
+ _ref$columns = _ref.columns,
30
+ columns = _ref$columns === void 0 ? DEFAULT_COLUMNS : _ref$columns,
31
+ hiddenColKeysProp = _ref.hiddenColKeys,
32
+ onHiddenColKeysChange = _ref.onHiddenColKeysChange;
33
+ var cacheKey = uniqueId ? uniqueId + "_hiddenColKeys" : '';
34
+
35
+ var _useUncontrolledState = useUncontrolledState.useUncontrolledState(function () {
36
+ return index.parseLocalArray({
37
+ key: cacheKey,
38
+ defaultValue: []
39
+ });
40
+ }, hiddenColKeysProp, onHiddenColKeysChange),
41
+ _hiddenColKeys = _useUncontrolledState[0],
42
+ setHiddenColKeys = _useUncontrolledState[1]; // 保证 includes 匹配 column,是有效的可展示的列
43
+
44
+
45
+ var hiddenColKeys = React.useMemo(function () {
46
+ return _hiddenColKeys.filter(function (dataKey) {
47
+ return typeof dataKey === 'string' && dataKey !== '';
48
+ });
49
+ }, [_hiddenColKeys]);
50
+ React.useEffect(function () {
51
+ if (!cacheKey) return;
52
+ window.localStorage.setItem(cacheKey, JSON.stringify(hiddenColKeys));
53
+ }, [cacheKey, hiddenColKeys]); // 用于维护列操作时显隐临时状态
54
+
55
+ var _useState = React.useState(hiddenColKeys),
56
+ cacheHiddenColKeys = _useState[0],
57
+ setCacheHiddenColKeys = _useState[1];
58
+
59
+ var visibleCols = React.useMemo(function () {
60
+ // TODO: 支持隐藏叶子结点,而不是根节点
61
+ // @ts-ignore
62
+ return columns.filter(function (col) {
63
+ return !hiddenColKeys.includes(col.dataKey);
64
+ });
65
+ }, [columns, hiddenColKeys]);
66
+ return {
67
+ visibleCols: visibleCols,
68
+ hiddenColKeys: hiddenColKeys,
69
+ setHiddenColKeys: setHiddenColKeys,
70
+ cacheHiddenColKeys: cacheHiddenColKeys,
71
+ setCacheHiddenColKeys: setCacheHiddenColKeys
72
+ };
73
+ };
74
+
75
+ exports.useColHidden = useColHidden;
76
+ //# sourceMappingURL=use-col-hidden.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-col-hidden.js","sources":["../../../src/hooks/use-col-hidden.ts"],"sourcesContent":[null],"names":["DEFAULT_COLUMNS","useColHidden","uniqueId","columns","hiddenColKeysProp","hiddenColKeys","onHiddenColKeysChange","cacheKey","useUncontrolledState","parseLocalArray","key","defaultValue","_hiddenColKeys","setHiddenColKeys","useMemo","filter","dataKey","useEffect","window","localStorage","setItem","JSON","stringify","useState","cacheHiddenColKeys","setCacheHiddenColKeys","visibleCols","col","includes"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,eAAe,GAAG,EAAxB;AACA;;;;IAGaC,YAAY,GAAG,SAAfA,YAAe,KAAA;MAC1BC,gBAAAA;0BACAC;MAAAA,oCAAUH;MACKI,yBAAfC;MACAC,6BAAAA;MAEMC,QAAQ,GAAGL,QAAQ,GAAMA,QAAN,mBAAA,GAAiC;;8BAEfM,yCAAAA,CACzC;WACSC,qBAAAA,CAAgB;AACrBC,MAAAA,GAAG,EAAEH,QADgB;AAErBI,MAAAA,YAAY,EAAE;AAFO,KAAhBF;AAFoD,GAApBD,EAOzCJ,iBAPyCI,EAQzCF,qBARyCE;MAApCI,cAAP;MAAuBC,gBAAvB;;;MAYMR,aAAa,GAAGS,aAAAA,CAAQ;WACrBF,cAAc,CAACG,MAAfH,CAAsB,UAACI,OAAD;aAAkB,OAAOA,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,KAAK;AAAnF,KAAAJ;AADoB,GAAPE,EAEnB,CAACF,cAAD,CAFmBE;AAItBG,EAAAA,eAAAA,CAAU;QACJ,CAACV,UAAU;AACfW,IAAAA,MAAM,CAACC,YAAPD,CAAoBE,OAApBF,CAA4BX,QAA5BW,EAAsCG,IAAI,CAACC,SAALD,CAAehB,aAAfgB,CAAtCH;AAFO,GAATD,EAGG,CAACV,QAAD,EAAWF,aAAX,CAHHY;;kBAMoDM,cAAAA,CAASlB,aAATkB;MAA7CC,kBAAP;MAA2BC,qBAA3B;;MAEMC,WAAW,GAAGZ,aAAAA,CAAQ;;;WAInBX,OAAO,CAACY,MAARZ,CAAe,UAACwB,GAAD;aAAS,CAACtB,aAAa,CAACuB,QAAdvB,CAAuBsB,GAAG,CAACX,OAA3BX;AAAzB,KAAAF;AAJkB,GAAPW,EAKjB,CAACX,OAAD,EAAUE,aAAV,CALiBS;SAOb;AACLY,IAAAA,WAAW,EAAXA,WADK;AAELrB,IAAAA,aAAa,EAAbA,aAFK;AAGLQ,IAAAA,gBAAgB,EAAhBA,gBAHK;AAILW,IAAAA,kBAAkB,EAAlBA,kBAJK;AAKLC,IAAAA,qBAAqB,EAArBA;AALK;;;"}
@@ -0,0 +1,64 @@
1
+ /** @LICENSE
2
+ * @hi-ui/table
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ Object.defineProperty(exports, '__esModule', {
13
+ value: true
14
+ });
15
+
16
+ var React = require('react');
17
+
18
+ var useUpdateEffect = require('@hi-ui/use-update-effect');
19
+
20
+ var index = require('../utils/index.js');
21
+
22
+ var DEFAULT_COLUMNS = [];
23
+ /**
24
+ * 列排序
25
+ */
26
+
27
+ var useColSorter = function useColSorter(_ref) {
28
+ var uniqueId = _ref.uniqueId,
29
+ _ref$columns = _ref.columns,
30
+ columns = _ref$columns === void 0 ? DEFAULT_COLUMNS : _ref$columns;
31
+ var cacheKey = uniqueId ? uniqueId + "_sortCols" : '';
32
+
33
+ var _useState = React.useState(function () {
34
+ return index.parseLocalArray({
35
+ key: cacheKey,
36
+ defaultValue: columns
37
+ });
38
+ }),
39
+ sortedCols = _useState[0],
40
+ setSortCols = _useState[1];
41
+
42
+ React.useEffect(function () {
43
+ if (!cacheKey) return;
44
+ window.localStorage.setItem(cacheKey, JSON.stringify(sortedCols));
45
+ }, [cacheKey, sortedCols]); // 用于维护列操作时排序临时状态((未确认保存时))
46
+
47
+ var _useState2 = React.useState(sortedCols),
48
+ cacheSortedCols = _useState2[0],
49
+ setCacheSortedCols = _useState2[1];
50
+
51
+ useUpdateEffect.useUpdateEffect(function () {
52
+ // 当column发生改变的时候,同步 setting 的 sortedCols 设置
53
+ setSortCols(columns);
54
+ }, [columns]);
55
+ return {
56
+ sortedCols: sortedCols,
57
+ setSortCols: setSortCols,
58
+ cacheSortedCols: cacheSortedCols,
59
+ setCacheSortedCols: setCacheSortedCols
60
+ };
61
+ };
62
+
63
+ exports.useColSorter = useColSorter;
64
+ //# sourceMappingURL=use-col-sorter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-col-sorter.js","sources":["../../../src/hooks/use-col-sorter.ts"],"sourcesContent":[null],"names":["DEFAULT_COLUMNS","useColSorter","uniqueId","columns","cacheKey","useState","parseLocalArray","key","defaultValue","sortedCols","setSortCols","useEffect","window","localStorage","setItem","JSON","stringify","cacheSortedCols","setCacheSortedCols","useUpdateEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAMA,IAAMA,eAAe,GAAG,EAAxB;AAEA;;;;IAGaC,YAAY,GAAG,SAAfA,YAAe,KAAA;MAAGC,gBAAAA;0BAAUC;MAAAA,oCAAUH;MAC3CI,QAAQ,GAAGF,QAAQ,GAAMA,QAAN,cAAA,GAA4B;;kBAEnBG,cAAAA,CAA4B;WACrDC,qBAAAA,CAAgB;AACrBC,MAAAA,GAAG,EAAEH,QADgB;AAErBI,MAAAA,YAAY,EAAEL;AAFO,KAAhBG;AADiC,GAARD;MAA3BI,UAAP;MAAmBC,WAAnB;;AAOAC,EAAAA,eAAAA,CAAU;QACJ,CAACP,UAAU;AACfQ,IAAAA,MAAM,CAACC,YAAPD,CAAoBE,OAApBF,CAA4BR,QAA5BQ,EAAsCG,IAAI,CAACC,SAALD,CAAeN,UAAfM,CAAtCH;AAFO,GAATD,EAGG,CAACP,QAAD,EAAWK,UAAX,CAHHE;;mBAM8CN,cAAAA,CAASI,UAATJ;MAAvCY,eAAP;MAAwBC,kBAAxB;;AAEAC,EAAAA,+BAAAA,CAAgB;;AAEdT,IAAAA,WAAW,CAACP,OAAD,CAAXO;AAFa,GAAfS,EAGG,CAAChB,OAAD,CAHHgB;SAKO;AACLV,IAAAA,UAAU,EAAVA,UADK;AAELC,IAAAA,WAAW,EAAXA,WAFK;AAGLO,IAAAA,eAAe,EAAfA,eAHK;AAILC,IAAAA,kBAAkB,EAAlBA;AAJK;;;"}
@@ -0,0 +1,134 @@
1
+ /** @LICENSE
2
+ * @hi-ui/table
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ var _typeof = require("@babel/runtime/helpers/typeof");
13
+
14
+ Object.defineProperty(exports, '__esModule', {
15
+ value: true
16
+ });
17
+
18
+ var React = require('react');
19
+
20
+ var index = require('../utils/index.js');
21
+
22
+ var useUpdateEffect = require('@hi-ui/use-update-effect');
23
+
24
+ function _interopDefaultLegacy(e) {
25
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
26
+ 'default': e
27
+ };
28
+ }
29
+
30
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
+
32
+ var useColWidth = function useColWidth(_ref) {
33
+ var columns = _ref.columns;
34
+ var measureRowElementRef = React.useRef(null);
35
+
36
+ var _React$useState = React__default['default'].useState(function () {
37
+ return index.getGroupItemWidth(columns);
38
+ }),
39
+ colWidths = _React$useState[0],
40
+ setColWidths = _React$useState[1];
41
+
42
+ useUpdateEffect.useUpdateEffect(function () {
43
+ setColWidths(index.getGroupItemWidth(columns));
44
+ }, [columns]);
45
+ /**
46
+ * 根据实际内容区(table 的第一行)渲染,再次精确收集并设置每列宽度
47
+ */
48
+
49
+ React__default['default'].useEffect(function () {
50
+ var measureRowElement = measureRowElementRef.current;
51
+
52
+ if (measureRowElement) {
53
+ var _resizeObserver = new ResizeObserver(function () {
54
+ if (measureRowElement.childNodes) {
55
+ var _realColumnsWidth = Array.from(measureRowElement.childNodes).map(function (node) {
56
+ return node.getBoundingClientRect().width || 0;
57
+ });
58
+
59
+ setColWidths(_realColumnsWidth);
60
+ }
61
+ });
62
+
63
+ _resizeObserver.observe(measureRowElement);
64
+ }
65
+
66
+ return function () {};
67
+ }, []);
68
+
69
+ var _React$useState2 = React__default['default'].useState(null),
70
+ headerTableElement = _React$useState2[0],
71
+ setHeaderTableElement = _React$useState2[1];
72
+ /**
73
+ * 控制列最小可调整宽度
74
+ */
75
+
76
+
77
+ var minColWidth = React__default['default'].useMemo(function () {
78
+ if (headerTableElement && headerTableElement.childNodes && headerTableElement.childNodes[1].childNodes[0]) {
79
+ var _minColWidth = Array.from(headerTableElement.childNodes[1].childNodes[0].childNodes).map(function (th) {
80
+ // @ts-ignore
81
+ return th.childNodes[0].className === 'hi-table__header__title' ? // @ts-ignore
82
+ th.childNodes[0].offsetWidth : 0;
83
+ });
84
+
85
+ return _minColWidth;
86
+ }
87
+
88
+ return Array(columns.length).fill(0);
89
+ }, [columns, headerTableElement]);
90
+ /**
91
+ * 列宽拖拽 resize,只处理拖拽线两边的列宽度
92
+ */
93
+
94
+ var onColumnResizable = React__default['default'].useCallback(function (_, _ref2, index) {
95
+ var size = _ref2.size;
96
+ var minWidth = minColWidth[index] + 31;
97
+ var anotherMinWidth = minColWidth[index + 1] + 31;
98
+ var nextWidth = size.width > minWidth ? size.width : minWidth;
99
+ setColWidths(function (prev) {
100
+ var nextColWidths = [].concat(prev);
101
+ var anotherWidth = nextColWidths[index + 1] + nextColWidths[index] - nextWidth;
102
+
103
+ if (anotherWidth <= anotherMinWidth) {
104
+ anotherWidth = anotherMinWidth;
105
+ nextWidth = nextColWidths[index + 1] - anotherMinWidth + nextColWidths[index];
106
+ }
107
+
108
+ nextColWidths[index] = nextWidth;
109
+ nextColWidths[index + 1] = anotherWidth;
110
+ return nextColWidths;
111
+ });
112
+ }, [minColWidth]);
113
+ var getColgroupProps = React__default['default'].useCallback(function (column, index) {
114
+ var width = colWidths[index] || undefined;
115
+ return {
116
+ style: {
117
+ width: width,
118
+ // TODO(疑惑): minWidth 所要解决的问题
119
+ minWidth: width
120
+ } // 'data-hover-highlight': setAttrStatus(isHoveredCol(column.dataKey)),
121
+
122
+ };
123
+ }, [colWidths]);
124
+ return {
125
+ measureRowElementRef: measureRowElementRef,
126
+ onColumnResizable: onColumnResizable,
127
+ getColgroupProps: getColgroupProps,
128
+ setHeaderTableElement: setHeaderTableElement,
129
+ colWidths: colWidths
130
+ };
131
+ };
132
+
133
+ exports.useColWidth = useColWidth;
134
+ //# sourceMappingURL=use-col-width.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-col-width.js","sources":["../../../src/hooks/use-col-width.ts"],"sourcesContent":[null],"names":["useColWidth","columns","measureRowElementRef","useRef","React","useState","getGroupItemWidth","colWidths","setColWidths","useUpdateEffect","useEffect","measureRowElement","current","resizeObserver","ResizeObserver","childNodes","_realColumnsWidth","Array","from","map","node","getBoundingClientRect","width","observe","headerTableElement","setHeaderTableElement","minColWidth","useMemo","_minColWidth","th","className","offsetWidth","length","fill","onColumnResizable","useCallback","_","index","size","minWidth","anotherMinWidth","nextWidth","prev","nextColWidths","anotherWidth","getColgroupProps","column","undefined","style"],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ /** @LICENSE
2
+ * @hi-ui/table
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ var _typeof = require("@babel/runtime/helpers/typeof");
13
+
14
+ Object.defineProperty(exports, '__esModule', {
15
+ value: true
16
+ });
17
+
18
+ var React = require('react');
19
+
20
+ var treeUtils = require('@hi-ui/tree-utils');
21
+
22
+ var typeAssertion = require('@hi-ui/type-assertion');
23
+
24
+ function _interopDefaultLegacy(e) {
25
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
26
+ 'default': e
27
+ };
28
+ }
29
+
30
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
+
32
+ var useColumns = function useColumns(_ref) {
33
+ var columns = _ref.columns; // 拉平后的数据
34
+
35
+ var _React$useMemo = React__default['default'].useMemo(function () {
36
+ var clonedColumns = treeUtils.cloneTree(columns);
37
+ var maxDepth = 0; // @ts-ignore
38
+ // @ts-ignore
39
+
40
+ var flattedColumns = treeUtils.flattenTree(clonedColumns, function (node) {
41
+ var _a;
42
+
43
+ if (node.depth > maxDepth) {
44
+ maxDepth = node.depth;
45
+ }
46
+
47
+ var raw = node.raw;
48
+ return Object.assign(Object.assign({}, node), {
49
+ id: raw.dataKey,
50
+ width: raw.width,
51
+ // TODO: remove it
52
+ dataKey: raw.dataKey,
53
+ title: raw.title,
54
+ align: (_a = raw.align) !== null && _a !== void 0 ? _a : 'left',
55
+ render: raw.render
56
+ });
57
+ });
58
+ return [flattedColumns, maxDepth];
59
+ }, [columns]),
60
+ flattedColumns = _React$useMemo[0],
61
+ maxColumnDepth = _React$useMemo[1]; // 末级 column
62
+
63
+
64
+ var flattedColumnsWithoutChildren = React__default['default'].useMemo(function () {
65
+ return flattedColumns.filter(function (col) {
66
+ return !typeAssertion.isArrayNonEmpty(col.children);
67
+ });
68
+ }, [flattedColumns]);
69
+
70
+ var _React$useMemo2 = React__default['default'].useMemo(function () {
71
+ var preset = [];
72
+ var nextColumns = preset.concat( // @ts-ignore
73
+ // flattedColumns.filter((col) => isLeaf(col)) as FlattedTableColumnItemData[]
74
+ flattedColumns); // 表头分组
75
+ // 在最后一层,colSpan = 1, rowSpan = maxDepth - depth + 1
76
+ // 不在最后一层,rowSpan = 1, colSpan = 叶子节点后代数量
77
+ // 表头分组
78
+ // 在最后一层,colSpan = 1, rowSpan = maxDepth - depth + 1
79
+ // 不在最后一层,rowSpan = 1, colSpan = 叶子节点后代数量
80
+
81
+ flattedColumns.forEach(function (column) {
82
+ if (treeUtils.isLeaf(column)) {
83
+ column.rowSpan = maxColumnDepth - column.depth + 1;
84
+ column.colSpan = 1;
85
+ } else {
86
+ column.rowSpan = 1;
87
+ column.colSpan = treeUtils.getLeafChildren(column).length;
88
+ }
89
+ });
90
+ var leafColumns = flattedColumns.filter(function (col) {
91
+ return treeUtils.isLeaf(col);
92
+ });
93
+ var groupedColumns = treeUtils.groupByTreeDepth(nextColumns);
94
+ return [nextColumns, groupedColumns, leafColumns];
95
+ }, [flattedColumns, maxColumnDepth]),
96
+ mergedColumns = _React$useMemo2[0],
97
+ groupedColumns = _React$useMemo2[1],
98
+ leafColumns = _React$useMemo2[2];
99
+
100
+ return {
101
+ // getColgroupProps,
102
+ flattedColumns: flattedColumns,
103
+ mergedColumns: mergedColumns,
104
+ groupedColumns: groupedColumns,
105
+ leafColumns: leafColumns,
106
+ flattedColumnsWithoutChildren: flattedColumnsWithoutChildren
107
+ };
108
+ };
109
+
110
+ exports.useColumns = useColumns;
111
+ //# sourceMappingURL=use-colgroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-colgroup.js","sources":["../../../src/hooks/use-colgroup.ts"],"sourcesContent":[null],"names":["useColumns","columns","React","useMemo","clonedColumns","cloneTree","maxDepth","flattedColumns","flattenTree","node","depth","raw","id","dataKey","width","title","align","render","maxColumnDepth","flattedColumnsWithoutChildren","filter","col","isArrayNonEmpty","children","preset","nextColumns","concat","forEach","column","isLeaf","rowSpan","colSpan","getLeafChildren","length","leafColumns","groupedColumns","groupByTreeDepth","mergedColumns"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWaA,UAAU,GAAG,SAAbA,UAAa,KAAA;MAAGC,eAAAA;;uBAEcC,yBAAAA,CAAMC,OAAND,CAAc;QAC/CE,aAAa,GAAGC,mBAAAA,CAAUJ,OAAVI;QAClBC,QAAQ,GAAG;;;QAGTC,cAAc,GAAGC,qBAAAA,CAAYJ,aAAZI,EAA2B,UAACC,IAAD;;;UAC5CA,IAAI,CAACC,KAALD,GAAaH,UAAU;AACzBA,QAAAA,QAAQ,GAAGG,IAAI,CAACC,KAAhBJ;;;UAGIK,GAAG,GAAGF,IAAI,CAACE;6CAGZF;AACHG,QAAAA,EAAE,EAAED,GAAG,CAACE;AACRC,QAAAA,KAAK,EAAEH,GAAG,CAACG;;AAEXD,QAAAA,OAAO,EAAEF,GAAG,CAACE;AACbE,QAAAA,KAAK,EAAEJ,GAAG,CAACI;AACXC,QAAAA,KAAK,EAAE,MAAAL,GAAG,CAACK,KAAJ,UAAA,iBAAA,KAAA,GAAa;AACpBC,QAAAA,MAAM,EAAEN,GAAG,CAACM;;AAfkB,KAAXT;WAmBhB,CAACD,cAAD,EAAiBD,QAAjB;AAxBgC,GAAAJ,EAyBtC,CAACD,OAAD,CAzBsCC;MAAlCK,cAAP;MAAuBW,cAAvB;;;MA4BMC,6BAA6B,GAAGjB,yBAAAA,CAAMC,OAAND,CAAc;WAC3CK,cAAc,CAACa,MAAfb,CAAsB,UAACc,GAAD;aAAS,CAACC,6BAAAA,CAAgBD,GAAG,CAACE,QAApBD;AAAhC,KAAAf;AAD6B,GAAAL,EAEnC,CAACK,cAAD,CAFmCL;;wBAIeA,yBAAAA,CAAMC,OAAND,CAAc;QAC3DsB,MAAM,GAAiC;QAEvCC,WAAW,GAAGD,MAAM,CAACE,MAAPF;;AAGlBjB,IAAAA,cAHkBiB;;;;;;;AASpBjB,IAAAA,cAAc,CAACoB,OAAfpB,CAAuB,UAACqB,MAAD;UACjBC,gBAAAA,CAAOD,MAAPC,GAAgB;AAClBD,QAAAA,MAAM,CAACE,OAAPF,GAAiBV,cAAc,GAAGU,MAAM,CAAClB,KAAxBQ,GAAgC,CAAjDU;AACAA,QAAAA,MAAM,CAACG,OAAPH,GAAiB,CAAjBA;AAFF,aAGO;AACLA,QAAAA,MAAM,CAACE,OAAPF,GAAiB,CAAjBA;AACAA,QAAAA,MAAM,CAACG,OAAPH,GAAiBI,yBAAAA,CAAgBJ,MAAhBI,EAAwBC,MAAzCL;;AANJ,KAAArB;QAUM2B,WAAW,GAAG3B,cAAc,CAACa,MAAfb,CAAsB,UAACc,GAAD;aAASQ,gBAAAA,CAAOR,GAAPQ;AAA/B,KAAAtB;QACd4B,cAAc,GAAGC,0BAAAA,CAAiBX,WAAjBW;WAEhB,CAACX,WAAD,EAAcU,cAAd,EAA8BD,WAA9B;AAzB4C,GAAAhC,EA0BlD,CAACK,cAAD,EAAiBW,cAAjB,CA1BkDhB;MAA9CmC,aAAP;MAAsBF,cAAtB;MAAsCD,WAAtC;;SA4BO;;AAEL3B,IAAAA,cAAc,EAAdA,cAFK;AAGL8B,IAAAA,aAAa,EAAbA,aAHK;AAILF,IAAAA,cAAc,EAAdA,cAJK;AAKLD,IAAAA,WAAW,EAAXA,WALK;AAMLf,IAAAA,6BAA6B,EAA7BA;AANK;;;"}