@chief-editor/editor
Version:
FlowEditor Editor
1 lines • 2.46 kB
JavaScript
;var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},__rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(o=Object.getOwnPropertySymbols(e);i<o.length;i++)t.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(r[o[i]]=e[o[i]])}return r},__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};Object.defineProperty(exports,"__esModule",{value:!0});var core_1=require("@chief-editor/core"),preset_1=require("@chief-editor/preset"),dom_1=require("@co-hooks/dom"),util_1=require("@co-hooks/util"),vector_1=require("@co-hooks/vector"),use_1=require("@rc-hooks/use"),react_1=__importStar(require("react")),portal_1=require("@rc-hooks/portal"),useEditorCls_1=require("../hooks/useEditorCls");function EditorBrickPortal(e){var t=e.children,r=e.getContainer,o=e.onUpdated,i=e.brick,s=e.style,a=void 0===s?{}:s,n=e.className,c=__rest(e,["children","getContainer","onUpdated","brick","style","className"]),l=i.getOwnerBoard(),u=use_1.useUpdate(),_=dom_1.getDefaultElementPosition(),p=preset_1.useCanvasZoom().zoom/100,f=use_1.useSingleton((function(){return new core_1.BrickTransform(l,i.id)}));if(l.isLayerBoard()){var d=f.updateStartDragInfo().transformRectInfo,h=d.offset,m=d.sizeOffset,g=h.scale(p).get(),v=g[0],y=g[1],b=m.scale(p).get(),O=b[0],E=b[1],k=vector_1.Vector.addVector(h,m).get();_={left:v,top:y,width:O,height:E,right:k[0],bottom:k[1]}}var P=__assign(__assign({},a),{position:"absolute",top:_.top,left:_.left,pointerEvents:"auto"}),q=useEditorCls_1.useEditorCls("template-mask-wrapper"),C=util_1.classnames(useEditorCls_1.useEditorCls("brick-portal-box"),n);return react_1.useEffect((function(){return i.addListener("repaint",u),function(){i.removeListener("repaint",u)}}),[]),react_1.default.createElement(portal_1.RcPortal,{getContainer:r||function(){return document.querySelector("."+q)},onUpdated:o},react_1.default.createElement("div",__assign({},c,{style:P,className:C}),"function"==typeof t?t(_):t))}exports.EditorBrickPortal=EditorBrickPortal;