fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
2 lines • 2.06 kB
JavaScript
import{_defineProperty as e}from"../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/defineProperty.min.mjs";import{getEnv as t,getFabricDocument as n}from"../../env/index.min.mjs";import{NONE as r}from"../../constants.min.mjs";import{createCanvasElement as i}from"../../util/misc/dom.min.mjs";import{makeElementUnselectable as a,setCSSDimensions as o,setCanvasDimensions as s}from"./util.min.mjs";import{StaticCanvasDOMManager as c}from"./StaticCanvasDOMManager.min.mjs";import{setStyle as l}from"../../util/internals/dom_style.min.mjs";var u=class extends c{constructor(t,{allowTouchScrolling:n=!1,containerClass:r=``}={}){super(t),e(this,`upper`,void 0),e(this,`container`,void 0);let{el:i}=this.lower,a=this.createUpperCanvas();this.upper={el:a,ctx:a.getContext(`2d`)},this.applyCanvasStyle(i,{allowTouchScrolling:n}),this.applyCanvasStyle(a,{allowTouchScrolling:n,styles:{position:`absolute`,left:`0`,top:`0`}});let o=this.createContainerElement();o.classList.add(r),i.parentNode&&i.parentNode.replaceChild(o,i),o.append(i,a),this.container=o}createUpperCanvas(){let{el:e}=this.lower,t=i();return t.className=e.className,t.classList.remove(`lower-canvas`),t.classList.add(`upper-canvas`),t.setAttribute(`data-fabric`,`top`),t.style.cssText=e.style.cssText,t.setAttribute(`draggable`,`true`),t}createContainerElement(){let e=n().createElement(`div`);return e.setAttribute(`data-fabric`,`wrapper`),l(e,{position:`relative`}),a(e),e}applyCanvasStyle(e,t){let{styles:n,allowTouchScrolling:i}=t;l(e,{...n,"touch-action":i?`manipulation`:r}),a(e)}setDimensions(e,t){super.setDimensions(e,t);let{el:n,ctx:r}=this.upper;s(n,r,e,t)}setCSSDimensions(e){super.setCSSDimensions(e),o(this.upper.el,e),o(this.container,e)}cleanupDOM(e){let t=this.container,{el:n}=this.lower,{el:r}=this.upper;super.cleanupDOM(e),t.removeChild(r),t.removeChild(n),t.parentNode&&t.parentNode.replaceChild(n,t)}dispose(){super.dispose(),t().dispose(this.upper.el),delete this.upper,delete this.container}};export{u as CanvasDOMManager};
//# sourceMappingURL=CanvasDOMManager.min.mjs.map