@visactor/vrender-components 0.18.10-alpha.2 → 0.18.10-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 (101) hide show
  1. package/cjs/axis/base.js +4 -20
  2. package/cjs/axis/base.js.map +1 -1
  3. package/cjs/brush/brush.js +1 -2
  4. package/cjs/brush/type.js +2 -1
  5. package/cjs/index.d.ts +1 -1
  6. package/cjs/index.js +1 -1
  7. package/cjs/index.js.map +1 -1
  8. package/{es/marker/polar/area.d.ts → cjs/marker/arc-area.d.ts} +8 -8
  9. package/cjs/marker/{polar/area.js → arc-area.js} +18 -18
  10. package/cjs/marker/arc-area.js.map +1 -0
  11. package/cjs/marker/arc-line.d.ts +23 -0
  12. package/cjs/marker/{polar/arc-line.js → arc-line.js} +22 -26
  13. package/cjs/marker/arc-line.js.map +1 -0
  14. package/{es/marker/cartesian → cjs/marker}/area.d.ts +8 -8
  15. package/cjs/marker/{cartesian/area.js → area.js} +19 -19
  16. package/cjs/marker/area.js.map +1 -0
  17. package/cjs/marker/base.d.ts +1 -0
  18. package/cjs/marker/base.js +12 -26
  19. package/cjs/marker/base.js.map +1 -1
  20. package/cjs/marker/{base-line.d.ts → common-line.d.ts} +3 -2
  21. package/cjs/marker/{base-line.js → common-line.js} +11 -9
  22. package/cjs/marker/common-line.js.map +1 -0
  23. package/cjs/marker/config.d.ts +9 -9
  24. package/cjs/marker/config.js +9 -9
  25. package/cjs/marker/config.js.map +1 -1
  26. package/cjs/marker/index.d.ts +4 -4
  27. package/cjs/marker/index.js +3 -3
  28. package/cjs/marker/index.js.map +1 -1
  29. package/cjs/marker/line.d.ts +28 -0
  30. package/cjs/marker/{cartesian/line.js → line.js} +36 -40
  31. package/cjs/marker/line.js.map +1 -0
  32. package/cjs/marker/register.d.ts +4 -5
  33. package/cjs/marker/register.js +8 -12
  34. package/cjs/marker/register.js.map +1 -1
  35. package/cjs/marker/type.d.ts +23 -33
  36. package/cjs/marker/type.js +21 -22
  37. package/cjs/marker/type.js.map +1 -1
  38. package/cjs/util/interaction.d.ts +4 -0
  39. package/cjs/util/interaction.js +37 -0
  40. package/cjs/util/interaction.js.map +1 -0
  41. package/es/axis/base.js +7 -21
  42. package/es/axis/base.js.map +1 -1
  43. package/es/brush/brush.js +1 -2
  44. package/es/brush/type.js +2 -1
  45. package/es/index.d.ts +1 -1
  46. package/es/index.js +1 -1
  47. package/es/index.js.map +1 -1
  48. package/{cjs/marker/polar/area.d.ts → es/marker/arc-area.d.ts} +8 -8
  49. package/es/marker/{polar/area.js → arc-area.js} +23 -23
  50. package/es/marker/arc-area.js.map +1 -0
  51. package/es/marker/arc-line.d.ts +23 -0
  52. package/es/marker/{polar/arc-line.js → arc-line.js} +26 -30
  53. package/es/marker/arc-line.js.map +1 -0
  54. package/{cjs/marker/cartesian → es/marker}/area.d.ts +8 -8
  55. package/es/marker/{cartesian/area.js → area.js} +23 -23
  56. package/es/marker/area.js.map +1 -0
  57. package/es/marker/base.d.ts +1 -0
  58. package/es/marker/base.js +12 -30
  59. package/es/marker/base.js.map +1 -1
  60. package/es/marker/{base-line.d.ts → common-line.d.ts} +3 -2
  61. package/es/marker/{base-line.js → common-line.js} +9 -7
  62. package/es/marker/common-line.js.map +1 -0
  63. package/es/marker/config.d.ts +9 -9
  64. package/es/marker/config.js +9 -9
  65. package/es/marker/config.js.map +1 -1
  66. package/es/marker/index.d.ts +4 -4
  67. package/es/marker/index.js +4 -4
  68. package/es/marker/index.js.map +1 -1
  69. package/es/marker/line.d.ts +28 -0
  70. package/es/marker/{cartesian/line.js → line.js} +40 -44
  71. package/es/marker/line.js.map +1 -0
  72. package/es/marker/register.d.ts +4 -5
  73. package/es/marker/register.js +4 -8
  74. package/es/marker/register.js.map +1 -1
  75. package/es/marker/type.d.ts +23 -33
  76. package/es/marker/type.js +22 -23
  77. package/es/marker/type.js.map +1 -1
  78. package/es/util/interaction.d.ts +4 -0
  79. package/es/util/interaction.js +30 -0
  80. package/es/util/interaction.js.map +1 -0
  81. package/package.json +5 -5
  82. package/cjs/marker/base-line.js.map +0 -1
  83. package/cjs/marker/cartesian/area.js.map +0 -1
  84. package/cjs/marker/cartesian/line.d.ts +0 -27
  85. package/cjs/marker/cartesian/line.js.map +0 -1
  86. package/cjs/marker/polar/arc-line.d.ts +0 -22
  87. package/cjs/marker/polar/arc-line.js.map +0 -1
  88. package/cjs/marker/polar/area.js.map +0 -1
  89. package/cjs/marker/polar/line.d.ts +0 -1
  90. package/cjs/marker/polar/line.js +0 -3
  91. package/cjs/marker/polar/line.js.map +0 -1
  92. package/es/marker/base-line.js.map +0 -1
  93. package/es/marker/cartesian/area.js.map +0 -1
  94. package/es/marker/cartesian/line.d.ts +0 -27
  95. package/es/marker/cartesian/line.js.map +0 -1
  96. package/es/marker/polar/arc-line.d.ts +0 -22
  97. package/es/marker/polar/arc-line.js.map +0 -1
  98. package/es/marker/polar/area.js.map +0 -1
  99. package/es/marker/polar/line.d.ts +0 -1
  100. package/es/marker/polar/line.js +0 -3
  101. package/es/marker/polar/line.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/cartesian/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { IGroup, INode, IPolygon } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { isValidNumber, merge } from '@visactor/vutils';\nimport type { TagAttributes } from '../../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../../tag';\nimport { Marker } from '../base';\nimport { DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP, DEFAULT_CARTESIAN_MARK_AREA_THEME } from '../config';\nimport type { CartesianMarkAreaAttrs } from '../type';\nimport { limitShapeInBounds } from '../../util/limit-shape';\nimport type { ComponentOptions } from '../../interface';\nimport { loadCartesianMarkAreaComponent } from '../register';\nimport type { Point } from '../../core/type';\nimport { DEFAULT_STATES } from '../../constant';\n\nloadCartesianMarkAreaComponent();\nexport class CartesianMarkArea extends Marker<CartesianMarkAreaAttrs> {\n name = 'cartesianMarkArea';\n static defaultAttributes = DEFAULT_CARTESIAN_MARK_AREA_THEME;\n private _area!: IPolygon;\n getArea() {\n return this._area;\n }\n\n getLabel() {\n return this._label;\n }\n\n constructor(attributes: CartesianMarkAreaAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CartesianMarkArea.defaultAttributes, attributes));\n }\n\n protected getPositionByDirection(direction: string) {\n const { x1, x2, y1, y2 } = this._area.AABBBounds;\n // labelHeight\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n // labelWidth\n // eslint-disable-next-line max-len\n const labelRectWidth = Math.abs(\n (this._label.getTextShape().AABBBounds?.x2 ?? 0) - (this._label.getTextShape()?.AABBBounds.x1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextWidth = Math.abs(\n (this._label.getBgRect().AABBBounds?.x2 ?? 0) - (this._label.getBgRect()?.AABBBounds.x1 ?? 0)\n );\n const labelWidth = Math.max(labelRectWidth, labelTextWidth);\n\n if (direction.includes('left') || direction.includes('Left')) {\n return {\n x: x1 + (direction.includes('inside') ? 0.5 : -0.5) * labelWidth,\n y: (y1 + y2) / 2\n };\n }\n if (direction.includes('right') || direction.includes('Right')) {\n return {\n x: x2 + (direction.includes('inside') ? -0.5 : 0.5) * labelWidth,\n y: (y1 + y2) / 2\n };\n }\n if (direction.includes('top') || direction.includes('Top')) {\n return {\n x: (x1 + x2) / 2,\n y: y1 + (direction.includes('inside') ? 0.5 : -0.5) * labelHeight\n };\n }\n if (direction.includes('bottom') || direction.includes('Bottom')) {\n return {\n x: (x1 + x2) / 2,\n y: y2 + (direction.includes('inside') ? -0.5 : 0.5) * labelHeight\n };\n }\n\n return {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n };\n }\n\n protected setLabelPos() {\n if (this._label && this._area) {\n const { label = {} } = this.attribute as CartesianMarkAreaAttrs;\n const labelPosition = label.position ?? 'middle';\n const labelPoint = this.getPositionByDirection(labelPosition);\n this._label.setAttributes({\n ...labelPoint\n });\n\n if (this.attribute.limitRect && label.confine) {\n const { x, y, width, height } = this.attribute.limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n }\n\n protected initMarker(container: IGroup) {\n const { points, label, areaStyle, state } = this.attribute as CartesianMarkAreaAttrs;\n const area = graphicCreator.polygon({\n points: points,\n ...areaStyle\n });\n area.states = merge({}, DEFAULT_STATES, state?.area);\n area.name = 'mark-polygon-polygon';\n this._area = area;\n container.add(area);\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-polygon-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { points, label, areaStyle } = this.attribute as CartesianMarkAreaAttrs;\n if (this._area) {\n this._area.setAttributes({\n points: points,\n ...areaStyle\n });\n }\n if (this._area) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes)\n });\n }\n this.setLabelPos();\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as CartesianMarkAreaAttrs;\n if (!points || points.length < 3) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point) => {\n 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,27 +0,0 @@
1
- import { ICartesianMarkLineLabelPosition } from '../type';
2
- import type { CartesianMarkLineAttrs } from '../type';
3
- import type { ComponentOptions } from '../../interface';
4
- import { BaseMarkLine } from '../base-line';
5
- import type { ArcSegment } from '../../segment';
6
- import { Segment } from '../../segment';
7
- export declare class CartesianMarkLine extends BaseMarkLine<ICartesianMarkLineLabelPosition> {
8
- name: string;
9
- static defaultAttributes: Partial<CartesianMarkLineAttrs>;
10
- protected _line: Segment | ArcSegment;
11
- constructor(attributes: CartesianMarkLineAttrs, options?: ComponentOptions);
12
- protected isValidPoints(): boolean;
13
- protected getLabelOffsetByDirection(direction: ICartesianMarkLineLabelPosition): {
14
- offsetX: number;
15
- offsetY: number;
16
- };
17
- protected getPositionByDirection(direction: ICartesianMarkLineLabelPosition): {
18
- position: {
19
- x: number;
20
- y: number;
21
- };
22
- angle: number;
23
- };
24
- protected setLabelPos(): void;
25
- protected createSegment(): Segment;
26
- protected setLineAttributes(): void;
27
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/cartesian/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport { ICartesianMarkLineLabelPosition } from '../type';\nimport type { CartesianMarkLineAttrs, ICartesianMarkAreaLabelPosition } from '../type';\nimport type { ComponentOptions } from '../../interface';\nimport { loadCartesianMarkLineComponent } from '../register';\nimport type { Point } from '../../core/type';\nimport { BaseMarkLine } from '../base-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_THEME } from '../config';\n\nloadCartesianMarkLineComponent();\nexport class CartesianMarkLine extends BaseMarkLine<ICartesianMarkLineLabelPosition> {\n name = 'cartesianMarkLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<CartesianMarkLineAttrs> =\n DEFAULT_CARTESIAN_MARK_LINE_THEME as unknown as CartesianMarkLineAttrs;\n protected _line!: Segment | ArcSegment;\n\n constructor(attributes: CartesianMarkLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CartesianMarkLine.defaultAttributes, attributes));\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as CartesianMarkLineAttrs;\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 protected getLabelOffsetByDirection(direction: ICartesianMarkLineLabelPosition) {\n // labelHeight\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n // labelWidth\n // eslint-disable-next-line max-len\n const labelRectWidth = Math.abs(\n (this._label.getTextShape().AABBBounds?.x2 ?? 0) - (this._label.getTextShape()?.AABBBounds.x1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextWidth = Math.abs(\n (this._label.getBgRect().AABBBounds?.x2 ?? 0) - (this._label.getBgRect()?.AABBBounds.x1 ?? 0)\n );\n const labelWidth = Math.max(labelRectWidth, labelTextWidth);\n\n switch (direction) {\n case ICartesianMarkLineLabelPosition.start:\n return {\n offsetX: -labelWidth / 2,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideStartTop:\n return {\n offsetX: labelWidth / 2,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideStartBottom:\n return {\n offsetX: labelWidth / 2,\n offsetY: -labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.middle:\n return {\n offsetX: 0,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideMiddleTop:\n return {\n offsetX: 0,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideMiddleBottom:\n return {\n offsetX: 0,\n offsetY: -labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.end:\n return {\n offsetX: labelWidth / 2,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideEndTop:\n return {\n offsetX: -labelWidth / 2,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideEndBottom:\n return {\n offsetX: -labelWidth / 2,\n offsetY: -labelHeight / 2\n };\n default: // default end\n return {\n offsetX: labelWidth / 2,\n offsetY: 0\n };\n }\n }\n\n protected getPositionByDirection(direction: ICartesianMarkLineLabelPosition) {\n const { label = {} } = this.attribute;\n const { refX = 0, refY = 0 } = label;\n const points = this._line.getMainSegmentPoints();\n const labelAngle = this._line.getEndAngle() ?? 0;\n\n const totalRefX = refX + this.getLabelOffsetByDirection(direction).offsetX;\n const totalRefY = refY + this.getLabelOffsetByDirection(direction).offsetY;\n\n const labelOffsetX = totalRefX * Math.cos(labelAngle) + totalRefY * Math.cos(labelAngle - Math.PI / 2);\n const labelOffsetY = totalRefX * Math.sin(labelAngle) + totalRefY * Math.sin(labelAngle - Math.PI / 2);\n\n if (direction.includes('start') || direction.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 (direction.includes('middle') || direction.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 setLabelPos(): void {\n super.setLabelPos();\n const { label = {} } = this.attribute as CartesianMarkLineAttrs;\n const { position = 'end', autoRotate = true } = label;\n const labelAttr = this.getPositionByDirection(position as any);\n this._label.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle + (label.refAngle ?? 0) : 0\n });\n }\n\n protected createSegment() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as CartesianMarkLineAttrs;\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 } = this\n .attribute as CartesianMarkLineAttrs;\n if (this._line) {\n this._line.setAttributes({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment\n });\n }\n }\n}\n"]}
@@ -1,22 +0,0 @@
1
- import { ArcSegment } from '../../segment';
2
- import { BaseMarkLine } from '../base-line';
3
- import { IPolarMarkLabelPosition } from '../type';
4
- import type { PolarMarkArcLineAttrs } from '../type';
5
- import type { ComponentOptions } from '../../interface';
6
- export declare class PolarMarkArcLine extends BaseMarkLine<IPolarMarkLabelPosition> {
7
- name: string;
8
- static defaultAttributes: Partial<PolarMarkArcLineAttrs>;
9
- protected _line: ArcSegment;
10
- constructor(attributes: PolarMarkArcLineAttrs, options?: ComponentOptions);
11
- protected isValidPoints(): boolean;
12
- protected getPositionByDirection(direction: IPolarMarkLabelPosition): {
13
- position: {
14
- x: number;
15
- y: number;
16
- };
17
- angle: number;
18
- };
19
- protected setLabelPos(): void;
20
- protected createSegment(): ArcSegment;
21
- protected setLineAttributes(): void;
22
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/polar/arc-line.ts"],"names":[],"mappings":"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","file":"arc-line.js","sourcesContent":["import { merge } from '@visactor/vutils';\nimport { ArcSegment } from '../../segment';\nimport { loadPolarMarkArcLineComponent } from '../register';\nimport { DEFAULT_STATES } from '../../constant';\nimport { BaseMarkLine } from '../base-line';\nimport { IPolarMarkLabelPosition } from '../type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { PolarMarkArcLineAttrs } from '../type';\nimport { DEFAULT_POLAR_MARK_LINE_THEME } from '../config';\nimport type { ComponentOptions } from '../../interface';\n\nloadPolarMarkArcLineComponent();\nexport class PolarMarkArcLine extends BaseMarkLine<IPolarMarkLabelPosition> {\n name = 'polarMarkArcLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<PolarMarkArcLineAttrs> =\n DEFAULT_POLAR_MARK_LINE_THEME as unknown as PolarMarkArcLineAttrs;\n protected _line!: ArcSegment;\n\n constructor(attributes: PolarMarkArcLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, PolarMarkArcLine.defaultAttributes, attributes));\n }\n\n protected isValidPoints() {\n return true;\n }\n\n protected getPositionByDirection(direction: IPolarMarkLabelPosition) {\n const { center, radius, startAngle, endAngle, label } = this.attribute as PolarMarkArcLineAttrs;\n const { refX = 0, refY = 0 } = label;\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n let angle;\n // tag在正交方向是向内偏移,还是向外偏移\n // 不偏移: 0, 内: -1, 外: 1\n let orthogonalOffsetDirection;\n\n switch (direction) {\n case IPolarMarkLabelPosition.center:\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = 0;\n break;\n case IPolarMarkLabelPosition.arcInnerStart:\n angle = startAngle;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterStart:\n angle = startAngle;\n orthogonalOffsetDirection = 1;\n break;\n case IPolarMarkLabelPosition.arcInnerEnd:\n angle = endAngle;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterEnd:\n angle = endAngle;\n orthogonalOffsetDirection = 1;\n break;\n case IPolarMarkLabelPosition.arcInnerMiddle:\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterMiddle:\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = 1;\n break;\n default: // default arcInnerMiddle\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = -1;\n }\n\n return {\n position: {\n x:\n center.x +\n (radius + (orthogonalOffsetDirection * labelHeight) / 2 + refY) * Math.cos(angle) +\n refX * Math.cos(angle - Math.PI / 2),\n y:\n center.y +\n (radius + (orthogonalOffsetDirection * labelHeight) / 2 + refY) * Math.sin(angle) +\n refX * Math.sin(angle - Math.PI / 2)\n },\n angle\n };\n }\n\n protected setLabelPos(): void {\n super.setLabelPos();\n const { label = {} } = this.attribute as PolarMarkArcLineAttrs;\n const { position = 'arcInnerMiddle', autoRotate = true } = label;\n const labelAttr = this.getPositionByDirection(position as any);\n this._label.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle - Math.PI / 2 + (label.refAngle ?? 0) : 0\n });\n }\n\n protected createSegment() {\n const { center, radius, startAngle, endAngle, startSymbol, endSymbol, lineStyle, state } = this\n .attribute as PolarMarkArcLineAttrs;\n return new ArcSegment({\n center,\n radius,\n startAngle,\n endAngle,\n startSymbol,\n endSymbol,\n lineStyle,\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 { center, radius, startAngle, endAngle, startSymbol, endSymbol, lineStyle } = this\n .attribute as PolarMarkArcLineAttrs;\n if (this._line) {\n (this._line as any).setAttributes({\n center,\n radius,\n startAngle,\n endAngle,\n startSymbol,\n endSymbol,\n lineStyle\n });\n }\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/polar/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { IArc, IGroup, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { TagAttributes } from '../../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../../tag';\nimport { Marker } from '../base';\nimport { DEFAULT_POLAR_MARK_AREA_THEME } from '../config';\nimport { IPolarMarkLabelPosition, type PolarMarkAreaAttrs } from '../type';\nimport { limitShapeInBounds } from '../../util/limit-shape';\nimport type { ComponentOptions } from '../../interface';\nimport { loadPolarMarkAreaComponent } from '../register';\nimport { DEFAULT_STATES } from '../../constant';\n\nloadPolarMarkAreaComponent();\nexport class PolarMarkArea extends Marker<PolarMarkAreaAttrs> {\n name = 'polarMarkArea';\n static defaultAttributes = DEFAULT_POLAR_MARK_AREA_THEME;\n private _area!: IArc;\n\n getArea() {\n return this._area;\n }\n\n getLabel() {\n return this._label;\n }\n\n constructor(attributes: PolarMarkAreaAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, PolarMarkArea.defaultAttributes, attributes));\n }\n\n protected getPositionByDirection(direction: string) {\n const { center, innerRadius, outerRadius, startAngle, endAngle, label } = this.attribute as PolarMarkAreaAttrs;\n const { refX = 0, refY = 0 } = label;\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n let radius;\n let angle;\n // tag在正交方向是向内偏移,还是向外偏移\n // 不偏移: 0, 内: -1, 外: 1\n let orthogonalOffsetDirection;\n\n switch (direction) {\n case IPolarMarkLabelPosition.center:\n radius = (innerRadius + outerRadius) / 2;\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = 0;\n break;\n case IPolarMarkLabelPosition.arcInnerStart:\n radius = innerRadius;\n angle = startAngle;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterStart:\n radius = outerRadius;\n angle = startAngle;\n orthogonalOffsetDirection = 1;\n break;\n case IPolarMarkLabelPosition.arcInnerEnd:\n radius = innerRadius;\n angle = endAngle;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterEnd:\n radius = outerRadius;\n angle = endAngle;\n orthogonalOffsetDirection = 1;\n break;\n case IPolarMarkLabelPosition.arcInnerMiddle:\n radius = innerRadius;\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterMiddle:\n radius = outerRadius;\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = 1;\n break;\n default: // default arcInnerMiddle\n radius = innerRadius;\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = -1;\n }\n\n return {\n position: {\n x:\n center.x +\n (radius + (orthogonalOffsetDirection * labelHeight) / 2 + refY) * Math.cos(angle) +\n refX * Math.cos(angle - Math.PI / 2),\n y:\n center.y +\n (radius + (orthogonalOffsetDirection * labelHeight) / 2 + refY) * Math.sin(angle) +\n refX * Math.sin(angle - Math.PI / 2)\n },\n angle\n };\n }\n\n protected setLabelPos() {\n if (this._label && this._area) {\n const { label = {} } = this.attribute as PolarMarkAreaAttrs;\n const { position: labelPosition = 'arcInnerMiddle', autoRotate = true } = label;\n const labelAttr = this.getPositionByDirection(labelPosition);\n\n this._label.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle - Math.PI / 2 + (label.refAngle ?? 0) : 0\n });\n\n if (this.attribute.limitRect && label.confine) {\n const { x, y, width, height } = this.attribute.limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n }\n\n protected initMarker(container: IGroup) {\n const { center, innerRadius, outerRadius, startAngle, endAngle, areaStyle, label, state } = this\n .attribute as PolarMarkAreaAttrs;\n const area = graphicCreator.arc({\n x: center.x,\n y: center.y,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n ...areaStyle\n });\n area.states = merge({}, DEFAULT_STATES, state?.area);\n area.name = 'polar-mark-area-area';\n this._area = area;\n container.add(area);\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-area-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { center, innerRadius, outerRadius, startAngle, endAngle, areaStyle, label } = this\n .attribute as PolarMarkAreaAttrs;\n if (this._area) {\n this._area.setAttributes({\n x: center.x,\n y: center.y,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n ...areaStyle\n });\n }\n if (this._area) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes)\n });\n }\n this.setLabelPos();\n }\n\n protected isValidPoints() {\n return true;\n }\n}\n"]}
@@ -1 +0,0 @@
1
-
@@ -1,3 +0,0 @@
1
-
2
-
3
- //# sourceMappingURL=line.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/polar/line.ts"],"names":[],"mappings":"","file":"line.js","sourcesContent":["// import { merge } from '@visactor/vutils';\n// import { DEFAULT_COMMON_MARK_LINE_THEME } from '../config';\n// import type { PolarMarkLineAttrs } from '../type';\n// import { DEFAULT_STATES } from '../../constant';\n// import { BaseMarkLine } from '../base-line';\n// import { loadPolarMarkLineComponent } from '../register';\n\n// loadPolarMarkLineComponent();\n// export class PolarMarkLine extends BaseMarkLine {\n// name = 'polarMarkLine';\n// static defaultAttributes: Partial<PolarMarkLineAttrs> = DEFAULT_COMMON_MARK_LINE_THEME;\n// protected isValidPoints() {\n// return true\n// }\n\n// protected createSegment() {\n// const {\n// center,\n// radius,\n// startAngle,\n// endAngle,\n// startSymbol,\n// endSymbol,\n// lineStyle,\n// state\n// } = this.attribute as PolarMarkLineAttrs;\n// return new ArcSegment({\n// center,\n// radius,\n// startAngle,\n// endAngle,\n// startSymbol,\n// endSymbol,\n// lineStyle,\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 {\n// center,\n// radius,\n// startAngle,\n// endAngle,\n// startSymbol,\n// endSymbol,\n// lineStyle,\n// } = this.attribute as PolarMarkArcLineAttrs;\n// if (this._line) {\n// (this._line as any).setAttributes({\n// center,\n// radius,\n// startAngle,\n// endAngle,\n// startSymbol,\n// endSymbol,\n// lineStyle\n// });\n// }\n// }\n// }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/base-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAgB,YAAgB,SAAQ,MAA8B;IAA5E;;QACE,SAAI,GAAG,cAAc,CAAC;IAoExB,CAAC;IA5DC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,WAAW;QACnB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACjD,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,aAAa,mBACpB,UAAU,EACb,CAAC;QACH,IAAI,SAAS,IAAI,OAAO,EAAE;YACxB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAC1C,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC9B,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC,GAAG,KAAK;gBACb,EAAE,EAAE,CAAC,GAAG,MAAM;aACf,CAAC,CAAC;SACJ;IACH,CAAC;IAES,UAAU,CAAC,SAAiB;QACpC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAmC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,SAAS,CAAC,GAAG,CAAC,IAAwB,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,IAAI,GAAG,iCACnB,KAAuB,KAC3B,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,CAAC;gBACxD,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;aAC9C,IACD,CAAC;QACH,SAAS,CAAC,IAAI,GAAG,2BAA2B,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,SAAS,CAAC,GAAG,CAAC,SAA6B,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,YAAY;QACpB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAmC,CAAC;QAE3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,aAAa,iBACvB,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,IACD,KAAuB,EAC3B,CAAC;SACJ;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF","file":"base-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 { CommonMarkLineAttrs } from './type';\nimport { limitShapeInBounds } from '../util/limit-shape';\nimport { DEFAULT_STATES } from '../constant';\nimport { Marker } from './base';\n\nexport abstract class BaseMarkLine<T> extends Marker<CommonMarkLineAttrs<T>> {\n name = 'baseMarkLine';\n\n protected _line!: Segment | ArcSegment;\n\n protected abstract createSegment(): any;\n protected abstract setLineAttributes(): any;\n protected abstract getPositionByDirection(direction: any): any;\n\n getLine() {\n return this._line;\n }\n getLabel() {\n return this._label;\n }\n\n protected setLabelPos() {\n const { label = {}, limitRect } = this.attribute;\n const { position = 'end', refX = 0, refY = 0, confine } = label;\n const labelPoint = this.getPositionByDirection(position);\n this._label.setAttributes({\n ...labelPoint\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 CommonMarkLineAttrs<T>;\n const line = this.createSegment();\n line.name = 'cartesian-mark-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 = 'cartesian-mark-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 } = this.attribute as CommonMarkLineAttrs<T>;\n\n this.setLineAttributes();\n\n if (this._label) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes)\n });\n }\n\n this.setLabelPos();\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/cartesian/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { IGroup, INode, IPolygon } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { isValidNumber, merge } from '@visactor/vutils';\nimport type { TagAttributes } from '../../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../../tag';\nimport { Marker } from '../base';\nimport { DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP, DEFAULT_CARTESIAN_MARK_AREA_THEME } from '../config';\nimport type { CartesianMarkAreaAttrs } from '../type';\nimport { limitShapeInBounds } from '../../util/limit-shape';\nimport type { ComponentOptions } from '../../interface';\nimport { loadCartesianMarkAreaComponent } from '../register';\nimport type { Point } from '../../core/type';\nimport { DEFAULT_STATES } from '../../constant';\n\nloadCartesianMarkAreaComponent();\nexport class CartesianMarkArea extends Marker<CartesianMarkAreaAttrs> {\n name = 'cartesianMarkArea';\n static defaultAttributes = DEFAULT_CARTESIAN_MARK_AREA_THEME;\n private _area!: IPolygon;\n getArea() {\n return this._area;\n }\n\n getLabel() {\n return this._label;\n }\n\n constructor(attributes: CartesianMarkAreaAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CartesianMarkArea.defaultAttributes, attributes));\n }\n\n protected getPositionByDirection(direction: string) {\n const { x1, x2, y1, y2 } = this._area.AABBBounds;\n // labelHeight\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n // labelWidth\n // eslint-disable-next-line max-len\n const labelRectWidth = Math.abs(\n (this._label.getTextShape().AABBBounds?.x2 ?? 0) - (this._label.getTextShape()?.AABBBounds.x1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextWidth = Math.abs(\n (this._label.getBgRect().AABBBounds?.x2 ?? 0) - (this._label.getBgRect()?.AABBBounds.x1 ?? 0)\n );\n const labelWidth = Math.max(labelRectWidth, labelTextWidth);\n\n if (direction.includes('left') || direction.includes('Left')) {\n return {\n x: x1 + (direction.includes('inside') ? 0.5 : -0.5) * labelWidth,\n y: (y1 + y2) / 2\n };\n }\n if (direction.includes('right') || direction.includes('Right')) {\n return {\n x: x2 + (direction.includes('inside') ? -0.5 : 0.5) * labelWidth,\n y: (y1 + y2) / 2\n };\n }\n if (direction.includes('top') || direction.includes('Top')) {\n return {\n x: (x1 + x2) / 2,\n y: y1 + (direction.includes('inside') ? 0.5 : -0.5) * labelHeight\n };\n }\n if (direction.includes('bottom') || direction.includes('Bottom')) {\n return {\n x: (x1 + x2) / 2,\n y: y2 + (direction.includes('inside') ? -0.5 : 0.5) * labelHeight\n };\n }\n\n return {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n };\n }\n\n protected setLabelPos() {\n if (this._label && this._area) {\n const { label = {} } = this.attribute as CartesianMarkAreaAttrs;\n const labelPosition = label.position ?? 'middle';\n const labelPoint = this.getPositionByDirection(labelPosition);\n this._label.setAttributes({\n ...labelPoint\n });\n\n if (this.attribute.limitRect && label.confine) {\n const { x, y, width, height } = this.attribute.limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n }\n\n protected initMarker(container: IGroup) {\n const { points, label, areaStyle, state } = this.attribute as CartesianMarkAreaAttrs;\n const area = graphicCreator.polygon({\n points: points,\n ...areaStyle\n });\n area.states = merge({}, DEFAULT_STATES, state?.area);\n area.name = 'mark-polygon-polygon';\n this._area = area;\n container.add(area);\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-polygon-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { points, label, areaStyle } = this.attribute as CartesianMarkAreaAttrs;\n if (this._area) {\n this._area.setAttributes({\n points: points,\n ...areaStyle\n });\n }\n if (this._area) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes)\n });\n }\n this.setLabelPos();\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as CartesianMarkAreaAttrs;\n if (!points || points.length < 3) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point) => {\n 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,27 +0,0 @@
1
- import { ICartesianMarkLineLabelPosition } from '../type';
2
- import type { CartesianMarkLineAttrs } from '../type';
3
- import type { ComponentOptions } from '../../interface';
4
- import { BaseMarkLine } from '../base-line';
5
- import type { ArcSegment } from '../../segment';
6
- import { Segment } from '../../segment';
7
- export declare class CartesianMarkLine extends BaseMarkLine<ICartesianMarkLineLabelPosition> {
8
- name: string;
9
- static defaultAttributes: Partial<CartesianMarkLineAttrs>;
10
- protected _line: Segment | ArcSegment;
11
- constructor(attributes: CartesianMarkLineAttrs, options?: ComponentOptions);
12
- protected isValidPoints(): boolean;
13
- protected getLabelOffsetByDirection(direction: ICartesianMarkLineLabelPosition): {
14
- offsetX: number;
15
- offsetY: number;
16
- };
17
- protected getPositionByDirection(direction: ICartesianMarkLineLabelPosition): {
18
- position: {
19
- x: number;
20
- y: number;
21
- };
22
- angle: number;
23
- };
24
- protected setLabelPos(): void;
25
- protected createSegment(): Segment;
26
- protected setLineAttributes(): void;
27
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/cartesian/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAG1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAC;AAE9D,8BAA8B,EAAE,CAAC;AACjC,MAAM,OAAO,iBAAkB,SAAQ,YAA6C;IAOlF,YAAY,UAAkC,EAAE,OAA0B;QACxE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;QAPxG,SAAI,GAAG,mBAAmB,CAAC;IAQ3B,CAAC;IAES,aAAa;QACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAmC,CAAC;QAC5D,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;IAES,yBAAyB,CAAC,SAA0C;;QAG5E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,0CAAE,EAAE,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,0CAAE,UAAU,CAAC,EAAE,mCAAI,CAAC,CAAC,CACpG,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,0CAAE,EAAE,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,0CAAE,UAAU,CAAC,EAAE,mCAAI,CAAC,CAAC,CAC9F,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAI/D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,0CAAE,EAAE,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,0CAAE,UAAU,CAAC,EAAE,mCAAI,CAAC,CAAC,CACpG,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,0CAAE,EAAE,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,0CAAE,UAAU,CAAC,EAAE,mCAAI,CAAC,CAAC,CAC9F,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAE5D,QAAQ,SAAS,EAAE;YACjB,KAAK,+BAA+B,CAAC,KAAK;gBACxC,OAAO;oBACL,OAAO,EAAE,CAAC,UAAU,GAAG,CAAC;oBACxB,OAAO,EAAE,CAAC;iBACX,CAAC;YACJ,KAAK,+BAA+B,CAAC,cAAc;gBACjD,OAAO;oBACL,OAAO,EAAE,UAAU,GAAG,CAAC;oBACvB,OAAO,EAAE,WAAW,GAAG,CAAC;iBACzB,CAAC;YACJ,KAAK,+BAA+B,CAAC,iBAAiB;gBACpD,OAAO;oBACL,OAAO,EAAE,UAAU,GAAG,CAAC;oBACvB,OAAO,EAAE,CAAC,WAAW,GAAG,CAAC;iBAC1B,CAAC;YACJ,KAAK,+BAA+B,CAAC,MAAM;gBACzC,OAAO;oBACL,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;iBACX,CAAC;YACJ,KAAK,+BAA+B,CAAC,eAAe;gBAClD,OAAO;oBACL,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,WAAW,GAAG,CAAC;iBACzB,CAAC;YACJ,KAAK,+BAA+B,CAAC,kBAAkB;gBACrD,OAAO;oBACL,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC,WAAW,GAAG,CAAC;iBAC1B,CAAC;YACJ,KAAK,+BAA+B,CAAC,GAAG;gBACtC,OAAO;oBACL,OAAO,EAAE,UAAU,GAAG,CAAC;oBACvB,OAAO,EAAE,CAAC;iBACX,CAAC;YACJ,KAAK,+BAA+B,CAAC,YAAY;gBAC/C,OAAO;oBACL,OAAO,EAAE,CAAC,UAAU,GAAG,CAAC;oBACxB,OAAO,EAAE,WAAW,GAAG,CAAC;iBACzB,CAAC;YACJ,KAAK,+BAA+B,CAAC,eAAe;gBAClD,OAAO;oBACL,OAAO,EAAE,CAAC,UAAU,GAAG,CAAC;oBACxB,OAAO,EAAE,CAAC,WAAW,GAAG,CAAC;iBAC1B,CAAC;YACJ;gBACE,OAAO;oBACL,OAAO,EAAE,UAAU,GAAG,CAAC;oBACvB,OAAO,EAAE,CAAC;iBACX,CAAC;SACL;IACH,CAAC;IAES,sBAAsB,CAAC,SAA0C;;QACzE,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,UAAU,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,mCAAI,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;QAE3E,MAAM,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACvG,MAAM,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAEvG,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC9D,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,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACvE,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,WAAW;;QACnB,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAmC,CAAC;QAChE,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAe,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,aAAa,iCACpB,SAAS,CAAC,QAAQ,KACrB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,MAAA,KAAK,CAAC,QAAQ,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAC/D,CAAC;IACL,CAAC;IAES,aAAa;QACrB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI;aAC9F,SAAmC,CAAC;QACvC,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,GAAG,IAAI;aACvF,SAAmC,CAAC;QACvC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;gBACvB,MAAM;gBACN,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,gBAAgB;gBAChB,YAAY;aACb,CAAC,CAAC;SACJ;IACH,CAAC;;AA5LM,mCAAiB,GACtB,iCAAsE,CAAC","file":"line.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport { ICartesianMarkLineLabelPosition } from '../type';\nimport type { CartesianMarkLineAttrs, ICartesianMarkAreaLabelPosition } from '../type';\nimport type { ComponentOptions } from '../../interface';\nimport { loadCartesianMarkLineComponent } from '../register';\nimport type { Point } from '../../core/type';\nimport { BaseMarkLine } from '../base-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_THEME } from '../config';\n\nloadCartesianMarkLineComponent();\nexport class CartesianMarkLine extends BaseMarkLine<ICartesianMarkLineLabelPosition> {\n name = 'cartesianMarkLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<CartesianMarkLineAttrs> =\n DEFAULT_CARTESIAN_MARK_LINE_THEME as unknown as CartesianMarkLineAttrs;\n protected _line!: Segment | ArcSegment;\n\n constructor(attributes: CartesianMarkLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CartesianMarkLine.defaultAttributes, attributes));\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as CartesianMarkLineAttrs;\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 protected getLabelOffsetByDirection(direction: ICartesianMarkLineLabelPosition) {\n // labelHeight\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n // labelWidth\n // eslint-disable-next-line max-len\n const labelRectWidth = Math.abs(\n (this._label.getTextShape().AABBBounds?.x2 ?? 0) - (this._label.getTextShape()?.AABBBounds.x1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextWidth = Math.abs(\n (this._label.getBgRect().AABBBounds?.x2 ?? 0) - (this._label.getBgRect()?.AABBBounds.x1 ?? 0)\n );\n const labelWidth = Math.max(labelRectWidth, labelTextWidth);\n\n switch (direction) {\n case ICartesianMarkLineLabelPosition.start:\n return {\n offsetX: -labelWidth / 2,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideStartTop:\n return {\n offsetX: labelWidth / 2,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideStartBottom:\n return {\n offsetX: labelWidth / 2,\n offsetY: -labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.middle:\n return {\n offsetX: 0,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideMiddleTop:\n return {\n offsetX: 0,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideMiddleBottom:\n return {\n offsetX: 0,\n offsetY: -labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.end:\n return {\n offsetX: labelWidth / 2,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideEndTop:\n return {\n offsetX: -labelWidth / 2,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideEndBottom:\n return {\n offsetX: -labelWidth / 2,\n offsetY: -labelHeight / 2\n };\n default: // default end\n return {\n offsetX: labelWidth / 2,\n offsetY: 0\n };\n }\n }\n\n protected getPositionByDirection(direction: ICartesianMarkLineLabelPosition) {\n const { label = {} } = this.attribute;\n const { refX = 0, refY = 0 } = label;\n const points = this._line.getMainSegmentPoints();\n const labelAngle = this._line.getEndAngle() ?? 0;\n\n const totalRefX = refX + this.getLabelOffsetByDirection(direction).offsetX;\n const totalRefY = refY + this.getLabelOffsetByDirection(direction).offsetY;\n\n const labelOffsetX = totalRefX * Math.cos(labelAngle) + totalRefY * Math.cos(labelAngle - Math.PI / 2);\n const labelOffsetY = totalRefX * Math.sin(labelAngle) + totalRefY * Math.sin(labelAngle - Math.PI / 2);\n\n if (direction.includes('start') || direction.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 (direction.includes('middle') || direction.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 setLabelPos(): void {\n super.setLabelPos();\n const { label = {} } = this.attribute as CartesianMarkLineAttrs;\n const { position = 'end', autoRotate = true } = label;\n const labelAttr = this.getPositionByDirection(position as any);\n this._label.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle + (label.refAngle ?? 0) : 0\n });\n }\n\n protected createSegment() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as CartesianMarkLineAttrs;\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 } = this\n .attribute as CartesianMarkLineAttrs;\n if (this._line) {\n this._line.setAttributes({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment\n });\n }\n }\n}\n"]}
@@ -1,22 +0,0 @@
1
- import { ArcSegment } from '../../segment';
2
- import { BaseMarkLine } from '../base-line';
3
- import { IPolarMarkLabelPosition } from '../type';
4
- import type { PolarMarkArcLineAttrs } from '../type';
5
- import type { ComponentOptions } from '../../interface';
6
- export declare class PolarMarkArcLine extends BaseMarkLine<IPolarMarkLabelPosition> {
7
- name: string;
8
- static defaultAttributes: Partial<PolarMarkArcLineAttrs>;
9
- protected _line: ArcSegment;
10
- constructor(attributes: PolarMarkArcLineAttrs, options?: ComponentOptions);
11
- protected isValidPoints(): boolean;
12
- protected getPositionByDirection(direction: IPolarMarkLabelPosition): {
13
- position: {
14
- x: number;
15
- y: number;
16
- };
17
- angle: number;
18
- };
19
- protected setLabelPos(): void;
20
- protected createSegment(): ArcSegment;
21
- protected setLineAttributes(): void;
22
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/polar/arc-line.ts"],"names":[],"mappings":"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","file":"arc-line.js","sourcesContent":["import { merge } from '@visactor/vutils';\nimport { ArcSegment } from '../../segment';\nimport { loadPolarMarkArcLineComponent } from '../register';\nimport { DEFAULT_STATES } from '../../constant';\nimport { BaseMarkLine } from '../base-line';\nimport { IPolarMarkLabelPosition } from '../type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { PolarMarkArcLineAttrs } from '../type';\nimport { DEFAULT_POLAR_MARK_LINE_THEME } from '../config';\nimport type { ComponentOptions } from '../../interface';\n\nloadPolarMarkArcLineComponent();\nexport class PolarMarkArcLine extends BaseMarkLine<IPolarMarkLabelPosition> {\n name = 'polarMarkArcLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<PolarMarkArcLineAttrs> =\n DEFAULT_POLAR_MARK_LINE_THEME as unknown as PolarMarkArcLineAttrs;\n protected _line!: ArcSegment;\n\n constructor(attributes: PolarMarkArcLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, PolarMarkArcLine.defaultAttributes, attributes));\n }\n\n protected isValidPoints() {\n return true;\n }\n\n protected getPositionByDirection(direction: IPolarMarkLabelPosition) {\n const { center, radius, startAngle, endAngle, label } = this.attribute as PolarMarkArcLineAttrs;\n const { refX = 0, refY = 0 } = label;\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n let angle;\n // tag在正交方向是向内偏移,还是向外偏移\n // 不偏移: 0, 内: -1, 外: 1\n let orthogonalOffsetDirection;\n\n switch (direction) {\n case IPolarMarkLabelPosition.center:\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = 0;\n break;\n case IPolarMarkLabelPosition.arcInnerStart:\n angle = startAngle;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterStart:\n angle = startAngle;\n orthogonalOffsetDirection = 1;\n break;\n case IPolarMarkLabelPosition.arcInnerEnd:\n angle = endAngle;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterEnd:\n angle = endAngle;\n orthogonalOffsetDirection = 1;\n break;\n case IPolarMarkLabelPosition.arcInnerMiddle:\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterMiddle:\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = 1;\n break;\n default: // default arcInnerMiddle\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = -1;\n }\n\n return {\n position: {\n x:\n center.x +\n (radius + (orthogonalOffsetDirection * labelHeight) / 2 + refY) * Math.cos(angle) +\n refX * Math.cos(angle - Math.PI / 2),\n y:\n center.y +\n (radius + (orthogonalOffsetDirection * labelHeight) / 2 + refY) * Math.sin(angle) +\n refX * Math.sin(angle - Math.PI / 2)\n },\n angle\n };\n }\n\n protected setLabelPos(): void {\n super.setLabelPos();\n const { label = {} } = this.attribute as PolarMarkArcLineAttrs;\n const { position = 'arcInnerMiddle', autoRotate = true } = label;\n const labelAttr = this.getPositionByDirection(position as any);\n this._label.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle - Math.PI / 2 + (label.refAngle ?? 0) : 0\n });\n }\n\n protected createSegment() {\n const { center, radius, startAngle, endAngle, startSymbol, endSymbol, lineStyle, state } = this\n .attribute as PolarMarkArcLineAttrs;\n return new ArcSegment({\n center,\n radius,\n startAngle,\n endAngle,\n startSymbol,\n endSymbol,\n lineStyle,\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 { center, radius, startAngle, endAngle, startSymbol, endSymbol, lineStyle } = this\n .attribute as PolarMarkArcLineAttrs;\n if (this._line) {\n (this._line as any).setAttributes({\n center,\n radius,\n startAngle,\n endAngle,\n startSymbol,\n endSymbol,\n lineStyle\n });\n }\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/polar/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { IArc, IGroup, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { TagAttributes } from '../../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../../tag';\nimport { Marker } from '../base';\nimport { DEFAULT_POLAR_MARK_AREA_THEME } from '../config';\nimport { IPolarMarkLabelPosition, type PolarMarkAreaAttrs } from '../type';\nimport { limitShapeInBounds } from '../../util/limit-shape';\nimport type { ComponentOptions } from '../../interface';\nimport { loadPolarMarkAreaComponent } from '../register';\nimport { DEFAULT_STATES } from '../../constant';\n\nloadPolarMarkAreaComponent();\nexport class PolarMarkArea extends Marker<PolarMarkAreaAttrs> {\n name = 'polarMarkArea';\n static defaultAttributes = DEFAULT_POLAR_MARK_AREA_THEME;\n private _area!: IArc;\n\n getArea() {\n return this._area;\n }\n\n getLabel() {\n return this._label;\n }\n\n constructor(attributes: PolarMarkAreaAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, PolarMarkArea.defaultAttributes, attributes));\n }\n\n protected getPositionByDirection(direction: string) {\n const { center, innerRadius, outerRadius, startAngle, endAngle, label } = this.attribute as PolarMarkAreaAttrs;\n const { refX = 0, refY = 0 } = label;\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n let radius;\n let angle;\n // tag在正交方向是向内偏移,还是向外偏移\n // 不偏移: 0, 内: -1, 外: 1\n let orthogonalOffsetDirection;\n\n switch (direction) {\n case IPolarMarkLabelPosition.center:\n radius = (innerRadius + outerRadius) / 2;\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = 0;\n break;\n case IPolarMarkLabelPosition.arcInnerStart:\n radius = innerRadius;\n angle = startAngle;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterStart:\n radius = outerRadius;\n angle = startAngle;\n orthogonalOffsetDirection = 1;\n break;\n case IPolarMarkLabelPosition.arcInnerEnd:\n radius = innerRadius;\n angle = endAngle;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterEnd:\n radius = outerRadius;\n angle = endAngle;\n orthogonalOffsetDirection = 1;\n break;\n case IPolarMarkLabelPosition.arcInnerMiddle:\n radius = innerRadius;\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = -1;\n break;\n case IPolarMarkLabelPosition.arcOuterMiddle:\n radius = outerRadius;\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = 1;\n break;\n default: // default arcInnerMiddle\n radius = innerRadius;\n angle = (startAngle + endAngle) / 2;\n orthogonalOffsetDirection = -1;\n }\n\n return {\n position: {\n x:\n center.x +\n (radius + (orthogonalOffsetDirection * labelHeight) / 2 + refY) * Math.cos(angle) +\n refX * Math.cos(angle - Math.PI / 2),\n y:\n center.y +\n (radius + (orthogonalOffsetDirection * labelHeight) / 2 + refY) * Math.sin(angle) +\n refX * Math.sin(angle - Math.PI / 2)\n },\n angle\n };\n }\n\n protected setLabelPos() {\n if (this._label && this._area) {\n const { label = {} } = this.attribute as PolarMarkAreaAttrs;\n const { position: labelPosition = 'arcInnerMiddle', autoRotate = true } = label;\n const labelAttr = this.getPositionByDirection(labelPosition);\n\n this._label.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle - Math.PI / 2 + (label.refAngle ?? 0) : 0\n });\n\n if (this.attribute.limitRect && label.confine) {\n const { x, y, width, height } = this.attribute.limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n }\n\n protected initMarker(container: IGroup) {\n const { center, innerRadius, outerRadius, startAngle, endAngle, areaStyle, label, state } = this\n .attribute as PolarMarkAreaAttrs;\n const area = graphicCreator.arc({\n x: center.x,\n y: center.y,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n ...areaStyle\n });\n area.states = merge({}, DEFAULT_STATES, state?.area);\n area.name = 'polar-mark-area-area';\n this._area = area;\n container.add(area);\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-area-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { center, innerRadius, outerRadius, startAngle, endAngle, areaStyle, label } = this\n .attribute as PolarMarkAreaAttrs;\n if (this._area) {\n this._area.setAttributes({\n x: center.x,\n y: center.y,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n ...areaStyle\n });\n }\n if (this._area) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes)\n });\n }\n this.setLabelPos();\n }\n\n protected isValidPoints() {\n return true;\n }\n}\n"]}
@@ -1 +0,0 @@
1
-
@@ -1,3 +0,0 @@
1
-
2
-
3
- //# sourceMappingURL=line.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/marker/polar/line.ts"],"names":[],"mappings":"","file":"line.js","sourcesContent":["// import { merge } from '@visactor/vutils';\n// import { DEFAULT_COMMON_MARK_LINE_THEME } from '../config';\n// import type { PolarMarkLineAttrs } from '../type';\n// import { DEFAULT_STATES } from '../../constant';\n// import { BaseMarkLine } from '../base-line';\n// import { loadPolarMarkLineComponent } from '../register';\n\n// loadPolarMarkLineComponent();\n// export class PolarMarkLine extends BaseMarkLine {\n// name = 'polarMarkLine';\n// static defaultAttributes: Partial<PolarMarkLineAttrs> = DEFAULT_COMMON_MARK_LINE_THEME;\n// protected isValidPoints() {\n// return true\n// }\n\n// protected createSegment() {\n// const {\n// center,\n// radius,\n// startAngle,\n// endAngle,\n// startSymbol,\n// endSymbol,\n// lineStyle,\n// state\n// } = this.attribute as PolarMarkLineAttrs;\n// return new ArcSegment({\n// center,\n// radius,\n// startAngle,\n// endAngle,\n// startSymbol,\n// endSymbol,\n// lineStyle,\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 {\n// center,\n// radius,\n// startAngle,\n// endAngle,\n// startSymbol,\n// endSymbol,\n// lineStyle,\n// } = this.attribute as PolarMarkArcLineAttrs;\n// if (this._line) {\n// (this._line as any).setAttributes({\n// center,\n// radius,\n// startAngle,\n// endAngle,\n// startSymbol,\n// endSymbol,\n// lineStyle\n// });\n// }\n// }\n// }\n"]}