@visactor/vrender 0.15.0-alpha.11 → 0.15.0-alpha.13

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.
Files changed (65) hide show
  1. package/cjs/core/contributions/env/base-contribution.d.ts +6 -0
  2. package/cjs/core/contributions/env/base-contribution.js +12 -0
  3. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  4. package/cjs/core/contributions/env/browser-contribution.d.ts +6 -0
  5. package/cjs/core/contributions/env/browser-contribution.js +19 -0
  6. package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
  7. package/cjs/core/contributions/window/base-contribution.d.ts +9 -5
  8. package/cjs/core/contributions/window/base-contribution.js +6 -0
  9. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  10. package/cjs/core/contributions/window/browser-contribution.d.ts +4 -0
  11. package/cjs/core/contributions/window/browser-contribution.js +3 -0
  12. package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
  13. package/cjs/core/global.d.ts +6 -0
  14. package/cjs/core/global.js +9 -0
  15. package/cjs/core/global.js.map +1 -1
  16. package/cjs/core/stage.js +1 -1
  17. package/cjs/core/stage.js.map +1 -1
  18. package/cjs/core/window.d.ts +4 -0
  19. package/cjs/core/window.js +4 -1
  20. package/cjs/core/window.js.map +1 -1
  21. package/cjs/graphic/text.js +1 -1
  22. package/cjs/graphic/text.js.map +1 -1
  23. package/cjs/index.d.ts +1 -1
  24. package/cjs/index.js +1 -1
  25. package/cjs/index.js.map +1 -1
  26. package/cjs/interface/global.d.ts +12 -0
  27. package/cjs/interface/global.js.map +1 -1
  28. package/cjs/interface/window.d.ts +8 -0
  29. package/cjs/interface/window.js.map +1 -1
  30. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +7 -3
  31. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  32. package/dist/index.js +88 -4
  33. package/dist/index.min.js +1 -1
  34. package/es/core/contributions/env/base-contribution.d.ts +6 -0
  35. package/es/core/contributions/env/base-contribution.js +12 -0
  36. package/es/core/contributions/env/base-contribution.js.map +1 -1
  37. package/es/core/contributions/env/browser-contribution.d.ts +6 -0
  38. package/es/core/contributions/env/browser-contribution.js +19 -0
  39. package/es/core/contributions/env/browser-contribution.js.map +1 -1
  40. package/es/core/contributions/window/base-contribution.d.ts +9 -5
  41. package/es/core/contributions/window/base-contribution.js +6 -0
  42. package/es/core/contributions/window/base-contribution.js.map +1 -1
  43. package/es/core/contributions/window/browser-contribution.d.ts +4 -0
  44. package/es/core/contributions/window/browser-contribution.js +3 -0
  45. package/es/core/contributions/window/browser-contribution.js.map +1 -1
  46. package/es/core/global.d.ts +6 -0
  47. package/es/core/global.js +9 -0
  48. package/es/core/global.js.map +1 -1
  49. package/es/core/stage.js +1 -1
  50. package/es/core/stage.js.map +1 -1
  51. package/es/core/window.d.ts +4 -0
  52. package/es/core/window.js +4 -1
  53. package/es/core/window.js.map +1 -1
  54. package/es/graphic/text.js +1 -1
  55. package/es/graphic/text.js.map +1 -1
  56. package/es/index.d.ts +1 -1
  57. package/es/index.js +1 -1
  58. package/es/index.js.map +1 -1
  59. package/es/interface/global.d.ts +12 -0
  60. package/es/interface/global.js.map +1 -1
  61. package/es/interface/window.d.ts +8 -0
  62. package/es/interface/window.js.map +1 -1
  63. package/es/plugins/builtin-plugin/html-attribute-plugin.js +7 -3
  64. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  65. package/package.json +3 -3
@@ -45,6 +45,10 @@ export interface IWindow extends Releaseable, Omit<IEventElement, 'on' | 'off' |
45
45
  getBoundingClientRect: () => IDomRectLike;
46
46
  isVisible: (bbox?: IBoundsLike) => boolean;
47
47
  onVisibleChange: (cb: (currentVisible: boolean) => void) => void;
48
+ getTopLeft: (baseWindow?: boolean) => {
49
+ top: number;
50
+ left: number;
51
+ };
48
52
  }
49
53
  export interface IWindowHandlerContribution extends IContribution<IWindow>, Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {
50
54
  container?: any;
@@ -73,4 +77,8 @@ export interface IWindowHandlerContribution extends IContribution<IWindow>, Omit
73
77
  clearViewBox: (vb: IBoundsLike, color?: string) => void;
74
78
  isVisible: (bbox?: IBoundsLike) => boolean;
75
79
  onVisibleChange: (cb: (currentVisible: boolean) => void) => void;
80
+ getTopLeft: (baseWindow?: boolean) => {
81
+ top: number;
82
+ left: number;
83
+ };
76
84
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/window.ts"],"names":[],"mappings":"","file":"window.js","sourcesContent":["// window为内部对象,属性均为stage传入\n\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { ICanvas } from './canvas';\nimport type { IContext2d } from './context';\nimport type { IDomRectLike, IEventElement, Releaseable } from './common';\nimport type { ISyncHook } from './sync-hook';\nimport type { IContribution } from './contribution';\nimport type { IGlobal } from './global';\n\n// TODO: 参数考虑动态注入,比如CreateWindow是native的专用接口\nexport interface IWindowParams {\n canvas?: string | HTMLCanvasElement;\n offscreen?: boolean;\n width?: number;\n height?: number;\n x?: number;\n y?: number;\n dpr: number;\n container?: string | HTMLElement;\n canvasControled: boolean;\n title: string;\n CreateWindow?: (w: number, h: number, title: string) => void;\n}\n\nexport interface IWindow\n extends Releaseable,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n hooks: {\n onChange: ISyncHook<[number, number, number, number]>;\n };\n // 窗口的大小\n width: number;\n height: number;\n // // 窗口的位置\n // x: number;\n // y: number;\n // 窗口操作配置\n resizable: boolean;\n minHeight: number;\n minWidth: number;\n maxHeight: number;\n maxWidth: number;\n // 窗口配置\n title: string;\n dpr: number;\n style: CSSStyleDeclaration | Record<string, any>;\n\n create: (options: IWindowParams) => void;\n setWindowHandler: (handler: IWindowHandlerContribution) => void;\n setDpr: (dpr: number) => void;\n resize: (w: number, h: number) => void;\n configure: () => void;\n\n // 获取上下文和canvas,可以是2d也可以是GL\n getContext: () => IContext2d;\n getNativeHandler: () => ICanvas;\n getContainer: () => HTMLElement | any;\n getImageBuffer: (type?: string) => any;\n\n clearViewBox: (viewBox: IBoundsLike, color?: string) => void;\n\n getBoundingClientRect: () => IDomRectLike;\n\n isVisible: (bbox?: IBoundsLike) => boolean;\n\n onVisibleChange: (cb: (currentVisible: boolean) => void) => void;\n}\n\nexport interface IWindowHandlerContribution\n extends IContribution<IWindow>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n container?: any;\n\n configure: (window: IWindow, global: IGlobal) => void;\n createWindow: (params: IWindowParams) => void;\n releaseWindow: () => void;\n resizeWindow: (width: number, height: number) => void;\n setDpr: (dpr: number) => void;\n getDpr: () => number;\n getWH: () => { width: number; height: number };\n getXY: () => { x: number; y: number };\n getTitle: () => string;\n\n // 获取上下文和canvas,可以是2d也可以是GL\n getContext: () => IContext2d;\n getNativeHandler: () => ICanvas;\n getImageBuffer?: (type?: string) => any;\n release: (...params: any) => void;\n\n getStyle: () => CSSStyleDeclaration | Record<string, any>;\n setStyle: (s: CSSStyleDeclaration | Record<string, any>) => void;\n\n getBoundingClientRect: () => IDomRectLike;\n clearViewBox: (vb: IBoundsLike, color?: string) => void;\n isVisible: (bbox?: IBoundsLike) => boolean;\n\n onVisibleChange: (cb: (currentVisible: boolean) => void) => void;\n}\n"]}
1
+ {"version":3,"sources":["../src/interface/window.ts"],"names":[],"mappings":"","file":"window.js","sourcesContent":["// window为内部对象,属性均为stage传入\n\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { ICanvas } from './canvas';\nimport type { IContext2d } from './context';\nimport type { IDomRectLike, IEventElement, Releaseable } from './common';\nimport type { ISyncHook } from './sync-hook';\nimport type { IContribution } from './contribution';\nimport type { IGlobal } from './global';\n\n// TODO: 参数考虑动态注入,比如CreateWindow是native的专用接口\nexport interface IWindowParams {\n canvas?: string | HTMLCanvasElement;\n offscreen?: boolean;\n width?: number;\n height?: number;\n x?: number;\n y?: number;\n dpr: number;\n container?: string | HTMLElement;\n canvasControled: boolean;\n title: string;\n CreateWindow?: (w: number, h: number, title: string) => void;\n}\n\nexport interface IWindow\n extends Releaseable,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n hooks: {\n onChange: ISyncHook<[number, number, number, number]>;\n };\n // 窗口的大小\n width: number;\n height: number;\n // // 窗口的位置\n // x: number;\n // y: number;\n // 窗口操作配置\n resizable: boolean;\n minHeight: number;\n minWidth: number;\n maxHeight: number;\n maxWidth: number;\n // 窗口配置\n title: string;\n dpr: number;\n style: CSSStyleDeclaration | Record<string, any>;\n\n create: (options: IWindowParams) => void;\n setWindowHandler: (handler: IWindowHandlerContribution) => void;\n setDpr: (dpr: number) => void;\n resize: (w: number, h: number) => void;\n configure: () => void;\n\n // 获取上下文和canvas,可以是2d也可以是GL\n getContext: () => IContext2d;\n getNativeHandler: () => ICanvas;\n getContainer: () => HTMLElement | any;\n getImageBuffer: (type?: string) => any;\n\n clearViewBox: (viewBox: IBoundsLike, color?: string) => void;\n\n getBoundingClientRect: () => IDomRectLike;\n\n isVisible: (bbox?: IBoundsLike) => boolean;\n\n onVisibleChange: (cb: (currentVisible: boolean) => void) => void;\n\n getTopLeft: (baseWindow?: boolean) => { top: number; left: number };\n}\n\nexport interface IWindowHandlerContribution\n extends IContribution<IWindow>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n container?: any;\n\n configure: (window: IWindow, global: IGlobal) => void;\n createWindow: (params: IWindowParams) => void;\n releaseWindow: () => void;\n resizeWindow: (width: number, height: number) => void;\n setDpr: (dpr: number) => void;\n getDpr: () => number;\n getWH: () => { width: number; height: number };\n getXY: () => { x: number; y: number };\n getTitle: () => string;\n\n // 获取上下文和canvas,可以是2d也可以是GL\n getContext: () => IContext2d;\n getNativeHandler: () => ICanvas;\n getImageBuffer?: (type?: string) => any;\n release: (...params: any) => void;\n\n getStyle: () => CSSStyleDeclaration | Record<string, any>;\n setStyle: (s: CSSStyleDeclaration | Record<string, any>) => void;\n\n getBoundingClientRect: () => IDomRectLike;\n clearViewBox: (vb: IBoundsLike, color?: string) => void;\n isVisible: (bbox?: IBoundsLike) => boolean;\n\n onVisibleChange: (cb: (currentVisible: boolean) => void) => void;\n getTopLeft: (baseWindow?: boolean) => { top: number; left: number };\n}\n"]}
@@ -34,7 +34,9 @@ class HtmlAttributePlugin {
34
34
  }
35
35
  renderGraphicHTML(graphic) {
36
36
  const {html: html} = graphic.attribute;
37
- if (!html) return;
37
+ if (!html) return void (graphic.bindDom && graphic.bindDom.size && (graphic.bindDom.forEach((item => {
38
+ item.dom && item.dom.parentElement.removeChild(item.dom);
39
+ })), graphic.bindDom.clear()));
38
40
  const stage = graphic.stage;
39
41
  if (!stage) return;
40
42
  const {dom: dom, container: container, width: width, height: height, style: style, anchorType: anchorType = "boundsLeftTop"} = html;
@@ -58,7 +60,8 @@ class HtmlAttributePlugin {
58
60
  dom: nativeDom,
59
61
  container: container,
60
62
  wrapGroup: wrapGroup
61
- })), wrapGroup.style.pointerEvents = "none", wrapGroup.style.position || (wrapGroup.style.position = "absolute");
63
+ })), wrapGroup.style.pointerEvents = "none", wrapGroup.style.position || (wrapGroup.style.position = "absolute",
64
+ nativeContainer.style.position = "relative");
62
65
  let left = 0, top = 0;
63
66
  if ("position" === anchorType) {
64
67
  const matrix = graphic.transMatrix;
@@ -67,7 +70,8 @@ class HtmlAttributePlugin {
67
70
  const b = graphic.AABBBounds;
68
71
  left = b.x1, top = b.y1;
69
72
  }
70
- wrapGroup.style.left = `${left}px`, wrapGroup.style.top = `${top}px`;
73
+ const containerTL = application_1.application.global.getElementTopLeft(nativeContainer, !1), windowTL = stage.window.getTopLeft(!1), offsetX = left + windowTL.left - containerTL.left, offsetTop = top + windowTL.top - containerTL.top;
74
+ wrapGroup.style.left = `${offsetX}px`, wrapGroup.style.top = `${offsetTop}px`;
71
75
  }
72
76
  }
73
77
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugins/builtin-plugin/html-attribute-plugin.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AAEnD,mDAAgD;AAChD,2CAAiD;AAEjD,MAAa,mBAAmB;IAAhC;QACE,SAAI,GAA0B,qBAAqB,CAAC;QACpD,gBAAW,GAAiB,YAAY,CAAC;QAEzC,SAAI,GAAW,qBAAS,CAAC,kBAAkB,EAAE,CAAC;QAC9C,QAAG,GAAW,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IA0GtC,CAAC;IAxGC,QAAQ,CAAC,OAAuB;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;YACpD,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO;aACR;YAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,OAAuB;QAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACxF,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,QAAQ,CAAC,aAA6B;QAC9C,IAAI,yBAAW,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;YACxC,aAAa,CAAC,eAAe;iBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;gBACb,OAAO,CAAC,MAAA,CAAC,CAAC,SAAS,CAAC,MAAM,mCAAI,0BAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,SAAS,CAAC,MAAM,mCAAI,0BAAgB,CAAC,MAAM,CAAC,CAAC;YAC3G,CAAC,CAAC;iBACD,OAAO,CAAC,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,eAAe,CAAC,KAAe,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAW,EAAE,EAAE;YACpC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,OAAiB;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;SACR;QACD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC;QACpF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;SAC7B;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzC,IAAI,OAAO,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE;YAC9D,OAAO;SACR;QAED,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;YACxC,yBAAW,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,SAAsB,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,UAAiB,CAAC;SAChF;aAAM;YACL,SAAS,GAAG,GAAG,CAAC;SACjB;QAED,IAAI,eAAe,CAAC;QACpB,MAAM,UAAU,GACd,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACrG,IAAI,UAAU,EAAE;YACd,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;gBAClC,eAAe,GAAG,yBAAW,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;aACjE;iBAAM;gBACL,eAAe,GAAG,UAAU,CAAC;aAC9B;SACF;aAAM;YAEL,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;SACvD;QAED,MAAM,SAAS,GAAG,yBAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAClH,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAgB,EAAE,CAAC,CAAC;SACtF;QAED,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QAEvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC7B,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;SACvC;QACD,IAAI,IAAI,GAAW,CAAC,CAAC;QACrB,IAAI,GAAG,GAAW,CAAC,CAAC;QACpB,IAAI,UAAU,KAAK,UAAU,EAAE;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YACnC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;YAChB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;SAChB;aAAM;YACL,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YAC7B,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;YACZ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;SACZ;QACD,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC;QACnC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IACnC,CAAC;CACF;AA/GD,kDA+GC","file":"html-attribute-plugin.js","sourcesContent":["import { Generator } from '../../common/generator';\nimport type { IGraphic, IPlugin, IPluginService, IRenderService, IDrawContext, IGroup } from '../../interface';\nimport { application } from '../../application';\nimport { DefaultAttribute } from '../../graphic';\n\nexport class HtmlAttributePlugin implements IPlugin {\n name: 'HtmlAttributePlugin' = 'HtmlAttributePlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n context.stage.hooks.afterRender.tap(this.key, stage => {\n if (!(stage && stage === this.pluginService.stage)) {\n return;\n }\n\n this.drawHTML(context.stage.renderService);\n });\n }\n deactivate(context: IPluginService): void {\n context.stage.hooks.afterRender.taps = context.stage.hooks.afterRender.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n\n protected drawHTML(renderService: IRenderService) {\n if (application.global.env === 'browser') {\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroupHTML(group as IGroup);\n });\n }\n }\n\n renderGroupHTML(group: IGroup) {\n this.renderGraphicHTML(group);\n group.forEachChildren((g: IGraphic) => {\n this.renderGraphicHTML(g);\n });\n }\n\n renderGraphicHTML(graphic: IGraphic) {\n const { html } = graphic.attribute;\n if (!html) {\n return;\n }\n const stage = graphic.stage;\n if (!stage) {\n return;\n }\n const { dom, container, width, height, style, anchorType = 'boundsLeftTop' } = html;\n if (!graphic.bindDom) {\n graphic.bindDom = new Map();\n }\n const lastDom = graphic.bindDom.get(dom);\n // 如果存在了(dom存在,且container没有变化),就跳过\n if (lastDom && !(container && container !== lastDom.container)) {\n return;\n }\n // 清除上一次的dom\n graphic.bindDom.forEach(({ wrapGroup }) => {\n application.global.removeDom(wrapGroup);\n });\n // 转化这个dom为nativeDOM\n let nativeDom: HTMLElement;\n if (typeof dom === 'string') {\n nativeDom = new DOMParser().parseFromString(dom, 'text/xml').firstChild as any;\n } else {\n nativeDom = dom;\n }\n // 获取container的dom,默认为window的container\n let nativeContainer;\n const _container =\n container || (stage.params.enableHtmlAttribute === true ? null : stage.params.enableHtmlAttribute);\n if (_container) {\n if (typeof _container === 'string') {\n nativeContainer = application.global.getElementById(_container);\n } else {\n nativeContainer = _container;\n }\n } else {\n // nativeContainer = application.global.getRootElement();\n nativeContainer = graphic.stage.window.getContainer();\n }\n // 创建wrapGroup\n const wrapGroup = application.global.createDom({ tagName: 'div', width, height, style, parent: nativeContainer });\n if (wrapGroup) {\n wrapGroup.appendChild(nativeDom);\n graphic.bindDom.set(dom, { dom: nativeDom, container, wrapGroup: wrapGroup as any });\n }\n // 事件穿透\n wrapGroup.style.pointerEvents = 'none';\n // 定位wrapGroup\n if (!wrapGroup.style.position) {\n wrapGroup.style.position = 'absolute';\n }\n let left: number = 0;\n let top: number = 0;\n if (anchorType === 'position') {\n const matrix = graphic.transMatrix;\n left = matrix.e;\n top = matrix.f;\n } else {\n const b = graphic.AABBBounds;\n left = b.x1;\n top = b.y1;\n }\n wrapGroup.style.left = `${left}px`;\n wrapGroup.style.top = `${top}px`;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/plugins/builtin-plugin/html-attribute-plugin.ts"],"names":[],"mappings":"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","file":"html-attribute-plugin.js","sourcesContent":["import { Generator } from '../../common/generator';\nimport type { IGraphic, IPlugin, IPluginService, IRenderService, IDrawContext, IGroup } from '../../interface';\nimport { application } from '../../application';\nimport { DefaultAttribute } from '../../graphic';\n\nexport class HtmlAttributePlugin implements IPlugin {\n name: 'HtmlAttributePlugin' = 'HtmlAttributePlugin';\n activeEvent: 'onRegister' = 'onRegister';\n pluginService: IPluginService;\n _uid: number = Generator.GenAutoIncrementId();\n key: string = this.name + this._uid;\n\n activate(context: IPluginService): void {\n this.pluginService = context;\n context.stage.hooks.afterRender.tap(this.key, stage => {\n if (!(stage && stage === this.pluginService.stage)) {\n return;\n }\n\n this.drawHTML(context.stage.renderService);\n });\n }\n deactivate(context: IPluginService): void {\n context.stage.hooks.afterRender.taps = context.stage.hooks.afterRender.taps.filter(item => {\n return item.name !== this.key;\n });\n }\n\n protected drawHTML(renderService: IRenderService) {\n if (application.global.env === 'browser') {\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroupHTML(group as IGroup);\n });\n }\n }\n\n renderGroupHTML(group: IGroup) {\n this.renderGraphicHTML(group);\n group.forEachChildren((g: IGraphic) => {\n this.renderGraphicHTML(g);\n });\n }\n\n renderGraphicHTML(graphic: IGraphic) {\n const { html } = graphic.attribute;\n if (!html) {\n if (graphic.bindDom && graphic.bindDom.size) {\n // 删除dom\n graphic.bindDom.forEach(item => {\n item.dom && item.dom.parentElement.removeChild(item.dom);\n });\n graphic.bindDom.clear();\n }\n return;\n }\n const stage = graphic.stage;\n if (!stage) {\n return;\n }\n const { dom, container, width, height, style, anchorType = 'boundsLeftTop' } = html;\n if (!graphic.bindDom) {\n graphic.bindDom = new Map();\n }\n const lastDom = graphic.bindDom.get(dom);\n // 如果存在了(dom存在,且container没有变化),就跳过\n if (lastDom && !(container && container !== lastDom.container)) {\n return;\n }\n // 清除上一次的dom\n graphic.bindDom.forEach(({ wrapGroup }) => {\n application.global.removeDom(wrapGroup);\n });\n // 转化这个dom为nativeDOM\n let nativeDom: HTMLElement;\n if (typeof dom === 'string') {\n nativeDom = new DOMParser().parseFromString(dom, 'text/xml').firstChild as any;\n } else {\n nativeDom = dom;\n }\n // 获取container的dom,默认为window的container\n let nativeContainer;\n const _container =\n container || (stage.params.enableHtmlAttribute === true ? null : stage.params.enableHtmlAttribute);\n if (_container) {\n if (typeof _container === 'string') {\n nativeContainer = application.global.getElementById(_container);\n } else {\n nativeContainer = _container;\n }\n } else {\n // nativeContainer = application.global.getRootElement();\n nativeContainer = graphic.stage.window.getContainer();\n }\n // 创建wrapGroup\n const wrapGroup = application.global.createDom({ tagName: 'div', width, height, style, parent: nativeContainer });\n if (wrapGroup) {\n wrapGroup.appendChild(nativeDom);\n graphic.bindDom.set(dom, { dom: nativeDom, container, wrapGroup: wrapGroup as any });\n }\n // 事件穿透\n wrapGroup.style.pointerEvents = 'none';\n // 定位wrapGroup\n if (!wrapGroup.style.position) {\n wrapGroup.style.position = 'absolute';\n nativeContainer.style.position = 'relative';\n }\n let left: number = 0;\n let top: number = 0;\n if (anchorType === 'position') {\n const matrix = graphic.transMatrix;\n left = matrix.e;\n top = matrix.f;\n } else {\n const b = graphic.AABBBounds;\n left = b.x1;\n top = b.y1;\n }\n // 查看wrapGroup的位置\n // const wrapGroupTL = application.global.getElementTopLeft(wrapGroup, false);\n const containerTL = application.global.getElementTopLeft(nativeContainer, false);\n const windowTL = stage.window.getTopLeft(false);\n const offsetX = left + windowTL.left - containerTL.left;\n const offsetTop = top + windowTL.top - containerTL.top;\n // wrapGroup.style.transform = `translate(${offsetX}px, ${offsetTop}px)`;\n wrapGroup.style.left = `${offsetX}px`;\n wrapGroup.style.top = `${offsetTop}px`;\n }\n}\n"]}
package/dist/index.js CHANGED
@@ -6362,6 +6362,24 @@
6362
6362
  }
6363
6363
  return this.envContribution.createDom(params);
6364
6364
  }
6365
+ getElementTop(dom, baseWindow = false) {
6366
+ if (!this._env) {
6367
+ this.setEnv('browser');
6368
+ }
6369
+ return this.envContribution.getElementTop(dom, baseWindow);
6370
+ }
6371
+ getElementLeft(dom, baseWindow = false) {
6372
+ if (!this._env) {
6373
+ this.setEnv('browser');
6374
+ }
6375
+ return this.envContribution.getElementLeft(dom, baseWindow);
6376
+ }
6377
+ getElementTopLeft(dom, baseWindow = false) {
6378
+ if (!this._env) {
6379
+ this.setEnv('browser');
6380
+ }
6381
+ return this.envContribution.getElementTopLeft(dom, baseWindow);
6382
+ }
6365
6383
  };
6366
6384
  exports.DefaultGlobal = __decorate([
6367
6385
  injectable(),
@@ -20579,6 +20597,7 @@
20579
20597
  const handler = container.getNamed(WindowHandlerContribution, global.env);
20580
20598
  handler.configure(this, global);
20581
20599
  this.actived = true;
20600
+ this._handler;
20582
20601
  }
20583
20602
  get style() {
20584
20603
  return this._handler.getStyle();
@@ -20645,6 +20664,9 @@
20645
20664
  onVisibleChange(cb) {
20646
20665
  return this._handler.onVisibleChange(cb);
20647
20666
  }
20667
+ getTopLeft(baseWindow) {
20668
+ return this._handler.getTopLeft(baseWindow);
20669
+ }
20648
20670
  };
20649
20671
  __decorate([
20650
20672
  postConstruct(),
@@ -21869,7 +21891,7 @@
21869
21891
  return false;
21870
21892
  }
21871
21893
  this.tryUpdateAABBBounds();
21872
- return this.clipedText !== attribute.text;
21894
+ return this.clipedText !== attribute.text.toString();
21873
21895
  }
21874
21896
  get multilineLayout() {
21875
21897
  if (!Array.isArray(this.attribute.text)) {
@@ -32098,6 +32120,15 @@
32098
32120
  };
32099
32121
  });
32100
32122
  }
32123
+ getElementTop(dom, baseWindow) {
32124
+ return 0;
32125
+ }
32126
+ getElementLeft(dom, baseWindow) {
32127
+ return 0;
32128
+ }
32129
+ getElementTopLeft(dom, baseWindow) {
32130
+ return { top: 0, left: 0 };
32131
+ }
32101
32132
  };
32102
32133
  exports.BaseEnvContribution = __decorate([
32103
32134
  injectable()
@@ -32324,6 +32355,38 @@
32324
32355
  release(...params) {
32325
32356
  return;
32326
32357
  }
32358
+ getElementTop(element, baseWindow) {
32359
+ let actualTop = element.offsetTop;
32360
+ let current = element.offsetParent;
32361
+ while (current !== null) {
32362
+ actualTop += current.offsetTop;
32363
+ current = current.offsetParent;
32364
+ }
32365
+ return actualTop;
32366
+ }
32367
+ getElementLeft(element, baseWindow) {
32368
+ let actualLeft = element.offsetLeft;
32369
+ let current = element.offsetParent;
32370
+ while (current !== null) {
32371
+ actualLeft += current.offsetLeft;
32372
+ current = current.offsetParent;
32373
+ }
32374
+ return actualLeft;
32375
+ }
32376
+ getElementTopLeft(element, baseWindow) {
32377
+ let actualTop = element.offsetTop;
32378
+ let actualLeft = element.offsetLeft;
32379
+ let current = element.offsetParent;
32380
+ while (current !== null) {
32381
+ actualTop += current.offsetTop;
32382
+ actualLeft += current.offsetLeft;
32383
+ current = current.offsetParent;
32384
+ }
32385
+ return {
32386
+ top: actualTop,
32387
+ left: actualLeft
32388
+ };
32389
+ }
32327
32390
  };
32328
32391
  BrowserEnvContribution = __decorate([
32329
32392
  injectable(),
@@ -33061,6 +33124,12 @@
33061
33124
  onVisibleChange(cb) {
33062
33125
  return;
33063
33126
  }
33127
+ getTopLeft(baseWindow) {
33128
+ return {
33129
+ top: 0,
33130
+ left: 0
33131
+ };
33132
+ }
33064
33133
  };
33065
33134
  exports.BaseWindowHandlerContribution = __decorate([
33066
33135
  injectable(),
@@ -33277,6 +33346,9 @@
33277
33346
  onVisibleChange(cb) {
33278
33347
  this._onVisibleChangeCb = cb;
33279
33348
  }
33349
+ getTopLeft(baseWindow) {
33350
+ return this.global.getElementTopLeft(this.canvas.nativeCanvas, baseWindow);
33351
+ }
33280
33352
  };
33281
33353
  BrowserWindowHandlerContribution.env = 'browser';
33282
33354
  BrowserWindowHandlerContribution = __decorate([
@@ -38702,6 +38774,12 @@
38702
38774
  renderGraphicHTML(graphic) {
38703
38775
  const { html } = graphic.attribute;
38704
38776
  if (!html) {
38777
+ if (graphic.bindDom && graphic.bindDom.size) {
38778
+ graphic.bindDom.forEach(item => {
38779
+ item.dom && item.dom.parentElement.removeChild(item.dom);
38780
+ });
38781
+ graphic.bindDom.clear();
38782
+ }
38705
38783
  return;
38706
38784
  }
38707
38785
  const stage = graphic.stage;
@@ -38747,6 +38825,7 @@
38747
38825
  wrapGroup.style.pointerEvents = 'none';
38748
38826
  if (!wrapGroup.style.position) {
38749
38827
  wrapGroup.style.position = 'absolute';
38828
+ nativeContainer.style.position = 'relative';
38750
38829
  }
38751
38830
  let left = 0;
38752
38831
  let top = 0;
@@ -38760,8 +38839,12 @@
38760
38839
  left = b.x1;
38761
38840
  top = b.y1;
38762
38841
  }
38763
- wrapGroup.style.left = `${left}px`;
38764
- wrapGroup.style.top = `${top}px`;
38842
+ const containerTL = application.global.getElementTopLeft(nativeContainer, false);
38843
+ const windowTL = stage.window.getTopLeft(false);
38844
+ const offsetX = left + windowTL.left - containerTL.left;
38845
+ const offsetTop = top + windowTL.top - containerTL.top;
38846
+ wrapGroup.style.left = `${offsetX}px`;
38847
+ wrapGroup.style.top = `${offsetTop}px`;
38765
38848
  }
38766
38849
  }
38767
38850
 
@@ -39546,6 +39629,7 @@
39546
39629
  if (this.supportInteractiveLayer && !this.interactiveLayer) {
39547
39630
  this.interactiveLayer = this.createLayer();
39548
39631
  this.interactiveLayer.name = '_builtin_interactive';
39632
+ this.nextFrameRenderLayerSet.add(this.interactiveLayer);
39549
39633
  }
39550
39634
  }
39551
39635
  clearViewBox(color) {
@@ -39951,7 +40035,7 @@
39951
40035
  }
39952
40036
  const Fragment = Group;
39953
40037
 
39954
- const version = "0.15.0-alpha.11";
40038
+ const version = "0.15.0-alpha.13";
39955
40039
 
39956
40040
  exports.ACustomAnimate = ACustomAnimate;
39957
40041
  exports.ARC3D_NUMBER_TYPE = ARC3D_NUMBER_TYPE;