UNPKG

fabric

Version:

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

3 lines (2 loc) 2.45 kB
import{defineProperty as e,objectSpread2 as t}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{getFabricDocument as s,getEnv as i}from"../../env/index.min.mjs";import{NONE as o}from"../../constants.min.mjs";import"../../util/misc/vectors.min.mjs";import"../../Point.min.mjs";import"../../util/misc/projectStroke/StrokeLineJoinProjections.min.mjs";import{createCanvasElement as r}from"../../util/misc/dom.min.mjs";import"../../config.min.mjs";import"../../shapes/Group.min.mjs";import"../../cache.min.mjs";import"../../parser/constants.min.mjs";import{setStyle as n}from"../../util/dom_style.min.mjs";import"../../util/animation/AnimationRegistry.min.mjs";import{makeElementUnselectable as a,setCanvasDimensions as l,setCSSDimensions as p}from"./util.min.mjs";import{StaticCanvasDOMManager as m}from"./StaticCanvasDOMManager.min.mjs";class c extends m{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:o}=this.lower,r=this.createUpperCanvas();this.upper={el:r,ctx:r.getContext("2d")},this.applyCanvasStyle(o,{allowTouchScrolling:s}),this.applyCanvasStyle(r,{allowTouchScrolling:s,styles:{position:"absolute",left:"0",top:"0"}});const n=this.createContainerElement();n.classList.add(i),o.parentNode&&o.parentNode.replaceChild(n,o),n.append(o,r),this.container=n}createUpperCanvas(){const{el:e}=this.lower,t=r();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=s().createElement("div");return e.setAttribute("data-fabric","wrapper"),n(e,{position:"relative"}),a(e),e}applyCanvasStyle(e,s){const{styles:i,allowTouchScrolling:r}=s;n(e,t(t({},i),{},{"touch-action":r?"manipulation":o})),a(e)}setDimensions(e,t){super.setDimensions(e,t);const{el:s,ctx:i}=this.upper;l(s,i,e,t)}setCSSDimensions(e){super.setCSSDimensions(e),p(this.upper.el,e),p(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(),i().dispose(this.upper.el),delete this.upper,delete this.container}}export{c as CanvasDOMManager}; //# sourceMappingURL=CanvasDOMManager.min.mjs.map