@visactor/vrender-components 0.18.11-alpha.7 → 0.18.12
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/axis/base.js +21 -9
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/circle.js +1 -1
- package/cjs/axis/circle.js.map +1 -1
- package/cjs/axis/grid/base.js +1 -5
- package/cjs/axis/grid/base.js.map +1 -1
- package/cjs/axis/index.d.ts +1 -0
- package/cjs/axis/index.js +1 -1
- package/cjs/axis/index.js.map +1 -1
- package/cjs/axis/line.js +5 -5
- package/cjs/axis/line.js.map +1 -1
- package/cjs/axis/mixin/circle.js +2 -4
- package/cjs/axis/mixin/circle.js.map +1 -1
- package/cjs/axis/overlap/auto-limit.js +8 -13
- package/cjs/axis/overlap/auto-limit.js.map +1 -1
- package/cjs/axis/util.d.ts +5 -2
- package/cjs/axis/util.js +18 -5
- package/cjs/axis/util.js.map +1 -1
- package/cjs/brush/brush.js +21 -14
- package/cjs/brush/brush.js.map +1 -1
- package/cjs/checkbox/checkbox.d.ts +3 -3
- package/cjs/checkbox/checkbox.js +12 -12
- package/cjs/checkbox/checkbox.js.map +1 -1
- package/cjs/checkbox/register.js +1 -1
- package/cjs/checkbox/register.js.map +1 -1
- package/cjs/checkbox/type.d.ts +2 -2
- package/cjs/checkbox/type.js.map +1 -1
- package/cjs/data-zoom/data-zoom.js +12 -6
- package/cjs/data-zoom/data-zoom.js.map +1 -1
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +3 -2
- package/cjs/index.js.map +1 -1
- package/cjs/indicator/indicator.js +3 -3
- package/cjs/indicator/indicator.js.map +1 -1
- package/cjs/label/arc.d.ts +2 -2
- package/cjs/label/base.d.ts +2 -2
- package/cjs/label/base.js +3 -1
- package/cjs/label/base.js.map +1 -1
- package/cjs/legend/color/color.js +7 -5
- package/cjs/legend/color/color.js.map +1 -1
- package/cjs/legend/discrete/discrete.js +4 -2
- package/cjs/legend/discrete/discrete.js.map +1 -1
- package/cjs/legend/size/size.js +6 -4
- package/cjs/legend/size/size.js.map +1 -1
- package/cjs/marker/area.d.ts +4 -14
- package/cjs/marker/area.js +21 -34
- package/cjs/marker/area.js.map +1 -1
- package/cjs/marker/base.d.ts +3 -21
- package/cjs/marker/base.js +5 -40
- package/cjs/marker/base.js.map +1 -1
- package/cjs/marker/config.d.ts +6 -79
- package/cjs/marker/config.js +37 -77
- package/cjs/marker/config.js.map +1 -1
- package/cjs/marker/index.d.ts +0 -2
- package/cjs/marker/index.js +1 -2
- package/cjs/marker/index.js.map +1 -1
- package/cjs/marker/line.d.ts +12 -24
- package/cjs/marker/line.js +45 -111
- package/cjs/marker/line.js.map +1 -1
- package/cjs/marker/point.d.ts +3 -8
- package/cjs/marker/point.js +9 -33
- package/cjs/marker/point.js.map +1 -1
- package/cjs/marker/register.d.ts +0 -2
- package/cjs/marker/register.js +2 -11
- package/cjs/marker/register.js.map +1 -1
- package/cjs/marker/type.d.ts +12 -102
- package/cjs/marker/type.js +2 -8
- package/cjs/marker/type.js.map +1 -1
- package/cjs/marker/util.js +3 -0
- package/cjs/marker/util.js.map +1 -0
- package/cjs/pager/pager.js +2 -2
- package/cjs/pager/pager.js.map +1 -1
- package/cjs/player/base-player.d.ts +2 -0
- package/cjs/player/base-player.js +11 -6
- package/cjs/player/base-player.js.map +1 -1
- package/cjs/player/continuous-player.d.ts +1 -1
- package/cjs/player/continuous-player.js +6 -4
- package/cjs/player/continuous-player.js.map +1 -1
- package/cjs/player/controller/controller.js +4 -4
- package/cjs/player/controller/controller.js.map +1 -1
- package/cjs/player/discrete-player.d.ts +1 -1
- package/cjs/player/discrete-player.js +6 -4
- package/cjs/player/discrete-player.js.map +1 -1
- package/cjs/poptip/poptip.js +6 -4
- package/cjs/poptip/poptip.js.map +1 -1
- package/cjs/poptip/register.js +2 -2
- package/cjs/poptip/register.js.map +1 -1
- package/cjs/radio/index.d.ts +2 -0
- package/cjs/radio/index.js +21 -0
- package/cjs/radio/index.js.map +1 -0
- package/cjs/radio/radio.d.ts +16 -0
- package/cjs/radio/radio.js +89 -0
- package/cjs/radio/radio.js.map +1 -0
- package/cjs/radio/register.d.ts +1 -0
- package/cjs/radio/register.js +15 -0
- package/cjs/radio/register.js.map +1 -0
- package/cjs/radio/type.d.ts +21 -0
- package/cjs/radio/type.js +6 -0
- package/cjs/radio/type.js.map +1 -0
- package/cjs/segment/index.d.ts +0 -1
- package/cjs/segment/index.js +1 -2
- package/cjs/segment/index.js.map +1 -1
- package/cjs/segment/register.d.ts +1 -2
- package/cjs/segment/register.js +3 -8
- package/cjs/segment/register.js.map +1 -1
- package/cjs/segment/segment.d.ts +7 -9
- package/cjs/segment/segment.js +8 -12
- package/cjs/segment/segment.js.map +1 -1
- package/cjs/segment/type.d.ts +4 -24
- package/cjs/segment/type.js.map +1 -1
- package/cjs/slider/slider.d.ts +2 -0
- package/cjs/slider/slider.js +60 -42
- package/cjs/slider/slider.js.map +1 -1
- package/cjs/slider/type.d.ts +1 -0
- package/cjs/slider/type.js.map +1 -1
- package/cjs/tag/tag.d.ts +0 -5
- package/cjs/tag/tag.js +5 -14
- package/cjs/tag/tag.js.map +1 -1
- package/cjs/title/register.js +1 -2
- package/cjs/title/register.js.map +1 -1
- package/cjs/title/title.js +6 -4
- package/cjs/title/title.js.map +1 -1
- package/cjs/util/text.d.ts +1 -1
- package/cjs/util/text.js +6 -7
- package/cjs/util/text.js.map +1 -1
- package/es/axis/base.js +23 -13
- package/es/axis/base.js.map +1 -1
- package/es/axis/circle.js +2 -2
- package/es/axis/circle.js.map +1 -1
- package/es/axis/grid/base.js +2 -6
- package/es/axis/grid/base.js.map +1 -1
- package/es/axis/index.d.ts +1 -0
- package/es/axis/index.js +2 -0
- package/es/axis/index.js.map +1 -1
- package/es/axis/line.js +5 -5
- package/es/axis/line.js.map +1 -1
- package/es/axis/mixin/circle.js +2 -3
- package/es/axis/mixin/circle.js.map +1 -1
- package/es/axis/overlap/auto-limit.js +9 -13
- package/es/axis/overlap/auto-limit.js.map +1 -1
- package/es/axis/util.d.ts +5 -2
- package/es/axis/util.js +15 -1
- package/es/axis/util.js.map +1 -1
- package/es/brush/brush.js +21 -14
- package/es/brush/brush.js.map +1 -1
- package/es/checkbox/checkbox.d.ts +3 -3
- package/es/checkbox/checkbox.js +13 -12
- package/es/checkbox/checkbox.js.map +1 -1
- package/es/checkbox/register.js +2 -2
- package/es/checkbox/register.js.map +1 -1
- package/es/checkbox/type.d.ts +2 -2
- package/es/checkbox/type.js.map +1 -1
- package/es/data-zoom/data-zoom.js +12 -6
- package/es/data-zoom/data-zoom.js.map +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +3 -1
- package/es/index.js.map +1 -1
- package/es/indicator/indicator.js +3 -3
- package/es/indicator/indicator.js.map +1 -1
- package/es/label/arc.d.ts +2 -2
- package/es/label/base.d.ts +2 -2
- package/es/label/base.js +3 -1
- package/es/label/base.js.map +1 -1
- package/es/legend/color/color.js +7 -5
- package/es/legend/color/color.js.map +1 -1
- package/es/legend/discrete/discrete.js +4 -2
- package/es/legend/discrete/discrete.js.map +1 -1
- package/es/legend/size/size.js +6 -4
- package/es/legend/size/size.js.map +1 -1
- package/es/marker/area.d.ts +4 -14
- package/es/marker/area.js +19 -36
- package/es/marker/area.js.map +1 -1
- package/es/marker/base.d.ts +3 -21
- package/es/marker/base.js +4 -43
- package/es/marker/base.js.map +1 -1
- package/es/marker/config.d.ts +6 -79
- package/es/marker/config.js +37 -79
- package/es/marker/config.js.map +1 -1
- package/es/marker/index.d.ts +0 -2
- package/es/marker/index.js +0 -4
- package/es/marker/index.js.map +1 -1
- package/es/marker/line.d.ts +12 -24
- package/es/marker/line.js +48 -116
- package/es/marker/line.js.map +1 -1
- package/es/marker/point.d.ts +3 -8
- package/es/marker/point.js +6 -34
- package/es/marker/point.js.map +1 -1
- package/es/marker/register.d.ts +0 -2
- package/es/marker/register.js +2 -10
- package/es/marker/register.js.map +1 -1
- package/es/marker/type.d.ts +12 -102
- package/es/marker/type.js +0 -9
- package/es/marker/type.js.map +1 -1
- package/es/marker/util.js +3 -0
- package/es/marker/util.js.map +1 -0
- package/es/pager/pager.js +2 -2
- package/es/pager/pager.js.map +1 -1
- package/es/player/base-player.d.ts +2 -0
- package/es/player/base-player.js +11 -6
- package/es/player/base-player.js.map +1 -1
- package/es/player/continuous-player.d.ts +1 -1
- package/es/player/continuous-player.js +6 -4
- package/es/player/continuous-player.js.map +1 -1
- package/es/player/controller/controller.js +5 -5
- package/es/player/controller/controller.js.map +1 -1
- package/es/player/discrete-player.d.ts +1 -1
- package/es/player/discrete-player.js +6 -4
- package/es/player/discrete-player.js.map +1 -1
- package/es/poptip/poptip.js +6 -4
- package/es/poptip/poptip.js.map +1 -1
- package/es/poptip/register.js +2 -2
- package/es/poptip/register.js.map +1 -1
- package/es/radio/index.d.ts +2 -0
- package/es/radio/index.js +4 -0
- package/es/radio/index.js.map +1 -0
- package/es/radio/radio.d.ts +16 -0
- package/es/radio/radio.js +88 -0
- package/es/radio/radio.js.map +1 -0
- package/es/radio/register.d.ts +1 -0
- package/es/radio/register.js +6 -0
- package/es/radio/register.js.map +1 -0
- package/es/radio/type.d.ts +21 -0
- package/es/radio/type.js +2 -0
- package/es/radio/type.js.map +1 -0
- package/es/segment/index.d.ts +0 -1
- package/es/segment/index.js +0 -2
- package/es/segment/index.js.map +1 -1
- package/es/segment/register.d.ts +1 -2
- package/es/segment/register.js +2 -6
- package/es/segment/register.js.map +1 -1
- package/es/segment/segment.d.ts +7 -9
- package/es/segment/segment.js +8 -11
- package/es/segment/segment.js.map +1 -1
- package/es/segment/type.d.ts +4 -24
- package/es/segment/type.js.map +1 -1
- package/es/slider/slider.d.ts +2 -0
- package/es/slider/slider.js +57 -40
- package/es/slider/slider.js.map +1 -1
- package/es/slider/type.d.ts +1 -0
- package/es/slider/type.js.map +1 -1
- package/es/tag/tag.d.ts +0 -5
- package/es/tag/tag.js +5 -14
- package/es/tag/tag.js.map +1 -1
- package/es/title/register.js +2 -2
- package/es/title/register.js.map +1 -1
- package/es/title/title.js +6 -4
- package/es/title/title.js.map +1 -1
- package/es/util/text.d.ts +1 -1
- package/es/util/text.js +6 -7
- package/es/util/text.js.map +1 -1
- package/package.json +3 -3
- package/cjs/marker/animate/animate.d.ts +0 -13
- package/cjs/marker/animate/animate.js +0 -92
- package/cjs/marker/animate/animate.js.map +0 -1
- package/cjs/marker/animate/call-in.d.ts +0 -4
- package/cjs/marker/animate/call-in.js +0 -27
- package/cjs/marker/animate/call-in.js.map +0 -1
- package/cjs/marker/animate/clip-in.d.ts +0 -4
- package/cjs/marker/animate/clip-in.js +0 -23
- package/cjs/marker/animate/clip-in.js.map +0 -1
- package/cjs/marker/animate/common.d.ts +0 -9
- package/cjs/marker/animate/common.js +0 -48
- package/cjs/marker/animate/common.js.map +0 -1
- package/cjs/marker/animate/fade-in.d.ts +0 -7
- package/cjs/marker/animate/fade-in.js +0 -30
- package/cjs/marker/animate/fade-in.js.map +0 -1
- package/cjs/marker/animate/fade-out.d.ts +0 -7
- package/cjs/marker/animate/fade-out.js +0 -30
- package/cjs/marker/animate/fade-out.js.map +0 -1
- package/cjs/marker/animate/index.js +0 -3
- package/cjs/marker/animate/index.js.map +0 -1
- package/cjs/marker/arc-area.d.ts +0 -55
- package/cjs/marker/arc-area.js +0 -131
- package/cjs/marker/arc-area.js.map +0 -1
- package/cjs/marker/arc-line.d.ts +0 -25
- package/cjs/marker/arc-line.js +0 -106
- package/cjs/marker/arc-line.js.map +0 -1
- package/cjs/marker/common-line.d.ts +0 -22
- package/cjs/marker/common-line.js +0 -56
- package/cjs/marker/common-line.js.map +0 -1
- package/cjs/segment/arc-segment.d.ts +0 -13
- package/cjs/segment/arc-segment.js +0 -51
- package/cjs/segment/arc-segment.js.map +0 -1
- package/cjs/util/interaction.d.ts +0 -4
- package/cjs/util/interaction.js +0 -37
- package/cjs/util/interaction.js.map +0 -1
- package/es/marker/animate/animate.d.ts +0 -13
- package/es/marker/animate/animate.js +0 -92
- package/es/marker/animate/animate.js.map +0 -1
- package/es/marker/animate/call-in.d.ts +0 -4
- package/es/marker/animate/call-in.js +0 -17
- package/es/marker/animate/call-in.js.map +0 -1
- package/es/marker/animate/clip-in.d.ts +0 -4
- package/es/marker/animate/clip-in.js +0 -15
- package/es/marker/animate/clip-in.js.map +0 -1
- package/es/marker/animate/common.d.ts +0 -9
- package/es/marker/animate/common.js +0 -39
- package/es/marker/animate/common.js.map +0 -1
- package/es/marker/animate/fade-in.d.ts +0 -7
- package/es/marker/animate/fade-in.js +0 -20
- package/es/marker/animate/fade-in.js.map +0 -1
- package/es/marker/animate/fade-out.d.ts +0 -7
- package/es/marker/animate/fade-out.js +0 -20
- package/es/marker/animate/fade-out.js.map +0 -1
- package/es/marker/animate/index.js +0 -3
- package/es/marker/animate/index.js.map +0 -1
- package/es/marker/arc-area.d.ts +0 -55
- package/es/marker/arc-area.js +0 -143
- package/es/marker/arc-area.js.map +0 -1
- package/es/marker/arc-line.d.ts +0 -25
- package/es/marker/arc-line.js +0 -114
- package/es/marker/arc-line.js.map +0 -1
- package/es/marker/common-line.d.ts +0 -22
- package/es/marker/common-line.js +0 -58
- package/es/marker/common-line.js.map +0 -1
- package/es/segment/arc-segment.d.ts +0 -13
- package/es/segment/arc-segment.js +0 -49
- package/es/segment/arc-segment.js.map +0 -1
- package/es/util/interaction.d.ts +0 -4
- package/es/util/interaction.js +0 -30
- package/es/util/interaction.js.map +0 -1
- /package/cjs/marker/{animate/index.d.ts → util.d.ts} +0 -0
- /package/es/marker/{animate/index.d.ts → util.d.ts} +0 -0
package/cjs/marker/type.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { IGroup, IGroupGraphicAttribute, IImageGraphicAttribute, IPolygonAttribute, IRichTextGraphicAttribute, ISymbolGraphicAttribute } from '@visactor/vrender-core';
|
|
2
|
+
import type { SegmentAttributes, SymbolAttributes } from '../segment';
|
|
3
3
|
import type { TagAttributes } from '../tag';
|
|
4
|
-
import type { Point
|
|
4
|
+
import type { Point } from '../core/type';
|
|
5
5
|
export declare enum IMarkLineLabelPosition {
|
|
6
6
|
start = "start",
|
|
7
7
|
middle = "middle",
|
|
@@ -24,15 +24,6 @@ export declare enum IMarkAreaLabelPosition {
|
|
|
24
24
|
insideTop = "insideTop",
|
|
25
25
|
insideBottom = "insideBottom"
|
|
26
26
|
}
|
|
27
|
-
export declare enum IMarkCommonArcLabelPosition {
|
|
28
|
-
arcInnerStart = "arcInnerStart",
|
|
29
|
-
arcInnerEnd = "arcInnerEnd",
|
|
30
|
-
arcInnerMiddle = "arcInnerMiddle",
|
|
31
|
-
arcOuterStart = "arcOuterStart",
|
|
32
|
-
arcOuterEnd = "arcOuterEnd",
|
|
33
|
-
arcOuterMiddle = "arcOuterMiddle",
|
|
34
|
-
center = "center"
|
|
35
|
-
}
|
|
36
27
|
export declare enum IMarkPointItemPosition {
|
|
37
28
|
top = "top",
|
|
38
29
|
bottom = "bottom",
|
|
@@ -55,11 +46,9 @@ export type IMarkRef = {
|
|
|
55
46
|
refY?: number;
|
|
56
47
|
refAngle?: number;
|
|
57
48
|
};
|
|
58
|
-
export type MarkerAttrs
|
|
59
|
-
type?: 'line' | '
|
|
49
|
+
export type MarkerAttrs = IGroupGraphicAttribute & {
|
|
50
|
+
type?: 'line' | 'area' | 'point';
|
|
60
51
|
interactive?: boolean;
|
|
61
|
-
select?: boolean;
|
|
62
|
-
hover?: boolean;
|
|
63
52
|
visible?: boolean;
|
|
64
53
|
clipInRange?: boolean;
|
|
65
54
|
limitRect?: {
|
|
@@ -68,76 +57,16 @@ export type MarkerAttrs<AnimationType> = IGroupGraphicAttribute & {
|
|
|
68
57
|
width: number;
|
|
69
58
|
height: number;
|
|
70
59
|
};
|
|
71
|
-
} & BaseMarkerAnimation<AnimationType>;
|
|
72
|
-
export type BaseMarkerAnimation<T> = {
|
|
73
|
-
animation?: MarkerAnimation<T> | boolean;
|
|
74
|
-
animationEnter?: MarkerUpdateAnimation<T>;
|
|
75
|
-
animationUpdate?: MarkerUpdateAnimation<T>;
|
|
76
|
-
animationExit?: MarkerExitAnimation;
|
|
77
|
-
};
|
|
78
|
-
export type MarkerAnimation<T> = MarkerUpdateAnimation<T> | MarkerUpdateAnimation<T>;
|
|
79
|
-
export type MarkerUpdateAnimation<T> = {
|
|
80
|
-
type: T;
|
|
81
|
-
} & MarkerExitAnimation;
|
|
82
|
-
export type CommonMarkLineAnimationType = 'clipIn' | 'fadeIn';
|
|
83
|
-
export type CommonMarkAreaAnimationType = 'fadeIn';
|
|
84
|
-
export type MarkPointAnimationType = 'callIn' | 'fadeIn';
|
|
85
|
-
export type MarkerExitAnimation = {
|
|
86
|
-
type: 'fadeOut';
|
|
87
|
-
duration?: number;
|
|
88
|
-
delay?: number;
|
|
89
|
-
easing?: EasingType;
|
|
90
|
-
};
|
|
91
|
-
export type MarkerAnimationState = 'enter' | 'update' | 'exit';
|
|
92
|
-
export type CommonMarkLineState<LineAttr> = {
|
|
93
|
-
line?: State<LineAttr>;
|
|
94
|
-
lineStartSymbol?: State<Partial<ISymbolGraphicAttribute>>;
|
|
95
|
-
lineEndSymbol?: State<Partial<ISymbolGraphicAttribute>>;
|
|
96
|
-
label?: State<Partial<ITextGraphicAttribute>>;
|
|
97
|
-
labelBackground?: State<Partial<IRectGraphicAttribute>>;
|
|
98
60
|
};
|
|
99
|
-
export type
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
labelBackground?: State<Partial<IRectGraphicAttribute>>;
|
|
103
|
-
};
|
|
104
|
-
export type MarkPointState = {
|
|
105
|
-
line?: State<ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[]>;
|
|
106
|
-
lineStartSymbol?: State<Partial<ISymbolGraphicAttribute>>;
|
|
107
|
-
lineEndSymbol?: State<Partial<ISymbolGraphicAttribute>>;
|
|
108
|
-
symbol?: State<Partial<ISymbolGraphicAttribute>>;
|
|
109
|
-
image?: State<Partial<IImageGraphicAttribute>>;
|
|
110
|
-
text?: State<Partial<ITextGraphicAttribute>>;
|
|
111
|
-
textBackground?: State<Partial<IRectGraphicAttribute>>;
|
|
112
|
-
richText?: State<Partial<IRichTextGraphicAttribute>>;
|
|
113
|
-
customMark?: State<Partial<IGroupGraphicAttribute>>;
|
|
114
|
-
};
|
|
115
|
-
export type CommonMarkLineAttrs<LineAttr, LineLabelPosition, CommonMarkLineAnimationType> = MarkerAttrs<CommonMarkLineAnimationType> & Omit<CommonSegmentAttributes, 'state' | 'lineStyle'> & {
|
|
61
|
+
export type MarkLineAttrs = MarkerAttrs & SegmentAttributes & {
|
|
62
|
+
type?: 'line';
|
|
63
|
+
points: Point[] | Point[][];
|
|
116
64
|
label?: {
|
|
117
|
-
position?:
|
|
65
|
+
position?: keyof typeof IMarkLineLabelPosition;
|
|
118
66
|
confine?: boolean;
|
|
119
67
|
} & IMarkRef & IMarkLabel;
|
|
120
|
-
state?: CommonMarkLineState<LineAttr>;
|
|
121
|
-
};
|
|
122
|
-
export type MarkLineAttrs = CommonMarkLineAttrs<ILineGraphicWithCornerRadius | ILineGraphicAttribute[], keyof typeof IMarkLineLabelPosition, CommonMarkLineAnimationType> & {
|
|
123
|
-
type?: 'line';
|
|
124
|
-
multiSegment?: boolean;
|
|
125
|
-
mainSegmentIndex?: number;
|
|
126
|
-
points: Point[] | Point[][];
|
|
127
|
-
lineStyle?: ILineGraphicAttribute;
|
|
128
|
-
};
|
|
129
|
-
export type MarkArcLineAttrs = CommonMarkLineAttrs<IArcGraphicAttribute, keyof typeof IMarkCommonArcLabelPosition, CommonMarkLineAnimationType> & {
|
|
130
|
-
type?: 'arc-line';
|
|
131
|
-
center: {
|
|
132
|
-
x: number;
|
|
133
|
-
y: number;
|
|
134
|
-
};
|
|
135
|
-
radius: number;
|
|
136
|
-
startAngle: number;
|
|
137
|
-
endAngle: number;
|
|
138
|
-
lineStyle?: IArcGraphicAttribute;
|
|
139
68
|
};
|
|
140
|
-
export type MarkAreaAttrs = MarkerAttrs
|
|
69
|
+
export type MarkAreaAttrs = MarkerAttrs & {
|
|
141
70
|
type?: 'area';
|
|
142
71
|
points: Point[];
|
|
143
72
|
label?: {
|
|
@@ -145,24 +74,6 @@ export type MarkAreaAttrs = MarkerAttrs<CommonMarkAreaAnimationType> & {
|
|
|
145
74
|
confine?: boolean;
|
|
146
75
|
} & IMarkLabel;
|
|
147
76
|
areaStyle?: IPolygonAttribute;
|
|
148
|
-
state?: CommonMarkAreaState<IPolygonGraphicAttribute>;
|
|
149
|
-
};
|
|
150
|
-
export type MarkArcAreaAttrs = MarkerAttrs<CommonMarkAreaAnimationType> & {
|
|
151
|
-
type?: 'arc-area';
|
|
152
|
-
center: {
|
|
153
|
-
x: number;
|
|
154
|
-
y: number;
|
|
155
|
-
};
|
|
156
|
-
innerRadius: number;
|
|
157
|
-
outerRadius: number;
|
|
158
|
-
startAngle: number;
|
|
159
|
-
endAngle: number;
|
|
160
|
-
label?: {
|
|
161
|
-
position?: keyof typeof IMarkCommonArcLabelPosition;
|
|
162
|
-
confine?: boolean;
|
|
163
|
-
} & IMarkRef & IMarkLabel;
|
|
164
|
-
areaStyle?: IArcGraphicAttribute;
|
|
165
|
-
state?: CommonMarkAreaState<IArcGraphicAttribute>;
|
|
166
77
|
};
|
|
167
78
|
export type IItemContent = IMarkRef & {
|
|
168
79
|
type?: 'symbol' | 'text' | 'image' | 'richText' | 'custom';
|
|
@@ -184,9 +95,8 @@ export type IItemLine = {
|
|
|
184
95
|
length?: number;
|
|
185
96
|
};
|
|
186
97
|
} & Omit<SegmentAttributes, 'points'>;
|
|
187
|
-
export type MarkPointAttrs = Omit<MarkerAttrs
|
|
98
|
+
export type MarkPointAttrs = Omit<MarkerAttrs, 'labelStyle'> & {
|
|
188
99
|
position: Point;
|
|
189
100
|
itemLine?: IItemLine;
|
|
190
101
|
itemContent?: IItemContent;
|
|
191
|
-
|
|
192
|
-
} & BaseMarkerAnimation<MarkPointAnimationType>;
|
|
102
|
+
};
|
package/cjs/marker/type.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var IMarkLineLabelPosition, IMarkAreaLabelPosition,
|
|
3
|
+
var IMarkLineLabelPosition, IMarkAreaLabelPosition, IMarkPointItemPosition;
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: !0
|
|
7
|
-
}), exports.IMarkPointItemPosition = exports.
|
|
7
|
+
}), exports.IMarkPointItemPosition = exports.IMarkAreaLabelPosition = exports.IMarkLineLabelPosition = void 0,
|
|
8
8
|
function(IMarkLineLabelPosition) {
|
|
9
9
|
IMarkLineLabelPosition.start = "start", IMarkLineLabelPosition.middle = "middle",
|
|
10
10
|
IMarkLineLabelPosition.end = "end", IMarkLineLabelPosition.insideStartTop = "insideStartTop",
|
|
@@ -18,12 +18,6 @@ function(IMarkAreaLabelPosition) {
|
|
|
18
18
|
IMarkAreaLabelPosition.insideLeft = "insideLeft", IMarkAreaLabelPosition.insideRight = "insideRight",
|
|
19
19
|
IMarkAreaLabelPosition.insideTop = "insideTop", IMarkAreaLabelPosition.insideBottom = "insideBottom";
|
|
20
20
|
}(IMarkAreaLabelPosition = exports.IMarkAreaLabelPosition || (exports.IMarkAreaLabelPosition = {})),
|
|
21
|
-
function(IMarkCommonArcLabelPosition) {
|
|
22
|
-
IMarkCommonArcLabelPosition.arcInnerStart = "arcInnerStart", IMarkCommonArcLabelPosition.arcInnerEnd = "arcInnerEnd",
|
|
23
|
-
IMarkCommonArcLabelPosition.arcInnerMiddle = "arcInnerMiddle", IMarkCommonArcLabelPosition.arcOuterStart = "arcOuterStart",
|
|
24
|
-
IMarkCommonArcLabelPosition.arcOuterEnd = "arcOuterEnd", IMarkCommonArcLabelPosition.arcOuterMiddle = "arcOuterMiddle",
|
|
25
|
-
IMarkCommonArcLabelPosition.center = "center";
|
|
26
|
-
}(IMarkCommonArcLabelPosition = exports.IMarkCommonArcLabelPosition || (exports.IMarkCommonArcLabelPosition = {})),
|
|
27
21
|
function(IMarkPointItemPosition) {
|
|
28
22
|
IMarkPointItemPosition.top = "top", IMarkPointItemPosition.bottom = "bottom", IMarkPointItemPosition.middle = "middle",
|
|
29
23
|
IMarkPointItemPosition.insideTop = "insideTop", IMarkPointItemPosition.insideBottom = "insideBottom",
|
package/cjs/marker/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/type.ts"],"names":[],"mappings":";;;AAwBA,IAAY,sBAUX;AAVD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,qCAAW,CAAA;IACX,2DAAiC,CAAA;IACjC,iEAAuC,CAAA;IACvC,6DAAmC,CAAA;IACnC,mEAAyC,CAAA;IACzC,uDAA6B,CAAA;IAC7B,6DAAmC,CAAA;AACrC,CAAC,EAVW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAUjC;AAED,IAAY,sBAUX;AAVD,WAAY,sBAAsB;IAChC,uCAAa,CAAA;IACb,yCAAe,CAAA;IACf,qCAAW,CAAA;IACX,2CAAiB,CAAA;IACjB,2CAAiB,CAAA;IACjB,mDAAyB,CAAA;IACzB,qDAA2B,CAAA;IAC3B,iDAAuB,CAAA;IACvB,uDAA6B,CAAA;AAC/B,CAAC,EAVW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAUjC;AAED,IAAY,2BAQX;AARD,WAAY,2BAA2B;IACrC,8DAA+B,CAAA;IAC/B,0DAA2B,CAAA;IAC3B,gEAAiC,CAAA;IACjC,8DAA+B,CAAA;IAC/B,0DAA2B,CAAA;IAC3B,gEAAiC,CAAA;IACjC,gDAAiB,CAAA;AACnB,CAAC,EARW,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAQtC;AAED,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,qCAAW,CAAA;IACX,2CAAiB,CAAA;IACjB,2CAAiB,CAAA;IACjB,iDAAuB,CAAA;IACvB,uDAA6B,CAAA;IAC7B,uDAA6B,CAAA;AAC/B,CAAC,EAPW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAOjC","file":"type.js","sourcesContent":["import type {\n EasingType,\n IArcGraphicAttribute,\n IGroup,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n ILineGraphicAttribute,\n IPolygonAttribute,\n IPolygonGraphicAttribute,\n IRectGraphicAttribute,\n IRichTextGraphicAttribute,\n ISymbolGraphicAttribute,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport type {\n ArcSegmentAttributes,\n CommonSegmentAttributes,\n ILineGraphicWithCornerRadius,\n SegmentAttributes,\n SymbolAttributes\n} from '../segment';\nimport type { TagAttributes } from '../tag';\nimport type { Point, State } from '../core/type';\n\nexport enum IMarkLineLabelPosition {\n start = 'start',\n middle = 'middle',\n end = 'end',\n insideStartTop = 'insideStartTop',\n insideStartBottom = 'insideStartBottom',\n insideMiddleTop = 'insideMiddleTop',\n insideMiddleBottom = 'insideMiddleBottom',\n insideEndTop = 'insideEndTop',\n insideEndBottom = 'insideEndBottom'\n}\n\nexport enum IMarkAreaLabelPosition {\n left = 'left',\n right = 'right',\n top = 'top',\n bottom = 'bottom',\n middle = 'middle',\n insideLeft = 'insideLeft',\n insideRight = 'insideRight',\n insideTop = 'insideTop',\n insideBottom = 'insideBottom'\n}\n\nexport enum IMarkCommonArcLabelPosition {\n arcInnerStart = 'arcInnerStart',\n arcInnerEnd = 'arcInnerEnd',\n arcInnerMiddle = 'arcInnerMiddle',\n arcOuterStart = 'arcOuterStart',\n arcOuterEnd = 'arcOuterEnd',\n arcOuterMiddle = 'arcOuterMiddle',\n center = 'center'\n}\n\nexport enum IMarkPointItemPosition {\n top = 'top',\n bottom = 'bottom',\n middle = 'middle',\n insideTop = 'insideTop',\n insideBottom = 'insideBottom',\n insideMiddle = 'insideMiddle'\n}\n\nexport type IMarkBackgroundAttributes = {\n /**\n * 是否绘制背景层\n */\n visible: boolean;\n /**\n * TODO: 根据文字宽度进行背景 panel size自适应\n */\n autoHeight?: boolean;\n /**\n * TODO: 根据文高度度进行背景 panel size自适应\n */\n autoWidth?: boolean;\n} & Partial<SymbolAttributes>;\n\nexport type IMarkLabel = Omit<TagAttributes, 'x' | 'y' | 'panel'> & {\n /**\n * 标签的背景面板配置\n */\n panel?: IMarkBackgroundAttributes;\n};\n\nexport type IMarkRef = {\n /**\n * 自动旋转,沿着线的方向,默认 true\n */\n autoRotate?: boolean;\n /**\n * label 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * label 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * label 相对默认角度的偏移 (label跟随line的角度做自动旋转时,默认按照line的平行向量作为初始角度)\n */\n refAngle?: number;\n};\n\nexport type MarkerAttrs<AnimationType> = IGroupGraphicAttribute & {\n type?: 'line' | 'arc-line' | 'area' | 'arc-area' | 'point';\n /**\n * 是否支持交互\n * @default true\n */\n interactive?: boolean;\n /**\n * 是否开启选中交互\n * @default false\n */\n select?: boolean;\n /**\n * 是否开启 hover 交互\n * @default false\n */\n hover?: boolean;\n /**\n * 是否显示marker组件\n * @default true\n */\n visible?: boolean;\n /**\n * 是否将组件在绘制区域内进行剪切\n * @default true\n */\n clipInRange?: boolean;\n /**\n * 组件绘制范围配置\n */\n limitRect?: {\n x: number;\n y: number;\n width: number;\n height: number;\n };\n} & BaseMarkerAnimation<AnimationType>;\n\n/** animation type */\nexport type BaseMarkerAnimation<T> = {\n animation?: MarkerAnimation<T> | boolean;\n animationEnter?: MarkerUpdateAnimation<T>;\n animationUpdate?: MarkerUpdateAnimation<T>;\n animationExit?: MarkerExitAnimation;\n};\nexport type MarkerAnimation<T> = MarkerUpdateAnimation<T> | MarkerUpdateAnimation<T>;\n\nexport type MarkerUpdateAnimation<T> = {\n type: T;\n} & MarkerExitAnimation;\n\nexport type CommonMarkLineAnimationType = 'clipIn' | 'fadeIn';\n\nexport type CommonMarkAreaAnimationType = 'fadeIn';\n\nexport type MarkPointAnimationType = 'callIn' | 'fadeIn';\n\nexport type MarkerExitAnimation = {\n type: 'fadeOut';\n duration?: number;\n delay?: number;\n easing?: EasingType;\n};\n\nexport type MarkerAnimationState = 'enter' | 'update' | 'exit';\n\n/** state type */\nexport type CommonMarkLineState<LineAttr> = {\n line?: State<LineAttr>;\n lineStartSymbol?: State<Partial<ISymbolGraphicAttribute>>;\n lineEndSymbol?: State<Partial<ISymbolGraphicAttribute>>;\n label?: State<Partial<ITextGraphicAttribute>>;\n labelBackground?: State<Partial<IRectGraphicAttribute>>;\n};\n\nexport type CommonMarkAreaState<AreaAttr> = {\n area?: State<Partial<AreaAttr>>;\n label?: State<Partial<ITextGraphicAttribute>>;\n labelBackground?: State<Partial<IRectGraphicAttribute>>;\n};\n\nexport type MarkPointState = {\n line?: State<ILineGraphicWithCornerRadius | Partial<ILineGraphicAttribute>[]>;\n lineStartSymbol?: State<Partial<ISymbolGraphicAttribute>>;\n lineEndSymbol?: State<Partial<ISymbolGraphicAttribute>>;\n symbol?: State<Partial<ISymbolGraphicAttribute>>;\n image?: State<Partial<IImageGraphicAttribute>>;\n text?: State<Partial<ITextGraphicAttribute>>;\n textBackground?: State<Partial<IRectGraphicAttribute>>;\n richText?: State<Partial<IRichTextGraphicAttribute>>;\n customMark?: State<Partial<IGroupGraphicAttribute>>;\n};\n\nexport type CommonMarkLineAttrs<LineAttr, LineLabelPosition, CommonMarkLineAnimationType> =\n MarkerAttrs<CommonMarkLineAnimationType> &\n Omit<CommonSegmentAttributes, 'state' | 'lineStyle'> & {\n /**\n * 标签\n */\n label?: {\n /**\n * label 相对line的位置\n */\n position?: LineLabelPosition;\n /**\n * 当 mark 配置了 limitRect 之后,label 是否自动调整位置\n * @default false\n */\n confine?: boolean;\n } & IMarkRef &\n IMarkLabel;\n state?: CommonMarkLineState<LineAttr>;\n };\n\nexport type MarkLineAttrs = CommonMarkLineAttrs<\n ILineGraphicWithCornerRadius | ILineGraphicAttribute[],\n keyof typeof IMarkLineLabelPosition,\n CommonMarkLineAnimationType\n> & {\n type?: 'line';\n /**\n * 是否对 points 进行多段处理,默认为 false,即直接将所有的点连接成线。\n * 如果需要进行多段处理,需要将 points 属性配置为 Point[][] 类型\n * @default false\n */\n multiSegment?: boolean;\n /**\n * 在 `multiSegment` 属性开启的前提下,用于声明那一段线段用来作为主线段,如果不声明,默认全段为主线段\n */\n mainSegmentIndex?: number;\n /**\n * 构成line的点: 如果是两个点,则为直线;多个点则为曲线\n */\n points: Point[] | Point[][];\n lineStyle?: ILineGraphicAttribute;\n};\n\nexport type MarkArcLineAttrs = CommonMarkLineAttrs<\n IArcGraphicAttribute,\n keyof typeof IMarkCommonArcLabelPosition,\n CommonMarkLineAnimationType\n> & {\n type?: 'arc-line';\n /**\n * 弧线中心位置\n */\n center: {\n x: number;\n y: number;\n };\n /**\n * 弧线半径\n */\n radius: number;\n /**\n * 弧线起始角度(弧度)\n */\n startAngle: number;\n /**\n * 弧线终点角度(弧度)\n */\n endAngle: number;\n lineStyle?: IArcGraphicAttribute;\n};\n\nexport type MarkAreaAttrs = MarkerAttrs<CommonMarkAreaAnimationType> & {\n type?: 'area';\n /**\n * 构成area的点\n */\n points: Point[];\n /**\n * 标签\n */\n label?: {\n position?: keyof typeof IMarkAreaLabelPosition;\n /**\n * 当 mark 配置了 limitRect 之后,label 是否自动调整位置\n * @default false\n */\n confine?: boolean;\n } & IMarkLabel;\n /**\n * area的样式\n */\n areaStyle?: IPolygonAttribute;\n\n state?: CommonMarkAreaState<IPolygonGraphicAttribute>;\n};\n\nexport type MarkArcAreaAttrs = MarkerAttrs<CommonMarkAreaAnimationType> & {\n type?: 'arc-area';\n /**\n * 扇区中心位置\n */\n center: {\n x: number;\n y: number;\n };\n /**\n * 扇区内半径\n */\n innerRadius: number;\n /**\n * 扇区外半径\n */\n outerRadius: number;\n /**\n * 扇区起始角度(弧度)\n */\n startAngle: number;\n /**\n * 扇区终点角度(弧度)\n */\n endAngle: number;\n /**\n * 标签\n */\n label?: {\n position?: keyof typeof IMarkCommonArcLabelPosition;\n /**\n * 当 mark 配置了 limitRect 之后,label 是否自动调整位置\n * @default false\n */\n confine?: boolean;\n } & IMarkRef &\n IMarkLabel;\n /**\n * area的样式\n */\n areaStyle?: IArcGraphicAttribute;\n\n state?: CommonMarkAreaState<IArcGraphicAttribute>;\n};\n\nexport type IItemContent = IMarkRef & {\n /**\n * 标注类型\n * Tips: 保留'richText'与之前的定义做兼容\n */\n type?: 'symbol' | 'text' | 'image' | 'richText' | 'custom';\n position?: keyof typeof IMarkPointItemPosition;\n /**\n * x 方向偏移量\n */\n offsetX?: number;\n /**\n * y 方向偏移量\n */\n offsetY?: number;\n /**\n * type为symbol时, symbol的样式\n */\n symbolStyle?: ISymbolGraphicAttribute;\n /**\n * type为image时, image的样式\n */\n imageStyle?: IImageGraphicAttribute;\n /**\n * type为text时, text的配置\n * 'text'类型的ItemContent新增三种子类型:'text','rich','html'。配置在textStyle.type上,继承自TagAttributes。\n */\n textStyle?: IMarkLabel;\n /**\n * type为rich text时, rich text的样式\n */\n richTextStyle?: IRichTextGraphicAttribute;\n /**\n * type为custom时,允许以callback的方式传入需要render的item\n */\n renderCustomCallback?: () => IGroup;\n /**\n * 当 mark 配置了 limitRect 之后,label 是否自动调整位置\n * @default false\n */\n confine?: boolean;\n};\n\nexport type IItemLine = {\n /** TODO:'type-opo' */\n type?: 'type-s' | 'type-do' | 'type-po' | 'type-op';\n visible?: boolean;\n /**\n * 垂直于引导线的装饰线,参考案例: https://observablehq.com/@mikelotis/edmonton-population-history-line-chart\n */\n decorativeLine?: {\n visible?: boolean;\n length?: number;\n };\n} & Omit<SegmentAttributes, 'points'>;\n\nexport type MarkPointAttrs = Omit<MarkerAttrs<MarkPointAnimationType>, 'labelStyle'> & {\n /**\n * markPoint的位置(也是path的起点)\n */\n position: Point;\n /**\n * 标注引导线\n */\n itemLine?: IItemLine;\n\n /**\n * 标注内容\n */\n itemContent?: IItemContent;\n\n state?: MarkPointState;\n} & BaseMarkerAnimation<MarkPointAnimationType>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/marker/type.ts"],"names":[],"mappings":";;;AAYA,IAAY,sBAUX;AAVD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,qCAAW,CAAA;IACX,2DAAiC,CAAA;IACjC,iEAAuC,CAAA;IACvC,6DAAmC,CAAA;IACnC,mEAAyC,CAAA;IACzC,uDAA6B,CAAA;IAC7B,6DAAmC,CAAA;AACrC,CAAC,EAVW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAUjC;AAED,IAAY,sBAUX;AAVD,WAAY,sBAAsB;IAChC,uCAAa,CAAA;IACb,yCAAe,CAAA;IACf,qCAAW,CAAA;IACX,2CAAiB,CAAA;IACjB,2CAAiB,CAAA;IACjB,mDAAyB,CAAA;IACzB,qDAA2B,CAAA;IAC3B,iDAAuB,CAAA;IACvB,uDAA6B,CAAA;AAC/B,CAAC,EAVW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAUjC;AAED,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,qCAAW,CAAA;IACX,2CAAiB,CAAA;IACjB,2CAAiB,CAAA;IACjB,iDAAuB,CAAA;IACvB,uDAA6B,CAAA;IAC7B,uDAA6B,CAAA;AAC/B,CAAC,EAPW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAOjC","file":"type.js","sourcesContent":["import type {\n IGroup,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n IPolygonAttribute,\n IRichTextGraphicAttribute,\n ISymbolGraphicAttribute\n} from '@visactor/vrender-core';\nimport type { SegmentAttributes, SymbolAttributes } from '../segment';\nimport type { TagAttributes } from '../tag';\nimport type { Point } from '../core/type';\n\nexport enum IMarkLineLabelPosition {\n start = 'start',\n middle = 'middle',\n end = 'end',\n insideStartTop = 'insideStartTop',\n insideStartBottom = 'insideStartBottom',\n insideMiddleTop = 'insideMiddleTop',\n insideMiddleBottom = 'insideMiddleBottom',\n insideEndTop = 'insideEndTop',\n insideEndBottom = 'insideEndBottom'\n}\n\nexport enum IMarkAreaLabelPosition {\n left = 'left',\n right = 'right',\n top = 'top',\n bottom = 'bottom',\n middle = 'middle',\n insideLeft = 'insideLeft',\n insideRight = 'insideRight',\n insideTop = 'insideTop',\n insideBottom = 'insideBottom'\n}\n\nexport enum IMarkPointItemPosition {\n top = 'top',\n bottom = 'bottom',\n middle = 'middle',\n insideTop = 'insideTop',\n insideBottom = 'insideBottom',\n insideMiddle = 'insideMiddle'\n}\n\nexport type IMarkBackgroundAttributes = {\n /**\n * 是否绘制背景层\n */\n visible: boolean;\n /**\n * TODO: 根据文字宽度进行背景 panel size自适应\n */\n autoHeight?: boolean;\n /**\n * TODO: 根据文高度度进行背景 panel size自适应\n */\n autoWidth?: boolean;\n} & Partial<SymbolAttributes>;\n\nexport type IMarkLabel = Omit<TagAttributes, 'x' | 'y' | 'panel'> & {\n /**\n * 标签的背景面板配置\n */\n panel?: IMarkBackgroundAttributes;\n};\n\nexport type IMarkRef = {\n /**\n * 自动旋转,沿着线的方向,默认 true\n */\n autoRotate?: boolean;\n /**\n * label 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * label 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * label 相对默认角度的偏移 (label跟随line的角度做自动旋转时,默认按照line的平行向量作为初始角度)\n */\n refAngle?: number;\n};\n\nexport type MarkerAttrs = IGroupGraphicAttribute & {\n type?: 'line' | 'area' | 'point';\n /**\n * 是否支持交互\n * @default false\n */\n interactive?: boolean;\n /**\n * 是否显示marker组件\n * @default true\n */\n visible?: boolean;\n /**\n * 是否将组件在绘制区域内进行剪切\n * @default true\n */\n clipInRange?: boolean;\n /**\n * 组件绘制范围配置\n */\n limitRect?: {\n x: number;\n y: number;\n width: number;\n height: number;\n };\n};\n\nexport type MarkLineAttrs = MarkerAttrs &\n SegmentAttributes & {\n type?: 'line';\n /**\n * 构成line的点: 如果是两个点,则为直线;多个点则为曲线\n */\n points: Point[] | Point[][];\n\n /**\n * 标签\n */\n label?: {\n /**\n * label 相对line的位置\n */\n position?: keyof typeof IMarkLineLabelPosition;\n /**\n * 当 mark 配置了 limitRect 之后,label 是否自动调整位置\n * @default false\n */\n confine?: boolean;\n } & IMarkRef &\n IMarkLabel;\n };\n\nexport type MarkAreaAttrs = MarkerAttrs & {\n type?: 'area';\n /**\n * 构成area的点\n */\n points: Point[];\n /**\n * 标签\n */\n label?: {\n position?: keyof typeof IMarkAreaLabelPosition;\n /**\n * 当 mark 配置了 limitRect 之后,label 是否自动调整位置\n * @default false\n */\n confine?: boolean;\n } & IMarkLabel;\n /**\n * area的样式\n */\n areaStyle?: IPolygonAttribute;\n};\n\nexport type IItemContent = IMarkRef & {\n /**\n * 标注类型\n * Tips: 保留'richText'与之前的定义做兼容\n */\n type?: 'symbol' | 'text' | 'image' | 'richText' | 'custom';\n position?: keyof typeof IMarkPointItemPosition;\n /**\n * x 方向偏移量\n */\n offsetX?: number;\n /**\n * y 方向偏移量\n */\n offsetY?: number;\n /**\n * type为symbol时, symbol的样式\n */\n symbolStyle?: ISymbolGraphicAttribute;\n /**\n * type为image时, image的样式\n */\n imageStyle?: IImageGraphicAttribute;\n /**\n * type为text时, text的配置\n * 'text'类型的ItemContent新增三种子类型:'text','rich','html'。配置在textStyle.type上,继承自TagAttributes。\n */\n textStyle?: IMarkLabel;\n /**\n * type为rich text时, rich text的样式\n */\n richTextStyle?: IRichTextGraphicAttribute;\n /**\n * type为custom时,允许以callback的方式传入需要render的item\n */\n renderCustomCallback?: () => IGroup;\n /**\n * 当 mark 配置了 limitRect 之后,label 是否自动调整位置\n * @default false\n */\n confine?: boolean;\n};\n\nexport type IItemLine = {\n /** TODO:'type-opo' */\n type?: 'type-s' | 'type-do' | 'type-po' | 'type-op';\n visible?: boolean;\n /**\n * 垂直于引导线的装饰线,参考案例: https://observablehq.com/@mikelotis/edmonton-population-history-line-chart\n */\n decorativeLine?: {\n visible?: boolean;\n length?: number;\n };\n} & Omit<SegmentAttributes, 'points'>;\n\nexport type MarkPointAttrs = Omit<MarkerAttrs, 'labelStyle'> & {\n /**\n * markPoint的位置(也是path的起点)\n */\n position: Point;\n /**\n * 标注引导线\n */\n itemLine?: IItemLine;\n\n /**\n * 标注内容\n */\n itemContent?: IItemContent;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/marker/util.ts"],"names":[],"mappings":"","file":"util.js","sourcesContent":[""]}
|
package/cjs/pager/pager.js
CHANGED
|
@@ -60,7 +60,7 @@ class Pager extends base_1.AbstractComponent {
|
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
render() {
|
|
63
|
-
var _a, _b;
|
|
63
|
+
var _a, _b, _c;
|
|
64
64
|
this._reset();
|
|
65
65
|
const {layout: layout = "horizontal", handler: handler = DEFAULT_HANDLER_STYLE, total: total, defaultCurrent: defaultCurrent = 1, textStyle: textStyle, padding: padding = 0} = this.attribute;
|
|
66
66
|
this._current = defaultCurrent;
|
|
@@ -84,7 +84,7 @@ class Pager extends base_1.AbstractComponent {
|
|
|
84
84
|
const {width: maxTextWidth, height: maxTextHeight} = (0, util_1.measureTextSize)(this._getPageText(total), Object.assign({
|
|
85
85
|
textAlign: "center",
|
|
86
86
|
textBaseline: "middle"
|
|
87
|
-
}, textStyle), null === (_b = this.stage) || void 0 === _b ? void 0 : _b.getTheme().text
|
|
87
|
+
}, textStyle), null === (_c = null === (_b = this.stage) || void 0 === _b ? void 0 : _b.getTheme()) || void 0 === _c ? void 0 : _c.text), handlerSizeX = (0,
|
|
88
88
|
vutils_1.isNumber)(handlerSize) ? handlerSize : handlerSize[0], handlerSizeY = (0,
|
|
89
89
|
vutils_1.isNumber)(handlerSize) ? handlerSize : handlerSize[1], text = vrender_core_1.graphicCreator.text(Object.assign({
|
|
90
90
|
x: isHorizontal ? handlerSizeX / 2 + handlerSpace + maxTextWidth / 2 : 0,
|
package/cjs/pager/pager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/pager/pager.ts"],"names":[],"mappings":"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","file":"pager.js","sourcesContent":["/**\n * @description 翻页器\n */\nimport type { ISymbol, IText, FederatedPointerEvent } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { merge, normalizePadding, isNumber, isFunction } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { PagerAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadPagerComponent } from './register';\n\nconst DEFAULT_HANDLER_STYLE: PagerAttributes['handler'] = {\n space: 8,\n style: {\n fill: 'rgb(47, 69, 84)',\n cursor: 'pointer',\n size: 15\n },\n state: {\n disable: {\n fill: 'rgb(170, 170, 170)',\n cursor: 'not-allowed'\n },\n hover: {}\n }\n};\n\nloadPagerComponent();\n\nexport class Pager extends AbstractComponent<Required<PagerAttributes>> {\n name = 'pager';\n\n private _current = 1;\n getCurrent() {\n return this._current;\n }\n\n private _total!: number;\n preHandler!: ISymbol | null;\n nextHandler!: ISymbol | null;\n text!: IText | null;\n\n static defaultAttributes: Partial<PagerAttributes> = {\n handler: DEFAULT_HANDLER_STYLE,\n textStyle: {\n fill: 'rgb(51, 51, 51)',\n fontSize: 12\n }\n };\n\n constructor(attributes: PagerAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Pager.defaultAttributes, attributes));\n }\n\n protected render() {\n this._reset();\n const {\n layout = 'horizontal',\n handler = DEFAULT_HANDLER_STYLE,\n total,\n defaultCurrent = 1,\n textStyle,\n padding = 0\n } = this.attribute;\n\n this._current = defaultCurrent;\n const parsedPadding = normalizePadding(padding);\n const isHorizontal = layout === 'horizontal';\n\n const container = graphicCreator.group({\n x: 0,\n y: 0\n });\n\n const handlerStyle = handler.style || {};\n const handlerSize = handlerStyle.size || 15;\n const handlerSpace = handler.space ?? 8;\n const handlerState = handler.state || {};\n\n let { preShape, nextShape } = handler;\n if (!preShape) {\n preShape = isHorizontal ? 'triangleLeft' : 'triangleUp';\n }\n if (!nextShape) {\n nextShape = isHorizontal ? 'triangleRight' : 'triangleDown';\n }\n\n const preHandler = graphicCreator.symbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: 0,\n y: 0,\n symbolType: preShape,\n size: handlerSize\n });\n preHandler.states = handlerState;\n preHandler.name = 'preHandler';\n this.preHandler = preHandler;\n container.add(preHandler);\n\n // 获取文本的最大长度,如果不固定的话随着文本的变化整体会发生抖动\n const { width: maxTextWidth, height: maxTextHeight } = measureTextSize(\n this._getPageText(total),\n {\n textAlign: 'center',\n textBaseline: 'middle',\n ...textStyle\n },\n this.stage?.getTheme().text.fontFamily\n );\n\n const handlerSizeX = isNumber(handlerSize) ? handlerSize : handlerSize[0];\n const handlerSizeY = isNumber(handlerSize) ? handlerSize : handlerSize[1];\n\n const text = graphicCreator.text({\n x: isHorizontal ? handlerSizeX / 2 + handlerSpace + maxTextWidth / 2 : 0,\n y: isHorizontal ? 0 : handlerSizeY / 2 + handlerSpace + maxTextHeight / 2,\n text: this._getPageText(defaultCurrent),\n textAlign: 'center',\n textBaseline: 'middle',\n lineHeight: textStyle?.fontSize,\n ...textStyle\n });\n this.text = text;\n container.add(text);\n\n const nextHandler = graphicCreator.symbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: isHorizontal ? handlerSizeX + handlerSpace * 2 + maxTextWidth : 0,\n y: isHorizontal ? 0 : handlerSizeY + handlerSpace * 2 + maxTextHeight,\n symbolType: nextShape,\n size: handlerSize\n });\n nextHandler.name = 'nextHandler';\n nextHandler.states = handlerState;\n this.nextHandler = nextHandler;\n\n container.add(nextHandler);\n\n if (this._total === 1) {\n preHandler.addState('disable');\n nextHandler.addState('disable');\n } else if (this._current === 1) {\n preHandler.addState('disable');\n } else if (this._current === total) {\n nextHandler.addState('disable');\n }\n\n const containerBounds = container.AABBBounds;\n const width = containerBounds.width();\n const height = containerBounds.height();\n\n container.translateTo(0 - containerBounds.x1 + parsedPadding[3], 0 - containerBounds.y1 + parsedPadding[0]);\n this.add(container);\n\n this.attribute.width = width + parsedPadding[1] + parsedPadding[3];\n this.attribute.height = height + parsedPadding[0] + parsedPadding[2];\n\n this._bindEvents();\n }\n\n private _bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n if (this.preHandler) {\n this.preHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n\n if (this.nextHandler) {\n this.nextHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n }\n\n private _onHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (!target.hasState('disable')) {\n target.addState('hover');\n }\n };\n\n private _onUnHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n target.removeState('hover');\n };\n\n private _onClick = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (target.name === 'preHandler') {\n if (this._current === 1) {\n return;\n }\n this._current -= 1;\n if (this._current === 1) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n this._dispatchEvent('toPrev', {\n current: this._current,\n total: this._total,\n direction: 'pre',\n event: e\n });\n }\n\n if (target.name === 'nextHandler') {\n if (this._current === this._total) {\n return;\n }\n this._current += 1;\n\n if (this._current === this._total) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n this._dispatchEvent('toNext', {\n current: this._current,\n total: this._total,\n direction: 'next',\n event: e\n });\n }\n\n if (this._current > 1) {\n (this.preHandler as ISymbol).removeState('disable');\n }\n if (this._current < this._total) {\n (this.nextHandler as ISymbol).removeState('disable');\n }\n\n (this.text as IText).setAttribute('text', this._getPageText(this._current));\n };\n\n private _reset() {\n this.removeAllChild(true);\n this._current = 1;\n this._total = this.attribute.total as number;\n this.preHandler = this.nextHandler = this.text = null;\n }\n\n private _getPageText(current: number) {\n const { pageFormatter } = this.attribute;\n\n if (pageFormatter) {\n return isFunction(pageFormatter)\n ? pageFormatter(current, this._total)\n : `${pageFormatter}`.replace('{current}', `${current}`).replace('{total}', `${this._total}`);\n }\n\n return `${current}/${this._total}`;\n }\n\n setTotal(total: number) {\n if (total !== this.attribute.total) {\n this._total = total;\n\n if (this._current !== 1 && this._current <= total) {\n this.setAttributes({ total, defaultCurrent: this._current });\n } else {\n this.setAttribute('total', total);\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/pager/pager.ts"],"names":[],"mappings":"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","file":"pager.js","sourcesContent":["/**\n * @description 翻页器\n */\nimport type { ISymbol, IText, FederatedPointerEvent } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { merge, normalizePadding, isNumber, isFunction } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { PagerAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadPagerComponent } from './register';\n\nconst DEFAULT_HANDLER_STYLE: PagerAttributes['handler'] = {\n space: 8,\n style: {\n fill: 'rgb(47, 69, 84)',\n cursor: 'pointer',\n size: 15\n },\n state: {\n disable: {\n fill: 'rgb(170, 170, 170)',\n cursor: 'not-allowed'\n },\n hover: {}\n }\n};\n\nloadPagerComponent();\n\nexport class Pager extends AbstractComponent<Required<PagerAttributes>> {\n name = 'pager';\n\n private _current = 1;\n getCurrent() {\n return this._current;\n }\n\n private _total!: number;\n preHandler!: ISymbol | null;\n nextHandler!: ISymbol | null;\n text!: IText | null;\n\n static defaultAttributes: Partial<PagerAttributes> = {\n handler: DEFAULT_HANDLER_STYLE,\n textStyle: {\n fill: 'rgb(51, 51, 51)',\n fontSize: 12\n }\n };\n\n constructor(attributes: PagerAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Pager.defaultAttributes, attributes));\n }\n\n protected render() {\n this._reset();\n const {\n layout = 'horizontal',\n handler = DEFAULT_HANDLER_STYLE,\n total,\n defaultCurrent = 1,\n textStyle,\n padding = 0\n } = this.attribute;\n\n this._current = defaultCurrent;\n const parsedPadding = normalizePadding(padding);\n const isHorizontal = layout === 'horizontal';\n\n const container = graphicCreator.group({\n x: 0,\n y: 0\n });\n\n const handlerStyle = handler.style || {};\n const handlerSize = handlerStyle.size || 15;\n const handlerSpace = handler.space ?? 8;\n const handlerState = handler.state || {};\n\n let { preShape, nextShape } = handler;\n if (!preShape) {\n preShape = isHorizontal ? 'triangleLeft' : 'triangleUp';\n }\n if (!nextShape) {\n nextShape = isHorizontal ? 'triangleRight' : 'triangleDown';\n }\n\n const preHandler = graphicCreator.symbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: 0,\n y: 0,\n symbolType: preShape,\n size: handlerSize\n });\n preHandler.states = handlerState;\n preHandler.name = 'preHandler';\n this.preHandler = preHandler;\n container.add(preHandler);\n\n // 获取文本的最大长度,如果不固定的话随着文本的变化整体会发生抖动\n const { width: maxTextWidth, height: maxTextHeight } = measureTextSize(\n this._getPageText(total),\n {\n textAlign: 'center',\n textBaseline: 'middle',\n ...textStyle\n },\n this.stage?.getTheme()?.text\n );\n\n const handlerSizeX = isNumber(handlerSize) ? handlerSize : handlerSize[0];\n const handlerSizeY = isNumber(handlerSize) ? handlerSize : handlerSize[1];\n\n const text = graphicCreator.text({\n x: isHorizontal ? handlerSizeX / 2 + handlerSpace + maxTextWidth / 2 : 0,\n y: isHorizontal ? 0 : handlerSizeY / 2 + handlerSpace + maxTextHeight / 2,\n text: this._getPageText(defaultCurrent),\n textAlign: 'center',\n textBaseline: 'middle',\n lineHeight: textStyle?.fontSize,\n ...textStyle\n });\n this.text = text;\n container.add(text);\n\n const nextHandler = graphicCreator.symbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: isHorizontal ? handlerSizeX + handlerSpace * 2 + maxTextWidth : 0,\n y: isHorizontal ? 0 : handlerSizeY + handlerSpace * 2 + maxTextHeight,\n symbolType: nextShape,\n size: handlerSize\n });\n nextHandler.name = 'nextHandler';\n nextHandler.states = handlerState;\n this.nextHandler = nextHandler;\n\n container.add(nextHandler);\n\n if (this._total === 1) {\n preHandler.addState('disable');\n nextHandler.addState('disable');\n } else if (this._current === 1) {\n preHandler.addState('disable');\n } else if (this._current === total) {\n nextHandler.addState('disable');\n }\n\n const containerBounds = container.AABBBounds;\n const width = containerBounds.width();\n const height = containerBounds.height();\n\n container.translateTo(0 - containerBounds.x1 + parsedPadding[3], 0 - containerBounds.y1 + parsedPadding[0]);\n this.add(container);\n\n this.attribute.width = width + parsedPadding[1] + parsedPadding[3];\n this.attribute.height = height + parsedPadding[0] + parsedPadding[2];\n\n this._bindEvents();\n }\n\n private _bindEvents(): void {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n if (this.preHandler) {\n this.preHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n\n if (this.nextHandler) {\n this.nextHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n }\n\n private _onHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (!target.hasState('disable')) {\n target.addState('hover');\n }\n };\n\n private _onUnHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n target.removeState('hover');\n };\n\n private _onClick = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (target.name === 'preHandler') {\n if (this._current === 1) {\n return;\n }\n this._current -= 1;\n if (this._current === 1) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n this._dispatchEvent('toPrev', {\n current: this._current,\n total: this._total,\n direction: 'pre',\n event: e\n });\n }\n\n if (target.name === 'nextHandler') {\n if (this._current === this._total) {\n return;\n }\n this._current += 1;\n\n if (this._current === this._total) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n this._dispatchEvent('toNext', {\n current: this._current,\n total: this._total,\n direction: 'next',\n event: e\n });\n }\n\n if (this._current > 1) {\n (this.preHandler as ISymbol).removeState('disable');\n }\n if (this._current < this._total) {\n (this.nextHandler as ISymbol).removeState('disable');\n }\n\n (this.text as IText).setAttribute('text', this._getPageText(this._current));\n };\n\n private _reset() {\n this.removeAllChild(true);\n this._current = 1;\n this._total = this.attribute.total as number;\n this.preHandler = this.nextHandler = this.text = null;\n }\n\n private _getPageText(current: number) {\n const { pageFormatter } = this.attribute;\n\n if (pageFormatter) {\n return isFunction(pageFormatter)\n ? pageFormatter(current, this._total)\n : `${pageFormatter}`.replace('{current}', `${current}`).replace('{total}', `${this._total}`);\n }\n\n return `${current}/${this._total}`;\n }\n\n setTotal(total: number) {\n if (total !== this.attribute.total) {\n this._total = total;\n\n if (this._current !== 1 && this._current <= total) {\n this.setAttributes({ total, defaultCurrent: this._current });\n } else {\n this.setAttribute('total', total);\n }\n }\n }\n}\n"]}
|
|
@@ -101,9 +101,11 @@ export declare class BasePlayer<T> extends AbstractComponent<Required<PlayerAttr
|
|
|
101
101
|
private _backward;
|
|
102
102
|
private _size;
|
|
103
103
|
private _orient;
|
|
104
|
+
protected _dataIndex: number;
|
|
104
105
|
private _layoutInfo;
|
|
105
106
|
constructor(attributes: T, options?: ComponentOptions);
|
|
106
107
|
_initAttributes(): void;
|
|
108
|
+
_initDataIndex(): void;
|
|
107
109
|
private _initLayoutInfo;
|
|
108
110
|
private _updateSliderAttrs;
|
|
109
111
|
private _initSlider;
|
|
@@ -9,8 +9,8 @@ const vutils_1 = require("@visactor/vutils"), base_1 = require("../core/base"),
|
|
|
9
9
|
class BasePlayer extends base_1.AbstractComponent {
|
|
10
10
|
constructor(attributes, options) {
|
|
11
11
|
super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, BasePlayer.defaultAttributes, attributes)),
|
|
12
|
-
this._data = [], this._layoutInfo = {}, this._updateSliderAttrs = () => {
|
|
13
|
-
var _a, _b
|
|
12
|
+
this._data = [], this._dataIndex = 0, this._layoutInfo = {}, this._updateSliderAttrs = () => {
|
|
13
|
+
var _a, _b;
|
|
14
14
|
let handlerSize;
|
|
15
15
|
(0, vutils_1.isValidNumber)(this._handlerStyle.size) ? handlerSize = this._handlerStyle.size : this._handlerStyle.size && this._handlerStyle.size.length && (handlerSize = (0,
|
|
16
16
|
vutils_1.max)(this._handlerStyle.size[0], this._handlerStyle.size[1]));
|
|
@@ -18,7 +18,7 @@ class BasePlayer extends base_1.AbstractComponent {
|
|
|
18
18
|
visible: this._sliderVisible,
|
|
19
19
|
min: this._minIndex,
|
|
20
20
|
max: this._maxIndex,
|
|
21
|
-
value:
|
|
21
|
+
value: this._dataIndex,
|
|
22
22
|
railWidth: this._railStyle.width,
|
|
23
23
|
railHeight: this._railStyle.height,
|
|
24
24
|
railStyle: this._railStyle,
|
|
@@ -41,11 +41,11 @@ class BasePlayer extends base_1.AbstractComponent {
|
|
|
41
41
|
disableTriggerEvent: this.attribute.disableTriggerEvent
|
|
42
42
|
};
|
|
43
43
|
if ((0, utils_1.isHorizontal)(this._orient)) {
|
|
44
|
-
const railWidth = Math.max(0, this._layoutInfo.slider.size), railHeight = null !== (
|
|
44
|
+
const railWidth = Math.max(0, this._layoutInfo.slider.size), railHeight = null !== (_a = this._railStyle.height) && void 0 !== _a ? _a : constant_1.RailDefaultSize[1];
|
|
45
45
|
attrs.layout = "horizontal", attrs.railHeight = railHeight, attrs.railWidth = railWidth,
|
|
46
46
|
attrs.x = this._layoutInfo.slider.x, attrs.y = this._layoutInfo.slider.y;
|
|
47
47
|
} else {
|
|
48
|
-
const railHeight = Math.max(0, this._layoutInfo.slider.size), railWidth = null !== (
|
|
48
|
+
const railHeight = Math.max(0, this._layoutInfo.slider.size), railWidth = null !== (_b = this._railStyle.width) && void 0 !== _b ? _b : constant_1.RailDefaultSize[1];
|
|
49
49
|
attrs.layout = "vertical", attrs.railWidth = railWidth, attrs.railHeight = railHeight,
|
|
50
50
|
attrs.x = this._layoutInfo.slider.x, attrs.y = this._layoutInfo.slider.y;
|
|
51
51
|
}
|
|
@@ -105,7 +105,8 @@ class BasePlayer extends base_1.AbstractComponent {
|
|
|
105
105
|
}, this._initController = () => {
|
|
106
106
|
const attrs = this._updateControllerAttrs();
|
|
107
107
|
this._controller = new controller_1.Controller(attrs), this._controllerVisible && this.add(this._controller);
|
|
108
|
-
}, this._initAttributes(), this.
|
|
108
|
+
}, this._initAttributes(), this._initDataIndex(), this._initLayoutInfo(), this._initController(),
|
|
109
|
+
this._initSlider();
|
|
109
110
|
}
|
|
110
111
|
_initAttributes() {
|
|
111
112
|
this._size = this.attribute.size, this._orient = this.attribute.orient, this._data = this.attribute.data,
|
|
@@ -117,6 +118,10 @@ class BasePlayer extends base_1.AbstractComponent {
|
|
|
117
118
|
this._pause = Object.assign({}, controller.pause), this._forward = Object.assign({}, controller.forward),
|
|
118
119
|
this._backward = Object.assign({}, controller.backward);
|
|
119
120
|
}
|
|
121
|
+
_initDataIndex() {
|
|
122
|
+
var _a;
|
|
123
|
+
this._dataIndex = null !== (_a = this.attribute.dataIndex) && void 0 !== _a ? _a : 0;
|
|
124
|
+
}
|
|
120
125
|
_initLayoutInfo() {
|
|
121
126
|
var _a, _b, _c;
|
|
122
127
|
const controllers = [ this._start, this._backward, this._forward ].sort(((a, b) => a.order - b.order)), startControllers = controllers.filter((d => "end" !== d.position)), endControllers = controllers.filter((d => "end" === d.position)), railSectionLength = null !== (_a = (0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/player/base-player.ts"],"names":[],"mappings":"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","file":"base-player.js","sourcesContent":["import type { INode } from '@visactor/vrender-core';\nimport { isNumber, isValidNumber, max, merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport type { ComponentOptions, OrientType } from '../interface';\nimport type { SliderAttributes } from '../slider';\nimport { Slider } from '../slider';\nimport type { ControllerAttributes } from './controller';\nimport { Controller } from './controller';\nimport type {\n Datum,\n PlayerEventEnum,\n PlayerAttributes,\n RailStyleType,\n ControllerType,\n TrackStyleType,\n HandlerStyleType\n} from './type';\nimport { RailDefaultSize, defaultControllerAttributes } from './constant';\nimport { isHorizontal } from './utils';\n\n/**\n * 基本播放器组件\n * 提供最基本的布局能力,\n */\nexport class BasePlayer<T> extends AbstractComponent<Required<PlayerAttributes>> {\n static defaultAttributes = {\n visible: true,\n data: [] as Datum[],\n interval: 1000,\n orient: 'bottom',\n align: 'center',\n size: {\n height: 20,\n width: 300\n },\n slider: {\n visible: true,\n space: 10,\n dx: 0,\n dy: 0,\n railStyle: {\n cornerRadius: 5\n },\n trackStyle: {},\n handlerStyle: {}\n },\n controller: {\n visible: true,\n start: { ...defaultControllerAttributes, key: 'start', position: 'start', space: 0 },\n pause: { ...defaultControllerAttributes, key: 'pause', position: 'start' },\n forward: { ...defaultControllerAttributes, key: 'forward', position: 'end' },\n backward: { ...defaultControllerAttributes, key: 'backward', position: 'start' }\n }\n };\n\n // 组件属性\n protected _slider: Slider;\n protected _controller: Controller;\n\n // 数据属性\n protected _data = [] as Datum[];\n protected _minIndex: number;\n protected _maxIndex: number;\n\n // 滑轨属性\n private _sliderVisible: boolean;\n private _railStyle: RailStyleType;\n private _trackStyle: TrackStyleType;\n private _handlerStyle: HandlerStyleType;\n\n // 控件属性\n private _controllerVisible: boolean;\n private _start: ControllerType;\n private _pause: ControllerType;\n private _forward: ControllerType;\n private _backward: ControllerType;\n\n // 布局属性\n private _size: { width: number; height: number };\n private _orient: OrientType;\n\n private _layoutInfo: {\n // 滚动条位置\n slider?: { x: number; y: number; size: number };\n\n // 控件位置\n start?: { x: number; y: number; size: number };\n pause?: { x: number; y: number; size: number };\n backward?: { x: number; y: number; size: number };\n forward?: { x: number; y: number; size: number };\n } = {};\n\n constructor(attributes: T, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, BasePlayer.defaultAttributes, attributes));\n // 先初始化属性, 再初始化Slider、Controller, 最后初始化事件.\n this._initAttributes();\n this._initLayoutInfo();\n this._initController();\n this._initSlider();\n }\n\n /**\n * 初始化属性\n */\n _initAttributes() {\n // 基本布局属性\n this._size = this.attribute.size;\n this._orient = this.attribute.orient;\n\n // Slider范围, 起点一定要从0开始\n this._data = this.attribute.data;\n this._minIndex = 0;\n this._maxIndex = this._data.length - 1;\n\n const { slider = {}, controller = {} as PlayerAttributes['controller'] } = this.attribute;\n // 轨道样式\n this._sliderVisible = slider.visible;\n this._railStyle = { ...slider.railStyle };\n this._trackStyle = { ...slider.trackStyle };\n this._handlerStyle = { ...slider.handlerStyle };\n\n // 控制器样式\n this._controllerVisible = controller.visible;\n this._start = { ...controller.start };\n this._pause = { ...controller.pause };\n this._forward = { ...controller.forward };\n this._backward = { ...controller.backward };\n }\n\n private _initLayoutInfo() {\n // 控制器\n const controllers = [this._start, this._backward, this._forward].sort((a, b) => a.order - b.order);\n // 在开始位置的控制器\n const startControllers = controllers.filter(d => d.position !== 'end');\n // 在结束位置的控制器\n const endControllers = controllers.filter(d => d.position === 'end');\n // 滑轨横切面长度\n const railSectionLength =\n (isHorizontal(this._orient) ? this._railStyle.height : this._railStyle.width) ?? RailDefaultSize[1];\n\n // 1. 计算所有组件自身占据的宽度 or 高度\n const controllerPx = controllers.reduce((len, controller) => {\n const size = controller.style.size;\n const maxSize = isNumber(size) ? size : max(size[0], size[1]);\n return len + controller.space + maxSize;\n }, 0);\n\n // 2. 计算slider的总占据像素\n const sliderPx = this._sliderVisible\n ? (isHorizontal(this._orient) ? this._size?.width : this._size?.height) - controllerPx\n : 0;\n\n // 3. 计算slider滑轨的总占据像素\n const railPx = sliderPx - this.attribute.slider.space;\n\n // 4. 计算起点控件坐标\n const startPx = startControllers.reduce((px, controller) => {\n const {\n key,\n space,\n style: { size }\n } = controller;\n const maxSize = isNumber(size) ? size : max(size[0], size[1]);\n this._layoutInfo[key] = {\n ...this._layoutInfo[key],\n size: maxSize,\n x: isHorizontal(this._orient) ? px + space : (this._size.width - maxSize) / 2,\n y: isHorizontal(this._orient) ? (this._size.height - maxSize) / 2 : px + space\n };\n return px + space + maxSize;\n }, 0);\n\n // 5. 计算slider的起点坐标\n this._layoutInfo.slider = {\n ...this._layoutInfo.slider,\n size: railPx,\n x: isHorizontal(this._orient)\n ? startPx + this.attribute.slider.space\n : (this._size.width - railSectionLength) / 2,\n y: isHorizontal(this._orient)\n ? (this._size.height - railSectionLength) / 2\n : startPx + this.attribute.slider.space\n };\n\n // 6. 计算终点控件坐标\n endControllers.reduce((px, controller) => {\n const {\n key,\n space,\n style: { size }\n } = controller;\n const maxSize = isNumber(size) ? size : max(size[0], size[1]);\n this._layoutInfo[key] = {\n ...this._layoutInfo[key],\n size: maxSize,\n x: isHorizontal(this._orient) ? px + space : (this._size.width - maxSize) / 2,\n y: isHorizontal(this._orient) ? (this._size.height - maxSize) / 2 : px + space\n };\n return px + space + maxSize;\n }, startPx + sliderPx);\n }\n\n /**\n * 初始化滑动条\n */\n private _updateSliderAttrs = () => {\n let handlerSize;\n if (isValidNumber(this._handlerStyle.size)) {\n handlerSize = this._handlerStyle.size;\n } else if (this._handlerStyle.size && this._handlerStyle.size.length) {\n handlerSize = max(this._handlerStyle.size[0], this._handlerStyle.size[1]);\n }\n\n const attrs: SliderAttributes = {\n visible: this._sliderVisible,\n // 重要参数\n min: this._minIndex,\n max: this._maxIndex,\n value: this.attribute.dataIndex ?? 0,\n railWidth: this._railStyle.width,\n railHeight: this._railStyle.height,\n railStyle: this._railStyle,\n trackStyle: this._trackStyle,\n handlerSize: isValidNumber(handlerSize) ? handlerSize : undefined,\n handlerStyle: this._handlerStyle,\n // 不重要, 但需要预设的参数\n dy: this.attribute.slider.dy,\n dx: this.attribute.slider.dx,\n slidable: true,\n range: false,\n handlerText: { visible: false },\n startText: { visible: false },\n endText: { visible: false },\n disableTriggerEvent: this.attribute.disableTriggerEvent\n };\n\n // 横向布局\n if (isHorizontal(this._orient)) {\n // 滑动条水平居中\n const railWidth = Math.max(0, this._layoutInfo.slider.size);\n const railHeight = this._railStyle.height ?? RailDefaultSize[1];\n\n // 属性修改\n attrs.layout = 'horizontal';\n attrs.railHeight = railHeight;\n attrs.railWidth = railWidth;\n attrs.x = this._layoutInfo.slider.x;\n attrs.y = this._layoutInfo.slider.y;\n }\n // 纵向布局\n else {\n // 滑动条垂直居中\n const railHeight = Math.max(0, this._layoutInfo.slider.size);\n const railWidth = this._railStyle.width ?? RailDefaultSize[1];\n\n // 属性修改\n attrs.layout = 'vertical';\n attrs.railWidth = railWidth;\n attrs.railHeight = railHeight;\n attrs.x = this._layoutInfo.slider.x;\n attrs.y = this._layoutInfo.slider.y;\n }\n return attrs;\n };\n\n private _initSlider = () => {\n const attrs = this._updateSliderAttrs();\n this._slider = new Slider(attrs);\n if (this._sliderVisible) {\n this.add(this._slider as unknown as INode);\n }\n };\n\n /**\n * 初始化控制器\n */\n private _updateControllerAttrs = () => {\n const attrs: ControllerAttributes = {\n start: this._start,\n pause: this._pause,\n forward: this._forward,\n backward: this._backward,\n disableTriggerEvent: this.attribute.disableTriggerEvent\n };\n // 横向布局\n if (isHorizontal(this._orient)) {\n attrs.layout = 'horizontal';\n attrs.start = {\n ...attrs.start,\n style: {\n ...attrs.start.style,\n x: this._layoutInfo.start.x,\n y: this._layoutInfo.start.y\n }\n };\n attrs.pause = {\n ...attrs.pause,\n // 暂停按钮, 复用开始按钮的布局\n style: {\n ...attrs.pause.style,\n x: this._layoutInfo.start.x,\n y: this._layoutInfo.start.y\n }\n };\n attrs.backward = {\n ...attrs.backward,\n style: {\n ...attrs.backward.style,\n x: this._layoutInfo.backward.x,\n y: this._layoutInfo.backward.y\n }\n };\n attrs.forward = {\n ...attrs.forward,\n style: {\n ...attrs.forward.style,\n x: this._layoutInfo.forward.x,\n y: this._layoutInfo.forward.y\n }\n };\n }\n // 纵向布局\n else {\n attrs.layout = 'vertical';\n attrs.start = {\n ...attrs.start,\n style: {\n ...attrs.start.style,\n x: this._layoutInfo.start.x,\n y: this._layoutInfo.start.y\n }\n };\n attrs.pause = {\n ...attrs.pause,\n style: {\n ...attrs.pause.style,\n // 暂停按钮, 复用开始按钮的布局\n x: this._layoutInfo.start.x,\n y: this._layoutInfo.start.y\n }\n };\n attrs.backward = {\n ...attrs.backward,\n style: {\n ...attrs.backward.style,\n x: this._layoutInfo.backward.x,\n y: this._layoutInfo.backward.y\n }\n };\n attrs.forward = {\n ...attrs.forward,\n style: {\n ...attrs.forward.style,\n x: this._layoutInfo.forward.x,\n y: this._layoutInfo.forward.y\n }\n };\n }\n return attrs;\n };\n\n private _initController = () => {\n const attrs = this._updateControllerAttrs();\n this._controller = new Controller(attrs);\n if (this._controllerVisible) {\n this.add(this._controller as unknown as INode);\n }\n };\n\n /**\n * 渲染\n */\n render() {\n this._initLayoutInfo();\n this.renderSlider();\n this.renderController();\n }\n\n /**\n * 更新滑动条\n */\n renderSlider() {\n const attrs = this._updateSliderAttrs();\n this._slider.setAttributes(attrs);\n }\n\n /**\n * 更新控制器\n */\n renderController() {\n const attrs = this._updateControllerAttrs();\n this._controller.setAttributes(attrs);\n }\n\n /**\n * 触发事件\n * @param eventType 事件类型\n * @param dataIndex 数据下标\n */\n dispatchCustomEvent(eventType: PlayerEventEnum, dataIndex: number) {\n this._dispatchEvent(eventType, {\n eventType,\n index: dataIndex,\n value: this._data[dataIndex]\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/player/base-player.ts"],"names":[],"mappings":"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","file":"base-player.js","sourcesContent":["import type { INode } from '@visactor/vrender-core';\nimport { isNumber, isValidNumber, max, merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport type { ComponentOptions, OrientType } from '../interface';\nimport type { SliderAttributes } from '../slider';\nimport { Slider } from '../slider';\nimport type { ControllerAttributes } from './controller';\nimport { Controller } from './controller';\nimport type {\n Datum,\n PlayerEventEnum,\n PlayerAttributes,\n RailStyleType,\n ControllerType,\n TrackStyleType,\n HandlerStyleType\n} from './type';\nimport { RailDefaultSize, defaultControllerAttributes } from './constant';\nimport { isHorizontal } from './utils';\n\n/**\n * 基本播放器组件\n * 提供最基本的布局能力,\n */\nexport class BasePlayer<T> extends AbstractComponent<Required<PlayerAttributes>> {\n static defaultAttributes = {\n visible: true,\n data: [] as Datum[],\n interval: 1000,\n orient: 'bottom',\n align: 'center',\n size: {\n height: 20,\n width: 300\n },\n slider: {\n visible: true,\n space: 10,\n dx: 0,\n dy: 0,\n railStyle: {\n cornerRadius: 5\n },\n trackStyle: {},\n handlerStyle: {}\n },\n controller: {\n visible: true,\n start: { ...defaultControllerAttributes, key: 'start', position: 'start', space: 0 },\n pause: { ...defaultControllerAttributes, key: 'pause', position: 'start' },\n forward: { ...defaultControllerAttributes, key: 'forward', position: 'end' },\n backward: { ...defaultControllerAttributes, key: 'backward', position: 'start' }\n }\n };\n\n // 组件属性\n protected _slider: Slider;\n protected _controller: Controller;\n\n // 数据属性\n protected _data = [] as Datum[];\n protected _minIndex: number;\n protected _maxIndex: number;\n\n // 滑轨属性\n private _sliderVisible: boolean;\n private _railStyle: RailStyleType;\n private _trackStyle: TrackStyleType;\n private _handlerStyle: HandlerStyleType;\n\n // 控件属性\n private _controllerVisible: boolean;\n private _start: ControllerType;\n private _pause: ControllerType;\n private _forward: ControllerType;\n private _backward: ControllerType;\n\n // 布局属性\n private _size: { width: number; height: number };\n private _orient: OrientType;\n\n // dataIndex, 代表slider的value\n protected _dataIndex: number = 0;\n\n private _layoutInfo: {\n // 滚动条位置\n slider?: { x: number; y: number; size: number };\n\n // 控件位置\n start?: { x: number; y: number; size: number };\n pause?: { x: number; y: number; size: number };\n backward?: { x: number; y: number; size: number };\n forward?: { x: number; y: number; size: number };\n } = {};\n\n constructor(attributes: T, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, BasePlayer.defaultAttributes, attributes));\n // 先初始化属性, 再初始化Slider、Controller, 最后初始化事件.\n this._initAttributes();\n this._initDataIndex();\n this._initLayoutInfo();\n this._initController();\n this._initSlider();\n }\n\n /**\n * 初始化属性\n */\n _initAttributes() {\n // 基本布局属性\n this._size = this.attribute.size;\n this._orient = this.attribute.orient;\n\n // Slider范围, 起点一定要从0开始\n this._data = this.attribute.data;\n this._minIndex = 0;\n this._maxIndex = this._data.length - 1;\n\n const { slider = {}, controller = {} as PlayerAttributes['controller'] } = this.attribute;\n // 轨道样式\n this._sliderVisible = slider.visible;\n this._railStyle = { ...slider.railStyle };\n this._trackStyle = { ...slider.trackStyle };\n this._handlerStyle = { ...slider.handlerStyle };\n\n // 控制器样式\n this._controllerVisible = controller.visible;\n this._start = { ...controller.start };\n this._pause = { ...controller.pause };\n this._forward = { ...controller.forward };\n this._backward = { ...controller.backward };\n }\n\n /**\n * 初始化dataIndex\n */\n _initDataIndex() {\n this._dataIndex = this.attribute.dataIndex ?? 0;\n }\n\n private _initLayoutInfo() {\n // 控制器\n const controllers = [this._start, this._backward, this._forward].sort((a, b) => a.order - b.order);\n // 在开始位置的控制器\n const startControllers = controllers.filter(d => d.position !== 'end');\n // 在结束位置的控制器\n const endControllers = controllers.filter(d => d.position === 'end');\n // 滑轨横切面长度\n const railSectionLength =\n (isHorizontal(this._orient) ? this._railStyle.height : this._railStyle.width) ?? RailDefaultSize[1];\n\n // 1. 计算所有组件自身占据的宽度 or 高度\n const controllerPx = controllers.reduce((len, controller) => {\n const size = controller.style.size;\n const maxSize = isNumber(size) ? size : max(size[0], size[1]);\n return len + controller.space + maxSize;\n }, 0);\n\n // 2. 计算slider的总占据像素\n const sliderPx = this._sliderVisible\n ? (isHorizontal(this._orient) ? this._size?.width : this._size?.height) - controllerPx\n : 0;\n\n // 3. 计算slider滑轨的总占据像素\n const railPx = sliderPx - this.attribute.slider.space;\n\n // 4. 计算起点控件坐标\n const startPx = startControllers.reduce((px, controller) => {\n const {\n key,\n space,\n style: { size }\n } = controller;\n const maxSize = isNumber(size) ? size : max(size[0], size[1]);\n this._layoutInfo[key] = {\n ...this._layoutInfo[key],\n size: maxSize,\n x: isHorizontal(this._orient) ? px + space : (this._size.width - maxSize) / 2,\n y: isHorizontal(this._orient) ? (this._size.height - maxSize) / 2 : px + space\n };\n return px + space + maxSize;\n }, 0);\n\n // 5. 计算slider的起点坐标\n this._layoutInfo.slider = {\n ...this._layoutInfo.slider,\n size: railPx,\n x: isHorizontal(this._orient)\n ? startPx + this.attribute.slider.space\n : (this._size.width - railSectionLength) / 2,\n y: isHorizontal(this._orient)\n ? (this._size.height - railSectionLength) / 2\n : startPx + this.attribute.slider.space\n };\n\n // 6. 计算终点控件坐标\n endControllers.reduce((px, controller) => {\n const {\n key,\n space,\n style: { size }\n } = controller;\n const maxSize = isNumber(size) ? size : max(size[0], size[1]);\n this._layoutInfo[key] = {\n ...this._layoutInfo[key],\n size: maxSize,\n x: isHorizontal(this._orient) ? px + space : (this._size.width - maxSize) / 2,\n y: isHorizontal(this._orient) ? (this._size.height - maxSize) / 2 : px + space\n };\n return px + space + maxSize;\n }, startPx + sliderPx);\n }\n\n /**\n * 初始化滑动条\n */\n private _updateSliderAttrs = () => {\n let handlerSize;\n if (isValidNumber(this._handlerStyle.size)) {\n handlerSize = this._handlerStyle.size;\n } else if (this._handlerStyle.size && this._handlerStyle.size.length) {\n handlerSize = max(this._handlerStyle.size[0], this._handlerStyle.size[1]);\n }\n\n const attrs: SliderAttributes = {\n visible: this._sliderVisible,\n // 重要参数\n min: this._minIndex,\n max: this._maxIndex,\n value: this._dataIndex,\n railWidth: this._railStyle.width,\n railHeight: this._railStyle.height,\n railStyle: this._railStyle,\n trackStyle: this._trackStyle,\n handlerSize: isValidNumber(handlerSize) ? handlerSize : undefined,\n handlerStyle: this._handlerStyle,\n // 不重要, 但需要预设的参数\n dy: this.attribute.slider.dy,\n dx: this.attribute.slider.dx,\n slidable: true,\n range: false,\n handlerText: { visible: false },\n startText: { visible: false },\n endText: { visible: false },\n disableTriggerEvent: this.attribute.disableTriggerEvent\n };\n\n // 横向布局\n if (isHorizontal(this._orient)) {\n // 滑动条水平居中\n const railWidth = Math.max(0, this._layoutInfo.slider.size);\n const railHeight = this._railStyle.height ?? RailDefaultSize[1];\n\n // 属性修改\n attrs.layout = 'horizontal';\n attrs.railHeight = railHeight;\n attrs.railWidth = railWidth;\n attrs.x = this._layoutInfo.slider.x;\n attrs.y = this._layoutInfo.slider.y;\n }\n // 纵向布局\n else {\n // 滑动条垂直居中\n const railHeight = Math.max(0, this._layoutInfo.slider.size);\n const railWidth = this._railStyle.width ?? RailDefaultSize[1];\n\n // 属性修改\n attrs.layout = 'vertical';\n attrs.railWidth = railWidth;\n attrs.railHeight = railHeight;\n attrs.x = this._layoutInfo.slider.x;\n attrs.y = this._layoutInfo.slider.y;\n }\n return attrs;\n };\n\n private _initSlider = () => {\n const attrs = this._updateSliderAttrs();\n this._slider = new Slider(attrs);\n if (this._sliderVisible) {\n this.add(this._slider as unknown as INode);\n }\n };\n\n /**\n * 初始化控制器\n */\n private _updateControllerAttrs = () => {\n const attrs: ControllerAttributes = {\n start: this._start,\n pause: this._pause,\n forward: this._forward,\n backward: this._backward,\n disableTriggerEvent: this.attribute.disableTriggerEvent\n };\n // 横向布局\n if (isHorizontal(this._orient)) {\n attrs.layout = 'horizontal';\n attrs.start = {\n ...attrs.start,\n style: {\n ...attrs.start.style,\n x: this._layoutInfo.start.x,\n y: this._layoutInfo.start.y\n }\n };\n attrs.pause = {\n ...attrs.pause,\n // 暂停按钮, 复用开始按钮的布局\n style: {\n ...attrs.pause.style,\n x: this._layoutInfo.start.x,\n y: this._layoutInfo.start.y\n }\n };\n attrs.backward = {\n ...attrs.backward,\n style: {\n ...attrs.backward.style,\n x: this._layoutInfo.backward.x,\n y: this._layoutInfo.backward.y\n }\n };\n attrs.forward = {\n ...attrs.forward,\n style: {\n ...attrs.forward.style,\n x: this._layoutInfo.forward.x,\n y: this._layoutInfo.forward.y\n }\n };\n }\n // 纵向布局\n else {\n attrs.layout = 'vertical';\n attrs.start = {\n ...attrs.start,\n style: {\n ...attrs.start.style,\n x: this._layoutInfo.start.x,\n y: this._layoutInfo.start.y\n }\n };\n attrs.pause = {\n ...attrs.pause,\n style: {\n ...attrs.pause.style,\n // 暂停按钮, 复用开始按钮的布局\n x: this._layoutInfo.start.x,\n y: this._layoutInfo.start.y\n }\n };\n attrs.backward = {\n ...attrs.backward,\n style: {\n ...attrs.backward.style,\n x: this._layoutInfo.backward.x,\n y: this._layoutInfo.backward.y\n }\n };\n attrs.forward = {\n ...attrs.forward,\n style: {\n ...attrs.forward.style,\n x: this._layoutInfo.forward.x,\n y: this._layoutInfo.forward.y\n }\n };\n }\n return attrs;\n };\n\n private _initController = () => {\n const attrs = this._updateControllerAttrs();\n this._controller = new Controller(attrs);\n if (this._controllerVisible) {\n this.add(this._controller as unknown as INode);\n }\n };\n\n /**\n * 渲染\n */\n render() {\n this._initLayoutInfo();\n this.renderSlider();\n this.renderController();\n }\n\n /**\n * 更新滑动条\n */\n renderSlider() {\n const attrs = this._updateSliderAttrs();\n this._slider.setAttributes(attrs);\n }\n\n /**\n * 更新控制器\n */\n renderController() {\n const attrs = this._updateControllerAttrs();\n this._controller.setAttributes(attrs);\n }\n\n /**\n * 触发事件\n * @param eventType 事件类型\n * @param dataIndex 数据下标\n */\n dispatchCustomEvent(eventType: PlayerEventEnum, dataIndex: number) {\n this._dispatchEvent(eventType, {\n eventType,\n index: dataIndex,\n value: this._data[dataIndex]\n });\n }\n}\n"]}
|
|
@@ -9,7 +9,6 @@ export interface IContinuousPlayer {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class ContinuousPlayer extends BasePlayer<ContinuousPlayerAttributes> implements IContinuousPlayer {
|
|
11
11
|
attribute: ContinuousPlayerAttributes;
|
|
12
|
-
private _dataIndex;
|
|
13
12
|
private _activeIndex;
|
|
14
13
|
protected _alternate: boolean;
|
|
15
14
|
protected _interval: number;
|
|
@@ -20,6 +19,7 @@ export declare class ContinuousPlayer extends BasePlayer<ContinuousPlayerAttribu
|
|
|
20
19
|
private _rafId;
|
|
21
20
|
constructor(attributes: ContinuousPlayerAttributes);
|
|
22
21
|
_initAttributes: () => void;
|
|
22
|
+
_initDataIndex: () => void;
|
|
23
23
|
private _initEvents;
|
|
24
24
|
private _getSliderValue;
|
|
25
25
|
private _updateSlider;
|
|
@@ -37,14 +37,16 @@ const vrender_core_1 = require("@visactor/vrender-core"), base_player_1 = requir
|
|
|
37
37
|
class ContinuousPlayer extends base_player_1.BasePlayer {
|
|
38
38
|
constructor(attributes) {
|
|
39
39
|
super(attributes), this._isPlaying = !1, this._startTime = Date.now(), this._initAttributes = () => {
|
|
40
|
-
var _a
|
|
40
|
+
var _a;
|
|
41
41
|
super._initAttributes(), this._maxIndex = this._data.length, this._slider.setAttribute("max", this._maxIndex),
|
|
42
|
-
this._isPlaying = !1, this._elapsed = 0, this._interval = null !== (_a = this.attribute.interval) && void 0 !== _a ? _a : 1e3
|
|
43
|
-
this._dataIndex = null !== (_b = this.attribute.dataIndex) && void 0 !== _b ? _b : this._minIndex;
|
|
42
|
+
this._isPlaying = !1, this._elapsed = 0, this._interval = null !== (_a = this.attribute.interval) && void 0 !== _a ? _a : 1e3;
|
|
44
43
|
const frames = this._data.length;
|
|
45
44
|
this.attribute.totalDuration && this._data.length ? (this._totalDuration = this.attribute.totalDuration,
|
|
46
45
|
this._interval = this._totalDuration / (null != frames ? frames : 1)) : (this._totalDuration = this._interval * frames,
|
|
47
46
|
this._interval = this.attribute.interval);
|
|
47
|
+
}, this._initDataIndex = () => {
|
|
48
|
+
var _a;
|
|
49
|
+
this._dataIndex = null !== (_a = this.attribute.dataIndex) && void 0 !== _a ? _a : this._minIndex;
|
|
48
50
|
}, this._initEvents = () => {
|
|
49
51
|
this.attribute.disableTriggerEvent || (this._controller.addEventListener(constant_1.ControllerEventEnum.OnPlay, (e => {
|
|
50
52
|
e.stopPropagation(), this.play();
|
|
@@ -95,7 +97,7 @@ class ContinuousPlayer extends base_player_1.BasePlayer {
|
|
|
95
97
|
const now = Date.now(), interval = 1 * this._interval, elapsed = this._elapsed + interval;
|
|
96
98
|
elapsed >= this._totalDuration ? (this._startTime = now - this._totalDuration, this._elapsed = this._totalDuration) : (this._startTime = this._startTime - interval,
|
|
97
99
|
this._elapsed = elapsed), this._updateSlider(), this.dispatchCustomEvent(type_1.PlayerEventEnum.forward);
|
|
98
|
-
}, this._initAttributes(), this._initEvents();
|
|
100
|
+
}, this._initAttributes(), this._initDataIndex(), this._initEvents();
|
|
99
101
|
}
|
|
100
102
|
dispatchCustomEvent(eventType) {
|
|
101
103
|
super.dispatchCustomEvent(eventType, this._dataIndex);
|