@visactor/vrender-components 0.22.7-alpha.10 → 0.22.7-alpha.11
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/brush/brush.d.ts +4 -7
- package/cjs/brush/brush.js +67 -53
- package/cjs/brush/brush.js.map +1 -1
- package/cjs/brush/config.d.ts +1 -1
- package/cjs/brush/config.js +1 -1
- package/cjs/brush/config.js.map +1 -1
- package/cjs/brush/type.js.map +1 -1
- package/cjs/data-zoom/data-zoom.d.ts +0 -3
- package/cjs/data-zoom/data-zoom.js +24 -39
- 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/jsx/component-type.js +1 -1
- package/cjs/jsx/index.js +2 -1
- package/cjs/label/base.js +1 -2
- package/cjs/label/rect.js +1 -1
- package/cjs/label/register.js +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 +0 -1
- package/cjs/scrollbar/scrollbar.js +12 -21
- package/cjs/scrollbar/scrollbar.js.map +1 -1
- package/cjs/slider/slider.d.ts +0 -3
- package/cjs/slider/slider.js +27 -48
- package/cjs/slider/slider.js.map +1 -1
- package/dist/index.es.js +306 -293
- package/es/brush/brush.d.ts +4 -7
- package/es/brush/brush.js +70 -55
- package/es/brush/brush.js.map +1 -1
- package/es/brush/config.d.ts +1 -1
- package/es/brush/config.js +1 -1
- package/es/brush/config.js.map +1 -1
- package/es/brush/type.js.map +1 -1
- package/es/data-zoom/data-zoom.d.ts +0 -3
- package/es/data-zoom/data-zoom.js +21 -38
- 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/jsx/component-type.js +1 -1
- package/es/jsx/index.js +2 -1
- package/es/label/base.js +1 -2
- package/es/label/rect.js +1 -1
- package/es/label/register.js +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 +0 -1
- package/es/scrollbar/scrollbar.js +11 -22
- package/es/scrollbar/scrollbar.js.map +1 -1
- package/es/slider/slider.d.ts +0 -3
- package/es/slider/slider.js +26 -49
- package/es/slider/slider.js.map +1 -1
- package/package.json +3 -3
- package/cjs/util/event.d.ts +0 -1
- package/cjs/util/event.js +0 -14
- package/cjs/util/event.js.map +0 -1
- package/es/util/event.d.ts +0 -1
- package/es/util/event.js +0 -6
- package/es/util/event.js.map +0 -1
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
|
}
|
package/es/marker/common-line.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { Tag } from "../tag";
|
|
1
|
+
import { mixin } from "@visactor/vutils";
|
|
4
2
|
|
|
5
3
|
import { limitShapeInBounds } from "../util/limit-shape";
|
|
6
4
|
|
|
7
|
-
import { DEFAULT_STATES } from "../constant";
|
|
8
|
-
|
|
9
5
|
import { Marker } from "./base";
|
|
10
6
|
|
|
11
7
|
import { DefaultExitMarkerAnimation, DefaultUpdateMarkLineAnimation } from "./animate/animate";
|
|
12
8
|
|
|
9
|
+
import { MarkLabelMixin } from "./mixin/label";
|
|
10
|
+
|
|
13
11
|
export class MarkCommonLine extends Marker {
|
|
14
12
|
constructor() {
|
|
15
13
|
super(...arguments), this.name = "markCommonLine", this.defaultUpdateAnimation = DefaultUpdateMarkLineAnimation,
|
|
@@ -18,17 +16,14 @@ export class MarkCommonLine extends Marker {
|
|
|
18
16
|
getLine() {
|
|
19
17
|
return this._line;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (this._label.setAttributes(Object.assign(Object.assign({}, labelPoint.position), {
|
|
27
|
-
angle: autoRotate ? this.getRotateByAngle(labelPoint.angle) : 0,
|
|
28
|
-
textStyle: Object.assign(Object.assign({}, this.getTextStyle(position, labelAngle, autoRotate)), label.textStyle)
|
|
19
|
+
setLabelPos(labelNode, labelAttrs) {
|
|
20
|
+
const {limitRect: limitRect} = this.attribute, {position: position, confine: confine, autoRotate: autoRotate} = labelAttrs, labelPoint = this.getPointAttrByPosition(position, labelAttrs), labelAngle = position.toString().toLocaleLowerCase().includes("start") ? this._line.getStartAngle() || 0 : this._line.getEndAngle() || 0;
|
|
21
|
+
if (labelNode.setAttributes(Object.assign(Object.assign({}, labelPoint.position), {
|
|
22
|
+
angle: autoRotate ? this.getRotateByAngle(labelPoint.angle, labelAttrs) : 0,
|
|
23
|
+
textStyle: Object.assign(Object.assign({}, this.getTextStyle(position, labelAngle, autoRotate)), labelAttrs.textStyle)
|
|
29
24
|
})), limitRect && confine) {
|
|
30
25
|
const {x: x, y: y, width: width, height: height} = limitRect;
|
|
31
|
-
limitShapeInBounds(
|
|
26
|
+
limitShapeInBounds(labelNode, {
|
|
32
27
|
x1: x,
|
|
33
28
|
y1: y,
|
|
34
29
|
x2: x + width,
|
|
@@ -37,28 +32,13 @@ export class MarkCommonLine extends Marker {
|
|
|
37
32
|
}
|
|
38
33
|
}
|
|
39
34
|
initMarker(container) {
|
|
40
|
-
const
|
|
41
|
-
line.name = "mark-common-line-line", this._line = line, container.add(line);
|
|
42
|
-
const markLabel = new Tag(Object.assign(Object.assign({}, label), {
|
|
43
|
-
state: {
|
|
44
|
-
panel: merge({}, DEFAULT_STATES, null == state ? void 0 : state.labelBackground),
|
|
45
|
-
text: merge({}, DEFAULT_STATES, null == state ? void 0 : state.label)
|
|
46
|
-
}
|
|
47
|
-
}));
|
|
48
|
-
markLabel.name = "mark-common-line-label", this._label = markLabel, container.add(markLabel),
|
|
49
|
-
this.setLabelPos();
|
|
35
|
+
const line = this.createSegment();
|
|
36
|
+
line.name = "mark-common-line-line", this._line = line, container.add(line), this.addMarkLineLabels(container);
|
|
50
37
|
}
|
|
51
38
|
updateMarker() {
|
|
52
|
-
|
|
53
|
-
this.setLineAttributes(), this._label && (this._label.setAttributes(Object.assign(Object.assign({
|
|
54
|
-
dx: 0,
|
|
55
|
-
dy: 0
|
|
56
|
-
}, label), {
|
|
57
|
-
state: {
|
|
58
|
-
panel: merge({}, DEFAULT_STATES, null == state ? void 0 : state.labelBackground),
|
|
59
|
-
text: merge({}, DEFAULT_STATES, null == state ? void 0 : state.label)
|
|
60
|
-
}
|
|
61
|
-
})), this.setLabelPos());
|
|
39
|
+
this.setLineAttributes(), this.updateMarkLineLabels();
|
|
62
40
|
}
|
|
63
41
|
}
|
|
42
|
+
|
|
43
|
+
mixin(MarkCommonLine, MarkLabelMixin);
|
|
64
44
|
//# sourceMappingURL=common-line.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/common-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/marker/common-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAUzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAS/C,MAAM,OAAgB,cAAwC,SAAQ,MAGrE;IAHD;;QAIE,SAAI,GAAG,gBAAgB,CAAC;QASxB,2BAAsB,GAAG,8BAA8B,CAAC;QACxD,yBAAoB,GAAG,0BAA0B,CAAC;IAyDpD,CAAC;IA7CC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAES,WAAW,CAAC,SAAiB,EAAE,UAA+C;QACtF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClC,SAAS,CAAC,aAAa,iCAClB,UAAU,CAAC,QAAQ,KACtB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3E,SAAS,kCACJ,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,GACnD,UAAU,CAAC,SAAS,KAEzB,CAAC;QACH,IAAI,SAAS,IAAI,OAAO,EAAE;YACxB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAC1C,kBAAkB,CAAC,SAAS,EAAE;gBAC5B,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,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,SAAS,CAAC,GAAG,CAAC,IAAwB,CAAC,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAGzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE9B,CAAC;CACF;AAED,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC","file":"common-line.js","sourcesContent":["import type { IGroup, INode } from '@visactor/vrender-core';\nimport { mixin } from '@visactor/vutils';\nimport type { ArcSegment, Segment } from '../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport type { Tag } from '../tag';\nimport type {\n MarkCommonLineAnimationType,\n MarkCommonLineAttrs,\n MarkerAnimationState,\n MarkerLineLabelAttrs\n} from './type';\nimport { limitShapeInBounds } from '../util/limit-shape';\nimport { Marker } from './base';\nimport { DefaultExitMarkerAnimation, DefaultUpdateMarkLineAnimation } from './animate/animate';\nimport { MarkLabelMixin } from './mixin/label';\n\nexport interface MarkCommonLine<LineAttr, LabelPosition>\n extends Pick<\n MarkLabelMixin<MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>>,\n '_addMarkLabels' | '_updateMarkLabels' | 'getLabel' | '_label'\n >,\n Marker<MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>, MarkCommonLineAnimationType> {}\n\nexport abstract class MarkCommonLine<LineAttr, LabelPosition> extends Marker<\n MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>,\n MarkCommonLineAnimationType\n> {\n name = 'markCommonLine';\n\n /** animate */\n static _animate?: (\n line: Segment | ArcSegment,\n label: Tag | Tag[],\n animationConfig: any,\n state: MarkerAnimationState\n ) => void;\n defaultUpdateAnimation = DefaultUpdateMarkLineAnimation;\n defaultExitAnimation = DefaultExitMarkerAnimation;\n\n protected _line!: Segment | ArcSegment;\n protected abstract createSegment(): any;\n protected abstract setLineAttributes(): any;\n protected abstract getPointAttrByPosition(position: any, labelAttrs: MarkerLineLabelAttrs<LabelPosition>): any;\n protected abstract getRotateByAngle(angle: number, labelAttrs: MarkerLineLabelAttrs<LabelPosition>): number;\n protected abstract getTextStyle(position: any, labelAngle: number, autoRotate: boolean): any;\n protected abstract markerAnimate(state: MarkerAnimationState): void;\n protected abstract addMarkLineLabels(container: IGroup): any;\n protected abstract updateMarkLineLabels(): any;\n\n getLine() {\n return this._line;\n }\n\n protected setLabelPos(labelNode: IGroup, labelAttrs: MarkerLineLabelAttrs<LabelPosition>): void {\n const { limitRect } = this.attribute;\n const { position, confine, autoRotate } = labelAttrs;\n const labelPoint = this.getPointAttrByPosition(position, labelAttrs);\n const labelAngle = position.toString().toLocaleLowerCase().includes('start')\n ? this._line.getStartAngle() || 0\n : this._line.getEndAngle() || 0;\n labelNode.setAttributes({\n ...labelPoint.position,\n angle: autoRotate ? this.getRotateByAngle(labelPoint.angle, labelAttrs) : 0,\n textStyle: {\n ...this.getTextStyle(position, labelAngle, autoRotate),\n ...labelAttrs.textStyle\n }\n });\n if (limitRect && confine) {\n const { x, y, width, height } = limitRect;\n limitShapeInBounds(labelNode, {\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 line = this.createSegment();\n line.name = 'mark-common-line-line';\n this._line = line;\n container.add(line as unknown as INode);\n this.addMarkLineLabels(container);\n }\n\n protected updateMarker() {\n this.setLineAttributes();\n\n // update label\n this.updateMarkLineLabels();\n // this._updateMarkLabels();\n }\n}\n\nmixin(MarkCommonLine, MarkLabelMixin);\n"]}
|
package/es/marker/config.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ export declare const DEFAULT_MARK_ARC_LINE_THEME: {
|
|
|
69
69
|
lineWidth: number;
|
|
70
70
|
};
|
|
71
71
|
label: {
|
|
72
|
+
autoRotate: boolean;
|
|
72
73
|
position: IMarkCommonArcLabelPosition;
|
|
73
74
|
refX: number;
|
|
74
75
|
refY: number;
|
|
@@ -123,6 +124,7 @@ export declare const DEFAULT_MARK_AREA_THEME: {
|
|
|
123
124
|
export declare const DEFAULT_MARK_ARC_AREA_THEME: {
|
|
124
125
|
interactive: boolean;
|
|
125
126
|
label: {
|
|
127
|
+
autoRotate: boolean;
|
|
126
128
|
position: IMarkCommonArcLabelPosition;
|
|
127
129
|
textStyle: {
|
|
128
130
|
fill: string;
|
package/es/marker/config.js
CHANGED
|
@@ -190,6 +190,7 @@ export const DEFAULT_MARK_ARC_LINE_THEME = {
|
|
|
190
190
|
lineWidth: 0
|
|
191
191
|
},
|
|
192
192
|
label: {
|
|
193
|
+
autoRotate: !0,
|
|
193
194
|
position: IMarkCommonArcLabelPosition.arcOuterMiddle,
|
|
194
195
|
refX: 0,
|
|
195
196
|
refY: 0,
|
|
@@ -246,6 +247,7 @@ export const DEFAULT_MARK_AREA_THEME = {
|
|
|
246
247
|
export const DEFAULT_MARK_ARC_AREA_THEME = {
|
|
247
248
|
interactive: !0,
|
|
248
249
|
label: {
|
|
250
|
+
autoRotate: !0,
|
|
249
251
|
position: IMarkCommonArcLabelPosition.arcOuterMiddle,
|
|
250
252
|
textStyle: {
|
|
251
253
|
fill: "#fff",
|
package/es/marker/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["import type { TextAlignType, TextBaselineType } from '@visactor/vrender-core';\nimport { IMarkAreaLabelPosition, IMarkLineLabelPosition, IMarkCommonArcLabelPosition } from './type';\n\nexport const FUZZY_EQUAL_DELTA = 0.001;\nexport const DEFAULT_MARK_LINE_THEME = {\n interactive: true,\n startSymbol: {\n visible: false,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n endSymbol: {\n visible: true,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n label: {\n position: IMarkLineLabelPosition.end,\n refX: 0,\n refY: 0,\n refAngle: 0,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n};\n\nexport const DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP: {\n [K: string]: {\n [T: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n };\n} = {\n postiveXAxis: {\n start: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n startTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n startBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideStart: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideStartTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideStartBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n insideMiddleTop: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideMiddleBottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n end: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n endTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n endBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideEnd: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideEndTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideEndBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n }\n },\n negativeXAxis: {\n start: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n startTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n startBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideStart: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideStartTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideStartBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n insideMiddleTop: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideMiddleBottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n end: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n endTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n endBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideEnd: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideEndTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideEndBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n }\n }\n};\n\nexport const DEFAULT_MARK_ARC_LINE_THEME = {\n interactive: true,\n startSymbol: {\n visible: false,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n endSymbol: {\n visible: true,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n label: {\n position: IMarkCommonArcLabelPosition.arcOuterMiddle,\n refX: 0,\n refY: 0,\n refAngle: 0,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n};\n\nexport const DEFAULT_MARK_AREA_THEME = {\n interactive: true,\n label: {\n position: IMarkAreaLabelPosition.right,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n areaStyle: {\n fill: '#b2bacf',\n visible: true\n }\n};\n\nexport const DEFAULT_MARK_ARC_AREA_THEME = {\n interactive: true,\n label: {\n position: IMarkCommonArcLabelPosition.arcOuterMiddle,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n areaStyle: {\n fill: '#b2bacf',\n visible: true\n }\n};\n\nexport const DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP: {\n [K: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n} = {\n arcInnerStart: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n arcInnerEnd: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n\n arcInnerMiddle: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n arcOuterStart: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n arcOuterEnd: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n arcOuterMiddle: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n center: {\n textAlign: 'center',\n textBaseline: 'middle'\n }\n};\n\nexport const DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP: {\n [K: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n} = {\n left: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideLeft: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n\n right: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideRight: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n\n top: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideTop: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n bottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n insideBottom: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n\n topLeft: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideTopLeft: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n topRight: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideTopRight: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n bottomLeft: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideBottomLeft: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n bottomRight: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideBottomRight: {\n textAlign: 'right',\n textBaseline: 'bottom'\n }\n};\n\nexport const DEFAULT_MARK_POINT_THEME = {\n interactive: true,\n targetSymbol: {\n visible: false,\n offset: 0,\n style: {\n symbolType: 'circle',\n size: 20,\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n itemLine: {\n visible: true,\n decorativeLine: {\n visible: false,\n length: 30\n },\n startSymbol: {\n visible: true,\n clip: true,\n symbolType: 'circle',\n size: 20,\n style: {\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n endSymbol: {\n visible: false,\n clip: true,\n symbolType: 'triangle',\n size: 12,\n style: {\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n lineStyle: {\n stroke: '#000',\n lineWidth: 1\n }\n },\n itemContent: {\n type: 'text',\n position: 'middle',\n refX: 10,\n symbolStyle: {\n symbolType: 'star',\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8,\n size: 20\n },\n textStyle: {\n dx: 0,\n dy: 0\n },\n imageStyle: {\n width: 80,\n height: 80\n },\n richTextStyle: {\n width: 100,\n height: 100\n }\n }\n};\n\nexport const DEFAULT_MARK_POINT_TEXT_STYLE_MAP: {\n [K: string]: {\n [T: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n };\n} = {\n postiveXAxis: {\n top: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n bottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n middle: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideMiddle: {\n textAlign: 'right',\n textBaseline: 'middle'\n }\n },\n negativeXAxis: {\n top: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n bottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n middle: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideMiddle: {\n textAlign: 'left',\n textBaseline: 'middle'\n }\n }\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/marker/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["import type { TextAlignType, TextBaselineType } from '@visactor/vrender-core';\nimport { IMarkAreaLabelPosition, IMarkLineLabelPosition, IMarkCommonArcLabelPosition } from './type';\nimport { autoRotate } from '../axis/overlap/auto-rotate';\n\nexport const FUZZY_EQUAL_DELTA = 0.001;\nexport const DEFAULT_MARK_LINE_THEME = {\n interactive: true,\n startSymbol: {\n visible: false,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n endSymbol: {\n visible: true,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n label: {\n position: IMarkLineLabelPosition.end,\n refX: 0,\n refY: 0,\n refAngle: 0,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n};\n\nexport const DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP: {\n [K: string]: {\n [T: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n };\n} = {\n postiveXAxis: {\n start: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n startTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n startBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideStart: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideStartTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideStartBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n insideMiddleTop: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideMiddleBottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n end: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n endTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n endBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideEnd: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideEndTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideEndBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n }\n },\n negativeXAxis: {\n start: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n startTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n startBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideStart: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideStartTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideStartBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n insideMiddleTop: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideMiddleBottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n end: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n endTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n endBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideEnd: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideEndTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideEndBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n }\n }\n};\n\nexport const DEFAULT_MARK_ARC_LINE_THEME = {\n interactive: true,\n startSymbol: {\n visible: false,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n endSymbol: {\n visible: true,\n symbolType: 'triangle',\n size: 12,\n fill: 'rgba(46, 47, 50)',\n lineWidth: 0\n },\n label: {\n autoRotate: true,\n position: IMarkCommonArcLabelPosition.arcOuterMiddle,\n refX: 0,\n refY: 0,\n refAngle: 0,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n lineStyle: {\n stroke: '#b2bacf',\n lineWidth: 1,\n lineDash: [2]\n }\n};\n\nexport const DEFAULT_MARK_AREA_THEME = {\n interactive: true,\n label: {\n position: IMarkAreaLabelPosition.right,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n areaStyle: {\n fill: '#b2bacf',\n visible: true\n }\n};\n\nexport const DEFAULT_MARK_ARC_AREA_THEME = {\n interactive: true,\n label: {\n autoRotate: true,\n position: IMarkCommonArcLabelPosition.arcOuterMiddle,\n textStyle: {\n fill: '#fff',\n stroke: '#fff',\n lineWidth: 0,\n fontSize: 10,\n fontWeight: 'normal',\n fontStyle: 'normal'\n },\n padding: [2, 2, 4, 4],\n panel: {\n visible: true,\n cornerRadius: 0,\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8\n }\n },\n areaStyle: {\n fill: '#b2bacf',\n visible: true\n }\n};\n\nexport const DEFAULT_POLAR_MARKER_TEXT_STYLE_MAP: {\n [K: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n} = {\n arcInnerStart: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n arcInnerEnd: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n\n arcInnerMiddle: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n arcOuterStart: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n arcOuterEnd: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n arcOuterMiddle: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n center: {\n textAlign: 'center',\n textBaseline: 'middle'\n }\n};\n\nexport const DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP: {\n [K: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n} = {\n left: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideLeft: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n\n right: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideRight: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n\n top: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n insideTop: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n\n bottom: {\n textAlign: 'center',\n textBaseline: 'top'\n },\n insideBottom: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n\n middle: {\n textAlign: 'center',\n textBaseline: 'middle'\n },\n\n topLeft: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideTopLeft: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n topRight: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideTopRight: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n bottomLeft: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideBottomLeft: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n bottomRight: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideBottomRight: {\n textAlign: 'right',\n textBaseline: 'bottom'\n }\n};\n\nexport const DEFAULT_MARK_POINT_THEME = {\n interactive: true,\n targetSymbol: {\n visible: false,\n offset: 0,\n style: {\n symbolType: 'circle',\n size: 20,\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n itemLine: {\n visible: true,\n decorativeLine: {\n visible: false,\n length: 30\n },\n startSymbol: {\n visible: true,\n clip: true,\n symbolType: 'circle',\n size: 20,\n style: {\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n endSymbol: {\n visible: false,\n clip: true,\n symbolType: 'triangle',\n size: 12,\n style: {\n fill: false,\n stroke: 'rgba(46, 47, 50)'\n }\n },\n lineStyle: {\n stroke: '#000',\n lineWidth: 1\n }\n },\n itemContent: {\n type: 'text',\n position: 'middle',\n refX: 10,\n symbolStyle: {\n symbolType: 'star',\n fill: 'rgb(48, 115, 242)',\n fillOpacity: 0.8,\n size: 20\n },\n textStyle: {\n dx: 0,\n dy: 0\n },\n imageStyle: {\n width: 80,\n height: 80\n },\n richTextStyle: {\n width: 100,\n height: 100\n }\n }\n};\n\nexport const DEFAULT_MARK_POINT_TEXT_STYLE_MAP: {\n [K: string]: {\n [T: string]: {\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n };\n };\n} = {\n postiveXAxis: {\n top: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n bottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n middle: {\n textAlign: 'left',\n textBaseline: 'middle'\n },\n insideTop: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n insideBottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n insideMiddle: {\n textAlign: 'right',\n textBaseline: 'middle'\n }\n },\n negativeXAxis: {\n top: {\n textAlign: 'right',\n textBaseline: 'bottom'\n },\n bottom: {\n textAlign: 'right',\n textBaseline: 'top'\n },\n middle: {\n textAlign: 'right',\n textBaseline: 'middle'\n },\n insideTop: {\n textAlign: 'left',\n textBaseline: 'bottom'\n },\n insideBottom: {\n textAlign: 'left',\n textBaseline: 'top'\n },\n insideMiddle: {\n textAlign: 'left',\n textBaseline: 'middle'\n }\n }\n};\n"]}
|
package/es/marker/line.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { IMarkLineLabelPosition } from './type';
|
|
1
|
+
import type { IMarkLineLabelPosition, MarkerLineLabelAttrs } from './type';
|
|
2
2
|
import type { MarkLineAttrs, MarkerAnimationState } from './type';
|
|
3
3
|
import type { ComponentOptions } from '../interface';
|
|
4
4
|
import { MarkCommonLine } from './common-line';
|
|
5
5
|
import type { ArcSegment } from '../segment';
|
|
6
6
|
import { Segment } from '../segment';
|
|
7
|
-
import type { ILineGraphicAttribute } from '@visactor/vrender-core';
|
|
7
|
+
import type { IGroup, ILineGraphicAttribute } from '@visactor/vrender-core';
|
|
8
8
|
export declare function registerMarkLineAnimate(): void;
|
|
9
9
|
export declare class MarkLine extends MarkCommonLine<ILineGraphicAttribute, IMarkLineLabelPosition> {
|
|
10
10
|
name: string;
|
|
@@ -12,14 +12,14 @@ export declare class MarkLine extends MarkCommonLine<ILineGraphicAttribute, IMar
|
|
|
12
12
|
protected _line: Segment | ArcSegment;
|
|
13
13
|
protected markerAnimate(state: MarkerAnimationState): void;
|
|
14
14
|
constructor(attributes: MarkLineAttrs, options?: ComponentOptions);
|
|
15
|
-
protected getPointAttrByPosition(position: IMarkLineLabelPosition): {
|
|
15
|
+
protected getPointAttrByPosition(position: IMarkLineLabelPosition, labelAttrs: MarkerLineLabelAttrs<IMarkLineLabelPosition>): {
|
|
16
16
|
position: {
|
|
17
17
|
x: number;
|
|
18
18
|
y: number;
|
|
19
19
|
};
|
|
20
20
|
angle: number;
|
|
21
21
|
};
|
|
22
|
-
protected getRotateByAngle(angle: number): number;
|
|
22
|
+
protected getRotateByAngle(angle: number, labelAttrs: MarkerLineLabelAttrs<IMarkLineLabelPosition>): number;
|
|
23
23
|
protected getTextStyle(position: IMarkLineLabelPosition, labelAngle: number, autoRotate: boolean): {
|
|
24
24
|
textAlign: string;
|
|
25
25
|
textBaseline: string;
|
|
@@ -27,4 +27,6 @@ export declare class MarkLine extends MarkCommonLine<ILineGraphicAttribute, IMar
|
|
|
27
27
|
protected createSegment(): Segment;
|
|
28
28
|
protected setLineAttributes(): void;
|
|
29
29
|
protected isValidPoints(): boolean;
|
|
30
|
+
protected addMarkLineLabels(container: IGroup): void;
|
|
31
|
+
protected updateMarkLineLabels(): void;
|
|
30
32
|
}
|
package/es/marker/line.js
CHANGED
|
@@ -28,9 +28,9 @@ export class MarkLine extends MarkCommonLine {
|
|
|
28
28
|
super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, MarkLine.defaultAttributes, attributes)),
|
|
29
29
|
this.name = "markLine";
|
|
30
30
|
}
|
|
31
|
-
getPointAttrByPosition(position) {
|
|
31
|
+
getPointAttrByPosition(position, labelAttrs) {
|
|
32
32
|
var _a;
|
|
33
|
-
const {
|
|
33
|
+
const {refX: refX = 0, refY: refY = 0} = labelAttrs, points = this._line.getMainSegmentPoints(), lineEndAngle = null !== (_a = this._line.getEndAngle()) && void 0 !== _a ? _a : 0, labelAngle = (isPostiveXAxis(lineEndAngle),
|
|
34
34
|
lineEndAngle), labelOffsetX = refX * Math.cos(labelAngle) + refY * Math.cos(labelAngle - Math.PI / 2), labelOffsetY = refX * Math.sin(labelAngle) + refY * Math.sin(labelAngle - Math.PI / 2);
|
|
35
35
|
return position.includes("start") || position.includes("Start") ? {
|
|
36
36
|
position: {
|
|
@@ -52,9 +52,9 @@ export class MarkLine extends MarkCommonLine {
|
|
|
52
52
|
angle: labelAngle
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
-
getRotateByAngle(angle) {
|
|
55
|
+
getRotateByAngle(angle, labelAttrs) {
|
|
56
56
|
var _a;
|
|
57
|
-
return (isPostiveXAxis(angle) ? angle : angle - Math.PI) + (null !== (_a =
|
|
57
|
+
return (isPostiveXAxis(angle) ? angle : angle - Math.PI) + (null !== (_a = labelAttrs.refAngle) && void 0 !== _a ? _a : 0);
|
|
58
58
|
}
|
|
59
59
|
getTextStyle(position, labelAngle, autoRotate) {
|
|
60
60
|
return fuzzyEqualNumber(Math.abs(labelAngle), Math.PI / 2, FUZZY_EQUAL_DELTA) || fuzzyEqualNumber(Math.abs(labelAngle), 3 * Math.PI / 2, FUZZY_EQUAL_DELTA) ? getTextAlignAttrOfVerticalDir(autoRotate, labelAngle, position) : isPostiveXAxis(labelAngle) ? DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.postiveXAxis[position] : DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.negativeXAxis[position];
|
|
@@ -102,6 +102,12 @@ export class MarkLine extends MarkCommonLine {
|
|
|
102
102
|
})); else if (!isValidNumber(point.x) || !isValidNumber(point.y)) return void (validFlag = !1);
|
|
103
103
|
})), validFlag;
|
|
104
104
|
}
|
|
105
|
+
addMarkLineLabels(container) {
|
|
106
|
+
this._addMarkLabels(container, "mark-common-line-label", MarkLine.defaultAttributes.label);
|
|
107
|
+
}
|
|
108
|
+
updateMarkLineLabels() {
|
|
109
|
+
this._updateMarkLabels(MarkLine.defaultAttributes.label);
|
|
110
|
+
}
|
|
105
111
|
}
|
|
106
112
|
|
|
107
113
|
MarkLine.defaultAttributes = DEFAULT_MARK_LINE_THEME;
|
package/es/marker/line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport type { IMarkLineLabelPosition } from './type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { MarkLineAttrs, MarkerAnimationState } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadMarkLineComponent } from './register';\nimport type { Point } from '../core/type';\nimport { MarkCommonLine } from './common-line';\nimport type { ArcSegment } from '../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport { Segment } from '../segment';\nimport { DEFAULT_STATES } from '../constant';\nimport { DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP, DEFAULT_MARK_LINE_THEME, FUZZY_EQUAL_DELTA } from './config';\nimport type { ILineGraphicAttribute } from '@visactor/vrender-core';\nimport { markCommonLineAnimate } from './animate/animate';\nimport { fuzzyEqualNumber, getTextAlignAttrOfVerticalDir, isPostiveXAxis } from '../util';\n\nloadMarkLineComponent();\n\nexport function registerMarkLineAnimate() {\n MarkLine._animate = markCommonLineAnimate;\n}\n\nexport class MarkLine extends MarkCommonLine<ILineGraphicAttribute, IMarkLineLabelPosition> {\n name = 'markLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<MarkLineAttrs> = DEFAULT_MARK_LINE_THEME as unknown as MarkLineAttrs;\n protected _line!: Segment | ArcSegment;\n\n /** animate */\n protected markerAnimate(state: MarkerAnimationState) {\n if (MarkLine._animate && this._animationConfig) {\n MarkLine._animate(this._line, this._label, this._animationConfig, state);\n }\n }\n\n constructor(attributes: MarkLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, MarkLine.defaultAttributes, attributes));\n }\n\n protected getPointAttrByPosition(position: IMarkLineLabelPosition) {\n const { label = {} } = this.attribute;\n const { refX = 0, refY = 0 } = label;\n const points = this._line.getMainSegmentPoints();\n const lineEndAngle = this._line.getEndAngle() ?? 0;\n const labelAngle = isPostiveXAxis(lineEndAngle) ? lineEndAngle : lineEndAngle;\n\n const labelOffsetX = refX * Math.cos(labelAngle) + refY * Math.cos(labelAngle - Math.PI / 2);\n const labelOffsetY = refX * Math.sin(labelAngle) + refY * Math.sin(labelAngle - Math.PI / 2);\n\n if (position.includes('start') || position.includes('Start')) {\n return {\n position: {\n x: points[0].x + labelOffsetX,\n y: points[0].y + labelOffsetY\n },\n angle: labelAngle\n };\n } else if (position.includes('middle') || position.includes('Middle')) {\n return {\n position: {\n x: (points[0].x + points[points.length - 1].x) / 2 + labelOffsetX,\n y: (points[0].y + points[points.length - 1].y) / 2 + labelOffsetY\n },\n angle: labelAngle\n };\n }\n return {\n position: {\n x: points[points.length - 1].x + labelOffsetX,\n y: points[points.length - 1].y + labelOffsetY\n },\n angle: labelAngle\n };\n }\n\n protected getRotateByAngle(angle: number): number {\n const itemAngle = isPostiveXAxis(angle) ? angle : angle - Math.PI;\n return itemAngle + (this.attribute.label.refAngle ?? 0);\n }\n\n protected getTextStyle(position: IMarkLineLabelPosition, labelAngle: number, autoRotate: boolean) {\n // 垂直方向例外\n if (\n fuzzyEqualNumber(Math.abs(labelAngle), Math.PI / 2, FUZZY_EQUAL_DELTA) ||\n fuzzyEqualNumber(Math.abs(labelAngle), (Math.PI * 3) / 2, FUZZY_EQUAL_DELTA)\n ) {\n return getTextAlignAttrOfVerticalDir(autoRotate, labelAngle, position);\n }\n\n if (isPostiveXAxis(labelAngle)) {\n return DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.postiveXAxis[position];\n }\n return DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.negativeXAxis[position];\n }\n\n protected createSegment() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as MarkLineAttrs;\n return new Segment({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n pickable: false, // 组件容器本身不参与拾取\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n\n protected setLineAttributes() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as MarkLineAttrs;\n if (this._line) {\n this._line.setAttributes({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as MarkLineAttrs;\n if (!points || points.length < 2) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point | Point[]) => {\n if ((point as any).length) {\n (point as Point[]).forEach((p: Point) => {\n if (!isValidNumber((p as Point).x) || !isValidNumber((p as Point).y)) {\n validFlag = false;\n return;\n }\n });\n } else if (!isValidNumber((point as Point).x) || !isValidNumber((point as Point).y)) {\n validFlag = false;\n return;\n }\n });\n return validFlag;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/marker/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport type { IMarkLineLabelPosition, MarkerLineLabelAttrs } from './type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { MarkLineAttrs, MarkerAnimationState } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadMarkLineComponent } from './register';\nimport type { Point } from '../core/type';\nimport { MarkCommonLine } from './common-line';\nimport type { ArcSegment } from '../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport { Segment } from '../segment';\nimport { DEFAULT_STATES } from '../constant';\nimport { DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP, DEFAULT_MARK_LINE_THEME, FUZZY_EQUAL_DELTA } from './config';\nimport type { IGroup, ILineGraphicAttribute } from '@visactor/vrender-core';\nimport { markCommonLineAnimate } from './animate/animate';\nimport { fuzzyEqualNumber, getTextAlignAttrOfVerticalDir, isPostiveXAxis } from '../util';\nimport type { TagAttributes } from '../tag';\n\nloadMarkLineComponent();\n\nexport function registerMarkLineAnimate() {\n MarkLine._animate = markCommonLineAnimate;\n}\n\nexport class MarkLine extends MarkCommonLine<ILineGraphicAttribute, IMarkLineLabelPosition> {\n name = 'markLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<MarkLineAttrs> = DEFAULT_MARK_LINE_THEME as unknown as MarkLineAttrs;\n protected _line!: Segment | ArcSegment;\n\n /** animate */\n protected markerAnimate(state: MarkerAnimationState) {\n if (MarkLine._animate && this._animationConfig) {\n MarkLine._animate(this._line, this._label, this._animationConfig, state);\n }\n }\n\n constructor(attributes: MarkLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, MarkLine.defaultAttributes, attributes));\n }\n\n protected getPointAttrByPosition(\n position: IMarkLineLabelPosition,\n labelAttrs: MarkerLineLabelAttrs<IMarkLineLabelPosition>\n ) {\n const { refX = 0, refY = 0 } = labelAttrs;\n const points = this._line.getMainSegmentPoints();\n const lineEndAngle = this._line.getEndAngle() ?? 0;\n const labelAngle = isPostiveXAxis(lineEndAngle) ? lineEndAngle : lineEndAngle;\n\n const labelOffsetX = refX * Math.cos(labelAngle) + refY * Math.cos(labelAngle - Math.PI / 2);\n const labelOffsetY = refX * Math.sin(labelAngle) + refY * Math.sin(labelAngle - Math.PI / 2);\n\n if (position.includes('start') || position.includes('Start')) {\n return {\n position: {\n x: points[0].x + labelOffsetX,\n y: points[0].y + labelOffsetY\n },\n angle: labelAngle\n };\n } else if (position.includes('middle') || position.includes('Middle')) {\n return {\n position: {\n x: (points[0].x + points[points.length - 1].x) / 2 + labelOffsetX,\n y: (points[0].y + points[points.length - 1].y) / 2 + labelOffsetY\n },\n angle: labelAngle\n };\n }\n return {\n position: {\n x: points[points.length - 1].x + labelOffsetX,\n y: points[points.length - 1].y + labelOffsetY\n },\n angle: labelAngle\n };\n }\n\n protected getRotateByAngle(angle: number, labelAttrs: MarkerLineLabelAttrs<IMarkLineLabelPosition>): number {\n const itemAngle = isPostiveXAxis(angle) ? angle : angle - Math.PI;\n return itemAngle + (labelAttrs.refAngle ?? 0);\n }\n\n protected getTextStyle(position: IMarkLineLabelPosition, labelAngle: number, autoRotate: boolean) {\n // 垂直方向例外\n if (\n fuzzyEqualNumber(Math.abs(labelAngle), Math.PI / 2, FUZZY_EQUAL_DELTA) ||\n fuzzyEqualNumber(Math.abs(labelAngle), (Math.PI * 3) / 2, FUZZY_EQUAL_DELTA)\n ) {\n return getTextAlignAttrOfVerticalDir(autoRotate, labelAngle, position);\n }\n\n if (isPostiveXAxis(labelAngle)) {\n return DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.postiveXAxis[position];\n }\n return DEFAULT_CARTESIAN_MARK_LINE_TEXT_STYLE_MAP.negativeXAxis[position];\n }\n\n protected createSegment() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as MarkLineAttrs;\n return new Segment({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n pickable: false, // 组件容器本身不参与拾取\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n\n protected setLineAttributes() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as MarkLineAttrs;\n if (this._line) {\n this._line.setAttributes({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as MarkLineAttrs;\n if (!points || points.length < 2) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point | Point[]) => {\n if ((point as any).length) {\n (point as Point[]).forEach((p: Point) => {\n if (!isValidNumber((p as Point).x) || !isValidNumber((p as Point).y)) {\n validFlag = false;\n return;\n }\n });\n } else if (!isValidNumber((point as Point).x) || !isValidNumber((point as Point).y)) {\n validFlag = false;\n return;\n }\n });\n return validFlag;\n }\n\n protected addMarkLineLabels(container: IGroup) {\n this._addMarkLabels(container, 'mark-common-line-label', MarkLine.defaultAttributes.label as TagAttributes);\n }\n\n protected updateMarkLineLabels() {\n this._updateMarkLabels(MarkLine.defaultAttributes.label as TagAttributes);\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IGroup } from '@visactor/vrender-core';
|
|
2
|
+
import type { TagAttributes } from '../../tag';
|
|
3
|
+
import { Tag } from '../../tag';
|
|
4
|
+
export interface MarkLabelMixin<T extends {
|
|
5
|
+
label?: any;
|
|
6
|
+
state?: any;
|
|
7
|
+
}> {
|
|
8
|
+
attribute: T;
|
|
9
|
+
setLabelPos: (labelNode: IGroup, labelAttrs: any) => any;
|
|
10
|
+
}
|
|
11
|
+
export declare class MarkLabelMixin<T> {
|
|
12
|
+
_label: Tag | Tag[];
|
|
13
|
+
getLabel(): Tag | Tag[];
|
|
14
|
+
_addMarkLabels(container: IGroup, labelName: string, defaultLabelAttrs: TagAttributes): void;
|
|
15
|
+
_updateMarkLabels(defaultLabelAttrs: TagAttributes): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { array, last, merge } from "@visactor/vutils";
|
|
2
|
+
|
|
3
|
+
import { DEFAULT_STATES } from "../../constant";
|
|
4
|
+
|
|
5
|
+
import { Tag } from "../../tag";
|
|
6
|
+
|
|
7
|
+
export class MarkLabelMixin {
|
|
8
|
+
getLabel() {
|
|
9
|
+
return this._label;
|
|
10
|
+
}
|
|
11
|
+
_addMarkLabels(container, labelName, defaultLabelAttrs) {
|
|
12
|
+
const {label: label, state: state} = this.attribute, labelStates = array(null == state ? void 0 : state.label), labelBackgroundStates = array(null == state ? void 0 : state.labelBackground), labelShapes = array(label).map(((labelAttrs, index) => {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
const finalLabelAttrs = merge({}, defaultLabelAttrs, labelAttrs), markLabel = new Tag(Object.assign(Object.assign({}, finalLabelAttrs), {
|
|
15
|
+
state: {
|
|
16
|
+
panel: merge({}, DEFAULT_STATES, null !== (_a = labelBackgroundStates[index]) && void 0 !== _a ? _a : last(labelBackgroundStates)),
|
|
17
|
+
text: merge({}, DEFAULT_STATES, null !== (_b = labelStates[index]) && void 0 !== _b ? _b : last(labelStates))
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
return markLabel.name = labelName, container.add(markLabel), this.setLabelPos(markLabel, finalLabelAttrs),
|
|
21
|
+
markLabel;
|
|
22
|
+
}));
|
|
23
|
+
this._label = 1 === array(labelShapes).length ? labelShapes[0] : labelShapes;
|
|
24
|
+
}
|
|
25
|
+
_updateMarkLabels(defaultLabelAttrs) {
|
|
26
|
+
const {label: label, state: state} = this.attribute, labelShapes = array(this._label), labelStates = array(null == state ? void 0 : state.label), labelBackgroundStates = array(null == state ? void 0 : state.labelBackground);
|
|
27
|
+
if (labelShapes.length) {
|
|
28
|
+
const labels = array(label);
|
|
29
|
+
labelShapes.forEach(((labelItem, index) => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
const finalLabelAttrs = merge({}, defaultLabelAttrs, labels[index]);
|
|
32
|
+
labelItem.setAttributes(Object.assign(Object.assign({
|
|
33
|
+
dx: 0,
|
|
34
|
+
dy: 0
|
|
35
|
+
}, finalLabelAttrs), {
|
|
36
|
+
state: {
|
|
37
|
+
panel: merge({}, DEFAULT_STATES, null !== (_a = labelBackgroundStates[index]) && void 0 !== _a ? _a : last(labelBackgroundStates)),
|
|
38
|
+
text: merge({}, DEFAULT_STATES, null !== (_b = labelStates[index]) && void 0 !== _b ? _b : last(labelStates))
|
|
39
|
+
}
|
|
40
|
+
})), this.setLabelPos(labelItem, finalLabelAttrs);
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/marker/mixin/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import { array, last, merge } from '@visactor/vutils';\nimport type { IGroup, INode } from '@visactor/vrender-core';\nimport { DEFAULT_STATES } from '../../constant';\nimport type { TagAttributes } from '../../tag';\nimport { Tag } from '../../tag';\n\nexport interface MarkLabelMixin<T extends { label?: any; state?: any }> {\n attribute: T;\n setLabelPos: (labelNode: IGroup, labelAttrs: any) => any;\n}\n\nexport class MarkLabelMixin<T> {\n _label!: Tag | Tag[];\n getLabel() {\n return this._label;\n }\n _addMarkLabels(container: IGroup, labelName: string, defaultLabelAttrs: TagAttributes) {\n const { label, state } = this.attribute as T;\n const labelStates = array(state?.label);\n const labelBackgroundStates = array(state?.labelBackground);\n // add label\n const labelShapes = array(label).map((labelAttrs, index) => {\n const finalLabelAttrs = merge({}, defaultLabelAttrs, labelAttrs as TagAttributes);\n const markLabel = new Tag({\n ...finalLabelAttrs,\n state: {\n panel: merge({}, DEFAULT_STATES, labelBackgroundStates[index] ?? last(labelBackgroundStates)),\n text: merge({}, DEFAULT_STATES, labelStates[index] ?? last(labelStates))\n }\n });\n markLabel.name = labelName;\n container.add(markLabel as unknown as INode);\n this.setLabelPos(markLabel, finalLabelAttrs);\n\n return markLabel;\n });\n this._label = array(labelShapes).length === 1 ? labelShapes[0] : labelShapes;\n }\n\n _updateMarkLabels(defaultLabelAttrs: TagAttributes) {\n const { label, state } = this.attribute as T;\n\n const labelShapes = array(this._label);\n const labelStates = array(state?.label);\n const labelBackgroundStates = array(state?.labelBackground);\n if (labelShapes.length) {\n const labels = array(label);\n labelShapes.forEach((labelItem: Tag, index: number) => {\n const finalLabelAttrs = merge({}, defaultLabelAttrs, labels[index] as TagAttributes);\n labelItem.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...finalLabelAttrs,\n state: {\n panel: merge({}, DEFAULT_STATES, labelBackgroundStates[index] ?? last(labelBackgroundStates)),\n text: merge({}, DEFAULT_STATES, labelStates[index] ?? last(labelStates))\n }\n });\n this.setLabelPos(labelItem, finalLabelAttrs);\n });\n }\n }\n}\n"]}
|