polotno 2.35.2 → 2.36.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/audio.d.ts +1 -1
- package/canvas/context-menu/context-menu.d.ts +1 -1
- package/canvas/drawing-layer.d.ts +1 -1
- package/canvas/element.d.ts +1 -1
- package/canvas/image-element.d.ts +1 -1
- package/canvas/page-controls.d.ts +1 -1
- package/canvas/rules.d.ts +4 -2
- package/canvas/rules.js +3 -3
- package/canvas/tooltip.d.ts +1 -1
- package/canvas/use-color.d.ts +2 -2
- package/canvas/video-element.d.ts +1 -1
- package/canvas/workspace-canvas.d.ts +2 -1
- package/canvas/workspace-canvas.js +1 -1
- package/model/audio-model.d.ts +6 -6
- package/model/figure-model.d.ts +112 -88
- package/model/gif-model.d.ts +125 -101
- package/model/group-model.d.ts +843 -675
- package/model/history.d.ts +2 -2
- package/model/history.js +1 -1
- package/model/image-model.d.ts +122 -98
- package/model/line-model.d.ts +112 -88
- package/model/node-model.d.ts +72 -40
- package/model/node-model.js +1 -1
- package/model/page-model.d.ts +11 -11
- package/model/page-model.js +1 -1
- package/model/shape-model.d.ts +112 -88
- package/model/shape-model.js +1 -1
- package/model/store.d.ts +346 -309
- package/model/store.js +1 -1
- package/model/svg-model.d.ts +114 -90
- package/model/text-model.d.ts +131 -107
- package/model/video-model.d.ts +127 -103
- package/package.json +4 -1
- package/pages-timeline/audio-track.js +1 -1
- package/pages-timeline/audios.d.ts +1 -1
- package/pages-timeline/elements.d.ts +1 -1
- package/pages-timeline/waveform.d.ts +2 -2
- package/polotno.bundle.js +100 -100
- package/side-panel/animations-panel.d.ts +1 -1
- package/side-panel/effects-panel.d.ts +1 -1
- package/side-panel/select-video.d.ts +236 -199
- package/side-panel/videos-grid.d.ts +1 -1
- package/toolbar/element-container.d.ts +1 -1
- package/toolbar/figure-toolbar.d.ts +1 -1
- package/toolbar/sketch.d.ts +5 -5
- package/toolbar/text-ai-write.d.ts +1 -1
- package/toolbar/toolbar.d.ts +1 -1
- package/toolbar/use-copy-style.d.ts +2 -2
- package/toolbar/video-toolbar.d.ts +1 -1
- package/utils/clipboard.js +1 -1
- package/utils/font-metric.d.ts +4 -4
- package/utils/from-svg.js +1 -1
- package/utils/gif-lib.d.ts +5 -0
- package/utils/goober.d.ts +5 -0
- package/utils/gradient.js +1 -1
- package/utils/l10n.d.ts +5 -1
- package/utils/l10n.js +1 -1
- package/utils/luma.js +1 -1
- package/utils/pdf.d.ts +6 -1
- package/utils/pdf.js +1 -1
- package/utils/styled.js +1 -1
- package/utils/svg.d.ts +1 -1
- package/utils/svg.js +1 -1
- package/utils/to-canvas.d.ts +3 -1
- package/utils/to-canvas.js +1 -1
- package/utils/to-pptx.d.ts +1 -1
- package/utils/to-svg.d.ts +9 -7
- package/utils/use-api.d.ts +3 -3
- package/utils/validate-key.js +1 -1
package/canvas/audio.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ type ContextMenuProps = {
|
|
|
11
11
|
isOpen: boolean;
|
|
12
12
|
setIsOpen: (b: boolean) => void;
|
|
13
13
|
};
|
|
14
|
-
export declare const ContextMenu: (({ store, isOpen, offset, setIsOpen }: ContextMenuProps) => React.JSX.Element) & {
|
|
14
|
+
export declare const ContextMenu: (({ store, isOpen, offset, setIsOpen }: ContextMenuProps) => React.JSX.Element | null) & {
|
|
15
15
|
displayName: string;
|
|
16
16
|
};
|
|
17
17
|
export {};
|
|
@@ -11,7 +11,7 @@ type DrawingLayerProps = {
|
|
|
11
11
|
yPadding: number;
|
|
12
12
|
bleed: number;
|
|
13
13
|
};
|
|
14
|
-
export declare const DrawingLayer: (({ store, page, width, height, scale, xPadding, yPadding, bleed, }: DrawingLayerProps) => React.JSX.Element) & {
|
|
14
|
+
export declare const DrawingLayer: (({ store, page, width, height, scale, xPadding, yPadding, bleed, }: DrawingLayerProps) => React.JSX.Element | null) & {
|
|
15
15
|
displayName: string;
|
|
16
16
|
};
|
|
17
17
|
export {};
|
package/canvas/element.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type ShapeProps = {
|
|
|
7
7
|
onClick: Function;
|
|
8
8
|
};
|
|
9
9
|
export declare function registerShapeComponent(type: string, component: JSX.Element): void;
|
|
10
|
-
declare const Element: ((props: ShapeProps) => React.JSX.Element) & {
|
|
10
|
+
declare const Element: ((props: ShapeProps) => React.JSX.Element | null) & {
|
|
11
11
|
displayName: string;
|
|
12
12
|
};
|
|
13
13
|
export default Element;
|
|
@@ -10,7 +10,7 @@ export declare const useCornerRadiusAndCrop: (element: ImageElementType, image:
|
|
|
10
10
|
y: number;
|
|
11
11
|
width: number;
|
|
12
12
|
height: number;
|
|
13
|
-
}, pixelRatio: number, cornerRadius?: number, skipDownscale?: boolean, isVector?: boolean) => HTMLCanvasElement | HTMLImageElement;
|
|
13
|
+
}, pixelRatio: number, cornerRadius?: number, skipDownscale?: boolean, isVector?: boolean) => HTMLCanvasElement | HTMLImageElement | undefined;
|
|
14
14
|
type ImageProps = {
|
|
15
15
|
store: StoreType;
|
|
16
16
|
element: ImageElementType;
|
package/canvas/rules.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StoreType } from '../model/store.js';
|
|
3
|
-
type
|
|
3
|
+
type TopRulesProps = {
|
|
4
4
|
store: StoreType;
|
|
5
5
|
xPadding: number;
|
|
6
6
|
yPadding: number;
|
|
7
7
|
width: number;
|
|
8
8
|
height: number;
|
|
9
|
+
pageSizes?: number[];
|
|
9
10
|
layout?: 'vertical' | 'horizontal';
|
|
11
|
+
renderOnlyActivePage?: boolean;
|
|
10
12
|
};
|
|
11
|
-
export declare const TopRules: (({ store, width, height, layout }:
|
|
13
|
+
export declare const TopRules: (({ store, width, height, pageSizes, layout, renderOnlyActivePage }: TopRulesProps) => React.JSX.Element | null) & {
|
|
12
14
|
displayName: string;
|
|
13
15
|
};
|
|
14
16
|
export {};
|
package/canvas/rules.js
CHANGED
|
@@ -14,7 +14,7 @@ import e from"react";import{getTotalClientRect as t}from"../utils/math.js";impor
|
|
|
14
14
|
border-bottom: 1px solid grey;
|
|
15
15
|
background-color: #e8e8e8;
|
|
16
16
|
overflow: hidden;
|
|
17
|
-
`,
|
|
17
|
+
`,n=l("div",e.forwardRef)`
|
|
18
18
|
left: 0;
|
|
19
19
|
width: 14px;
|
|
20
20
|
position: sticky;
|
|
@@ -24,7 +24,7 @@ import e from"react";import{getTotalClientRect as t}from"../utils/math.js";impor
|
|
|
24
24
|
border-right: 1px solid grey;
|
|
25
25
|
background-color: #e8e8e8;
|
|
26
26
|
overflow: hidden;
|
|
27
|
-
`,
|
|
27
|
+
`,s=l("div",e.forwardRef)`
|
|
28
28
|
position: absolute;
|
|
29
29
|
border-left: 1px solid grey;
|
|
30
30
|
padding-left: 2px;
|
|
@@ -36,4 +36,4 @@ import e from"react";import{getTotalClientRect as t}from"../utils/math.js";impor
|
|
|
36
36
|
transform: rotate(90deg);
|
|
37
37
|
transform-origin: left top;
|
|
38
38
|
overflow: hidden;
|
|
39
|
-
`,d=[.1,.2,.5,1,2,5,10,20,25,50,100,200,500,1e3,2e3,5e3,1e4];export const TopRules=i(({store:i,width:l,height:c,layout:
|
|
39
|
+
`,d=[.1,.2,.5,1,2,5,10,20,25,50,100,200,500,1e3,2e3,5e3,1e4];export const TopRules=i(({store:i,width:l,height:c,pageSizes:h,layout:u="vertical",renderOnlyActivePage:x})=>{const g=e.useRef(null);if(!i.activePage){return null}const m="horizontal"===u,f=i.activePage,y=(i.bleedVisible&&f.bleed,f.computedWidth*i.scale),b=f.computedHeight*i.scale,v=(l-y)/2,w=(c-b)/2,k=(E=e=>o({unitVal:e,dpi:i.dpi,unit:i.unit})*i.scale,d.find(e=>E(e)>30)||1e4);var E;const R=o({unitVal:k,dpi:i.dpi,unit:i.unit})*i.scale,S=Math.round(y/R)+1,z=Math.round(b/R)+1,F=t(i.selectedShapes);return e.createElement(r,{ref:g,className:"polotno-rulers",style:{display:"flex",flexDirection:"column"}},m?e.createElement(e.Fragment,null,e.createElement("div",{style:{display:"flex",flexDirection:"row",position:"sticky",top:0,zIndex:1}},e.createElement("div",{style:{width:"14px",height:"14px",flexShrink:0,backgroundColor:"#e8e8e8",borderRight:"1px solid grey",borderBottom:"1px solid grey",position:"sticky",left:0,zIndex:2}}),(x?[i.activePage]:i.pages).map((t,o)=>{var r;if(!t){return null}const n=h?h[o]:l,p=(n-t.computedWidth*i.scale)/2;return e.createElement(a,{key:t.id,style:{width:n+"px",flexShrink:0,position:"relative"},className:"polotno-x-ruler"},[...Array(S)].map((t,o)=>e.createElement(s,{key:o,style:{left:p+o*R+"px",width:R+"px"}},"px"===i.unit||k>=1?Math.round(k*o):(k*o).toFixed(1))),(null===(r=i.selectedShapes[0])||void 0===r?void 0:r.page)===t&&e.createElement("div",{style:{position:"absolute",left:p+F.x*i.scale+"px",height:"14px",width:F.width*i.scale,backgroundColor:"rgba(0,0,0,0.15)"}}))})),e.createElement(n,{style:{height:c+"px",position:"sticky",left:0,marginTop:"-14px"},className:"polotno-y-ruler"},[...Array(z)].map((t,o)=>e.createElement(p,{key:o,style:{top:w+o*R+"px",width:R+"px"}},"px"===i.unit||k>=1?Math.round(k*o):(k*o).toFixed(1))),!!i.selectedShapes.length&&e.createElement("div",{style:{position:"absolute",top:w+F.y*i.scale+"px",width:"14px",height:F.height*i.scale,backgroundColor:"rgba(0,0,0,0.15)"}}))):e.createElement(e.Fragment,null,e.createElement(a,{style:{width:l+"px"},className:"polotno-x-ruler"},[...Array(S)].map((t,o)=>e.createElement(s,{key:o,style:{left:v+o*R+"px",width:R+"px"}},"px"===i.unit||k>=1?Math.round(k*o):(k*o).toFixed(1))),!!i.selectedShapes.length&&e.createElement("div",{style:{position:"absolute",left:v+F.x*i.scale+"px",height:"14px",width:F.width*i.scale,backgroundColor:"rgba(0,0,0,0.15)"}})),(x?[i.activePage]:i.pages).map((t,o)=>{var l;if(!t){return null}const r=h?h[o]:c,a=(r-t.computedHeight*i.scale)/2,s=0===o?14:0;return e.createElement(n,{key:t.id,style:{height:r-s+"px"},className:"polotno-y-ruler"},[...Array(z)].map((t,o)=>e.createElement(p,{key:o,style:{top:a+o*R-s+"px",width:R+"px"}},"px"===i.unit||k>=1?Math.round(k*o):(k*o).toFixed(1))),(null===(l=i.selectedShapes[0])||void 0===l?void 0:l.page)===t&&e.createElement("div",{style:{position:"absolute",top:a+F.y*i.scale-s+"px",width:"14px",height:F.height*i.scale,backgroundColor:"rgba(0,0,0,0.15)"}}))})))});
|
package/canvas/tooltip.d.ts
CHANGED
package/canvas/use-color.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export declare const useColor: (element: ShapeType, value?: any, propName?: stri
|
|
|
16
16
|
} | {
|
|
17
17
|
fillLinearGradientStartPointX: number;
|
|
18
18
|
fillLinearGradientStartPointY: number;
|
|
19
|
-
fillLinearGradientColorStops:
|
|
19
|
+
fillLinearGradientColorStops: never[];
|
|
20
20
|
fillLinearGradientEndPointX: number;
|
|
21
21
|
fillLinearGradientEndPointY: number;
|
|
22
22
|
fill: any;
|
|
@@ -29,7 +29,7 @@ export declare const useColor: (element: ShapeType, value?: any, propName?: stri
|
|
|
29
29
|
} | {
|
|
30
30
|
strokeLinearGradientStartPointX: number;
|
|
31
31
|
strokeLinearGradientStartPointY: number;
|
|
32
|
-
strokeLinearGradientColorStops:
|
|
32
|
+
strokeLinearGradientColorStops: never[];
|
|
33
33
|
strokeLinearGradientEndPointX: number;
|
|
34
34
|
strokeLinearGradientEndPointY: number;
|
|
35
35
|
fillLinearGradientStartPointX?: undefined;
|
|
@@ -6,7 +6,7 @@ export declare const useCornerRadiusAndCrop: (element: VideoElementType, image:
|
|
|
6
6
|
y: number;
|
|
7
7
|
width: number;
|
|
8
8
|
height: number;
|
|
9
|
-
}, pixelRatio: number, cornerRadius?: number, skipDownscale?: boolean) => readonly [HTMLCanvasElement | HTMLVideoElement, () => void];
|
|
9
|
+
}, pixelRatio: number, cornerRadius?: number, skipDownscale?: boolean) => readonly [HTMLCanvasElement | HTMLVideoElement | undefined, () => void];
|
|
10
10
|
type Props = {
|
|
11
11
|
store: StoreType;
|
|
12
12
|
element: VideoElementType;
|
|
@@ -23,6 +23,7 @@ export type WorkspaceProps = {
|
|
|
23
23
|
onKeyDown?: (e: KeyboardEvent, store: StoreType) => void;
|
|
24
24
|
paddingX?: number;
|
|
25
25
|
paddingY?: number;
|
|
26
|
+
pageGap?: number;
|
|
26
27
|
altCloneEnabled?: boolean;
|
|
27
28
|
visiblePagesOffset?: number;
|
|
28
29
|
renderOnlyActivePage?: boolean;
|
|
@@ -33,7 +34,7 @@ export type WorkspaceProps = {
|
|
|
33
34
|
right?: number;
|
|
34
35
|
};
|
|
35
36
|
};
|
|
36
|
-
export declare const WorkspaceCanvas: (({ store, layout, pageControlsEnabled, backgroundColor, pageBorderColor, activePageBorderColor, bleedColor, snapGuideStroke, snapGuideStrokeWidth, snapGuideDash, selectionRectFill, selectionRectStroke, selectionRectStrokeWidth, transformLabelFill, transformLabelTextFill, distanceGuideStroke, distanceLabelFill, distanceLabelTextFill, components, onKeyDown, paddingX, paddingY, altCloneEnabled, visiblePagesOffset, renderOnlyActivePage, tooltipSafeArea, }: WorkspaceProps) => React.JSX.Element) & {
|
|
37
|
+
export declare const WorkspaceCanvas: (({ store, layout, pageControlsEnabled, backgroundColor, pageBorderColor, activePageBorderColor, bleedColor, snapGuideStroke, snapGuideStrokeWidth, snapGuideDash, selectionRectFill, selectionRectStroke, selectionRectStrokeWidth, transformLabelFill, transformLabelTextFill, distanceGuideStroke, distanceLabelFill, distanceLabelTextFill, components, onKeyDown, paddingX, paddingY, pageGap, altCloneEnabled, visiblePagesOffset, renderOnlyActivePage, tooltipSafeArea, }: WorkspaceProps) => React.JSX.Element) & {
|
|
37
38
|
displayName: string;
|
|
38
39
|
};
|
|
39
40
|
export default WorkspaceCanvas;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";import{observer as t}from"mobx-react-lite";import r from"./page.js";import{TopRules as n}from"./rules.js";import{AudioElement as o}from"./audio.js";import{handleHotkey as
|
|
1
|
+
import e from"react";import{observer as t}from"mobx-react-lite";import r from"./page.js";import{TopRules as n}from"./rules.js";import{AudioElement as o}from"./audio.js";import{handleHotkey as i}from"./hotkeys.js";import{t as l}from"../utils/l10n.js";const a=(e,t,r)=>Math.max(t,Math.min(r,e)),s=(e,t)=>Math.sqrt(Math.pow(t.clientX-e.clientX,2)+Math.pow(t.clientY-e.clientY,2)),c=({store:t})=>e.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",textAlign:"center"}},e.createElement("p",null,l("workspace.noPages")),e.createElement("button",{onClick:()=>{t.addPage()}},l("workspace.addPage"))),u=({width:t,height:r,xPadding:n,yPadding:o,backgroundColor:i})=>e.createElement("div",{style:{width:t+"px",height:r+"px",backgroundColor:i,paddingLeft:n+"px",paddingRight:n+"px",paddingTop:o+"px",paddingBottom:o+"px",flexShrink:0}},e.createElement("div",{style:{width:" 100%",height:"100%",backgroundColor:"white"}})),d=[4,6];export const WorkspaceCanvas=t(({store:t,layout:l="vertical",pageControlsEnabled:h,backgroundColor:g,pageBorderColor:p,activePageBorderColor:f,bleedColor:m,snapGuideStroke:v,snapGuideStrokeWidth:b,snapGuideDash:w,selectionRectFill:x,selectionRectStroke:k,selectionRectStrokeWidth:E,transformLabelFill:y,transformLabelTextFill:L,distanceGuideStroke:T,distanceLabelFill:M,distanceLabelTextFill:P,components:R,onKeyDown:S,paddingX:C,paddingY:F,pageGap:O,altCloneEnabled:W=!0,visiblePagesOffset:z,renderOnlyActivePage:j,tooltipSafeArea:G})=>{var _;const B="horizontal"===l,Y=null!=C?C:20,D=null!=F?F:55,[X,A]=e.useState({width:100,height:100}),N=e.useRef(X),H=e.useRef(null),I=e.useRef(null),K=e.useRef(0),q=t.bleedVisible?Math.max(0,...t.pages.map(e=>e.bleed)):0,V=Math.max(...t.pages.map(e=>e.computedWidth)),J=Math.max(...t.pages.map(e=>e.computedHeight)),Q=(null===(_=t.activePage)||void 0===_?void 0:_.computedHeight)||0,U=V+2*q,Z=(j?Q:J)+2*q,$=async({skipTimeout:e}={skipTimeout:!1})=>{if(e||await new Promise(e=>setTimeout(e,50)),null===H.current){return}const r=H.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(H.current));const n=I.current.clientWidth||r.width,o={width:n,height:r.height};(N.current.width!==o.width||N.current.height!==o.height)&&(A(o),N.current=o);const i=(n-2*Y)/U,l=t.pages.length>1?3.1:2,a=(r.height-D*l)/Z,s=t.pages.length>1?3.1:2,c=(n-Y*s)/U,u=(r.height-2*D)/Z,d=t.pages.length?Math.max(Math.min(B?c:i,B?u:a),.01):1;t.scaleToFit!==d&&(t.setScale(d),t._setScaleToFit(d))};e.useLayoutEffect(()=>{$({skipTimeout:!0})},[]),e.useEffect(()=>{$()},[U,Z,F,C]),e.useLayoutEffect(()=>{$({skipTimeout:!0})},[t.openedSidePanel]),e.useEffect(()=>{t.__()},[]),e.useEffect(()=>{const e=H.current;if(window.ResizeObserver){const t=new ResizeObserver(()=>{$({skipTimeout:!0})});return t.observe(e),()=>t.unobserve(e)}{const e=setInterval(()=>{$({skipTimeout:!0})},100);return()=>clearInterval(e)}},[U,Z]);const ee=j?1:t.pages.length;let te,re;if(B){const e=U*t.scale*ee;te=Math.max(Y,(X.width-e)/ee/2),re=Math.max(D,(X.height-Z*t.scale)/2)}else{te=Math.max(Y,(X.width-U*t.scale)/2);const e=Z*t.scale*ee;re=Math.max(D,(X.height-e)/ee/2)}e.useEffect(()=>{const e=e=>{(S||i)(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 n=Math.min(.1,t.scaleToFit);B&&U>0&&Number.isFinite(U)&&(n=Math.max(n,300/U)),n=Math.max(n,.01);const o=.03,i=a(e.deltaY<0?t.scale*(1+o):t.scale/(1+o),n,r);return void t.setScale(i)}},r=I.current;return null==r||r.addEventListener("wheel",e),()=>null==r?void 0:r.removeEventListener("wheel",e)},[B,U,t]),e.useEffect(()=>{const e=I.current;if(!e){return}const r=e=>{2===e.touches.length&&(K.current=s(e.touches[0],e.touches[1]))},n=r=>{if(2===r.touches.length&&K.current>0){r.preventDefault();const n=s(r.touches[0],r.touches[1]),o=n/K.current,i=Math.max(5,t.scaleToFit);let l=Math.min(.1,t.scaleToFit);B&&U>0&&Number.isFinite(U)&&(l=Math.max(l,300/U)),l=Math.max(l,.01);const c=t.scale,u=a(c*o,l,i),d=u/c,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;ae.current=!0,t.setScale(u),e.scrollLeft=f*d-g,e.scrollTop=m*d-p,K.current=n}},o=()=>{K.current=0};return e.addEventListener("touchstart",r,{passive:!0}),e.addEventListener("touchmove",n,{passive:!1}),e.addEventListener("touchend",o,{passive:!0}),()=>{e.removeEventListener("touchstart",r),e.removeEventListener("touchmove",n),e.removeEventListener("touchend",o)}},[B,U,t]);const ne=void 0!==O,oe=e.useMemo(()=>t.pages.map(e=>{if(B){const r=(e.computedWidth+2*q)*t.scale;return ne?r+O:r+2*te}{const r=(e.computedHeight+2*q)*t.scale;return ne?r+O:r+2*re}}),[t.pages,t.scale,q,te,re,O,B,ne]),ie=e.useMemo(()=>{const e=[];let t=ne?B?te:re:0;for(let r=0;r<oe.length;r++){e.push(t),t+=oe[r]}return e},[oe,ne,B,te,re]),le=e.useMemo(()=>{const e=oe.reduce((e,t)=>e+t,0);return ne?e+(B?2*te:2*re):e},[oe,ne,B,te,re]),ae=e.useRef(!1),[,se]=e.useReducer(e=>e+1,0);((t,r,n,o,i,l)=>{const a=e.useRef(r),s=e.useRef(0),c=e.useRef(!1),u=e.useRef(o.pages.length);c.current=u.current!==o.pages.length,u.current=o.pages.length,e.useEffect(()=>{const e=t.current,r=t=>{s.current=l?e.scrollLeft:e.scrollTop};return e.addEventListener("scroll",r),()=>{e.removeEventListener("scroll",r)}},[l]),e.useLayoutEffect(()=>{if(!t.current){return}if(c.current){return}const e=t.current,n=l?e.offsetWidth:e.offsetHeight,o=(s.current+n/2)/a.current;i.current=!0;const u=o*r-n/2;l?e.scrollLeft=u:e.scrollTop=u,a.current=r},[n,r,l])})(I,le,t.scale,t,ae,B);const{handleScroll:ce}=((t,r,n,o,i,l,a,s,c)=>{const u=e.useRef(!1),d=e.useRef(null),h=e.useRef(!1),g="horizontal"===s;e.useEffect(()=>{const e=t.current,r=()=>{l.current};return e.addEventListener("scroll",r),()=>{e.removeEventListener("scroll",r)}},[]);const p=o.pages.indexOf(o.activePage);return e.useLayoutEffect(()=>{if(a){return}if(!o.activePage){return}if(!t.current){return}if(u.current){return}const e=t.current,i=o.pages.indexOf(o.activePage),l=r[i]||0,s=g?e.scrollLeft:e.scrollTop,d=n[i]||n[0]||0;let p=()=>{};return(Math.abs(l-s)>.5*d||h.current)&&(h.current=!0,p=(({element:e,scrollTop:t,scrollLeft:r,duration:n=300,onFinish:o=()=>{}})=>{const i=void 0!==t,l=i?e.scrollTop:e.scrollLeft,a=i?t:r,s=a-l;let c=0,u=!1;if(0===n){return i?e.scrollTop=a:e.scrollLeft=a,()=>{}}const d=()=>{if(u){return}c+=20;const t=h(c,l,s,n);i?e.scrollTop=t:e.scrollLeft=t,c<n?setTimeout(d,20):o()},h=(e,t,r,n)=>(e/=n/2)<1?r/2*e*e+t:-r/2*(--e*(e-2)-1)+t;return d(),()=>{u=!0}})(Object.assign(Object.assign({element:e},g?{scrollLeft:l}:{scrollTop:l}),{onFinish:()=>{h.current=!1,null==c||c()},duration:o.isPlaying?0:300}))),p},[o.activePage,p,o.isPlaying,a,s,r,n]),{handleScroll:e=>{if(a){return}if(h.current){return}u.current=!0,clearTimeout(d.current),d.current=setTimeout(()=>{u.current=!1},300);const t=(g?e.currentTarget.scrollLeft:e.currentTarget.scrollTop)+(g?i.width:i.height)/3;let n=0;for(let o=r.length-1;o>=0;o--){if(t>=r[o]){n=o;break}}const l=o.pages[n];l&&o.activePage!==l&&l.select()}}})(I,ie,oe,t,X,ae,j,l,se),ue=X.width>=U*t.scale+2*te,de=X.height>=Z*t.scale+2*re,he=g||"rgba(232, 232, 232, 0.9)",ge=(null==R?void 0:R.NoPages)||c,pe=B?X.width:X.height,fe=I.current?B?I.current.scrollLeft:I.current.scrollTop:0,me=e=>{for(let t=ie.length-1;t>=0;t--){if(e>=ie[t]){return t}}return 0},ve=Math.max(0,me(fe)),be=Math.min(t.pages.length-1,me(fe+pe)),we=null!=z?z:1,xe=Math.max(0,ve-we),ke=Math.min(t.pages.length-1,be+we);return e.createElement("div",{ref:H,style:{width:"100%",height:"100%",position:"relative",outline:"none",flex:1,backgroundColor:he,overflow:"hidden"},tabIndex:0,className:"polotno-workspace-container"},e.createElement("div",{ref:I,onScroll:ce,style:Object.assign({position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",flexDirection:B?"row":"column",overflow:"auto",overflowX:B?"auto":ue?"hidden":"auto",overflowY:B&&de?"hidden":"auto"},ne&&{paddingTop:B?0:re,paddingBottom:B?0:re,paddingLeft:B?te:0,paddingRight:B?te:0,boxSizing:"border-box"}),className:"polotno-workspace-inner"},t.pages.map((n,o)=>{const i=n===t.activePage;if(j&&!i&&!n._exportingOrRendering&&!n._forceMount){return null}const a=i||o>=xe&&o<=ke||n._exportingOrRendering||n._forceMount,s=B?oe[o]:U*t.scale+2*te,c=B?Z*t.scale+2*re:oe[o];if(!a){return e.createElement("div",{key:n.id,style:{flexShrink:0}},e.createElement(u,{width:s,height:c,backgroundColor:he,xPadding:te,yPadding:re}))}const g=e.createElement(r,{key:n.id,page:n,xPadding:te,yPadding:re,width:s,height:c,store:t,pageControlsEnabled:h,backColor:he,pageBorderColor:p||"lightgrey",activePageBorderColor:f||"rgb(0, 161, 255)",altCloneEnabled:W,bleedColor:m||"rgba(255, 0, 0, 0.1)",selectionRectFill:x,selectionRectStroke:k,selectionRectStrokeWidth:E,snapGuideStroke:v||"rgb(0, 161, 255)",snapGuideStrokeWidth:b||1,snapGuideDash:w||d,transformLabelFill:y,transformLabelTextFill:L,distanceGuideStroke:T||"rgb(0, 161, 255)",distanceLabelFill:M||"rgb(0, 161, 255)",distanceLabelTextFill:P||"white",components:R,viewportSize:X,layout:l,tooltipSafeArea:G});return(n._exportingOrRendering||n._forceMount)&&!i&&j?e.createElement("div",{style:{display:"none",flexShrink:0},key:n.id},g):g}),t.rulesVisible&&e.createElement(n,{store:t,xPadding:te,yPadding:re,width:U*t.scale+2*te,height:Z*t.scale+2*re,pageSizes:oe,layout:l,renderOnlyActivePage:j}),0===t.pages.length&&e.createElement(ge,{store:t}),t.audios.map(r=>e.createElement(o,{key:r.id,audio:r,store:t}))))});export default WorkspaceCanvas;
|
package/model/audio-model.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Instance } from 'mobx-state-tree';
|
|
2
2
|
export declare const Audio: import("mobx-state-tree").IModelType<{
|
|
3
3
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
4
|
-
src: import("mobx-state-tree").IType<string, string, string>;
|
|
5
|
-
duration: import("mobx-state-tree").IType<number, number, number>;
|
|
6
|
-
startTime: import("mobx-state-tree").IType<number, number, number>;
|
|
7
|
-
endTime: import("mobx-state-tree").IType<number, number, number>;
|
|
8
|
-
volume: import("mobx-state-tree").IType<number, number, number>;
|
|
9
|
-
delay: import("mobx-state-tree").IType<number, number, number>;
|
|
4
|
+
src: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
5
|
+
duration: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
6
|
+
startTime: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
7
|
+
endTime: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
8
|
+
volume: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
9
|
+
delay: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
10
10
|
custom: import("mobx-state-tree").IType<any, any, any>;
|
|
11
11
|
}, {
|
|
12
12
|
toJSON(): {
|
package/model/figure-model.d.ts
CHANGED
|
@@ -1,88 +1,113 @@
|
|
|
1
1
|
import { Instance } from 'mobx-state-tree';
|
|
2
2
|
export declare const FigureElement: import("mobx-state-tree").IModelType<{
|
|
3
3
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
4
|
-
type: import("mobx-state-tree").IType<string, string, string>;
|
|
5
|
-
name: import("mobx-state-tree").IType<string, string, string>;
|
|
6
|
-
opacity: import("mobx-state-tree").IType<number, number, number>;
|
|
4
|
+
type: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
5
|
+
name: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
6
|
+
opacity: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
7
7
|
custom: import("mobx-state-tree").IType<any, any, any>;
|
|
8
|
-
visible: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
9
|
-
selectable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
10
|
-
removable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
11
|
-
alwaysOnTop: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
12
|
-
showInExport: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
8
|
+
visible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
9
|
+
selectable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
10
|
+
removable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
11
|
+
alwaysOnTop: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
12
|
+
showInExport: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
13
13
|
} & {
|
|
14
|
-
x: import("mobx-state-tree").IType<number, number, number>;
|
|
15
|
-
y: import("mobx-state-tree").IType<number, number, number>;
|
|
16
|
-
width: import("mobx-state-tree").IType<number, number, number>;
|
|
17
|
-
height: import("mobx-state-tree").IType<number, number, number>;
|
|
18
|
-
rotation: import("mobx-state-tree").IType<number, number, number>;
|
|
19
|
-
opacity: import("mobx-state-tree").IType<number, number, number>;
|
|
14
|
+
x: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
15
|
+
y: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
16
|
+
width: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
17
|
+
height: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
18
|
+
rotation: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
19
|
+
opacity: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
20
20
|
animations: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
|
|
21
|
-
delay: import("mobx-state-tree").IType<number, number, number>;
|
|
22
|
-
duration: import("mobx-state-tree").IType<number, number, number>;
|
|
23
|
-
enabled: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
21
|
+
delay: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
22
|
+
duration: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
23
|
+
enabled: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
24
24
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
25
|
-
name: import("mobx-state-tree").IType<string, string, string>;
|
|
26
|
-
data: import("mobx-state-tree").IType<{}, {}, {}>;
|
|
25
|
+
name: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
26
|
+
data: import("mobx-state-tree").IType<{} | null | undefined, {}, {}>;
|
|
27
27
|
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
28
|
-
blurEnabled: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
29
|
-
blurRadius: import("mobx-state-tree").IType<number, number, number>;
|
|
30
|
-
brightnessEnabled: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
31
|
-
brightness: import("mobx-state-tree").IType<number, number, number>;
|
|
32
|
-
sepiaEnabled: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
33
|
-
grayscaleEnabled: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
28
|
+
blurEnabled: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
29
|
+
blurRadius: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
30
|
+
brightnessEnabled: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
31
|
+
brightness: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
32
|
+
sepiaEnabled: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
33
|
+
grayscaleEnabled: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
34
34
|
filters: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
|
|
35
|
-
intensity: import("mobx-state-tree").IType<number, number, number>;
|
|
35
|
+
intensity: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
36
36
|
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
37
|
-
shadowEnabled: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
38
|
-
shadowBlur: import("mobx-state-tree").IType<number, number, number>;
|
|
39
|
-
shadowOffsetX: import("mobx-state-tree").IType<number, number, number>;
|
|
40
|
-
shadowOffsetY: import("mobx-state-tree").IType<number, number, number>;
|
|
41
|
-
shadowColor: import("mobx-state-tree").IType<string, string, string>;
|
|
42
|
-
shadowOpacity: import("mobx-state-tree").IType<number, number, number>;
|
|
43
|
-
visible: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
44
|
-
draggable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
45
|
-
resizable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
46
|
-
selectable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
47
|
-
contentEditable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
48
|
-
styleEditable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
49
|
-
alwaysOnTop: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
50
|
-
showInExport: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
37
|
+
shadowEnabled: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
38
|
+
shadowBlur: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
39
|
+
shadowOffsetX: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
40
|
+
shadowOffsetY: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
41
|
+
shadowColor: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
42
|
+
shadowOpacity: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
43
|
+
visible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
44
|
+
draggable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
45
|
+
resizable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
46
|
+
selectable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
47
|
+
contentEditable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
48
|
+
styleEditable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
49
|
+
alwaysOnTop: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
50
|
+
showInExport: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
51
51
|
} & {
|
|
52
|
-
type: import("mobx-state-tree").IType<string, string, string>;
|
|
53
|
-
subType: import("mobx-state-tree").IType<string, string, string>;
|
|
54
|
-
fill: import("mobx-state-tree").IType<string, string, string>;
|
|
52
|
+
type: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
53
|
+
subType: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
54
|
+
fill: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
55
55
|
dash: import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<number>>;
|
|
56
|
-
strokeWidth: import("mobx-state-tree").IType<number, number, number>;
|
|
57
|
-
stroke: import("mobx-state-tree").IType<string, string, string>;
|
|
58
|
-
cornerRadius: import("mobx-state-tree").IType<number, number, number>;
|
|
56
|
+
strokeWidth: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
57
|
+
stroke: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
58
|
+
cornerRadius: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
59
59
|
}, {
|
|
60
|
-
readonly locked: boolean;
|
|
61
60
|
readonly page: any;
|
|
62
61
|
readonly store: any;
|
|
63
62
|
readonly top: import("mobx-state-tree").ModelInstanceTypeProps<{
|
|
64
63
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
65
|
-
type: import("mobx-state-tree").IType<string, string, string>;
|
|
66
|
-
name: import("mobx-state-tree").IType<string, string, string>;
|
|
67
|
-
opacity: import("mobx-state-tree").IType<number, number, number>;
|
|
64
|
+
type: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
65
|
+
name: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
66
|
+
opacity: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
68
67
|
custom: import("mobx-state-tree").IType<any, any, any>;
|
|
69
|
-
visible: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
70
|
-
selectable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
71
|
-
removable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
72
|
-
alwaysOnTop: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
73
|
-
showInExport: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
68
|
+
visible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
69
|
+
selectable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
70
|
+
removable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
71
|
+
alwaysOnTop: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
72
|
+
showInExport: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
74
73
|
}> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
75
74
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
76
|
-
type: import("mobx-state-tree").IType<string, string, string>;
|
|
77
|
-
name: import("mobx-state-tree").IType<string, string, string>;
|
|
78
|
-
opacity: import("mobx-state-tree").IType<number, number, number>;
|
|
75
|
+
type: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
76
|
+
name: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
77
|
+
opacity: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
79
78
|
custom: import("mobx-state-tree").IType<any, any, any>;
|
|
80
|
-
visible: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
81
|
-
selectable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
82
|
-
removable: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
83
|
-
alwaysOnTop: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
84
|
-
showInExport: import("mobx-state-tree").IType<boolean, boolean, boolean>;
|
|
79
|
+
visible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
80
|
+
selectable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
81
|
+
removable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
82
|
+
alwaysOnTop: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
83
|
+
showInExport: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
85
84
|
}, {}, import("mobx-state-tree").ModelCreationType<{
|
|
85
|
+
id: string;
|
|
86
|
+
type: string | undefined;
|
|
87
|
+
name: string | undefined;
|
|
88
|
+
opacity: number | undefined;
|
|
89
|
+
custom: any;
|
|
90
|
+
visible: boolean | undefined;
|
|
91
|
+
selectable: boolean | undefined;
|
|
92
|
+
removable: boolean | undefined;
|
|
93
|
+
alwaysOnTop: boolean | undefined;
|
|
94
|
+
showInExport: boolean | undefined;
|
|
95
|
+
}>, import("mobx-state-tree").ModelSnapshotType<{
|
|
96
|
+
id: import("mobx-state-tree").ISimpleType<string>;
|
|
97
|
+
type: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
98
|
+
name: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
99
|
+
opacity: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
100
|
+
custom: import("mobx-state-tree").IType<any, any, any>;
|
|
101
|
+
visible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
102
|
+
selectable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
103
|
+
removable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
104
|
+
alwaysOnTop: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
105
|
+
showInExport: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
106
|
+
}>>>;
|
|
107
|
+
readonly parent: any;
|
|
108
|
+
readonly zIndex: any;
|
|
109
|
+
} & {
|
|
110
|
+
toJSON(): {
|
|
86
111
|
id: string;
|
|
87
112
|
type: string;
|
|
88
113
|
name: string;
|
|
@@ -93,14 +118,10 @@ export declare const FigureElement: import("mobx-state-tree").IModelType<{
|
|
|
93
118
|
removable: boolean;
|
|
94
119
|
alwaysOnTop: boolean;
|
|
95
120
|
showInExport: boolean;
|
|
96
|
-
}
|
|
97
|
-
readonly parent: any;
|
|
98
|
-
readonly zIndex: any;
|
|
99
|
-
} & {
|
|
100
|
-
toJSON(): {};
|
|
121
|
+
};
|
|
101
122
|
} & {
|
|
102
123
|
clone(attrs?: any, { skipSelect }?: {
|
|
103
|
-
skipSelect?: boolean;
|
|
124
|
+
skipSelect?: boolean | undefined;
|
|
104
125
|
}): import("./node-model.js").NodeType;
|
|
105
126
|
set(attrs: any): void;
|
|
106
127
|
moveUp(): void;
|
|
@@ -110,30 +131,33 @@ export declare const FigureElement: import("mobx-state-tree").IModelType<{
|
|
|
110
131
|
setZIndex(zIndex: number): void;
|
|
111
132
|
beforeDestroy(): void;
|
|
112
133
|
} & {
|
|
113
|
-
readonly
|
|
114
|
-
|
|
115
|
-
y: number;
|
|
116
|
-
width: number;
|
|
117
|
-
height: number;
|
|
118
|
-
rotation: number;
|
|
119
|
-
opacity: number;
|
|
120
|
-
color: any;
|
|
121
|
-
fontSize: any;
|
|
122
|
-
};
|
|
134
|
+
readonly locked: boolean;
|
|
135
|
+
readonly a: Record<string, any>;
|
|
123
136
|
animated(attr: any): any;
|
|
124
137
|
} & {
|
|
125
138
|
setAnimation(type: any, attrs: any): void;
|
|
126
139
|
setFilter(type: any, value: any): void;
|
|
127
140
|
}, import("mobx-state-tree").ModelCreationType<{
|
|
128
141
|
id: string;
|
|
129
|
-
type: string;
|
|
130
|
-
name: string;
|
|
131
|
-
opacity: number;
|
|
142
|
+
type: string | undefined;
|
|
143
|
+
name: string | undefined;
|
|
144
|
+
opacity: number | undefined;
|
|
132
145
|
custom: any;
|
|
133
|
-
visible: boolean;
|
|
134
|
-
selectable: boolean;
|
|
135
|
-
removable: boolean;
|
|
136
|
-
alwaysOnTop: boolean;
|
|
137
|
-
showInExport: boolean;
|
|
138
|
-
}>, {
|
|
146
|
+
visible: boolean | undefined;
|
|
147
|
+
selectable: boolean | undefined;
|
|
148
|
+
removable: boolean | undefined;
|
|
149
|
+
alwaysOnTop: boolean | undefined;
|
|
150
|
+
showInExport: boolean | undefined;
|
|
151
|
+
}>, import("mobx-state-tree").ModelSnapshotType<{
|
|
152
|
+
id: import("mobx-state-tree").ISimpleType<string>;
|
|
153
|
+
type: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
154
|
+
name: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
155
|
+
opacity: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
156
|
+
custom: import("mobx-state-tree").IType<any, any, any>;
|
|
157
|
+
visible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
158
|
+
selectable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
159
|
+
removable: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
160
|
+
alwaysOnTop: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
161
|
+
showInExport: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
162
|
+
}>>;
|
|
139
163
|
export type FigureElementType = Instance<typeof FigureElement>;
|