polotno 2.40.2 → 2.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/canvas/context-menu/context-menu.js +1 -1
- package/canvas/element.js +1 -1
- package/canvas/figure-element.js +1 -1
- package/canvas/hotkeys.js +1 -1
- package/canvas/image-element.js +1 -1
- package/canvas/page.d.ts +3 -1
- package/canvas/page.js +1 -1
- package/canvas/text-element.js +1 -1
- package/canvas/tooltip.js +1 -1
- package/canvas/workspace-canvas.d.ts +3 -1
- package/canvas/workspace-canvas.js +1 -1
- package/model/group-model.d.ts +20 -12
- package/model/group-model.js +1 -1
- package/model/node-model.js +1 -1
- package/model/page-model.d.ts +15 -17
- package/model/page-model.js +1 -1
- package/model/store.d.ts +136 -153
- package/model/store.js +1 -1
- package/model/table-model.d.ts +12 -0
- package/model/table-model.js +1 -1
- package/model/text-model.d.ts +1 -12
- package/package.json +2 -2
- package/pages-timeline/page-preview.d.ts +4 -0
- package/pages-timeline/page-preview.js +2 -2
- package/polotno.bundle.js +101 -101
- package/side-panel/layers-panel.js +1 -1
- package/toolbar/position-picker.js +1 -1
- package/utils/html-to-svg/xhtml.js +1 -1
- package/utils/validate-key.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";import{observer as t}from"mobx-react-lite";import r from"./page.js";import{TopRules as o}from"./rules.js";import{AudioElement as n}from"./audio.js";import{handleHotkey as l}from"./hotkeys.js";import{t as i}from"../utils/l10n.js";import{WorkspaceStyleProvider as a,useResolvedWorkspaceStyle as s}from"./workspace-style.js";const c=(e,t,r)=>Math.max(t,Math.min(r,e)),u=(e,t)=>Math.sqrt(Math.pow(t.clientX-e.clientX,2)+Math.pow(t.clientY-e.clientY,2)),d=({store:t})=>e.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",textAlign:"center"}},e.createElement("p",null,i("workspace.noPages")),e.createElement("button",{onClick:()=>{t.addPage()}},i("workspace.addPage"))),h=({width:t,height:r,xPadding:o,yPadding:n,backgroundColor:l})=>e.createElement("div",{style:{width:t+"px",height:r+"px",backgroundColor:l,paddingLeft:o+"px",paddingRight:o+"px",paddingTop:n+"px",paddingBottom:n+"px",flexShrink:0}},e.createElement("div",{style:{width:" 100%",height:"100%",backgroundColor:"white"}}));export const WorkspaceCanvas=t(({store:t,layout:i="vertical",pageControlsEnabled:g,backgroundColor:p,transparencyBackgroundColor:f,pageBorderColor:m,activePageBorderColor:v,bleedColor:y,snapGuideStroke:x,snapGuideStrokeWidth:k,snapGuideDash:w,selectionRectFill:T,selectionRectStroke:b,selectionRectStrokeWidth:E,transformLabelFill:S,transformLabelTextFill:L,cropOverlayFill:C,transformerStyle:M,innerImageCropTransformerStyle:P,outerImageCropTransformerStyle:R,highlighterStyle:F,mediaLoadingStyle:W,mediaErrorStyle:B,textOverflowIndicatorStyle:O,distanceGuideStroke:z,distanceLabelFill:H,distanceLabelTextFill:N,rulerBackgroundColor:j,rulerTextColor:G,rulerBorderColor:I,rulerBorderSize:_,rulerTickColor:Y,rulerTickSize:D,components:X,onKeyDown:A,paddingX:K,paddingY:q,pageGap:V,altCloneEnabled:J=!0,visiblePagesOffset:Q,renderOnlyActivePage:U,scrollToPageThreshold:Z=.5,tooltipSafeArea:$})=>{var ee;const te="horizontal"===i,re=null!=K?K:20,oe=null!=q?q:55,[ne,le]=e.useState({width:100,height:100}),ie=e.useRef(ne),ae=e.useRef(null),se=e.useRef(null),ce=e.useRef(0),ue=t.bleedVisible?Math.max(0,...t.pages.map(e=>e.bleed)):0,de=Math.max(...t.pages.map(e=>e.computedWidth)),he=Math.max(...t.pages.map(e=>e.computedHeight)),ge=(null===(ee=t.activePage)||void 0===ee?void 0:ee.computedHeight)||0,pe=de+2*ue,fe=(U?ge:he)+2*ue,me=async({skipTimeout:e}={skipTimeout:!1})=>{if(e||await new Promise(e=>setTimeout(e,50)),null===ae.current){return}const r=ae.current.getBoundingClientRect();0!==r.width&&0!==r.height||(console.warn("Polotno warning: <Workspace /> component can not automatically detect its size.\nWidth or height of parent elements is equal 0.\nPlease make sure it has non-zero size. You may need to adjust it with your styles. <Workspace /> will automatically fit into parent container.\nFor simpler debugging here is the log of the parent element:"),console.log(ae.current));const o=se.current.clientWidth||r.width,n={width:o,height:r.height};(ie.current.width!==n.width||ie.current.height!==n.height)&&(le(n),ie.current=n);const l=(o-2*re)/pe,i=t.pages.length>1?3.1:2,a=(r.height-oe*i)/fe,s=t.pages.length>1?3.1:2,c=(o-re*s)/pe,u=(r.height-2*oe)/fe,d=t.pages.length?Math.max(Math.min(te?c:l,te?u:a),.01):1;t.scaleToFit!==d&&(t.setScale(d),t._setScaleToFit(d))};e.useLayoutEffect(()=>{me({skipTimeout:!0})},[]),e.useEffect(()=>{me()},[pe,fe,q,K]),e.useLayoutEffect(()=>{me({skipTimeout:!0})},[t.openedSidePanel]),e.useEffect(()=>{t.__()},[]),e.useEffect(()=>{const e=ae.current;if(window.ResizeObserver){const t=new ResizeObserver(()=>{me({skipTimeout:!0})});return t.observe(e),()=>t.unobserve(e)}{const e=setInterval(()=>{me({skipTimeout:!0})},100);return()=>clearInterval(e)}},[pe,fe]);const ve=U?1:t.pages.length;let ye,xe;if(te){const e=pe*t.scale*ve;ye=Math.max(re,(ne.width-e)/ve/2),xe=Math.max(oe,(ne.height-fe*t.scale)/2)}else{ye=Math.max(re,(ne.width-pe*t.scale)/2);const e=fe*t.scale*ve;xe=Math.max(oe,(ne.height-e)/ve/2)}Number.isNaN(ye)&&(ye=re),Number.isNaN(xe)&&(xe=oe),e.useEffect(()=>{const e=e=>{(A||l)(e,t)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),e.useEffect(()=>{const e=e=>{if(e.ctrlKey||e.metaKey){e.preventDefault();const r=Math.max(5,t.scaleToFit);let o=Math.min(.1,t.scaleToFit);te&&pe>0&&Number.isFinite(pe)&&(o=Math.max(o,300/pe)),o=Math.max(o,.01);const n=.03,l=c(e.deltaY<0?t.scale*(1+n):t.scale/(1+n),o,r);return void t.setScale(l)}},r=se.current;return null==r||r.addEventListener("wheel",e),()=>null==r?void 0:r.removeEventListener("wheel",e)},[te,pe,t]),e.useEffect(()=>{const e=se.current;if(!e){return}const r=e=>{2===e.touches.length&&(ce.current=u(e.touches[0],e.touches[1]))},o=r=>{if(2===r.touches.length&&ce.current>0){r.preventDefault();const o=u(r.touches[0],r.touches[1]),n=o/ce.current,l=Math.max(5,t.scaleToFit);let i=Math.min(.1,t.scaleToFit);te&&pe>0&&Number.isFinite(pe)&&(i=Math.max(i,300/pe)),i=Math.max(i,.01);const a=t.scale,s=c(a*n,i,l),d=s/a,h=e.getBoundingClientRect(),g=(r.touches[0].clientX+r.touches[1].clientX)/2-h.left,p=(r.touches[0].clientY+r.touches[1].clientY)/2-h.top,f=e.scrollLeft+g,m=e.scrollTop+p;Le.current=!0,t.setScale(s),e.scrollLeft=f*d-g,e.scrollTop=m*d-p,ce.current=o}},n=()=>{ce.current=0};return e.addEventListener("touchstart",r,{passive:!0}),e.addEventListener("touchmove",o,{passive:!1}),e.addEventListener("touchend",n,{passive:!0}),()=>{e.removeEventListener("touchstart",r),e.removeEventListener("touchmove",o),e.removeEventListener("touchend",n)}},[te,pe,t]);const ke=void 0!==V,we=t.pages.map(e=>{if(te){const r=(e.computedWidth+2*ue)*t.scale;return ke?r+V:r+2*ye}{const r=(e.computedHeight+2*ue)*t.scale;return ke?r+V:r+2*xe}}),Te=[];let be=ke?te?ye:xe:0;for(let e=0;e<we.length;e++){Te.push(be),be+=we[e]}const Ee=we.reduce((e,t)=>e+t,0),Se=ke?Ee+(te?2*ye:2*xe):Ee,Le=e.useRef(!1),[,Ce]=e.useReducer(e=>e+1,0);((t,r,o,n,l)=>{const i=e.useRef(0),a=e.useRef(0),s=e.useRef(null),u=e.useRef(null),d=e.useRef(!1),h=e.useRef(n.pages.length);d.current=h.current!==n.pages.length,h.current=n.pages.length,e.useEffect(()=>{const e=t.current,r=()=>{i.current=e.scrollLeft,a.current=e.scrollTop,s.current=e.scrollWidth,u.current=e.scrollHeight};return e.addEventListener("scroll",r),r(),()=>{e.removeEventListener("scroll",r)}},[]),e.useLayoutEffect(()=>{if(!t.current){return}if(d.current){return}const e=t.current,r=s.current,o=u.current;if(null===r||null===o){return s.current=e.scrollWidth,u.current=e.scrollHeight,i.current=e.scrollLeft,void(a.current=e.scrollTop)}l.current=!0;const n=e.offsetWidth,h=e.offsetHeight,g=(i.current+n/2)/r,p=(a.current+h/2)/o,f=Math.max(0,e.scrollWidth-n),m=Math.max(0,e.scrollHeight-h);e.scrollLeft=c(g*e.scrollWidth-n/2,0,f),e.scrollTop=c(p*e.scrollHeight-h/2,0,m),s.current=e.scrollWidth,u.current=e.scrollHeight,i.current=e.scrollLeft,a.current=e.scrollTop},[o,r])})(se,Se,t.scale,t,Le);const{handleScroll:Me}=((t,r,o,n,l,i,a,s,c,u)=>{const d=e.useRef(!1),h=e.useRef(null),g=e.useRef(!1),p="horizontal"===c;e.useEffect(()=>{const e=t.current,r=()=>{a.current};return e.addEventListener("scroll",r),()=>{e.removeEventListener("scroll",r)}},[]);const f=n.pages.indexOf(n.activePage);return e.useLayoutEffect(()=>{if(s){return}if(!n.activePage){return}if(!t.current){return}if(d.current){return}const e=t.current,i=n.pages.indexOf(n.activePage),a=r[i]||0,c=p?e.scrollLeft:e.scrollTop,h=p?e.scrollWidth-e.clientWidth:e.scrollHeight-e.clientHeight,f=Math.min(a,Math.max(0,h)),m=o[i]||o[0]||0;let v=()=>{};return(Math.abs(f-c)>m*l||g.current)&&(g.current=!0,v=(({element:e,scrollTop:t,scrollLeft:r,duration:o=300,onFinish:n=()=>{}})=>{const l=void 0!==t,i=l?e.scrollTop:e.scrollLeft,a=l?t:r,s=a-i;let c=0,u=!1;if(0===o){return l?e.scrollTop=a:e.scrollLeft=a,()=>{}}const d=()=>{if(u){return}c+=20;const t=h(c,i,s,o);l?e.scrollTop=t:e.scrollLeft=t,c<o?setTimeout(d,20):n()},h=(e,t,r,o)=>(e/=o/2)<1?r/2*e*e+t:-r/2*(--e*(e-2)-1)+t;return d(),()=>{u=!0}})(Object.assign(Object.assign({element:e},p?{scrollLeft:f}:{scrollTop:f}),{onFinish:()=>{g.current=!1,null==u||u()},duration:n.isPlaying?0:300}))),v},[n.activePage,f,n.isPlaying,s,c,r,o]),{handleScroll:e=>{if(s){return}if(g.current){return}d.current=!0,clearTimeout(h.current),h.current=setTimeout(()=>{d.current=!1},300);const t=(p?e.currentTarget.scrollLeft:e.currentTarget.scrollTop)+(p?i.width:i.height)/3;let o=0;for(let n=r.length-1;n>=0;n--){if(t>=r[n]){o=n;break}}const l=n.pages[o];l&&n.activePage!==l&&l.select()}}})(se,Te,we,t,Z,ne,Le,U,i,Ce),Pe=ne.width>=pe*t.scale+2*ye,Re=ne.height>=fe*t.scale+2*xe,Fe=p||"rgba(232, 232, 232, 0.9)",We=(null==X?void 0:X.NoPages)||d,Be=te?ne.width:ne.height,Oe=se.current?te?se.current.scrollLeft:se.current.scrollTop:0,ze=e=>{for(let t=Te.length-1;t>=0;t--){if(e>=Te[t]){return t}}return 0},He=Math.max(0,ze(Oe)),Ne=Math.min(t.pages.length-1,ze(Oe+Be)),je=null!=Q?Q:1,Ge=Math.max(0,He-je),Ie=Math.min(t.pages.length-1,Ne+je),_e=s({cropOverlayFill:C,workspaceBackgroundColor:p,pageBorderColor:m,activePageBorderColor:v,bleedColor:y,transparencyBackgroundColor:f,transformerStyle:M,innerImageCropTransformerStyle:P,outerImageCropTransformerStyle:R,highlighterStyle:F,snapGuideStroke:x,snapGuideStrokeWidth:k,snapGuideDash:w,selectionRectFill:T,selectionRectStroke:b,selectionRectStrokeWidth:E,transformLabelFill:S,transformLabelTextFill:L,distanceGuideStroke:z,distanceLabelFill:H,distanceLabelTextFill:N,mediaLoadingStyle:W,mediaErrorStyle:B,textOverflowIndicatorStyle:O,rulerBackgroundColor:j,rulerTextColor:G,rulerBorderColor:I,rulerBorderSize:_,rulerTickColor:Y,rulerTickSize:D});return e.createElement(a,{value:_e},e.createElement("div",{ref:ae,style:{width:"100%",height:"100%",position:"relative",outline:"none",flex:1,backgroundColor:Fe,overflow:"hidden"},tabIndex:0,className:"polotno-workspace-container"},e.createElement("div",{ref:se,onScroll:Me,style:Object.assign({position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",flexDirection:te?"row":"column",overflow:"auto",overflowX:te?"auto":Pe?"hidden":"auto",overflowY:te&&Re?"hidden":"auto"},ke&&{paddingTop:te?0:xe,paddingBottom:te?0:xe,paddingLeft:te?ye:0,paddingRight:te?ye:0,boxSizing:"border-box"}),className:"polotno-workspace-inner"},t.pages.map((o,n)=>{const l=o===t.activePage;if(U&&!l&&!o._exportingOrRendering&&!o._forceMount){return null}const a=l||n>=Ge&&n<=Ie||o._exportingOrRendering||o._forceMount,s=te?we[n]:pe*t.scale+2*ye,c=te?fe*t.scale+2*xe:we[n];if(!a){return e.createElement("div",{key:o.id,style:{flexShrink:0}},e.createElement(h,{width:s,height:c,backgroundColor:Fe,xPadding:ye,yPadding:xe}))}const u=e.createElement(r,{key:o.id,page:o,xPadding:ye,yPadding:xe,width:s,height:c,store:t,pageControlsEnabled:g,altCloneEnabled:J,components:X,viewportSize:ne,layout:i,tooltipSafeArea:$});return(o._exportingOrRendering||o._forceMount)&&!l&&U?e.createElement("div",{style:{display:"none",flexShrink:0},key:o.id},u):u}),t.rulesVisible&&e.createElement(o,{store:t,xPadding:ye,yPadding:xe,width:pe*t.scale+2*ye,height:fe*t.scale+2*xe,pageSizes:we,layout:i,renderOnlyActivePage:U}),0===t.pages.length&&e.createElement(We,{store:t}),t.audios.map(r=>e.createElement(n,{key:r.id,audio:r,store:t})))))});export default WorkspaceCanvas;
|
|
1
|
+
import e from"react";import{observer as t}from"mobx-react-lite";import r from"./page.js";import{TopRules as o}from"./rules.js";import{AudioElement as n}from"./audio.js";import{handleHotkey as l}from"./hotkeys.js";import{t as i}from"../utils/l10n.js";import{WorkspaceStyleProvider as a,useResolvedWorkspaceStyle as s}from"./workspace-style.js";const c=(e,t,r)=>Math.max(t,Math.min(r,e)),u=(e,t)=>Math.sqrt(Math.pow(t.clientX-e.clientX,2)+Math.pow(t.clientY-e.clientY,2)),d=({store:t})=>e.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",textAlign:"center"}},e.createElement("p",null,i("workspace.noPages")),e.createElement("button",{onClick:()=>{t.addPage()}},i("workspace.addPage"))),h=({width:t,height:r,xPadding:o,yPadding:n,backgroundColor:l})=>e.createElement("div",{style:{width:t+"px",height:r+"px",backgroundColor:l,paddingLeft:o+"px",paddingRight:o+"px",paddingTop:n+"px",paddingBottom:n+"px",flexShrink:0}},e.createElement("div",{style:{width:" 100%",height:"100%",backgroundColor:"white"}}));export const WorkspaceCanvas=t(({store:t,layout:i="vertical",pageControlsEnabled:g,backgroundColor:p,transparencyBackgroundColor:f,pageBorderColor:m,activePageBorderColor:v,bleedColor:y,snapGuideStroke:k,snapGuideStrokeWidth:x,snapGuideDash:w,selectionRectFill:T,selectionRectStroke:b,selectionRectStrokeWidth:E,transformLabelFill:S,transformLabelTextFill:L,cropOverlayFill:C,transformerStyle:M,innerImageCropTransformerStyle:P,outerImageCropTransformerStyle:R,highlighterStyle:F,mediaLoadingStyle:W,mediaErrorStyle:B,textOverflowIndicatorStyle:O,distanceGuideStroke:z,distanceLabelFill:H,distanceLabelTextFill:N,rulerBackgroundColor:j,rulerTextColor:G,rulerBorderColor:I,rulerBorderSize:_,rulerTickColor:Y,rulerTickSize:D,components:X,onKeyDown:A,paddingX:K,paddingY:q,pageGap:V,altCloneEnabled:J=!0,groupClickBehavior:Q="select-child",visiblePagesOffset:U,renderOnlyActivePage:Z,scrollToPageThreshold:$=.5,tooltipSafeArea:ee})=>{var te;const re="horizontal"===i,oe=null!=K?K:20,ne=null!=q?q:55,[le,ie]=e.useState({width:100,height:100}),ae=e.useRef(le),se=e.useRef(null),ce=e.useRef(null),ue=e.useRef(0),de=t.bleedVisible?Math.max(0,...t.pages.map(e=>e.bleed)):0,he=Math.max(...t.pages.map(e=>e.computedWidth)),ge=Math.max(...t.pages.map(e=>e.computedHeight)),pe=(null===(te=t.activePage)||void 0===te?void 0:te.computedHeight)||0,fe=he+2*de,me=(Z?pe:ge)+2*de,ve=async({skipTimeout:e}={skipTimeout:!1})=>{if(e||await new Promise(e=>setTimeout(e,50)),null===se.current){return}const r=se.current.getBoundingClientRect();0!==r.width&&0!==r.height||(console.warn("Polotno warning: <Workspace /> component can not automatically detect its size.\nWidth or height of parent elements is equal 0.\nPlease make sure it has non-zero size. You may need to adjust it with your styles. <Workspace /> will automatically fit into parent container.\nFor simpler debugging here is the log of the parent element:"),console.log(se.current));const o=ce.current.clientWidth||r.width,n={width:o,height:r.height};(ae.current.width!==n.width||ae.current.height!==n.height)&&(ie(n),ae.current=n);const l=(o-2*oe)/fe,i=t.pages.length>1?3.1:2,a=(r.height-ne*i)/me,s=t.pages.length>1?3.1:2,c=(o-oe*s)/fe,u=(r.height-2*ne)/me,d=t.pages.length?Math.max(Math.min(re?c:l,re?u:a),.01):1;t.scaleToFit!==d&&(t.setScale(d),t._setScaleToFit(d))};e.useLayoutEffect(()=>{ve({skipTimeout:!0})},[]),e.useEffect(()=>{ve()},[fe,me,q,K]),e.useLayoutEffect(()=>{ve({skipTimeout:!0})},[t.openedSidePanel]),e.useEffect(()=>{t.__()},[]),e.useEffect(()=>{const e=se.current;if(window.ResizeObserver){const t=new ResizeObserver(()=>{ve({skipTimeout:!0})});return t.observe(e),()=>t.unobserve(e)}{const e=setInterval(()=>{ve({skipTimeout:!0})},100);return()=>clearInterval(e)}},[fe,me]);const ye=Z?1:t.pages.length;let ke,xe;if(re){const e=fe*t.scale*ye;ke=Math.max(oe,(le.width-e)/ye/2),xe=Math.max(ne,(le.height-me*t.scale)/2)}else{ke=Math.max(oe,(le.width-fe*t.scale)/2);const e=me*t.scale*ye;xe=Math.max(ne,(le.height-e)/ye/2)}Number.isNaN(ke)&&(ke=oe),Number.isNaN(xe)&&(xe=ne),e.useEffect(()=>{const e=e=>{(A||l)(e,t)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),e.useEffect(()=>{const e=e=>{if(e.ctrlKey||e.metaKey){e.preventDefault();const r=Math.max(5,t.scaleToFit);let o=Math.min(.1,t.scaleToFit);re&&fe>0&&Number.isFinite(fe)&&(o=Math.max(o,300/fe)),o=Math.max(o,.01);const n=.03,l=c(e.deltaY<0?t.scale*(1+n):t.scale/(1+n),o,r);return void t.setScale(l)}},r=ce.current;return null==r||r.addEventListener("wheel",e),()=>null==r?void 0:r.removeEventListener("wheel",e)},[re,fe,t]),e.useEffect(()=>{const e=ce.current;if(!e){return}const r=e=>{2===e.touches.length&&(ue.current=u(e.touches[0],e.touches[1]))},o=r=>{if(2===r.touches.length&&ue.current>0){r.preventDefault();const o=u(r.touches[0],r.touches[1]),n=o/ue.current,l=Math.max(5,t.scaleToFit);let i=Math.min(.1,t.scaleToFit);re&&fe>0&&Number.isFinite(fe)&&(i=Math.max(i,300/fe)),i=Math.max(i,.01);const a=t.scale,s=c(a*n,i,l),d=s/a,h=e.getBoundingClientRect(),g=(r.touches[0].clientX+r.touches[1].clientX)/2-h.left,p=(r.touches[0].clientY+r.touches[1].clientY)/2-h.top,f=e.scrollLeft+g,m=e.scrollTop+p;Ce.current=!0,t.setScale(s),e.scrollLeft=f*d-g,e.scrollTop=m*d-p,ue.current=o}},n=()=>{ue.current=0};return e.addEventListener("touchstart",r,{passive:!0}),e.addEventListener("touchmove",o,{passive:!1}),e.addEventListener("touchend",n,{passive:!0}),()=>{e.removeEventListener("touchstart",r),e.removeEventListener("touchmove",o),e.removeEventListener("touchend",n)}},[re,fe,t]);const we=void 0!==V,Te=t.pages.map(e=>{if(re){const r=(e.computedWidth+2*de)*t.scale;return we?r+V:r+2*ke}{const r=(e.computedHeight+2*de)*t.scale;return we?r+V:r+2*xe}}),be=[];let Ee=we?re?ke:xe:0;for(let e=0;e<Te.length;e++){be.push(Ee),Ee+=Te[e]}const Se=Te.reduce((e,t)=>e+t,0),Le=we?Se+(re?2*ke:2*xe):Se,Ce=e.useRef(!1),[,Me]=e.useReducer(e=>e+1,0);((t,r,o,n,l)=>{const i=e.useRef(0),a=e.useRef(0),s=e.useRef(null),u=e.useRef(null),d=e.useRef(!1),h=e.useRef(n.pages.length);d.current=h.current!==n.pages.length,h.current=n.pages.length,e.useEffect(()=>{const e=t.current,r=()=>{i.current=e.scrollLeft,a.current=e.scrollTop,s.current=e.scrollWidth,u.current=e.scrollHeight};return e.addEventListener("scroll",r),r(),()=>{e.removeEventListener("scroll",r)}},[]),e.useLayoutEffect(()=>{if(!t.current){return}if(d.current){return}const e=t.current,r=s.current,o=u.current;if(null===r||null===o){return s.current=e.scrollWidth,u.current=e.scrollHeight,i.current=e.scrollLeft,void(a.current=e.scrollTop)}l.current=!0;const n=e.offsetWidth,h=e.offsetHeight,g=(i.current+n/2)/r,p=(a.current+h/2)/o,f=Math.max(0,e.scrollWidth-n),m=Math.max(0,e.scrollHeight-h);e.scrollLeft=c(g*e.scrollWidth-n/2,0,f),e.scrollTop=c(p*e.scrollHeight-h/2,0,m),s.current=e.scrollWidth,u.current=e.scrollHeight,i.current=e.scrollLeft,a.current=e.scrollTop},[o,r])})(ce,Le,t.scale,t,Ce);const{handleScroll:Pe}=((t,r,o,n,l,i,a,s,c,u)=>{const d=e.useRef(!1),h=e.useRef(null),g=e.useRef(!1),p="horizontal"===c;e.useEffect(()=>{const e=t.current,r=()=>{a.current};return e.addEventListener("scroll",r),()=>{e.removeEventListener("scroll",r)}},[]);const f=n.pages.indexOf(n.activePage);return e.useLayoutEffect(()=>{if(s){return}if(!n.activePage){return}if(!t.current){return}if(d.current){return}const e=t.current,i=n.pages.indexOf(n.activePage),a=r[i]||0,c=p?e.scrollLeft:e.scrollTop,h=p?e.scrollWidth-e.clientWidth:e.scrollHeight-e.clientHeight,f=Math.min(a,Math.max(0,h)),m=o[i]||o[0]||0;let v=()=>{};return(Math.abs(f-c)>m*l||g.current)&&(g.current=!0,v=(({element:e,scrollTop:t,scrollLeft:r,duration:o=300,onFinish:n=()=>{}})=>{const l=void 0!==t,i=l?e.scrollTop:e.scrollLeft,a=l?t:r,s=a-i;let c=0,u=!1;if(0===o){return l?e.scrollTop=a:e.scrollLeft=a,()=>{}}const d=()=>{if(u){return}c+=20;const t=h(c,i,s,o);l?e.scrollTop=t:e.scrollLeft=t,c<o?setTimeout(d,20):n()},h=(e,t,r,o)=>(e/=o/2)<1?r/2*e*e+t:-r/2*(--e*(e-2)-1)+t;return d(),()=>{u=!0}})(Object.assign(Object.assign({element:e},p?{scrollLeft:f}:{scrollTop:f}),{onFinish:()=>{g.current=!1,null==u||u()},duration:n.isPlaying?0:300}))),v},[n.activePage,f,n.isPlaying,s,c,r,o]),{handleScroll:e=>{if(s){return}if(g.current){return}d.current=!0,clearTimeout(h.current),h.current=setTimeout(()=>{d.current=!1},300);const t=(p?e.currentTarget.scrollLeft:e.currentTarget.scrollTop)+(p?i.width:i.height)/3;let o=0;for(let n=r.length-1;n>=0;n--){if(t>=r[n]){o=n;break}}const l=n.pages[o];l&&n.activePage!==l&&l.select()}}})(ce,be,Te,t,$,le,Ce,Z,i,Me),Re=le.width>=fe*t.scale+2*ke,Fe=le.height>=me*t.scale+2*xe,We=p||"rgba(232, 232, 232, 0.9)",Be=(null==X?void 0:X.NoPages)||d,Oe=re?le.width:le.height,ze=ce.current?re?ce.current.scrollLeft:ce.current.scrollTop:0,He=e=>{for(let t=be.length-1;t>=0;t--){if(e>=be[t]){return t}}return 0},Ne=Math.max(0,He(ze)),je=Math.min(t.pages.length-1,He(ze+Oe)),Ge=null!=U?U:1,Ie=Math.max(0,Ne-Ge),_e=Math.min(t.pages.length-1,je+Ge),Ye=s({cropOverlayFill:C,workspaceBackgroundColor:p,pageBorderColor:m,activePageBorderColor:v,bleedColor:y,transparencyBackgroundColor:f,transformerStyle:M,innerImageCropTransformerStyle:P,outerImageCropTransformerStyle:R,highlighterStyle:F,snapGuideStroke:k,snapGuideStrokeWidth:x,snapGuideDash:w,selectionRectFill:T,selectionRectStroke:b,selectionRectStrokeWidth:E,transformLabelFill:S,transformLabelTextFill:L,distanceGuideStroke:z,distanceLabelFill:H,distanceLabelTextFill:N,mediaLoadingStyle:W,mediaErrorStyle:B,textOverflowIndicatorStyle:O,rulerBackgroundColor:j,rulerTextColor:G,rulerBorderColor:I,rulerBorderSize:_,rulerTickColor:Y,rulerTickSize:D});return e.createElement(a,{value:Ye},e.createElement("div",{ref:se,style:{width:"100%",height:"100%",position:"relative",outline:"none",flex:1,backgroundColor:We,overflow:"hidden"},tabIndex:0,className:"polotno-workspace-container"},e.createElement("div",{ref:ce,onScroll:Pe,style:Object.assign({position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",flexDirection:re?"row":"column",overflow:"auto",overflowX:re?"auto":Re?"hidden":"auto",overflowY:re&&Fe?"hidden":"auto"},we&&{paddingTop:re?0:xe,paddingBottom:re?0:xe,paddingLeft:re?ke:0,paddingRight:re?ke:0,boxSizing:"border-box"}),className:"polotno-workspace-inner"},t.pages.map((o,n)=>{const l=o===t.activePage;if(Z&&!l&&!o._exportingOrRendering&&!o._forceMount){return null}const a=l||n>=Ie&&n<=_e||o._exportingOrRendering||o._forceMount,s=re?Te[n]:fe*t.scale+2*ke,c=re?me*t.scale+2*xe:Te[n];if(!a){return e.createElement("div",{key:o.id,style:{flexShrink:0}},e.createElement(h,{width:s,height:c,backgroundColor:We,xPadding:ke,yPadding:xe}))}const u=e.createElement(r,{key:o.id,page:o,xPadding:ke,yPadding:xe,width:s,height:c,store:t,pageControlsEnabled:g,altCloneEnabled:J,groupClickBehavior:Q,components:X,viewportSize:le,layout:i,tooltipSafeArea:ee});return(o._exportingOrRendering||o._forceMount)&&!l&&Z?e.createElement("div",{style:{display:"none",flexShrink:0},key:o.id},u):u}),t.rulesVisible&&e.createElement(o,{store:t,xPadding:ke,yPadding:xe,width:fe*t.scale+2*ke,height:me*t.scale+2*xe,pageSizes:Te,layout:i,renderOnlyActivePage:Z}),0===t.pages.length&&e.createElement(Be,{store:t}),t.audios.map(r=>e.createElement(n,{key:r.id,audio:r,store:t})))))});export default WorkspaceCanvas;
|
package/model/group-model.d.ts
CHANGED
|
@@ -10,6 +10,19 @@ import { GifElementType } from './gif-model.js';
|
|
|
10
10
|
import { TableElementType } from './table-model.js';
|
|
11
11
|
export declare const forEveryChild: (node: any, cb: any) => void;
|
|
12
12
|
export declare const forEveryNode: (node: any, cb: any) => void;
|
|
13
|
+
export declare function zIndexOps(self: {
|
|
14
|
+
children: any;
|
|
15
|
+
}): {
|
|
16
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
17
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
18
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
19
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
20
|
+
moveElementsUp(ids: Array<string>): void;
|
|
21
|
+
moveElementsDown(ids: Array<string>): void;
|
|
22
|
+
moveElementsTop(ids: Array<string>): void;
|
|
23
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
24
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
25
|
+
};
|
|
13
26
|
export declare const ElementTypes: any;
|
|
14
27
|
type ElementUnion = (SVGElementType & {
|
|
15
28
|
type: 'svg';
|
|
@@ -364,18 +377,7 @@ export declare const TYPES_MAP: {
|
|
|
364
377
|
set(attrs: any): void;
|
|
365
378
|
afterCreate(): void;
|
|
366
379
|
toggleEditMode(editing?: boolean): void;
|
|
367
|
-
}, import("mobx-state-tree").
|
|
368
|
-
id: string;
|
|
369
|
-
type: string | undefined;
|
|
370
|
-
name: string | undefined;
|
|
371
|
-
opacity: number | undefined;
|
|
372
|
-
custom: any;
|
|
373
|
-
visible: boolean | undefined;
|
|
374
|
-
selectable: boolean | undefined;
|
|
375
|
-
removable: boolean | undefined;
|
|
376
|
-
alwaysOnTop: boolean | undefined;
|
|
377
|
-
showInExport: boolean | undefined;
|
|
378
|
-
}>, import("mobx-state-tree").ModelSnapshotType<{
|
|
380
|
+
}, any, import("mobx-state-tree").ModelSnapshotType<{
|
|
379
381
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
380
382
|
type: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
381
383
|
name: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
@@ -1384,6 +1386,12 @@ export declare const TYPES_MAP: {
|
|
|
1384
1386
|
readonly cellPadding: number;
|
|
1385
1387
|
readonly width: number;
|
|
1386
1388
|
readonly height: number;
|
|
1389
|
+
readonly borderInsets: {
|
|
1390
|
+
top: number;
|
|
1391
|
+
right: number;
|
|
1392
|
+
bottom: number;
|
|
1393
|
+
left: number;
|
|
1394
|
+
};
|
|
1387
1395
|
readonly a: {
|
|
1388
1396
|
x: number;
|
|
1389
1397
|
y: number;
|
package/model/group-model.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=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
|
|
1
|
+
var e=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 n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++){t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}}return r};import{detach as t,types as r}from"mobx-state-tree";import{nanoid as o}from"nanoid";import{Node as n}from"./node-model.js";import{Shape as i}from"./shape-model.js";import{TextElement as l}from"./text-model.js";import{ImageElement as s}from"./image-model.js";import{VideoElement as d}from"./video-model.js";import{LineElement as c}from"./line-model.js";import{SVGElement as a}from"./svg-model.js";import{FigureElement as m}from"./figure-model.js";import{GifElement as p}from"./gif-model.js";import{TableElement as f}from"./table-model.js";export const forEveryChild=(e,t)=>{if(e.children){for(const r of e.children){if(!0===t(r)){break}forEveryChild(r,t)}}};export const forEveryNode=(e,t)=>{if(e.children){for(const r of e.children){if(!0===t(r)){break}forEveryNode(r,t)}}if(e.cells){for(const r of e.cells){if(!0===t(r)){break}}}};export function zIndexOps(e){const r=(t,r,o)=>{const n=t.map(t=>e.children.findIndex(e=>e.id===t)).filter(e=>-1!==e).sort((e,t)=>(t-e)*r);for(const i of n){const n=e.children[i+r];!n||t.indexOf(n.id)>=0||o(i)}},o=(e,t)=>{let o=!1;return r(e,t,()=>{o=!0}),o},n=(o,n)=>{r(o,n,r=>{const o=e.children[r];t(o),e.children.splice(r+n,0,o)})},i=(t,r)=>{const o=[],n=[];e.children.forEach(e=>{(t.indexOf(e.id)>=0?o:n).push(e)}),e.children.replace(r?n.concat(o):o.concat(n))};return{canMoveElementsUp:e=>o(e,1),canMoveElementsTop:e=>o(e,1),canMoveElementsDown:e=>o(e,-1),canMoveElementsBottom:e=>o(e,-1),moveElementsUp(e){n(e,1)},moveElementsDown(e){n(e,-1)},moveElementsTop(e){i(e,!0)},moveElementsBottom(e){i(e,!1)},setElementZIndex(r,o){const n=e.children.find(e=>e.id===r);n&&(t(n),e.children.remove(n),e.children.splice(o,0,n))}}}const E=[...new Array(20)].map((e,t)=>r.late(()=>h[t]));export const ElementTypes=r.union({dispatcher:e=>{const t=TYPES_MAP[e.type];if(!t){throw new Error(`Unknown element type: "${e.type}"`)}return t}},a,l,s,c,d,m,p,f,r.late(()=>GroupElement),...E);export const GroupElement=n.named("Group").props({type:"group",children:r.array(ElementTypes)}).views(e=>({get draggable(){let t=!0;return forEveryChild(e,e=>{e.draggable||(t=!1)}),t},get resizable(){let t=!0;return forEveryChild(e,e=>{e.resizable||(t=!1)}),t},get contentEditable(){let t=!0;return forEveryChild(e,e=>{e.contentEditable||(t=!1)}),t},get styleEditable(){let t=!0;return forEveryChild(e,e=>{e.styleEditable||(t=!1)}),t},get locked(){let t=!0;return forEveryChild(e,e=>{e.locked||(t=!1)}),t}})).actions(t=>Object.assign(Object.assign({set(r){var{draggable:o,contentEditable:n,styleEditable:i,resizable:l}=r,s=e(r,["draggable","contentEditable","styleEditable","resizable"]);void 0!==o&&forEveryChild(t,e=>{e.set({draggable:o})}),void 0!==n&&forEveryChild(t,e=>{e.set({contentEditable:n})}),void 0!==i&&forEveryChild(t,e=>{e.set({styleEditable:i})}),void 0!==l&&forEveryChild(t,e=>{e.set({resizable:l})}),Object.assign(t,s)},addElement(e,{skipSelect:r=!1}={}){const n=TYPES_MAP[e.type];if(!n){return void console.error("Can not find model with type "+e.type)}e.children&&e.children.forEach(e=>{e.id=e.id||o(10)});const i=n.create(Object.assign({id:o(10)},e));return t.children.push(i),i.selectable&&!r&&t.store.selectElements([i.id]),i}},zIndexOps(t)),{setAnimation(e,r){forEveryChild(t,t=>{t.setAnimation(e,r)})}}));const h=[];export const TYPES_MAP={svg:a,text:l,image:s,group:GroupElement,line:c,video:d,figure:m,gif:p,table:f};export function registerShapeModel(e,t){const r=e.type;if(!r){throw new Error('You must pass "type" attribute to custom model.')}let o=i.named(r).props(e);t&&(o=t(o)),TYPES_MAP[r]=o,h.push(o)}
|
package/model/node-model.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{types as e,getParentOfType as t,getSnapshot as
|
|
1
|
+
import{types as e,getParentOfType as t,getSnapshot as n,hasParentOfType as o}from"mobx-state-tree";import{nanoid as r}from"nanoid";import{Store as s}from"./store.js";import{Page as i}from"./page-model.js";import{GroupElement as a,forEveryNode as l}from"./group-model.js";export const Node=e.model("Node",{id:e.identifier,type:"none",name:"",opacity:1,custom:e.frozen(),visible:!0,selectable:!0,removable:!0,alwaysOnTop:!1,showInExport:!0}).preProcessSnapshot(e=>{for(var t in e){null===e[t]&&(e[t]=void 0)}return e}).postProcessSnapshot(e=>{const t=Object.assign({},e),n={};for(var o in t){"_"!==o[0]&&(n[o]=e[o])}return n}).views(e=>({get page(){return t(e,i)},get store(){return t(e,s)},get top(){let n=e;for(;;){if(!o(n,a)){return n}n=t(n,a)}},get parent(){if(o(e,a)){const n=t(e,a);return n&&n.children&&n.children.length,n}if(o(e,i)){const n=t(e,i);return n&&n.children&&n.children.length,n}if(o(e,s)){const n=t(e,s);return n&&n.pages&&n.pages.length,n}return null},get zIndex(){return e.parent.children.indexOf(e)}})).actions(e=>({toJSON:()=>Object.assign({},n(e))})).actions(e=>({clone(t={},{skipSelect:n=!1}={}){const o=JSON.parse(JSON.stringify(e.toJSON()));t.id=t.id||r(10);const s=new Map;return l(o,e=>{const t=e.id,n=r(10);s.set(t,n),e.id=n}),l(o,e=>{e.mergedInto&&s.has(e.mergedInto)&&(e.mergedInto=s.get(e.mergedInto))}),Object.assign(o,t),e.page.addElement(o,{skipSelect:n})},set(t){Object.assign(e,t)},moveUp(){var t;null===(t=e.parent)||void 0===t||t.moveElementsUp([e.id])},moveTop(){var t;null===(t=e.parent)||void 0===t||t.moveElementsTop([e.id])},moveDown(){var t;null===(t=e.parent)||void 0===t||t.moveElementsDown([e.id])},moveBottom(){var t;null===(t=e.parent)||void 0===t||t.moveElementsBottom([e.id])},setZIndex(t){e.parent.setElementZIndex(e.id,t)},beforeDestroy(){}}));
|
package/model/page-model.d.ts
CHANGED
|
@@ -23,9 +23,22 @@ export declare const Page: import("mobx-state-tree").IModelType<{
|
|
|
23
23
|
readonly computedHeight: any;
|
|
24
24
|
} & {
|
|
25
25
|
toJSON(): any;
|
|
26
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
27
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
28
26
|
} & {
|
|
27
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
useMagic?: boolean;
|
|
31
|
+
softChange?: boolean;
|
|
32
|
+
}): void;
|
|
33
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
34
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
35
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
36
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
37
|
+
moveElementsUp(ids: Array<string>): void;
|
|
38
|
+
moveElementsDown(ids: Array<string>): void;
|
|
39
|
+
moveElementsTop(ids: Array<string>): void;
|
|
40
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
41
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
29
42
|
clone(attrs?: {}): any;
|
|
30
43
|
setZIndex(zIndex: any): void;
|
|
31
44
|
set(attrs: any): void;
|
|
@@ -39,21 +52,6 @@ export declare const Page: import("mobx-state-tree").IModelType<{
|
|
|
39
52
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
40
53
|
type: T;
|
|
41
54
|
}> : NodeType;
|
|
42
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
43
|
-
moveElementsUp(ids: Array<string>): void;
|
|
44
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
45
|
-
moveElementsTop(ids: Array<string>): void;
|
|
46
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
47
|
-
moveElementsDown(ids: Array<string>): void;
|
|
48
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
49
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
50
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
51
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
52
|
-
width: number;
|
|
53
|
-
height: number;
|
|
54
|
-
useMagic?: boolean;
|
|
55
|
-
softChange?: boolean;
|
|
56
|
-
}): void;
|
|
57
55
|
} & {
|
|
58
56
|
moveElementUp(id: any): void;
|
|
59
57
|
moveElementDown(id: any): void;
|
package/model/page-model.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{getParentOfType as e,getSnapshot as t,types as i}from"mobx-state-tree";import{nanoid as o}from"nanoid";import{ElementTypes as n,forEveryChild as r,forEveryNode as s,TYPES_MAP as d,zIndexOps as a}from"./group-model.js";import{Store as m}from"./store.js";import{getTotalClientRect as h}from"../utils/math.js";export const Page=i.model("Page",{id:i.identifier,children:i.array(i.late(()=>n)),width:i.optional(i.union(i.number,i.literal("auto")),"auto"),height:i.optional(i.union(i.number,i.literal("auto")),"auto"),background:"white",bleed:0,custom:i.frozen(),duration:5e3,_exporting:!1,_rendering:!1,_forceMount:!1}).postProcessSnapshot(e=>{const t=Object.assign({},e),i={};for(var o in t){"_"!==o[0]&&(i[o]=e[o])}return i}).views(t=>({get store(){return e(t,m)}})).views(e=>({get startTime(){let t=0;for(const i of e.store.pages){if(i.id===e.id){return t}t+=i.duration}return t},get _exportingOrRendering(){return e._exporting||e._rendering}})).views(e=>({get computedWidth(){return"auto"===e.width?e.store.width:e.width},get computedHeight(){return"auto"===e.height?e.store.height:e.height}})).actions(e=>({toJSON:()=>JSON.parse(JSON.stringify(t(e)))})).actions(e=>Object.assign(Object.assign({clone(t={}){const i=e.toJSON(),n=new Map;i.children.forEach(e=>{const t=e.id,i=o(10);n.set(t,i),e.id=i,s(e,e=>{const t=e.id,i=o(10);n.set(t,i),e.id=i})}),i.children.forEach(e=>{e.cells&&e.cells.forEach(e=>{e.mergedInto&&n.has(e.mergedInto)&&(e.mergedInto=n.get(e.mergedInto))})});const r=Object.assign(Object.assign(Object.assign({},i),{id:o(10)}),t),d=e.store.addPage(r),a=e.store.pages.indexOf(e);return d.setZIndex(a+1),d.select(),d},setZIndex(t){e.store.setPageZIndex(e.id,t)},set(t){Object.assign(e,t)},select(){e.store.selectPage(e.id)},addElement(t,{skipSelect:i=!1}={}){const n=d[t.type];if(!n){return void console.error("Can not find model with type "+t.type)}"children"in t&&Array.isArray(t.children)&&s(t,e=>{e.id=e.id||o(10)});const r=e.children.reduce((e,i)=>{if("group"===i.type){const o=i.children.reduce((e,i)=>{var o;const n=null===(o=i.name)||void 0===o?void 0:o.match(new RegExp(`${t.type}-(\\d+)`));if(n){const t=parseInt(n[1],10);return Math.max(e,t||0)}},0);return Math.max(e,o||0)}{const o=i.name.match(new RegExp(`${t.type}-(\\d+)`));if(o){const t=parseInt(o[1],10);return Math.max(e,t||0)}}return e},0),a=n.create(Object.assign({id:o(10),name:`${t.type}-${r+1}`},t));return e.children.push(a),a.selectable&&!i&&e.store.selectElements([a.id]),a}},a(e)),{setSize({width:t,height:i,useMagic:o,softChange:n}){if(o){const o=[],n=t=>"image"===t.type&&t.x<1&&t.y<1&&t.width>=e.computedWidth-2&&t.height>=e.computedHeight-2;r(e,e=>{"group"!==e.type&&(n(e)||o.push(e))});const s=o.length?h(o):{x:0,y:0,width:e.computedWidth,height:e.computedHeight},d=1/4,a=Math.max(0,Math.min(s.x,e.computedWidth-s.x-s.width)),m=e.computedWidth*d,c=Math.max(0,a-m),p=Math.max(0,Math.min(s.y,e.computedHeight-s.y-s.height)),l=e.computedHeight*d,g=Math.max(0,p-l),u=e.computedWidth-2*c,f=e.computedHeight-2*g,w=t/u,y=i/f,v=Math.min(w,y),x=(t-u*v)/2-c*v,b=(i-f*v)/2-g*v;r(e,e=>{var t;if("group"!==e.type){if(n(e)){e.set({x:e.x*v,y:e.y*v,width:e.width*w,height:e.height*y,cropX:0,cropY:0,cropWidth:1,cropHeight:1})}else if(e.set({x:x+e.x*v,y:b+e.y*v,width:e.width*v,height:e.height*v}),"text"===e.type){e.set({fontSize:e.fontSize*v})}else if("figure"===e.type){e.set({strokeWidth:e.strokeWidth*v})}else if("table"===e.type){e.set({borderWidth:e.borderWidth*v});for(const i of e.cells){const e={fontSize:i.fontSize*v,cellPadding:i.cellPadding*v};if(i.borders){const o=JSON.parse(JSON.stringify(i.borders));for(const e of["top","right","bottom","left"]){null!=(null===(t=o[e])||void 0===t?void 0:t.width)&&(o[e]=Object.assign(Object.assign({},o[e]),{width:o[e].width*v}))}e.borders=o}i.set(e)}}}})}n||(e.width=t),n||(e.height=i)}})).actions(e=>({moveElementUp(t){console.warn("page.moveElementUp(id) is deprecated. Please use page.moveElementsUp([id1, id2]) instead."),e.moveElementsUp([t])},moveElementDown(t){console.warn("page.moveElementDown(id) is deprecated. Please use page.moveElementsDown([id1, id2]) instead."),e.moveElementsDown([t])},moveElementTop(t){console.warn("page.moveElementTop(id) is deprecated. Please use page.moveElementsTop([id1, id2]) instead."),e.moveElementsTop([t])},moveElementBottom(t){console.warn("page.moveElementBottom(id) is deprecated. Please use page.moveElementsBottom([id1, id2]) instead."),e.moveElementsBottom([t])},play(){e.store.play({startTime:e.startTime,endTime:e.startTime+e.duration})}}));
|
package/model/store.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export interface ImageExportOptions extends ExportOptions {
|
|
|
30
30
|
}
|
|
31
31
|
export interface GifExportOptions extends ExportOptions {
|
|
32
32
|
fps?: number;
|
|
33
|
+
pageIds?: Array<string>;
|
|
33
34
|
}
|
|
34
35
|
export interface PDFExportOptions extends ExportOptions {
|
|
35
36
|
dpi?: number;
|
|
@@ -71,9 +72,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
71
72
|
readonly computedHeight: any;
|
|
72
73
|
} & {
|
|
73
74
|
toJSON(): any;
|
|
74
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
75
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
76
75
|
} & {
|
|
76
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
77
|
+
width: number;
|
|
78
|
+
height: number;
|
|
79
|
+
useMagic?: boolean;
|
|
80
|
+
softChange?: boolean;
|
|
81
|
+
}): void;
|
|
82
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
83
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
84
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
85
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
86
|
+
moveElementsUp(ids: Array<string>): void;
|
|
87
|
+
moveElementsDown(ids: Array<string>): void;
|
|
88
|
+
moveElementsTop(ids: Array<string>): void;
|
|
89
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
90
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
77
91
|
clone(attrs?: {}): any;
|
|
78
92
|
setZIndex(zIndex: any): void;
|
|
79
93
|
set(attrs: any): void;
|
|
@@ -87,21 +101,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
87
101
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
88
102
|
type: T;
|
|
89
103
|
}> : NodeType;
|
|
90
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
91
|
-
moveElementsUp(ids: Array<string>): void;
|
|
92
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
93
|
-
moveElementsTop(ids: Array<string>): void;
|
|
94
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
95
|
-
moveElementsDown(ids: Array<string>): void;
|
|
96
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
97
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
98
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
99
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
100
|
-
width: number;
|
|
101
|
-
height: number;
|
|
102
|
-
useMagic?: boolean;
|
|
103
|
-
softChange?: boolean;
|
|
104
|
-
}): void;
|
|
105
104
|
} & {
|
|
106
105
|
moveElementUp(id: any): void;
|
|
107
106
|
moveElementDown(id: any): void;
|
|
@@ -215,9 +214,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
215
214
|
readonly computedHeight: any;
|
|
216
215
|
} & {
|
|
217
216
|
toJSON(): any;
|
|
218
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
219
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
220
217
|
} & {
|
|
218
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
219
|
+
width: number;
|
|
220
|
+
height: number;
|
|
221
|
+
useMagic?: boolean;
|
|
222
|
+
softChange?: boolean;
|
|
223
|
+
}): void;
|
|
224
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
225
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
226
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
227
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
228
|
+
moveElementsUp(ids: Array<string>): void;
|
|
229
|
+
moveElementsDown(ids: Array<string>): void;
|
|
230
|
+
moveElementsTop(ids: Array<string>): void;
|
|
231
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
232
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
221
233
|
clone(attrs?: {}): any;
|
|
222
234
|
setZIndex(zIndex: any): void;
|
|
223
235
|
set(attrs: any): void;
|
|
@@ -231,21 +243,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
231
243
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
232
244
|
type: T;
|
|
233
245
|
}> : NodeType;
|
|
234
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
235
|
-
moveElementsUp(ids: Array<string>): void;
|
|
236
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
237
|
-
moveElementsTop(ids: Array<string>): void;
|
|
238
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
239
|
-
moveElementsDown(ids: Array<string>): void;
|
|
240
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
241
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
242
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
243
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
244
|
-
width: number;
|
|
245
|
-
height: number;
|
|
246
|
-
useMagic?: boolean;
|
|
247
|
-
softChange?: boolean;
|
|
248
|
-
}): void;
|
|
249
246
|
} & {
|
|
250
247
|
moveElementUp(id: any): void;
|
|
251
248
|
moveElementDown(id: any): void;
|
|
@@ -274,9 +271,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
274
271
|
readonly computedHeight: any;
|
|
275
272
|
} & {
|
|
276
273
|
toJSON(): any;
|
|
277
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
278
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
279
274
|
} & {
|
|
275
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
276
|
+
width: number;
|
|
277
|
+
height: number;
|
|
278
|
+
useMagic?: boolean;
|
|
279
|
+
softChange?: boolean;
|
|
280
|
+
}): void;
|
|
281
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
282
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
283
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
284
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
285
|
+
moveElementsUp(ids: Array<string>): void;
|
|
286
|
+
moveElementsDown(ids: Array<string>): void;
|
|
287
|
+
moveElementsTop(ids: Array<string>): void;
|
|
288
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
289
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
280
290
|
clone(attrs?: {}): any;
|
|
281
291
|
setZIndex(zIndex: any): void;
|
|
282
292
|
set(attrs: any): void;
|
|
@@ -290,21 +300,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
290
300
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
291
301
|
type: T;
|
|
292
302
|
}> : NodeType;
|
|
293
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
294
|
-
moveElementsUp(ids: Array<string>): void;
|
|
295
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
296
|
-
moveElementsTop(ids: Array<string>): void;
|
|
297
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
298
|
-
moveElementsDown(ids: Array<string>): void;
|
|
299
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
300
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
301
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
302
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
303
|
-
width: number;
|
|
304
|
-
height: number;
|
|
305
|
-
useMagic?: boolean;
|
|
306
|
-
softChange?: boolean;
|
|
307
|
-
}): void;
|
|
308
303
|
} & {
|
|
309
304
|
moveElementUp(id: any): void;
|
|
310
305
|
moveElementDown(id: any): void;
|
|
@@ -621,9 +616,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
621
616
|
readonly computedHeight: any;
|
|
622
617
|
} & {
|
|
623
618
|
toJSON(): any;
|
|
624
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
625
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
626
619
|
} & {
|
|
620
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
621
|
+
width: number;
|
|
622
|
+
height: number;
|
|
623
|
+
useMagic?: boolean;
|
|
624
|
+
softChange?: boolean;
|
|
625
|
+
}): void;
|
|
626
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
627
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
628
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
629
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
630
|
+
moveElementsUp(ids: Array<string>): void;
|
|
631
|
+
moveElementsDown(ids: Array<string>): void;
|
|
632
|
+
moveElementsTop(ids: Array<string>): void;
|
|
633
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
634
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
627
635
|
clone(attrs?: {}): any;
|
|
628
636
|
setZIndex(zIndex: any): void;
|
|
629
637
|
set(attrs: any): void;
|
|
@@ -637,21 +645,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
637
645
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
638
646
|
type: T;
|
|
639
647
|
}> : NodeType;
|
|
640
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
641
|
-
moveElementsUp(ids: Array<string>): void;
|
|
642
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
643
|
-
moveElementsTop(ids: Array<string>): void;
|
|
644
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
645
|
-
moveElementsDown(ids: Array<string>): void;
|
|
646
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
647
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
648
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
649
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
650
|
-
width: number;
|
|
651
|
-
height: number;
|
|
652
|
-
useMagic?: boolean;
|
|
653
|
-
softChange?: boolean;
|
|
654
|
-
}): void;
|
|
655
648
|
} & {
|
|
656
649
|
moveElementUp(id: any): void;
|
|
657
650
|
moveElementDown(id: any): void;
|
|
@@ -680,9 +673,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
680
673
|
readonly computedHeight: any;
|
|
681
674
|
} & {
|
|
682
675
|
toJSON(): any;
|
|
683
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
684
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
685
676
|
} & {
|
|
677
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
678
|
+
width: number;
|
|
679
|
+
height: number;
|
|
680
|
+
useMagic?: boolean;
|
|
681
|
+
softChange?: boolean;
|
|
682
|
+
}): void;
|
|
683
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
684
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
685
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
686
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
687
|
+
moveElementsUp(ids: Array<string>): void;
|
|
688
|
+
moveElementsDown(ids: Array<string>): void;
|
|
689
|
+
moveElementsTop(ids: Array<string>): void;
|
|
690
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
691
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
686
692
|
clone(attrs?: {}): any;
|
|
687
693
|
setZIndex(zIndex: any): void;
|
|
688
694
|
set(attrs: any): void;
|
|
@@ -696,21 +702,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
696
702
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
697
703
|
type: T;
|
|
698
704
|
}> : NodeType;
|
|
699
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
700
|
-
moveElementsUp(ids: Array<string>): void;
|
|
701
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
702
|
-
moveElementsTop(ids: Array<string>): void;
|
|
703
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
704
|
-
moveElementsDown(ids: Array<string>): void;
|
|
705
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
706
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
707
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
708
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
709
|
-
width: number;
|
|
710
|
-
height: number;
|
|
711
|
-
useMagic?: boolean;
|
|
712
|
-
softChange?: boolean;
|
|
713
|
-
}): void;
|
|
714
705
|
} & {
|
|
715
706
|
moveElementUp(id: any): void;
|
|
716
707
|
moveElementDown(id: any): void;
|
|
@@ -740,9 +731,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
740
731
|
readonly computedHeight: any;
|
|
741
732
|
} & {
|
|
742
733
|
toJSON(): any;
|
|
743
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
744
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
745
734
|
} & {
|
|
735
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
736
|
+
width: number;
|
|
737
|
+
height: number;
|
|
738
|
+
useMagic?: boolean;
|
|
739
|
+
softChange?: boolean;
|
|
740
|
+
}): void;
|
|
741
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
742
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
743
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
744
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
745
|
+
moveElementsUp(ids: Array<string>): void;
|
|
746
|
+
moveElementsDown(ids: Array<string>): void;
|
|
747
|
+
moveElementsTop(ids: Array<string>): void;
|
|
748
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
749
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
746
750
|
clone(attrs?: {}): any;
|
|
747
751
|
setZIndex(zIndex: any): void;
|
|
748
752
|
set(attrs: any): void;
|
|
@@ -756,21 +760,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
756
760
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
757
761
|
type: T;
|
|
758
762
|
}> : NodeType;
|
|
759
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
760
|
-
moveElementsUp(ids: Array<string>): void;
|
|
761
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
762
|
-
moveElementsTop(ids: Array<string>): void;
|
|
763
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
764
|
-
moveElementsDown(ids: Array<string>): void;
|
|
765
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
766
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
767
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
768
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
769
|
-
width: number;
|
|
770
|
-
height: number;
|
|
771
|
-
useMagic?: boolean;
|
|
772
|
-
softChange?: boolean;
|
|
773
|
-
}): void;
|
|
774
763
|
} & {
|
|
775
764
|
moveElementUp(id: any): void;
|
|
776
765
|
moveElementDown(id: any): void;
|
|
@@ -799,9 +788,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
799
788
|
readonly computedHeight: any;
|
|
800
789
|
} & {
|
|
801
790
|
toJSON(): any;
|
|
802
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
803
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
804
791
|
} & {
|
|
792
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
793
|
+
width: number;
|
|
794
|
+
height: number;
|
|
795
|
+
useMagic?: boolean;
|
|
796
|
+
softChange?: boolean;
|
|
797
|
+
}): void;
|
|
798
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
799
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
800
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
801
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
802
|
+
moveElementsUp(ids: Array<string>): void;
|
|
803
|
+
moveElementsDown(ids: Array<string>): void;
|
|
804
|
+
moveElementsTop(ids: Array<string>): void;
|
|
805
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
806
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
805
807
|
clone(attrs?: {}): any;
|
|
806
808
|
setZIndex(zIndex: any): void;
|
|
807
809
|
set(attrs: any): void;
|
|
@@ -815,21 +817,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
815
817
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
816
818
|
type: T;
|
|
817
819
|
}> : NodeType;
|
|
818
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
819
|
-
moveElementsUp(ids: Array<string>): void;
|
|
820
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
821
|
-
moveElementsTop(ids: Array<string>): void;
|
|
822
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
823
|
-
moveElementsDown(ids: Array<string>): void;
|
|
824
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
825
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
826
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
827
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
828
|
-
width: number;
|
|
829
|
-
height: number;
|
|
830
|
-
useMagic?: boolean;
|
|
831
|
-
softChange?: boolean;
|
|
832
|
-
}): void;
|
|
833
820
|
} & {
|
|
834
821
|
moveElementUp(id: any): void;
|
|
835
822
|
moveElementDown(id: any): void;
|
|
@@ -891,9 +878,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
891
878
|
readonly computedHeight: any;
|
|
892
879
|
} & {
|
|
893
880
|
toJSON(): any;
|
|
894
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
895
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
896
881
|
} & {
|
|
882
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
883
|
+
width: number;
|
|
884
|
+
height: number;
|
|
885
|
+
useMagic?: boolean;
|
|
886
|
+
softChange?: boolean;
|
|
887
|
+
}): void;
|
|
888
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
889
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
890
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
891
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
892
|
+
moveElementsUp(ids: Array<string>): void;
|
|
893
|
+
moveElementsDown(ids: Array<string>): void;
|
|
894
|
+
moveElementsTop(ids: Array<string>): void;
|
|
895
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
896
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
897
897
|
clone(attrs?: {}): any;
|
|
898
898
|
setZIndex(zIndex: any): void;
|
|
899
899
|
set(attrs: any): void;
|
|
@@ -907,21 +907,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
907
907
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
908
908
|
type: T;
|
|
909
909
|
}> : NodeType;
|
|
910
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
911
|
-
moveElementsUp(ids: Array<string>): void;
|
|
912
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
913
|
-
moveElementsTop(ids: Array<string>): void;
|
|
914
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
915
|
-
moveElementsDown(ids: Array<string>): void;
|
|
916
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
917
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
918
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
919
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
920
|
-
width: number;
|
|
921
|
-
height: number;
|
|
922
|
-
useMagic?: boolean;
|
|
923
|
-
softChange?: boolean;
|
|
924
|
-
}): void;
|
|
925
910
|
} & {
|
|
926
911
|
moveElementUp(id: any): void;
|
|
927
912
|
moveElementDown(id: any): void;
|
|
@@ -950,9 +935,22 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
950
935
|
readonly computedHeight: any;
|
|
951
936
|
} & {
|
|
952
937
|
toJSON(): any;
|
|
953
|
-
_forEachElementUp(ids: Array<string>, callback: Function): void;
|
|
954
|
-
_forEachElementDown(ids: Array<string>, callback: Function): false;
|
|
955
938
|
} & {
|
|
939
|
+
setSize({ width, height, useMagic, softChange, }: {
|
|
940
|
+
width: number;
|
|
941
|
+
height: number;
|
|
942
|
+
useMagic?: boolean;
|
|
943
|
+
softChange?: boolean;
|
|
944
|
+
}): void;
|
|
945
|
+
canMoveElementsUp(ids: Array<string>): boolean;
|
|
946
|
+
canMoveElementsTop(ids: Array<string>): boolean;
|
|
947
|
+
canMoveElementsDown(ids: Array<string>): boolean;
|
|
948
|
+
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
949
|
+
moveElementsUp(ids: Array<string>): void;
|
|
950
|
+
moveElementsDown(ids: Array<string>): void;
|
|
951
|
+
moveElementsTop(ids: Array<string>): void;
|
|
952
|
+
moveElementsBottom(ids: Array<string>): void;
|
|
953
|
+
setElementZIndex(id: string, zIndex: number): void;
|
|
956
954
|
clone(attrs?: {}): any;
|
|
957
955
|
setZIndex(zIndex: any): void;
|
|
958
956
|
set(attrs: any): void;
|
|
@@ -966,21 +964,6 @@ export declare const Store: import("mobx-state-tree").IModelType<{
|
|
|
966
964
|
}): T extends ElementType["type"] ? Extract<ElementType, {
|
|
967
965
|
type: T;
|
|
968
966
|
}> : NodeType;
|
|
969
|
-
canMoveElementsUp(ids: Array<string>): boolean;
|
|
970
|
-
moveElementsUp(ids: Array<string>): void;
|
|
971
|
-
canMoveElementsTop(ids: Array<string>): boolean;
|
|
972
|
-
moveElementsTop(ids: Array<string>): void;
|
|
973
|
-
canMoveElementsDown(ids: Array<string>): boolean;
|
|
974
|
-
moveElementsDown(ids: Array<string>): void;
|
|
975
|
-
canMoveElementsBottom(ids: Array<string>): boolean;
|
|
976
|
-
moveElementsBottom(ids: Array<string>): void;
|
|
977
|
-
setElementZIndex(id: any, zIndex: any): void;
|
|
978
|
-
setSize({ width, height, useMagic, softChange, }: {
|
|
979
|
-
width: number;
|
|
980
|
-
height: number;
|
|
981
|
-
useMagic?: boolean;
|
|
982
|
-
softChange?: boolean;
|
|
983
|
-
}): void;
|
|
984
967
|
} & {
|
|
985
968
|
moveElementUp(id: any): void;
|
|
986
969
|
moveElementDown(id: any): void;
|