polotno 2.0.9 → 2.0.11

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Page=void 0;const mobx_state_tree_1=require("mobx-state-tree"),nanoid_1=require("nanoid"),group_model_1=require("./group-model"),store_1=require("./store"),group_model_2=require("./group-model");exports.Page=mobx_state_tree_1.types.model("Page",{id:mobx_state_tree_1.types.identifier,children:mobx_state_tree_1.types.array(group_model_1.ElementTypes),width:mobx_state_tree_1.types.optional(mobx_state_tree_1.types.union(mobx_state_tree_1.types.number,mobx_state_tree_1.types.literal("auto")),"auto"),height:mobx_state_tree_1.types.optional(mobx_state_tree_1.types.union(mobx_state_tree_1.types.number,mobx_state_tree_1.types.literal("auto")),"auto"),background:"white",bleed:0,custom:mobx_state_tree_1.types.frozen(),duration:5e3,_exporting:!1,_rendering:!1}).postProcessSnapshot((e=>{const t=Object.assign({},e),o={};for(var n in t)"_"!==n[0]&&(o[n]=e[n]);return o})).views((e=>({get store(){return(0,mobx_state_tree_1.getParentOfType)(e,store_1.Store)},get startTime(){let t=0;for(const o of e.store.pages){if(o.id===e.id)return t;t+=o.duration}return t}}))).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((0,mobx_state_tree_1.getSnapshot)(e))),_forEachElementUp(t,o){const n=t.map((t=>({id:t,index:e.children.findIndex((e=>e.id===t))})));n.sort(((e,t)=>t.index-e.index));for(const{index:i}of n){if(-1==i)continue;const n=i<e.children.length-1&&e.children[i+1],r=t.indexOf(null==n?void 0:n.id)>=0;i===e.children.length-1||r||o(i)}},_forEachElementDown(t,o){const n=t.map((t=>({id:t,index:e.children.findIndex((e=>e.id===t))})));n.sort(((e,t)=>e.index-t.index));for(const{index:i}of n){if(-1==i)continue;const n=i>0&&e.children[i-1],r=t.indexOf(null==n?void 0:n.id)>=0;0===i||r||o(i)}return!1}}))).actions((e=>({clone(t={}){const o=e.toJSON();o.children.forEach((e=>{e.id=(0,nanoid_1.nanoid)(10),(0,group_model_2.forEveryChild)(e,(e=>{e.id=(0,nanoid_1.nanoid)(10)}))}));const n=Object.assign(Object.assign(Object.assign({},o),{id:(0,nanoid_1.nanoid)(10)}),t),i=e.store.addPage(n),r=e.store.pages.indexOf(e);i.setZIndex(r+1),i.select()},setZIndex(t){e.store.setPageZIndex(e.id,t)},set(t){Object.assign(e,t)},select(){e.store.selectPage(e.id)},addElement(t){const o=group_model_2.TYPES_MAP[t.type];if(!o)return void console.error("Can not find model with type "+t.type);t.children&&t.children.forEach((e=>{e.id=(0,nanoid_1.nanoid)(10)}));const n=o.create(Object.assign({id:(0,nanoid_1.nanoid)(10)},t));return e.children.push(n),n.selectable&&e.store.selectElements([n.id]),n},canMoveElementsUp(t){let o=!1;return e._forEachElementUp(t,(()=>{o=o||!0})),o},moveElementsUp(t){e._forEachElementUp(t,(t=>{const o=e.children[t];(0,mobx_state_tree_1.detach)(o),e.children.splice(t+1,0,o)}))},canMoveElementsTop(e){return this.canMoveElementsUp(e)},moveElementsTop(t){const o=[],n=[];e.children.forEach((e=>{t.indexOf(e.id)>=0?o.push(e):n.push(e)})),e.children.replace(n.concat(o))},canMoveElementsDown(t){let o=!1;return e._forEachElementDown(t,(()=>{o=o||!0})),o},moveElementsDown(t){e._forEachElementDown(t,(t=>{const o=e.children[t];(0,mobx_state_tree_1.detach)(o),e.children.splice(t-1,0,o)}))},canMoveElementsBottom(e){return this.canMoveElementsDown(e)},moveElementsBottom(t){const o=[],n=[];e.children.forEach((e=>{t.indexOf(e.id)>=0?o.push(e):n.push(e)})),e.children.replace(o.concat(n))},setElementZIndex(t,o){const n=e.children.find((e=>e.id===t));n&&((0,mobx_state_tree_1.detach)(n),e.children.remove(n),e.children.splice(o,0,n))},setSize({width:t,height:o,useMagic:n,softChange:i}){if(n){const n=t/e.computedWidth,i=o/e.computedHeight,r=Math.min(n,i),s=Math.max(0,(t-e.computedWidth*r)/2),d=Math.max(0,(o-e.computedHeight*r)/2);(0,group_model_2.forEveryChild)(e,(async t=>{if("group"===t.type)return;"image"===t.type&&t.x<1&&t.y<1&&t.width>=e.computedWidth-2&&t.height>=e.computedHeight-2?t.set({x:t.x*r,y:t.y*r,width:t.width*n,height:t.height*i,cropX:0,cropY:0,cropWidth:1,cropHeight:1}):(t.set({x:s+t.x*r,y:d+t.y*r,width:t.width*r,height:t.height*r}),"text"===t.type&&t.set({fontSize:t.fontSize*r}))}))}i||(e.width=t),i||(e.height=o)}}))).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])}})));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Page=void 0;const mobx_state_tree_1=require("mobx-state-tree"),nanoid_1=require("nanoid"),group_model_1=require("./group-model"),store_1=require("./store"),group_model_2=require("./group-model");exports.Page=mobx_state_tree_1.types.model("Page",{id:mobx_state_tree_1.types.identifier,children:mobx_state_tree_1.types.array(mobx_state_tree_1.types.late((()=>group_model_1.ElementTypes))),width:mobx_state_tree_1.types.optional(mobx_state_tree_1.types.union(mobx_state_tree_1.types.number,mobx_state_tree_1.types.literal("auto")),"auto"),height:mobx_state_tree_1.types.optional(mobx_state_tree_1.types.union(mobx_state_tree_1.types.number,mobx_state_tree_1.types.literal("auto")),"auto"),background:"white",bleed:0,custom:mobx_state_tree_1.types.frozen(),duration:5e3,_exporting:!1,_rendering:!1}).postProcessSnapshot((e=>{const t=Object.assign({},e),o={};for(var n in t)"_"!==n[0]&&(o[n]=e[n]);return o})).views((e=>({get store(){return(0,mobx_state_tree_1.getParentOfType)(e,store_1.Store)},get startTime(){let t=0;for(const o of e.store.pages){if(o.id===e.id)return t;t+=o.duration}return t}}))).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((0,mobx_state_tree_1.getSnapshot)(e))),_forEachElementUp(t,o){const n=t.map((t=>({id:t,index:e.children.findIndex((e=>e.id===t))})));n.sort(((e,t)=>t.index-e.index));for(const{index:i}of n){if(-1==i)continue;const n=i<e.children.length-1&&e.children[i+1],s=t.indexOf(null==n?void 0:n.id)>=0;i===e.children.length-1||s||o(i)}},_forEachElementDown(t,o){const n=t.map((t=>({id:t,index:e.children.findIndex((e=>e.id===t))})));n.sort(((e,t)=>e.index-t.index));for(const{index:i}of n){if(-1==i)continue;const n=i>0&&e.children[i-1],s=t.indexOf(null==n?void 0:n.id)>=0;0===i||s||o(i)}return!1}}))).actions((e=>({clone(t={}){const o=e.toJSON();o.children.forEach((e=>{e.id=(0,nanoid_1.nanoid)(10),(0,group_model_2.forEveryChild)(e,(e=>{e.id=(0,nanoid_1.nanoid)(10)}))}));const n=Object.assign(Object.assign(Object.assign({},o),{id:(0,nanoid_1.nanoid)(10)}),t),i=e.store.addPage(n),s=e.store.pages.indexOf(e);i.setZIndex(s+1),i.select()},setZIndex(t){e.store.setPageZIndex(e.id,t)},set(t){Object.assign(e,t)},select(){e.store.selectPage(e.id)},addElement(t){const o=group_model_2.TYPES_MAP[t.type];if(!o)return void console.error("Can not find model with type "+t.type);t.children&&t.children.forEach((e=>{e.id=(0,nanoid_1.nanoid)(10)}));const n=o.create(Object.assign({id:(0,nanoid_1.nanoid)(10)},t));return e.children.push(n),n.selectable&&e.store.selectElements([n.id]),n},canMoveElementsUp(t){let o=!1;return e._forEachElementUp(t,(()=>{o=o||!0})),o},moveElementsUp(t){e._forEachElementUp(t,(t=>{const o=e.children[t];(0,mobx_state_tree_1.detach)(o),e.children.splice(t+1,0,o)}))},canMoveElementsTop(e){return this.canMoveElementsUp(e)},moveElementsTop(t){const o=[],n=[];e.children.forEach((e=>{t.indexOf(e.id)>=0?o.push(e):n.push(e)})),e.children.replace(n.concat(o))},canMoveElementsDown(t){let o=!1;return e._forEachElementDown(t,(()=>{o=o||!0})),o},moveElementsDown(t){e._forEachElementDown(t,(t=>{const o=e.children[t];(0,mobx_state_tree_1.detach)(o),e.children.splice(t-1,0,o)}))},canMoveElementsBottom(e){return this.canMoveElementsDown(e)},moveElementsBottom(t){const o=[],n=[];e.children.forEach((e=>{t.indexOf(e.id)>=0?o.push(e):n.push(e)})),e.children.replace(o.concat(n))},setElementZIndex(t,o){const n=e.children.find((e=>e.id===t));n&&((0,mobx_state_tree_1.detach)(n),e.children.remove(n),e.children.splice(o,0,n))},setSize({width:t,height:o,useMagic:n,softChange:i}){if(n){const n=t/e.computedWidth,i=o/e.computedHeight,s=Math.min(n,i),r=Math.max(0,(t-e.computedWidth*s)/2),d=Math.max(0,(o-e.computedHeight*s)/2);(0,group_model_2.forEveryChild)(e,(async t=>{if("group"===t.type)return;"image"===t.type&&t.x<1&&t.y<1&&t.width>=e.computedWidth-2&&t.height>=e.computedHeight-2?t.set({x:t.x*s,y:t.y*s,width:t.width*n,height:t.height*i,cropX:0,cropY:0,cropWidth:1,cropHeight:1}):(t.set({x:r+t.x*s,y:d+t.y*s,width:t.width*s,height:t.height*s}),"text"===t.type&&t.set({fontSize:t.fontSize*s}))}))}i||(e.width=t),i||(e.height=o)}}))).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])}})));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polotno",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "description": "Design Editor Framework",
5
5
  "author": "Anton Lavrenov",
6
6
  "keywords": [
package/polotno.bundle.js CHANGED
@@ -3613,12 +3613,12 @@ onKeyDown:hl(["Enter"," "]),// if hasSubmenu, must apply correct role and tabInd
3613
3613
  role:R?"none":P,tabIndex:R?-1:0},h9(O)),s?gD:{}),{className:L}),N?v.createElement(gR,{className:lN.MENU_ITEM_SELECTED_ICON}):void 0,j?// so that we always render this class
3614
3614
  v.createElement("span",{className:lN.MENU_ITEM_ICON},v.createElement(fp,{icon:u,"aria-hidden":!0,tabIndex:-1})):void 0,v.createElement(gI,{className:/*@__PURE__*/l(lA)(lN.FILL,_),ellipsize:!f,title:S},w),M,R?v.createElement(gj,{className:lN.MENU_SUBMENU_ICON,title:"Open sub menu"}):void 0),F=/*@__PURE__*/l(lA)(((r={})[lN.MENU_SUBMENU]=R,r));return v.createElement("li",{className:F,ref:t,role:k,"aria-selected":T},null==a?D:v.createElement(gs,(0,lT.__assign)({autoFocus:!1,captureDismiss:!1,disabled:s,enforceFocus:!1,hoverCloseDelay:0,interactionKind:"hover",modifiers:gM,targetProps:{role:P,tabIndex:0},placement:"right-start",usePortal:!1},p,{content:v.createElement(gP,(0,lT.__assign)({},x),a),minimal:!0,popoverClassName:/*@__PURE__*/l(lA)(lN.MENU_SUBMENU,null==p?void 0:p.popoverClassName)}),D))});gL.defaultProps={active:!1,disabled:!1,multiline:!1,popoverProps:{},selected:void 0,shouldDismissPopover:!0,text:""},gL.displayName="".concat(h6,".MenuItem");var gM={// 20px padding - scrollbar width + a bit
3615
3615
  flip:{options:{rootBoundary:"viewport",padding:20},enabled:!0},// shift popover up 5px so MenuItems align
3616
- offset:{options:{offset:[-5,0]},enabled:!0},preventOverflow:{options:{rootBoundary:"viewport",padding:20},enabled:!0}},gD={href:void 0,onClick:void 0,onMouseDown:void 0,onMouseEnter:void 0,onMouseLeave:void 0,tabIndex:-1};let gF=P(({store:e})=>{let t=e.selectedElements.length>0,n=e.selectedElementsIds,r=e.selectedElements.every(e=>e.draggable),i=e.selectedElements.some(e=>"group"===e.type),o=!i&&r;return o&&e.selectedElements.length,/*#__PURE__*/(0,p.jsx)(gs,{disabled:!t,content:/*#__PURE__*/(0,p.jsxs)(gP,{children:[/*#__PURE__*/(0,p.jsx)(gN,{title:l_("toolbar.layering")}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"double-chevron-up",text:l_("toolbar.toForward"),disabled:!e.activePage?.canMoveElementsTop(n),onClick:()=>{e.activePage?.moveElementsTop(n)}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"chevron-up",text:l_("toolbar.up"),disabled:!e.activePage?.canMoveElementsUp(n),onClick:()=>{e.activePage?.moveElementsUp(n)}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"chevron-down",text:l_("toolbar.down"),disabled:!e.activePage?.canMoveElementsDown(n),onClick:()=>{e.activePage?.moveElementsDown(n)}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"double-chevron-down",text:l_("toolbar.toBottom"),disabled:!e.activePage?.canMoveElementsBottom(n),onClick:()=>{e.activePage?.moveElementsBottom(n)}}),o&&/*#__PURE__*/(0,p.jsxs)(p.Fragment,{children:[/*#__PURE__*/(0,p.jsx)(gN,{title:l_("toolbar.position")}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"alignment-left",text:l_("toolbar.alignLeft"),onClick:()=>{let t=e.activePage?.computedWidth;e.selectedElements.forEach(e=>{t=Math.min(t,as(e).x)}),1===e.selectedElements.length&&(t=0),// now move all by that delta
3616
+ offset:{options:{offset:[-5,0]},enabled:!0},preventOverflow:{options:{rootBoundary:"viewport",padding:20},enabled:!0}},gD={href:void 0,onClick:void 0,onMouseDown:void 0,onMouseEnter:void 0,onMouseLeave:void 0,tabIndex:-1};let gF=P(({store:e})=>{let t=e.selectedElements.length>0,n=e.selectedElementsIds,r=e.selectedElements.every(e=>e.draggable),i=e.selectedElements.some(e=>"group"===e.type),o=!i&&r;o&&e.selectedElements.length;let a=o&&e.selectedElements.length>1;return/*#__PURE__*/(0,p.jsx)(gs,{disabled:!t,content:/*#__PURE__*/(0,p.jsxs)(gP,{style:{width:"280px"},children:[/*#__PURE__*/(0,p.jsx)(gN,{title:l_("toolbar.layering")}),/*#__PURE__*/(0,p.jsxs)("div",{style:{display:"flex"},children:[/*#__PURE__*/(0,p.jsxs)("div",{style:{width:"50%"},children:[/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"chevron-up",text:l_("toolbar.up"),disabled:!e.activePage?.canMoveElementsUp(n),onClick:()=>{e.activePage?.moveElementsUp(n)}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"double-chevron-up",text:l_("toolbar.toForward"),disabled:!e.activePage?.canMoveElementsTop(n),onClick:()=>{e.activePage?.moveElementsTop(n)}})]}),/*#__PURE__*/(0,p.jsxs)("div",{style:{width:"50%"},children:[/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"chevron-down",text:l_("toolbar.down"),disabled:!e.activePage?.canMoveElementsDown(n),onClick:()=>{e.activePage?.moveElementsDown(n)}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"double-chevron-down",text:l_("toolbar.toBottom"),disabled:!e.activePage?.canMoveElementsBottom(n),onClick:()=>{e.activePage?.moveElementsBottom(n)}})]})]}),o&&/*#__PURE__*/(0,p.jsxs)(p.Fragment,{children:[/*#__PURE__*/(0,p.jsx)(gN,{title:l_("toolbar.position")}),/*#__PURE__*/(0,p.jsxs)("div",{style:{display:"flex"},children:[/*#__PURE__*/(0,p.jsxs)("div",{style:{width:"50%"},children:[/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"alignment-left",text:l_("toolbar.alignLeft"),onClick:()=>{let t=e.activePage?.computedWidth;e.selectedElements.forEach(e=>{t=Math.min(t,as(e).x)}),1===e.selectedElements.length&&(t=0),// now move all by that delta
3617
3617
  e.selectedElements.forEach(e=>{let n=as(e);e.set({x:e.x-n.x+t})})}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"alignment-vertical-center",text:l_("toolbar.alignCenter"),onClick:()=>{let t=e.activePage?.computedWidth,n=0;e.selectedElements.forEach(e=>{let r=as(e);t=Math.min(t,r.x),n=Math.max(n,r.x+r.width)});let r=(n+t)/2;1===e.selectedElements.length&&(r=e.activePage?.computedWidth/2),// now move all by that delta
3618
3618
  e.selectedElements.forEach(e=>{let t=as(e),n=e.x-t.x;e.set({x:r+n-t.width/2})})}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"alignment-right",text:l_("toolbar.alignRight"),onClick:()=>{let t=0;e.selectedElements.forEach(e=>{let n=as(e);t=Math.max(t,n.x+n.width)}),1===e.selectedElements.length&&(t=e.activePage?.computedWidth),// now move all by that delta
3619
- e.selectedElements.forEach(e=>{let n=as(e);e.set({x:e.x-n.x+t-n.width})})}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"alignment-top",text:l_("toolbar.alignTop"),onClick:()=>{let t=e.activePage?.computedHeight;e.selectedElements.forEach(e=>{t=Math.min(t,as(e).y)}),1===e.selectedElements.length&&(t=0),// now move all by that delta
3619
+ e.selectedElements.forEach(e=>{let n=as(e);e.set({x:e.x-n.x+t-n.width})})}})]}),/*#__PURE__*/(0,p.jsxs)("div",{style:{width:"50%"},children:[/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"alignment-top",text:l_("toolbar.alignTop"),onClick:()=>{let t=e.activePage?.computedHeight;e.selectedElements.forEach(e=>{t=Math.min(t,as(e).y)}),1===e.selectedElements.length&&(t=0),// now move all by that delta
3620
3620
  e.selectedElements.forEach(e=>{let n=as(e);e.set({y:e.y-n.y+t})})}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"alignment-horizontal-center",text:l_("toolbar.alignMiddle"),onClick:()=>{let t=e.activePage?.computedHeight,n=0;e.selectedElements.forEach(e=>{let r=as(e);t=Math.min(t,r.y),n=Math.max(n,r.y+r.height)});let r=(n+t)/2;1===e.selectedElements.length&&(r=e.activePage?.computedHeight/2),e.selectedElements.forEach(e=>{let t=as(e),n=e.y-t.y;e.set({y:r+n-t.height/2})})}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"alignment-bottom",text:l_("toolbar.alignBottom"),onClick:()=>{let t=0;e.selectedElements.forEach(e=>{let n=as(e);t=Math.max(t,n.y+n.height)}),1===e.selectedElements.length&&(t=e.activePage?.computedHeight),// now move all by that delta
3621
- e.selectedElements.forEach(e=>{let n=as(e);e.set({y:e.y-n.y+t-n.height})})}})]}),o&&/*#__PURE__*/(0,p.jsxs)(p.Fragment,{children:[/*#__PURE__*/(0,p.jsx)(gN,{title:l_("toolbar.spaceEvenly")}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"vertical-distribution",text:l_("toolbar.verticalDistribution"),onClick:()=>{let t=e.activePage?.computedHeight,n=0,r=0;e.selectedElements.forEach(e=>{let i=as(e);t=Math.min(t,i.y),n=Math.max(n,i.y+i.height),r+=i.height});let i=(n-t-r)/(e.selectedElements.length-1),o=e.selectedElements.slice().sort((e,t)=>{let n=as(e),r=as(t);return n.y-r.y}),a=0;o.forEach(e=>{let n=as(e);e.set({y:e.y-n.y+t+a}),a+=n.height+i})}}),/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"horizontal-distribution",text:l_("toolbar.horizontalDistribution"),onClick:()=>{let t=e.activePage?.computedWidth,n=0,r=0;e.selectedElements.forEach(e=>{let i=as(e);t=Math.min(t,i.x),n=Math.max(n,i.x+i.width),r+=i.width});let i=(n-t-r)/(e.selectedElements.length-1),o=e.selectedElements.slice().sort((e,t)=>{let n=as(e),r=as(t);return n.x-r.x}),a=0;o.forEach(e=>{let n=as(e);e.set({x:e.x-n.x+t+a}),a+=n.width+i})}})]})]}),position:lL.BOTTOM,children:/*#__PURE__*/(0,p.jsx)(fy,{icon:"layers",minimal:!0,text:l_("toolbar.position"),disabled:!t})})});function gB(e,t){return e.classList.contains(t)?e:e.parentElement?gB(e.parentElement,t):null}let gz=P(({store:e,page:t,components:n,stageRef:r})=>{let i=au(e.selectedShapes),o=e.selectedShapes.every(e=>e.page===t),a=/*@__PURE__*/l(v).useRef(null),[s,u]=/*@__PURE__*/l(v).useState(!1);/*@__PURE__*/l(v).useEffect(()=>{let e=()=>{u(!0)},t=()=>{u(!1)};r?.current?.on("dragstart",e),r?.current?.on("dragend",t);let n=r?.current?.findOne("Transformer");return n?.on("transformstart",e),n?.on("transformend",t),()=>{r?.current?.off("dragstart",e),r?.current?.off("dragend",t),n?.off("transformstart",e),n?.off("transformend",t)}},[]);let[c,d]=/*@__PURE__*/l(v).useState({fit:!0,needCalculate:!1,token:Math.random()});if(/*@__PURE__*/l(v).useEffect(()=>{// if not element selected, let's skip any calculations
3621
+ e.selectedElements.forEach(e=>{let n=as(e);e.set({y:e.y-n.y+t-n.height})})}})]})]})]}),a&&/*#__PURE__*/(0,p.jsxs)(p.Fragment,{children:[/*#__PURE__*/(0,p.jsx)(gN,{title:l_("toolbar.spaceEvenly")}),/*#__PURE__*/(0,p.jsxs)("div",{style:{display:"flex"},children:[/*#__PURE__*/(0,p.jsxs)("div",{style:{width:"50%"},children:[" ",/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"vertical-distribution",text:l_("toolbar.verticalDistribution"),onClick:()=>{let t=e.activePage?.computedHeight,n=0,r=0;e.selectedElements.forEach(e=>{let i=as(e);t=Math.min(t,i.y),n=Math.max(n,i.y+i.height),r+=i.height});let i=(n-t-r)/(e.selectedElements.length-1),o=e.selectedElements.slice().sort((e,t)=>{let n=as(e),r=as(t);return n.y-r.y}),a=0;o.forEach(e=>{let n=as(e);e.set({y:e.y-n.y+t+a}),a+=n.height+i})}})]}),/*#__PURE__*/(0,p.jsx)("div",{style:{width:"50%"},children:/*#__PURE__*/(0,p.jsx)(gL,{shouldDismissPopover:!1,icon:"horizontal-distribution",text:l_("toolbar.horizontalDistribution"),onClick:()=>{let t=e.activePage?.computedWidth,n=0,r=0;e.selectedElements.forEach(e=>{let i=as(e);t=Math.min(t,i.x),n=Math.max(n,i.x+i.width),r+=i.width});let i=(n-t-r)/(e.selectedElements.length-1),o=e.selectedElements.slice().sort((e,t)=>{let n=as(e),r=as(t);return n.x-r.x}),a=0;o.forEach(e=>{let n=as(e);e.set({x:e.x-n.x+t+a}),a+=n.width+i})}})})]})]})]}),children:/*#__PURE__*/(0,p.jsx)(fy,{icon:"layers",minimal:!0,text:l_("toolbar.position"),disabled:!t})})});function gB(e,t){return e.classList.contains(t)?e:e.parentElement?gB(e.parentElement,t):null}let gz=P(({store:e,page:t,components:n,stageRef:r})=>{let i=au(e.selectedShapes),o=e.selectedShapes.every(e=>e.page===t),a=/*@__PURE__*/l(v).useRef(null),[s,u]=/*@__PURE__*/l(v).useState(!1);/*@__PURE__*/l(v).useEffect(()=>{let e=()=>{u(!0)},t=()=>{u(!1)};r?.current?.on("dragstart",e),r?.current?.on("dragend",t);let n=r?.current?.findOne("Transformer");return n?.on("transformstart",e),n?.on("transformend",t),()=>{r?.current?.off("dragstart",e),r?.current?.off("dragend",t),n?.off("transformstart",e),n?.off("transformend",t)}},[]);let[c,d]=/*@__PURE__*/l(v).useState({fit:!0,needCalculate:!1,token:Math.random()});if(/*@__PURE__*/l(v).useEffect(()=>{// if not element selected, let's skip any calculations
3622
3622
  0!==e.selectedElements.length&&d({fit:!0,needCalculate:!0,token:Math.random()})},[e.selectedElements,s]),/*@__PURE__*/l(v).useEffect(()=>{setTimeout(()=>{if(!a.current||!c.needCalculate)return;let e=gB(a.current,"polotno-workspace-container");if(!e)return;// find position of navbar relative to the container
3623
3623
  let t=e.getBoundingClientRect(),n=a.current.getBoundingClientRect();n.right,t.left;let r=n.top-t.top;n.left,t.left;let i=n.bottom-t.top;r<20&&c.fit&&d({fit:!1,needCalculate:!1,token:c.token}),i-t.height>-20&&!c.fit&&d({fit:!0,needCalculate:!1,token:c.token})},10)},[c.needCalculate,a.current,c.token]),/*@__PURE__*/l(v).useEffect(()=>{let t=gB(r.current.content,"polotno-workspace-inner"),n=()=>{// no element selected? skip
3624
3624
  e.selectedElements.length&&d({fit:!0,needCalculate:!0,token:Math.random()})};return t?.addEventListener("scroll",n),()=>{t?.removeEventListener("scroll",n)}},[]),0===e.selectedShapes.length||s||!o)return null;if(e.activePage!==t)return;let h=n?.Position||gF,f=n?.Duplicate||gC,g=n?.Remove||gk,m=e.selectedElements[0].type,y=gS({components:n,type:m,usedItems:[]}),b=r?.current?.findOne("Transformer")?.rotation()||0,x=30;return 5>Math.abs(b)&&c.fit&&(x=80),Math.abs(b)>160&&!c.fit&&(x=80),/*#__PURE__*/(0,p.jsx)(r2,{transformFunc:e=>{let t=i.x+i.width/2,n=c.fit?i.y*e.scaleY-x:i.y*e.scaleY+i.height*e.scaleY+x;return{...e,x:e.x+t*e.scaleX,y:e.y+n,scaleX:1,scaleY:1}},children:/*#__PURE__*/(0,p.jsx)("div",{ref:a,children:/*#__PURE__*/(0,p.jsx)(gy,{style:{padding:"2px",borderRadius:"5px",height:"34px",transform:"translate(-50%, -50%)"},children:/*#__PURE__*/(0,p.jsxs)(gm,{style:{height:"30px"},children:[y.map(t=>{let r=n[t];return/*#__PURE__*/(0,p.jsx)(r,{elements:e.selectedElements,element:e.selectedElements[0],store:e},t)}),/*#__PURE__*/(0,p.jsx)(f,{store:e}),/*#__PURE__*/(0,p.jsx)(g,{store:e}),/*#__PURE__*/(0,p.jsx)(h,{store:e})]})})})})});var gU=({components:e,...t})=>((e=e||{}).PageControls=e.PageControls??gp,e.Tooltip=e.Tooltip??gz,/*#__PURE__*/(0,p.jsx)(lP,{...t,components:e})),v=h("8NFma"),lT=h("gztBd"),v=h("8NFma"),gH=/** @class */function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return(0,lT.__extends)(t,e),t.prototype.render=function(){var e=this.props,t=e.className,n=e.tagName,r=void 0===n?"div":n,i=(0,lT.__rest)(e,["className","tagName"]),o=/*@__PURE__*/l(lA)(uo,t);return v.createElement(r,(0,lT.__assign)((0,lT.__assign)({},i),{className:o}))},t.displayName="".concat(h6,".Divider"),t}(fg);h("8NFma");let gV=P(({store:e})=>/*#__PURE__*/(0,p.jsxs)(gy.Group,{align:lj.LEFT,children:[/*#__PURE__*/(0,p.jsx)(fy,{icon:"undo",minimal:!0,onClick:()=>{e.history.undo()},disabled:!e.history.canUndo}),/*#__PURE__*/(0,p.jsx)(fy,{icon:"redo",minimal:!0,onClick:()=>{e.history.redo()},disabled:!e.history.canRedo})]}));var v=h("8NFma"),lT=h("gztBd"),v=h("8NFma"),gq=v.forwardRef(function(e,t){var n,r=e.alignText,i=e.className,o=e.fill,a=e.minimal,s=e.large,u=e.vertical,c=(0,lT.__rest)(e,["alignText","className","fill","minimal","large","vertical"]),d=/*@__PURE__*/l(lA)(lN.BUTTON_GROUP,((n={})[lN.FILL]=o,n[lN.LARGE]=s,n[lN.MINIMAL]=a,n[lN.VERTICAL]=u,n),lN.alignmentClass(r),i);return v.createElement("div",(0,lT.__assign)({},c,{ref:t,className:d}),e.children)});gq.displayName="".concat(h6,".ButtonGroup");/*
@@ -6293,7 +6293,8 @@ placeholder:"",fontSize:14,fontFamily:"Roboto",fontStyle:"normal",fontWeight:"no
6293
6293
  lineHeight:(0,OU.types).optional((0,OU.types).union(OU.types.number,OU.types.string),1.2),letterSpacing:0,_editModeEnabled:!1,backgroundEnabled:!1,backgroundColor:"#7ED321",backgroundOpacity:1,backgroundCornerRadius:.5,backgroundPadding:.5}).preProcessSnapshot(e=>({...e})).actions(e=>({toggleEditMode(t){e._editModeEnabled=t??!e._editModeEnabled,e._editModeEnabled?e.store.history.startTransaction():e.store.history.endTransaction()}})),T5=T2.named("Image").props({type:"image",width:100,height:100,src:"",cropX:0,cropY:0,cropWidth:1,cropHeight:1,cornerRadius:0,flipX:!1,flipY:!1,clipSrc:"",// use border instead of stroke for consistent naming
6294
6294
  borderColor:"black",borderSize:0,keepRatio:!1,_cropModeEnabled:!1}).actions(e=>({toggleCropMode(t){e._cropModeEnabled=t??!e._cropModeEnabled,e._cropModeEnabled?e.store.history.startTransaction():e.store.history.endTransaction()},beforeDestroy(){e._cropModeEnabled&&e.store.history.endTransaction()}})),T4=T5.named("Video").props({type:"video",duration:0,startTime:0,endTime:1});var OU=h("58B0H");let T6=T2.named("Line").props({type:"line",width:400,height:10,color:"black",dash:(0,OU.types).array(OU.types.number),startHead:"",endHead:""}).actions(e=>({}));var OU=h("58B0H");let T8=T2.named("SVG").props({type:"svg",// that is what user will set
6295
6295
  src:"",maskSrc:"",cropX:0,cropY:0,cropWidth:1,cropHeight:1,keepRatio:!0,flipX:!1,flipY:!1,width:100,height:100,// use border instead of stroke for consistent naming
6296
- borderColor:"black",borderSize:0,cornerRadius:0,colorsReplace:(0,OU.types).map(OU.types.string)}).preProcessSnapshot(e=>({...e,src:e.src||e.svgSource})).actions(e=>({replaceColor(t,n){e.colorsReplace.set(t,n)}})),T9=(e,t)=>{e.children&&e.children.forEach(e=>{t(e),T9(e,t)})},T7=[...Array(20)].map((e,t)=>(0,OU.types).late(()=>An[t])),Ae=(0,OU.types).union({dispatcher:e=>{let t=Ar[e.type];if(!t)throw Error(`Unknown element type: "${e.type}"`);return t}},T8,T3,T5,T6,T4,(0,OU.types).late(()=>At),...T7),At=TQ.named("Group").props({type:"group",children:(0,OU.types).array(Ae)}).views(e=>({get draggable(){let t=!0;return T9(e,e=>{e.draggable||(t=!1)}),t},get resizable(){let t=!0;return T9(e,e=>{e.resizable||(t=!1)}),t},get contentEditable(){let t=!0;return T9(e,e=>{e.contentEditable||(t=!1)}),t},get styleEditable(){let t=!0;return T9(e,e=>{e.styleEditable||(t=!1)}),t},get locked(){let t=!0;return T9(e,e=>{e.locked||(t=!1)}),t}})).actions(e=>({set({draggable:t,contentEditable:n,styleEditable:r,resizable:i,...o}){void 0!==t&&T9(e,e=>{e.set({draggable:t})}),void 0!==n&&T9(e,e=>{e.set({contentEditable:n})}),void 0!==r&&T9(e,e=>{e.set({styleEditable:r})}),void 0!==i&&T9(e,e=>{e.set({resizable:i})}),Object.assign(e,o)}})),An=[],Ar={svg:T8,text:T3,image:T5,group:At,line:T6,video:T4},Ai=(0,OU.types).model("Page",{id:OU.types.identifier,children:(0,OU.types).array(Ae),width:(0,OU.types).optional((0,OU.types).union(OU.types.number,(0,OU.types).literal("auto")),"auto"),height:(0,OU.types).optional((0,OU.types).union(OU.types.number,(0,OU.types).literal("auto")),"auto"),background:"white",bleed:0,custom:(0,OU.types).frozen(),duration:5e3,_exporting:!1,_rendering:!1}).postProcessSnapshot(e=>{let t={...e},n={};for(var r in t)"_"!==r[0]&&(n[r]=e[r]);return n}).views(e=>({get store(){let t=(0,OU.getParentOfType)(e,Aa);return t},get startTime(){let t=0;for(let n of e.store.pages){if(n.id===e.id)break;t+=n.duration}return t}})).views(e=>({get computedWidth(){if("auto"===e.width)return e.store.width;return e.width},get computedHeight(){if("auto"===e.height)return e.store.height;return e.height}})).actions(e=>({toJSON:()=>JSON.parse(JSON.stringify((0,OU.getSnapshot)(e))),// iterate over all elements, that can be moved up
6296
+ borderColor:"black",borderSize:0,cornerRadius:0,colorsReplace:(0,OU.types).map(OU.types.string)}).preProcessSnapshot(e=>({...e,src:e.src||e.svgSource})).actions(e=>({replaceColor(t,n){e.colorsReplace.set(t,n)}})),T9=(e,t)=>{e.children&&e.children.forEach(e=>{t(e),T9(e,t)})},T7=[...Array(20)].map((e,t)=>(0,OU.types).late(()=>An[t])),Ae=(0,OU.types).union({dispatcher:e=>{let t=Ar[e.type];if(!t)throw Error(`Unknown element type: "${e.type}"`);return t}},T8,T3,T5,T6,T4,(0,OU.types).late(()=>At),...T7),At=TQ.named("Group").props({type:"group",children:(0,OU.types).array(Ae)}).views(e=>({get draggable(){let t=!0;return T9(e,e=>{e.draggable||(t=!1)}),t},get resizable(){let t=!0;return T9(e,e=>{e.resizable||(t=!1)}),t},get contentEditable(){let t=!0;return T9(e,e=>{e.contentEditable||(t=!1)}),t},get styleEditable(){let t=!0;return T9(e,e=>{e.styleEditable||(t=!1)}),t},get locked(){let t=!0;return T9(e,e=>{e.locked||(t=!1)}),t}})).actions(e=>({set({draggable:t,contentEditable:n,styleEditable:r,resizable:i,...o}){void 0!==t&&T9(e,e=>{e.set({draggable:t})}),void 0!==n&&T9(e,e=>{e.set({contentEditable:n})}),void 0!==r&&T9(e,e=>{e.set({styleEditable:r})}),void 0!==i&&T9(e,e=>{e.set({resizable:i})}),Object.assign(e,o)}})),An=[],Ar={svg:T8,text:T3,image:T5,group:At,line:T6,video:T4},Ai=(0,OU.types).model("Page",{id:OU.types.identifier,// use late for better circular dependency support
6297
+ children:(0,OU.types).array((0,OU.types).late(()=>Ae)),width:(0,OU.types).optional((0,OU.types).union(OU.types.number,(0,OU.types).literal("auto")),"auto"),height:(0,OU.types).optional((0,OU.types).union(OU.types.number,(0,OU.types).literal("auto")),"auto"),background:"white",bleed:0,custom:(0,OU.types).frozen(),duration:5e3,_exporting:!1,_rendering:!1}).postProcessSnapshot(e=>{let t={...e},n={};for(var r in t)"_"!==r[0]&&(n[r]=e[r]);return n}).views(e=>({get store(){let t=(0,OU.getParentOfType)(e,Aa);return t},get startTime(){let t=0;for(let n of e.store.pages){if(n.id===e.id)break;t+=n.duration}return t}})).views(e=>({get computedWidth(){if("auto"===e.width)return e.store.width;return e.width},get computedHeight(){if("auto"===e.height)return e.store.height;return e.height}})).actions(e=>({toJSON:()=>JSON.parse(JSON.stringify((0,OU.getSnapshot)(e))),// iterate over all elements, that can be moved up
6297
6298
  _forEachElementUp(t,n){let r=t.map(t=>({id:t,index:e.children.findIndex(e=>e.id===t)}));for(let{index:i}of(r.sort((e,t)=>t.index-e.index),r)){if(-1==i)continue;let r=i<e.children.length-1&&e.children[i+1],o=t.indexOf(r?.id)>=0,a=i===e.children.length-1;a||o||n(i)}},// iterate over all elements, that can be moved down
6298
6299
  _forEachElementDown(t,n){let r=t.map(t=>({id:t,index:e.children.findIndex(e=>e.id===t)}));for(let{index:i}of(r.sort((e,t)=>e.index-t.index),r)){if(-1==i)continue;let r=i>0&&e.children[i-1],o=t.indexOf(r?.id)>=0,a=0===i;a||o||n(i)}return!1}})).actions(e=>({clone(t={}){let n=e.toJSON();n.children.forEach(e=>{e.id=OZ(10),T9(e,e=>{e.id=OZ(10)})});let r={...n,id:OZ(10),...t},i=e.store.addPage(r),o=e.store.pages.indexOf(e);i.setZIndex(o+1),i.select()},setZIndex(t){e.store.setPageZIndex(e.id,t)},set(t){Object.assign(e,t)},select(){e.store.selectPage(e.id)},addElement(t){let n=Ar[t.type];if(!n){console.error("Can not find model with type "+t.type);return}t.children&&t.children.forEach(e=>{e.id=OZ(10)});let r=n.create({id:OZ(10),...t});return e.children.push(r),r.selectable&&e.store.selectElements([r.id]),r},canMoveElementsUp(t){let n=!1;return e._forEachElementUp(t,()=>{n=n||!0}),n},moveElementsUp(t){e._forEachElementUp(t,t=>{let n=e.children[t];(0,OU.detach)(n),e.children.splice(t+1,0,n)})},canMoveElementsTop(e){return this.canMoveElementsUp(e)},moveElementsTop(t){// take all top elements and rest eleemnts
6299
6300
  let n=[],r=[];e.children.forEach(e=>{t.indexOf(e.id)>=0?n.push(e):r.push(e)}),e.children.replace(r.concat(n))},canMoveElementsDown(t){let n=!1;return e._forEachElementDown(t,()=>{n=n||!0}),n},moveElementsDown(t){e._forEachElementDown(t,t=>{let n=e.children[t];(0,OU.detach)(n),// TODO: why can't we use remove?
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PositionPicker=void 0;const react_1=__importDefault(require("react")),mobx_react_lite_1=require("mobx-react-lite"),core_1=require("@blueprintjs/core"),core_2=require("@blueprintjs/core"),math_1=require("../utils/math"),l10n_1=require("../utils/l10n");exports.PositionPicker=(0,mobx_react_lite_1.observer)((({store:e})=>{var t,l,o,n;const i=e.selectedElements.length>0,a=e.selectedElementsIds,c=e.selectedElements.every((e=>e.draggable)),r=!e.selectedElements.some((e=>"group"===e.type))&&c;r&&e.selectedElements.length;return react_1.default.createElement(core_2.Popover,{disabled:!i,content:react_1.default.createElement(core_1.Menu,null,react_1.default.createElement(core_1.MenuDivider,{title:(0,l10n_1.t)("toolbar.layering")}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"double-chevron-up",text:(0,l10n_1.t)("toolbar.toForward"),disabled:!(null===(t=e.activePage)||void 0===t?void 0:t.canMoveElementsTop(a)),onClick:()=>{var t;null===(t=e.activePage)||void 0===t||t.moveElementsTop(a)}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"chevron-up",text:(0,l10n_1.t)("toolbar.up"),disabled:!(null===(l=e.activePage)||void 0===l?void 0:l.canMoveElementsUp(a)),onClick:()=>{var t;null===(t=e.activePage)||void 0===t||t.moveElementsUp(a)}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"chevron-down",text:(0,l10n_1.t)("toolbar.down"),disabled:!(null===(o=e.activePage)||void 0===o?void 0:o.canMoveElementsDown(a)),onClick:()=>{var t;null===(t=e.activePage)||void 0===t||t.moveElementsDown(a)}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"double-chevron-down",text:(0,l10n_1.t)("toolbar.toBottom"),disabled:!(null===(n=e.activePage)||void 0===n?void 0:n.canMoveElementsBottom(a)),onClick:()=>{var t;null===(t=e.activePage)||void 0===t||t.moveElementsBottom(a)}}),r&&react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(core_1.MenuDivider,{title:(0,l10n_1.t)("toolbar.position")}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-left",text:(0,l10n_1.t)("toolbar.alignLeft"),onClick:()=>{var t;let l=null===(t=e.activePage)||void 0===t?void 0:t.computedWidth;e.selectedElements.forEach((e=>{l=Math.min(l,(0,math_1.getClientRect)(e).x)})),1===e.selectedElements.length&&(l=0),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({x:e.x-t.x+l})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-vertical-center",text:(0,l10n_1.t)("toolbar.alignCenter"),onClick:()=>{var t,l;let o=null===(t=e.activePage)||void 0===t?void 0:t.computedWidth,n=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);o=Math.min(o,t.x),n=Math.max(n,t.x+t.width)}));let i=(n+o)/2;1===e.selectedElements.length&&(i=(null===(l=e.activePage)||void 0===l?void 0:l.computedWidth)/2),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e),l=e.x-t.x;e.set({x:i+l-t.width/2})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-right",text:(0,l10n_1.t)("toolbar.alignRight"),onClick:()=>{var t;let l=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);l=Math.max(l,t.x+t.width)})),1===e.selectedElements.length&&(l=null===(t=e.activePage)||void 0===t?void 0:t.computedWidth),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({x:e.x-t.x+l-t.width})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-top",text:(0,l10n_1.t)("toolbar.alignTop"),onClick:()=>{var t;let l=null===(t=e.activePage)||void 0===t?void 0:t.computedHeight;e.selectedElements.forEach((e=>{l=Math.min(l,(0,math_1.getClientRect)(e).y)})),1===e.selectedElements.length&&(l=0),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({y:e.y-t.y+l})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-horizontal-center",text:(0,l10n_1.t)("toolbar.alignMiddle"),onClick:()=>{var t,l;let o=null===(t=e.activePage)||void 0===t?void 0:t.computedHeight,n=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);o=Math.min(o,t.y),n=Math.max(n,t.y+t.height)}));let i=(n+o)/2;1===e.selectedElements.length&&(i=(null===(l=e.activePage)||void 0===l?void 0:l.computedHeight)/2),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e),l=e.y-t.y;e.set({y:i+l-t.height/2})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-bottom",text:(0,l10n_1.t)("toolbar.alignBottom"),onClick:()=>{var t;let l=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);l=Math.max(l,t.y+t.height)})),1===e.selectedElements.length&&(l=null===(t=e.activePage)||void 0===t?void 0:t.computedHeight),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({y:e.y-t.y+l-t.height})}))}})),r&&react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(core_1.MenuDivider,{title:(0,l10n_1.t)("toolbar.spaceEvenly")}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"vertical-distribution",text:(0,l10n_1.t)("toolbar.verticalDistribution"),onClick:()=>{var t;let l=null===(t=e.activePage)||void 0===t?void 0:t.computedHeight,o=0,n=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);l=Math.min(l,t.y),o=Math.max(o,t.y+t.height),n+=t.height}));const i=(o-l-n)/(e.selectedElements.length-1),a=e.selectedElements.slice().sort(((e,t)=>{const l=(0,math_1.getClientRect)(e),o=(0,math_1.getClientRect)(t);return l.y-o.y}));let c=0;a.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({y:e.y-t.y+l+c}),c+=t.height+i}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"horizontal-distribution",text:(0,l10n_1.t)("toolbar.horizontalDistribution"),onClick:()=>{var t;let l=null===(t=e.activePage)||void 0===t?void 0:t.computedWidth,o=0,n=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);l=Math.min(l,t.x),o=Math.max(o,t.x+t.width),n+=t.width}));const i=(o-l-n)/(e.selectedElements.length-1),a=e.selectedElements.slice().sort(((e,t)=>{const l=(0,math_1.getClientRect)(e),o=(0,math_1.getClientRect)(t);return l.x-o.x}));let c=0;a.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({x:e.x-t.x+l+c}),c+=t.width+i}))}}))),position:core_1.Position.BOTTOM},react_1.default.createElement(core_1.Button,{icon:"layers",minimal:!0,text:(0,l10n_1.t)("toolbar.position"),disabled:!i}))}));
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PositionPicker=void 0;const react_1=__importDefault(require("react")),mobx_react_lite_1=require("mobx-react-lite"),core_1=require("@blueprintjs/core"),core_2=require("@blueprintjs/core"),math_1=require("../utils/math"),l10n_1=require("../utils/l10n");exports.PositionPicker=(0,mobx_react_lite_1.observer)((({store:e})=>{var t,l,o,n;const a=e.selectedElements.length>0,i=e.selectedElementsIds,c=e.selectedElements.every((e=>e.draggable)),r=!e.selectedElements.some((e=>"group"===e.type))&&c,s=(r&&e.selectedElements.length,r&&e.selectedElements.length>1);return react_1.default.createElement(core_2.Popover,{disabled:!a,content:react_1.default.createElement(core_1.Menu,{style:{width:"280px"}},react_1.default.createElement(core_1.MenuDivider,{title:(0,l10n_1.t)("toolbar.layering")}),react_1.default.createElement("div",{style:{display:"flex"}},react_1.default.createElement("div",{style:{width:"50%"}},react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"chevron-up",text:(0,l10n_1.t)("toolbar.up"),disabled:!(null===(t=e.activePage)||void 0===t?void 0:t.canMoveElementsUp(i)),onClick:()=>{var t;null===(t=e.activePage)||void 0===t||t.moveElementsUp(i)}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"double-chevron-up",text:(0,l10n_1.t)("toolbar.toForward"),disabled:!(null===(l=e.activePage)||void 0===l?void 0:l.canMoveElementsTop(i)),onClick:()=>{var t;null===(t=e.activePage)||void 0===t||t.moveElementsTop(i)}})),react_1.default.createElement("div",{style:{width:"50%"}},react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"chevron-down",text:(0,l10n_1.t)("toolbar.down"),disabled:!(null===(o=e.activePage)||void 0===o?void 0:o.canMoveElementsDown(i)),onClick:()=>{var t;null===(t=e.activePage)||void 0===t||t.moveElementsDown(i)}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"double-chevron-down",text:(0,l10n_1.t)("toolbar.toBottom"),disabled:!(null===(n=e.activePage)||void 0===n?void 0:n.canMoveElementsBottom(i)),onClick:()=>{var t;null===(t=e.activePage)||void 0===t||t.moveElementsBottom(i)}}))),r&&react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(core_1.MenuDivider,{title:(0,l10n_1.t)("toolbar.position")}),react_1.default.createElement("div",{style:{display:"flex"}},react_1.default.createElement("div",{style:{width:"50%"}},react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-left",text:(0,l10n_1.t)("toolbar.alignLeft"),onClick:()=>{var t;let l=null===(t=e.activePage)||void 0===t?void 0:t.computedWidth;e.selectedElements.forEach((e=>{l=Math.min(l,(0,math_1.getClientRect)(e).x)})),1===e.selectedElements.length&&(l=0),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({x:e.x-t.x+l})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-vertical-center",text:(0,l10n_1.t)("toolbar.alignCenter"),onClick:()=>{var t,l;let o=null===(t=e.activePage)||void 0===t?void 0:t.computedWidth,n=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);o=Math.min(o,t.x),n=Math.max(n,t.x+t.width)}));let a=(n+o)/2;1===e.selectedElements.length&&(a=(null===(l=e.activePage)||void 0===l?void 0:l.computedWidth)/2),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e),l=e.x-t.x;e.set({x:a+l-t.width/2})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-right",text:(0,l10n_1.t)("toolbar.alignRight"),onClick:()=>{var t;let l=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);l=Math.max(l,t.x+t.width)})),1===e.selectedElements.length&&(l=null===(t=e.activePage)||void 0===t?void 0:t.computedWidth),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({x:e.x-t.x+l-t.width})}))}})),react_1.default.createElement("div",{style:{width:"50%"}},react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-top",text:(0,l10n_1.t)("toolbar.alignTop"),onClick:()=>{var t;let l=null===(t=e.activePage)||void 0===t?void 0:t.computedHeight;e.selectedElements.forEach((e=>{l=Math.min(l,(0,math_1.getClientRect)(e).y)})),1===e.selectedElements.length&&(l=0),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({y:e.y-t.y+l})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-horizontal-center",text:(0,l10n_1.t)("toolbar.alignMiddle"),onClick:()=>{var t,l;let o=null===(t=e.activePage)||void 0===t?void 0:t.computedHeight,n=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);o=Math.min(o,t.y),n=Math.max(n,t.y+t.height)}));let a=(n+o)/2;1===e.selectedElements.length&&(a=(null===(l=e.activePage)||void 0===l?void 0:l.computedHeight)/2),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e),l=e.y-t.y;e.set({y:a+l-t.height/2})}))}}),react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"alignment-bottom",text:(0,l10n_1.t)("toolbar.alignBottom"),onClick:()=>{var t;let l=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);l=Math.max(l,t.y+t.height)})),1===e.selectedElements.length&&(l=null===(t=e.activePage)||void 0===t?void 0:t.computedHeight),e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({y:e.y-t.y+l-t.height})}))}})))),s&&react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(core_1.MenuDivider,{title:(0,l10n_1.t)("toolbar.spaceEvenly")}),react_1.default.createElement("div",{style:{display:"flex"}},react_1.default.createElement("div",{style:{width:"50%"}}," ",react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"vertical-distribution",text:(0,l10n_1.t)("toolbar.verticalDistribution"),onClick:()=>{var t;let l=null===(t=e.activePage)||void 0===t?void 0:t.computedHeight,o=0,n=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);l=Math.min(l,t.y),o=Math.max(o,t.y+t.height),n+=t.height}));const a=(o-l-n)/(e.selectedElements.length-1),i=e.selectedElements.slice().sort(((e,t)=>{const l=(0,math_1.getClientRect)(e),o=(0,math_1.getClientRect)(t);return l.y-o.y}));let c=0;i.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({y:e.y-t.y+l+c}),c+=t.height+a}))}})),react_1.default.createElement("div",{style:{width:"50%"}},react_1.default.createElement(core_1.MenuItem,{shouldDismissPopover:!1,icon:"horizontal-distribution",text:(0,l10n_1.t)("toolbar.horizontalDistribution"),onClick:()=>{var t;let l=null===(t=e.activePage)||void 0===t?void 0:t.computedWidth,o=0,n=0;e.selectedElements.forEach((e=>{const t=(0,math_1.getClientRect)(e);l=Math.min(l,t.x),o=Math.max(o,t.x+t.width),n+=t.width}));const a=(o-l-n)/(e.selectedElements.length-1),i=e.selectedElements.slice().sort(((e,t)=>{const l=(0,math_1.getClientRect)(e),o=(0,math_1.getClientRect)(t);return l.x-o.x}));let c=0;i.forEach((e=>{const t=(0,math_1.getClientRect)(e);e.set({x:e.x-t.x+l+c}),c+=t.width+a}))}})))))},react_1.default.createElement(core_1.Button,{icon:"layers",minimal:!0,text:(0,l10n_1.t)("toolbar.position"),disabled:!a}))}));