@visactor/vrender-components 0.19.6-alpha.3 → 0.19.7-alpha.0

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 (52) hide show
  1. package/cjs/axis/util.js +2 -1
  2. package/cjs/brush/type.js +1 -2
  3. package/cjs/index.d.ts +1 -1
  4. package/cjs/index.js +1 -1
  5. package/cjs/index.js.map +1 -1
  6. package/cjs/marker/common-line.js +1 -1
  7. package/cjs/marker/common-line.js.map +1 -1
  8. package/cjs/marker/config.d.ts +1 -0
  9. package/cjs/marker/config.js +54 -6
  10. package/cjs/marker/config.js.map +1 -1
  11. package/cjs/marker/line.js +5 -9
  12. package/cjs/marker/line.js.map +1 -1
  13. package/cjs/marker/point.d.ts +4 -3
  14. package/cjs/marker/point.js +34 -29
  15. package/cjs/marker/point.js.map +1 -1
  16. package/cjs/marker/type.d.ts +8 -2
  17. package/cjs/marker/type.js +7 -4
  18. package/cjs/marker/type.js.map +1 -1
  19. package/cjs/segment/arc-segment.js +4 -4
  20. package/cjs/segment/arc-segment.js.map +1 -1
  21. package/cjs/segment/segment.js +6 -6
  22. package/cjs/segment/segment.js.map +1 -1
  23. package/cjs/util/common.d.ts +7 -2
  24. package/cjs/util/common.js +17 -7
  25. package/cjs/util/common.js.map +1 -1
  26. package/dist/index.es.js +978 -1327
  27. package/es/axis/util.js +2 -1
  28. package/es/brush/type.js +1 -2
  29. package/es/index.d.ts +1 -1
  30. package/es/index.js +1 -1
  31. package/es/index.js.map +1 -1
  32. package/es/marker/common-line.js +1 -1
  33. package/es/marker/common-line.js.map +1 -1
  34. package/es/marker/config.d.ts +1 -0
  35. package/es/marker/config.js +54 -4
  36. package/es/marker/config.js.map +1 -1
  37. package/es/marker/line.js +5 -11
  38. package/es/marker/line.js.map +1 -1
  39. package/es/marker/point.d.ts +4 -3
  40. package/es/marker/point.js +30 -29
  41. package/es/marker/point.js.map +1 -1
  42. package/es/marker/type.d.ts +8 -2
  43. package/es/marker/type.js +7 -4
  44. package/es/marker/type.js.map +1 -1
  45. package/es/segment/arc-segment.js +4 -4
  46. package/es/segment/arc-segment.js.map +1 -1
  47. package/es/segment/segment.js +7 -5
  48. package/es/segment/segment.js.map +1 -1
  49. package/es/util/common.d.ts +7 -2
  50. package/es/util/common.js +14 -4
  51. package/es/util/common.js.map +1 -1
  52. package/package.json +10 -9
package/es/axis/util.js CHANGED
@@ -65,4 +65,5 @@ export function getPolarAngleLabelPosition(angle, center, radius, labelOffset, i
65
65
  y: 0
66
66
  }, radius, angle), labelPoint = getVerticalCoord(point, getCircleVerticalVector(labelOffset, point, center, inside));
67
67
  return getCircleLabelPosition(labelPoint, getCircleVerticalVector(labelOffset || 1, labelPoint, center, inside), text, style);
68
- }
68
+ }
69
+ //# sourceMappingURL=util.js.map
package/es/brush/type.js CHANGED
@@ -4,5 +4,4 @@ export var IOperateType;
4
4
  IOperateType.drawStart = "drawStart", IOperateType.drawEnd = "drawEnd", IOperateType.drawing = "drawing",
5
5
  IOperateType.moving = "moving", IOperateType.moveStart = "moveStart", IOperateType.moveEnd = "moveEnd",
6
6
  IOperateType.brushClear = "brushClear";
7
- }(IOperateType || (IOperateType = {}));
8
- //# sourceMappingURL=type.js.map
7
+ }(IOperateType || (IOperateType = {}));
package/es/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const version = "0.19.6-alpha.3";
1
+ export declare const version = "0.19.7-alpha.0";
2
2
  export * from './core/base';
3
3
  export * from './core/type';
4
4
  export * from './scrollbar';
package/es/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export const version = "0.19.6-alpha.3";
1
+ export const version = "0.19.7-alpha.0";
2
2
 
3
3
  export * from "./core/base";
4
4
 
package/es/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAExC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC","file":"index.js","sourcesContent":["// 导出版本号\nexport const version = \"0.19.6-alpha.3\";\n\nexport * from './core/base';\nexport * from './core/type';\nexport * from './scrollbar';\nexport * from './tag';\nexport * from './poptip';\nexport * from './crosshair';\nexport * from './label';\nexport * from './axis';\nexport * from './axis/grid';\nexport * from './segment';\nexport * from './data-zoom';\nexport * from './marker';\nexport * from './pager';\nexport * from './legend';\nexport * from './title';\nexport * from './indicator';\nexport * from './slider';\nexport * from './link-path';\nexport * from './player';\nexport * from './brush';\nexport * from './tooltip';\nexport * from './interface';\nexport * from './jsx';\nexport * from './checkbox';\nexport * from './radio';\nexport * from './empty-tip';\nexport * from './util';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAExC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC","file":"index.js","sourcesContent":["// 导出版本号\nexport const version = \"0.19.7-alpha.0\";\n\nexport * from './core/base';\nexport * from './core/type';\nexport * from './scrollbar';\nexport * from './tag';\nexport * from './poptip';\nexport * from './crosshair';\nexport * from './label';\nexport * from './axis';\nexport * from './axis/grid';\nexport * from './segment';\nexport * from './data-zoom';\nexport * from './marker';\nexport * from './pager';\nexport * from './legend';\nexport * from './title';\nexport * from './indicator';\nexport * from './slider';\nexport * from './link-path';\nexport * from './player';\nexport * from './brush';\nexport * from './tooltip';\nexport * from './interface';\nexport * from './jsx';\nexport * from './checkbox';\nexport * from './radio';\nexport * from './empty-tip';\nexport * from './util';\n"]}
@@ -22,7 +22,7 @@ export class MarkCommonLine extends Marker {
22
22
  return this._label;
23
23
  }
24
24
  setLabelPos() {
25
- const {label: label = {}, limitRect: limitRect} = this.attribute, {position: position, confine: confine, autoRotate: autoRotate} = label, labelPoint = this.getPointAttrByPosition(position), labelAngle = this._line.getEndAngle() || 0;
25
+ const {label: label = {}, limitRect: limitRect} = this.attribute, {position: position, confine: confine, autoRotate: autoRotate} = label, labelPoint = this.getPointAttrByPosition(position), labelAngle = position.toString().toLocaleLowerCase().includes("start") ? this._line.getStartAngle() || 0 : this._line.getEndAngle() || 0;
26
26
  if (this._label.setAttributes(Object.assign(Object.assign({}, labelPoint.position), {
27
27
  angle: autoRotate ? this.getRotateByAngle(labelPoint.angle) : 0,
28
28
  textStyle: Object.assign(Object.assign({}, this.getTextStyle(position, labelAngle, autoRotate)), label.textStyle)
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/marker/common-line.ts"],"names":[],"mappings":"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","file":"common-line.js","sourcesContent":["import type { IGroup, INode } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { ArcSegment, Segment } from '../segment';\nimport type { TagAttributes } from '../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../tag';\nimport type { MarkCommonLineAnimationType, MarkCommonLineAttrs, MarkerAnimationState } from './type';\nimport { limitShapeInBounds } from '../util/limit-shape';\nimport { DEFAULT_STATES } from '../constant';\nimport { Marker } from './base';\nimport { DefaultExitMarkerAnimation, DefaultUpdateMarkLineAnimation } from './animate/animate';\n\nexport abstract class MarkCommonLine<LineAttr, LabelPosition> extends Marker<\n MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>,\n MarkCommonLineAnimationType\n> {\n name = 'markCommonLine';\n\n /** animate */\n static _animate?: (line: Segment | ArcSegment, label: Tag, animationConfig: any, state: MarkerAnimationState) => void;\n defaultUpdateAnimation = DefaultUpdateMarkLineAnimation;\n defaultExitAnimation = DefaultExitMarkerAnimation;\n\n protected _line!: Segment | ArcSegment;\n protected abstract createSegment(): any;\n protected abstract setLineAttributes(): any;\n protected abstract getPointAttrByPosition(position: any): any;\n protected abstract getRotateByAngle(angle: number): number;\n protected abstract getTextStyle(position: any, labelAngle: number, autoRotate: boolean): any;\n protected abstract markerAnimate(state: MarkerAnimationState): void;\n\n getLine() {\n return this._line;\n }\n getLabel() {\n return this._label;\n }\n\n protected setLabelPos(): void {\n const { label = {}, limitRect } = this.attribute;\n const { position, confine, autoRotate } = label;\n const labelPoint = this.getPointAttrByPosition(position);\n const labelAngle = this._line.getEndAngle() || 0;\n this._label.setAttributes({\n ...labelPoint.position,\n angle: autoRotate ? this.getRotateByAngle(labelPoint.angle) : 0,\n textStyle: {\n ...this.getTextStyle(position, labelAngle, autoRotate),\n ...label.textStyle\n }\n });\n if (limitRect && confine) {\n const { x, y, width, height } = limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n\n protected initMarker(container: IGroup) {\n const { label, state } = this.attribute as MarkCommonLineAttrs<\n LineAttr,\n LabelPosition,\n MarkCommonLineAnimationType\n >;\n const line = this.createSegment();\n line.name = 'mark-common-line-line';\n this._line = line;\n container.add(line as unknown as INode);\n\n const markLabel = new Tag({\n ...(label as TagAttributes),\n state: {\n panel: merge({}, DEFAULT_STATES, state?.labelBackground),\n text: merge({}, DEFAULT_STATES, state?.label)\n }\n });\n markLabel.name = 'mark-common-line-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { label, state } = this.attribute as MarkCommonLineAttrs<\n LineAttr,\n LabelPosition,\n MarkCommonLineAnimationType\n >;\n\n this.setLineAttributes();\n\n if (this._label) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes),\n state: {\n panel: merge({}, DEFAULT_STATES, state?.labelBackground),\n text: merge({}, DEFAULT_STATES, state?.label)\n }\n });\n this.setLabelPos();\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/marker/common-line.ts"],"names":[],"mappings":"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","file":"common-line.js","sourcesContent":["import type { IGroup, INode } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { ArcSegment, Segment } from '../segment';\nimport type { TagAttributes } from '../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../tag';\nimport type { MarkCommonLineAnimationType, MarkCommonLineAttrs, MarkerAnimationState } from './type';\nimport { limitShapeInBounds } from '../util/limit-shape';\nimport { DEFAULT_STATES } from '../constant';\nimport { Marker } from './base';\nimport { DefaultExitMarkerAnimation, DefaultUpdateMarkLineAnimation } from './animate/animate';\n\nexport abstract class MarkCommonLine<LineAttr, LabelPosition> extends Marker<\n MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>,\n MarkCommonLineAnimationType\n> {\n name = 'markCommonLine';\n\n /** animate */\n static _animate?: (line: Segment | ArcSegment, label: Tag, animationConfig: any, state: MarkerAnimationState) => void;\n defaultUpdateAnimation = DefaultUpdateMarkLineAnimation;\n defaultExitAnimation = DefaultExitMarkerAnimation;\n\n protected _line!: Segment | ArcSegment;\n protected abstract createSegment(): any;\n protected abstract setLineAttributes(): any;\n protected abstract getPointAttrByPosition(position: any): any;\n protected abstract getRotateByAngle(angle: number): number;\n protected abstract getTextStyle(position: any, labelAngle: number, autoRotate: boolean): any;\n protected abstract markerAnimate(state: MarkerAnimationState): void;\n\n getLine() {\n return this._line;\n }\n getLabel() {\n return this._label;\n }\n\n protected setLabelPos(): void {\n const { label = {}, limitRect } = this.attribute;\n const { position, confine, autoRotate } = label;\n const labelPoint = this.getPointAttrByPosition(position);\n const labelAngle = position.toString().toLocaleLowerCase().includes('start')\n ? this._line.getStartAngle() || 0\n : this._line.getEndAngle() || 0;\n this._label.setAttributes({\n ...labelPoint.position,\n angle: autoRotate ? this.getRotateByAngle(labelPoint.angle) : 0,\n textStyle: {\n ...this.getTextStyle(position, labelAngle, autoRotate),\n ...label.textStyle\n }\n });\n if (limitRect && confine) {\n const { x, y, width, height } = limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n\n protected initMarker(container: IGroup) {\n const { label, state } = this.attribute as MarkCommonLineAttrs<\n LineAttr,\n LabelPosition,\n MarkCommonLineAnimationType\n >;\n const line = this.createSegment();\n line.name = 'mark-common-line-line';\n this._line = line;\n container.add(line as unknown as INode);\n\n const markLabel = new Tag({\n ...(label as TagAttributes),\n state: {\n panel: merge({}, DEFAULT_STATES, state?.labelBackground),\n text: merge({}, DEFAULT_STATES, state?.label)\n }\n });\n markLabel.name = 'mark-common-line-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { label, state } = this.attribute as MarkCommonLineAttrs<\n LineAttr,\n LabelPosition,\n MarkCommonLineAnimationType\n >;\n\n this.setLineAttributes();\n\n if (this._label) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes),\n state: {\n panel: merge({}, DEFAULT_STATES, state?.labelBackground),\n text: merge({}, DEFAULT_STATES, state?.label)\n }\n });\n this.setLabelPos();\n }\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { TextAlignType, TextBaselineType } from '@visactor/vrender-core';
2
2
  import { IMarkAreaLabelPosition, IMarkLineLabelPosition, IMarkCommonArcLabelPosition } from './type';
3
+ export declare const FUZZY_EQUAL_DELTA = 0.001;
3
4
  export declare const DEFAULT_MARK_LINE_THEME: {
4
5
  interactive: boolean;
5
6
  startSymbol: {
@@ -1,5 +1,7 @@
1
1
  import { IMarkAreaLabelPosition, IMarkLineLabelPosition, IMarkCommonArcLabelPosition } from "./type";
2
2
 
3
+ export const FUZZY_EQUAL_DELTA = .001;
4
+
3
5
  export const DEFAULT_MARK_LINE_THEME = {
4
6
  interactive: !0,
5
7
  startSymbol: {
@@ -47,15 +49,27 @@ export const DEFAULT_MARK_LINE_THEME = {
47
49
  export const DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP = {
48
50
  postiveXAxis: {
49
51
  start: {
52
+ textAlign: "left",
53
+ textBaseline: "middle"
54
+ },
55
+ startTop: {
56
+ textAlign: "left",
57
+ textBaseline: "bottom"
58
+ },
59
+ startBottom: {
60
+ textAlign: "left",
61
+ textBaseline: "top"
62
+ },
63
+ insideStart: {
50
64
  textAlign: "right",
51
65
  textBaseline: "middle"
52
66
  },
53
67
  insideStartTop: {
54
- textAlign: "left",
68
+ textAlign: "right",
55
69
  textBaseline: "bottom"
56
70
  },
57
71
  insideStartBottom: {
58
- textAlign: "left",
72
+ textAlign: "right",
59
73
  textBaseline: "top"
60
74
  },
61
75
  middle: {
@@ -74,6 +88,18 @@ export const DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP = {
74
88
  textAlign: "left",
75
89
  textBaseline: "middle"
76
90
  },
91
+ endTop: {
92
+ textAlign: "left",
93
+ textBaseline: "bottom"
94
+ },
95
+ endBottom: {
96
+ textAlign: "left",
97
+ textBaseline: "top"
98
+ },
99
+ insideEnd: {
100
+ textAlign: "right",
101
+ textBaseline: "middle"
102
+ },
77
103
  insideEndTop: {
78
104
  textAlign: "right",
79
105
  textBaseline: "bottom"
@@ -85,15 +111,27 @@ export const DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP = {
85
111
  },
86
112
  negativeXAxis: {
87
113
  start: {
114
+ textAlign: "right",
115
+ textBaseline: "middle"
116
+ },
117
+ startTop: {
118
+ textAlign: "right",
119
+ textBaseline: "bottom"
120
+ },
121
+ startBottom: {
122
+ textAlign: "right",
123
+ textBaseline: "top"
124
+ },
125
+ insideStart: {
88
126
  textAlign: "left",
89
127
  textBaseline: "middle"
90
128
  },
91
129
  insideStartTop: {
92
- textAlign: "right",
130
+ textAlign: "left",
93
131
  textBaseline: "bottom"
94
132
  },
95
133
  insideStartBottom: {
96
- textAlign: "right",
134
+ textAlign: "left",
97
135
  textBaseline: "top"
98
136
  },
99
137
  middle: {
@@ -112,6 +150,18 @@ export const DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP = {
112
150
  textAlign: "right",
113
151
  textBaseline: "middle"
114
152
  },
153
+ endTop: {
154
+ textAlign: "right",
155
+ textBaseline: "bottom"
156
+ },
157
+ endBottom: {
158
+ textAlign: "right",
159
+ textBaseline: "top"
160
+ },
161
+ insideEnd: {
162
+ textAlign: "left",
163
+ textBaseline: "middle"
164
+ },
115
165
  insideEndTop: {
116
166
  textAlign: "left",
117
167
  textBaseline: "bottom"
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/marker/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["import type { TextAlignType, TextBaselineType } from '@visactor/vrender-core';\nimport { IMarkAreaLabelPosition, IMarkLineLabelPosition, IMarkCommonArcLabelPosition } from './type';\n\nexport const DEFAULT_MARK_LINE_THEME = {\n interactive: true,\n startSymbol: {\n visible: false,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n endSymbol: {\n visible: true,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n label: {\n position: IMarkLineLabelPosition.end,\n refX: 0,\n refY: 0,\n refAngle: 0,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n};\n\nexport const DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP: {\n [K: string]: {\n [T: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n };\n} = {\n postiveXAxis: {\n start: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideStartTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideStartBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n insideMiddleTop: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideMiddleBottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n end: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideEndTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideEndBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n }\n },\n negativeXAxis: {\n start: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideStartTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideStartBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n insideMiddleTop: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideMiddleBottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n end: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideEndTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideEndBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n }\n }\n};\n\nexport const DEFAULT_MARK_ARC_LINE_THEME = {\n interactive: true,\n startSymbol: {\n visible: false,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n endSymbol: {\n visible: true,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n label: {\n position: IMarkCommonArcLabelPosition.arcOuterMiddle,\n refX: 0,\n refY: 0,\n refAngle: 0,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n};\n\nexport const DEFAULT_MARK_AREA_THEME = {\n interactive: true,\n label: {\n position: IMarkAreaLabelPosition.right,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n areaStyle: {\n fill: '#b2bacf',\n visible: true\n }\n};\n\nexport const DEFAULT_MARK_ARC_AREA_THEME = {\n interactive: true,\n label: {\n position: IMarkCommonArcLabelPosition.arcOuterMiddle,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n areaStyle: {\n fill: '#b2bacf',\n visible: true\n }\n};\n\nexport const DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP: {\n [K: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n} = {\n arcInnerStart: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n arcInnerEnd: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n\n arcInnerMiddle: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n arcOuterStart: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n arcOuterEnd: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n arcOuterMiddle: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n center: {\n textAlign: 'center',\n textBaseline: 'middle'\n }\n};\n\nexport const DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP: {\n [K: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n} = {\n left: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideLeft: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n\n right: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideRight: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n\n top: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideTop: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n bottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n insideBottom: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n }\n};\n\nexport const DEFAULT_MARK_POINT_THEME = {\n interactive: true,\n targetSymbol: {\n visible: false,\n offset: 0,\n style: {\n symbolType: 'circle',\n size: 20,\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n itemLine: {\n visible: true,\n decorativeLine: {\n visible: false,\n length: 30\n },\n startSymbol: {\n visible: true,\n clip: true,\n symbolType: 'circle',\n size: 20,\n style: {\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n endSymbol: {\n visible: false,\n clip: true,\n symbolType: 'triangle',\n size: 12,\n style: {\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n lineStyle: {\n stroke: '#000',\n lineWidth: 1\n }\n },\n itemContent: {\n type: 'text',\n position: 'middle',\n refX: 10,\n symbolStyle: {\n symbolType: 'star',\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8,\n size: 20\n },\n textStyle: {\n dx: 0,\n dy: 0\n },\n imageStyle: {\n width: 80,\n height: 80\n },\n richTextStyle: {\n width: 100,\n height: 100\n }\n }\n};\n\nexport const DEFAULT_MARK_POINT_TEXT_STYLE_MAP: {\n [K: string]: {\n [T: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n };\n} = {\n postiveXAxis: {\n top: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n bottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n middle: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideMiddle: {\n textAlign: 'right',\n textBaseline: 'middle'\n }\n },\n negativeXAxis: {\n top: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n bottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n middle: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideMiddle: {\n textAlign: 'left',\n textBaseline: 'middle'\n }\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/marker/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["import type { TextAlignType, TextBaselineType } from '@visactor/vrender-core';\nimport { IMarkAreaLabelPosition, IMarkLineLabelPosition, IMarkCommonArcLabelPosition } from './type';\n\nexport const FUZZY_EQUAL_DELTA = 0.001;\nexport const DEFAULT_MARK_LINE_THEME = {\n interactive: true,\n startSymbol: {\n visible: false,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n endSymbol: {\n visible: true,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n label: {\n position: IMarkLineLabelPosition.end,\n refX: 0,\n refY: 0,\n refAngle: 0,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n};\n\nexport const DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP: {\n [K: string]: {\n [T: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n };\n} = {\n postiveXAxis: {\n start: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n startTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n startBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideStart: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideStartTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideStartBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n insideMiddleTop: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideMiddleBottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n end: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n endTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n endBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideEnd: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideEndTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideEndBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n }\n },\n negativeXAxis: {\n start: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n startTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n startBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideStart: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideStartTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideStartBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n insideMiddleTop: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideMiddleBottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n end: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n endTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n endBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideEnd: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideEndTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideEndBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n }\n }\n};\n\nexport const DEFAULT_MARK_ARC_LINE_THEME = {\n interactive: true,\n startSymbol: {\n visible: false,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n endSymbol: {\n visible: true,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n label: {\n position: IMarkCommonArcLabelPosition.arcOuterMiddle,\n refX: 0,\n refY: 0,\n refAngle: 0,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n};\n\nexport const DEFAULT_MARK_AREA_THEME = {\n interactive: true,\n label: {\n position: IMarkAreaLabelPosition.right,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n areaStyle: {\n fill: '#b2bacf',\n visible: true\n }\n};\n\nexport const DEFAULT_MARK_ARC_AREA_THEME = {\n interactive: true,\n label: {\n position: IMarkCommonArcLabelPosition.arcOuterMiddle,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n areaStyle: {\n fill: '#b2bacf',\n visible: true\n }\n};\n\nexport const DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP: {\n [K: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n} = {\n arcInnerStart: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n arcInnerEnd: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n\n arcInnerMiddle: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n arcOuterStart: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n arcOuterEnd: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n arcOuterMiddle: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n center: {\n textAlign: 'center',\n textBaseline: 'middle'\n }\n};\n\nexport const DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP: {\n [K: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n} = {\n left: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideLeft: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n\n right: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideRight: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n\n top: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideTop: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n bottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n insideBottom: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n }\n};\n\nexport const DEFAULT_MARK_POINT_THEME = {\n interactive: true,\n targetSymbol: {\n visible: false,\n offset: 0,\n style: {\n symbolType: 'circle',\n size: 20,\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n itemLine: {\n visible: true,\n decorativeLine: {\n visible: false,\n length: 30\n },\n startSymbol: {\n visible: true,\n clip: true,\n symbolType: 'circle',\n size: 20,\n style: {\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n endSymbol: {\n visible: false,\n clip: true,\n symbolType: 'triangle',\n size: 12,\n style: {\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n lineStyle: {\n stroke: '#000',\n lineWidth: 1\n }\n },\n itemContent: {\n type: 'text',\n position: 'middle',\n refX: 10,\n symbolStyle: {\n symbolType: 'star',\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8,\n size: 20\n },\n textStyle: {\n dx: 0,\n dy: 0\n },\n imageStyle: {\n width: 80,\n height: 80\n },\n richTextStyle: {\n width: 100,\n height: 100\n }\n }\n};\n\nexport const DEFAULT_MARK_POINT_TEXT_STYLE_MAP: {\n [K: string]: {\n [T: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n };\n} = {\n postiveXAxis: {\n top: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n bottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n middle: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideMiddle: {\n textAlign: 'right',\n textBaseline: 'middle'\n }\n },\n negativeXAxis: {\n top: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n bottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n middle: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideMiddle: {\n textAlign: 'left',\n textBaseline: 'middle'\n }\n }\n};\n"]}
package/es/marker/line.js CHANGED
@@ -8,11 +8,11 @@ import { Segment } from "../segment";
8
8
 
9
9
  import { DEFAULT_STATES } from "../constant";
10
10
 
11
- import { DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP, DEFAULT_MARK_LINE_THEME } from "./config";
11
+ import { DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP, DEFAULT_MARK_LINE_THEME, FUZZY_EQUAL_DELTA } from "./config";
12
12
 
13
13
  import { markCommonLineAnimate } from "./animate/animate";
14
14
 
15
- import { isPostiveXAxisCartes } from "../util";
15
+ import { fuzzyEqualNumber, getTextAlignAttrOfVerticalDir, isPostiveXAxis } from "../util";
16
16
 
17
17
  loadMarkLineComponent();
18
18
 
@@ -30,7 +30,7 @@ export class MarkLine extends MarkCommonLine {
30
30
  }
31
31
  getPointAttrByPosition(position) {
32
32
  var _a;
33
- const {label: label = {}} = this.attribute, {refX: refX = 0, refY: refY = 0} = label, points = this._line.getMainSegmentPoints(), lineEndAngle = null !== (_a = this._line.getEndAngle()) && void 0 !== _a ? _a : 0, labelAngle = (isPostiveXAxisCartes(lineEndAngle),
33
+ const {label: label = {}} = this.attribute, {refX: refX = 0, refY: refY = 0} = label, points = this._line.getMainSegmentPoints(), lineEndAngle = null !== (_a = this._line.getEndAngle()) && void 0 !== _a ? _a : 0, labelAngle = (isPostiveXAxis(lineEndAngle),
34
34
  lineEndAngle), labelOffsetX = refX * Math.cos(labelAngle) + refY * Math.cos(labelAngle - Math.PI / 2), labelOffsetY = refX * Math.sin(labelAngle) + refY * Math.sin(labelAngle - Math.PI / 2);
35
35
  return position.includes("start") || position.includes("Start") ? {
36
36
  position: {
@@ -54,16 +54,10 @@ export class MarkLine extends MarkCommonLine {
54
54
  }
55
55
  getRotateByAngle(angle) {
56
56
  var _a;
57
- return (isPostiveXAxisCartes(angle) ? angle : angle - Math.PI) + (null !== (_a = this.attribute.label.refAngle) && void 0 !== _a ? _a : 0);
57
+ return (isPostiveXAxis(angle) ? angle : angle - Math.PI) + (null !== (_a = this.attribute.label.refAngle) && void 0 !== _a ? _a : 0);
58
58
  }
59
59
  getTextStyle(position, labelAngle, autoRotate) {
60
- return Math.abs(Math.abs(labelAngle) - Math.PI / 2) < 1e-4 ? autoRotate ? {
61
- textAlign: "right",
62
- textBaseline: "middle"
63
- } : {
64
- textAlign: "center",
65
- textBaseline: labelAngle > 0 && position.includes("inside") || labelAngle < 0 && !position.includes("inside") ? "bottom" : "top"
66
- } : isPostiveXAxisCartes(labelAngle) ? DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.postiveXAxis[position] : DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.negativeXAxis[position];
60
+ return fuzzyEqualNumber(Math.abs(labelAngle), Math.PI / 2, FUZZY_EQUAL_DELTA) || fuzzyEqualNumber(Math.abs(labelAngle), 3 * Math.PI / 2, FUZZY_EQUAL_DELTA) ? getTextAlignAttrOfVerticalDir(autoRotate, labelAngle, position) : isPostiveXAxis(labelAngle) ? DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.postiveXAxis[position] : DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.negativeXAxis[position];
67
61
  }
68
62
  createSegment() {
69
63
  const {points: points, startSymbol: startSymbol, endSymbol: endSymbol, lineStyle: lineStyle, mainSegmentIndex: mainSegmentIndex, multiSegment: multiSegment, state: state} = this.attribute;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/marker/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport type { IMarkLineLabelPosition } from './type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { MarkLineAttrs, MarkerAnimationState } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadMarkLineComponent } from './register';\nimport type { Point } from '../core/type';\nimport { MarkCommonLine } from './common-line';\nimport type { ArcSegment } from '../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport { Segment } from '../segment';\nimport { DEFAULT_STATES } from '../constant';\nimport { DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP, DEFAULT_MARK_LINE_THEME } from './config';\nimport type { ILineGraphicAttribute } from '@visactor/vrender-core';\nimport { markCommonLineAnimate } from './animate/animate';\nimport { isPostiveXAxisCartes } from '../util';\n\nloadMarkLineComponent();\n\nexport function registerMarkLineAnimate() {\n MarkLine._animate = markCommonLineAnimate;\n}\n\nexport class MarkLine extends MarkCommonLine<ILineGraphicAttribute, IMarkLineLabelPosition> {\n name = 'markLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<MarkLineAttrs> = DEFAULT_MARK_LINE_THEME as unknown as MarkLineAttrs;\n protected _line!: Segment | ArcSegment;\n\n /** animate */\n protected markerAnimate(state: MarkerAnimationState) {\n if (MarkLine._animate && this._animationConfig) {\n MarkLine._animate(this._line, this._label, this._animationConfig, state);\n }\n }\n\n constructor(attributes: MarkLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, MarkLine.defaultAttributes, attributes));\n }\n\n protected getPointAttrByPosition(position: IMarkLineLabelPosition) {\n const { label = {} } = this.attribute;\n const { refX = 0, refY = 0 } = label;\n const points = this._line.getMainSegmentPoints();\n const lineEndAngle = this._line.getEndAngle() ?? 0;\n const labelAngle = isPostiveXAxisCartes(lineEndAngle) ? lineEndAngle : lineEndAngle;\n\n const labelOffsetX = refX * Math.cos(labelAngle) + refY * Math.cos(labelAngle - Math.PI / 2);\n const labelOffsetY = refX * Math.sin(labelAngle) + refY * Math.sin(labelAngle - Math.PI / 2);\n\n if (position.includes('start') || position.includes('Start')) {\n return {\n position: {\n x: points[0].x + labelOffsetX,\n y: points[0].y + labelOffsetY\n },\n angle: labelAngle\n };\n } else if (position.includes('middle') || position.includes('Middle')) {\n return {\n position: {\n x: (points[0].x + points[points.length - 1].x) / 2 + labelOffsetX,\n y: (points[0].y + points[points.length - 1].y) / 2 + labelOffsetY\n },\n angle: labelAngle\n };\n }\n return {\n position: {\n x: points[points.length - 1].x + labelOffsetX,\n y: points[points.length - 1].y + labelOffsetY\n },\n angle: labelAngle\n };\n }\n\n protected getRotateByAngle(angle: number): number {\n const itemAngle = isPostiveXAxisCartes(angle) ? angle : angle - Math.PI;\n return itemAngle + (this.attribute.label.refAngle ?? 0);\n }\n\n protected getTextStyle(position: IMarkLineLabelPosition, labelAngle: number, autoRotate: boolean) {\n // 垂直方向例外\n if (Math.abs(Math.abs(labelAngle) - Math.PI / 2) < 0.0001) {\n if (autoRotate) {\n return {\n textAlign: 'right',\n textBaseline: 'middle'\n };\n }\n return {\n textAlign: 'center',\n textBaseline:\n (labelAngle > 0 && position.includes('inside')) || (labelAngle < 0 && !position.includes('inside'))\n ? 'bottom'\n : 'top'\n };\n }\n\n if (isPostiveXAxisCartes(labelAngle)) {\n return DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.postiveXAxis[position];\n }\n return DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.negativeXAxis[position];\n }\n\n protected createSegment() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as MarkLineAttrs;\n return new Segment({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n pickable: false, // 组件容器本身不参与拾取\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n\n protected setLineAttributes() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as MarkLineAttrs;\n if (this._line) {\n this._line.setAttributes({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as MarkLineAttrs;\n if (!points || points.length < 2) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point | Point[]) => {\n if ((point as any).length) {\n (point as Point[]).forEach((p: Point) => {\n if (!isValidNumber((p as Point).x) || !isValidNumber((p as Point).y)) {\n validFlag = false;\n return;\n }\n });\n } else if (!isValidNumber((point as Point).x) || !isValidNumber((point as Point).y)) {\n validFlag = false;\n return;\n }\n });\n return validFlag;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/marker/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,0CAA0C,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE1F,qBAAqB,EAAE,CAAC;AAExB,MAAM,UAAU,uBAAuB;IACrC,QAAQ,CAAC,QAAQ,GAAG,qBAAqB,CAAC;AAC5C,CAAC;AAED,MAAM,OAAO,QAAS,SAAQ,cAA6D;IAO/E,aAAa,CAAC,KAA2B;QACjD,IAAI,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC9C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SAC1E;IACH,CAAC;IAED,YAAY,UAAyB,EAAE,OAA0B;QAC/D,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;QAb/F,SAAI,GAAG,UAAU,CAAC;IAclB,CAAC;IAES,sBAAsB,CAAC,QAAgC;;QAC/D,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,mCAAI,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QAE9E,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7F,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAE7F,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5D,OAAO;gBACL,QAAQ,EAAE;oBACR,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;oBAC7B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;iBAC9B;gBACD,KAAK,EAAE,UAAU;aAClB,CAAC;SACH;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACrE,OAAO;gBACL,QAAQ,EAAE;oBACR,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY;oBACjE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY;iBAClE;gBACD,KAAK,EAAE,UAAU;aAClB,CAAC;SACH;QACD,OAAO;YACL,QAAQ,EAAE;gBACR,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;gBAC7C,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;aAC9C;YACD,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC;IAES,gBAAgB,CAAC,KAAa;;QACtC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;QAClE,OAAO,SAAS,GAAG,CAAC,MAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,mCAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAES,YAAY,CAAC,QAAgC,EAAE,UAAkB,EAAE,UAAmB;QAE9F,IACE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,iBAAiB,CAAC;YACtE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,EAC5E;YACA,OAAO,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACxE;QAED,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE;YAC9B,OAAO,0CAA0C,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SAC1E;QACD,OAAO,0CAA0C,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAES,aAAa;QACrB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI;aAC9F,SAA0B,CAAC;QAC9B,OAAO,IAAI,OAAO,CAAC;YACjB,MAAM;YACN,WAAW;YACX,SAAS;YACT,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC;gBAC5C,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,CAAC;gBAC9D,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,CAAC;aAC3D;SACF,CAAC,CAAC;IACL,CAAC;IAES,iBAAiB;QACzB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI;aAC9F,SAA0B,CAAC;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;gBACvB,MAAM;gBACN,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,gBAAgB;gBAChB,YAAY;gBACZ,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC;oBAC5C,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,CAAC;oBAC9D,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,CAAC;iBAC3D;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAES,aAAa;QACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAA0B,CAAC;QACnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAsB,EAAE,EAAE;YACxC,IAAK,KAAa,CAAC,MAAM,EAAE;gBACxB,KAAiB,CAAC,OAAO,CAAC,CAAC,CAAQ,EAAE,EAAE;oBACtC,IAAI,CAAC,aAAa,CAAE,CAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAE,CAAW,CAAC,CAAC,CAAC,EAAE;wBACpE,SAAS,GAAG,KAAK,CAAC;wBAClB,OAAO;qBACR;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,CAAC,aAAa,CAAE,KAAe,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAE,KAAe,CAAC,CAAC,CAAC,EAAE;gBACnF,SAAS,GAAG,KAAK,CAAC;gBAClB,OAAO;aACR;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;;AAjIM,0BAAiB,GAA2B,uBAAmD,CAAC","file":"line.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport type { IMarkLineLabelPosition } from './type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { MarkLineAttrs, MarkerAnimationState } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadMarkLineComponent } from './register';\nimport type { Point } from '../core/type';\nimport { MarkCommonLine } from './common-line';\nimport type { ArcSegment } from '../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport { Segment } from '../segment';\nimport { DEFAULT_STATES } from '../constant';\nimport { DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP, DEFAULT_MARK_LINE_THEME, FUZZY_EQUAL_DELTA } from './config';\nimport type { ILineGraphicAttribute } from '@visactor/vrender-core';\nimport { markCommonLineAnimate } from './animate/animate';\nimport { fuzzyEqualNumber, getTextAlignAttrOfVerticalDir, isPostiveXAxis } from '../util';\n\nloadMarkLineComponent();\n\nexport function registerMarkLineAnimate() {\n MarkLine._animate = markCommonLineAnimate;\n}\n\nexport class MarkLine extends MarkCommonLine<ILineGraphicAttribute, IMarkLineLabelPosition> {\n name = 'markLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<MarkLineAttrs> = DEFAULT_MARK_LINE_THEME as unknown as MarkLineAttrs;\n protected _line!: Segment | ArcSegment;\n\n /** animate */\n protected markerAnimate(state: MarkerAnimationState) {\n if (MarkLine._animate && this._animationConfig) {\n MarkLine._animate(this._line, this._label, this._animationConfig, state);\n }\n }\n\n constructor(attributes: MarkLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, MarkLine.defaultAttributes, attributes));\n }\n\n protected getPointAttrByPosition(position: IMarkLineLabelPosition) {\n const { label = {} } = this.attribute;\n const { refX = 0, refY = 0 } = label;\n const points = this._line.getMainSegmentPoints();\n const lineEndAngle = this._line.getEndAngle() ?? 0;\n const labelAngle = isPostiveXAxis(lineEndAngle) ? lineEndAngle : lineEndAngle;\n\n const labelOffsetX = refX * Math.cos(labelAngle) + refY * Math.cos(labelAngle - Math.PI / 2);\n const labelOffsetY = refX * Math.sin(labelAngle) + refY * Math.sin(labelAngle - Math.PI / 2);\n\n if (position.includes('start') || position.includes('Start')) {\n return {\n position: {\n x: points[0].x + labelOffsetX,\n y: points[0].y + labelOffsetY\n },\n angle: labelAngle\n };\n } else if (position.includes('middle') || position.includes('Middle')) {\n return {\n position: {\n x: (points[0].x + points[points.length - 1].x) / 2 + labelOffsetX,\n y: (points[0].y + points[points.length - 1].y) / 2 + labelOffsetY\n },\n angle: labelAngle\n };\n }\n return {\n position: {\n x: points[points.length - 1].x + labelOffsetX,\n y: points[points.length - 1].y + labelOffsetY\n },\n angle: labelAngle\n };\n }\n\n protected getRotateByAngle(angle: number): number {\n const itemAngle = isPostiveXAxis(angle) ? angle : angle - Math.PI;\n return itemAngle + (this.attribute.label.refAngle ?? 0);\n }\n\n protected getTextStyle(position: IMarkLineLabelPosition, labelAngle: number, autoRotate: boolean) {\n // 垂直方向例外\n if (\n fuzzyEqualNumber(Math.abs(labelAngle), Math.PI / 2, FUZZY_EQUAL_DELTA) ||\n fuzzyEqualNumber(Math.abs(labelAngle), (Math.PI * 3) / 2, FUZZY_EQUAL_DELTA)\n ) {\n return getTextAlignAttrOfVerticalDir(autoRotate, labelAngle, position);\n }\n\n if (isPostiveXAxis(labelAngle)) {\n return DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.postiveXAxis[position];\n }\n return DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.negativeXAxis[position];\n }\n\n protected createSegment() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as MarkLineAttrs;\n return new Segment({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n pickable: false, // 组件容器本身不参与拾取\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n\n protected setLineAttributes() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as MarkLineAttrs;\n if (this._line) {\n this._line.setAttributes({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as MarkLineAttrs;\n if (!points || points.length < 2) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point | Point[]) => {\n if ((point as any).length) {\n (point as Point[]).forEach((p: Point) => {\n if (!isValidNumber((p as Point).x) || !isValidNumber((p as Point).y)) {\n validFlag = false;\n return;\n }\n });\n } else if (!isValidNumber((point as Point).x) || !isValidNumber((point as Point).y)) {\n validFlag = false;\n return;\n }\n });\n return validFlag;\n }\n}\n"]}
@@ -84,16 +84,17 @@ export declare class MarkPoint extends Marker<MarkPointAttrs, MarkPointAnimation
84
84
  private _line?;
85
85
  private _decorativeLine;
86
86
  private _isArcLine;
87
+ private _isStraightLine;
87
88
  constructor(attributes: MarkPointAttrs, options?: ComponentOptions);
88
89
  protected setLabelPos(): void;
89
90
  protected getTextAlignAttr(autoRotate: boolean, offsetX: number, offsetY: number, lineEndAngle: number, itemPosition: keyof typeof IMarkPointItemPosition): {
90
- textAlign: import("@visactor/vrender-core").TextAlignType;
91
- textBaseline: import("@visactor/vrender-core").TextBaselineType;
91
+ textAlign: string;
92
+ textBaseline: string;
92
93
  };
93
94
  protected setItemAttributes(item: ISymbol | Tag | IImage | IRichText, itemContent: IItemContent, newPosition: Point, newItemPosition: Point, itemType: 'symbol' | 'text' | 'image' | 'richText' | 'custom'): void;
94
95
  protected getItemDx(item: ISymbol | Tag | IImage | IRichText, position: keyof typeof IMarkPointItemPosition, style?: IImageGraphicAttribute | IRichTextGraphicAttribute): number;
95
96
  protected getItemDy(item: ISymbol | Tag | IImage | IRichText, position: keyof typeof IMarkPointItemPosition, style?: IImageGraphicAttribute | IRichTextGraphicAttribute): number;
96
- protected initItem(itemContent: IItemContent, newPosition: Point, newItemPosition: Point): IGroup | IRichText | Tag | ISymbol | IImage;
97
+ protected initItem(itemContent: IItemContent, newPosition: Point, newItemPosition: Point): IGroup | ISymbol | Tag | IRichText | IImage;
97
98
  protected getItemLineAttr(itemLine: IItemLine, newPosition: Point, newItemPosition: Point): {
98
99
  points: Point[];
99
100
  center: {
@@ -8,7 +8,7 @@ import { Tag } from "../tag";
8
8
 
9
9
  import { Marker } from "./base";
10
10
 
11
- import { DEFAULT_MARK_POINT_TEXT_STYLE_MAP, DEFAULT_MARK_POINT_THEME } from "./config";
11
+ import { DEFAULT_MARK_POINT_TEXT_STYLE_MAP, DEFAULT_MARK_POINT_THEME, FUZZY_EQUAL_DELTA } from "./config";
12
12
 
13
13
  import { IMarkPointItemPosition } from "./type";
14
14
 
@@ -20,7 +20,7 @@ import { DEFAULT_STATES } from "../constant";
20
20
 
21
21
  import { DefaultExitMarkerAnimation, DefaultUpdateMarkPointAnimation, markPointAnimate } from "./animate/animate";
22
22
 
23
- import { deltaXYToAngle, isPostiveXAxisCartes, isPostiveXAxisPolar, removeRepeatPoint } from "../util";
23
+ import { deltaXYToAngle, fuzzyEqualNumber, getTextAlignAttrOfVerticalDir, isPostiveXAxis, removeRepeatPoint } from "../util";
24
24
 
25
25
  loadMarkPointComponent();
26
26
 
@@ -35,18 +35,16 @@ export class MarkPoint extends Marker {
35
35
  constructor(attributes, options) {
36
36
  super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, MarkPoint.defaultAttributes, attributes)),
37
37
  this.name = "markPoint", this.defaultUpdateAnimation = DefaultUpdateMarkPointAnimation,
38
- this.defaultExitAnimation = DefaultExitMarkerAnimation, this._isArcLine = !1;
38
+ this.defaultExitAnimation = DefaultExitMarkerAnimation, this._isArcLine = !1, this._isStraightLine = !1;
39
39
  }
40
40
  setLabelPos() {}
41
41
  getTextAlignAttr(autoRotate, offsetX, offsetY, lineEndAngle, itemPosition) {
42
- let isPostiveXAxis = !0;
43
- return isPostiveXAxis = this._isArcLine ? isPostiveXAxisPolar(lineEndAngle, this._line.isReverseArc) : isPostiveXAxisCartes(lineEndAngle),
44
- isPostiveXAxis ? DEFAULT_MARK_POINT_TEXT_STYLE_MAP.postiveXAxis[itemPosition] : DEFAULT_MARK_POINT_TEXT_STYLE_MAP.negativeXAxis[itemPosition];
42
+ return fuzzyEqualNumber(Math.abs(lineEndAngle), Math.PI / 2, FUZZY_EQUAL_DELTA) || fuzzyEqualNumber(Math.abs(lineEndAngle), 3 * Math.PI / 2, FUZZY_EQUAL_DELTA) ? getTextAlignAttrOfVerticalDir(autoRotate, lineEndAngle, itemPosition) : isPostiveXAxis(lineEndAngle) ? DEFAULT_MARK_POINT_TEXT_STYLE_MAP.postiveXAxis[itemPosition] : DEFAULT_MARK_POINT_TEXT_STYLE_MAP.negativeXAxis[itemPosition];
45
43
  }
46
44
  setItemAttributes(item, itemContent, newPosition, newItemPosition, itemType) {
47
45
  var _a, _b;
48
46
  if (!item) return;
49
- const {autoRotate: autoRotate = !0, refX: refX = 0, refY: refY = 0, refAngle: refAngle = 0, textStyle: textStyle = {}, richTextStyle: richTextStyle = {}, imageStyle: imageStyle = {}, position: positionType = IMarkPointItemPosition.middle} = itemContent, {state: state} = this.attribute, lineEndAngle = (null === (_a = this._line) || void 0 === _a ? void 0 : _a.getEndAngle()) || 0, itemRefOffsetX = refX * Math.cos(lineEndAngle) + refY * Math.cos(lineEndAngle), itemRefOffsetY = refX * Math.sin(lineEndAngle) + refY * Math.sin(lineEndAngle);
47
+ const {autoRotate: autoRotate = !0, refX: refX = 0, refY: refY = 0, refAngle: refAngle = 0, textStyle: textStyle = {}, richTextStyle: richTextStyle = {}, imageStyle: imageStyle = {}, position: positionType = IMarkPointItemPosition.middle} = itemContent, {state: state} = this.attribute, lineEndAngle = (null === (_a = this._line) || void 0 === _a ? void 0 : _a.getEndAngle()) || 0, itemRefOffsetX = refX * Math.cos(lineEndAngle) + refY * Math.cos(lineEndAngle - Math.PI / 2), itemRefOffsetY = refX * Math.sin(lineEndAngle) + refY * Math.sin(lineEndAngle - Math.PI / 2);
50
48
  if ("text" === itemType) {
51
49
  const offsetX = newItemPosition.x - newPosition.x, offsetY = newItemPosition.y - newPosition.y;
52
50
  item.setAttributes(Object.assign(Object.assign({}, textStyle), {
@@ -63,10 +61,8 @@ export class MarkPoint extends Marker {
63
61
  dx: this.getItemDx(item, positionType, imageStyle) + (imageStyle.dx || 0),
64
62
  dy: this.getItemDy(item, positionType, imageStyle) + (imageStyle.dy || 0)
65
63
  }), item.states = merge({}, DEFAULT_STATES, null == state ? void 0 : state.image));
66
- let itemAngle, isPostiveXAxis = !0;
67
- this._isArcLine ? (isPostiveXAxis = isPostiveXAxisPolar(lineEndAngle, this._line.isReverseArc),
68
- itemAngle = isPostiveXAxis ? lineEndAngle : lineEndAngle - Math.PI) : (isPostiveXAxis = isPostiveXAxisCartes(lineEndAngle),
69
- itemAngle = isPostiveXAxis ? lineEndAngle : lineEndAngle - Math.PI), item.setAttributes({
64
+ const itemAngle = isPostiveXAxis(lineEndAngle) ? lineEndAngle : lineEndAngle - Math.PI;
65
+ item.setAttributes({
70
66
  x: newItemPosition.x + (itemRefOffsetX || 0),
71
67
  y: newItemPosition.y + (itemRefOffsetY || 0),
72
68
  angle: autoRotate && itemAngle + refAngle
@@ -103,24 +99,26 @@ export class MarkPoint extends Marker {
103
99
  x: 0,
104
100
  y: 0
105
101
  }, radius = 0, startAngle = 0, endAngle = 0;
106
- const {type: type = "type-s", arcRatio: arcRatio = .8} = itemLine;
107
- if (this._isArcLine) {
102
+ const {type: type = "type-s", arcRatio: arcRatio = .8} = itemLine, itemOffsetX = newItemPosition.x - newPosition.x, itemOffsetY = newItemPosition.y - newPosition.y;
103
+ if (this._isStraightLine = fuzzyEqualNumber(itemOffsetX, 0, FUZZY_EQUAL_DELTA) || fuzzyEqualNumber(itemOffsetY, 0, FUZZY_EQUAL_DELTA),
104
+ this._isArcLine) {
108
105
  const {x: x1, y: y1} = newPosition, {x: x2, y: y2} = newItemPosition, x0 = (x1 + x2) / 2, y0 = (y1 + y2) / 2, k = y1 === y2 ? 0 : -(x1 - x2) / (y1 - y2), centerX = x0 + arcRatio * (y2 > y1 ? -1 : 1) * x0, centerY = (x => k * (x - x0) + y0)(centerX);
106
+ startAngle = deltaXYToAngle(y1 - centerY, x1 - centerX), endAngle = deltaXYToAngle(y2 - centerY, x2 - centerX),
109
107
  center = {
110
108
  x: centerX,
111
109
  y: centerY
112
- }, startAngle = deltaXYToAngle(y1 - centerY, x1 - centerX), endAngle = deltaXYToAngle(y2 - centerY, x2 - centerX),
110
+ }, arcRatio > 0 ? endAngle < startAngle && (endAngle += 2 * Math.PI) : startAngle < endAngle && (startAngle += 2 * Math.PI),
113
111
  radius = Math.sqrt((centerX - x1) * (centerX - x1) + (centerY - y1) * (centerY - y1));
114
- } else points = "type-do" === type ? [ newPosition, {
115
- x: (newPosition.x + newItemPosition.x) / 2,
112
+ } else points = "type-do" !== type || this._isStraightLine ? "type-po" !== type || this._isStraightLine ? "type-op" !== type || this._isStraightLine ? [ newPosition, newItemPosition ] : [ newPosition, {
113
+ x: newPosition.x,
116
114
  y: newItemPosition.y
117
- }, newItemPosition ] : "type-po" === type ? [ newPosition, {
115
+ }, newItemPosition ] : [ newPosition, {
118
116
  x: newItemPosition.x,
119
117
  y: newPosition.y
120
- }, newItemPosition ] : "type-op" === type ? [ newPosition, {
121
- x: newPosition.x,
118
+ }, newItemPosition ] : [ newPosition, {
119
+ x: (newPosition.x + newItemPosition.x) / 2,
122
120
  y: newItemPosition.y
123
- }, newItemPosition ] : [ newPosition, newItemPosition ];
121
+ }, newItemPosition ];
124
122
  return points = removeRepeatPoint(points), {
125
123
  points: points,
126
124
  center: center,
@@ -148,7 +146,7 @@ export class MarkPoint extends Marker {
148
146
  setItemLineAttr(itemLine, newPosition, newItemPosition) {
149
147
  if (this._line) {
150
148
  const {startSymbol: startSymbol, endSymbol: endSymbol, lineStyle: lineStyle, type: type = "type-s"} = itemLine, {state: state} = this.attribute, pointsAttr = this.getItemLineAttr(itemLine, newPosition, newItemPosition);
151
- "type-arc" === type && "arc-segment" === this._line.key || "type-arc" !== type && "segment" === this._line.key ? this._line.setAttributes(Object.assign(Object.assign({}, pointsAttr), {
149
+ this._isArcLine && "arc-segment" === this._line.key || !this._isArcLine && "segment" === this._line.key ? this._line.setAttributes(Object.assign(Object.assign({}, pointsAttr), {
152
150
  startSymbol: startSymbol,
153
151
  endSymbol: endSymbol,
154
152
  lineStyle: lineStyle,
@@ -217,19 +215,20 @@ export class MarkPoint extends Marker {
217
215
  const {itemContent: itemContent = {}, targetSymbol: targetSymbol} = this.attribute, {offsetX: itemContentOffsetX = 0, offsetY: itemContentOffsetY = 0} = itemContent, {offset: targetSymbolOffset = 0, style: targetSymbolStyle, visible: targetItemvisible = !1, size: targetSymbolSize} = targetSymbol, targetSize = targetItemvisible ? targetSymbolSize || (null !== (_a = targetSymbolStyle.size) && void 0 !== _a ? _a : 10) : 0, targetOffsetAngle = deltaXYToAngle(itemContentOffsetY, itemContentOffsetX);
218
216
  return {
219
217
  newPosition: {
220
- x: position.x + (targetSize + targetSymbolOffset) * Math.cos(targetOffsetAngle),
221
- y: position.y + (targetSize + targetSymbolOffset) * Math.sin(targetOffsetAngle)
218
+ x: position.x + (targetSize / 2 + targetSymbolOffset) * Math.cos(targetOffsetAngle),
219
+ y: position.y + (targetSize / 2 + targetSymbolOffset) * Math.sin(targetOffsetAngle)
222
220
  },
223
221
  newItemPosition: {
224
- x: position.x + (targetSize + targetSymbolOffset) * Math.cos(targetOffsetAngle) + itemContentOffsetX,
225
- y: position.y + (targetSize + targetSymbolOffset) * Math.sin(targetOffsetAngle) + itemContentOffsetY
222
+ x: position.x + (targetSize / 2 + targetSymbolOffset) * Math.cos(targetOffsetAngle) + itemContentOffsetX,
223
+ y: position.y + (targetSize / 2 + targetSymbolOffset) * Math.sin(targetOffsetAngle) + itemContentOffsetY
226
224
  }
227
225
  };
228
226
  }
229
227
  initMarker(container) {
230
- const {position: position, itemContent: itemContent = {}, itemLine: itemLine} = this.attribute, {type: itemLineType = "type-s", arcRatio: arcRatio = .8} = itemLine, {newPosition: newPosition, newItemPosition: newItemPosition} = this.computeNewPositionAfterTargetItem(position);
231
- this._isArcLine = "type-arc" === itemLineType && 0 !== arcRatio && newPosition.x !== newItemPosition.x && newPosition.y !== newItemPosition.y;
232
- const line = new (this._isArcLine ? ArcSegment : Segment)({
228
+ const {position: position, itemContent: itemContent = {}, itemLine: itemLine} = this.attribute, {type: itemLineType = "type-s", arcRatio: arcRatio = .8} = itemLine, {offsetX: offsetX = 0, offsetY: offsetY = 0} = itemContent;
229
+ this._isStraightLine = fuzzyEqualNumber(offsetX, 0, FUZZY_EQUAL_DELTA) || fuzzyEqualNumber(offsetY, 0, FUZZY_EQUAL_DELTA),
230
+ this._isArcLine = "type-arc" === itemLineType && 0 !== arcRatio && !this._isStraightLine;
231
+ const {newPosition: newPosition, newItemPosition: newItemPosition} = this.computeNewPositionAfterTargetItem(position), line = new (this._isArcLine ? ArcSegment : Segment)({
233
232
  points: [],
234
233
  pickable: !1,
235
234
  center: {
@@ -252,7 +251,9 @@ export class MarkPoint extends Marker {
252
251
  this._item = item, container.add(item), this.setAllOfItemsAttr(newPosition, newItemPosition);
253
252
  }
254
253
  updateMarker() {
255
- const {position: position, itemContent: itemContent = {}, itemLine: itemLine} = this.attribute, {type: type = "text"} = itemContent, {type: itemLineType = "type-s", arcRatio: arcRatio = .8} = itemLine, {newPosition: newPosition, newItemPosition: newItemPosition} = this.computeNewPositionAfterTargetItem(position), isArcLine = "type-arc" === itemLineType && 0 !== arcRatio && newPosition.x !== newItemPosition.x && newPosition.y !== newItemPosition.y;
254
+ const {position: position, itemContent: itemContent = {}, itemLine: itemLine} = this.attribute, {type: type = "text"} = itemContent, {type: itemLineType = "type-s", arcRatio: arcRatio = .8} = itemLine, {offsetX: offsetX = 0, offsetY: offsetY = 0} = itemContent;
255
+ this._isStraightLine = fuzzyEqualNumber(offsetX, 0, FUZZY_EQUAL_DELTA) || fuzzyEqualNumber(offsetY, 0, FUZZY_EQUAL_DELTA);
256
+ const isArcLine = "type-arc" === itemLineType && 0 !== arcRatio && !this._isStraightLine, {newPosition: newPosition, newItemPosition: newItemPosition} = this.computeNewPositionAfterTargetItem(position);
256
257
  isArcLine !== this._isArcLine ? (this._isArcLine = isArcLine, this.reDrawLine(itemLine, {
257
258
  points: [ {
258
259
  x: 0,