@visactor/vchart 2.1.0-alpha.0 → 2.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +2290 -473
  3. package/build/index.js +2290 -473
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/base/base-chart-transformer.d.ts +3 -0
  7. package/cjs/chart/base/base-chart-transformer.js +21 -1
  8. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  9. package/cjs/chart/base/base-chart.d.ts +15 -9
  10. package/cjs/chart/base/base-chart.js +115 -24
  11. package/cjs/chart/base/base-chart.js.map +1 -1
  12. package/cjs/chart/interface/chart.d.ts +1 -0
  13. package/cjs/chart/interface/chart.js.map +1 -1
  14. package/cjs/chart/pie/base/pie-transformer.js +2 -2
  15. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  16. package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -2
  17. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  18. package/cjs/chart/util.d.ts +4 -1
  19. package/cjs/chart/util.js +40 -4
  20. package/cjs/chart/util.js.map +1 -1
  21. package/cjs/chart/waterfall/waterfall-transformer.js +2 -1
  22. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  23. package/cjs/compile/compiler.js +2 -2
  24. package/cjs/compile/compiler.js.map +1 -1
  25. package/cjs/compile/data/compilable-data.d.ts +1 -1
  26. package/cjs/compile/data/compilable-data.js +1 -1
  27. package/cjs/compile/data/compilable-data.js.map +1 -1
  28. package/cjs/compile/grammar-item.d.ts +1 -1
  29. package/cjs/compile/grammar-item.js.map +1 -1
  30. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  31. package/cjs/compile/interface/compilable-item.js.map +1 -1
  32. package/cjs/component/axis/base-axis.d.ts +2 -7
  33. package/cjs/component/axis/base-axis.js +25 -3
  34. package/cjs/component/axis/base-axis.js.map +1 -1
  35. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -7
  36. package/cjs/component/base/base-component.d.ts +7 -7
  37. package/cjs/component/base/base-component.js +41 -6
  38. package/cjs/component/base/base-component.js.map +1 -1
  39. package/cjs/component/base/release-vrender-component.d.ts +10 -0
  40. package/cjs/component/base/release-vrender-component.js +37 -0
  41. package/cjs/component/base/release-vrender-component.js.map +1 -0
  42. package/cjs/component/brush/brush.d.ts +2 -7
  43. package/cjs/component/brush/brush.js +3 -0
  44. package/cjs/component/brush/brush.js.map +1 -1
  45. package/cjs/component/crosshair/base.d.ts +1 -7
  46. package/cjs/component/custom-mark/custom-mark.d.ts +1 -7
  47. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -7
  48. package/cjs/component/geo/geo-coordinate.d.ts +1 -7
  49. package/cjs/component/index.js +1 -2
  50. package/cjs/component/label/base-label.d.ts +1 -7
  51. package/cjs/component/label/label.js +1 -1
  52. package/cjs/component/label/label.js.map +1 -1
  53. package/cjs/component/legend/base-legend.d.ts +2 -7
  54. package/cjs/component/legend/base-legend.js +20 -3
  55. package/cjs/component/legend/base-legend.js.map +1 -1
  56. package/cjs/component/marker/base-marker.d.ts +7 -7
  57. package/cjs/component/marker/base-marker.js +23 -6
  58. package/cjs/component/marker/base-marker.js.map +1 -1
  59. package/cjs/component/marker/mark-line/base-mark-line.js +2 -4
  60. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  61. package/cjs/component/title/title.d.ts +1 -7
  62. package/cjs/component/title/title.js +6 -2
  63. package/cjs/component/title/title.js.map +1 -1
  64. package/cjs/constant/attribute.js +2 -1
  65. package/cjs/constant/scatter.js +1 -2
  66. package/cjs/constant/waterfall.js +2 -1
  67. package/cjs/core/factory.js +1 -1
  68. package/cjs/core/index.js +1 -1
  69. package/cjs/core/vchart.d.ts +5 -1
  70. package/cjs/core/vchart.js +28 -12
  71. package/cjs/core/vchart.js.map +1 -1
  72. package/cjs/data/data-view-utils.d.ts +5 -0
  73. package/cjs/data/data-view-utils.js +58 -0
  74. package/cjs/data/data-view-utils.js.map +1 -0
  75. package/cjs/env/env.js +1 -1
  76. package/cjs/env/index.js +1 -1
  77. package/cjs/mark/base/base-mark.d.ts +12 -2
  78. package/cjs/mark/base/base-mark.js +85 -21
  79. package/cjs/mark/base/base-mark.js.map +1 -1
  80. package/cjs/mark/component.d.ts +9 -0
  81. package/cjs/mark/component.js +51 -3
  82. package/cjs/mark/component.js.map +1 -1
  83. package/cjs/mark/group.js +1 -1
  84. package/cjs/mark/group.js.map +1 -1
  85. package/cjs/mark/interface/mark.d.ts +2 -0
  86. package/cjs/mark/interface/mark.js.map +1 -1
  87. package/cjs/model/base-model.d.ts +3 -15
  88. package/cjs/model/base-model.js.map +1 -1
  89. package/cjs/model/interface.d.ts +13 -0
  90. package/cjs/model/interface.js.map +1 -1
  91. package/cjs/region/region.d.ts +1 -7
  92. package/cjs/series/area/area.d.ts +2 -0
  93. package/cjs/series/area/area.js +6 -0
  94. package/cjs/series/area/area.js.map +1 -1
  95. package/cjs/series/bar/bar.d.ts +3 -0
  96. package/cjs/series/bar/bar.js +30 -4
  97. package/cjs/series/bar/bar.js.map +1 -1
  98. package/cjs/series/base/base-series.d.ts +8 -7
  99. package/cjs/series/base/base-series.js +54 -13
  100. package/cjs/series/base/base-series.js.map +1 -1
  101. package/cjs/series/base/constant.d.ts +3 -0
  102. package/cjs/series/base/constant.js +9 -1
  103. package/cjs/series/base/constant.js.map +1 -1
  104. package/cjs/series/box-plot/box-plot.d.ts +2 -0
  105. package/cjs/series/box-plot/box-plot.js +14 -2
  106. package/cjs/series/box-plot/box-plot.js.map +1 -1
  107. package/cjs/series/heatmap/heatmap.d.ts +2 -0
  108. package/cjs/series/heatmap/heatmap.js +10 -0
  109. package/cjs/series/heatmap/heatmap.js.map +1 -1
  110. package/cjs/series/line/line.d.ts +2 -0
  111. package/cjs/series/line/line.js +6 -0
  112. package/cjs/series/line/line.js.map +1 -1
  113. package/cjs/series/mixin/line-mixin.d.ts +1 -0
  114. package/cjs/series/mixin/line-mixin.js +6 -1
  115. package/cjs/series/mixin/line-mixin.js.map +1 -1
  116. package/cjs/series/pie/pie.d.ts +3 -7
  117. package/cjs/series/pie/pie.js +16 -1
  118. package/cjs/series/pie/pie.js.map +1 -1
  119. package/cjs/series/progress/circular/circular.d.ts +2 -0
  120. package/cjs/series/progress/circular/circular.js +9 -1
  121. package/cjs/series/progress/circular/circular.js.map +1 -1
  122. package/cjs/series/progress/linear/linear.d.ts +2 -0
  123. package/cjs/series/progress/linear/linear.js +17 -1
  124. package/cjs/series/progress/linear/linear.js.map +1 -1
  125. package/cjs/series/scatter/scatter.d.ts +2 -0
  126. package/cjs/series/scatter/scatter.js +9 -1
  127. package/cjs/series/scatter/scatter.js.map +1 -1
  128. package/cjs/series/waterfall/waterfall.d.ts +2 -0
  129. package/cjs/series/waterfall/waterfall.js +10 -0
  130. package/cjs/series/waterfall/waterfall.js.map +1 -1
  131. package/cjs/util/graphic-state.d.ts +1 -0
  132. package/cjs/util/graphic-state.js +19 -4
  133. package/cjs/util/graphic-state.js.map +1 -1
  134. package/esm/chart/base/base-chart-transformer.d.ts +3 -0
  135. package/esm/chart/base/base-chart-transformer.js +22 -0
  136. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  137. package/esm/chart/base/base-chart.d.ts +15 -9
  138. package/esm/chart/base/base-chart.js +111 -23
  139. package/esm/chart/base/base-chart.js.map +1 -1
  140. package/esm/chart/interface/chart.d.ts +1 -0
  141. package/esm/chart/interface/chart.js.map +1 -1
  142. package/esm/chart/pie/base/pie-transformer.js +2 -2
  143. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  144. package/esm/chart/progress/circular/circular-progress-transformer.js +2 -2
  145. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  146. package/esm/chart/util.d.ts +4 -1
  147. package/esm/chart/util.js +34 -1
  148. package/esm/chart/util.js.map +1 -1
  149. package/esm/chart/waterfall/waterfall-transformer.js +2 -1
  150. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  151. package/esm/compile/compiler.js +2 -2
  152. package/esm/compile/compiler.js.map +1 -1
  153. package/esm/compile/data/compilable-data.d.ts +1 -1
  154. package/esm/compile/data/compilable-data.js +1 -1
  155. package/esm/compile/data/compilable-data.js.map +1 -1
  156. package/esm/compile/grammar-item.d.ts +1 -1
  157. package/esm/compile/grammar-item.js.map +1 -1
  158. package/esm/compile/interface/compilable-item.d.ts +1 -1
  159. package/esm/compile/interface/compilable-item.js.map +1 -1
  160. package/esm/component/axis/base-axis.d.ts +2 -7
  161. package/esm/component/axis/base-axis.js +25 -2
  162. package/esm/component/axis/base-axis.js.map +1 -1
  163. package/esm/component/axis/cartesian/band-axis.d.ts +1 -7
  164. package/esm/component/base/base-component.d.ts +7 -7
  165. package/esm/component/base/base-component.js +41 -5
  166. package/esm/component/base/base-component.js.map +1 -1
  167. package/esm/component/base/release-vrender-component.d.ts +10 -0
  168. package/esm/component/base/release-vrender-component.js +24 -0
  169. package/esm/component/base/release-vrender-component.js.map +1 -0
  170. package/esm/component/brush/brush.d.ts +2 -7
  171. package/esm/component/brush/brush.js +3 -0
  172. package/esm/component/brush/brush.js.map +1 -1
  173. package/esm/component/crosshair/base.d.ts +1 -7
  174. package/esm/component/custom-mark/custom-mark.d.ts +1 -7
  175. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -7
  176. package/esm/component/geo/geo-coordinate.d.ts +1 -7
  177. package/esm/component/index.js +1 -2
  178. package/esm/component/label/base-label.d.ts +1 -7
  179. package/esm/component/label/label.js +1 -1
  180. package/esm/component/label/label.js.map +1 -1
  181. package/esm/component/legend/base-legend.d.ts +2 -7
  182. package/esm/component/legend/base-legend.js +20 -2
  183. package/esm/component/legend/base-legend.js.map +1 -1
  184. package/esm/component/marker/base-marker.d.ts +7 -7
  185. package/esm/component/marker/base-marker.js +24 -5
  186. package/esm/component/marker/base-marker.js.map +1 -1
  187. package/esm/component/marker/mark-line/base-mark-line.js +2 -4
  188. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  189. package/esm/component/title/title.d.ts +1 -7
  190. package/esm/component/title/title.js +6 -2
  191. package/esm/component/title/title.js.map +1 -1
  192. package/esm/constant/attribute.js +2 -1
  193. package/esm/constant/scatter.js +1 -2
  194. package/esm/constant/waterfall.js +2 -1
  195. package/esm/core/factory.js +1 -1
  196. package/esm/core/index.js +1 -1
  197. package/esm/core/vchart.d.ts +5 -1
  198. package/esm/core/vchart.js +29 -12
  199. package/esm/core/vchart.js.map +1 -1
  200. package/esm/data/data-view-utils.d.ts +5 -0
  201. package/esm/data/data-view-utils.js +46 -0
  202. package/esm/data/data-view-utils.js.map +1 -0
  203. package/esm/env/env.js +1 -1
  204. package/esm/env/index.js +1 -1
  205. package/esm/mark/base/base-mark.d.ts +12 -2
  206. package/esm/mark/base/base-mark.js +85 -20
  207. package/esm/mark/base/base-mark.js.map +1 -1
  208. package/esm/mark/component.d.ts +9 -0
  209. package/esm/mark/component.js +51 -2
  210. package/esm/mark/component.js.map +1 -1
  211. package/esm/mark/group.js +1 -1
  212. package/esm/mark/group.js.map +1 -1
  213. package/esm/mark/interface/mark.d.ts +2 -0
  214. package/esm/mark/interface/mark.js.map +1 -1
  215. package/esm/model/base-model.d.ts +3 -15
  216. package/esm/model/base-model.js.map +1 -1
  217. package/esm/model/interface.d.ts +13 -0
  218. package/esm/model/interface.js.map +1 -1
  219. package/esm/region/region.d.ts +1 -7
  220. package/esm/series/area/area.d.ts +2 -0
  221. package/esm/series/area/area.js +7 -1
  222. package/esm/series/area/area.js.map +1 -1
  223. package/esm/series/bar/bar.d.ts +3 -0
  224. package/esm/series/bar/bar.js +30 -4
  225. package/esm/series/bar/bar.js.map +1 -1
  226. package/esm/series/base/base-series.d.ts +8 -7
  227. package/esm/series/base/base-series.js +50 -11
  228. package/esm/series/base/base-series.js.map +1 -1
  229. package/esm/series/base/constant.d.ts +3 -0
  230. package/esm/series/base/constant.js +10 -0
  231. package/esm/series/base/constant.js.map +1 -1
  232. package/esm/series/box-plot/box-plot.d.ts +2 -0
  233. package/esm/series/box-plot/box-plot.js +13 -2
  234. package/esm/series/box-plot/box-plot.js.map +1 -1
  235. package/esm/series/heatmap/heatmap.d.ts +2 -0
  236. package/esm/series/heatmap/heatmap.js +10 -0
  237. package/esm/series/heatmap/heatmap.js.map +1 -1
  238. package/esm/series/line/line.d.ts +2 -0
  239. package/esm/series/line/line.js +7 -1
  240. package/esm/series/line/line.js.map +1 -1
  241. package/esm/series/mixin/line-mixin.d.ts +1 -0
  242. package/esm/series/mixin/line-mixin.js +5 -0
  243. package/esm/series/mixin/line-mixin.js.map +1 -1
  244. package/esm/series/pie/pie.d.ts +3 -7
  245. package/esm/series/pie/pie.js +17 -0
  246. package/esm/series/pie/pie.js.map +1 -1
  247. package/esm/series/progress/circular/circular.d.ts +2 -0
  248. package/esm/series/progress/circular/circular.js +10 -0
  249. package/esm/series/progress/circular/circular.js.map +1 -1
  250. package/esm/series/progress/linear/linear.d.ts +2 -0
  251. package/esm/series/progress/linear/linear.js +18 -0
  252. package/esm/series/progress/linear/linear.js.map +1 -1
  253. package/esm/series/scatter/scatter.d.ts +2 -0
  254. package/esm/series/scatter/scatter.js +10 -0
  255. package/esm/series/scatter/scatter.js.map +1 -1
  256. package/esm/series/waterfall/waterfall.d.ts +2 -0
  257. package/esm/series/waterfall/waterfall.js +10 -0
  258. package/esm/series/waterfall/waterfall.js.map +1 -1
  259. package/esm/util/graphic-state.d.ts +1 -0
  260. package/esm/util/graphic-state.js +16 -3
  261. package/esm/util/graphic-state.js.map +1 -1
  262. package/package.json +11 -10
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.releaseDataViewWithDependencies = exports.releaseDataView = exports.releaseDataViews = exports.detachDataViewDependencies = void 0;
6
+
7
+ const getDataViewsInDataSet = dataView => {
8
+ var _a;
9
+ const dataViewMap = null === (_a = null == dataView ? void 0 : dataView.dataSet) || void 0 === _a ? void 0 : _a.dataViewMap;
10
+ return dataViewMap ? Object.values(dataViewMap).filter(Boolean) : [];
11
+ }, detachDataViewListener = (source, target) => {
12
+ var _a, _b;
13
+ null === (_a = null == source ? void 0 : source.target) || void 0 === _a || _a.removeListener("change", target.reRunAllTransform),
14
+ null === (_b = null == source ? void 0 : source.target) || void 0 === _b || _b.removeListener("markRunning", target.markRunning);
15
+ }, detachDataViewDependencies = dataView => {
16
+ if (!dataView) return;
17
+ getDataViewsInDataSet(dataView).forEach((source => {
18
+ detachDataViewListener(source, dataView);
19
+ }));
20
+ const dependencies = null == dataView ? void 0 : dataView.rawData;
21
+ Array.isArray(dependencies) && dependencies.forEach((dependency => {
22
+ detachDataViewListener(dependency, dataView);
23
+ }));
24
+ };
25
+
26
+ exports.detachDataViewDependencies = detachDataViewDependencies;
27
+
28
+ const releaseDataViews = dataViews => {
29
+ const releaseDataViews = Array.from(new Set(dataViews.filter(Boolean)));
30
+ releaseDataViews.length && (releaseDataViews.forEach(exports.detachDataViewDependencies),
31
+ releaseDataViews.forEach((dataView => {
32
+ var _a;
33
+ null === (_a = dataView.destroy) || void 0 === _a || _a.call(dataView);
34
+ })));
35
+ };
36
+
37
+ exports.releaseDataViews = releaseDataViews;
38
+
39
+ const releaseDataView = dataView => {
40
+ (0, exports.releaseDataViews)([ dataView ]);
41
+ };
42
+
43
+ exports.releaseDataView = releaseDataView;
44
+
45
+ const releaseDataViewWithDependencies = (dataView, shouldReleaseDependency) => {
46
+ if (!dataView) return;
47
+ const dataViewsInDataSet = new Set(getDataViewsInDataSet(dataView)), releaseDependencies = [], collectReleaseDependencies = currentDataView => {
48
+ const dependencies = null == currentDataView ? void 0 : currentDataView.rawData;
49
+ Array.isArray(dependencies) && dependencies.forEach((dependency => {
50
+ dataViewsInDataSet.has(dependency) && shouldReleaseDependency(dependency) && !releaseDependencies.includes(dependency) && (releaseDependencies.push(dependency),
51
+ collectReleaseDependencies(dependency));
52
+ }));
53
+ };
54
+ collectReleaseDependencies(dataView), (0, exports.releaseDataViews)([ dataView, ...releaseDependencies ]);
55
+ };
56
+
57
+ exports.releaseDataViewWithDependencies = releaseDataViewWithDependencies;
58
+ //# sourceMappingURL=data-view-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/data-view-utils.ts"],"names":[],"mappings":"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","file":"data-view-utils.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\n\nconst getDataViewsInDataSet = (dataView?: DataView | null) => {\n const dataViewMap = dataView?.dataSet?.dataViewMap;\n\n return dataViewMap ? (Object.values(dataViewMap).filter(Boolean) as DataView[]) : [];\n};\n\nconst detachDataViewListener = (source: DataView, target: DataView) => {\n source?.target?.removeListener('change', target.reRunAllTransform);\n source?.target?.removeListener('markRunning', target.markRunning);\n};\n\nexport const detachDataViewDependencies = (dataView?: DataView | null) => {\n if (!dataView) {\n return;\n }\n\n const dataViews = getDataViewsInDataSet(dataView);\n\n dataViews.forEach(source => {\n detachDataViewListener(source, dataView);\n });\n\n const dependencies = (dataView as unknown as { rawData?: DataView[] })?.rawData;\n\n if (Array.isArray(dependencies)) {\n dependencies.forEach(dependency => {\n detachDataViewListener(dependency, dataView);\n });\n }\n};\n\nexport const releaseDataViews = (dataViews: Array<DataView | null | undefined>) => {\n const releaseDataViews = Array.from(new Set(dataViews.filter(Boolean) as DataView[]));\n\n if (!releaseDataViews.length) {\n return;\n }\n\n releaseDataViews.forEach(detachDataViewDependencies);\n releaseDataViews.forEach(dataView => {\n dataView.destroy?.();\n });\n};\n\nexport const releaseDataView = (dataView?: DataView | null) => {\n releaseDataViews([dataView]);\n};\n\nexport const releaseDataViewWithDependencies = (\n dataView: DataView | null | undefined,\n shouldReleaseDependency: (dataView: DataView) => boolean\n) => {\n if (!dataView) {\n return;\n }\n\n const dataViewsInDataSet = new Set(getDataViewsInDataSet(dataView));\n const releaseDependencies: DataView[] = [];\n const collectReleaseDependencies = (currentDataView: DataView) => {\n const dependencies = (currentDataView as unknown as { rawData?: DataView[] })?.rawData;\n\n if (!Array.isArray(dependencies)) {\n return;\n }\n\n dependencies.forEach(dependency => {\n if (\n dataViewsInDataSet.has(dependency) &&\n shouldReleaseDependency(dependency) &&\n !releaseDependencies.includes(dependency)\n ) {\n releaseDependencies.push(dependency);\n collectReleaseDependencies(dependency);\n }\n });\n };\n\n collectReleaseDependencies(dataView);\n releaseDataViews([dataView, ...releaseDependencies]);\n};\n"]}
package/cjs/env/env.js CHANGED
@@ -57,4 +57,4 @@ const registerHarmonyEnv = () => {
57
57
  };
58
58
 
59
59
  exports.registerHarmonyEnv = registerHarmonyEnv;
60
- //# sourceMappingURL=env.js.map
60
+ //# sourceMappingURL=env.js.map
package/cjs/env/index.js CHANGED
@@ -18,4 +18,4 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), __exportStar(require("./env"), exports);
21
- //# sourceMappingURL=index.js.map
21
+ //# sourceMappingURL=index.js.map
@@ -5,7 +5,7 @@ import { MarkTypeEnum } from '../interface';
5
5
  import type { IMarkRaw, IMarkStateStyle, IMarkStyle, IMark, IMarkOption, StyleConvert, MarkInputStyle, GroupedData, IAttrs, IMarkGraphic, ProgressiveContext, IProgressiveTransformResult, MarkType, AnimationStateValues } from '../interface';
6
6
  import type { ICompilableMark, IMarkCompileOption, IMarkConfig, IMarkStateManager, StateValueType } from '../../compile/mark/interface';
7
7
  import type { ICompilableInitOption } from '../../compile/interface';
8
- import type { IGroupGraphicAttribute, IGroup, IGraphic } from '@visactor/vrender-core';
8
+ import type { IGroupGraphicAttribute, IGroup, IGraphic, StateDefinitionsInput } from '@visactor/vrender-core';
9
9
  import { GrammarItem } from '../../compile/grammar-item';
10
10
  import type { IModel } from '../../model/interface';
11
11
  import type { ICompilableData } from '../../compile/data/interface';
@@ -74,7 +74,7 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
74
74
  stopAnimationByState(state?: string): void;
75
75
  pauseAnimationByState(state?: string): void;
76
76
  resumeAnimationByState(state?: string): void;
77
- removeProduct(): void;
77
+ removeProduct(releaseDetach?: boolean): void;
78
78
  release(): void;
79
79
  protected _simpleStyle: T;
80
80
  setSimpleStyle(s: T): void;
@@ -82,6 +82,11 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
82
82
  protected _option: IMarkOption;
83
83
  protected _attributeContext: IModelMarkAttributeContext;
84
84
  protected _encoderOfState: Record<string, Record<string, (datum: Datum) => any>>;
85
+ protected _sharedStateDefinitionsCacheKey?: string;
86
+ protected _sharedStateDefinitionsCache?: StateDefinitionsInput<Record<string, unknown>>;
87
+ protected _sharedStateDefinitionRefIds: WeakMap<object, number>;
88
+ protected _sharedStateDefinitionRefId: number;
89
+ protected _dynamicSharedStateNames: Set<string>;
85
90
  _extensionChannel: {
86
91
  [key: string | number | symbol]: string[];
87
92
  };
@@ -155,9 +160,14 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
155
160
  protected _getEncoderOfStyle: (stateName: string, style: Partial<IAttrs<T>>) => Record<string, (datum: Datum) => any>;
156
161
  protected _setGraphicFromMarkConfig: (g: IMarkGraphic) => void;
157
162
  protected _setStateOfGraphic: (g: IMarkGraphic, hasAnimation?: boolean) => void;
163
+ protected _getSharedStateDefinitionRefId(value: unknown): string;
164
+ protected _getSharedStateDefinitionValueKey(value: unknown): string;
165
+ protected _isStaticSharedStateAttribute(stateName: string, key: string): boolean;
158
166
  protected _applySharedStateDefinitions(): void;
159
167
  protected _addProgressiveGraphic(parent: IGroup, g: IMarkGraphic): void;
160
168
  protected _runEncoder(graphics: IMarkGraphic[], noGroupEncode?: boolean): void;
169
+ protected _excludeStateControlledDiffAttrs(g: IMarkGraphic, diffAttrs: Record<string, any>): Record<string, any>;
170
+ protected _hasDiffAttrs(g: IMarkGraphic): boolean;
161
171
  protected _runApplyGraphic(graphics: IMarkGraphic[]): void;
162
172
  protected _updateEncoderByState(): void;
163
173
  protected _runState(graphics: IMarkGraphic[]): void;
@@ -14,7 +14,7 @@ Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.BaseMark = void 0;
16
16
 
17
- const enum_1 = require("../interface/enum"), interface_1 = require("../../compile/mark/interface"), vutils_extension_1 = require("@visactor/vutils-extension"), color_1 = require("../../util/color"), scale_1 = require("../../util/scale"), gradient_1 = require("../../constant/gradient"), attribute_1 = require("../../constant/attribute"), vscale_1 = require("@visactor/vscale"), util_1 = require("../../theme/color-scheme/util"), mark_1 = require("../../compile/mark"), vutils_1 = require("@visactor/vutils"), common_1 = require("../utils/common"), interface_2 = require("../../compile/interface"), vrender_core_1 = require("@visactor/vrender-core"), util_2 = require("../../compile/mark/util"), factory_1 = require("../../core/factory"), data_1 = require("../../constant/data"), grammar_item_1 = require("../../compile/grammar-item"), layout_1 = require("../../constant/layout"), interface_3 = require("../../animation/interface"), compilable_data_1 = require("../../compile/data/compilable-data"), mark_2 = require("../../util/mark"), debug_1 = require("../../util/debug"), morph_1 = require("../../compile/morph"), graphic_state_1 = require("../../util/graphic-state");
17
+ const enum_1 = require("../interface/enum"), interface_1 = require("../../compile/mark/interface"), vutils_extension_1 = require("@visactor/vutils-extension"), color_1 = require("../../util/color"), scale_1 = require("../../util/scale"), gradient_1 = require("../../constant/gradient"), attribute_1 = require("../../constant/attribute"), vscale_1 = require("@visactor/vscale"), util_1 = require("../../theme/color-scheme/util"), mark_1 = require("../../compile/mark"), vutils_1 = require("@visactor/vutils"), common_1 = require("../utils/common"), interface_2 = require("../../compile/interface"), vrender_core_1 = require("@visactor/vrender-core"), util_2 = require("../../compile/mark/util"), factory_1 = require("../../core/factory"), data_1 = require("../../constant/data"), grammar_item_1 = require("../../compile/grammar-item"), layout_1 = require("../../constant/layout"), interface_3 = require("../../animation/interface"), compilable_data_1 = require("../../compile/data/compilable-data"), mark_2 = require("../../util/mark"), debug_1 = require("../../util/debug"), morph_1 = require("../../compile/morph"), graphic_state_1 = require("../../util/graphic-state"), statesClearedBeforeReInitKey = Symbol("statesClearedBeforeReInit");
18
18
 
19
19
  class BaseMark extends grammar_item_1.GrammarItem {
20
20
  commit(render, recursion) {
@@ -170,8 +170,8 @@ class BaseMark extends grammar_item_1.GrammarItem {
170
170
  stopAnimationByState(state) {}
171
171
  pauseAnimationByState(state) {}
172
172
  resumeAnimationByState(state) {}
173
- removeProduct() {
174
- this._product && this._product.parent && this._product.parent.removeChild(this._product),
173
+ removeProduct(releaseDetach) {
174
+ this._product && this._product.parent && this._product.parent.removeChild(this._product, releaseDetach),
175
175
  this._product = null, this._compiledProductId = null;
176
176
  }
177
177
  release() {
@@ -189,8 +189,9 @@ class BaseMark extends grammar_item_1.GrammarItem {
189
189
  zIndex: layout_1.LayoutZIndex.Mark,
190
190
  morph: !1
191
191
  }, this._visible = !0, this.stateStyle = {}, this._unCompileChannel = {}, this._disabledAnimationStates = [],
192
- this._skipBeforeLayouted = !1, this._extensionChannel = {}, this._computeExChannel = {},
193
- this._graphicMap = new Map, this._graphics = [], this._getEncoderOfStyle = (stateName, style) => {
192
+ this._skipBeforeLayouted = !1, this._sharedStateDefinitionRefIds = new WeakMap,
193
+ this._sharedStateDefinitionRefId = 0, this._dynamicSharedStateNames = new Set, this._extensionChannel = {},
194
+ this._computeExChannel = {}, this._graphicMap = new Map, this._graphics = [], this._getEncoderOfStyle = (stateName, style) => {
194
195
  if (style && stateName) {
195
196
  const validEncoder = {};
196
197
  return Object.keys(style).forEach((key => {
@@ -203,7 +204,11 @@ class BaseMark extends grammar_item_1.GrammarItem {
203
204
  setCustomizedShape && (g.pathProxy = attrs => setCustomizedShape(g.context.data, attrs, new vrender_core_1.CustomPath2D)),
204
205
  graphicName && ((0, vutils_1.isFunction)(graphicName) ? g.name = graphicName(g) : g.name = graphicName);
205
206
  }, this._setStateOfGraphic = (g, hasAnimation) => {
206
- g.clearStates(), g.stateProxy = null, g.context.diffState !== enum_1.DiffState.enter && g.context.diffState !== enum_1.DiffState.update || g.context.states && g.useStates(g.context.states, hasAnimation);
207
+ var _a, _b, _c;
208
+ g.stateProxy = null;
209
+ const targetStates = g.context.diffState === enum_1.DiffState.enter || g.context.diffState === enum_1.DiffState.update ? g.context.states : void 0, hasCurrentState = !!((null === (_a = g.currentStates) || void 0 === _a ? void 0 : _a.length) || (null === (_b = g.effectiveStates) || void 0 === _b ? void 0 : _b.length) || g.resolvedStatePatch || (null === (_c = g.registeredActiveScopes) || void 0 === _c ? void 0 : _c.size));
210
+ ((null == targetStates ? void 0 : targetStates.length) || hasCurrentState) && (0,
211
+ graphic_state_1.setGraphicStates)(g, targetStates, hasAnimation);
207
212
  }, this.name = name, this.model = option.model, this.key = option.key, this.state = new mark_1.MarkStateManager(option, this),
208
213
  this._attributeContext = option.attributeContext, null === (_a = option.map) || void 0 === _a || _a.set(this.id, this);
209
214
  }
@@ -541,6 +546,7 @@ class BaseMark extends grammar_item_1.GrammarItem {
541
546
  if (graphics.forEach((g => {
542
547
  const state = g.context.animationState;
543
548
  if ("appear" === state) return;
549
+ if ("update" === state && !this._hasDiffAttrs(g)) return;
544
550
  const config = animationConfig[state];
545
551
  if (config && config.length > 0) {
546
552
  const configList = config.map(((item, index) => ({
@@ -640,25 +646,60 @@ class BaseMark extends grammar_item_1.GrammarItem {
640
646
  groupStyles: groupStyles
641
647
  };
642
648
  }
649
+ _getSharedStateDefinitionRefId(value) {
650
+ if ("object" != typeof value && "function" != typeof value || null === value) return `${value}`;
651
+ const objectValue = value;
652
+ let id = this._sharedStateDefinitionRefIds.get(objectValue);
653
+ return id || (id = ++this._sharedStateDefinitionRefId, this._sharedStateDefinitionRefIds.set(objectValue, id)),
654
+ `ref:${id}`;
655
+ }
656
+ _getSharedStateDefinitionValueKey(value) {
657
+ try {
658
+ const jsonValue = JSON.stringify(value);
659
+ return null != jsonValue ? jsonValue : `${value}`;
660
+ } catch (_error) {
661
+ return this._getSharedStateDefinitionRefId(value);
662
+ }
663
+ }
664
+ _isStaticSharedStateAttribute(stateName, key) {
665
+ var _a, _b;
666
+ const stateStyle = null === (_a = this.stateStyle[stateName]) || void 0 === _a ? void 0 : _a[key];
667
+ if (!stateStyle || stateStyle.referer || (0, vutils_1.isFunction)(stateStyle.postProcess) || key in this._computeExChannel) return !1;
668
+ const style = stateStyle.style;
669
+ return !(0, vutils_1.isFunction)(style) && (!gradient_1.GradientType.includes(null == style ? void 0 : style.gradient) && (![ "outerBorder", "innerBorder" ].includes(key) && !(0,
670
+ vscale_1.isValidScaleType)(null === (_b = null == style ? void 0 : style.scale) || void 0 === _b ? void 0 : _b.type)));
671
+ }
643
672
  _applySharedStateDefinitions() {
644
673
  var _a;
645
674
  if (!this._product) return;
646
675
  const stateNames = Object.keys(null !== (_a = this._encoderOfState) && void 0 !== _a ? _a : {}).filter((stateName => "group" !== stateName && "update" !== stateName));
647
- if (!stateNames.length) return void (this._product.sharedStateDefinitions = void 0);
676
+ if (!stateNames.length) return this._dynamicSharedStateNames.clear(), void (void 0 !== this._product.sharedStateDefinitions && (this._product.sharedStateDefinitions = void 0));
648
677
  const sortedStateNames = this._stateSort ? stateNames.slice().sort(this._stateSort) : stateNames, statePriority = new Map;
649
678
  sortedStateNames.forEach(((stateName, index) => {
650
679
  statePriority.set(stateName, index);
651
680
  }));
652
- const sharedStateDefinitions = {};
653
- stateNames.forEach((stateName => {
681
+ const sharedStateDefinitions = {}, cacheKeys = [], dynamicSharedStateNames = new Set;
682
+ if (stateNames.forEach((stateName => {
654
683
  var _a;
655
- const encoder = this._encoderOfState[stateName];
656
- sharedStateDefinitions[stateName] = {
657
- priority: null !== (_a = statePriority.get(stateName)) && void 0 !== _a ? _a : 0,
658
- declaredAffectedKeys: Object.keys(null != encoder ? encoder : {}),
659
- resolver: ({graphic: graphic}) => this._runEncoderOfGraphic(encoder, graphic)
684
+ const encoder = this._encoderOfState[stateName], patch = {}, dynamicEncoder = {}, patchKeys = [], dynamicKeys = [];
685
+ if (Object.keys(null != encoder ? encoder : {}).forEach((key => {
686
+ this._isStaticSharedStateAttribute(stateName, key) ? (patch[key] = this._computeAttribute(key, stateName)(void 0),
687
+ patchKeys.push(key)) : (dynamicEncoder[key] = encoder[key], dynamicKeys.push(key));
688
+ })), !patchKeys.length && !dynamicKeys.length) return;
689
+ const definition = {
690
+ priority: null !== (_a = statePriority.get(stateName)) && void 0 !== _a ? _a : 0
660
691
  };
661
- })), this._product.sharedStateDefinitions = sharedStateDefinitions;
692
+ patchKeys.length && (definition.patch = patch), dynamicKeys.length && (dynamicSharedStateNames.add(stateName),
693
+ definition.declaredAffectedKeys = dynamicKeys, definition.resolver = ({graphic: graphic}) => this._runEncoderOfGraphic(dynamicEncoder, graphic)),
694
+ sharedStateDefinitions[stateName] = definition, cacheKeys.push([ stateName, definition.priority, patchKeys.sort().map((key => `${key}:${this._getSharedStateDefinitionValueKey(patch[key])}`)), dynamicKeys.sort().map((key => {
695
+ var _a;
696
+ const stateStyle = null === (_a = this.stateStyle[stateName]) || void 0 === _a ? void 0 : _a[key];
697
+ return `${key}:${this._getSharedStateDefinitionRefId(null == stateStyle ? void 0 : stateStyle.style)}:${this._getSharedStateDefinitionRefId(null == stateStyle ? void 0 : stateStyle.postProcess)}:${this._getSharedStateDefinitionRefId(null == stateStyle ? void 0 : stateStyle.referer)}`;
698
+ })) ].join("|"));
699
+ })), !cacheKeys.length) return this._dynamicSharedStateNames.clear(), void (void 0 !== this._product.sharedStateDefinitions && (this._product.sharedStateDefinitions = void 0));
700
+ const cacheKey = cacheKeys.sort().join("||");
701
+ this._dynamicSharedStateNames = dynamicSharedStateNames, cacheKey === this._sharedStateDefinitionsCacheKey && this._sharedStateDefinitionsCache ? this._product.sharedStateDefinitions !== this._sharedStateDefinitionsCache && (this._product.sharedStateDefinitions = this._sharedStateDefinitionsCache) : (this._sharedStateDefinitionsCacheKey = cacheKey,
702
+ this._sharedStateDefinitionsCache = sharedStateDefinitions, this._product.sharedStateDefinitions = sharedStateDefinitions);
662
703
  }
663
704
  _addProgressiveGraphic(parent, g) {
664
705
  parent.incrementalAppendChild(g);
@@ -674,15 +715,33 @@ class BaseMark extends grammar_item_1.GrammarItem {
674
715
  g.context.finalAttrs = finalAttrs;
675
716
  }));
676
717
  }
718
+ _excludeStateControlledDiffAttrs(g, diffAttrs) {
719
+ var _a;
720
+ if (!diffAttrs || !Object.keys(diffAttrs).length) return diffAttrs;
721
+ let nextDiffAttrs;
722
+ const excludeKey = key => {
723
+ key in diffAttrs && (nextDiffAttrs || (nextDiffAttrs = Object.assign({}, diffAttrs)),
724
+ delete nextDiffAttrs[key]);
725
+ };
726
+ return g.resolvedStatePatch && Object.keys(g.resolvedStatePatch).forEach(excludeKey),
727
+ null === (_a = g.context.states) || void 0 === _a || _a.forEach((stateName => {
728
+ var _a;
729
+ const encoder = null === (_a = this._encoderOfState) || void 0 === _a ? void 0 : _a[stateName];
730
+ encoder && Object.keys(encoder).forEach(excludeKey);
731
+ })), null != nextDiffAttrs ? nextDiffAttrs : diffAttrs;
732
+ }
733
+ _hasDiffAttrs(g) {
734
+ return !!g.context.diffAttrs && Object.keys(g.context.diffAttrs).length > 0;
735
+ }
677
736
  _runApplyGraphic(graphics) {
678
737
  const hasAnimation = this.hasAnimation();
679
738
  graphics.forEach(((g, index) => {
680
739
  var _a, _b, _c;
681
740
  const finalAttrs = g.context.finalAttrs, hasStateAnimation = this.hasAnimationByState(g.context.animationState);
682
741
  if (g.setAttributes) {
683
- const diffAttrs = (0, mark_2.getDiffAttributesOfGraphic)(g, finalAttrs);
742
+ const diffAttrs = this._excludeStateControlledDiffAttrs(g, (0, mark_2.getDiffAttributesOfGraphic)(g, finalAttrs));
684
743
  g.context.diffAttrs = diffAttrs, g.context.reusing ? (g.context.lastAttrs = g.attribute,
685
- g.initAttributes({}), g.context.reusing = !1) : hasStateAnimation || (hasAnimation ? g.setAttributesAndPreventAnimate(diffAttrs) : g.setAttributes(diffAttrs)),
744
+ g.initAttributes(finalAttrs), g.context.reusing = !1) : hasStateAnimation || (hasAnimation ? g.setAttributesAndPreventAnimate(diffAttrs) : g.setAttributes(diffAttrs)),
686
745
  !(null === (_c = this.renderContext) || void 0 === _c ? void 0 : _c.progressive) && this._product && g.parent !== this._product && this._product.appendChild(g),
687
746
  hasAnimation && g.setFinalAttributes(finalAttrs);
688
747
  } else {
@@ -779,8 +838,12 @@ class BaseMark extends grammar_item_1.GrammarItem {
779
838
  if (!this._product) return;
780
839
  const stateInfo = this.state.getStateInfo(key);
781
840
  this._graphics.forEach((g => {
782
- "in" === this.state.checkOneState(g, g.context.data, stateInfo) ? (0, graphic_state_1.addGraphicState)(g, key, !0, this.hasAnimationByState("state")) : (0,
783
- graphic_state_1.removeGraphicState)(g, key, this.hasAnimationByState("state"));
841
+ const reinitStateGraphic = g, statesClearedBeforeReInit = reinitStateGraphic[statesClearedBeforeReInitKey], wasStateClearedBeforeReInit = null == statesClearedBeforeReInit ? void 0 : statesClearedBeforeReInit.includes(key), hasStateAnimation = !wasStateClearedBeforeReInit && this.hasAnimationByState("state");
842
+ if ("in" === this.state.checkOneState(g, g.context.data, stateInfo) ? (0, graphic_state_1.addGraphicState)(g, key, !0, hasStateAnimation) : (0,
843
+ graphic_state_1.removeGraphicState)(g, key, hasStateAnimation), wasStateClearedBeforeReInit) {
844
+ const nextStates = statesClearedBeforeReInit.filter((stateName => stateName !== key));
845
+ nextStates.length ? reinitStateGraphic[statesClearedBeforeReInitKey] = nextStates : delete reinitStateGraphic[statesClearedBeforeReInitKey];
846
+ }
784
847
  }));
785
848
  }
786
849
  clearExitGraphics() {
@@ -800,7 +863,7 @@ class BaseMark extends grammar_item_1.GrammarItem {
800
863
  })
801
864
  })));
802
865
  g.applyAnimationState([ "exit" ], [ 1 === exitConfigList.length ? exitConfigList[0] : exitConfigList ], (() => {
803
- doRemove(g, key);
866
+ g.context.diffState === enum_1.DiffState.exit && g.isExiting && this._graphicMap.get(key) === g && doRemove(g, key);
804
867
  }));
805
868
  }
806
869
  } else doRemove(g, key);
@@ -911,7 +974,8 @@ class BaseMark extends grammar_item_1.GrammarItem {
911
974
  }
912
975
  clearBeforeReInit() {
913
976
  this.state.clearAllStateInfo(), this.uncommit(), this.stateStyle = {}, this.getGraphics().forEach((g => {
914
- g.clearStates();
977
+ var _a;
978
+ (null === (_a = g.currentStates) || void 0 === _a ? void 0 : _a.length) && (g[statesClearedBeforeReInitKey] = g.currentStates.slice());
915
979
  }));
916
980
  }
917
981
  }