@visactor/vrender-components 0.18.10-alpha.1 → 0.18.10-alpha.2
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/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/label/arc.d.ts +2 -2
- package/cjs/label/base.d.ts +2 -2
- package/cjs/marker/base-line.d.ts +2 -2
- package/cjs/marker/base-line.js +4 -18
- package/cjs/marker/base-line.js.map +1 -1
- package/cjs/marker/cartesian/area.d.ts +6 -1
- package/cjs/marker/cartesian/area.js +9 -10
- package/cjs/marker/cartesian/area.js.map +1 -1
- package/cjs/marker/cartesian/line.d.ts +14 -1
- package/cjs/marker/cartesian/line.js +98 -2
- package/cjs/marker/cartesian/line.js.map +1 -1
- package/cjs/marker/config.d.ts +52 -9
- package/cjs/marker/config.js +51 -40
- package/cjs/marker/config.js.map +1 -1
- package/cjs/marker/point.d.ts +1 -1
- package/cjs/marker/polar/arc-line.d.ts +13 -2
- package/cjs/marker/polar/arc-line.js +57 -4
- package/cjs/marker/polar/arc-line.js.map +1 -1
- package/cjs/marker/polar/area.d.ts +10 -4
- package/cjs/marker/polar/area.js +39 -33
- package/cjs/marker/polar/area.js.map +1 -1
- package/cjs/marker/type.d.ts +15 -13
- package/cjs/marker/type.js +15 -14
- package/cjs/marker/type.js.map +1 -1
- package/cjs/tag/tag.d.ts +5 -0
- package/cjs/tag/tag.js +11 -2
- package/cjs/tag/tag.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/label/arc.d.ts +2 -2
- package/es/label/base.d.ts +2 -2
- package/es/marker/base-line.d.ts +2 -2
- package/es/marker/base-line.js +2 -20
- package/es/marker/base-line.js.map +1 -1
- package/es/marker/cartesian/area.d.ts +6 -1
- package/es/marker/cartesian/area.js +10 -11
- package/es/marker/cartesian/area.js.map +1 -1
- package/es/marker/cartesian/line.d.ts +14 -1
- package/es/marker/cartesian/line.js +100 -2
- package/es/marker/cartesian/line.js.map +1 -1
- package/es/marker/config.d.ts +52 -9
- package/es/marker/config.js +51 -40
- package/es/marker/config.js.map +1 -1
- package/es/marker/point.d.ts +1 -1
- package/es/marker/polar/arc-line.d.ts +13 -2
- package/es/marker/polar/arc-line.js +60 -5
- package/es/marker/polar/arc-line.js.map +1 -1
- package/es/marker/polar/area.d.ts +10 -4
- package/es/marker/polar/area.js +44 -38
- package/es/marker/polar/area.js.map +1 -1
- package/es/marker/type.d.ts +15 -13
- package/es/marker/type.js +15 -14
- package/es/marker/type.js.map +1 -1
- package/es/tag/tag.d.ts +5 -0
- package/es/tag/tag.js +11 -2
- package/es/tag/tag.js.map +1 -1
- package/package.json +5 -5
package/cjs/index.d.ts
CHANGED
package/cjs/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
17
17
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
|
-
}), exports.version = void 0, exports.version = "0.18.10-alpha.
|
|
20
|
+
}), exports.version = void 0, exports.version = "0.18.10-alpha.2", __exportStar(require("./core/base"), exports),
|
|
21
21
|
__exportStar(require("./core/type"), exports), __exportStar(require("./scrollbar"), exports),
|
|
22
22
|
__exportStar(require("./tag"), exports), __exportStar(require("./poptip"), exports),
|
|
23
23
|
__exportStar(require("./crosshair"), exports), __exportStar(require("./label"), exports),
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,iBAAiB,CAAC;AAEzC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,wCAAsB;AACtB,2CAAyB;AACzB,8CAA4B;AAC5B,0CAAwB;AACxB,yCAAuB;AACvB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,wCAAsB;AACtB,6CAA2B;AAC3B,yCAAuB","file":"index.js","sourcesContent":["// 导出版本号\nexport const version = \"0.18.10-alpha.
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACa,QAAA,OAAO,GAAG,iBAAiB,CAAC;AAEzC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,wCAAsB;AACtB,2CAAyB;AACzB,8CAA4B;AAC5B,0CAAwB;AACxB,yCAAuB;AACvB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,wCAAsB;AACtB,6CAA2B;AAC3B,yCAAuB","file":"index.js","sourcesContent":["// 导出版本号\nexport const version = \"0.18.10-alpha.2\";\n\nexport * from './core/base';\nexport * from './core/type';\nexport * from './scrollbar';\nexport * from './tag';\nexport * from './poptip';\nexport * from './crosshair';\nexport * from './label';\nexport * from './axis';\nexport * from './axis/grid';\nexport * from './segment';\nexport * from './data-zoom';\nexport * from './marker';\nexport * from './pager';\nexport * from './legend';\nexport * from './title';\nexport * from './indicator';\nexport * from './slider';\nexport * from './link-path';\nexport * from './player';\nexport * from './brush';\nexport * from './tooltip';\nexport * from './interface';\nexport * from './jsx';\nexport * from './checkbox';\nexport * from './util';\n"]}
|
package/cjs/label/arc.d.ts
CHANGED
|
@@ -40,12 +40,12 @@ export declare class ArcLabel extends LabelBase<ArcLabelAttrs> {
|
|
|
40
40
|
private _arcLeft;
|
|
41
41
|
private _arcRight;
|
|
42
42
|
constructor(attributes: ArcLabelAttrs, options?: ComponentOptions);
|
|
43
|
-
protected _overlapping(labels: (IText | IRichText)[]): (
|
|
43
|
+
protected _overlapping(labels: (IText | IRichText)[]): (IText | IRichText)[];
|
|
44
44
|
protected labeling(textBounds: IBoundsLike, graphicBounds: IBoundsLike, position?: string, offset?: number): {
|
|
45
45
|
x: number;
|
|
46
46
|
y: number;
|
|
47
47
|
} | undefined;
|
|
48
|
-
protected _layout(texts: (IText | IRichText)[]): (
|
|
48
|
+
protected _layout(texts: (IText | IRichText)[]): (IText | IRichText)[];
|
|
49
49
|
protected layoutArcLabels(position: BaseLabelAttrs['position'], attribute: any, currentMarks?: IGraphic[], data?: LabelItem[], textBoundsArray?: any, ellipsisWidth?: number): ArcInfo[];
|
|
50
50
|
private _layoutInsideLabels;
|
|
51
51
|
private _layoutOutsideLabels;
|
package/cjs/label/base.d.ts
CHANGED
|
@@ -40,12 +40,12 @@ export declare class LabelBase<T extends BaseLabelAttrs> extends AbstractCompone
|
|
|
40
40
|
private _onHover;
|
|
41
41
|
private _onUnHover;
|
|
42
42
|
private _onClick;
|
|
43
|
-
protected _createLabelText(attributes: LabelItem):
|
|
43
|
+
protected _createLabelText(attributes: LabelItem): IText | IRichText;
|
|
44
44
|
private _prepare;
|
|
45
45
|
protected getRelatedGraphic(item: LabelItem): IGraphic<Partial<import("@visactor/vrender-core").IGraphicAttribute>>;
|
|
46
46
|
protected _initText(data?: LabelItem[]): (IText | IRichText)[];
|
|
47
47
|
protected _layout(texts: (IText | IRichText)[]): (IText | IRichText)[];
|
|
48
|
-
protected _overlapping(labels: (IText | IRichText)[]): (
|
|
48
|
+
protected _overlapping(labels: (IText | IRichText)[]): (IText | IRichText)[];
|
|
49
49
|
protected getBaseMarkGroup(): IGroup;
|
|
50
50
|
protected getGraphicBounds(graphic?: IGraphic, point?: Partial<PointLocationCfg>, position?: string): IBoundsLike;
|
|
51
51
|
protected _renderLabels(labels: (IText | IRichText)[]): void;
|
|
@@ -3,12 +3,12 @@ import type { ArcSegment, Segment } from '../segment';
|
|
|
3
3
|
import { Tag } from '../tag';
|
|
4
4
|
import type { CommonMarkLineAttrs } from './type';
|
|
5
5
|
import { Marker } from './base';
|
|
6
|
-
export declare abstract class BaseMarkLine extends Marker<CommonMarkLineAttrs
|
|
6
|
+
export declare abstract class BaseMarkLine<T> extends Marker<CommonMarkLineAttrs<T>> {
|
|
7
7
|
name: string;
|
|
8
|
-
static defaultAttributes: Partial<CommonMarkLineAttrs>;
|
|
9
8
|
protected _line: Segment | ArcSegment;
|
|
10
9
|
protected abstract createSegment(): any;
|
|
11
10
|
protected abstract setLineAttributes(): any;
|
|
11
|
+
protected abstract getPositionByDirection(direction: any): any;
|
|
12
12
|
getLine(): Segment | ArcSegment;
|
|
13
13
|
getLabel(): Tag;
|
|
14
14
|
protected setLabelPos(): void;
|
package/cjs/marker/base-line.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.BaseMarkLine = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), tag_1 = require("../tag"),
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), tag_1 = require("../tag"), limit_shape_1 = require("../util/limit-shape"), constant_1 = require("../constant"), base_1 = require("./base");
|
|
8
8
|
|
|
9
9
|
class BaseMarkLine extends base_1.Marker {
|
|
10
10
|
constructor() {
|
|
@@ -17,22 +17,8 @@ class BaseMarkLine extends base_1.Marker {
|
|
|
17
17
|
return this._label;
|
|
18
18
|
}
|
|
19
19
|
setLabelPos() {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
let labelPoint;
|
|
23
|
-
if (labelPoint = position.includes("start") || position.includes("Start") ? {
|
|
24
|
-
x: points[0].x + labelOffsetX,
|
|
25
|
-
y: points[0].y + labelOffsetY
|
|
26
|
-
} : position.includes("middle") || position.includes("Middle") ? {
|
|
27
|
-
x: (points[0].x + points[points.length - 1].x) / 2 + labelOffsetX,
|
|
28
|
-
y: (points[0].y + points[points.length - 1].y) / 2 + labelOffsetY
|
|
29
|
-
} : {
|
|
30
|
-
x: points[points.length - 1].x + labelOffsetX,
|
|
31
|
-
y: points[points.length - 1].y + labelOffsetY
|
|
32
|
-
}, this._label.setAttributes(Object.assign(Object.assign({}, labelPoint), {
|
|
33
|
-
angle: label.autoRotate ? labelAngle + (null !== (_b = label.refAngle) && void 0 !== _b ? _b : 0) : 0,
|
|
34
|
-
textStyle: Object.assign(Object.assign({}, config_1.DEFAULT_COMMON_MARK_LINE_TEXT_STYLE_MAP[position]), label.textStyle)
|
|
35
|
-
})), limitRect && confine) {
|
|
20
|
+
const {label: label = {}, limitRect: limitRect} = this.attribute, {position: position = "end", refX: refX = 0, refY: refY = 0, confine: confine} = label, labelPoint = this.getPositionByDirection(position);
|
|
21
|
+
if (this._label.setAttributes(Object.assign({}, labelPoint)), limitRect && confine) {
|
|
36
22
|
const {x: x, y: y, width: width, height: height} = limitRect;
|
|
37
23
|
(0, limit_shape_1.limitShapeInBounds)(this._label, {
|
|
38
24
|
x1: x,
|
|
@@ -63,5 +49,5 @@ class BaseMarkLine extends base_1.Marker {
|
|
|
63
49
|
}
|
|
64
50
|
}
|
|
65
51
|
|
|
66
|
-
exports.BaseMarkLine = BaseMarkLine
|
|
52
|
+
exports.BaseMarkLine = BaseMarkLine;
|
|
67
53
|
//# sourceMappingURL=base-line.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/base-line.ts"],"names":[],"mappings":";;;AACA,6CAAyC;AAIzC,gCAA6B;
|
|
1
|
+
{"version":3,"sources":["../src/marker/base-line.ts"],"names":[],"mappings":";;;AACA,6CAAyC;AAIzC,gCAA6B;AAE7B,qDAAyD;AACzD,0CAA6C;AAC7C,iCAAgC;AAEhC,MAAsB,YAAgB,SAAQ,aAA8B;IAA5E;;QACE,SAAI,GAAG,cAAc,CAAC;IAoExB,CAAC;IA5DC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,WAAW;QACnB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACjD,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,aAAa,mBACpB,UAAU,EACb,CAAC;QACH,IAAI,SAAS,IAAI,OAAO,EAAE;YACxB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAC1C,IAAA,gCAAkB,EAAC,IAAI,CAAC,MAAM,EAAE;gBAC9B,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC,GAAG,KAAK;gBACb,EAAE,EAAE,CAAC,GAAG,MAAM;aACf,CAAC,CAAC;SACJ;IACH,CAAC;IAES,UAAU,CAAC,SAAiB;QACpC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAmC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,SAAS,CAAC,GAAG,CAAC,IAAwB,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,IAAI,SAAG,iCACnB,KAAuB,KAC3B,KAAK,EAAE;gBACL,KAAK,EAAE,IAAA,cAAK,EAAC,EAAE,EAAE,yBAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,CAAC;gBACxD,IAAI,EAAE,IAAA,cAAK,EAAC,EAAE,EAAE,yBAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;aAC9C,IACD,CAAC;QACH,SAAS,CAAC,IAAI,GAAG,2BAA2B,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,SAAS,CAAC,GAAG,CAAC,SAA6B,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,YAAY;QACpB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAmC,CAAC;QAE3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,aAAa,iBACvB,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,IACD,KAAuB,EAC3B,CAAC;SACJ;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AArED,oCAqEC","file":"base-line.js","sourcesContent":["import type { IGroup, INode } from '@visactor/vrender-core';\nimport { merge } from '@visactor/vutils';\nimport type { ArcSegment, Segment } from '../segment';\nimport type { TagAttributes } from '../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../tag';\nimport type { CommonMarkLineAttrs } from './type';\nimport { limitShapeInBounds } from '../util/limit-shape';\nimport { DEFAULT_STATES } from '../constant';\nimport { Marker } from './base';\n\nexport abstract class BaseMarkLine<T> extends Marker<CommonMarkLineAttrs<T>> {\n name = 'baseMarkLine';\n\n protected _line!: Segment | ArcSegment;\n\n protected abstract createSegment(): any;\n protected abstract setLineAttributes(): any;\n protected abstract getPositionByDirection(direction: any): any;\n\n getLine() {\n return this._line;\n }\n getLabel() {\n return this._label;\n }\n\n protected setLabelPos() {\n const { label = {}, limitRect } = this.attribute;\n const { position = 'end', refX = 0, refY = 0, confine } = label;\n const labelPoint = this.getPositionByDirection(position);\n this._label.setAttributes({\n ...labelPoint\n });\n if (limitRect && confine) {\n const { x, y, width, height } = limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n\n protected initMarker(container: IGroup) {\n const { label, state } = this.attribute as CommonMarkLineAttrs<T>;\n const line = this.createSegment();\n line.name = 'cartesian-mark-line-line';\n this._line = line;\n container.add(line as unknown as INode);\n\n const markLabel = new Tag({\n ...(label as TagAttributes),\n state: {\n panel: merge({}, DEFAULT_STATES, state?.labelBackground),\n text: merge({}, DEFAULT_STATES, state?.label)\n }\n });\n markLabel.name = 'cartesian-mark-line-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { label } = this.attribute as CommonMarkLineAttrs<T>;\n\n this.setLineAttributes();\n\n if (this._label) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes)\n });\n }\n\n this.setLabelPos();\n }\n}\n"]}
|
|
@@ -16,6 +16,8 @@ export declare class CartesianMarkArea extends Marker<CartesianMarkAreaAttrs> {
|
|
|
16
16
|
fontSize: number;
|
|
17
17
|
fontWeight: string;
|
|
18
18
|
fontStyle: string;
|
|
19
|
+
textAlign: string;
|
|
20
|
+
textBaseline: string;
|
|
19
21
|
};
|
|
20
22
|
padding: number[];
|
|
21
23
|
panel: {
|
|
@@ -34,7 +36,10 @@ export declare class CartesianMarkArea extends Marker<CartesianMarkAreaAttrs> {
|
|
|
34
36
|
getArea(): IPolygon;
|
|
35
37
|
getLabel(): Tag;
|
|
36
38
|
constructor(attributes: CartesianMarkAreaAttrs, options?: ComponentOptions);
|
|
37
|
-
|
|
39
|
+
protected getPositionByDirection(direction: string): {
|
|
40
|
+
x: number;
|
|
41
|
+
y: number;
|
|
42
|
+
};
|
|
38
43
|
protected setLabelPos(): void;
|
|
39
44
|
protected initMarker(container: IGroup): void;
|
|
40
45
|
protected updateMarker(): void;
|
|
@@ -19,20 +19,21 @@ class CartesianMarkArea extends base_1.Marker {
|
|
|
19
19
|
super((null == options ? void 0 : options.skipDefault) ? attributes : (0, vutils_1.merge)({}, CartesianMarkArea.defaultAttributes, attributes)),
|
|
20
20
|
this.name = "cartesianMarkArea";
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
getPositionByDirection(direction) {
|
|
23
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
24
|
+
const {x1: x1, x2: x2, y1: y1, y2: y2} = this._area.AABBBounds, labelRectHeight = Math.abs((null !== (_b = null === (_a = this._label.getTextShape().AABBBounds) || void 0 === _a ? void 0 : _a.y2) && void 0 !== _b ? _b : 0) - (null !== (_d = null === (_c = this._label.getTextShape()) || void 0 === _c ? void 0 : _c.AABBBounds.y1) && void 0 !== _d ? _d : 0)), labelTextHeight = Math.abs((null !== (_f = null === (_e = this._label.getBgRect().AABBBounds) || void 0 === _e ? void 0 : _e.y2) && void 0 !== _f ? _f : 0) - (null !== (_h = null === (_g = this._label.getBgRect()) || void 0 === _g ? void 0 : _g.AABBBounds.y1) && void 0 !== _h ? _h : 0)), labelHeight = Math.max(labelRectHeight, labelTextHeight), labelRectWidth = Math.abs((null !== (_k = null === (_j = this._label.getTextShape().AABBBounds) || void 0 === _j ? void 0 : _j.x2) && void 0 !== _k ? _k : 0) - (null !== (_m = null === (_l = this._label.getTextShape()) || void 0 === _l ? void 0 : _l.AABBBounds.x1) && void 0 !== _m ? _m : 0)), labelTextWidth = Math.abs((null !== (_p = null === (_o = this._label.getBgRect().AABBBounds) || void 0 === _o ? void 0 : _o.x2) && void 0 !== _p ? _p : 0) - (null !== (_r = null === (_q = this._label.getBgRect()) || void 0 === _q ? void 0 : _q.AABBBounds.x1) && void 0 !== _r ? _r : 0)), labelWidth = Math.max(labelRectWidth, labelTextWidth);
|
|
24
25
|
return direction.includes("left") || direction.includes("Left") ? {
|
|
25
|
-
x: x1,
|
|
26
|
+
x: x1 + (direction.includes("inside") ? .5 : -.5) * labelWidth,
|
|
26
27
|
y: (y1 + y2) / 2
|
|
27
28
|
} : direction.includes("right") || direction.includes("Right") ? {
|
|
28
|
-
x: x2,
|
|
29
|
+
x: x2 + (direction.includes("inside") ? -.5 : .5) * labelWidth,
|
|
29
30
|
y: (y1 + y2) / 2
|
|
30
31
|
} : direction.includes("top") || direction.includes("Top") ? {
|
|
31
32
|
x: (x1 + x2) / 2,
|
|
32
|
-
y: y1
|
|
33
|
+
y: y1 + (direction.includes("inside") ? .5 : -.5) * labelHeight
|
|
33
34
|
} : direction.includes("bottom") || direction.includes("Bottom") ? {
|
|
34
35
|
x: (x1 + x2) / 2,
|
|
35
|
-
y: y2
|
|
36
|
+
y: y2 + (direction.includes("inside") ? -.5 : .5) * labelHeight
|
|
36
37
|
} : {
|
|
37
38
|
x: (x1 + x2) / 2,
|
|
38
39
|
y: (y1 + y2) / 2
|
|
@@ -41,10 +42,8 @@ class CartesianMarkArea extends base_1.Marker {
|
|
|
41
42
|
setLabelPos() {
|
|
42
43
|
var _a;
|
|
43
44
|
if (this._label && this._area) {
|
|
44
|
-
const {label: label = {}} = this.attribute, labelPosition = null !== (_a = label.position) && void 0 !== _a ? _a : "middle", labelPoint = this.
|
|
45
|
-
if (this._label.setAttributes(Object.assign(
|
|
46
|
-
textStyle: Object.assign(Object.assign({}, config_1.DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP[labelPosition]), label.textStyle)
|
|
47
|
-
})), this.attribute.limitRect && label.confine) {
|
|
45
|
+
const {label: label = {}} = this.attribute, labelPosition = null !== (_a = label.position) && void 0 !== _a ? _a : "middle", labelPoint = this.getPositionByDirection(labelPosition);
|
|
46
|
+
if (this._label.setAttributes(Object.assign({}, labelPoint)), this.attribute.limitRect && label.confine) {
|
|
48
47
|
const {x: x, y: y, width: width, height: height} = this.attribute.limitRect;
|
|
49
48
|
(0, limit_shape_1.limitShapeInBounds)(this._label, {
|
|
50
49
|
x1: x,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/cartesian/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { IGroup, INode, IPolygon } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { isValidNumber, merge } from '@visactor/vutils';\nimport type { TagAttributes } from '../../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../../tag';\nimport { Marker } from '../base';\nimport { DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP, DEFAULT_CARTESIAN_MARK_AREA_THEME } from '../config';\nimport type { CartesianMarkAreaAttrs } from '../type';\nimport { limitShapeInBounds } from '../../util/limit-shape';\nimport type { ComponentOptions } from '../../interface';\nimport { loadCartesianMarkAreaComponent } from '../register';\nimport type { Point } from '../../core/type';\nimport { DEFAULT_STATES } from '../../constant';\n\nloadCartesianMarkAreaComponent();\nexport class CartesianMarkArea extends Marker<CartesianMarkAreaAttrs> {\n name = 'cartesianMarkArea';\n static defaultAttributes = DEFAULT_CARTESIAN_MARK_AREA_THEME;\n private _area!: IPolygon;\n getArea() {\n return this._area;\n }\n\n getLabel() {\n return this._label;\n }\n\n constructor(attributes: CartesianMarkAreaAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CartesianMarkArea.defaultAttributes, attributes));\n }\n\n private _getPositionByDirection(area: IPolygon, direction: string) {\n const { x1, x2, y1, y2 } = this._area.AABBBounds;\n\n if (direction.includes('left') || direction.includes('Left')) {\n return {\n x: x1,\n y: (y1 + y2) / 2\n };\n }\n if (direction.includes('right') || direction.includes('Right')) {\n return {\n x: x2,\n y: (y1 + y2) / 2\n };\n }\n if (direction.includes('top') || direction.includes('Top')) {\n return {\n x: (x1 + x2) / 2,\n y: y1\n };\n }\n if (direction.includes('bottom') || direction.includes('Bottom')) {\n return {\n x: (x1 + x2) / 2,\n y: y2\n };\n }\n\n return {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n };\n }\n\n protected setLabelPos() {\n if (this._label && this._area) {\n const { label = {} } = this.attribute as CartesianMarkAreaAttrs;\n const labelPosition = label.position ?? 'middle';\n const labelPoint = this._getPositionByDirection(this._area, labelPosition);\n this._label.setAttributes({\n ...labelPoint,\n textStyle: {\n ...DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP[labelPosition],\n ...label.textStyle\n }\n });\n\n if (this.attribute.limitRect && label.confine) {\n const { x, y, width, height } = this.attribute.limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n }\n\n protected initMarker(container: IGroup) {\n const { points, label, areaStyle, state } = this.attribute as CartesianMarkAreaAttrs;\n const area = graphicCreator.polygon({\n points: points,\n ...areaStyle\n });\n area.states = merge({}, DEFAULT_STATES, state?.area);\n area.name = 'mark-polygon-polygon';\n this._area = area;\n container.add(area);\n\n const markLabel = new Tag({\n ...(label as TagAttributes),\n state: {\n panel: merge({}, DEFAULT_STATES, state?.labelBackground),\n text: merge({}, DEFAULT_STATES, state?.label)\n }\n });\n markLabel.name = 'mark-polygon-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { points, label, areaStyle } = this.attribute as CartesianMarkAreaAttrs;\n if (this._area) {\n this._area.setAttributes({\n points: points,\n ...areaStyle\n });\n }\n if (this._area) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes)\n });\n }\n this.setLabelPos();\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as CartesianMarkAreaAttrs;\n if (!points || points.length < 3) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point) => {\n if (!isValidNumber((point as Point).x) || !isValidNumber((point as Point).y)) {\n validFlag = false;\n return;\n }\n });\n return validFlag;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/marker/cartesian/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { IGroup, INode, IPolygon } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { graphicCreator } from '@visactor/vrender-core';\nimport { isValidNumber, merge } from '@visactor/vutils';\nimport type { TagAttributes } from '../../tag';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tag } from '../../tag';\nimport { Marker } from '../base';\nimport { DEFAULT_CARTESIAN_MARK_AREA_TEXT_STYLE_MAP, DEFAULT_CARTESIAN_MARK_AREA_THEME } from '../config';\nimport type { CartesianMarkAreaAttrs } from '../type';\nimport { limitShapeInBounds } from '../../util/limit-shape';\nimport type { ComponentOptions } from '../../interface';\nimport { loadCartesianMarkAreaComponent } from '../register';\nimport type { Point } from '../../core/type';\nimport { DEFAULT_STATES } from '../../constant';\n\nloadCartesianMarkAreaComponent();\nexport class CartesianMarkArea extends Marker<CartesianMarkAreaAttrs> {\n name = 'cartesianMarkArea';\n static defaultAttributes = DEFAULT_CARTESIAN_MARK_AREA_THEME;\n private _area!: IPolygon;\n getArea() {\n return this._area;\n }\n\n getLabel() {\n return this._label;\n }\n\n constructor(attributes: CartesianMarkAreaAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CartesianMarkArea.defaultAttributes, attributes));\n }\n\n protected getPositionByDirection(direction: string) {\n const { x1, x2, y1, y2 } = this._area.AABBBounds;\n // labelHeight\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n // labelWidth\n // eslint-disable-next-line max-len\n const labelRectWidth = Math.abs(\n (this._label.getTextShape().AABBBounds?.x2 ?? 0) - (this._label.getTextShape()?.AABBBounds.x1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextWidth = Math.abs(\n (this._label.getBgRect().AABBBounds?.x2 ?? 0) - (this._label.getBgRect()?.AABBBounds.x1 ?? 0)\n );\n const labelWidth = Math.max(labelRectWidth, labelTextWidth);\n\n if (direction.includes('left') || direction.includes('Left')) {\n return {\n x: x1 + (direction.includes('inside') ? 0.5 : -0.5) * labelWidth,\n y: (y1 + y2) / 2\n };\n }\n if (direction.includes('right') || direction.includes('Right')) {\n return {\n x: x2 + (direction.includes('inside') ? -0.5 : 0.5) * labelWidth,\n y: (y1 + y2) / 2\n };\n }\n if (direction.includes('top') || direction.includes('Top')) {\n return {\n x: (x1 + x2) / 2,\n y: y1 + (direction.includes('inside') ? 0.5 : -0.5) * labelHeight\n };\n }\n if (direction.includes('bottom') || direction.includes('Bottom')) {\n return {\n x: (x1 + x2) / 2,\n y: y2 + (direction.includes('inside') ? -0.5 : 0.5) * labelHeight\n };\n }\n\n return {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n };\n }\n\n protected setLabelPos() {\n if (this._label && this._area) {\n const { label = {} } = this.attribute as CartesianMarkAreaAttrs;\n const labelPosition = label.position ?? 'middle';\n const labelPoint = this.getPositionByDirection(labelPosition);\n this._label.setAttributes({\n ...labelPoint\n });\n\n if (this.attribute.limitRect && label.confine) {\n const { x, y, width, height } = this.attribute.limitRect;\n limitShapeInBounds(this._label, {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n });\n }\n }\n }\n\n protected initMarker(container: IGroup) {\n const { points, label, areaStyle, state } = this.attribute as CartesianMarkAreaAttrs;\n const area = graphicCreator.polygon({\n points: points,\n ...areaStyle\n });\n area.states = merge({}, DEFAULT_STATES, state?.area);\n area.name = 'mark-polygon-polygon';\n this._area = area;\n container.add(area);\n\n const markLabel = new Tag({\n ...(label as TagAttributes),\n state: {\n panel: merge({}, DEFAULT_STATES, state?.labelBackground),\n text: merge({}, DEFAULT_STATES, state?.label)\n }\n });\n markLabel.name = 'mark-polygon-label';\n this._label = markLabel;\n container.add(markLabel as unknown as INode);\n this.setLabelPos();\n }\n\n protected updateMarker() {\n const { points, label, areaStyle } = this.attribute as CartesianMarkAreaAttrs;\n if (this._area) {\n this._area.setAttributes({\n points: points,\n ...areaStyle\n });\n }\n if (this._area) {\n this._label.setAttributes({\n dx: 0,\n dy: 0, // 需要进行复位\n ...(label as TagAttributes)\n });\n }\n this.setLabelPos();\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as CartesianMarkAreaAttrs;\n if (!points || points.length < 3) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point) => {\n if (!isValidNumber((point as Point).x) || !isValidNumber((point as Point).y)) {\n validFlag = false;\n return;\n }\n });\n return validFlag;\n }\n}\n"]}
|
|
@@ -1,14 +1,27 @@
|
|
|
1
|
+
import { ICartesianMarkLineLabelPosition } from '../type';
|
|
1
2
|
import type { CartesianMarkLineAttrs } from '../type';
|
|
2
3
|
import type { ComponentOptions } from '../../interface';
|
|
3
4
|
import { BaseMarkLine } from '../base-line';
|
|
4
5
|
import type { ArcSegment } from '../../segment';
|
|
5
6
|
import { Segment } from '../../segment';
|
|
6
|
-
export declare class CartesianMarkLine extends BaseMarkLine {
|
|
7
|
+
export declare class CartesianMarkLine extends BaseMarkLine<ICartesianMarkLineLabelPosition> {
|
|
7
8
|
name: string;
|
|
8
9
|
static defaultAttributes: Partial<CartesianMarkLineAttrs>;
|
|
9
10
|
protected _line: Segment | ArcSegment;
|
|
10
11
|
constructor(attributes: CartesianMarkLineAttrs, options?: ComponentOptions);
|
|
11
12
|
protected isValidPoints(): boolean;
|
|
13
|
+
protected getLabelOffsetByDirection(direction: ICartesianMarkLineLabelPosition): {
|
|
14
|
+
offsetX: number;
|
|
15
|
+
offsetY: number;
|
|
16
|
+
};
|
|
17
|
+
protected getPositionByDirection(direction: ICartesianMarkLineLabelPosition): {
|
|
18
|
+
position: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
};
|
|
22
|
+
angle: number;
|
|
23
|
+
};
|
|
24
|
+
protected setLabelPos(): void;
|
|
12
25
|
protected createSegment(): Segment;
|
|
13
26
|
protected setLineAttributes(): void;
|
|
14
27
|
}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.CartesianMarkLine = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"),
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), type_1 = require("../type"), register_1 = require("../register"), base_line_1 = require("../base-line"), segment_1 = require("../../segment"), constant_1 = require("../../constant"), config_1 = require("../config");
|
|
8
8
|
|
|
9
9
|
(0, register_1.loadCartesianMarkLineComponent)();
|
|
10
10
|
|
|
@@ -23,6 +23,102 @@ class CartesianMarkLine extends base_line_1.BaseMarkLine {
|
|
|
23
23
|
})); else if (!(0, vutils_1.isValidNumber)(point.x) || !(0, vutils_1.isValidNumber)(point.y)) return void (validFlag = !1);
|
|
24
24
|
})), validFlag;
|
|
25
25
|
}
|
|
26
|
+
getLabelOffsetByDirection(direction) {
|
|
27
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
28
|
+
const labelRectHeight = Math.abs((null !== (_b = null === (_a = this._label.getTextShape().AABBBounds) || void 0 === _a ? void 0 : _a.y2) && void 0 !== _b ? _b : 0) - (null !== (_d = null === (_c = this._label.getTextShape()) || void 0 === _c ? void 0 : _c.AABBBounds.y1) && void 0 !== _d ? _d : 0)), labelTextHeight = Math.abs((null !== (_f = null === (_e = this._label.getBgRect().AABBBounds) || void 0 === _e ? void 0 : _e.y2) && void 0 !== _f ? _f : 0) - (null !== (_h = null === (_g = this._label.getBgRect()) || void 0 === _g ? void 0 : _g.AABBBounds.y1) && void 0 !== _h ? _h : 0)), labelHeight = Math.max(labelRectHeight, labelTextHeight), labelRectWidth = Math.abs((null !== (_k = null === (_j = this._label.getTextShape().AABBBounds) || void 0 === _j ? void 0 : _j.x2) && void 0 !== _k ? _k : 0) - (null !== (_m = null === (_l = this._label.getTextShape()) || void 0 === _l ? void 0 : _l.AABBBounds.x1) && void 0 !== _m ? _m : 0)), labelTextWidth = Math.abs((null !== (_p = null === (_o = this._label.getBgRect().AABBBounds) || void 0 === _o ? void 0 : _o.x2) && void 0 !== _p ? _p : 0) - (null !== (_r = null === (_q = this._label.getBgRect()) || void 0 === _q ? void 0 : _q.AABBBounds.x1) && void 0 !== _r ? _r : 0)), labelWidth = Math.max(labelRectWidth, labelTextWidth);
|
|
29
|
+
switch (direction) {
|
|
30
|
+
case type_1.ICartesianMarkLineLabelPosition.start:
|
|
31
|
+
return {
|
|
32
|
+
offsetX: -labelWidth / 2,
|
|
33
|
+
offsetY: 0
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
case type_1.ICartesianMarkLineLabelPosition.insideStartTop:
|
|
37
|
+
return {
|
|
38
|
+
offsetX: labelWidth / 2,
|
|
39
|
+
offsetY: labelHeight / 2
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
case type_1.ICartesianMarkLineLabelPosition.insideStartBottom:
|
|
43
|
+
return {
|
|
44
|
+
offsetX: labelWidth / 2,
|
|
45
|
+
offsetY: -labelHeight / 2
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
case type_1.ICartesianMarkLineLabelPosition.middle:
|
|
49
|
+
return {
|
|
50
|
+
offsetX: 0,
|
|
51
|
+
offsetY: 0
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
case type_1.ICartesianMarkLineLabelPosition.insideMiddleTop:
|
|
55
|
+
return {
|
|
56
|
+
offsetX: 0,
|
|
57
|
+
offsetY: labelHeight / 2
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
case type_1.ICartesianMarkLineLabelPosition.insideMiddleBottom:
|
|
61
|
+
return {
|
|
62
|
+
offsetX: 0,
|
|
63
|
+
offsetY: -labelHeight / 2
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
case type_1.ICartesianMarkLineLabelPosition.end:
|
|
67
|
+
return {
|
|
68
|
+
offsetX: labelWidth / 2,
|
|
69
|
+
offsetY: 0
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
case type_1.ICartesianMarkLineLabelPosition.insideEndTop:
|
|
73
|
+
return {
|
|
74
|
+
offsetX: -labelWidth / 2,
|
|
75
|
+
offsetY: labelHeight / 2
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
case type_1.ICartesianMarkLineLabelPosition.insideEndBottom:
|
|
79
|
+
return {
|
|
80
|
+
offsetX: -labelWidth / 2,
|
|
81
|
+
offsetY: -labelHeight / 2
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
default:
|
|
85
|
+
return {
|
|
86
|
+
offsetX: labelWidth / 2,
|
|
87
|
+
offsetY: 0
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
getPositionByDirection(direction) {
|
|
92
|
+
var _a;
|
|
93
|
+
const {label: label = {}} = this.attribute, {refX: refX = 0, refY: refY = 0} = label, points = this._line.getMainSegmentPoints(), labelAngle = null !== (_a = this._line.getEndAngle()) && void 0 !== _a ? _a : 0, totalRefX = refX + this.getLabelOffsetByDirection(direction).offsetX, totalRefY = refY + this.getLabelOffsetByDirection(direction).offsetY, labelOffsetX = totalRefX * Math.cos(labelAngle) + totalRefY * Math.cos(labelAngle - Math.PI / 2), labelOffsetY = totalRefX * Math.sin(labelAngle) + totalRefY * Math.sin(labelAngle - Math.PI / 2);
|
|
94
|
+
return direction.includes("start") || direction.includes("Start") ? {
|
|
95
|
+
position: {
|
|
96
|
+
x: points[0].x + labelOffsetX,
|
|
97
|
+
y: points[0].y + labelOffsetY
|
|
98
|
+
},
|
|
99
|
+
angle: labelAngle
|
|
100
|
+
} : direction.includes("middle") || direction.includes("Middle") ? {
|
|
101
|
+
position: {
|
|
102
|
+
x: (points[0].x + points[points.length - 1].x) / 2 + labelOffsetX,
|
|
103
|
+
y: (points[0].y + points[points.length - 1].y) / 2 + labelOffsetY
|
|
104
|
+
},
|
|
105
|
+
angle: labelAngle
|
|
106
|
+
} : {
|
|
107
|
+
position: {
|
|
108
|
+
x: points[points.length - 1].x + labelOffsetX,
|
|
109
|
+
y: points[points.length - 1].y + labelOffsetY
|
|
110
|
+
},
|
|
111
|
+
angle: labelAngle
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
setLabelPos() {
|
|
115
|
+
var _a;
|
|
116
|
+
super.setLabelPos();
|
|
117
|
+
const {label: label = {}} = this.attribute, {position: position = "end", autoRotate: autoRotate = !0} = label, labelAttr = this.getPositionByDirection(position);
|
|
118
|
+
this._label.setAttributes(Object.assign(Object.assign({}, labelAttr.position), {
|
|
119
|
+
angle: autoRotate ? labelAttr.angle + (null !== (_a = label.refAngle) && void 0 !== _a ? _a : 0) : 0
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
26
122
|
createSegment() {
|
|
27
123
|
const {points: points, startSymbol: startSymbol, endSymbol: endSymbol, lineStyle: lineStyle, mainSegmentIndex: mainSegmentIndex, multiSegment: multiSegment, state: state} = this.attribute;
|
|
28
124
|
return new segment_1.Segment({
|
|
@@ -53,5 +149,5 @@ class CartesianMarkLine extends base_line_1.BaseMarkLine {
|
|
|
53
149
|
}
|
|
54
150
|
}
|
|
55
151
|
|
|
56
|
-
exports.CartesianMarkLine = CartesianMarkLine, CartesianMarkLine.defaultAttributes = config_1.
|
|
152
|
+
exports.CartesianMarkLine = CartesianMarkLine, CartesianMarkLine.defaultAttributes = config_1.DEFAULT_CARTESIAN_MARK_LINE_THEME;
|
|
57
153
|
//# sourceMappingURL=line.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker/cartesian/line.ts"],"names":[],"mappings":";;;AAAA,6CAAwD;AACxD,sCAA2D;AAG3D,0CAA6D;AAE7D,4CAA4C;AAG5C,2CAAwC;AACxC,6CAAgD;AAEhD,IAAA,yCAA8B,GAAE,CAAC;AACjC,MAAa,iBAAkB,SAAQ,wBAAY;IAKjD,YAAY,UAAkC,EAAE,OAA0B;QACxE,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;QALxG,SAAI,GAAG,mBAAmB,CAAC;IAM3B,CAAC;IAES,aAAa;QACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAmC,CAAC;QAC5D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAsB,EAAE,EAAE;YACxC,IAAK,KAAa,CAAC,MAAM,EAAE;gBACxB,KAAiB,CAAC,OAAO,CAAC,CAAC,CAAQ,EAAE,EAAE;oBACtC,IAAI,CAAC,IAAA,sBAAa,EAAE,CAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,sBAAa,EAAE,CAAW,CAAC,CAAC,CAAC,EAAE;wBACpE,SAAS,GAAG,KAAK,CAAC;wBAClB,OAAO;qBACR;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,CAAC,IAAA,sBAAa,EAAE,KAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,sBAAa,EAAE,KAAe,CAAC,CAAC,CAAC,EAAE;gBACnF,SAAS,GAAG,KAAK,CAAC;gBAClB,OAAO;aACR;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,aAAa;QACrB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI;aAC9F,SAAmC,CAAC;QACvC,OAAO,IAAI,iBAAO,CAAC;YACjB,MAAM;YACN,WAAW;YACX,SAAS;YACT,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,IAAA,cAAK,EAAC,EAAE,EAAE,yBAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC;gBAC5C,WAAW,EAAE,IAAA,cAAK,EAAC,EAAE,EAAE,yBAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,CAAC;gBAC9D,SAAS,EAAE,IAAA,cAAK,EAAC,EAAE,EAAE,yBAAc,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,CAAC;aAC3D;SACF,CAAC,CAAC;IACL,CAAC;IACS,iBAAiB;QACzB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,IAAI;aACvF,SAAmC,CAAC;QACvC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;gBACvB,MAAM;gBACN,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,gBAAgB;gBAChB,YAAY;aACb,CAAC,CAAC;SACJ;IACH,CAAC;;AA9DH,8CA+DC;AA7DQ,mCAAiB,GAAoC,uCAA8B,CAAC","file":"line.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport { DEFAULT_COMMON_MARK_LINE_THEME } from '../config';\nimport type { CartesianMarkLineAttrs } from '../type';\nimport type { ComponentOptions } from '../../interface';\nimport { loadCartesianMarkLineComponent } from '../register';\nimport type { Point } from '../../core/type';\nimport { BaseMarkLine } from '../base-line';\nimport type { ArcSegment } from '../../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport { Segment } from '../../segment';\nimport { DEFAULT_STATES } from '../../constant';\n\nloadCartesianMarkLineComponent();\nexport class CartesianMarkLine extends BaseMarkLine {\n name = 'cartesianMarkLine';\n static defaultAttributes: Partial<CartesianMarkLineAttrs> = DEFAULT_COMMON_MARK_LINE_THEME;\n protected _line!: Segment | ArcSegment;\n\n constructor(attributes: CartesianMarkLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CartesianMarkLine.defaultAttributes, attributes));\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as CartesianMarkLineAttrs;\n if (!points || points.length < 2) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point | Point[]) => {\n if ((point as any).length) {\n (point as Point[]).forEach((p: Point) => {\n if (!isValidNumber((p as Point).x) || !isValidNumber((p as Point).y)) {\n validFlag = false;\n return;\n }\n });\n } else if (!isValidNumber((point as Point).x) || !isValidNumber((point as Point).y)) {\n validFlag = false;\n return;\n }\n });\n return validFlag;\n }\n\n protected createSegment() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as CartesianMarkLineAttrs;\n return new Segment({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n pickable: false, // 组件容器本身不参与拾取\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n protected setLineAttributes() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment } = this\n .attribute as CartesianMarkLineAttrs;\n if (this._line) {\n this._line.setAttributes({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment\n });\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/marker/cartesian/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import { isValidNumber, merge } from '@visactor/vutils';\nimport { ICartesianMarkLineLabelPosition } from '../type';\nimport type { CartesianMarkLineAttrs, ICartesianMarkAreaLabelPosition } from '../type';\nimport type { ComponentOptions } from '../../interface';\nimport { loadCartesianMarkLineComponent } from '../register';\nimport type { Point } from '../../core/type';\nimport { BaseMarkLine } from '../base-line';\nimport type { ArcSegment } from '../../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport { Segment } from '../../segment';\nimport { DEFAULT_STATES } from '../../constant';\nimport { DEFAULT_CARTESIAN_MARK_LINE_THEME } from '../config';\n\nloadCartesianMarkLineComponent();\nexport class CartesianMarkLine extends BaseMarkLine<ICartesianMarkLineLabelPosition> {\n name = 'cartesianMarkLine';\n // eslint-disable-next-line max-len\n static defaultAttributes: Partial<CartesianMarkLineAttrs> =\n DEFAULT_CARTESIAN_MARK_LINE_THEME as unknown as CartesianMarkLineAttrs;\n protected _line!: Segment | ArcSegment;\n\n constructor(attributes: CartesianMarkLineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, CartesianMarkLine.defaultAttributes, attributes));\n }\n\n protected isValidPoints() {\n const { points } = this.attribute as CartesianMarkLineAttrs;\n if (!points || points.length < 2) {\n return false;\n }\n let validFlag = true;\n points.forEach((point: Point | Point[]) => {\n if ((point as any).length) {\n (point as Point[]).forEach((p: Point) => {\n if (!isValidNumber((p as Point).x) || !isValidNumber((p as Point).y)) {\n validFlag = false;\n return;\n }\n });\n } else if (!isValidNumber((point as Point).x) || !isValidNumber((point as Point).y)) {\n validFlag = false;\n return;\n }\n });\n return validFlag;\n }\n\n protected getLabelOffsetByDirection(direction: ICartesianMarkLineLabelPosition) {\n // labelHeight\n // eslint-disable-next-line max-len\n const labelRectHeight = Math.abs(\n (this._label.getTextShape().AABBBounds?.y2 ?? 0) - (this._label.getTextShape()?.AABBBounds.y1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextHeight = Math.abs(\n (this._label.getBgRect().AABBBounds?.y2 ?? 0) - (this._label.getBgRect()?.AABBBounds.y1 ?? 0)\n );\n const labelHeight = Math.max(labelRectHeight, labelTextHeight);\n\n // labelWidth\n // eslint-disable-next-line max-len\n const labelRectWidth = Math.abs(\n (this._label.getTextShape().AABBBounds?.x2 ?? 0) - (this._label.getTextShape()?.AABBBounds.x1 ?? 0)\n );\n // eslint-disable-next-line max-len\n const labelTextWidth = Math.abs(\n (this._label.getBgRect().AABBBounds?.x2 ?? 0) - (this._label.getBgRect()?.AABBBounds.x1 ?? 0)\n );\n const labelWidth = Math.max(labelRectWidth, labelTextWidth);\n\n switch (direction) {\n case ICartesianMarkLineLabelPosition.start:\n return {\n offsetX: -labelWidth / 2,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideStartTop:\n return {\n offsetX: labelWidth / 2,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideStartBottom:\n return {\n offsetX: labelWidth / 2,\n offsetY: -labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.middle:\n return {\n offsetX: 0,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideMiddleTop:\n return {\n offsetX: 0,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideMiddleBottom:\n return {\n offsetX: 0,\n offsetY: -labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.end:\n return {\n offsetX: labelWidth / 2,\n offsetY: 0\n };\n case ICartesianMarkLineLabelPosition.insideEndTop:\n return {\n offsetX: -labelWidth / 2,\n offsetY: labelHeight / 2\n };\n case ICartesianMarkLineLabelPosition.insideEndBottom:\n return {\n offsetX: -labelWidth / 2,\n offsetY: -labelHeight / 2\n };\n default: // default end\n return {\n offsetX: labelWidth / 2,\n offsetY: 0\n };\n }\n }\n\n protected getPositionByDirection(direction: ICartesianMarkLineLabelPosition) {\n const { label = {} } = this.attribute;\n const { refX = 0, refY = 0 } = label;\n const points = this._line.getMainSegmentPoints();\n const labelAngle = this._line.getEndAngle() ?? 0;\n\n const totalRefX = refX + this.getLabelOffsetByDirection(direction).offsetX;\n const totalRefY = refY + this.getLabelOffsetByDirection(direction).offsetY;\n\n const labelOffsetX = totalRefX * Math.cos(labelAngle) + totalRefY * Math.cos(labelAngle - Math.PI / 2);\n const labelOffsetY = totalRefX * Math.sin(labelAngle) + totalRefY * Math.sin(labelAngle - Math.PI / 2);\n\n if (direction.includes('start') || direction.includes('Start')) {\n return {\n position: {\n x: points[0].x + labelOffsetX,\n y: points[0].y + labelOffsetY\n },\n angle: labelAngle\n };\n } else if (direction.includes('middle') || direction.includes('Middle')) {\n return {\n position: {\n x: (points[0].x + points[points.length - 1].x) / 2 + labelOffsetX,\n y: (points[0].y + points[points.length - 1].y) / 2 + labelOffsetY\n },\n angle: labelAngle\n };\n }\n return {\n position: {\n x: points[points.length - 1].x + labelOffsetX,\n y: points[points.length - 1].y + labelOffsetY\n },\n angle: labelAngle\n };\n }\n\n protected setLabelPos(): void {\n super.setLabelPos();\n const { label = {} } = this.attribute as CartesianMarkLineAttrs;\n const { position = 'end', autoRotate = true } = label;\n const labelAttr = this.getPositionByDirection(position as any);\n this._label.setAttributes({\n ...labelAttr.position,\n angle: autoRotate ? labelAttr.angle + (label.refAngle ?? 0) : 0\n });\n }\n\n protected createSegment() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment, state } = this\n .attribute as CartesianMarkLineAttrs;\n return new Segment({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment,\n pickable: false, // 组件容器本身不参与拾取\n state: {\n line: merge({}, DEFAULT_STATES, state?.line),\n startSymbol: merge({}, DEFAULT_STATES, state?.lineStartSymbol),\n endSymbol: merge({}, DEFAULT_STATES, state?.lineEndSymbol)\n }\n });\n }\n\n protected setLineAttributes() {\n const { points, startSymbol, endSymbol, lineStyle, mainSegmentIndex, multiSegment } = this\n .attribute as CartesianMarkLineAttrs;\n if (this._line) {\n this._line.setAttributes({\n points,\n startSymbol,\n endSymbol,\n lineStyle,\n mainSegmentIndex,\n multiSegment\n });\n }\n }\n}\n"]}
|
package/cjs/marker/config.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TextAlignType, TextBaselineType } from '@visactor/vrender-core';
|
|
2
|
-
import { ICartesianMarkAreaLabelPosition,
|
|
3
|
-
export declare const
|
|
2
|
+
import { ICartesianMarkAreaLabelPosition, ICartesianMarkLineLabelPosition, IPolarMarkLabelPosition } from './type';
|
|
3
|
+
export declare const DEFAULT_CARTESIAN_MARK_LINE_THEME: {
|
|
4
4
|
interactive: boolean;
|
|
5
5
|
startSymbol: {
|
|
6
6
|
visible: boolean;
|
|
@@ -17,7 +17,7 @@ export declare const DEFAULT_COMMON_MARK_LINE_THEME: {
|
|
|
17
17
|
lineWidth: number;
|
|
18
18
|
};
|
|
19
19
|
label: {
|
|
20
|
-
position:
|
|
20
|
+
position: ICartesianMarkLineLabelPosition;
|
|
21
21
|
refX: number;
|
|
22
22
|
refY: number;
|
|
23
23
|
refAngle: number;
|
|
@@ -28,6 +28,8 @@ export declare const DEFAULT_COMMON_MARK_LINE_THEME: {
|
|
|
28
28
|
fontSize: number;
|
|
29
29
|
fontWeight: string;
|
|
30
30
|
fontStyle: string;
|
|
31
|
+
textAlign: string;
|
|
32
|
+
textBaseline: string;
|
|
31
33
|
};
|
|
32
34
|
padding: number[];
|
|
33
35
|
panel: {
|
|
@@ -43,10 +45,49 @@ export declare const DEFAULT_COMMON_MARK_LINE_THEME: {
|
|
|
43
45
|
lineDash: number[];
|
|
44
46
|
};
|
|
45
47
|
};
|
|
46
|
-
export declare const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
export declare const DEFAULT_POLAR_MARK_LINE_THEME: {
|
|
49
|
+
interactive: boolean;
|
|
50
|
+
startSymbol: {
|
|
51
|
+
visible: boolean;
|
|
52
|
+
symbolType: string;
|
|
53
|
+
size: number;
|
|
54
|
+
fill: string;
|
|
55
|
+
lineWidth: number;
|
|
56
|
+
};
|
|
57
|
+
endSymbol: {
|
|
58
|
+
visible: boolean;
|
|
59
|
+
symbolType: string;
|
|
60
|
+
size: number;
|
|
61
|
+
fill: string;
|
|
62
|
+
lineWidth: number;
|
|
63
|
+
};
|
|
64
|
+
label: {
|
|
65
|
+
position: IPolarMarkLabelPosition;
|
|
66
|
+
refX: number;
|
|
67
|
+
refY: number;
|
|
68
|
+
refAngle: number;
|
|
69
|
+
textStyle: {
|
|
70
|
+
fill: string;
|
|
71
|
+
stroke: string;
|
|
72
|
+
lineWidth: number;
|
|
73
|
+
fontSize: number;
|
|
74
|
+
fontWeight: string;
|
|
75
|
+
fontStyle: string;
|
|
76
|
+
textAlign: string;
|
|
77
|
+
textBaseline: string;
|
|
78
|
+
};
|
|
79
|
+
padding: number[];
|
|
80
|
+
panel: {
|
|
81
|
+
visible: boolean;
|
|
82
|
+
cornerRadius: number;
|
|
83
|
+
fill: string;
|
|
84
|
+
fillOpacity: number;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
lineStyle: {
|
|
88
|
+
stroke: string;
|
|
89
|
+
lineWidth: number;
|
|
90
|
+
lineDash: number[];
|
|
50
91
|
};
|
|
51
92
|
};
|
|
52
93
|
export declare const DEFAULT_CARTESIAN_MARK_AREA_THEME: {
|
|
@@ -60,6 +101,8 @@ export declare const DEFAULT_CARTESIAN_MARK_AREA_THEME: {
|
|
|
60
101
|
fontSize: number;
|
|
61
102
|
fontWeight: string;
|
|
62
103
|
fontStyle: string;
|
|
104
|
+
textAlign: string;
|
|
105
|
+
textBaseline: string;
|
|
63
106
|
};
|
|
64
107
|
padding: number[];
|
|
65
108
|
panel: {
|
|
@@ -77,7 +120,7 @@ export declare const DEFAULT_CARTESIAN_MARK_AREA_THEME: {
|
|
|
77
120
|
export declare const DEFAULT_POLAR_MARK_AREA_THEME: {
|
|
78
121
|
interactive: boolean;
|
|
79
122
|
label: {
|
|
80
|
-
position:
|
|
123
|
+
position: IPolarMarkLabelPosition;
|
|
81
124
|
textStyle: {
|
|
82
125
|
fill: string;
|
|
83
126
|
stroke: string;
|
|
@@ -86,7 +129,7 @@ export declare const DEFAULT_POLAR_MARK_AREA_THEME: {
|
|
|
86
129
|
fontWeight: string;
|
|
87
130
|
fontStyle: string;
|
|
88
131
|
textAlign: string;
|
|
89
|
-
|
|
132
|
+
textBaseline: string;
|
|
90
133
|
};
|
|
91
134
|
padding: number[];
|
|
92
135
|
panel: {
|