@visactor/vrender-core 0.17.5 → 0.17.7
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/core/layer-service.js +1 -1
- package/cjs/core/layer-service.js.map +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +0 -2
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js +14 -8
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/rect-module.js +4 -1
- package/cjs/render/contributions/render/rect-module.js.map +1 -1
- package/cjs/render/contributions/render/rect-render.js +1 -1
- package/cjs/render/contributions/render/rect-render.js.map +1 -1
- package/dist/index.js +16 -14
- package/dist/index.min.js +1 -1
- package/es/core/layer-service.js +1 -1
- package/es/core/layer-service.js.map +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +0 -2
- package/es/render/contributions/render/contributions/rect-contribution-render.js +19 -7
- package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/es/render/contributions/render/rect-module.js +3 -1
- package/es/render/contributions/render/rect-module.js.map +1 -1
- package/es/render/contributions/render/rect-render.js +2 -2
- package/es/render/contributions/render/rect-render.js.map +1 -1
- package/package.json +3 -3
|
@@ -42,7 +42,7 @@ let DefaultLayerService = DefaultLayerService_1 = class {
|
|
|
42
42
|
var _a;
|
|
43
43
|
this.tryInit();
|
|
44
44
|
let layerMode = this.getRecommendedLayerType(options.layerMode);
|
|
45
|
-
layerMode = options.canvasId ? "static" : layerMode;
|
|
45
|
+
layerMode = options.main || options.canvasId ? "static" : layerMode;
|
|
46
46
|
const layerHandler = this.getLayerHandler(layerMode), layer = new layer_1.Layer(stage, this.global, stage.window, Object.assign(Object.assign({
|
|
47
47
|
main: !1
|
|
48
48
|
}, options), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/layer-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6DAA8D;AAE9D,mCAAgC;AAEhC,4CAAyC;AACzC,2CAIqB;AACrB,gDAA6C;AAGtC,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAS9B,MAAM,CAAC,eAAe;QACpB,OAAO,GAAG,qBAAmB,CAAC,QAAQ,IAAI,qBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC;IACjF,CAAC;IAED;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,yBAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;IACH,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,uBAAuB,CAAC,SAAqB;QAC3C,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;YACpC,OAAO,QAAQ,CAAC;SACjB;aAAM,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,EAAE;YAC5C,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,SAAoB;QAClC,IAAI,YAAuC,CAAC;QAC5C,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,0CAA8B,CAAC,CAAC;SACzF;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE;YAClC,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,2CAA+B,CAAC,CAAC;SAC1F;aAAM;YACL,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,2CAA+B,CAAC,CAAC;SAC1F;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,UAAiC,EAAE,IAAI,EAAE,KAAK,EAAE;;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/core/layer-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6DAA8D;AAE9D,mCAAgC;AAEhC,4CAAyC;AACzC,2CAIqB;AACrB,gDAA6C;AAGtC,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAS9B,MAAM,CAAC,eAAe;QACpB,OAAO,GAAG,qBAAmB,CAAC,QAAQ,IAAI,qBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC;IACjF,CAAC;IAED;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,yBAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;IACH,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,uBAAuB,CAAC,SAAqB;QAC3C,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;YACpC,OAAO,QAAQ,CAAC;SACjB;aAAM,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,EAAE;YAC5C,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,SAAoB;QAClC,IAAI,YAAuC,CAAC;QAC5C,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,0CAA8B,CAAC,CAAC;SACzF;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE;YAClC,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,2CAA+B,CAAC,CAAC;SAC1F;aAAM;YACL,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,2CAA+B,CAAC,CAAC;SAC1F;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,UAAiC,EAAE,IAAI,EAAE,KAAK,EAAE;;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,gCACtD,IAAI,EAAE,KAAK,IACR,OAAO,KACV,SAAS,EACT,QAAQ,EAAE,MAAA,OAAO,CAAC,QAAQ,mCAAI,qBAAmB,CAAC,eAAe,EAAE,EACnE,YAAY,IACZ,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,IAAI,WAAsC,CAAC;QAC3C,KAAK,CAAC,eAAe,CAAC,CAAC,CAAS,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC9B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;gBAClC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7C;iBAAM;gBACL,WAAW,GAAG,OAAO,CAAC;gBACtB,WAAW,CAAC,iBAAiB,GAAG,EAAE,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,KAAa;QACvC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,KAAK,EACL,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CACrC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IACD,cAAc,CAAC,KAAa;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;YACjC,OAAO,EAAE,CAAC;SACX;QACD,OAAO,CAAC,CAAC;IACX,CAAC;;AApGM,4BAAQ,GAAW,gBAAgB,CAAC;AACpC,gCAAY,GAAW,CAAC,CAAC;AAPrB,mBAAmB;IAD/B,IAAA,2BAAU,GAAE;;GACA,mBAAmB,CA2G/B;AA3GY,kDAAmB","file":"layer-service.js","sourcesContent":["import { inject, injectable } from '../common/inversify-lite';\nimport type { ILayer, IStage, IGlobal, ILayerParams, LayerMode, ILayerHandlerContribution } from '../interface';\nimport { Layer } from './layer';\nimport type { ILayerService } from '../interface/core';\nimport { container } from '../container';\nimport {\n DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution,\n VirtualLayerHandlerContribution\n} from './constants';\nimport { application } from '../application';\n\n@injectable()\nexport class DefaultLayerService implements ILayerService {\n declare layerMap: Map<IStage, ILayer[]>;\n declare staticLayerCountInEnv: number;\n declare dynamicLayerCountInEnv: number;\n declare inited: boolean;\n declare global: IGlobal;\n static idprefix: string = 'visactor_layer';\n static prefix_count: number = 0;\n\n static GenerateLayerId() {\n return `${DefaultLayerService.idprefix}_${DefaultLayerService.prefix_count++}`;\n }\n\n constructor() {\n this.layerMap = new Map();\n this.global = application.global;\n }\n\n tryInit() {\n if (!this.inited) {\n this.staticLayerCountInEnv = this.global.getStaticCanvasCount();\n this.dynamicLayerCountInEnv = this.global.getDynamicCanvasCount();\n this.inited = true;\n }\n }\n\n getStageLayer(stage: IStage) {\n return this.layerMap.get(stage);\n }\n\n getRecommendedLayerType(layerMode?: LayerMode): LayerMode {\n if (layerMode) {\n return layerMode;\n }\n // 默认推荐实体canvas,不行就推荐离屏canvas,最次才是virtual\n if (this.staticLayerCountInEnv !== 0) {\n return 'static';\n } else if (this.dynamicLayerCountInEnv !== 0) {\n return 'dynamic';\n }\n return 'virtual';\n }\n\n getLayerHandler(layerMode: LayerMode) {\n let layerHandler: ILayerHandlerContribution;\n if (layerMode === 'static') {\n layerHandler = container.get<ILayerHandlerContribution>(StaticLayerHandlerContribution);\n } else if (layerMode === 'dynamic') {\n layerHandler = container.get<ILayerHandlerContribution>(DynamicLayerHandlerContribution);\n } else {\n layerHandler = container.get<ILayerHandlerContribution>(VirtualLayerHandlerContribution);\n }\n return layerHandler;\n }\n\n createLayer(stage: IStage, options: Partial<ILayerParams> = { main: false }): ILayer {\n this.tryInit();\n let layerMode = this.getRecommendedLayerType(options.layerMode);\n layerMode = options.main ? 'static' : options.canvasId ? 'static' : layerMode;\n const layerHandler = this.getLayerHandler(layerMode);\n const layer = new Layer(stage, this.global, stage.window, {\n main: false,\n ...options,\n layerMode,\n canvasId: options.canvasId ?? DefaultLayerService.GenerateLayerId(),\n layerHandler\n });\n const stageLayers = this.layerMap.get(stage) || [];\n stageLayers.push(layer);\n this.layerMap.set(stage, stageLayers);\n this.staticLayerCountInEnv--;\n return layer;\n }\n\n prepareStageLayer(stage: IStage) {\n let mainHandler: ILayerHandlerContribution;\n stage.forEachChildren((l: ILayer) => {\n const handler = l.getNativeHandler();\n if (handler.type === 'virtual') {\n handler.mainHandler = mainHandler;\n mainHandler.secondaryHandlers.push(handler);\n } else {\n mainHandler = handler;\n mainHandler.secondaryHandlers = [];\n }\n });\n }\n\n releaseLayer(stage: IStage, layer: ILayer): void {\n layer.release();\n const stageLayers = this.layerMap.get(stage) || [];\n this.layerMap.set(\n stage,\n stageLayers.filter(l => l !== layer)\n );\n }\n\n layerCount(stage: IStage): number {\n return (this.layerMap.get(stage) || []).length;\n }\n restLayerCount(stage: IStage): number {\n // TODO: 设置精确的值\n if (this.global.env === 'browser') {\n return 10;\n }\n return 0;\n }\n}\n"]}
|
|
@@ -22,7 +22,5 @@ export declare class SplitRectAfterRenderContribution implements IRectRenderCont
|
|
|
22
22
|
drawShape(rect: IRect, context: IContext2d, x: number, y: number, doFill: boolean, doStroke: boolean, fVisible: boolean, sVisible: boolean, groupAttribute: Required<IRectGraphicAttribute>, drawContext: IDrawContext, fillCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, strokeCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean): void;
|
|
23
23
|
}
|
|
24
24
|
export declare const defaultRectRenderContribution: DefaultRectRenderContribution;
|
|
25
|
-
export declare const splitRectBeforeRenderContribution: SplitRectBeforeRenderContribution;
|
|
26
|
-
export declare const splitRectAfterRenderContribution: SplitRectAfterRenderContribution;
|
|
27
25
|
export declare const defaultRectTextureRenderContribution: import("./base-contribution-render").DefaultBaseTextureRenderContribution;
|
|
28
26
|
export declare const defaultRectBackgroundRenderContribution: import("./base-contribution-render").DefaultBaseBackgroundRenderContribution;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
4
|
+
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
5
|
+
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);
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
|
|
3
9
|
Object.defineProperty(exports, "__esModule", {
|
|
4
10
|
value: !0
|
|
5
|
-
}), exports.defaultRectBackgroundRenderContribution = exports.defaultRectTextureRenderContribution = exports.
|
|
11
|
+
}), exports.defaultRectBackgroundRenderContribution = exports.defaultRectTextureRenderContribution = exports.defaultRectRenderContribution = exports.SplitRectAfterRenderContribution = exports.SplitRectBeforeRenderContribution = exports.DefaultRectRenderContribution = void 0;
|
|
6
12
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), canvas_utils_1 = require("../../../../common/canvas-utils"), base_contribution_render_1 = require("./base-contribution-render"), rect_1 = require("../../../../common/shape/rect"), enums_1 = require("../../../../common/enums");
|
|
13
|
+
const vutils_1 = require("@visactor/vutils"), inversify_lite_1 = require("../../../../common/inversify-lite"), canvas_utils_1 = require("../../../../common/canvas-utils"), base_contribution_render_1 = require("./base-contribution-render"), rect_1 = require("../../../../common/shape/rect"), enums_1 = require("../../../../common/enums");
|
|
8
14
|
|
|
9
15
|
class DefaultRectRenderContribution {
|
|
10
16
|
constructor() {
|
|
@@ -49,7 +55,7 @@ class DefaultRectRenderContribution {
|
|
|
49
55
|
|
|
50
56
|
exports.DefaultRectRenderContribution = DefaultRectRenderContribution;
|
|
51
57
|
|
|
52
|
-
|
|
58
|
+
let SplitRectBeforeRenderContribution = class {
|
|
53
59
|
constructor() {
|
|
54
60
|
this.time = enums_1.BaseRenderContributionTime.beforeFillStroke, this.useStyle = !0,
|
|
55
61
|
this.order = 0;
|
|
@@ -58,11 +64,12 @@ class SplitRectBeforeRenderContribution {
|
|
|
58
64
|
const {stroke: stroke = groupAttribute.stroke} = group.attribute;
|
|
59
65
|
Array.isArray(stroke) && stroke.some((s => !1 === s)) && (doFillOrStroke.doStroke = !1);
|
|
60
66
|
}
|
|
61
|
-
}
|
|
67
|
+
};
|
|
62
68
|
|
|
69
|
+
SplitRectBeforeRenderContribution = __decorate([ (0, inversify_lite_1.injectable)() ], SplitRectBeforeRenderContribution),
|
|
63
70
|
exports.SplitRectBeforeRenderContribution = SplitRectBeforeRenderContribution;
|
|
64
71
|
|
|
65
|
-
|
|
72
|
+
let SplitRectAfterRenderContribution = class {
|
|
66
73
|
constructor() {
|
|
67
74
|
this.time = enums_1.BaseRenderContributionTime.afterFillStroke, this.useStyle = !0,
|
|
68
75
|
this.order = 0;
|
|
@@ -80,11 +87,10 @@ class SplitRectAfterRenderContribution {
|
|
|
80
87
|
context.stroke();
|
|
81
88
|
}
|
|
82
89
|
}
|
|
83
|
-
}
|
|
90
|
+
};
|
|
84
91
|
|
|
92
|
+
SplitRectAfterRenderContribution = __decorate([ (0, inversify_lite_1.injectable)() ], SplitRectAfterRenderContribution),
|
|
85
93
|
exports.SplitRectAfterRenderContribution = SplitRectAfterRenderContribution, exports.defaultRectRenderContribution = new DefaultRectRenderContribution,
|
|
86
|
-
exports.splitRectBeforeRenderContribution = new SplitRectBeforeRenderContribution,
|
|
87
|
-
exports.splitRectAfterRenderContribution = new SplitRectAfterRenderContribution,
|
|
88
94
|
exports.defaultRectTextureRenderContribution = base_contribution_render_1.defaultBaseTextureRenderContribution,
|
|
89
95
|
exports.defaultRectBackgroundRenderContribution = base_contribution_render_1.defaultBaseBackgroundRenderContribution;
|
|
90
96
|
//# sourceMappingURL=rect-contribution-render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/render/contributions/rect-contribution-render.ts"],"names":[],"mappings":"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","file":"rect-contribution-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { injectable } from '../../../../common/inversify-lite';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IRect,\n IRectGraphicAttribute,\n IThemeAttribute,\n IRectRenderContribution,\n IDrawContext\n} from '../../../../interface';\nimport { getScaledStroke } from '../../../../common/canvas-utils';\nimport {\n defaultBaseBackgroundRenderContribution,\n defaultBaseTextureRenderContribution\n} from './base-contribution-render';\nimport { createRectPath } from '../../../../common/shape/rect';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\n\nexport class DefaultRectRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const { outerBorder, innerBorder } = rect.attribute;\n const doOuterBorder = outerBorder && outerBorder.visible !== false;\n const doInnerBorder = innerBorder && innerBorder.visible !== false;\n if (!(doOuterBorder || doInnerBorder)) {\n return;\n }\n const {\n cornerRadius = rectAttribute.cornerRadius,\n opacity = rectAttribute.opacity,\n x: originX = rectAttribute.x,\n y: originY = rectAttribute.y,\n scaleX = rectAttribute.scaleX,\n scaleY = rectAttribute.scaleY,\n x1,\n y1\n } = rect.attribute;\n\n let { width, height } = rect.attribute;\n\n width = (width ?? x1 - x) || 0;\n height = (height ?? y1 - y) || 0;\n\n const doStrokeOuter = !!(outerBorder && outerBorder.stroke);\n const doStrokeInner = !!(innerBorder && innerBorder.stroke);\n\n if (doOuterBorder) {\n const { distance = rectAttribute.outerBorder.distance } = outerBorder;\n const d = getScaledStroke(context, distance as number, context.dpr);\n const nextX = x - d;\n const nextY = y - d;\n const dw = d * 2;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(nextX, nextY, width + dw, height + dw);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, nextX, nextY, width + dw, height + dw, cornerRadius);\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n if (strokeCb) {\n strokeCb(context, outerBorder, rectAttribute.outerBorder);\n } else if (doStrokeOuter) {\n // 存在stroke\n const lastOpacity = (rectAttribute.outerBorder as any).opacity;\n (rectAttribute.outerBorder as any).opacity = opacity;\n context.setStrokeStyle(\n rect,\n outerBorder,\n (originX - x) / scaleX,\n (originY - y) / scaleY,\n rectAttribute.outerBorder as any\n );\n (rectAttribute.outerBorder as any).opacity = lastOpacity;\n context.stroke();\n }\n }\n\n if (doInnerBorder) {\n const { distance = rectAttribute.innerBorder.distance } = innerBorder;\n const d = getScaledStroke(context, distance as number, context.dpr);\n const nextX = x + d;\n const nextY = y + d;\n const dw = d * 2;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(nextX, nextY, width - dw, height - dw);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, nextX, nextY, width - dw, height - dw, cornerRadius);\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n if (strokeCb) {\n strokeCb(context, innerBorder, rectAttribute.innerBorder);\n } else if (doStrokeInner) {\n // 存在stroke\n const lastOpacity = (rectAttribute.innerBorder as any).opacity;\n (rectAttribute.innerBorder as any).opacity = opacity;\n context.setStrokeStyle(\n rect,\n innerBorder,\n (originX - x) / scaleX,\n (originY - y) / scaleY,\n rectAttribute.innerBorder as any\n );\n (rectAttribute.innerBorder as any).opacity = lastOpacity;\n context.stroke();\n }\n }\n }\n}\n\nexport class SplitRectBeforeRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n group: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n groupAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n doFillOrStroke?: { doFill: boolean; doStroke: boolean }\n ) {\n const { stroke = groupAttribute.stroke } = group.attribute as any;\n\n // 数组且存在为false的项目,那就不绘制\n if (Array.isArray(stroke) && stroke.some(s => s === false)) {\n doFillOrStroke.doStroke = false;\n }\n }\n}\n\nexport class SplitRectAfterRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n groupAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const {\n width = groupAttribute.width,\n height = groupAttribute.height,\n stroke = groupAttribute.stroke\n } = rect.attribute as any;\n\n // 不是数组\n if (!(Array.isArray(stroke) && stroke.some(s => s === false))) {\n return;\n }\n\n context.setStrokeStyle(rect, rect.attribute, x, y, groupAttribute);\n // 单独处理每条边界,目前不考虑圆角\n context.beginPath();\n context.moveTo(x, y);\n // top\n if (stroke[0]) {\n context.lineTo(x + width, y);\n } else {\n context.moveTo(x + width, y);\n }\n // right\n if (stroke[1]) {\n context.lineTo(x + width, y + height);\n } else {\n context.moveTo(x + width, y + height);\n }\n // bottom\n if (stroke[2]) {\n context.lineTo(x, y + height);\n } else {\n context.moveTo(x, y + height);\n }\n // left\n if (stroke[3]) {\n // 没有close path是,起点和终点不连续,需要调整y保证不出现缺口\n const adjustY = stroke[0] ? y - context.lineWidth / 2 : y;\n context.lineTo(x, adjustY);\n } else {\n context.moveTo(x, y);\n }\n\n context.stroke();\n }\n}\n\nexport const defaultRectRenderContribution = new DefaultRectRenderContribution();\nexport const splitRectBeforeRenderContribution = new SplitRectBeforeRenderContribution();\nexport const splitRectAfterRenderContribution = new SplitRectAfterRenderContribution();\nexport const defaultRectTextureRenderContribution = defaultBaseTextureRenderContribution;\nexport const defaultRectBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render/contributions/rect-contribution-render.ts"],"names":[],"mappings":"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","file":"rect-contribution-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { injectable } from '../../../../common/inversify-lite';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IRect,\n IRectGraphicAttribute,\n IThemeAttribute,\n IRectRenderContribution,\n IDrawContext\n} from '../../../../interface';\nimport { getScaledStroke } from '../../../../common/canvas-utils';\nimport {\n defaultBaseBackgroundRenderContribution,\n defaultBaseTextureRenderContribution\n} from './base-contribution-render';\nimport { createRectPath } from '../../../../common/shape/rect';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\n\nexport class DefaultRectRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const { outerBorder, innerBorder } = rect.attribute;\n const doOuterBorder = outerBorder && outerBorder.visible !== false;\n const doInnerBorder = innerBorder && innerBorder.visible !== false;\n if (!(doOuterBorder || doInnerBorder)) {\n return;\n }\n const {\n cornerRadius = rectAttribute.cornerRadius,\n opacity = rectAttribute.opacity,\n x: originX = rectAttribute.x,\n y: originY = rectAttribute.y,\n scaleX = rectAttribute.scaleX,\n scaleY = rectAttribute.scaleY,\n x1,\n y1\n } = rect.attribute;\n\n let { width, height } = rect.attribute;\n\n width = (width ?? x1 - x) || 0;\n height = (height ?? y1 - y) || 0;\n\n const doStrokeOuter = !!(outerBorder && outerBorder.stroke);\n const doStrokeInner = !!(innerBorder && innerBorder.stroke);\n\n if (doOuterBorder) {\n const { distance = rectAttribute.outerBorder.distance } = outerBorder;\n const d = getScaledStroke(context, distance as number, context.dpr);\n const nextX = x - d;\n const nextY = y - d;\n const dw = d * 2;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(nextX, nextY, width + dw, height + dw);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, nextX, nextY, width + dw, height + dw, cornerRadius);\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n if (strokeCb) {\n strokeCb(context, outerBorder, rectAttribute.outerBorder);\n } else if (doStrokeOuter) {\n // 存在stroke\n const lastOpacity = (rectAttribute.outerBorder as any).opacity;\n (rectAttribute.outerBorder as any).opacity = opacity;\n context.setStrokeStyle(\n rect,\n outerBorder,\n (originX - x) / scaleX,\n (originY - y) / scaleY,\n rectAttribute.outerBorder as any\n );\n (rectAttribute.outerBorder as any).opacity = lastOpacity;\n context.stroke();\n }\n }\n\n if (doInnerBorder) {\n const { distance = rectAttribute.innerBorder.distance } = innerBorder;\n const d = getScaledStroke(context, distance as number, context.dpr);\n const nextX = x + d;\n const nextY = y + d;\n const dw = d * 2;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(nextX, nextY, width - dw, height - dw);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, nextX, nextY, width - dw, height - dw, cornerRadius);\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n if (strokeCb) {\n strokeCb(context, innerBorder, rectAttribute.innerBorder);\n } else if (doStrokeInner) {\n // 存在stroke\n const lastOpacity = (rectAttribute.innerBorder as any).opacity;\n (rectAttribute.innerBorder as any).opacity = opacity;\n context.setStrokeStyle(\n rect,\n innerBorder,\n (originX - x) / scaleX,\n (originY - y) / scaleY,\n rectAttribute.innerBorder as any\n );\n (rectAttribute.innerBorder as any).opacity = lastOpacity;\n context.stroke();\n }\n }\n }\n}\n\n@injectable()\nexport class SplitRectBeforeRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n group: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n groupAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n doFillOrStroke?: { doFill: boolean; doStroke: boolean }\n ) {\n const { stroke = groupAttribute.stroke } = group.attribute as any;\n\n // 数组且存在为false的项目,那就不绘制\n if (Array.isArray(stroke) && stroke.some(s => s === false)) {\n doFillOrStroke.doStroke = false;\n }\n }\n}\n\n@injectable()\nexport class SplitRectAfterRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n groupAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const {\n width = groupAttribute.width,\n height = groupAttribute.height,\n stroke = groupAttribute.stroke\n } = rect.attribute as any;\n\n // 不是数组\n if (!(Array.isArray(stroke) && stroke.some(s => s === false))) {\n return;\n }\n\n context.setStrokeStyle(rect, rect.attribute, x, y, groupAttribute);\n // 单独处理每条边界,目前不考虑圆角\n context.beginPath();\n context.moveTo(x, y);\n // top\n if (stroke[0]) {\n context.lineTo(x + width, y);\n } else {\n context.moveTo(x + width, y);\n }\n // right\n if (stroke[1]) {\n context.lineTo(x + width, y + height);\n } else {\n context.moveTo(x + width, y + height);\n }\n // bottom\n if (stroke[2]) {\n context.lineTo(x, y + height);\n } else {\n context.moveTo(x, y + height);\n }\n // left\n if (stroke[3]) {\n // 没有close path是,起点和终点不连续,需要调整y保证不出现缺口\n const adjustY = stroke[0] ? y - context.lineWidth / 2 : y;\n context.lineTo(x, adjustY);\n } else {\n context.moveTo(x, y);\n }\n\n context.stroke();\n }\n}\n\nexport const defaultRectRenderContribution = new DefaultRectRenderContribution();\n// export const splitRectBeforeRenderContribution = new SplitRectBeforeRenderContribution();\n// export const splitRectAfterRenderContribution = new SplitRectAfterRenderContribution();\nexport const defaultRectTextureRenderContribution = defaultBaseTextureRenderContribution;\nexport const defaultRectBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;\n"]}
|
|
@@ -11,7 +11,10 @@ let loadRectModule = !1;
|
|
|
11
11
|
exports.rectModule = new inversify_1.ContainerModule((bind => {
|
|
12
12
|
loadRectModule || (loadRectModule = !0, bind(rect_render_1.DefaultCanvasRectRender).toSelf().inSingletonScope(),
|
|
13
13
|
bind(symbol_1.RectRender).to(rect_render_1.DefaultCanvasRectRender).inSingletonScope(),
|
|
14
|
-
bind(symbol_1.GraphicRender).toService(symbol_1.RectRender), bind(
|
|
14
|
+
bind(symbol_1.GraphicRender).toService(symbol_1.RectRender), bind(contributions_1.SplitRectAfterRenderContribution).toSelf(),
|
|
15
|
+
bind(contributions_1.SplitRectBeforeRenderContribution).toSelf(), bind(constants_1.RectRenderContribution).toService(contributions_1.SplitRectAfterRenderContribution),
|
|
16
|
+
bind(constants_1.RectRenderContribution).toService(contributions_1.SplitRectBeforeRenderContribution),
|
|
17
|
+
bind(constants_1.RectRenderContribution).toService(contributions_1.DefaultBaseInteractiveRenderContribution),
|
|
15
18
|
(0, contribution_provider_1.bindContributionProvider)(bind, constants_1.RectRenderContribution));
|
|
16
19
|
}));
|
|
17
20
|
//# sourceMappingURL=rect-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/render/rect-module.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AACjF,yDAA4D;AAE5D,
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render/rect-module.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AACjF,yDAA4D;AAE5D,mDAIyB;AACzB,yDAA0F;AAC1F,+CAAwD;AACxD,qCAAgE;AAEhE,IAAI,cAAc,GAAG,KAAK,CAAC;AACd,QAAA,UAAU,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACnD,IAAI,cAAc,EAAE;QAClB,OAAO;KACR;IACD,cAAc,GAAG,IAAI,CAAC;IAEtB,IAAI,CAAC,qCAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,mBAAU,CAAC,CAAC,EAAE,CAAC,qCAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,sBAAa,CAAC,CAAC,SAAS,CAAC,mBAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,gDAAgC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChD,IAAI,CAAC,iDAAiC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjD,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,gDAAgC,CAAC,CAAC;IACzE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,iDAAiC,CAAC,CAAC;IAC1E,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,wDAAwC,CAAC,CAAC;IAEjF,IAAA,gDAAwB,EAAC,IAAI,EAAE,kCAAsB,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC","file":"rect-module.js","sourcesContent":["import { bindContributionProvider } from '../../../common/contribution-provider';\nimport { ContainerModule } from '../../../common/inversify';\nimport { DefaultCanvasArcRender } from './arc-render';\nimport {\n DefaultBaseInteractiveRenderContribution,\n SplitRectAfterRenderContribution,\n SplitRectBeforeRenderContribution\n} from './contributions';\nimport { ArcRenderContribution, RectRenderContribution } from './contributions/constants';\nimport { DefaultCanvasRectRender } from './rect-render';\nimport { ArcRender, GraphicRender, RectRender } from './symbol';\n\nlet loadRectModule = false;\nexport const rectModule = new ContainerModule(bind => {\n if (loadRectModule) {\n return;\n }\n loadRectModule = true;\n // rect 渲染器\n bind(DefaultCanvasRectRender).toSelf().inSingletonScope();\n bind(RectRender).to(DefaultCanvasRectRender).inSingletonScope();\n bind(GraphicRender).toService(RectRender);\n bind(SplitRectAfterRenderContribution).toSelf();\n bind(SplitRectBeforeRenderContribution).toSelf();\n bind(RectRenderContribution).toService(SplitRectAfterRenderContribution);\n bind(RectRenderContribution).toService(SplitRectBeforeRenderContribution);\n bind(RectRenderContribution).toService(DefaultBaseInteractiveRenderContribution);\n // rect 渲染器注入contributions\n bindContributionProvider(bind, RectRenderContribution);\n});\n"]}
|
|
@@ -21,7 +21,7 @@ const vutils_1 = require("@visactor/vutils"), inversify_lite_1 = require("../../
|
|
|
21
21
|
let DefaultCanvasRectRender = class extends base_render_1.BaseRender {
|
|
22
22
|
constructor(rectRenderContribitions) {
|
|
23
23
|
super(), this.rectRenderContribitions = rectRenderContribitions, this.type = "rect",
|
|
24
|
-
this.numberType = constants_1.RECT_NUMBER_TYPE, this.builtinContributions = [ contributions_1.defaultRectRenderContribution, contributions_1.defaultRectBackgroundRenderContribution, contributions_1.defaultRectTextureRenderContribution
|
|
24
|
+
this.numberType = constants_1.RECT_NUMBER_TYPE, this.builtinContributions = [ contributions_1.defaultRectRenderContribution, contributions_1.defaultRectBackgroundRenderContribution, contributions_1.defaultRectTextureRenderContribution ],
|
|
25
25
|
this.init(rectRenderContribitions);
|
|
26
26
|
}
|
|
27
27
|
drawShape(rect, context, x, y, drawContext, params, fillCb, strokeCb) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/render/rect-render.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA2C;AAC3C,mEAA2E;AAC3E,kDAAkD;AAClD,0DAA8D;AAC9D,qDAA4D;AAE5D,iFAA6E;AAe7E,yDAAmE;AACnE,mCAAiF;AACjF,+CAA2C;AAC3C,
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render/rect-render.ts"],"names":[],"mappings":"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","file":"rect-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { inject, injectable, named } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport { RECT_NUMBER_TYPE } from '../../../graphic/constants';\nimport { createRectPath } from '../../../common/shape/rect';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IRect,\n IThemeAttribute,\n IGraphicRender,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService,\n IRectRenderContribution,\n IContributionProvider,\n IRectGraphicAttribute\n} from '../../../interface';\nimport { RectRenderContribution } from './contributions/constants';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { BaseRender } from './base-render';\nimport {\n defaultRectBackgroundRenderContribution,\n defaultRectRenderContribution,\n defaultRectTextureRenderContribution\n} from './contributions';\n\n@injectable()\nexport class DefaultCanvasRectRender extends BaseRender<IRect> implements IGraphicRender {\n type = 'rect';\n numberType: number = RECT_NUMBER_TYPE;\n tempTheme: Required<IRectGraphicAttribute>;\n\n constructor(\n @inject(ContributionProvider)\n @named(RectRenderContribution)\n protected readonly rectRenderContribitions: IContributionProvider<IRectRenderContribution>\n ) {\n super();\n this.builtinContributions = [\n defaultRectRenderContribution,\n defaultRectBackgroundRenderContribution,\n defaultRectTextureRenderContribution\n ];\n this.init(rectRenderContribitions);\n }\n\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const rectAttribute = this.tempTheme ?? getTheme(rect, params?.theme).rect;\n const {\n fill = rectAttribute.fill,\n background,\n stroke = rectAttribute.stroke,\n cornerRadius = rectAttribute.cornerRadius,\n opacity = rectAttribute.opacity,\n fillOpacity = rectAttribute.fillOpacity,\n lineWidth = rectAttribute.lineWidth,\n strokeOpacity = rectAttribute.strokeOpacity,\n visible = rectAttribute.visible,\n x1,\n y1,\n x: originX = rectAttribute.x,\n y: originY = rectAttribute.y\n } = rect.attribute;\n let { width, height } = rect.attribute;\n width = (width ?? x1 - originX) || 0;\n height = (height ?? y1 - originY) || 0;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill, background);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(rect.valid && visible)) {\n return;\n }\n\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x, y, width, height);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, x, y, width, height, cornerRadius);\n }\n\n const doFillOrStroke = {\n doFill,\n doStroke\n };\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n this.beforeRenderStep(\n rect,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n rectAttribute,\n drawContext,\n fillCb,\n strokeCb,\n doFillOrStroke\n );\n\n if (doFillOrStroke.doFill) {\n if (fillCb) {\n fillCb(context, rect.attribute, rectAttribute);\n } else if (fVisible) {\n // 存在fill\n context.setCommonStyle(rect, rect.attribute, originX - x, originY - y, rectAttribute);\n context.fill();\n }\n }\n if (doFillOrStroke.doStroke) {\n if (strokeCb) {\n strokeCb(context, rect.attribute, rectAttribute);\n } else if (sVisible) {\n // 存在stroke\n context.setStrokeStyle(rect, rect.attribute, originX - x, originY - y, rectAttribute);\n context.stroke();\n }\n }\n\n this.afterRenderStep(\n rect,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n rectAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n\n draw(rect: IRect, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const rectAttribute = getTheme(rect, params?.theme).rect;\n this.tempTheme = rectAttribute;\n this._draw(rect, rectAttribute, false, drawContext, params);\n this.tempTheme = null;\n }\n}\n"]}
|
package/dist/index.js
CHANGED
|
@@ -12598,7 +12598,7 @@
|
|
|
12598
12598
|
var _a;
|
|
12599
12599
|
this.tryInit();
|
|
12600
12600
|
let layerMode = this.getRecommendedLayerType(options.layerMode);
|
|
12601
|
-
layerMode = options.canvasId ? 'static' : layerMode;
|
|
12601
|
+
layerMode = options.main ? 'static' : options.canvasId ? 'static' : layerMode;
|
|
12602
12602
|
const layerHandler = this.getLayerHandler(layerMode);
|
|
12603
12603
|
const layer = new Layer(stage, this.global, stage.window, Object.assign(Object.assign({ main: false }, options), { layerMode, canvasId: (_a = options.canvasId) !== null && _a !== void 0 ? _a : DefaultLayerService_1.GenerateLayerId(), layerHandler }));
|
|
12604
12604
|
const stageLayers = this.layerMap.get(stage) || [];
|
|
@@ -19395,7 +19395,7 @@
|
|
|
19395
19395
|
}
|
|
19396
19396
|
}
|
|
19397
19397
|
}
|
|
19398
|
-
class SplitRectBeforeRenderContribution {
|
|
19398
|
+
exports.SplitRectBeforeRenderContribution = class SplitRectBeforeRenderContribution {
|
|
19399
19399
|
constructor() {
|
|
19400
19400
|
this.time = exports.BaseRenderContributionTime.beforeFillStroke;
|
|
19401
19401
|
this.useStyle = true;
|
|
@@ -19407,8 +19407,11 @@
|
|
|
19407
19407
|
doFillOrStroke.doStroke = false;
|
|
19408
19408
|
}
|
|
19409
19409
|
}
|
|
19410
|
-
}
|
|
19411
|
-
|
|
19410
|
+
};
|
|
19411
|
+
exports.SplitRectBeforeRenderContribution = __decorate([
|
|
19412
|
+
injectable()
|
|
19413
|
+
], exports.SplitRectBeforeRenderContribution);
|
|
19414
|
+
exports.SplitRectAfterRenderContribution = class SplitRectAfterRenderContribution {
|
|
19412
19415
|
constructor() {
|
|
19413
19416
|
this.time = exports.BaseRenderContributionTime.afterFillStroke;
|
|
19414
19417
|
this.useStyle = true;
|
|
@@ -19449,10 +19452,11 @@
|
|
|
19449
19452
|
}
|
|
19450
19453
|
context.stroke();
|
|
19451
19454
|
}
|
|
19452
|
-
}
|
|
19455
|
+
};
|
|
19456
|
+
exports.SplitRectAfterRenderContribution = __decorate([
|
|
19457
|
+
injectable()
|
|
19458
|
+
], exports.SplitRectAfterRenderContribution);
|
|
19453
19459
|
const defaultRectRenderContribution = new DefaultRectRenderContribution();
|
|
19454
|
-
const splitRectBeforeRenderContribution = new SplitRectBeforeRenderContribution();
|
|
19455
|
-
const splitRectAfterRenderContribution = new SplitRectAfterRenderContribution();
|
|
19456
19460
|
const defaultRectTextureRenderContribution = defaultBaseTextureRenderContribution;
|
|
19457
19461
|
const defaultRectBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;
|
|
19458
19462
|
|
|
@@ -21038,9 +21042,7 @@
|
|
|
21038
21042
|
this.builtinContributions = [
|
|
21039
21043
|
defaultRectRenderContribution,
|
|
21040
21044
|
defaultRectBackgroundRenderContribution,
|
|
21041
|
-
defaultRectTextureRenderContribution
|
|
21042
|
-
splitRectAfterRenderContribution,
|
|
21043
|
-
splitRectBeforeRenderContribution
|
|
21045
|
+
defaultRectTextureRenderContribution
|
|
21044
21046
|
];
|
|
21045
21047
|
this.init(rectRenderContribitions);
|
|
21046
21048
|
}
|
|
@@ -26363,6 +26365,10 @@
|
|
|
26363
26365
|
bind(exports.DefaultCanvasRectRender).toSelf().inSingletonScope();
|
|
26364
26366
|
bind(RectRender).to(exports.DefaultCanvasRectRender).inSingletonScope();
|
|
26365
26367
|
bind(GraphicRender).toService(RectRender);
|
|
26368
|
+
bind(exports.SplitRectAfterRenderContribution).toSelf();
|
|
26369
|
+
bind(exports.SplitRectBeforeRenderContribution).toSelf();
|
|
26370
|
+
bind(RectRenderContribution).toService(exports.SplitRectAfterRenderContribution);
|
|
26371
|
+
bind(RectRenderContribution).toService(exports.SplitRectBeforeRenderContribution);
|
|
26366
26372
|
bind(RectRenderContribution).toService(exports.DefaultBaseInteractiveRenderContribution);
|
|
26367
26373
|
bindContributionProvider(bind, RectRenderContribution);
|
|
26368
26374
|
});
|
|
@@ -27336,8 +27342,6 @@
|
|
|
27336
27342
|
exports.SYMBOL_NUMBER_TYPE = SYMBOL_NUMBER_TYPE;
|
|
27337
27343
|
exports.SegContext = SegContext;
|
|
27338
27344
|
exports.ShadowRoot = ShadowRoot;
|
|
27339
|
-
exports.SplitRectAfterRenderContribution = SplitRectAfterRenderContribution;
|
|
27340
|
-
exports.SplitRectBeforeRenderContribution = SplitRectBeforeRenderContribution;
|
|
27341
27345
|
exports.Stage = Stage;
|
|
27342
27346
|
exports.StaticLayerHandlerContribution = StaticLayerHandlerContribution;
|
|
27343
27347
|
exports.Step = Step$1;
|
|
@@ -27574,8 +27578,6 @@
|
|
|
27574
27578
|
exports.splitPath = splitPath;
|
|
27575
27579
|
exports.splitPolygon = splitPolygon;
|
|
27576
27580
|
exports.splitRect = splitRect;
|
|
27577
|
-
exports.splitRectAfterRenderContribution = splitRectAfterRenderContribution;
|
|
27578
|
-
exports.splitRectBeforeRenderContribution = splitRectBeforeRenderContribution;
|
|
27579
27581
|
exports.splitToGrids = splitToGrids;
|
|
27580
27582
|
exports.strCommandMap = strCommandMap;
|
|
27581
27583
|
exports.strokeVisible = strokeVisible;
|