@visactor/vrender-components 0.23.0-alpha.2 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/animation/animate-component.d.ts +22 -0
- package/cjs/animation/animate-component.js +29 -0
- package/cjs/animation/animate-component.js.map +1 -0
- package/cjs/animation/axis-animate.d.ts +10 -0
- package/cjs/animation/axis-animate.js +71 -0
- package/cjs/animation/axis-animate.js.map +1 -0
- package/cjs/animation/label-animate.d.ts +10 -0
- package/cjs/animation/label-animate.js +80 -0
- package/cjs/animation/label-animate.js.map +1 -0
- package/cjs/axis/animate/config.d.ts +6 -0
- package/cjs/axis/animate/config.js +10 -0
- package/cjs/axis/animate/config.js.map +1 -0
- package/cjs/axis/animate/group-transition.d.ts +2 -1
- package/cjs/axis/animate/group-transition.js +2 -2
- package/cjs/axis/animate/group-transition.js.map +1 -1
- package/cjs/axis/base.d.ts +7 -2
- package/cjs/axis/base.js +70 -5
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/line.js.map +1 -1
- package/cjs/axis/register.js +2 -2
- package/cjs/axis/register.js.map +1 -1
- package/cjs/axis/type.d.ts +4 -0
- package/cjs/axis/type.js.map +1 -1
- package/cjs/brush/config.js +1 -2
- package/cjs/brush/type.js +2 -1
- package/cjs/crosshair/rect.js +1 -2
- package/cjs/crosshair/type.js +2 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/indicator/register.js +1 -2
- package/cjs/jsx/index.js +2 -1
- package/cjs/label/animate/animate.d.ts +1 -12
- package/cjs/label/animate/animate.js +1 -78
- package/cjs/label/animate/animate.js.map +1 -1
- package/cjs/label/arc.js +6 -6
- package/cjs/label/arc.js.map +1 -1
- package/cjs/label/base.d.ts +6 -5
- package/cjs/label/base.js +86 -98
- package/cjs/label/base.js.map +1 -1
- package/cjs/label/index.js +1 -1
- package/cjs/label/line.js +1 -1
- package/cjs/label/overlap/scaler.js +3 -3
- package/cjs/label/overlap/scaler.js.map +1 -1
- package/cjs/label/polygon.js +1 -1
- package/cjs/label/register.d.ts +1 -0
- package/cjs/label/register.js +8 -4
- package/cjs/label/register.js.map +1 -1
- package/cjs/label-item/label-item.d.ts +9 -20
- package/cjs/label-item/label-item.js +1 -103
- package/cjs/label-item/label-item.js.map +1 -1
- package/cjs/poptip/contribution.js +4 -2
- package/cjs/poptip/contribution.js.map +1 -1
- package/cjs/poptip/poptip.d.ts +5 -9
- package/cjs/poptip/poptip.js +88 -55
- package/cjs/poptip/poptip.js.map +1 -1
- package/cjs/poptip/type.d.ts +4 -1
- package/cjs/poptip/type.js.map +1 -1
- package/cjs/tag/tag.js +60 -56
- package/cjs/tag/tag.js.map +1 -1
- package/cjs/weather/weather-box.d.ts +1 -2
- package/cjs/weather/weather-box.js.map +1 -1
- package/dist/index.es.js +3036 -2743
- package/es/animation/animate-component.d.ts +22 -0
- package/es/animation/animate-component.js +21 -0
- package/es/animation/animate-component.js.map +1 -0
- package/es/animation/axis-animate.d.ts +10 -0
- package/es/animation/axis-animate.js +60 -0
- package/es/animation/axis-animate.js.map +1 -0
- package/es/animation/label-animate.d.ts +10 -0
- package/es/animation/label-animate.js +69 -0
- package/es/animation/label-animate.js.map +1 -0
- package/es/axis/animate/config.d.ts +6 -0
- package/es/axis/animate/config.js +6 -0
- package/es/axis/animate/config.js.map +1 -0
- package/es/axis/animate/group-transition.d.ts +2 -1
- package/es/axis/animate/group-transition.js +3 -1
- package/es/axis/animate/group-transition.js.map +1 -1
- package/es/axis/base.d.ts +7 -2
- package/es/axis/base.js +75 -9
- package/es/axis/base.js.map +1 -1
- package/es/axis/line.js.map +1 -1
- package/es/axis/register.js +3 -1
- package/es/axis/register.js.map +1 -1
- package/es/axis/type.d.ts +4 -0
- package/es/axis/type.js.map +1 -1
- package/es/brush/config.js +1 -2
- package/es/brush/type.js +2 -1
- package/es/crosshair/rect.js +1 -2
- package/es/crosshair/type.js +2 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/indicator/register.js +1 -2
- package/es/jsx/index.js +2 -1
- package/es/label/animate/animate.d.ts +1 -12
- package/es/label/animate/animate.js +0 -76
- package/es/label/animate/animate.js.map +1 -1
- package/es/label/arc.js +6 -6
- package/es/label/arc.js.map +1 -1
- package/es/label/base.d.ts +6 -5
- package/es/label/base.js +90 -99
- package/es/label/base.js.map +1 -1
- package/es/label/index.js +1 -1
- package/es/label/line.js +1 -1
- package/es/label/overlap/scaler.js +1 -1
- package/es/label/overlap/scaler.js.map +1 -1
- package/es/label/polygon.js +1 -1
- package/es/label/register.d.ts +1 -0
- package/es/label/register.js +7 -1
- package/es/label/register.js.map +1 -1
- package/es/label-item/label-item.d.ts +9 -20
- package/es/label-item/label-item.js +0 -104
- package/es/label-item/label-item.js.map +1 -1
- package/es/poptip/contribution.js +4 -2
- package/es/poptip/contribution.js.map +1 -1
- package/es/poptip/poptip.d.ts +5 -9
- package/es/poptip/poptip.js +85 -57
- package/es/poptip/poptip.js.map +1 -1
- package/es/poptip/type.d.ts +4 -1
- package/es/poptip/type.js.map +1 -1
- package/es/tag/tag.js +59 -56
- package/es/tag/tag.js.map +1 -1
- package/es/weather/weather-box.d.ts +1 -2
- package/es/weather/weather-box.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/label/overlap/scaler.ts"],"names":[],"mappings":";;;AACA,6CAAuD;AACvD,qCAAkC;AAiClC,SAAgB,UAAU,CACxB,KAAa,EACb,MAAc,EACd,UAA4E,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAEpH,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAE3C,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,eAAM,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAChD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAE/C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAEtB,OAAO,KAAK,CAAC;AACf,CAAC;AArBD,gCAqBC;AAED,SAAgB,kBAAkB,CAAC,CAAa,EAAE,KAAkB;IAClE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IACjC,MAAM,GAAG,GAAG,IAAA,cAAU,EAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/label/overlap/scaler.ts"],"names":[],"mappings":"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","file":"scaler.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport { clamp as clampRange } from '@visactor/vutils';\nimport { bitmap } from './bitmap';\n\n/**\n * 防重叠逻辑参考 https://github.com/vega/vega/\n * Copyright (c) 2015-2023, University of Washington Interactive Data Lab\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n 3. Neither the name of the copyright holder nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE\n FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nexport function bitmapTool(\n width: number,\n height: number,\n padding: { top?: number; left?: number; right?: number; bottom?: number } = { top: 0, left: 0, right: 0, bottom: 0 }\n) {\n const { top = 0, left = 0, right = 0, bottom = 0 } = padding;\n const ratio = Math.max(1, Math.sqrt((width * height) / 1e6));\n const w = ~~((width + left + right + ratio) / ratio);\n const h = ~~((height + top + bottom + ratio) / ratio);\n const scale = (_: number) => ~~(_ / ratio);\n\n scale.bitmap = () => bitmap(w, h);\n scale.x = (_: number) => ~~((_ + left) / ratio);\n scale.y = (_: number) => ~~((_ + top) / ratio);\n\n scale.ratio = ratio;\n scale.padding = padding;\n scale.width = width;\n scale.height = height;\n\n return scale;\n}\n\nexport function clampRangeByBitmap($: BitmapTool, range: IBoundsLike) {\n const { x1, x2, y1, y2 } = range;\n const { top = 0, left = 0, right = 0, bottom = 0 } = $.padding;\n const _x1 = clampRange(x1, -left, $.width + right);\n const _x2 = clampRange(x2, -left, $.width + right);\n const _y1 = clampRange(y1, -top, $.height + bottom);\n const _y2 = clampRange(y2, -top, $.height + bottom);\n return {\n x1: $.x(_x1),\n x2: $.x(_x2),\n y1: $.y(_y1),\n y2: $.y(_y2)\n };\n}\n\nexport function boundToRange($: BitmapTool, bound: IBoundsLike, clamp: boolean = false) {\n if (clamp) {\n return clampRangeByBitmap($, bound);\n }\n\n return {\n x1: $.x(bound.x1),\n x2: $.x(bound.x2),\n y1: $.y(bound.y1),\n y2: $.y(bound.y2)\n };\n}\n\nexport type BitmapTool = ReturnType<typeof bitmapTool>;\n"]}
|
package/cjs/label/polygon.js
CHANGED
package/cjs/label/register.d.ts
CHANGED
package/cjs/label/register.js
CHANGED
|
@@ -2,14 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.loadLabelComponent = void 0;
|
|
5
|
+
}), exports.loadLabelAnimate = exports.loadLabelComponent = void 0;
|
|
6
6
|
|
|
7
|
-
const vrender_kits_1 = require("@visactor/vrender-kits");
|
|
7
|
+
const vrender_kits_1 = require("@visactor/vrender-kits"), label_animate_1 = require("../animation/label-animate");
|
|
8
8
|
|
|
9
9
|
function loadLabelComponent() {
|
|
10
10
|
(0, vrender_kits_1.registerGroup)(), (0, vrender_kits_1.registerText)(), (0, vrender_kits_1.registerRichtext)(),
|
|
11
|
-
(0, vrender_kits_1.registerLine)();
|
|
11
|
+
(0, vrender_kits_1.registerLine)(), (0, label_animate_1.registerLabelAnimate)();
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
function loadLabelAnimate() {
|
|
15
|
+
(0, label_animate_1.registerLabelAnimate)();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.loadLabelComponent = loadLabelComponent, exports.loadLabelAnimate = loadLabelAnimate;
|
|
15
19
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/label/register.ts"],"names":[],"mappings":";;;AAAA,yDAAqG;
|
|
1
|
+
{"version":3,"sources":["../src/label/register.ts"],"names":[],"mappings":";;;AAAA,yDAAqG;AACrG,8DAAkE;AAElE,SAAgB,kBAAkB;IAChC,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,+BAAgB,GAAE,CAAC;IACnB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,oCAAoB,GAAE,CAAC;AACzB,CAAC;AAND,gDAMC;AAED,SAAgB,gBAAgB;IAC9B,IAAA,oCAAoB,GAAE,CAAC;AACzB,CAAC;AAFD,4CAEC","file":"register.js","sourcesContent":["import { registerGroup, registerLine, registerRichtext, registerText } from '@visactor/vrender-kits';\nimport { registerLabelAnimate } from '../animation/label-animate';\n\nexport function loadLabelComponent() {\n registerGroup();\n registerText();\n registerRichtext();\n registerLine();\n registerLabelAnimate();\n}\n\nexport function loadLabelAnimate() {\n registerLabelAnimate();\n}\n"]}
|
|
@@ -1,29 +1,18 @@
|
|
|
1
|
+
import type { ILine, IRect, ISymbol, IText } from '@visactor/vrender-core';
|
|
1
2
|
import { AbstractComponent } from '../core/base';
|
|
2
3
|
import type { IStoryLabelItemAttrs } from './type';
|
|
3
4
|
import type { ComponentOptions } from '../interface';
|
|
4
5
|
export declare class StoryLabelItem extends AbstractComponent<Required<IStoryLabelItemAttrs>> {
|
|
5
6
|
name: 'labelItem';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
_line?: ILine;
|
|
8
|
+
_symbolStart: ISymbol;
|
|
9
|
+
_symbolEnd: ISymbol;
|
|
10
|
+
_symbolStartOuter: ISymbol;
|
|
11
|
+
_titleTop: IText;
|
|
12
|
+
_titleBottom: IText;
|
|
13
|
+
_titleTopPanel: IRect;
|
|
14
|
+
_titleBottomPanel: IRect;
|
|
14
15
|
static defaultAttributes: Partial<IStoryLabelItemAttrs>;
|
|
15
16
|
constructor(attributes: IStoryLabelItemAttrs, options?: ComponentOptions);
|
|
16
17
|
protected render(): void;
|
|
17
|
-
appearAnimate(animateConfig: {
|
|
18
|
-
duration?: number;
|
|
19
|
-
easing?: string;
|
|
20
|
-
symbolStartOuterType?: 'scale' | 'clipRange';
|
|
21
|
-
titleType?: 'typewriter' | 'move';
|
|
22
|
-
titlePanelType?: 'scale' | 'stroke';
|
|
23
|
-
}): void;
|
|
24
|
-
disappearAnimate(animateConfig: {
|
|
25
|
-
duration?: number;
|
|
26
|
-
easing?: string;
|
|
27
|
-
mode?: 'scale' | 'default';
|
|
28
|
-
}): void;
|
|
29
18
|
}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.StoryLabelItem = void 0;
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const base_1 = require("../core/base"), vutils_1 = require("@visactor/vutils");
|
|
8
8
|
|
|
9
9
|
class StoryLabelItem extends base_1.AbstractComponent {
|
|
10
10
|
constructor(attributes, options) {
|
|
@@ -105,108 +105,6 @@ class StoryLabelItem extends base_1.AbstractComponent {
|
|
|
105
105
|
this._symbolEnd = symbolEnd, this._symbolStart = symbolStart, this._symbolStartOuter = symbolStartOut,
|
|
106
106
|
this._titleTop = titleTop, this._titleBottom = titleBottom, this._line = line;
|
|
107
107
|
}
|
|
108
|
-
appearAnimate(animateConfig) {
|
|
109
|
-
const {duration: duration = 1e3, easing: easing = "quadOut", symbolStartOuterType: symbolStartOuterType = "scale", titleType: titleType = "typewriter", titlePanelType: titlePanelType = "scale"} = animateConfig, symbolTime = duration / 10;
|
|
110
|
-
let symbolStartOuterFrom, symbolStartOuterTo;
|
|
111
|
-
if (this._symbolStart.setAttributes({
|
|
112
|
-
scaleX: 0,
|
|
113
|
-
scaleY: 0
|
|
114
|
-
}), this._symbolStart.animate().to({
|
|
115
|
-
scaleX: 1,
|
|
116
|
-
scaleY: 1
|
|
117
|
-
}, 5 * symbolTime, easing), "scale" === symbolStartOuterType ? (symbolStartOuterFrom = {
|
|
118
|
-
scaleX: 0,
|
|
119
|
-
scaleY: 0
|
|
120
|
-
}, symbolStartOuterTo = {
|
|
121
|
-
scaleX: 1,
|
|
122
|
-
scaleY: 1
|
|
123
|
-
}) : (symbolStartOuterFrom = {
|
|
124
|
-
clipRange: 0
|
|
125
|
-
}, symbolStartOuterTo = {
|
|
126
|
-
clipRange: 1
|
|
127
|
-
}), this._symbolStartOuter.setAttributes(symbolStartOuterFrom), this._symbolStartOuter.animate().to(symbolStartOuterTo, 5 * symbolTime, easing),
|
|
128
|
-
this._symbolEnd.setAttributes({
|
|
129
|
-
scaleX: 0,
|
|
130
|
-
scaleY: 0
|
|
131
|
-
}), this._symbolEnd.animate().wait(8 * symbolTime).to({
|
|
132
|
-
scaleX: 1,
|
|
133
|
-
scaleY: 1
|
|
134
|
-
}, 2 * symbolTime, easing), this._line.setAttributes({
|
|
135
|
-
clipRange: 0
|
|
136
|
-
}), this._line.animate().to({
|
|
137
|
-
clipRange: 1
|
|
138
|
-
}, 9 * symbolTime, easing), "typewriter" === titleType) {
|
|
139
|
-
const titleTopText = this._titleTop.attribute.text;
|
|
140
|
-
this._titleTop.setAttributes({
|
|
141
|
-
text: ""
|
|
142
|
-
}), this._titleTop.animate().wait(5 * symbolTime).play(new vrender_animate_1.InputText({
|
|
143
|
-
text: ""
|
|
144
|
-
}, {
|
|
145
|
-
text: titleTopText
|
|
146
|
-
}, 4 * symbolTime, "linear"));
|
|
147
|
-
const titleBottomText = this._titleBottom.attribute.text;
|
|
148
|
-
this._titleBottom.setAttributes({
|
|
149
|
-
text: ""
|
|
150
|
-
}), this._titleBottom.animate().wait(5 * symbolTime).play(new vrender_animate_1.InputText({
|
|
151
|
-
text: ""
|
|
152
|
-
}, {
|
|
153
|
-
text: titleBottomText
|
|
154
|
-
}, 4 * symbolTime, "linear"));
|
|
155
|
-
} else this._titleTop.setAttributes({
|
|
156
|
-
dy: this._titleTop.AABBBounds.height() + 10
|
|
157
|
-
}), this._titleTop.animate().wait(5 * symbolTime).to({
|
|
158
|
-
dy: 0
|
|
159
|
-
}, 4 * symbolTime, "linear"), this._titleBottom.setAttributes({
|
|
160
|
-
dy: -(10 + this._titleBottom.AABBBounds.height())
|
|
161
|
-
}), this._titleBottom.animate().wait(5 * symbolTime).to({
|
|
162
|
-
dy: 0
|
|
163
|
-
}, 4 * symbolTime, "linear");
|
|
164
|
-
"scale" === titlePanelType ? [ this._titleTopPanel, this._titleBottomPanel ].forEach((panel => {
|
|
165
|
-
const scaleX = panel.attribute.scaleX;
|
|
166
|
-
panel.setAttributes({
|
|
167
|
-
scaleX: 0
|
|
168
|
-
}), panel.animate().to({
|
|
169
|
-
scaleX: scaleX
|
|
170
|
-
}, duration, "circInOut");
|
|
171
|
-
})) : "stroke" === titlePanelType && [ this._titleTopPanel, this._titleBottomPanel ].forEach((panel => {
|
|
172
|
-
const b = panel.AABBBounds, totalLen = 2 * (b.width() + b.height());
|
|
173
|
-
panel.setAttributes({
|
|
174
|
-
lineDash: [ 0, 10 * totalLen ]
|
|
175
|
-
}), panel.animate().to({
|
|
176
|
-
lineDash: [ totalLen, 10 * totalLen ]
|
|
177
|
-
}, duration, "quadOut");
|
|
178
|
-
}));
|
|
179
|
-
}
|
|
180
|
-
disappearAnimate(animateConfig) {
|
|
181
|
-
if ("scale" === animateConfig.mode) {
|
|
182
|
-
const {duration: duration = 1e3, easing: easing = "quadOut"} = animateConfig;
|
|
183
|
-
this.animate().to({
|
|
184
|
-
scaleX: 0,
|
|
185
|
-
scaleY: 0
|
|
186
|
-
}, duration, easing);
|
|
187
|
-
} else {
|
|
188
|
-
const {duration: duration = 1e3, easing: easing = "quadOut"} = animateConfig;
|
|
189
|
-
this._line.animate().to({
|
|
190
|
-
clipRange: 0
|
|
191
|
-
}, duration, easing), this._symbolStart.animate().wait(duration / 2).to({
|
|
192
|
-
scaleX: 0,
|
|
193
|
-
scaleY: 0
|
|
194
|
-
}, duration / 2, easing), this._symbolEnd.animate().to({
|
|
195
|
-
scaleX: 0,
|
|
196
|
-
scaleY: 0
|
|
197
|
-
}, duration, easing), this._titleTop.animate().to({
|
|
198
|
-
dy: this._titleTop.AABBBounds.height() + 10
|
|
199
|
-
}, duration / 2, easing), this._titleBottom.animate().to({
|
|
200
|
-
dy: -(10 + this._titleBottom.AABBBounds.height())
|
|
201
|
-
}, duration / 2, easing), this._symbolStartOuter.animate().wait(duration / 2).to({
|
|
202
|
-
clipRange: 0
|
|
203
|
-
}, duration / 2, easing), this._titleTopPanel.animate().to({
|
|
204
|
-
scaleX: 0
|
|
205
|
-
}, duration, "circInOut"), this._titleBottomPanel.animate().to({
|
|
206
|
-
scaleX: 0
|
|
207
|
-
}, duration, "circInOut");
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
108
|
}
|
|
211
109
|
|
|
212
110
|
exports.StoryLabelItem = StoryLabelItem, StoryLabelItem.defaultAttributes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/label-item/label-item.ts"],"names":[],"mappings":"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","file":"label-item.js","sourcesContent":["import type {\n IGroup,\n ILine,\n ILineGraphicAttribute,\n IRect,\n ISymbol,\n ISymbolGraphicAttribute,\n IText\n} from '@visactor/vrender-core';\nimport { InputText } from '@visactor/vrender-animate';\nimport { AbstractComponent } from '../core/base';\nimport type { IStoryLabelItemAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { max, merge } from '@visactor/vutils';\n\nexport class StoryLabelItem extends AbstractComponent<Required<IStoryLabelItemAttrs>> {\n name: 'labelItem';\n private _line?: ILine;\n private _symbolStart: ISymbol;\n private _symbolEnd: ISymbol;\n private _symbolStartOuter: ISymbol;\n private _titleTop: IText;\n private _titleBottom: IText;\n private _titleTopPanel: IRect;\n private _titleBottomPanel: IRect;\n\n static defaultAttributes: Partial<IStoryLabelItemAttrs> = {\n // 内容在X上的偏移量\n contentOffsetX: 100,\n // 内容在Y上的偏移量\n contentOffsetY: -60,\n titleTopStyle: {\n fontSize: 12,\n fill: 'white'\n },\n titleBottomStyle: {\n fontSize: 12,\n fill: 'white'\n },\n lineStyle: {\n stroke: 'white',\n lineWidth: 1\n } as ILineGraphicAttribute,\n // 线段开始端点的样式\n symbolStartStyle: {\n symbolType: 'circle',\n size: 3,\n fill: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n // 线段结束端点的样式\n symbolEndStyle: {\n symbolType: 'circle',\n size: 3,\n fill: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n // 线段开始端点外面包裹symbol的样式\n symbolStartOuterStyle: {\n symbolType: 'M0.5,0A0.5,0.5,0,1,1,-0.5,0A0.5,0.5,0,1,1,0.5,0',\n size: 8,\n stroke: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n titleSpace: [2, 2],\n titleTopPanelStyle: {\n visible: false,\n padding: { left: 0, right: 0, bottom: 2, top: 2 },\n cornerRadius: 3\n },\n titleBottomPanelStyle: {\n visible: false,\n padding: { left: 0, right: 0, bottom: 2, top: 2 },\n cornerRadius: 3\n },\n // 默认和简约两套主题\n theme: 'default'\n };\n\n constructor(attributes: IStoryLabelItemAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, StoryLabelItem.defaultAttributes, attributes));\n }\n\n protected render(): void {\n const {\n contentOffsetX,\n contentOffsetY,\n lineStyle,\n symbolStartStyle,\n symbolEndStyle,\n symbolStartOuterStyle,\n titleTop: titleTopText,\n titleBottom: titleBottomText,\n titleTopStyle,\n titleBottomStyle,\n titleSpace,\n titleTopPanelStyle,\n titleBottomPanelStyle,\n theme\n } = this.attribute;\n\n const group = this.createOrUpdateChild('label-item-container', { x: 0, y: 0, zIndex: 1 }, 'group') as IGroup;\n\n const symbolStart = group.createOrUpdateChild(\n 'label-item-symbol-start',\n { x: 0, y: 0, ...symbolStartStyle },\n 'symbol'\n ) as ISymbol;\n const symbolEnd = group.createOrUpdateChild(\n 'label-item-symbol-end',\n { x: contentOffsetX, y: contentOffsetY, ...symbolEndStyle },\n 'symbol'\n ) as ISymbol;\n const symbolStartOut = group.createOrUpdateChild(\n 'label-item-symbol-start-out',\n { x: 0, y: 0, ...symbolStartOuterStyle },\n 'symbol'\n ) as ISymbol;\n\n const spaceW = titleSpace[0];\n const spaceH = titleSpace[1];\n // 逻辑:group占满,title在group内做偏移\n const titleTopGroup = group.createOrUpdateChild(\n 'label-item-title-top-group',\n { x: contentOffsetX, y: contentOffsetY, clip: true },\n 'group'\n ) as IGroup;\n const titleTop = titleTopGroup.createOrUpdateChild(\n 'label-item-title-top',\n {\n x: spaceW,\n y: -spaceH,\n text: titleTopText,\n ...titleTopStyle,\n textBaseline: 'bottom',\n textAlign: 'left',\n zIndex: 10\n },\n 'text'\n ) as IText;\n const titleTopBounds = titleTop.AABBBounds;\n if (contentOffsetX > 0) {\n titleTopGroup.setAttributes({ x: contentOffsetX - titleTopBounds.width() - spaceW * 2 });\n }\n titleTopGroup.setAttributes({\n width: titleTopBounds.width() + spaceW * 2,\n height: -titleTopBounds.height() - spaceH * 2\n });\n // 添加panel\n const titleTopPanel = titleTopGroup.createOrUpdateChild(\n 'label-item-title-top-panel',\n {\n ...titleTopPanelStyle,\n x: titleTopPanelStyle.padding.left,\n y: (titleTopGroup.attribute.height > 0 ? 0 : titleTopGroup.attribute.height) + titleTopPanelStyle.padding.top,\n width: titleTopGroup.attribute.width - titleTopPanelStyle.padding.left - titleTopPanelStyle.padding.right,\n height:\n (titleTopGroup.attribute.height > 0 ? 1 : -1) * titleTopGroup.attribute.height -\n titleTopPanelStyle.padding.bottom -\n titleTopPanelStyle.padding.top,\n scaleCenter: [titleTopGroup.attribute.width / 2, titleTopGroup.attribute.height / 2]\n },\n 'rect'\n ) as IRect;\n this._titleTopPanel = titleTopPanel;\n\n const titleBottomGroup = group.createOrUpdateChild(\n 'label-item-title-bottom-group',\n { x: contentOffsetX, y: contentOffsetY, clip: true },\n 'group'\n ) as IGroup;\n const titleBottom = titleBottomGroup.createOrUpdateChild(\n 'label-item-title-bottom',\n {\n x: spaceW,\n y: spaceH,\n text: titleBottomText,\n ...titleBottomStyle,\n textBaseline: 'top',\n textAlign: 'left',\n zIndex: 10\n },\n 'text'\n ) as IText;\n const titleBottomBounds = titleBottom.AABBBounds;\n if (contentOffsetX > 0) {\n titleBottomGroup.setAttributes({ x: contentOffsetX - titleBottomBounds.width() - spaceW * 2 });\n }\n titleBottomGroup.setAttributes({\n width: titleBottomBounds.width() + spaceW * 2,\n height: titleTopBounds.height() + spaceH * 2\n });\n // 添加panel\n const titleBottomPanel = titleBottomGroup.createOrUpdateChild(\n 'label-item-title-bottom-panel',\n {\n ...titleBottomPanelStyle,\n x: titleBottomPanelStyle.padding.left,\n y:\n (titleBottomGroup.attribute.height > 0 ? 0 : titleBottomGroup.attribute.height) +\n titleBottomPanelStyle.padding.top,\n width:\n titleBottomGroup.attribute.width - titleBottomPanelStyle.padding.left - titleBottomPanelStyle.padding.right,\n height:\n (titleBottomGroup.attribute.height > 0 ? 1 : -1) * titleBottomGroup.attribute.height -\n titleBottomPanelStyle.padding.bottom -\n titleBottomPanelStyle.padding.top,\n scaleCenter: [titleBottomGroup.attribute.width / 2, titleBottomGroup.attribute.height / 2]\n },\n 'rect'\n ) as IRect;\n this._titleBottomPanel = titleBottomPanel;\n\n const maxTextWidth = Math.max(titleTop.AABBBounds.width(), titleBottom.AABBBounds.width()) + spaceW * 2;\n const points = [\n { x: 0, y: 0 },\n contentOffsetX > 0\n ? { x: contentOffsetX - maxTextWidth, y: contentOffsetY }\n : { x: contentOffsetX + maxTextWidth, y: contentOffsetY },\n { x: contentOffsetX, y: contentOffsetY }\n ];\n // simple风格,不绘制终点,同时文字也要居中\n if (theme === 'simple') {\n points.pop();\n const p = points[1];\n symbolEnd.setAttributes(p);\n }\n const line = group.createOrUpdateChild('label-item-line', { x: 0, y: 0, ...lineStyle, points }, 'line') as ILine;\n\n this._symbolEnd = symbolEnd;\n this._symbolStart = symbolStart;\n this._symbolStartOuter = symbolStartOut;\n this._titleTop = titleTop;\n this._titleBottom = titleBottom;\n this._line = line;\n }\n\n appearAnimate(animateConfig: {\n duration?: number;\n easing?: string;\n symbolStartOuterType?: 'scale' | 'clipRange';\n titleType?: 'typewriter' | 'move';\n titlePanelType?: 'scale' | 'stroke';\n }) {\n const {\n duration = 1000,\n easing = 'quadOut',\n symbolStartOuterType = 'scale',\n titleType = 'typewriter',\n titlePanelType = 'scale'\n } = animateConfig;\n const symbolTime = duration / 10;\n this._symbolStart.setAttributes({ scaleX: 0, scaleY: 0 });\n this._symbolStart.animate().to({ scaleX: 1, scaleY: 1 }, symbolTime * 5, easing as any);\n\n let symbolStartOuterFrom: ISymbolGraphicAttribute;\n let symbolStartOuterTo: ISymbolGraphicAttribute;\n if (symbolStartOuterType === 'scale') {\n symbolStartOuterFrom = { scaleX: 0, scaleY: 0 };\n symbolStartOuterTo = { scaleX: 1, scaleY: 1 };\n } else {\n symbolStartOuterFrom = { clipRange: 0 };\n symbolStartOuterTo = { clipRange: 1 };\n }\n this._symbolStartOuter.setAttributes(symbolStartOuterFrom);\n this._symbolStartOuter.animate().to(symbolStartOuterTo, symbolTime * 5, easing as any);\n\n this._symbolEnd.setAttributes({ scaleX: 0, scaleY: 0 });\n this._symbolEnd\n .animate()\n .wait(symbolTime * 8)\n .to({ scaleX: 1, scaleY: 1 }, symbolTime * 2, easing as any);\n\n this._line.setAttributes({ clipRange: 0 });\n this._line.animate().to({ clipRange: 1 }, symbolTime * 9, easing as any);\n\n if (titleType === 'typewriter') {\n const titleTopText = this._titleTop.attribute.text as string;\n this._titleTop.setAttributes({ text: '' });\n this._titleTop\n .animate()\n .wait(symbolTime * 5)\n .play(new InputText({ text: '' }, { text: titleTopText }, symbolTime * 4, 'linear') as any);\n\n const titleBottomText = this._titleBottom.attribute.text as string;\n this._titleBottom.setAttributes({ text: '' });\n this._titleBottom\n .animate()\n .wait(symbolTime * 5)\n .play(new InputText({ text: '' }, { text: titleBottomText }, symbolTime * 4, 'linear') as any);\n } else {\n this._titleTop.setAttributes({ dy: this._titleTop.AABBBounds.height() + 10 });\n this._titleTop\n .animate()\n .wait(symbolTime * 5)\n .to({ dy: 0 }, symbolTime * 4, 'linear');\n\n this._titleBottom.setAttributes({ dy: -(10 + this._titleBottom.AABBBounds.height()) });\n this._titleBottom\n .animate()\n .wait(symbolTime * 5)\n .to({ dy: 0 }, symbolTime * 4, 'linear');\n }\n\n if (titlePanelType === 'scale') {\n [this._titleTopPanel, this._titleBottomPanel].forEach(panel => {\n const scaleX = panel.attribute.scaleX;\n panel.setAttributes({ scaleX: 0 });\n panel.animate().to({ scaleX }, duration, 'circInOut');\n });\n } else if (titlePanelType === 'stroke') {\n [this._titleTopPanel, this._titleBottomPanel].forEach(panel => {\n const b = panel.AABBBounds;\n const totalLen = (b.width() + b.height()) * 2;\n panel.setAttributes({ lineDash: [0, totalLen * 10] });\n panel.animate().to({ lineDash: [totalLen, totalLen * 10] }, duration, 'quadOut');\n });\n }\n }\n\n disappearAnimate(animateConfig: { duration?: number; easing?: string; mode?: 'scale' | 'default' }) {\n if (animateConfig.mode === 'scale') {\n const { duration = 1000, easing = 'quadOut' } = animateConfig;\n this.animate().to({ scaleX: 0, scaleY: 0 }, duration, easing as any);\n } else {\n const { duration = 1000, easing = 'quadOut' } = animateConfig;\n this._line.animate().to({ clipRange: 0 }, duration, easing as any);\n this._symbolStart\n .animate()\n .wait(duration / 2)\n .to({ scaleX: 0, scaleY: 0 }, duration / 2, easing as any);\n this._symbolEnd.animate().to({ scaleX: 0, scaleY: 0 }, duration, easing as any);\n this._titleTop.animate().to({ dy: this._titleTop.AABBBounds.height() + 10 }, duration / 2, easing as any);\n this._titleBottom\n .animate()\n .to({ dy: -(10 + this._titleBottom.AABBBounds.height()) }, duration / 2, easing as any);\n this._symbolStartOuter\n .animate()\n .wait(duration / 2)\n .to({ clipRange: 0 }, duration / 2, easing as any);\n this._titleTopPanel.animate().to({ scaleX: 0 }, duration, 'circInOut');\n this._titleBottomPanel.animate().to({ scaleX: 0 }, duration, 'circInOut');\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/label-item/label-item.ts"],"names":[],"mappings":"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","file":"label-item.js","sourcesContent":["import type {\n IGroup,\n ILine,\n ILineGraphicAttribute,\n IRect,\n ISymbol,\n ISymbolGraphicAttribute,\n IText\n} from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport type { IStoryLabelItemAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { merge } from '@visactor/vutils';\n\nexport class StoryLabelItem extends AbstractComponent<Required<IStoryLabelItemAttrs>> {\n name: 'labelItem';\n _line?: ILine;\n _symbolStart: ISymbol;\n _symbolEnd: ISymbol;\n _symbolStartOuter: ISymbol;\n _titleTop: IText;\n _titleBottom: IText;\n _titleTopPanel: IRect;\n _titleBottomPanel: IRect;\n\n static defaultAttributes: Partial<IStoryLabelItemAttrs> = {\n // 内容在X上的偏移量\n contentOffsetX: 100,\n // 内容在Y上的偏移量\n contentOffsetY: -60,\n titleTopStyle: {\n fontSize: 12,\n fill: 'white'\n },\n titleBottomStyle: {\n fontSize: 12,\n fill: 'white'\n },\n lineStyle: {\n stroke: 'white',\n lineWidth: 1\n } as ILineGraphicAttribute,\n // 线段开始端点的样式\n symbolStartStyle: {\n symbolType: 'circle',\n size: 3,\n fill: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n // 线段结束端点的样式\n symbolEndStyle: {\n symbolType: 'circle',\n size: 3,\n fill: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n // 线段开始端点外面包裹symbol的样式\n symbolStartOuterStyle: {\n symbolType: 'M0.5,0A0.5,0.5,0,1,1,-0.5,0A0.5,0.5,0,1,1,0.5,0',\n size: 8,\n stroke: 'white'\n } as Partial<ISymbolGraphicAttribute>,\n titleSpace: [2, 2],\n titleTopPanelStyle: {\n visible: false,\n padding: { left: 0, right: 0, bottom: 2, top: 2 },\n cornerRadius: 3\n },\n titleBottomPanelStyle: {\n visible: false,\n padding: { left: 0, right: 0, bottom: 2, top: 2 },\n cornerRadius: 3\n },\n // 默认和简约两套主题\n theme: 'default'\n };\n\n constructor(attributes: IStoryLabelItemAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, StoryLabelItem.defaultAttributes, attributes));\n }\n\n protected render(): void {\n const {\n contentOffsetX,\n contentOffsetY,\n lineStyle,\n symbolStartStyle,\n symbolEndStyle,\n symbolStartOuterStyle,\n titleTop: titleTopText,\n titleBottom: titleBottomText,\n titleTopStyle,\n titleBottomStyle,\n titleSpace,\n titleTopPanelStyle,\n titleBottomPanelStyle,\n theme\n } = this.attribute;\n\n const group = this.createOrUpdateChild('label-item-container', { x: 0, y: 0, zIndex: 1 }, 'group') as IGroup;\n\n const symbolStart = group.createOrUpdateChild(\n 'label-item-symbol-start',\n { x: 0, y: 0, ...symbolStartStyle },\n 'symbol'\n ) as ISymbol;\n const symbolEnd = group.createOrUpdateChild(\n 'label-item-symbol-end',\n { x: contentOffsetX, y: contentOffsetY, ...symbolEndStyle },\n 'symbol'\n ) as ISymbol;\n const symbolStartOut = group.createOrUpdateChild(\n 'label-item-symbol-start-out',\n { x: 0, y: 0, ...symbolStartOuterStyle },\n 'symbol'\n ) as ISymbol;\n\n const spaceW = titleSpace[0];\n const spaceH = titleSpace[1];\n // 逻辑:group占满,title在group内做偏移\n const titleTopGroup = group.createOrUpdateChild(\n 'label-item-title-top-group',\n { x: contentOffsetX, y: contentOffsetY, clip: true },\n 'group'\n ) as IGroup;\n const titleTop = titleTopGroup.createOrUpdateChild(\n 'label-item-title-top',\n {\n x: spaceW,\n y: -spaceH,\n text: titleTopText,\n ...titleTopStyle,\n textBaseline: 'bottom',\n textAlign: 'left',\n zIndex: 10\n },\n 'text'\n ) as IText;\n const titleTopBounds = titleTop.AABBBounds;\n if (contentOffsetX > 0) {\n titleTopGroup.setAttributes({ x: contentOffsetX - titleTopBounds.width() - spaceW * 2 });\n }\n titleTopGroup.setAttributes({\n width: titleTopBounds.width() + spaceW * 2,\n height: -titleTopBounds.height() - spaceH * 2\n });\n // 添加panel\n const titleTopPanel = titleTopGroup.createOrUpdateChild(\n 'label-item-title-top-panel',\n {\n ...titleTopPanelStyle,\n x: titleTopPanelStyle.padding.left,\n y: (titleTopGroup.attribute.height > 0 ? 0 : titleTopGroup.attribute.height) + titleTopPanelStyle.padding.top,\n width: titleTopGroup.attribute.width - titleTopPanelStyle.padding.left - titleTopPanelStyle.padding.right,\n height:\n (titleTopGroup.attribute.height > 0 ? 1 : -1) * titleTopGroup.attribute.height -\n titleTopPanelStyle.padding.bottom -\n titleTopPanelStyle.padding.top,\n scaleCenter: [titleTopGroup.attribute.width / 2, titleTopGroup.attribute.height / 2]\n },\n 'rect'\n ) as IRect;\n this._titleTopPanel = titleTopPanel;\n\n const titleBottomGroup = group.createOrUpdateChild(\n 'label-item-title-bottom-group',\n { x: contentOffsetX, y: contentOffsetY, clip: true },\n 'group'\n ) as IGroup;\n const titleBottom = titleBottomGroup.createOrUpdateChild(\n 'label-item-title-bottom',\n {\n x: spaceW,\n y: spaceH,\n text: titleBottomText,\n ...titleBottomStyle,\n textBaseline: 'top',\n textAlign: 'left',\n zIndex: 10\n },\n 'text'\n ) as IText;\n const titleBottomBounds = titleBottom.AABBBounds;\n if (contentOffsetX > 0) {\n titleBottomGroup.setAttributes({ x: contentOffsetX - titleBottomBounds.width() - spaceW * 2 });\n }\n titleBottomGroup.setAttributes({\n width: titleBottomBounds.width() + spaceW * 2,\n height: titleTopBounds.height() + spaceH * 2\n });\n // 添加panel\n const titleBottomPanel = titleBottomGroup.createOrUpdateChild(\n 'label-item-title-bottom-panel',\n {\n ...titleBottomPanelStyle,\n x: titleBottomPanelStyle.padding.left,\n y:\n (titleBottomGroup.attribute.height > 0 ? 0 : titleBottomGroup.attribute.height) +\n titleBottomPanelStyle.padding.top,\n width:\n titleBottomGroup.attribute.width - titleBottomPanelStyle.padding.left - titleBottomPanelStyle.padding.right,\n height:\n (titleBottomGroup.attribute.height > 0 ? 1 : -1) * titleBottomGroup.attribute.height -\n titleBottomPanelStyle.padding.bottom -\n titleBottomPanelStyle.padding.top,\n scaleCenter: [titleBottomGroup.attribute.width / 2, titleBottomGroup.attribute.height / 2]\n },\n 'rect'\n ) as IRect;\n this._titleBottomPanel = titleBottomPanel;\n\n const maxTextWidth = Math.max(titleTop.AABBBounds.width(), titleBottom.AABBBounds.width()) + spaceW * 2;\n const points = [\n { x: 0, y: 0 },\n contentOffsetX > 0\n ? { x: contentOffsetX - maxTextWidth, y: contentOffsetY }\n : { x: contentOffsetX + maxTextWidth, y: contentOffsetY },\n { x: contentOffsetX, y: contentOffsetY }\n ];\n // simple风格,不绘制终点,同时文字也要居中\n if (theme === 'simple') {\n points.pop();\n const p = points[1];\n symbolEnd.setAttributes(p);\n }\n const line = group.createOrUpdateChild('label-item-line', { x: 0, y: 0, ...lineStyle, points }, 'line') as ILine;\n\n this._symbolEnd = symbolEnd;\n this._symbolStart = symbolStart;\n this._symbolStartOuter = symbolStartOut;\n this._titleTop = titleTop;\n this._titleBottom = titleBottom;\n this._line = line;\n }\n}\n"]}
|
|
@@ -34,10 +34,12 @@ let PopTipRenderContribution = class {
|
|
|
34
34
|
this.poptipComponent.setAttributes(Object.assign(Object.assign({
|
|
35
35
|
visibleAll: !0,
|
|
36
36
|
pickable: !1,
|
|
37
|
-
childrenPickable: !1
|
|
37
|
+
childrenPickable: !1,
|
|
38
|
+
poptipAnchor: "bounds"
|
|
38
39
|
}, poptip), {
|
|
39
40
|
x: matrix.e,
|
|
40
|
-
y: matrix.f
|
|
41
|
+
y: matrix.f,
|
|
42
|
+
positionBounds: graphic.globalAABBBounds
|
|
41
43
|
})), drawContext.stage.tryInitInteractiveLayer();
|
|
42
44
|
const interactiveLayer = drawContext.stage.getLayer("_builtin_interactive");
|
|
43
45
|
interactiveLayer && interactiveLayer.add(this.poptipComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/poptip/contribution.ts"],"names":[],"mappings":";;;;;;;;;AAQA,yDAAoD;AACpD,qCAAkC;AAClC,6CAAyC;AACzC,mCAAgC;AAEhC,SAAS,UAAU,CAAC,MAA2B,EAAE,MAA2B;IAC1E,IAAA,cAAK,EAAC,MAAM,EAAE,aAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAGM,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAEnC,MAAM,CACJ,OAA6C,EAC7C,OAAmB,EACnB,CAAS,EACT,CAAS,EACT,MAAe,EACf,QAAiB,EACjB,QAAiB,EACjB,QAAiB,EACjB,gBAA6C,EAC7C,WAAyB,EACzB,MAAiH,EACjH,QAAmH,EACnH,OAAa;;QAEb,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE;YAC7B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAI,OAAO,CAAC,SAAiB,CAAC,MAAM,IAAI,EAAE,CAAC;YACvE,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE;gBACpE,OAAO;aACR;YACD,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAA,cAAK,EACH,SAAS,EACT,eAAM,CAAC,iBAAiB,EACvB,OAAO,CAAC,SAAiB,CAAC,MAAM,CAAC,CAAC,CAAE,OAAO,CAAC,SAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3E,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,CAAC;aAC9C;iBAAM;gBACL,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;aAChD;YAED,IAAI,MAAM,GAAI,OAAO,CAAC,SAAiB,CAAC,MAAM,IAAI,EAAE,CAAC;YACrD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE;gBAC7E,MAAM,GAAG,GAAG,EAAE,CAAC;gBACf,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACxB,MAAM,GAAG,GAAG,CAAC;gBACb,MAAM,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAK,OAAO,CAAC,SAAiB,CAAC,IAAI,CAAC;aACpE;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,aAAa,+BAChC,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,KAAK,EACf,gBAAgB,EAAE,KAAK,
|
|
1
|
+
{"version":3,"sources":["../src/poptip/contribution.ts"],"names":[],"mappings":"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","file":"contribution.js","sourcesContent":["import type {\n IContext2d,\n IGraphic,\n IGraphicAttribute,\n IInteractiveSubRenderContribution,\n IThemeAttribute,\n IDrawContext\n} from '@visactor/vrender-core';\nimport { injectable } from '@visactor/vrender-core';\nimport { PopTip } from './poptip';\nimport { merge } from '@visactor/vutils';\nimport { theme } from './theme';\n\nfunction wrapPoptip(target: Record<string, any>, source: Record<string, any>) {\n merge(target, theme.poptip, source);\n return target;\n}\n\n@injectable()\nexport class PopTipRenderContribution implements IInteractiveSubRenderContribution {\n declare poptipComponent: PopTip;\n render(\n graphic: IGraphic<Partial<IGraphicAttribute>>,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ): void {\n if (graphic._showPoptip === 1) {\n const { visible, visibleCb } = (graphic.attribute as any).poptip || {};\n if (visible === false || (visibleCb && visibleCb(graphic) === false)) {\n return;\n }\n const attribute = {};\n merge(\n attribute,\n PopTip.defaultAttributes,\n (graphic.attribute as any).poptip ? (graphic.attribute as any).poptip : {}\n );\n if (!this.poptipComponent) {\n this.poptipComponent = new PopTip(attribute);\n } else {\n this.poptipComponent.initAttributes(attribute);\n }\n // 如果text图元没有配置title和content的话\n let poptip = (graphic.attribute as any).poptip || {};\n if (graphic.type === 'text' && poptip.title == null && poptip.content == null) {\n const out = {};\n wrapPoptip(out, poptip);\n poptip = out;\n poptip.content = poptip.content ?? (graphic.attribute as any).text;\n }\n const matrix = graphic.globalTransMatrix;\n this.poptipComponent.setAttributes({\n visibleAll: true,\n pickable: false,\n childrenPickable: false,\n // 默认使用bounds作为锚点\n poptipAnchor: 'bounds',\n ...poptip,\n x: matrix.e,\n y: matrix.f,\n positionBounds: graphic.globalAABBBounds\n });\n // 添加到交互层中\n drawContext.stage.tryInitInteractiveLayer();\n const interactiveLayer = drawContext.stage.getLayer('_builtin_interactive');\n if (interactiveLayer) {\n interactiveLayer.add(this.poptipComponent);\n }\n } else if (graphic._showPoptip === 2) {\n graphic._showPoptip = 0;\n if (this.poptipComponent) {\n this.poptipComponent.setAttributes({\n visibleAll: false\n });\n this.poptipComponent.parent?.removeChild(this.poptipComponent);\n this.poptipComponent = null;\n }\n }\n }\n}\n"]}
|
package/cjs/poptip/poptip.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type IGroup, type IText } from '@visactor/vrender-core';
|
|
2
|
+
import { type IAABBBoundsLike } from '@visactor/vutils';
|
|
2
3
|
import { AbstractComponent } from '../core/base';
|
|
3
4
|
import type { ComponentOptions } from '../interface';
|
|
4
5
|
import type { PopTipAttributes } from './type';
|
|
@@ -11,17 +12,12 @@ export declare class PopTip extends AbstractComponent<Required<PopTipAttributes>
|
|
|
11
12
|
constructor(attributes: PopTipAttributes, options?: ComponentOptions);
|
|
12
13
|
protected render(): void;
|
|
13
14
|
positionList: string[];
|
|
15
|
+
calculateAnchorPoint(position: string, positionBounds?: IAABBBoundsLike): {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
};
|
|
14
19
|
getAngleAndOffset(position: string, width: number, height: number, size: [number, number], symbolType: 'arrow2Left' | string): {
|
|
15
20
|
angle: number;
|
|
16
21
|
offset: [number, number];
|
|
17
22
|
};
|
|
18
|
-
appearAnimate(animateConfig: {
|
|
19
|
-
duration?: number;
|
|
20
|
-
easing?: string;
|
|
21
|
-
wave?: number;
|
|
22
|
-
}): void;
|
|
23
|
-
disappearAnimate(animateConfig: {
|
|
24
|
-
duration?: number;
|
|
25
|
-
easing?: string;
|
|
26
|
-
}): void;
|
|
27
23
|
}
|
package/cjs/poptip/poptip.js
CHANGED
|
@@ -14,7 +14,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
value: !0
|
|
15
15
|
}), exports.PopTip = void 0;
|
|
16
16
|
|
|
17
|
-
const
|
|
17
|
+
const vutils_1 = require("@visactor/vutils"), base_1 = require("../core/base"), register_1 = require("./register"), _tBounds = new vutils_1.AABBBounds;
|
|
18
18
|
|
|
19
19
|
(0, register_1.loadPoptipComponent)();
|
|
20
20
|
|
|
@@ -36,7 +36,7 @@ class PopTip extends base_1.AbstractComponent {
|
|
|
36
36
|
}
|
|
37
37
|
render() {
|
|
38
38
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
39
|
-
const {titleStyle: titleStyle = {}, position: position, contentStyle: contentStyle = {}, panel: panel, logoSymbol: logoSymbol, logoText: logoText, logoTextStyle: logoTextStyle = {}, triangleMode: triangleMode = "default", space: space = 4, minWidth: minWidth = 0, maxWidth: maxWidth = 1 / 0, padding: padding = 4, maxWidthPercent: maxWidthPercent, visible: visible, state: state, dx: dx = 0, dy: dy = 0} = this.attribute;
|
|
39
|
+
const {titleStyle: titleStyle = {}, position: position, contentStyle: contentStyle = {}, panel: panel, logoSymbol: logoSymbol, poptipAnchor: poptipAnchor = "position", logoText: logoText, logoTextStyle: logoTextStyle = {}, triangleMode: triangleMode = "default", space: space = 4, minWidth: minWidth = 0, maxWidth: maxWidth = 1 / 0, padding: padding = 4, maxWidthPercent: maxWidthPercent, visible: visible, state: state, dx: dx = 0, dy: dy = 0, positionBounds: positionBounds} = this.attribute;
|
|
40
40
|
let {title: title = "", content: content = ""} = this.attribute;
|
|
41
41
|
title = this.attribute.titleFormatMethod ? this.attribute.titleFormatMethod(title) : title,
|
|
42
42
|
content = this.attribute.contentFormatMethod ? this.attribute.contentFormatMethod(content) : content;
|
|
@@ -104,19 +104,26 @@ class PopTip extends base_1.AbstractComponent {
|
|
|
104
104
|
poptipHeight += contentShape.AABBBounds.height();
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
const layout = "auto" === position
|
|
107
|
+
const layout = "auto" === position || (0, vutils_1.isArray)(position), positionList = (0,
|
|
108
|
+
vutils_1.isArray)(position) ? position : this.positionList;
|
|
108
109
|
let maxBBoxI, maxBBoxSize = -1 / 0;
|
|
109
|
-
for (let i = 0; i <
|
|
110
|
-
const p = layout ?
|
|
110
|
+
for (let i = 0; i < positionList.length + 1; i++) {
|
|
111
|
+
const p = layout ? positionList[i === positionList.length ? maxBBoxI : i] : position;
|
|
111
112
|
let symbolType = "arrow2Left", offsetX = ((0, vutils_1.isArray)(symbolSize) ? symbolSize[0] : symbolSize) / 4, offsetY = 0;
|
|
112
113
|
"top" === p || "bottom" === p || "left" === p || "right" === p ? symbolType = "arrow2Left" : "concise" === triangleMode && (symbolType = conciseSymbolMap[p],
|
|
113
|
-
offsetX = [ "tl", "bl", "rt", "rb" ].includes(
|
|
114
|
-
vutils_1.isArray)(symbolSize) ? symbolSize[0] : symbolSize) / 2, offsetY = [ "tl", "tr", "lb", "rb" ].includes(
|
|
114
|
+
offsetX = [ "tl", "bl", "rt", "rb" ].includes(p) ? ((0, vutils_1.isArray)(symbolSize) ? symbolSize[0] : symbolSize) / 2 : -((0,
|
|
115
|
+
vutils_1.isArray)(symbolSize) ? symbolSize[0] : symbolSize) / 2, offsetY = [ "tl", "tr", "lb", "rb" ].includes(p) ? -((0,
|
|
115
116
|
vutils_1.isArray)(symbolSize) ? symbolSize[1] : symbolSize) / 2 : ((0, vutils_1.isArray)(symbolSize) ? symbolSize[1] : symbolSize) / 2);
|
|
116
117
|
const {angle: angle, offset: offset} = this.getAngleAndOffset(p, popTipWidth, poptipHeight, (0,
|
|
117
118
|
vutils_1.isArray)(spaceSize) ? spaceSize : [ spaceSize, spaceSize - lineWidth ], symbolType);
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
let bgSymbol, anchorPoint = {
|
|
120
|
+
x: 0,
|
|
121
|
+
y: 0
|
|
122
|
+
};
|
|
123
|
+
if ("bounds" === poptipAnchor && positionBounds && (anchorPoint = this.calculateAnchorPoint(p, positionBounds)),
|
|
124
|
+
(0, vutils_1.isBoolean)(bgVisible)) {
|
|
125
|
+
let bgRect;
|
|
126
|
+
bgSymbol = group.createOrUpdateChild("poptip-symbol-panel", Object.assign(Object.assign({}, backgroundStyle), {
|
|
120
127
|
visible: bgVisible && (contentVisible || titleVisible),
|
|
121
128
|
x: offsetX,
|
|
122
129
|
y: offsetY,
|
|
@@ -129,9 +136,7 @@ class PopTip extends base_1.AbstractComponent {
|
|
|
129
136
|
dy: offset[1] - (null !== (_j = backgroundStyle.space) && void 0 !== _j ? _j : 0),
|
|
130
137
|
size: symbolSize,
|
|
131
138
|
zIndex: 9
|
|
132
|
-
}), "symbol")
|
|
133
|
-
let bgRect;
|
|
134
|
-
(0, vutils_1.isEmpty)(null == state ? void 0 : state.panel) || (bgSymbol.states = state.panel),
|
|
139
|
+
}), "symbol"), (0, vutils_1.isEmpty)(null == state ? void 0 : state.panel) || (bgSymbol.states = state.panel),
|
|
135
140
|
bgRect = panel.panelSymbolType ? group.createOrUpdateChild("poptip-rect-panel", Object.assign(Object.assign({}, backgroundStyle), {
|
|
136
141
|
visible: bgVisible && (contentVisible || titleVisible),
|
|
137
142
|
x: 0,
|
|
@@ -149,8 +154,8 @@ class PopTip extends base_1.AbstractComponent {
|
|
|
149
154
|
}), "rect"), (0, vutils_1.isEmpty)(null == state ? void 0 : state.panel) || (bgRect.states = state.panel);
|
|
150
155
|
}
|
|
151
156
|
if (group.setAttributes({
|
|
152
|
-
x: -offset[0] + dx,
|
|
153
|
-
y: -offset[1] + dy,
|
|
157
|
+
x: -offset[0] + dx + anchorPoint.x,
|
|
158
|
+
y: -offset[1] + dy + anchorPoint.y,
|
|
154
159
|
anchor: [ offsetX, offsetY ]
|
|
155
160
|
}), logoSymbol) {
|
|
156
161
|
const {size: size = 12} = logoSymbol, sizeArray = (0, vutils_1.isArray)(size) ? size : [ size, size ];
|
|
@@ -175,18 +180,82 @@ class PopTip extends base_1.AbstractComponent {
|
|
|
175
180
|
zIndex: 10
|
|
176
181
|
}), "text");
|
|
177
182
|
}
|
|
178
|
-
if (!
|
|
183
|
+
if (!range) break;
|
|
179
184
|
{
|
|
180
185
|
_tBounds.setValue(0, 0, popTipWidth, poptipHeight).transformWithMatrix(group.globalTransMatrix);
|
|
181
186
|
const b = _tBounds, stageBounds = (new vutils_1.Bounds).setValue(0, 0, range[0], range[1]);
|
|
182
|
-
if (
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
187
|
+
if (layout) {
|
|
188
|
+
if ((0, vutils_1.rectInsideAnotherRect)(b, stageBounds, !1)) break;
|
|
189
|
+
{
|
|
190
|
+
const bbox = (0, vutils_1.getRectIntersect)(b, stageBounds, !1), size = (bbox.x2 - bbox.x1) * (bbox.y2 - bbox.y1);
|
|
191
|
+
size > maxBBoxSize && (maxBBoxSize = size, maxBBoxI = i);
|
|
192
|
+
}
|
|
186
193
|
}
|
|
194
|
+
if ([ "top", "bottom", "left", "right" ].includes(p)) {
|
|
195
|
+
const isVerticalPosition = "top" === p || "bottom" === p, isHorizontalPosition = "left" === p || "right" === p;
|
|
196
|
+
let mainDirectionOverlap = !1;
|
|
197
|
+
if (isVerticalPosition ? mainDirectionOverlap = "top" === p && b.y1 < 0 || "bottom" === p && b.y2 > stageBounds.y2 : isHorizontalPosition && (mainDirectionOverlap = "left" === p && b.x1 < 0 || "right" === p && b.x2 > stageBounds.x2),
|
|
198
|
+
!mainDirectionOverlap) {
|
|
199
|
+
let secondaryOffset = 0;
|
|
200
|
+
const szNumber = ((0, vutils_1.isArray)(symbolSize) ? symbolSize[1] : symbolSize) / 2;
|
|
201
|
+
isVerticalPosition ? (b.x1 < 0 ? secondaryOffset = -b.x1 : b.x2 > stageBounds.x2 && (secondaryOffset = stageBounds.x2 - b.x2),
|
|
202
|
+
group.setAttribute("x", group.attribute.x + secondaryOffset), bgSymbol.setAttribute("dx", (0,
|
|
203
|
+
vutils_1.min)((0, vutils_1.max)(bgSymbol.attribute.dx - secondaryOffset, szNumber), b.width() - szNumber))) : isHorizontalPosition && (b.y1 < 0 ? secondaryOffset = -b.y1 : b.y2 > stageBounds.y2 && (secondaryOffset = stageBounds.y2 - b.y2),
|
|
204
|
+
group.setAttribute("y", group.attribute.y + secondaryOffset), bgSymbol.setAttribute("dy", (0,
|
|
205
|
+
vutils_1.min)((0, vutils_1.max)(bgSymbol.attribute.dy - secondaryOffset, szNumber), b.height() - szNumber)));
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (!layout) break;
|
|
187
210
|
}
|
|
188
211
|
}
|
|
189
212
|
}
|
|
213
|
+
calculateAnchorPoint(position, positionBounds) {
|
|
214
|
+
if (!positionBounds) return {
|
|
215
|
+
x: 0,
|
|
216
|
+
y: 0
|
|
217
|
+
};
|
|
218
|
+
const {x: x, y: y} = this.attribute, {x1: x1, y1: y1, x2: x2, y2: y2} = positionBounds, width = x2 - x1, height = y2 - y1;
|
|
219
|
+
switch (position) {
|
|
220
|
+
case "top":
|
|
221
|
+
case "tl":
|
|
222
|
+
case "tr":
|
|
223
|
+
return {
|
|
224
|
+
x: x1 + width / 2 - x,
|
|
225
|
+
y: y1 - y
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
case "bottom":
|
|
229
|
+
case "bl":
|
|
230
|
+
case "br":
|
|
231
|
+
return {
|
|
232
|
+
x: x1 + width / 2 - x,
|
|
233
|
+
y: y2 - y
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
case "left":
|
|
237
|
+
case "lt":
|
|
238
|
+
case "lb":
|
|
239
|
+
return {
|
|
240
|
+
x: x1 - x,
|
|
241
|
+
y: y1 + height / 2 - y
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
case "right":
|
|
245
|
+
case "rt":
|
|
246
|
+
case "rb":
|
|
247
|
+
return {
|
|
248
|
+
x: x2 - x,
|
|
249
|
+
y: y1 + height / 2 - y
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
default:
|
|
253
|
+
return {
|
|
254
|
+
x: 0,
|
|
255
|
+
y: 0
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
}
|
|
190
259
|
getAngleAndOffset(position, width, height, size, symbolType) {
|
|
191
260
|
const sizeH = "arrow2Left" === symbolType ? size[1] / 2 : size[1];
|
|
192
261
|
switch (position) {
|
|
@@ -263,42 +332,6 @@ class PopTip extends base_1.AbstractComponent {
|
|
|
263
332
|
};
|
|
264
333
|
}
|
|
265
334
|
}
|
|
266
|
-
appearAnimate(animateConfig) {
|
|
267
|
-
const {duration: duration = 1e3, easing: easing = "quadOut"} = animateConfig;
|
|
268
|
-
if (this.setAttributes({
|
|
269
|
-
scaleX: 0,
|
|
270
|
-
scaleY: 0
|
|
271
|
-
}), this.animate().to({
|
|
272
|
-
scaleX: 1,
|
|
273
|
-
scaleY: 1
|
|
274
|
-
}, duration / 3 * 2, easing), this.titleShape && this.titleShape.animate().play(new vrender_animate_1.InputText({
|
|
275
|
-
text: ""
|
|
276
|
-
}, {
|
|
277
|
-
text: this.titleShape.attribute.text
|
|
278
|
-
}, duration, easing)), this.contentShape && this.contentShape.animate().play(new vrender_animate_1.InputText({
|
|
279
|
-
text: ""
|
|
280
|
-
}, {
|
|
281
|
-
text: this.contentShape.attribute.text
|
|
282
|
-
}, duration, easing)), animateConfig.wave) {
|
|
283
|
-
const dur = duration / 6;
|
|
284
|
-
this.group.animate().to({
|
|
285
|
-
angle: animateConfig.wave
|
|
286
|
-
}, dur, easing).to({
|
|
287
|
-
angle: -animateConfig.wave
|
|
288
|
-
}, 2 * dur, easing).to({
|
|
289
|
-
angle: animateConfig.wave
|
|
290
|
-
}, 2 * dur, easing).to({
|
|
291
|
-
angle: 0
|
|
292
|
-
}, dur, easing);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
disappearAnimate(animateConfig) {
|
|
296
|
-
const {duration: duration = 1e3, easing: easing = "quadOut"} = animateConfig;
|
|
297
|
-
this.animate().to({
|
|
298
|
-
scaleX: 0,
|
|
299
|
-
scaleY: 0
|
|
300
|
-
}, duration, easing);
|
|
301
|
-
}
|
|
302
335
|
}
|
|
303
336
|
|
|
304
337
|
exports.PopTip = PopTip, PopTip.defaultAttributes = {
|