@grapesjs/studio-sdk-plugins 1.0.28 → 1.0.29

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.
Files changed (50) hide show
  1. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  2. package/dist/canvasAbsoluteMode/index.es.js +98 -97
  3. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  4. package/dist/canvasFullSize/index.cjs.js +8 -7
  5. package/dist/canvasFullSize/index.es.js +145 -138
  6. package/dist/canvasFullSize/index.umd.js +9 -8
  7. package/dist/canvasFullSize/typesSchema.d.ts +5 -0
  8. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  9. package/dist/googleFontsAssetProvider/index.es.js +11 -11
  10. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  11. package/dist/iconifyComponent/index.cjs.js +2 -2
  12. package/dist/iconifyComponent/index.es.js +13 -13
  13. package/dist/iconifyComponent/index.umd.js +2 -2
  14. package/dist/index.cjs.d.ts +1 -0
  15. package/dist/index.cjs.js +192 -95
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.es.d.ts +1 -0
  18. package/dist/index.es.js +7577 -7242
  19. package/dist/index.umd.js +192 -95
  20. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  21. package/dist/layoutSidebarButtons/index.es.js +156 -154
  22. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  23. package/dist/presetPrintable/index.cjs.js +4 -4
  24. package/dist/presetPrintable/index.es.js +59 -59
  25. package/dist/presetPrintable/index.umd.js +1 -1
  26. package/dist/prosemirror/index.cjs.js +5 -5
  27. package/dist/prosemirror/index.es.js +100 -100
  28. package/dist/prosemirror/index.umd.js +1 -1
  29. package/dist/rteTinyMce/index.cjs.js +2 -2
  30. package/dist/rteTinyMce/index.es.js +10 -10
  31. package/dist/rteTinyMce/index.umd.js +1 -1
  32. package/dist/shapeDividerComponent/index.cjs.d.ts +3 -0
  33. package/dist/shapeDividerComponent/index.cjs.js +97 -0
  34. package/dist/shapeDividerComponent/index.d.ts +3 -0
  35. package/dist/shapeDividerComponent/index.es.d.ts +3 -0
  36. package/dist/shapeDividerComponent/index.es.js +427 -0
  37. package/dist/shapeDividerComponent/index.umd.js +97 -0
  38. package/dist/shapeDividerComponent/shared.d.ts +3 -0
  39. package/dist/shapeDividerComponent/types.d.ts +10 -0
  40. package/dist/shapeDividerComponent/typesSchema.d.ts +9 -0
  41. package/dist/swiperComponent/index.cjs.js +9 -9
  42. package/dist/swiperComponent/index.es.js +130 -122
  43. package/dist/swiperComponent/index.umd.js +5 -5
  44. package/dist/tableComponent/index.cjs.js +1 -1
  45. package/dist/tableComponent/index.es.js +9 -9
  46. package/dist/tableComponent/index.umd.js +1 -1
  47. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  48. package/dist/youtubeAssetProvider/index.es.js +34 -34
  49. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  50. package/package.json +2 -2
@@ -1,11 +1,11 @@
1
- "use strict";const F="app.grapesjs.com",W="app-stage.grapesjs.com",V="app2.grapesjs.com",Y="app-stage2.grapesjs.com",G=[F,V,W,Y,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],J="license:check:start",X="license:check:end",Z=()=>typeof window<"u",U=(e,n={})=>{const t=te(e)?{id:e,src:e}:e;return new Promise((s,a)=>{var g,h;const{loadedScripts:o}=n,{id:i,src:d}=t,c=document.querySelector(`script[src="${d}"]`);if(c){if((g=n.onScript)==null||g.call(n,c),o&&!o.get(d)){c.addEventListener("load",()=>s(i)),c.addEventListener("error",()=>a(i));return}return s(i)}const u=window.define;window.define=void 0;const l=()=>{o==null||o.set(d,!0),window.define=u},r=document.createElement("script");r.src=d,r.onload=()=>{s(i),l()},r.onerror=()=>{a(i),l()},document.head.appendChild(r),(h=n.onScript)==null||h.call(n,r)})},Q=({isDev:e,isStage:n})=>`${e?"":`https://${n?W:F}`}/api`,ee=()=>{const e=Z()&&window.location.hostname;return!!e&&(G.includes(e)||G.some(n=>e.endsWith(n)))},te=e=>typeof e=="string";async function se({path:e,baseApiUrl:n,method:t="GET",headers:s={},params:a,body:o}){const d=`${n||Q({isDev:!1,isStage:!1})}${e}`,c={method:t,headers:{"Content-Type":"application/json",...s}};o&&(c.body=JSON.stringify(o));const u=a?new URLSearchParams(a).toString():"",l=u?`?${u}`:"",r=await fetch(`${d}${l}`,c);if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return r.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.toastRemove="studio:toastRemove",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 ne(e){const n=e;return n.init=t=>s=>e(s,t),n}const oe=e=>ne(e);async function ae({editor:e,plan:n,pluginName:t,licenseKey:s,cleanup:a}){let o="",i=!1;const d=ee(),c=l=>{console.warn("Cleanup plugin:",t,"Reason:",l),a()},u=(l={})=>{var w;const{error:r,sdkLicense:g}=l,h=(w=l.plan)==null?void 0:w.category;if(!(g||l.license)||r)c(r||"Invalid license");else if(h){const p=O[n],f=O[h];p>f&&c({pluginRequiredPlan:n,licensePlan:h})}};e.on(J,l=>{o=l==null?void 0:l.baseApiUrl,i=!0}),e.on(X,l=>{u(l)}),setTimeout(async()=>{if(!i){if(d)return;if(s){const l=await ie({licenseKey:s,pluginName:t,baseApiUrl:o});l&&u(l)}else c("The `licenseKey` option not provided")}},2e3)}async function ie(e){const{licenseKey:n,pluginName:t,baseApiUrl:s}=e;try{return(await se({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 re=e=>n=>{var t;return((t=n.getAttribute)==null?void 0:t.call(n,q))===e},ce=(...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)},le="gjs-plg-",C="data-gs-plg-",q="data-type-role";function I(e,n,t){let s,a,o,i,d;const c=n===void 0?100:n;function u(){const r=Date.now()-i;r<c&&r>=0?s=setTimeout(u,c-r):(s=null,d=e.apply(o,a),o=a=null)}const l=function(){return o=this,a=arguments,i=Date.now(),s||(s=setTimeout(u,c)),d};return l.clear=function(){s&&(clearTimeout(s),s=null)},l.flush=function(){s&&(d=e.apply(o,a),o=a=null,clearTimeout(s),s=null)},l}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 j(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 pe=(e,n)=>{const{name:t,id:s,width:a,height:o,unit:i}=e,{fixedHeight:d}=n,c=`${a}${i}`,u=`${o}${i}`;return{id:s||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${c} x ${u})`,sizeH:o,sizeW:a,sizeUnit:i,widthMedia:"",width:c,minHeight:d?"0":`${j(o,i)}px`,height:d?u:void 0}},_="page-breaks",$="gjs-page-breaks-spot",D=e=>e.type===_;function de(e){const{Devices:n}=e,{height:t,minHeight:s}=n.getSelected().attributes,o=parseFloat(`${t&&t!=="auto"?t:s}`),i=e.getWrapper(),d=i==null?void 0:i.getEl(),c=[];if(!i||!d)return c;const u=d.getBoundingClientRect().height,r=i.findType(A).map(h=>h.getEl()).filter(Boolean).map(h=>({top:h.offsetTop,height:h.offsetHeight}));let g=0;for(;g<u;){const h=r.find(y=>y.top>g&&y.top<g+o);h?(g=h.top+h.height,c.push(h.top)):(g+=o,g<u&&c.push(g))}return c}function ge(e,n){const{Canvas:t}=e,s=t.events,a=e.events;let o;const i=()=>{K(`${C}preset-printable-spots`,`.${$} {
1
+ "use strict";const F="app.grapesjs.com",W="app-stage.grapesjs.com",V="app2.grapesjs.com",Y="app-stage2.grapesjs.com",G=[F,V,W,Y,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],J="license:check:start",X="license:check:end",Z=()=>typeof window<"u",U=(e,n={})=>{const t=te(e)?{id:e,src:e}:e;return new Promise((s,a)=>{var g,h;const{loadedScripts:o}=n,{id:i,src:d}=t,c=document.querySelector(`script[src="${d}"]`);if(c){if((g=n.onScript)==null||g.call(n,c),o&&!o.get(d)){c.addEventListener("load",()=>s(i)),c.addEventListener("error",()=>a(i));return}return s(i)}const u=window.define;window.define=void 0;const l=()=>{o==null||o.set(d,!0),window.define=u},r=document.createElement("script");r.src=d,r.onload=()=>{s(i),l()},r.onerror=()=>{a(i),l()},document.head.appendChild(r),(h=n.onScript)==null||h.call(n,r)})},Q=({isDev:e,isStage:n})=>`${e?"":`https://${n?W:F}`}/api`,ee=()=>{const e=Z()&&window.location.hostname;return!!e&&(G.includes(e)||G.some(n=>e.endsWith(n)))},te=e=>typeof e=="string";async function se({path:e,baseApiUrl:n,method:t="GET",headers:s={},params:a,body:o}){const d=`${n||Q({isDev:!1,isStage:!1})}${e}`,c={method:t,headers:{"Content-Type":"application/json",...s}};o&&(c.body=JSON.stringify(o));const u=a?new URLSearchParams(a).toString():"",l=u?`?${u}`:"",r=await fetch(`${d}${l}`,c);if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return r.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.toastRemove="studio:toastRemove",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.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",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 ne(e){const n=e;return n.init=t=>s=>e(s,t),n}const oe=e=>ne(e);async function ae({editor:e,plan:n,pluginName:t,licenseKey:s,cleanup:a}){let o="",i=!1;const d=ee(),c=l=>{console.warn("Cleanup plugin:",t,"Reason:",l),a()},u=(l={})=>{var w;const{error:r,sdkLicense:g}=l,h=(w=l.plan)==null?void 0:w.category;if(!(g||l.license)||r)c(r||"Invalid license");else if(h){const p=O[n],f=O[h];p>f&&c({pluginRequiredPlan:n,licensePlan:h})}};e.on(J,l=>{o=l==null?void 0:l.baseApiUrl,i=!0}),e.on(X,l=>{u(l)}),setTimeout(async()=>{if(!i){if(d)return;if(s){const l=await ie({licenseKey:s,pluginName:t,baseApiUrl:o});l&&u(l)}else c("The `licenseKey` option not provided")}},2e3)}async function ie(e){const{licenseKey:n,pluginName:t,baseApiUrl:s}=e;try{return(await se({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 re=e=>n=>{var t;return((t=n.getAttribute)==null?void 0:t.call(n,q))===e},ce=(...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)},le="gjs-plg-",C="data-gs-plg-",q="data-type-role";function I(e,n,t){let s,a,o,i,d;const c=n===void 0?100:n;function u(){const r=Date.now()-i;r<c&&r>=0?s=setTimeout(u,c-r):(s=null,d=e.apply(o,a),o=a=null)}const l=function(){return o=this,a=arguments,i=Date.now(),s||(s=setTimeout(u,c)),d};return l.clear=function(){s&&(clearTimeout(s),s=null)},l.flush=function(){s&&(d=e.apply(o,a),o=a=null,clearTimeout(s),s=null)},l}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 j(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 pe=(e,n)=>{const{name:t,id:s,width:a,height:o,unit:i}=e,{fixedHeight:d}=n,c=`${a}${i}`,u=`${o}${i}`;return{id:s||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${c} x ${u})`,sizeH:o,sizeW:a,sizeUnit:i,widthMedia:"",width:c,minHeight:d?"0":`${j(o,i)}px`,height:d?u:void 0}},_="page-breaks",S="gjs-page-breaks-spot",D=e=>e.type===_;function de(e){const{Devices:n}=e,{height:t,minHeight:s}=n.getSelected().attributes,o=parseFloat(`${t&&t!=="auto"?t:s}`),i=e.getWrapper(),d=i==null?void 0:i.getEl(),c=[];if(!i||!d)return c;const u=d.getBoundingClientRect().height,r=i.findType(A).map(h=>h.getEl()).filter(Boolean).map(h=>({top:h.offsetTop,height:h.offsetHeight}));let g=0;for(;g<u;){const h=r.find(y=>y.top>g&&y.top<g+o);h?(g=h.top+h.height,c.push(h.top)):(g+=o,g<u&&c.push(g))}return c}function ge(e,n){const{Canvas:t}=e,s=t.events,a=e.events;let o;const i=()=>{K(`${C}preset-printable-spots`,`.${S} {
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
6
  color: var(--gs-theme-cl-prm-txt, var(--gjs-font-color));
7
7
  }
8
- .${$}::after {
8
+ .${S}::after {
9
9
  background-color: var(--gs-theme-cl-cmp-bg1, var(--gjs-color-highlight));
10
10
  content: attr(data-page-number);
11
11
  display: block;
@@ -16,7 +16,7 @@
16
16
  right: 0;
17
17
  transform: translate(100%, -50%);
18
18
  }
19
- `,{target:window.document.head})},d=()=>{if(n.enablePageBreaksSpot===!1)return;const p={id:_,type:_,component:e.getWrapper()};return t.getSpots(p).pop()||t.addSpot(p)},c=({spot:p})=>{const{spotEl:f}=p.attributes;!D(p)||!f||!o||o.removeChild(f)},u=({spot:p})=>{if(!D(p)||!o)return;let{spotEl:f}=p.attributes;f||(f=document.createElement("div"),f.className=`${$}__items`,p.set({spotEl:f})),o.appendChild(f)},l=({spot:p})=>{const{spotEl:f,pageBreaks:x=[]}=p.attributes;!D(p)||!f||!o||(Object.entries(p.getStyle()).forEach(([k,R])=>f.style.setProperty(k,R)),f.innerHTML="",x.forEach((k,R)=>{const T=document.createElement("div");T.setAttribute("data-page-number",`${R+2}`),T.className=$,T.style.top=`${k}px`,f.appendChild(T)}))},r=I(()=>{if(e.em.destroyed)return;const p=d();p&&p.set({pageBreaks:de(e),up:(p.attributes.up||0)+1})},150),g=I(r,200),h=()=>{o=t.getSpotsEl(),d()},y=()=>{const p=d();p&&p.set({up:(p.attributes.up||0)+1})},w=[["component:input",r],["frame:scroll",y],[a.update,r],[s.spotAdd,u],[s.spotUpdate,l],[s.spotRemove,c],[s.frameLoadBody,h]];return w.forEach(([p,f])=>e.on(p,f)),e.onReady(()=>{i(),new ResizeObserver(y).observe(t.getElement().parentElement)}),()=>{w.forEach(([p,f])=>e.off(p,f)),r.clear(),g.clear()}}var H=(e=>(e.print="presetPrintable:print",e))(H||{});const N=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 ue(e,n){const{Commands:t,Pages:s}=e;return t.add(H.print,async(a,o,i={})=>{const d={page:i.allPages?void 0:s.getSelected(),styles:"inline",optionsHtml:{exporter:null}},u=(await t.run(z.projectFiles,d)).filter(g=>g.filename.endsWith(".html")),l=u.map(g=>g.content).join('<div style="break-before: page;"></div>'),r=[];if(i.separatePrints)for(const g of u)r.push(await N(g));else r.push(await N({content:l,filename:"",mimeType:""}));for(const g of r){const h=g.contentWindow;h.focus(),h.print()}setTimeout(()=>r.forEach(g=>g.remove()),1e3)}),t.add("presetPrintable:exp",async a=>{await U("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await U("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:o,Canvas:i}=a,{sizeW:d,sizeH:c,sizeUnit:u}=o.getSelected().attributes,l=i.getFrameEl().contentDocument,r="px",g=[j(d,u),j(c,u)],h=new window.jspdf.jsPDF({unit:r,format:g}),y=l.body;h.html(y,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[H.print]}}function he(e,n){const{blockPageBreak:t={}}=n,{Components:s,Blocks:a}=e,o="Page Break",i=`${le}${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:re(A),model:{defaults:{name:o,classes:i,attributes:{[q]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:ce("wrapper"),styles:`.${i} { break-before: page; }`,traits:[]}}}),()=>{s.removeType(A),a.remove(A)}}const fe="presetPrintable",ve=B.free,be=function(e,n={}){var M;const t={selectedDevice:m.A4,...n},{Canvas:s,Devices:a,Blocks:o}=e,i=s.events,d=e.events,c=t.selectedDevice||a.getConfig().default,u=[{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"}],r=(((M=t.devices)==null?void 0:M.call(t,{items:u}))||u).map(v=>pe(v,t));a.devices.reset(r);const g=c&&a.get(c)||a.getAll().at(0);a.select(g),["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=`
19
+ `,{target:window.document.head})},d=()=>{if(n.enablePageBreaksSpot===!1)return;const p={id:_,type:_,component:e.getWrapper()};return t.getSpots(p).pop()||t.addSpot(p)},c=({spot:p})=>{const{spotEl:f}=p.attributes;!D(p)||!f||!o||o.removeChild(f)},u=({spot:p})=>{if(!D(p)||!o)return;let{spotEl:f}=p.attributes;f||(f=document.createElement("div"),f.className=`${S}__items`,p.set({spotEl:f})),o.appendChild(f)},l=({spot:p})=>{const{spotEl:f,pageBreaks:x=[]}=p.attributes;!D(p)||!f||!o||(Object.entries(p.getStyle()).forEach(([k,R])=>f.style.setProperty(k,R)),f.innerHTML="",x.forEach((k,R)=>{const T=document.createElement("div");T.setAttribute("data-page-number",`${R+2}`),T.className=S,T.style.top=`${k}px`,f.appendChild(T)}))},r=I(()=>{if(e.em.destroyed)return;const p=d();p&&p.set({pageBreaks:de(e),up:(p.attributes.up||0)+1})},150),g=I(r,200),h=()=>{o=t.getSpotsEl(),d()},y=()=>{const p=d();p&&p.set({up:(p.attributes.up||0)+1})},w=[["component:input",r],["frame:scroll",y],[a.update,r],[s.spotAdd,u],[s.spotUpdate,l],[s.spotRemove,c],[s.frameLoadBody,h]];return w.forEach(([p,f])=>e.on(p,f)),e.onReady(()=>{i(),new ResizeObserver(y).observe(t.getElement().parentElement)}),()=>{w.forEach(([p,f])=>e.off(p,f)),r.clear(),g.clear()}}var H=(e=>(e.print="presetPrintable:print",e))(H||{});const N=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 ue(e,n){const{Commands:t,Pages:s}=e;return t.add(H.print,async(a,o,i={})=>{const d={page:i.allPages?void 0:s.getSelected(),styles:"inline",optionsHtml:{exporter:null}},u=(await t.run(z.projectFiles,d)).filter(g=>g.filename.endsWith(".html")),l=u.map(g=>g.content).join('<div style="break-before: page;"></div>'),r=[];if(i.separatePrints)for(const g of u)r.push(await N(g));else r.push(await N({content:l,filename:"",mimeType:""}));for(const g of r){const h=g.contentWindow;h.focus(),h.print()}setTimeout(()=>r.forEach(g=>g.remove()),1e3)}),t.add("presetPrintable:exp",async a=>{await U("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await U("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:o,Canvas:i}=a,{sizeW:d,sizeH:c,sizeUnit:u}=o.getSelected().attributes,l=i.getFrameEl().contentDocument,r="px",g=[j(d,u),j(c,u)],h=new window.jspdf.jsPDF({unit:r,format:g}),y=l.body;h.html(y,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[H.print]}}function he(e,n){const{blockPageBreak:t={}}=n,{Components:s,Blocks:a}=e,o="Page Break",i=`${le}${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:re(A),model:{defaults:{name:o,classes:i,attributes:{[q]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:ce("wrapper"),styles:`.${i} { break-before: page; }`,traits:[]}}}),()=>{s.removeType(A),a.remove(A)}}const fe="presetPrintable",ve=B.free,be=function(e,n={}){var M;const t={selectedDevice:m.A4,...n},{Canvas:s,Devices:a,Blocks:o}=e,i=s.events,d=e.events,c=t.selectedDevice||a.getConfig().default,u=[{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"}],r=(((M=t.devices)==null?void 0:M.call(t,{items:u}))||u).map(v=>pe(v,t));a.devices.reset(r);const g=c&&a.get(c)||a.getAll().at(0);a.select(g),["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,$=P&&P!=="auto"?P:L;(b.where({id:v}).pop()||b.add({id:v,selectors:[],selectorsAdd:"@page"},{at:0})).setStyle({size:`${E} ${$}`,margin:"0"})},w=v=>{const b=v.document,{minHeight:E}=a.getSelected().attributes,L=`
20
20
  ${!!parseFloat(`${E}`)?`
21
21
  [data-gjs-type="wrapper"] { min-height: ${E}; }
22
22
  `:`
@@ -29,4 +29,4 @@
29
29
  height: 100dvh;
30
30
  }
31
31
  `}
32
- `;K(`${C}preset-printable`,L,{doc:b,target:b.head}),y()};e.on(i.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 p=()=>{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"})},f=[[d.projectLoad,p]];f.forEach(([v,b])=>e.on(v,b));const x=ge(e,t),k=ue(e),R=he(e,t);e.onReady(()=>{e.UndoManager.clear()});const T=()=>{f.forEach(([v,b])=>e.off(v,b)),x(),k(),R()};e.on(d.destroy,T),ae({editor:e,licenseKey:t.licenseKey,plan:ve,pluginName:fe,cleanup:T})},me=oe(be);module.exports=me;
32
+ `;K(`${C}preset-printable`,L,{doc:b,target:b.head}),y()};e.on(i.frameLoadBody,v=>{const b=v.window;if(w(b),t.fixedHeight){const P=v.model.getComponent().getEl();P==null||P.addEventListener("scroll",L=>{const $=L.target;$.scrollTop>0&&$.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 p=()=>{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"})},f=[[d.projectLoad,p]];f.forEach(([v,b])=>e.on(v,b));const x=ge(e,t),k=ue(e),R=he(e,t);e.onReady(()=>{e.UndoManager.clear()});const T=()=>{f.forEach(([v,b])=>e.off(v,b)),x(),k(),R()};e.on(d.destroy,T),ae({editor:e,licenseKey:t.licenseKey,plan:ve,pluginName:fe,cleanup:T})},me=oe(be);module.exports=me;
@@ -15,9 +15,9 @@ const F = "app.grapesjs.com", W = "app-stage.grapesjs.com", V = "app2.grapesjs.c
15
15
  const t = te(e) ? { id: e, src: e } : e;
16
16
  return new Promise((s, a) => {
17
17
  var g, h;
18
- const { loadedScripts: o } = n, { id: i, src: d } = t, c = document.querySelector(`script[src="${d}"]`);
18
+ const { loadedScripts: o } = n, { id: i, src: p } = t, c = document.querySelector(`script[src="${p}"]`);
19
19
  if (c) {
20
- if ((g = n.onScript) == null || g.call(n, c), o && !o.get(d)) {
20
+ if ((g = n.onScript) == null || g.call(n, c), o && !o.get(p)) {
21
21
  c.addEventListener("load", () => s(i)), c.addEventListener("error", () => a(i));
22
22
  return;
23
23
  }
@@ -26,9 +26,9 @@ const F = "app.grapesjs.com", W = "app-stage.grapesjs.com", V = "app2.grapesjs.c
26
26
  const u = window.define;
27
27
  window.define = void 0;
28
28
  const l = () => {
29
- o == null || o.set(d, !0), window.define = u;
29
+ o == null || o.set(p, !0), window.define = u;
30
30
  }, r = document.createElement("script");
31
- r.src = d, r.onload = () => {
31
+ r.src = p, r.onload = () => {
32
32
  s(i), l();
33
33
  }, r.onerror = () => {
34
34
  a(i), l();
@@ -46,7 +46,7 @@ async function se({
46
46
  params: a,
47
47
  body: o
48
48
  }) {
49
- const d = `${n || Q({ isDev: !1, isStage: !1 })}${e}`, c = {
49
+ const p = `${n || Q({ isDev: !1, isStage: !1 })}${e}`, c = {
50
50
  method: t,
51
51
  headers: {
52
52
  "Content-Type": "application/json",
@@ -54,12 +54,12 @@ async function se({
54
54
  }
55
55
  };
56
56
  o && (c.body = JSON.stringify(o));
57
- const u = a ? new URLSearchParams(a).toString() : "", l = u ? `?${u}` : "", r = await fetch(`${d}${l}`, c);
57
+ const u = a ? new URLSearchParams(a).toString() : "", l = u ? `?${u}` : "", r = await fetch(`${p}${l}`, c);
58
58
  if (!r.ok)
59
59
  throw new Error(`HTTP error! status: ${r.status}`);
60
60
  return r.json();
61
61
  }
62
- var B = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(B || {}), z = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", 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 || {});
62
+ var B = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(B || {}), z = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", 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.clearPage = "studio:clearPage", e.projectFiles = "studio:projectFiles", e.validateCode = "studio:validateCode", 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 || {});
63
63
  const O = {
64
64
  [B.free]: 0,
65
65
  [B.startup]: 10,
@@ -79,7 +79,7 @@ async function ae({
79
79
  cleanup: a
80
80
  }) {
81
81
  let o = "", i = !1;
82
- const d = ee(), c = (l) => {
82
+ const p = ee(), c = (l) => {
83
83
  console.warn("Cleanup plugin:", t, "Reason:", l), a();
84
84
  }, u = (l = {}) => {
85
85
  var w;
@@ -87,8 +87,8 @@ async function ae({
87
87
  if (!(g || l.license) || r)
88
88
  c(r || "Invalid license");
89
89
  else if (h) {
90
- const p = O[n], f = O[h];
91
- p > f && c({ pluginRequiredPlan: n, licensePlan: h });
90
+ const d = O[n], f = O[h];
91
+ d > f && c({ pluginRequiredPlan: n, licensePlan: h });
92
92
  }
93
93
  };
94
94
  e.on(J, (l) => {
@@ -97,7 +97,7 @@ async function ae({
97
97
  u(l);
98
98
  }), setTimeout(async () => {
99
99
  if (!i) {
100
- if (d) return;
100
+ if (p) return;
101
101
  if (s) {
102
102
  const l = await ie({ licenseKey: s, pluginName: t, baseApiUrl: o });
103
103
  l && u(l);
@@ -130,19 +130,19 @@ const re = (e) => (n) => {
130
130
  o.setAttribute(e, "true"), o.innerHTML = n, !a.contains(o) && a.appendChild(o);
131
131
  }, le = "gjs-plg-", C = "data-gs-plg-", q = "data-type-role";
132
132
  function I(e, n, t) {
133
- let s, a, o, i, d;
133
+ let s, a, o, i, p;
134
134
  const c = n === void 0 ? 100 : n;
135
135
  function u() {
136
136
  const r = Date.now() - i;
137
- r < c && r >= 0 ? s = setTimeout(u, c - r) : (s = null, d = e.apply(o, a), o = a = null);
137
+ r < c && r >= 0 ? s = setTimeout(u, c - r) : (s = null, p = e.apply(o, a), o = a = null);
138
138
  }
139
139
  const l = function() {
140
- return o = this, a = arguments, i = Date.now(), s || (s = setTimeout(u, c)), d;
140
+ return o = this, a = arguments, i = Date.now(), s || (s = setTimeout(u, c)), p;
141
141
  };
142
142
  return l.clear = function() {
143
143
  s && (clearTimeout(s), s = null);
144
144
  }, l.flush = function() {
145
- s && (d = e.apply(o, a), o = a = null, clearTimeout(s), s = null);
145
+ s && (p = e.apply(o, a), o = a = null, clearTimeout(s), s = null);
146
146
  }, l;
147
147
  }
148
148
  const A = "page-break";
@@ -162,8 +162,8 @@ function j(e, n) {
162
162
  };
163
163
  return s[n] ? e * s[n] : null;
164
164
  }
165
- const pe = (e, n) => {
166
- const { name: t, id: s, width: a, height: o, unit: i } = e, { fixedHeight: d } = n, c = `${a}${i}`, u = `${o}${i}`;
165
+ const de = (e, n) => {
166
+ const { name: t, id: s, width: a, height: o, unit: i } = e, { fixedHeight: p } = n, c = `${a}${i}`, u = `${o}${i}`;
167
167
  return {
168
168
  id: s || t.toLowerCase().replace(/\s/g, "-"),
169
169
  name: `${t} (${c} x ${u})`,
@@ -172,15 +172,15 @@ const pe = (e, n) => {
172
172
  sizeUnit: i,
173
173
  widthMedia: "",
174
174
  width: c,
175
- minHeight: d ? "0" : `${j(o, i)}px`,
176
- height: d ? u : void 0
175
+ minHeight: p ? "0" : `${j(o, i)}px`,
176
+ height: p ? u : void 0
177
177
  };
178
- }, _ = "page-breaks", $ = "gjs-page-breaks-spot", D = (e) => e.type === _;
179
- function de(e) {
180
- const { Devices: n } = e, { height: t, minHeight: s } = n.getSelected().attributes, o = parseFloat(`${t && t !== "auto" ? t : s}`), i = e.getWrapper(), d = i == null ? void 0 : i.getEl(), c = [];
181
- if (!i || !d)
178
+ }, _ = "page-breaks", S = "gjs-page-breaks-spot", D = (e) => e.type === _;
179
+ function pe(e) {
180
+ const { Devices: n } = e, { height: t, minHeight: s } = n.getSelected().attributes, o = parseFloat(`${t && t !== "auto" ? t : s}`), i = e.getWrapper(), p = i == null ? void 0 : i.getEl(), c = [];
181
+ if (!i || !p)
182
182
  return c;
183
- const u = d.getBoundingClientRect().height, r = i.findType(A).map((h) => h.getEl()).filter(Boolean).map((h) => ({ top: h.offsetTop, height: h.offsetHeight }));
183
+ const u = p.getBoundingClientRect().height, r = i.findType(A).map((h) => h.getEl()).filter(Boolean).map((h) => ({ top: h.offsetTop, height: h.offsetHeight }));
184
184
  let g = 0;
185
185
  for (; g < u; ) {
186
186
  const h = r.find((y) => y.top > g && y.top < g + o);
@@ -194,14 +194,14 @@ function ge(e, n) {
194
194
  const i = () => {
195
195
  K(
196
196
  `${C}preset-printable-spots`,
197
- `.${$} {
197
+ `.${S} {
198
198
  position: absolute;
199
199
  left: 0;
200
200
  width: 100%;
201
201
  border-top: 1px dashed var(--gs-theme-cl-cmp-bg2, var(--gjs-color-blue));
202
202
  color: var(--gs-theme-cl-prm-txt, var(--gjs-font-color));
203
203
  }
204
- .${$}::after {
204
+ .${S}::after {
205
205
  background-color: var(--gs-theme-cl-cmp-bg1, var(--gjs-color-highlight));
206
206
  content: attr(data-page-number);
207
207
  display: block;
@@ -215,32 +215,32 @@ function ge(e, n) {
215
215
  `,
216
216
  { target: window.document.head }
217
217
  );
218
- }, d = () => {
218
+ }, p = () => {
219
219
  if (n.enablePageBreaksSpot === !1) return;
220
- const p = { id: _, type: _, component: e.getWrapper() };
221
- return t.getSpots(p).pop() || t.addSpot(p);
222
- }, c = ({ spot: p }) => {
223
- const { spotEl: f } = p.attributes;
224
- !D(p) || !f || !o || o.removeChild(f);
225
- }, u = ({ spot: p }) => {
226
- if (!D(p) || !o) return;
227
- let { spotEl: f } = p.attributes;
228
- f || (f = document.createElement("div"), f.className = `${$}__items`, p.set({ spotEl: f })), o.appendChild(f);
229
- }, l = ({ spot: p }) => {
230
- const { spotEl: f, pageBreaks: x = [] } = p.attributes;
231
- !D(p) || !f || !o || (Object.entries(p.getStyle()).forEach(([k, R]) => f.style.setProperty(k, R)), f.innerHTML = "", x.forEach((k, R) => {
220
+ const d = { id: _, type: _, component: e.getWrapper() };
221
+ return t.getSpots(d).pop() || t.addSpot(d);
222
+ }, c = ({ spot: d }) => {
223
+ const { spotEl: f } = d.attributes;
224
+ !D(d) || !f || !o || o.removeChild(f);
225
+ }, u = ({ spot: d }) => {
226
+ if (!D(d) || !o) return;
227
+ let { spotEl: f } = d.attributes;
228
+ f || (f = document.createElement("div"), f.className = `${S}__items`, d.set({ spotEl: f })), o.appendChild(f);
229
+ }, l = ({ spot: d }) => {
230
+ const { spotEl: f, pageBreaks: x = [] } = d.attributes;
231
+ !D(d) || !f || !o || (Object.entries(d.getStyle()).forEach(([k, R]) => f.style.setProperty(k, R)), f.innerHTML = "", x.forEach((k, R) => {
232
232
  const T = document.createElement("div");
233
- T.setAttribute("data-page-number", `${R + 2}`), T.className = $, T.style.top = `${k}px`, f.appendChild(T);
233
+ T.setAttribute("data-page-number", `${R + 2}`), T.className = S, T.style.top = `${k}px`, f.appendChild(T);
234
234
  }));
235
235
  }, r = I(() => {
236
236
  if (e.em.destroyed) return;
237
- const p = d();
238
- p && p.set({ pageBreaks: de(e), up: (p.attributes.up || 0) + 1 });
237
+ const d = p();
238
+ d && d.set({ pageBreaks: pe(e), up: (d.attributes.up || 0) + 1 });
239
239
  }, 150), g = I(r, 200), h = () => {
240
- o = t.getSpotsEl(), d();
240
+ o = t.getSpotsEl(), p();
241
241
  }, y = () => {
242
- const p = d();
243
- p && p.set({ up: (p.attributes.up || 0) + 1 });
242
+ const d = p();
243
+ d && d.set({ up: (d.attributes.up || 0) + 1 });
244
244
  }, w = [
245
245
  ["component:input", r],
246
246
  ["frame:scroll", y],
@@ -250,10 +250,10 @@ function ge(e, n) {
250
250
  [s.spotRemove, c],
251
251
  [s.frameLoadBody, h]
252
252
  ];
253
- return w.forEach(([p, f]) => e.on(p, f)), e.onReady(() => {
253
+ return w.forEach(([d, f]) => e.on(d, f)), e.onReady(() => {
254
254
  i(), new ResizeObserver(y).observe(t.getElement().parentElement);
255
255
  }), () => {
256
- w.forEach(([p, f]) => e.off(p, f)), r.clear(), g.clear();
256
+ w.forEach(([d, f]) => e.off(d, f)), r.clear(), g.clear();
257
257
  };
258
258
  }
259
259
  var H = /* @__PURE__ */ ((e) => (e.print = "presetPrintable:print", e))(H || {});
@@ -266,14 +266,14 @@ function ue(e, n) {
266
266
  return t.add(
267
267
  H.print,
268
268
  async (a, o, i = {}) => {
269
- const d = {
269
+ const p = {
270
270
  page: i.allPages ? void 0 : s.getSelected(),
271
271
  styles: "inline",
272
272
  optionsHtml: {
273
273
  // Avoid DataSource exporter
274
274
  exporter: null
275
275
  }
276
- }, u = (await t.run(z.projectFiles, d)).filter((g) => g.filename.endsWith(".html")), l = u.map((g) => g.content).join('<div style="break-before: page;"></div>'), r = [];
276
+ }, u = (await t.run(z.projectFiles, p)).filter((g) => g.filename.endsWith(".html")), l = u.map((g) => g.content).join('<div style="break-before: page;"></div>'), r = [];
277
277
  if (i.separatePrints)
278
278
  for (const g of u)
279
279
  r.push(await N(g));
@@ -287,7 +287,7 @@ function ue(e, n) {
287
287
  }
288
288
  ), t.add("presetPrintable:exp", async (a) => {
289
289
  await U("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"), await U("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");
290
- const { Devices: o, Canvas: i } = a, { sizeW: d, sizeH: c, sizeUnit: u } = o.getSelected().attributes, l = i.getFrameEl().contentDocument, r = "px", g = [j(d, u), j(c, u)], h = new window.jspdf.jsPDF({ unit: r, format: g }), y = l.body;
290
+ const { Devices: o, Canvas: i } = a, { sizeW: p, sizeH: c, sizeUnit: u } = o.getSelected().attributes, l = i.getFrameEl().contentDocument, r = "px", g = [j(p, u), j(c, u)], h = new window.jspdf.jsPDF({ unit: r, format: g }), y = l.body;
291
291
  h.html(y, { callback: (w) => w.save() });
292
292
  }), () => {
293
293
  delete e.Commands.commands[H.print];
@@ -326,7 +326,7 @@ const fe = "presetPrintable", ve = B.free, be = function(e, n = {}) {
326
326
  const t = {
327
327
  selectedDevice: m.A4,
328
328
  ...n
329
- }, { Canvas: s, Devices: a, Blocks: o } = e, i = s.events, d = e.events, c = t.selectedDevice || a.getConfig().default, u = [
329
+ }, { Canvas: s, Devices: a, Blocks: o } = e, i = s.events, p = e.events, c = t.selectedDevice || a.getConfig().default, u = [
330
330
  { id: m.A5, name: "A5", width: 148, height: 210, unit: "mm" },
331
331
  { id: m.A5Portrait, name: "A5 Portrait", width: 210, height: 148, unit: "mm" },
332
332
  { id: m.A4, name: "A4", width: 210, height: 297, unit: "mm" },
@@ -336,12 +336,12 @@ const fe = "presetPrintable", ve = B.free, be = function(e, n = {}) {
336
336
  { id: m.letter, name: "Letter", width: 8.5, height: 11, unit: "in" },
337
337
  { id: m.legal, name: "Legal", width: 8.5, height: 14, unit: "in" },
338
338
  { id: m.ledger, name: "Ledger", width: 11, height: 17, unit: "in" }
339
- ], r = (((M = t.devices) == null ? void 0 : M.call(t, { items: u })) || u).map((v) => pe(v, t));
339
+ ], r = (((M = t.devices) == null ? void 0 : M.call(t, { items: u })) || u).map((v) => de(v, t));
340
340
  a.devices.reset(r);
341
341
  const g = c && a.get(c) || a.getAll().at(0);
342
342
  a.select(g), ["map", "video"].forEach((v) => o.remove(v));
343
343
  const y = () => {
344
- const v = "page-rule", { rules: b } = e.Css, { width: E, height: P, minHeight: L } = a.getSelected().attributes, S = P && P !== "auto" ? P : L;
344
+ const v = "page-rule", { rules: b } = e.Css, { width: E, height: P, minHeight: L } = a.getSelected().attributes, $ = P && P !== "auto" ? P : L;
345
345
  (b.where({ id: v }).pop() || b.add(
346
346
  {
347
347
  id: v,
@@ -350,7 +350,7 @@ const fe = "presetPrintable", ve = B.free, be = function(e, n = {}) {
350
350
  },
351
351
  { at: 0 }
352
352
  )).setStyle({
353
- size: `${E} ${S}`,
353
+ size: `${E} ${$}`,
354
354
  margin: "0"
355
355
  });
356
356
  }, w = (v) => {
@@ -375,8 +375,8 @@ const fe = "presetPrintable", ve = B.free, be = function(e, n = {}) {
375
375
  if (w(b), t.fixedHeight) {
376
376
  const P = v.model.getComponent().getEl();
377
377
  P == null || P.addEventListener("scroll", (L) => {
378
- const S = L.target;
379
- S.scrollTop > 0 && S.scrollTo(0, 0);
378
+ const $ = L.target;
379
+ $.scrollTop > 0 && $.scrollTo(0, 0);
380
380
  });
381
381
  }
382
382
  }), e.on(a.events.select, () => {
@@ -384,7 +384,7 @@ const fe = "presetPrintable", ve = B.free, be = function(e, n = {}) {
384
384
  const v = (b = s.getFrameEl().contentDocument) == null ? void 0 : b.defaultView;
385
385
  v && w(v);
386
386
  });
387
- const p = () => {
387
+ const d = () => {
388
388
  const b = e.Css.getRules().filter((E) => E.selectorsToString() === "body").pop();
389
389
  b == null || b.addStyle({
390
390
  "margin-top": "",
@@ -393,7 +393,7 @@ const fe = "presetPrintable", ve = B.free, be = function(e, n = {}) {
393
393
  "margin-left": "",
394
394
  margin: "0"
395
395
  });
396
- }, f = [[d.projectLoad, p]];
396
+ }, f = [[p.projectLoad, d]];
397
397
  f.forEach(([v, b]) => e.on(v, b));
398
398
  const x = ge(e, t), k = ue(e), R = he(e, t);
399
399
  e.onReady(() => {
@@ -402,7 +402,7 @@ const fe = "presetPrintable", ve = B.free, be = function(e, n = {}) {
402
402
  const T = () => {
403
403
  f.forEach(([v, b]) => e.off(v, b)), x(), k(), R();
404
404
  };
405
- e.on(d.destroy, T), ae({
405
+ e.on(p.destroy, T), ae({
406
406
  editor: e,
407
407
  licenseKey: t.licenseKey,
408
408
  plan: ve,
@@ -1,4 +1,4 @@
1
- (function(B,k){typeof exports=="object"&&typeof module<"u"?module.exports=k():typeof define=="function"&&define.amd?define(k):(B=typeof globalThis<"u"?globalThis:B||self,B.StudioSdkPlugins_presetPrintable=k())})(this,function(){"use strict";const B="app.grapesjs.com",k="app-stage.grapesjs.com",O=[B,"app2.grapesjs.com",k,"app-stage2.grapesjs.com","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",U=(e,n={})=>{const t=Q(e)?{id:e,src:e}:e;return new Promise((s,a)=>{var g,h;const{loadedScripts:o}=n,{id:i,src:p}=t,c=document.querySelector(`script[src="${p}"]`);if(c){if((g=n.onScript)==null||g.call(n,c),o&&!o.get(p)){c.addEventListener("load",()=>s(i)),c.addEventListener("error",()=>a(i));return}return s(i)}const u=window.define;window.define=void 0;const l=()=>{o==null||o.set(p,!0),window.define=u},r=document.createElement("script");r.src=p,r.onload=()=>{s(i),l()},r.onerror=()=>{a(i),l()},document.head.appendChild(r),(h=n.onScript)==null||h.call(n,r)})},X=({isDev:e,isStage:n})=>`${e?"":`https://${n?k:B}`}/api`,Z=()=>{const e=J()&&window.location.hostname;return!!e&&(O.includes(e)||O.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 p=`${n||X({isDev:!1,isStage:!1})}${e}`,c={method:t,headers:{"Content-Type":"application/json",...s}};o&&(c.body=JSON.stringify(o));const u=a?new URLSearchParams(a).toString():"",l=u?`?${u}`:"",r=await fetch(`${p}${l}`,c);if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return r.json()}var R=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(R||{}),I=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",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))(I||{});const N={[R.free]:0,[R.startup]:10,[R.business]:20,[R.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="",i=!1;const p=Z(),c=l=>{console.warn("Cleanup plugin:",t,"Reason:",l),a()},u=(l={})=>{var w;const{error:r,sdkLicense:g}=l,h=(w=l.plan)==null?void 0:w.category;if(!(g||l.license)||r)c(r||"Invalid license");else if(h){const d=N[n],f=N[h];d>f&&c({pluginRequiredPlan:n,licensePlan:h})}};e.on(V,l=>{o=l==null?void 0:l.baseApiUrl,i=!0}),e.on(Y,l=>{u(l)}),setTimeout(async()=>{if(!i){if(p)return;if(s){const l=await oe({licenseKey:s,pluginName:t,baseApiUrl:o});l&&u(l)}else c("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,z))===e},ie=(...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)},re="gjs-plg-",W="data-gs-plg-",z="data-type-role";function K(e,n,t){let s,a,o,i,p;const c=n===void 0?100:n;function u(){const r=Date.now()-i;r<c&&r>=0?s=setTimeout(u,c-r):(s=null,p=e.apply(o,a),o=a=null)}const l=function(){return o=this,a=arguments,i=Date.now(),s||(s=setTimeout(u,c)),p};return l.clear=function(){s&&(clearTimeout(s),s=null)},l.flush=function(){s&&(p=e.apply(o,a),o=a=null,clearTimeout(s),s=null)},l}const T="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 _(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:i}=e,{fixedHeight:p}=n,c=`${a}${i}`,u=`${o}${i}`;return{id:s||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${c} x ${u})`,sizeH:o,sizeW:a,sizeUnit:i,widthMedia:"",width:c,minHeight:p?"0":`${_(o,i)}px`,height:p?u:void 0}},j="page-breaks",x="gjs-page-breaks-spot",M=e=>e.type===j;function le(e){const{Devices:n}=e,{height:t,minHeight:s}=n.getSelected().attributes,o=parseFloat(`${t&&t!=="auto"?t:s}`),i=e.getWrapper(),p=i==null?void 0:i.getEl(),c=[];if(!i||!p)return c;const u=p.getBoundingClientRect().height,r=i.findType(T).map(h=>h.getEl()).filter(Boolean).map(h=>({top:h.offsetTop,height:h.offsetHeight}));let g=0;for(;g<u;){const h=r.find(y=>y.top>g&&y.top<g+o);h?(g=h.top+h.height,c.push(h.top)):(g+=o,g<u&&c.push(g))}return c}function de(e,n){const{Canvas:t}=e,s=t.events,a=e.events;let o;const i=()=>{F(`${W}preset-printable-spots`,`.${x} {
1
+ (function(B,k){typeof exports=="object"&&typeof module<"u"?module.exports=k():typeof define=="function"&&define.amd?define(k):(B=typeof globalThis<"u"?globalThis:B||self,B.StudioSdkPlugins_presetPrintable=k())})(this,function(){"use strict";const B="app.grapesjs.com",k="app-stage.grapesjs.com",O=[B,"app2.grapesjs.com",k,"app-stage2.grapesjs.com","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",U=(e,n={})=>{const t=Q(e)?{id:e,src:e}:e;return new Promise((s,a)=>{var g,h;const{loadedScripts:o}=n,{id:i,src:p}=t,c=document.querySelector(`script[src="${p}"]`);if(c){if((g=n.onScript)==null||g.call(n,c),o&&!o.get(p)){c.addEventListener("load",()=>s(i)),c.addEventListener("error",()=>a(i));return}return s(i)}const u=window.define;window.define=void 0;const l=()=>{o==null||o.set(p,!0),window.define=u},r=document.createElement("script");r.src=p,r.onload=()=>{s(i),l()},r.onerror=()=>{a(i),l()},document.head.appendChild(r),(h=n.onScript)==null||h.call(n,r)})},X=({isDev:e,isStage:n})=>`${e?"":`https://${n?k:B}`}/api`,Z=()=>{const e=J()&&window.location.hostname;return!!e&&(O.includes(e)||O.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 p=`${n||X({isDev:!1,isStage:!1})}${e}`,c={method:t,headers:{"Content-Type":"application/json",...s}};o&&(c.body=JSON.stringify(o));const u=a?new URLSearchParams(a).toString():"",l=u?`?${u}`:"",r=await fetch(`${p}${l}`,c);if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return r.json()}var R=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(R||{}),I=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",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.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",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))(I||{});const N={[R.free]:0,[R.startup]:10,[R.business]:20,[R.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="",i=!1;const p=Z(),c=l=>{console.warn("Cleanup plugin:",t,"Reason:",l),a()},u=(l={})=>{var w;const{error:r,sdkLicense:g}=l,h=(w=l.plan)==null?void 0:w.category;if(!(g||l.license)||r)c(r||"Invalid license");else if(h){const d=N[n],f=N[h];d>f&&c({pluginRequiredPlan:n,licensePlan:h})}};e.on(V,l=>{o=l==null?void 0:l.baseApiUrl,i=!0}),e.on(Y,l=>{u(l)}),setTimeout(async()=>{if(!i){if(p)return;if(s){const l=await oe({licenseKey:s,pluginName:t,baseApiUrl:o});l&&u(l)}else c("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,z))===e},ie=(...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)},re="gjs-plg-",W="data-gs-plg-",z="data-type-role";function K(e,n,t){let s,a,o,i,p;const c=n===void 0?100:n;function u(){const r=Date.now()-i;r<c&&r>=0?s=setTimeout(u,c-r):(s=null,p=e.apply(o,a),o=a=null)}const l=function(){return o=this,a=arguments,i=Date.now(),s||(s=setTimeout(u,c)),p};return l.clear=function(){s&&(clearTimeout(s),s=null)},l.flush=function(){s&&(p=e.apply(o,a),o=a=null,clearTimeout(s),s=null)},l}const T="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 _(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:i}=e,{fixedHeight:p}=n,c=`${a}${i}`,u=`${o}${i}`;return{id:s||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${c} x ${u})`,sizeH:o,sizeW:a,sizeUnit:i,widthMedia:"",width:c,minHeight:p?"0":`${_(o,i)}px`,height:p?u:void 0}},j="page-breaks",x="gjs-page-breaks-spot",M=e=>e.type===j;function le(e){const{Devices:n}=e,{height:t,minHeight:s}=n.getSelected().attributes,o=parseFloat(`${t&&t!=="auto"?t:s}`),i=e.getWrapper(),p=i==null?void 0:i.getEl(),c=[];if(!i||!p)return c;const u=p.getBoundingClientRect().height,r=i.findType(T).map(h=>h.getEl()).filter(Boolean).map(h=>({top:h.offsetTop,height:h.offsetHeight}));let g=0;for(;g<u;){const h=r.find(y=>y.top>g&&y.top<g+o);h?(g=h.top+h.height,c.push(h.top)):(g+=o,g<u&&c.push(g))}return c}function de(e,n){const{Canvas:t}=e,s=t.events,a=e.events;let o;const i=()=>{F(`${W}preset-printable-spots`,`.${x} {
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 100%;