UNPKG

@chief-editor/editor

Version:

FlowEditor Editor

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