@visactor/vrender-kits
Version:
```typescript import { xxx } from '@visactor/vrender-kits'; ```
75 lines (70 loc) • 4.39 kB
JavaScript
"use strict";
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
return c > 3 && r && Object.defineProperty(target, key, r), r;
}, __metadata = this && this.__metadata || function(k, v) {
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
}, __param = this && this.__param || function(paramIndex, decorator) {
return function(target, key) {
decorator(target, key, paramIndex);
};
};
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.DefaultCanvasPickerService = void 0;
const vrender_core_1 = require("@visactor/vrender-core"), constants_1 = require("./contributions/constants");
let DefaultCanvasPickerService = class extends vrender_core_1.DefaultPickService {
constructor(contributions, drawContribution, pickItemInterceptorContributions, pickServiceInterceptorContributions) {
super(pickItemInterceptorContributions, pickServiceInterceptorContributions), this.contributions = contributions,
this.drawContribution = drawContribution, this.pickItemInterceptorContributions = pickItemInterceptorContributions,
this.pickServiceInterceptorContributions = pickServiceInterceptorContributions,
this.global.hooks.onSetEnv.tap("canvas-picker-service", ((_, env, global) => {
this.configure(global, env);
})), this.configure(this.global, this.global.env), this.pickerMap = new Map, this.init();
}
init() {
this.contributions.getContributions().forEach((item => {
this.pickerMap.set(item.numberType, item);
})), super._init();
}
configure(global, env) {
this.pickCanvas = vrender_core_1.canvasAllocate.shareCanvas(), this.pickContext = this.pickCanvas.getContext("2d");
}
pickItem(graphic, point, parentMatrix, params) {
if (!1 === graphic.attribute.pickable) return null;
if (this.InterceptorContributions.length) for (let i = 0; i < this.InterceptorContributions.length; i++) {
const drawContribution = this.InterceptorContributions[i];
if (drawContribution.beforePickItem) {
const ret = drawContribution.beforePickItem(graphic, this, point, params, {
parentMatrix: parentMatrix
});
if (ret) return ret;
}
}
const picker = this.pickerMap.get(graphic.numberType);
if (!picker) return null;
const pd = picker.contains(graphic, point, params), g = pd ? graphic : null, data = {
graphic: g,
params: pd
};
if (g) return data;
if (this.InterceptorContributions.length) for (let i = 0; i < this.InterceptorContributions.length; i++) {
const drawContribution = this.InterceptorContributions[i];
if (drawContribution.afterPickItem) {
const ret = drawContribution.afterPickItem(graphic, this, point, params, {
parentMatrix: parentMatrix
});
if (ret) return ret;
}
}
return data;
}
};
DefaultCanvasPickerService = __decorate([ (0, vrender_core_1.injectable)(), __param(0, (0,
vrender_core_1.inject)(vrender_core_1.ContributionProvider)), __param(0, (0, vrender_core_1.named)(constants_1.CanvasPickerContribution)), __param(1, (0,
vrender_core_1.inject)(vrender_core_1.DrawContribution)), __param(2, (0, vrender_core_1.inject)(vrender_core_1.ContributionProvider)), __param(2, (0,
vrender_core_1.named)(vrender_core_1.PickItemInterceptor)), __param(3, (0, vrender_core_1.inject)(vrender_core_1.ContributionProvider)), __param(3, (0,
vrender_core_1.named)(vrender_core_1.PickServiceInterceptor)), __metadata("design:paramtypes", [ Object, Object, Object, Object ]) ], DefaultCanvasPickerService),
exports.DefaultCanvasPickerService = DefaultCanvasPickerService;
//# sourceMappingURL=canvas-picker-service.js.map