UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

3 lines (2 loc) 2.38 kB
import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{getFabricDocument as t,getEnv as i}from"../../env/index.min.mjs";import"../../util/misc/vectors.min.mjs";import"../../Point.min.mjs";import"../../util/misc/projectStroke/StrokeLineJoinProjections.min.mjs";import{createCanvasElement as s}from"../../util/misc/dom.min.mjs";import"../../config.min.mjs";import"../../shapes/Group.min.mjs";import"../../cache.min.mjs";import"../../util/path/regex.min.mjs";import"../../parser/constants.min.mjs";import{setStyle as r}from"../../util/dom_style.min.mjs";import"../../util/animation/AnimationRegistry.min.mjs";import{makeElementUnselectable as o,allowTouchScrolling as n,setCanvasDimensions as a,setCSSDimensions as l}from"./util.min.mjs";import{StaticCanvasDOMManager as p}from"./StaticCanvasDOMManager.min.mjs";class m extends p{constructor(t){let{allowTouchScrolling:i=!1,containerClass:s=""}=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:i}),this.applyCanvasStyle(o,{allowTouchScrolling:i});const n=this.createContainerElement();n.classList.add(s),r.parentNode&&r.parentNode.replaceChild(n,r),n.append(r,o),this.container=n}createUpperCanvas(){const{el:e}=this.lower,t=s();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){let{allowTouchScrolling:i}=t;r(e,{position:"absolute",left:"0",top:"0"}),n(e,i),o(e)}setDimensions(e,t){super.setDimensions(e,t);const{el:i,ctx:s}=this.upper;a(i,s,e,t)}setCSSDimensions(e){super.setCSSDimensions(e),l(this.upper.el,e),l(this.container,e)}cleanupDOM(e){const t=this.container,{el:i}=this.lower,{el:s}=this.upper;super.cleanupDOM(e),t.removeChild(s),t.removeChild(i),t.parentNode&&t.parentNode.replaceChild(i,t)}dispose(){super.dispose(),i().dispose(this.upper.el),delete this.upper,delete this.container}}export{m as CanvasDOMManager}; //# sourceMappingURL=CanvasDOMManager.min.mjs.map