@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.
- package/dist/dataSourceEjs/EjsImporter.d.ts +2 -1
- package/dist/dataSourceEjs/index.cjs.js +23 -17
- package/dist/dataSourceEjs/index.es.js +339 -290
- package/dist/dataSourceEjs/index.umd.js +23 -17
- package/dist/dataSourceEjs/tests/EjsExporter.test.d.ts +1 -0
- package/dist/dataSourceEjs/tests/EjsImporter.test.d.ts +1 -0
- package/dist/dataSourceHandlebars/HandlebarsExporter.d.ts +2 -2
- package/dist/dataSourceHandlebars/HandlebarsImporter.d.ts +9 -0
- package/dist/dataSourceHandlebars/constants.d.ts +16 -0
- package/dist/dataSourceHandlebars/index.cjs.js +13 -13
- package/dist/dataSourceHandlebars/index.es.js +272 -217
- package/dist/dataSourceHandlebars/index.umd.js +13 -13
- package/dist/dataSourceHandlebars/tests/HandlebarsExporter.test.d.ts +1 -0
- package/dist/dataSourceHandlebars/tests/HandlebarsImporter.test.d.ts +1 -0
- package/dist/index.cjs.js +70 -63
- package/dist/index.es.js +3297 -3187
- package/dist/index.umd.js +70 -63
- package/dist/presetPrintable/index.cjs.js +7 -6
- package/dist/presetPrintable/index.es.js +204 -197
- package/dist/presetPrintable/index.umd.js +7 -6
- package/dist/presetPrintable/shared.d.ts +3 -0
- package/dist/presetPrintable/types.d.ts +4 -1
- package/dist/presetPrintable/typesSchema.d.ts +18 -0
- package/dist/presetPrintable/utils.d.ts +11 -0
- package/jest.config.js +9 -0
- package/package.json +4 -2
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
"use strict";const
|
|
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
|
-
.${
|
|
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})},
|
|
19
|
-
${!!parseFloat(`${
|
|
20
|
-
[data-gjs-type="wrapper"] { min-height: ${
|
|
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
|
-
`;
|
|
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;
|