@grapesjs/studio-sdk-plugins 1.0.22 → 1.0.23

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,10 +1,11 @@
1
- "use strict";const U="app.grapesjs.com",G="app-stage.grapesjs.com",x=[U,G,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],N="license:check:start",z="license:check:end",K=()=>typeof window<"u",j=(e,n={})=>{const t=V(e)?{id:e,src:e}:e;return new Promise((s,a)=>{var p,g;const o=document.querySelector(`script[src="${t.src}"]`),{id:i}=t;if(o)return(p=n.onScript)==null||p.call(n,o),s(i);const r=document.createElement("script");r.src=t.src,r.onload=()=>s(i),r.onerror=()=>a(i),document.head.appendChild(r),(g=n.onScript)==null||g.call(n,r)})},C=({isDev:e,isStage:n})=>`${e?"":`https://${n?G:U}`}/api`,q=()=>{const e=K()&&window.location.hostname;return!!e&&(x.includes(e)||x.some(n=>e.endsWith(n)))},V=e=>typeof e=="string";async function Y({path:e,baseApiUrl:n,method:t="GET",headers:s={},params:a,body:o}){const r=`${n||C({isDev:!1,isStage:!1})}${e}`,p={method:t,headers:{"Content-Type":"application/json",...s}};o&&(p.body=JSON.stringify(o));const g=a?new URLSearchParams(a).toString():"",c=g?`?${g}`:"",u=await fetch(`${r}${c}`,p);if(!u.ok)throw new Error(`HTTP error! status: ${u.status}`);return u.json()}var E=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(E||{}),O=(e=>(e.toastAdd="studio:toastAdd",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.projectFiles="studio:projectFiles",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(O||{});const H={[E.free]:0,[E.startup]:10,[E.business]:20,[E.enterprise]:30};function J(e){const n=e;return n.init=t=>s=>e(s,t),n}const X=e=>J(e);async function Z({editor:e,plan:n,pluginName:t,licenseKey:s,cleanup:a}){let o="",i=!1;const r=q(),p=c=>{console.warn("Cleanup plugin:",t,"Reason:",c),a()},g=(c={})=>{var l;const{error:u,sdkLicense:d}=c,f=(l=c.plan)==null?void 0:l.category;if(!(d||c.license)||u)p(u||"Invalid license");else if(f){const v=H[n],A=H[f];v>A&&p({pluginRequiredPlan:n,licensePlan:f})}};e.on(N,c=>{o=c==null?void 0:c.baseApiUrl,i=!0}),e.on(z,c=>{g(c)}),setTimeout(async()=>{if(!i){if(r)return;if(s){const c=await Q({licenseKey:s,pluginName:t,baseApiUrl:o});c&&g(c)}else p("The `licenseKey` option not provided")}},2e3)}async function Q(e){const{licenseKey:n,pluginName:t,baseApiUrl:s}=e;try{return(await Y({baseApiUrl:s,path:`/sdk/${n||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(a){return console.error("Error during SDK license check:",a),!1}}const ee=e=>n=>{var t;return((t=n.getAttribute)==null?void 0:t.call(n,W))===e},te=(...e)=>(n,t)=>e.some(s=>t.is(s)),F=(e,n,t)=>{const{doc:s=document}=t,a=t.target||s.head,o=a.querySelector(`style[${e}]`)||s.createElement("style");o.setAttribute(e,"true"),o.innerHTML=n,!a.contains(o)&&a.appendChild(o)},se="gjs-plg-",I="data-gs-plg-",W="data-type-role";function _(e,n,t){let s,a,o,i,r;const p=n===void 0?100:n;function g(){const u=Date.now()-i;u<p&&u>=0?s=setTimeout(g,p-u):(s=null,r=e.apply(o,a),o=a=null)}const c=function(){return o=this,a=arguments,i=Date.now(),s||(s=setTimeout(g,p)),r};return c.clear=function(){s&&(clearTimeout(s),s=null)},c.flush=function(){s&&(r=e.apply(o,a),o=a=null,clearTimeout(s),s=null)},c}const P="page-break";function L(e,n){const s={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return s[n]?e*s[n]:null}const ne=(e,n)=>{const{name:t,id:s,width:a,height:o,unit:i}=e,{fixedHeight:r}=n,p=`${a}${i}`,g=`${o}${i}`;return{id:s||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${p} x ${g})`,sizeH:o,sizeW:a,sizeUnit:i,widthMedia:"",width:p,minHeight:r?"0":`${L(o,i)}px`,height:r?g:void 0}},$="page-breaks",R="gjs-page-breaks-spot",S=e=>e.type===$;function oe(e){const{Devices:n}=e,{height:t,minHeight:s}=n.getSelected().attributes,o=parseFloat(`${t&&t!=="auto"?t:s}`),i=e.getWrapper(),r=i==null?void 0:i.getEl(),p=[];if(!i||!r)return p;const g=r.getBoundingClientRect().height,u=i.findType(P).map(f=>f.getEl()).filter(Boolean).map(f=>({top:f.offsetTop,height:f.offsetHeight}));let d=0;for(;d<g;){const f=u.find(m=>m.top>d&&m.top<d+o);f?(d=f.top+f.height,p.push(f.top)):(d+=o,d<g&&p.push(d))}return p}function ae(e,n){const{Canvas:t}=e,s=t.events,a=e.events;let o;const i=()=>{F(`${I}preset-printable-spots`,`.${R} {
1
+ "use strict";const N="app.grapesjs.com",W="app-stage.grapesjs.com",G=[N,W,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],V="license:check:start",Y="license:check:end",J=()=>typeof window<"u",M=(e,n={})=>{const t=Q(e)?{id:e,src:e}:e;return new Promise((s,a)=>{var l,p;const o=document.querySelector(`script[src="${t.src}"]`),{id:r}=t;if(o)return(l=n.onScript)==null||l.call(n,o),s(r);const i=document.createElement("script");i.src=t.src,i.onload=()=>s(r),i.onerror=()=>a(r),document.head.appendChild(i),(p=n.onScript)==null||p.call(n,i)})},X=({isDev:e,isStage:n})=>`${e?"":`https://${n?W:N}`}/api`,Z=()=>{const e=J()&&window.location.hostname;return!!e&&(G.includes(e)||G.some(n=>e.endsWith(n)))},Q=e=>typeof e=="string";async function ee({path:e,baseApiUrl:n,method:t="GET",headers:s={},params:a,body:o}){const i=`${n||X({isDev:!1,isStage:!1})}${e}`,l={method:t,headers:{"Content-Type":"application/json",...s}};o&&(l.body=JSON.stringify(o));const p=a?new URLSearchParams(a).toString():"",g=p?`?${p}`:"",d=await fetch(`${i}${g}`,l);if(!d.ok)throw new Error(`HTTP error! status: ${d.status}`);return d.json()}var B=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(B||{}),z=(e=>(e.toastAdd="studio:toastAdd",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.projectFiles="studio:projectFiles",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(z||{});const O={[B.free]:0,[B.startup]:10,[B.business]:20,[B.enterprise]:30};function te(e){const n=e;return n.init=t=>s=>e(s,t),n}const se=e=>te(e);async function ne({editor:e,plan:n,pluginName:t,licenseKey:s,cleanup:a}){let o="",r=!1;const i=Z(),l=g=>{console.warn("Cleanup plugin:",t,"Reason:",g),a()},p=(g={})=>{var w;const{error:d,sdkLicense:u}=g,f=(w=g.plan)==null?void 0:w.category;if(!(u||g.license)||d)l(d||"Invalid license");else if(f){const c=O[n],h=O[f];c>h&&l({pluginRequiredPlan:n,licensePlan:f})}};e.on(V,g=>{o=g==null?void 0:g.baseApiUrl,r=!0}),e.on(Y,g=>{p(g)}),setTimeout(async()=>{if(!r){if(i)return;if(s){const g=await oe({licenseKey:s,pluginName:t,baseApiUrl:o});g&&p(g)}else l("The `licenseKey` option not provided")}},2e3)}async function oe(e){const{licenseKey:n,pluginName:t,baseApiUrl:s}=e;try{return(await ee({baseApiUrl:s,path:`/sdk/${n||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(a){return console.error("Error during SDK license check:",a),!1}}const ae=e=>n=>{var t;return((t=n.getAttribute)==null?void 0:t.call(n,q))===e},re=(...e)=>(n,t)=>e.some(s=>t.is(s)),K=(e,n,t)=>{const{doc:s=document}=t,a=t.target||s.head,o=a.querySelector(`style[${e}]`)||s.createElement("style");o.setAttribute(e,"true"),o.innerHTML=n,!a.contains(o)&&a.appendChild(o)},ie="gjs-plg-",C="data-gs-plg-",q="data-type-role";function I(e,n,t){let s,a,o,r,i;const l=n===void 0?100:n;function p(){const d=Date.now()-r;d<l&&d>=0?s=setTimeout(p,l-d):(s=null,i=e.apply(o,a),o=a=null)}const g=function(){return o=this,a=arguments,r=Date.now(),s||(s=setTimeout(p,l)),i};return g.clear=function(){s&&(clearTimeout(s),s=null)},g.flush=function(){s&&(i=e.apply(o,a),o=a=null,clearTimeout(s),s=null)},g}const A="page-break";var m=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(m||{});function D(e,n){const s={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return s[n]?e*s[n]:null}const ce=(e,n)=>{const{name:t,id:s,width:a,height:o,unit:r}=e,{fixedHeight:i}=n,l=`${a}${r}`,p=`${o}${r}`;return{id:s||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${l} x ${p})`,sizeH:o,sizeW:a,sizeUnit:r,widthMedia:"",width:l,minHeight:i?"0":`${D(o,r)}px`,height:i?p:void 0}},H="page-breaks",$="gjs-page-breaks-spot",j=e=>e.type===H;function le(e){const{Devices:n}=e,{height:t,minHeight:s}=n.getSelected().attributes,o=parseFloat(`${t&&t!=="auto"?t:s}`),r=e.getWrapper(),i=r==null?void 0:r.getEl(),l=[];if(!r||!i)return l;const p=i.getBoundingClientRect().height,d=r.findType(A).map(f=>f.getEl()).filter(Boolean).map(f=>({top:f.offsetTop,height:f.offsetHeight}));let u=0;for(;u<p;){const f=d.find(y=>y.top>u&&y.top<u+o);f?(u=f.top+f.height,l.push(f.top)):(u+=o,u<p&&l.push(u))}return l}function pe(e,n){const{Canvas:t}=e,s=t.events,a=e.events;let o;const r=()=>{K(`${C}preset-printable-spots`,`.${$} {
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 100%;
5
5
  border-top: 1px dashed var(--gs-theme-cl-cmp-bg2, var(--gjs-color-blue));
6
+ color: var(--gs-theme-cl-prm-txt, var(--gjs-font-color));
6
7
  }
7
- .${R}::after {
8
+ .${$}::after {
8
9
  background-color: var(--gs-theme-cl-cmp-bg1, var(--gjs-color-highlight));
9
10
  content: attr(data-page-number);
10
11
  display: block;
@@ -15,9 +16,9 @@
15
16
  right: 0;
16
17
  transform: translate(100%, -50%);
17
18
  }
18
- `,{target:window.document.head})},r=()=>{if(n.enablePageBreaksSpot===!1)return;const l={id:$,type:$,component:e.getWrapper()};return t.getSpots(l).pop()||t.addSpot(l)},p=({spot:l})=>{const{spotEl:v}=l.attributes;!S(l)||!v||!o||o.removeChild(v)},g=({spot:l})=>{if(!S(l)||!o)return;let{spotEl:v}=l.attributes;v||(v=document.createElement("div"),v.className=`${R}__items`,l.set({spotEl:v})),o.appendChild(v)},c=({spot:l})=>{const{spotEl:v,pageBreaks:A=[]}=l.attributes;!S(l)||!v||!o||(Object.entries(l.getStyle()).forEach(([T,b])=>v.style.setProperty(T,b)),v.innerHTML="",A.forEach((T,b)=>{const h=document.createElement("div");h.setAttribute("data-page-number",`${b+2}`),h.className=R,h.style.top=`${T}px`,v.appendChild(h)}))},u=_(()=>{if(e.em.destroyed)return;const l=r();l&&l.set({pageBreaks:oe(e),up:(l.attributes.up||0)+1})},150),d=_(u,200),f=()=>{o=t.getSpotsEl(),r()},m=[["component:input",u],[a.update,u],[s.spotAdd,g],[s.spotUpdate,c],[s.spotRemove,p],[s.frameLoadBody,f]];return m.forEach(([l,v])=>e.on(l,v)),e.onReady(()=>{i(),new ResizeObserver(d).observe(t.getElement().parentElement)}),()=>{m.forEach(([l,v])=>e.off(l,v)),u.clear(),d.clear()}}var D=(e=>(e.print="presetPrintable:print",e))(D||{});const M=e=>new Promise(n=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>n(t),document.body.appendChild(t)});function ie(e,n){const{Commands:t,Pages:s}=e;return t.add(D.print,async(a,o,i={})=>{const r={page:i.allPages?void 0:s.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(O.projectFiles,r)).filter(d=>d.filename.endsWith(".html")),c=g.map(d=>d.content).join('<div style="break-before: page;"></div>'),u=[];if(i.separatePrints)for(const d of g)u.push(await M(d));else u.push(await M({content:c,filename:"",mimeType:""}));for(const d of u){const f=d.contentWindow;f.focus(),f.print()}setTimeout(()=>u.forEach(d=>d.remove()),1e3)}),t.add("presetPrintable:exp",async a=>{await j("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await j("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:o,Canvas:i}=a,{sizeW:r,sizeH:p,sizeUnit:g}=o.getSelected().attributes,c=i.getFrameEl().contentDocument,u="px",d=[L(r,g),L(p,g)],f=new window.jspdf.jsPDF({unit:u,format:d}),m=c.body;f.html(m,{callback:l=>l.save()})}),()=>{delete e.Commands.commands[D.print]}}function re(e,n){const{blockPageBreak:t={}}=n,{Components:s,Blocks:a}=e,o="Page Break",i=`${se}${P}`;return s.addType(P,{block:t&&{label:o,media:'<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',category:"Extra",select:!0,...t},isComponent:ee(P),model:{defaults:{name:o,classes:i,attributes:{[W]:P},emptyState:!0,stylable:!1,droppable:!1,draggable:te("wrapper"),styles:`.${i} { break-before: page; }`,traits:[]}}}),()=>{s.removeType(P),a.remove(P)}}const ce="presetPrintable",le=function(e,n={}){const t={selectedDevice:"a4",...n},{Canvas:s,Devices:a}=e,o=s.events,i=e.events,r=t.selectedDevice||a.getConfig().default,g=[{name:"A5",width:148,height:210,unit:"mm"},{name:"A5 Portrait",width:210,height:148,unit:"mm"},{name:"A4",width:210,height:297,unit:"mm"},{name:"A3",width:297,height:420,unit:"mm"},{name:"B5",width:176,height:250,unit:"mm"},{name:"B4",width:250,height:353,unit:"mm"},{name:"Letter",width:8.5,height:11,unit:"in"},{name:"Legal",width:8.5,height:14,unit:"in"},{name:"Ledger",width:11,height:17,unit:"in"}].map(b=>ne(b,t));a.devices.reset(g);const c=r&&a.get(r)||a.getAll().at(0);a.select(c);const u=()=>{const b="page-rule",{rules:h}=e.Css,{width:w,height:y,minHeight:k}=a.getSelected().attributes,B=y&&y!=="auto"?y:k;(h.where({id:b}).pop()||h.add({id:b,selectors:[],selectorsAdd:"@page"},{at:0})).setStyle({size:`${w} ${B}`,margin:"0"})},d=b=>{const h=b.document,{minHeight:w}=a.getSelected().attributes,k=`
19
- ${!!parseFloat(`${w}`)?`
20
- [data-gjs-type="wrapper"] { min-height: ${w}; }
19
+ `,{target:window.document.head})},i=()=>{if(n.enablePageBreaksSpot===!1)return;const c={id:H,type:H,component:e.getWrapper()};return t.getSpots(c).pop()||t.addSpot(c)},l=({spot:c})=>{const{spotEl:h}=c.attributes;!j(c)||!h||!o||o.removeChild(h)},p=({spot:c})=>{if(!j(c)||!o)return;let{spotEl:h}=c.attributes;h||(h=document.createElement("div"),h.className=`${$}__items`,c.set({spotEl:h})),o.appendChild(h)},g=({spot:c})=>{const{spotEl:h,pageBreaks:x=[]}=c.attributes;!j(c)||!h||!o||(Object.entries(c.getStyle()).forEach(([k,R])=>h.style.setProperty(k,R)),h.innerHTML="",x.forEach((k,R)=>{const T=document.createElement("div");T.setAttribute("data-page-number",`${R+2}`),T.className=$,T.style.top=`${k}px`,h.appendChild(T)}))},d=I(()=>{if(e.em.destroyed)return;const c=i();c&&c.set({pageBreaks:le(e),up:(c.attributes.up||0)+1})},150),u=I(d,200),f=()=>{o=t.getSpotsEl(),i()},y=()=>{const c=i();c&&c.set({up:(c.attributes.up||0)+1})},w=[["component:input",d],["frame:scroll",y],[a.update,d],[s.spotAdd,p],[s.spotUpdate,g],[s.spotRemove,l],[s.frameLoadBody,f]];return w.forEach(([c,h])=>e.on(c,h)),e.onReady(()=>{r(),new ResizeObserver(y).observe(t.getElement().parentElement)}),()=>{w.forEach(([c,h])=>e.off(c,h)),d.clear(),u.clear()}}var _=(e=>(e.print="presetPrintable:print",e))(_||{});const F=e=>new Promise(n=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>n(t),document.body.appendChild(t)});function ge(e,n){const{Commands:t,Pages:s}=e;return t.add(_.print,async(a,o,r={})=>{const i={page:r.allPages?void 0:s.getSelected(),styles:"inline",optionsHtml:{exporter:null}},p=(await t.run(z.projectFiles,i)).filter(u=>u.filename.endsWith(".html")),g=p.map(u=>u.content).join('<div style="break-before: page;"></div>'),d=[];if(r.separatePrints)for(const u of p)d.push(await F(u));else d.push(await F({content:g,filename:"",mimeType:""}));for(const u of d){const f=u.contentWindow;f.focus(),f.print()}setTimeout(()=>d.forEach(u=>u.remove()),1e3)}),t.add("presetPrintable:exp",async a=>{await M("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await M("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:o,Canvas:r}=a,{sizeW:i,sizeH:l,sizeUnit:p}=o.getSelected().attributes,g=r.getFrameEl().contentDocument,d="px",u=[D(i,p),D(l,p)],f=new window.jspdf.jsPDF({unit:d,format:u}),y=g.body;f.html(y,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[_.print]}}function de(e,n){const{blockPageBreak:t={}}=n,{Components:s,Blocks:a}=e,o="Page Break",r=`${ie}${A}`;return s.addType(A,{block:t&&{label:o,media:'<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',category:"Extra",select:!0,...t},isComponent:ae(A),model:{defaults:{name:o,classes:r,attributes:{[q]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:re("wrapper"),styles:`.${r} { break-before: page; }`,traits:[]}}}),()=>{s.removeType(A),a.remove(A)}}const ue="presetPrintable",he=B.free,fe=function(e,n={}){var U;const t={selectedDevice:m.A4,...n},{Canvas:s,Devices:a,Blocks:o}=e,r=s.events,i=e.events,l=t.selectedDevice||a.getConfig().default,p=[{id:m.A5,name:"A5",width:148,height:210,unit:"mm"},{id:m.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:m.A4,name:"A4",width:210,height:297,unit:"mm"},{id:m.A3,name:"A3",width:297,height:420,unit:"mm"},{id:m.B5,name:"B5",width:176,height:250,unit:"mm"},{id:m.B4,name:"B4",width:250,height:353,unit:"mm"},{id:m.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:m.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:m.ledger,name:"Ledger",width:11,height:17,unit:"in"}],d=(((U=t.devices)==null?void 0:U.call(t,{items:p}))||p).map(v=>ce(v,t));a.devices.reset(d);const u=l&&a.get(l)||a.getAll().at(0);a.select(u),["map","video"].forEach(v=>o.remove(v));const y=()=>{const v="page-rule",{rules:b}=e.Css,{width:E,height:P,minHeight:L}=a.getSelected().attributes,S=P&&P!=="auto"?P:L;(b.where({id:v}).pop()||b.add({id:v,selectors:[],selectorsAdd:"@page"},{at:0})).setStyle({size:`${E} ${S}`,margin:"0"})},w=v=>{const b=v.document,{minHeight:E}=a.getSelected().attributes,L=`
20
+ ${!!parseFloat(`${E}`)?`
21
+ [data-gjs-type="wrapper"] { min-height: ${E}; }
21
22
  `:`
22
23
  body {
23
24
  overflow: hidden;
@@ -28,4 +29,4 @@
28
29
  height: 100dvh;
29
30
  }
30
31
  `}
31
- `;F(`${I}preset-printable`,k,{doc:h,target:h.head}),u()};e.on(o.frameLoadBody,b=>{const h=b.window;if(d(h),t.fixedHeight){const y=b.model.getComponent().getEl();y==null||y.addEventListener("scroll",k=>{const B=k.target;B.scrollTop>0&&B.scrollTo(0,0)})}}),e.on(a.events.select,()=>{var h;const b=(h=s.getFrameEl().contentDocument)==null?void 0:h.defaultView;b&&d(b)});const f=()=>{const h=e.Css.getRules().filter(w=>w.selectorsToString()==="body").pop();h==null||h.addStyle({"margin-top":"","margin-right":"","margin-bottom":"","margin-left":"",margin:"0"})},m=[[i.projectLoad,f]];m.forEach(([b,h])=>e.on(b,h));const l=ae(e,t),v=ie(e),A=re(e,t);e.onReady(()=>{e.UndoManager.clear()});const T=()=>{m.forEach(([b,h])=>e.off(b,h)),l(),v(),A()};e.on(i.destroy,T),Z({editor:e,licenseKey:t.licenseKey,plan:E.startup,pluginName:ce,cleanup:T})},pe=X(le);module.exports=pe;
32
+ `;K(`${C}preset-printable`,L,{doc:b,target:b.head}),y()};e.on(r.frameLoadBody,v=>{const b=v.window;if(w(b),t.fixedHeight){const P=v.model.getComponent().getEl();P==null||P.addEventListener("scroll",L=>{const S=L.target;S.scrollTop>0&&S.scrollTo(0,0)})}}),e.on(a.events.select,()=>{var b;const v=(b=s.getFrameEl().contentDocument)==null?void 0:b.defaultView;v&&w(v)});const c=()=>{const b=e.Css.getRules().filter(E=>E.selectorsToString()==="body").pop();b==null||b.addStyle({"margin-top":"","margin-right":"","margin-bottom":"","margin-left":"",margin:"0"})},h=[[i.projectLoad,c]];h.forEach(([v,b])=>e.on(v,b));const x=pe(e,t),k=ge(e),R=de(e,t);e.onReady(()=>{e.UndoManager.clear()});const T=()=>{h.forEach(([v,b])=>e.off(v,b)),x(),k(),R()};e.on(i.destroy,T),ne({editor:e,licenseKey:t.licenseKey,plan:he,pluginName:ue,cleanup:T})},ve=se(fe);module.exports=ve;