@loom-framework/core 0.1.0-alpha.84 → 0.1.0-alpha.85

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 (302) hide show
  1. package/builtin-skills/antd/SKILL.md +266 -0
  2. package/builtin-skills/antv-g2-chart/SKILL.md +1067 -0
  3. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-intro.md +176 -0
  4. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-keyframe.md +149 -0
  5. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-types.md +253 -0
  6. package/builtin-skills/antv-g2-chart/references/components/g2-comp-annotation.md +237 -0
  7. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-config.md +648 -0
  8. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-radar.md +219 -0
  9. package/builtin-skills/antv-g2-chart/references/components/g2-comp-label-config.md +174 -0
  10. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-category.md +278 -0
  11. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-config.md +363 -0
  12. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-continuous.md +264 -0
  13. package/builtin-skills/antv-g2-chart/references/components/g2-comp-scrollbar.md +276 -0
  14. package/builtin-skills/antv-g2-chart/references/components/g2-comp-slider.md +333 -0
  15. package/builtin-skills/antv-g2-chart/references/components/g2-comp-title.md +149 -0
  16. package/builtin-skills/antv-g2-chart/references/components/g2-comp-tooltip-config.md +358 -0
  17. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-circle.md +97 -0
  18. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-rect.md +241 -0
  19. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geo-map.md +210 -0
  20. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geoview.md +143 -0
  21. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-repeat-matrix.md +171 -0
  22. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-flex.md +142 -0
  23. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-layer.md +149 -0
  24. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-timing-keyframe.md +91 -0
  25. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-view.md +309 -0
  26. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-chart-selection.md +235 -0
  27. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-color-theory.md +287 -0
  28. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-visual-channels.md +180 -0
  29. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-cartesian.md +131 -0
  30. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-fisheye.md +131 -0
  31. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-helix.md +141 -0
  32. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-parallel.md +129 -0
  33. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-polar.md +143 -0
  34. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-radial.md +214 -0
  35. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-theta.md +171 -0
  36. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-transpose.md +195 -0
  37. package/builtin-skills/antv-g2-chart/references/core/g2-core-chart-init.md +266 -0
  38. package/builtin-skills/antv-g2-chart/references/core/g2-core-encode-channel.md +197 -0
  39. package/builtin-skills/antv-g2-chart/references/core/g2-core-view-composition.md +224 -0
  40. package/builtin-skills/antv-g2-chart/references/data/g2-data-ema.md +190 -0
  41. package/builtin-skills/antv-g2-chart/references/data/g2-data-fetch.md +167 -0
  42. package/builtin-skills/antv-g2-chart/references/data/g2-data-filter.md +212 -0
  43. package/builtin-skills/antv-g2-chart/references/data/g2-data-fold.md +260 -0
  44. package/builtin-skills/antv-g2-chart/references/data/g2-data-format-tabular.md +280 -0
  45. package/builtin-skills/antv-g2-chart/references/data/g2-data-kde.md +426 -0
  46. package/builtin-skills/antv-g2-chart/references/data/g2-data-log.md +140 -0
  47. package/builtin-skills/antv-g2-chart/references/data/g2-data-slice.md +147 -0
  48. package/builtin-skills/antv-g2-chart/references/data/g2-data-sort.md +251 -0
  49. package/builtin-skills/antv-g2-chart/references/data/g2-data-sortby.md +183 -0
  50. package/builtin-skills/antv-g2-chart/references/data/g2-data-transform-patterns.md +394 -0
  51. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-adaptive-filter.md +118 -0
  52. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-axis.md +112 -0
  53. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-filter.md +122 -0
  54. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-x-y-highlight.md +127 -0
  55. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-xy.md +118 -0
  56. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush.md +184 -0
  57. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-filter.md +170 -0
  58. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-highlight.md +186 -0
  59. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-filter.md +170 -0
  60. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-highlight.md +185 -0
  61. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-chart-index.md +127 -0
  62. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-drilldown.md +149 -0
  63. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight-by.md +125 -0
  64. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight.md +235 -0
  65. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-hover-scale.md +109 -0
  66. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-point-move.md +152 -0
  67. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select-by.md +133 -0
  68. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select.md +249 -0
  69. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-fisheye.md +117 -0
  70. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-filter.md +130 -0
  71. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-highlight.md +130 -0
  72. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-poptip.md +105 -0
  73. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-scrollbar-filter.md +144 -0
  74. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-filter.md +231 -0
  75. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-wheel.md +138 -0
  76. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-tooltip.md +192 -0
  77. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-treemap-drilldown.md +152 -0
  78. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-contrast-reverse.md +170 -0
  79. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-exceed-adjust.md +146 -0
  80. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-hide.md +185 -0
  81. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-stroke.md +147 -0
  82. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-dodge-y.md +225 -0
  83. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-hide.md +213 -0
  84. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-diagram.md +196 -0
  85. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-donut.md +148 -0
  86. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-pie.md +212 -0
  87. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-basic.md +168 -0
  88. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-stacked.md +150 -0
  89. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-beeswarm.md +134 -0
  90. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bi-directional-bar.md +297 -0
  91. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-box-boxplot.md +163 -0
  92. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-boxplot.md +340 -0
  93. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bullet.md +203 -0
  94. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-cell-heatmap.md +370 -0
  95. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-chord.md +341 -0
  96. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-connector.md +126 -0
  97. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-contourline.md +243 -0
  98. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-density.md +457 -0
  99. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-distribution-curve.md +298 -0
  100. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-funnel.md +329 -0
  101. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gantt.md +208 -0
  102. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gauge.md +247 -0
  103. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-heatmap.md +130 -0
  104. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-histogram.md +186 -0
  105. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-image.md +129 -0
  106. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-basic.md +528 -0
  107. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-grouped.md +161 -0
  108. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-normalized.md +147 -0
  109. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-stacked.md +183 -0
  110. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-k-chart.md +237 -0
  111. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-basic.md +353 -0
  112. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-multi.md +156 -0
  113. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-linex-liney.md +176 -0
  114. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-link.md +134 -0
  115. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-liquid.md +125 -0
  116. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-mosaic.md +257 -0
  117. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-pack.md +424 -0
  118. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-parallel.md +195 -0
  119. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-partition.md +275 -0
  120. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-path.md +135 -0
  121. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-bubble.md +138 -0
  122. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-scatter.md +177 -0
  123. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-polygon.md +130 -0
  124. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radar.md +231 -0
  125. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radial-bar.md +226 -0
  126. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-range-rangey.md +253 -0
  127. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rangex.md +293 -0
  128. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rect.md +115 -0
  129. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-regression-curve.md +276 -0
  130. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rose.md +182 -0
  131. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sankey.md +217 -0
  132. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-shape.md +160 -0
  133. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-spiral.md +257 -0
  134. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sunburst.md +327 -0
  135. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-text.md +309 -0
  136. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-tree.md +235 -0
  137. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-treemap.md +426 -0
  138. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-vector.md +108 -0
  139. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-venn.md +204 -0
  140. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-violin.md +307 -0
  141. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-wordcloud.md +155 -0
  142. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category10.md +196 -0
  143. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category20.md +238 -0
  144. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-performance.md +181 -0
  145. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-responsive.md +232 -0
  146. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-v4-to-v5.md +223 -0
  147. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-band.md +127 -0
  148. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-linear.md +259 -0
  149. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-log.md +226 -0
  150. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-ordinal.md +135 -0
  151. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-point.md +242 -0
  152. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-pow-sqrt.md +124 -0
  153. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-quantile-quantize.md +119 -0
  154. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-sequential.md +267 -0
  155. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-threshold.md +133 -0
  156. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-time.md +159 -0
  157. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-builtin.md +192 -0
  158. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-custom.md +183 -0
  159. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-bin.md +153 -0
  160. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-binx.md +133 -0
  161. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-diffy.md +130 -0
  162. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-dodgex.md +90 -0
  163. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-flexx.md +115 -0
  164. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-group.md +233 -0
  165. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupcolor.md +182 -0
  166. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupx.md +265 -0
  167. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupy.md +167 -0
  168. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitter.md +149 -0
  169. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitterx.md +177 -0
  170. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jittery.md +177 -0
  171. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-normalizey.md +83 -0
  172. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-pack.md +164 -0
  173. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sample.md +143 -0
  174. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-select.md +147 -0
  175. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selectx.md +179 -0
  176. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selecty.md +179 -0
  177. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sort-color.md +115 -0
  178. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sortx.md +285 -0
  179. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sorty.md +117 -0
  180. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stack-enter.md +158 -0
  181. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stacky.md +218 -0
  182. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-symmetryy.md +122 -0
  183. package/builtin-skills/chart-visualization/SKILL.md +101 -0
  184. package/{templates/loom-skill → builtin-skills/loom}/SKILL.md +20 -9
  185. package/{templates/loom-skill → builtin-skills/loom}/references/README.md +3 -3
  186. package/dist/capability-generator.d.ts +1 -1
  187. package/dist/capability-generator.js +3 -3
  188. package/dist/capability-generator.js.map +1 -1
  189. package/dist/cli/commands/generate-page.d.ts.map +1 -1
  190. package/dist/cli/commands/generate-page.js +1 -163
  191. package/dist/cli/commands/generate-page.js.map +1 -1
  192. package/dist/cli/commands/init.d.ts.map +1 -1
  193. package/dist/cli/commands/init.js +57 -294
  194. package/dist/cli/commands/init.js.map +1 -1
  195. package/dist/cli/generators/capability-generator.d.ts +35 -0
  196. package/dist/cli/generators/capability-generator.d.ts.map +1 -0
  197. package/dist/cli/generators/capability-generator.js +115 -0
  198. package/dist/cli/generators/capability-generator.js.map +1 -0
  199. package/dist/cli/helpers/column-template.d.ts +18 -0
  200. package/dist/cli/helpers/column-template.d.ts.map +1 -0
  201. package/dist/cli/helpers/column-template.js +151 -0
  202. package/dist/cli/helpers/column-template.js.map +1 -0
  203. package/dist/cli/helpers/field-template.d.ts +4 -0
  204. package/dist/cli/helpers/field-template.d.ts.map +1 -1
  205. package/dist/cli/helpers/field-template.js +4 -3
  206. package/dist/cli/helpers/field-template.js.map +1 -1
  207. package/dist/cli/templates/backend-entry.d.ts +5 -0
  208. package/dist/cli/templates/backend-entry.d.ts.map +1 -0
  209. package/dist/cli/templates/backend-entry.js +17 -0
  210. package/dist/cli/templates/backend-entry.js.map +1 -0
  211. package/dist/cli/templates/frontend-entry.d.ts +11 -0
  212. package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
  213. package/dist/cli/templates/frontend-entry.js +77 -0
  214. package/dist/cli/templates/frontend-entry.js.map +1 -0
  215. package/dist/cli/templates/gitignore.d.ts +5 -0
  216. package/dist/cli/templates/gitignore.d.ts.map +1 -0
  217. package/dist/cli/templates/gitignore.js +13 -0
  218. package/dist/cli/templates/gitignore.js.map +1 -0
  219. package/dist/cli/templates/index.d.ts +12 -0
  220. package/dist/cli/templates/index.d.ts.map +1 -0
  221. package/dist/cli/templates/index.js +12 -0
  222. package/dist/cli/templates/index.js.map +1 -0
  223. package/dist/cli/templates/loom-config.d.ts +10 -0
  224. package/dist/cli/templates/loom-config.d.ts.map +1 -0
  225. package/dist/cli/templates/loom-config.js +31 -0
  226. package/dist/cli/templates/loom-config.js.map +1 -0
  227. package/dist/cli/templates/package-json.d.ts +9 -0
  228. package/dist/cli/templates/package-json.d.ts.map +1 -0
  229. package/dist/cli/templates/package-json.js +39 -0
  230. package/dist/cli/templates/package-json.js.map +1 -0
  231. package/dist/cli/templates/readme.d.ts +9 -0
  232. package/dist/cli/templates/readme.d.ts.map +1 -0
  233. package/dist/cli/templates/readme.js +47 -0
  234. package/dist/cli/templates/readme.js.map +1 -0
  235. package/dist/cli/templates/tsconfig.d.ts +6 -0
  236. package/dist/cli/templates/tsconfig.d.ts.map +1 -0
  237. package/dist/cli/templates/tsconfig.js +41 -0
  238. package/dist/cli/templates/tsconfig.js.map +1 -0
  239. package/dist/cli/templates/vite-config.d.ts +5 -0
  240. package/dist/cli/templates/vite-config.d.ts.map +1 -0
  241. package/dist/cli/templates/vite-config.js +24 -0
  242. package/dist/cli/templates/vite-config.js.map +1 -0
  243. package/dist/commands.d.ts +1 -5
  244. package/dist/commands.d.ts.map +1 -1
  245. package/dist/commands.js +0 -11
  246. package/dist/commands.js.map +1 -1
  247. package/dist/config.d.ts +15 -122
  248. package/dist/config.d.ts.map +1 -1
  249. package/dist/config.js +2 -52
  250. package/dist/config.js.map +1 -1
  251. package/dist/dashboard-config.d.ts +117 -0
  252. package/dist/dashboard-config.d.ts.map +1 -0
  253. package/dist/dashboard-config.js +59 -0
  254. package/dist/dashboard-config.js.map +1 -0
  255. package/dist/index.d.ts +2 -2
  256. package/dist/index.d.ts.map +1 -1
  257. package/dist/index.js +1 -1
  258. package/dist/index.js.map +1 -1
  259. package/dist/server-bin.js +30 -62
  260. package/dist/server-bin.js.map +1 -1
  261. package/dist/types/adapter.d.ts +28 -0
  262. package/dist/types/adapter.d.ts.map +1 -0
  263. package/dist/types/adapter.js +5 -0
  264. package/dist/types/adapter.js.map +1 -0
  265. package/dist/types/ai.d.ts +52 -0
  266. package/dist/types/ai.d.ts.map +1 -0
  267. package/dist/types/ai.js +5 -0
  268. package/dist/types/ai.js.map +1 -0
  269. package/dist/types/chat.d.ts +46 -0
  270. package/dist/types/chat.d.ts.map +1 -0
  271. package/dist/types/chat.js +5 -0
  272. package/dist/types/chat.js.map +1 -0
  273. package/dist/types/command.d.ts +25 -0
  274. package/dist/types/command.d.ts.map +1 -0
  275. package/dist/types/command.js +5 -0
  276. package/dist/types/command.js.map +1 -0
  277. package/dist/types/config.d.ts +30 -0
  278. package/dist/types/config.d.ts.map +1 -0
  279. package/dist/types/config.js +5 -0
  280. package/dist/types/config.js.map +1 -0
  281. package/dist/types/dashboard.d.ts +42 -0
  282. package/dist/types/dashboard.d.ts.map +1 -0
  283. package/dist/types/dashboard.js +5 -0
  284. package/dist/types/dashboard.js.map +1 -0
  285. package/dist/types/index.d.ts +14 -0
  286. package/dist/types/index.d.ts.map +1 -0
  287. package/dist/types/index.js +8 -0
  288. package/dist/types/index.js.map +1 -0
  289. package/dist/types/model.d.ts +59 -0
  290. package/dist/types/model.d.ts.map +1 -0
  291. package/dist/types/model.js +5 -0
  292. package/dist/types/model.js.map +1 -0
  293. package/dist/types.d.ts +4 -250
  294. package/dist/types.d.ts.map +1 -1
  295. package/dist/types.js +4 -3
  296. package/dist/types.js.map +1 -1
  297. package/package.json +2 -2
  298. /package/{templates → builtin-skills}/app-skill/SKILL.md +0 -0
  299. /package/{templates → builtin-skills}/app-skill/references/data-semantics.md +0 -0
  300. /package/{templates → builtin-skills}/app-skill/references/models.md +0 -0
  301. /package/{templates/loom-skill → builtin-skills/loom}/references/dashboard.md +0 -0
  302. /package/{templates/loom-skill → builtin-skills/loom}/references/data-model.md +0 -0
@@ -0,0 +1,394 @@
1
+ ---
2
+ id: "g2-data-transform-patterns"
3
+ title: "G2 数据转换模式"
4
+ description: |
5
+ G2 可视化前最常用的数据预处理模式:宽转长(fold)、分组聚合、
6
+ 百分比计算、排名/排序、数据过滤、时间粒度聚合。
7
+ 这些模式既可在 JavaScript 前端完成,也可使用 G2 的内置 data transform。
8
+
9
+ library: "g2"
10
+ version: "5.x"
11
+ category: "data"
12
+ tags:
13
+ - "数据转换"
14
+ - "数据处理"
15
+ - "宽转长"
16
+ - "fold"
17
+ - "分组聚合"
18
+ - "百分比"
19
+ - "排序"
20
+ - "时间聚合"
21
+
22
+ related:
23
+ - "g2-data-fold"
24
+ - "g2-data-filter"
25
+ - "g2-data-sort"
26
+ - "g2-data-slice"
27
+
28
+ use_cases:
29
+ - "将 API 返回的宽表转为 G2 需要的长表"
30
+ - "前端对数据进行聚合、排名、百分比计算"
31
+ - "为不同图表类型准备对应格式的数据"
32
+
33
+ difficulty: "intermediate"
34
+ completeness: "full"
35
+ created: "2024-01-01"
36
+ updated: "2025-03-27"
37
+ author: "antv-team"
38
+ ---
39
+
40
+ ## 核心概念
41
+
42
+ **数据转换有两种方式**:
43
+
44
+ 1. **JavaScript 前端预处理**:在传入 G2 之前用 JS 函数处理
45
+ 2. **G2 内置 data transform**:配置在 `data.transform` 中,声明式处理
46
+
47
+ **推荐**:优先使用 G2 内置 transform,代码更简洁、可序列化。
48
+
49
+ ## 模式 1:宽表转长表(Wide to Long)
50
+
51
+ **场景**:后端返回每列一个指标的宽表,需转为每行一个观测值的长表
52
+
53
+ **JavaScript 方式**:
54
+ ```javascript
55
+ // 输入:宽表
56
+ const wideData = [
57
+ { month: 'Jan', 北京: 3.6, 上海: 4.3, 广州: 2.8 },
58
+ { month: 'Feb', 北京: 3.8, 上海: 4.5, 广州: 3.0 },
59
+ ];
60
+
61
+ function wideToLong(data, idCols, valueCols, keyName = 'key', valueName = 'value') {
62
+ return data.flatMap(row =>
63
+ valueCols.map(col => ({
64
+ ...Object.fromEntries(idCols.map(id => [id, row[id]])),
65
+ [keyName]: col,
66
+ [valueName]: row[col],
67
+ }))
68
+ );
69
+ }
70
+
71
+ const longData = wideToLong(wideData, ['month'], ['北京', '上海', '广州'], 'city', 'gdp');
72
+ // 输出:
73
+ // [
74
+ // { month: 'Jan', city: '北京', gdp: 3.6 },
75
+ // { month: 'Jan', city: '上海', gdp: 4.3 },
76
+ // ...
77
+ // ]
78
+ ```
79
+
80
+ **G2 内置方案**(推荐):
81
+ ```javascript
82
+ chart.options({
83
+ type: 'interval',
84
+ data: {
85
+ type: 'inline',
86
+ value: wideData,
87
+ transform: [{
88
+ type: 'fold',
89
+ fields: ['北京', '上海', '广州'],
90
+ key: 'city',
91
+ value: 'gdp',
92
+ }],
93
+ },
94
+ encode: { x: 'month', y: 'gdp', color: 'city' },
95
+ });
96
+ ```
97
+
98
+ ## 模式 2:分组聚合(Group + Aggregate)
99
+
100
+ **场景**:按某字段分组,对另一字段求和/均值/计数
101
+
102
+ **JavaScript 方式**:
103
+ ```javascript
104
+ // 输入:明细数据
105
+ const orderData = [
106
+ { month: 'Jan', region: '华东', amount: 1200 },
107
+ { month: 'Jan', region: '华东', amount: 800 },
108
+ { month: 'Jan', region: '华南', amount: 950 },
109
+ { month: 'Feb', region: '华东', amount: 1500 },
110
+ ];
111
+
112
+ function groupSum(data, groupKeys, sumKey) {
113
+ const map = new Map();
114
+ data.forEach(row => {
115
+ const key = groupKeys.map(k => row[k]).join('|');
116
+ if (!map.has(key)) {
117
+ const group = Object.fromEntries(groupKeys.map(k => [k, row[k]]));
118
+ group[sumKey] = 0;
119
+ map.set(key, group);
120
+ }
121
+ map.get(key)[sumKey] += row[sumKey];
122
+ });
123
+ return Array.from(map.values());
124
+ }
125
+
126
+ const aggregated = groupSum(orderData, ['month', 'region'], 'amount');
127
+ // 输出:
128
+ // [
129
+ // { month: 'Jan', region: '华东', amount: 2000 },
130
+ // { month: 'Jan', region: '华南', amount: 950 },
131
+ // { month: 'Feb', region: '华东', amount: 1500 },
132
+ // ]
133
+ ```
134
+
135
+ **G2 内置方案**(使用 mark transform):
136
+ ```javascript
137
+ chart.options({
138
+ type: 'interval',
139
+ orderData,
140
+ encode: { x: 'month', y: 'amount', color: 'region' },
141
+ transform: [{ type: 'groupX', y: 'sum' }], // 按 x 分组求和
142
+ });
143
+ ```
144
+
145
+ ## 模式 3:百分比计算
146
+
147
+ **场景**:计算每个类别占总量的百分比(饼图标签、百分比柱状图)
148
+
149
+ **JavaScript 方式**:
150
+ ```javascript
151
+ function addPercentage(data, valueKey, pctKey = 'pct') {
152
+ const total = data.reduce((sum, d) => sum + (d[valueKey] || 0), 0);
153
+ return data.map(d => ({
154
+ ...d,
155
+ [pctKey]: total > 0 ? ((d[valueKey] / total) * 100).toFixed(1) : '0.0',
156
+ }));
157
+ }
158
+
159
+ const dataWithPct = addPercentage(
160
+ [{ city: '北京', gdp: 3.6 }, { city: '上海', gdp: 4.3 }, { city: '广州', gdp: 2.8 }],
161
+ 'gdp'
162
+ );
163
+ // 输出:[{ city: '北京', gdp: 3.6, pct: '33.6' }, ...]
164
+ ```
165
+
166
+ **G2 内置方案**(百分比柱状图):
167
+ ```javascript
168
+ chart.options({
169
+ type: 'interval',
170
+ data,
171
+ encode: { x: 'city', y: 'gdp', color: 'city' },
172
+ transform: [{ type: 'normalizeY' }], // Y 轴归一化为百分比
173
+ });
174
+ ```
175
+
176
+ **在饼图标签中使用百分比**:
177
+ ```javascript
178
+ const total = data.reduce((sum, d) => sum + d.value, 0);
179
+
180
+ chart.options({
181
+ type: 'interval',
182
+ data,
183
+ encode: { y: 'value', color: 'type' },
184
+ transform: [{ type: 'stackY' }],
185
+ coordinate: { type: 'theta' },
186
+ labels: [{
187
+ text: (d) => `${d.type}\n${((d.value / total) * 100).toFixed(1)}%`,
188
+ position: 'outside',
189
+ }],
190
+ });
191
+ ```
192
+
193
+ ## 模式 4:排名 / Top N
194
+
195
+ **场景**:取数值最大/最小的 N 条数据,用于排名图
196
+
197
+ **JavaScript 方式**:
198
+ ```javascript
199
+ function topN(data, valueKey, n, ascending = false) {
200
+ return [...data]
201
+ .sort((a, b) => ascending ? a[valueKey] - b[valueKey] : b[valueKey] - a[valueKey])
202
+ .slice(0, n);
203
+ }
204
+
205
+ const top5Cities = topN(cityData, 'gdp', 5);
206
+ ```
207
+
208
+ **G2 内置方案**:
209
+ ```javascript
210
+ chart.options({
211
+ type: 'interval',
212
+ data: {
213
+ type: 'inline',
214
+ value: cityData,
215
+ transform: [
216
+ { type: 'sortBy', fields: [['gdp', false]] }, // 按 gdp 降序
217
+ { type: 'slice', end: 5 }, // 只取前 5 条
218
+ ],
219
+ },
220
+ encode: { x: 'city', y: 'gdp' },
221
+ });
222
+ ```
223
+
224
+ ## 模式 5:时间粒度聚合
225
+
226
+ **场景**:日粒度数据聚合为周/月/季度
227
+
228
+ **JavaScript 方式**:
229
+ ```javascript
230
+ // 日粒度 → 月粒度聚合
231
+ function aggregateByMonth(data, dateKey, valueKey) {
232
+ const map = new Map();
233
+ data.forEach(d => {
234
+ const date = new Date(d[dateKey]);
235
+ const monthKey = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}`;
236
+ if (!map.has(monthKey)) {
237
+ map.set(monthKey, { month: monthKey, total: 0, count: 0 });
238
+ }
239
+ const entry = map.get(monthKey);
240
+ entry.total += d[valueKey];
241
+ entry.count += 1;
242
+ });
243
+ return Array.from(map.values())
244
+ .map(({ month, total, count }) => ({
245
+ month,
246
+ value: total,
247
+ avg: total / count,
248
+ }))
249
+ .sort((a, b) => a.month.localeCompare(b.month));
250
+ }
251
+
252
+ // 月粒度 → 季度粒度
253
+ function aggregateByQuarter(data, monthKey, valueKey) {
254
+ return data.reduce((acc, d) => {
255
+ const [year, month] = d[monthKey].split('-');
256
+ const quarter = `${year}-Q${Math.ceil(Number(month) / 3)}`;
257
+ const existing = acc.find(a => a.quarter === quarter);
258
+ if (existing) {
259
+ existing[valueKey] += d[valueKey];
260
+ } else {
261
+ acc.push({ quarter, [valueKey]: d[valueKey] });
262
+ }
263
+ return acc;
264
+ }, []);
265
+ }
266
+ ```
267
+
268
+ ## 模式 6:数据过滤与条件筛选
269
+
270
+ **场景**:根据维度/时间范围筛选数据
271
+
272
+ **JavaScript 方式**:
273
+ ```javascript
274
+ function filterData(data, conditions) {
275
+ return data.filter(d =>
276
+ conditions.every(({ key, op, value }) => {
277
+ switch (op) {
278
+ case 'eq': return d[key] === value;
279
+ case 'gt': return d[key] > value;
280
+ case 'lt': return d[key] < value;
281
+ case 'gte': return d[key] >= value;
282
+ case 'lte': return d[key] <= value;
283
+ case 'in': return value.includes(d[key]);
284
+ default: return true;
285
+ }
286
+ })
287
+ );
288
+ }
289
+
290
+ const filtered = filterData(data, [
291
+ { key: 'region', op: 'in', value: ['华东', '华南'] },
292
+ { key: 'sales', op: 'gt', value: 1000 },
293
+ ]);
294
+ ```
295
+
296
+ **G2 内置方案**:
297
+ ```javascript
298
+ chart.options({
299
+ type: 'interval',
300
+ data: {
301
+ type: 'inline',
302
+ value: data,
303
+ transform: [
304
+ { type: 'filter', callback: (d) => ['华东', '华南'].includes(d.region) && d.sales > 1000 },
305
+ ],
306
+ },
307
+ encode: { x: 'region', y: 'sales' },
308
+ });
309
+ ```
310
+
311
+ **联动过滤示例**:
312
+ ```javascript
313
+ document.getElementById('region-select').addEventListener('change', (e) => {
314
+ const region = e.target.value;
315
+ const filtered = region === 'all'
316
+ ? allData
317
+ : allData.filter(d => d.region === region);
318
+ chart.changeData(filtered);
319
+ });
320
+ ```
321
+
322
+ ## 模式 7:数据归一化(0-1 标准化)
323
+
324
+ **场景**:多指标对比时,将不同量级的数据归一化到相同范围
325
+
326
+ **JavaScript 方式**:
327
+ ```javascript
328
+ // Min-Max 归一化
329
+ function normalize(data, valueKey, normalizedKey = 'normalized') {
330
+ const values = data.map(d => d[valueKey]);
331
+ const min = Math.min(...values);
332
+ const max = Math.max(...values);
333
+ const range = max - min || 1;
334
+ return data.map(d => ({
335
+ ...d,
336
+ [normalizedKey]: (d[valueKey] - min) / range,
337
+ }));
338
+ }
339
+
340
+ // 多指标分别归一化(雷达图/平行坐标准备)
341
+ function normalizeMultiple(data, keys) {
342
+ return keys.reduce((acc, key) => normalize(acc, key, `${key}_norm`), data);
343
+ }
344
+ ```
345
+
346
+ ## 常见错误与修正
347
+
348
+ ### 错误 1:fold 后字段名与 encode 不匹配
349
+
350
+ ```javascript
351
+ // ❌ fold 配置了 key='city', value='gdp',但 encode 还用原字段名
352
+ chart.options({
353
+ type: 'interval',
354
+ data: {
355
+ type: 'inline',
356
+ value: wideData,
357
+ transform: [{ type: 'fold', fields: ['北京', '上海'], key: 'city', value: 'gdp' }],
358
+ },
359
+ encode: { color: '北京' }, // ❌ '北京' 字段已被 fold 消除
360
+ });
361
+
362
+ // ✅ encode 要用 fold 生成的新字段名
363
+ chart.options({
364
+ type: 'interval',
365
+ data: {
366
+ type: 'inline',
367
+ value: wideData,
368
+ transform: [{ type: 'fold', fields: ['北京', '上海'], key: 'city', value: 'gdp' }],
369
+ },
370
+ encode: { y: 'gdp', color: 'city' }, // ✅ 使用 key/value 配置的字段名
371
+ });
372
+ ```
373
+
374
+ ### 错误 2:data transform 与 mark transform 混淆
375
+
376
+ ```javascript
377
+ // ❌ 错误:fold 是数据变换,不应放在 mark transform
378
+ chart.options({
379
+ type: 'interval',
380
+ wideData,
381
+ transform: [{ type: 'fold', fields: ['北京', '上海'] }], // ❌ 错误位置
382
+ });
383
+
384
+ // ✅ 正确:fold 放在 data.transform 中
385
+ chart.options({
386
+ type: 'interval',
387
+ data: {
388
+ type: 'inline',
389
+ value: wideData,
390
+ transform: [{ type: 'fold', fields: ['北京', '上海'], key: 'city', value: 'gdp' }],
391
+ },
392
+ transform: [{ type: 'stackY' }], // mark transform
393
+ });
394
+ ```
@@ -0,0 +1,118 @@
1
+ ---
2
+ id: "g2-interaction-adaptive-filter"
3
+ title: "G2 AdaptiveFilter 自适应过滤交互"
4
+ description: |
5
+ adaptiveFilter 是 G2 v5 的交互,当数据量过大导致图表渲染性能下降时,
6
+ 自动对数据进行采样或聚合,保持图表响应流畅。
7
+ 适用于大数据量折线图、散点图等场景,结合 sliderFilter 或 scrollbarFilter 使用效果更佳。
8
+
9
+ library: "g2"
10
+ version: "5.x"
11
+ category: "interactions"
12
+ tags:
13
+ - "adaptiveFilter"
14
+ - "自适应过滤"
15
+ - "大数据"
16
+ - "性能优化"
17
+ - "采样"
18
+ - "interaction"
19
+
20
+ related:
21
+ - "g2-interaction-slider-filter"
22
+ - "g2-transform-sample"
23
+ - "g2-mark-line-basic"
24
+
25
+ use_cases:
26
+ - "大数据量折线图自动降采样保持流畅"
27
+ - "滑动窗口过滤时动态调整数据密度"
28
+ - "散点图数据量超过阈值时自动聚合"
29
+
30
+ difficulty: "intermediate"
31
+ completeness: "full"
32
+ created: "2025-03-24"
33
+ updated: "2025-03-24"
34
+ author: "antv-team"
35
+ source_url: "https://g2.antv.antgroup.com/manual/core/interaction/adaptive-filter"
36
+ ---
37
+
38
+ ## 核心概念
39
+
40
+ `adaptiveFilter` 监听图表的视口变化和数据规模,当可见数据量超过像素容量时,
41
+ 自动应用采样策略(LTTB 算法等)减少渲染点数,避免过度绘制导致的性能问题。
42
+
43
+ 通常与 `sliderFilter` 或 `scrollbarFilter` 配合使用,实现"滑动时自动适配数据量"。
44
+
45
+ ## 基本用法
46
+
47
+ ```javascript
48
+ import { Chart } from '@antv/g2';
49
+
50
+ const chart = new Chart({ container: 'container', width: 800, height: 400 });
51
+
52
+ chart.options({
53
+ type: 'line',
54
+ data: largeDataArray, // 数千条以上数据
55
+ encode: { x: 'date', y: 'value' },
56
+ interaction: {
57
+ adaptiveFilter: true, // 启用自适应过滤
58
+ },
59
+ });
60
+
61
+ chart.render();
62
+ ```
63
+
64
+ ## 与 sliderFilter 配合使用
65
+
66
+ ```javascript
67
+ chart.options({
68
+ type: 'view',
69
+ data: largeDataArray,
70
+ children: [
71
+ {
72
+ type: 'line',
73
+ encode: { x: 'date', y: 'value' },
74
+ },
75
+ ],
76
+ interaction: {
77
+ sliderFilter: {
78
+ x: { labelFormatter: (v) => new Date(v).toLocaleDateString() },
79
+ },
80
+ adaptiveFilter: true, // 滑动窗口过滤后自动采样
81
+ },
82
+ slider: {
83
+ x: { values: [0, 0.3] }, // 初始显示前 30% 数据
84
+ },
85
+ });
86
+ ```
87
+
88
+ ## 配置项
89
+
90
+ ```javascript
91
+ chart.options({
92
+ interaction: {
93
+ adaptiveFilter: {
94
+ // 触发自适应采样的数据量阈值(默认 2000)
95
+ // 可见数据点数超过此值时开始采样
96
+ maxPoints: 2000,
97
+ },
98
+ },
99
+ });
100
+ ```
101
+
102
+ ## 常见错误与修正
103
+
104
+ ### 错误:小数据量也启用 adaptiveFilter 导致数据被意外过滤
105
+ ```javascript
106
+ // ❌ 不必要:数据量小时无需启用,反而可能造成数据丢失误解
107
+ chart.options({
108
+ smallData, // 只有 50 条数据
109
+ interaction: { adaptiveFilter: true },
110
+ });
111
+
112
+ // ✅ 仅在大数据量场景启用
113
+ // adaptiveFilter 适用于 > 1000 条数据的场景
114
+ chart.options({
115
+ data: massiveData,
116
+ interaction: { adaptiveFilter: true },
117
+ });
118
+ ```
@@ -0,0 +1,112 @@
1
+ ---
2
+ id: "g2-interaction-brush-axis"
3
+ title: "G2 轴刷选高亮(brushAxisHighlight)"
4
+ description: |
5
+ brushAxisHighlight 在平行坐标系中,对单个轴进行区间刷选,
6
+ 高亮满足所有轴选区条件的折线。是平行坐标图最常见的多维过滤交互,
7
+ 可在多个轴上同时设置区间,实现多维度联合过滤。
8
+
9
+ library: "g2"
10
+ version: "5.x"
11
+ category: "interactions"
12
+ tags:
13
+ - "brushAxisHighlight"
14
+ - "轴刷选"
15
+ - "平行坐标"
16
+ - "多维过滤"
17
+ - "interaction"
18
+
19
+ related:
20
+ - "g2-coord-parallel"
21
+ - "g2-interaction-brush-filter"
22
+
23
+ use_cases:
24
+ - "平行坐标图中多维联合筛选数据"
25
+ - "在多个轴上分别设置过滤区间"
26
+ - "高维数据的交互式探索"
27
+
28
+ difficulty: "intermediate"
29
+ completeness: "full"
30
+ created: "2025-03-24"
31
+ updated: "2025-03-24"
32
+ author: "antv-team"
33
+ source_url: "https://g2.antv.antgroup.com/manual/core/interaction/brush-axis-highlight"
34
+ ---
35
+
36
+ ## 最小可运行示例
37
+
38
+ ```javascript
39
+ import { Chart } from '@antv/g2';
40
+
41
+ const data = [
42
+ { name: '产品A', price: 120, sales: 300, rating: 4.5, stock: 80 },
43
+ { name: '产品B', price: 85, sales: 450, rating: 3.8, stock: 120 },
44
+ { name: '产品C', price: 200, sales: 180, rating: 4.9, stock: 40 },
45
+ { name: '产品D', price: 60, sales: 600, rating: 3.2, stock: 200 },
46
+ { name: '产品E', price: 150, sales: 220, rating: 4.2, stock: 65 },
47
+ ];
48
+
49
+ const chart = new Chart({ container: 'container', width: 640, height: 400 });
50
+
51
+ chart.options({
52
+ type: 'line',
53
+ data,
54
+ encode: {
55
+ position: ['price', 'sales', 'rating', 'stock'],
56
+ color: 'name',
57
+ },
58
+ coordinate: { type: 'parallel' },
59
+ style: { lineWidth: 1.5, strokeOpacity: 0.7 },
60
+ interaction: {
61
+ brushAxisHighlight: true, // 在每个轴上可拖拽设置过滤区间
62
+ },
63
+ });
64
+
65
+ chart.render();
66
+ ```
67
+
68
+ ## 与 parallel 坐标系的标准组合
69
+
70
+ ```javascript
71
+ chart.options({
72
+ type: 'line',
73
+ data: carData,
74
+ encode: {
75
+ position: ['mpg', 'cylinders', 'displacement', 'horsepower', 'weight', 'acceleration'],
76
+ color: 'origin',
77
+ },
78
+ coordinate: { type: 'parallel' },
79
+ style: { lineWidth: 1, strokeOpacity: 0.5 },
80
+ interaction: {
81
+ brushAxisHighlight: {
82
+ // 未被选中的线条的样式
83
+ unhighlightedOpacity: 0.1,
84
+ },
85
+ },
86
+ legend: { color: { position: 'top' } },
87
+ });
88
+ ```
89
+
90
+ ## 常见错误与修正
91
+
92
+ ### 错误:在非平行坐标系图表上使用 brushAxisHighlight
93
+ ```javascript
94
+ // ❌ brushAxisHighlight 专门为平行坐标系设计
95
+ chart.options({
96
+ type: 'line',
97
+ encode: { x: 'date', y: 'value' }, // 普通折线图
98
+ coordinate: { type: 'cartesian' },
99
+ interaction: { brushAxisHighlight: true }, // ❌ 普通图表没有"轴"可以刷选
100
+ });
101
+
102
+ // ✅ 应使用普通的 brushHighlight 或 brushFilter
103
+ chart.options({
104
+ interaction: { brushHighlight: true }, // ✅ 普通矩形刷选
105
+ });
106
+
107
+ // ✅ 平行坐标图才用 brushAxisHighlight
108
+ chart.options({
109
+ coordinate: { type: 'parallel' },
110
+ interaction: { brushAxisHighlight: true }, // ✅
111
+ });
112
+ ```