@visactor/vrender-components 0.12.0 → 0.12.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/axis/base.d.ts +5 -5
- package/cjs/axis/base.js +1 -2
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/circle.d.ts +5 -5
- package/cjs/axis/circle.js +2 -2
- package/cjs/axis/circle.js.map +1 -1
- package/cjs/axis/line.d.ts +5 -6
- package/cjs/axis/line.js +3 -2
- package/cjs/axis/line.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/label/base.d.ts +6 -5
- package/cjs/label/base.js +5 -18
- package/cjs/label/base.js.map +1 -1
- package/cjs/label/type.d.ts +0 -3
- package/cjs/label/type.js.map +1 -1
- package/cjs/legend/discrete/discrete.d.ts +1 -1
- package/cjs/legend/discrete/discrete.js +54 -41
- package/cjs/legend/discrete/discrete.js.map +1 -1
- package/cjs/pager/pager.d.ts +2 -2
- package/cjs/pager/pager.js +4 -2
- package/cjs/pager/pager.js.map +1 -1
- package/cjs/util/matrix.d.ts +5 -2
- package/cjs/util/matrix.js +24 -11
- package/cjs/util/matrix.js.map +1 -1
- package/dist/index.js +58 -167
- package/dist/index.min.js +1 -1
- package/es/axis/base.d.ts +5 -5
- package/es/axis/base.js +1 -2
- package/es/axis/base.js.map +1 -1
- package/es/axis/circle.d.ts +5 -5
- package/es/axis/circle.js +2 -3
- package/es/axis/circle.js.map +1 -1
- package/es/axis/line.d.ts +5 -6
- package/es/axis/line.js +3 -3
- package/es/axis/line.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/label/base.d.ts +6 -5
- package/es/label/base.js +5 -18
- package/es/label/base.js.map +1 -1
- package/es/label/type.d.ts +0 -3
- package/es/label/type.js.map +1 -1
- package/es/legend/discrete/discrete.d.ts +1 -1
- package/es/legend/discrete/discrete.js +54 -41
- package/es/legend/discrete/discrete.js.map +1 -1
- package/es/pager/pager.d.ts +2 -2
- package/es/pager/pager.js +4 -2
- package/es/pager/pager.js.map +1 -1
- package/es/util/matrix.d.ts +5 -2
- package/es/util/matrix.js +19 -3
- package/es/util/matrix.js.map +1 -1
- package/package.json +5 -6
package/cjs/pager/pager.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ISymbol, IText } from '@visactor/vrender';
|
|
1
|
+
import type { ISymbol, IText } from '@visactor/vrender';
|
|
2
2
|
import { AbstractComponent } from '../core/base';
|
|
3
|
-
import { PagerAttributes } from './type';
|
|
3
|
+
import type { PagerAttributes } from './type';
|
|
4
4
|
export declare class Pager extends AbstractComponent<Required<PagerAttributes>> {
|
|
5
5
|
name: string;
|
|
6
6
|
private _current;
|
package/cjs/pager/pager.js
CHANGED
|
@@ -73,7 +73,8 @@ class Pager extends base_1.AbstractComponent {
|
|
|
73
73
|
let {preShape: preShape, nextShape: nextShape} = handler;
|
|
74
74
|
preShape || (preShape = isHorizontal ? "triangleLeft" : "triangleUp"), nextShape || (nextShape = isHorizontal ? "triangleRight" : "triangleDown");
|
|
75
75
|
const preHandler = (0, vrender_1.createSymbol)(Object.assign(Object.assign({
|
|
76
|
-
strokeBoundsBuffer: 0
|
|
76
|
+
strokeBoundsBuffer: 0,
|
|
77
|
+
pickMode: "imprecise"
|
|
77
78
|
}, handlerStyle), {
|
|
78
79
|
x: 0,
|
|
79
80
|
y: 0,
|
|
@@ -96,7 +97,8 @@ class Pager extends base_1.AbstractComponent {
|
|
|
96
97
|
}, textStyle));
|
|
97
98
|
this.text = text, container.add(text);
|
|
98
99
|
const nextHandler = (0, vrender_1.createSymbol)(Object.assign(Object.assign({
|
|
99
|
-
strokeBoundsBuffer: 0
|
|
100
|
+
strokeBoundsBuffer: 0,
|
|
101
|
+
pickMode: "imprecise"
|
|
100
102
|
}, handlerStyle), {
|
|
101
103
|
x: isHorizontal ? handlerSizeX + 2 * handlerSpace + maxTextWidth : 0,
|
|
102
104
|
y: isHorizontal ? 0 : handlerSizeY + 2 * handlerSpace + maxTextHeight,
|
package/cjs/pager/pager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["pager/pager.ts"],"names":[],"mappings":"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","file":"pager.js","sourcesContent":["/**\n * @description 翻页器\n */\nimport {\n createGroup,\n createSymbol,\n createText,\n ISymbol,\n IText,\n FederatedPointerEvent,\n CustomEvent\n} from '@visactor/vrender';\nimport { merge, normalizePadding, get, isNumber } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport { PagerAttributes } from './type';\n\nconst DEFAULT_HANDLER_STYLE: PagerAttributes['handler'] = {\n space: 8,\n style: {\n fill: 'rgb(47, 69, 84)',\n cursor: 'pointer',\n size: 15\n },\n state: {\n disable: {\n fill: 'rgb(170, 170, 170)',\n cursor: 'not-allowed'\n },\n hover: {}\n }\n};\n\nexport class Pager extends AbstractComponent<Required<PagerAttributes>> {\n name = 'pager';\n\n private _current = 1;\n getCurrent() {\n return this._current;\n }\n\n private _total!: number;\n preHandler!: ISymbol | null;\n nextHandler!: ISymbol | null;\n text!: IText | null;\n\n static defaultAttributes: Partial<PagerAttributes> = {\n handler: DEFAULT_HANDLER_STYLE,\n textStyle: {\n fill: 'rgb(51, 51, 51)',\n fontSize: 12\n }\n };\n\n constructor(attributes: PagerAttributes) {\n super(merge({}, Pager.defaultAttributes, attributes));\n }\n\n protected render() {\n this._reset();\n const {\n layout = 'horizontal',\n handler = DEFAULT_HANDLER_STYLE,\n total,\n defaultCurrent = 1,\n textStyle,\n padding = 0\n } = this.attribute;\n\n this._current = defaultCurrent;\n const parsedPadding = normalizePadding(padding);\n const isHorizontal = layout === 'horizontal';\n\n const container = createGroup({\n x: 0,\n y: 0\n });\n\n const handlerStyle = handler.style || {};\n const handlerSize = handlerStyle.size || 15;\n const handlerSpace = handler.space ?? 8;\n const handlerState = handler.state || {};\n\n let { preShape, nextShape } = handler;\n if (!preShape) {\n preShape = isHorizontal ? 'triangleLeft' : 'triangleUp';\n }\n if (!nextShape) {\n nextShape = isHorizontal ? 'triangleRight' : 'triangleDown';\n }\n\n const preHandler = createSymbol({\n strokeBoundsBuffer: 0,\n ...handlerStyle,\n x: 0,\n y: 0,\n symbolType: preShape,\n size: handlerSize\n });\n preHandler.states = handlerState;\n preHandler.name = 'preHandler';\n this.preHandler = preHandler;\n container.add(preHandler);\n\n // 获取文本的最大长度,如果不固定的话随着文本的变化整体会发生抖动\n const { width: maxTextWidth, height: maxTextHeight } = measureTextSize(`${total}/${total}`, {\n textAlign: 'center',\n textBaseline: 'middle',\n ...textStyle\n });\n\n const handlerSizeX = isNumber(handlerSize) ? handlerSize : handlerSize[0];\n const handlerSizeY = isNumber(handlerSize) ? handlerSize : handlerSize[1];\n\n const text = createText({\n x: isHorizontal ? handlerSizeX / 2 + handlerSpace + maxTextWidth / 2 : 0,\n y: isHorizontal ? 0 : handlerSizeY / 2 + handlerSpace + maxTextHeight / 2,\n text: `${defaultCurrent}/${total}`,\n textAlign: 'center',\n textBaseline: 'middle',\n lineHeight: textStyle?.fontSize,\n ...textStyle\n });\n this.text = text;\n container.add(text);\n\n const nextHandler = createSymbol({\n strokeBoundsBuffer: 0,\n ...handlerStyle,\n x: isHorizontal ? handlerSizeX + handlerSpace * 2 + maxTextWidth : 0,\n y: isHorizontal ? 0 : handlerSizeY + handlerSpace * 2 + maxTextHeight,\n symbolType: nextShape,\n size: handlerSize\n });\n nextHandler.name = 'nextHandler';\n nextHandler.states = handlerState;\n this.nextHandler = nextHandler;\n\n container.add(nextHandler);\n\n if (this._total === 1) {\n preHandler.addState('disable');\n nextHandler.addState('disable');\n } else if (this._current === 1) {\n preHandler.addState('disable');\n } else if (this._current === total) {\n nextHandler.addState('disable');\n }\n\n const containerBounds = container.AABBBounds;\n const width = containerBounds.width();\n const height = containerBounds.height();\n\n container.translateTo(0 - containerBounds.x1 + parsedPadding[3], 0 - containerBounds.y1 + parsedPadding[0]);\n this.add(container);\n\n this.attribute.width = width + parsedPadding[1] + parsedPadding[3];\n this.attribute.height = height + parsedPadding[0] + parsedPadding[2];\n\n this._bindEvents();\n }\n\n private _bindEvents(): void {\n if (this.preHandler) {\n this.preHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n\n if (this.nextHandler) {\n this.nextHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n }\n\n private _onHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (!target.hasState('disable')) {\n target.addState('hover');\n }\n };\n\n private _onUnHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n target.removeState('hover');\n };\n\n private _onClick = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (target.name === 'preHandler') {\n if (this._current === 1) {\n return;\n }\n this._current -= 1;\n if (this._current === 1) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n const changeEvent = new CustomEvent('toPrev', {\n current: this._current,\n total: this._total,\n direction: 'pre'\n });\n // FIXME: 需要在 vrender 的事件系统支持\n // @ts-ignore\n changeEvent.manager = this.stage?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n\n if (target.name === 'nextHandler') {\n if (this._current === this._total) {\n return;\n }\n this._current += 1;\n\n if (this._current === this._total) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n const changeEvent = new CustomEvent('toNext', {\n current: this._current,\n total: this._total,\n direction: 'next'\n });\n // FIXME: 需要在 vrender 的事件系统支持\n // @ts-ignore\n changeEvent.manager = this.stage?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n\n if (this._current > 1) {\n (this.preHandler as ISymbol).removeState('disable');\n }\n if (this._current < this._total) {\n (this.nextHandler as ISymbol).removeState('disable');\n }\n\n (this.text as IText).setAttribute('text', `${this._current}/${this._total}`);\n };\n\n private _reset() {\n this.removeAllChild();\n this._current = 1;\n this._total = this.attribute.total as number;\n this.preHandler = this.nextHandler = this.text = null;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["pager/pager.ts"],"names":[],"mappings":"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","file":"pager.js","sourcesContent":["/**\n * @description 翻页器\n */\nimport type { ISymbol, IText, FederatedPointerEvent } from '@visactor/vrender';\n// eslint-disable-next-line no-duplicate-imports\nimport { createGroup, createSymbol, createText, CustomEvent } from '@visactor/vrender';\nimport { merge, normalizePadding, isNumber } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { PagerAttributes } from './type';\n\nconst DEFAULT_HANDLER_STYLE: PagerAttributes['handler'] = {\n space: 8,\n style: {\n fill: 'rgb(47, 69, 84)',\n cursor: 'pointer',\n size: 15\n },\n state: {\n disable: {\n fill: 'rgb(170, 170, 170)',\n cursor: 'not-allowed'\n },\n hover: {}\n }\n};\n\nexport class Pager extends AbstractComponent<Required<PagerAttributes>> {\n name = 'pager';\n\n private _current = 1;\n getCurrent() {\n return this._current;\n }\n\n private _total!: number;\n preHandler!: ISymbol | null;\n nextHandler!: ISymbol | null;\n text!: IText | null;\n\n static defaultAttributes: Partial<PagerAttributes> = {\n handler: DEFAULT_HANDLER_STYLE,\n textStyle: {\n fill: 'rgb(51, 51, 51)',\n fontSize: 12\n }\n };\n\n constructor(attributes: PagerAttributes) {\n super(merge({}, Pager.defaultAttributes, attributes));\n }\n\n protected render() {\n this._reset();\n const {\n layout = 'horizontal',\n handler = DEFAULT_HANDLER_STYLE,\n total,\n defaultCurrent = 1,\n textStyle,\n padding = 0\n } = this.attribute;\n\n this._current = defaultCurrent;\n const parsedPadding = normalizePadding(padding);\n const isHorizontal = layout === 'horizontal';\n\n const container = createGroup({\n x: 0,\n y: 0\n });\n\n const handlerStyle = handler.style || {};\n const handlerSize = handlerStyle.size || 15;\n const handlerSpace = handler.space ?? 8;\n const handlerState = handler.state || {};\n\n let { preShape, nextShape } = handler;\n if (!preShape) {\n preShape = isHorizontal ? 'triangleLeft' : 'triangleUp';\n }\n if (!nextShape) {\n nextShape = isHorizontal ? 'triangleRight' : 'triangleDown';\n }\n\n const preHandler = createSymbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: 0,\n y: 0,\n symbolType: preShape,\n size: handlerSize\n });\n preHandler.states = handlerState;\n preHandler.name = 'preHandler';\n this.preHandler = preHandler;\n container.add(preHandler);\n\n // 获取文本的最大长度,如果不固定的话随着文本的变化整体会发生抖动\n const { width: maxTextWidth, height: maxTextHeight } = measureTextSize(`${total}/${total}`, {\n textAlign: 'center',\n textBaseline: 'middle',\n ...textStyle\n });\n\n const handlerSizeX = isNumber(handlerSize) ? handlerSize : handlerSize[0];\n const handlerSizeY = isNumber(handlerSize) ? handlerSize : handlerSize[1];\n\n const text = createText({\n x: isHorizontal ? handlerSizeX / 2 + handlerSpace + maxTextWidth / 2 : 0,\n y: isHorizontal ? 0 : handlerSizeY / 2 + handlerSpace + maxTextHeight / 2,\n text: `${defaultCurrent}/${total}`,\n textAlign: 'center',\n textBaseline: 'middle',\n lineHeight: textStyle?.fontSize,\n ...textStyle\n });\n this.text = text;\n container.add(text);\n\n const nextHandler = createSymbol({\n strokeBoundsBuffer: 0,\n pickMode: 'imprecise',\n ...handlerStyle,\n x: isHorizontal ? handlerSizeX + handlerSpace * 2 + maxTextWidth : 0,\n y: isHorizontal ? 0 : handlerSizeY + handlerSpace * 2 + maxTextHeight,\n symbolType: nextShape,\n size: handlerSize\n });\n nextHandler.name = 'nextHandler';\n nextHandler.states = handlerState;\n this.nextHandler = nextHandler;\n\n container.add(nextHandler);\n\n if (this._total === 1) {\n preHandler.addState('disable');\n nextHandler.addState('disable');\n } else if (this._current === 1) {\n preHandler.addState('disable');\n } else if (this._current === total) {\n nextHandler.addState('disable');\n }\n\n const containerBounds = container.AABBBounds;\n const width = containerBounds.width();\n const height = containerBounds.height();\n\n container.translateTo(0 - containerBounds.x1 + parsedPadding[3], 0 - containerBounds.y1 + parsedPadding[0]);\n this.add(container);\n\n this.attribute.width = width + parsedPadding[1] + parsedPadding[3];\n this.attribute.height = height + parsedPadding[0] + parsedPadding[2];\n\n this._bindEvents();\n }\n\n private _bindEvents(): void {\n if (this.preHandler) {\n this.preHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.preHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n\n if (this.nextHandler) {\n this.nextHandler.addEventListener('pointerenter', this._onHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerleave', this._onUnHover as EventListenerOrEventListenerObject);\n this.nextHandler.addEventListener('pointerdown', this._onClick as EventListenerOrEventListenerObject);\n }\n }\n\n private _onHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (!target.hasState('disable')) {\n target.addState('hover');\n }\n };\n\n private _onUnHover = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n target.removeState('hover');\n };\n\n private _onClick = (e: FederatedPointerEvent) => {\n const target = e.target as unknown as ISymbol;\n if (target.name === 'preHandler') {\n if (this._current === 1) {\n return;\n }\n this._current -= 1;\n if (this._current === 1) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n const changeEvent = new CustomEvent('toPrev', {\n current: this._current,\n total: this._total,\n direction: 'pre'\n });\n // FIXME: 需要在 vrender 的事件系统支持\n // @ts-ignore\n changeEvent.manager = this.stage?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n\n if (target.name === 'nextHandler') {\n if (this._current === this._total) {\n return;\n }\n this._current += 1;\n\n if (this._current === this._total) {\n target.addState('disable');\n } else {\n target.removeState('disable');\n }\n\n const changeEvent = new CustomEvent('toNext', {\n current: this._current,\n total: this._total,\n direction: 'next'\n });\n // FIXME: 需要在 vrender 的事件系统支持\n // @ts-ignore\n changeEvent.manager = this.stage?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n\n if (this._current > 1) {\n (this.preHandler as ISymbol).removeState('disable');\n }\n if (this._current < this._total) {\n (this.nextHandler as ISymbol).removeState('disable');\n }\n\n (this.text as IText).setAttribute('text', `${this._current}/${this._total}`);\n };\n\n private _reset() {\n this.removeAllChild();\n this._current = 1;\n this._total = this.attribute.total as number;\n this.preHandler = this.nextHandler = this.text = null;\n }\n}\n"]}
|
package/cjs/util/matrix.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
export type Vector2 = [number, number];
|
|
2
|
+
export declare function scale(vector: Vector2, scale: number): number[];
|
|
3
|
+
export declare function length(vector: Vector2): number;
|
|
4
|
+
export declare function normalize(vector: Vector2): number[];
|
|
5
|
+
export declare function angle(vector1: Vector2, vector2: Vector2): number;
|
|
3
6
|
export declare function direction(v1: number[], v2: number[]): number;
|
|
4
7
|
export declare function angleTo(v1: [number, number], v2: [number, number], direct: boolean): number;
|
package/cjs/util/matrix.js
CHANGED
|
@@ -1,24 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
3
|
+
function scale(vector, scale) {
|
|
4
|
+
return [ vector[0] * scale, vector[1] * scale ];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
function length(vector) {
|
|
8
|
+
const [x, y] = vector;
|
|
9
|
+
return Math.sqrt(x * x + y * y);
|
|
10
|
+
}
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
function normalize(vector) {
|
|
13
|
+
const [x, y] = vector;
|
|
14
|
+
let len = x * x + y * y;
|
|
15
|
+
return len > 0 && (len = 1 / Math.sqrt(len)), [ vector[0] * len, vector[1] * len ];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function angle(vector1, vector2) {
|
|
19
|
+
const [x1, y1] = vector1, [x2, y2] = vector2, mag = Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2)), cosine = mag && (x1 * x2 + y1 * y2) / mag;
|
|
20
|
+
return Math.acos(Math.min(Math.max(cosine, -1), 1));
|
|
21
|
+
}
|
|
8
22
|
|
|
9
23
|
function direction(v1, v2) {
|
|
10
24
|
return v1[0] * v2[1] - v2[0] * v1[1];
|
|
11
25
|
}
|
|
12
26
|
|
|
13
27
|
function angleTo(v1, v2, direct) {
|
|
14
|
-
const ang =
|
|
28
|
+
const ang = angle(v1, v2), angleLargeThanPI = direction(v1, v2) >= 0;
|
|
15
29
|
return direct ? angleLargeThanPI ? 2 * Math.PI - ang : ang : angleLargeThanPI ? ang : 2 * Math.PI - ang;
|
|
16
30
|
}
|
|
17
31
|
|
|
18
|
-
Object.defineProperty(exports, "
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}), exports.direction = direction, exports.angleTo = angleTo;
|
|
32
|
+
Object.defineProperty(exports, "__esModule", {
|
|
33
|
+
value: !0
|
|
34
|
+
}), exports.angleTo = exports.direction = exports.angle = exports.normalize = exports.length = exports.scale = void 0,
|
|
35
|
+
exports.scale = scale, exports.length = length, exports.normalize = normalize, exports.angle = angle,
|
|
36
|
+
exports.direction = direction, exports.angleTo = angleTo;
|
|
24
37
|
//# sourceMappingURL=matrix.js.map
|
package/cjs/util/matrix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["util/matrix.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["util/matrix.ts"],"names":[],"mappings":";;;AAKA,SAAgB,KAAK,CAAC,MAAe,EAAE,KAAa;IAClD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,sBAEC;AAKD,SAAgB,MAAM,CAAC,MAAe;IACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC;AAHD,wBAGC;AAKD,SAAgB,SAAS,CAAC,MAAe;IACvC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IACtB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IACD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC5C,CAAC;AAPD,8BAOC;AAKD,SAAgB,KAAK,CAAC,OAAgB,EAAE,OAAgB;IACtD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAND,sBAMC;AAQD,SAAgB,SAAS,CAAC,EAAY,EAAE,EAAY;IAClD,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAFD,8BAEC;AAQD,SAAgB,OAAO,CAAC,EAAoB,EAAE,EAAoB,EAAE,MAAe;IACjF,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,MAAM,EAAE;QACV,IAAI,gBAAgB,EAAE;YACpB,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;SAC1B;QACD,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,gBAAgB,EAAE;QACpB,OAAO,GAAG,CAAC;KACZ;IACD,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3B,CAAC;AAdD,0BAcC","file":"matrix.js","sourcesContent":["export type Vector2 = [number, number];\n\n/**\n * Scales a vec2 by a scalar number\n */\nexport function scale(vector: Vector2, scale: number) {\n return [vector[0] * scale, vector[1] * scale];\n}\n\n/**\n * Calculates the length of a vec2\n */\nexport function length(vector: Vector2) {\n const [x, y] = vector;\n return Math.sqrt(x * x + y * y);\n}\n\n/**\n * Normalize a vec2\n */\nexport function normalize(vector: Vector2) {\n const [x, y] = vector;\n let len = x * x + y * y;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n return [vector[0] * len, vector[1] * len];\n}\n\n/**\n * Get the angle between two 2D vectors\n */\nexport function angle(vector1: Vector2, vector2: Vector2) {\n const [x1, y1] = vector1;\n const [x2, y2] = vector2;\n const mag = Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2));\n const cosine = mag && (x1 * x2 + y1 * y2) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n\n/**\n * 向量 v1 到 向量 v2 夹角的方向\n * @param {Array} v1 向量\n * @param {Array} v2 向量\n * @return {Boolean} >= 0 顺时针 < 0 逆时针\n */\nexport function direction(v1: number[], v2: number[]): number {\n return v1[0] * v2[1] - v2[0] * v1[1];\n}\n\n/**\n * 二维向量 v1 到 v2 的夹角\n * @param v1\n * @param v2\n * @param direct\n */\nexport function angleTo(v1: [number, number], v2: [number, number], direct: boolean): number {\n const ang = angle(v1, v2);\n const angleLargeThanPI = direction(v1, v2) >= 0;\n if (direct) {\n if (angleLargeThanPI) {\n return Math.PI * 2 - ang;\n }\n return ang;\n }\n\n if (angleLargeThanPI) {\n return ang;\n }\n return Math.PI * 2 - ang;\n}\n"]}
|
package/dist/index.js
CHANGED
|
@@ -436,143 +436,28 @@
|
|
|
436
436
|
return '#' + vutils.ColorUtil.rgbToHex(r, g, b);
|
|
437
437
|
}
|
|
438
438
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
* @module glMatrix
|
|
442
|
-
*/
|
|
443
|
-
var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;
|
|
444
|
-
if (!Math.hypot) Math.hypot = function () {
|
|
445
|
-
var y = 0,
|
|
446
|
-
i = arguments.length;
|
|
447
|
-
while (i--) {
|
|
448
|
-
y += arguments[i] * arguments[i];
|
|
449
|
-
}
|
|
450
|
-
return Math.sqrt(y);
|
|
451
|
-
};
|
|
452
|
-
|
|
453
|
-
/**
|
|
454
|
-
* 2 Dimensional Vector
|
|
455
|
-
* @module vec2
|
|
456
|
-
*/
|
|
457
|
-
|
|
458
|
-
/**
|
|
459
|
-
* Creates a new, empty vec2
|
|
460
|
-
*
|
|
461
|
-
* @returns {vec2} a new 2D vector
|
|
462
|
-
*/
|
|
463
|
-
|
|
464
|
-
function create() {
|
|
465
|
-
var out = new ARRAY_TYPE(2);
|
|
466
|
-
if (ARRAY_TYPE != Float32Array) {
|
|
467
|
-
out[0] = 0;
|
|
468
|
-
out[1] = 0;
|
|
469
|
-
}
|
|
470
|
-
return out;
|
|
439
|
+
function scale(vector, scale) {
|
|
440
|
+
return [vector[0] * scale, vector[1] * scale];
|
|
471
441
|
}
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
* @param {vec2} out the receiving vector
|
|
476
|
-
* @param {ReadonlyVec2} a the vector to scale
|
|
477
|
-
* @param {Number} b amount to scale the vector by
|
|
478
|
-
* @returns {vec2} out
|
|
479
|
-
*/
|
|
480
|
-
|
|
481
|
-
function scale(out, a, b) {
|
|
482
|
-
out[0] = a[0] * b;
|
|
483
|
-
out[1] = a[1] * b;
|
|
484
|
-
return out;
|
|
485
|
-
}
|
|
486
|
-
/**
|
|
487
|
-
* Calculates the length of a vec2
|
|
488
|
-
*
|
|
489
|
-
* @param {ReadonlyVec2} a vector to calculate length of
|
|
490
|
-
* @returns {Number} length of a
|
|
491
|
-
*/
|
|
492
|
-
|
|
493
|
-
function length(a) {
|
|
494
|
-
var x = a[0],
|
|
495
|
-
y = a[1];
|
|
496
|
-
return Math.hypot(x, y);
|
|
442
|
+
function length(vector) {
|
|
443
|
+
const [x, y] = vector;
|
|
444
|
+
return Math.sqrt(x * x + y * y);
|
|
497
445
|
}
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
function normalize(out, a) {
|
|
507
|
-
var x = a[0],
|
|
508
|
-
y = a[1];
|
|
509
|
-
var len = x * x + y * y;
|
|
510
|
-
if (len > 0) {
|
|
511
|
-
//TODO: evaluate use of glm_invsqrt here?
|
|
512
|
-
len = 1 / Math.sqrt(len);
|
|
513
|
-
}
|
|
514
|
-
out[0] = a[0] * len;
|
|
515
|
-
out[1] = a[1] * len;
|
|
516
|
-
return out;
|
|
446
|
+
function normalize(vector) {
|
|
447
|
+
const [x, y] = vector;
|
|
448
|
+
let len = x * x + y * y;
|
|
449
|
+
if (len > 0) {
|
|
450
|
+
len = 1 / Math.sqrt(len);
|
|
451
|
+
}
|
|
452
|
+
return [vector[0] * len, vector[1] * len];
|
|
517
453
|
}
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
function angle(a, b) {
|
|
526
|
-
var x1 = a[0],
|
|
527
|
-
y1 = a[1],
|
|
528
|
-
x2 = b[0],
|
|
529
|
-
y2 = b[1],
|
|
530
|
-
// mag is the product of the magnitudes of a and b
|
|
531
|
-
mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2),
|
|
532
|
-
// mag &&.. short circuits if mag == 0
|
|
533
|
-
cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1
|
|
534
|
-
|
|
535
|
-
return Math.acos(Math.min(Math.max(cosine, -1), 1));
|
|
454
|
+
function angle(vector1, vector2) {
|
|
455
|
+
const [x1, y1] = vector1;
|
|
456
|
+
const [x2, y2] = vector2;
|
|
457
|
+
const mag = Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2));
|
|
458
|
+
const cosine = mag && (x1 * x2 + y1 * y2) / mag;
|
|
459
|
+
return Math.acos(Math.min(Math.max(cosine, -1), 1));
|
|
536
460
|
}
|
|
537
|
-
/**
|
|
538
|
-
* Perform some operation over an array of vec2s.
|
|
539
|
-
*
|
|
540
|
-
* @param {Array} a the array of vectors to iterate over
|
|
541
|
-
* @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed
|
|
542
|
-
* @param {Number} offset Number of elements to skip at the beginning of the array
|
|
543
|
-
* @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array
|
|
544
|
-
* @param {Function} fn Function to call for each vector in the array
|
|
545
|
-
* @param {Object} [arg] additional argument to pass to fn
|
|
546
|
-
* @returns {Array} a
|
|
547
|
-
* @function
|
|
548
|
-
*/
|
|
549
|
-
|
|
550
|
-
(function () {
|
|
551
|
-
var vec = create();
|
|
552
|
-
return function (a, stride, offset, count, fn, arg) {
|
|
553
|
-
var i, l;
|
|
554
|
-
if (!stride) {
|
|
555
|
-
stride = 2;
|
|
556
|
-
}
|
|
557
|
-
if (!offset) {
|
|
558
|
-
offset = 0;
|
|
559
|
-
}
|
|
560
|
-
if (count) {
|
|
561
|
-
l = Math.min(count * stride + offset, a.length);
|
|
562
|
-
} else {
|
|
563
|
-
l = a.length;
|
|
564
|
-
}
|
|
565
|
-
for (i = offset; i < l; i += stride) {
|
|
566
|
-
vec[0] = a[i];
|
|
567
|
-
vec[1] = a[i + 1];
|
|
568
|
-
fn(vec, vec, arg);
|
|
569
|
-
a[i] = vec[0];
|
|
570
|
-
a[i + 1] = vec[1];
|
|
571
|
-
}
|
|
572
|
-
return a;
|
|
573
|
-
};
|
|
574
|
-
})();
|
|
575
|
-
|
|
576
461
|
function direction(v1, v2) {
|
|
577
462
|
return v1[0] * v2[1] - v2[0] * v1[1];
|
|
578
463
|
}
|
|
@@ -1412,15 +1297,12 @@
|
|
|
1412
1297
|
if (canPlace(bmpTool, bitmap, text.AABBBounds, clampForce)) {
|
|
1413
1298
|
if (!checkBounds) {
|
|
1414
1299
|
bitmap.setRange(boundToRange(bmpTool, text.AABBBounds, true));
|
|
1415
|
-
result.push({
|
|
1416
|
-
...text.attribute,
|
|
1417
|
-
_insideGraphic: canPlaceInside(text.AABBBounds, baseMark?.AABBBounds)
|
|
1418
|
-
});
|
|
1300
|
+
result.push({ ...text.attribute });
|
|
1419
1301
|
continue;
|
|
1420
1302
|
}
|
|
1421
1303
|
if (checkBounds && baseMark?.AABBBounds && canPlaceInside(text.AABBBounds, baseMark?.AABBBounds)) {
|
|
1422
1304
|
bitmap.setRange(boundToRange(bmpTool, text.AABBBounds, true));
|
|
1423
|
-
result.push({ ...text.attribute
|
|
1305
|
+
result.push({ ...text.attribute });
|
|
1424
1306
|
continue;
|
|
1425
1307
|
}
|
|
1426
1308
|
}
|
|
@@ -1431,19 +1313,12 @@
|
|
|
1431
1313
|
result.push({
|
|
1432
1314
|
...text.attribute,
|
|
1433
1315
|
x: hasPlace.x,
|
|
1434
|
-
y: hasPlace.y
|
|
1435
|
-
_insideGraphic: canPlaceInside(text.AABBBounds, baseMark?.AABBBounds)
|
|
1316
|
+
y: hasPlace.y
|
|
1436
1317
|
});
|
|
1437
1318
|
break;
|
|
1438
1319
|
}
|
|
1439
1320
|
}
|
|
1440
|
-
!hasPlace &&
|
|
1441
|
-
!hideOnHit &&
|
|
1442
|
-
result.push({
|
|
1443
|
-
...text.attribute,
|
|
1444
|
-
_insideGraphic: canPlaceInside(text.AABBBounds, baseMark?.AABBBounds),
|
|
1445
|
-
_computedBound: text.AABBBounds
|
|
1446
|
-
});
|
|
1321
|
+
!hasPlace && !hideOnHit && result.push({ ...text.attribute });
|
|
1447
1322
|
}
|
|
1448
1323
|
if (vutils.isFunction(this.onAfterLabelOverlap)) {
|
|
1449
1324
|
this.onAfterLabelOverlap(bitmap);
|
|
@@ -1600,12 +1475,7 @@
|
|
|
1600
1475
|
if (!label) {
|
|
1601
1476
|
continue;
|
|
1602
1477
|
}
|
|
1603
|
-
|
|
1604
|
-
if (isInside === undefined) {
|
|
1605
|
-
const text = vrender.createText(label);
|
|
1606
|
-
text.update();
|
|
1607
|
-
isInside = canPlaceInside(text.AABBBounds, this._relationMap.get(label._relatedIndex)?.AABBBounds);
|
|
1608
|
-
}
|
|
1478
|
+
const isInside = canPlaceInside(vrender.createText(label).AABBBounds, this._relationMap.get(label._relatedIndex)?.AABBBounds);
|
|
1609
1479
|
if (label.stroke && label.lineWidth > 0) {
|
|
1610
1480
|
label.fill = labelSmartInvert(label.fill, label.stroke, this.attribute.smartInvert?.textType, this.attribute.smartInvert?.contrastRatiosThreshold, this.attribute.smartInvert?.alternativeColors);
|
|
1611
1481
|
}
|
|
@@ -2540,11 +2410,11 @@
|
|
|
2540
2410
|
container.add(axisTitle);
|
|
2541
2411
|
}
|
|
2542
2412
|
renderGrid(container) {
|
|
2543
|
-
this._renderGridByType('grid', container);
|
|
2544
2413
|
const { visible } = this.attribute.subGrid || {};
|
|
2545
2414
|
if (visible) {
|
|
2546
2415
|
this._renderGridByType('subGrid', container);
|
|
2547
2416
|
}
|
|
2417
|
+
this._renderGridByType('grid', container);
|
|
2548
2418
|
}
|
|
2549
2419
|
getVerticalCoord(point, offset, inside) {
|
|
2550
2420
|
const vector = this.getVerticalVector(offset, inside, point);
|
|
@@ -2788,9 +2658,9 @@
|
|
|
2788
2658
|
getVerticalVector(offset, inside = false) {
|
|
2789
2659
|
const { verticalFactor = 1 } = this.attribute;
|
|
2790
2660
|
const axisVector = this.getRelativeVector();
|
|
2791
|
-
const
|
|
2792
|
-
const verticalVector = [
|
|
2793
|
-
return scale(
|
|
2661
|
+
const normalizedAxisVector = normalize(axisVector);
|
|
2662
|
+
const verticalVector = [normalizedAxisVector[1], normalizedAxisVector[0] * -1];
|
|
2663
|
+
return scale(verticalVector, offset * (inside ? 1 : -1) * verticalFactor);
|
|
2794
2664
|
}
|
|
2795
2665
|
getTitleAttribute() {
|
|
2796
2666
|
const { position = 'middle', space = 4, textStyle = {}, autoRotate = true, shape, background, state, ...restAttrs } = this.attribute.title;
|
|
@@ -3087,8 +2957,7 @@
|
|
|
3087
2957
|
const { inside: axisInside = false } = this.attribute;
|
|
3088
2958
|
const { center } = this.attribute;
|
|
3089
2959
|
const vector = [point.x - center.x, point.y - center.y];
|
|
3090
|
-
scale(vector,
|
|
3091
|
-
return vector;
|
|
2960
|
+
return scale(vector, ((inside ? -1 : 1) * (axisInside ? -1 : 1) * offset) / length(vector));
|
|
3092
2961
|
}
|
|
3093
2962
|
getRelativeVector(point) {
|
|
3094
2963
|
const { center } = this.attribute;
|
|
@@ -4945,6 +4814,7 @@
|
|
|
4945
4814
|
}
|
|
4946
4815
|
const preHandler = vrender.createSymbol({
|
|
4947
4816
|
strokeBoundsBuffer: 0,
|
|
4817
|
+
pickMode: 'imprecise',
|
|
4948
4818
|
...handlerStyle,
|
|
4949
4819
|
x: 0,
|
|
4950
4820
|
y: 0,
|
|
@@ -4975,6 +4845,7 @@
|
|
|
4975
4845
|
container.add(text);
|
|
4976
4846
|
const nextHandler = vrender.createSymbol({
|
|
4977
4847
|
strokeBoundsBuffer: 0,
|
|
4848
|
+
pickMode: 'imprecise',
|
|
4978
4849
|
...handlerStyle,
|
|
4979
4850
|
x: isHorizontal ? handlerSizeX + handlerSpace * 2 + maxTextWidth : 0,
|
|
4980
4851
|
y: isHorizontal ? 0 : handlerSizeY + handlerSpace * 2 + maxTextHeight,
|
|
@@ -5358,11 +5229,21 @@
|
|
|
5358
5229
|
this._itemMaxWidth = Math.max(itemWidth, this._itemMaxWidth);
|
|
5359
5230
|
if (isHorizontal) {
|
|
5360
5231
|
maxPages = maxRow;
|
|
5361
|
-
if (vutils.isValid(maxWidth)
|
|
5362
|
-
|
|
5363
|
-
|
|
5364
|
-
|
|
5365
|
-
|
|
5232
|
+
if (vutils.isValid(maxWidth)) {
|
|
5233
|
+
if (itemWidth >= maxWidth) {
|
|
5234
|
+
doWrap = true;
|
|
5235
|
+
if (index > 0) {
|
|
5236
|
+
startX = 0;
|
|
5237
|
+
startY += itemHeight + spaceRow;
|
|
5238
|
+
pages += 1;
|
|
5239
|
+
}
|
|
5240
|
+
}
|
|
5241
|
+
else if (maxWidth < startX + itemWidth) {
|
|
5242
|
+
doWrap = true;
|
|
5243
|
+
startX = 0;
|
|
5244
|
+
startY += itemHeight + spaceRow;
|
|
5245
|
+
pages += 1;
|
|
5246
|
+
}
|
|
5366
5247
|
}
|
|
5367
5248
|
if (index > 0) {
|
|
5368
5249
|
itemGroup.setAttributes({
|
|
@@ -5391,10 +5272,11 @@
|
|
|
5391
5272
|
}
|
|
5392
5273
|
itemsContainer.add(itemGroup);
|
|
5393
5274
|
});
|
|
5275
|
+
let pagerRendered = false;
|
|
5394
5276
|
if (doWrap && autoPage && pages > maxPages) {
|
|
5395
|
-
this._renderPager(isHorizontal);
|
|
5277
|
+
pagerRendered = this._renderPager(isHorizontal);
|
|
5396
5278
|
}
|
|
5397
|
-
|
|
5279
|
+
if (!pagerRendered) {
|
|
5398
5280
|
itemsContainer.setAttribute('y', this._title ? this._title.AABBBounds.height() + vutils.get(this.attribute, 'title.space', 8) : 0);
|
|
5399
5281
|
this._innerView.add(itemsContainer);
|
|
5400
5282
|
}
|
|
@@ -5570,6 +5452,10 @@
|
|
|
5570
5452
|
this._innerView.add(pagerComp);
|
|
5571
5453
|
pageHeight = (maxRow - 1) * spaceRow + this._itemHeight * maxRow;
|
|
5572
5454
|
pageWidth = maxWidth - pagerComp.AABBBounds.width() - pagerSpace;
|
|
5455
|
+
if (pageWidth <= 0) {
|
|
5456
|
+
this._innerView.removeChild(pagerComp);
|
|
5457
|
+
return false;
|
|
5458
|
+
}
|
|
5573
5459
|
itemsContainer.getChildren().forEach((item, index) => {
|
|
5574
5460
|
const { width, height } = item.attribute;
|
|
5575
5461
|
if (pageWidth < startX + width) {
|
|
@@ -5601,6 +5487,10 @@
|
|
|
5601
5487
|
this._innerView.add(pagerComp);
|
|
5602
5488
|
pageWidth = this._itemMaxWidth * maxCol + (maxCol - 1) * spaceCol;
|
|
5603
5489
|
pageHeight = maxHeight - pagerComp.AABBBounds.height() - pagerSpace - renderStartY;
|
|
5490
|
+
if (pageHeight <= 0) {
|
|
5491
|
+
this._innerView.removeChild(pagerComp);
|
|
5492
|
+
return false;
|
|
5493
|
+
}
|
|
5604
5494
|
itemsContainer.getChildren().forEach((item, index) => {
|
|
5605
5495
|
const { height } = item.attribute;
|
|
5606
5496
|
if (pageHeight < startY + height) {
|
|
@@ -5660,6 +5550,7 @@
|
|
|
5660
5550
|
};
|
|
5661
5551
|
this._pager.addEventListener('toPrev', onPaging);
|
|
5662
5552
|
this._pager.addEventListener('toNext', onPaging);
|
|
5553
|
+
return true;
|
|
5663
5554
|
}
|
|
5664
5555
|
_onHover = (e) => {
|
|
5665
5556
|
const target = e.target;
|
|
@@ -8733,7 +8624,7 @@
|
|
|
8733
8624
|
}
|
|
8734
8625
|
}
|
|
8735
8626
|
|
|
8736
|
-
const version = "0.12.
|
|
8627
|
+
const version = "0.12.2";
|
|
8737
8628
|
|
|
8738
8629
|
exports.AbstractComponent = AbstractComponent;
|
|
8739
8630
|
exports.BasePlayer = BasePlayer;
|