@visactor/vrender-kits 0.17.0-alpha.8 → 0.17.0
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/canvas.js +2 -4
- package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
- package/cjs/canvas/contributions/browser/context.d.ts +5 -1
- package/cjs/canvas/contributions/browser/context.js +17 -16
- package/cjs/canvas/contributions/browser/context.js.map +1 -1
- package/cjs/canvas/contributions/feishu/canvas.js +2 -1
- package/cjs/canvas/contributions/feishu/index.js +1 -2
- package/cjs/canvas/contributions/lynx/canvas.d.ts +1 -0
- package/cjs/canvas/contributions/lynx/canvas.js +7 -0
- package/cjs/canvas/contributions/lynx/canvas.js.map +1 -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/canvas/contributions/node/canvas.js +3 -2
- package/cjs/canvas/contributions/node/canvas.js.map +1 -1
- package/cjs/canvas/contributions/node/context.js +1 -1
- package/cjs/env/all.js +9 -5
- package/cjs/env/all.js.map +1 -1
- package/cjs/env/browser.d.ts +2 -1
- package/cjs/env/browser.js +13 -4
- package/cjs/env/browser.js.map +1 -1
- package/cjs/env/contributions/browser-contribution.js +2 -2
- package/cjs/env/contributions/browser-contribution.js.map +1 -1
- package/cjs/env/contributions/lynx-contribution.js +2 -1
- package/cjs/env/contributions/lynx-contribution.js.map +1 -1
- package/cjs/env/contributions/module.d.ts +1 -8
- package/cjs/env/contributions/module.js +1 -25
- package/cjs/env/contributions/module.js.map +1 -1
- package/cjs/env/contributions/node-contribution.js +1 -1
- package/cjs/env/contributions/node-contribution.js.map +1 -1
- package/cjs/env/contributions/wx-contribution.js +1 -2
- package/cjs/env/feishu.d.ts +2 -1
- package/cjs/env/feishu.js +13 -4
- package/cjs/env/feishu.js.map +1 -1
- package/cjs/env/index.d.ts +0 -1
- package/cjs/env/index.js +2 -3
- package/cjs/env/index.js.map +1 -1
- package/cjs/env/lynx.d.ts +2 -1
- package/cjs/env/lynx.js +13 -4
- package/cjs/env/lynx.js.map +1 -1
- package/cjs/env/node.d.ts +2 -1
- package/cjs/env/node.js +13 -4
- package/cjs/env/node.js.map +1 -1
- package/cjs/env/taro.d.ts +2 -1
- package/cjs/env/taro.js +13 -4
- package/cjs/env/taro.js.map +1 -1
- package/cjs/env/wx.d.ts +2 -1
- package/cjs/env/wx.js +13 -4
- package/cjs/env/wx.js.map +1 -1
- package/cjs/event/extension/drag.js +2 -1
- package/cjs/event/extension/gesture.d.ts +5 -1
- package/cjs/event/extension/gesture.js +10 -4
- package/cjs/event/extension/gesture.js.map +1 -1
- package/cjs/event/extension/interface.d.ts +42 -0
- package/cjs/event/extension/interface.js +6 -0
- package/cjs/event/extension/interface.js.map +1 -0
- package/cjs/index.d.ts +0 -1
- package/cjs/index.js +1 -2
- package/cjs/index.js.map +1 -1
- package/cjs/picker/canvas-picker-service.d.ts +1 -13
- package/cjs/picker/canvas-picker-service.js +7 -28
- package/cjs/picker/canvas-picker-service.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/module.js +16 -18
- package/cjs/picker/contributions/canvas-picker/module.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/polygon-picker.js +1 -0
- package/cjs/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/module.js +10 -11
- package/cjs/picker/contributions/math-picker/module.js.map +1 -1
- package/cjs/picker/index.d.ts +1 -1
- package/cjs/picker/index.js +1 -21
- package/cjs/picker/index.js.map +1 -1
- package/cjs/picker/math-picker-service.d.ts +1 -2
- package/cjs/picker/math-picker-service.js +4 -7
- package/cjs/picker/math-picker-service.js.map +1 -1
- package/cjs/render/contributions/rough/rough-rect.js +3 -1
- package/cjs/render/contributions/rough/rough-rect.js.map +1 -1
- package/cjs/window/contributions/browser-contribution.d.ts +6 -3
- package/cjs/window/contributions/browser-contribution.js +13 -14
- package/cjs/window/contributions/browser-contribution.js.map +1 -1
- package/cjs/window/contributions/lynx-contribution.js +3 -1
- package/cjs/window/contributions/lynx-contribution.js.map +1 -1
- package/dist/index.js +1215 -1215
- package/dist/index.min.js +1 -1
- package/es/canvas/contributions/browser/canvas.js +2 -4
- package/es/canvas/contributions/browser/canvas.js.map +1 -1
- package/es/canvas/contributions/browser/context.d.ts +5 -1
- package/es/canvas/contributions/browser/context.js +18 -17
- package/es/canvas/contributions/browser/context.js.map +1 -1
- package/es/canvas/contributions/feishu/canvas.js +2 -1
- package/es/canvas/contributions/feishu/index.js +1 -2
- package/es/canvas/contributions/lynx/canvas.d.ts +1 -0
- package/es/canvas/contributions/lynx/canvas.js +7 -0
- package/es/canvas/contributions/lynx/canvas.js.map +1 -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/canvas/contributions/node/canvas.js +3 -2
- package/es/canvas/contributions/node/canvas.js.map +1 -1
- package/es/canvas/contributions/node/context.js +1 -1
- package/es/env/all.js +7 -5
- package/es/env/all.js.map +1 -1
- package/es/env/browser.d.ts +2 -1
- package/es/env/browser.js +14 -5
- package/es/env/browser.js.map +1 -1
- package/es/env/contributions/browser-contribution.js +2 -2
- package/es/env/contributions/browser-contribution.js.map +1 -1
- package/es/env/contributions/lynx-contribution.js +2 -1
- package/es/env/contributions/lynx-contribution.js.map +1 -1
- package/es/env/contributions/module.d.ts +1 -8
- package/es/env/contributions/module.js +1 -42
- package/es/env/contributions/module.js.map +1 -1
- package/es/env/contributions/node-contribution.js +1 -1
- package/es/env/contributions/node-contribution.js.map +1 -1
- package/es/env/contributions/wx-contribution.js +1 -2
- package/es/env/feishu.d.ts +2 -1
- package/es/env/feishu.js +14 -5
- package/es/env/feishu.js.map +1 -1
- package/es/env/index.d.ts +0 -1
- package/es/env/index.js +0 -2
- package/es/env/index.js.map +1 -1
- package/es/env/lynx.d.ts +2 -1
- package/es/env/lynx.js +13 -4
- package/es/env/lynx.js.map +1 -1
- package/es/env/node.d.ts +2 -1
- package/es/env/node.js +14 -7
- package/es/env/node.js.map +1 -1
- package/es/env/taro.d.ts +2 -1
- package/es/env/taro.js +14 -5
- package/es/env/taro.js.map +1 -1
- package/es/env/wx.d.ts +2 -1
- package/es/env/wx.js +14 -5
- package/es/env/wx.js.map +1 -1
- package/es/event/extension/drag.js +2 -1
- package/es/event/extension/gesture.d.ts +5 -1
- package/es/event/extension/gesture.js +10 -4
- package/es/event/extension/gesture.js.map +1 -1
- package/es/event/extension/interface.d.ts +42 -0
- package/es/event/extension/interface.js +2 -0
- package/es/event/extension/interface.js.map +1 -0
- package/es/index.d.ts +0 -1
- package/es/index.js +0 -2
- package/es/index.js.map +1 -1
- package/es/picker/canvas-picker-service.d.ts +1 -13
- package/es/picker/canvas-picker-service.js +8 -23
- package/es/picker/canvas-picker-service.js.map +1 -1
- package/es/picker/contributions/canvas-picker/module.js +17 -25
- package/es/picker/contributions/canvas-picker/module.js.map +1 -1
- package/es/picker/contributions/canvas-picker/polygon-picker.js +1 -0
- package/es/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/module.js +10 -15
- package/es/picker/contributions/math-picker/module.js.map +1 -1
- package/es/picker/index.d.ts +1 -1
- package/es/picker/index.js +1 -2
- package/es/picker/index.js.map +1 -1
- package/es/picker/math-picker-service.d.ts +1 -2
- package/es/picker/math-picker-service.js +5 -7
- package/es/picker/math-picker-service.js.map +1 -1
- package/es/render/contributions/rough/rough-rect.js +3 -1
- package/es/render/contributions/rough/rough-rect.js.map +1 -1
- package/es/window/contributions/browser-contribution.d.ts +6 -3
- package/es/window/contributions/browser-contribution.js +13 -14
- package/es/window/contributions/browser-contribution.js.map +1 -1
- package/es/window/contributions/lynx-contribution.js +3 -1
- package/es/window/contributions/lynx-contribution.js.map +1 -1
- package/package.json +5 -5
- package/cjs/env/contributions/browser-module.d.ts +0 -2
- package/cjs/env/contributions/browser-module.js +0 -13
- package/cjs/env/contributions/browser-module.js.map +0 -1
- package/cjs/env/contributions/feishu-module.d.ts +0 -2
- package/cjs/env/contributions/feishu-module.js +0 -12
- package/cjs/env/contributions/feishu-module.js.map +0 -1
- package/cjs/picker/module.d.ts +0 -6
- package/cjs/picker/module.js +0 -30
- package/cjs/picker/module.js.map +0 -1
- package/es/env/contributions/browser-module.d.ts +0 -2
- package/es/env/contributions/browser-module.js +0 -8
- package/es/env/contributions/browser-module.js.map +0 -1
- package/es/env/contributions/feishu-module.d.ts +0 -2
- package/es/env/contributions/feishu-module.js +0 -8
- package/es/env/contributions/feishu-module.js.map +0 -1
- package/es/picker/module.d.ts +0 -6
- package/es/picker/module.js +0 -28
- package/es/picker/module.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/picker/contributions/canvas-picker/module.ts"],"names":[],"mappings":";;AAAA,yDAAmF;AACnF,mDAA4D;AAC5D,+CAAwD;AACxD,6CAAsD;AACtD,+CAAwD;AACxD,iDAA0D;AAC1D,+CAAwD;AACxD,+CAAwD;AACxD,mDAA4D;AAC5D,+CAAwD;AACxD,4CAkBsB;AACtB,qDAA8D;AAC9D,uDAAgE;AAChE,iDAA0D;AAC1D,mDAA4D;AAC5D,yDAAkE;AAClE,iDAA0D;AAC1D,iDAA0D;AAE1D,kBAAe,IAAI,8BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAEnE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/picker/contributions/canvas-picker/module.ts"],"names":[],"mappings":";;AAAA,yDAAmF;AACnF,mDAA4D;AAC5D,+CAAwD;AACxD,6CAAsD;AACtD,+CAAwD;AACxD,iDAA0D;AAC1D,+CAAwD;AACxD,+CAAwD;AACxD,mDAA4D;AAC5D,+CAAwD;AACxD,4CAkBsB;AACtB,qDAA8D;AAC9D,uDAAgE;AAChE,iDAA0D;AAC1D,mDAA4D;AAC5D,yDAAkE;AAClE,iDAA0D;AAC1D,iDAA0D;AAE1D,kBAAe,IAAI,8BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAEnE,IAAI,CAAC,8BAAkB,CAAC,CAAC,EAAE,CAAC,yCAAyB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1E,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,4BAAgB,CAAC,CAAC,EAAE,CAAC,qCAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,8BAAkB,CAAC,CAAC,EAAE,CAAC,yCAAyB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1E,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,2BAAe,CAAC,CAAC,EAAE,CAAC,mCAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,2BAAe,CAAC,CAAC;IAG1D,IAAI,CAAC,4BAAgB,CAAC,CAAC,EAAE,CAAC,qCAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,6BAAiB,CAAC,CAAC,EAAE,CAAC,uCAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACxE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAG5D,IAAI,CAAC,4BAAgB,CAAC,CAAC,EAAE,CAAC,qCAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,4BAAgB,CAAC,CAAC,EAAE,CAAC,qCAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,8BAAkB,CAAC,CAAC,EAAE,CAAC,yCAAyB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1E,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,8BAAkB,CAAC,CAAC;IAG7D,IAAI,CAAC,4BAAgB,CAAC,CAAC,EAAE,CAAC,qCAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAG3D,IAAI,CAAC,+BAAmB,CAAC,CAAC,EAAE,CAAC,2CAA0B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5E,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,+BAAmB,CAAC,CAAC;IAG9D,IAAI,CAAC,iCAAqB,CAAC,CAAC,EAAE,CAAC,+CAA4B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChF,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,iCAAqB,CAAC,CAAC;IAGhE,IAAI,CAAC,6BAAiB,CAAC,CAAC,EAAE,CAAC,uCAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACxE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAG5D,IAAI,CAAC,gCAAoB,CAAC,CAAC,EAAE,CAAC,6CAA2B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9E,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,gCAAoB,CAAC,CAAC;IAE/D,IAAI,CAAC,6BAAiB,CAAC,CAAC,EAAE,CAAC,uCAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACxE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAE5D,IAAI,CAAC,6BAAiB,CAAC,CAAC,EAAE,CAAC,uCAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACxE,IAAI,CAAC,oCAAwB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAE5D,IAAA,uCAAwB,EAAC,IAAI,EAAE,oCAAwB,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC","file":"module.js","sourcesContent":["import { ContainerModule, bindContributionProvider } from '@visactor/vrender-core';\nimport { DefaultCanvasCirclePicker } from './circle-picker';\nimport { DefaultCanvasRectPicker } from './rect-picker';\nimport { DefaultCanvasArcPicker } from './arc-picker';\nimport { DefaultCanvasAreaPicker } from './area-picker';\nimport { DefaultCanvasImagePicker } from './image-picker';\nimport { DefaultCanvasLinePicker } from './line-picker';\nimport { DefaultCanvasPathPicker } from './path-picker';\nimport { DefaultCanvasSymbolPicker } from './symbol-picker';\nimport { DefaultCanvasTextPicker } from './text-picker';\nimport {\n CanvasArc3dPicker,\n CanvasArcPicker,\n CanvasAreaPicker,\n CanvasCirclePicker,\n CanvasGlyphPicker,\n CanvasGroupPicker,\n CanvasImagePicker,\n CanvasLinePicker,\n CanvasPathPicker,\n CanvasPickerContribution,\n CanvasPolygonPicker,\n CanvasPyramid3dPicker,\n CanvasRect3dPicker,\n CanvasRectPicker,\n CanvasRichTextPicker,\n CanvasSymbolPicker,\n CanvasTextPicker\n} from '../constants';\nimport { DefaultCanvasPolygonPicker } from './polygon-picker';\nimport { DefaultCanvasRichTextPicker } from './richtext-picker';\nimport { DefaultCanvasGlyphPicker } from './glyph-picker';\nimport { DefaultCanvasRect3dPicker } from './rect3d-picker';\nimport { DefaultCanvasPyramid3dPicker } from './pyramid3d-picker';\nimport { DefaultCanvasArc3dPicker } from './arc3d-picker';\nimport { DefaultCanvasGroupPicker } from './group-picker';\n\nexport default new ContainerModule((bind, unbind, isBound, rebind) => {\n // circle picker\n bind(CanvasCirclePicker).to(DefaultCanvasCirclePicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasCirclePicker);\n\n // reat picker\n bind(CanvasRectPicker).to(DefaultCanvasRectPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasRectPicker);\n\n // reat3d picker\n bind(CanvasRect3dPicker).to(DefaultCanvasRect3dPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasRect3dPicker);\n\n // arc picker\n bind(CanvasArcPicker).to(DefaultCanvasArcPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasArcPicker);\n\n // area picker\n bind(CanvasAreaPicker).to(DefaultCanvasAreaPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasAreaPicker);\n\n // image picker\n bind(CanvasImagePicker).to(DefaultCanvasImagePicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasImagePicker);\n\n // line picker\n bind(CanvasLinePicker).to(DefaultCanvasLinePicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasLinePicker);\n\n // path picker\n bind(CanvasPathPicker).to(DefaultCanvasPathPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasPathPicker);\n\n // symbol picker\n bind(CanvasSymbolPicker).to(DefaultCanvasSymbolPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasSymbolPicker);\n\n // text picker\n bind(CanvasTextPicker).to(DefaultCanvasTextPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasTextPicker);\n\n // polygon picker\n bind(CanvasPolygonPicker).to(DefaultCanvasPolygonPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasPolygonPicker);\n\n // pyramid3d picker\n bind(CanvasPyramid3dPicker).to(DefaultCanvasPyramid3dPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasPyramid3dPicker);\n\n // arc3d picker\n bind(CanvasArc3dPicker).to(DefaultCanvasArc3dPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasArc3dPicker);\n\n // richtext picker\n bind(CanvasRichTextPicker).to(DefaultCanvasRichTextPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasRichTextPicker);\n // glyph picker\n bind(CanvasGlyphPicker).to(DefaultCanvasGlyphPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasGlyphPicker);\n // group picker\n bind(CanvasGroupPicker).to(DefaultCanvasGroupPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(CanvasGroupPicker);\n\n bindContributionProvider(bind, CanvasPickerContribution);\n});\n"]}
|
|
@@ -24,6 +24,7 @@ let DefaultCanvasPolygonPicker = class {
|
|
|
24
24
|
}
|
|
25
25
|
contains(polygon, point, params) {
|
|
26
26
|
if (!polygon.AABBBounds.contains(point.x, point.y)) return !1;
|
|
27
|
+
if ("imprecise" === polygon.attribute.pickMode) return !0;
|
|
27
28
|
const {pickContext: pickContext} = null != params ? params : {};
|
|
28
29
|
if (!pickContext) return !1;
|
|
29
30
|
const polygonAttribute = (0, vrender_core_1.getTheme)(polygon).polygon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/picker/contributions/canvas-picker/polygon-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAA0G;AAcnG,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAIrC,YAAmD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAHjF,SAAI,GAAW,SAAS,CAAC;QACzB,eAAU,GAAW,kCAAmB,CAAC;IAE2C,CAAC;IAErF,QAAQ,CAAC,OAAiB,EAAE,KAAa,EAAE,MAAoB;QAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;QAGD,MAAM,gBAAgB,GAAG,IAAA,uBAAQ,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC;QACnD,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QAE3E,WAAW,CAAC,mBAAmB,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE;YAExC,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC5D;aAAM;YACL,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YACpD,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YACb,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YAEb,WAAW,CAAC,sBAAsB,EAAE,CAAC;SACtC;QAGD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,SAAS,CAC3B,OAAO,EACP,WAAW,EACX,CAAC,EACD,CAAC,EACD,EAAS,EACT,IAAI,EACJ,CACE,OAAmB,EACnB,aAA0D,EAC1D,cAA+B,EAC/B,EAAE;YAEF,IAAI,MAAM,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;YACD,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC;QAChB,CAAC,EACD,CACE,OAAmB,EACnB,aAA0D,EAC1D,cAA+B,EAC/B,EAAE;YAEF,IAAI,MAAM,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;YACD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC;YACtE,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;YAClC,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;QAEF,WAAW,CAAC,sBAAsB,EAAE,CAAC;QAErC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"sources":["../src/picker/contributions/canvas-picker/polygon-picker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAA0G;AAcnG,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAIrC,YAAmD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAHjF,SAAI,GAAW,SAAS,CAAC;QACzB,eAAU,GAAW,kCAAmB,CAAC;IAE2C,CAAC;IAErF,QAAQ,CAAC,OAAiB,EAAE,KAAa,EAAE,MAAoB;QAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,WAAW,EAAE;YAC9C,OAAO,IAAI,CAAC;SACb;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;QAGD,MAAM,gBAAgB,GAAG,IAAA,uBAAQ,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC;QACnD,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QAE3E,WAAW,CAAC,mBAAmB,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE;YAExC,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC5D;aAAM;YACL,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YACpD,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YACb,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YAEb,WAAW,CAAC,sBAAsB,EAAE,CAAC;SACtC;QAGD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,SAAS,CAC3B,OAAO,EACP,WAAW,EACX,CAAC,EACD,CAAC,EACD,EAAS,EACT,IAAI,EACJ,CACE,OAAmB,EACnB,aAA0D,EAC1D,cAA+B,EAC/B,EAAE;YAEF,IAAI,MAAM,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;YACD,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC;QAChB,CAAC,EACD,CACE,OAAmB,EACnB,aAA0D,EAC1D,cAA+B,EAC/B,EAAE;YAEF,IAAI,MAAM,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;YACD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC;YACtE,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;YAClC,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;QAEF,WAAW,CAAC,sBAAsB,EAAE,CAAC;QAErC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA/EY,0BAA0B;IADtC,IAAA,yBAAU,GAAE;IAKE,WAAA,IAAA,qBAAM,EAAC,4BAAa,CAAC,CAAA;;GAJvB,0BAA0B,CA+EtC;AA/EY,gEAA0B","file":"polygon-picker.js","sourcesContent":["import { inject, injectable, getTheme, PolygonRender, POLYGON_NUMBER_TYPE } from '@visactor/vrender-core';\nimport type { IPoint } from '@visactor/vutils';\nimport type {\n IContext2d,\n IMarkAttribute,\n IGraphicAttribute,\n IThemeAttribute,\n IPolygon,\n IGraphicPicker,\n IGraphicRender,\n IPickParams\n} from '@visactor/vrender-core';\n\n@injectable()\nexport class DefaultCanvasPolygonPicker implements IGraphicPicker {\n type: string = 'polygon';\n numberType: number = POLYGON_NUMBER_TYPE;\n\n constructor(@inject(PolygonRender) public readonly canvasRenderer: IGraphicRender) {}\n\n contains(polygon: IPolygon, point: IPoint, params?: IPickParams): boolean {\n if (!polygon.AABBBounds.contains(point.x, point.y)) {\n return false;\n }\n\n if (polygon.attribute.pickMode === 'imprecise') {\n return true;\n }\n\n const { pickContext } = params ?? {};\n if (!pickContext) {\n return false;\n }\n\n // const polygonAttribute = graphicService.themeService.getCurrentTheme().pathAttribute;\n const polygonAttribute = getTheme(polygon).polygon;\n let { x = polygonAttribute.x, y = polygonAttribute.y } = polygon.attribute;\n\n pickContext.highPerformanceSave();\n if (!polygon.transMatrix.onlyTranslate()) {\n // 性能较差\n x = 0;\n y = 0;\n pickContext.transformFromMatrix(polygon.transMatrix, true);\n } else {\n const point = polygon.getOffsetXY(polygonAttribute);\n x += point.x;\n y += point.y;\n // 当前context有rotate/scale,重置matrix\n pickContext.setTransformForCurrent();\n }\n\n // 详细形状判断\n let picked = false;\n this.canvasRenderer.drawShape(\n polygon,\n pickContext,\n x,\n y,\n {} as any,\n null,\n (\n context: IContext2d,\n pathAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => {\n // 选中后面就不需要再走逻辑了\n if (picked) {\n return true;\n }\n picked = context.isPointInPath(point.x, point.y);\n return picked;\n },\n (\n context: IContext2d,\n pathAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => {\n // 选中后面就不需要再走逻辑了\n if (picked) {\n return true;\n }\n const lineWidth = pathAttribute.lineWidth || themeAttribute.lineWidth;\n pickContext.lineWidth = lineWidth;\n picked = context.isPointInStroke(point.x, point.y);\n return picked;\n }\n );\n\n pickContext.highPerformanceRestore();\n\n return picked;\n }\n}\n"]}
|
|
@@ -7,25 +7,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
const vrender_core_1 = require("@visactor/vrender-core"), path_picker_1 = require("./path-picker"), constants_1 = require("../constants"), circle_picker_1 = require("./circle-picker"), rect_picker_1 = require("./rect-picker"), arc_picker_1 = require("./arc-picker"), area_picker_1 = require("./area-picker"), line_picker_1 = require("./line-picker"), symbol_picker_1 = require("./symbol-picker"), text_picker_1 = require("./text-picker"), polygon_picker_1 = require("./polygon-picker"), glyph_picker_1 = require("./glyph-picker");
|
|
8
8
|
|
|
9
9
|
exports.default = new vrender_core_1.ContainerModule((bind => {
|
|
10
|
-
bind(
|
|
10
|
+
bind(constants_1.MathCirclePicker).to(circle_picker_1.DefaultMathCirclePicker).inSingletonScope(),
|
|
11
11
|
bind(constants_1.MathPickerContribution).toService(constants_1.MathCirclePicker),
|
|
12
|
-
bind(
|
|
12
|
+
bind(constants_1.MathRectPicker).to(rect_picker_1.DefaultMathRectPicker).inSingletonScope(),
|
|
13
13
|
bind(constants_1.MathPickerContribution).toService(constants_1.MathRectPicker),
|
|
14
|
-
bind(
|
|
15
|
-
bind(constants_1.MathPickerContribution).toService(constants_1.MathArcPicker), bind(
|
|
16
|
-
bind(constants_1.MathAreaPicker).toService(area_picker_1.DefaultMathAreaPicker),
|
|
14
|
+
bind(constants_1.MathArcPicker).to(arc_picker_1.DefaultMathArcPicker).inSingletonScope(),
|
|
15
|
+
bind(constants_1.MathPickerContribution).toService(constants_1.MathArcPicker), bind(constants_1.MathAreaPicker).to(area_picker_1.DefaultMathAreaPicker).inSingletonScope(),
|
|
17
16
|
bind(constants_1.MathPickerContribution).toService(constants_1.MathAreaPicker),
|
|
18
|
-
bind(
|
|
17
|
+
bind(constants_1.MathLinePicker).to(line_picker_1.DefaultMathLinePicker).inSingletonScope(),
|
|
19
18
|
bind(constants_1.MathPickerContribution).toService(constants_1.MathLinePicker),
|
|
20
|
-
bind(
|
|
19
|
+
bind(constants_1.MathPathPicker).to(path_picker_1.DefaultMathPathPicker).inSingletonScope(),
|
|
21
20
|
bind(constants_1.MathPickerContribution).toService(constants_1.MathPathPicker),
|
|
22
|
-
bind(
|
|
21
|
+
bind(constants_1.MathSymbolPicker).to(symbol_picker_1.DefaultMathSymbolPicker).inSingletonScope(),
|
|
23
22
|
bind(constants_1.MathPickerContribution).toService(constants_1.MathSymbolPicker),
|
|
24
|
-
bind(
|
|
23
|
+
bind(constants_1.MathTextPicker).to(text_picker_1.DefaultMathTextPicker).inSingletonScope(),
|
|
25
24
|
bind(constants_1.MathPickerContribution).toService(constants_1.MathTextPicker),
|
|
26
|
-
bind(
|
|
25
|
+
bind(constants_1.MathPolygonPicker).to(polygon_picker_1.DefaultMathPolygonPicker).inSingletonScope(),
|
|
27
26
|
bind(constants_1.MathPickerContribution).toService(constants_1.MathPolygonPicker),
|
|
28
|
-
bind(
|
|
27
|
+
bind(constants_1.MathGlyphPicker).to(glyph_picker_1.DefaultMathGlyphPicker).inSingletonScope(),
|
|
29
28
|
bind(glyph_picker_1.DefaultMathGlyphPicker).toService(constants_1.MathGlyphPicker),
|
|
30
29
|
(0, vrender_core_1.bindContributionProvider)(bind, constants_1.MathPickerContribution);
|
|
31
30
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/picker/contributions/math-picker/module.ts"],"names":[],"mappings":";;AAAA,yDAAmF;AACnF,+CAAsD;AACtD,4CAYsB;AACtB,mDAA0D;AAC1D,+CAAsD;AACtD,6CAAoD;AACpD,+CAAsD;AACtD,+CAAsD;AACtD,mDAA0D;AAC1D,+CAAsD;AACtD,qDAA4D;AAC5D,iDAAwD;AAExD,kBAAe,IAAI,8BAAe,CAAC,IAAI,CAAC,EAAE;IAExC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/picker/contributions/math-picker/module.ts"],"names":[],"mappings":";;AAAA,yDAAmF;AACnF,+CAAsD;AACtD,4CAYsB;AACtB,mDAA0D;AAC1D,+CAAsD;AACtD,6CAAoD;AACpD,+CAAsD;AACtD,+CAAsD;AACtD,mDAA0D;AAC1D,+CAAsD;AACtD,qDAA4D;AAC5D,iDAAwD;AAExD,kBAAe,IAAI,8BAAe,CAAC,IAAI,CAAC,EAAE;IAExC,IAAI,CAAC,4BAAgB,CAAC,CAAC,EAAE,CAAC,uCAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAGzD,IAAI,CAAC,0BAAc,CAAC,CAAC,EAAE,CAAC,mCAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,0BAAc,CAAC,CAAC;IAGvD,IAAI,CAAC,yBAAa,CAAC,CAAC,EAAE,CAAC,iCAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,yBAAa,CAAC,CAAC;IAGtD,IAAI,CAAC,0BAAc,CAAC,CAAC,EAAE,CAAC,mCAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,0BAAc,CAAC,CAAC;IAQvD,IAAI,CAAC,0BAAc,CAAC,CAAC,EAAE,CAAC,mCAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,0BAAc,CAAC,CAAC;IAGvD,IAAI,CAAC,0BAAc,CAAC,CAAC,EAAE,CAAC,mCAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,0BAAc,CAAC,CAAC;IAGvD,IAAI,CAAC,4BAAgB,CAAC,CAAC,EAAE,CAAC,uCAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,4BAAgB,CAAC,CAAC;IAGzD,IAAI,CAAC,0BAAc,CAAC,CAAC,EAAE,CAAC,mCAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,0BAAc,CAAC,CAAC;IAGvD,IAAI,CAAC,6BAAiB,CAAC,CAAC,EAAE,CAAC,yCAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACxE,IAAI,CAAC,kCAAsB,CAAC,CAAC,SAAS,CAAC,6BAAiB,CAAC,CAAC;IAG1D,IAAI,CAAC,2BAAe,CAAC,CAAC,EAAE,CAAC,qCAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpE,IAAI,CAAC,qCAAsB,CAAC,CAAC,SAAS,CAAC,2BAAe,CAAC,CAAC;IAExD,IAAA,uCAAwB,EAAC,IAAI,EAAE,kCAAsB,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC","file":"module.js","sourcesContent":["import { ContainerModule, bindContributionProvider } from '@visactor/vrender-core';\nimport { DefaultMathPathPicker } from './path-picker';\nimport {\n MathArcPicker,\n MathAreaPicker,\n MathCirclePicker,\n MathGlyphPicker,\n MathLinePicker,\n MathPathPicker,\n MathPickerContribution,\n MathPolygonPicker,\n MathRectPicker,\n MathSymbolPicker,\n MathTextPicker\n} from '../constants';\nimport { DefaultMathCirclePicker } from './circle-picker';\nimport { DefaultMathRectPicker } from './rect-picker';\nimport { DefaultMathArcPicker } from './arc-picker';\nimport { DefaultMathAreaPicker } from './area-picker';\nimport { DefaultMathLinePicker } from './line-picker';\nimport { DefaultMathSymbolPicker } from './symbol-picker';\nimport { DefaultMathTextPicker } from './text-picker';\nimport { DefaultMathPolygonPicker } from './polygon-picker';\nimport { DefaultMathGlyphPicker } from './glyph-picker';\n\nexport default new ContainerModule(bind => {\n // circle picker\n bind(MathCirclePicker).to(DefaultMathCirclePicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathCirclePicker);\n\n // rect picker\n bind(MathRectPicker).to(DefaultMathRectPicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathRectPicker);\n\n // arc picker\n bind(MathArcPicker).to(DefaultMathArcPicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathArcPicker);\n\n // area picker\n bind(MathAreaPicker).to(DefaultMathAreaPicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathAreaPicker);\n\n // // image picker\n // bind(DefaultCanvasImagePicker).toSelf().inSingletonScope();\n // bind(ImagePicker).toService(DefaultCanvasImagePicker);\n // bind(PickerContribution).toService(ImagePicker);\n\n // line picker\n bind(MathLinePicker).to(DefaultMathLinePicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathLinePicker);\n\n // path picker\n bind(MathPathPicker).to(DefaultMathPathPicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathPathPicker);\n\n // symbol picker\n bind(MathSymbolPicker).to(DefaultMathSymbolPicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathSymbolPicker);\n\n // text picker\n bind(MathTextPicker).to(DefaultMathTextPicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathTextPicker);\n\n // polygon picker\n bind(MathPolygonPicker).to(DefaultMathPolygonPicker).inSingletonScope();\n bind(MathPickerContribution).toService(MathPolygonPicker);\n\n // glyph picker\n bind(MathGlyphPicker).to(DefaultMathGlyphPicker).inSingletonScope();\n bind(DefaultMathGlyphPicker).toService(MathGlyphPicker);\n\n bindContributionProvider(bind, MathPickerContribution);\n});\n"]}
|
package/cjs/picker/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
package/cjs/picker/index.js
CHANGED
|
@@ -1,21 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
-
void 0 === k2 && (k2 = k);
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
-
enumerable: !0,
|
|
8
|
-
get: function() {
|
|
9
|
-
return m[k];
|
|
10
|
-
}
|
|
11
|
-
}), Object.defineProperty(o, k2, desc);
|
|
12
|
-
} : function(o, m, k, k2) {
|
|
13
|
-
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
-
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
-
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
Object.defineProperty(exports, "__esModule", {
|
|
19
|
-
value: !0
|
|
20
|
-
}), __exportStar(require("./module"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
//# sourceMappingURL=index.js.map
|
package/cjs/picker/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/picker/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/picker/index.ts"],"names":[],"mappings":"","file":"index.js","sourcesContent":["// export * from './canvas-module';\n// export * from './math-module';\n"]}
|
|
@@ -3,13 +3,12 @@ import { DefaultPickService } from '@visactor/vrender-core';
|
|
|
3
3
|
import type { ICanvas, IContext2d, IGraphic, EnvType, IGlobal, IGraphicPicker, IPickerService, IContributionProvider, IPickItemInterceptorContribution, IPickParams, PickResult } from '@visactor/vrender-core';
|
|
4
4
|
export declare class DefaultMathPickerService extends DefaultPickService implements IPickerService {
|
|
5
5
|
protected readonly contributions: IContributionProvider<IGraphicPicker>;
|
|
6
|
-
readonly global: IGlobal;
|
|
7
6
|
protected readonly pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>;
|
|
8
7
|
type: 'default';
|
|
9
8
|
pickCanvas: ICanvas;
|
|
10
9
|
pickContext: IContext2d;
|
|
11
10
|
pickerMap: Map<number, IGraphicPicker>;
|
|
12
|
-
constructor(contributions: IContributionProvider<IGraphicPicker>,
|
|
11
|
+
constructor(contributions: IContributionProvider<IGraphicPicker>, pickItemInterceptorContributions: IContributionProvider<IPickItemInterceptorContribution>);
|
|
13
12
|
init(): void;
|
|
14
13
|
configure(global: IGlobal, env: EnvType): void;
|
|
15
14
|
pickItem(graphic: IGraphic, point: IPointLike, parentMatrix: IMatrix | null, params?: IPickParams): PickResult | null;
|
|
@@ -19,12 +19,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
19
19
|
const vrender_core_1 = require("@visactor/vrender-core"), constants_1 = require("./contributions/constants");
|
|
20
20
|
|
|
21
21
|
let DefaultMathPickerService = class extends vrender_core_1.DefaultPickService {
|
|
22
|
-
constructor(contributions,
|
|
23
|
-
super(
|
|
24
|
-
this.global = global, this.pickItemInterceptorContributions = pickItemInterceptorContributions,
|
|
22
|
+
constructor(contributions, pickItemInterceptorContributions) {
|
|
23
|
+
super(pickItemInterceptorContributions), this.contributions = contributions, this.pickItemInterceptorContributions = pickItemInterceptorContributions,
|
|
25
24
|
this.global.hooks.onSetEnv.tap("math-picker-service", ((lastEnv, env, global) => {
|
|
26
25
|
this.configure(global, env);
|
|
27
|
-
})), 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();
|
|
28
27
|
}
|
|
29
28
|
init() {
|
|
30
29
|
this.contributions.getContributions().forEach((item => {
|
|
@@ -45,10 +44,8 @@ let DefaultMathPickerService = class extends vrender_core_1.DefaultPickService {
|
|
|
45
44
|
}
|
|
46
45
|
};
|
|
47
46
|
|
|
48
|
-
__decorate([ (0, vrender_core_1.postConstruct)(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], DefaultMathPickerService.prototype, "init", null),
|
|
49
47
|
DefaultMathPickerService = __decorate([ (0, vrender_core_1.injectable)(), __param(0, (0,
|
|
50
48
|
vrender_core_1.inject)(vrender_core_1.ContributionProvider)), __param(0, (0, vrender_core_1.named)(constants_1.MathPickerContribution)), __param(1, (0,
|
|
51
|
-
vrender_core_1.inject)(vrender_core_1.
|
|
52
|
-
vrender_core_1.named)(vrender_core_1.PickItemInterceptor)), __metadata("design:paramtypes", [ Object, Object, Object ]) ], DefaultMathPickerService),
|
|
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),
|
|
53
50
|
exports.DefaultMathPickerService = DefaultMathPickerService;
|
|
54
51
|
//# sourceMappingURL=math-picker-service.js.map
|
|
@@ -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"]}
|
|
@@ -38,7 +38,9 @@ let RoughCanvasRectRender = class {
|
|
|
38
38
|
const {dx: dx = rectAttribute.dx, dy: dy = rectAttribute.dy} = rect.attribute;
|
|
39
39
|
x += dx, y += dy, context.setTransformForCurrent();
|
|
40
40
|
} else x = 0, y = 0, context.transformFromMatrix(rect.transMatrix, !0);
|
|
41
|
-
const {fill: fill = rectAttribute.fill, stroke: stroke = rectAttribute.stroke, fillColor: fillColor = rectAttribute.fill, strokeColor: strokeColor = rectAttribute.stroke,
|
|
41
|
+
const {fill: fill = rectAttribute.fill, stroke: stroke = rectAttribute.stroke, fillColor: fillColor = rectAttribute.fill, strokeColor: strokeColor = rectAttribute.stroke, x1: x1, y1: y1, lineWidth: lineWidth = rectAttribute.lineWidth, maxRandomnessOffset: maxRandomnessOffset = config_1.defaultRouthThemeSpec.maxRandomnessOffset, roughness: roughness = config_1.defaultRouthThemeSpec.roughness, bowing: bowing = config_1.defaultRouthThemeSpec.bowing, curveFitting: curveFitting = config_1.defaultRouthThemeSpec.curveFitting, curveTightness: curveTightness = config_1.defaultRouthThemeSpec.curveTightness, curveStepCount: curveStepCount = config_1.defaultRouthThemeSpec.curveStepCount, fillStyle: fillStyle = config_1.defaultRouthThemeSpec.fillStyle, fillWeight: fillWeight = config_1.defaultRouthThemeSpec.fillWeight, hachureAngle: hachureAngle = config_1.defaultRouthThemeSpec.hachureAngle, hachureGap: hachureGap = config_1.defaultRouthThemeSpec.hachureGap, simplification: simplification = config_1.defaultRouthThemeSpec.simplification, dashOffset: dashOffset = config_1.defaultRouthThemeSpec.dashOffset, dashGap: dashGap = config_1.defaultRouthThemeSpec.dashGap, zigzagOffset: zigzagOffset = config_1.defaultRouthThemeSpec.zigzagOffset, seed: seed = config_1.defaultRouthThemeSpec.seed, fillLineDash: fillLineDash = config_1.defaultRouthThemeSpec.fillLineDash, fillLineDashOffset: fillLineDashOffset = config_1.defaultRouthThemeSpec.fillLineDashOffset, disableMultiStroke: disableMultiStroke = config_1.defaultRouthThemeSpec.disableMultiStroke, disableMultiStrokeFill: disableMultiStrokeFill = config_1.defaultRouthThemeSpec.disableMultiStrokeFill, preserveVertices: preserveVertices = config_1.defaultRouthThemeSpec.preserveVertices, fixedDecimalPlaceDigits: fixedDecimalPlaceDigits = config_1.defaultRouthThemeSpec.fixedDecimalPlaceDigits} = rect.attribute;
|
|
42
|
+
let {width: width = rectAttribute.width, height: height = rectAttribute.height} = rect.attribute;
|
|
43
|
+
width = (null != width ? width : x1 - x) || 0, height = (null != height ? height : y1 - y) || 0,
|
|
42
44
|
rc.rectangle(x, y, width, height, {
|
|
43
45
|
fill: fill ? fillColor : void 0,
|
|
44
46
|
stroke: stroke ? strokeColor : void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/rough/rough-rect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAYA,yDAAiH;AACjH,sDAA4B;AAC5B,qCAAiD;AAG1C,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAKhC,YAEkB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAJhD,UAAK,GAAY,OAAO,CAAC;QAMvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,+BAAgB,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,IAAW,EAAE,aAA6B,EAAE,WAAyB,EAAE,MAAiC;QAC3G,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3C,MAAM,EAAE,GAAG,iBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAG9B,MAAM,aAAa,GAAG,IAAA,uBAAQ,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC1C,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE;YAErC,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SACrD;aAAM;YACL,MAAM,EAAE,EAAE,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACxE,CAAC,IAAI,EAAE,CAAC;YACR,CAAC,IAAI,EAAE,CAAC;YAER,OAAO,CAAC,sBAAsB,EAAE,CAAC;SAClC;QAED,MAAM,EACJ,IAAI,GAAG,aAAa,CAAC,IAAI,EACzB,MAAM,GAAG,aAAa,CAAC,MAAM,EAC7B,SAAS,GAAG,aAAa,CAAC,IAAI,EAC9B,WAAW,GAAG,aAAa,CAAC,MAAM,EAClC,
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/rough/rough-rect.ts"],"names":[],"mappings":"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","file":"rough-rect.js","sourcesContent":["import type {\n IGraphicRender,\n IRenderService,\n IRect,\n IGraphicAttribute,\n IContext2d,\n IGraphic,\n IMarkAttribute,\n IThemeAttribute,\n IDrawContext,\n IGraphicRenderDrawParams\n} from '@visactor/vrender-core';\nimport { RECT_NUMBER_TYPE, DefaultCanvasRectRender, getTheme, inject, injectable } from '@visactor/vrender-core';\nimport rough from 'roughjs';\nimport { defaultRouthThemeSpec } from './config';\n\n@injectable()\nexport class RoughCanvasRectRender implements IGraphicRender {\n type: 'rect';\n numberType: number;\n style: 'rough' = 'rough';\n\n constructor(\n @inject(DefaultCanvasRectRender)\n public readonly canvasRenderer: IGraphicRender\n ) {\n this.type = 'rect';\n this.numberType = RECT_NUMBER_TYPE;\n }\n\n draw(rect: IRect, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n // 获取到原生canvas\n const canvas = context.canvas.nativeCanvas;\n const rc = rough.canvas(canvas);\n\n context.highPerformanceSave();\n\n // const rectAttribute = graphicService.themeService.getCurrentTheme().rectAttribute;\n const rectAttribute = getTheme(rect).rect;\n let { x = rectAttribute.x, y = rectAttribute.y } = rect.attribute;\n if (!rect.transMatrix.onlyTranslate()) {\n // 性能较差\n x = 0;\n y = 0;\n context.transformFromMatrix(rect.transMatrix, true);\n } else {\n const { dx = rectAttribute.dx, dy = rectAttribute.dy } = rect.attribute;\n x += dx;\n y += dy;\n // 当前context有rotate/scale,重置matrix\n context.setTransformForCurrent();\n }\n\n const {\n fill = rectAttribute.fill,\n stroke = rectAttribute.stroke,\n fillColor = rectAttribute.fill,\n strokeColor = rectAttribute.stroke,\n x1,\n y1,\n lineWidth = rectAttribute.lineWidth,\n maxRandomnessOffset = defaultRouthThemeSpec.maxRandomnessOffset,\n roughness = defaultRouthThemeSpec.roughness,\n bowing = defaultRouthThemeSpec.bowing,\n curveFitting = defaultRouthThemeSpec.curveFitting,\n curveTightness = defaultRouthThemeSpec.curveTightness,\n curveStepCount = defaultRouthThemeSpec.curveStepCount,\n fillStyle = defaultRouthThemeSpec.fillStyle,\n fillWeight = defaultRouthThemeSpec.fillWeight,\n hachureAngle = defaultRouthThemeSpec.hachureAngle,\n hachureGap = defaultRouthThemeSpec.hachureGap,\n simplification = defaultRouthThemeSpec.simplification,\n dashOffset = defaultRouthThemeSpec.dashOffset,\n dashGap = defaultRouthThemeSpec.dashGap,\n zigzagOffset = defaultRouthThemeSpec.zigzagOffset,\n seed = defaultRouthThemeSpec.seed,\n fillLineDash = defaultRouthThemeSpec.fillLineDash,\n fillLineDashOffset = defaultRouthThemeSpec.fillLineDashOffset,\n disableMultiStroke = defaultRouthThemeSpec.disableMultiStroke,\n disableMultiStrokeFill = defaultRouthThemeSpec.disableMultiStrokeFill,\n preserveVertices = defaultRouthThemeSpec.preserveVertices,\n fixedDecimalPlaceDigits = defaultRouthThemeSpec.fixedDecimalPlaceDigits\n } = rect.attribute as any;\n\n let { width = rectAttribute.width, height = rectAttribute.height } = rect.attribute;\n\n width = (width ?? x1 - x) || 0;\n height = (height ?? y1 - y) || 0;\n\n rc.rectangle(x, y, width, height, {\n fill: fill ? (fillColor as string) : undefined,\n stroke: stroke ? (strokeColor as string) : undefined,\n strokeWidth: lineWidth,\n maxRandomnessOffset,\n roughness,\n bowing,\n curveFitting,\n curveTightness,\n curveStepCount,\n fillStyle,\n fillWeight,\n hachureAngle,\n hachureGap,\n simplification,\n dashOffset,\n dashGap,\n zigzagOffset,\n seed,\n fillLineDash,\n fillLineDashOffset,\n disableMultiStroke,\n disableMultiStrokeFill,\n preserveVertices,\n fixedDecimalPlaceDigits\n });\n\n context.highPerformanceRestore();\n }\n\n drawShape(\n graphic: IGraphic,\n ctx: 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 ): void {\n if (this.canvasRenderer.drawShape) {\n return this.canvasRenderer.drawShape(graphic, ctx, x, y, drawContext, params, fillCb, strokeCb);\n }\n }\n}\n"]}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { BaseWindowHandlerContribution, ContainerModule } from '@visactor/vrender-core';
|
|
2
|
-
import type { IContext2d, ICanvas, IDomRectLike, EnvType,
|
|
2
|
+
import type { IContext2d, ICanvas, IDomRectLike, EnvType, IWindowHandlerContribution, IWindowParams } from '@visactor/vrender-core';
|
|
3
3
|
import type { IBoundsLike } from '@visactor/vutils';
|
|
4
4
|
export declare class BrowserWindowHandlerContribution extends BaseWindowHandlerContribution implements IWindowHandlerContribution {
|
|
5
|
-
private readonly global;
|
|
6
5
|
static env: EnvType;
|
|
7
6
|
type: EnvType;
|
|
8
7
|
canvas: ICanvas;
|
|
9
8
|
observer?: MutationObserver;
|
|
10
9
|
protected _canvasIsIntersecting: boolean;
|
|
11
10
|
protected _onVisibleChangeCb: (currentVisible: boolean) => void;
|
|
11
|
+
private readonly global;
|
|
12
12
|
get container(): HTMLElement | null;
|
|
13
|
-
|
|
13
|
+
static idprefix: string;
|
|
14
|
+
static prefix_count: number;
|
|
15
|
+
static GenerateCanvasId(): string;
|
|
16
|
+
constructor();
|
|
14
17
|
getTitle(): string;
|
|
15
18
|
getWH(): {
|
|
16
19
|
width: number;
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
3
|
+
var BrowserWindowHandlerContribution_1, __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
4
4
|
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
}, __metadata = this && this.__metadata || function(k, v) {
|
|
8
8
|
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
9
|
-
}, __param = this && this.__param || function(paramIndex, decorator) {
|
|
10
|
-
return function(target, key) {
|
|
11
|
-
decorator(target, key, paramIndex);
|
|
12
|
-
};
|
|
13
9
|
};
|
|
14
10
|
|
|
15
11
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -18,12 +14,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
18
14
|
|
|
19
15
|
const vrender_core_1 = require("@visactor/vrender-core"), browser_1 = require("../../canvas/contributions/browser");
|
|
20
16
|
|
|
21
|
-
let BrowserWindowHandlerContribution = class extends vrender_core_1.BaseWindowHandlerContribution {
|
|
17
|
+
let BrowserWindowHandlerContribution = BrowserWindowHandlerContribution_1 = class extends vrender_core_1.BaseWindowHandlerContribution {
|
|
22
18
|
get container() {
|
|
23
19
|
return this.canvas.nativeCanvas.parentElement;
|
|
24
20
|
}
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
static GenerateCanvasId() {
|
|
22
|
+
return `${BrowserWindowHandlerContribution_1.idprefix}_${BrowserWindowHandlerContribution_1.prefix_count++}`;
|
|
23
|
+
}
|
|
24
|
+
constructor() {
|
|
25
|
+
super(), this.type = "browser", this._canvasIsIntersecting = !0, this.global = vrender_core_1.application.global;
|
|
27
26
|
}
|
|
28
27
|
getTitle() {
|
|
29
28
|
return this.canvas.id.toString();
|
|
@@ -42,7 +41,7 @@ let BrowserWindowHandlerContribution = class extends vrender_core_1.BaseWindowHa
|
|
|
42
41
|
this.postInit();
|
|
43
42
|
}
|
|
44
43
|
postInit() {
|
|
45
|
-
try {
|
|
44
|
+
if (this.global.optimizeVisible) try {
|
|
46
45
|
this.observerCanvas();
|
|
47
46
|
} catch (err) {
|
|
48
47
|
console.error("发生错误,该环境不存在IntersectionObserver");
|
|
@@ -77,7 +76,7 @@ let BrowserWindowHandlerContribution = class extends vrender_core_1.BaseWindowHa
|
|
|
77
76
|
dpr: params.dpr,
|
|
78
77
|
nativeCanvas: nativeCanvas,
|
|
79
78
|
container: container,
|
|
80
|
-
id:
|
|
79
|
+
id: BrowserWindowHandlerContribution_1.GenerateCanvasId(),
|
|
81
80
|
canvasControled: !0
|
|
82
81
|
};
|
|
83
82
|
this.canvas = new browser_1.BrowserCanvas(options);
|
|
@@ -95,8 +94,7 @@ let BrowserWindowHandlerContribution = class extends vrender_core_1.BaseWindowHa
|
|
|
95
94
|
width = data.width, height = data.height;
|
|
96
95
|
}
|
|
97
96
|
let dpr = params.dpr;
|
|
98
|
-
if (
|
|
99
|
-
dpr = null), null == dpr) {
|
|
97
|
+
if (null == dpr) {
|
|
100
98
|
dpr = null !== (_a = canvas.getContext("2d").pixelRatio) && void 0 !== _a ? _a : canvas.width / width;
|
|
101
99
|
}
|
|
102
100
|
this.canvas = new browser_1.BrowserCanvas({
|
|
@@ -170,8 +168,9 @@ let BrowserWindowHandlerContribution = class extends vrender_core_1.BaseWindowHa
|
|
|
170
168
|
}
|
|
171
169
|
};
|
|
172
170
|
|
|
173
|
-
BrowserWindowHandlerContribution.env = "browser", BrowserWindowHandlerContribution =
|
|
174
|
-
|
|
171
|
+
BrowserWindowHandlerContribution.env = "browser", BrowserWindowHandlerContribution.idprefix = "visactor_window",
|
|
172
|
+
BrowserWindowHandlerContribution.prefix_count = 0, BrowserWindowHandlerContribution = BrowserWindowHandlerContribution_1 = __decorate([ (0,
|
|
173
|
+
vrender_core_1.injectable)(), __metadata("design:paramtypes", []) ], BrowserWindowHandlerContribution),
|
|
175
174
|
exports.BrowserWindowHandlerContribution = BrowserWindowHandlerContribution, exports.browserWindowModule = new vrender_core_1.ContainerModule((bind => {
|
|
176
175
|
bind(BrowserWindowHandlerContribution).toSelf(), bind(vrender_core_1.WindowHandlerContribution).toDynamicValue((ctx => ctx.container.get(BrowserWindowHandlerContribution))).whenTargetNamed(BrowserWindowHandlerContribution.env);
|
|
177
176
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/window/contributions/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import {\n inject,\n injectable,\n Generator,\n BaseWindowHandlerContribution,\n VGlobal,\n ContainerModule,\n WindowHandlerContribution\n} from '@visactor/vrender-core';\nimport type {\n IContext2d,\n ICanvas,\n IDomRectLike,\n EnvType,\n IGlobal,\n IWindowHandlerContribution,\n IWindowParams\n} from '@visactor/vrender-core';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { BrowserCanvas } from '../../canvas/contributions/browser';\n\n@injectable()\nexport class BrowserWindowHandlerContribution\n extends BaseWindowHandlerContribution\n implements IWindowHandlerContribution\n{\n static env: EnvType = 'browser';\n\n type: EnvType = 'browser';\n\n canvas: ICanvas;\n\n observer?: MutationObserver;\n\n protected _canvasIsIntersecting: boolean;\n protected _onVisibleChangeCb: (currentVisible: boolean) => void;\n\n get container(): HTMLElement | null {\n return this.canvas.nativeCanvas.parentElement;\n }\n\n constructor(@inject(VGlobal) private readonly global: IGlobal) {\n super();\n this._canvasIsIntersecting = true;\n }\n\n getTitle(): string {\n return this.canvas.id.toString();\n }\n\n getWH(): { width: number; height: number } {\n return {\n width: this.canvas.width / (this.canvas.dpr || 1),\n height: this.canvas.height / (this.canvas.dpr || 1)\n };\n }\n\n getXY(): { x: number; y: number } {\n return this.canvas.nativeCanvas.getBoundingClientRect();\n }\n\n createWindow(params: IWindowParams): void {\n // 如果没有传入canvas,那么就创建一个canvas\n if (!params.canvas) {\n this.createWindowByConfig(params);\n } else {\n this.createWindowByCanvas(params);\n }\n\n this.postInit();\n\n // this.bindOnChangeEvent();\n }\n\n protected postInit() {\n try {\n this.observerCanvas();\n } catch (err) {\n console.error('发生错误,该环境不存在IntersectionObserver');\n }\n }\n\n isElementVisible(el: HTMLElement) {\n const rect = el.getBoundingClientRect();\n const vWidth = window.innerWidth || document.documentElement.clientWidth;\n const vHeight = window.innerHeight || document.documentElement.clientHeight;\n\n if (rect.right < 0 || rect.bottom < 0 || rect.left > vWidth || rect.top > vHeight) {\n return false;\n }\n\n return true;\n }\n\n protected observerCanvas() {\n this._canvasIsIntersecting = this.isElementVisible(this.canvas.nativeCanvas);\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (this._canvasIsIntersecting !== entry.isIntersecting) {\n this._canvasIsIntersecting = entry.isIntersecting;\n this._onVisibleChangeCb && this._onVisibleChangeCb(entry.isIntersecting);\n } else {\n this._canvasIsIntersecting = entry.isIntersecting;\n }\n });\n });\n if (!observer) {\n return;\n }\n observer.observe(this.canvas.nativeCanvas);\n }\n\n // private bindOnChangeEvent() {\n // const { nativeCanvas } = this.canvas;\n // const observer = new MutationObserver((mutations, observer) => {\n // mutations.forEach((mutaion) => {\n // console.log(mutaion);\n // })\n // });\n // observer.observe(nativeCanvas, { attributes: true, childList: true, subtree: true })\n // }\n\n private createWindowByConfig(params: IWindowParams) {\n // 创建canvas\n const nativeCanvas = this.global.createCanvas({\n width: params.width,\n height: params.height\n });\n // 保存到dom中\n let container: HTMLElement | null;\n if (typeof params.container === 'string') {\n container = this.global.getElementById(params.container);\n } else if (params.container) {\n container = params.container;\n } else {\n container = this.global.getRootElement();\n }\n if (!container) {\n throw new Error('发生错误,containerId可能传入有误');\n }\n\n if (!params.offscreen) {\n container.appendChild(nativeCanvas);\n } else {\n container = null;\n }\n\n // 绑定\n const options = {\n width: params.width,\n height: params.height,\n dpr: params.dpr,\n nativeCanvas,\n container,\n id: Generator.GenAutoIncrementId().toString(),\n canvasControled: true\n };\n this.canvas = new BrowserCanvas(options);\n // 应用位置属性\n // window上的不需要设置position\n // this.canvas.applyPosition();\n // this.canvas.resetStyle(options);\n }\n private createWindowByCanvas(params: IWindowParams) {\n // 获取canvas\n let canvas: HTMLCanvasElement | null;\n if (typeof params.canvas === 'string') {\n canvas = this.global.getElementById(params.canvas) as HTMLCanvasElement | null;\n if (!canvas) {\n throw new Error('canvasId 参数不正确,请确认canvas存在并插入dom');\n }\n } else {\n canvas = params!.canvas as HTMLCanvasElement | null;\n }\n if (!canvas) {\n throw new Error('发生错误,传入的canvas不正确');\n }\n\n // 如果没有传入wh,或者是不受控制的canvas,那就用canvas的原始wh\n let width = params.width;\n let height = params.height;\n if (width == null || height == null || !params.canvasControled) {\n const data = canvas.getBoundingClientRect();\n width = data.width;\n height = data.height;\n }\n // 如果没有dpr,就使用canvas的原始dpr\n let dpr = params.dpr;\n if (params.canvasControled === false) {\n if (dpr) {\n console.warn('canvasControled为false后,dpr参数将无效');\n }\n dpr = null;\n }\n if (dpr == null) {\n const ctx = canvas.getContext('2d');\n // 兼容XTable\n dpr = (ctx as any).pixelRatio ?? canvas.width / width;\n }\n this.canvas = new BrowserCanvas({\n width: width,\n height: height,\n dpr: dpr,\n nativeCanvas: canvas,\n canvasControled: params.canvasControled\n });\n // if (params.canvasControled) {\n // this.canvas.resetStyle({\n // width,\n // height,\n // dpr\n // });\n // }\n }\n releaseWindow(): void {\n this.canvas.release();\n }\n resizeWindow(width: number, height: number): void {\n this.canvas.resize(width, height);\n }\n setDpr(dpr: number): void {\n this.canvas.dpr = dpr;\n }\n\n getContext(): IContext2d {\n return this.canvas.getContext();\n }\n getNativeHandler(): ICanvas {\n return this.canvas;\n }\n getDpr(): number {\n return this.canvas.dpr;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n return (this.canvas.nativeCanvas as HTMLCanvasElement).addEventListener(type, listener, options);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n return (this.canvas.nativeCanvas as HTMLCanvasElement).removeEventListener(type, listener, options);\n }\n dispatchEvent(event: any): boolean {\n return (this.canvas.nativeCanvas as HTMLCanvasElement).dispatchEvent(event);\n }\n\n getStyle(): CSSStyleDeclaration | Record<string, any> {\n return this.canvas.nativeCanvas.style;\n }\n setStyle(style: CSSStyleDeclaration | Record<string, any>) {\n this.canvas.nativeCanvas.style = style;\n }\n\n getBoundingClientRect(): IDomRectLike {\n const c = this.canvas.nativeCanvas as HTMLCanvasElement;\n const wh = this.getWH();\n if (!c.parentElement) {\n return {\n x: 0,\n y: 0,\n width: wh.width,\n height: wh.height,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n }\n return this.canvas.nativeCanvas.getBoundingClientRect();\n }\n\n clearViewBox(vb: IBoundsLike, color?: string): void {\n const context = this.getContext();\n const dpr = this.getDpr();\n context.nativeContext.save();\n (context.nativeContext as CanvasRenderingContext2D).setTransform(dpr, 0, 0, dpr, 0, 0);\n context.clearRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n if (color) {\n context.fillStyle = color;\n context.fillRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n }\n context.nativeContext.restore();\n }\n\n isVisible(bbox?: IBoundsLike) {\n return this._canvasIsIntersecting;\n }\n\n onVisibleChange(cb: (currentVisible: boolean) => void) {\n this._onVisibleChangeCb = cb;\n }\n\n getTopLeft(baseWindow?: boolean): { top: number; left: number } {\n return this.global.getElementTopLeft(this.canvas.nativeCanvas, baseWindow);\n }\n}\n\nexport const browserWindowModule = new ContainerModule(bind => {\n // browser\n bind(BrowserWindowHandlerContribution).toSelf();\n bind(WindowHandlerContribution)\n .toDynamicValue(ctx => ctx.container.get(BrowserWindowHandlerContribution))\n .whenTargetNamed(BrowserWindowHandlerContribution.env);\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/window/contributions/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import {\n inject,\n injectable,\n Generator,\n BaseWindowHandlerContribution,\n ContainerModule,\n WindowHandlerContribution,\n application\n} from '@visactor/vrender-core';\nimport type {\n IContext2d,\n ICanvas,\n IDomRectLike,\n EnvType,\n IGlobal,\n IWindowHandlerContribution,\n IWindowParams\n} from '@visactor/vrender-core';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { BrowserCanvas } from '../../canvas/contributions/browser';\n\n@injectable()\nexport class BrowserWindowHandlerContribution\n extends BaseWindowHandlerContribution\n implements IWindowHandlerContribution\n{\n static env: EnvType = 'browser';\n\n type: EnvType = 'browser';\n\n canvas: ICanvas;\n\n observer?: MutationObserver;\n\n protected _canvasIsIntersecting: boolean;\n protected _onVisibleChangeCb: (currentVisible: boolean) => void;\n\n private readonly global: IGlobal;\n\n get container(): HTMLElement | null {\n return this.canvas.nativeCanvas.parentElement;\n }\n\n static idprefix: string = 'visactor_window';\n static prefix_count: number = 0;\n\n static GenerateCanvasId() {\n return `${BrowserWindowHandlerContribution.idprefix}_${BrowserWindowHandlerContribution.prefix_count++}`;\n }\n\n constructor() {\n super();\n this._canvasIsIntersecting = true;\n this.global = application.global;\n }\n\n getTitle(): string {\n return this.canvas.id.toString();\n }\n\n getWH(): { width: number; height: number } {\n return {\n width: this.canvas.width / (this.canvas.dpr || 1),\n height: this.canvas.height / (this.canvas.dpr || 1)\n };\n }\n\n getXY(): { x: number; y: number } {\n return this.canvas.nativeCanvas.getBoundingClientRect();\n }\n\n createWindow(params: IWindowParams): void {\n // 如果没有传入canvas,那么就创建一个canvas\n if (!params.canvas) {\n this.createWindowByConfig(params);\n } else {\n this.createWindowByCanvas(params);\n }\n\n this.postInit();\n\n // this.bindOnChangeEvent();\n }\n\n protected postInit() {\n if (!this.global.optimizeVisible) {\n return;\n }\n try {\n this.observerCanvas();\n } catch (err) {\n console.error('发生错误,该环境不存在IntersectionObserver');\n }\n }\n\n isElementVisible(el: HTMLElement) {\n const rect = el.getBoundingClientRect();\n const vWidth = window.innerWidth || document.documentElement.clientWidth;\n const vHeight = window.innerHeight || document.documentElement.clientHeight;\n\n if (rect.right < 0 || rect.bottom < 0 || rect.left > vWidth || rect.top > vHeight) {\n return false;\n }\n\n return true;\n }\n\n protected observerCanvas() {\n this._canvasIsIntersecting = this.isElementVisible(this.canvas.nativeCanvas);\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (this._canvasIsIntersecting !== entry.isIntersecting) {\n this._canvasIsIntersecting = entry.isIntersecting;\n this._onVisibleChangeCb && this._onVisibleChangeCb(entry.isIntersecting);\n } else {\n this._canvasIsIntersecting = entry.isIntersecting;\n }\n });\n });\n if (!observer) {\n return;\n }\n observer.observe(this.canvas.nativeCanvas);\n }\n\n // private bindOnChangeEvent() {\n // const { nativeCanvas } = this.canvas;\n // const observer = new MutationObserver((mutations, observer) => {\n // mutations.forEach((mutaion) => {\n // console.log(mutaion);\n // })\n // });\n // observer.observe(nativeCanvas, { attributes: true, childList: true, subtree: true })\n // }\n\n private createWindowByConfig(params: IWindowParams) {\n // 创建canvas\n const nativeCanvas = this.global.createCanvas({\n width: params.width,\n height: params.height\n });\n // 保存到dom中\n let container: HTMLElement | null;\n if (typeof params.container === 'string') {\n container = this.global.getElementById(params.container);\n } else if (params.container) {\n container = params.container;\n } else {\n container = this.global.getRootElement();\n }\n if (!container) {\n throw new Error('发生错误,containerId可能传入有误');\n }\n\n if (!params.offscreen) {\n container.appendChild(nativeCanvas);\n } else {\n container = null;\n }\n\n // 绑定\n const options = {\n width: params.width,\n height: params.height,\n dpr: params.dpr,\n nativeCanvas,\n container,\n id: BrowserWindowHandlerContribution.GenerateCanvasId(),\n canvasControled: true\n };\n this.canvas = new BrowserCanvas(options);\n // 应用位置属性\n // window上的不需要设置position\n // this.canvas.applyPosition();\n // this.canvas.resetStyle(options);\n }\n private createWindowByCanvas(params: IWindowParams) {\n // 获取canvas\n let canvas: HTMLCanvasElement | null;\n if (typeof params.canvas === 'string') {\n canvas = this.global.getElementById(params.canvas) as HTMLCanvasElement | null;\n if (!canvas) {\n throw new Error('canvasId 参数不正确,请确认canvas存在并插入dom');\n }\n } else {\n canvas = params!.canvas as HTMLCanvasElement | null;\n }\n if (!canvas) {\n throw new Error('发生错误,传入的canvas不正确');\n }\n\n // 如果没有传入wh,或者是不受控制的canvas,那就用canvas的原始wh\n let width = params.width;\n let height = params.height;\n if (width == null || height == null || !params.canvasControled) {\n const data = canvas.getBoundingClientRect();\n width = data.width;\n height = data.height;\n }\n // 如果没有dpr,就使用canvas的原始dpr\n let dpr = params.dpr;\n // if (params.canvasControled === false) {\n // if (dpr) {\n // console.warn('canvasControled为false后,dpr参数将无效');\n // }\n // dpr = null;\n // }\n if (dpr == null) {\n const ctx = canvas.getContext('2d');\n // 兼容XTable\n dpr = (ctx as any).pixelRatio ?? canvas.width / width;\n }\n this.canvas = new BrowserCanvas({\n width: width,\n height: height,\n dpr: dpr,\n nativeCanvas: canvas,\n canvasControled: params.canvasControled\n });\n // if (params.canvasControled) {\n // this.canvas.resetStyle({\n // width,\n // height,\n // dpr\n // });\n // }\n }\n releaseWindow(): void {\n this.canvas.release();\n }\n resizeWindow(width: number, height: number): void {\n this.canvas.resize(width, height);\n }\n setDpr(dpr: number): void {\n this.canvas.dpr = dpr;\n }\n\n getContext(): IContext2d {\n return this.canvas.getContext();\n }\n getNativeHandler(): ICanvas {\n return this.canvas;\n }\n getDpr(): number {\n return this.canvas.dpr;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n return (this.canvas.nativeCanvas as HTMLCanvasElement).addEventListener(type, listener, options);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n return (this.canvas.nativeCanvas as HTMLCanvasElement).removeEventListener(type, listener, options);\n }\n dispatchEvent(event: any): boolean {\n return (this.canvas.nativeCanvas as HTMLCanvasElement).dispatchEvent(event);\n }\n\n getStyle(): CSSStyleDeclaration | Record<string, any> {\n return this.canvas.nativeCanvas.style;\n }\n setStyle(style: CSSStyleDeclaration | Record<string, any>) {\n this.canvas.nativeCanvas.style = style;\n }\n\n getBoundingClientRect(): IDomRectLike {\n const c = this.canvas.nativeCanvas as HTMLCanvasElement;\n const wh = this.getWH();\n if (!c.parentElement) {\n return {\n x: 0,\n y: 0,\n width: wh.width,\n height: wh.height,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n }\n return this.canvas.nativeCanvas.getBoundingClientRect();\n }\n\n clearViewBox(vb: IBoundsLike, color?: string): void {\n const context = this.getContext();\n const dpr = this.getDpr();\n context.nativeContext.save();\n (context.nativeContext as CanvasRenderingContext2D).setTransform(dpr, 0, 0, dpr, 0, 0);\n context.clearRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n if (color) {\n context.fillStyle = color;\n context.fillRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n }\n context.nativeContext.restore();\n }\n\n isVisible(bbox?: IBoundsLike) {\n return this._canvasIsIntersecting;\n }\n\n onVisibleChange(cb: (currentVisible: boolean) => void) {\n this._onVisibleChangeCb = cb;\n }\n\n getTopLeft(baseWindow?: boolean): { top: number; left: number } {\n return this.global.getElementTopLeft(this.canvas.nativeCanvas, baseWindow);\n }\n}\n\nexport const browserWindowModule = new ContainerModule(bind => {\n // browser\n bind(BrowserWindowHandlerContribution).toSelf();\n bind(WindowHandlerContribution)\n .toDynamicValue(ctx => ctx.container.get(BrowserWindowHandlerContribution))\n .whenTargetNamed(BrowserWindowHandlerContribution.env);\n});\n"]}
|
|
@@ -97,7 +97,9 @@ let LynxWindowHandlerContribution = class extends vrender_core_1.BaseWindowHandl
|
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
releaseWindow() {}
|
|
100
|
-
resizeWindow(width, height) {
|
|
100
|
+
resizeWindow(width, height) {
|
|
101
|
+
this.canvas.resize(width, height);
|
|
102
|
+
}
|
|
101
103
|
setDpr(dpr) {
|
|
102
104
|
this.canvas.dpr = dpr;
|
|
103
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/window/contributions/lynx-contribution.ts"],"names":[],"mappings":"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","file":"lynx-contribution.js","sourcesContent":["import {\n inject,\n injectable,\n Generator,\n BaseWindowHandlerContribution,\n VGlobal,\n ContainerModule,\n WindowHandlerContribution\n} from '@visactor/vrender-core';\nimport type {\n EnvType,\n IGlobal,\n IContext2d,\n ICanvas,\n IDomRectLike,\n IWindowParams,\n IWindowHandlerContribution\n} from '@visactor/vrender-core';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { LynxCanvas } from '../../canvas/contributions/lynx';\n\nclass MiniAppEventManager {\n addEventListener(type: string, func: EventListenerOrEventListenerObject) {\n if (!type || !func) {\n return;\n }\n this.cache[type] = this.cache[type] || {\n listener: []\n };\n this.cache[type].listener.push(func);\n }\n removeEventListener(type: string, func: EventListenerOrEventListenerObject) {\n if (!type || !func) {\n return;\n }\n if (!this.cache[type]) {\n return;\n }\n const index = this.cache[type].listener.findIndex((f: EventListenerOrEventListenerObject) => f === func);\n if (index >= 0) {\n this.cache[type].listener.splice(index, 1);\n }\n }\n cleanEvent() {\n this.cache = {};\n }\n cache: Record<string, { listener: EventListenerOrEventListenerObject[] }> = {};\n}\n\n@injectable()\nexport class LynxWindowHandlerContribution extends BaseWindowHandlerContribution implements IWindowHandlerContribution {\n static env: EnvType = 'lynx';\n type: EnvType = 'lynx';\n\n protected eventManager = new MiniAppEventManager();\n\n canvas: ICanvas;\n get container(): HTMLElement | null {\n return null;\n }\n\n constructor(@inject(VGlobal) private readonly global: IGlobal) {\n super();\n }\n\n getTitle(): string {\n return this.canvas.id.toString();\n }\n\n getWH(): { width: number; height: number } {\n return {\n width: this.canvas.width / (this.canvas.dpr || 1),\n height: this.canvas.height / (this.canvas.dpr || 1)\n };\n }\n\n getXY(): { x: number; y: number } {\n return { x: 0, y: 0 };\n }\n\n createWindow(params: IWindowParams): void {\n // 如果没有传入canvas,那么就创建一个canvas\n if (!params.canvas) {\n this.createWindowByConfig(params);\n } else {\n this.createWindowByCanvas(params);\n }\n }\n private createWindowByConfig(params: IWindowParams) {\n // 创建canvas\n const nativeCanvas = this.global.createCanvas({\n width: params.width,\n height: params.height\n });\n\n // 绑定\n const options = {\n width: params.width,\n height: params.height,\n dpr: params.dpr,\n nativeCanvas,\n id: Generator.GenAutoIncrementId().toString(),\n canvasControled: false\n };\n this.canvas = new LynxCanvas(options);\n }\n private createWindowByCanvas(params: IWindowParams) {\n // 获取canvas\n let canvas: HTMLCanvasElement | null;\n if (typeof params.canvas === 'string') {\n canvas = this.global.getElementById(params.canvas) as HTMLCanvasElement | null;\n if (!canvas) {\n throw new Error('canvasId 参数不正确,请确认canvas存在并插入dom');\n }\n } else {\n canvas = params!.canvas as HTMLCanvasElement | null;\n }\n\n // 如果没有传入wh,或者是不受控制的canvas,那就用canvas的原始wh\n let width = params.width;\n let height = params.height;\n if (width == null || height == null || !params.canvasControled) {\n const data = canvas.getBoundingClientRect();\n width = data.width;\n height = data.height;\n }\n // 如果没有dpr,就使用canvas的原始dpr\n let dpr = params.dpr;\n if (dpr == null) {\n dpr = canvas.width / width;\n }\n this.canvas = new LynxCanvas({\n width: width,\n height: height,\n dpr: dpr,\n nativeCanvas: canvas,\n canvasControled: params.canvasControled\n });\n }\n releaseWindow(): void {\n return;\n }\n resizeWindow(width: number, height: number): void {\n return;\n }\n setDpr(dpr: number): void {\n this.canvas.dpr = dpr;\n }\n\n getContext(): IContext2d {\n return this.canvas.getContext();\n }\n getNativeHandler(): ICanvas {\n return this.canvas;\n }\n getDpr(): number {\n return this.canvas.dpr;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject): void {\n this.eventManager.addEventListener(type, listener);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject): void {\n this.eventManager.removeEventListener(type, listener);\n }\n dispatchEvent(event: any): boolean {\n const { type } = event;\n if (!this.eventManager.cache[type]) {\n return false;\n }\n\n // hack for offsetX offsetY\n if (event.changedTouches && event.changedTouches[0]) {\n event.offsetX = event.changedTouches[0].x;\n event.changedTouches[0].offsetX = event.changedTouches[0].x;\n event.changedTouches[0].clientX = event.changedTouches[0].x;\n event.offsetY = event.changedTouches[0].y;\n event.changedTouches[0].offsetY = event.changedTouches[0].y;\n event.changedTouches[0].clientY = event.changedTouches[0].y;\n }\n event.preventDefault = () => {\n return;\n };\n event.stopPropagation = () => {\n return;\n };\n if (this.eventManager.cache[type].listener) {\n this.eventManager.cache[type].listener.forEach((f: EventListener) => {\n f(event);\n });\n }\n return true;\n }\n\n getStyle(): CSSStyleDeclaration | Record<string, any> {\n return {};\n }\n setStyle(style: CSSStyleDeclaration | Record<string, any>) {\n return;\n }\n\n getBoundingClientRect(): IDomRectLike {\n const wh = this.getWH();\n return {\n x: 0,\n y: 0,\n width: wh.width,\n height: wh.height,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n }\n\n clearViewBox(vb: IBoundsLike, color?: string): void {\n const context = this.getContext();\n const dpr = this.getDpr();\n context.nativeContext.save();\n (context.nativeContext as CanvasRenderingContext2D).setTransform(dpr, 0, 0, dpr, 0, 0);\n context.clearRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n if (color) {\n context.fillStyle = color;\n context.fillRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n }\n context.nativeContext.restore();\n }\n}\n\nexport const lynxWindowModule = new ContainerModule(bind => {\n // lynx\n bind(LynxWindowHandlerContribution).toSelf();\n bind(WindowHandlerContribution)\n .toDynamicValue(ctx => ctx.container.get(LynxWindowHandlerContribution))\n .whenTargetNamed(LynxWindowHandlerContribution.env);\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/window/contributions/lynx-contribution.ts"],"names":[],"mappings":"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","file":"lynx-contribution.js","sourcesContent":["import {\n inject,\n injectable,\n Generator,\n BaseWindowHandlerContribution,\n VGlobal,\n ContainerModule,\n WindowHandlerContribution\n} from '@visactor/vrender-core';\nimport type {\n EnvType,\n IGlobal,\n IContext2d,\n ICanvas,\n IDomRectLike,\n IWindowParams,\n IWindowHandlerContribution\n} from '@visactor/vrender-core';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { LynxCanvas } from '../../canvas/contributions/lynx';\n\nclass MiniAppEventManager {\n addEventListener(type: string, func: EventListenerOrEventListenerObject) {\n if (!type || !func) {\n return;\n }\n this.cache[type] = this.cache[type] || {\n listener: []\n };\n this.cache[type].listener.push(func);\n }\n removeEventListener(type: string, func: EventListenerOrEventListenerObject) {\n if (!type || !func) {\n return;\n }\n if (!this.cache[type]) {\n return;\n }\n const index = this.cache[type].listener.findIndex((f: EventListenerOrEventListenerObject) => f === func);\n if (index >= 0) {\n this.cache[type].listener.splice(index, 1);\n }\n }\n cleanEvent() {\n this.cache = {};\n }\n cache: Record<string, { listener: EventListenerOrEventListenerObject[] }> = {};\n}\n\n@injectable()\nexport class LynxWindowHandlerContribution extends BaseWindowHandlerContribution implements IWindowHandlerContribution {\n static env: EnvType = 'lynx';\n type: EnvType = 'lynx';\n\n protected eventManager = new MiniAppEventManager();\n\n canvas: ICanvas;\n get container(): HTMLElement | null {\n return null;\n }\n\n constructor(@inject(VGlobal) private readonly global: IGlobal) {\n super();\n }\n\n getTitle(): string {\n return this.canvas.id.toString();\n }\n\n getWH(): { width: number; height: number } {\n return {\n width: this.canvas.width / (this.canvas.dpr || 1),\n height: this.canvas.height / (this.canvas.dpr || 1)\n };\n }\n\n getXY(): { x: number; y: number } {\n return { x: 0, y: 0 };\n }\n\n createWindow(params: IWindowParams): void {\n // 如果没有传入canvas,那么就创建一个canvas\n if (!params.canvas) {\n this.createWindowByConfig(params);\n } else {\n this.createWindowByCanvas(params);\n }\n }\n private createWindowByConfig(params: IWindowParams) {\n // 创建canvas\n const nativeCanvas = this.global.createCanvas({\n width: params.width,\n height: params.height\n });\n\n // 绑定\n const options = {\n width: params.width,\n height: params.height,\n dpr: params.dpr,\n nativeCanvas,\n id: Generator.GenAutoIncrementId().toString(),\n canvasControled: false\n };\n this.canvas = new LynxCanvas(options);\n }\n private createWindowByCanvas(params: IWindowParams) {\n // 获取canvas\n let canvas: HTMLCanvasElement | null;\n if (typeof params.canvas === 'string') {\n canvas = this.global.getElementById(params.canvas) as HTMLCanvasElement | null;\n if (!canvas) {\n throw new Error('canvasId 参数不正确,请确认canvas存在并插入dom');\n }\n } else {\n canvas = params!.canvas as HTMLCanvasElement | null;\n }\n\n // 如果没有传入wh,或者是不受控制的canvas,那就用canvas的原始wh\n let width = params.width;\n let height = params.height;\n if (width == null || height == null || !params.canvasControled) {\n const data = canvas.getBoundingClientRect();\n width = data.width;\n height = data.height;\n }\n // 如果没有dpr,就使用canvas的原始dpr\n let dpr = params.dpr;\n if (dpr == null) {\n dpr = canvas.width / width;\n }\n this.canvas = new LynxCanvas({\n width: width,\n height: height,\n dpr: dpr,\n nativeCanvas: canvas,\n canvasControled: params.canvasControled\n });\n }\n releaseWindow(): void {\n return;\n }\n resizeWindow(width: number, height: number): void {\n this.canvas.resize(width, height);\n }\n setDpr(dpr: number): void {\n this.canvas.dpr = dpr;\n }\n\n getContext(): IContext2d {\n return this.canvas.getContext();\n }\n getNativeHandler(): ICanvas {\n return this.canvas;\n }\n getDpr(): number {\n return this.canvas.dpr;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject): void {\n this.eventManager.addEventListener(type, listener);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject): void {\n this.eventManager.removeEventListener(type, listener);\n }\n dispatchEvent(event: any): boolean {\n const { type } = event;\n if (!this.eventManager.cache[type]) {\n return false;\n }\n\n // hack for offsetX offsetY\n if (event.changedTouches && event.changedTouches[0]) {\n event.offsetX = event.changedTouches[0].x;\n event.changedTouches[0].offsetX = event.changedTouches[0].x;\n event.changedTouches[0].clientX = event.changedTouches[0].x;\n event.offsetY = event.changedTouches[0].y;\n event.changedTouches[0].offsetY = event.changedTouches[0].y;\n event.changedTouches[0].clientY = event.changedTouches[0].y;\n }\n event.preventDefault = () => {\n return;\n };\n event.stopPropagation = () => {\n return;\n };\n if (this.eventManager.cache[type].listener) {\n this.eventManager.cache[type].listener.forEach((f: EventListener) => {\n f(event);\n });\n }\n return true;\n }\n\n getStyle(): CSSStyleDeclaration | Record<string, any> {\n return {};\n }\n setStyle(style: CSSStyleDeclaration | Record<string, any>) {\n return;\n }\n\n getBoundingClientRect(): IDomRectLike {\n const wh = this.getWH();\n return {\n x: 0,\n y: 0,\n width: wh.width,\n height: wh.height,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n }\n\n clearViewBox(vb: IBoundsLike, color?: string): void {\n const context = this.getContext();\n const dpr = this.getDpr();\n context.nativeContext.save();\n (context.nativeContext as CanvasRenderingContext2D).setTransform(dpr, 0, 0, dpr, 0, 0);\n context.clearRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n if (color) {\n context.fillStyle = color;\n context.fillRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n }\n context.nativeContext.restore();\n }\n}\n\nexport const lynxWindowModule = new ContainerModule(bind => {\n // lynx\n bind(LynxWindowHandlerContribution).toSelf();\n bind(WindowHandlerContribution)\n .toDynamicValue(ctx => ctx.container.get(LynxWindowHandlerContribution))\n .whenTargetNamed(LynxWindowHandlerContribution.env);\n});\n"]}
|