@visactor/vchart 2.0.3-alpha.0 → 2.0.3-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +980 -897
  3. package/build/index.js +981 -896
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/index.js +2 -1
  7. package/cjs/animation/interface.js +1 -2
  8. package/cjs/animation/utils.js +1 -1
  9. package/cjs/animation/utils.js.map +1 -1
  10. package/cjs/chart/base/base-chart-transformer.js +3 -3
  11. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  12. package/cjs/chart/base/base-chart.d.ts +1 -0
  13. package/cjs/chart/base/base-chart.js +5 -8
  14. package/cjs/chart/base/base-chart.js.map +1 -1
  15. package/cjs/chart/index.d.ts +2 -2
  16. package/cjs/chart/index.js +7 -2
  17. package/cjs/chart/index.js.map +1 -1
  18. package/cjs/chart/interface/chart.d.ts +1 -0
  19. package/cjs/chart/interface/chart.js.map +1 -1
  20. package/cjs/chart/interface/common.d.ts +1 -1
  21. package/cjs/chart/interface/common.js.map +1 -1
  22. package/cjs/chart/util.js +2 -1
  23. package/cjs/compile/compiler.d.ts +1 -0
  24. package/cjs/compile/compiler.js +13 -5
  25. package/cjs/compile/compiler.js.map +1 -1
  26. package/cjs/compile/interface/compilable-item.d.ts +1 -0
  27. package/cjs/compile/interface/compilable-item.js.map +1 -1
  28. package/cjs/compile/interface/compiler.d.ts +5 -0
  29. package/cjs/compile/interface/compiler.js.map +1 -1
  30. package/cjs/component/axis/base-axis.js +14 -13
  31. package/cjs/component/axis/base-axis.js.map +1 -1
  32. package/cjs/component/axis/cartesian/band-axis.d.ts +8 -0
  33. package/cjs/component/axis/cartesian/band-axis.js +9 -0
  34. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  35. package/cjs/component/axis/interface/common.js.map +1 -1
  36. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +2 -0
  37. package/cjs/component/axis/mixin/band-axis-mixin.js +15 -1
  38. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  39. package/cjs/component/brush/brush.js +6 -6
  40. package/cjs/component/brush/brush.js.map +1 -1
  41. package/cjs/component/brush/interface.d.ts +1 -0
  42. package/cjs/component/brush/interface.js.map +1 -1
  43. package/cjs/component/crosshair/base.d.ts +1 -1
  44. package/cjs/component/crosshair/base.js +1 -1
  45. package/cjs/component/crosshair/base.js.map +1 -1
  46. package/cjs/component/crosshair/utils/cartesian.js +2 -2
  47. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  48. package/cjs/component/custom-mark/custom-mark.js +6 -9
  49. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  50. package/cjs/component/data-zoom/data-filter-base-component.d.ts +0 -1
  51. package/cjs/component/data-zoom/data-filter-base-component.js +13 -19
  52. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  53. package/cjs/component/data-zoom/interface.d.ts +0 -3
  54. package/cjs/component/data-zoom/interface.js.map +1 -1
  55. package/cjs/component/data-zoom/util.d.ts +0 -1
  56. package/cjs/component/data-zoom/util.js +3 -4
  57. package/cjs/component/data-zoom/util.js.map +1 -1
  58. package/cjs/component/player/player.js +2 -1
  59. package/cjs/component/player/player.js.map +1 -1
  60. package/cjs/component/tooltip/tooltip.js +8 -3
  61. package/cjs/component/tooltip/tooltip.js.map +1 -1
  62. package/cjs/constant/attribute.js +1 -2
  63. package/cjs/constant/sunburst.js +2 -1
  64. package/cjs/constant/waterfall.js +1 -2
  65. package/cjs/core/index.d.ts +1 -1
  66. package/cjs/core/index.js +1 -1
  67. package/cjs/core/index.js.map +1 -1
  68. package/cjs/core/interface.d.ts +1 -0
  69. package/cjs/core/interface.js.map +1 -1
  70. package/cjs/core/util.js +1 -1
  71. package/cjs/core/vchart.d.ts +2 -0
  72. package/cjs/core/vchart.js +42 -22
  73. package/cjs/core/vchart.js.map +1 -1
  74. package/cjs/data/transforms/obj-flat.js +1 -4
  75. package/cjs/data/transforms/obj-flat.js.map +1 -1
  76. package/cjs/mark/base/base-line.d.ts +1 -1
  77. package/cjs/mark/base/base-line.js.map +1 -1
  78. package/cjs/mark/base/base-mark.d.ts +6 -2
  79. package/cjs/mark/base/base-mark.js +69 -51
  80. package/cjs/mark/base/base-mark.js.map +1 -1
  81. package/cjs/mark/group.d.ts +3 -2
  82. package/cjs/mark/group.js +15 -13
  83. package/cjs/mark/group.js.map +1 -1
  84. package/cjs/mark/interface/common.d.ts +5 -2
  85. package/cjs/mark/interface/common.js.map +1 -1
  86. package/cjs/model/base-model.d.ts +5 -1
  87. package/cjs/model/base-model.js +7 -0
  88. package/cjs/model/base-model.js.map +1 -1
  89. package/cjs/model/interface.d.ts +5 -2
  90. package/cjs/model/interface.js.map +1 -1
  91. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
  92. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
  93. package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  94. package/cjs/plugin/components/tooltip-handler/utils/style.js +4 -4
  95. package/cjs/plugin/components/tooltip-handler/utils/style.js.map +1 -1
  96. package/cjs/region/region.js.map +1 -1
  97. package/cjs/series/base/base-series-transformer.js +1 -1
  98. package/cjs/series/base/base-series-transformer.js.map +1 -1
  99. package/cjs/series/base/base-series.js +2 -3
  100. package/cjs/series/base/base-series.js.map +1 -1
  101. package/cjs/series/dot/dot.d.ts +0 -1
  102. package/cjs/series/dot/dot.js +6 -29
  103. package/cjs/series/dot/dot.js.map +1 -1
  104. package/cjs/series/dot/interface.d.ts +0 -1
  105. package/cjs/series/dot/interface.js.map +1 -1
  106. package/cjs/series/dot/tooltip-helper.js +2 -3
  107. package/cjs/series/dot/tooltip-helper.js.map +1 -1
  108. package/cjs/series/funnel/funnel.js +0 -2
  109. package/cjs/series/funnel/funnel.js.map +1 -1
  110. package/cjs/series/interface/type.d.ts +0 -3
  111. package/cjs/series/interface/type.js +3 -5
  112. package/cjs/series/interface/type.js.map +1 -1
  113. package/cjs/series/link/constant.js +0 -8
  114. package/cjs/series/link/constant.js.map +1 -1
  115. package/cjs/series/link/interface.d.ts +1 -10
  116. package/cjs/series/link/interface.js +1 -5
  117. package/cjs/series/link/interface.js.map +1 -1
  118. package/cjs/series/link/link.d.ts +1 -3
  119. package/cjs/series/link/link.js +16 -46
  120. package/cjs/series/link/link.js.map +1 -1
  121. package/cjs/series/map/map.js +1 -2
  122. package/cjs/series/map/map.js.map +1 -1
  123. package/cjs/series/pie/pie.js +0 -1
  124. package/cjs/series/pie/pie.js.map +1 -1
  125. package/cjs/series/sankey/sankey.d.ts +10 -10
  126. package/cjs/series/sankey/sankey.js +199 -194
  127. package/cjs/series/sankey/sankey.js.map +1 -1
  128. package/cjs/util/mark.d.ts +1 -0
  129. package/cjs/util/mark.js +10 -1
  130. package/cjs/util/mark.js.map +1 -1
  131. package/cjs/util/object.d.ts +1 -0
  132. package/cjs/util/object.js +13 -2
  133. package/cjs/util/object.js.map +1 -1
  134. package/esm/animation/index.js +2 -1
  135. package/esm/animation/interface.js +1 -2
  136. package/esm/animation/utils.js +1 -1
  137. package/esm/animation/utils.js.map +1 -1
  138. package/esm/chart/base/base-chart-transformer.js +3 -3
  139. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  140. package/esm/chart/base/base-chart.d.ts +1 -0
  141. package/esm/chart/base/base-chart.js +5 -8
  142. package/esm/chart/base/base-chart.js.map +1 -1
  143. package/esm/chart/index.d.ts +2 -2
  144. package/esm/chart/index.js +2 -2
  145. package/esm/chart/index.js.map +1 -1
  146. package/esm/chart/interface/chart.d.ts +1 -0
  147. package/esm/chart/interface/chart.js.map +1 -1
  148. package/esm/chart/interface/common.d.ts +1 -1
  149. package/esm/chart/interface/common.js.map +1 -1
  150. package/esm/chart/util.js +2 -1
  151. package/esm/compile/compiler.d.ts +1 -0
  152. package/esm/compile/compiler.js +13 -6
  153. package/esm/compile/compiler.js.map +1 -1
  154. package/esm/compile/interface/compilable-item.d.ts +1 -0
  155. package/esm/compile/interface/compilable-item.js.map +1 -1
  156. package/esm/compile/interface/compiler.d.ts +5 -0
  157. package/esm/compile/interface/compiler.js.map +1 -1
  158. package/esm/component/axis/base-axis.js +8 -8
  159. package/esm/component/axis/base-axis.js.map +1 -1
  160. package/esm/component/axis/cartesian/band-axis.d.ts +8 -0
  161. package/esm/component/axis/cartesian/band-axis.js +9 -1
  162. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  163. package/esm/component/axis/interface/common.js.map +1 -1
  164. package/esm/component/axis/mixin/band-axis-mixin.d.ts +2 -0
  165. package/esm/component/axis/mixin/band-axis-mixin.js +15 -1
  166. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  167. package/esm/component/brush/brush.js +6 -6
  168. package/esm/component/brush/brush.js.map +1 -1
  169. package/esm/component/brush/interface.d.ts +1 -0
  170. package/esm/component/brush/interface.js.map +1 -1
  171. package/esm/component/crosshair/base.d.ts +1 -1
  172. package/esm/component/crosshair/base.js +1 -1
  173. package/esm/component/crosshair/base.js.map +1 -1
  174. package/esm/component/crosshair/utils/cartesian.js +2 -2
  175. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  176. package/esm/component/custom-mark/custom-mark.js +6 -9
  177. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  178. package/esm/component/data-zoom/data-filter-base-component.d.ts +0 -1
  179. package/esm/component/data-zoom/data-filter-base-component.js +13 -18
  180. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  181. package/esm/component/data-zoom/interface.d.ts +0 -3
  182. package/esm/component/data-zoom/interface.js.map +1 -1
  183. package/esm/component/data-zoom/util.d.ts +0 -1
  184. package/esm/component/data-zoom/util.js +2 -5
  185. package/esm/component/data-zoom/util.js.map +1 -1
  186. package/esm/component/player/player.js +2 -1
  187. package/esm/component/player/player.js.map +1 -1
  188. package/esm/component/tooltip/tooltip.js +8 -3
  189. package/esm/component/tooltip/tooltip.js.map +1 -1
  190. package/esm/constant/attribute.js +1 -2
  191. package/esm/constant/sunburst.js +2 -1
  192. package/esm/constant/waterfall.js +1 -2
  193. package/esm/core/index.d.ts +1 -1
  194. package/esm/core/index.js +1 -1
  195. package/esm/core/index.js.map +1 -1
  196. package/esm/core/interface.d.ts +1 -0
  197. package/esm/core/interface.js.map +1 -1
  198. package/esm/core/util.js +1 -1
  199. package/esm/core/vchart.d.ts +2 -0
  200. package/esm/core/vchart.js +42 -22
  201. package/esm/core/vchart.js.map +1 -1
  202. package/esm/data/transforms/obj-flat.js +1 -4
  203. package/esm/data/transforms/obj-flat.js.map +1 -1
  204. package/esm/mark/base/base-line.d.ts +1 -1
  205. package/esm/mark/base/base-line.js.map +1 -1
  206. package/esm/mark/base/base-mark.d.ts +6 -2
  207. package/esm/mark/base/base-mark.js +69 -50
  208. package/esm/mark/base/base-mark.js.map +1 -1
  209. package/esm/mark/group.d.ts +3 -2
  210. package/esm/mark/group.js +18 -12
  211. package/esm/mark/group.js.map +1 -1
  212. package/esm/mark/interface/common.d.ts +5 -2
  213. package/esm/mark/interface/common.js.map +1 -1
  214. package/esm/model/base-model.d.ts +5 -1
  215. package/esm/model/base-model.js +7 -0
  216. package/esm/model/base-model.js.map +1 -1
  217. package/esm/model/interface.d.ts +5 -2
  218. package/esm/model/interface.js.map +1 -1
  219. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
  220. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +4 -3
  221. package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
  222. package/esm/plugin/components/tooltip-handler/utils/style.js +5 -4
  223. package/esm/plugin/components/tooltip-handler/utils/style.js.map +1 -1
  224. package/esm/region/region.js.map +1 -1
  225. package/esm/series/base/base-series-transformer.js +1 -1
  226. package/esm/series/base/base-series-transformer.js.map +1 -1
  227. package/esm/series/base/base-series.js +2 -3
  228. package/esm/series/base/base-series.js.map +1 -1
  229. package/esm/series/dot/dot.d.ts +0 -1
  230. package/esm/series/dot/dot.js +6 -29
  231. package/esm/series/dot/dot.js.map +1 -1
  232. package/esm/series/dot/interface.d.ts +0 -1
  233. package/esm/series/dot/interface.js.map +1 -1
  234. package/esm/series/dot/tooltip-helper.js +2 -3
  235. package/esm/series/dot/tooltip-helper.js.map +1 -1
  236. package/esm/series/funnel/funnel.js +0 -2
  237. package/esm/series/funnel/funnel.js.map +1 -1
  238. package/esm/series/interface/type.d.ts +0 -3
  239. package/esm/series/interface/type.js +3 -5
  240. package/esm/series/interface/type.js.map +1 -1
  241. package/esm/series/link/constant.js +0 -8
  242. package/esm/series/link/constant.js.map +1 -1
  243. package/esm/series/link/interface.d.ts +1 -10
  244. package/esm/series/link/interface.js +1 -5
  245. package/esm/series/link/interface.js.map +1 -1
  246. package/esm/series/link/link.d.ts +1 -3
  247. package/esm/series/link/link.js +16 -48
  248. package/esm/series/link/link.js.map +1 -1
  249. package/esm/series/map/map.js +1 -2
  250. package/esm/series/map/map.js.map +1 -1
  251. package/esm/series/pie/pie.js +0 -1
  252. package/esm/series/pie/pie.js.map +1 -1
  253. package/esm/series/sankey/sankey.d.ts +10 -10
  254. package/esm/series/sankey/sankey.js +192 -187
  255. package/esm/series/sankey/sankey.js.map +1 -1
  256. package/esm/util/mark.d.ts +1 -0
  257. package/esm/util/mark.js +7 -0
  258. package/esm/util/mark.js.map +1 -1
  259. package/esm/util/object.d.ts +1 -0
  260. package/esm/util/object.js +11 -0
  261. package/esm/util/object.js.map +1 -1
  262. package/package.json +12 -12
  263. package/cjs/animation/animate-manager.d.ts +0 -1
  264. package/cjs/animation/animate-manager.js +0 -2
  265. package/cjs/animation/animate-manager.js.map +0 -1
  266. package/esm/animation/animate-manager.d.ts +0 -1
  267. package/esm/animation/animate-manager.js +0 -2
  268. package/esm/animation/animate-manager.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { isArray, isValid, isValidNumber, normalizePadding } from "@visactor/vutils";
1
+ import { isArray, isNil, isValid, isValidNumber, normalizePadding } from "@visactor/vutils";
2
2
 
3
3
  import { calcLayoutNumber } from "../../../../util/space";
4
4
 
@@ -35,9 +35,10 @@ export const getDomStyle = (spec = {}) => {
35
35
  const shapeStyle = {
36
36
  width: getPixelPropertyStr(null !== (_a = null == shape ? void 0 : shape.size) && void 0 !== _a ? _a : 8)
37
37
  }, titleStyle = getTextStyle(titleLabel), keyStyle = getTextStyle(keyLabel), valueStyle = getTextStyle(valueLabel), marginKey = "right" === align ? "marginLeft" : "marginRight";
38
- "right" === align ? (panelStyle.direction = "rtl", titleStyle.textAlign = "right",
39
- keyStyle.textAlign = "right", valueStyle.textAlign = "left") : (titleStyle.textAlign = "left",
40
- keyStyle.textAlign = "left", valueStyle.textAlign = "right"), shapeStyle[marginKey] = getPixelPropertyStr(null !== (_b = shape.spacing) && void 0 !== _b ? _b : 8),
38
+ "right" === align && (panelStyle.direction = "rtl"), isNil(titleStyle.textAlign) && (titleStyle.textAlign = "right" === align ? "right" : "left"),
39
+ isNil(keyStyle.textAlign) && (keyStyle.textAlign = "right" === align ? "right" : "left"),
40
+ isNil(valueStyle.textAlign) && (valueStyle.textAlign = "right" === align ? "left" : "right"),
41
+ shapeStyle[marginKey] = getPixelPropertyStr(null !== (_b = shape.spacing) && void 0 !== _b ? _b : 8),
41
42
  keyStyle[marginKey] = getPixelPropertyStr(null !== (_c = keyLabel.spacing) && void 0 !== _c ? _c : 26),
42
43
  valueStyle[marginKey] = getPixelPropertyStr(null !== (_d = valueLabel.spacing) && void 0 !== _d ? _d : 0);
43
44
  const lineHeight = Math.max(getLineHeight(valueLabel), getLineHeight(keyLabel));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugin/components/tooltip-handler/utils/style.ts"],"names":[],"mappings":"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","file":"style.js","sourcesContent":["import { isArray, isValid, isValidNumber, normalizePadding } from '@visactor/vutils';\nimport type { ITooltipSpec, ITooltipTextTheme, ITooltipTheme } from '../../../../component/tooltip';\nimport { calcLayoutNumber } from '../../../../util/space';\nimport type { ILayoutNumber } from '../../../../typings/layout';\nconst DEFAULT_SHAPE_SPACING = 8;\nconst DEFAULT_KEY_SPACING = 26;\nconst DEFAULT_VALUE_SPACING = 0;\n\nexport const getPixelPropertyStr = (num?: number | number[], defaultStr?: string) => {\n if (isValid(num)) {\n if (isArray(num)) {\n return num.map(n => `${n}px`).join(' ');\n }\n return `${num}px`;\n }\n return defaultStr ?? 'initial';\n};\n\nexport const getTextStyle = (style: ITooltipTextTheme = {}, textStyle: Partial<CSSStyleDeclaration> = {}) => {\n if (isValid(style.fontFamily)) {\n textStyle.fontFamily = style.fontFamily;\n }\n const color = style.fill ?? style.fontColor;\n\n if (isValid(color)) {\n textStyle.color = color;\n }\n if (isValid(style.fontWeight)) {\n textStyle.fontWeight = style.fontWeight as string;\n }\n if (isValid(style.textAlign)) {\n textStyle.textAlign = style.textAlign as string;\n }\n if (isValid(style.fontSize)) {\n textStyle.fontSize = getPixelPropertyStr(style.fontSize as number);\n }\n\n if (isValid(style.maxWidth)) {\n textStyle.maxWidth = getPixelPropertyStr(style.maxWidth as number);\n }\n\n if (style.multiLine || (isValid(style.maxWidth) && style.multiLine !== false)) {\n textStyle.whiteSpace = 'initial';\n textStyle.wordBreak = style.wordBreak ?? 'break-word';\n } else {\n textStyle.wordBreak = 'normal';\n textStyle.whiteSpace = 'nowrap';\n }\n\n return textStyle;\n};\n\nexport const getLineHeight = (style: ITooltipTextTheme = {}) => {\n const { lineHeight } = style;\n\n if (style.fontSize) {\n return calcLayoutNumber(lineHeight as ILayoutNumber, style.fontSize as number);\n }\n\n return 0;\n};\n\nexport const getDomStyle = (spec: ITooltipSpec = {}) => {\n const { style = {}, enterable, transitionDuration } = spec;\n const { panel = {}, titleLabel, shape, keyLabel, valueLabel, spaceRow: commonSpaceRow, align } = style;\n const { panelStyle, panelPadding } = getPanelStyle(panel);\n const rowStyle: Partial<CSSStyleDeclaration> = {\n marginTop: '0px',\n marginBottom: '0px'\n };\n\n panelStyle.pointerEvents = enterable ? 'auto' : 'none';\n if (transitionDuration) {\n panelStyle.transitionDuration = transitionDuration ? `${transitionDuration}ms` : 'initial';\n panelStyle.transitionProperty = transitionDuration ? 'transform' : 'initial';\n panelStyle.transitionTimingFunction = transitionDuration ? 'ease-out' : 'initial';\n }\n\n if (isValidNumber(commonSpaceRow)) {\n rowStyle.marginBottom = `${commonSpaceRow}px`;\n }\n\n const shapeStyle: Partial<CSSStyleDeclaration> = {\n // TODO 默认值优化\n width: getPixelPropertyStr(shape?.size ?? 8)\n };\n const titleStyle = getTextStyle(titleLabel);\n const keyStyle = getTextStyle(keyLabel);\n const valueStyle = getTextStyle(valueLabel);\n const marginKey = align === 'right' ? 'marginLeft' : 'marginRight';\n\n if (align === 'right') {\n // rtl\n panelStyle.direction = 'rtl';\n titleStyle.textAlign = 'right';\n keyStyle.textAlign = 'right';\n valueStyle.textAlign = 'left';\n } else {\n titleStyle.textAlign = 'left';\n keyStyle.textAlign = 'left';\n valueStyle.textAlign = 'right';\n }\n shapeStyle[marginKey] = getPixelPropertyStr(shape.spacing ?? DEFAULT_SHAPE_SPACING);\n keyStyle[marginKey] = getPixelPropertyStr(keyLabel.spacing ?? DEFAULT_KEY_SPACING);\n valueStyle[marginKey] = getPixelPropertyStr(valueLabel.spacing ?? DEFAULT_VALUE_SPACING);\n const lineHeight = Math.max(getLineHeight(valueLabel), getLineHeight(keyLabel));\n\n // 如果不设置lineHeight,会导致横向不对齐的问题\n rowStyle.lineHeight = lineHeight > 0 ? `${lineHeight}px` : '20px';\n\n return {\n panelPadding,\n row: rowStyle,\n panel: panelStyle,\n title: titleStyle,\n shape: shapeStyle,\n key: keyStyle,\n value: valueStyle\n };\n};\n\nexport const getPanelStyle = (\n style: ITooltipTheme['panel']\n): { panelStyle: Partial<CSSStyleDeclaration>; panelPadding?: number[] } => {\n const { backgroundColor, border, shadow, padding } = style;\n const panelStyle: Partial<CSSStyleDeclaration> = {\n borderWidth: `${border?.width ?? 0}px`\n };\n let panelPadding: number[] = null;\n\n if (border?.color) {\n panelStyle.borderColor = border.color as string;\n }\n if (backgroundColor) {\n panelStyle.backgroundColor = backgroundColor as string;\n }\n panelStyle.boxShadow = shadow\n ? `${shadow.x}px ${shadow.y}px ${shadow.blur}px ${shadow.spread}px ${shadow.color}`\n : 'initial';\n const { radius } = border ?? {};\n\n if (isValid(radius)) {\n panelStyle.borderRadius = isValidNumber(radius) ? `${radius}px` : `${radius}`;\n }\n\n if (padding) {\n panelPadding = normalizePadding(padding);\n panelStyle.padding = getPixelPropertyStr(panelPadding);\n }\n\n return { panelStyle, panelPadding };\n};\n\nexport function setStyleToDom(dom: HTMLElement, style: Partial<CSSStyleDeclaration>) {\n if (!dom || !dom.style || !style) {\n return;\n }\n\n Object.keys(style).forEach(key => {\n (dom.style as any)[key] = (style as any)[key];\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/plugin/components/tooltip-handler/utils/style.ts"],"names":[],"mappings":"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","file":"style.js","sourcesContent":["import { isArray, isNil, isValid, isValidNumber, normalizePadding } from '@visactor/vutils';\nimport type { ITooltipSpec, ITooltipTextTheme, ITooltipTheme } from '../../../../component/tooltip';\nimport { calcLayoutNumber } from '../../../../util/space';\nimport type { ILayoutNumber } from '../../../../typings/layout';\nconst DEFAULT_SHAPE_SPACING = 8;\nconst DEFAULT_KEY_SPACING = 26;\nconst DEFAULT_VALUE_SPACING = 0;\n\nexport const getPixelPropertyStr = (num?: number | number[], defaultStr?: string) => {\n if (isValid(num)) {\n if (isArray(num)) {\n return num.map(n => `${n}px`).join(' ');\n }\n return `${num}px`;\n }\n return defaultStr ?? 'initial';\n};\n\nexport const getTextStyle = (style: ITooltipTextTheme = {}, textStyle: Partial<CSSStyleDeclaration> = {}) => {\n if (isValid(style.fontFamily)) {\n textStyle.fontFamily = style.fontFamily;\n }\n const color = style.fill ?? style.fontColor;\n\n if (isValid(color)) {\n textStyle.color = color;\n }\n if (isValid(style.fontWeight)) {\n textStyle.fontWeight = style.fontWeight as string;\n }\n if (isValid(style.textAlign)) {\n textStyle.textAlign = style.textAlign as string;\n }\n if (isValid(style.fontSize)) {\n textStyle.fontSize = getPixelPropertyStr(style.fontSize as number);\n }\n\n if (isValid(style.maxWidth)) {\n textStyle.maxWidth = getPixelPropertyStr(style.maxWidth as number);\n }\n\n if (style.multiLine || (isValid(style.maxWidth) && style.multiLine !== false)) {\n textStyle.whiteSpace = 'initial';\n textStyle.wordBreak = style.wordBreak ?? 'break-word';\n } else {\n textStyle.wordBreak = 'normal';\n textStyle.whiteSpace = 'nowrap';\n }\n\n return textStyle;\n};\n\nexport const getLineHeight = (style: ITooltipTextTheme = {}) => {\n const { lineHeight } = style;\n\n if (style.fontSize) {\n return calcLayoutNumber(lineHeight as ILayoutNumber, style.fontSize as number);\n }\n\n return 0;\n};\n\nexport const getDomStyle = (spec: ITooltipSpec = {}) => {\n const { style = {}, enterable, transitionDuration } = spec;\n const { panel = {}, titleLabel, shape, keyLabel, valueLabel, spaceRow: commonSpaceRow, align } = style;\n const { panelStyle, panelPadding } = getPanelStyle(panel);\n const rowStyle: Partial<CSSStyleDeclaration> = {\n marginTop: '0px',\n marginBottom: '0px'\n };\n\n panelStyle.pointerEvents = enterable ? 'auto' : 'none';\n if (transitionDuration) {\n panelStyle.transitionDuration = transitionDuration ? `${transitionDuration}ms` : 'initial';\n panelStyle.transitionProperty = transitionDuration ? 'transform' : 'initial';\n panelStyle.transitionTimingFunction = transitionDuration ? 'ease-out' : 'initial';\n }\n\n if (isValidNumber(commonSpaceRow)) {\n rowStyle.marginBottom = `${commonSpaceRow}px`;\n }\n\n const shapeStyle: Partial<CSSStyleDeclaration> = {\n // TODO 默认值优化\n width: getPixelPropertyStr(shape?.size ?? 8)\n };\n const titleStyle = getTextStyle(titleLabel);\n const keyStyle = getTextStyle(keyLabel);\n const valueStyle = getTextStyle(valueLabel);\n const marginKey = align === 'right' ? 'marginLeft' : 'marginRight';\n\n if (align === 'right') {\n // rtl\n panelStyle.direction = 'rtl';\n }\n if (isNil(titleStyle.textAlign)) {\n titleStyle.textAlign = align === 'right' ? 'right' : 'left';\n }\n if (isNil(keyStyle.textAlign)) {\n keyStyle.textAlign = align === 'right' ? 'right' : 'left';\n }\n if (isNil(valueStyle.textAlign)) {\n valueStyle.textAlign = align === 'right' ? 'left' : 'right';\n }\n shapeStyle[marginKey] = getPixelPropertyStr(shape.spacing ?? DEFAULT_SHAPE_SPACING);\n keyStyle[marginKey] = getPixelPropertyStr(keyLabel.spacing ?? DEFAULT_KEY_SPACING);\n valueStyle[marginKey] = getPixelPropertyStr(valueLabel.spacing ?? DEFAULT_VALUE_SPACING);\n const lineHeight = Math.max(getLineHeight(valueLabel), getLineHeight(keyLabel));\n\n // 如果不设置lineHeight,会导致横向不对齐的问题\n rowStyle.lineHeight = lineHeight > 0 ? `${lineHeight}px` : '20px';\n\n return {\n panelPadding,\n row: rowStyle,\n panel: panelStyle,\n title: titleStyle,\n shape: shapeStyle,\n key: keyStyle,\n value: valueStyle\n };\n};\n\nexport const getPanelStyle = (\n style: ITooltipTheme['panel']\n): { panelStyle: Partial<CSSStyleDeclaration>; panelPadding?: number[] } => {\n const { backgroundColor, border, shadow, padding } = style;\n const panelStyle: Partial<CSSStyleDeclaration> = {\n borderWidth: `${border?.width ?? 0}px`\n };\n let panelPadding: number[] = null;\n\n if (border?.color) {\n panelStyle.borderColor = border.color as string;\n }\n if (backgroundColor) {\n panelStyle.backgroundColor = backgroundColor as string;\n }\n panelStyle.boxShadow = shadow\n ? `${shadow.x}px ${shadow.y}px ${shadow.blur}px ${shadow.spread}px ${shadow.color}`\n : 'initial';\n const { radius } = border ?? {};\n\n if (isValid(radius)) {\n panelStyle.borderRadius = isValidNumber(radius) ? `${radius}px` : `${radius}`;\n }\n\n if (padding) {\n panelPadding = normalizePadding(padding);\n panelStyle.padding = getPixelPropertyStr(panelPadding);\n }\n\n return { panelStyle, panelPadding };\n};\n\nexport function setStyleToDom(dom: HTMLElement, style: Partial<CSSStyleDeclaration>) {\n if (!dom || !dom.style || !style) {\n return;\n }\n\n Object.keys(style).forEach(key => {\n (dom.style as any)[key] = (style as any)[key];\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/region/region.ts"],"names":[],"mappings":"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","file":"region.js","sourcesContent":["// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isEqual, array, isValid } from '@visactor/vutils';\nimport { MarkTypeEnum } from '../mark/interface/type';\nimport type { ISeries } from '../series/interface';\nimport type { IModelOption } from '../model/interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IGeoRegionSpec, IRegion, IRegionSpec, IRegionSpecInfo } from './interface';\nimport { ChartEvent } from '../constant/event';\nimport { LayoutZIndex } from '../constant/layout';\nimport { AttributeLevel } from '../constant/attribute';\nimport type { ILayoutType, StringOrNumber } from '../typings';\nimport { LayoutModel } from '../model/layout-model';\nimport { RegionSpecTransformer } from './region-transformer';\nimport type { IGroupMark, IRectMark } from '../mark/interface/mark';\nimport type { IGroup } from '@visactor/vrender-core';\n\nexport class Region<T extends IRegionSpec = IRegionSpec> extends LayoutModel<T> implements IRegion {\n static type = 'region';\n static readonly transformerConstructor = RegionSpecTransformer;\n readonly transformerConstructor = RegionSpecTransformer as any;\n readonly modelType: string = 'region';\n static specKey = 'region';\n specKey: string = 'region';\n\n type = Region.type;\n protected _series: ISeries[] = [];\n layoutType: ILayoutType = 'region';\n layoutZIndex: number = LayoutZIndex.Region;\n\n declare getSpecInfo: () => IRegionSpecInfo;\n\n getMaxWidth() {\n return this._layout.maxWidth;\n }\n setMaxWidth(value: number) {\n this._layout.maxWidth = value;\n }\n\n getMaxHeight() {\n return this._layout.maxHeight;\n }\n setMaxHeight(value: number) {\n this._layout.maxHeight = value;\n }\n\n protected _groupMark!: IGroupMark;\n getGroupMark() {\n return this._groupMark;\n }\n\n protected _interactionMark!: IGroupMark;\n getInteractionMark() {\n return this._interactionMark;\n }\n\n getStackInverse() {\n return this._spec.stackInverse === true;\n }\n\n getStackSort() {\n return this._spec.stackSort === true;\n }\n\n protected _backgroundMark?: IRectMark;\n protected _foregroundMark?: IRectMark;\n\n constructor(spec: T, ctx: IModelOption) {\n super(spec, ctx);\n this.userId = spec.id;\n this.coordinate = spec.coordinate ?? 'cartesian';\n }\n\n protected _getClipDefaultValue() {\n const chartSpec = this._option.getChart().getSpec();\n const hasDataZoom = (chartSpec as any).dataZoom?.some?.((entry: any) => {\n const filterMode = entry.filterMode ?? 'filter';\n return filterMode === 'axis';\n });\n const hasScrollBar = (chartSpec as any).scrollBar?.some?.((entry: any) => {\n const filterMode = entry.filterMode ?? 'axis';\n return filterMode === 'axis';\n });\n\n return hasDataZoom || hasScrollBar ? true : this._layout.layoutClip;\n }\n\n created(): void {\n this.initLayout();\n super.created();\n const clip = this._spec.clip ?? this._getClipDefaultValue();\n this._groupMark = this._createGroupMark('regionGroup', this.userId, this.layoutZIndex);\n if ((this._spec as IGeoRegionSpec).roam) {\n this._groupMark.setMarkConfig({ interactive: true });\n }\n\n // 交互层\n this._interactionMark = this._createGroupMark(\n 'regionInteractionGroup',\n (this.userId ?? this.type) + '_interaction',\n LayoutZIndex.Interaction\n );\n\n // hack: region 的样式不能设置在groupMark上,因为groupMark目前没有计算dirtyBound,会导致拖影问题\n if (!isEmpty(this._spec.style)) {\n this._backgroundMark = this._createMark(\n { type: MarkTypeEnum.rect, name: 'regionBackground' },\n {\n parent: this._groupMark\n }\n ) as IRectMark;\n if (clip) {\n this._foregroundMark = this._createMark(\n { type: MarkTypeEnum.rect, name: 'regionForeground' },\n {\n parent: this._groupMark\n }\n ) as IRectMark;\n }\n [this._backgroundMark, this._foregroundMark].forEach(mark => {\n if (mark) {\n mark.created();\n this.setMarkStyle(\n mark,\n {\n width: () => this.getLayoutRect().width,\n height: () => this.getLayoutRect().height\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._groupMark.addMark(mark);\n }\n });\n this._backgroundMark && this._backgroundMark.setMarkConfig({ zIndex: LayoutZIndex.SeriesGroup - 1 });\n this._foregroundMark && this._foregroundMark.setMarkConfig({ zIndex: LayoutZIndex.Mark + 1 });\n }\n }\n\n private _createGroupMark(name: string, userId: StringOrNumber, zIndex: number) {\n const groupMark = this._createMark({ type: MarkTypeEnum.group, name }) as IGroupMark;\n groupMark.setUserId(userId);\n groupMark.setMarkConfig({ zIndex });\n const clip = this._spec.clip ?? this._getClipDefaultValue();\n this.setMarkStyle(\n groupMark,\n {\n x: () => this.getLayoutStartPoint().x,\n y: () => this.getLayoutStartPoint().y,\n width: () => this.getLayoutRect().width,\n height: () => this.getLayoutRect().height,\n clip\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this.setMarkStyle(\n groupMark,\n {\n cornerRadius: this._spec.style?.cornerRadius\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n\n this._marks.addMark(groupMark);\n return groupMark;\n }\n\n init(option: any) {\n super.init(option);\n this.initMark();\n this.initSeriesDataflow();\n }\n initMark() {\n this._initBackgroundMarkStyle();\n this._initForegroundMarkStyle();\n }\n\n protected _initBackgroundMarkStyle() {\n if (this._backgroundMark) {\n this.setMarkStyle(\n this._backgroundMark,\n {\n fillOpacity: this._spec.style?.fill ? 1 : 0,\n ...this._spec.style\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n if (this._spec.clip ?? this._getClipDefaultValue()) {\n this.setMarkStyle(\n this._backgroundMark,\n {\n strokeOpacity: 0\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n }\n }\n\n protected _initForegroundMarkStyle() {\n if (this._foregroundMark) {\n this.setMarkStyle(\n this._foregroundMark,\n {\n ...this._spec.style,\n fillOpacity: 0,\n pickable: false\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n }\n }\n\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (!isEqual(prevSpec?.style, spec?.style)) {\n result.reMake = true;\n }\n return result;\n }\n\n reInit(spec?: T) {\n super.reInit(spec);\n this._initBackgroundMarkStyle();\n this._initForegroundMarkStyle();\n }\n\n addSeries(s: ISeries) {\n if (!s) {\n return;\n }\n if (!this._series.includes(s)) {\n this._series.push(s);\n }\n }\n\n removeSeries(s: ISeries) {\n if (!s) {\n return;\n }\n const index = this._series.findIndex(s_ => s_ === s);\n if (index >= 0) {\n this._series.splice(index, 1);\n }\n }\n\n getSeries(\n opt: {\n name?: string;\n userId?: StringOrNumber | StringOrNumber[];\n specIndex?: number | number[];\n id?: StringOrNumber;\n type?: string;\n coordinateType?: CoordinateType;\n dataName?: string;\n } = {}\n ): ISeries[] {\n return this._series.filter(\n s =>\n (opt.name ? s?.name === opt.name : true) &&\n (opt.userId ? array(opt.userId).includes(s.userId) : true) &&\n (isValid(opt.specIndex) ? array(opt.specIndex).includes(s.getSpecIndex()) : true) &&\n (opt.id ? s.id === opt.id : true) &&\n (opt.type ? s.type === opt.type : true) &&\n (opt.coordinateType ? s.coordinate === opt.coordinateType : true) &&\n (opt.dataName ? s.getRawData?.()?.name === opt.dataName : true)\n );\n }\n\n getSeriesInName(name: string): ISeries {\n return this.getSeries({ name })[0];\n }\n getSeriesInUserId(userId: string): ISeries {\n return this.getSeries({ userId })[0];\n }\n getSeriesInId(id: number): ISeries {\n return this.getSeries({ id })[0];\n }\n getSeriesInType(type: string): ISeries[] {\n return this.getSeries({ type });\n }\n getSeriesInCoordinateType(coordinateType: CoordinateType): ISeries[] {\n return this.getSeries({ coordinateType });\n }\n getSeriesInDataName(dataName: string): ISeries[] {\n return this.getSeries({ dataName });\n }\n\n initSeriesDataflow() {\n const viewDataFilters = this._series.map(s => s.getViewDataFilter() ?? s.getViewData()).filter(v => !!v);\n this._option.dataSet.multipleDataViewAddListener(viewDataFilters, 'change', this.seriesDataFilterOver);\n }\n\n seriesDataFilterOver = () => {\n this.event.emit(ChartEvent.regionSeriesDataFilterOver, { model: this, chart: this.getChart() });\n this._series.forEach(s => {\n if (s.getViewDataFilter()) {\n s.reTransformViewData();\n }\n });\n };\n\n release() {\n super.release();\n this._series = [];\n }\n\n compileMarks(group?: IGroup) {\n this.getMarks().forEach(m => {\n m.compile({ group, context: { model: this } });\n // m.layout(\n // (group: IVGrammarGroupMark, children: IMark[], parentLayoutBounds: IBoundsLike, options?: ILayoutOptions) => {\n // // console.log('region mark layout');\n // }\n // );\n });\n }\n\n compile() {\n this.compileMarks();\n }\n\n getBoundsInRect = () => {\n return {\n x1: this._layout.getLayoutStartPoint().x,\n y1: this._layout.getLayoutStartPoint().y,\n x2: this._layout.getLayoutStartPoint().x + this._layout.getLayoutRect().width,\n y2: this._layout.getLayoutStartPoint().y + this._layout.getLayoutRect().height\n };\n };\n\n onLayoutEnd(): void {\n this._series.forEach(s => s.onLayoutEnd());\n super.onLayoutEnd();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/region/region.ts"],"names":[],"mappings":"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","file":"region.js","sourcesContent":["// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isEqual, array, isValid } from '@visactor/vutils';\nimport { MarkTypeEnum } from '../mark/interface/type';\nimport type { ISeries } from '../series/interface';\nimport type { IModelOption } from '../model/interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IGeoRegionSpec, IRegion, IRegionSpec, IRegionSpecInfo } from './interface';\nimport { ChartEvent } from '../constant/event';\nimport { LayoutZIndex } from '../constant/layout';\nimport { AttributeLevel } from '../constant/attribute';\nimport type { ILayoutType, StringOrNumber } from '../typings';\nimport { LayoutModel } from '../model/layout-model';\nimport { RegionSpecTransformer } from './region-transformer';\nimport type { IGroupMark, IRectMark } from '../mark/interface/mark';\nimport type { IGroup } from '@visactor/vrender-core';\n\nexport class Region<T extends IRegionSpec = IRegionSpec> extends LayoutModel<T> implements IRegion {\n static type = 'region';\n static readonly transformerConstructor = RegionSpecTransformer;\n readonly transformerConstructor = RegionSpecTransformer as any;\n readonly modelType: string = 'region';\n static specKey = 'region';\n specKey: string = 'region';\n\n type = Region.type;\n protected _series: ISeries[] = [];\n layoutType: ILayoutType = 'region';\n layoutZIndex: number = LayoutZIndex.Region;\n\n declare getSpecInfo: () => IRegionSpecInfo;\n\n getMaxWidth() {\n return this._layout.maxWidth;\n }\n setMaxWidth(value: number) {\n this._layout.maxWidth = value;\n }\n\n getMaxHeight() {\n return this._layout.maxHeight;\n }\n setMaxHeight(value: number) {\n this._layout.maxHeight = value;\n }\n\n protected _groupMark!: IGroupMark;\n getGroupMark() {\n return this._groupMark;\n }\n\n protected _interactionMark!: IGroupMark;\n getInteractionMark() {\n return this._interactionMark;\n }\n\n getStackInverse() {\n return this._spec.stackInverse === true;\n }\n\n getStackSort() {\n return this._spec.stackSort === true;\n }\n\n protected _backgroundMark?: IRectMark;\n protected _foregroundMark?: IRectMark;\n\n constructor(spec: T, ctx: IModelOption) {\n super(spec, ctx);\n this.userId = spec.id;\n this.coordinate = spec.coordinate ?? 'cartesian';\n }\n\n protected _getClipDefaultValue() {\n const chartSpec = this._option.getChart().getSpec();\n const hasDataZoom = (chartSpec as any).dataZoom?.some?.((entry: any) => {\n const filterMode = entry.filterMode ?? 'filter';\n return filterMode === 'axis';\n });\n const hasScrollBar = (chartSpec as any).scrollBar?.some?.((entry: any) => {\n const filterMode = entry.filterMode ?? 'axis';\n return filterMode === 'axis';\n });\n\n return hasDataZoom || hasScrollBar ? true : this._layout.layoutClip;\n }\n\n created(): void {\n this.initLayout();\n super.created();\n const clip = this._spec.clip ?? this._getClipDefaultValue();\n this._groupMark = this._createGroupMark('regionGroup', this.userId, this.layoutZIndex);\n\n if ((this._spec as IGeoRegionSpec).roam) {\n this._groupMark.setMarkConfig({ interactive: true });\n }\n\n // 交互层\n this._interactionMark = this._createGroupMark(\n 'regionInteractionGroup',\n (this.userId ?? this.type) + '_interaction',\n LayoutZIndex.Interaction\n );\n\n // hack: region 的样式不能设置在groupMark上,因为groupMark目前没有计算dirtyBound,会导致拖影问题\n if (!isEmpty(this._spec.style)) {\n this._backgroundMark = this._createMark(\n { type: MarkTypeEnum.rect, name: 'regionBackground' },\n {\n parent: this._groupMark\n }\n ) as IRectMark;\n if (clip) {\n this._foregroundMark = this._createMark(\n { type: MarkTypeEnum.rect, name: 'regionForeground' },\n {\n parent: this._groupMark\n }\n ) as IRectMark;\n }\n [this._backgroundMark, this._foregroundMark].forEach(mark => {\n if (mark) {\n mark.created();\n this.setMarkStyle(\n mark,\n {\n width: () => this.getLayoutRect().width,\n height: () => this.getLayoutRect().height\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._groupMark.addMark(mark);\n }\n });\n this._backgroundMark && this._backgroundMark.setMarkConfig({ zIndex: LayoutZIndex.SeriesGroup - 1 });\n this._foregroundMark && this._foregroundMark.setMarkConfig({ zIndex: LayoutZIndex.Mark + 1 });\n }\n }\n\n private _createGroupMark(name: string, userId: StringOrNumber, zIndex: number) {\n const groupMark = this._createMark({ type: MarkTypeEnum.group, name }) as IGroupMark;\n groupMark.setUserId(userId);\n groupMark.setMarkConfig({ zIndex });\n const clip = this._spec.clip ?? this._getClipDefaultValue();\n this.setMarkStyle(\n groupMark,\n {\n x: () => this.getLayoutStartPoint().x,\n y: () => this.getLayoutStartPoint().y,\n width: () => this.getLayoutRect().width,\n height: () => this.getLayoutRect().height,\n clip\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this.setMarkStyle(\n groupMark,\n {\n cornerRadius: this._spec.style?.cornerRadius\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n\n this._marks.addMark(groupMark);\n return groupMark;\n }\n\n init(option: any) {\n super.init(option);\n this.initMark();\n this.initSeriesDataflow();\n }\n initMark() {\n this._initBackgroundMarkStyle();\n this._initForegroundMarkStyle();\n }\n\n protected _initBackgroundMarkStyle() {\n if (this._backgroundMark) {\n this.setMarkStyle(\n this._backgroundMark,\n {\n fillOpacity: this._spec.style?.fill ? 1 : 0,\n ...this._spec.style\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n if (this._spec.clip ?? this._getClipDefaultValue()) {\n this.setMarkStyle(\n this._backgroundMark,\n {\n strokeOpacity: 0\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n }\n }\n\n protected _initForegroundMarkStyle() {\n if (this._foregroundMark) {\n this.setMarkStyle(\n this._foregroundMark,\n {\n ...this._spec.style,\n fillOpacity: 0,\n pickable: false\n },\n 'normal',\n AttributeLevel.User_Mark\n );\n }\n }\n\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (!isEqual(prevSpec?.style, spec?.style)) {\n result.reMake = true;\n }\n return result;\n }\n\n reInit(spec?: T) {\n super.reInit(spec);\n this._initBackgroundMarkStyle();\n this._initForegroundMarkStyle();\n }\n\n addSeries(s: ISeries) {\n if (!s) {\n return;\n }\n if (!this._series.includes(s)) {\n this._series.push(s);\n }\n }\n\n removeSeries(s: ISeries) {\n if (!s) {\n return;\n }\n const index = this._series.findIndex(s_ => s_ === s);\n if (index >= 0) {\n this._series.splice(index, 1);\n }\n }\n\n getSeries(\n opt: {\n name?: string;\n userId?: StringOrNumber | StringOrNumber[];\n specIndex?: number | number[];\n id?: StringOrNumber;\n type?: string;\n coordinateType?: CoordinateType;\n dataName?: string;\n } = {}\n ): ISeries[] {\n return this._series.filter(\n s =>\n (opt.name ? s?.name === opt.name : true) &&\n (opt.userId ? array(opt.userId).includes(s.userId) : true) &&\n (isValid(opt.specIndex) ? array(opt.specIndex).includes(s.getSpecIndex()) : true) &&\n (opt.id ? s.id === opt.id : true) &&\n (opt.type ? s.type === opt.type : true) &&\n (opt.coordinateType ? s.coordinate === opt.coordinateType : true) &&\n (opt.dataName ? s.getRawData?.()?.name === opt.dataName : true)\n );\n }\n\n getSeriesInName(name: string): ISeries {\n return this.getSeries({ name })[0];\n }\n getSeriesInUserId(userId: string): ISeries {\n return this.getSeries({ userId })[0];\n }\n getSeriesInId(id: number): ISeries {\n return this.getSeries({ id })[0];\n }\n getSeriesInType(type: string): ISeries[] {\n return this.getSeries({ type });\n }\n getSeriesInCoordinateType(coordinateType: CoordinateType): ISeries[] {\n return this.getSeries({ coordinateType });\n }\n getSeriesInDataName(dataName: string): ISeries[] {\n return this.getSeries({ dataName });\n }\n\n initSeriesDataflow() {\n const viewDataFilters = this._series.map(s => s.getViewDataFilter() ?? s.getViewData()).filter(v => !!v);\n this._option.dataSet.multipleDataViewAddListener(viewDataFilters, 'change', this.seriesDataFilterOver);\n }\n\n seriesDataFilterOver = () => {\n this.event.emit(ChartEvent.regionSeriesDataFilterOver, { model: this, chart: this.getChart() });\n this._series.forEach(s => {\n if (s.getViewDataFilter()) {\n s.reTransformViewData();\n }\n });\n };\n\n release() {\n super.release();\n this._series = [];\n }\n\n compileMarks(group?: IGroup) {\n this.getMarks().forEach(m => {\n m.compile({ group, context: { model: this } });\n // m.layout(\n // (group: IVGrammarGroupMark, children: IMark[], parentLayoutBounds: IBoundsLike, options?: ILayoutOptions) => {\n // // console.log('region mark layout');\n // }\n // );\n });\n }\n\n compile() {\n this.compileMarks();\n }\n\n getBoundsInRect = () => {\n return {\n x1: this._layout.getLayoutStartPoint().x,\n y1: this._layout.getLayoutStartPoint().y,\n x2: this._layout.getLayoutStartPoint().x + this._layout.getLayoutRect().width,\n y2: this._layout.getLayoutStartPoint().y + this._layout.getLayoutRect().height\n };\n };\n\n onLayoutEnd(): void {\n this._series.forEach(s => s.onLayoutEnd());\n super.onLayoutEnd();\n }\n}\n"]}
@@ -46,7 +46,7 @@ export class BaseSeriesSpecTransformer extends BaseModelSpecTransformer {
46
46
  array(spec[labelSpecKey]).forEach((labelSpec => {
47
47
  var _a, _b, _c;
48
48
  if (labelSpec && labelSpec.visible) {
49
- const {animation: animation = !0, animationUpdate: labelAnimationUpdate = !0, animationEnter: labelAnimationEnter = !0, animationExit: labelAnimationExit = !0} = labelSpec, {animationUpdate: animationUpdate = !0, animationEnter: animationEnter = !0, animationExit: animationExit = !0} = spec, labelAnimationEnabled = !!(null !== (_c = null !== (_b = null === (_a = this._option) || void 0 === _a ? void 0 : _a.animation) && void 0 !== _b ? _b : spec.animation) && void 0 !== _c ? _c : labelSpec.animation) && !!hasAnimation;
49
+ const {animation: animation = !0, animationUpdate: labelAnimationUpdate = !0, animationEnter: labelAnimationEnter = !0, animationExit: labelAnimationExit = !0} = labelSpec, {animationUpdate: animationUpdate = !0, animationEnter: animationEnter = !0, animationExit: animationExit = !0} = spec, labelAnimationEnabled = !!(null !== (_c = null !== (_b = null === (_a = this._option.globalInstance) || void 0 === _a ? void 0 : _a.isAnimationEnable()) && void 0 !== _b ? _b : spec.animation) && void 0 !== _c ? _c : labelSpec.animation) && !!hasAnimation;
50
50
  this.addLabelSpec(isFunction(markName) ? markName(labelSpec) : markName, Object.assign(Object.assign({}, labelSpec), {
51
51
  animation: !!labelAnimationEnabled && animation,
52
52
  animationUpdate: !!(labelAnimationEnabled && animationUpdate && labelAnimationUpdate) && animationUpdate,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/base/base-series-transformer.ts"],"names":[],"mappings":"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","file":"base-series-transformer.js","sourcesContent":["import { isBoolean, isFunction, isNil, isObject } from '@visactor/vutils';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { ILabelSpec, TransformedLabelSpec } from '../../component/label';\nimport { BaseModelSpecTransformer } from '../../model/base-model-transformer';\nimport type { ISeriesSpec } from '../../typings';\nimport { array, get, isArray, isValid, transformSeriesThemeToMerge } from '../../util';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeriesSpecTransformerResult, SeriesMarkNameEnum } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../interface';\nimport { getDirectionFromSeriesSpec } from '../util/spec';\nimport { Factory } from '../../core/factory';\n\nexport class BaseSeriesSpecTransformer<T extends ISeriesSpec, K> extends BaseModelSpecTransformer<T, K> {\n markLabelSpec: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>> = {};\n stack: boolean;\n protected _supportStack: boolean;\n\n getLabelSpec(markName: string) {\n return this.markLabelSpec[markName];\n }\n\n setLabelSpec(markName: string, label: TransformedLabelSpec | TransformedLabelSpec[]) {\n this.markLabelSpec[markName] = array(label);\n }\n\n addLabelSpec(markName: string, label: TransformedLabelSpec, head = false) {\n if (!this.markLabelSpec[markName]) {\n this.markLabelSpec[markName] = [];\n }\n if (head) {\n // 排序靠前的 label 优先布局,尽可能避免碰撞隐藏\n this.markLabelSpec[markName].unshift(label);\n } else {\n this.markLabelSpec[markName].push(label);\n }\n }\n\n getTheme(spec: T, chartSpec: any): K {\n const direction = getDirectionFromSeriesSpec(spec);\n const getTheme = this._option?.getTheme;\n // const { markByName, mark } = chartTheme;\n const type = this._option.type;\n // 基本主题\n const seriesMarkMap = Factory.getSeriesMarkMap(type);\n\n const theme = seriesMarkMap ? transformSeriesThemeToMerge(getTheme('series', type), type, getTheme) : {};\n // 区分方向的主题\n const themeWithDirection = getTheme('series', `${type}_${direction}`);\n // stack 状态下的主题\n const stack = this.stack ?? themeWithDirection?.stack ?? theme?.stack;\n const themeWithStack = stack ? getTheme('series', `${type}_stack`) : undefined;\n return mergeSpec({}, theme, themeWithDirection, themeWithStack);\n }\n\n /** 不建议重写该方法,最好重写对应子步骤 */\n transformSpec(spec: T, chartSpec: any, chartSpecInfo?: IChartSpecInfo): ISeriesSpecTransformerResult<T, K> {\n this._transformStack(spec);\n const result = super.transformSpec(spec, chartSpec, chartSpecInfo);\n this._transformLabelSpec(result.spec);\n return {\n ...result,\n markLabelSpec: this.markLabelSpec,\n stack: this.stack\n };\n }\n\n protected _transformLabelSpec(spec: T) {\n // empty\n }\n\n protected _transformStack(spec: T) {\n if (isBoolean(spec.stack)) {\n this.stack = spec.stack;\n }\n if (isBoolean(spec.percent)) {\n this.stack = spec.percent || this.stack; // this.stack is `true` in bar/area series\n }\n\n if (isNil(this.stack) && this._supportStack && spec.seriesField) {\n // only set default value of stack to be `true` when series support stack and seriesField is not null\n this.stack = true;\n }\n }\n\n protected _addMarkLabelSpec<V extends ISeries = ISeries>(\n spec: T,\n markName: string | ((spec: ILabelSpec) => string),\n labelSpecKey: keyof T = 'label' as any,\n styleHandlerName: keyof V = 'initLabelMarkStyle',\n hasAnimation: boolean = true,\n head?: boolean\n ): void {\n if (!spec) {\n return;\n }\n const labels = array<ILabelSpec>(spec[labelSpecKey]);\n labels.forEach(labelSpec => {\n if (labelSpec && labelSpec.visible) {\n // animation config priority: option.animation > spec.animation > spec.label.animation\n const {\n animation = true,\n animationUpdate: labelAnimationUpdate = true,\n animationEnter: labelAnimationEnter = true,\n animationExit: labelAnimationExit = true\n } = labelSpec;\n const { animationUpdate = true, animationEnter = true, animationExit = true } = spec as any;\n const animationEnabled = this._option?.animation ?? spec.animation ?? labelSpec.animation;\n const labelAnimationEnabled = !!animationEnabled && !!hasAnimation;\n\n this.addLabelSpec(\n isFunction(markName) ? markName(labelSpec) : markName,\n {\n ...labelSpec,\n animation: labelAnimationEnabled ? animation : false,\n animationUpdate: labelAnimationEnabled && animationUpdate && labelAnimationUpdate ? animationUpdate : false,\n animationEnter: labelAnimationEnabled && animationEnter && labelAnimationEnter ? animationEnter : false,\n animationExit: labelAnimationEnabled && animationEnter && labelAnimationExit ? animationExit : false,\n getStyleHandler: (series: V) => (series[styleHandlerName] as any)?.bind(series)\n } as TransformedLabelSpec,\n head\n );\n }\n });\n }\n\n protected _getDefaultSpecFromChart(chartSpec: any): any {\n const spec = (super._getDefaultSpecFromChart(chartSpec) as any) ?? {};\n const { outerRadius, innerRadius, direction } = chartSpec;\n if (isValid(outerRadius)) {\n spec.outerRadius = outerRadius;\n }\n if (isValid(innerRadius)) {\n spec.innerRadius = innerRadius;\n }\n\n if (isValid(direction)) {\n spec.direction = direction;\n }\n\n return Object.keys(spec).length > 0 ? spec : undefined;\n }\n\n protected _mergeThemeToSpec(spec: T, chartSpec: any): { spec: T; theme: K } {\n const theme = this._theme;\n\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(chartSpec);\n // this._originalSpec + specFromChart + this._theme = spec\n const merge = (originalSpec: any) => {\n const result = mergeSpec({}, theme, specFromChart, originalSpec);\n const labelTheme = (theme as any).label;\n if (labelTheme && isObject(labelTheme) && isArray(result.label)) {\n result.label = result.label.map((label: ILabelSpec) => mergeSpec({}, labelTheme, label));\n }\n return result;\n };\n\n if (isArray(spec)) {\n return {\n spec: spec.map(specItem => merge(specItem)) as unknown as T,\n theme\n };\n }\n\n return {\n spec: merge(spec),\n theme\n };\n }\n return { spec, theme };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/base/base-series-transformer.ts"],"names":[],"mappings":"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","file":"base-series-transformer.js","sourcesContent":["import { isBoolean, isFunction, isNil, isObject } from '@visactor/vutils';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { ILabelSpec, TransformedLabelSpec } from '../../component/label';\nimport { BaseModelSpecTransformer } from '../../model/base-model-transformer';\nimport type { ISeriesSpec } from '../../typings';\nimport { array, get, isArray, isValid, transformSeriesThemeToMerge } from '../../util';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeriesSpecTransformerResult, SeriesMarkNameEnum } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../interface';\nimport { getDirectionFromSeriesSpec } from '../util/spec';\nimport { Factory } from '../../core/factory';\n\nexport class BaseSeriesSpecTransformer<T extends ISeriesSpec, K> extends BaseModelSpecTransformer<T, K> {\n markLabelSpec: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>> = {};\n stack: boolean;\n protected _supportStack: boolean;\n\n getLabelSpec(markName: string) {\n return this.markLabelSpec[markName];\n }\n\n setLabelSpec(markName: string, label: TransformedLabelSpec | TransformedLabelSpec[]) {\n this.markLabelSpec[markName] = array(label);\n }\n\n addLabelSpec(markName: string, label: TransformedLabelSpec, head = false) {\n if (!this.markLabelSpec[markName]) {\n this.markLabelSpec[markName] = [];\n }\n if (head) {\n // 排序靠前的 label 优先布局,尽可能避免碰撞隐藏\n this.markLabelSpec[markName].unshift(label);\n } else {\n this.markLabelSpec[markName].push(label);\n }\n }\n\n getTheme(spec: T, chartSpec: any): K {\n const direction = getDirectionFromSeriesSpec(spec);\n const getTheme = this._option?.getTheme;\n // const { markByName, mark } = chartTheme;\n const type = this._option.type;\n // 基本主题\n const seriesMarkMap = Factory.getSeriesMarkMap(type);\n\n const theme = seriesMarkMap ? transformSeriesThemeToMerge(getTheme('series', type), type, getTheme) : {};\n // 区分方向的主题\n const themeWithDirection = getTheme('series', `${type}_${direction}`);\n // stack 状态下的主题\n const stack = this.stack ?? themeWithDirection?.stack ?? theme?.stack;\n const themeWithStack = stack ? getTheme('series', `${type}_stack`) : undefined;\n return mergeSpec({}, theme, themeWithDirection, themeWithStack);\n }\n\n /** 不建议重写该方法,最好重写对应子步骤 */\n transformSpec(spec: T, chartSpec: any, chartSpecInfo?: IChartSpecInfo): ISeriesSpecTransformerResult<T, K> {\n this._transformStack(spec);\n const result = super.transformSpec(spec, chartSpec, chartSpecInfo);\n this._transformLabelSpec(result.spec);\n return {\n ...result,\n markLabelSpec: this.markLabelSpec,\n stack: this.stack\n };\n }\n\n protected _transformLabelSpec(spec: T) {\n // empty\n }\n\n protected _transformStack(spec: T) {\n if (isBoolean(spec.stack)) {\n this.stack = spec.stack;\n }\n if (isBoolean(spec.percent)) {\n this.stack = spec.percent || this.stack; // this.stack is `true` in bar/area series\n }\n\n if (isNil(this.stack) && this._supportStack && spec.seriesField) {\n // only set default value of stack to be `true` when series support stack and seriesField is not null\n this.stack = true;\n }\n }\n\n protected _addMarkLabelSpec<V extends ISeries = ISeries>(\n spec: T,\n markName: string | ((spec: ILabelSpec) => string),\n labelSpecKey: keyof T = 'label' as any,\n styleHandlerName: keyof V = 'initLabelMarkStyle',\n hasAnimation: boolean = true,\n head?: boolean\n ): void {\n if (!spec) {\n return;\n }\n const labels = array<ILabelSpec>(spec[labelSpecKey]);\n labels.forEach(labelSpec => {\n if (labelSpec && labelSpec.visible) {\n // animation config priority: option.animation > spec.animation > spec.label.animation\n const {\n animation = true,\n animationUpdate: labelAnimationUpdate = true,\n animationEnter: labelAnimationEnter = true,\n animationExit: labelAnimationExit = true\n } = labelSpec;\n const { animationUpdate = true, animationEnter = true, animationExit = true } = spec as any;\n const animationEnabled =\n this._option.globalInstance?.isAnimationEnable() ?? spec.animation ?? labelSpec.animation;\n const labelAnimationEnabled = !!animationEnabled && !!hasAnimation;\n\n this.addLabelSpec(\n isFunction(markName) ? markName(labelSpec) : markName,\n {\n ...labelSpec,\n animation: labelAnimationEnabled ? animation : false,\n animationUpdate: labelAnimationEnabled && animationUpdate && labelAnimationUpdate ? animationUpdate : false,\n animationEnter: labelAnimationEnabled && animationEnter && labelAnimationEnter ? animationEnter : false,\n animationExit: labelAnimationEnabled && animationEnter && labelAnimationExit ? animationExit : false,\n getStyleHandler: (series: V) => (series[styleHandlerName] as any)?.bind(series)\n } as TransformedLabelSpec,\n head\n );\n }\n });\n }\n\n protected _getDefaultSpecFromChart(chartSpec: any): any {\n const spec = (super._getDefaultSpecFromChart(chartSpec) as any) ?? {};\n const { outerRadius, innerRadius, direction } = chartSpec;\n if (isValid(outerRadius)) {\n spec.outerRadius = outerRadius;\n }\n if (isValid(innerRadius)) {\n spec.innerRadius = innerRadius;\n }\n\n if (isValid(direction)) {\n spec.direction = direction;\n }\n\n return Object.keys(spec).length > 0 ? spec : undefined;\n }\n\n protected _mergeThemeToSpec(spec: T, chartSpec: any): { spec: T; theme: K } {\n const theme = this._theme;\n\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(chartSpec);\n // this._originalSpec + specFromChart + this._theme = spec\n const merge = (originalSpec: any) => {\n const result = mergeSpec({}, theme, specFromChart, originalSpec);\n const labelTheme = (theme as any).label;\n if (labelTheme && isObject(labelTheme) && isArray(result.label)) {\n result.label = result.label.map((label: ILabelSpec) => mergeSpec({}, labelTheme, label));\n }\n return result;\n };\n\n if (isArray(spec)) {\n return {\n spec: spec.map(specItem => merge(specItem)) as unknown as T,\n theme\n };\n }\n\n return {\n spec: merge(spec),\n theme\n };\n }\n return { spec, theme };\n }\n}\n"]}
@@ -679,9 +679,8 @@ export class BaseSeries extends BaseModel {
679
679
  const spec = this.getSpec() || {};
680
680
  this._marks.addMark(m, {
681
681
  name: markInfo.name
682
- }), isSeriesMark && (this._seriesMark = m), isNil(dataView) ? (m.setData(this._data),
683
- m.setSkipBeforeLayouted(!0)) : !1 !== dataView && m.setDataView(dataView), isBoolean(skipBeforeLayouted) && m.setSkipBeforeLayouted(skipBeforeLayouted),
684
- isNil(groupKey) || m.setGroupKey(groupKey);
682
+ }), isSeriesMark && (this._seriesMark = m), isNil(dataView) ? m.setData(this._data) : !1 !== dataView && m.setDataView(dataView),
683
+ m.setSkipBeforeLayouted(!1 !== skipBeforeLayouted), isNil(groupKey) || m.setGroupKey(groupKey);
685
684
  const markConfig = Object.assign(Object.assign({}, config), {
686
685
  progressiveStep: spec.progressiveStep,
687
686
  progressiveThreshold: spec.progressiveThreshold,