@visactor/vrender-kits 0.17.0-alpha.1 → 0.17.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/canvas/contributions/browser/context.d.ts +4 -1
- package/cjs/canvas/contributions/browser/index.js +1 -2
- package/cjs/canvas/contributions/feishu/index.js +2 -1
- package/cjs/canvas/contributions/lynx/context.d.ts +3 -0
- package/cjs/canvas/contributions/lynx/context.js +4 -0
- package/cjs/canvas/contributions/lynx/context.js.map +1 -1
- package/cjs/env/contributions/wx-contribution.js +2 -1
- package/cjs/event/extension/index.js +1 -2
- package/cjs/picker/canvas-picker-service.js +2 -3
- package/cjs/picker/canvas-picker-service.js.map +1 -1
- package/cjs/picker/math-picker-service.js +1 -2
- package/cjs/picker/math-picker-service.js.map +1 -1
- package/dist/index.js +8 -13
- package/dist/index.min.js +1 -1
- package/es/canvas/contributions/browser/context.d.ts +4 -1
- package/es/canvas/contributions/browser/index.js +1 -2
- package/es/canvas/contributions/feishu/index.js +2 -1
- package/es/canvas/contributions/lynx/context.d.ts +3 -0
- package/es/canvas/contributions/lynx/context.js +5 -1
- package/es/canvas/contributions/lynx/context.js.map +1 -1
- package/es/env/contributions/wx-contribution.js +2 -1
- package/es/event/extension/index.js +1 -2
- package/es/picker/canvas-picker-service.js +3 -4
- package/es/picker/canvas-picker-service.js.map +1 -1
- package/es/picker/math-picker-service.js +2 -3
- package/es/picker/math-picker-service.js.map +1 -1
- package/package.json +5 -5
|
@@ -149,7 +149,7 @@ export declare class BrowserContext2d implements IContext2d {
|
|
|
149
149
|
ellipsis: string | boolean;
|
|
150
150
|
fontVariant: string;
|
|
151
151
|
fontStyle: string;
|
|
152
|
-
lineHeight: number;
|
|
152
|
+
lineHeight: string | number;
|
|
153
153
|
underline: number;
|
|
154
154
|
lineThrough: number;
|
|
155
155
|
scaleIn3d: boolean;
|
|
@@ -157,6 +157,9 @@ export declare class BrowserContext2d implements IContext2d {
|
|
|
157
157
|
verticalMode: number;
|
|
158
158
|
wordBreak: "break-word" | "break-all";
|
|
159
159
|
ignoreBuf: boolean;
|
|
160
|
+
whiteSpace: "normal" | "no-wrap";
|
|
161
|
+
heightLimit: number;
|
|
162
|
+
lineClamp: number;
|
|
160
163
|
};
|
|
161
164
|
setCommonStyle(params: ISetCommonStyleParams, attribute: ICommonStyleParams, offsetX: number, offsetY: number, defaultParams?: ICommonStyleParams | Partial<ICommonStyleParams>[]): void;
|
|
162
165
|
protected _setCommonStyle(params: ISetCommonStyleParams, attribute: ICommonStyleParams, offsetX: number, offsetY: number, defaultParams?: ICommonStyleParams): void;
|
|
@@ -17,5 +17,4 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
17
17
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
|
-
}), __exportStar(require("./canvas"), exports), __exportStar(require("./context"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
20
|
+
}), __exportStar(require("./canvas"), exports), __exportStar(require("./context"), exports);
|
|
@@ -17,4 +17,5 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
17
17
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
|
-
}), __exportStar(require("./canvas"), exports), __exportStar(require("./context"), exports);
|
|
20
|
+
}), __exportStar(require("./canvas"), exports), __exportStar(require("./context"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -8,6 +8,9 @@ export declare class LynxContext2d extends BrowserContext2d implements IContext2
|
|
|
8
8
|
set globalAlpha(ga: number);
|
|
9
9
|
setLineDash(segments: number[]): void;
|
|
10
10
|
protected _setStrokeStyle(params: ISetStrokeStyleParams, attribute: IStrokeStyleParams, offsetX: number, offsetY: number, defaultParams?: IStrokeStyleParams): void;
|
|
11
|
+
measureText(text: string, method?: 'native' | 'simple' | 'quick'): {
|
|
12
|
+
width: number;
|
|
13
|
+
};
|
|
11
14
|
createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern;
|
|
12
15
|
draw(): void;
|
|
13
16
|
}
|
|
@@ -39,6 +39,10 @@ let LynxContext2d = class extends browser_1.BrowserContext2d {
|
|
|
39
39
|
_context.lineCap = lineCap, _context.miterLimit = miterLimit;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
measureText(text, method = vrender_core_1.application.global.measureTextMethod) {
|
|
43
|
+
this.setTransform(1, 0, 0, 1, 0, 0, !0, vrender_core_1.application.global.devicePixelRatio);
|
|
44
|
+
return super.measureText(text, method);
|
|
45
|
+
}
|
|
42
46
|
createPattern(image, repetition) {
|
|
43
47
|
return null;
|
|
44
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/canvas/contributions/lynx/context.ts"],"names":[],"mappings":";;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/lynx/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable, createColor, getScaledStroke, application } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\n@injectable()\nexport class LynxContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'lynx';\n\n declare drawPromise?: Promise<any>;\n\n declare _globalAlpha: number;\n\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga;\n this._globalAlpha = ga;\n }\n\n setLineDash(segments: number[]) {\n const a = arguments;\n const _context = this.nativeContext;\n\n if (!!this.nativeContext.setLineDash) {\n const lineDash = a[0];\n // lynx环境中lineDash不能为[0, 0]\n if (lineDash[0] === 0 && lineDash[1] === 0) {\n return;\n }\n _context.setLineDash(lineDash);\n }\n }\n\n protected _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit\n } = attribute;\n _context.globalAlpha = strokeOpacity * opacity;\n _context.lineWidth = getScaledStroke(this, lineWidth, this.dpr);\n _context.strokeStyle = createColor(this, stroke as any, params, offsetX, offsetY);\n _context.lineJoin = lineJoin;\n // lynx环境中lineDash不能为[0, 0]\n if (!(lineDash[0] === 0 && lineDash[1] === 0)) {\n _context.setLineDash(lineDash);\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n this.setTransform(1, 0, 0, 1, 0, 0, true, application.global.devicePixelRatio);\n const data = super.measureText(text, method);\n return data;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n\n draw() {\n const _context = this.nativeContext as any;\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
|
|
@@ -127,4 +127,5 @@ let WxEnvContribution = class extends vrender_core_1.BaseEnvContribution {
|
|
|
127
127
|
};
|
|
128
128
|
|
|
129
129
|
WxEnvContribution = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", []) ], WxEnvContribution),
|
|
130
|
-
exports.WxEnvContribution = WxEnvContribution;
|
|
130
|
+
exports.WxEnvContribution = WxEnvContribution;
|
|
131
|
+
//# sourceMappingURL=wx-contribution.js.map
|
|
@@ -23,7 +23,7 @@ let DefaultCanvasPickerService = class extends vrender_core_1.DefaultPickService
|
|
|
23
23
|
super(pickItemInterceptorContributions), this.contributions = contributions, this.drawContribution = drawContribution,
|
|
24
24
|
this.pickItemInterceptorContributions = pickItemInterceptorContributions, this.global.hooks.onSetEnv.tap("canvas-picker-service", ((_, env, global) => {
|
|
25
25
|
this.configure(global, env);
|
|
26
|
-
})), this.configure(this.global, this.global.env), this.pickerMap = new Map;
|
|
26
|
+
})), this.configure(this.global, this.global.env), this.pickerMap = new Map, this.init();
|
|
27
27
|
}
|
|
28
28
|
init() {
|
|
29
29
|
this.contributions.getContributions().forEach((item => {
|
|
@@ -31,7 +31,7 @@ let DefaultCanvasPickerService = class extends vrender_core_1.DefaultPickService
|
|
|
31
31
|
})), super._init();
|
|
32
32
|
}
|
|
33
33
|
configure(global, env) {
|
|
34
|
-
this.pickCanvas = vrender_core_1.canvasAllocate.
|
|
34
|
+
this.pickCanvas = vrender_core_1.canvasAllocate.shareCanvas(), this.pickContext = this.pickCanvas.getContext("2d");
|
|
35
35
|
}
|
|
36
36
|
pickItem(graphic, point, parentMatrix, params) {
|
|
37
37
|
if (!1 === graphic.attribute.pickable) return null;
|
|
@@ -63,7 +63,6 @@ let DefaultCanvasPickerService = class extends vrender_core_1.DefaultPickService
|
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
__decorate([ (0, vrender_core_1.postConstruct)(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], DefaultCanvasPickerService.prototype, "init", null),
|
|
67
66
|
DefaultCanvasPickerService = __decorate([ (0, vrender_core_1.injectable)(), __param(0, (0,
|
|
68
67
|
vrender_core_1.inject)(vrender_core_1.ContributionProvider)), __param(0, (0, vrender_core_1.named)(constants_1.CanvasPickerContribution)), __param(1, (0,
|
|
69
68
|
vrender_core_1.inject)(vrender_core_1.DrawContribution)), __param(2, (0, vrender_core_1.inject)(vrender_core_1.ContributionProvider)), __param(2, (0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/picker/canvas-picker-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"sources":["../src/picker/canvas-picker-service.ts"],"names":[],"mappings":"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","file":"canvas-picker-service.js","sourcesContent":["import type { IMatrix, IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line\nimport {\n ContributionProvider,\n inject,\n injectable,\n named,\n DefaultPickService,\n DrawContribution,\n PickItemInterceptor,\n canvasAllocate,\n application\n} from '@visactor/vrender-core';\nimport type {\n ICanvas,\n IContext2d,\n IGraphic,\n EnvType,\n IGlobal,\n IGraphicPicker,\n IPickerService,\n IDrawContribution,\n IContributionProvider,\n IPickItemInterceptorContribution,\n IPickParams,\n PickResult\n} from '@visactor/vrender-core';\nimport {\n CanvasArcPicker,\n CanvasAreaPicker,\n CanvasCirclePicker,\n CanvasImagePicker,\n CanvasLinePicker,\n CanvasPathPicker,\n CanvasPickerContribution,\n CanvasPolygonPicker,\n CanvasRectPicker,\n CanvasSymbolPicker,\n CanvasTextPicker,\n CanvasRichTextPicker\n} from './contributions/constants';\n\n// 默认的pick-service,提供基本的最优选中策略,尽量不需要用户自己实现contribution\n// 用户可以写plugin\n@injectable()\nexport class DefaultCanvasPickerService extends DefaultPickService implements IPickerService {\n declare type: 'default';\n // pcik canvas\n declare pickCanvas: ICanvas;\n declare pickContext: IContext2d;\n declare pickerMap: Map<number, IGraphicPicker>;\n\n constructor(\n @inject(ContributionProvider)\n @named(CanvasPickerContribution)\n protected readonly contributions: IContributionProvider<IGraphicPicker>,\n\n @inject(DrawContribution)\n public readonly drawContribution: IDrawContribution,\n // 拦截器\n @inject(ContributionProvider)\n @named(PickItemInterceptor)\n protected readonly pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>\n ) {\n super(pickItemInterceptorContributions);\n this.global.hooks.onSetEnv.tap('canvas-picker-service', (_, env, global) => {\n this.configure(global, env);\n });\n this.configure(this.global, this.global.env);\n this.pickerMap = new Map();\n this.init();\n }\n\n init() {\n this.contributions.getContributions().forEach(item => {\n this.pickerMap.set(item.numberType, item);\n });\n super._init();\n }\n\n configure(global: IGlobal, env: EnvType) {\n // if (!this.global.env) return;\n // this.contributions.getContributions().forEach(handlerContribution => {\n // handlerContribution.configure(this, this.global);\n // });\n\n // 创建pick canvas\n this.pickCanvas = canvasAllocate.shareCanvas();\n this.pickContext = this.pickCanvas.getContext('2d');\n }\n\n // todo: switch统一改为数字map\n pickItem(graphic: IGraphic, point: IPointLike, parentMatrix: IMatrix | null, params: IPickParams): PickResult | null {\n if (graphic.attribute.pickable === false) {\n return null;\n }\n // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (drawContribution.beforePickItem) {\n const ret = drawContribution.beforePickItem(graphic, this, point, params, { parentMatrix });\n if (ret) {\n return ret;\n }\n }\n }\n }\n const picker = this.pickerMap.get(graphic.numberType);\n if (!picker) {\n return null;\n }\n const g = picker.contains(graphic, point, params) ? graphic : null;\n\n const data = {\n graphic: g\n };\n if (g) {\n return data;\n }\n // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (drawContribution.afterPickItem) {\n const ret = drawContribution.afterPickItem(graphic, this, point, params, { parentMatrix });\n if (ret) {\n return ret;\n }\n }\n }\n }\n return data;\n }\n}\n"]}
|
|
@@ -23,7 +23,7 @@ let DefaultMathPickerService = class extends vrender_core_1.DefaultPickService {
|
|
|
23
23
|
super(pickItemInterceptorContributions), this.contributions = contributions, this.pickItemInterceptorContributions = pickItemInterceptorContributions,
|
|
24
24
|
this.global.hooks.onSetEnv.tap("math-picker-service", ((lastEnv, env, global) => {
|
|
25
25
|
this.configure(global, env);
|
|
26
|
-
})), this.configure(this.global, this.global.env), this.pickerMap = new Map;
|
|
26
|
+
})), this.configure(this.global, this.global.env), this.pickerMap = new Map, this.init();
|
|
27
27
|
}
|
|
28
28
|
init() {
|
|
29
29
|
this.contributions.getContributions().forEach((item => {
|
|
@@ -44,7 +44,6 @@ let DefaultMathPickerService = class extends vrender_core_1.DefaultPickService {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
__decorate([ (0, vrender_core_1.postConstruct)(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], DefaultMathPickerService.prototype, "init", null),
|
|
48
47
|
DefaultMathPickerService = __decorate([ (0, vrender_core_1.injectable)(), __param(0, (0,
|
|
49
48
|
vrender_core_1.inject)(vrender_core_1.ContributionProvider)), __param(0, (0, vrender_core_1.named)(constants_1.MathPickerContribution)), __param(1, (0,
|
|
50
49
|
vrender_core_1.inject)(vrender_core_1.ContributionProvider)), __param(1, (0, vrender_core_1.named)(vrender_core_1.PickItemInterceptor)), __metadata("design:paramtypes", [ Object, Object ]) ], DefaultMathPickerService),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/picker/math-picker-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"sources":["../src/picker/math-picker-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,yDAQgC;AAchC,yDAAmE;AAK5D,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,iCAAkB;IAO9D,YAGqB,aAAoD,EAIpD,gCAAyF;QAE5G,KAAK,CAAC,gCAAgC,CAAC,CAAC;QANrB,kBAAa,GAAb,aAAa,CAAuC;QAIpD,qCAAgC,GAAhC,gCAAgC,CAAyD;QAG5G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;YAC7E,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAAe,EAAE,GAAY;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,6BAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAGD,QAAQ,CACN,OAAiB,EACjB,KAAiB,EACjB,YAA4B,EAC5B,MAAoB;QAEpB,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,IAAI,CAAC,EAAE;YACL,OAAO;gBACL,OAAO,EAAE,CAAC;aACX,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA1DY,wBAAwB;IADpC,IAAA,yBAAU,GAAE;IASR,WAAA,IAAA,qBAAM,EAAC,mCAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,oBAAK,EAAC,kCAAsB,CAAC,CAAA;IAG7B,WAAA,IAAA,qBAAM,EAAC,mCAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,oBAAK,EAAC,kCAAmB,CAAC,CAAA;;GAblB,wBAAwB,CA0DpC;AA1DY,4DAAwB","file":"math-picker-service.js","sourcesContent":["import type { IMatrix, IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line\nimport {\n ContributionProvider,\n inject,\n injectable,\n named,\n DefaultPickService,\n EmptyContext2d,\n PickItemInterceptor\n} from '@visactor/vrender-core';\nimport type {\n ICanvas,\n IContext2d,\n IGraphic,\n EnvType,\n IGlobal,\n IGraphicPicker,\n IPickerService,\n IContributionProvider,\n IPickItemInterceptorContribution,\n IPickParams,\n PickResult\n} from '@visactor/vrender-core';\nimport { MathPickerContribution } from './contributions/constants';\n\n// 默认的pick-service,提供基本的最优选中策略,尽量不需要用户自己实现contribution\n// 用户可以写plugin\n@injectable()\nexport class DefaultMathPickerService extends DefaultPickService implements IPickerService {\n declare type: 'default';\n // pcik canvas\n declare pickCanvas: ICanvas;\n declare pickContext: IContext2d;\n declare pickerMap: Map<number, IGraphicPicker>;\n\n constructor(\n @inject(ContributionProvider)\n @named(MathPickerContribution)\n protected readonly contributions: IContributionProvider<IGraphicPicker>,\n // 拦截器\n @inject(ContributionProvider)\n @named(PickItemInterceptor)\n protected readonly pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>\n ) {\n super(pickItemInterceptorContributions);\n this.global.hooks.onSetEnv.tap('math-picker-service', (lastEnv, env, global) => {\n this.configure(global, env);\n });\n this.configure(this.global, this.global.env);\n this.pickerMap = new Map();\n this.init();\n }\n\n init() {\n this.contributions.getContributions().forEach(item => {\n this.pickerMap.set(item.numberType, item);\n });\n super._init();\n }\n\n configure(global: IGlobal, env: EnvType) {\n this.pickContext = new EmptyContext2d(null, 1);\n }\n\n // todo: switch统一改为数字map\n pickItem(\n graphic: IGraphic,\n point: IPointLike,\n parentMatrix: IMatrix | null,\n params?: IPickParams\n ): PickResult | null {\n if (graphic.attribute.pickable === false) {\n return null;\n }\n const picker = this.pickerMap.get(graphic.numberType);\n if (!picker) {\n return null;\n }\n const g = picker.contains(graphic, point, params) ? graphic : null;\n if (g) {\n return {\n graphic: g\n };\n }\n return null;\n }\n}\n"]}
|
package/dist/index.js
CHANGED
|
@@ -5087,6 +5087,7 @@
|
|
|
5087
5087
|
});
|
|
5088
5088
|
this.configure(this.global, this.global.env);
|
|
5089
5089
|
this.pickerMap = new Map();
|
|
5090
|
+
this.init();
|
|
5090
5091
|
}
|
|
5091
5092
|
init() {
|
|
5092
5093
|
this.contributions.getContributions().forEach(item => {
|
|
@@ -5095,7 +5096,7 @@
|
|
|
5095
5096
|
super._init();
|
|
5096
5097
|
}
|
|
5097
5098
|
configure(global, env) {
|
|
5098
|
-
this.pickCanvas = vrenderCore.canvasAllocate.
|
|
5099
|
+
this.pickCanvas = vrenderCore.canvasAllocate.shareCanvas();
|
|
5099
5100
|
this.pickContext = this.pickCanvas.getContext('2d');
|
|
5100
5101
|
}
|
|
5101
5102
|
pickItem(graphic, point, parentMatrix, params) {
|
|
@@ -5138,12 +5139,6 @@
|
|
|
5138
5139
|
return data;
|
|
5139
5140
|
}
|
|
5140
5141
|
};
|
|
5141
|
-
__decorate([
|
|
5142
|
-
vrenderCore.postConstruct(),
|
|
5143
|
-
__metadata("design:type", Function),
|
|
5144
|
-
__metadata("design:paramtypes", []),
|
|
5145
|
-
__metadata("design:returntype", void 0)
|
|
5146
|
-
], DefaultCanvasPickerService.prototype, "init", null);
|
|
5147
5142
|
DefaultCanvasPickerService = __decorate([
|
|
5148
5143
|
vrenderCore.injectable(),
|
|
5149
5144
|
__param(0, vrenderCore.inject(vrenderCore.ContributionProvider)),
|
|
@@ -6513,6 +6508,7 @@
|
|
|
6513
6508
|
});
|
|
6514
6509
|
this.configure(this.global, this.global.env);
|
|
6515
6510
|
this.pickerMap = new Map();
|
|
6511
|
+
this.init();
|
|
6516
6512
|
}
|
|
6517
6513
|
init() {
|
|
6518
6514
|
this.contributions.getContributions().forEach(item => {
|
|
@@ -6540,12 +6536,6 @@
|
|
|
6540
6536
|
return null;
|
|
6541
6537
|
}
|
|
6542
6538
|
};
|
|
6543
|
-
__decorate([
|
|
6544
|
-
vrenderCore.postConstruct(),
|
|
6545
|
-
__metadata("design:type", Function),
|
|
6546
|
-
__metadata("design:paramtypes", []),
|
|
6547
|
-
__metadata("design:returntype", void 0)
|
|
6548
|
-
], DefaultMathPickerService.prototype, "init", null);
|
|
6549
6539
|
DefaultMathPickerService = __decorate([
|
|
6550
6540
|
vrenderCore.injectable(),
|
|
6551
6541
|
__param(0, vrenderCore.inject(vrenderCore.ContributionProvider)),
|
|
@@ -7166,6 +7156,11 @@
|
|
|
7166
7156
|
_context.miterLimit = miterLimit;
|
|
7167
7157
|
}
|
|
7168
7158
|
}
|
|
7159
|
+
measureText(text, method = vrenderCore.application.global.measureTextMethod) {
|
|
7160
|
+
this.setTransform(1, 0, 0, 1, 0, 0, true, vrenderCore.application.global.devicePixelRatio);
|
|
7161
|
+
const data = super.measureText(text, method);
|
|
7162
|
+
return data;
|
|
7163
|
+
}
|
|
7169
7164
|
createPattern(image, repetition) {
|
|
7170
7165
|
return null;
|
|
7171
7166
|
}
|