@antv/gpt-vis 0.6.0 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/README.md +183 -114
  2. package/README.zh-CN.md +185 -112
  3. package/dist/cjs/gpt-vis/index.d.ts +108 -0
  4. package/dist/cjs/gpt-vis/index.js +173 -0
  5. package/dist/cjs/index.d.ts +44 -13
  6. package/dist/cjs/index.js +65 -35
  7. package/dist/cjs/syntax/index.d.ts +2 -0
  8. package/dist/cjs/{Text/mini-charts/hooks → syntax}/index.js +9 -7
  9. package/dist/cjs/syntax/parser.d.ts +67 -0
  10. package/dist/cjs/syntax/parser.js +235 -0
  11. package/dist/cjs/types/index.d.ts +33 -2
  12. package/dist/cjs/types/index.js +0 -6
  13. package/dist/cjs/util/theme.d.ts +21 -0
  14. package/dist/cjs/{theme.js → util/theme.js} +63 -14
  15. package/dist/cjs/vis/area/index.d.ts +60 -0
  16. package/dist/cjs/vis/area/index.js +151 -0
  17. package/dist/cjs/vis/bar/index.d.ts +60 -0
  18. package/dist/cjs/vis/bar/index.js +122 -0
  19. package/dist/cjs/vis/boxplot/index.d.ts +59 -0
  20. package/dist/cjs/vis/boxplot/index.js +106 -0
  21. package/dist/cjs/vis/column/index.d.ts +60 -0
  22. package/dist/cjs/vis/column/index.js +121 -0
  23. package/dist/cjs/vis/dual-axes/index.d.ts +64 -0
  24. package/dist/cjs/vis/dual-axes/index.js +147 -0
  25. package/dist/cjs/vis/funnel/index.d.ts +54 -0
  26. package/dist/cjs/vis/funnel/index.js +189 -0
  27. package/dist/cjs/vis/histogram/index.d.ts +47 -0
  28. package/dist/cjs/vis/histogram/index.js +112 -0
  29. package/dist/cjs/vis/line/index.d.ts +59 -0
  30. package/dist/cjs/vis/line/index.js +104 -0
  31. package/dist/cjs/vis/liquid/index.d.ts +44 -0
  32. package/dist/cjs/vis/liquid/index.js +87 -0
  33. package/dist/cjs/vis/pie/index.d.ts +55 -0
  34. package/dist/cjs/vis/pie/index.js +108 -0
  35. package/dist/cjs/vis/radar/index.d.ts +57 -0
  36. package/dist/cjs/vis/radar/index.js +152 -0
  37. package/dist/cjs/vis/sankey/index.d.ts +56 -0
  38. package/dist/cjs/vis/sankey/index.js +93 -0
  39. package/dist/cjs/vis/scatter/index.d.ts +54 -0
  40. package/dist/cjs/vis/scatter/index.js +94 -0
  41. package/dist/cjs/vis/summary/index.d.ts +41 -0
  42. package/dist/cjs/{Text/utils/getThemeColor.js → vis/summary/index.js} +33 -22
  43. package/dist/cjs/vis/table/index.d.ts +49 -0
  44. package/dist/cjs/vis/table/index.js +173 -0
  45. package/dist/cjs/vis/treemap/index.d.ts +68 -0
  46. package/dist/cjs/vis/treemap/index.js +105 -0
  47. package/dist/cjs/vis/venn/index.d.ts +54 -0
  48. package/dist/cjs/vis/venn/index.js +100 -0
  49. package/dist/cjs/vis/violin/index.d.ts +59 -0
  50. package/dist/cjs/vis/violin/index.js +155 -0
  51. package/dist/cjs/vis/waterfall/index.d.ts +67 -0
  52. package/dist/cjs/vis/waterfall/index.js +172 -0
  53. package/dist/cjs/vis/word-cloud/index.d.ts +53 -0
  54. package/dist/cjs/vis/word-cloud/index.js +89 -0
  55. package/dist/cjs/vis-wrapper/icons.d.ts +8 -0
  56. package/dist/cjs/vis-wrapper/icons.js +63 -0
  57. package/dist/cjs/vis-wrapper/index.d.ts +24 -0
  58. package/dist/cjs/vis-wrapper/index.js +231 -0
  59. package/dist/cjs/vis-wrapper/styles.d.ts +8 -0
  60. package/dist/cjs/vis-wrapper/styles.js +214 -0
  61. package/dist/esm/gpt-vis/index.d.ts +108 -0
  62. package/dist/esm/gpt-vis/index.js +224 -0
  63. package/dist/esm/index.d.ts +44 -13
  64. package/dist/esm/index.js +22 -15
  65. package/dist/esm/syntax/index.d.ts +2 -0
  66. package/dist/esm/syntax/index.js +1 -0
  67. package/dist/esm/syntax/parser.d.ts +67 -0
  68. package/dist/esm/syntax/parser.js +401 -0
  69. package/dist/esm/types/index.d.ts +33 -2
  70. package/dist/esm/types/index.js +0 -1
  71. package/dist/esm/util/theme.d.ts +21 -0
  72. package/dist/esm/util/theme.js +141 -0
  73. package/dist/esm/vis/area/index.d.ts +60 -0
  74. package/dist/esm/vis/area/index.js +230 -0
  75. package/dist/esm/vis/bar/index.d.ts +60 -0
  76. package/dist/esm/vis/bar/index.js +203 -0
  77. package/dist/esm/vis/boxplot/index.d.ts +59 -0
  78. package/dist/esm/vis/boxplot/index.js +164 -0
  79. package/dist/esm/vis/column/index.d.ts +60 -0
  80. package/dist/esm/vis/column/index.js +198 -0
  81. package/dist/esm/vis/dual-axes/index.d.ts +64 -0
  82. package/dist/esm/vis/dual-axes/index.js +234 -0
  83. package/dist/esm/vis/funnel/index.d.ts +54 -0
  84. package/dist/esm/vis/funnel/index.js +246 -0
  85. package/dist/esm/vis/histogram/index.d.ts +47 -0
  86. package/dist/esm/vis/histogram/index.js +148 -0
  87. package/dist/esm/vis/line/index.d.ts +59 -0
  88. package/dist/esm/vis/line/index.js +172 -0
  89. package/dist/esm/vis/liquid/index.d.ts +44 -0
  90. package/dist/esm/vis/liquid/index.js +130 -0
  91. package/dist/esm/vis/pie/index.d.ts +55 -0
  92. package/dist/esm/vis/pie/index.js +168 -0
  93. package/dist/esm/vis/radar/index.d.ts +57 -0
  94. package/dist/esm/vis/radar/index.js +222 -0
  95. package/dist/esm/vis/sankey/index.d.ts +56 -0
  96. package/dist/esm/vis/sankey/index.js +135 -0
  97. package/dist/esm/vis/scatter/index.d.ts +54 -0
  98. package/dist/esm/vis/scatter/index.js +158 -0
  99. package/dist/esm/vis/summary/index.d.ts +41 -0
  100. package/dist/esm/vis/summary/index.js +80 -0
  101. package/dist/esm/vis/table/index.d.ts +49 -0
  102. package/dist/esm/vis/table/index.js +160 -0
  103. package/dist/esm/vis/treemap/index.d.ts +68 -0
  104. package/dist/esm/vis/treemap/index.js +158 -0
  105. package/dist/esm/vis/venn/index.d.ts +54 -0
  106. package/dist/esm/vis/venn/index.js +142 -0
  107. package/dist/esm/vis/violin/index.d.ts +59 -0
  108. package/dist/esm/vis/violin/index.js +245 -0
  109. package/dist/esm/vis/waterfall/index.d.ts +67 -0
  110. package/dist/esm/vis/waterfall/index.js +245 -0
  111. package/dist/esm/vis/word-cloud/index.d.ts +53 -0
  112. package/dist/esm/vis/word-cloud/index.js +128 -0
  113. package/dist/esm/vis-wrapper/icons.d.ts +8 -0
  114. package/dist/esm/vis-wrapper/icons.js +29 -0
  115. package/dist/esm/vis-wrapper/index.d.ts +24 -0
  116. package/dist/esm/vis-wrapper/index.js +237 -0
  117. package/dist/esm/vis-wrapper/styles.d.ts +8 -0
  118. package/dist/esm/vis-wrapper/styles.js +21 -0
  119. package/dist/umd/index.min.js +1 -1
  120. package/package.json +26 -67
  121. package/src/gpt-vis/index.ts +283 -0
  122. package/src/index.ts +44 -0
  123. package/src/readme.md +37 -0
  124. package/src/syntax/index.ts +2 -0
  125. package/src/syntax/parser.ts +411 -0
  126. package/src/types/index.ts +29 -0
  127. package/src/util/theme.ts +167 -0
  128. package/src/vis/area/README.md +143 -0
  129. package/src/vis/area/index.ts +212 -0
  130. package/src/vis/bar/README.md +158 -0
  131. package/src/vis/bar/index.ts +186 -0
  132. package/src/vis/boxplot/README.md +168 -0
  133. package/src/vis/boxplot/index.ts +162 -0
  134. package/src/vis/column/README.md +158 -0
  135. package/src/vis/column/index.ts +185 -0
  136. package/src/vis/dual-axes/README.md +191 -0
  137. package/src/vis/dual-axes/index.ts +218 -0
  138. package/src/vis/funnel/README.md +143 -0
  139. package/src/vis/funnel/index.ts +238 -0
  140. package/src/vis/histogram/README.md +130 -0
  141. package/src/vis/histogram/index.ts +153 -0
  142. package/src/vis/line/README.md +138 -0
  143. package/src/vis/line/index.ts +159 -0
  144. package/src/vis/liquid/README.md +150 -0
  145. package/src/vis/liquid/index.ts +130 -0
  146. package/src/vis/pie/README.md +127 -0
  147. package/src/vis/pie/index.ts +163 -0
  148. package/src/vis/radar/README.md +184 -0
  149. package/src/vis/radar/index.ts +214 -0
  150. package/src/vis/sankey/README.md +144 -0
  151. package/src/vis/sankey/index.ts +144 -0
  152. package/src/vis/scatter/README.md +145 -0
  153. package/src/vis/scatter/index.ts +147 -0
  154. package/src/vis/summary/README.md +272 -0
  155. package/src/vis/summary/index.ts +91 -0
  156. package/src/vis/table/README.md +174 -0
  157. package/src/vis/table/index.ts +241 -0
  158. package/src/vis/treemap/README.md +199 -0
  159. package/src/vis/treemap/index.ts +167 -0
  160. package/src/vis/venn/README.md +153 -0
  161. package/src/vis/venn/index.ts +149 -0
  162. package/src/vis/violin/README.md +168 -0
  163. package/src/vis/violin/index.ts +216 -0
  164. package/src/vis/waterfall/README.md +178 -0
  165. package/src/vis/waterfall/index.ts +258 -0
  166. package/src/vis/word-cloud/README.md +137 -0
  167. package/src/vis/word-cloud/index.ts +137 -0
  168. package/src/vis-wrapper/README.md +159 -0
  169. package/src/vis-wrapper/icons.ts +35 -0
  170. package/src/vis-wrapper/index.ts +276 -0
  171. package/src/vis-wrapper/styles.ts +195 -0
  172. package/README.ja-JP.md +0 -164
  173. package/dist/cjs/Area/index.d.ts +0 -11
  174. package/dist/cjs/Area/index.js +0 -105
  175. package/dist/cjs/Bar/index.d.ts +0 -14
  176. package/dist/cjs/Bar/index.js +0 -101
  177. package/dist/cjs/Boxplot/index.d.ts +0 -11
  178. package/dist/cjs/Boxplot/index.js +0 -88
  179. package/dist/cjs/ChartCodeRender/Loading.d.ts +0 -6
  180. package/dist/cjs/ChartCodeRender/Loading.js +0 -54
  181. package/dist/cjs/ChartCodeRender/VisChart.d.ts +0 -19
  182. package/dist/cjs/ChartCodeRender/VisChart.js +0 -338
  183. package/dist/cjs/ChartCodeRender/icon.d.ts +0 -10
  184. package/dist/cjs/ChartCodeRender/icon.js +0 -162
  185. package/dist/cjs/ChartCodeRender/index.d.ts +0 -8
  186. package/dist/cjs/ChartCodeRender/index.js +0 -113
  187. package/dist/cjs/ChartCodeRender/styles.d.ts +0 -19
  188. package/dist/cjs/ChartCodeRender/styles.js +0 -232
  189. package/dist/cjs/ChartCodeRender/type.d.ts +0 -176
  190. package/dist/cjs/ChartCodeRender/type.js +0 -17
  191. package/dist/cjs/ChartCodeRender/utils.d.ts +0 -1
  192. package/dist/cjs/ChartCodeRender/utils.js +0 -51
  193. package/dist/cjs/Column/index.d.ts +0 -14
  194. package/dist/cjs/Column/index.js +0 -102
  195. package/dist/cjs/ConfigProvider/context.d.ts +0 -3
  196. package/dist/cjs/ConfigProvider/context.js +0 -41
  197. package/dist/cjs/ConfigProvider/hooks/index.d.ts +0 -1
  198. package/dist/cjs/ConfigProvider/hooks/index.js +0 -23
  199. package/dist/cjs/ConfigProvider/hooks/useConfig.d.ts +0 -13
  200. package/dist/cjs/ConfigProvider/hooks/useConfig.js +0 -109
  201. package/dist/cjs/ConfigProvider/index.d.ts +0 -7
  202. package/dist/cjs/ConfigProvider/index.js +0 -43
  203. package/dist/cjs/DualAxes/index.d.ts +0 -20
  204. package/dist/cjs/DualAxes/index.js +0 -84
  205. package/dist/cjs/DualAxes/util.d.ts +0 -9
  206. package/dist/cjs/DualAxes/util.js +0 -77
  207. package/dist/cjs/FishboneDiagram/index.d.ts +0 -7
  208. package/dist/cjs/FishboneDiagram/index.js +0 -66
  209. package/dist/cjs/FlowDiagram/helper.d.ts +0 -7
  210. package/dist/cjs/FlowDiagram/helper.js +0 -83
  211. package/dist/cjs/FlowDiagram/index.d.ts +0 -6
  212. package/dist/cjs/FlowDiagram/index.js +0 -107
  213. package/dist/cjs/Funnel/index.d.ts +0 -12
  214. package/dist/cjs/Funnel/index.js +0 -173
  215. package/dist/cjs/GPTVis/Lite.d.ts +0 -19
  216. package/dist/cjs/GPTVis/Lite.js +0 -81
  217. package/dist/cjs/GPTVis/hooks/useContext.d.ts +0 -8
  218. package/dist/cjs/GPTVis/hooks/useContext.js +0 -49
  219. package/dist/cjs/GPTVis/hooks/useEvent.d.ts +0 -1
  220. package/dist/cjs/GPTVis/hooks/useEvent.js +0 -33
  221. package/dist/cjs/GPTVis/index.d.ts +0 -6
  222. package/dist/cjs/GPTVis/index.js +0 -42
  223. package/dist/cjs/HeatMap/index.d.ts +0 -12
  224. package/dist/cjs/HeatMap/index.js +0 -67
  225. package/dist/cjs/Histogram/index.d.ts +0 -8
  226. package/dist/cjs/Histogram/index.js +0 -79
  227. package/dist/cjs/IndentedTree/index.d.ts +0 -7
  228. package/dist/cjs/IndentedTree/index.js +0 -78
  229. package/dist/cjs/Line/index.d.ts +0 -11
  230. package/dist/cjs/Line/index.js +0 -94
  231. package/dist/cjs/Liquid/index.d.ts +0 -11
  232. package/dist/cjs/Liquid/index.js +0 -85
  233. package/dist/cjs/Map/Component/MapView.d.ts +0 -3
  234. package/dist/cjs/Map/Component/MapView.js +0 -40
  235. package/dist/cjs/Map/Component/Marker.d.ts +0 -3
  236. package/dist/cjs/Map/Component/Marker.js +0 -53
  237. package/dist/cjs/Map/Component/Polyline.d.ts +0 -3
  238. package/dist/cjs/Map/Component/Polyline.js +0 -50
  239. package/dist/cjs/Map/Component/index.d.ts +0 -4
  240. package/dist/cjs/Map/Component/index.js +0 -45
  241. package/dist/cjs/Map/data.json +0 -305
  242. package/dist/cjs/Map/index.d.ts +0 -5
  243. package/dist/cjs/Map/index.js +0 -61
  244. package/dist/cjs/MindMap/index.d.ts +0 -7
  245. package/dist/cjs/MindMap/index.js +0 -75
  246. package/dist/cjs/NetworkGraph/index.d.ts +0 -6
  247. package/dist/cjs/NetworkGraph/index.js +0 -75
  248. package/dist/cjs/OrganizationChart/index.d.ts +0 -6
  249. package/dist/cjs/OrganizationChart/index.js +0 -95
  250. package/dist/cjs/PathMap/index.d.ts +0 -6
  251. package/dist/cjs/PathMap/index.js +0 -58
  252. package/dist/cjs/Pie/index.d.ts +0 -23
  253. package/dist/cjs/Pie/index.js +0 -94
  254. package/dist/cjs/PinMap/index.d.ts +0 -6
  255. package/dist/cjs/PinMap/index.js +0 -44
  256. package/dist/cjs/PinMap/maker.svg +0 -1
  257. package/dist/cjs/Radar/index.d.ts +0 -13
  258. package/dist/cjs/Radar/index.js +0 -153
  259. package/dist/cjs/Sankey/index.d.ts +0 -14
  260. package/dist/cjs/Sankey/index.js +0 -110
  261. package/dist/cjs/Scatter/index.d.ts +0 -13
  262. package/dist/cjs/Scatter/index.js +0 -103
  263. package/dist/cjs/Spreadsheet/index.d.ts +0 -28
  264. package/dist/cjs/Spreadsheet/index.js +0 -113
  265. package/dist/cjs/Table/index.d.ts +0 -9
  266. package/dist/cjs/Table/index.js +0 -91
  267. package/dist/cjs/Text/VisText.d.ts +0 -4
  268. package/dist/cjs/Text/VisText.js +0 -82
  269. package/dist/cjs/Text/config.d.ts +0 -18
  270. package/dist/cjs/Text/config.js +0 -91
  271. package/dist/cjs/Text/custom-icons/index.d.ts +0 -3
  272. package/dist/cjs/Text/custom-icons/index.js +0 -66
  273. package/dist/cjs/Text/index.d.ts +0 -3
  274. package/dist/cjs/Text/index.js +0 -42
  275. package/dist/cjs/Text/mini-charts/hooks/getElementFontSize.d.ts +0 -1
  276. package/dist/cjs/Text/mini-charts/hooks/getElementFontSize.js +0 -65
  277. package/dist/cjs/Text/mini-charts/hooks/index.d.ts +0 -1
  278. package/dist/cjs/Text/mini-charts/hooks/useSvgWrapper.d.ts +0 -5
  279. package/dist/cjs/Text/mini-charts/hooks/useSvgWrapper.js +0 -65
  280. package/dist/cjs/Text/mini-charts/index.d.ts +0 -2
  281. package/dist/cjs/Text/mini-charts/index.js +0 -25
  282. package/dist/cjs/Text/mini-charts/line/SingleLineChart.d.ts +0 -3
  283. package/dist/cjs/Text/mini-charts/line/SingleLineChart.js +0 -63
  284. package/dist/cjs/Text/mini-charts/line/index.d.ts +0 -1
  285. package/dist/cjs/Text/mini-charts/line/index.js +0 -29
  286. package/dist/cjs/Text/mini-charts/line/scaleLinear.d.ts +0 -4
  287. package/dist/cjs/Text/mini-charts/line/scaleLinear.js +0 -35
  288. package/dist/cjs/Text/mini-charts/line/useLineCompute.d.ts +0 -6
  289. package/dist/cjs/Text/mini-charts/line/useLineCompute.js +0 -103
  290. package/dist/cjs/Text/mini-charts/proportion/getArcPath.d.ts +0 -1
  291. package/dist/cjs/Text/mini-charts/proportion/getArcPath.js +0 -51
  292. package/dist/cjs/Text/mini-charts/proportion/index.d.ts +0 -3
  293. package/dist/cjs/Text/mini-charts/proportion/index.js +0 -71
  294. package/dist/cjs/Text/theme.d.ts +0 -24
  295. package/dist/cjs/Text/theme.js +0 -52
  296. package/dist/cjs/Text/types.d.ts +0 -20
  297. package/dist/cjs/Text/types.js +0 -17
  298. package/dist/cjs/Text/utils/getThemeColor.d.ts +0 -11
  299. package/dist/cjs/Text/utils/index.d.ts +0 -2
  300. package/dist/cjs/Text/utils/index.js +0 -25
  301. package/dist/cjs/Text/utils/useAntdDarkAlgorithm.d.ts +0 -2
  302. package/dist/cjs/Text/utils/useAntdDarkAlgorithm.js +0 -40
  303. package/dist/cjs/Treemap/index.d.ts +0 -10
  304. package/dist/cjs/Treemap/index.js +0 -93
  305. package/dist/cjs/Venn/index.d.ts +0 -32
  306. package/dist/cjs/Venn/index.js +0 -87
  307. package/dist/cjs/Violin/index.d.ts +0 -10
  308. package/dist/cjs/Violin/index.js +0 -190
  309. package/dist/cjs/Waterfall/index.d.ts +0 -25
  310. package/dist/cjs/Waterfall/index.js +0 -184
  311. package/dist/cjs/WordCloud/index.d.ts +0 -9
  312. package/dist/cjs/WordCloud/index.js +0 -76
  313. package/dist/cjs/constants/index.d.ts +0 -2
  314. package/dist/cjs/constants/index.js +0 -35
  315. package/dist/cjs/export-map.browser.d.ts +0 -4
  316. package/dist/cjs/export-map.browser.js +0 -48
  317. package/dist/cjs/export-map.d.ts +0 -10
  318. package/dist/cjs/export-map.js +0 -41
  319. package/dist/cjs/export.d.ts +0 -76
  320. package/dist/cjs/export.js +0 -159
  321. package/dist/cjs/render.d.ts +0 -2
  322. package/dist/cjs/render.js +0 -67
  323. package/dist/cjs/theme.d.ts +0 -2
  324. package/dist/cjs/types/chart.d.ts +0 -88
  325. package/dist/cjs/types/chart.js +0 -61
  326. package/dist/cjs/types/config.d.ts +0 -25
  327. package/dist/cjs/types/config.js +0 -17
  328. package/dist/cjs/types/map.d.ts +0 -242
  329. package/dist/cjs/types/map.js +0 -17
  330. package/dist/cjs/utils/config.d.ts +0 -5
  331. package/dist/cjs/utils/config.js +0 -76
  332. package/dist/cjs/utils/graph.d.ts +0 -18
  333. package/dist/cjs/utils/graph.js +0 -64
  334. package/dist/cjs/utils/index.d.ts +0 -1
  335. package/dist/cjs/utils/index.js +0 -23
  336. package/dist/cjs/utils/map/context.d.ts +0 -3
  337. package/dist/cjs/utils/map/context.js +0 -45
  338. package/dist/cjs/utils/map/controls.d.ts +0 -0
  339. package/dist/cjs/utils/map/controls.js +0 -0
  340. package/dist/cjs/utils/map/index.d.ts +0 -6
  341. package/dist/cjs/utils/map/index.js +0 -33
  342. package/dist/cjs/utils/map/markers.d.ts +0 -2
  343. package/dist/cjs/utils/map/markers.js +0 -88
  344. package/dist/cjs/utils/map/polyline.d.ts +0 -2
  345. package/dist/cjs/utils/map/polyline.js +0 -52
  346. package/dist/cjs/utils/map/style.d.ts +0 -45
  347. package/dist/cjs/utils/map/style.js +0 -112
  348. package/dist/cjs/utils/map/util.d.ts +0 -1
  349. package/dist/cjs/utils/map/util.js +0 -38
  350. package/dist/cjs/utils/map/view.d.ts +0 -5
  351. package/dist/cjs/utils/map/view.js +0 -100
  352. package/dist/cjs/utils/palette.d.ts +0 -2
  353. package/dist/cjs/utils/palette.js +0 -54
  354. package/dist/cjs/utils/plot.d.ts +0 -5
  355. package/dist/cjs/utils/plot.js +0 -90
  356. package/dist/cjs/version.d.ts +0 -2
  357. package/dist/cjs/version.js +0 -25
  358. package/dist/esm/Area/index.d.ts +0 -11
  359. package/dist/esm/Area/index.js +0 -108
  360. package/dist/esm/Bar/index.d.ts +0 -14
  361. package/dist/esm/Bar/index.js +0 -92
  362. package/dist/esm/Boxplot/index.d.ts +0 -11
  363. package/dist/esm/Boxplot/index.js +0 -86
  364. package/dist/esm/ChartCodeRender/Loading.d.ts +0 -6
  365. package/dist/esm/ChartCodeRender/Loading.js +0 -21
  366. package/dist/esm/ChartCodeRender/VisChart.d.ts +0 -19
  367. package/dist/esm/ChartCodeRender/VisChart.js +0 -450
  368. package/dist/esm/ChartCodeRender/icon.d.ts +0 -10
  369. package/dist/esm/ChartCodeRender/icon.js +0 -103
  370. package/dist/esm/ChartCodeRender/index.d.ts +0 -8
  371. package/dist/esm/ChartCodeRender/index.js +0 -99
  372. package/dist/esm/ChartCodeRender/styles.d.ts +0 -19
  373. package/dist/esm/ChartCodeRender/styles.js +0 -61
  374. package/dist/esm/ChartCodeRender/type.d.ts +0 -176
  375. package/dist/esm/ChartCodeRender/type.js +0 -1
  376. package/dist/esm/ChartCodeRender/utils.d.ts +0 -1
  377. package/dist/esm/ChartCodeRender/utils.js +0 -37
  378. package/dist/esm/Column/index.d.ts +0 -14
  379. package/dist/esm/Column/index.js +0 -93
  380. package/dist/esm/ConfigProvider/context.d.ts +0 -3
  381. package/dist/esm/ConfigProvider/context.js +0 -3
  382. package/dist/esm/ConfigProvider/hooks/index.d.ts +0 -1
  383. package/dist/esm/ConfigProvider/hooks/index.js +0 -1
  384. package/dist/esm/ConfigProvider/hooks/useConfig.d.ts +0 -13
  385. package/dist/esm/ConfigProvider/hooks/useConfig.js +0 -71
  386. package/dist/esm/ConfigProvider/index.d.ts +0 -7
  387. package/dist/esm/ConfigProvider/index.js +0 -17
  388. package/dist/esm/DualAxes/index.d.ts +0 -20
  389. package/dist/esm/DualAxes/index.js +0 -77
  390. package/dist/esm/DualAxes/util.d.ts +0 -9
  391. package/dist/esm/DualAxes/util.js +0 -77
  392. package/dist/esm/FishboneDiagram/index.d.ts +0 -7
  393. package/dist/esm/FishboneDiagram/index.js +0 -43
  394. package/dist/esm/FlowDiagram/helper.d.ts +0 -7
  395. package/dist/esm/FlowDiagram/helper.js +0 -76
  396. package/dist/esm/FlowDiagram/index.d.ts +0 -6
  397. package/dist/esm/FlowDiagram/index.js +0 -72
  398. package/dist/esm/Funnel/index.d.ts +0 -12
  399. package/dist/esm/Funnel/index.js +0 -171
  400. package/dist/esm/GPTVis/Lite.d.ts +0 -19
  401. package/dist/esm/GPTVis/Lite.js +0 -57
  402. package/dist/esm/GPTVis/hooks/useContext.d.ts +0 -8
  403. package/dist/esm/GPTVis/hooks/useContext.js +0 -9
  404. package/dist/esm/GPTVis/hooks/useEvent.d.ts +0 -1
  405. package/dist/esm/GPTVis/hooks/useEvent.js +0 -6
  406. package/dist/esm/GPTVis/index.d.ts +0 -6
  407. package/dist/esm/GPTVis/index.js +0 -25
  408. package/dist/esm/HeatMap/index.d.ts +0 -12
  409. package/dist/esm/HeatMap/index.js +0 -45
  410. package/dist/esm/Histogram/index.d.ts +0 -8
  411. package/dist/esm/Histogram/index.js +0 -75
  412. package/dist/esm/IndentedTree/index.d.ts +0 -7
  413. package/dist/esm/IndentedTree/index.js +0 -68
  414. package/dist/esm/Line/index.d.ts +0 -11
  415. package/dist/esm/Line/index.js +0 -92
  416. package/dist/esm/Liquid/index.d.ts +0 -11
  417. package/dist/esm/Liquid/index.js +0 -100
  418. package/dist/esm/Map/Component/MapView.d.ts +0 -3
  419. package/dist/esm/Map/Component/MapView.js +0 -18
  420. package/dist/esm/Map/Component/Marker.d.ts +0 -3
  421. package/dist/esm/Map/Component/Marker.js +0 -40
  422. package/dist/esm/Map/Component/Polyline.d.ts +0 -3
  423. package/dist/esm/Map/Component/Polyline.js +0 -35
  424. package/dist/esm/Map/Component/index.d.ts +0 -4
  425. package/dist/esm/Map/Component/index.js +0 -4
  426. package/dist/esm/Map/data.json +0 -305
  427. package/dist/esm/Map/index.d.ts +0 -5
  428. package/dist/esm/Map/index.js +0 -50
  429. package/dist/esm/MindMap/index.d.ts +0 -7
  430. package/dist/esm/MindMap/index.js +0 -69
  431. package/dist/esm/NetworkGraph/index.d.ts +0 -6
  432. package/dist/esm/NetworkGraph/index.js +0 -64
  433. package/dist/esm/OrganizationChart/index.d.ts +0 -6
  434. package/dist/esm/OrganizationChart/index.js +0 -75
  435. package/dist/esm/PathMap/index.d.ts +0 -6
  436. package/dist/esm/PathMap/index.js +0 -41
  437. package/dist/esm/Pie/index.d.ts +0 -23
  438. package/dist/esm/Pie/index.js +0 -96
  439. package/dist/esm/PinMap/index.d.ts +0 -6
  440. package/dist/esm/PinMap/index.js +0 -22
  441. package/dist/esm/PinMap/maker.svg +0 -1
  442. package/dist/esm/Radar/index.d.ts +0 -13
  443. package/dist/esm/Radar/index.js +0 -150
  444. package/dist/esm/Sankey/index.d.ts +0 -14
  445. package/dist/esm/Sankey/index.js +0 -98
  446. package/dist/esm/Scatter/index.d.ts +0 -13
  447. package/dist/esm/Scatter/index.js +0 -95
  448. package/dist/esm/Spreadsheet/index.d.ts +0 -28
  449. package/dist/esm/Spreadsheet/index.js +0 -129
  450. package/dist/esm/Table/index.d.ts +0 -9
  451. package/dist/esm/Table/index.js +0 -30
  452. package/dist/esm/Text/VisText.d.ts +0 -4
  453. package/dist/esm/Text/VisText.js +0 -55
  454. package/dist/esm/Text/config.d.ts +0 -18
  455. package/dist/esm/Text/config.js +0 -82
  456. package/dist/esm/Text/custom-icons/index.d.ts +0 -3
  457. package/dist/esm/Text/custom-icons/index.js +0 -37
  458. package/dist/esm/Text/index.d.ts +0 -3
  459. package/dist/esm/Text/index.js +0 -2
  460. package/dist/esm/Text/mini-charts/hooks/getElementFontSize.d.ts +0 -1
  461. package/dist/esm/Text/mini-charts/hooks/getElementFontSize.js +0 -32
  462. package/dist/esm/Text/mini-charts/hooks/index.d.ts +0 -1
  463. package/dist/esm/Text/mini-charts/hooks/index.js +0 -1
  464. package/dist/esm/Text/mini-charts/hooks/useSvgWrapper.d.ts +0 -5
  465. package/dist/esm/Text/mini-charts/hooks/useSvgWrapper.js +0 -37
  466. package/dist/esm/Text/mini-charts/index.d.ts +0 -2
  467. package/dist/esm/Text/mini-charts/index.js +0 -2
  468. package/dist/esm/Text/mini-charts/line/SingleLineChart.d.ts +0 -3
  469. package/dist/esm/Text/mini-charts/line/SingleLineChart.js +0 -62
  470. package/dist/esm/Text/mini-charts/line/index.d.ts +0 -1
  471. package/dist/esm/Text/mini-charts/line/index.js +0 -1
  472. package/dist/esm/Text/mini-charts/line/scaleLinear.d.ts +0 -4
  473. package/dist/esm/Text/mini-charts/line/scaleLinear.js +0 -19
  474. package/dist/esm/Text/mini-charts/line/useLineCompute.d.ts +0 -6
  475. package/dist/esm/Text/mini-charts/line/useLineCompute.js +0 -118
  476. package/dist/esm/Text/mini-charts/proportion/getArcPath.d.ts +0 -1
  477. package/dist/esm/Text/mini-charts/proportion/getArcPath.js +0 -19
  478. package/dist/esm/Text/mini-charts/proportion/index.d.ts +0 -3
  479. package/dist/esm/Text/mini-charts/proportion/index.js +0 -64
  480. package/dist/esm/Text/theme.d.ts +0 -24
  481. package/dist/esm/Text/theme.js +0 -24
  482. package/dist/esm/Text/types.d.ts +0 -20
  483. package/dist/esm/Text/types.js +0 -1
  484. package/dist/esm/Text/utils/getThemeColor.d.ts +0 -11
  485. package/dist/esm/Text/utils/getThemeColor.js +0 -29
  486. package/dist/esm/Text/utils/index.d.ts +0 -2
  487. package/dist/esm/Text/utils/index.js +0 -2
  488. package/dist/esm/Text/utils/useAntdDarkAlgorithm.d.ts +0 -2
  489. package/dist/esm/Text/utils/useAntdDarkAlgorithm.js +0 -14
  490. package/dist/esm/Treemap/index.d.ts +0 -10
  491. package/dist/esm/Treemap/index.js +0 -88
  492. package/dist/esm/Venn/index.d.ts +0 -32
  493. package/dist/esm/Venn/index.js +0 -69
  494. package/dist/esm/Violin/index.d.ts +0 -10
  495. package/dist/esm/Violin/index.js +0 -199
  496. package/dist/esm/Waterfall/index.d.ts +0 -25
  497. package/dist/esm/Waterfall/index.js +0 -185
  498. package/dist/esm/WordCloud/index.d.ts +0 -9
  499. package/dist/esm/WordCloud/index.js +0 -59
  500. package/dist/esm/constants/index.d.ts +0 -2
  501. package/dist/esm/constants/index.js +0 -9
  502. package/dist/esm/export-map.browser.d.ts +0 -4
  503. package/dist/esm/export-map.browser.js +0 -5
  504. package/dist/esm/export-map.d.ts +0 -10
  505. package/dist/esm/export-map.js +0 -9
  506. package/dist/esm/export.d.ts +0 -76
  507. package/dist/esm/export.js +0 -51
  508. package/dist/esm/render.d.ts +0 -2
  509. package/dist/esm/render.js +0 -32
  510. package/dist/esm/theme.d.ts +0 -2
  511. package/dist/esm/theme.js +0 -103
  512. package/dist/esm/types/chart.d.ts +0 -88
  513. package/dist/esm/types/chart.js +0 -33
  514. package/dist/esm/types/config.d.ts +0 -25
  515. package/dist/esm/types/config.js +0 -1
  516. package/dist/esm/types/map.d.ts +0 -242
  517. package/dist/esm/types/map.js +0 -1
  518. package/dist/esm/utils/config.d.ts +0 -5
  519. package/dist/esm/utils/config.js +0 -53
  520. package/dist/esm/utils/graph.d.ts +0 -18
  521. package/dist/esm/utils/graph.js +0 -55
  522. package/dist/esm/utils/index.d.ts +0 -1
  523. package/dist/esm/utils/index.js +0 -1
  524. package/dist/esm/utils/map/context.d.ts +0 -3
  525. package/dist/esm/utils/map/context.js +0 -42
  526. package/dist/esm/utils/map/controls.d.ts +0 -0
  527. package/dist/esm/utils/map/controls.js +0 -0
  528. package/dist/esm/utils/map/index.d.ts +0 -6
  529. package/dist/esm/utils/map/index.js +0 -6
  530. package/dist/esm/utils/map/markers.d.ts +0 -2
  531. package/dist/esm/utils/map/markers.js +0 -69
  532. package/dist/esm/utils/map/polyline.d.ts +0 -2
  533. package/dist/esm/utils/map/polyline.js +0 -31
  534. package/dist/esm/utils/map/style.d.ts +0 -45
  535. package/dist/esm/utils/map/style.js +0 -80
  536. package/dist/esm/utils/map/util.d.ts +0 -1
  537. package/dist/esm/utils/map/util.js +0 -11
  538. package/dist/esm/utils/map/view.d.ts +0 -5
  539. package/dist/esm/utils/map/view.js +0 -83
  540. package/dist/esm/utils/palette.d.ts +0 -2
  541. package/dist/esm/utils/palette.js +0 -2
  542. package/dist/esm/utils/plot.d.ts +0 -5
  543. package/dist/esm/utils/plot.js +0 -86
  544. package/dist/esm/version.d.ts +0 -2
  545. package/dist/esm/version.js +0 -1
  546. package/dist/umd/737.async.js +0 -1
  547. package/dist/umd/index.min.css +0 -1
@@ -0,0 +1,91 @@
1
+ import { Text } from '@antv/t8';
2
+ import type { VisualizationOptions } from '../../types';
3
+
4
+ /**
5
+ * SummaryConfig is a T8 Syntax string for narrative text visualization.
6
+ * Supports markdown-like syntax with special annotations for metrics.
7
+ * @example
8
+ * ```
9
+ * # Sales Report
10
+ * Total sales reached [¥1,234,567](metric_value, origin=1234567).
11
+ * ```
12
+ */
13
+ export type SummaryConfig = string;
14
+
15
+ /**
16
+ * SummaryInstance represents a summary instance with render and destroy methods.
17
+ */
18
+ export interface SummaryInstance {
19
+ render: (syntax: SummaryConfig) => void;
20
+ destroy: () => void;
21
+ }
22
+
23
+ /**
24
+ * Summary component using @antv/t8 for narrative text visualization.
25
+ *
26
+ * This component provides a way to render data summaries with rich text formatting
27
+ * and inline data visualization using T8 syntax (markdown-like syntax).
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const summary = Summary({
32
+ * container: '#container',
33
+ * theme: 'light',
34
+ * });
35
+ *
36
+ * summary.render(`
37
+ * # Sales Report
38
+ * Total sales reached [¥1,234,567](metric_value, origin=1234567).
39
+ * This represents a [15%](delta_value, status=increase) increase compared to last quarter.
40
+ * `);
41
+ *
42
+ * summary.destroy();
43
+ * ```
44
+ */
45
+ export const Summary = (options: VisualizationOptions): SummaryInstance => {
46
+ // T8 only supports 'light' and 'dark', so map 'academy' to 'light'
47
+ let { theme = 'light' } = options;
48
+ if (theme === 'academy' || theme === 'default') theme = 'light';
49
+ const container =
50
+ typeof options.container === 'string'
51
+ ? document.querySelector(options.container)
52
+ : options.container;
53
+
54
+ if (!container) {
55
+ throw new Error('Container not found');
56
+ }
57
+
58
+ let text: Text | null = null;
59
+
60
+ /**
61
+ * Render the summary with the given T8 syntax string.
62
+ */
63
+ const render = (syntax: SummaryConfig): void => {
64
+ // Clean up previous instance if exists
65
+ if (text) {
66
+ text.unmount();
67
+ }
68
+
69
+ // Create T8 Text instance
70
+ text = new Text(container as HTMLElement);
71
+
72
+ // Set theme and render syntax
73
+ text.theme(theme);
74
+ text.render(syntax);
75
+ };
76
+
77
+ /**
78
+ * Destroy the summary instance and clean up resources.
79
+ */
80
+ const destroy = (): void => {
81
+ if (text) {
82
+ text.unmount();
83
+ text = null;
84
+ }
85
+ };
86
+
87
+ return {
88
+ render,
89
+ destroy,
90
+ };
91
+ };
@@ -0,0 +1,174 @@
1
+ # Table
2
+
3
+ A table component for displaying structured data in rows and columns, built with pure JavaScript.
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ import { Table } from '@antv/gpt-vis/ai';
9
+
10
+ const table = Table({
11
+ container: '#container',
12
+ width: 600,
13
+ height: 400,
14
+ });
15
+
16
+ table.render({
17
+ type: 'table',
18
+ data: [
19
+ {
20
+ Indicator: '经度(°)',
21
+ Mean: '104.15°',
22
+ Std: '±0.64°',
23
+ Range: '103.19-105.28',
24
+ Q1Q3: '103.62-104.68°',
25
+ },
26
+ {
27
+ Indicator: '纬度(°)',
28
+ Mean: '31.60°',
29
+ Std: '±0.48°',
30
+ Range: '30.89-32.45°',
31
+ Q1Q3: '31.21-32.00°',
32
+ },
33
+ { Indicator: '深度(km)', Mean: '11.82', Std: '±5.67', Range: '3.0-34.8', Q1Q3: '10.0-10.0' },
34
+ { Indicator: '震级(mag)', Mean: '5.29', Std: '±0.49', Range: '5.0-7.9', Q1Q3: '5.0-5.4' },
35
+ ],
36
+ title: '一个文本标题',
37
+ });
38
+
39
+ table.destroy();
40
+ ```
41
+
42
+ ## Configuration
43
+
44
+ ### Constructor Options (VisualizationOptions)
45
+
46
+ | Property | Type | Default | Description |
47
+ | --------- | --------------------- | ------- | ----------------------------- |
48
+ | container | string \| HTMLElement | - | Container element or selector |
49
+ | width | number | 640 | Chart width in pixels |
50
+ | height | number | 480 | Chart height in pixels |
51
+
52
+ ### Render Config (TableConfig)
53
+
54
+ | Property | Type | Default | Description |
55
+ | -------- | --------------------- | ------- | ---------------------- |
56
+ | data | Record<string, any>[] | - | Table data array |
57
+ | type | string | 'table' | Chart type identifier |
58
+ | title | string | - | Table title (optional) |
59
+
60
+ ### Data Structure
61
+
62
+ The `data` property should be an array of objects where each object represents a row in the table. The keys of the objects will be used as column headers.
63
+
64
+ ```ts
65
+ type TableData = Record<string, any>[];
66
+ ```
67
+
68
+ ## Features
69
+
70
+ - **Pure JavaScript**: No React or other framework dependencies
71
+ - **Scoped CSS**: Dynamic CSS injection with automatic scoping to avoid style conflicts
72
+ - **Responsive**: Automatically adapts to container size
73
+ - **Hover Effects**: Interactive row highlighting on hover
74
+ - **Clean Styling**: Modern, minimalist design with proper spacing and borders
75
+
76
+ ## Examples
77
+
78
+ ### Basic Table
79
+
80
+ ```ts
81
+ table.render({
82
+ data: [
83
+ { 类别: '火锅', '营收额占比(%)': 22 },
84
+ { 类别: '自助餐', '营收额占比(%)': 12 },
85
+ { 类别: '小吃快餐', '营收额占比(%)': 8 },
86
+ { 类别: '西餐', '营收额占比(%)': 6 },
87
+ { 类别: '其它', '营收额占比(%)': 44 },
88
+ ],
89
+ });
90
+ ```
91
+
92
+ ### Table with Title
93
+
94
+ ```ts
95
+ table.render({
96
+ data: [
97
+ { 类别: '火锅', '营收额占比(%)': 22 },
98
+ { 类别: '自助餐', '营收额占比(%)': 12 },
99
+ { 类别: '小吃快餐', '营收额占比(%)': 8 },
100
+ { 类别: '西餐', '营收额占比(%)': 6 },
101
+ { 类别: '其它', '营收额占比(%)': 44 },
102
+ ],
103
+ title: '餐饮业营收额数据表',
104
+ });
105
+ ```
106
+
107
+ ### Population Distribution Table
108
+
109
+ ```ts
110
+ table.render({
111
+ data: [
112
+ { 人口类型: '城镇人口', '数量(万人)': 63.89 },
113
+ { 人口类型: '乡村人口', '数量(万人)': 36.11 },
114
+ ],
115
+ title: '全国人口居住分布',
116
+ });
117
+ ```
118
+
119
+ ### Industrial Structure Table
120
+
121
+ ```ts
122
+ table.render({
123
+ data: [
124
+ { 产业类型: '第一产业', '产值(亿元)': 7200.0 },
125
+ { 产业类型: '第二产业', '产值(亿元)': 36600.0 },
126
+ { 产业类型: '第三产业', '产值(亿元)': 41000.0 },
127
+ ],
128
+ });
129
+ ```
130
+
131
+ ### Seismic Data Table
132
+
133
+ ```ts
134
+ table.render({
135
+ data: [
136
+ {
137
+ Indicator: '经度(°)',
138
+ Mean: '104.15°',
139
+ Std: '±0.64°',
140
+ Range: '103.19-105.28',
141
+ Q1Q3: '103.62-104.68°',
142
+ },
143
+ {
144
+ Indicator: '纬度(°)',
145
+ Mean: '31.60°',
146
+ Std: '±0.48°',
147
+ Range: '30.89-32.45°',
148
+ Q1Q3: '31.21-32.00°',
149
+ },
150
+ { Indicator: '深度(km)', Mean: '11.82', Std: '±5.67', Range: '3.0-34.8', Q1Q3: '10.0-10.0' },
151
+ { Indicator: '震级(mag)', Mean: '5.29', Std: '±0.49', Range: '5.0-7.9', Q1Q3: '5.0-5.4' },
152
+ ],
153
+ title: '地震数据统计表',
154
+ });
155
+ ```
156
+
157
+ ## Methods
158
+
159
+ - `render(config: TableConfig): void` - Render or update the table
160
+ - `destroy(): void` - Destroy the table instance and clean up resources (including injected styles)
161
+
162
+ ## Use Cases
163
+
164
+ - Displaying structured data like reports, lists, and detail tables
165
+ - Comparing multiple data items with several attributes
166
+ - Presenting statistical data in a clear, organized format
167
+ - When data needs to be searchable, sortable, or filterable
168
+ - Financial statements, scorecards, product lists, etc.
169
+
170
+ ## When Not to Use
171
+
172
+ - When data has hierarchical or network relationships (use tree or graph visualizations instead)
173
+ - When you need to emphasize data distribution, trends, or proportions (use charts like bar, line, or pie instead)
174
+ - When the dataset is extremely large with many fields (consider pagination or grouping)
@@ -0,0 +1,241 @@
1
+ import { measureText } from 'measury';
2
+
3
+ import type { VisualizationOptions } from '../../types';
4
+
5
+ /**
6
+ * TableConfig defines the configuration for rendering the table.
7
+ */
8
+ export interface TableConfig {
9
+ type?: 'table';
10
+ data: Record<string, any>[];
11
+ title?: string;
12
+ }
13
+
14
+ /**
15
+ * TableInstance represents a table instance with render and destroy methods.
16
+ */
17
+ export interface TableInstance {
18
+ render: (config: TableConfig) => void;
19
+ destroy: () => void;
20
+ }
21
+
22
+ const SCOPE_ID = '__gpt-vis-table__';
23
+ const FONT_FAMILY =
24
+ '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';
25
+ const CELL_PADDING = 16; // 8px * 2
26
+ const MIN_WIDTH_MULTIPLIER = 1.1;
27
+
28
+ // CSS styles for the table component
29
+ const TABLE_STYLES = `
30
+ .${SCOPE_ID} {
31
+ font-family: ${FONT_FAMILY};
32
+ overflow: auto;
33
+ height: 100%;
34
+ }
35
+
36
+ .${SCOPE_ID} .table-title {
37
+ font-size: 16px;
38
+ font-weight: 500;
39
+ margin-bottom: 12px;
40
+ color: #1d2129;
41
+ }
42
+
43
+ .${SCOPE_ID} table {
44
+ border-collapse: separate;
45
+ border-spacing: 0;
46
+ background: #fff;
47
+ border-radius: 8px;
48
+ overflow: hidden;
49
+ }
50
+
51
+ .${SCOPE_ID} th,
52
+ .${SCOPE_ID} td {
53
+ border-bottom: 1px solid #f0f0f0;
54
+ padding: 8px;
55
+ text-align: left;
56
+ font-size: 14px;
57
+ color: #333;
58
+ white-space: nowrap;
59
+ }
60
+
61
+ .${SCOPE_ID} th {
62
+ background: #f5f5f5;
63
+ font-weight: 600;
64
+ color: #000000e0;
65
+ position: relative;
66
+ }
67
+
68
+ .${SCOPE_ID} th:not(:last-child)::after {
69
+ content: '';
70
+ position: absolute;
71
+ top: 25%;
72
+ right: 0;
73
+ width: 1px;
74
+ height: 50%;
75
+ background: #e0e0e0;
76
+ }
77
+
78
+ .${SCOPE_ID} tr {
79
+ transition: background 0.2s;
80
+ }
81
+
82
+ .${SCOPE_ID} tbody tr:hover {
83
+ background: #f5f5f5;
84
+ cursor: pointer;
85
+ }
86
+ `;
87
+
88
+ /**
89
+ * Calculate the minimum width needed for a table based on its data.
90
+ * This is a pure function that measures text width and returns the calculated min-width.
91
+ *
92
+ * @param data - Table data array
93
+ * @param columns - Column names array
94
+ * @returns Calculated minimum width in pixels
95
+ */
96
+ export const calculateTableMinWidth = (data: Record<string, any>[], columns: string[]): number => {
97
+ let maxRowWidth = 0;
98
+
99
+ // Measure header row
100
+ const headerWidth = columns.reduce((total, col) => {
101
+ const metrics = measureText(String(col), {
102
+ fontFamily: FONT_FAMILY,
103
+ fontSize: 14,
104
+ fontWeight: '600',
105
+ });
106
+ return total + metrics.width + CELL_PADDING;
107
+ }, 0);
108
+ maxRowWidth = Math.max(maxRowWidth, headerWidth);
109
+
110
+ // Measure each data row
111
+ data.forEach((row) => {
112
+ const rowText = columns.map((col) => String(row[col] != null ? row[col] : '')).join('');
113
+ const metrics = measureText(rowText, {
114
+ fontFamily: FONT_FAMILY,
115
+ fontSize: 14,
116
+ });
117
+ const rowWidth = metrics.width + columns.length * CELL_PADDING;
118
+ maxRowWidth = Math.max(maxRowWidth, rowWidth);
119
+ });
120
+
121
+ // Return min-width with 110% multiplier for optimal spacing
122
+ return maxRowWidth * MIN_WIDTH_MULTIPLIER;
123
+ };
124
+
125
+ // Inject CSS into the document head if not already present
126
+ const injectStyles = (): void => {
127
+ if (document.querySelector(`style[data-scope="${SCOPE_ID}"]`)) {
128
+ return;
129
+ }
130
+ const styleElement = document.createElement('style');
131
+ styleElement.setAttribute('data-scope', SCOPE_ID);
132
+ styleElement.textContent = TABLE_STYLES;
133
+ document.head.appendChild(styleElement);
134
+ };
135
+
136
+ /**
137
+ * Table component using pure JavaScript.
138
+ *
139
+ * @example
140
+ * ```ts
141
+ * const table = Table({
142
+ * container: '#container',
143
+ * width: 600,
144
+ * height: 400,
145
+ * });
146
+ *
147
+ * table.render({
148
+ * type: 'table',
149
+ * data: [
150
+ * { "Indicator": "经度(°)", "Mean": "104.15°", "Std": "±0.64°" },
151
+ * { "Indicator": "纬度(°)", "Mean": "31.60°", "Std": "±0.48°" },
152
+ * ],
153
+ * title: '一个文本标题',
154
+ * });
155
+ *
156
+ * table.destroy();
157
+ * ```
158
+ */
159
+ export const Table = (options: VisualizationOptions): TableInstance => {
160
+ const container =
161
+ typeof options.container === 'string'
162
+ ? document.querySelector(options.container)
163
+ : options.container;
164
+
165
+ if (!container) {
166
+ throw new Error('Container not found');
167
+ }
168
+
169
+ let tableWrapper: HTMLDivElement | null = null;
170
+
171
+ /**
172
+ * Render the table with the given configuration.
173
+ */
174
+ const render = (config: TableConfig): void => {
175
+ const { data = [], title } = config;
176
+
177
+ // Inject styles if not already present
178
+ injectStyles();
179
+
180
+ // Clean up previous render
181
+ if (tableWrapper) {
182
+ tableWrapper.remove();
183
+ }
184
+
185
+ // Create wrapper element
186
+ tableWrapper = document.createElement('div');
187
+ tableWrapper.className = SCOPE_ID;
188
+
189
+ // Handle empty data case
190
+ if (data.length === 0) {
191
+ tableWrapper.innerHTML = `
192
+ ${title ? `<div class="table-title">${title}</div>` : ''}
193
+ <div style="padding: 20px; text-align: center; color: #999;">No data available</div>
194
+ `;
195
+ container.appendChild(tableWrapper);
196
+ return;
197
+ }
198
+
199
+ // Get columns from the first data item
200
+ const columns = Object.keys(data[0]);
201
+
202
+ // Calculate the minimum width needed for the table using pure function
203
+ let minWidth = calculateTableMinWidth(data, columns);
204
+ // Ensure a minimum width for columns
205
+ minWidth = Math.max(minWidth, columns.length * 100);
206
+
207
+ // Build table HTML using template strings
208
+ const headerHTML = columns.map((col) => `<th>${col}</th>`).join('');
209
+ const bodyHTML = data
210
+ .map(
211
+ (row) =>
212
+ `<tr>${columns.map((col) => `<td>${row[col] != null ? row[col] : ''}</td>`).join('')}</tr>`,
213
+ )
214
+ .join('');
215
+
216
+ tableWrapper.innerHTML = `
217
+ ${title ? `<div class="table-title">${title}</div>` : ''}
218
+ <table style="min-width: ${minWidth}px;">
219
+ <thead><tr>${headerHTML}</tr></thead>
220
+ <tbody>${bodyHTML}</tbody>
221
+ </table>
222
+ `;
223
+
224
+ container.appendChild(tableWrapper);
225
+ };
226
+
227
+ /**
228
+ * Destroy the table instance and clean up resources.
229
+ */
230
+ const destroy = (): void => {
231
+ if (tableWrapper) {
232
+ tableWrapper.remove();
233
+ tableWrapper = null;
234
+ }
235
+ };
236
+
237
+ return {
238
+ render,
239
+ destroy,
240
+ };
241
+ };
@@ -0,0 +1,199 @@
1
+ # Treemap
2
+
3
+ A treemap chart component for visualizing hierarchical data structures, built with G2 5.0.
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ import { Treemap } from '@antv/gpt-vis/ai';
9
+
10
+ const treemap = Treemap({
11
+ container: '#container',
12
+ width: 600,
13
+ height: 400,
14
+ });
15
+
16
+ treemap.render({
17
+ data: [
18
+ {
19
+ name: 'A',
20
+ value: 100,
21
+ children: [
22
+ { name: 'A1', value: 40 },
23
+ { name: 'A2', value: 30 },
24
+ { name: 'A3', value: 30 },
25
+ ],
26
+ },
27
+ {
28
+ name: 'B',
29
+ value: 80,
30
+ children: [
31
+ { name: 'B1', value: 50 },
32
+ { name: 'B2', value: 30 },
33
+ ],
34
+ },
35
+ ],
36
+ });
37
+
38
+ treemap.destroy();
39
+ ```
40
+
41
+ ## Configuration
42
+
43
+ ### Constructor Options (TreemapOptions)
44
+
45
+ | Property | Type | Default | Description |
46
+ | --------- | --------------------- | ------- | ----------------------------- |
47
+ | container | string \| HTMLElement | - | Container element or selector |
48
+ | width | number | 640 | Chart width in pixels |
49
+ | height | number | 480 | Chart height in pixels |
50
+
51
+ ### Render Config (TreemapConfig)
52
+
53
+ | Property | Type | Default | Description |
54
+ | -------- | ------ | --------- | ------------------------- |
55
+ | data | Array | - | Hierarchical data array |
56
+ | theme | string | 'default' | Color theme |
57
+ | title | string | - | Chart title |
58
+ | style | object | - | Chart style configuration |
59
+
60
+ ### Data Structure
61
+
62
+ ```ts
63
+ type TreemapDataItem = {
64
+ name: string; // Category name
65
+ value: number; // Numeric value
66
+ children?: TreemapDataItem[]; // Optional nested children
67
+ };
68
+ ```
69
+
70
+ ### Style Options
71
+
72
+ ```ts
73
+ style?: {
74
+ backgroundColor?: string; // Background color
75
+ palette?: string[]; // Color palette
76
+ }
77
+ ```
78
+
79
+ ## Examples
80
+
81
+ ### Basic Example
82
+
83
+ ```ts
84
+ treemap.render({
85
+ data: [
86
+ {
87
+ name: '产品A',
88
+ value: 500,
89
+ children: [
90
+ { name: '子产品A1', value: 200 },
91
+ { name: '子产品A2', value: 300 },
92
+ ],
93
+ },
94
+ { name: '产品B', value: 400 },
95
+ ],
96
+ });
97
+ ```
98
+
99
+ ### With Theme
100
+
101
+ ```ts
102
+ treemap.render({
103
+ data: [
104
+ {
105
+ name: 'A',
106
+ value: 100,
107
+ children: [
108
+ { name: 'A1', value: 40 },
109
+ { name: 'A2', value: 30 },
110
+ { name: 'A3', value: 30 },
111
+ ],
112
+ },
113
+ ],
114
+ theme: 'academy',
115
+ });
116
+ ```
117
+
118
+ ### With Title
119
+
120
+ ```ts
121
+ treemap.render({
122
+ data: [
123
+ {
124
+ name: '苹果',
125
+ value: 800,
126
+ children: [
127
+ { name: '红富士', value: 400 },
128
+ { name: '黄元帅', value: 400 },
129
+ ],
130
+ },
131
+ { name: '橙子', value: 600 },
132
+ { name: '香蕉', value: 500 },
133
+ ],
134
+ title: '水果销售量',
135
+ });
136
+ ```
137
+
138
+ ### With Custom Styles
139
+
140
+ ```ts
141
+ treemap.render({
142
+ data: [
143
+ { name: 'A', value: 100 },
144
+ { name: 'B', value: 80 },
145
+ { name: 'C', value: 60 },
146
+ ],
147
+ style: {
148
+ palette: ['#FF6B6B', '#4ECDC4', '#45B7D1'],
149
+ },
150
+ });
151
+ ```
152
+
153
+ ### Dark Theme
154
+
155
+ ```ts
156
+ treemap.render({
157
+ data: [
158
+ {
159
+ name: 'A',
160
+ value: 100,
161
+ children: [
162
+ { name: 'A1', value: 40 },
163
+ { name: 'A2', value: 30 },
164
+ { name: 'A3', value: 30 },
165
+ ],
166
+ },
167
+ ],
168
+ theme: 'dark',
169
+ });
170
+ ```
171
+
172
+ ### Multiple Levels
173
+
174
+ ```ts
175
+ treemap.render({
176
+ data: [
177
+ {
178
+ name: '部门A',
179
+ value: 200,
180
+ children: [
181
+ {
182
+ name: '组A1',
183
+ value: 100,
184
+ children: [
185
+ { name: '成员1', value: 50 },
186
+ { name: '成员2', value: 50 },
187
+ ],
188
+ },
189
+ { name: '组A2', value: 100 },
190
+ ],
191
+ },
192
+ ],
193
+ });
194
+ ```
195
+
196
+ ## Methods
197
+
198
+ - `render(config: TreemapConfig): void` - Render or update the chart
199
+ - `destroy(): void` - Destroy the chart instance and clean up resources