@visactor/vrender-components 1.0.0-alpha.5 → 1.0.0-alpha.7
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.
- package/cjs/animation/axis-animate.js +4 -4
- package/cjs/animation/axis-animate.js.map +1 -1
- package/cjs/axis/base.d.ts +1 -0
- package/cjs/axis/base.js +6 -4
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/util.js +5 -5
- package/cjs/axis/util.js.map +1 -1
- package/cjs/brush/brush.d.ts +16 -10
- package/cjs/brush/brush.js +81 -93
- package/cjs/brush/brush.js.map +1 -1
- package/cjs/brush/config.d.ts +5 -5
- package/cjs/brush/config.js +5 -5
- package/cjs/brush/config.js.map +1 -1
- package/cjs/brush/type.d.ts +1 -0
- package/cjs/brush/type.js +1 -1
- package/cjs/brush/type.js.map +1 -1
- package/cjs/data-zoom/data-zoom.d.ts +3 -0
- package/cjs/data-zoom/data-zoom.js +36 -19
- package/cjs/data-zoom/data-zoom.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/label/base.js +17 -3
- package/cjs/label/base.js.map +1 -1
- package/cjs/marker/animate/animate.d.ts +3 -3
- package/cjs/marker/animate/animate.js.map +1 -1
- package/cjs/marker/animate/clip-in.d.ts +1 -1
- package/cjs/marker/animate/clip-in.js +6 -3
- package/cjs/marker/animate/clip-in.js.map +1 -1
- package/cjs/marker/animate/fade-in.d.ts +3 -3
- package/cjs/marker/animate/fade-in.js +10 -4
- package/cjs/marker/animate/fade-in.js.map +1 -1
- package/cjs/marker/animate/fade-out.d.ts +3 -3
- package/cjs/marker/animate/fade-out.js +10 -4
- package/cjs/marker/animate/fade-out.js.map +1 -1
- package/cjs/marker/arc-area.d.ts +8 -5
- package/cjs/marker/arc-area.js +18 -39
- package/cjs/marker/arc-area.js.map +1 -1
- package/cjs/marker/arc-line.d.ts +6 -4
- package/cjs/marker/arc-line.js +12 -9
- package/cjs/marker/arc-line.js.map +1 -1
- package/cjs/marker/area.d.ts +6 -4
- package/cjs/marker/area.js +14 -32
- package/cjs/marker/area.js.map +1 -1
- package/cjs/marker/base.d.ts +2 -3
- package/cjs/marker/base.js.map +1 -1
- package/cjs/marker/common-line.d.ts +11 -7
- package/cjs/marker/common-line.js +11 -31
- package/cjs/marker/common-line.js.map +1 -1
- package/cjs/marker/config.d.ts +2 -0
- package/cjs/marker/config.js +2 -0
- package/cjs/marker/config.js.map +1 -1
- package/cjs/marker/line.d.ts +6 -4
- package/cjs/marker/line.js +10 -4
- package/cjs/marker/line.js.map +1 -1
- package/cjs/marker/mixin/label.d.ts +16 -0
- package/cjs/marker/mixin/label.js +57 -0
- package/cjs/marker/mixin/label.js.map +1 -0
- package/cjs/marker/type.d.ts +19 -16
- package/cjs/marker/type.js.map +1 -1
- package/cjs/scrollbar/scrollbar.d.ts +1 -0
- package/cjs/scrollbar/scrollbar.js +21 -12
- package/cjs/scrollbar/scrollbar.js.map +1 -1
- package/cjs/slider/slider.d.ts +3 -0
- package/cjs/slider/slider.js +48 -27
- package/cjs/slider/slider.js.map +1 -1
- package/cjs/switch/switch.js +2 -2
- package/cjs/switch/switch.js.map +1 -1
- package/cjs/util/event.d.ts +1 -0
- package/cjs/util/event.js +14 -0
- package/cjs/util/event.js.map +1 -0
- package/dist/index.es.js +1606 -924
- package/es/animation/axis-animate.js +4 -4
- package/es/animation/axis-animate.js.map +1 -1
- package/es/axis/base.d.ts +1 -0
- package/es/axis/base.js +7 -5
- package/es/axis/base.js.map +1 -1
- package/es/axis/util.js +5 -6
- package/es/axis/util.js.map +1 -1
- package/es/brush/brush.d.ts +16 -10
- package/es/brush/brush.js +83 -95
- package/es/brush/brush.js.map +1 -1
- package/es/brush/config.d.ts +5 -5
- package/es/brush/config.js +5 -5
- package/es/brush/config.js.map +1 -1
- package/es/brush/type.d.ts +1 -0
- package/es/brush/type.js +1 -1
- package/es/brush/type.js.map +1 -1
- package/es/data-zoom/data-zoom.d.ts +3 -0
- package/es/data-zoom/data-zoom.js +35 -16
- package/es/data-zoom/data-zoom.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/label/base.js +17 -3
- package/es/label/base.js.map +1 -1
- package/es/marker/animate/animate.d.ts +3 -3
- package/es/marker/animate/animate.js.map +1 -1
- package/es/marker/animate/clip-in.d.ts +1 -1
- package/es/marker/animate/clip-in.js +6 -2
- package/es/marker/animate/clip-in.js.map +1 -1
- package/es/marker/animate/fade-in.d.ts +3 -3
- package/es/marker/animate/fade-in.js +11 -3
- package/es/marker/animate/fade-in.js.map +1 -1
- package/es/marker/animate/fade-out.d.ts +3 -3
- package/es/marker/animate/fade-out.js +11 -3
- package/es/marker/animate/fade-out.js.map +1 -1
- package/es/marker/arc-area.d.ts +8 -5
- package/es/marker/arc-area.js +19 -41
- package/es/marker/arc-area.js.map +1 -1
- package/es/marker/arc-line.d.ts +6 -4
- package/es/marker/arc-line.js +12 -9
- package/es/marker/arc-line.js.map +1 -1
- package/es/marker/area.d.ts +6 -4
- package/es/marker/area.js +15 -34
- package/es/marker/area.js.map +1 -1
- package/es/marker/base.d.ts +2 -3
- package/es/marker/base.js.map +1 -1
- package/es/marker/common-line.d.ts +11 -7
- package/es/marker/common-line.js +14 -34
- package/es/marker/common-line.js.map +1 -1
- package/es/marker/config.d.ts +2 -0
- package/es/marker/config.js +2 -0
- package/es/marker/config.js.map +1 -1
- package/es/marker/line.d.ts +6 -4
- package/es/marker/line.js +10 -4
- package/es/marker/line.js.map +1 -1
- package/es/marker/mixin/label.d.ts +16 -0
- package/es/marker/mixin/label.js +45 -0
- package/es/marker/mixin/label.js.map +1 -0
- package/es/marker/type.d.ts +19 -16
- package/es/marker/type.js.map +1 -1
- package/es/scrollbar/scrollbar.d.ts +1 -0
- package/es/scrollbar/scrollbar.js +22 -11
- package/es/scrollbar/scrollbar.js.map +1 -1
- package/es/slider/slider.d.ts +3 -0
- package/es/slider/slider.js +49 -26
- package/es/slider/slider.js.map +1 -1
- package/es/switch/switch.js +2 -2
- package/es/switch/switch.js.map +1 -1
- package/es/util/event.d.ts +1 -0
- package/es/util/event.js +6 -0
- package/es/util/event.js.map +1 -0
- package/package.json +9 -9
package/es/marker/arc-area.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { graphicCreator } from "@visactor/vrender-core";
|
|
2
2
|
|
|
3
|
-
import { merge } from "@visactor/vutils";
|
|
4
|
-
|
|
5
|
-
import { Tag } from "../tag";
|
|
3
|
+
import { merge, mixin } from "@visactor/vutils";
|
|
6
4
|
|
|
7
5
|
import { Marker } from "./base";
|
|
8
6
|
|
|
@@ -18,6 +16,8 @@ import { DEFAULT_STATES } from "../constant";
|
|
|
18
16
|
|
|
19
17
|
import { DefaultExitMarkerAnimation, DefaultUpdateMarkAreaAnimation, markArcAreaAnimate } from "./animate/animate";
|
|
20
18
|
|
|
19
|
+
import { MarkLabelMixin } from "./mixin/label";
|
|
20
|
+
|
|
21
21
|
loadMarkArcAreaComponent();
|
|
22
22
|
|
|
23
23
|
export function registerMarkArcAreaAnimate() {
|
|
@@ -31,19 +31,13 @@ export class MarkArcArea extends Marker {
|
|
|
31
31
|
getArea() {
|
|
32
32
|
return this._area;
|
|
33
33
|
}
|
|
34
|
-
getLabel() {
|
|
35
|
-
return this._label;
|
|
36
|
-
}
|
|
37
34
|
constructor(attributes, options) {
|
|
38
|
-
super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, MarkArcArea.defaultAttributes, attributes,
|
|
39
|
-
|
|
40
|
-
autoRotate: !0
|
|
41
|
-
}
|
|
42
|
-
})), this.name = "markArcArea", this.defaultUpdateAnimation = DefaultUpdateMarkAreaAnimation,
|
|
35
|
+
super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, MarkArcArea.defaultAttributes, attributes)),
|
|
36
|
+
this.name = "markArcArea", this.defaultUpdateAnimation = DefaultUpdateMarkAreaAnimation,
|
|
43
37
|
this.defaultExitAnimation = DefaultExitMarkerAnimation;
|
|
44
38
|
}
|
|
45
|
-
getPointAttrByPosition(position) {
|
|
46
|
-
const {center: center, innerRadius: innerRadius, outerRadius: outerRadius, startAngle: startAngle, endAngle: endAngle
|
|
39
|
+
getPointAttrByPosition(position, labelAttrs) {
|
|
40
|
+
const {center: center, innerRadius: innerRadius, outerRadius: outerRadius, startAngle: startAngle, endAngle: endAngle} = this.attribute, {refX: refX = 0, refY: refY = 0} = labelAttrs;
|
|
47
41
|
let radius, angle;
|
|
48
42
|
switch (position) {
|
|
49
43
|
case IMarkCommonArcLabelPosition.center:
|
|
@@ -85,16 +79,16 @@ export class MarkArcArea extends Marker {
|
|
|
85
79
|
angle: angle
|
|
86
80
|
};
|
|
87
81
|
}
|
|
88
|
-
setLabelPos() {
|
|
82
|
+
setLabelPos(labelNode, labelAttrs) {
|
|
89
83
|
var _a;
|
|
90
|
-
if (this.
|
|
91
|
-
const {
|
|
92
|
-
if (
|
|
93
|
-
angle: autoRotate ? labelAttr.angle - Math.PI / 2 + (null !== (_a =
|
|
94
|
-
textStyle: Object.assign(Object.assign({}, DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP[labelPosition]),
|
|
95
|
-
})), this.attribute.limitRect &&
|
|
84
|
+
if (this._area) {
|
|
85
|
+
const {position: labelPosition = "arcInnerMiddle", autoRotate: autoRotate} = labelAttrs, labelAttr = this.getPointAttrByPosition(labelPosition, labelAttrs);
|
|
86
|
+
if (labelNode.setAttributes(Object.assign(Object.assign({}, labelAttr.position), {
|
|
87
|
+
angle: autoRotate ? labelAttr.angle - Math.PI / 2 + (null !== (_a = labelAttrs.refAngle) && void 0 !== _a ? _a : 0) : 0,
|
|
88
|
+
textStyle: Object.assign(Object.assign({}, DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP[labelPosition]), labelAttrs.textStyle)
|
|
89
|
+
})), this.attribute.limitRect && labelAttrs.confine) {
|
|
96
90
|
const {x: x, y: y, width: width, height: height} = this.attribute.limitRect;
|
|
97
|
-
limitShapeInBounds(
|
|
91
|
+
limitShapeInBounds(labelNode, {
|
|
98
92
|
x1: x,
|
|
99
93
|
y1: y,
|
|
100
94
|
x2: x + width,
|
|
@@ -104,7 +98,7 @@ export class MarkArcArea extends Marker {
|
|
|
104
98
|
}
|
|
105
99
|
}
|
|
106
100
|
initMarker(container) {
|
|
107
|
-
const {center: center, innerRadius: innerRadius, outerRadius: outerRadius, startAngle: startAngle, endAngle: endAngle, areaStyle: areaStyle,
|
|
101
|
+
const {center: center, innerRadius: innerRadius, outerRadius: outerRadius, startAngle: startAngle, endAngle: endAngle, areaStyle: areaStyle, state: state} = this.attribute, area = graphicCreator.arc(Object.assign({
|
|
108
102
|
x: center.x,
|
|
109
103
|
y: center.y,
|
|
110
104
|
innerRadius: innerRadius,
|
|
@@ -113,15 +107,7 @@ export class MarkArcArea extends Marker {
|
|
|
113
107
|
endAngle: endAngle
|
|
114
108
|
}, areaStyle));
|
|
115
109
|
area.states = merge({}, DEFAULT_STATES, null == state ? void 0 : state.area), area.name = "polar-mark-area-area",
|
|
116
|
-
this._area = area, container.add(area);
|
|
117
|
-
const markLabel = new Tag(Object.assign(Object.assign({}, label), {
|
|
118
|
-
state: {
|
|
119
|
-
panel: merge({}, DEFAULT_STATES, null == state ? void 0 : state.labelBackground),
|
|
120
|
-
text: merge({}, DEFAULT_STATES, null == state ? void 0 : state.label)
|
|
121
|
-
}
|
|
122
|
-
}));
|
|
123
|
-
markLabel.name = "mark-area-label", this._label = markLabel, container.add(markLabel),
|
|
124
|
-
this.setLabelPos();
|
|
110
|
+
this._area = area, container.add(area), this._addMarkLabels(container, "mark-area-label", MarkArcArea.defaultAttributes.label);
|
|
125
111
|
}
|
|
126
112
|
updateMarker() {
|
|
127
113
|
const {center: center, innerRadius: innerRadius, outerRadius: outerRadius, startAngle: startAngle, endAngle: endAngle, areaStyle: areaStyle, label: label, state: state} = this.attribute;
|
|
@@ -133,20 +119,12 @@ export class MarkArcArea extends Marker {
|
|
|
133
119
|
startAngle: startAngle,
|
|
134
120
|
endAngle: endAngle
|
|
135
121
|
}, areaStyle)), this._area.states = merge({}, DEFAULT_STATES, null == state ? void 0 : state.area)),
|
|
136
|
-
this.
|
|
137
|
-
dx: 0,
|
|
138
|
-
dy: 0
|
|
139
|
-
}, label), {
|
|
140
|
-
state: {
|
|
141
|
-
panel: merge({}, DEFAULT_STATES, null == state ? void 0 : state.labelBackground),
|
|
142
|
-
text: merge({}, DEFAULT_STATES, null == state ? void 0 : state.label)
|
|
143
|
-
}
|
|
144
|
-
})), this.setLabelPos());
|
|
122
|
+
this._updateMarkLabels(MarkArcArea.defaultAttributes.label);
|
|
145
123
|
}
|
|
146
124
|
isValidPoints() {
|
|
147
125
|
return !0;
|
|
148
126
|
}
|
|
149
127
|
}
|
|
150
128
|
|
|
151
|
-
MarkArcArea.defaultAttributes = DEFAULT_MARK_ARC_AREA_THEME;
|
|
129
|
+
MarkArcArea.defaultAttributes = DEFAULT_MARK_ARC_AREA_THEME, mixin(MarkArcArea, MarkLabelMixin);
|
|
152
130
|
//# sourceMappingURL=arc-area.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/arc-area.ts"],"names":[],"mappings":"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","file":"arc-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_MARK_ARC_AREA_THEME, DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP } from './config';\nimport type { CommonMarkAreaAnimationType, MarkerAnimationState } from './type';\n// eslint-disable-next-line no-duplicate-imports\nimport { IMarkCommonArcLabelPosition, type MarkArcAreaAttrs } from './type';\nimport { limitShapeInBounds } from '../util/limit-shape';\nimport type { ComponentOptions } from '../interface';\nimport { loadMarkArcAreaComponent } from './register';\nimport { DEFAULT_STATES } from '../constant';\nimport { DefaultExitMarkerAnimation, DefaultUpdateMarkAreaAnimation, markArcAreaAnimate } from './animate/animate';\n\nloadMarkArcAreaComponent();\n\nexport function registerMarkArcAreaAnimate() {\n MarkArcArea._animate = markArcAreaAnimate;\n}\n\nexport class MarkArcArea extends Marker<MarkArcAreaAttrs, CommonMarkAreaAnimationType> {\n name = 'markArcArea';\n static defaultAttributes = DEFAULT_MARK_ARC_AREA_THEME;\n private _area!: IArc;\n\n /** animate */\n defaultUpdateAnimation = DefaultUpdateMarkAreaAnimation;\n defaultExitAnimation = DefaultExitMarkerAnimation;\n protected markerAnimate(state: MarkerAnimationState) {\n if (MarkArcArea._animate && this._animationConfig) {\n MarkArcArea._animate(this._area, this._label, this._animationConfig, state);\n }\n }\n\n getArea() {\n return this._area;\n }\n\n getLabel() {\n return this._label;\n }\n\n constructor(attributes: MarkArcAreaAttrs, options?: ComponentOptions) {\n // eslint-disable-next-line max-len\n super(\n options?.skipDefault\n ? attributes\n : merge({}, MarkArcArea.defaultAttributes, attributes, { label: { autoRotate: true } })\n );\n }\n\n protected getPointAttrByPosition(position: IMarkCommonArcLabelPosition) {\n const { center, innerRadius, outerRadius, startAngle, endAngle, label } = this.attribute as MarkArcAreaAttrs;\n const { refX = 0, refY = 0 } = label;\n\n let radius;\n let angle;\n\n switch (position) {\n case IMarkCommonArcLabelPosition.center:\n radius = (innerRadius + outerRadius) / 2;\n angle = (startAngle + endAngle) / 2;\n break;\n case IMarkCommonArcLabelPosition.arcInnerStart:\n radius = innerRadius;\n angle = startAngle;\n break;\n case IMarkCommonArcLabelPosition.arcOuterStart:\n radius = outerRadius;\n angle = startAngle;\n break;\n case IMarkCommonArcLabelPosition.arcInnerEnd:\n radius = innerRadius;\n angle = endAngle;\n break;\n case IMarkCommonArcLabelPosition.arcOuterEnd:\n radius = outerRadius;\n angle = endAngle;\n break;\n case IMarkCommonArcLabelPosition.arcInnerMiddle:\n radius = innerRadius;\n angle = (startAngle + endAngle) / 2;\n break;\n case IMarkCommonArcLabelPosition.arcOuterMiddle:\n radius = outerRadius;\n angle = (startAngle + endAngle) / 2;\n break;\n default: // default arcInnerMiddle\n radius = innerRadius;\n angle = (startAngle + endAngle) / 2;\n }\n\n return {\n position: {\n x: center.x + (radius + refY) * Math.cos(angle) + refX * Math.cos(angle - Math.PI / 2),\n y: center.y + (radius + refY) * Math.sin(angle) + 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 MarkArcAreaAttrs;\n const { position: labelPosition = 'arcInnerMiddle', autoRotate } = label;\n const labelAttr = this.getPointAttrByPosition(labelPosition as IMarkCommonArcLabelPosition);\n\n this._label.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle - Math.PI / 2 + (label.refAngle ?? 0) : 0,\n textStyle: {\n ...DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP[labelPosition],\n ...label.textStyle\n }\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 MarkArcAreaAttrs;\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, state } = this\n .attribute as MarkArcAreaAttrs;\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 this._area.states = merge({}, DEFAULT_STATES, state?.area);\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 protected isValidPoints() {\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/marker/arc-area.ts"],"names":[],"mappings":"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","file":"arc-area.js","sourcesContent":["import type { IArc, IGroup } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { merge, mixin } from '@visactor/vutils';\nimport type { TagAttributes } from '../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport type { Tag } from '../tag';\nimport { Marker } from './base';\nimport { DEFAULT_MARK_ARC_AREA_THEME, DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP } from './config';\nimport type { CommonMarkAreaAnimationType, MarkerAnimationState, MarkerArcAreaLabelAttrs } from './type';\n// eslint-disable-next-line no-duplicate-imports\nimport { IMarkCommonArcLabelPosition, type MarkArcAreaAttrs } from './type';\nimport { limitShapeInBounds } from '../util/limit-shape';\nimport type { ComponentOptions } from '../interface';\nimport { loadMarkArcAreaComponent } from './register';\nimport { DEFAULT_STATES } from '../constant';\nimport { DefaultExitMarkerAnimation, DefaultUpdateMarkAreaAnimation, markArcAreaAnimate } from './animate/animate';\nimport { MarkLabelMixin } from './mixin/label';\n\nloadMarkArcAreaComponent();\n\nexport function registerMarkArcAreaAnimate() {\n MarkArcArea._animate = markArcAreaAnimate;\n}\n\nexport interface MarkArcArea\n extends Pick<MarkLabelMixin<MarkArcAreaAttrs>, '_addMarkLabels' | '_updateMarkLabels' | 'getLabel' | '_label'>,\n Marker<MarkArcAreaAttrs, CommonMarkAreaAnimationType> {}\n\nexport class MarkArcArea extends Marker<MarkArcAreaAttrs, CommonMarkAreaAnimationType> {\n name = 'markArcArea';\n static defaultAttributes = DEFAULT_MARK_ARC_AREA_THEME;\n private _area!: IArc;\n\n /** animate */\n defaultUpdateAnimation = DefaultUpdateMarkAreaAnimation;\n defaultExitAnimation = DefaultExitMarkerAnimation;\n protected markerAnimate(state: MarkerAnimationState) {\n if (MarkArcArea._animate && this._animationConfig) {\n MarkArcArea._animate(this._area, this._label, this._animationConfig, state);\n }\n }\n\n getArea() {\n return this._area;\n }\n\n constructor(attributes: MarkArcAreaAttrs, options?: ComponentOptions) {\n // eslint-disable-next-line max-len\n super(options?.skipDefault ? attributes : merge({}, MarkArcArea.defaultAttributes, attributes));\n }\n\n protected getPointAttrByPosition(position: IMarkCommonArcLabelPosition, labelAttrs: MarkerArcAreaLabelAttrs) {\n const { center, innerRadius, outerRadius, startAngle, endAngle } = this.attribute as MarkArcAreaAttrs;\n const { refX = 0, refY = 0 } = labelAttrs;\n\n let radius;\n let angle;\n\n switch (position) {\n case IMarkCommonArcLabelPosition.center:\n radius = (innerRadius + outerRadius) / 2;\n angle = (startAngle + endAngle) / 2;\n break;\n case IMarkCommonArcLabelPosition.arcInnerStart:\n radius = innerRadius;\n angle = startAngle;\n break;\n case IMarkCommonArcLabelPosition.arcOuterStart:\n radius = outerRadius;\n angle = startAngle;\n break;\n case IMarkCommonArcLabelPosition.arcInnerEnd:\n radius = innerRadius;\n angle = endAngle;\n break;\n case IMarkCommonArcLabelPosition.arcOuterEnd:\n radius = outerRadius;\n angle = endAngle;\n break;\n case IMarkCommonArcLabelPosition.arcInnerMiddle:\n radius = innerRadius;\n angle = (startAngle + endAngle) / 2;\n break;\n case IMarkCommonArcLabelPosition.arcOuterMiddle:\n radius = outerRadius;\n angle = (startAngle + endAngle) / 2;\n break;\n default: // default arcInnerMiddle\n radius = innerRadius;\n angle = (startAngle + endAngle) / 2;\n }\n\n return {\n position: {\n x: center.x + (radius + refY) * Math.cos(angle) + refX * Math.cos(angle - Math.PI / 2),\n y: center.y + (radius + refY) * Math.sin(angle) + refX * Math.sin(angle - Math.PI / 2)\n },\n angle\n };\n }\n\n protected setLabelPos(labelNode: Tag, labelAttrs: MarkerArcAreaLabelAttrs) {\n if (this._area) {\n const { position: labelPosition = 'arcInnerMiddle', autoRotate } = labelAttrs;\n const labelAttr = this.getPointAttrByPosition(labelPosition as IMarkCommonArcLabelPosition, labelAttrs);\n\n labelNode.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle - Math.PI / 2 + (labelAttrs.refAngle ?? 0) : 0,\n textStyle: {\n ...DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP[labelPosition],\n ...labelAttrs.textStyle\n }\n });\n\n if (this.attribute.limitRect && labelAttrs.confine) {\n const { x, y, width, height } = this.attribute.limitRect;\n limitShapeInBounds(labelNode, {\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, state } = this\n .attribute as MarkArcAreaAttrs;\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 // add label\n this._addMarkLabels(container, 'mark-area-label', MarkArcArea.defaultAttributes.label as TagAttributes);\n }\n\n protected updateMarker() {\n const { center, innerRadius, outerRadius, startAngle, endAngle, areaStyle, label, state } = this\n .attribute as MarkArcAreaAttrs;\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 this._area.states = merge({}, DEFAULT_STATES, state?.area);\n }\n\n // update label\n this._updateMarkLabels(MarkArcArea.defaultAttributes.label as TagAttributes);\n }\n\n protected isValidPoints() {\n return true;\n }\n}\n\nmixin(MarkArcArea, MarkLabelMixin);\n"]}
|
package/es/marker/arc-line.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ArcSegment } from '../segment';
|
|
2
2
|
import { MarkCommonLine } from './common-line';
|
|
3
3
|
import type { ComponentOptions } from '../interface';
|
|
4
|
-
import type { IArcGraphicAttribute } from '@visactor/vrender-core';
|
|
4
|
+
import type { IArcGraphicAttribute, IGroup } from '@visactor/vrender-core';
|
|
5
5
|
import { IMarkCommonArcLabelPosition } from './type';
|
|
6
|
-
import type { MarkArcLineAttrs, MarkerAnimationState } from './type';
|
|
6
|
+
import type { MarkArcLineAttrs, MarkerAnimationState, MarkerLineLabelAttrs } from './type';
|
|
7
7
|
export declare function registerMarkArcLineAnimate(): void;
|
|
8
8
|
export declare class MarkArcLine extends MarkCommonLine<IArcGraphicAttribute, IMarkCommonArcLabelPosition> {
|
|
9
9
|
name: string;
|
|
@@ -11,7 +11,7 @@ export declare class MarkArcLine extends MarkCommonLine<IArcGraphicAttribute, IM
|
|
|
11
11
|
protected _line: ArcSegment;
|
|
12
12
|
protected markerAnimate(state: MarkerAnimationState): void;
|
|
13
13
|
constructor(attributes: MarkArcLineAttrs, options?: ComponentOptions);
|
|
14
|
-
protected getPointAttrByPosition(direction: IMarkCommonArcLabelPosition): {
|
|
14
|
+
protected getPointAttrByPosition(direction: IMarkCommonArcLabelPosition, labelAttrs: MarkerLineLabelAttrs<IMarkCommonArcLabelPosition>): {
|
|
15
15
|
position: {
|
|
16
16
|
x: number;
|
|
17
17
|
y: number;
|
|
@@ -22,8 +22,10 @@ export declare class MarkArcLine extends MarkCommonLine<IArcGraphicAttribute, IM
|
|
|
22
22
|
textAlign: import("@visactor/vrender-core").TextAlignType;
|
|
23
23
|
textBaseline: import("@visactor/vrender-core").TextBaselineType;
|
|
24
24
|
};
|
|
25
|
-
protected getRotateByAngle(angle: number): number;
|
|
25
|
+
protected getRotateByAngle(angle: number, labelAttrs: MarkerLineLabelAttrs<IMarkCommonArcLabelPosition>): number;
|
|
26
26
|
protected createSegment(): ArcSegment;
|
|
27
27
|
protected setLineAttributes(): void;
|
|
28
28
|
protected isValidPoints(): boolean;
|
|
29
|
+
protected addMarkLineLabels(container: IGroup): void;
|
|
30
|
+
protected updateMarkLineLabels(): void;
|
|
29
31
|
}
|
package/es/marker/arc-line.js
CHANGED
|
@@ -25,14 +25,11 @@ export class MarkArcLine extends MarkCommonLine {
|
|
|
25
25
|
MarkArcLine._animate && this._animationConfig && MarkArcLine._animate(this._line, this._label, this._animationConfig, state);
|
|
26
26
|
}
|
|
27
27
|
constructor(attributes, options) {
|
|
28
|
-
super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, MarkArcLine.defaultAttributes, attributes,
|
|
29
|
-
|
|
30
|
-
autoRotate: !0
|
|
31
|
-
}
|
|
32
|
-
})), this.name = "markArcLine";
|
|
28
|
+
super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, MarkArcLine.defaultAttributes, attributes)),
|
|
29
|
+
this.name = "markArcLine";
|
|
33
30
|
}
|
|
34
|
-
getPointAttrByPosition(direction) {
|
|
35
|
-
const {center: center, radius: radius, startAngle: startAngle, endAngle: endAngle
|
|
31
|
+
getPointAttrByPosition(direction, labelAttrs) {
|
|
32
|
+
const {center: center, radius: radius, startAngle: startAngle, endAngle: endAngle} = this.attribute, {refX: refX = 0, refY: refY = 0} = labelAttrs;
|
|
36
33
|
let angle;
|
|
37
34
|
switch (direction) {
|
|
38
35
|
case IMarkCommonArcLabelPosition.arcInnerStart:
|
|
@@ -66,9 +63,9 @@ export class MarkArcLine extends MarkCommonLine {
|
|
|
66
63
|
getTextStyle(position) {
|
|
67
64
|
return DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP[position];
|
|
68
65
|
}
|
|
69
|
-
getRotateByAngle(angle) {
|
|
66
|
+
getRotateByAngle(angle, labelAttrs) {
|
|
70
67
|
var _a;
|
|
71
|
-
return angle - Math.PI / 2 + (null !== (_a =
|
|
68
|
+
return angle - Math.PI / 2 + (null !== (_a = labelAttrs.refAngle) && void 0 !== _a ? _a : 0);
|
|
72
69
|
}
|
|
73
70
|
createSegment() {
|
|
74
71
|
const {center: center, radius: radius, startAngle: startAngle, endAngle: endAngle, startSymbol: startSymbol, endSymbol: endSymbol, lineStyle: lineStyle, state: state} = this.attribute;
|
|
@@ -107,6 +104,12 @@ export class MarkArcLine extends MarkCommonLine {
|
|
|
107
104
|
isValidPoints() {
|
|
108
105
|
return !0;
|
|
109
106
|
}
|
|
107
|
+
addMarkLineLabels(container) {
|
|
108
|
+
this._addMarkLabels(container, "mark-common-line-label", MarkArcLine.defaultAttributes.label);
|
|
109
|
+
}
|
|
110
|
+
updateMarkLineLabels() {
|
|
111
|
+
this._updateMarkLabels(MarkArcLine.defaultAttributes.label);
|
|
112
|
+
}
|
|
110
113
|
}
|
|
111
114
|
|
|
112
115
|
MarkArcLine.defaultAttributes = DEFAULT_MARK_ARC_LINE_THEME;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/arc-line.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"sources":["../src/marker/arc-line.ts"],"names":[],"mappings":"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","file":"arc-line.js","sourcesContent":["import { array, merge } from '@visactor/vutils';\nimport { ArcSegment } from '../segment';\nimport { loadMarkArcLineComponent } from './register';\nimport { DEFAULT_STATES } from '../constant';\nimport { MarkCommonLine } from './common-line';\nimport type { ComponentOptions } from '../interface';\nimport type { IArcGraphicAttribute, IGroup } from '@visactor/vrender-core';\nimport { IMarkCommonArcLabelPosition } from './type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { MarkArcLineAttrs, MarkerAnimationState, MarkerLineLabelAttrs } from './type';\nimport { DEFAULT_MARK_ARC_LINE_THEME, DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP } from './config';\nimport { markCommonLineAnimate } from './animate/animate';\nimport type { TagAttributes } from '../tag';\n\nloadMarkArcLineComponent();\n\nexport function registerMarkArcLineAnimate() {\n MarkArcLine._animate = markCommonLineAnimate;\n}\nexport class MarkArcLine extends MarkCommonLine<IArcGraphicAttribute, IMarkCommonArcLabelPosition> {\n name = 'markArcLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<MarkArcLineAttrs> = DEFAULT_MARK_ARC_LINE_THEME as unknown as MarkArcLineAttrs;\n protected _line!: ArcSegment;\n\n protected markerAnimate(state: MarkerAnimationState) {\n if (MarkArcLine._animate && this._animationConfig) {\n MarkArcLine._animate(this._line, this._label, this._animationConfig, state);\n }\n }\n\n constructor(attributes: MarkArcLineAttrs, options?: ComponentOptions) {\n // eslint-disable-next-line max-len\n super(options?.skipDefault ? attributes : merge({}, MarkArcLine.defaultAttributes, attributes));\n }\n\n protected getPointAttrByPosition(\n direction: IMarkCommonArcLabelPosition,\n labelAttrs: MarkerLineLabelAttrs<IMarkCommonArcLabelPosition>\n ) {\n const { center, radius, startAngle, endAngle } = this.attribute as MarkArcLineAttrs;\n const { refX = 0, refY = 0 } = labelAttrs;\n let angle;\n\n switch (direction) {\n case IMarkCommonArcLabelPosition.arcInnerStart:\n angle = startAngle;\n case IMarkCommonArcLabelPosition.arcOuterStart:\n angle = startAngle;\n break;\n case IMarkCommonArcLabelPosition.arcInnerEnd:\n angle = endAngle;\n case IMarkCommonArcLabelPosition.arcOuterEnd:\n angle = endAngle;\n break;\n case IMarkCommonArcLabelPosition.center:\n case IMarkCommonArcLabelPosition.arcInnerMiddle:\n case IMarkCommonArcLabelPosition.arcOuterMiddle:\n angle = (startAngle + endAngle) / 2;\n break;\n default: // default arcInnerMiddle\n angle = (startAngle + endAngle) / 2;\n }\n\n return {\n position: {\n x: center.x + (radius + refY) * Math.cos(angle) + refX * Math.cos(angle - Math.PI / 2),\n y: center.y + (radius + refY) * Math.sin(angle) + refX * Math.sin(angle - Math.PI / 2)\n },\n angle\n };\n }\n\n protected getTextStyle(position: IMarkCommonArcLabelPosition) {\n return DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP[position];\n }\n\n protected getRotateByAngle(angle: number, labelAttrs: MarkerLineLabelAttrs<IMarkCommonArcLabelPosition>): number {\n return angle - Math.PI / 2 + (labelAttrs.refAngle ?? 0);\n }\n\n protected createSegment() {\n const { center, radius, startAngle, endAngle, startSymbol, endSymbol, lineStyle, state } = this\n .attribute as MarkArcLineAttrs;\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, state } = this\n .attribute as MarkArcLineAttrs;\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 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 return true;\n }\n\n protected addMarkLineLabels(container: IGroup) {\n this._addMarkLabels(container, 'mark-common-line-label', MarkArcLine.defaultAttributes.label as TagAttributes);\n }\n\n protected updateMarkLineLabels() {\n this._updateMarkLabels(MarkArcLine.defaultAttributes.label as TagAttributes);\n }\n}\n"]}
|
package/es/marker/area.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { IGroup, IPolygon } from '@visactor/vrender-core';
|
|
2
|
-
import { Tag } from '../tag';
|
|
2
|
+
import type { Tag } from '../tag';
|
|
3
3
|
import { Marker } from './base';
|
|
4
|
-
import type { CommonMarkAreaAnimationType, IMarkAreaLabelPosition, MarkAreaAttrs, MarkerAnimationState } from './type';
|
|
4
|
+
import type { CommonMarkAreaAnimationType, IMarkAreaLabelPosition, MarkAreaAttrs, MarkerAnimationState, MarkerAreaLabelAttrs } from './type';
|
|
5
5
|
import type { ComponentOptions } from '../interface';
|
|
6
|
+
import { MarkLabelMixin } from './mixin/label';
|
|
6
7
|
export declare function registerMarkAreaAnimate(): void;
|
|
8
|
+
export interface MarkArea extends Pick<MarkLabelMixin<MarkAreaAttrs>, '_addMarkLabels' | '_updateMarkLabels' | 'getLabel' | '_label'>, Marker<MarkAreaAttrs, CommonMarkAreaAnimationType> {
|
|
9
|
+
}
|
|
7
10
|
export declare class MarkArea extends Marker<MarkAreaAttrs, CommonMarkAreaAnimationType> {
|
|
8
11
|
name: string;
|
|
9
12
|
static defaultAttributes: {
|
|
@@ -36,13 +39,12 @@ export declare class MarkArea extends Marker<MarkAreaAttrs, CommonMarkAreaAnimat
|
|
|
36
39
|
protected markerAnimate(state: MarkerAnimationState): void;
|
|
37
40
|
private _area;
|
|
38
41
|
getArea(): IPolygon;
|
|
39
|
-
getLabel(): Tag;
|
|
40
42
|
constructor(attributes: MarkAreaAttrs, options?: ComponentOptions);
|
|
41
43
|
protected getPointAttrByPosition(position: IMarkAreaLabelPosition): {
|
|
42
44
|
x: number;
|
|
43
45
|
y: number;
|
|
44
46
|
};
|
|
45
|
-
protected setLabelPos(): void;
|
|
47
|
+
protected setLabelPos(labelNode: Tag, labelAttrs: MarkerAreaLabelAttrs): void;
|
|
46
48
|
protected initMarker(container: IGroup): void;
|
|
47
49
|
protected updateMarker(): void;
|
|
48
50
|
protected isValidPoints(): boolean;
|
package/es/marker/area.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { graphicCreator } from "@visactor/vrender-core";
|
|
2
2
|
|
|
3
|
-
import { isValidNumber, merge } from "@visactor/vutils";
|
|
4
|
-
|
|
5
|
-
import { Tag } from "../tag";
|
|
3
|
+
import { isValidNumber, merge, mixin } from "@visactor/vutils";
|
|
6
4
|
|
|
7
5
|
import { Marker } from "./base";
|
|
8
6
|
|
|
@@ -16,6 +14,8 @@ import { DEFAULT_STATES } from "../constant";
|
|
|
16
14
|
|
|
17
15
|
import { DefaultExitMarkerAnimation, DefaultUpdateMarkAreaAnimation, markAreaAnimate } from "./animate/animate";
|
|
18
16
|
|
|
17
|
+
import { MarkLabelMixin } from "./mixin/label";
|
|
18
|
+
|
|
19
19
|
loadMarkAreaComponent();
|
|
20
20
|
|
|
21
21
|
export function registerMarkAreaAnimate() {
|
|
@@ -29,9 +29,6 @@ export class MarkArea extends Marker {
|
|
|
29
29
|
getArea() {
|
|
30
30
|
return this._area;
|
|
31
31
|
}
|
|
32
|
-
getLabel() {
|
|
33
|
-
return this._label;
|
|
34
|
-
}
|
|
35
32
|
constructor(attributes, options) {
|
|
36
33
|
super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, MarkArea.defaultAttributes, attributes)),
|
|
37
34
|
this.name = "markArea", this.defaultUpdateAnimation = DefaultUpdateMarkAreaAnimation,
|
|
@@ -47,15 +44,15 @@ export class MarkArea extends Marker {
|
|
|
47
44
|
(position.includes("bottom") || position.includes("Bottom")) && (result.y = y2),
|
|
48
45
|
result;
|
|
49
46
|
}
|
|
50
|
-
setLabelPos() {
|
|
47
|
+
setLabelPos(labelNode, labelAttrs) {
|
|
51
48
|
var _a;
|
|
52
|
-
if (this.
|
|
53
|
-
const
|
|
54
|
-
if (
|
|
55
|
-
textStyle: Object.assign(Object.assign({}, DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP[labelPosition]),
|
|
56
|
-
})), this.attribute.limitRect &&
|
|
49
|
+
if (this._area) {
|
|
50
|
+
const labelPosition = null !== (_a = labelAttrs.position) && void 0 !== _a ? _a : "middle", labelPoint = this.getPointAttrByPosition(labelPosition);
|
|
51
|
+
if (labelNode.setAttributes(Object.assign(Object.assign({}, labelPoint), {
|
|
52
|
+
textStyle: Object.assign(Object.assign({}, DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP[labelPosition]), labelAttrs.textStyle)
|
|
53
|
+
})), this.attribute.limitRect && labelAttrs.confine) {
|
|
57
54
|
const {x: x, y: y, width: width, height: height} = this.attribute.limitRect;
|
|
58
|
-
limitShapeInBounds(
|
|
55
|
+
limitShapeInBounds(labelNode, {
|
|
59
56
|
x1: x,
|
|
60
57
|
y1: y,
|
|
61
58
|
x2: x + width,
|
|
@@ -65,34 +62,18 @@ export class MarkArea extends Marker {
|
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
64
|
initMarker(container) {
|
|
68
|
-
const {points: points,
|
|
65
|
+
const {points: points, areaStyle: areaStyle, state: state} = this.attribute, area = graphicCreator.polygon(Object.assign({
|
|
69
66
|
points: points
|
|
70
67
|
}, areaStyle));
|
|
71
68
|
area.states = merge({}, DEFAULT_STATES, null == state ? void 0 : state.area), area.name = "mark-area-polygon",
|
|
72
|
-
this._area = area, container.add(area);
|
|
73
|
-
const markLabel = new Tag(Object.assign(Object.assign({}, label), {
|
|
74
|
-
state: {
|
|
75
|
-
panel: merge({}, DEFAULT_STATES, null == state ? void 0 : state.labelBackground),
|
|
76
|
-
text: merge({}, DEFAULT_STATES, null == state ? void 0 : state.label)
|
|
77
|
-
}
|
|
78
|
-
}));
|
|
79
|
-
markLabel.name = "mark-area-label", this._label = markLabel, container.add(markLabel),
|
|
80
|
-
this.setLabelPos();
|
|
69
|
+
this._area = area, container.add(area), this._addMarkLabels(container, "mark-area-label", MarkArea.defaultAttributes.label);
|
|
81
70
|
}
|
|
82
71
|
updateMarker() {
|
|
83
|
-
const {points: points,
|
|
72
|
+
const {points: points, areaStyle: areaStyle, state: state} = this.attribute;
|
|
84
73
|
this._area && (this._area.setAttributes(Object.assign({
|
|
85
74
|
points: points
|
|
86
75
|
}, areaStyle)), this._area.states = merge({}, DEFAULT_STATES, null == state ? void 0 : state.area)),
|
|
87
|
-
this.
|
|
88
|
-
dx: 0,
|
|
89
|
-
dy: 0
|
|
90
|
-
}, label), {
|
|
91
|
-
state: {
|
|
92
|
-
panel: merge({}, DEFAULT_STATES, null == state ? void 0 : state.labelBackground),
|
|
93
|
-
text: merge({}, DEFAULT_STATES, null == state ? void 0 : state.label)
|
|
94
|
-
}
|
|
95
|
-
})), this.setLabelPos();
|
|
76
|
+
this._updateMarkLabels(MarkArea.defaultAttributes.label);
|
|
96
77
|
}
|
|
97
78
|
isValidPoints() {
|
|
98
79
|
const {points: points} = this.attribute;
|
|
@@ -104,5 +85,5 @@ export class MarkArea extends Marker {
|
|
|
104
85
|
}
|
|
105
86
|
}
|
|
106
87
|
|
|
107
|
-
MarkArea.defaultAttributes = DEFAULT_MARK_AREA_THEME;
|
|
88
|
+
MarkArea.defaultAttributes = DEFAULT_MARK_AREA_THEME, mixin(MarkArea, MarkLabelMixin);
|
|
108
89
|
//# sourceMappingURL=area.js.map
|
package/es/marker/area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/area.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"sources":["../src/marker/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { IGroup, IPolygon } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { isValidNumber, merge, mixin } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { Tag, TagAttributes } from '../tag';\nimport { Marker } from './base';\nimport { DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP, DEFAULT_MARK_AREA_THEME } from './config';\nimport type {\n CommonMarkAreaAnimationType,\n IMarkAreaLabelPosition,\n MarkAreaAttrs,\n MarkerAnimationState,\n MarkerAreaLabelAttrs\n} from './type';\nimport { limitShapeInBounds } from '../util/limit-shape';\nimport type { ComponentOptions } from '../interface';\nimport { loadMarkAreaComponent } from './register';\nimport type { Point } from '../core/type';\nimport { DEFAULT_STATES } from '../constant';\nimport { DefaultExitMarkerAnimation, DefaultUpdateMarkAreaAnimation, markAreaAnimate } from './animate/animate';\nimport { MarkLabelMixin } from './mixin/label';\n\nloadMarkAreaComponent();\n\nexport function registerMarkAreaAnimate() {\n MarkArea._animate = markAreaAnimate;\n}\n\nexport interface MarkArea\n extends Pick<MarkLabelMixin<MarkAreaAttrs>, '_addMarkLabels' | '_updateMarkLabels' | 'getLabel' | '_label'>,\n Marker<MarkAreaAttrs, CommonMarkAreaAnimationType> {}\n\nexport class MarkArea extends Marker<MarkAreaAttrs, CommonMarkAreaAnimationType> {\n name = 'markArea';\n static defaultAttributes = DEFAULT_MARK_AREA_THEME;\n\n /** animate */\n defaultUpdateAnimation = DefaultUpdateMarkAreaAnimation;\n defaultExitAnimation = DefaultExitMarkerAnimation;\n protected markerAnimate(state: MarkerAnimationState) {\n if (MarkArea._animate && this._animationConfig) {\n MarkArea._animate(this._area, this._label, this._animationConfig, state);\n }\n }\n\n private _area!: IPolygon;\n getArea() {\n return this._area;\n }\n\n constructor(attributes: MarkAreaAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, MarkArea.defaultAttributes, attributes));\n }\n\n protected getPointAttrByPosition(position: IMarkAreaLabelPosition) {\n const { x1, x2, y1, y2 } = this._area.AABBBounds;\n const result = {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n };\n\n if (position.includes('left') || position.includes('Left')) {\n result.x = x1;\n }\n if (position.includes('right') || position.includes('Right')) {\n result.x = x2;\n }\n if (position.includes('top') || position.includes('Top')) {\n result.y = y1;\n }\n if (position.includes('bottom') || position.includes('Bottom')) {\n result.y = y2;\n }\n\n return result;\n }\n\n protected setLabelPos(labelNode: Tag, labelAttrs: MarkerAreaLabelAttrs) {\n if (this._area) {\n const labelPosition = labelAttrs.position ?? 'middle';\n const labelPoint = this.getPointAttrByPosition(labelPosition as IMarkAreaLabelPosition);\n labelNode.setAttributes({\n ...labelPoint,\n textStyle: {\n ...DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP[labelPosition],\n ...labelAttrs.textStyle\n }\n });\n\n if (this.attribute.limitRect && labelAttrs.confine) {\n const { x, y, width, height } = this.attribute.limitRect;\n limitShapeInBounds(labelNode, {\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, areaStyle, state } = this.attribute as MarkAreaAttrs;\n const area = graphicCreator.polygon({\n points: points,\n ...areaStyle\n });\n area.states = merge({}, DEFAULT_STATES, state?.area);\n area.name = 'mark-area-polygon';\n this._area = area;\n container.add(area);\n\n // add label\n this._addMarkLabels(container, 'mark-area-label', MarkArea.defaultAttributes.label as TagAttributes);\n }\n\n protected updateMarker() {\n const { points, areaStyle, state } = this.attribute as MarkAreaAttrs;\n if (this._area) {\n this._area.setAttributes({\n points: points,\n ...areaStyle\n });\n this._area.states = merge({}, DEFAULT_STATES, state?.area);\n }\n\n // update label\n this._updateMarkLabels(MarkArea.defaultAttributes.label as TagAttributes);\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as MarkAreaAttrs;\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\nmixin(MarkArea, MarkLabelMixin);\n"]}
|
package/es/marker/base.d.ts
CHANGED
|
@@ -6,8 +6,7 @@ export declare abstract class Marker<T extends MarkerAttrs<AnimationAttr>, Anima
|
|
|
6
6
|
name: string;
|
|
7
7
|
private _containerClip;
|
|
8
8
|
protected _container: IGroup;
|
|
9
|
-
|
|
10
|
-
static _animate?: (marker: any, label: Tag | IRichText | ISymbol | IImage, animationConfig: any, state: MarkerAnimationState) => void;
|
|
9
|
+
static _animate?: (marker: any, label: (Tag | IRichText | ISymbol | IImage) | (Tag | IRichText | ISymbol | IImage)[], animationConfig: any, state: MarkerAnimationState) => void;
|
|
11
10
|
defaultUpdateAnimation: MarkerUpdateAnimation<AnimationAttr>;
|
|
12
11
|
defaultExitAnimation: MarkerExitAnimation;
|
|
13
12
|
protected _animationConfig?: {
|
|
@@ -17,7 +16,7 @@ export declare abstract class Marker<T extends MarkerAttrs<AnimationAttr>, Anima
|
|
|
17
16
|
};
|
|
18
17
|
private _lastHover;
|
|
19
18
|
private _lastSelect;
|
|
20
|
-
protected abstract setLabelPos(): any;
|
|
19
|
+
protected abstract setLabelPos(labelNode: IGroup, labelAttrs: any): any;
|
|
21
20
|
protected abstract initMarker(container: IGroup): any;
|
|
22
21
|
protected abstract updateMarker(): any;
|
|
23
22
|
protected abstract isValidPoints(): any;
|
package/es/marker/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import type { FederatedPointerEvent, IGraphic, IGroup, IImage, IRichText, ISymbol } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport type { Tag } from '../tag';\nimport type { MarkerAnimationState, MarkerAttrs, MarkerExitAnimation, MarkerUpdateAnimation } from './type';\nimport { dispatchClickState, dispatchHoverState, dispatchUnHoverState } from '../util/interaction';\nimport { isObject, merge } from '@visactor/vutils';\n\nexport abstract class Marker<T extends MarkerAttrs<AnimationAttr>, AnimationAttr> extends AbstractComponent<\n Required<T>\n> {\n name = 'marker';\n\n private _containerClip!: IGroup;\n protected _container!: IGroup;\n\n protected _label!: Tag;\n\n /** animate */\n static _animate?: (\n marker: any,\n label: Tag | IRichText | ISymbol | IImage,\n animationConfig: any,\n state: MarkerAnimationState\n ) => void;\n\n defaultUpdateAnimation!: MarkerUpdateAnimation<AnimationAttr>;\n defaultExitAnimation!: MarkerExitAnimation;\n\n protected _animationConfig?: {\n enter: MarkerUpdateAnimation<AnimationAttr>;\n exit: MarkerExitAnimation;\n update: MarkerUpdateAnimation<AnimationAttr>;\n };\n\n private _lastHover: IGraphic;\n private _lastSelect: IGraphic;\n\n protected abstract setLabelPos(): any;\n protected abstract initMarker(container: IGroup): any;\n protected abstract updateMarker(): any;\n protected abstract isValidPoints(): any;\n protected abstract markerAnimate(state: MarkerAnimationState): void;\n\n private transAnimationConfig(): void {\n if (this.attribute.animation !== false) {\n const animation = isObject(this.attribute.animation) ? this.attribute.animation : {};\n this._animationConfig = {\n enter: merge(\n {},\n this.defaultUpdateAnimation,\n animation,\n this.attribute.animationEnter ?? {}\n ) as MarkerUpdateAnimation<AnimationAttr>,\n exit: merge({}, this.defaultExitAnimation, animation, this.attribute.animationExit ?? {}),\n update: merge(\n {},\n this.defaultUpdateAnimation,\n animation,\n this.attribute.animationUpdate ?? {}\n ) as MarkerUpdateAnimation<AnimationAttr>\n };\n }\n }\n setAttribute(key: string, value: any, forceUpdateTag?: boolean | undefined): void {\n super.setAttribute(key, value, forceUpdateTag);\n if (key === 'visible') {\n this.render();\n }\n }\n\n private _bindEvent() {\n if (!this.attribute.interactive) {\n return;\n }\n const { hover, select } = this.attribute;\n\n if (hover) {\n this._container?.addEventListener('pointermove', this._onHover as EventListenerOrEventListenerObject);\n this._container?.addEventListener('pointerout', this._onUnHover as EventListenerOrEventListenerObject);\n }\n\n if (select) {\n this._container?.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n }\n\n private _releaseEvent() {\n this._container?.removeEventListener('pointermove', this._onHover as EventListenerOrEventListenerObject);\n this._container?.removeEventListener('pointerout', this._onUnHover as EventListenerOrEventListenerObject);\n this._container?.removeEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n\n private _onHover = (e: FederatedPointerEvent) => {\n this._lastHover = dispatchHoverState(e, this._container, this._lastHover);\n };\n\n private _onUnHover = (e: FederatedPointerEvent) => {\n this._lastHover = dispatchUnHoverState(e, this._container, this._lastHover);\n };\n\n private _onClick = (e: FederatedPointerEvent) => {\n this._lastSelect = dispatchClickState(e, this._container, this._lastSelect);\n };\n\n private _initContainer() {\n const { limitRect = {} as T['limitRect'], clipInRange } = this.attribute;\n let group;\n if (clipInRange) {\n // 如果用户配置了剪切\n const groupClip = graphicCreator.group({\n ...limitRect,\n clip: true,\n pickable: false\n });\n group = graphicCreator.group({\n x: -(limitRect.x ?? 0),\n y: -(limitRect.y ?? 0),\n pickable: false\n });\n groupClip.add(group);\n this._containerClip = groupClip;\n this.add(groupClip);\n } else {\n group = graphicCreator.group({\n x: 0,\n y: 0,\n pickable: false\n });\n this.add(group);\n }\n group.name = 'marker-container';\n this._container = group;\n }\n\n private _updateContainer() {\n const { limitRect = {} as T['limitRect'], clipInRange } = this.attribute;\n if (this._containerClip) {\n this._containerClip.setAttributes({\n ...limitRect\n });\n }\n\n this._container.setAttributes({\n x: clipInRange ? -(limitRect.x ?? 0) : 0,\n y: clipInRange ? -(limitRect.y ?? 0) : 0\n });\n }\n\n protected render() {\n this.transAnimationConfig();\n\n // 因为标注本身不规则,所以默认将组件的 group 设置为不可拾取\n this.setAttribute('pickable', false);\n\n const markerVisible = this.attribute.visible ?? true;\n if (this.attribute.interactive === false) {\n this.setAttribute('childrenPickable', false);\n }\n\n if (markerVisible && this.isValidPoints()) {\n if (!this._container) {\n this._initContainer();\n this.initMarker(this._container);\n this.markerAnimate('enter');\n } else {\n this._updateContainer();\n this.updateMarker();\n this.markerAnimate('update');\n }\n } else {\n this.markerAnimate('exit');\n this._container = null;\n this.removeAllChild(true);\n }\n\n // 先把之前的event都release掉,否则会重复触发\n this._releaseEvent();\n this._bindEvent();\n }\n\n release(): void {\n this.markerAnimate('exit');\n super.release();\n this._releaseEvent();\n this._container = null;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/marker/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import type { FederatedPointerEvent, IGraphic, IGroup, IImage, IRichText, ISymbol } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport type { Tag } from '../tag';\nimport type { MarkerAnimationState, MarkerAttrs, MarkerExitAnimation, MarkerUpdateAnimation } from './type';\nimport { dispatchClickState, dispatchHoverState, dispatchUnHoverState } from '../util/interaction';\nimport { isObject, merge } from '@visactor/vutils';\n\nexport abstract class Marker<T extends MarkerAttrs<AnimationAttr>, AnimationAttr> extends AbstractComponent<\n Required<T>\n> {\n name = 'marker';\n\n private _containerClip!: IGroup;\n protected _container!: IGroup;\n\n /** animate */\n static _animate?: (\n marker: any,\n label: (Tag | IRichText | ISymbol | IImage) | (Tag | IRichText | ISymbol | IImage)[],\n animationConfig: any,\n state: MarkerAnimationState\n ) => void;\n\n defaultUpdateAnimation!: MarkerUpdateAnimation<AnimationAttr>;\n defaultExitAnimation!: MarkerExitAnimation;\n\n protected _animationConfig?: {\n enter: MarkerUpdateAnimation<AnimationAttr>;\n exit: MarkerExitAnimation;\n update: MarkerUpdateAnimation<AnimationAttr>;\n };\n\n private _lastHover: IGraphic;\n private _lastSelect: IGraphic;\n\n protected abstract setLabelPos(labelNode: IGroup, labelAttrs: any): any;\n protected abstract initMarker(container: IGroup): any;\n protected abstract updateMarker(): any;\n protected abstract isValidPoints(): any;\n protected abstract markerAnimate(state: MarkerAnimationState): void;\n\n private transAnimationConfig(): void {\n if (this.attribute.animation !== false) {\n const animation = isObject(this.attribute.animation) ? this.attribute.animation : {};\n this._animationConfig = {\n enter: merge(\n {},\n this.defaultUpdateAnimation,\n animation,\n this.attribute.animationEnter ?? {}\n ) as MarkerUpdateAnimation<AnimationAttr>,\n exit: merge({}, this.defaultExitAnimation, animation, this.attribute.animationExit ?? {}),\n update: merge(\n {},\n this.defaultUpdateAnimation,\n animation,\n this.attribute.animationUpdate ?? {}\n ) as MarkerUpdateAnimation<AnimationAttr>\n };\n }\n }\n setAttribute(key: string, value: any, forceUpdateTag?: boolean | undefined): void {\n super.setAttribute(key, value, forceUpdateTag);\n if (key === 'visible') {\n this.render();\n }\n }\n\n private _bindEvent() {\n if (!this.attribute.interactive) {\n return;\n }\n const { hover, select } = this.attribute;\n\n if (hover) {\n this._container?.addEventListener('pointermove', this._onHover as EventListenerOrEventListenerObject);\n this._container?.addEventListener('pointerout', this._onUnHover as EventListenerOrEventListenerObject);\n }\n\n if (select) {\n this._container?.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n }\n\n private _releaseEvent() {\n this._container?.removeEventListener('pointermove', this._onHover as EventListenerOrEventListenerObject);\n this._container?.removeEventListener('pointerout', this._onUnHover as EventListenerOrEventListenerObject);\n this._container?.removeEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n\n private _onHover = (e: FederatedPointerEvent) => {\n this._lastHover = dispatchHoverState(e, this._container, this._lastHover);\n };\n\n private _onUnHover = (e: FederatedPointerEvent) => {\n this._lastHover = dispatchUnHoverState(e, this._container, this._lastHover);\n };\n\n private _onClick = (e: FederatedPointerEvent) => {\n this._lastSelect = dispatchClickState(e, this._container, this._lastSelect);\n };\n\n private _initContainer() {\n const { limitRect = {} as T['limitRect'], clipInRange } = this.attribute;\n let group;\n if (clipInRange) {\n // 如果用户配置了剪切\n const groupClip = graphicCreator.group({\n ...limitRect,\n clip: true,\n pickable: false\n });\n group = graphicCreator.group({\n x: -(limitRect.x ?? 0),\n y: -(limitRect.y ?? 0),\n pickable: false\n });\n groupClip.add(group);\n this._containerClip = groupClip;\n this.add(groupClip);\n } else {\n group = graphicCreator.group({\n x: 0,\n y: 0,\n pickable: false\n });\n this.add(group);\n }\n group.name = 'marker-container';\n this._container = group;\n }\n\n private _updateContainer() {\n const { limitRect = {} as T['limitRect'], clipInRange } = this.attribute;\n if (this._containerClip) {\n this._containerClip.setAttributes({\n ...limitRect\n });\n }\n\n this._container.setAttributes({\n x: clipInRange ? -(limitRect.x ?? 0) : 0,\n y: clipInRange ? -(limitRect.y ?? 0) : 0\n });\n }\n\n protected render() {\n this.transAnimationConfig();\n\n // 因为标注本身不规则,所以默认将组件的 group 设置为不可拾取\n this.setAttribute('pickable', false);\n\n const markerVisible = this.attribute.visible ?? true;\n if (this.attribute.interactive === false) {\n this.setAttribute('childrenPickable', false);\n }\n\n if (markerVisible && this.isValidPoints()) {\n if (!this._container) {\n this._initContainer();\n this.initMarker(this._container);\n this.markerAnimate('enter');\n } else {\n this._updateContainer();\n this.updateMarker();\n this.markerAnimate('update');\n }\n } else {\n this.markerAnimate('exit');\n this._container = null;\n this.removeAllChild(true);\n }\n\n // 先把之前的event都release掉,否则会重复触发\n this._releaseEvent();\n this._bindEvent();\n }\n\n release(): void {\n this.markerAnimate('exit');\n super.release();\n this._releaseEvent();\n this._container = null;\n }\n}\n"]}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
import type { IGroup } from '@visactor/vrender-core';
|
|
2
2
|
import type { ArcSegment, Segment } from '../segment';
|
|
3
|
-
import { Tag } from '../tag';
|
|
4
|
-
import type { MarkCommonLineAnimationType, MarkCommonLineAttrs, MarkerAnimationState } from './type';
|
|
3
|
+
import type { Tag } from '../tag';
|
|
4
|
+
import type { MarkCommonLineAnimationType, MarkCommonLineAttrs, MarkerAnimationState, MarkerLineLabelAttrs } from './type';
|
|
5
5
|
import { Marker } from './base';
|
|
6
|
+
import { MarkLabelMixin } from './mixin/label';
|
|
7
|
+
export interface MarkCommonLine<LineAttr, LabelPosition> extends Pick<MarkLabelMixin<MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>>, '_addMarkLabels' | '_updateMarkLabels' | 'getLabel' | '_label'>, Marker<MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>, MarkCommonLineAnimationType> {
|
|
8
|
+
}
|
|
6
9
|
export declare abstract class MarkCommonLine<LineAttr, LabelPosition> extends Marker<MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>, MarkCommonLineAnimationType> {
|
|
7
10
|
name: string;
|
|
8
|
-
static _animate?: (line: Segment | ArcSegment, label: Tag, animationConfig: any, state: MarkerAnimationState) => void;
|
|
11
|
+
static _animate?: (line: Segment | ArcSegment, label: Tag | Tag[], animationConfig: any, state: MarkerAnimationState) => void;
|
|
9
12
|
defaultUpdateAnimation: never;
|
|
10
13
|
defaultExitAnimation: import("./type").MarkerExitAnimation;
|
|
11
14
|
protected _line: Segment | ArcSegment;
|
|
12
15
|
protected abstract createSegment(): any;
|
|
13
16
|
protected abstract setLineAttributes(): any;
|
|
14
|
-
protected abstract getPointAttrByPosition(position: any): any;
|
|
15
|
-
protected abstract getRotateByAngle(angle: number): number;
|
|
17
|
+
protected abstract getPointAttrByPosition(position: any, labelAttrs: MarkerLineLabelAttrs<LabelPosition>): any;
|
|
18
|
+
protected abstract getRotateByAngle(angle: number, labelAttrs: MarkerLineLabelAttrs<LabelPosition>): number;
|
|
16
19
|
protected abstract getTextStyle(position: any, labelAngle: number, autoRotate: boolean): any;
|
|
17
20
|
protected abstract markerAnimate(state: MarkerAnimationState): void;
|
|
21
|
+
protected abstract addMarkLineLabels(container: IGroup): any;
|
|
22
|
+
protected abstract updateMarkLineLabels(): any;
|
|
18
23
|
getLine(): Segment | ArcSegment;
|
|
19
|
-
|
|
20
|
-
protected setLabelPos(): void;
|
|
24
|
+
protected setLabelPos(labelNode: IGroup, labelAttrs: MarkerLineLabelAttrs<LabelPosition>): void;
|
|
21
25
|
protected initMarker(container: IGroup): void;
|
|
22
26
|
protected updateMarker(): void;
|
|
23
27
|
}
|