@visactor/vchart-extension 2.0.5-alpha.2 → 2.0.5-alpha.4

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 (143) hide show
  1. package/build/index.js +2426 -2792
  2. package/build/index.min.js +2 -2
  3. package/cjs/charts/3d/rect-3d.js +2 -1
  4. package/cjs/charts/axis-3d/linear-axis.js +1 -2
  5. package/cjs/charts/bar-3d/interface.js +2 -1
  6. package/cjs/charts/bar-3d/series-spec-transformer.js +1 -2
  7. package/cjs/charts/candlestick/index.d.ts +0 -2
  8. package/cjs/charts/candlestick/index.js +1 -2
  9. package/cjs/charts/candlestick/index.js.map +1 -1
  10. package/cjs/charts/conversion-funnel/arrow-data-transform.js +1 -1
  11. package/cjs/charts/conversion-funnel/constants.js +1 -1
  12. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js +1 -1
  13. package/cjs/charts/conversion-funnel/conversion-funnel.js +1 -1
  14. package/cjs/charts/conversion-funnel/index.js +1 -1
  15. package/cjs/charts/conversion-funnel/interface.js +1 -1
  16. package/cjs/charts/conversion-funnel/util.js +1 -1
  17. package/cjs/charts/funnel-3d/chart.js +1 -1
  18. package/cjs/charts/funnel-3d/constant.js +1 -1
  19. package/cjs/charts/funnel-3d/index.js +1 -1
  20. package/cjs/charts/funnel-3d/interface.js +1 -1
  21. package/cjs/charts/funnel-3d/series-spec-transformer.js +1 -1
  22. package/cjs/charts/funnel-3d/series.js +1 -1
  23. package/cjs/charts/funnel-3d/theme.js +1 -2
  24. package/cjs/charts/histogram-3d/chart.js +1 -1
  25. package/cjs/charts/histogram-3d/index.js +1 -1
  26. package/cjs/charts/histogram-3d/interface.js +1 -1
  27. package/cjs/charts/image-cloud/image-cloud-transformer.js +1 -1
  28. package/cjs/charts/image-cloud/image-cloud.js +1 -1
  29. package/cjs/charts/image-cloud/index.js +1 -1
  30. package/cjs/charts/image-cloud/interface.js +1 -1
  31. package/cjs/components/bar-link/bar-link.js +1 -1
  32. package/cjs/components/bar-link/constant.js +1 -1
  33. package/cjs/components/bar-link/index.js +1 -1
  34. package/cjs/components/bar-link/type.js +1 -1
  35. package/cjs/components/bar-link/util.js +1 -1
  36. package/cjs/components/map-label/index.js +1 -1
  37. package/cjs/components/map-label/layout.js +1 -1
  38. package/cjs/components/map-label/map-label-transformer.js +1 -1
  39. package/cjs/components/map-label/map-label.js +1 -1
  40. package/cjs/components/map-label/theme.js +1 -1
  41. package/cjs/components/map-label/type.js +1 -1
  42. package/cjs/components/series-break/constant.js +2 -1
  43. package/cjs/components/series-break/index.js +1 -1
  44. package/cjs/components/series-break/series-break.js +1 -1
  45. package/cjs/components/series-break/type.js +1 -1
  46. package/cjs/components/series-break/util.js +1 -1
  47. package/cjs/components/series-label/constant.js +1 -1
  48. package/cjs/components/series-label/index.js +1 -1
  49. package/cjs/components/series-label/series-label.js +1 -1
  50. package/cjs/components/series-label/type.js +1 -1
  51. package/cjs/components/series-label/util.js +1 -1
  52. package/cjs/index.d.ts +0 -1
  53. package/cjs/index.js +2 -2
  54. package/cjs/index.js.map +1 -1
  55. package/esm/charts/3d/rect-3d.js +2 -1
  56. package/esm/charts/axis-3d/linear-axis.js +1 -2
  57. package/esm/charts/bar-3d/interface.js +2 -1
  58. package/esm/charts/bar-3d/series-spec-transformer.js +1 -2
  59. package/esm/charts/candlestick/index.d.ts +0 -2
  60. package/esm/charts/candlestick/index.js +0 -4
  61. package/esm/charts/candlestick/index.js.map +1 -1
  62. package/esm/charts/conversion-funnel/arrow-data-transform.js +1 -1
  63. package/esm/charts/conversion-funnel/constants.js +1 -1
  64. package/esm/charts/conversion-funnel/conversion-funnel-transformer.js +1 -1
  65. package/esm/charts/conversion-funnel/conversion-funnel.js +1 -1
  66. package/esm/charts/conversion-funnel/index.js +1 -1
  67. package/esm/charts/conversion-funnel/interface.js +1 -1
  68. package/esm/charts/conversion-funnel/util.js +1 -1
  69. package/esm/charts/funnel-3d/chart.js +1 -1
  70. package/esm/charts/funnel-3d/constant.js +1 -1
  71. package/esm/charts/funnel-3d/index.js +1 -1
  72. package/esm/charts/funnel-3d/interface.js +1 -1
  73. package/esm/charts/funnel-3d/series-spec-transformer.js +1 -1
  74. package/esm/charts/funnel-3d/series.js +1 -1
  75. package/esm/charts/funnel-3d/theme.js +1 -2
  76. package/esm/charts/histogram-3d/chart.js +1 -1
  77. package/esm/charts/histogram-3d/index.js +1 -1
  78. package/esm/charts/histogram-3d/interface.js +1 -1
  79. package/esm/charts/image-cloud/image-cloud-transformer.js +1 -1
  80. package/esm/charts/image-cloud/image-cloud.js +1 -1
  81. package/esm/charts/image-cloud/index.js +1 -1
  82. package/esm/charts/image-cloud/interface.js +1 -1
  83. package/esm/components/bar-link/bar-link.js +1 -1
  84. package/esm/components/bar-link/constant.js +1 -1
  85. package/esm/components/bar-link/index.js +1 -1
  86. package/esm/components/bar-link/type.js +1 -1
  87. package/esm/components/bar-link/util.js +1 -1
  88. package/esm/components/map-label/index.js +1 -1
  89. package/esm/components/map-label/layout.js +1 -1
  90. package/esm/components/map-label/map-label-transformer.js +1 -1
  91. package/esm/components/map-label/map-label.js +1 -1
  92. package/esm/components/map-label/theme.js +1 -1
  93. package/esm/components/map-label/type.js +1 -1
  94. package/esm/components/series-break/constant.js +2 -1
  95. package/esm/components/series-break/index.js +1 -1
  96. package/esm/components/series-break/series-break.js +1 -1
  97. package/esm/components/series-break/type.js +1 -1
  98. package/esm/components/series-break/util.js +1 -1
  99. package/esm/components/series-label/constant.js +1 -1
  100. package/esm/components/series-label/index.js +1 -1
  101. package/esm/components/series-label/series-label.js +1 -1
  102. package/esm/components/series-label/type.js +1 -1
  103. package/esm/components/series-label/util.js +1 -1
  104. package/esm/index.d.ts +0 -1
  105. package/esm/index.js +0 -2
  106. package/esm/index.js.map +1 -1
  107. package/package.json +4 -4
  108. package/cjs/charts/candlestick/util.d.ts +0 -2
  109. package/cjs/charts/candlestick/util.js +0 -10
  110. package/cjs/charts/candlestick/util.js.map +0 -1
  111. package/cjs/charts/combination-candlestick/combination-candlestick-transformer.d.ts +0 -14
  112. package/cjs/charts/combination-candlestick/combination-candlestick-transformer.js +0 -204
  113. package/cjs/charts/combination-candlestick/combination-candlestick-transformer.js.map +0 -1
  114. package/cjs/charts/combination-candlestick/combination-candlestick.d.ts +0 -12
  115. package/cjs/charts/combination-candlestick/combination-candlestick.js +0 -31
  116. package/cjs/charts/combination-candlestick/combination-candlestick.js.map +0 -1
  117. package/cjs/charts/combination-candlestick/constant.d.ts +0 -1
  118. package/cjs/charts/combination-candlestick/constant.js +0 -6
  119. package/cjs/charts/combination-candlestick/constant.js.map +0 -1
  120. package/cjs/charts/combination-candlestick/index.d.ts +0 -3
  121. package/cjs/charts/combination-candlestick/index.js +0 -22
  122. package/cjs/charts/combination-candlestick/index.js.map +0 -1
  123. package/cjs/charts/combination-candlestick/interface.d.ts +0 -13
  124. package/cjs/charts/combination-candlestick/interface.js +0 -6
  125. package/cjs/charts/combination-candlestick/interface.js.map +0 -1
  126. package/esm/charts/candlestick/util.d.ts +0 -2
  127. package/esm/charts/candlestick/util.js +0 -4
  128. package/esm/charts/candlestick/util.js.map +0 -1
  129. package/esm/charts/combination-candlestick/combination-candlestick-transformer.d.ts +0 -14
  130. package/esm/charts/combination-candlestick/combination-candlestick-transformer.js +0 -199
  131. package/esm/charts/combination-candlestick/combination-candlestick-transformer.js.map +0 -1
  132. package/esm/charts/combination-candlestick/combination-candlestick.d.ts +0 -12
  133. package/esm/charts/combination-candlestick/combination-candlestick.js +0 -29
  134. package/esm/charts/combination-candlestick/combination-candlestick.js.map +0 -1
  135. package/esm/charts/combination-candlestick/constant.d.ts +0 -1
  136. package/esm/charts/combination-candlestick/constant.js +0 -2
  137. package/esm/charts/combination-candlestick/constant.js.map +0 -1
  138. package/esm/charts/combination-candlestick/index.d.ts +0 -3
  139. package/esm/charts/combination-candlestick/index.js +0 -6
  140. package/esm/charts/combination-candlestick/index.js.map +0 -1
  141. package/esm/charts/combination-candlestick/interface.d.ts +0 -13
  142. package/esm/charts/combination-candlestick/interface.js +0 -2
  143. package/esm/charts/combination-candlestick/interface.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import type { ICandlestickSeriesSpec } from './series/interface';
2
- export declare function transformCandlestickSeriesSpec(spec: ICandlestickSeriesSpec): void;
@@ -1,4 +0,0 @@
1
- export function transformCandlestickSeriesSpec(spec) {
2
- spec.yField = [ spec.openField, spec.highField, spec.lowField, spec.closeField ];
3
- }
4
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/charts/candlestick/util.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,8BAA8B,CAAC,IAA4B;IACxE,IAA6B,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3G,CAAC","file":"util.js","sourcesContent":["import type { ICartesianSeriesSpec } from '@visactor/vchart';\nimport type { ICandlestickSeriesSpec } from './series/interface';\nexport function transformCandlestickSeriesSpec(spec: ICandlestickSeriesSpec) {\n (spec as ICartesianSeriesSpec).yField = [spec.openField, spec.highField, spec.lowField, spec.closeField];\n}\n"]}
@@ -1,14 +0,0 @@
1
- import { CartesianChartSpecTransformer } from '@visactor/vchart';
2
- import type { ICombinationCandlestickChartSpec } from './interface';
3
- export declare class CombinationCandlestickChartSpecTransformer<T extends ICombinationCandlestickChartSpec> extends CartesianChartSpecTransformer<T> {
4
- protected needAxes(): boolean;
5
- transformSpec(spec: T): void;
6
- transformRegion(spec: T): void;
7
- transformSeriesSpec(spec: T): void;
8
- private _transformSeriesData;
9
- protected _transformAxisSpec(spec: T): void;
10
- protected _transformDataZoomSpec(spec: T): void;
11
- protected _transformLayout(spec: T): void;
12
- private _layoutOrientItem;
13
- private _getLayoutElementCommon;
14
- }
@@ -1,199 +0,0 @@
1
- import { CartesianChartSpecTransformer, isPercent } from "@visactor/vchart";
2
-
3
- import { merge, array } from "@visactor/vutils";
4
-
5
- import { transformCandlestickSeriesSpec } from "../candlestick";
6
-
7
- export class CombinationCandlestickChartSpecTransformer extends CartesianChartSpecTransformer {
8
- needAxes() {
9
- return !0;
10
- }
11
- transformSpec(spec) {
12
- this.transformRegion(spec), void 0 === spec.tooltip && (spec.tooltip = {}), this.transformSeriesSpec(spec),
13
- this._transformAxisSpec(spec), this._transformLayout(spec);
14
- }
15
- transformRegion(spec) {
16
- var _a, _b;
17
- const commonSpec = spec;
18
- commonSpec.region = [ null !== (_a = spec.candlestickRegion) && void 0 !== _a ? _a : {} ],
19
- spec.previewSeries && commonSpec.region.push(null !== (_b = spec.previewRegion) && void 0 !== _b ? _b : {});
20
- }
21
- transformSeriesSpec(spec) {
22
- var _a;
23
- spec.series = null !== (_a = spec.series) && void 0 !== _a ? _a : [], spec.series.forEach((s => {
24
- this._transformSeriesData(spec, s), s.regionIndex = 0;
25
- }));
26
- const tempCandlestickSeries = spec.series.find((s => s.id === spec.candlestickSeries.id));
27
- let candlestickSpec;
28
- tempCandlestickSeries ? (merge(tempCandlestickSeries, spec.candlestickSeries), candlestickSpec = tempCandlestickSeries) : (spec.series.push(spec.candlestickSeries),
29
- candlestickSpec = spec.candlestickSeries), transformCandlestickSeriesSpec(candlestickSpec),
30
- this._transformSeriesData(spec, candlestickSpec), candlestickSpec.regionIndex = 0,
31
- spec.previewSeries && array(spec.previewSeries).forEach((previewSeries => {
32
- const tempPreviewSeries = spec.series.find((s => s.id === previewSeries.id));
33
- let previewSeriesSpec;
34
- tempPreviewSeries ? (merge(tempPreviewSeries, previewSeries), previewSeriesSpec = tempPreviewSeries) : (spec.series.push(previewSeries),
35
- previewSeriesSpec = previewSeries), previewSeriesSpec.regionIndex = 1, this._transformSeriesData(spec, previewSeriesSpec);
36
- }));
37
- }
38
- _transformSeriesData(spec, seriesSpec) {
39
- var _a;
40
- seriesSpec.data && (spec.data = array(null !== (_a = spec.data) && void 0 !== _a ? _a : []),
41
- array(seriesSpec.data).forEach(((d, index) => {
42
- spec.data.push(d), 0 === index && (seriesSpec.dataIndex = spec.data.length - 1,
43
- "id" in d ? seriesSpec.dataId = d.id : "name" in d && (seriesSpec.dataId = d.name));
44
- })), delete seriesSpec.data);
45
- }
46
- _transformAxisSpec(spec) {
47
- super._transformAxisSpec(spec), spec.previewSeries && (spec.previewAxes || (spec.previewAxes = {
48
- type: "linear",
49
- orient: "left",
50
- visible: !1
51
- }), spec.previewAxes.regionIndex = [ 1 ], spec.axes.push(spec.previewAxes), spec.axes.forEach((axis => {
52
- axis !== spec.previewAxes && ("left" !== axis.orient && "right" !== axis.orient || (axis.regionIndex = [ 0 ]));
53
- })));
54
- }
55
- _transformDataZoomSpec(spec) {
56
- spec.dataZoom && array(spec.dataZoom).forEach((dataZoom => {
57
- "left" !== dataZoom.orient && "right" !== dataZoom.orient || (dataZoom.regionIndex = [ 0 ]);
58
- }));
59
- }
60
- _transformLayout(spec) {
61
- var _a, _b;
62
- const layout = {
63
- type: "grid",
64
- col: 2,
65
- row: 6,
66
- elements: [],
67
- colWidth: [],
68
- rowHeight: []
69
- };
70
- let totalRow = 0, totalCol = 0;
71
- if (!1 !== (null === (_a = spec.title) || void 0 === _a ? void 0 : _a.visible) && totalRow++,
72
- spec.legends) {
73
- const firstLegend = array(spec.legends)[0];
74
- !1 !== (null == firstLegend ? void 0 : firstLegend.visible) && ("top" === firstLegend.orient || "bottom" === firstLegend.orient ? totalRow++ : totalCol++);
75
- }
76
- if (spec.dataZoom && array(spec.dataZoom).forEach((dataZoom => {
77
- !1 !== (null == dataZoom ? void 0 : dataZoom.visible) && ("top" === dataZoom.orient || "bottom" === dataZoom.orient ? totalRow++ : totalCol++);
78
- })), spec.axes) {
79
- const hasLayout = {
80
- top: !1,
81
- bottom: !1,
82
- left: !1,
83
- right: !1,
84
- z: !1
85
- };
86
- array(spec.axes).forEach((axis => {
87
- hasLayout[axis.orient] || (hasLayout[axis.orient] = !0, "top" === axis.orient || "bottom" === axis.orient ? totalRow++ : totalCol++);
88
- }));
89
- }
90
- totalRow++, totalCol++, spec.previewSeries && totalRow++, layout.row = totalRow,
91
- layout.col = totalCol;
92
- const temp = {
93
- top: 0,
94
- bottom: 0,
95
- left: 0,
96
- right: 0
97
- };
98
- if (!1 !== (null === (_b = spec.title) || void 0 === _b ? void 0 : _b.visible) && this._layoutOrientItem(layout, spec.title, temp, {
99
- specKey: "title",
100
- index: 0
101
- }, "total"), spec.legends) {
102
- const firstLegend = array(spec.legends)[0];
103
- !1 !== (null == firstLegend ? void 0 : firstLegend.visible) && this._layoutOrientItem(layout, firstLegend, temp, {
104
- specKey: "legends",
105
- index: 0
106
- }, "less");
107
- }
108
- if (spec.dataZoom && array(spec.dataZoom).forEach(((dataZoom, index) => {
109
- !1 !== (null == dataZoom ? void 0 : dataZoom.visible) && this._layoutOrientItem(layout, dataZoom, temp, {
110
- specKey: "dataZoom",
111
- index: index
112
- }, "one");
113
- })), spec.axes) {
114
- const hasLayout = {
115
- left: !1,
116
- right: !1
117
- };
118
- spec.axes.forEach(((axis, index) => {
119
- "left" !== axis.orient && "right" !== axis.orient || hasLayout[axis.orient] || (hasLayout[axis.orient] = !0,
120
- this._layoutOrientItem(layout, axis, temp, {
121
- specKey: "axes",
122
- index: index
123
- }, "one"));
124
- }));
125
- }
126
- const regionLayout = this._layoutOrientItem(layout, {
127
- orient: "top"
128
- }, temp, {
129
- specKey: "region",
130
- index: 0
131
- }, "one");
132
- if (spec.previewSeries) {
133
- const regionLayout = this._layoutOrientItem(layout, {
134
- orient: "bottom"
135
- }, temp, {
136
- specKey: "region",
137
- index: 1
138
- }, "one"), previewAxesIndex = spec.axes.findIndex((axis => axis === spec.previewAxes));
139
- if (-1 !== previewAxesIndex) {
140
- const previewAxesLayout = {
141
- col: regionLayout.col - 1,
142
- row: regionLayout.row,
143
- modelKey: "axes",
144
- modelIndex: previewAxesIndex
145
- };
146
- layout.elements.push(previewAxesLayout);
147
- }
148
- if (spec.previewHeight) if ("string" == typeof spec.previewHeight) {
149
- if (isPercent(spec.previewHeight)) {
150
- const heightStr = spec.previewHeight;
151
- layout.rowHeight.push({
152
- index: regionLayout.row,
153
- size: size => Number(heightStr.substring(0, heightStr.length - 1)) * size / 100
154
- });
155
- }
156
- } else layout.rowHeight.push({
157
- index: regionLayout.row,
158
- size: spec.previewHeight
159
- });
160
- }
161
- const bottomAxesIndex = spec.axes.findIndex((axis => "bottom" === axis.orient));
162
- this._layoutOrientItem(layout, spec.axes[bottomAxesIndex], temp, {
163
- specKey: "axes",
164
- index: bottomAxesIndex
165
- }, "one"), spec.axes.forEach(((axis, index) => {
166
- if (axis === spec.previewAxes) return;
167
- const axisLayout = layout.elements.find((item => "modelKey" in item && "axes" === item.modelKey && item.modelIndex === index));
168
- axisLayout && ("top" === axis.orient || "bottom" === axis.orient ? axisLayout.col = regionLayout.col : axisLayout.row = regionLayout.row);
169
- })), array(spec.dataZoom).forEach(((dataZoom, index) => {
170
- const dataZoomLayout = layout.elements.find((item => "modelKey" in item && "dataZoom" === item.modelKey && item.modelIndex === index));
171
- dataZoomLayout && ("top" === dataZoom.orient || "bottom" === dataZoom.orient ? dataZoomLayout.col = regionLayout.col : dataZoomLayout.row = regionLayout.row);
172
- })), spec.layout = layout;
173
- }
174
- _layoutOrientItem(layout, modelSpec, temp, modelInfo, spanType) {
175
- var _a;
176
- const modelLayout = {
177
- modelKey: modelInfo.specKey,
178
- modelIndex: modelInfo.index,
179
- col: 0,
180
- row: 0
181
- }, orient = null !== (_a = modelSpec.orient) && void 0 !== _a ? _a : "top", {span: span, index: index} = this._getLayoutElementCommon(layout, temp, spanType, orient);
182
- return layout.elements.push(modelLayout), "top" === orient ? (modelLayout.row = temp.top,
183
- modelLayout.rowSpan = 1, modelLayout.colSpan = span, modelLayout.col = index, temp.top++) : "bottom" === orient ? (modelLayout.row = layout.row - temp.bottom - 1,
184
- modelLayout.rowSpan = 1, modelLayout.colSpan = span, modelLayout.col = index, temp.bottom++) : "left" === orient ? (modelLayout.col = temp.left,
185
- modelLayout.colSpan = 1, modelLayout.rowSpan = span, modelLayout.row = index, temp.left++) : "right" === orient && (modelLayout.col = layout.col - temp.right - 1,
186
- modelLayout.colSpan = 1, modelLayout.rowSpan = span, modelLayout.row = index, temp.right++),
187
- modelLayout;
188
- }
189
- _getLayoutElementCommon(layout, temp, span, orient) {
190
- return "top" === orient || "bottom" === orient ? {
191
- span: "total" === span ? layout.col : "one" === span ? 1 : layout.col - temp.left - temp.right,
192
- index: "total" === span ? 0 : temp.left
193
- } : {
194
- span: "total" === span ? layout.row : "one" === span ? 1 : layout.row - temp.top - temp.bottom,
195
- index: "total" === span ? 0 : temp.top
196
- };
197
- }
198
- }
199
- //# sourceMappingURL=combination-candlestick-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/charts/combination-candlestick/combination-candlestick-transformer.ts"],"names":[],"mappings":"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","file":"combination-candlestick-transformer.js","sourcesContent":["import type { ICommonChartSpec, ICartesianSeriesSpec, IDataType, IGridLayoutSpec, IOrientType } from '@visactor/vchart';\nimport { CartesianChartSpecTransformer, isPercent } from '@visactor/vchart';\nimport type { ICombinationCandlestickChartSpec } from './interface';\nimport { merge, array } from '@visactor/vutils';\nimport { transformCandlestickSeriesSpec } from '../candlestick';\nimport type { ICandlestickSeriesSpec } from '../candlestick/series/interface';\n\n/**\n * @description 组合蜡烛图 spec a转换\n */\nexport class CombinationCandlestickChartSpecTransformer<\n T extends ICombinationCandlestickChartSpec\n> extends CartesianChartSpecTransformer<T> {\n protected needAxes(): boolean {\n return true;\n }\n\n transformSpec(spec: T): void {\n this.transformRegion(spec);\n if (spec.tooltip === undefined) {\n spec.tooltip = {};\n }\n this.transformSeriesSpec(spec);\n this._transformAxisSpec(spec);\n this._transformLayout(spec);\n }\n\n transformRegion(spec: T): void {\n const commonSpec = spec as unknown as ICommonChartSpec;\n commonSpec.region = [spec.candlestickRegion ?? {}];\n if (spec.previewSeries) {\n commonSpec.region.push(spec.previewRegion ?? {});\n }\n }\n\n transformSeriesSpec(spec: T): void {\n // 单独的系列转换\n spec.series = spec.series ?? [];\n spec.series.forEach(s => {\n this._transformSeriesData(spec, s);\n s.regionIndex = 0;\n });\n const tempCandlestickSeries = spec.series.find(s => s.id === spec.candlestickSeries.id) as ICandlestickSeriesSpec;\n let candlestickSpec;\n if (tempCandlestickSeries) {\n merge(tempCandlestickSeries, spec.candlestickSeries);\n candlestickSpec = tempCandlestickSeries;\n } else {\n spec.series.push(spec.candlestickSeries);\n candlestickSpec = spec.candlestickSeries;\n }\n transformCandlestickSeriesSpec(candlestickSpec);\n this._transformSeriesData(spec, candlestickSpec);\n candlestickSpec.regionIndex = 0;\n\n if (spec.previewSeries) {\n array(spec.previewSeries).forEach(previewSeries => {\n const tempPreviewSeries = spec.series.find(s => s.id === previewSeries.id);\n let previewSeriesSpec;\n if (tempPreviewSeries) {\n merge(tempPreviewSeries, previewSeries);\n previewSeriesSpec = tempPreviewSeries;\n } else {\n spec.series.push(previewSeries);\n previewSeriesSpec = previewSeries;\n }\n previewSeriesSpec.regionIndex = 1;\n this._transformSeriesData(spec, previewSeriesSpec);\n });\n }\n }\n\n private _transformSeriesData(spec: T, seriesSpec: ICartesianSeriesSpec) {\n if (seriesSpec.data) {\n spec.data = array(spec.data ?? []);\n array(seriesSpec.data).forEach((d, index) => {\n (spec.data as IDataType[]).push(d);\n if (index === 0) {\n seriesSpec.dataIndex = (spec.data as IDataType[]).length - 1;\n if ('id' in d) {\n seriesSpec.dataId = d.id;\n } else if ('name' in d) {\n seriesSpec.dataId = d.name;\n }\n }\n });\n delete seriesSpec.data;\n }\n }\n\n protected _transformAxisSpec(spec: T) {\n super._transformAxisSpec(spec);\n if (!spec.previewSeries) {\n return;\n }\n if (!spec.previewAxes) {\n spec.previewAxes = {\n type: 'linear',\n orient: 'left',\n visible: false\n };\n }\n spec.previewAxes.regionIndex = [1];\n spec.axes.push(spec.previewAxes);\n\n spec.axes.forEach(axis => {\n if (axis === spec.previewAxes) {\n return;\n }\n if (axis.orient === 'left' || axis.orient === 'right') {\n axis.regionIndex = [0];\n }\n });\n }\n\n protected _transformDataZoomSpec(spec: T) {\n if (spec.dataZoom) {\n array(spec.dataZoom).forEach(dataZoom => {\n if (dataZoom.orient === 'left' || dataZoom.orient === 'right') {\n dataZoom.regionIndex = [0];\n }\n });\n }\n }\n\n protected _transformLayout(spec: T) {\n const layout: IGridLayoutSpec = {\n type: 'grid',\n col: 2,\n row: 6,\n elements: [],\n colWidth: [],\n rowHeight: []\n };\n // 创建布局的临时计算属性\n let totalRow = 0;\n let totalCol = 0;\n // 先获取总计的行和列\n // 如果有 title\n if (spec.title?.visible !== false) {\n totalRow++;\n }\n // 图例\n if (spec.legends) {\n const firstLegend = array(spec.legends)[0];\n if (firstLegend?.visible !== false) {\n if (firstLegend.orient === 'top' || firstLegend.orient === 'bottom') {\n totalRow++;\n } else {\n totalCol++;\n }\n }\n }\n // datazoom\n if (spec.dataZoom) {\n array(spec.dataZoom).forEach(dataZoom => {\n if (dataZoom?.visible !== false) {\n if (dataZoom.orient === 'top' || dataZoom.orient === 'bottom') {\n totalRow++;\n } else {\n totalCol++;\n }\n }\n });\n }\n // 轴\n if (spec.axes) {\n const hasLayout = {\n top: false,\n bottom: false,\n left: false,\n right: false,\n z: false\n };\n array(spec.axes).forEach(axis => {\n if (hasLayout[axis.orient]) {\n return;\n }\n hasLayout[axis.orient] = true;\n if (axis.orient === 'top' || axis.orient === 'bottom') {\n totalRow++;\n } else {\n totalCol++;\n }\n });\n }\n // 系列\n totalRow++;\n totalCol++;\n // 预览系列\n if (spec.previewSeries) {\n totalRow++;\n }\n layout.row = totalRow;\n layout.col = totalCol;\n\n const temp = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n // 开始布局\n if (spec.title?.visible !== false) {\n this._layoutOrientItem(layout, spec.title, temp, { specKey: 'title', index: 0 }, 'total');\n }\n // 图例\n if (spec.legends) {\n const firstLegend = array(spec.legends)[0];\n if (firstLegend?.visible !== false) {\n this._layoutOrientItem(\n layout,\n firstLegend as { orient: IOrientType },\n temp,\n { specKey: 'legends', index: 0 },\n 'less'\n );\n }\n }\n // datazoom\n if (spec.dataZoom) {\n array(spec.dataZoom).forEach((dataZoom, index) => {\n if (dataZoom?.visible === false) {\n return;\n }\n this._layoutOrientItem(\n layout,\n dataZoom as { orient: IOrientType },\n temp,\n { specKey: 'dataZoom', index },\n 'one'\n );\n });\n }\n // 轴 先只布局左右\n if (spec.axes) {\n const hasLayout = {\n left: false,\n right: false\n };\n spec.axes.forEach((axis, index) => {\n if (axis.orient !== 'left' && axis.orient !== 'right') {\n return;\n }\n if (hasLayout[axis.orient]) {\n return;\n }\n hasLayout[axis.orient] = true;\n this._layoutOrientItem(layout, axis as { orient: IOrientType }, temp, { specKey: 'axes', index }, 'one');\n });\n }\n // region\n const regionLayout = this._layoutOrientItem(\n layout,\n { orient: 'top' },\n temp,\n { specKey: 'region', index: 0 },\n 'one'\n );\n\n // 预览图region\n if (spec.previewSeries) {\n const regionLayout = this._layoutOrientItem(\n layout,\n { orient: 'bottom' },\n temp,\n { specKey: 'region', index: 1 },\n 'one'\n );\n const previewAxesIndex = spec.axes.findIndex(axis => axis === spec.previewAxes);\n if (previewAxesIndex !== -1) {\n const previewAxesLayout = {\n col: regionLayout.col - 1,\n row: regionLayout.row,\n modelKey: 'axes',\n modelIndex: previewAxesIndex\n };\n layout.elements.push(previewAxesLayout);\n }\n if (spec.previewHeight) {\n if (typeof spec.previewHeight === 'string') {\n if (isPercent(spec.previewHeight)) {\n const heightStr = spec.previewHeight;\n layout.rowHeight.push({\n index: regionLayout.row,\n size: (size: number) => (Number(heightStr.substring(0, heightStr.length - 1)) * size) / 100\n });\n }\n } else {\n layout.rowHeight.push({\n index: regionLayout.row,\n size: spec.previewHeight\n });\n }\n }\n }\n\n // 下轴\n const bottomAxesIndex = spec.axes.findIndex(axis => axis.orient === 'bottom');\n this._layoutOrientItem(\n layout,\n spec.axes[bottomAxesIndex],\n temp,\n { specKey: 'axes', index: bottomAxesIndex },\n 'one'\n );\n\n // 修正axes,datazoom\n spec.axes.forEach((axis, index) => {\n // 预览图的轴已处理\n if (axis === spec.previewAxes) {\n return;\n }\n const axisLayout = layout.elements.find(\n item => 'modelKey' in item && item.modelKey === 'axes' && item.modelIndex === index\n );\n if (axisLayout) {\n if (axis.orient === 'top' || axis.orient === 'bottom') {\n axisLayout.col = regionLayout.col;\n } else {\n axisLayout.row = regionLayout.row;\n }\n }\n });\n // 修正datazoom\n array(spec.dataZoom).forEach((dataZoom, index) => {\n const dataZoomLayout = layout.elements.find(\n item => 'modelKey' in item && item.modelKey === 'dataZoom' && item.modelIndex === index\n );\n if (dataZoomLayout) {\n if (dataZoom.orient === 'top' || dataZoom.orient === 'bottom') {\n dataZoomLayout.col = regionLayout.col;\n } else {\n dataZoomLayout.row = regionLayout.row;\n }\n }\n });\n\n spec.layout = layout;\n }\n\n private _layoutOrientItem(\n layout: IGridLayoutSpec,\n modelSpec: { orient?: IOrientType },\n temp: { top: number; bottom: number; left: number; right: number },\n modelInfo: { specKey: string; index: number },\n spanType: 'total' | 'one' | 'less'\n ) {\n const modelLayout: IGridLayoutSpec['elements'][number] = {\n modelKey: modelInfo.specKey,\n modelIndex: modelInfo.index,\n col: 0,\n row: 0\n };\n const orient = modelSpec.orient ?? 'top';\n const { span, index } = this._getLayoutElementCommon(layout, temp, spanType, orient);\n layout.elements.push(modelLayout);\n if (orient === 'top') {\n modelLayout.row = temp.top;\n modelLayout.rowSpan = 1;\n modelLayout.colSpan = span;\n modelLayout.col = index;\n temp.top++;\n } else if (orient === 'bottom') {\n modelLayout.row = layout.row - temp.bottom - 1;\n modelLayout.rowSpan = 1;\n modelLayout.colSpan = span;\n modelLayout.col = index;\n temp.bottom++;\n } else if (orient === 'left') {\n modelLayout.col = temp.left;\n modelLayout.colSpan = 1;\n modelLayout.rowSpan = span;\n modelLayout.row = index;\n temp.left++;\n } else if (orient === 'right') {\n modelLayout.col = layout.col - temp.right - 1;\n modelLayout.colSpan = 1;\n modelLayout.rowSpan = span;\n modelLayout.row = index;\n temp.right++;\n }\n return modelLayout;\n }\n\n private _getLayoutElementCommon(\n layout: IGridLayoutSpec,\n temp: { top: number; bottom: number; left: number; right: number },\n span: 'total' | 'one' | 'less',\n orient: IOrientType\n ) {\n if (orient === 'top' || orient === 'bottom') {\n return {\n span: span === 'total' ? layout.col : span === 'one' ? 1 : layout.col - temp.left - temp.right,\n index: span === 'total' ? 0 : temp.left\n };\n }\n return {\n span: span === 'total' ? layout.row : span === 'one' ? 1 : layout.row - temp.top - temp.bottom,\n index: span === 'total' ? 0 : temp.top\n };\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- import { BaseChart } from '@visactor/vchart';
2
- import type { ICombinationCandlestickChartSpec } from './interface';
3
- import { CombinationCandlestickChartSpecTransformer } from './combination-candlestick-transformer';
4
- export declare class CombinationCandlestickChart extends BaseChart<ICombinationCandlestickChartSpec> {
5
- static readonly type: string;
6
- readonly type: string;
7
- _spec: ICombinationCandlestickChartSpec;
8
- static readonly transformerConstructor: typeof CombinationCandlestickChartSpecTransformer;
9
- readonly transformerConstructor: typeof CombinationCandlestickChartSpecTransformer;
10
- protected _setModelOption(): void;
11
- }
12
- export declare const registerCombinationCandlestickChart: () => void;
@@ -1,29 +0,0 @@
1
- import { BaseChart, Factory, StackChartMixin, getCartesianCrosshairRect, getCartesianDimensionInfo, getDimensionInfoByValue } from "@visactor/vchart";
2
-
3
- import { CombinationCandlestickChart_TYPE } from "./constant";
4
-
5
- import { registerCandlestickSeries } from "../candlestick";
6
-
7
- import { CombinationCandlestickChartSpecTransformer } from "./combination-candlestick-transformer";
8
-
9
- import { mixin } from "@visactor/vutils";
10
-
11
- export class CombinationCandlestickChart extends BaseChart {
12
- constructor() {
13
- super(...arguments), this.type = CombinationCandlestickChart_TYPE, this.transformerConstructor = CombinationCandlestickChartSpecTransformer;
14
- }
15
- _setModelOption() {
16
- this._modelOption.getDimensionInfo = (chart, point, isTooltip) => {
17
- var _a;
18
- return [ ...null !== (_a = getCartesianDimensionInfo(chart, point, isTooltip)) && void 0 !== _a ? _a : [] ];
19
- }, this._modelOption.getDimensionInfoByValue = getDimensionInfoByValue, this._modelOption.getRectByDimensionData = getCartesianCrosshairRect;
20
- }
21
- }
22
-
23
- CombinationCandlestickChart.type = CombinationCandlestickChart_TYPE, CombinationCandlestickChart.transformerConstructor = CombinationCandlestickChartSpecTransformer,
24
- mixin(CombinationCandlestickChart, StackChartMixin);
25
-
26
- export const registerCombinationCandlestickChart = () => {
27
- registerCandlestickSeries(), Factory.registerChart(CombinationCandlestickChart.type, CombinationCandlestickChart);
28
- };
29
- //# sourceMappingURL=combination-candlestick.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/charts/combination-candlestick/combination-candlestick.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC;AACnG,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKzC,MAAM,OAAO,2BAA4B,SAAQ,SAA2C;IAA5F;;QAEW,SAAI,GAAW,gCAAgC,CAAC;QAKhD,2BAAsB,GAAG,0CAA0C,CAAC;IAS/E,CAAC;IAPW,eAAe;QACvB,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,CAAC,KAAyB,EAAE,KAAmB,EAAE,SAAmB,EAAE,EAAE;;YAC3G,OAAO,CAAC,GAAG,CAAC,MAAA,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,sBAAsB,GAAG,yBAAyB,CAAC;IACvE,CAAC;;AAde,gCAAI,GAAW,gCAAgC,CAAC;AAKhD,kDAAsB,GAAG,0CAA0C,CAAC;AAYtF,KAAK,CAAC,2BAA2B,EAAE,eAAe,CAAC,CAAC;AAKpD,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,EAAE;IACtD,yBAAyB,EAAE,CAAC;IAC5B,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;AACvF,CAAC,CAAC","file":"combination-candlestick.js","sourcesContent":["import type { IChart, ILayoutPoint } from '@visactor/vchart';\nimport {\n BaseChart,\n Factory,\n StackChartMixin,\n getCartesianCrosshairRect,\n getCartesianDimensionInfo,\n getDimensionInfoByValue\n} from '@visactor/vchart';\nimport type { ICombinationCandlestickChartSpec } from './interface';\nimport { CombinationCandlestickChart_TYPE } from './constant';\nimport { registerCandlestickSeries } from '../candlestick';\nimport { CombinationCandlestickChartSpecTransformer } from './combination-candlestick-transformer';\nimport { mixin } from '@visactor/vutils';\n\n/**\n * @description 组合蜡烛图\n */\nexport class CombinationCandlestickChart extends BaseChart<ICombinationCandlestickChartSpec> {\n static readonly type: string = CombinationCandlestickChart_TYPE;\n readonly type: string = CombinationCandlestickChart_TYPE;\n\n declare _spec: ICombinationCandlestickChartSpec;\n\n static readonly transformerConstructor = CombinationCandlestickChartSpecTransformer;\n readonly transformerConstructor = CombinationCandlestickChartSpecTransformer;\n\n protected _setModelOption() {\n this._modelOption.getDimensionInfo = (chart: IChart | undefined, point: ILayoutPoint, isTooltip?: boolean) => {\n return [...(getCartesianDimensionInfo(chart, point, isTooltip) ?? [])];\n };\n this._modelOption.getDimensionInfoByValue = getDimensionInfoByValue;\n this._modelOption.getRectByDimensionData = getCartesianCrosshairRect;\n }\n}\n\nmixin(CombinationCandlestickChart, StackChartMixin);\n\n/**\n * @description 注册组合蜡烛图\n */\nexport const registerCombinationCandlestickChart = () => {\n registerCandlestickSeries();\n Factory.registerChart(CombinationCandlestickChart.type, CombinationCandlestickChart);\n};\n"]}
@@ -1 +0,0 @@
1
- export declare const CombinationCandlestickChart_TYPE = "combinationCandlestick";
@@ -1,2 +0,0 @@
1
- export const CombinationCandlestickChart_TYPE = "combinationCandlestick";
2
- //# sourceMappingURL=constant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/charts/combination-candlestick/constant.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gCAAgC,GAAG,wBAAwB,CAAC","file":"constant.js","sourcesContent":["/**\n * @description 常量\n */\nexport const CombinationCandlestickChart_TYPE = 'combinationCandlestick';\n"]}
@@ -1,3 +0,0 @@
1
- export * from './combination-candlestick';
2
- export * from './interface';
3
- export * from './constant';
@@ -1,6 +0,0 @@
1
- export * from "./combination-candlestick";
2
-
3
- export * from "./interface";
4
-
5
- export * from "./constant";
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/charts/combination-candlestick/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC","file":"index.js","sourcesContent":["export * from './combination-candlestick';\nexport * from './interface';\nexport * from './constant';\n"]}
@@ -1,13 +0,0 @@
1
- import type { ICandlestickSeriesSpec } from './../candlestick/series/interface';
2
- import type { IAreaSeriesSpec, IBarSeriesSpec, ILineSeriesSpec, IRegionSpec, ICartesianLinearAxisSpec, ICartesianChartSpec } from '@visactor/vchart';
3
- export type ICombinationCandlestickPreviewSeriesSpec = IBarSeriesSpec | IAreaSeriesSpec | ILineSeriesSpec;
4
- export interface ICombinationCandlestickChartSpec extends Omit<ICartesianChartSpec, 'region'> {
5
- type: 'combinationCandlestick';
6
- series?: (ICombinationCandlestickPreviewSeriesSpec | ICandlestickSeriesSpec)[];
7
- candlestickSeries: ICandlestickSeriesSpec;
8
- candlestickRegion?: IRegionSpec;
9
- previewSeries?: ICombinationCandlestickPreviewSeriesSpec | ICombinationCandlestickPreviewSeriesSpec[];
10
- previewRegion?: IRegionSpec;
11
- previewHeight?: number | ((maxSize: number) => number) | string;
12
- previewAxes?: ICartesianLinearAxisSpec;
13
- }
@@ -1,2 +0,0 @@
1
- export { };
2
- //# sourceMappingURL=interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/charts/combination-candlestick/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICandlestickSeriesSpec } from './../candlestick/series/interface';\nimport type {\n ISeriesSpec,\n IAreaSeriesSpec,\n IBarSeriesSpec,\n ILineSeriesSpec,\n IRegionSpec,\n ICartesianLinearAxisSpec,\n ICartesianChartSpec\n} from '@visactor/vchart';\n\nexport type ICombinationCandlestickPreviewSeriesSpec = IBarSeriesSpec | IAreaSeriesSpec | ILineSeriesSpec;\n\n/**\n * @description 组合蜡烛图规约\n */\nexport interface ICombinationCandlestickChartSpec extends Omit<ICartesianChartSpec, 'region'> {\n type: 'combinationCandlestick';\n\n /** 与蜡烛图使用同region的系列配置 */\n series?: (ICombinationCandlestickPreviewSeriesSpec | ICandlestickSeriesSpec)[];\n\n // 蜡烛系列 必须配置数据 不可以为数组\n candlestickSeries: ICandlestickSeriesSpec;\n candlestickRegion?: IRegionSpec;\n\n // 预览系列 必须配置数据 不可以为数组\n previewSeries?: ICombinationCandlestickPreviewSeriesSpec | ICombinationCandlestickPreviewSeriesSpec[];\n previewRegion?: IRegionSpec;\n // 预览图高度 可以是数字,返回数字的函数,或者百分百字符串 '30%'\n previewHeight?: number | ((maxSize: number) => number) | string;\n\n /** 预览系列的数值轴, y轴 */\n previewAxes?: ICartesianLinearAxisSpec;\n}\n"]}