@visactor/vchart 2.0.4-alpha.7 → 2.0.4-alpha.8
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/build/es5/index.js +1 -1
- package/build/index.es.js +66 -1469
- package/build/index.js +66 -1469
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart.js +1 -2
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/range-area/range-area-transformer.js +1 -2
- package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
- package/cjs/compile/compiler.js +4 -6
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.js +2 -1
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +0 -2
- package/cjs/component/data-zoom/data-filter-base-component.js +5 -15
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/interface.d.ts +0 -1
- package/cjs/component/data-zoom/interface.js.map +1 -1
- package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
- package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
- package/cjs/constant/event.d.ts +1 -2
- package/cjs/constant/event.js +1 -1
- package/cjs/constant/event.js.map +1 -1
- package/cjs/core/factory.d.ts +0 -4
- package/cjs/core/factory.js +2 -8
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +0 -2
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/vchart.d.ts +1 -3
- package/cjs/core/vchart.js +1 -7
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/event/event-dispatcher.d.ts +1 -0
- package/cjs/event/event-dispatcher.js +12 -1
- package/cjs/event/event-dispatcher.js.map +1 -1
- package/cjs/model/interface.d.ts +0 -1
- package/cjs/model/interface.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +17 -17
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
- package/cjs/series/treemap/treemap.js +2 -2
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/word-cloud/base.js +1 -15
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +0 -1
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/util/style.js +2 -3
- package/cjs/util/style.js.map +1 -1
- package/esm/chart/base/base-chart.js +1 -2
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/range-area/range-area-transformer.js +1 -2
- package/esm/chart/range-area/range-area-transformer.js.map +1 -1
- package/esm/compile/compiler.js +4 -6
- package/esm/compile/compiler.js.map +1 -1
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.js +2 -1
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +0 -2
- package/esm/component/data-zoom/data-filter-base-component.js +6 -16
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/interface.d.ts +0 -1
- package/esm/component/data-zoom/interface.js.map +1 -1
- package/esm/component/marker/mark-point/cartesian-mark-point.js +2 -2
- package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
- package/esm/constant/event.d.ts +1 -2
- package/esm/constant/event.js +1 -1
- package/esm/constant/event.js.map +1 -1
- package/esm/core/factory.d.ts +0 -4
- package/esm/core/factory.js +1 -8
- package/esm/core/factory.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.d.ts +0 -2
- package/esm/core/interface.js.map +1 -1
- package/esm/core/vchart.d.ts +1 -3
- package/esm/core/vchart.js +0 -8
- package/esm/core/vchart.js.map +1 -1
- package/esm/event/event-dispatcher.d.ts +1 -0
- package/esm/event/event-dispatcher.js +12 -1
- package/esm/event/event-dispatcher.js.map +1 -1
- package/esm/model/interface.d.ts +0 -1
- package/esm/model/interface.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.d.ts +1 -1
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +17 -17
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
- package/esm/series/treemap/treemap.js +2 -2
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/word-cloud/base.js +0 -16
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/typings/spec/common.d.ts +0 -1
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/util/style.js +2 -3
- package/esm/util/style.js.map +1 -1
- package/package.json +8 -8
- package/cjs/plugin/vchart/index.d.ts +0 -2
- package/cjs/plugin/vchart/index.js +0 -21
- package/cjs/plugin/vchart/index.js.map +0 -1
- package/cjs/plugin/vchart/interface.d.ts +0 -16
- package/cjs/plugin/vchart/interface.js +0 -6
- package/cjs/plugin/vchart/interface.js.map +0 -1
- package/cjs/plugin/vchart/plugin-service.d.ts +0 -9
- package/cjs/plugin/vchart/plugin-service.js +0 -24
- package/cjs/plugin/vchart/plugin-service.js.map +0 -1
- package/cjs/plugin/vchart/register.d.ts +0 -2
- package/cjs/plugin/vchart/register.js +0 -12
- package/cjs/plugin/vchart/register.js.map +0 -1
- package/cjs/plugin/vchart/rotate/index.d.ts +0 -1
- package/cjs/plugin/vchart/rotate/index.js +0 -21
- package/cjs/plugin/vchart/rotate/index.js.map +0 -1
- package/cjs/plugin/vchart/rotate/rotate.d.ts +0 -18
- package/cjs/plugin/vchart/rotate/rotate.js +0 -67
- package/cjs/plugin/vchart/rotate/rotate.js.map +0 -1
- package/esm/plugin/vchart/index.d.ts +0 -2
- package/esm/plugin/vchart/index.js +0 -4
- package/esm/plugin/vchart/index.js.map +0 -1
- package/esm/plugin/vchart/interface.d.ts +0 -16
- package/esm/plugin/vchart/interface.js +0 -2
- package/esm/plugin/vchart/interface.js.map +0 -1
- package/esm/plugin/vchart/plugin-service.d.ts +0 -9
- package/esm/plugin/vchart/plugin-service.js +0 -16
- package/esm/plugin/vchart/plugin-service.js.map +0 -1
- package/esm/plugin/vchart/register.d.ts +0 -2
- package/esm/plugin/vchart/register.js +0 -6
- package/esm/plugin/vchart/register.js.map +0 -1
- package/esm/plugin/vchart/rotate/index.d.ts +0 -1
- package/esm/plugin/vchart/rotate/index.js +0 -2
- package/esm/plugin/vchart/rotate/index.js.map +0 -1
- package/esm/plugin/vchart/rotate/rotate.d.ts +0 -18
- package/esm/plugin/vchart/rotate/rotate.js +0 -62
- package/esm/plugin/vchart/rotate/rotate.js.map +0 -1
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.registerRotatePlugin = exports.RotatePlugin = void 0;
|
|
6
|
-
|
|
7
|
-
const base_plugin_1 = require("../../base/base-plugin"), register_1 = require("../register"), vrender_core_1 = require("@visactor/vrender-core");
|
|
8
|
-
|
|
9
|
-
class RotatePlugin extends base_plugin_1.BasePlugin {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(RotatePlugin.type), this.type = "rotatePlugin", this.rotate90WithTransform = rotateDom => {
|
|
12
|
-
this.rotateDegree = 90;
|
|
13
|
-
const rotateCenter = rotateDom.clientWidth < rotateDom.clientHeight ? Math.max(rotateDom.clientWidth, rotateDom.clientHeight) / 2 : Math.min(rotateDom.clientWidth, rotateDom.clientHeight) / 2, domRect = this._vchart.getContainer().getBoundingClientRect(), x1 = domRect.left, y1 = domRect.top, x2 = domRect.right, y2 = domRect.bottom;
|
|
14
|
-
rotateDom.style.transform = "rotate(90deg)", rotateDom.style.transformOrigin = `${rotateCenter}px ${rotateCenter}px`;
|
|
15
|
-
const getRect = () => ({
|
|
16
|
-
x1: x1,
|
|
17
|
-
y1: y1,
|
|
18
|
-
x2: x2,
|
|
19
|
-
y2: y2
|
|
20
|
-
}), getMatrix = () => {
|
|
21
|
-
const viewPortWidth = ("undefined" != typeof window ? {
|
|
22
|
-
width: window.innerWidth || document.documentElement.clientWidth,
|
|
23
|
-
height: window.innerHeight || document.documentElement.clientHeight
|
|
24
|
-
} : vrender_core_1.vglobal && "getViewportSize" in vrender_core_1.vglobal && vrender_core_1.vglobal.getViewportSize ? vrender_core_1.vglobal.getViewportSize() : rotateDom.getBoundingClientRect()).width, domRect = this._vchart.getContainer().getBoundingClientRect(), x1 = domRect.top, y1 = viewPortWidth - domRect.right, matrix = vrender_core_1.matrixAllocate.allocate(1, 0, 0, 1, 0, 0);
|
|
25
|
-
matrix.translate(x1, y1);
|
|
26
|
-
const centerX = rotateCenter - x1, centerY = rotateCenter - y1;
|
|
27
|
-
return matrix.translate(centerX, centerY), matrix.rotate(Math.PI / 2), matrix.translate(-centerX, -centerY),
|
|
28
|
-
this.matrix = matrix, matrix;
|
|
29
|
-
};
|
|
30
|
-
(0, vrender_core_1.registerGlobalEventTransformer)(vrender_core_1.vglobal, this._vchart.getContainer(), getMatrix, getRect, vrender_core_1.transformPointForCanvas),
|
|
31
|
-
(0, vrender_core_1.registerWindowEventTransformer)(this._vchart.getStage().window, this._vchart.getContainer(), getMatrix, getRect, vrender_core_1.transformPointForCanvas),
|
|
32
|
-
this.vglobal_mapToCanvasPoint = vrender_core_1.vglobal.mapToCanvasPoint, vrender_core_1.vglobal.mapToCanvasPoint = vrender_core_1.mapToCanvasPointForCanvas;
|
|
33
|
-
}, this.cancelTransform = rotateDom => {
|
|
34
|
-
this.rotateDegree = 0, rotateDom.style.transform = "none", rotateDom.style.transformOrigin = "none";
|
|
35
|
-
const domRect = this._vchart.getContainer().getBoundingClientRect(), x1 = domRect.left, y1 = domRect.top, x2 = domRect.right, y2 = domRect.bottom, getRect = () => ({
|
|
36
|
-
x1: x1,
|
|
37
|
-
y1: y1,
|
|
38
|
-
x2: x2,
|
|
39
|
-
y2: y2
|
|
40
|
-
}), getMatrix = () => {
|
|
41
|
-
const matrix = vrender_core_1.matrixAllocate.allocate(1, 0, 0, 1, 0, 0);
|
|
42
|
-
return matrix.translate(x1, y1), matrix;
|
|
43
|
-
};
|
|
44
|
-
(0, vrender_core_1.registerGlobalEventTransformer)(vrender_core_1.vglobal, this._vchart.getContainer(), getMatrix, getRect, vrender_core_1.transformPointForCanvas),
|
|
45
|
-
(0, vrender_core_1.registerWindowEventTransformer)(this._vchart.getStage().window, this._vchart.getContainer(), getMatrix, getRect, vrender_core_1.transformPointForCanvas),
|
|
46
|
-
vrender_core_1.vglobal.mapToCanvasPoint = this.vglobal_mapToCanvasPoint;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
onInit(service) {
|
|
50
|
-
const {globalInstance: vchart} = service;
|
|
51
|
-
vchart && (this._vchart = vchart, vchart.rotate90WithTransform = this.rotate90WithTransform,
|
|
52
|
-
vchart.cancelTransform = this.cancelTransform);
|
|
53
|
-
}
|
|
54
|
-
release() {
|
|
55
|
-
this._vchart = null, this.vglobal_mapToCanvasPoint = null, this.matrix = null, super.release();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
exports.RotatePlugin = RotatePlugin, RotatePlugin.pluginType = "vchart", RotatePlugin.specKey = "rotate",
|
|
60
|
-
RotatePlugin.type = "rotatePlugin";
|
|
61
|
-
|
|
62
|
-
const registerRotatePlugin = () => {
|
|
63
|
-
(0, register_1.registerVChartPlugin)(RotatePlugin);
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
exports.registerRotatePlugin = registerRotatePlugin;
|
|
67
|
-
//# sourceMappingURL=rotate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/vchart/rotate/rotate.ts"],"names":[],"mappings":"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","file":"rotate.js","sourcesContent":["import type { IAABBBounds, Matrix } from '@visactor/vutils';\nimport { BasePlugin } from '../../base/base-plugin';\nimport type { IVChartPlugin, IVChartPluginService } from '../interface';\nimport { registerVChartPlugin } from '../register';\nimport type { IVChart } from '../../../core/interface';\nimport {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal\n} from '@visactor/vrender-core';\n\nexport class RotatePlugin extends BasePlugin implements IVChartPlugin {\n static readonly pluginType: 'vchart' = 'vchart';\n\n static readonly specKey = 'rotate';\n\n static readonly type: string = 'rotatePlugin';\n readonly type: string = 'rotatePlugin';\n\n private rotateDegree: number;\n private matrix: Matrix;\n private vglobal_mapToCanvasPoint: any; // 保存vrender中vglobal的mapToCanvasPoint原方法\n private _vchart: IVChart;\n\n constructor() {\n super(RotatePlugin.type);\n }\n\n onInit(service: IVChartPluginService) {\n const { globalInstance: vchart } = service;\n if (!vchart) {\n return;\n }\n this._vchart = vchart;\n //将函数rotate90WithTransform绑定到table实例上,一般情况下插件不需要将api绑定到table实例上,可以直接自身实现某个api功能\n vchart.rotate90WithTransform = this.rotate90WithTransform;\n vchart.cancelTransform = this.cancelTransform;\n }\n\n rotate90WithTransform = (rotateDom: HTMLElement) => {\n this.rotateDegree = 90;\n const rotateCenter =\n rotateDom.clientWidth < rotateDom.clientHeight\n ? Math.max(rotateDom.clientWidth, rotateDom.clientHeight) / 2\n : Math.min(rotateDom.clientWidth, rotateDom.clientHeight) / 2;\n const domRect = this._vchart.getContainer().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n rotateDom.style.transform = 'rotate(90deg)';\n rotateDom.style.transformOrigin = `${rotateCenter}px ${rotateCenter}px`;\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n } as IAABBBounds;\n };\n // 获取视口尺寸的通用方法\n const getViewportDimensions = () => {\n // 浏览器环境\n if (typeof window !== 'undefined') {\n return {\n width: window.innerWidth || document.documentElement.clientWidth,\n height: window.innerHeight || document.documentElement.clientHeight\n };\n }\n // 如果有 vglobal 上的方法可以使用\n if (vglobal && 'getViewportSize' in vglobal && vglobal.getViewportSize) {\n // @ts-ignore\n return vglobal.getViewportSize();\n }\n // 默认使用容器的尺寸\n return rotateDom.getBoundingClientRect();\n };\n\n const getMatrix = () => {\n const viewPortWidth = getViewportDimensions().width; //获取整个视口的尺寸\n const domRect = this._vchart.getContainer().getBoundingClientRect(); //TODO 这个地方应该获取窗口的宽高 最好能从vglobal上直接获取\n const x1 = domRect.top;\n const y1 = viewPortWidth - domRect.right;\n\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n const centerX = rotateCenter - x1;\n const centerY = rotateCenter - y1;\n matrix.translate(centerX, centerY);\n matrix.rotate(Math.PI / 2);\n matrix.translate(-centerX, -centerY);\n this.matrix = matrix;\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this._vchart.getContainer(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this._vchart.getStage().window,\n this._vchart.getContainer(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n this.vglobal_mapToCanvasPoint = vglobal.mapToCanvasPoint;\n vglobal.mapToCanvasPoint = mapToCanvasPointForCanvas;\n //transformPointForCanvas和mapToCanvasPointForCanvas时相对应的\n //具体逻辑在 VRender/packages/vrender-core/src/common/event-transformer.ts中\n // 可以自定义这两个函数 来修改事件属性,transformPointForCanvas中将坐标转换后存放了_canvasX _canvasY,mapToCanvasPointForCanvas中加以利用\n // 在VTable的touch文件中,利用到了_canvasX _canvasY 所以如果自定义上面两个函数也需提供_canvasX _canvasY\n };\n cancelTransform = (rotateDom: HTMLElement) => {\n this.rotateDegree = 0;\n rotateDom.style.transform = 'none';\n rotateDom.style.transformOrigin = 'none';\n const domRect = this._vchart.getContainer().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n } as IAABBBounds;\n };\n const getMatrix = () => {\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this._vchart.getContainer(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this._vchart.getStage().window,\n this._vchart.getContainer(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n vglobal.mapToCanvasPoint = this.vglobal_mapToCanvasPoint;\n };\n\n release() {\n this._vchart = null;\n this.vglobal_mapToCanvasPoint = null;\n this.matrix = null;\n super.release();\n }\n}\n\nexport const registerRotatePlugin = () => {\n registerVChartPlugin(RotatePlugin);\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/vchart/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC","file":"index.js","sourcesContent":["export * from './register';\nexport * from './interface';\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { IVChart } from '../../core/interface';
|
|
2
|
-
import type { IBasePlugin, IBasePluginService, MaybePromise } from '../base/interface';
|
|
3
|
-
export interface IVChartPlugin<T extends IVChartPluginService = any> extends IBasePlugin<T> {
|
|
4
|
-
specKey?: string;
|
|
5
|
-
onInit?: (service: T) => MaybePromise<void>;
|
|
6
|
-
}
|
|
7
|
-
export interface IVChartPluginConstructor {
|
|
8
|
-
readonly pluginType: 'vchart';
|
|
9
|
-
readonly specKey?: string;
|
|
10
|
-
readonly type: string;
|
|
11
|
-
new (): IVChartPlugin;
|
|
12
|
-
}
|
|
13
|
-
export interface IVChartPluginService<T extends IVChartPlugin = any> extends IBasePluginService<T> {
|
|
14
|
-
globalInstance: IVChart;
|
|
15
|
-
onInit?: () => MaybePromise<void>;
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/vchart/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IVChart } from '../../core/interface';\nimport type { IBasePlugin, IBasePluginService, MaybePromise } from '../base/interface';\n\nexport interface IVChartPlugin<T extends IVChartPluginService = any> extends IBasePlugin<T> {\n specKey?: string;\n onInit?: (service: T) => MaybePromise<void>;\n}\n\nexport interface IVChartPluginConstructor {\n readonly pluginType: 'vchart';\n readonly specKey?: string;\n readonly type: string;\n new (): IVChartPlugin;\n}\n\nexport interface IVChartPluginService<T extends IVChartPlugin = any> extends IBasePluginService<T> {\n globalInstance: IVChart;\n onInit?: () => MaybePromise<void>;\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { IVChartPlugin, IVChartPluginService } from './interface';
|
|
2
|
-
import type { IVChart } from '../../core';
|
|
3
|
-
import { BasePluginService } from '../base/base-plugin-service';
|
|
4
|
-
export declare class VChartPluginService<T extends IVChartPlugin = IVChartPlugin> extends BasePluginService<T> implements IVChartPluginService<T> {
|
|
5
|
-
globalInstance: IVChart;
|
|
6
|
-
constructor(globalInstance: IVChart);
|
|
7
|
-
onInit(): void;
|
|
8
|
-
releaseAll(): void;
|
|
9
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { BasePluginService } from "../base/base-plugin-service";
|
|
2
|
-
|
|
3
|
-
export class VChartPluginService extends BasePluginService {
|
|
4
|
-
constructor(globalInstance) {
|
|
5
|
-
super(), this.globalInstance = globalInstance;
|
|
6
|
-
}
|
|
7
|
-
onInit() {
|
|
8
|
-
this._plugins.forEach((plugin => {
|
|
9
|
-
plugin.onInit && plugin.onInit(this);
|
|
10
|
-
}));
|
|
11
|
-
}
|
|
12
|
-
releaseAll() {
|
|
13
|
-
super.releaseAll(), this.globalInstance = null;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=plugin-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/vchart/plugin-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,OAAO,mBACX,SAAQ,iBAAoB;IAK5B,YAAY,cAAuB;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF","file":"plugin-service.js","sourcesContent":["import type { IVChartPlugin, IVChartPluginService } from './interface';\nimport type { IVChart } from '../../core';\nimport { BasePluginService } from '../base/base-plugin-service';\n\nexport class VChartPluginService<T extends IVChartPlugin = IVChartPlugin>\n extends BasePluginService<T>\n implements IVChartPluginService<T>\n{\n globalInstance: IVChart;\n\n constructor(globalInstance: IVChart) {\n super();\n this.globalInstance = globalInstance;\n }\n\n onInit() {\n this._plugins.forEach(plugin => {\n plugin.onInit && plugin.onInit(this);\n });\n }\n\n releaseAll(): void {\n super.releaseAll();\n this.globalInstance = null;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/vchart/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAgC,EAAE,EAAE;IACvE,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC,CAAC","file":"register.js","sourcesContent":["import { Factory } from '../../core/factory';\nimport type { IVChartPluginConstructor } from './interface';\n\nexport const registerVChartPlugin = (plugin: IVChartPluginConstructor) => {\n Factory.registerVChartPlugin(plugin.type, plugin);\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './rotate';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/vchart/rotate/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC","file":"index.js","sourcesContent":["export * from './rotate';\n"]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { BasePlugin } from '../../base/base-plugin';
|
|
2
|
-
import type { IVChartPlugin, IVChartPluginService } from '../interface';
|
|
3
|
-
export declare class RotatePlugin extends BasePlugin implements IVChartPlugin {
|
|
4
|
-
static readonly pluginType: 'vchart';
|
|
5
|
-
static readonly specKey = "rotate";
|
|
6
|
-
static readonly type: string;
|
|
7
|
-
readonly type: string;
|
|
8
|
-
private rotateDegree;
|
|
9
|
-
private matrix;
|
|
10
|
-
private vglobal_mapToCanvasPoint;
|
|
11
|
-
private _vchart;
|
|
12
|
-
constructor();
|
|
13
|
-
onInit(service: IVChartPluginService): void;
|
|
14
|
-
rotate90WithTransform: (rotateDom: HTMLElement) => void;
|
|
15
|
-
cancelTransform: (rotateDom: HTMLElement) => void;
|
|
16
|
-
release(): void;
|
|
17
|
-
}
|
|
18
|
-
export declare const registerRotatePlugin: () => void;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { BasePlugin } from "../../base/base-plugin";
|
|
2
|
-
|
|
3
|
-
import { registerVChartPlugin } from "../register";
|
|
4
|
-
|
|
5
|
-
import { matrixAllocate, transformPointForCanvas, mapToCanvasPointForCanvas, registerGlobalEventTransformer, registerWindowEventTransformer, vglobal } from "@visactor/vrender-core";
|
|
6
|
-
|
|
7
|
-
export class RotatePlugin extends BasePlugin {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(RotatePlugin.type), this.type = "rotatePlugin", this.rotate90WithTransform = rotateDom => {
|
|
10
|
-
this.rotateDegree = 90;
|
|
11
|
-
const rotateCenter = rotateDom.clientWidth < rotateDom.clientHeight ? Math.max(rotateDom.clientWidth, rotateDom.clientHeight) / 2 : Math.min(rotateDom.clientWidth, rotateDom.clientHeight) / 2, domRect = this._vchart.getContainer().getBoundingClientRect(), x1 = domRect.left, y1 = domRect.top, x2 = domRect.right, y2 = domRect.bottom;
|
|
12
|
-
rotateDom.style.transform = "rotate(90deg)", rotateDom.style.transformOrigin = `${rotateCenter}px ${rotateCenter}px`;
|
|
13
|
-
const getRect = () => ({
|
|
14
|
-
x1: x1,
|
|
15
|
-
y1: y1,
|
|
16
|
-
x2: x2,
|
|
17
|
-
y2: y2
|
|
18
|
-
}), getMatrix = () => {
|
|
19
|
-
const viewPortWidth = ("undefined" != typeof window ? {
|
|
20
|
-
width: window.innerWidth || document.documentElement.clientWidth,
|
|
21
|
-
height: window.innerHeight || document.documentElement.clientHeight
|
|
22
|
-
} : vglobal && "getViewportSize" in vglobal && vglobal.getViewportSize ? vglobal.getViewportSize() : rotateDom.getBoundingClientRect()).width, domRect = this._vchart.getContainer().getBoundingClientRect(), x1 = domRect.top, y1 = viewPortWidth - domRect.right, matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);
|
|
23
|
-
matrix.translate(x1, y1);
|
|
24
|
-
const centerX = rotateCenter - x1, centerY = rotateCenter - y1;
|
|
25
|
-
return matrix.translate(centerX, centerY), matrix.rotate(Math.PI / 2), matrix.translate(-centerX, -centerY),
|
|
26
|
-
this.matrix = matrix, matrix;
|
|
27
|
-
};
|
|
28
|
-
registerGlobalEventTransformer(vglobal, this._vchart.getContainer(), getMatrix, getRect, transformPointForCanvas),
|
|
29
|
-
registerWindowEventTransformer(this._vchart.getStage().window, this._vchart.getContainer(), getMatrix, getRect, transformPointForCanvas),
|
|
30
|
-
this.vglobal_mapToCanvasPoint = vglobal.mapToCanvasPoint, vglobal.mapToCanvasPoint = mapToCanvasPointForCanvas;
|
|
31
|
-
}, this.cancelTransform = rotateDom => {
|
|
32
|
-
this.rotateDegree = 0, rotateDom.style.transform = "none", rotateDom.style.transformOrigin = "none";
|
|
33
|
-
const domRect = this._vchart.getContainer().getBoundingClientRect(), x1 = domRect.left, y1 = domRect.top, x2 = domRect.right, y2 = domRect.bottom, getRect = () => ({
|
|
34
|
-
x1: x1,
|
|
35
|
-
y1: y1,
|
|
36
|
-
x2: x2,
|
|
37
|
-
y2: y2
|
|
38
|
-
}), getMatrix = () => {
|
|
39
|
-
const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);
|
|
40
|
-
return matrix.translate(x1, y1), matrix;
|
|
41
|
-
};
|
|
42
|
-
registerGlobalEventTransformer(vglobal, this._vchart.getContainer(), getMatrix, getRect, transformPointForCanvas),
|
|
43
|
-
registerWindowEventTransformer(this._vchart.getStage().window, this._vchart.getContainer(), getMatrix, getRect, transformPointForCanvas),
|
|
44
|
-
vglobal.mapToCanvasPoint = this.vglobal_mapToCanvasPoint;
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
onInit(service) {
|
|
48
|
-
const {globalInstance: vchart} = service;
|
|
49
|
-
vchart && (this._vchart = vchart, vchart.rotate90WithTransform = this.rotate90WithTransform,
|
|
50
|
-
vchart.cancelTransform = this.cancelTransform);
|
|
51
|
-
}
|
|
52
|
-
release() {
|
|
53
|
-
this._vchart = null, this.vglobal_mapToCanvasPoint = null, this.matrix = null, super.release();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
RotatePlugin.pluginType = "vchart", RotatePlugin.specKey = "rotate", RotatePlugin.type = "rotatePlugin";
|
|
58
|
-
|
|
59
|
-
export const registerRotatePlugin = () => {
|
|
60
|
-
registerVChartPlugin(RotatePlugin);
|
|
61
|
-
};
|
|
62
|
-
//# sourceMappingURL=rotate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/vchart/rotate/rotate.ts"],"names":[],"mappings":"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","file":"rotate.js","sourcesContent":["import type { IAABBBounds, Matrix } from '@visactor/vutils';\nimport { BasePlugin } from '../../base/base-plugin';\nimport type { IVChartPlugin, IVChartPluginService } from '../interface';\nimport { registerVChartPlugin } from '../register';\nimport type { IVChart } from '../../../core/interface';\nimport {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal\n} from '@visactor/vrender-core';\n\nexport class RotatePlugin extends BasePlugin implements IVChartPlugin {\n static readonly pluginType: 'vchart' = 'vchart';\n\n static readonly specKey = 'rotate';\n\n static readonly type: string = 'rotatePlugin';\n readonly type: string = 'rotatePlugin';\n\n private rotateDegree: number;\n private matrix: Matrix;\n private vglobal_mapToCanvasPoint: any; // 保存vrender中vglobal的mapToCanvasPoint原方法\n private _vchart: IVChart;\n\n constructor() {\n super(RotatePlugin.type);\n }\n\n onInit(service: IVChartPluginService) {\n const { globalInstance: vchart } = service;\n if (!vchart) {\n return;\n }\n this._vchart = vchart;\n //将函数rotate90WithTransform绑定到table实例上,一般情况下插件不需要将api绑定到table实例上,可以直接自身实现某个api功能\n vchart.rotate90WithTransform = this.rotate90WithTransform;\n vchart.cancelTransform = this.cancelTransform;\n }\n\n rotate90WithTransform = (rotateDom: HTMLElement) => {\n this.rotateDegree = 90;\n const rotateCenter =\n rotateDom.clientWidth < rotateDom.clientHeight\n ? Math.max(rotateDom.clientWidth, rotateDom.clientHeight) / 2\n : Math.min(rotateDom.clientWidth, rotateDom.clientHeight) / 2;\n const domRect = this._vchart.getContainer().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n rotateDom.style.transform = 'rotate(90deg)';\n rotateDom.style.transformOrigin = `${rotateCenter}px ${rotateCenter}px`;\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n } as IAABBBounds;\n };\n // 获取视口尺寸的通用方法\n const getViewportDimensions = () => {\n // 浏览器环境\n if (typeof window !== 'undefined') {\n return {\n width: window.innerWidth || document.documentElement.clientWidth,\n height: window.innerHeight || document.documentElement.clientHeight\n };\n }\n // 如果有 vglobal 上的方法可以使用\n if (vglobal && 'getViewportSize' in vglobal && vglobal.getViewportSize) {\n // @ts-ignore\n return vglobal.getViewportSize();\n }\n // 默认使用容器的尺寸\n return rotateDom.getBoundingClientRect();\n };\n\n const getMatrix = () => {\n const viewPortWidth = getViewportDimensions().width; //获取整个视口的尺寸\n const domRect = this._vchart.getContainer().getBoundingClientRect(); //TODO 这个地方应该获取窗口的宽高 最好能从vglobal上直接获取\n const x1 = domRect.top;\n const y1 = viewPortWidth - domRect.right;\n\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n const centerX = rotateCenter - x1;\n const centerY = rotateCenter - y1;\n matrix.translate(centerX, centerY);\n matrix.rotate(Math.PI / 2);\n matrix.translate(-centerX, -centerY);\n this.matrix = matrix;\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this._vchart.getContainer(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this._vchart.getStage().window,\n this._vchart.getContainer(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n this.vglobal_mapToCanvasPoint = vglobal.mapToCanvasPoint;\n vglobal.mapToCanvasPoint = mapToCanvasPointForCanvas;\n //transformPointForCanvas和mapToCanvasPointForCanvas时相对应的\n //具体逻辑在 VRender/packages/vrender-core/src/common/event-transformer.ts中\n // 可以自定义这两个函数 来修改事件属性,transformPointForCanvas中将坐标转换后存放了_canvasX _canvasY,mapToCanvasPointForCanvas中加以利用\n // 在VTable的touch文件中,利用到了_canvasX _canvasY 所以如果自定义上面两个函数也需提供_canvasX _canvasY\n };\n cancelTransform = (rotateDom: HTMLElement) => {\n this.rotateDegree = 0;\n rotateDom.style.transform = 'none';\n rotateDom.style.transformOrigin = 'none';\n const domRect = this._vchart.getContainer().getBoundingClientRect();\n const x1 = domRect.left;\n const y1 = domRect.top;\n const x2 = domRect.right;\n const y2 = domRect.bottom;\n\n const getRect = () => {\n return {\n x1,\n y1,\n x2,\n y2\n } as IAABBBounds;\n };\n const getMatrix = () => {\n const matrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n matrix.translate(x1, y1);\n return matrix;\n };\n registerGlobalEventTransformer(vglobal, this._vchart.getContainer(), getMatrix, getRect, transformPointForCanvas);\n registerWindowEventTransformer(\n this._vchart.getStage().window,\n this._vchart.getContainer(),\n getMatrix,\n getRect,\n transformPointForCanvas\n );\n vglobal.mapToCanvasPoint = this.vglobal_mapToCanvasPoint;\n };\n\n release() {\n this._vchart = null;\n this.vglobal_mapToCanvasPoint = null;\n this.matrix = null;\n super.release();\n }\n}\n\nexport const registerRotatePlugin = () => {\n registerVChartPlugin(RotatePlugin);\n};\n"]}
|