@visactor/vchart 1.5.2 → 1.5.3

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 (297) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +655 -504
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base-chart.d.ts +4 -6
  6. package/cjs/chart/base-chart.js +44 -45
  7. package/cjs/chart/base-chart.js.map +1 -1
  8. package/cjs/chart/gauge/gauge.js +3 -2
  9. package/cjs/chart/gauge/gauge.js.map +1 -1
  10. package/cjs/chart/interface/chart.d.ts +3 -3
  11. package/cjs/chart/interface/chart.js.map +1 -1
  12. package/cjs/chart/sequence/sequence.js +0 -1
  13. package/cjs/chart/sequence/sequence.js.map +1 -1
  14. package/cjs/chart/stack.js +1 -2
  15. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  16. package/cjs/component/axis/polar/interface/common.d.ts +1 -0
  17. package/cjs/component/axis/polar/interface/common.js.map +1 -1
  18. package/cjs/component/axis/util.d.ts +3 -3
  19. package/cjs/component/axis/util.js +14 -10
  20. package/cjs/component/axis/util.js.map +1 -1
  21. package/cjs/component/base/base-component.d.ts +1 -2
  22. package/cjs/component/base/base-component.js +2 -39
  23. package/cjs/component/base/base-component.js.map +1 -1
  24. package/cjs/component/base/util.d.ts +2 -3
  25. package/cjs/component/base/util.js +16 -19
  26. package/cjs/component/base/util.js.map +1 -1
  27. package/cjs/component/brush/brush.js +1 -1
  28. package/cjs/component/brush/brush.js.map +1 -1
  29. package/cjs/component/common/trigger/config.d.ts +19 -49
  30. package/cjs/component/common/trigger/config.js +9 -37
  31. package/cjs/component/common/trigger/config.js.map +1 -1
  32. package/cjs/component/crosshair/base.js +14 -11
  33. package/cjs/component/crosshair/base.js.map +1 -1
  34. package/cjs/component/crosshair/config.d.ts +11 -31
  35. package/cjs/component/crosshair/config.js +9 -26
  36. package/cjs/component/crosshair/config.js.map +1 -1
  37. package/cjs/component/crosshair/util.d.ts +3 -3
  38. package/cjs/component/crosshair/util.js +7 -5
  39. package/cjs/component/crosshair/util.js.map +1 -1
  40. package/cjs/component/index.js +2 -1
  41. package/cjs/component/tooltip/handler/base.js +6 -6
  42. package/cjs/component/tooltip/handler/base.js.map +1 -1
  43. package/cjs/component/tooltip/handler/utils/attribute.d.ts +3 -3
  44. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  45. package/cjs/component/util.d.ts +4 -0
  46. package/cjs/component/util.js +14 -0
  47. package/cjs/component/util.js.map +1 -0
  48. package/cjs/constant/waterfall.js +1 -2
  49. package/cjs/constant/word-cloud.js +2 -1
  50. package/cjs/core/index.d.ts +1 -1
  51. package/cjs/core/index.js +1 -1
  52. package/cjs/core/index.js.map +1 -1
  53. package/cjs/core/interface.d.ts +7 -1
  54. package/cjs/core/interface.js.map +1 -1
  55. package/cjs/core/vchart.d.ts +3 -2
  56. package/cjs/core/vchart.js +52 -47
  57. package/cjs/core/vchart.js.map +1 -1
  58. package/cjs/data/transforms/sankey.d.ts +1 -0
  59. package/cjs/data/transforms/sankey.js +16 -3
  60. package/cjs/data/transforms/sankey.js.map +1 -1
  61. package/cjs/interaction/config.d.ts +17 -52
  62. package/cjs/interaction/config.js +9 -42
  63. package/cjs/interaction/config.js.map +1 -1
  64. package/cjs/interaction/dimension-trigger.js +2 -1
  65. package/cjs/interaction/drill/drillable.js +1 -1
  66. package/cjs/interaction/drill/drillable.js.map +1 -1
  67. package/cjs/interaction/trigger.js +1 -1
  68. package/cjs/interaction/trigger.js.map +1 -1
  69. package/cjs/interaction/zoom/zoomable.js +8 -8
  70. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  71. package/cjs/layout/base-layout.js +1 -1
  72. package/cjs/layout/index.js +1 -1
  73. package/cjs/layout/interface.js +1 -1
  74. package/cjs/mark/arc-3d.js +1 -1
  75. package/cjs/mark/arc.js +1 -1
  76. package/cjs/mark/area.js +1 -1
  77. package/cjs/mark/base/base-mark.js +4 -5
  78. package/cjs/mark/base/base-mark.js.map +1 -1
  79. package/cjs/mark/box-plot.js +1 -1
  80. package/cjs/model/base-model.d.ts +4 -2
  81. package/cjs/model/base-model.js +51 -11
  82. package/cjs/model/base-model.js.map +1 -1
  83. package/cjs/model/interface.d.ts +10 -3
  84. package/cjs/model/interface.js.map +1 -1
  85. package/cjs/series/area/area.d.ts +1 -1
  86. package/cjs/series/area/area.js +1 -1
  87. package/cjs/series/area/area.js.map +1 -1
  88. package/cjs/series/bar/bar.d.ts +1 -1
  89. package/cjs/series/bar/bar.js +1 -1
  90. package/cjs/series/bar/bar.js.map +1 -1
  91. package/cjs/series/base/base-series.d.ts +4 -3
  92. package/cjs/series/base/base-series.js +12 -46
  93. package/cjs/series/base/base-series.js.map +1 -1
  94. package/cjs/series/cartesian/cartesian.d.ts +3 -0
  95. package/cjs/series/cartesian/cartesian.js +5 -2
  96. package/cjs/series/cartesian/cartesian.js.map +1 -1
  97. package/cjs/series/dot/dot.js +3 -4
  98. package/cjs/series/dot/dot.js.map +1 -1
  99. package/cjs/series/gauge/gauge-pointer.d.ts +1 -0
  100. package/cjs/series/gauge/gauge-pointer.js +1 -1
  101. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  102. package/cjs/series/heatmap/heatmap.js +1 -1
  103. package/cjs/series/heatmap/heatmap.js.map +1 -1
  104. package/cjs/series/interface/theme.d.ts +2 -0
  105. package/cjs/series/interface/theme.js +3 -2
  106. package/cjs/series/interface/theme.js.map +1 -1
  107. package/cjs/series/link/link.js +1 -1
  108. package/cjs/series/link/link.js.map +1 -1
  109. package/cjs/series/map/map.js +1 -1
  110. package/cjs/series/map/map.js.map +1 -1
  111. package/cjs/series/polar/polar.d.ts +1 -0
  112. package/cjs/series/polar/polar.js +3 -1
  113. package/cjs/series/polar/polar.js.map +1 -1
  114. package/cjs/series/polar/progress-like/progress-like.d.ts +1 -1
  115. package/cjs/series/polar/progress-like/progress-like.js +2 -3
  116. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  117. package/cjs/series/progress/circular/circular.js +4 -4
  118. package/cjs/series/progress/circular/circular.js.map +1 -1
  119. package/cjs/series/range-area/interface.d.ts +2 -1
  120. package/cjs/series/range-area/interface.js.map +1 -1
  121. package/cjs/series/rose/rose.d.ts +1 -1
  122. package/cjs/series/rose/rose.js +2 -2
  123. package/cjs/series/rose/rose.js.map +1 -1
  124. package/cjs/series/sankey/sankey.js +20 -17
  125. package/cjs/series/sankey/sankey.js.map +1 -1
  126. package/cjs/series/scatter/scatter.d.ts +1 -2
  127. package/cjs/series/scatter/scatter.js +1 -3
  128. package/cjs/series/scatter/scatter.js.map +1 -1
  129. package/cjs/series/waterfall/waterfall.d.ts +1 -1
  130. package/cjs/series/waterfall/waterfall.js +3 -3
  131. package/cjs/series/waterfall/waterfall.js.map +1 -1
  132. package/cjs/series/word-cloud/base.js +34 -35
  133. package/cjs/series/word-cloud/base.js.map +1 -1
  134. package/cjs/series/word-cloud/word-cloud-3d.js +32 -32
  135. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  136. package/cjs/theme/builtin/index.d.ts +4 -1
  137. package/cjs/theme/builtin/index.js +13 -8
  138. package/cjs/theme/builtin/index.js.map +1 -1
  139. package/cjs/theme/color-scheme/util.js +2 -1
  140. package/cjs/theme/color-scheme/util.js.map +1 -1
  141. package/cjs/theme/theme-manager.js +4 -3
  142. package/cjs/theme/theme-manager.js.map +1 -1
  143. package/cjs/theme/util.d.ts +5 -0
  144. package/cjs/theme/util.js +34 -0
  145. package/cjs/theme/util.js.map +1 -0
  146. package/cjs/util/spec/merge-theme.d.ts +4 -1
  147. package/cjs/util/spec/merge-theme.js +22 -13
  148. package/cjs/util/spec/merge-theme.js.map +1 -1
  149. package/cjs/util/spec/preprocess.js +1 -0
  150. package/cjs/util/spec/preprocess.js.map +1 -1
  151. package/esm/chart/base-chart.d.ts +4 -6
  152. package/esm/chart/base-chart.js +42 -42
  153. package/esm/chart/base-chart.js.map +1 -1
  154. package/esm/chart/gauge/gauge.js +3 -2
  155. package/esm/chart/gauge/gauge.js.map +1 -1
  156. package/esm/chart/interface/chart.d.ts +3 -3
  157. package/esm/chart/interface/chart.js.map +1 -1
  158. package/esm/chart/sequence/sequence.js +0 -1
  159. package/esm/chart/sequence/sequence.js.map +1 -1
  160. package/esm/chart/stack.js +1 -2
  161. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  162. package/esm/component/axis/polar/interface/common.d.ts +1 -0
  163. package/esm/component/axis/polar/interface/common.js.map +1 -1
  164. package/esm/component/axis/util.d.ts +3 -3
  165. package/esm/component/axis/util.js +10 -8
  166. package/esm/component/axis/util.js.map +1 -1
  167. package/esm/component/base/base-component.d.ts +1 -2
  168. package/esm/component/base/base-component.js +3 -40
  169. package/esm/component/base/base-component.js.map +1 -1
  170. package/esm/component/base/util.d.ts +2 -3
  171. package/esm/component/base/util.js +19 -16
  172. package/esm/component/base/util.js.map +1 -1
  173. package/esm/component/brush/brush.js +1 -1
  174. package/esm/component/brush/brush.js.map +1 -1
  175. package/esm/component/common/trigger/config.d.ts +19 -49
  176. package/esm/component/common/trigger/config.js +7 -35
  177. package/esm/component/common/trigger/config.js.map +1 -1
  178. package/esm/component/crosshair/base.js +14 -12
  179. package/esm/component/crosshair/base.js.map +1 -1
  180. package/esm/component/crosshair/config.d.ts +11 -31
  181. package/esm/component/crosshair/config.js +8 -25
  182. package/esm/component/crosshair/config.js.map +1 -1
  183. package/esm/component/crosshair/util.d.ts +3 -3
  184. package/esm/component/crosshair/util.js +8 -4
  185. package/esm/component/crosshair/util.js.map +1 -1
  186. package/esm/component/index.js +2 -1
  187. package/esm/component/tooltip/handler/base.js +7 -5
  188. package/esm/component/tooltip/handler/base.js.map +1 -1
  189. package/esm/component/tooltip/handler/utils/attribute.d.ts +3 -3
  190. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  191. package/esm/component/util.d.ts +4 -0
  192. package/esm/component/util.js +6 -0
  193. package/esm/component/util.js.map +1 -0
  194. package/esm/constant/waterfall.js +1 -2
  195. package/esm/constant/word-cloud.js +2 -1
  196. package/esm/core/index.d.ts +1 -1
  197. package/esm/core/index.js +1 -1
  198. package/esm/core/index.js.map +1 -1
  199. package/esm/core/interface.d.ts +7 -1
  200. package/esm/core/interface.js.map +1 -1
  201. package/esm/core/vchart.d.ts +3 -2
  202. package/esm/core/vchart.js +53 -42
  203. package/esm/core/vchart.js.map +1 -1
  204. package/esm/data/transforms/sankey.d.ts +1 -0
  205. package/esm/data/transforms/sankey.js +17 -4
  206. package/esm/data/transforms/sankey.js.map +1 -1
  207. package/esm/interaction/config.d.ts +17 -52
  208. package/esm/interaction/config.js +7 -40
  209. package/esm/interaction/config.js.map +1 -1
  210. package/esm/interaction/dimension-trigger.js +2 -1
  211. package/esm/interaction/drill/drillable.js +2 -2
  212. package/esm/interaction/drill/drillable.js.map +1 -1
  213. package/esm/interaction/trigger.js +2 -2
  214. package/esm/interaction/trigger.js.map +1 -1
  215. package/esm/interaction/zoom/zoomable.js +9 -9
  216. package/esm/interaction/zoom/zoomable.js.map +1 -1
  217. package/esm/layout/base-layout.js +1 -1
  218. package/esm/layout/index.js +1 -1
  219. package/esm/layout/interface.js +1 -1
  220. package/esm/mark/arc-3d.js +1 -1
  221. package/esm/mark/arc.js +1 -1
  222. package/esm/mark/area.js +1 -1
  223. package/esm/mark/base/base-mark.js +4 -5
  224. package/esm/mark/base/base-mark.js.map +1 -1
  225. package/esm/mark/box-plot.js +1 -1
  226. package/esm/model/base-model.d.ts +4 -2
  227. package/esm/model/base-model.js +53 -10
  228. package/esm/model/base-model.js.map +1 -1
  229. package/esm/model/interface.d.ts +10 -3
  230. package/esm/model/interface.js.map +1 -1
  231. package/esm/series/area/area.d.ts +1 -1
  232. package/esm/series/area/area.js +1 -1
  233. package/esm/series/area/area.js.map +1 -1
  234. package/esm/series/bar/bar.d.ts +1 -1
  235. package/esm/series/bar/bar.js +1 -1
  236. package/esm/series/bar/bar.js.map +1 -1
  237. package/esm/series/base/base-series.d.ts +4 -3
  238. package/esm/series/base/base-series.js +14 -46
  239. package/esm/series/base/base-series.js.map +1 -1
  240. package/esm/series/cartesian/cartesian.d.ts +3 -0
  241. package/esm/series/cartesian/cartesian.js +4 -3
  242. package/esm/series/cartesian/cartesian.js.map +1 -1
  243. package/esm/series/dot/dot.js +2 -4
  244. package/esm/series/dot/dot.js.map +1 -1
  245. package/esm/series/gauge/gauge-pointer.d.ts +1 -0
  246. package/esm/series/gauge/gauge-pointer.js +1 -1
  247. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  248. package/esm/series/heatmap/heatmap.js +1 -1
  249. package/esm/series/heatmap/heatmap.js.map +1 -1
  250. package/esm/series/interface/theme.d.ts +2 -0
  251. package/esm/series/interface/theme.js +4 -1
  252. package/esm/series/interface/theme.js.map +1 -1
  253. package/esm/series/link/link.js +1 -1
  254. package/esm/series/link/link.js.map +1 -1
  255. package/esm/series/map/map.js +1 -1
  256. package/esm/series/map/map.js.map +1 -1
  257. package/esm/series/polar/polar.d.ts +1 -0
  258. package/esm/series/polar/polar.js +3 -2
  259. package/esm/series/polar/polar.js.map +1 -1
  260. package/esm/series/polar/progress-like/progress-like.d.ts +1 -1
  261. package/esm/series/polar/progress-like/progress-like.js +2 -3
  262. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  263. package/esm/series/progress/circular/circular.js +4 -4
  264. package/esm/series/progress/circular/circular.js.map +1 -1
  265. package/esm/series/range-area/interface.d.ts +2 -1
  266. package/esm/series/range-area/interface.js.map +1 -1
  267. package/esm/series/rose/rose.d.ts +1 -1
  268. package/esm/series/rose/rose.js +1 -1
  269. package/esm/series/rose/rose.js.map +1 -1
  270. package/esm/series/sankey/sankey.js +12 -9
  271. package/esm/series/sankey/sankey.js.map +1 -1
  272. package/esm/series/scatter/scatter.d.ts +1 -2
  273. package/esm/series/scatter/scatter.js +2 -3
  274. package/esm/series/scatter/scatter.js.map +1 -1
  275. package/esm/series/waterfall/waterfall.d.ts +1 -1
  276. package/esm/series/waterfall/waterfall.js +3 -3
  277. package/esm/series/waterfall/waterfall.js.map +1 -1
  278. package/esm/series/word-cloud/base.js +33 -35
  279. package/esm/series/word-cloud/base.js.map +1 -1
  280. package/esm/series/word-cloud/word-cloud-3d.js +32 -32
  281. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  282. package/esm/theme/builtin/index.d.ts +4 -1
  283. package/esm/theme/builtin/index.js +15 -6
  284. package/esm/theme/builtin/index.js.map +1 -1
  285. package/esm/theme/color-scheme/util.js +1 -1
  286. package/esm/theme/color-scheme/util.js.map +1 -1
  287. package/esm/theme/theme-manager.js +5 -4
  288. package/esm/theme/theme-manager.js.map +1 -1
  289. package/esm/theme/util.d.ts +5 -0
  290. package/esm/theme/util.js +34 -0
  291. package/esm/theme/util.js.map +1 -0
  292. package/esm/util/spec/merge-theme.d.ts +4 -1
  293. package/esm/util/spec/merge-theme.js +18 -10
  294. package/esm/util/spec/merge-theme.js.map +1 -1
  295. package/esm/util/spec/preprocess.js +2 -1
  296. package/esm/util/spec/preprocess.js.map +1 -1
  297. package/package.json +17 -17
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/word-cloud/word-cloud-3d.ts"],"names":[],"mappings":"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","file":"word-cloud-3d.js","sourcesContent":["import { AttributeLevel, DEFAULT_DATA_KEY } from '../../constant';\nimport { TextMark, type ITextMark } from '../../mark/text';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport type { IWordCloud3dSeriesSpec } from './interface';\nimport type { Datum } from '../../typings';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { LinearScale } from '@visactor/vscale';\nimport { extent } from '@visactor/vgrammar-util';\nimport {\n WORD_CLOUD_ANGLE,\n WORD_CLOUD_FILLING_ANGLE,\n WORD_CLOUD_TEXT,\n WORD_CLOUD_WEIGHT\n} from '../../constant/word-cloud';\nimport type { ICompilableMark } from '../../compile/mark';\nimport { BaseWordCloudSeries } from './base';\nimport { Factory } from '../../core/factory';\nimport { registerWordCloud3dAnimation } from './animation';\n\nexport class WordCloud3dSeries<\n T extends IWordCloud3dSeriesSpec = IWordCloud3dSeriesSpec\n> extends BaseWordCloudSeries<T> {\n static readonly type: string = SeriesTypeEnum.wordCloud3d;\n type = SeriesTypeEnum.wordCloud3d;\n\n compile(): void {\n super.compile();\n\n const wordCloudTransforms: any[] = [];\n const valueField = this._valueField;\n const valueScale = new LinearScale();\n const fontWeightRange = this._fontWeightRange;\n const rotateAngles = this._rotateAngles;\n const fontWeightField = this._fontWeightField;\n const fillingRotateAngles = this._wordCloudShapeConfig.fillingRotateAngles;\n\n // fontWeight处理\n if (valueField) {\n const [minValue, maxValue] = extent(this.getViewData()?.latestData.map((datum: any) => +datum[valueField]));\n valueScale.domain([minValue, maxValue], true).range(fontWeightRange);\n wordCloudTransforms.push({\n type: 'map',\n as: WORD_CLOUD_WEIGHT,\n callback: (datum: any) => {\n if (minValue === maxValue) {\n return valueScale.scale(maxValue);\n }\n return valueScale.scale(datum[valueField]);\n }\n });\n }\n\n // rotateAngles处理\n wordCloudTransforms.push({\n type: 'map',\n as: WORD_CLOUD_ANGLE,\n callback: () => {\n return rotateAngles[Math.floor(Math.random() * rotateAngles.length)];\n }\n });\n wordCloudTransforms.push({\n type: 'map',\n as: WORD_CLOUD_FILLING_ANGLE,\n callback: () => {\n return fillingRotateAngles[Math.floor(Math.random() * fillingRotateAngles.length)];\n }\n });\n\n // text fromat method 处理\n if (this._spec.word?.formatMethod) {\n wordCloudTransforms.push({\n type: 'map',\n as: WORD_CLOUD_TEXT,\n callback: this._spec.word.formatMethod\n });\n }\n\n const textField = this._spec.word?.formatMethod ? WORD_CLOUD_TEXT : this._nameField;\n\n // 词云 transform\n if (!this._isWordCloudShape) {\n wordCloudTransforms.push({\n type: 'wordcloud',\n layoutType: this._wordCloudConfig.layoutMode,\n size: [this._region.getLayoutRect().width, this._region.getLayoutRect().height],\n shape: this._maskShape,\n postProjection: this._spec.postProjection ?? 'StereographicProjection',\n dataIndexKey: DEFAULT_DATA_KEY,\n text: { field: textField },\n fontSize: valueField ? { field: valueField } : this._fontSizeRange[0],\n fontSizeRange: this._fontSizeRange,\n padding: this._fontPadding,\n rotate: { field: WORD_CLOUD_ANGLE },\n fontFamily: this._fontFamilyField ?? this._spec.word?.style?.fontFamily ?? this._option?.getTheme()?.fontFamily,\n fontWeight: fontWeightField ? { field: fontWeightField } : valueField ? { field: WORD_CLOUD_WEIGHT } : null,\n fontStyle: this._fontStyleField ?? this._spec.word?.style?.fontStyle,\n depth_3d: this._spec.depth_3d,\n\n randomVisible: this._random,\n clip: this._wordCloudConfig.drawOutOfBound === 'clip',\n shrink: this._wordCloudConfig.zoomToFit.shrink,\n enlarge: this._wordCloudConfig.zoomToFit.enlarge,\n minFontSize: this._wordCloudConfig.zoomToFit.fontSizeLimitMin,\n progressiveTime: this._wordCloudConfig.progressiveTime,\n progressiveStep: this._wordCloudConfig.progressiveStep\n });\n // 挂到mark的trnsform上,注册的时候决定transform的执行时机\n (this._wordMark as ICompilableMark).getProduct().transform(wordCloudTransforms);\n }\n // 形状词云 transform\n else {\n wordCloudTransforms.push({\n type: 'wordcloudShape',\n size: [this._region.getLayoutRect().width, this._region.getLayoutRect().height],\n shape: this._maskShape,\n postProjection: this._spec.postProjection ?? 'StereographicProjection',\n dataIndexKey: DEFAULT_DATA_KEY,\n text: { field: textField },\n fontSize: valueField ? { field: valueField } : this._fontSizeRange[0],\n fontSizeRange: this._fontSizeRange,\n padding: this._fontPadding,\n rotateList: rotateAngles,\n fontFamily: this._fontFamilyField ?? this._spec.word?.style?.fontFamily ?? this._option?.getTheme()?.fontFamily,\n fontWeight: fontWeightField ? { field: fontWeightField } : valueField ? { field: WORD_CLOUD_WEIGHT } : null,\n fontStyle: this._fontStyleField ?? this._spec.word?.style?.fontStyle,\n depth_3d: this._spec.depth_3d,\n\n fillingFontFamily:\n this._wordCloudShapeConfig?.fillingFontFamilyField ??\n this._spec.word?.style?.fontFamily ??\n this._option?.getTheme()?.fontFamily,\n fillingPadding: this._fillingFontPadding,\n fillingFontStyle: this._wordCloudShapeConfig?.fillingFontStyleField ?? this._spec.word?.style?.fontStyle,\n fillingFontWeight: this._wordCloudShapeConfig?.fillingFontWeightField ?? this._spec.word?.style?.fontWeight, // 填充词fontWeight默认不跟随valueField\n fillingRotateList: fillingRotateAngles,\n\n fillingTimes: this._wordCloudShapeConfig?.fillingTimes,\n fillingXStep: this._wordCloudShapeConfig?.fillingXStep,\n fillingYStep: this._wordCloudShapeConfig?.fillingYStep,\n fillingXRatioStep: this._wordCloudShapeConfig?.fillingXRatioStep,\n fillingYRatioStep: this._wordCloudShapeConfig?.fillingYRatioStep,\n fillingInitialOpacity: this._wordCloudShapeConfig?.fillingInitialOpacity,\n fillingDeltaOpacity: this._wordCloudShapeConfig?.fillingDeltaOpacity,\n fillingInitialFontSize: this._wordCloudShapeConfig?.fillingInitialFontSize,\n fillingDeltaFontSize: this._wordCloudShapeConfig?.fillingDeltaFontSize,\n\n ratio: this._wordCloudShapeConfig?.ratio,\n fillingRatio: this._wordCloudShapeConfig?.fillingRatio,\n removeWhiteBorder: this._wordCloudShapeConfig?.removeWhiteBorder,\n textLayoutTimes: this._wordCloudShapeConfig?.textLayoutTimes,\n fontSizeShrinkFactor: this._wordCloudShapeConfig?.fontSizeShrinkFactor,\n stepFactor: this._wordCloudShapeConfig?.stepFactor,\n layoutMode: this._wordCloudShapeConfig?.layoutMode,\n importantWordCount: this._wordCloudShapeConfig?.importantWordCount,\n globalShinkLimit: this._wordCloudShapeConfig?.globalShinkLimit,\n fontSizeEnlargeFactor: this._wordCloudShapeConfig?.fontSizeEnlargeFactor,\n fillingDeltaFontSizeFactor: this._wordCloudShapeConfig?.fillingDeltaFontSizeFactor\n });\n }\n // 把transform挂载到data的product上\n this._data.getProduct().transform(wordCloudTransforms);\n }\n\n initMark(): void {\n this._wordMark = this._createMark(BaseWordCloudSeries.mark.word, {\n groupKey: this._seriesField,\n support3d: true,\n isSeriesMark: true\n }) as ITextMark;\n if (this._isWordCloudShape) {\n this._fillingWordMark = this._createMark(BaseWordCloudSeries.mark.fillingWord, {\n groupKey: this._seriesField,\n support3d: true,\n isSeriesMark: true\n }) as ITextMark;\n }\n }\n\n initMarkStyle() {\n const wordMark = this._wordMark;\n const fillingWordMark = this._fillingWordMark;\n if (wordMark) {\n this.setMarkStyle(\n wordMark,\n {\n fill: this._colorHexField\n ? (datum: Datum) => datum[this._colorHexField]\n : this.getWordColorAttribute(this._seriesField, false),\n text: (datum: Datum) => datum[this._nameField],\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n z: (datum: Datum) => datum.z ?? 0,\n fontFamily: (datum: Datum) => datum.fontFamily,\n fontSize: (datum: Datum) => datum.fontSize,\n fontStyle: (datum: Datum) => datum.fontStyle,\n fontWeight: (datum: Datum) => datum.fontWeight,\n angle: (datum: Datum) => datum.angle,\n visible: (datum: Datum) => !datum.isFillingWord\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n wordMark,\n {\n fontFamily: this._spec.word?.style?.fontFamily ?? this._option?.getTheme()?.fontFamily\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n }\n if (fillingWordMark) {\n this.setMarkStyle(\n fillingWordMark,\n {\n fill: this._wordCloudShapeConfig.fillingColorHexField\n ? (datum: Datum) => datum[this._wordCloudShapeConfig.fillingColorHexField]\n : this.getWordColorAttribute(this._wordCloudShapeConfig.fillingSeriesField, true),\n text: (datum: Datum) => datum[this._nameField],\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n z: (datum: Datum) => datum.z ?? 0,\n fontFamily: (datum: Datum) => datum.fontFamily,\n fontSize: (datum: Datum) => datum.fontSize,\n fontStyle: (datum: Datum) => datum.fontStyle,\n fontWeight: (datum: Datum) => datum.fontWeight,\n angle: (datum: Datum) => datum.angle,\n visible: (datum: Datum) => datum.isFillingWord\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n fillingWordMark,\n {\n fontFamily: this._spec.word?.style?.fontFamily ?? this._option?.getTheme()?.fontFamily\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n }\n this._trigger.registerMark(wordMark);\n this._trigger.registerMark(fillingWordMark);\n }\n\n initAnimation() {\n if (this._wordMark) {\n this._wordMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('wordCloud3d')?.(() => {\n const srView = this.getCompiler().getVGrammarView();\n const width = srView.width() - this._padding?.left || 0 - this._padding?.right || 0;\n const height = srView.height() - this._padding?.top || 0 - this._padding?.bottom || 0;\n const r = Math.max(width, height) / 2;\n return {\n center: { x: r, y: r, z: this._spec.depth_3d ?? r },\n r\n };\n }),\n userAnimationConfig(SeriesMarkNameEnum.word, this._spec)\n )\n );\n }\n if (this._fillingWordMark) {\n this._fillingWordMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('wordCloud3d')?.(() => {\n const srView = this.getCompiler().getVGrammarView();\n const width = srView.width() - this._padding?.left || 0 - this._padding?.right || 0;\n const height = srView.height() - this._padding?.top || 0 - this._padding?.bottom || 0;\n const r = Math.max(width, height) / 2;\n return {\n center: { x: r, y: r, z: this._spec.depth_3d ?? r },\n r\n };\n }),\n userAnimationConfig(SeriesMarkNameEnum.fillingWord, this._spec)\n )\n );\n }\n }\n}\n\nexport const registerWordCloud3dSeries = () => {\n Factory.registerMark(TextMark.type, TextMark);\n Factory.registerSeries(WordCloud3dSeries.type, WordCloud3dSeries);\n registerWordCloud3dAnimation();\n};\n"]}
1
+ {"version":3,"sources":["../src/series/word-cloud/word-cloud-3d.ts"],"names":[],"mappings":"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","file":"word-cloud-3d.js","sourcesContent":["import { AttributeLevel, DEFAULT_DATA_KEY } from '../../constant';\nimport { TextMark, type ITextMark } from '../../mark/text';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport type { IWordCloud3dSeriesSpec } from './interface';\nimport type { Datum } from '../../typings';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { LinearScale } from '@visactor/vscale';\nimport { extent } from '@visactor/vgrammar-util';\nimport {\n WORD_CLOUD_ANGLE,\n WORD_CLOUD_FILLING_ANGLE,\n WORD_CLOUD_TEXT,\n WORD_CLOUD_WEIGHT\n} from '../../constant/word-cloud';\nimport type { ICompilableMark } from '../../compile/mark';\nimport { BaseWordCloudSeries } from './base';\nimport { Factory } from '../../core/factory';\nimport { registerWordCloud3dAnimation } from './animation';\n\nexport class WordCloud3dSeries<\n T extends IWordCloud3dSeriesSpec = IWordCloud3dSeriesSpec\n> extends BaseWordCloudSeries<T> {\n static readonly type: string = SeriesTypeEnum.wordCloud3d;\n type = SeriesTypeEnum.wordCloud3d;\n\n compile(): void {\n super.compile();\n\n const wordCloudTransforms: any[] = [];\n const valueField = this._valueField;\n const valueScale = new LinearScale();\n const fontWeightRange = this._fontWeightRange;\n const rotateAngles = this._rotateAngles;\n const fontWeightField = this._fontWeightField;\n const fillingRotateAngles = this._wordCloudShapeConfig.fillingRotateAngles;\n\n // fontWeight处理\n if (valueField) {\n const [minValue, maxValue] = extent(this.getViewData()?.latestData.map((datum: any) => +datum[valueField]));\n valueScale.domain([minValue, maxValue], true).range(fontWeightRange);\n wordCloudTransforms.push({\n type: 'map',\n as: WORD_CLOUD_WEIGHT,\n callback: (datum: any) => {\n if (minValue === maxValue) {\n return valueScale.scale(maxValue);\n }\n return valueScale.scale(datum[valueField]);\n }\n });\n }\n\n // rotateAngles处理\n wordCloudTransforms.push({\n type: 'map',\n as: WORD_CLOUD_ANGLE,\n callback: () => {\n return rotateAngles[Math.floor(Math.random() * rotateAngles.length)];\n }\n });\n wordCloudTransforms.push({\n type: 'map',\n as: WORD_CLOUD_FILLING_ANGLE,\n callback: () => {\n return fillingRotateAngles[Math.floor(Math.random() * fillingRotateAngles.length)];\n }\n });\n\n // text fromat method 处理\n if (this._spec.word?.formatMethod) {\n wordCloudTransforms.push({\n type: 'map',\n as: WORD_CLOUD_TEXT,\n callback: this._spec.word.formatMethod\n });\n }\n\n const textField = this._spec.word?.formatMethod ? WORD_CLOUD_TEXT : this._nameField;\n\n // 词云 transform\n if (!this._isWordCloudShape) {\n wordCloudTransforms.push({\n type: 'wordcloud',\n layoutType: this._wordCloudConfig.layoutMode,\n size: [this._region.getLayoutRect().width, this._region.getLayoutRect().height],\n shape: this._maskShape,\n postProjection: this._spec.postProjection ?? 'StereographicProjection',\n dataIndexKey: DEFAULT_DATA_KEY,\n text: { field: textField },\n fontSize: valueField ? { field: valueField } : this._fontSizeRange[0],\n fontSizeRange: this._fontSizeRange,\n padding: this._fontPadding,\n rotate: { field: WORD_CLOUD_ANGLE },\n fontFamily:\n this._fontFamilyField ?? this._spec.word?.style?.fontFamily ?? this._getChartLevelTheme()?.fontFamily,\n fontWeight: fontWeightField ? { field: fontWeightField } : valueField ? { field: WORD_CLOUD_WEIGHT } : null,\n fontStyle: this._fontStyleField ?? this._spec.word?.style?.fontStyle,\n depth_3d: this._spec.depth_3d,\n\n randomVisible: this._random,\n clip: this._wordCloudConfig.drawOutOfBound === 'clip',\n shrink: this._wordCloudConfig.zoomToFit.shrink,\n enlarge: this._wordCloudConfig.zoomToFit.enlarge,\n minFontSize: this._wordCloudConfig.zoomToFit.fontSizeLimitMin,\n progressiveTime: this._wordCloudConfig.progressiveTime,\n progressiveStep: this._wordCloudConfig.progressiveStep\n });\n // 挂到mark的trnsform上,注册的时候决定transform的执行时机\n (this._wordMark as ICompilableMark).getProduct().transform(wordCloudTransforms);\n }\n // 形状词云 transform\n else {\n wordCloudTransforms.push({\n type: 'wordcloudShape',\n size: [this._region.getLayoutRect().width, this._region.getLayoutRect().height],\n shape: this._maskShape,\n postProjection: this._spec.postProjection ?? 'StereographicProjection',\n dataIndexKey: DEFAULT_DATA_KEY,\n text: { field: textField },\n fontSize: valueField ? { field: valueField } : this._fontSizeRange[0],\n fontSizeRange: this._fontSizeRange,\n padding: this._fontPadding,\n rotateList: rotateAngles,\n fontFamily:\n this._fontFamilyField ?? this._spec.word?.style?.fontFamily ?? this._getChartLevelTheme()?.fontFamily,\n fontWeight: fontWeightField ? { field: fontWeightField } : valueField ? { field: WORD_CLOUD_WEIGHT } : null,\n fontStyle: this._fontStyleField ?? this._spec.word?.style?.fontStyle,\n depth_3d: this._spec.depth_3d,\n\n fillingFontFamily:\n this._wordCloudShapeConfig?.fillingFontFamilyField ??\n this._spec.word?.style?.fontFamily ??\n this._getChartLevelTheme()?.fontFamily,\n fillingPadding: this._fillingFontPadding,\n fillingFontStyle: this._wordCloudShapeConfig?.fillingFontStyleField ?? this._spec.word?.style?.fontStyle,\n fillingFontWeight: this._wordCloudShapeConfig?.fillingFontWeightField ?? this._spec.word?.style?.fontWeight, // 填充词fontWeight默认不跟随valueField\n fillingRotateList: fillingRotateAngles,\n\n fillingTimes: this._wordCloudShapeConfig?.fillingTimes,\n fillingXStep: this._wordCloudShapeConfig?.fillingXStep,\n fillingYStep: this._wordCloudShapeConfig?.fillingYStep,\n fillingXRatioStep: this._wordCloudShapeConfig?.fillingXRatioStep,\n fillingYRatioStep: this._wordCloudShapeConfig?.fillingYRatioStep,\n fillingInitialOpacity: this._wordCloudShapeConfig?.fillingInitialOpacity,\n fillingDeltaOpacity: this._wordCloudShapeConfig?.fillingDeltaOpacity,\n fillingInitialFontSize: this._wordCloudShapeConfig?.fillingInitialFontSize,\n fillingDeltaFontSize: this._wordCloudShapeConfig?.fillingDeltaFontSize,\n\n ratio: this._wordCloudShapeConfig?.ratio,\n fillingRatio: this._wordCloudShapeConfig?.fillingRatio,\n removeWhiteBorder: this._wordCloudShapeConfig?.removeWhiteBorder,\n textLayoutTimes: this._wordCloudShapeConfig?.textLayoutTimes,\n fontSizeShrinkFactor: this._wordCloudShapeConfig?.fontSizeShrinkFactor,\n stepFactor: this._wordCloudShapeConfig?.stepFactor,\n layoutMode: this._wordCloudShapeConfig?.layoutMode,\n importantWordCount: this._wordCloudShapeConfig?.importantWordCount,\n globalShinkLimit: this._wordCloudShapeConfig?.globalShinkLimit,\n fontSizeEnlargeFactor: this._wordCloudShapeConfig?.fontSizeEnlargeFactor,\n fillingDeltaFontSizeFactor: this._wordCloudShapeConfig?.fillingDeltaFontSizeFactor\n });\n }\n // 把transform挂载到data的product上\n this._data.getProduct().transform(wordCloudTransforms);\n }\n\n initMark(): void {\n this._wordMark = this._createMark(BaseWordCloudSeries.mark.word, {\n groupKey: this._seriesField,\n support3d: true,\n isSeriesMark: true\n }) as ITextMark;\n if (this._isWordCloudShape) {\n this._fillingWordMark = this._createMark(BaseWordCloudSeries.mark.fillingWord, {\n groupKey: this._seriesField,\n support3d: true,\n isSeriesMark: true\n }) as ITextMark;\n }\n }\n\n initMarkStyle() {\n const wordMark = this._wordMark;\n const fillingWordMark = this._fillingWordMark;\n if (wordMark) {\n this.setMarkStyle(\n wordMark,\n {\n fill: this._colorHexField\n ? (datum: Datum) => datum[this._colorHexField]\n : this.getWordColorAttribute(this._seriesField, false),\n text: (datum: Datum) => datum[this._nameField],\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n z: (datum: Datum) => datum.z ?? 0,\n fontFamily: (datum: Datum) => datum.fontFamily,\n fontSize: (datum: Datum) => datum.fontSize,\n fontStyle: (datum: Datum) => datum.fontStyle,\n fontWeight: (datum: Datum) => datum.fontWeight,\n angle: (datum: Datum) => datum.angle,\n visible: (datum: Datum) => !datum.isFillingWord\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n wordMark,\n {\n fontFamily: this._spec.word?.style?.fontFamily ?? this._getChartLevelTheme()?.fontFamily\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n }\n if (fillingWordMark) {\n this.setMarkStyle(\n fillingWordMark,\n {\n fill: this._wordCloudShapeConfig.fillingColorHexField\n ? (datum: Datum) => datum[this._wordCloudShapeConfig.fillingColorHexField]\n : this.getWordColorAttribute(this._wordCloudShapeConfig.fillingSeriesField, true),\n text: (datum: Datum) => datum[this._nameField],\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n z: (datum: Datum) => datum.z ?? 0,\n fontFamily: (datum: Datum) => datum.fontFamily,\n fontSize: (datum: Datum) => datum.fontSize,\n fontStyle: (datum: Datum) => datum.fontStyle,\n fontWeight: (datum: Datum) => datum.fontWeight,\n angle: (datum: Datum) => datum.angle,\n visible: (datum: Datum) => datum.isFillingWord\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n fillingWordMark,\n {\n fontFamily: this._spec.word?.style?.fontFamily ?? this._getChartLevelTheme()?.fontFamily\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n }\n this._trigger.registerMark(wordMark);\n this._trigger.registerMark(fillingWordMark);\n }\n\n initAnimation() {\n if (this._wordMark) {\n this._wordMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('wordCloud3d')?.(() => {\n const srView = this.getCompiler().getVGrammarView();\n const width = srView.width() - this._padding?.left || 0 - this._padding?.right || 0;\n const height = srView.height() - this._padding?.top || 0 - this._padding?.bottom || 0;\n const r = Math.max(width, height) / 2;\n return {\n center: { x: r, y: r, z: this._spec.depth_3d ?? r },\n r\n };\n }),\n userAnimationConfig(SeriesMarkNameEnum.word, this._spec)\n )\n );\n }\n if (this._fillingWordMark) {\n this._fillingWordMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('wordCloud3d')?.(() => {\n const srView = this.getCompiler().getVGrammarView();\n const width = srView.width() - this._padding?.left || 0 - this._padding?.right || 0;\n const height = srView.height() - this._padding?.top || 0 - this._padding?.bottom || 0;\n const r = Math.max(width, height) / 2;\n return {\n center: { x: r, y: r, z: this._spec.depth_3d ?? r },\n r\n };\n }),\n userAnimationConfig(SeriesMarkNameEnum.fillingWord, this._spec)\n )\n );\n }\n }\n}\n\nexport const registerWordCloud3dSeries = () => {\n Factory.registerMark(TextMark.type, TextMark);\n Factory.registerSeries(WordCloud3dSeries.type, WordCloud3dSeries);\n registerWordCloud3dAnimation();\n};\n"]}
@@ -1,7 +1,10 @@
1
1
  export * from './light';
2
2
  export * from './common/legacy';
3
+ import type { IChartLevelTheme } from '../../core/interface';
3
4
  import type { ITheme } from '../interface';
4
- export declare const builtinThemeMap: Map<string, ITheme>;
5
+ export declare const builtinThemes: Record<string, ITheme>;
5
6
  export declare const defaultThemeName: string;
6
7
  export declare const themes: Map<string, ITheme>;
8
+ export declare const hasThemeMerged: Map<string, boolean>;
7
9
  export declare const getMergedTheme: (theme: Partial<ITheme>) => ITheme;
10
+ export declare const defaultChartLevelTheme: IChartLevelTheme;
@@ -4,19 +4,28 @@ export * from "./common/legacy";
4
4
 
5
5
  import { mergeTheme } from "../../util/spec/merge-theme";
6
6
 
7
+ import { getActualColor } from "../color-scheme/util";
8
+
7
9
  import { darkTheme } from "./dark";
8
10
 
9
11
  import { lightTheme } from "./light";
10
12
 
11
- export const builtinThemeMap = new Map([ [ lightTheme.name, lightTheme ], [ darkTheme.name, darkTheme ] ]);
13
+ export const builtinThemes = {
14
+ [lightTheme.name]: lightTheme,
15
+ [darkTheme.name]: darkTheme
16
+ };
12
17
 
13
18
  export const defaultThemeName = lightTheme.name;
14
19
 
15
- export const themes = new Map([ [ defaultThemeName, builtinThemeMap.get(defaultThemeName) ] ]);
20
+ export const themes = new Map(Object.keys(builtinThemes).map((key => [ key, builtinThemes[key] ])));
21
+
22
+ export const hasThemeMerged = new Map(Object.keys(builtinThemes).map((key => [ key, key === defaultThemeName ])));
16
23
 
17
- export const getMergedTheme = theme => mergeTheme({}, builtinThemeMap.get(defaultThemeName), theme);
24
+ export const getMergedTheme = theme => mergeTheme({}, themes.get(defaultThemeName), theme);
18
25
 
19
- builtinThemeMap.forEach(((theme, name) => {
20
- name !== defaultThemeName && themes.set(name, getMergedTheme(theme));
21
- }));
26
+ export const defaultChartLevelTheme = {
27
+ background: getActualColor(builtinThemes[defaultThemeName].background, builtinThemes[defaultThemeName].colorScheme),
28
+ fontFamily: builtinThemes[defaultThemeName].fontFamily,
29
+ colorScheme: builtinThemes[defaultThemeName].colorScheme
30
+ };
22
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme/builtin/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,CAAC,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IAC1D,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;IAC7B,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC;AAGhD,MAAM,CAAC,MAAM,MAAM,GAAwB,IAAI,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAGhH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAU,EAAE,CAC/D,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC;AAG/D,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACtC,IAAI,IAAI,KAAK,gBAAgB,EAAE;QAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;KACzC;AACH,CAAC,CAAC,CAAC","file":"index.js","sourcesContent":["export * from './light';\n/** 历史弃用主题 */\nexport * from './common/legacy';\n\nimport { mergeTheme } from '../../util/spec/merge-theme';\nimport type { ITheme } from '../interface';\nimport { darkTheme } from './dark';\nimport { lightTheme } from './light';\n\n/** 内置主题 map (没有 merge 过默认主题的原始主题) */\nexport const builtinThemeMap: Map<string, ITheme> = new Map([\n [lightTheme.name, lightTheme],\n [darkTheme.name, darkTheme]\n]);\n\n/** 默认主题 */\nexport const defaultThemeName = lightTheme.name;\n\n/** merge 过默认主题的最终主题字典 */\nexport const themes: Map<string, ITheme> = new Map([[defaultThemeName, builtinThemeMap.get(defaultThemeName)]]);\n\n/** 使新主题基于默认主题扩展,保证基础值 */\nexport const getMergedTheme = (theme: Partial<ITheme>): ITheme =>\n mergeTheme({}, builtinThemeMap.get(defaultThemeName), theme);\n\n// 注册其他内置主题\nbuiltinThemeMap.forEach((theme, name) => {\n if (name !== defaultThemeName) {\n themes.set(name, getMergedTheme(theme));\n }\n});\n"]}
1
+ {"version":3,"sources":["../src/theme/builtin/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU;IAC7B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC;AAGhD,MAAM,CAAC,MAAM,MAAM,GAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAErH,MAAM,CAAC,MAAM,cAAc,GAAyB,IAAI,GAAG,CACzD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,gBAAgB,CAAC,CAAC,CACvE,CAAC;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC;AAEtH,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC;IACnH,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,UAAU;IACtD,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,WAAW;CACzD,CAAC","file":"index.js","sourcesContent":["export * from './light';\n/** 历史弃用主题 */\nexport * from './common/legacy';\n\nimport type { IChartLevelTheme } from '../../core/interface';\nimport { mergeTheme } from '../../util/spec/merge-theme';\nimport { getActualColor } from '../color-scheme/util';\nimport type { ITheme } from '../interface';\nimport { darkTheme } from './dark';\nimport { lightTheme } from './light';\n\n/** 声明内置主题 */\nexport const builtinThemes: Record<string, ITheme> = {\n [lightTheme.name]: lightTheme,\n [darkTheme.name]: darkTheme\n};\n/** 声明默认主题 */\nexport const defaultThemeName = lightTheme.name;\n\n/** 全局主题 map (包含用户新注册的主题) */\nexport const themes: Map<string, ITheme> = new Map(Object.keys(builtinThemes).map(key => [key, builtinThemes[key]]));\n/** 主题 map 中的元素是否 merge 过默认主题 (非默认主题的其他内置主题没有 merge 过默认主题) */\nexport const hasThemeMerged: Map<string, boolean> = new Map(\n Object.keys(builtinThemes).map(key => [key, key === defaultThemeName])\n);\n\n/** 使新主题基于默认主题扩展,保证基础值 */\nexport const getMergedTheme = (theme: Partial<ITheme>): ITheme => mergeTheme({}, themes.get(defaultThemeName), theme);\n\nexport const defaultChartLevelTheme: IChartLevelTheme = {\n background: getActualColor(builtinThemes[defaultThemeName].background, builtinThemes[defaultThemeName].colorScheme),\n fontFamily: builtinThemes[defaultThemeName].fontFamily,\n colorScheme: builtinThemes[defaultThemeName].colorScheme\n};\n"]}
@@ -52,7 +52,7 @@ export function isColorKey(obj) {
52
52
  }
53
53
 
54
54
  export function isProgressiveDataColorScheme(obj) {
55
- return !!isArray(obj) && obj.every((item => isValid(item.scheme)));
55
+ return !(!isArray(obj) || 0 === obj.length) && obj.every((item => isValid(item.scheme)));
56
56
  }
57
57
 
58
58
  export function transformColorSchemeToStandardStruct(colorScheme) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme/color-scheme/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { array, isArray, isFunction, isObject, isString, isValid } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { ColorUtil } from '@visactor/vutils';\nimport type { SeriesTypeEnum } from '../../series/interface';\nimport { Color } from '../../util/color';\nimport type {\n ColorScheme,\n ColorSchemeItem,\n IColorKey,\n IColorSchemeStruct,\n IProgressiveDataSchemeCase,\n IThemeColorScheme,\n ProgressiveDataScheme\n} from './interface';\n\n/**\n * 从色板中获取数据色板(在此步骤中替换语义色值)\n * @param colorScheme\n * @param seriesType\n * @returns\n */\nexport function getDataScheme(\n colorScheme: IThemeColorScheme,\n seriesType?: SeriesTypeEnum\n): Array<ColorSchemeItem> | ProgressiveDataScheme<ColorSchemeItem> {\n const scheme = !isValid(seriesType) ? colorScheme?.default : colorScheme?.[seriesType] ?? colorScheme?.default;\n if (!scheme || isArray(scheme)) {\n // 不带语义色板,直接输出\n return scheme as Array<ColorSchemeItem> | ProgressiveDataScheme<ColorSchemeItem>;\n } else if (isObject(scheme)) {\n // 带语义色板,转换颜色后输出\n const { dataScheme } = scheme as IColorSchemeStruct;\n if (!dataScheme) {\n return [];\n }\n // 渐进式色板的情况\n if (isProgressiveDataColorScheme(dataScheme)) {\n return dataScheme.map(item => ({\n ...item,\n scheme: item.scheme\n .map(color => {\n if (isColorKey(color)) {\n return queryColorFromColorScheme(colorScheme, color, seriesType);\n }\n return color;\n })\n .filter(isValid)\n }));\n }\n // 普通色板的情况\n return dataScheme\n .map(color => {\n if (isColorKey(color)) {\n return queryColorFromColorScheme(colorScheme, color, seriesType);\n }\n return color;\n })\n .filter(isValid);\n }\n return [];\n}\n\n/**\n * 计算最终数据色板(在此步骤中获得渐进式色板的最终色板)\n * @param colorScheme\n * @param seriesType\n * @returns\n */\nexport function computeActualDataScheme(\n dataScheme: Array<ColorSchemeItem> | ProgressiveDataScheme<ColorSchemeItem>,\n colorDomain: any[]\n): Array<ColorSchemeItem> {\n if (isProgressiveDataColorScheme(dataScheme)) {\n return (\n dataScheme.find(item => {\n if (isValid(item.isAvailable)) {\n if (isFunction(item.isAvailable)) {\n return item.isAvailable(colorDomain);\n }\n return !!item.isAvailable;\n } else if (isValid(item.maxDomainLength)) {\n return colorDomain?.length <= item.maxDomainLength;\n }\n return true;\n })?.scheme ?? dataScheme[dataScheme.length - 1].scheme\n );\n }\n return dataScheme;\n}\n\n/**\n * 根据色板和色值索引生成颜色\n * @param colorScheme\n * @param colorKey\n * @param seriesType\n * @returns\n */\nexport function queryColorFromColorScheme(\n colorScheme: IThemeColorScheme,\n colorKey: IColorKey,\n seriesType?: SeriesTypeEnum\n): ColorSchemeItem | undefined {\n const scheme = !isValid(seriesType) ? colorScheme.default : colorScheme[seriesType] ?? colorScheme.default;\n if (!scheme) {\n return undefined;\n }\n let color;\n const { palette } = scheme as IColorSchemeStruct;\n if (isObject(palette)) {\n color = palette[colorKey.key] ?? colorKey.default;\n }\n if (!color) {\n return undefined;\n }\n if ((!isValid(colorKey.a) && !isValid(colorKey.l)) || !isString(color)) {\n return color;\n }\n let c = new Color(color);\n if (isValid(colorKey.l)) {\n const { r, g, b } = c.color;\n const { h, s } = ColorUtil.rgbToHsl(r, g, b);\n const rgb = ColorUtil.hslToRgb(h, s, colorKey.l);\n const newColor = new Color(`rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`);\n newColor.setOpacity(c.color.opacity);\n c = newColor;\n }\n if (isValid(colorKey.a)) {\n c.setOpacity(colorKey.a);\n }\n return c.toRGBA();\n}\n\n/** 查询语义化颜色 */\nexport const getActualColor = (value: any, colorScheme?: IThemeColorScheme, seriesType?: SeriesTypeEnum) => {\n if (isColorKey(value)) {\n if (colorScheme) {\n const color = queryColorFromColorScheme(colorScheme, value, seriesType);\n if (color) {\n return color;\n }\n }\n }\n return value;\n};\n\nexport function isColorKey(obj: any): obj is IColorKey {\n return isObject(obj) && (obj as IColorKey).type === 'palette' && !!(obj as IColorKey).key;\n}\n\nexport function isProgressiveDataColorScheme<T>(obj: any): obj is ProgressiveDataScheme<T> {\n if (!isArray(obj)) {\n return false;\n }\n return obj.every(item => {\n return isValid((item as IProgressiveDataSchemeCase<T>).scheme);\n });\n}\n\n/** 将色板转化为标准形式 */\nexport function transformColorSchemeToStandardStruct(colorScheme: ColorScheme): IColorSchemeStruct {\n if (isArray(colorScheme)) {\n return {\n dataScheme: colorScheme\n };\n }\n return colorScheme;\n}\n"]}
1
+ {"version":3,"sources":["../src/theme/color-scheme/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { array, isArray, isFunction, isObject, isString, isValid } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { ColorUtil } from '@visactor/vutils';\nimport type { SeriesTypeEnum } from '../../series/interface';\nimport { Color } from '../../util/color';\nimport type {\n ColorScheme,\n ColorSchemeItem,\n IColorKey,\n IColorSchemeStruct,\n IProgressiveDataSchemeCase,\n IThemeColorScheme,\n ProgressiveDataScheme\n} from './interface';\n\n/**\n * 从色板中获取数据色板(在此步骤中替换语义色值)\n * @param colorScheme\n * @param seriesType\n * @returns\n */\nexport function getDataScheme(\n colorScheme: IThemeColorScheme,\n seriesType?: SeriesTypeEnum\n): Array<ColorSchemeItem> | ProgressiveDataScheme<ColorSchemeItem> {\n const scheme = !isValid(seriesType) ? colorScheme?.default : colorScheme?.[seriesType] ?? colorScheme?.default;\n if (!scheme || isArray(scheme)) {\n // 不带语义色板,直接输出\n return scheme as Array<ColorSchemeItem> | ProgressiveDataScheme<ColorSchemeItem>;\n } else if (isObject(scheme)) {\n // 带语义色板,转换颜色后输出\n const { dataScheme } = scheme as IColorSchemeStruct;\n if (!dataScheme) {\n return [];\n }\n // 渐进式色板的情况\n if (isProgressiveDataColorScheme(dataScheme)) {\n return dataScheme.map(item => ({\n ...item,\n scheme: item.scheme\n .map(color => {\n if (isColorKey(color)) {\n return queryColorFromColorScheme(colorScheme, color, seriesType);\n }\n return color;\n })\n .filter(isValid)\n }));\n }\n // 普通色板的情况\n return dataScheme\n .map(color => {\n if (isColorKey(color)) {\n return queryColorFromColorScheme(colorScheme, color, seriesType);\n }\n return color;\n })\n .filter(isValid);\n }\n return [];\n}\n\n/**\n * 计算最终数据色板(在此步骤中获得渐进式色板的最终色板)\n * @param colorScheme\n * @param seriesType\n * @returns\n */\nexport function computeActualDataScheme(\n dataScheme: Array<ColorSchemeItem> | ProgressiveDataScheme<ColorSchemeItem>,\n colorDomain: any[]\n): Array<ColorSchemeItem> {\n if (isProgressiveDataColorScheme(dataScheme)) {\n return (\n dataScheme.find(item => {\n if (isValid(item.isAvailable)) {\n if (isFunction(item.isAvailable)) {\n return item.isAvailable(colorDomain);\n }\n return !!item.isAvailable;\n } else if (isValid(item.maxDomainLength)) {\n return colorDomain?.length <= item.maxDomainLength;\n }\n return true;\n })?.scheme ?? dataScheme[dataScheme.length - 1].scheme\n );\n }\n return dataScheme;\n}\n\n/**\n * 根据色板和色值索引生成颜色\n * @param colorScheme\n * @param colorKey\n * @param seriesType\n * @returns\n */\nexport function queryColorFromColorScheme(\n colorScheme: IThemeColorScheme,\n colorKey: IColorKey,\n seriesType?: SeriesTypeEnum\n): ColorSchemeItem | undefined {\n const scheme = !isValid(seriesType) ? colorScheme.default : colorScheme[seriesType] ?? colorScheme.default;\n if (!scheme) {\n return undefined;\n }\n let color;\n const { palette } = scheme as IColorSchemeStruct;\n if (isObject(palette)) {\n color = palette[colorKey.key] ?? colorKey.default;\n }\n if (!color) {\n return undefined;\n }\n if ((!isValid(colorKey.a) && !isValid(colorKey.l)) || !isString(color)) {\n return color;\n }\n let c = new Color(color);\n if (isValid(colorKey.l)) {\n const { r, g, b } = c.color;\n const { h, s } = ColorUtil.rgbToHsl(r, g, b);\n const rgb = ColorUtil.hslToRgb(h, s, colorKey.l);\n const newColor = new Color(`rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`);\n newColor.setOpacity(c.color.opacity);\n c = newColor;\n }\n if (isValid(colorKey.a)) {\n c.setOpacity(colorKey.a);\n }\n return c.toRGBA();\n}\n\n/** 查询语义化颜色 */\nexport const getActualColor = (value: any, colorScheme?: IThemeColorScheme, seriesType?: SeriesTypeEnum) => {\n if (isColorKey(value)) {\n if (colorScheme) {\n const color = queryColorFromColorScheme(colorScheme, value, seriesType);\n if (color) {\n return color;\n }\n }\n }\n return value;\n};\n\nexport function isColorKey(obj: any): obj is IColorKey {\n return isObject(obj) && (obj as IColorKey).type === 'palette' && !!(obj as IColorKey).key;\n}\n\nexport function isProgressiveDataColorScheme<T>(obj: any): obj is ProgressiveDataScheme<T> {\n if (!isArray(obj) || obj.length === 0) {\n return false;\n }\n return obj.every(item => {\n return isValid((item as IProgressiveDataSchemeCase<T>).scheme);\n });\n}\n\n/** 将色板转化为标准形式 */\nexport function transformColorSchemeToStandardStruct(colorScheme: ColorScheme): IColorSchemeStruct {\n if (isArray(colorScheme)) {\n return {\n dataScheme: colorScheme\n };\n }\n return colorScheme;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { defaultThemeName, getMergedTheme, themes } from "./builtin";
1
+ import { defaultThemeName, getMergedTheme, hasThemeMerged, themes } from "./builtin";
2
2
 
3
3
  import { InstanceManager } from "../core/instance-manager";
4
4
 
@@ -6,13 +6,14 @@ import { isString } from "@visactor/vutils";
6
6
 
7
7
  export class ThemeManager {
8
8
  static registerTheme(name, theme) {
9
- name && ThemeManager.themes.set(name, getMergedTheme(theme));
9
+ name && (ThemeManager.themes.set(name, getMergedTheme(theme)), hasThemeMerged.set(name, !0));
10
10
  }
11
11
  static getTheme(name) {
12
- return ThemeManager.themes.get(name) || ThemeManager.getDefaultTheme();
12
+ return hasThemeMerged.has(name) && !hasThemeMerged.get(name) && ThemeManager.registerTheme(name, ThemeManager.themes.get(name)),
13
+ ThemeManager.themes.get(name) || ThemeManager.getDefaultTheme();
13
14
  }
14
15
  static removeTheme(name) {
15
- return ThemeManager.themes.delete(name);
16
+ return ThemeManager.themes.delete(name) && hasThemeMerged.delete(name);
16
17
  }
17
18
  static themeExist(name) {
18
19
  return !!isString(name) && ThemeManager.themes.has(name);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme/theme-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,OAAO,YAAY;IAYvB,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,KAAsB;QACvD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QAED,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAOD,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;IACzE,CAAC;IAOD,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAOD,MAAM,CAAC,UAAU,CAAC,IAAS;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAGD,MAAM,CAAC,eAAe;QACpB,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAGD,MAAM,CAAC,eAAe,CAAC,IAAY;QACjC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAClC,OAAO;SACR;QACD,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACtC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAiB,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IAGD,MAAM,CAAC,eAAe;QACpB,OAAO,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAGD,MAAM,CAAC,mBAAmB;QACxB,OAAO,YAAY,CAAC,iBAAiB,CAAC;IACxC,CAAC;;AAtEe,mBAAM,GAAG,MAAM,CAAC;AAEjB,8BAAiB,GAAW,gBAAgB,CAAC","file":"theme-manager.js","sourcesContent":["import { defaultThemeName, getMergedTheme, themes } from './builtin';\nimport type { ITheme } from './interface';\nimport { InstanceManager } from '../core/instance-manager';\nimport type { IVChart } from '../core/interface';\nimport { isString } from '@visactor/vutils';\n\nexport class ThemeManager {\n /** 主题字典 */\n static readonly themes = themes;\n\n private static _currentThemeName: string = defaultThemeName; // 设置缺省为默认主题\n\n /**\n * 注册主题\n * @param name 主题名称\n * @param theme 主题配置\n * @returns\n */\n static registerTheme(name: string, theme: Partial<ITheme>) {\n if (!name) {\n return;\n }\n // 所有主题基于默认主题扩展,保证基础值\n ThemeManager.themes.set(name, getMergedTheme(theme));\n }\n\n /**\n * 获取主题\n * @param name 主题名称\n * @returns\n */\n static getTheme(name: string) {\n return ThemeManager.themes.get(name) || ThemeManager.getDefaultTheme();\n }\n\n /**\n * 移除主题\n * @param name 主题名称\n * @returns 是否移除成功\n */\n static removeTheme(name: string): boolean {\n return ThemeManager.themes.delete(name);\n }\n\n /**\n * 判断主题是否存在\n * @param name 主题名称\n * @returns 是否存在\n */\n static themeExist(name: any) {\n if (!isString(name)) {\n return false;\n }\n return ThemeManager.themes.has(name);\n }\n\n /** 获取图表默认主题(非用户配置) */\n static getDefaultTheme(): ITheme {\n return ThemeManager.themes.get(defaultThemeName);\n }\n\n /** 设置当前主题(所有实例生效) */\n static setCurrentTheme(name: string) {\n if (!ThemeManager.themeExist(name)) {\n return;\n }\n ThemeManager._currentThemeName = name;\n InstanceManager.forEach((instance: IVChart) => instance?.setCurrentTheme(name));\n }\n\n /** 获取当前主题(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为默认主题) */\n static getCurrentTheme(): ITheme {\n return ThemeManager.getTheme(ThemeManager._currentThemeName);\n }\n\n /** 获取当前主题名称(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为默认主题) */\n static getCurrentThemeName(): string {\n return ThemeManager._currentThemeName;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/theme/theme-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,OAAO,YAAY;IAYvB,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,KAAsB;QACvD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QAED,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAOD,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAEzD,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SACjE;QACD,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;IACzE,CAAC;IAOD,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAOD,MAAM,CAAC,UAAU,CAAC,IAAS;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAGD,MAAM,CAAC,eAAe;QACpB,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAGD,MAAM,CAAC,eAAe,CAAC,IAAY;QACjC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAClC,OAAO;SACR;QACD,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACtC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAiB,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IAGD,MAAM,CAAC,eAAe;QACpB,OAAO,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAGD,MAAM,CAAC,mBAAmB;QACxB,OAAO,YAAY,CAAC,iBAAiB,CAAC;IACxC,CAAC;;AA3Ee,mBAAM,GAAG,MAAM,CAAC;AAEjB,8BAAiB,GAAW,gBAAgB,CAAC","file":"theme-manager.js","sourcesContent":["import { defaultThemeName, getMergedTheme, hasThemeMerged, themes } from './builtin';\nimport type { ITheme } from './interface';\nimport { InstanceManager } from '../core/instance-manager';\nimport type { IVChart } from '../core/interface';\nimport { isString } from '@visactor/vutils';\n\nexport class ThemeManager {\n /** 主题字典 */\n static readonly themes = themes;\n\n private static _currentThemeName: string = defaultThemeName; // 设置缺省为默认主题\n\n /**\n * 注册主题\n * @param name 主题名称\n * @param theme 主题配置\n * @returns\n */\n static registerTheme(name: string, theme: Partial<ITheme>) {\n if (!name) {\n return;\n }\n // 所有主题基于默认主题扩展,保证基础值\n ThemeManager.themes.set(name, getMergedTheme(theme));\n hasThemeMerged.set(name, true);\n }\n\n /**\n * 获取主题\n * @param name 主题名称\n * @returns\n */\n static getTheme(name: string) {\n if (hasThemeMerged.has(name) && !hasThemeMerged.get(name)) {\n // 重新 merge 默认主题\n ThemeManager.registerTheme(name, ThemeManager.themes.get(name));\n }\n return ThemeManager.themes.get(name) || ThemeManager.getDefaultTheme();\n }\n\n /**\n * 移除主题\n * @param name 主题名称\n * @returns 是否移除成功\n */\n static removeTheme(name: string): boolean {\n return ThemeManager.themes.delete(name) && hasThemeMerged.delete(name);\n }\n\n /**\n * 判断主题是否存在\n * @param name 主题名称\n * @returns 是否存在\n */\n static themeExist(name: any) {\n if (!isString(name)) {\n return false;\n }\n return ThemeManager.themes.has(name);\n }\n\n /** 获取图表默认主题(非用户配置) */\n static getDefaultTheme(): ITheme {\n return ThemeManager.themes.get(defaultThemeName);\n }\n\n /** 设置当前主题(所有实例生效) */\n static setCurrentTheme(name: string) {\n if (!ThemeManager.themeExist(name)) {\n return;\n }\n ThemeManager._currentThemeName = name;\n InstanceManager.forEach((instance: IVChart) => instance?.setCurrentTheme(name));\n }\n\n /** 获取当前主题(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为默认主题) */\n static getCurrentTheme(): ITheme {\n return ThemeManager.getTheme(ThemeManager._currentThemeName);\n }\n\n /** 获取当前主题名称(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为默认主题) */\n static getCurrentThemeName(): string {\n return ThemeManager._currentThemeName;\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import type { ITheme } from './interface';
2
+ import type { IThemeColorScheme } from './color-scheme/interface';
3
+ import type { IModelOption } from '../model/interface';
4
+ export declare const mergeThemeAndGet: (path: string, currentThemeName?: string, optionTheme?: string | ITheme, specTheme?: string | ITheme, colorScheme?: IThemeColorScheme) => any;
5
+ export declare const getThemeFromOption: (path: string, option: Partial<IModelOption>) => any;
@@ -0,0 +1,34 @@
1
+ import { isString, get, isObject, isNil } from "@visactor/vutils";
2
+
3
+ import { ThemeManager } from "./theme-manager";
4
+
5
+ import { mergeSpec, transformColorSchemeToMerge, transformSeriesThemeToMerge } from "../util";
6
+
7
+ import { getActualColor } from "./color-scheme/util";
8
+
9
+ import { defaultChartLevelTheme, defaultThemeName } from "./builtin";
10
+
11
+ export const mergeThemeAndGet = (path, currentThemeName, optionTheme, specTheme, colorScheme) => isString(specTheme) && ThemeManager.themeExist(specTheme) ? getMergedValue(getThemeValue(path, specTheme, colorScheme)) : isString(optionTheme) && ThemeManager.themeExist(optionTheme) ? getMergedValue(getThemeValue(path, optionTheme, colorScheme), getThemeValue(path, specTheme, colorScheme)) : getMergedValue(getThemeValue(path, currentThemeName, colorScheme), getThemeValue(path, optionTheme, colorScheme), getThemeValue(path, specTheme, colorScheme));
12
+
13
+ const getThemeValue = (path, theme, colorScheme) => {
14
+ let themeObject;
15
+ if (isString(theme) && ThemeManager.themeExist(theme) ? themeObject = ThemeManager.getTheme(theme) : isObject(theme) && (themeObject = theme),
16
+ isNil(themeObject)) return;
17
+ const paths = path.split(".");
18
+ if ("colorScheme" === path) return transformColorSchemeToMerge(themeObject.colorScheme);
19
+ if ("background" === path) return getActualColor(themeObject.background, colorScheme);
20
+ if (2 === paths.length && "series" === paths[0]) {
21
+ const {markByName: markByName, mark: mark} = themeObject;
22
+ return transformSeriesThemeToMerge(get(themeObject, paths), paths[1], mark, markByName);
23
+ }
24
+ return get(themeObject, paths);
25
+ }, getMergedValue = (...sources) => mergeSpec({}, ...sources.map((source => ({
26
+ __TMP_KEY__: source
27
+ })))).__TMP_KEY__;
28
+
29
+ export const getThemeFromOption = (path, option) => {
30
+ var _a, _b;
31
+ const {globalTheme: globalTheme = defaultThemeName, optionTheme: optionTheme, specTheme: specTheme, chartLevelTheme: chartLevelTheme = defaultChartLevelTheme} = null !== (_b = null === (_a = option.getThemeConfig) || void 0 === _a ? void 0 : _a.call(option)) && void 0 !== _b ? _b : {};
32
+ return mergeThemeAndGet(path, globalTheme, optionTheme, specTheme, null == chartLevelTheme ? void 0 : chartLevelTheme.colorScheme);
33
+ };
34
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/theme/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { isString, get, isObject, isNil } from '@visactor/vutils';\nimport type { ITheme } from './interface';\nimport { ThemeManager } from './theme-manager';\nimport { mergeSpec, transformColorSchemeToMerge, transformSeriesThemeToMerge } from '../util';\nimport { getActualColor } from './color-scheme/util';\nimport type { IThemeColorScheme } from './color-scheme/interface';\nimport type { IModelOption } from '../model/interface';\nimport { defaultChartLevelTheme, defaultThemeName } from './builtin';\n\n/**\n * 性能优化过的主题合并,只合并需要取用的主题部分\n * @param path 需要取用的路径\n * @param currentThemeName (低优先级)当前全局主题 name\n * @param optionTheme (中优先级)option 中设置的主题\n * @param specTheme (高优先级)spec 中设置的主题\n * @returns\n */\nexport const mergeThemeAndGet = (\n path: string,\n currentThemeName?: string,\n optionTheme?: string | ITheme,\n specTheme?: string | ITheme,\n colorScheme?: IThemeColorScheme\n) => {\n if (isString(specTheme) && ThemeManager.themeExist(specTheme)) {\n // 以 specTheme 为最底开始合并\n return getMergedValue(getThemeValue(path, specTheme, colorScheme));\n } else if (isString(optionTheme) && ThemeManager.themeExist(optionTheme)) {\n // 以 optionTheme 为最底开始合并\n return getMergedValue(getThemeValue(path, optionTheme, colorScheme), getThemeValue(path, specTheme, colorScheme));\n }\n // 以 baseTheme 为最底开始合并\n return getMergedValue(\n getThemeValue(path, currentThemeName, colorScheme),\n getThemeValue(path, optionTheme, colorScheme),\n getThemeValue(path, specTheme, colorScheme)\n );\n};\n\n/** 从 theme 取特定 path 的值,但可能会改变形式为 merge 作准备 */\nconst getThemeValue = (path: string, theme?: string | ITheme, colorScheme?: IThemeColorScheme) => {\n let themeObject: ITheme;\n if (isString(theme) && ThemeManager.themeExist(theme)) {\n themeObject = ThemeManager.getTheme(theme);\n } else if (isObject(theme)) {\n themeObject = theme;\n }\n if (isNil(themeObject)) {\n return undefined;\n }\n\n const paths = path.split('.');\n\n const colorSchemePath: keyof ITheme = 'colorScheme';\n if (path === colorSchemePath) {\n return transformColorSchemeToMerge(themeObject.colorScheme);\n }\n const backgroundPath: keyof ITheme = 'background';\n if (path === backgroundPath) {\n return getActualColor(themeObject.background, colorScheme);\n }\n const seriesPath: keyof ITheme = 'series';\n if (paths.length === 2 && paths[0] === seriesPath) {\n const { markByName, mark } = themeObject;\n return transformSeriesThemeToMerge(get(themeObject, paths), paths[1], mark, markByName);\n }\n\n return get(themeObject, paths);\n};\n\nconst getMergedValue = (...sources: any[]) => {\n const tmpKey = '__TMP_KEY__';\n const obj = mergeSpec(\n {},\n ...sources.map(source => ({\n [tmpKey]: source\n }))\n );\n return obj[tmpKey];\n};\n\nexport const getThemeFromOption = (path: string, option: Partial<IModelOption>) => {\n const {\n globalTheme = defaultThemeName,\n optionTheme,\n specTheme,\n chartLevelTheme = defaultChartLevelTheme\n } = option.getThemeConfig?.() ?? {};\n return mergeThemeAndGet(path, globalTheme, optionTheme, specTheme, chartLevelTheme?.colorScheme);\n};\n"]}
@@ -1,3 +1,6 @@
1
1
  import { type Maybe } from '@visactor/vutils';
2
- import type { ITheme } from '../../theme';
2
+ import type { IGlobalMarkThemeByName, IGlobalMarkThemeByType, ITheme } from '../../theme';
3
+ import type { IThemeColorScheme } from '../../theme/color-scheme/interface';
3
4
  export declare function mergeTheme(target: Maybe<ITheme>, ...sources: Maybe<ITheme>[]): Maybe<ITheme>;
5
+ export declare function transformColorSchemeToMerge(colorScheme?: Maybe<IThemeColorScheme>): Maybe<IThemeColorScheme>;
6
+ export declare function transformSeriesThemeToMerge(seriesTheme: any, seriesType: string, markByType: IGlobalMarkThemeByType, markByName: IGlobalMarkThemeByName): any;
@@ -12,23 +12,31 @@ export function mergeTheme(target, ...sources) {
12
12
 
13
13
  function transformThemeToMerge(theme) {
14
14
  if (!theme) return theme;
15
- let {colorScheme: colorScheme} = theme;
16
- colorScheme && (colorScheme = Object.keys(colorScheme).reduce(((scheme, key) => {
17
- const value = colorScheme[key];
18
- return scheme[key] = transformColorSchemeToStandardStruct(value), scheme;
19
- }), {}));
15
+ const colorScheme = transformColorSchemeToMerge(theme.colorScheme);
20
16
  let {series: series} = theme;
21
17
  const {mark: markByType, markByName: markByName} = theme;
22
18
  return (markByType || markByName) && (series = Object.keys(seriesMarkInfoMap).reduce(((newSeriesTheme, key) => {
23
19
  var _a;
24
- const value = null !== (_a = null == series ? void 0 : series[key]) && void 0 !== _a ? _a : {}, newValue = {};
25
- return Object.values(seriesMarkInfoMap[key]).forEach((({type: type, name: name}) => {
26
- var _a, _b;
27
- newValue[name] = mergeSpec({}, null !== (_a = null == markByType ? void 0 : markByType[array(type)[0]]) && void 0 !== _a ? _a : {}, null !== (_b = null == markByName ? void 0 : markByName[name]) && void 0 !== _b ? _b : {}, value[name]);
28
- })), newSeriesTheme[key] = Object.assign(Object.assign({}, value), newValue), newSeriesTheme;
20
+ const value = null !== (_a = null == series ? void 0 : series[key]) && void 0 !== _a ? _a : {};
21
+ return newSeriesTheme[key] = transformSeriesThemeToMerge(value, key, markByType, markByName),
22
+ newSeriesTheme;
29
23
  }), {})), Object.assign(Object.assign({}, theme), {
30
24
  colorScheme: colorScheme,
31
25
  series: series
32
26
  });
33
27
  }
28
+
29
+ export function transformColorSchemeToMerge(colorScheme) {
30
+ return colorScheme && (colorScheme = Object.keys(colorScheme).reduce(((scheme, key) => {
31
+ const value = colorScheme[key];
32
+ return scheme[key] = transformColorSchemeToStandardStruct(value), scheme;
33
+ }), {})), colorScheme;
34
+ }
35
+
36
+ export function transformSeriesThemeToMerge(seriesTheme, seriesType, markByType, markByName) {
37
+ const newTheme = {};
38
+ return Object.values(seriesMarkInfoMap[seriesType]).forEach((({type: type, name: name}) => {
39
+ newTheme[name] = mergeSpec({}, null == markByType ? void 0 : markByType[array(type)[0]], null == markByName ? void 0 : markByName[name], null == seriesTheme ? void 0 : seriesTheme[name]);
40
+ })), Object.assign(Object.assign({}, seriesTheme), newTheme);
41
+ }
34
42
  //# sourceMappingURL=merge-theme.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/spec/merge-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AAIrF,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,UAAU,CAAC,MAAqB,EAAE,GAAG,OAAwB;IAC3E,OAAO,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAqB;IAClD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC5B,IAAI,WAAW,EAAE;QACf,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,EAAuB,CAAC,CAAC;KAC7B;IAGD,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC/C,IAAI,UAAU,IAAI,UAAU,EAAE;QAC5B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,GAAG,EAAE,EAAE;;YACrE,MAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,CAAC,mCAAI,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAkB,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;;gBAChF,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,CAAC,mCAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5G,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,GAAG,CAAC,mCACd,KAAK,GACL,QAAQ,CACZ,CAAC;YACF,OAAO,cAAc,CAAC;QACxB,CAAC,EAAE,EAAkB,CAAC,CAAC;KACxB;IAED,uCACK,KAAK,KACR,WAAW;QACX,MAAM,IACN;AACJ,CAAC","file":"merge-theme.js","sourcesContent":["import { type Maybe, array } from '@visactor/vutils';\nimport type { ITheme } from '../../theme';\nimport { transformColorSchemeToStandardStruct } from '../../theme/color-scheme/util';\nimport type { IThemeColorScheme } from '../../theme/color-scheme/interface';\nimport type { ISeriesTheme } from '../../series/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { seriesMarkInfoMap, type ISeriesMarkInfo } from '../../series/interface';\nimport { mergeSpec } from './merge-spec';\n\nexport function mergeTheme(target: Maybe<ITheme>, ...sources: Maybe<ITheme>[]): Maybe<ITheme> {\n return mergeSpec(transformThemeToMerge(target), ...sources.map(transformThemeToMerge));\n}\n\nfunction transformThemeToMerge(theme?: Maybe<ITheme>): Maybe<ITheme> {\n if (!theme) {\n return theme;\n }\n\n // 将色板转化为标准形式\n let { colorScheme } = theme;\n if (colorScheme) {\n colorScheme = Object.keys(colorScheme).reduce<IThemeColorScheme>((scheme, key) => {\n const value = colorScheme[key];\n scheme[key] = transformColorSchemeToStandardStruct(value);\n return scheme;\n }, {} as IThemeColorScheme);\n }\n\n // 将全局 mark 主题 merge 进系列主题\n let { series } = theme;\n const { mark: markByType, markByName } = theme;\n if (markByType || markByName) {\n series = Object.keys(seriesMarkInfoMap).reduce((newSeriesTheme, key) => {\n const value = series?.[key] ?? {};\n const newValue = {};\n Object.values<ISeriesMarkInfo>(seriesMarkInfoMap[key]).forEach(({ type, name }) => {\n newValue[name] = mergeSpec({}, markByType?.[array(type)[0]] ?? {}, markByName?.[name] ?? {}, value[name]);\n });\n newSeriesTheme[key] = {\n ...value,\n ...newValue\n };\n return newSeriesTheme;\n }, {} as ISeriesTheme);\n }\n\n return {\n ...theme,\n colorScheme,\n series\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/util/spec/merge-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AAIrF,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,UAAU,CAAC,MAAqB,EAAE,GAAG,OAAwB;IAC3E,OAAO,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAqB;IAClD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAGD,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAGnE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC/C,IAAI,UAAU,IAAI,UAAU,EAAE;QAC5B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,GAAG,EAAE,EAAE;;YACrE,MAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,CAAC,mCAAI,EAAE,CAAC;YAClC,cAAc,CAAC,GAAG,CAAC,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACtF,OAAO,cAAc,CAAC;QACxB,CAAC,EAAE,EAAkB,CAAC,CAAC;KACxB;IAED,uCACK,KAAK,KACR,WAAW;QACX,MAAM,IACN;AACJ,CAAC;AAGD,MAAM,UAAU,2BAA2B,CAAC,WAAsC;IAChF,IAAI,WAAW,EAAE;QACf,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,EAAuB,CAAC,CAAC;KAC7B;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAGD,MAAM,UAAU,2BAA2B,CACzC,WAAgB,EAChB,UAAkB,EAClB,UAAkC,EAClC,UAAkC;IAElC,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,MAAM,CAAC,MAAM,CAAkB,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QACvF,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,CAAC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,IAAI,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IACH,uCACK,WAAW,GACX,QAAQ,EACX;AACJ,CAAC","file":"merge-theme.js","sourcesContent":["import { type Maybe, array } from '@visactor/vutils';\nimport type { IGlobalMarkThemeByName, IGlobalMarkThemeByType, ITheme } from '../../theme';\nimport { transformColorSchemeToStandardStruct } from '../../theme/color-scheme/util';\nimport type { IThemeColorScheme } from '../../theme/color-scheme/interface';\nimport type { ISeriesTheme } from '../../series/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { seriesMarkInfoMap, type ISeriesMarkInfo } from '../../series/interface';\nimport { mergeSpec } from './merge-spec';\n\nexport function mergeTheme(target: Maybe<ITheme>, ...sources: Maybe<ITheme>[]): Maybe<ITheme> {\n return mergeSpec(transformThemeToMerge(target), ...sources.map(transformThemeToMerge));\n}\n\nfunction transformThemeToMerge(theme?: Maybe<ITheme>): Maybe<ITheme> {\n if (!theme) {\n return theme;\n }\n\n // 将色板转化为标准形式\n const colorScheme = transformColorSchemeToMerge(theme.colorScheme);\n\n // 将全局 mark 主题 merge 进系列主题\n let { series } = theme;\n const { mark: markByType, markByName } = theme;\n if (markByType || markByName) {\n series = Object.keys(seriesMarkInfoMap).reduce((newSeriesTheme, key) => {\n const value = series?.[key] ?? {};\n newSeriesTheme[key] = transformSeriesThemeToMerge(value, key, markByType, markByName);\n return newSeriesTheme;\n }, {} as ISeriesTheme);\n }\n\n return {\n ...theme,\n colorScheme,\n series\n };\n}\n\n/** 将色板转化为标准形式 */\nexport function transformColorSchemeToMerge(colorScheme?: Maybe<IThemeColorScheme>): Maybe<IThemeColorScheme> {\n if (colorScheme) {\n colorScheme = Object.keys(colorScheme).reduce<IThemeColorScheme>((scheme, key) => {\n const value = colorScheme[key];\n scheme[key] = transformColorSchemeToStandardStruct(value);\n return scheme;\n }, {} as IThemeColorScheme);\n }\n return colorScheme;\n}\n\n/** 将全局 mark 主题 merge 进系列主题 */\nexport function transformSeriesThemeToMerge(\n seriesTheme: any,\n seriesType: string,\n markByType: IGlobalMarkThemeByType,\n markByName: IGlobalMarkThemeByName\n): any {\n const newTheme: any = {};\n Object.values<ISeriesMarkInfo>(seriesMarkInfoMap[seriesType]).forEach(({ type, name }) => {\n newTheme[name] = mergeSpec({}, markByType?.[array(type)[0]], markByName?.[name], seriesTheme?.[name]);\n });\n return {\n ...seriesTheme,\n ...newTheme\n };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { isArray, isFunction, isObject, isString, isValid, isValidNumber } from "@visactor/vutils";
1
+ import { isArray, isFunction, isNil, isObject, isString, isValid, isValidNumber } from "@visactor/vutils";
2
2
 
3
3
  import { seriesMarkNameSet } from "../../series/interface";
4
4
 
@@ -9,6 +9,7 @@ import { getActualColor, isColorKey } from "../../theme/color-scheme/util";
9
9
  import { normalizeLayoutPaddingSpec } from "../space";
10
10
 
11
11
  export function preprocessSpecOrTheme(type, obj, colorScheme, seriesType) {
12
+ if (isNil(obj)) return obj;
12
13
  if (isArray(obj)) return obj.map((element => isObject(element) && !isFunction(element) ? preprocessSpecOrTheme(type, element, colorScheme, seriesType) : element));
13
14
  const newObj = {};
14
15
  return Object.keys(obj).forEach((key => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/spec/preprocess.ts"],"names":[],"mappings":"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","file":"preprocess.js","sourcesContent":["import { isArray, isFunction, isObject, isString, isValid, isValidNumber } from '@visactor/vutils';\nimport { seriesMarkNameSet, type SeriesTypeEnum } from '../../series/interface';\nimport type { IThemeColorScheme } from '../../theme/color-scheme/interface';\nimport { isDataView, isHTMLElement } from './common';\nimport { getActualColor, isColorKey } from '../../theme/color-scheme/util';\nimport { normalizeLayoutPaddingSpec } from '../space';\n\n/**\n * 对 spec 或者类 spec 配置(如 theme)进行预处理,如进行语义化颜色的转换等\n * @param type 需要转换的对象类型(spec 或者 theme)\n * @param obj 需要转换的对象\n * @param colorScheme 主题色板\n * @param seriesType 当前系列类型\n * @returns\n */\nexport function preprocessSpecOrTheme(\n type: 'spec' | 'theme' | 'mark-spec' | 'mark-theme',\n obj: any,\n colorScheme?: IThemeColorScheme,\n seriesType?: SeriesTypeEnum\n): any {\n if (isArray(obj)) {\n return obj.map(element => {\n if (isObject(element) && !isFunction(element)) {\n return preprocessSpecOrTheme(type, element, colorScheme, seriesType);\n }\n return element;\n });\n }\n\n const newObj = {};\n Object.keys(obj).forEach(key => {\n const value = obj[key];\n // 绕过数据\n if (key.includes('data')) {\n newObj[key] = value;\n return;\n }\n if (isObject(value)) {\n // 绕过不可深拷贝的对象\n if (isFunction(value) || isDataView(value) || isHTMLElement(value)) {\n newObj[key] = value;\n return;\n }\n if (isColorKey(value)) {\n // 查询、替换语义化颜色\n newObj[key] = getActualColor(value, colorScheme, seriesType);\n } else {\n newObj[key] = preprocessSpecOrTheme(\n seriesMarkNameSet.has(key) ? (type.includes('spec') ? 'mark-spec' : 'mark-theme') : type,\n value,\n colorScheme,\n seriesType\n );\n }\n } else if (!type.includes('mark') && key === 'padding') {\n // 标准化 padding\n newObj[key] = normalizeLayoutPaddingSpec(value);\n } else if (!type.includes('theme') && key === 'lineHeight' && isString(value) && value[value.length - 1] === '%') {\n if (isValid(obj.fontSize)) {\n // 处理 lineHeight 的比例值\n // FIXME: vrender 支持行高字符串后删掉这段逻辑\n const scale = Number.parseFloat(value.substring(0, value.length - 1)) / 100;\n const newValue = obj.fontSize * scale;\n if (isValidNumber(newValue)) {\n newObj[key] = newValue;\n }\n }\n // 如果 spec 同级里没有 fontSize 配置,lineHeight 比例值失效\n } else {\n newObj[key] = value;\n }\n });\n\n return newObj;\n}\n"]}
1
+ {"version":3,"sources":["../src/util/spec/preprocess.ts"],"names":[],"mappings":"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","file":"preprocess.js","sourcesContent":["import { isArray, isFunction, isNil, isObject, isString, isValid, isValidNumber } from '@visactor/vutils';\nimport { seriesMarkNameSet, type SeriesTypeEnum } from '../../series/interface';\nimport type { IThemeColorScheme } from '../../theme/color-scheme/interface';\nimport { isDataView, isHTMLElement } from './common';\nimport { getActualColor, isColorKey } from '../../theme/color-scheme/util';\nimport { normalizeLayoutPaddingSpec } from '../space';\n\n/**\n * 对 spec 或者类 spec 配置(如 theme)进行预处理,如进行语义化颜色的转换等\n * @param type 需要转换的对象类型(spec 或者 theme)\n * @param obj 需要转换的对象\n * @param colorScheme 主题色板\n * @param seriesType 当前系列类型\n * @returns\n */\nexport function preprocessSpecOrTheme(\n type: 'spec' | 'theme' | 'mark-spec' | 'mark-theme',\n obj: any,\n colorScheme?: IThemeColorScheme,\n seriesType?: SeriesTypeEnum\n): any {\n if (isNil(obj)) {\n return obj;\n }\n if (isArray(obj)) {\n return obj.map(element => {\n if (isObject(element) && !isFunction(element)) {\n return preprocessSpecOrTheme(type, element, colorScheme, seriesType);\n }\n return element;\n });\n }\n\n const newObj = {};\n Object.keys(obj).forEach(key => {\n const value = obj[key];\n // 绕过数据\n if (key.includes('data')) {\n newObj[key] = value;\n return;\n }\n if (isObject(value)) {\n // 绕过不可深拷贝的对象\n if (isFunction(value) || isDataView(value) || isHTMLElement(value)) {\n newObj[key] = value;\n return;\n }\n if (isColorKey(value)) {\n // 查询、替换语义化颜色\n newObj[key] = getActualColor(value, colorScheme, seriesType);\n } else {\n newObj[key] = preprocessSpecOrTheme(\n seriesMarkNameSet.has(key) ? (type.includes('spec') ? 'mark-spec' : 'mark-theme') : type,\n value,\n colorScheme,\n seriesType\n );\n }\n } else if (!type.includes('mark') && key === 'padding') {\n // 标准化 padding\n newObj[key] = normalizeLayoutPaddingSpec(value);\n } else if (!type.includes('theme') && key === 'lineHeight' && isString(value) && value[value.length - 1] === '%') {\n if (isValid(obj.fontSize)) {\n // 处理 lineHeight 的比例值\n // FIXME: vrender 支持行高字符串后删掉这段逻辑\n const scale = Number.parseFloat(value.substring(0, value.length - 1)) / 100;\n const newValue = obj.fontSize * scale;\n if (isValidNumber(newValue)) {\n newObj[key] = newValue;\n }\n }\n // 如果 spec 同级里没有 fontSize 配置,lineHeight 比例值失效\n } else {\n newObj[key] = value;\n }\n });\n\n return newObj;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vchart",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "description": "charts lib based @visactor/VGrammar",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -76,25 +76,25 @@
76
76
  "size-limit": "9.0.0",
77
77
  "@size-limit/file": "9.0.0",
78
78
  "@internal/typescript-json-schema": "0.0.1",
79
- "@internal/bundler": "0.0.1",
80
79
  "@internal/eslint-config": "0.0.1",
81
- "@internal/ts-config": "0.0.1"
80
+ "@internal/ts-config": "0.0.1",
81
+ "@internal/bundler": "0.0.1"
82
82
  },
83
83
  "dependencies": {
84
- "@visactor/vutils": "~0.16.4",
85
- "@visactor/vdataset": "~0.16.4",
86
- "@visactor/vscale": "~0.16.4",
87
- "@visactor/vrender-core": "~0.16.8",
88
- "@visactor/vrender-kits": "~0.16.8",
89
- "@visactor/vrender-components": "~0.16.8",
90
- "@visactor/vgrammar-core": "~0.8.0",
91
- "@visactor/vgrammar-projection": "~0.8.0",
92
- "@visactor/vgrammar-wordcloud": "~0.8.0",
93
- "@visactor/vgrammar-wordcloud-shape": "~0.8.0",
94
- "@visactor/vgrammar-hierarchy": "~0.8.0",
95
- "@visactor/vgrammar-sankey": "~0.8.0",
96
- "@visactor/vgrammar-util": "~0.8.0",
97
- "@visactor/vutils-extension": "1.5.2"
84
+ "@visactor/vutils": "~0.16.6",
85
+ "@visactor/vdataset": "~0.16.6",
86
+ "@visactor/vscale": "~0.16.6",
87
+ "@visactor/vrender-core": "~0.16.9",
88
+ "@visactor/vrender-kits": "~0.16.9",
89
+ "@visactor/vrender-components": "~0.16.9",
90
+ "@visactor/vgrammar-core": "~0.8.1",
91
+ "@visactor/vgrammar-projection": "~0.8.1",
92
+ "@visactor/vgrammar-wordcloud": "~0.8.1",
93
+ "@visactor/vgrammar-wordcloud-shape": "~0.8.1",
94
+ "@visactor/vgrammar-hierarchy": "~0.8.1",
95
+ "@visactor/vgrammar-sankey": "~0.8.1",
96
+ "@visactor/vgrammar-util": "~0.8.1",
97
+ "@visactor/vutils-extension": "1.5.3"
98
98
  },
99
99
  "publishConfig": {
100
100
  "access": "public",