@visactor/vrender-kits 0.19.4-alpha.5 → 0.19.4
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 -1
- package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
- package/cjs/canvas/contributions/browser/context.js +26 -13
- package/cjs/canvas/contributions/browser/context.js.map +1 -1
- package/cjs/canvas/contributions/feishu/canvas.js +2 -1
- package/cjs/canvas/contributions/feishu/canvas.js.map +1 -1
- package/cjs/canvas/contributions/feishu/context.js +4 -3
- package/cjs/canvas/contributions/feishu/context.js.map +1 -1
- package/cjs/canvas/contributions/harmony/canvas.d.ts +9 -0
- package/cjs/canvas/contributions/harmony/canvas.js +31 -0
- package/cjs/canvas/contributions/harmony/canvas.js.map +1 -0
- package/cjs/canvas/contributions/harmony/context.d.ts +21 -0
- package/cjs/canvas/contributions/harmony/context.js +81 -0
- package/cjs/canvas/contributions/harmony/context.js.map +1 -0
- package/cjs/canvas/contributions/harmony/index.d.ts +2 -0
- package/cjs/canvas/contributions/harmony/index.js +21 -0
- package/cjs/canvas/contributions/harmony/index.js.map +1 -0
- package/cjs/canvas/contributions/harmony/modules.d.ts +1 -0
- package/cjs/canvas/contributions/harmony/modules.js +10 -0
- package/cjs/canvas/contributions/harmony/modules.js.map +1 -0
- package/cjs/canvas/contributions/lynx/canvas.js +2 -1
- package/cjs/canvas/contributions/lynx/canvas.js.map +1 -1
- package/cjs/canvas/contributions/lynx/context.js +2 -1
- package/cjs/canvas/contributions/lynx/context.js.map +1 -1
- package/cjs/canvas/contributions/node/canvas.js +2 -1
- package/cjs/canvas/contributions/node/canvas.js.map +1 -1
- package/cjs/canvas/contributions/node/context.js +3 -2
- package/cjs/canvas/contributions/node/context.js.map +1 -1
- package/cjs/canvas/contributions/taro/canvas.js +2 -1
- package/cjs/canvas/contributions/taro/canvas.js.map +1 -1
- package/cjs/canvas/contributions/taro/context.js +5 -6
- package/cjs/canvas/contributions/taro/context.js.map +1 -1
- package/cjs/canvas/contributions/tt/canvas.js +2 -1
- package/cjs/canvas/contributions/tt/canvas.js.map +1 -1
- package/cjs/canvas/contributions/tt/context.js +4 -3
- package/cjs/canvas/contributions/tt/context.js.map +1 -1
- package/cjs/canvas/contributions/wx/canvas.js +2 -1
- package/cjs/canvas/contributions/wx/canvas.js.map +1 -1
- package/cjs/canvas/contributions/wx/context.js +2 -2
- package/cjs/canvas/contributions/wx/context.js.map +1 -1
- package/cjs/env/contributions/browser-contribution.js +10 -11
- package/cjs/env/contributions/browser-contribution.js.map +1 -1
- package/cjs/env/contributions/canvas-wrap.js +12 -0
- package/cjs/env/contributions/canvas-wrap.js.map +1 -1
- package/cjs/env/contributions/feishu-contribution.js +8 -6
- package/cjs/env/contributions/feishu-contribution.js.map +1 -1
- package/cjs/env/contributions/harmony-contribution.d.ts +41 -0
- package/cjs/env/contributions/harmony-contribution.js +100 -0
- package/cjs/env/contributions/harmony-contribution.js.map +1 -0
- package/cjs/env/contributions/lynx-contribution.js +8 -6
- package/cjs/env/contributions/lynx-contribution.js.map +1 -1
- package/cjs/env/contributions/node-contribution.js +6 -4
- package/cjs/env/contributions/node-contribution.js.map +1 -1
- package/cjs/env/contributions/taro-contribution.js +9 -5
- package/cjs/env/contributions/taro-contribution.js.map +1 -1
- package/cjs/env/contributions/tt-contribution.js +20 -44
- package/cjs/env/contributions/tt-contribution.js.map +1 -1
- package/cjs/env/contributions/wx-contribution.js +24 -48
- package/cjs/env/contributions/wx-contribution.js.map +1 -1
- package/cjs/env/harmony.d.ts +7 -0
- package/cjs/env/harmony.js +25 -0
- package/cjs/env/harmony.js.map +1 -0
- package/cjs/env/index.d.ts +1 -0
- package/cjs/env/index.js +2 -1
- package/cjs/env/index.js.map +1 -1
- package/cjs/event/extension/drag.js +34 -34
- package/cjs/event/extension/drag.js.map +1 -1
- package/cjs/event/extension/gesture.js +100 -79
- package/cjs/event/extension/gesture.js.map +1 -1
- package/cjs/jsx/graphicType.js +8 -6
- package/cjs/jsx/graphicType.js.map +1 -1
- package/cjs/jsx/index.js +1 -2
- package/cjs/jsx/jsx-classic.js +3 -12
- package/cjs/jsx/jsx-classic.js.map +1 -1
- package/cjs/picker/canvas-picker-service.js +3 -0
- package/cjs/picker/canvas-picker-service.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/arc-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/arc3d-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/area-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/area-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/circle-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/glyph-picker.js +6 -3
- package/cjs/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/group-picker.js +2 -3
- package/cjs/picker/contributions/canvas-picker/group-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/image-picker.js +3 -4
- package/cjs/picker/contributions/canvas-picker/image-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/line-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/line-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/path-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/path-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/polygon-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/rect-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/rect3d-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/richtext-picker.js +4 -1
- package/cjs/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/symbol-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/text-picker.js +5 -2
- package/cjs/picker/contributions/canvas-picker/text-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/arc-picker.js +5 -2
- package/cjs/picker/contributions/math-picker/arc-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/area-picker.js +5 -2
- package/cjs/picker/contributions/math-picker/area-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/circle-picker.js +5 -2
- package/cjs/picker/contributions/math-picker/circle-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/glyph-picker.js +6 -3
- package/cjs/picker/contributions/math-picker/glyph-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/image-picker.js +3 -4
- package/cjs/picker/contributions/math-picker/image-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/line-picker.js +5 -2
- package/cjs/picker/contributions/math-picker/line-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/path-picker.js +5 -2
- package/cjs/picker/contributions/math-picker/path-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/polygon-picker.js +5 -2
- package/cjs/picker/contributions/math-picker/polygon-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/rect-picker.js +5 -2
- package/cjs/picker/contributions/math-picker/rect-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/richtext-picker.js +4 -1
- package/cjs/picker/contributions/math-picker/richtext-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/symbol-picker.js +5 -2
- package/cjs/picker/contributions/math-picker/symbol-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/text-picker.js +2 -3
- package/cjs/picker/contributions/math-picker/text-picker.js.map +1 -1
- package/cjs/picker/math-module.js +8 -2
- package/cjs/picker/math-module.js.map +1 -1
- package/cjs/picker/math-picker-service.js +2 -0
- package/cjs/picker/math-picker-service.js.map +1 -1
- package/cjs/register/register-path.js +1 -2
- package/cjs/register/register-polygon.js +2 -1
- package/cjs/render/contributions/rough/rough-arc.js +5 -1
- package/cjs/render/contributions/rough/rough-arc.js.map +1 -1
- package/cjs/render/contributions/rough/rough-area.js +4 -7
- package/cjs/render/contributions/rough/rough-area.js.map +1 -1
- package/cjs/render/contributions/rough/rough-circle.js +3 -2
- package/cjs/render/contributions/rough/rough-circle.js.map +1 -1
- package/cjs/render/contributions/rough/rough-line.js +4 -7
- package/cjs/render/contributions/rough/rough-line.js.map +1 -1
- package/cjs/render/contributions/rough/rough-path.js +5 -2
- package/cjs/render/contributions/rough/rough-path.js.map +1 -1
- package/cjs/render/contributions/rough/rough-rect.js +6 -4
- package/cjs/render/contributions/rough/rough-rect.js.map +1 -1
- package/cjs/render/contributions/rough/rough-symbol.js +4 -0
- package/cjs/render/contributions/rough/rough-symbol.js.map +1 -1
- package/cjs/window/contributions/browser-contribution.js +11 -7
- package/cjs/window/contributions/browser-contribution.js.map +1 -1
- package/cjs/window/contributions/feishu-contribution.js +9 -6
- package/cjs/window/contributions/feishu-contribution.js.map +1 -1
- package/cjs/window/contributions/harmony-contribution.d.ts +46 -0
- package/cjs/window/contributions/harmony-contribution.js +163 -0
- package/cjs/window/contributions/harmony-contribution.js.map +1 -0
- package/cjs/window/contributions/lynx-contribution.js +9 -6
- package/cjs/window/contributions/lynx-contribution.js.map +1 -1
- package/cjs/window/contributions/node-contribution.js +7 -3
- package/cjs/window/contributions/node-contribution.js.map +1 -1
- package/cjs/window/contributions/taro-contribution.js +15 -10
- package/cjs/window/contributions/taro-contribution.js.map +1 -1
- package/cjs/window/contributions/tt-contribution.js +9 -6
- package/cjs/window/contributions/tt-contribution.js.map +1 -1
- package/cjs/window/contributions/wx-contribution.js +13 -11
- package/cjs/window/contributions/wx-contribution.js.map +1 -1
- package/dist/index.es.js +9164 -0
- package/es/canvas/contributions/browser/canvas.js +2 -1
- package/es/canvas/contributions/browser/canvas.js.map +1 -1
- package/es/canvas/contributions/browser/context.js +26 -13
- package/es/canvas/contributions/browser/context.js.map +1 -1
- package/es/canvas/contributions/feishu/canvas.js +2 -1
- package/es/canvas/contributions/feishu/canvas.js.map +1 -1
- package/es/canvas/contributions/feishu/context.js +4 -3
- package/es/canvas/contributions/feishu/context.js.map +1 -1
- package/es/canvas/contributions/harmony/canvas.d.ts +9 -0
- package/es/canvas/contributions/harmony/canvas.js +28 -0
- package/es/canvas/contributions/harmony/canvas.js.map +1 -0
- package/es/canvas/contributions/harmony/context.d.ts +21 -0
- package/es/canvas/contributions/harmony/context.js +77 -0
- package/es/canvas/contributions/harmony/context.js.map +1 -0
- package/es/canvas/contributions/harmony/index.d.ts +2 -0
- package/es/canvas/contributions/harmony/index.js +4 -0
- package/es/canvas/contributions/harmony/index.js.map +1 -0
- package/es/canvas/contributions/harmony/modules.d.ts +1 -0
- package/es/canvas/contributions/harmony/modules.js +8 -0
- package/es/canvas/contributions/harmony/modules.js.map +1 -0
- package/es/canvas/contributions/lynx/canvas.js +2 -1
- package/es/canvas/contributions/lynx/canvas.js.map +1 -1
- package/es/canvas/contributions/lynx/context.js +2 -1
- package/es/canvas/contributions/lynx/context.js.map +1 -1
- package/es/canvas/contributions/node/canvas.js +2 -1
- package/es/canvas/contributions/node/canvas.js.map +1 -1
- package/es/canvas/contributions/node/context.js +3 -2
- package/es/canvas/contributions/node/context.js.map +1 -1
- package/es/canvas/contributions/taro/canvas.js +2 -1
- package/es/canvas/contributions/taro/canvas.js.map +1 -1
- package/es/canvas/contributions/taro/context.js +4 -6
- package/es/canvas/contributions/taro/context.js.map +1 -1
- package/es/canvas/contributions/tt/canvas.js +2 -1
- package/es/canvas/contributions/tt/canvas.js.map +1 -1
- package/es/canvas/contributions/tt/context.js +4 -2
- package/es/canvas/contributions/tt/context.js.map +1 -1
- package/es/canvas/contributions/wx/canvas.js +2 -1
- package/es/canvas/contributions/wx/canvas.js.map +1 -1
- package/es/canvas/contributions/wx/context.js +2 -1
- package/es/canvas/contributions/wx/context.js.map +1 -1
- package/es/env/contributions/browser-contribution.js +10 -11
- package/es/env/contributions/browser-contribution.js.map +1 -1
- package/es/env/contributions/canvas-wrap.js +12 -0
- package/es/env/contributions/canvas-wrap.js.map +1 -1
- package/es/env/contributions/feishu-contribution.js +8 -6
- package/es/env/contributions/feishu-contribution.js.map +1 -1
- package/es/env/contributions/harmony-contribution.d.ts +41 -0
- package/es/env/contributions/harmony-contribution.js +97 -0
- package/es/env/contributions/harmony-contribution.js.map +1 -0
- package/es/env/contributions/lynx-contribution.js +8 -6
- package/es/env/contributions/lynx-contribution.js.map +1 -1
- package/es/env/contributions/node-contribution.js +6 -4
- package/es/env/contributions/node-contribution.js.map +1 -1
- package/es/env/contributions/taro-contribution.js +9 -5
- package/es/env/contributions/taro-contribution.js.map +1 -1
- package/es/env/contributions/tt-contribution.js +20 -44
- package/es/env/contributions/tt-contribution.js.map +1 -1
- package/es/env/contributions/wx-contribution.js +24 -48
- package/es/env/contributions/wx-contribution.js.map +1 -1
- package/es/env/harmony.d.ts +7 -0
- package/es/env/harmony.js +28 -0
- package/es/env/harmony.js.map +1 -0
- package/es/env/index.d.ts +1 -0
- package/es/env/index.js +2 -0
- package/es/env/index.js.map +1 -1
- package/es/event/extension/drag.js +34 -34
- package/es/event/extension/drag.js.map +1 -1
- package/es/event/extension/gesture.js +100 -79
- package/es/event/extension/gesture.js.map +1 -1
- package/es/jsx/graphicType.js +8 -6
- package/es/jsx/graphicType.js.map +1 -1
- package/es/jsx/index.js +1 -2
- package/es/jsx/jsx-classic.js +3 -12
- package/es/jsx/jsx-classic.js.map +1 -1
- package/es/picker/canvas-picker-service.js +3 -0
- package/es/picker/canvas-picker-service.js.map +1 -1
- package/es/picker/contributions/canvas-picker/arc-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/arc3d-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/area-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/area-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/circle-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/glyph-picker.js +6 -3
- package/es/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/group-picker.js +2 -3
- package/es/picker/contributions/canvas-picker/group-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/image-picker.js +3 -4
- package/es/picker/contributions/canvas-picker/image-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/line-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/line-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/path-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/path-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/polygon-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/pyramid3d-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/rect-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/rect3d-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/richtext-picker.js +4 -1
- package/es/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/symbol-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/text-picker.js +5 -2
- package/es/picker/contributions/canvas-picker/text-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/arc-picker.js +5 -2
- package/es/picker/contributions/math-picker/arc-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/area-picker.js +5 -2
- package/es/picker/contributions/math-picker/area-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/circle-picker.js +5 -2
- package/es/picker/contributions/math-picker/circle-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/glyph-picker.js +6 -3
- package/es/picker/contributions/math-picker/glyph-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/image-picker.js +3 -4
- package/es/picker/contributions/math-picker/image-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/line-picker.js +5 -2
- package/es/picker/contributions/math-picker/line-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/path-picker.js +5 -2
- package/es/picker/contributions/math-picker/path-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/polygon-picker.js +5 -2
- package/es/picker/contributions/math-picker/polygon-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/rect-picker.js +5 -2
- package/es/picker/contributions/math-picker/rect-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/richtext-picker.js +4 -1
- package/es/picker/contributions/math-picker/richtext-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/symbol-picker.js +5 -2
- package/es/picker/contributions/math-picker/symbol-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/text-picker.js +2 -3
- package/es/picker/contributions/math-picker/text-picker.js.map +1 -1
- package/es/picker/math-module.js +29 -1
- package/es/picker/math-module.js.map +1 -1
- package/es/picker/math-picker-service.js +2 -0
- package/es/picker/math-picker-service.js.map +1 -1
- package/es/register/register-path.js +1 -2
- package/es/register/register-polygon.js +2 -1
- package/es/render/contributions/rough/rough-arc.js +5 -1
- package/es/render/contributions/rough/rough-arc.js.map +1 -1
- package/es/render/contributions/rough/rough-area.js +4 -7
- package/es/render/contributions/rough/rough-area.js.map +1 -1
- package/es/render/contributions/rough/rough-circle.js +3 -2
- package/es/render/contributions/rough/rough-circle.js.map +1 -1
- package/es/render/contributions/rough/rough-line.js +4 -7
- package/es/render/contributions/rough/rough-line.js.map +1 -1
- package/es/render/contributions/rough/rough-path.js +5 -2
- package/es/render/contributions/rough/rough-path.js.map +1 -1
- package/es/render/contributions/rough/rough-rect.js +6 -4
- package/es/render/contributions/rough/rough-rect.js.map +1 -1
- package/es/render/contributions/rough/rough-symbol.js +4 -0
- package/es/render/contributions/rough/rough-symbol.js.map +1 -1
- package/es/window/contributions/browser-contribution.js +12 -8
- package/es/window/contributions/browser-contribution.js.map +1 -1
- package/es/window/contributions/feishu-contribution.js +8 -5
- package/es/window/contributions/feishu-contribution.js.map +1 -1
- package/es/window/contributions/harmony-contribution.d.ts +46 -0
- package/es/window/contributions/harmony-contribution.js +161 -0
- package/es/window/contributions/harmony-contribution.js.map +1 -0
- package/es/window/contributions/lynx-contribution.js +8 -5
- package/es/window/contributions/lynx-contribution.js.map +1 -1
- package/es/window/contributions/node-contribution.js +6 -2
- package/es/window/contributions/node-contribution.js.map +1 -1
- package/es/window/contributions/taro-contribution.js +14 -9
- package/es/window/contributions/taro-contribution.js.map +1 -1
- package/es/window/contributions/tt-contribution.js +8 -5
- package/es/window/contributions/tt-contribution.js.map +1 -1
- package/es/window/contributions/wx-contribution.js +12 -10
- package/es/window/contributions/wx-contribution.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/taro-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyE;AAUzE,+CAAoD;AAcpD,SAAS,YAAY,CACnB,MAAe,EACf,aAAuB,EACvB,SAAiC,EACjC,aAAqB,EACrB,cAA2B,EAC3B,IAAW,EACX,GAAW;IAEX,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAQ,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAG9C,MAAM,MAAM,GAAG,IAAI,iCAAmB,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QAEpB,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,aAAa,EAAE;YACtB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAWM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,kCAAmB;IAS1D;QACE,KAAK,EAAE,CAAC;QATV,SAAI,GAAY,MAAM,CAAC;QACvB,iBAAY,GAAY,IAAI,CAAC;QAC7B,cAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;QAC9C,mBAAc,GAAgB,EAAE,CAAC;QACjC,cAAS,GAAW,CAAC,CAAC;QAMpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI;YACF,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;YACvD,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;SACpD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SAClC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAKD,qBAAqB;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACpC,CAAC;IAKD,oBAAoB;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,KAAU;;QACzB,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,UAAU,CAAC,OAAO,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAID,SAAS,CAAC,OAAgB,EAAE,MAAwB;QAClD,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACvC,YAAY,CACV,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,aAAa,EACpB,IAAI,CAAC,SAAS,EACd,MAAM,CAAC,aAAa,EACpB,IAAI,CAAC,cAAc,EACnB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,UAAU,CAClB,CAAC;YACF,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;SAGrC;IACH,CAAC;IAED,SAAS,CAAC,GAAW;QAInB,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAkC;YACxC,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAc;QAIpB,MAAM,OAAO,GAAG,MAAM,IAAI,UAAU,CAAC;QACrC,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,oCAAoC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAE3E,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,IAAI,EAAE,GAAkC;gBACxC,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;SACJ;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YACnE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE9C,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,IAAI,EAAE,GAAkC;gBACxC,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;SACJ;QAED,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,MAA2B;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qBAAqB,CAAC,MAA2B;QAC/C,OAAO;IACT,CAAC;IAED,aAAa,CAAC,MAA4B;QACxC,OAAO;IACT,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,wBAAwB;QACtB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,uBAAuB;QACrB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAYD,gBAAgB,CAAC,IAAa,EAAE,QAAiB,EAAE,OAAiB;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAYD,mBAAmB,CAAC,IAAa,EAAE,QAAiB,EAAE,OAAiB;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,cAAc,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;CACF,CAAA;AAjLY,mBAAmB;IAD/B,IAAA,yBAAU,GAAE;;GACA,mBAAmB,CAiL/B;AAjLY,kDAAmB","file":"taro-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n IDomRef,\n ITTCanvas\n} from '@visactor/vrender-core';\nimport { CanvasWrapDisableWH } from './canvas-wrap';\n\ninterface ITaro {\n createCanvasContext: (id: string) => any;\n canvasGetImageData: (data: {\n canvasId: string;\n x: number;\n y: number;\n width: number;\n height: number;\n success: (res: any) => void;\n }) => any;\n}\n\nfunction makeUpCanvas(\n domref: IDomRef,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n taro: ITaro,\n dpr: number\n) {\n canvasIdLists.forEach((id, i) => {\n const ctx: any = taro.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n\n const canvas = new CanvasWrapDisableWH(ctx.canvas || {}, ctx, dpr, domref.width, domref.height, id);\n ctx.canvas = canvas;\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n\n return canvas;\n });\n}\n\ninterface IConfigureParams {\n domref: any;\n canvasIdLists: string[];\n freeCanvasIdx: number;\n taro: ITaro;\n pixelRatio: number; // taro需要小程序自己处理pixelRatio\n}\n\n@injectable()\nexport class TaroEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'taro';\n supportEvent: boolean = true;\n canvasMap: Map<string, ITTCanvas> = new Map();\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n taro: ITaro;\n pixelRatio: number;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return 9999;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return event;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: IConfigureParams) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.taro,\n params.pixelRatio\n );\n this.taro = params.taro;\n this.pixelRatio = params.pixelRatio;\n\n // loadTaroContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(svgStr: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const _window = window || globalThis;\n if (_window.DOMParser) {\n const parser = new _window.DOMParser();\n const svg = parser.parseFromString(svgStr, 'image/svg+xml').children[0];\n const data = new XMLSerializer().serializeToString(svg);\n const url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(data)}`; //svg转base64\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n } else if (_window.Blob) {\n const data = new _window.Blob([svgStr], { type: 'image/svg+xml' });\n const url = _window.URL.createObjectURL(data);\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n // 目前移动端上小程序不支持DOMParser和Blob,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n // params不生效\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return this.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/taro-contribution.ts"],"names":[],"mappings":"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","file":"taro-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n IDomRef,\n ITTCanvas\n} from '@visactor/vrender-core';\nimport { CanvasWrapDisableWH } from './canvas-wrap';\n\ninterface ITaro {\n createCanvasContext: (id: string) => any;\n canvasGetImageData: (data: {\n canvasId: string;\n x: number;\n y: number;\n width: number;\n height: number;\n success: (res: any) => void;\n }) => any;\n}\n\nfunction makeUpCanvas(\n domref: IDomRef,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n taro: ITaro,\n dpr: number\n) {\n canvasIdLists.forEach((id, i) => {\n const ctx: any = taro.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n\n const canvas = new CanvasWrapDisableWH(ctx.canvas || {}, ctx, dpr, domref.width, domref.height, id);\n ctx.canvas = canvas;\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n\n return canvas;\n });\n}\n\ninterface IConfigureParams {\n domref: any;\n canvasIdLists: string[];\n freeCanvasIdx: number;\n taro: ITaro;\n pixelRatio: number; // taro需要小程序自己处理pixelRatio\n}\n\n@injectable()\nexport class TaroEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'taro';\n supportEvent: boolean = true;\n canvasMap: Map<string, ITTCanvas> = new Map();\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n taro: ITaro;\n pixelRatio: number;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return 9999;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return event;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: IConfigureParams) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.taro,\n params.pixelRatio\n );\n this.taro = params.taro;\n this.pixelRatio = params.pixelRatio;\n\n // loadTaroContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(svgStr: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const _window = window || globalThis;\n if (_window.DOMParser) {\n const parser = new _window.DOMParser();\n const svg = parser.parseFromString(svgStr, 'image/svg+xml').children[0];\n const data = new XMLSerializer().serializeToString(svg);\n const url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(data)}`; //svg转base64\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n } else if (_window.Blob) {\n const data = new _window.Blob([svgStr], { type: 'image/svg+xml' });\n const url = _window.URL.createObjectURL(data);\n\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n // 目前移动端上小程序不支持DOMParser和Blob,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n // params不生效\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return this.pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
|
|
@@ -6,30 +6,6 @@ var __decorate = this && this.__decorate || function(decorators, target, key, de
|
|
|
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
|
-
}, __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
10
|
-
return new (P || (P = Promise))((function(resolve, reject) {
|
|
11
|
-
function fulfilled(value) {
|
|
12
|
-
try {
|
|
13
|
-
step(generator.next(value));
|
|
14
|
-
} catch (e) {
|
|
15
|
-
reject(e);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function rejected(value) {
|
|
19
|
-
try {
|
|
20
|
-
step(generator.throw(value));
|
|
21
|
-
} catch (e) {
|
|
22
|
-
reject(e);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function step(result) {
|
|
26
|
-
var value;
|
|
27
|
-
result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
|
|
28
|
-
resolve(value);
|
|
29
|
-
}))).then(fulfilled, rejected);
|
|
30
|
-
}
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
}));
|
|
33
9
|
};
|
|
34
10
|
|
|
35
11
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -38,27 +14,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
38
14
|
|
|
39
15
|
const vrender_core_1 = require("@visactor/vrender-core");
|
|
40
16
|
|
|
41
|
-
function makeUpCanvas(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanvasList, component) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
i >= freeCanvasIdx && freeCanvasList.push(canvas), resolve(null);
|
|
52
|
-
}));
|
|
17
|
+
async function makeUpCanvas(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanvasList, component) {
|
|
18
|
+
const dpr = tt.getSystemInfoSync().pixelRatio;
|
|
19
|
+
for (let i = 0; i < canvasIdLists.length; i++) {
|
|
20
|
+
const id = canvasIdLists[i];
|
|
21
|
+
await new Promise((resolve => {
|
|
22
|
+
let data = tt.createSelectorQuery();
|
|
23
|
+
component && (data = data.in(component)), data.select(`#${id}`).node().exec((res => {
|
|
24
|
+
const canvas = res[0].node, width = canvas.width, height = canvas.height;
|
|
25
|
+
canvas.width = width * dpr, canvas.height = height * dpr, canvasMap.set(id, canvas),
|
|
26
|
+
i >= freeCanvasIdx && freeCanvasList.push(canvas), resolve(null);
|
|
53
27
|
}));
|
|
54
|
-
}
|
|
55
|
-
}
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
56
30
|
}
|
|
57
31
|
|
|
58
32
|
let TTEnvContribution = class extends vrender_core_1.BaseEnvContribution {
|
|
33
|
+
type="tt";
|
|
34
|
+
supportEvent=!0;
|
|
35
|
+
canvasMap=new Map;
|
|
36
|
+
freeCanvasList=[];
|
|
37
|
+
canvasIdx=0;
|
|
59
38
|
constructor() {
|
|
60
|
-
super(), this.
|
|
61
|
-
this.canvasIdx = 0, this.supportsTouchEvents = !0;
|
|
39
|
+
super(), this.supportsTouchEvents = !0;
|
|
62
40
|
try {
|
|
63
41
|
this.supportsPointerEvents = !!globalThis.PointerEvent, this.supportsMouseEvents = !!globalThis.MouseEvent;
|
|
64
42
|
} catch (err) {
|
|
@@ -117,12 +95,10 @@ let TTEnvContribution = class extends vrender_core_1.BaseEnvContribution {
|
|
|
117
95
|
}
|
|
118
96
|
release(...params) {}
|
|
119
97
|
mapToCanvasPoint(event) {
|
|
120
|
-
|
|
121
|
-
return null === (_a = null == event ? void 0 : event.type) || void 0 === _a || _a.startsWith("mouse"),
|
|
122
|
-
event;
|
|
98
|
+
return event?.type?.startsWith("mouse"), event;
|
|
123
99
|
}
|
|
124
100
|
};
|
|
125
101
|
|
|
126
102
|
TTEnvContribution = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", []) ], TTEnvContribution),
|
|
127
103
|
exports.TTEnvContribution = TTEnvContribution;
|
|
128
|
-
//# sourceMappingURL=tt-contribution.js.map
|
|
104
|
+
//# sourceMappingURL=tt-contribution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/tt-contribution.ts"],"names":[],"mappings":"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","file":"tt-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ndeclare const tt: {\n getSystemInfoSync: () => { pixelRatio: number };\n createSelectorQuery: () => any;\n};\n\n// 飞书小程序canvas的wrap\nasync function makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n component: any\n) {\n const dpr = tt.getSystemInfoSync().pixelRatio;\n\n for (let i = 0; i < canvasIdLists.length; i++) {\n const id = canvasIdLists[i];\n await new Promise(resolve => {\n let data = tt.createSelectorQuery();\n if (component) {\n data = data.in(component);\n }\n // @ts-ignore\n data\n .select(`#${id}`) // 在 WXML 中填入的 id\n .node()\n .exec((res: any) => {\n const canvas = res[0].node;\n const width = canvas.width;\n const height = canvas.height;\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n resolve(null);\n });\n });\n }\n\n // canvasIdLists.forEach((id, i) => {\n // const ctx = wx.createCanvasContext(id);\n // // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n // ctx.canvas = {\n // width: domref.width * dpr,\n // height: domref.height * dpr\n // };\n\n // // 放到内容里\n // // // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n // // ctx.createRadialGradient = (...cc) => ctx.createCircularGradient(...cc);\n\n // // // 封装 getImageData 为 promise\n // // ctx.getImageData = (x, y, width, height) =>\n // // new Promise((resolve, reject) => {\n // // try {\n // // tt.canvasGetImageData({\n // // canvasId: item.id,\n // // x,\n // // y,\n // // width,\n // // height,\n // // success(res) {\n // // resolve(res);\n // // },\n // // });\n // // } catch (err) {\n // // reject(err);\n // // }\n // // });\n\n // const canvas = {\n // width: domref.width,\n // height: domref.height,\n // offsetWidth: domref.width,\n // offsetHeight: domref.height,\n // id: id ?? '',\n // getContext: () => ctx,\n // // 构造 getBoundingClientRect 方法\n // getBoundingClientRect: () => ({\n // height: domref.height,\n // width: domref.width\n // })\n // };\n\n // canvasMap.set(id, canvas);\n // if (i >= freeCanvasIdx) {\n // freeCanvasList.push(canvas);\n // }\n // });\n}\n\n@injectable()\nexport class TTEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'tt';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ITTCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number; component: any }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n return makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.component\n ).then(() => {\n // loadFeishuContributions();\n });\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return tt.getSystemInfoSync().pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n return function (callback: FrameRequestCallback) {\n return rafBasedSto.call(callback);\n } as any;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return (h: number) => {\n rafBasedSto.clear(h);\n };\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return event;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/tt-contribution.ts"],"names":[],"mappings":"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","file":"tt-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ndeclare const tt: {\n getSystemInfoSync: () => { pixelRatio: number };\n createSelectorQuery: () => any;\n};\n\n// 飞书小程序canvas的wrap\nasync function makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n component: any\n) {\n const dpr = tt.getSystemInfoSync().pixelRatio;\n\n for (let i = 0; i < canvasIdLists.length; i++) {\n const id = canvasIdLists[i];\n await new Promise(resolve => {\n let data = tt.createSelectorQuery();\n if (component) {\n data = data.in(component);\n }\n // @ts-ignore\n data\n .select(`#${id}`) // 在 WXML 中填入的 id\n .node()\n .exec((res: any) => {\n const canvas = res[0].node;\n const width = canvas.width;\n const height = canvas.height;\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n resolve(null);\n });\n });\n }\n\n // canvasIdLists.forEach((id, i) => {\n // const ctx = wx.createCanvasContext(id);\n // // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n // ctx.canvas = {\n // width: domref.width * dpr,\n // height: domref.height * dpr\n // };\n\n // // 放到内容里\n // // // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n // // ctx.createRadialGradient = (...cc) => ctx.createCircularGradient(...cc);\n\n // // // 封装 getImageData 为 promise\n // // ctx.getImageData = (x, y, width, height) =>\n // // new Promise((resolve, reject) => {\n // // try {\n // // tt.canvasGetImageData({\n // // canvasId: item.id,\n // // x,\n // // y,\n // // width,\n // // height,\n // // success(res) {\n // // resolve(res);\n // // },\n // // });\n // // } catch (err) {\n // // reject(err);\n // // }\n // // });\n\n // const canvas = {\n // width: domref.width,\n // height: domref.height,\n // offsetWidth: domref.width,\n // offsetHeight: domref.height,\n // id: id ?? '',\n // getContext: () => ctx,\n // // 构造 getBoundingClientRect 方法\n // getBoundingClientRect: () => ({\n // height: domref.height,\n // width: domref.width\n // })\n // };\n\n // canvasMap.set(id, canvas);\n // if (i >= freeCanvasIdx) {\n // freeCanvasList.push(canvas);\n // }\n // });\n}\n\n@injectable()\nexport class TTEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'tt';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ITTCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number; component: any }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n return makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.component\n ).then(() => {\n // loadFeishuContributions();\n });\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return tt.getSystemInfoSync().pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n return function (callback: FrameRequestCallback) {\n return rafBasedSto.call(callback);\n } as any;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return (h: number) => {\n rafBasedSto.clear(h);\n };\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return event;\n }\n}\n"]}
|
|
@@ -6,30 +6,6 @@ var __decorate = this && this.__decorate || function(decorators, target, key, de
|
|
|
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
|
-
}, __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
10
|
-
return new (P || (P = Promise))((function(resolve, reject) {
|
|
11
|
-
function fulfilled(value) {
|
|
12
|
-
try {
|
|
13
|
-
step(generator.next(value));
|
|
14
|
-
} catch (e) {
|
|
15
|
-
reject(e);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function rejected(value) {
|
|
19
|
-
try {
|
|
20
|
-
step(generator.throw(value));
|
|
21
|
-
} catch (e) {
|
|
22
|
-
reject(e);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function step(result) {
|
|
26
|
-
var value;
|
|
27
|
-
result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
|
|
28
|
-
resolve(value);
|
|
29
|
-
}))).then(fulfilled, rejected);
|
|
30
|
-
}
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
}));
|
|
33
9
|
};
|
|
34
10
|
|
|
35
11
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -38,31 +14,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
38
14
|
|
|
39
15
|
const vrender_core_1 = require("@visactor/vrender-core");
|
|
40
16
|
|
|
41
|
-
function makeUpCanvas(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanvasList, component) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
i >= freeCanvasIdx && freeCanvasList.push(canvas), resolve(null);
|
|
56
|
-
}));
|
|
17
|
+
async function makeUpCanvas(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanvasList, component) {
|
|
18
|
+
const dpr = wx.getSystemInfoSync().pixelRatio;
|
|
19
|
+
for (let i = 0; i < canvasIdLists.length; i++) {
|
|
20
|
+
const id = canvasIdLists[i];
|
|
21
|
+
await new Promise((resolve => {
|
|
22
|
+
let data = wx.createSelectorQuery();
|
|
23
|
+
component && (data = data.in(component)), data.select(`#${id}`).fields({
|
|
24
|
+
node: !0,
|
|
25
|
+
size: !0
|
|
26
|
+
}).exec((res => {
|
|
27
|
+
if (!res[0]) return;
|
|
28
|
+
const canvas = res[0].node, width = res[0].width, height = res[0].height;
|
|
29
|
+
canvas.width = width * dpr, canvas.height = height * dpr, canvasMap.set(id, canvas),
|
|
30
|
+
i >= freeCanvasIdx && freeCanvasList.push(canvas), resolve(null);
|
|
57
31
|
}));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
60
34
|
}
|
|
61
35
|
|
|
62
36
|
let WxEnvContribution = class extends vrender_core_1.BaseEnvContribution {
|
|
37
|
+
type="wx";
|
|
38
|
+
supportEvent=!0;
|
|
39
|
+
canvasMap=new Map;
|
|
40
|
+
freeCanvasList=[];
|
|
41
|
+
canvasIdx=0;
|
|
63
42
|
constructor() {
|
|
64
|
-
super(), this.
|
|
65
|
-
this.canvasIdx = 0, this.supportsTouchEvents = !0;
|
|
43
|
+
super(), this.supportsTouchEvents = !0;
|
|
66
44
|
try {
|
|
67
45
|
this.supportsPointerEvents = !!globalThis.PointerEvent, this.supportsMouseEvents = !!globalThis.MouseEvent;
|
|
68
46
|
} catch (err) {
|
|
@@ -121,12 +99,10 @@ let WxEnvContribution = class extends vrender_core_1.BaseEnvContribution {
|
|
|
121
99
|
}
|
|
122
100
|
release(...params) {}
|
|
123
101
|
mapToCanvasPoint(event) {
|
|
124
|
-
|
|
125
|
-
return null === (_a = null == event ? void 0 : event.type) || void 0 === _a || _a.startsWith("mouse"),
|
|
126
|
-
event;
|
|
102
|
+
return event?.type?.startsWith("mouse"), event;
|
|
127
103
|
}
|
|
128
104
|
};
|
|
129
105
|
|
|
130
106
|
WxEnvContribution = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", []) ], WxEnvContribution),
|
|
131
107
|
exports.WxEnvContribution = WxEnvContribution;
|
|
132
|
-
//# sourceMappingURL=wx-contribution.js.map
|
|
108
|
+
//# sourceMappingURL=wx-contribution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/wx-contribution.ts"],"names":[],"mappings":"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","file":"wx-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ndeclare const wx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvasContext: (id: string) => any;\n createSelectorQuery: () => any;\n};\n\n// 飞书小程序canvas的wrap\nasync function makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n component: any\n) {\n const dpr = wx.getSystemInfoSync().pixelRatio;\n\n for (let i = 0; i < canvasIdLists.length; i++) {\n const id = canvasIdLists[i];\n await new Promise(resolve => {\n let data = wx.createSelectorQuery();\n if (component) {\n data = data.in(component);\n }\n // @ts-ignore\n data\n .select(`#${id}`) // 在 WXML 中填入的 id\n .fields({ node: true, size: true })\n .exec((res: any) => {\n if (!res[0]) {\n return;\n }\n const canvas = res[0].node;\n const width = res[0].width;\n const height = res[0].height;\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n resolve(null);\n });\n });\n }\n\n // canvasIdLists.forEach((id, i) => {\n // const ctx = wx.createCanvasContext(id);\n // // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n // ctx.canvas = {\n // width: domref.width * dpr,\n // height: domref.height * dpr\n // };\n\n // // 放到内容里\n // // // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n // // ctx.createRadialGradient = (...cc) => ctx.createCircularGradient(...cc);\n\n // // // 封装 getImageData 为 promise\n // // ctx.getImageData = (x, y, width, height) =>\n // // new Promise((resolve, reject) => {\n // // try {\n // // tt.canvasGetImageData({\n // // canvasId: item.id,\n // // x,\n // // y,\n // // width,\n // // height,\n // // success(res) {\n // // resolve(res);\n // // },\n // // });\n // // } catch (err) {\n // // reject(err);\n // // }\n // // });\n\n // const canvas = {\n // width: domref.width,\n // height: domref.height,\n // offsetWidth: domref.width,\n // offsetHeight: domref.height,\n // id: id ?? '',\n // getContext: () => ctx,\n // // 构造 getBoundingClientRect 方法\n // getBoundingClientRect: () => ({\n // height: domref.height,\n // width: domref.width\n // })\n // };\n\n // canvasMap.set(id, canvas);\n // if (i >= freeCanvasIdx) {\n // freeCanvasList.push(canvas);\n // }\n // });\n}\n\n@injectable()\nexport class WxEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'wx';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ITTCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number; component: any }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n return makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.component\n ).then(() => {\n // loadFeishuContributions();\n });\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return wx.getSystemInfoSync().pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n return function (callback: FrameRequestCallback) {\n return rafBasedSto.call(callback);\n } as any;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return (h: number) => {\n rafBasedSto.clear(h);\n };\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return event;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/wx-contribution.ts"],"names":[],"mappings":"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","file":"wx-contribution.js","sourcesContent":["import { injectable, BaseEnvContribution, rafBasedSto } from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n ITTCanvas\n} from '@visactor/vrender-core';\n\ndeclare const wx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvasContext: (id: string) => any;\n createSelectorQuery: () => any;\n};\n\n// 飞书小程序canvas的wrap\nasync function makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[],\n component: any\n) {\n const dpr = wx.getSystemInfoSync().pixelRatio;\n\n for (let i = 0; i < canvasIdLists.length; i++) {\n const id = canvasIdLists[i];\n await new Promise(resolve => {\n let data = wx.createSelectorQuery();\n if (component) {\n data = data.in(component);\n }\n // @ts-ignore\n data\n .select(`#${id}`) // 在 WXML 中填入的 id\n .fields({ node: true, size: true })\n .exec((res: any) => {\n if (!res[0]) {\n return;\n }\n const canvas = res[0].node;\n const width = res[0].width;\n const height = res[0].height;\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n resolve(null);\n });\n });\n }\n\n // canvasIdLists.forEach((id, i) => {\n // const ctx = wx.createCanvasContext(id);\n // // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n // ctx.canvas = {\n // width: domref.width * dpr,\n // height: domref.height * dpr\n // };\n\n // // 放到内容里\n // // // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n // // ctx.createRadialGradient = (...cc) => ctx.createCircularGradient(...cc);\n\n // // // 封装 getImageData 为 promise\n // // ctx.getImageData = (x, y, width, height) =>\n // // new Promise((resolve, reject) => {\n // // try {\n // // tt.canvasGetImageData({\n // // canvasId: item.id,\n // // x,\n // // y,\n // // width,\n // // height,\n // // success(res) {\n // // resolve(res);\n // // },\n // // });\n // // } catch (err) {\n // // reject(err);\n // // }\n // // });\n\n // const canvas = {\n // width: domref.width,\n // height: domref.height,\n // offsetWidth: domref.width,\n // offsetHeight: domref.height,\n // id: id ?? '',\n // getContext: () => ctx,\n // // 构造 getBoundingClientRect 方法\n // getBoundingClientRect: () => ({\n // height: domref.height,\n // width: domref.width\n // })\n // };\n\n // canvasMap.set(id, canvas);\n // if (i >= freeCanvasIdx) {\n // freeCanvasList.push(canvas);\n // }\n // });\n}\n\n@injectable()\nexport class WxEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'wx';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ITTCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number; component: any }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n return makeUpCanvas(\n params.domref,\n params.canvasIdLists,\n this.canvasMap,\n params.freeCanvasIdx,\n this.freeCanvasList,\n params.component\n ).then(() => {\n // loadFeishuContributions();\n });\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return wx.getSystemInfoSync().pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n // return function (callback: FrameRequestCallback) {\n // return setTimeout(callback, 1000 / 60, true);\n // } as any;\n return function (callback: FrameRequestCallback) {\n return rafBasedSto.call(callback);\n } as any;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return (h: number) => {\n rafBasedSto.clear(h);\n };\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return event;\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ContainerModule, type Container } from '@visactor/vrender-core';
|
|
2
|
+
export declare const harmonyEnvModule: ContainerModule;
|
|
3
|
+
export declare function loadHarmonyEnv(container: Container, loadPicker?: boolean): void;
|
|
4
|
+
export declare namespace loadHarmonyEnv {
|
|
5
|
+
var __loaded: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function initHarmonyEnv(): void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.initHarmonyEnv = exports.loadHarmonyEnv = exports.harmonyEnvModule = void 0;
|
|
6
|
+
|
|
7
|
+
const vrender_core_1 = require("@visactor/vrender-core"), math_module_1 = require("../picker/math-module"), harmony_contribution_1 = require("../window/contributions/harmony-contribution"), modules_1 = require("../canvas/contributions/harmony/modules"), harmony_contribution_2 = require("./contributions/harmony-contribution");
|
|
8
|
+
|
|
9
|
+
function loadHarmonyEnv(container, loadPicker = !0) {
|
|
10
|
+
loadHarmonyEnv.__loaded || (loadHarmonyEnv.__loaded = !0, container.load(exports.harmonyEnvModule),
|
|
11
|
+
container.load(modules_1.harmonyCanvasModule), container.load(harmony_contribution_1.harmonyWindowModule),
|
|
12
|
+
loadPicker && (0, math_module_1.loadMathPicker)(container));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function initHarmonyEnv() {
|
|
16
|
+
loadHarmonyEnv(vrender_core_1.container);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
exports.harmonyEnvModule = new vrender_core_1.ContainerModule((bind => {
|
|
20
|
+
exports.harmonyEnvModule.isHarmonyBound || (exports.harmonyEnvModule.isHarmonyBound = !0,
|
|
21
|
+
bind(harmony_contribution_2.HarmonyEnvContribution).toSelf().inSingletonScope(),
|
|
22
|
+
bind(vrender_core_1.EnvContribution).toService(harmony_contribution_2.HarmonyEnvContribution));
|
|
23
|
+
})), exports.harmonyEnvModule.isHarmonyBound = !1, exports.loadHarmonyEnv = loadHarmonyEnv,
|
|
24
|
+
loadHarmonyEnv.__loaded = !1, exports.initHarmonyEnv = initHarmonyEnv;
|
|
25
|
+
//# sourceMappingURL=harmony.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/env/harmony.ts"],"names":[],"mappings":";;;AAAA,yDAAqG;AACrG,uDAAuD;AACvD,uFAAmF;AACnF,qEAA8E;AAC9E,+EAA8E;AAEjE,QAAA,gBAAgB,GAAG,IAAI,8BAAe,CAAC,IAAI,CAAC,EAAE;IAEzD,IAAI,CAAE,wBAAwB,CAAC,cAAc,EAAE;QAC5C,wBAAwB,CAAC,cAAc,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,6CAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACzD,IAAI,CAAC,8BAAe,CAAC,CAAC,SAAS,CAAC,6CAAsB,CAAC,CAAC;KACzD;AACH,CAAC,CAAC,CAAC;AAEF,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAC;AAEjD,SAAgB,cAAc,CAAC,SAAoB,EAAE,aAAsB,IAAI;IAC7E,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;QAC5B,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,6BAAmB,CAAC,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,0CAAmB,CAAC,CAAC;QACpC,UAAU,IAAI,IAAA,4BAAc,EAAC,SAAS,CAAC,CAAC;KACzC;AACH,CAAC;AARD,wCAQC;AAED,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;AAEhC,SAAgB,cAAc;IAC5B,cAAc,CAAC,wBAAS,CAAC,CAAC;AAC5B,CAAC;AAFD,wCAEC","file":"harmony.js","sourcesContent":["import { container, ContainerModule, type Container, EnvContribution } from '@visactor/vrender-core';\nimport { loadMathPicker } from '../picker/math-module';\nimport { harmonyWindowModule } from '../window/contributions/harmony-contribution';\nimport { harmonyCanvasModule } from '../canvas/contributions/harmony/modules';\nimport { HarmonyEnvContribution } from './contributions/harmony-contribution';\n\nexport const harmonyEnvModule = new ContainerModule(bind => {\n // harmony\n if (!(harmonyEnvModule as any).isHarmonyBound) {\n (harmonyEnvModule as any).isHarmonyBound = true;\n bind(HarmonyEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(HarmonyEnvContribution);\n }\n});\n\n(harmonyEnvModule as any).isHarmonyBound = false;\n\nexport function loadHarmonyEnv(container: Container, loadPicker: boolean = true) {\n if (!loadHarmonyEnv.__loaded) {\n loadHarmonyEnv.__loaded = true;\n container.load(harmonyEnvModule);\n container.load(harmonyCanvasModule);\n container.load(harmonyWindowModule);\n loadPicker && loadMathPicker(container);\n }\n}\n\nloadHarmonyEnv.__loaded = false;\n\nexport function initHarmonyEnv() {\n loadHarmonyEnv(container);\n}\n"]}
|
package/cjs/env/index.d.ts
CHANGED
package/cjs/env/index.js
CHANGED
|
@@ -20,5 +20,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
20
20
|
}), __exportStar(require("./all"), exports), __exportStar(require("./browser"), exports),
|
|
21
21
|
__exportStar(require("./feishu"), exports), __exportStar(require("./lynx"), exports),
|
|
22
22
|
__exportStar(require("./node"), exports), __exportStar(require("./taro"), exports),
|
|
23
|
-
__exportStar(require("./wx"), exports), __exportStar(require("./tt"), exports)
|
|
23
|
+
__exportStar(require("./wx"), exports), __exportStar(require("./tt"), exports),
|
|
24
|
+
__exportStar(require("./harmony"), exports);
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/cjs/env/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,4CAA0B;AAC1B,2CAAyB;AACzB,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,uCAAqB;AACrB,uCAAqB","file":"index.js","sourcesContent":["export * from './all';\nexport * from './browser';\nexport * from './feishu';\nexport * from './lynx';\nexport * from './node';\nexport * from './taro';\nexport * from './wx';\nexport * from './tt';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/env/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,4CAA0B;AAC1B,2CAAyB;AACzB,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,uCAAqB;AACrB,uCAAqB;AACrB,4CAA0B","file":"index.js","sourcesContent":["export * from './all';\nexport * from './browser';\nexport * from './feishu';\nexport * from './lynx';\nexport * from './node';\nexport * from './taro';\nexport * from './wx';\nexport * from './tt';\nexport * from './harmony';\n"]}
|
|
@@ -5,49 +5,49 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
}), exports.DragNDrop = void 0;
|
|
6
6
|
|
|
7
7
|
class DragNDrop {
|
|
8
|
+
rootNode;
|
|
8
9
|
constructor(rootNode) {
|
|
9
|
-
this.
|
|
10
|
-
const target = event.target, rootNode = this.rootNode, isRoot = target === rootNode;
|
|
11
|
-
if (target && !isRoot) {
|
|
12
|
-
let currentDroppable, dragstartTriggered = !1;
|
|
13
|
-
function handlePointerMove(moveEvent) {
|
|
14
|
-
if (dragstartTriggered || (moveEvent.type = "dragstart", null == target || target.dispatchEvent(moveEvent),
|
|
15
|
-
dragstartTriggered = !0), moveEvent.type = "drag", null == target || target.dispatchEvent(moveEvent),
|
|
16
|
-
!isRoot) {
|
|
17
|
-
target.attribute.pickable = !1;
|
|
18
|
-
const elemBelow = (null == rootNode ? void 0 : rootNode.pick(moveEvent.global.x, moveEvent.global.y)).graphic;
|
|
19
|
-
target.attribute.pickable = !0, currentDroppable !== elemBelow && (currentDroppable && (moveEvent.type = "dragleave",
|
|
20
|
-
moveEvent.target = currentDroppable, currentDroppable.dispatchEvent(moveEvent)),
|
|
21
|
-
elemBelow && (moveEvent.type = "dragenter", moveEvent.target = elemBelow, elemBelow.dispatchEvent(moveEvent)),
|
|
22
|
-
currentDroppable = elemBelow, currentDroppable && (moveEvent.type = "dragover",
|
|
23
|
-
moveEvent.target = currentDroppable, currentDroppable.dispatchEvent(moveEvent)));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
null == rootNode || rootNode.addEventListener("pointermove", handlePointerMove);
|
|
27
|
-
const stopDragging = function() {
|
|
28
|
-
dragstartTriggered && (currentDroppable && (event.type = "drop", event.target = currentDroppable,
|
|
29
|
-
currentDroppable.dispatchEvent(event)), event.type = "dragend", target.dispatchEvent(event),
|
|
30
|
-
dragstartTriggered = !1), null == rootNode || rootNode.removeEventListener("pointermove", handlePointerMove);
|
|
31
|
-
};
|
|
32
|
-
target.addEventListener("pointerup", stopDragging, {
|
|
33
|
-
once: !0
|
|
34
|
-
}), target.addEventListener("pointerupoutside", stopDragging, {
|
|
35
|
-
once: !0
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}, this.rootNode = rootNode, this.initEvents();
|
|
10
|
+
this.rootNode = rootNode, this.initEvents();
|
|
39
11
|
}
|
|
40
12
|
initEvents() {
|
|
41
|
-
|
|
42
|
-
null === (_a = this.rootNode) || void 0 === _a || _a.addEventListener("pointerdown", this.onPointerDown);
|
|
13
|
+
this.rootNode?.addEventListener("pointerdown", this.onPointerDown);
|
|
43
14
|
}
|
|
44
15
|
removeEvents() {
|
|
45
|
-
|
|
46
|
-
null === (_a = this.rootNode) || void 0 === _a || _a.removeEventListener("pointerdown", this.onPointerDown);
|
|
16
|
+
this.rootNode?.removeEventListener("pointerdown", this.onPointerDown);
|
|
47
17
|
}
|
|
48
18
|
release() {
|
|
49
19
|
this.removeEvents(), this.rootNode = null;
|
|
50
20
|
}
|
|
21
|
+
onPointerDown=event => {
|
|
22
|
+
const target = event.target, rootNode = this.rootNode, isRoot = target === rootNode;
|
|
23
|
+
if (target && !isRoot) {
|
|
24
|
+
let currentDroppable, dragstartTriggered = !1;
|
|
25
|
+
function handlePointerMove(moveEvent) {
|
|
26
|
+
if (dragstartTriggered || (moveEvent.type = "dragstart", target?.dispatchEvent(moveEvent),
|
|
27
|
+
dragstartTriggered = !0), moveEvent.type = "drag", target?.dispatchEvent(moveEvent),
|
|
28
|
+
!isRoot) {
|
|
29
|
+
target.attribute.pickable = !1;
|
|
30
|
+
const clickResult = rootNode?.pick(moveEvent.global.x, moveEvent.global.y), elemBelow = clickResult.graphic;
|
|
31
|
+
target.attribute.pickable = !0, currentDroppable !== elemBelow && (currentDroppable && (moveEvent.type = "dragleave",
|
|
32
|
+
moveEvent.target = currentDroppable, currentDroppable.dispatchEvent(moveEvent)),
|
|
33
|
+
elemBelow && (moveEvent.type = "dragenter", moveEvent.target = elemBelow, elemBelow.dispatchEvent(moveEvent)),
|
|
34
|
+
currentDroppable = elemBelow, currentDroppable && (moveEvent.type = "dragover",
|
|
35
|
+
moveEvent.target = currentDroppable, currentDroppable.dispatchEvent(moveEvent)));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
rootNode?.addEventListener("pointermove", handlePointerMove);
|
|
39
|
+
const stopDragging = function() {
|
|
40
|
+
dragstartTriggered && (currentDroppable && (event.type = "drop", event.target = currentDroppable,
|
|
41
|
+
currentDroppable.dispatchEvent(event)), event.type = "dragend", target.dispatchEvent(event),
|
|
42
|
+
dragstartTriggered = !1), rootNode?.removeEventListener("pointermove", handlePointerMove);
|
|
43
|
+
};
|
|
44
|
+
target.addEventListener("pointerup", stopDragging, {
|
|
45
|
+
once: !0
|
|
46
|
+
}), target.addEventListener("pointerupoutside", stopDragging, {
|
|
47
|
+
once: !0
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
exports.DragNDrop = DragNDrop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/extension/drag.ts"],"names":[],"mappings":";;;AAKA,MAAa,SAAS;
|
|
1
|
+
{"version":3,"sources":["../src/event/extension/drag.ts"],"names":[],"mappings":"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","file":"drag.js","sourcesContent":["/**\n * @description drag and drop event\n */\nimport type { IEventTarget, IEventExtension, FederatedPointerEvent } from '@visactor/vrender-core';\n\nexport class DragNDrop implements IEventExtension {\n rootNode!: IEventTarget | null;\n\n constructor(rootNode: IEventTarget) {\n this.rootNode = rootNode;\n this.initEvents();\n }\n\n initEvents() {\n this.rootNode?.addEventListener('pointerdown', this.onPointerDown);\n }\n\n removeEvents() {\n this.rootNode?.removeEventListener('pointerdown', this.onPointerDown);\n }\n\n release() {\n this.removeEvents();\n this.rootNode = null;\n }\n\n private onPointerDown = (event: FederatedPointerEvent) => {\n const target = event.target;\n const rootNode = this.rootNode;\n const isRoot = target === rootNode;\n\n if (target && !isRoot) {\n let dragstartTriggered = false;\n\n let currentDroppable: IEventTarget;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-inner-declarations\n function handlePointerMove(moveEvent: FederatedPointerEvent) {\n if (!dragstartTriggered) {\n moveEvent.type = 'dragstart';\n\n target?.dispatchEvent(moveEvent);\n dragstartTriggered = true;\n }\n\n moveEvent.type = 'drag';\n target?.dispatchEvent(moveEvent);\n\n if (!isRoot) {\n // 获取当前坐标系的元素,目前认为所有的元素都是可以 dropable 的\n (target as IEventTarget).attribute.pickable = false;\n // @ts-ignore\n const clickResult = rootNode?.pick(moveEvent.global.x, moveEvent.global.y);\n const elemBelow = clickResult.graphic;\n (target as IEventTarget).attribute.pickable = true;\n\n if (currentDroppable !== elemBelow) {\n if (currentDroppable) {\n moveEvent.type = 'dragleave';\n moveEvent.target = currentDroppable;\n currentDroppable.dispatchEvent(moveEvent);\n }\n\n if (elemBelow) {\n moveEvent.type = 'dragenter';\n moveEvent.target = elemBelow;\n elemBelow.dispatchEvent(moveEvent);\n }\n\n currentDroppable = elemBelow;\n if (currentDroppable) {\n moveEvent.type = 'dragover';\n moveEvent.target = currentDroppable;\n currentDroppable.dispatchEvent(moveEvent);\n }\n }\n }\n }\n\n rootNode?.addEventListener('pointermove', handlePointerMove);\n\n const stopDragging = function () {\n if (dragstartTriggered) {\n if (currentDroppable) {\n event.type = 'drop';\n event.target = currentDroppable;\n currentDroppable.dispatchEvent(event);\n }\n\n event.type = 'dragend';\n target.dispatchEvent(event);\n\n dragstartTriggered = false;\n }\n\n rootNode?.removeEventListener('pointermove', handlePointerMove);\n };\n\n target.addEventListener('pointerup', stopDragging, { once: true });\n target.addEventListener('pointerupoutside', stopDragging, { once: true });\n }\n };\n}\n"]}
|