fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
3 lines (2 loc) • 2.1 kB
JavaScript
import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{getFabricDocument as t,getEnv as s}from"../../env/index.min.mjs";import{createCanvasElement as i}from"../../util/misc/dom.min.mjs";import{setStyle as r}from"../../util/internals/dom_style.min.mjs";import{makeElementUnselectable as o,setCanvasDimensions as n,setCSSDimensions as a}from"./util.min.mjs";import{StaticCanvasDOMManager as l}from"./StaticCanvasDOMManager.min.mjs";import{NONE as p}from"../../constants.min.mjs";class c extends l{constructor(t){let{allowTouchScrolling:s=!1,containerClass:i=""}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(t),e(this,"upper",void 0),e(this,"container",void 0);const{el:r}=this.lower,o=this.createUpperCanvas();this.upper={el:o,ctx:o.getContext("2d")},this.applyCanvasStyle(r,{allowTouchScrolling:s}),this.applyCanvasStyle(o,{allowTouchScrolling:s,styles:{position:"absolute",left:"0",top:"0"}});const n=this.createContainerElement();n.classList.add(i),r.parentNode&&r.parentNode.replaceChild(n,r),n.append(r,o),this.container=n}createUpperCanvas(){const{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(){const e=t().createElement("div");return e.setAttribute("data-fabric","wrapper"),r(e,{position:"relative"}),o(e),e}applyCanvasStyle(e,t){const{styles:s,allowTouchScrolling:i}=t;r(e,{...s,"touch-action":i?"manipulation":p}),o(e)}setDimensions(e,t){super.setDimensions(e,t);const{el:s,ctx:i}=this.upper;n(s,i,e,t)}setCSSDimensions(e){super.setCSSDimensions(e),a(this.upper.el,e),a(this.container,e)}cleanupDOM(e){const t=this.container,{el:s}=this.lower,{el:i}=this.upper;super.cleanupDOM(e),t.removeChild(i),t.removeChild(s),t.parentNode&&t.parentNode.replaceChild(s,t)}dispose(){super.dispose(),s().dispose(this.upper.el),delete this.upper,delete this.container}}export{c as CanvasDOMManager};
//# sourceMappingURL=CanvasDOMManager.min.mjs.map