index.umd.min.js 5.5 KB

1
  1. !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@antv/g-lite")):"function"==typeof define&&define.amd?define(["exports","@antv/g-lite"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).G=e.G||{},e.G.HTMLRenderer={}),e.window.G)}(this,(function(e,t){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}var n={}.toString,a=function(e,t){return n.call(e)==="[object "+t+"]"},i=function(e){return a(e,"Number")},o=function(){function e(){this.context=void 0,this.$camera=void 0}var r=e.prototype;return r.joinTransformMatrix=function(e){return"matrix("+[e[0],e[1],e[4],e[5],e[12],e[13]].join(",")+")"},r.apply=function(r){var n=this,a=r.camera,i=r.renderingContext,o=r.renderingService;this.context=r;var s=i.root.ownerDocument.defaultView,l=function(e,t){t.style.transform=n.joinTransformMatrix(e.getWorldTransform())},c=function(e){var r=e.target;if(r.nodeName===t.Shape.HTML){n.$camera||(n.$camera=n.createCamera(a));var i=n.getOrCreateEl(r);n.$camera.appendChild(i);var o=r.ownerDocument.documentElement.attributes;Object.keys(o).forEach((function(e){i.style[e]=o[e]})),Object.keys(r.attributes).forEach((function(e){n.updateAttribute(e,r)})),l(r,i),t.runtime.nativeHTMLMap.set(i,r)}},d=function(e){var r=e.target;if(r.nodeName===t.Shape.HTML&&n.$camera){var a=n.getOrCreateEl(r);a&&(a.remove(),t.runtime.nativeHTMLMap.delete(a))}},f=function(e){var r=e.target;r.nodeName===t.Shape.HTML&&n.updateAttribute(e.attrName,r)},u=function(e){var r=e.target;if(r.nodeName===t.Shape.HTML){var a=n.getOrCreateEl(r);l(r,a)}},m=function(){if(n.$camera){var e=n.context.config,t=e.height;n.$camera.style.width=(e.width||0)+"px",n.$camera.style.height=(t||0)+"px"}};o.hooks.init.tap(e.tag,(function(){s.addEventListener(t.CanvasEvent.RESIZE,m),s.addEventListener(t.ElementEvent.MOUNTED,c),s.addEventListener(t.ElementEvent.UNMOUNTED,d),s.addEventListener(t.ElementEvent.ATTR_MODIFIED,f),s.addEventListener(t.ElementEvent.BOUNDS_CHANGED,u)})),o.hooks.endFrame.tap(e.tag,(function(){n.$camera&&i.renderReasons.has(t.RenderReason.CAMERA_CHANGED)&&(n.$camera.style.transform=n.joinTransformMatrix(a.getOrthoMatrix()))})),o.hooks.destroy.tap(e.tag,(function(){n.$camera&&n.$camera.remove(),s.removeEventListener(t.CanvasEvent.RESIZE,m),s.removeEventListener(t.ElementEvent.MOUNTED,c),s.removeEventListener(t.ElementEvent.UNMOUNTED,d),s.removeEventListener(t.ElementEvent.ATTR_MODIFIED,f),s.removeEventListener(t.ElementEvent.BOUNDS_CHANGED,u)}))},r.getId=function(e){return e.id||"g-html-"+e.entity},r.createCamera=function(e){var t=this.context.config,r=t.document,n=t.width,a=t.height,i=this.context.contextService.getDomElement(),o=i.parentNode;if(o){var s="g-canvas-camera",l=o.querySelector("#"+s);if(!l){var c=(r||document).createElement("div");l=c,c.id=s,c.style.position="absolute",c.style.left=(i.offsetLeft||0)+"px",c.style.top=(i.offsetTop||0)+"px",c.style.transformOrigin="left top",c.style.transform=this.joinTransformMatrix(e.getOrthoMatrix()),c.style.overflow="hidden",c.style.pointerEvents="none",c.style.width=(n||0)+"px",c.style.height=(a||0)+"px",o.appendChild(c)}return l}return null},r.getOrCreateEl=function(e){var t=this.context.config.document,r=this.getId(e),n=this.$camera.querySelector("#"+r);return n||(n=(t||document).createElement("div"),e.parsedStyle.$el=n,n.id=r,e.name&&n.setAttribute("name",e.name),e.className&&(n.className=e.className),n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style["will-change"]="transform",n.style.transform=this.joinTransformMatrix(e.getWorldTransform())),n},r.updateAttribute=function(e,r){var n=this.getOrCreateEl(r);switch(e){case"innerHTML":var o=r.parsedStyle.innerHTML;a(o,"String")?n.innerHTML=o:(n.innerHTML="",n.appendChild(o));break;case"transformOrigin":var s=r.parsedStyle.transformOrigin;n.style["transform-origin"]=s[0].value+" "+s[1].value;break;case"width":if(t.runtime.enableCSSParsing){var l=r.computedStyleMap().get("width");n.style.width=""+l}else{var c=r.parsedStyle.width;n.style.width=i(c)?c+"px":""+c}break;case"height":if(t.runtime.enableCSSParsing){var d=r.computedStyleMap().get("height");n.style.height=""+d}else{var f=r.parsedStyle.height;n.style.height=i(f)?f+"px":""+f}break;case"zIndex":n.style["z-index"]=""+r.parsedStyle.zIndex;break;case"visibility":n.style.visibility=r.parsedStyle.visibility;break;case"pointerEvents":n.style.pointerEvents=r.parsedStyle.pointerEvents;break;case"opacity":n.style.opacity=""+r.parsedStyle.opacity;break;case"fill":var u=r.parsedStyle.fill,m="";t.isCSSRGB(u)?m=u.isNone?"transparent":r.getAttribute("fill"):Array.isArray(u)?m=r.getAttribute("fill"):t.isPattern(u),n.style.background=m;break;case"stroke":var p=r.parsedStyle.stroke,y="";t.isCSSRGB(p)?y=p.isNone?"transparent":r.getAttribute("stroke"):Array.isArray(p)?y=r.getAttribute("stroke"):t.isPattern(p),n.style["border-color"]=y,n.style["border-style"]="solid";break;case"lineWidth":n.style["border-width"]=(r.parsedStyle.lineWidth||0)+"px";break;case"lineDash":n.style["border-style"]="dashed";break;case"filter":n.style.filter=r.style.filter}},e}();o.tag="HTMLRendering";var s=function(e){var t,n;function a(){for(var t,r=arguments.length,n=Array(r),a=0;r>a;a++)n[a]=arguments[a];return(t=e.call.apply(e,[this].concat(n))||this).name="html-renderer",t}(t=a).prototype=Object.create((n=e).prototype),t.prototype.constructor=t,r(t,n);var i=a.prototype;return i.init=function(){this.addRenderingPlugin(new o)},i.destroy=function(){this.removeAllRenderingPlugins()},a}(t.AbstractRendererPlugin);e.Plugin=s,Object.defineProperty(e,"__esModule",{value:!0})}));