@grapesjs/studio-sdk-plugins 1.0.35 → 1.0.36
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/accordionComponent/index.cjs.js +7 -7
- package/dist/accordionComponent/index.es.js +175 -162
- package/dist/accordionComponent/index.umd.js +7 -7
- package/dist/aiChat/index.cjs.js +64 -64
- package/dist/aiChat/index.es.js +5785 -5757
- package/dist/aiChat/index.js +64 -64
- package/dist/aiChat/index.umd.js +63 -63
- package/dist/animationComponent/index.cjs.js +3 -3
- package/dist/animationComponent/index.es.js +204 -191
- package/dist/animationComponent/index.umd.js +3 -3
- package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
- package/dist/canvasAbsoluteMode/index.es.js +183 -170
- package/dist/canvasAbsoluteMode/index.umd.js +1 -1
- package/dist/canvasEmptyState/index.cjs.js +1 -1
- package/dist/canvasEmptyState/index.es.js +134 -121
- package/dist/canvasEmptyState/index.umd.js +1 -1
- package/dist/canvasFullSize/index.cjs.js +9 -9
- package/dist/canvasFullSize/index.es.js +165 -152
- package/dist/canvasFullSize/index.umd.js +9 -9
- package/dist/canvasGridMode/index.cjs.js +5 -5
- package/dist/canvasGridMode/index.es.js +245 -232
- package/dist/canvasGridMode/index.umd.js +4 -4
- package/dist/canvasScreenshot/index.cjs.js +1 -1
- package/dist/canvasScreenshot/index.es.js +155 -142
- package/dist/canvasScreenshot/index.umd.js +1 -1
- package/dist/dataSourceEjs/index.cjs.js +9 -9
- package/dist/dataSourceEjs/index.es.js +257 -244
- package/dist/dataSourceEjs/index.umd.js +9 -9
- package/dist/dataSourceHandlebars/index.cjs.js +8 -8
- package/dist/dataSourceHandlebars/index.es.js +216 -203
- package/dist/dataSourceHandlebars/index.umd.js +7 -7
- package/dist/dialogComponent/index.cjs.js +14 -14
- package/dist/dialogComponent/index.es.js +141 -128
- package/dist/dialogComponent/index.umd.js +14 -14
- package/dist/flexComponent/index.cjs.js +13 -13
- package/dist/flexComponent/index.es.js +484 -471
- package/dist/flexComponent/index.umd.js +13 -13
- package/dist/fsLightboxComponent/index.cjs.js +3 -3
- package/dist/fsLightboxComponent/index.es.js +173 -160
- package/dist/fsLightboxComponent/index.umd.js +3 -3
- package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
- package/dist/googleFontsAssetProvider/index.es.js +160 -147
- package/dist/googleFontsAssetProvider/index.umd.js +1 -1
- package/dist/iconifyComponent/index.cjs.js +2 -2
- package/dist/iconifyComponent/index.es.js +196 -183
- package/dist/iconifyComponent/index.umd.js +2 -2
- package/dist/index.cjs.js +25 -25
- package/dist/index.es.js +121 -108
- package/dist/index.umd.js +18 -18
- package/dist/layoutSidebarButtons/index.cjs.js +1 -1
- package/dist/layoutSidebarButtons/index.es.js +157 -144
- package/dist/layoutSidebarButtons/index.umd.js +1 -1
- package/dist/lightGalleryComponent/index.cjs.js +1 -1
- package/dist/lightGalleryComponent/index.es.js +245 -232
- package/dist/lightGalleryComponent/index.umd.js +1 -1
- package/dist/linkImageComponent/index.cjs.js +2 -2
- package/dist/linkImageComponent/index.es.js +106 -93
- package/dist/linkImageComponent/index.umd.js +2 -2
- package/dist/listPagesComponent/index.cjs.js +5 -5
- package/dist/listPagesComponent/index.es.js +157 -144
- package/dist/listPagesComponent/index.umd.js +5 -5
- package/dist/presetPrintable/index.cjs.js +3 -3
- package/dist/presetPrintable/index.es.js +181 -168
- package/dist/presetPrintable/index.umd.js +3 -3
- package/dist/prosemirror/index.cjs.js +7 -7
- package/dist/prosemirror/index.es.js +385 -372
- package/dist/prosemirror/index.umd.js +8 -8
- package/dist/rendererReact/index.cjs.js +1 -1
- package/dist/rendererReact/index.es.js +200 -187
- package/dist/rendererReact/index.js +1 -1
- package/dist/rendererReact/index.umd.js +1 -1
- package/dist/rteTinyMce/index.cjs.js +2 -2
- package/dist/rteTinyMce/index.es.js +118 -105
- package/dist/rteTinyMce/index.umd.js +2 -2
- package/dist/shapeDividerComponent/index.cjs.js +4 -4
- package/dist/shapeDividerComponent/index.es.js +129 -116
- package/dist/shapeDividerComponent/index.umd.js +4 -4
- package/dist/swiperComponent/index.cjs.js +9 -9
- package/dist/swiperComponent/index.es.js +203 -190
- package/dist/swiperComponent/index.umd.js +7 -7
- package/dist/tableComponent/index.cjs.js +1 -1
- package/dist/tableComponent/index.es.js +257 -244
- package/dist/tableComponent/index.umd.js +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/youtubeAssetProvider/index.cjs.js +1 -1
- package/dist/youtubeAssetProvider/index.es.js +121 -108
- package/dist/youtubeAssetProvider/index.umd.js +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
(function(p,d){typeof exports=="object"&&typeof module<"u"?module.exports=d(require("handlebars/dist/cjs/handlebars")):typeof define=="function"&&define.amd?define(["handlebars/dist/cjs/handlebars"],d):(p=typeof globalThis<"u"?globalThis:p||self,p.StudioSdkPlugins_dataSourceHandlebars=d(p.Handlebars))})(this,function(p){"use strict";const d="app.grapesjs.com",P="app-stage.grapesjs.com",S=[d,"app2.grapesjs.com",P,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],x="license:check:start",I="license:check:end",N=()=>typeof window<"u",_=({isDev:a,isStage:t,isPlatform:e})=>`${a?"":`https://${t?P:d}`}/${e?"platform-api":"api"}`,T=()=>{const a=N()&&window.location.hostname;return!!a&&(S.includes(a)||S.some(t=>a.endsWith(t)))};async function v({path:a,baseApiUrl:t,method:e="GET",headers:n={},params:s,body:i}){const l=`${t||_({isDev:!1,isStage:!1})}${a}`,u={method:e,headers:{"Content-Type":"application/json",...n}};i&&(u.body=JSON.stringify(i));const c=s?new URLSearchParams(s).toString():"",h=c?`?${c}`:"",o=await fetch(`${l}${h}`,u);if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);return o.json()}var m=(a=>(a.free="free",a.startup="startup",a.business="business",a.enterprise="enterprise",a))(m||{});const y={[m.free]:0,[m.startup]:10,[m.business]:20,[m.enterprise]:30};function C(a){const t=a;return t.init=e=>n=>a(n,e),t}const k=a=>C(a);async function O({editor:a,plan:t,pluginName:e,licenseKey:n,onLicenseCheckResponse:s,cleanup:i}){let r="",l=!1;const u=T(),c=o=>{console.warn("Cleanup plugin:",e,"Reason:",o),i()},h=(o={})=>{var E;const{error:$,sdkLicense:B}=o,g=(E=o.plan)==null?void 0:E.category;if(!(B||o.license)||$)c($||"Invalid license");else if(g){const W=y[t],G=y[g];W>G&&c({pluginRequiredPlan:t,licensePlan:g})}};a.on(x,o=>{r=o==null?void 0:o.baseApiUrl,l=!0}),a.on(I,o=>{s==null||s(o),h(o)}),setTimeout(async()=>{if(!l){if(u)return;if(n){const o=await A({licenseKey:n,pluginName:e,baseApiUrl:r});s==null||s(o),o&&h(o)}else c("The `licenseKey` option not provided")}},2e3)}async function A(a){const{licenseKey:t,pluginName:e,baseApiUrl:n}=a;try{return(await v({baseApiUrl:n,path:`/sdk/${t||"na"}`,method:"POST",params:{d:window.location.hostname,pn:e}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}const w=(a,t)=>(a.config.optsHtml={...a.config.optsHtml,exporter:t},()=>{a.config.optsHtml.exporter=void 0}),L=(a,t)=>{const e=s=>{const{input:i}=s,{contains:r}=t;(!r||i.includes(r))&&(s.input=t.importer.import(i))},n=a.Parser.events.htmlBefore;return a.on(n,e),()=>{a.off(n,e)}},b={equals:"equals",isTruthy:"isTruthy",isFalsy:"isFalsy",isDefined:"isDefined",isNull:"isNull",isUndefined:"isUndefined",isArray:"isArray",isObject:"isObject",isString:"isString",isNumber:"isNumber",isBoolean:"isBoolean",isDefaultValue:"isDefaultValue"},j={...b,...{">":"numGt","<":"numLt",">=":"numGte","<=":"numLte","=":"numEq","!=":"numNeq"},...{contains:"strContains",startsWith:"strStartsWith",endsWith:"strEndsWith",equalsIgnoreCase:"strEqualsIgnoreCase",trimEquals:"strTrimEquals"}};class D{getHelperId(t){return j[t]||t}getFullPath({collectionId:t,path:e}){let n=e;return t&&(n=[this._sanitizeVariableName(t),e].filter(Boolean).join(".")),n||""}getVariableSyntax({dataResolver:t}){const{defaultValue:e}=t,n=this.getFullPath(t);return e?`{{#if ${n}}}{{{${n}}}}{{else}}${e}{{/if}}`:`{{{${n}}}}`}getCollectionStartSyntax({dataResolver:t}){const{collectionId:e,dataSource:n}=t,s=n==null?void 0:n.path;let i="";if(t.startIndex!==void 0||t.endIndex!==void 0){const c=t.startIndex??0,h=t.endIndex!==void 0?t.endIndex:"";h!==""?i=` (slice ${s} ${c} ${h})`:i=` (slice ${s} ${c})`}const l=` as |${this._sanitizeVariableName(e)}|`;return`{{#each ${i||s}${l}}}`}getCollectionEndSyntax(){return"{{/each}}"}getConditionalStartSyntax({dataResolver:t}){const e=t.condition;if(!e)return"";const n=e,s=e;if(s.statements&&s.logicalOperator==="and"||s.logicalOperator==="or"){const{statements:i}=s,r=s.logicalOperator,l=i.map(c=>this._parseCondition(c)).join(" ");return`{{#if ${i.length>1?`(${r} ${l})`:l}}}`}else return`{{#if ${this._parseCondition(n)}}}`}_parseCondition(t){if(!t)return"";const e=t,n=t;if(n.statements&&n.logicalOperator==="and"||n.logicalOperator==="or"){const{statements:s}=n,i=n.logicalOperator,r=n.statements.map(l=>this._parseCondition(l)).join(" ");return s.length>1?`(${i} ${r})`:r}else{const s=e.operator,i=this.getHelperId(s),r=this._parseValue(e.left),l=this._parseValue(e.right);return this.getExpressionStr(i,r,l)}}getExpressionStr(t,e,n){return b[t]?t==="isTruthy"?e:t==="isFalsy"?`!${e}`:`${t} ${e}`:`(${t} ${e} ${n})`}_parseValue(t){return typeof t=="object"?this.getFullPath(t):typeof t=="string"?`'${t.replace(/'/g,"\\'")}'`:String(t)}_sanitizeVariableName(t){return t.replace(/[^a-zA-Z0-9_$]/g,"_")}getConditionElseSyntax(){return"{{else}}"}getConditionalEndSyntax(){return"{{/if}}"}}class M{constructor(){this.messages=[],this.collectionStack=[]}import(t){this.messages=[],this.collectionStack=[];const e=this.parse(t);return this.astToGrapesJS(e)}parse(t){try{return p.parse(t)}catch(e){if(e instanceof Error&&e.message.includes("Parse error")){const n=e.message.match(/line (\d+)/),s=n?parseInt(n[1]):0,i=e.message.match(/column (\d+)/),r=i?parseInt(i[1]):0;throw new Error(`Handlebars syntax error at line ${s}, column ${r}: ${e.message}`)}throw e}}astToGrapesJS(t){switch(t.type){case"Program":return this.handleProgram(t);case"ContentStatement":return this.handleContentStatement(t);case"MustacheStatement":return this.handleMustacheStatement(t);case"BlockStatement":return this.handleBlockStatement(t);case"PartialStatement":return this.handlePartialStatement(t);case"CommentStatement":return this.handleCommentStatement(t);case"ElementNode":return this.handleElementNode(t);case"TextNode":return this.handleTextNode(t);default:return this.addMessage("warning",`Unsupported node type: ${t.type}`,t.loc),""}}handleProgram(t){let e="";if(t.body)for(const n of t.body)e+=this.astToGrapesJS(n);return e}handleContentStatement(t){return t.value||""}handleMustacheStatement(t,e={}){const n=this.getExpressionString(t.path),s={...e};return this.collectionStack.length>0?this.processPathWithCollectionContext(n,s):s.path=n,`<data-variable data-gjs-data-resolver='${JSON.stringify(s)}'></data-variable>`}processPathWithCollectionContext(t,e){t.startsWith("@")?this.handleDirectCollectionReference(t,e):this.handleRelativePathReference(t,e)}handleDirectCollectionReference(t,e){if(this.isSpecialIterationVariable(t)){this.setSpecialVariableResolver(this.collectionStack[this.collectionStack.length-1],t,e);return}const[n,...s]=t.substring(1).split("/"),i=s.join(".");this.collectionStack.includes(n)?this.setCurrentItemResolver(n,i,e):this.handleParentReferenceFallback(t,e)}isSpecialIterationVariable(t){return["index","@index","key","@key"].includes(t)}setSpecialVariableResolver(t,e,n){n.collectionId=t;const s={index:"currentIndex","@index":"currentIndex",key:"currentKey","@key":"currentKey"};n.variableType=s[e]}setCurrentItemResolver(t,e,n){n.collectionId=t,n.variableType="currentItem",e&&(n.path=e)}handleRelativePathReference(t,e){const n=f(t),{parentLevel:s,remainingPathParts:i}=this.calculateParentLevel(n),r=i.join("."),l=this.collectionStack.length-1-s;l>=0&&l<this.collectionStack.length?this.resolveRelativePath(r,l,e):e.path=i.join(".")}calculateParentLevel(t){const e=this.collectionStack.findLastIndex(i=>i===t[0]);if(e!==-1)return{parentLevel:this.collectionStack.length-1-e,remainingPathParts:t.slice(1)};let n=0;const s=[...t];for(;s[0]==="..";)n++,s.shift();return{parentLevel:n,remainingPathParts:s}}resolveRelativePath(t,e,n){const s=this.collectionStack[e];n.collectionId=s,n.variableType="currentItem",t!=="this"&&(n.path=t.startsWith("this.")?t.split(".").slice(1).join("."):t)}handleParentReferenceFallback(t,e){const n=f(t),{parentLevel:s,remainingPathParts:i}=this.calculateParentLevel(n),r=i.join("."),l=this.collectionStack.length-1-s;l>=0&&l<this.collectionStack.length?this.resolveRelativePath(r,l,e):e.path=i.join(".")}handleBlockStatement(t){const e=t.path.original;switch(e){case"if":case"unless":return this.handleConditionalBlock(t,e);case"each":return this.handleEachBlock(t);default:return this.addMessage("warning",`Unsupported block helper: ${e}`,t.loc),this.handleGenericBlock(t)}}handleConditionalBlock(t,e){const i={logicalOperator:"and",statements:[{left:{type:"data-variable",path:this.getExpressionString(t.params[0])},operator:e==="unless"?"isFalsy":"isTruthy"}]},r=this.handleProgram(t.program),l=t.inverse?this.handleProgram(t.inverse):"";return`
|
|
1
|
+
(function(p,g){typeof exports=="object"&&typeof module<"u"?module.exports=g(require("handlebars/dist/cjs/handlebars")):typeof define=="function"&&define.amd?define(["handlebars/dist/cjs/handlebars"],g):(p=typeof globalThis<"u"?globalThis:p||self,p.StudioSdkPlugins_dataSourceHandlebars=g(p.Handlebars))})(this,function(p){"use strict";const g="app.grapesjs.com",y="app-stage.grapesjs.com",m=[g,"app2.grapesjs.com",y,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],I="license:check:end",S=()=>typeof window<"u",T=({isDev:t,isStage:e,isPlatform:s})=>`${t?"":`https://${e?y:g}`}/${s?"platform-api":"api"}`,k=()=>{const t=S()&&window.location.hostname;return!!t&&(m.includes(t)||m.some(e=>t.endsWith(e)))};async function A({path:t,baseApiUrl:e,method:s="GET",headers:n={},params:a,body:i}){const r=`${e||T({isDev:!1,isStage:!1})}${t}`,c={method:s,headers:{"Content-Type":"application/json",...n}};i&&(c.body=JSON.stringify(i));const u=a?new URLSearchParams(a).toString():"",h=u?`?${u}`:"",l=await fetch(`${r}${h}`,c);if(!l.ok)throw new Error(`HTTP error! status: ${l.status}`);return l.json()}var d=(t=>(t.free="free",t.startup="startup",t.business="business",t.enterprise="enterprise",t))(d||{}),f=(t=>(t.toastAdd="studio:toastAdd",t.toastRemove="studio:toastRemove",t.dialogOpen="studio:dialogOpen",t.dialogClose="studio:dialogClose",t.dialogExportCode="studio:dialogExportCode",t.dialogImportCode="studio:dialogImportCode",t.sidebarLeftSet="studio:sidebarLeft:set",t.sidebarLeftGet="studio:sidebarLeft:get",t.sidebarLeftToggle="studio:sidebarLeft:toggle",t.sidebarRightSet="studio:sidebarRight:set",t.sidebarRightGet="studio:sidebarRight:get",t.sidebarRightToggle="studio:sidebarRight:toggle",t.sidebarTopSet="studio:sidebarTop:set",t.sidebarTopGet="studio:sidebarTop:get",t.sidebarTopToggle="studio:sidebarTop:toggle",t.sidebarBottomSet="studio:sidebarBottom:set",t.sidebarBottomGet="studio:sidebarBottom:get",t.sidebarBottomToggle="studio:sidebarBottom:toggle",t.symbolAdd="studio:symbolAdd",t.symbolDetach="studio:symbolDetach",t.symbolOverride="studio:symbolOverride",t.symbolPropagateStyles="studio:propagateStyles",t.getPagesConfig="studio:getPagesConfig",t.setPagesConfig="studio:setPagesConfig",t.getPageSettings="studio:getPageSettings",t.setPageSettings="studio:setPageSettings",t.clearPage="studio:clearPage",t.projectFiles="studio:projectFiles",t.validateCode="studio:validateCode",t.canvasReload="studio:canvasReload",t.getBlocksPanel="studio:getBlocksPanel",t.setBlocksPanel="studio:setBlocksPanel",t.getStateContextMenu="studio:getStateContextMenu",t.setStateContextMenu="studio:setStateContextMenu",t.contextMenuComponent="studio:contextMenuComponent",t.layoutAdd="studio:layoutAdd",t.layoutRemove="studio:layoutRemove",t.layoutToggle="studio:layoutToggle",t.layoutUpdate="studio:layoutUpdate",t.layoutGet="studio:layoutGet",t.layoutConfigGet="studio:layoutConfigGet",t.layoutConfigSet="studio:layoutConfigSet",t.layoutComponentAdd="studio:layoutComponentAdd",t.layoutComponentGet="studio:layoutComponentGet",t.layoutComponentRemove="studio:layoutComponentRemove",t.layoutComponentRender="studio:layoutComponentRender",t.getStateTheme="studio:getStateTheme",t.setStateTheme="studio:setStateTheme",t.settings="studio:settings",t.assetProviderGet="studio:assetProviderGet",t.assetProviderAdd="studio:assetProviderAdd",t.assetProviderRemove="studio:assetProviderRemove",t.fontGet="studio:fontGet",t.fontAdd="studio:fontAdd",t.fontRemove="studio:fontRemove",t.fontManagerOpen="studio:fontManagerOpen",t.menuFontLoad="studio:menuFontLoad",t.toggleStateDataSource="studio:toggleStateDataSource",t.getStateDataSource="studio:getStateDataSource",t.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",t.dataSourceSetImporter="studio:dataSourceSetImporter",t.dataSourceSetExporter="studio:dataSourceSetExporter",t.setDragAbsolute="studio:setDragAbsolute",t))(f||{});const x={[d.free]:0,[d.startup]:10,[d.business]:20,[d.enterprise]:30};function N(t){const e=t;return e.init=s=>n=>t(n,s),e}const O=t=>N(t);async function R({editor:t,plan:e,pluginName:s,licenseKey:n,onLicenseCheckResponse:a,cleanup:i}){let o="",r;const c=l=>{console.warn("Cleanup plugin:",s,"Reason:",l),i()},u=(l={})=>{var E;const{error:v,sdkLicense:H}=l,b=(E=l.plan)==null?void 0:E.category;if(!(H||l.license)||v)c(v||"Invalid license");else if(b){const W=x[e],V=x[b];W>V&&c({pluginRequiredPlan:e,licensePlan:b})}};t.Commands.has(f.settings)&&(r=t.runCommand(f.settings),o=(r==null?void 0:r.baseUrl)||"");const h=l=>{a==null||a(l),l&&u(l)};if(!r){t.onReady(async()=>{if(!k())if(n){const l=await L({licenseKey:n,pluginName:s,baseApiUrl:o});h(l)}else c("The `licenseKey` option not provided")});return}if(r.licensePlan||r.licenseError){const l=_(r);h(l);return}t.on(I,l=>h(l))}const _=t=>({sdkLicense:t.license,license:t.license,error:t.licenseError,plan:t.licensePlan});async function L(t){const{licenseKey:e,pluginName:s,baseApiUrl:n}=t;try{return(await A({baseApiUrl:n,path:`/sdk/${e||"na"}`,method:"POST",params:{d:window.location.hostname,pn:s}})).result||{}}catch(a){return console.error("Error during SDK license check:",a),!1}}const D=(t,e)=>(t.config.optsHtml={...t.config.optsHtml,exporter:e},()=>{t.config.optsHtml.exporter=void 0}),G=(t,e)=>{const s=a=>{const{input:i}=a,{contains:o}=e;(!o||i.includes(o))&&(a.input=e.importer.import(i))},n=t.Parser.events.htmlBefore;return t.on(n,s),()=>{t.off(n,s)}},$={equals:"equals",isTruthy:"isTruthy",isFalsy:"isFalsy",isDefined:"isDefined",isNull:"isNull",isUndefined:"isUndefined",isArray:"isArray",isObject:"isObject",isString:"isString",isNumber:"isNumber",isBoolean:"isBoolean",isDefaultValue:"isDefaultValue"},M={...$,...{">":"numGt","<":"numLt",">=":"numGte","<=":"numLte","=":"numEq","!=":"numNeq"},...{contains:"strContains",startsWith:"strStartsWith",endsWith:"strEndsWith",equalsIgnoreCase:"strEqualsIgnoreCase",trimEquals:"strTrimEquals"}};class w{getHelperId(e){return M[e]||e}getFullPath({collectionId:e,path:s}){let n=s;return e&&(n=[this._sanitizeVariableName(e),s].filter(Boolean).join(".")),n||""}getVariableSyntax({dataResolver:e}){const{defaultValue:s}=e,n=this.getFullPath(e);return s?`{{#if ${n}}}{{{${n}}}}{{else}}${s}{{/if}}`:`{{{${n}}}}`}getCollectionStartSyntax({dataResolver:e}){const{collectionId:s,dataSource:n}=e,a=n==null?void 0:n.path;let i="";if(e.startIndex!==void 0||e.endIndex!==void 0){const u=e.startIndex??0,h=e.endIndex!==void 0?e.endIndex:"";h!==""?i=` (slice ${a} ${u} ${h})`:i=` (slice ${a} ${u})`}const r=` as |${this._sanitizeVariableName(s)}|`;return`{{#each ${i||a}${r}}}`}getCollectionEndSyntax(){return"{{/each}}"}getConditionalStartSyntax({dataResolver:e}){const s=e.condition;if(!s)return"";const n=s,a=s;if(a.statements&&a.logicalOperator==="and"||a.logicalOperator==="or"){const{statements:i}=a,o=a.logicalOperator,r=i.map(u=>this._parseCondition(u)).join(" ");return`{{#if ${i.length>1?`(${o} ${r})`:r}}}`}else return`{{#if ${this._parseCondition(n)}}}`}_parseCondition(e){if(!e)return"";const s=e,n=e;if(n.statements&&n.logicalOperator==="and"||n.logicalOperator==="or"){const{statements:a}=n,i=n.logicalOperator,o=n.statements.map(r=>this._parseCondition(r)).join(" ");return a.length>1?`(${i} ${o})`:o}else{const a=s.operator,i=this.getHelperId(a),o=this._parseValue(s.left),r=this._parseValue(s.right);return this.getExpressionStr(i,o,r)}}getExpressionStr(e,s,n){return $[e]?e==="isTruthy"?s:e==="isFalsy"?`!${s}`:`${e} ${s}`:`(${e} ${s} ${n})`}_parseValue(e){return typeof e=="object"?this.getFullPath(e):typeof e=="string"?`'${e.replace(/'/g,"\\'")}'`:String(e)}_sanitizeVariableName(e){return e.replace(/[^a-zA-Z0-9_$]/g,"_")}getConditionElseSyntax(){return"{{else}}"}getConditionalEndSyntax(){return"{{/if}}"}}class B{constructor(){this.messages=[],this.collectionStack=[]}import(e){this.messages=[],this.collectionStack=[];const s=this.parse(e);return this.astToGrapesJS(s)}parse(e){try{return p.parse(e)}catch(s){if(s instanceof Error&&s.message.includes("Parse error")){const n=s.message.match(/line (\d+)/),a=n?parseInt(n[1]):0,i=s.message.match(/column (\d+)/),o=i?parseInt(i[1]):0;throw new Error(`Handlebars syntax error at line ${a}, column ${o}: ${s.message}`)}throw s}}astToGrapesJS(e){switch(e.type){case"Program":return this.handleProgram(e);case"ContentStatement":return this.handleContentStatement(e);case"MustacheStatement":return this.handleMustacheStatement(e);case"BlockStatement":return this.handleBlockStatement(e);case"PartialStatement":return this.handlePartialStatement(e);case"CommentStatement":return this.handleCommentStatement(e);case"ElementNode":return this.handleElementNode(e);case"TextNode":return this.handleTextNode(e);default:return this.addMessage("warning",`Unsupported node type: ${e.type}`,e.loc),""}}handleProgram(e){let s="";if(e.body)for(const n of e.body)s+=this.astToGrapesJS(n);return s}handleContentStatement(e){return e.value||""}handleMustacheStatement(e,s={}){const n=this.getExpressionString(e.path),a={...s};return this.collectionStack.length>0?this.processPathWithCollectionContext(n,a):a.path=n,`<data-variable data-gjs-data-resolver='${JSON.stringify(a)}'></data-variable>`}processPathWithCollectionContext(e,s){e.startsWith("@")?this.handleDirectCollectionReference(e,s):this.handleRelativePathReference(e,s)}handleDirectCollectionReference(e,s){if(this.isSpecialIterationVariable(e)){this.setSpecialVariableResolver(this.collectionStack[this.collectionStack.length-1],e,s);return}const[n,...a]=e.substring(1).split("/"),i=a.join(".");this.collectionStack.includes(n)?this.setCurrentItemResolver(n,i,s):this.handleParentReferenceFallback(e,s)}isSpecialIterationVariable(e){return["index","@index","key","@key"].includes(e)}setSpecialVariableResolver(e,s,n){n.collectionId=e;const a={index:"currentIndex","@index":"currentIndex",key:"currentKey","@key":"currentKey"};n.variableType=a[s]}setCurrentItemResolver(e,s,n){n.collectionId=e,n.variableType="currentItem",s&&(n.path=s)}handleRelativePathReference(e,s){const n=P(e),{parentLevel:a,remainingPathParts:i}=this.calculateParentLevel(n),o=i.join("."),r=this.collectionStack.length-1-a;r>=0&&r<this.collectionStack.length?this.resolveRelativePath(o,r,s):s.path=i.join(".")}calculateParentLevel(e){const s=this.collectionStack.findLastIndex(i=>i===e[0]);if(s!==-1)return{parentLevel:this.collectionStack.length-1-s,remainingPathParts:e.slice(1)};let n=0;const a=[...e];for(;a[0]==="..";)n++,a.shift();return{parentLevel:n,remainingPathParts:a}}resolveRelativePath(e,s,n){const a=this.collectionStack[s];n.collectionId=a,n.variableType="currentItem",e!=="this"&&(n.path=e.startsWith("this.")?e.split(".").slice(1).join("."):e)}handleParentReferenceFallback(e,s){const n=P(e),{parentLevel:a,remainingPathParts:i}=this.calculateParentLevel(n),o=i.join("."),r=this.collectionStack.length-1-a;r>=0&&r<this.collectionStack.length?this.resolveRelativePath(o,r,s):s.path=i.join(".")}handleBlockStatement(e){const s=e.path.original;switch(s){case"if":case"unless":return this.handleConditionalBlock(e,s);case"each":return this.handleEachBlock(e);default:return this.addMessage("warning",`Unsupported block helper: ${s}`,e.loc),this.handleGenericBlock(e)}}handleConditionalBlock(e,s){const i={logicalOperator:"and",statements:[{left:{type:"data-variable",path:this.getExpressionString(e.params[0])},operator:s==="unless"?"isFalsy":"isTruthy"}]},o=this.handleProgram(e.program),r=e.inverse?this.handleProgram(e.inverse):"";return`
|
|
2
2
|
<data-condition data-gjs-data-resolver='${JSON.stringify({condition:i})}'>
|
|
3
|
-
<data-condition-true-content>${
|
|
4
|
-
<data-condition-false-content>${
|
|
3
|
+
<data-condition-true-content>${o}</data-condition-true-content>
|
|
4
|
+
<data-condition-false-content>${r}</data-condition-false-content>
|
|
5
5
|
</data-condition>
|
|
6
|
-
`}handleEachBlock(
|
|
7
|
-
<data-collection data-gjs-data-resolver='${JSON.stringify({dataSource:{type:"data-variable",path:
|
|
8
|
-
<data-collection-item>${
|
|
6
|
+
`}handleEachBlock(e){var i,o,r;const s=this.getExpressionString(e.params[0]);let n;e.params.length>=3&&e.params[1]==="as"&&((i=e.params[2])==null?void 0:i.type)==="PathExpression"?n=e.params[2].original:(r=(o=e.program)==null?void 0:o.blockParams)!=null&&r.length?n=e.program.blockParams[0]:n=`collection-${Math.random().toString(36).substring(2,10)}`,this.collectionStack.push(n);const a=this.handleProgram(e.program);return this.collectionStack.pop(),`
|
|
7
|
+
<data-collection data-gjs-data-resolver='${JSON.stringify({dataSource:{type:"data-variable",path:s},collectionId:n})}'>
|
|
8
|
+
<data-collection-item>${a}</data-collection-item>
|
|
9
9
|
</data-collection>
|
|
10
|
-
`}handleCommentStatement(
|
|
10
|
+
`}handleCommentStatement(e){return`<!--${e.value}-->`}handleElementNode(e){let s="";if(e.attributes)for(const a of e.attributes)a.value.type==="TextNode"?s+=` ${a.name}="${a.value.chars}"`:(this.addMessage("warning",`Complex attribute values not fully supported: ${a.name}`,e.loc),s+=` ${a.name}="${this.getExpressionString(a.value)}"`);let n="";if(e.children)for(const a of e.children)n+=this.astToGrapesJS(a);return`<${e.tag}${s}>${n}</${e.tag}>`}handleTextNode(e){return e.chars||""}handlePartialStatement(e){return this.addMessage("warning",`Partials are not fully supported: ${e.name.original}`,e.loc),`{{> ${e.name.original}}}`}handleGenericBlock(e){const s=this.handleProgram(e.program);return`<!-- Unsupported block: ${e.path.original} -->${s}`}getExpressionString(e){return e.type==="PathExpression"?e.original:e.type==="StringLiteral"?e.value:e.type==="NumberLiteral"?e.value.toString():e.type==="BooleanLiteral"?e.value?"true":"false":e.type==="SubExpression"?this.getExpressionString(e.params[0]):e.type==="Hash"?`{${e.pairs.map(n=>`${n.key}=${this.getExpressionString(n.value)}`).join(", ")}}`:(this.addMessage("warning",`Complex expression type not fully supported: ${e.type}`,e.loc),"")}addMessage(e,s,n){this.messages.push({type:e,message:s,location:n?{line:n.start.line,column:n.start.column}:void 0})}}const P=t=>{if(t==null||t==="")return[];if(t===".")return["this"];if(t===".."||t==="../")return[".."];if(t.startsWith("../")){const o=t.substring(3);return["..",...P(o)]}const e=[];let s=0,n=t.replace(/\[(?:(['"])(.*?)\1|([^\]]*))\]/g,(o,r,c,u)=>{const h=c!==void 0?c:u||"";return e[s]=h,`__HANDLEBARS_PLACEHOLDER_${s++}__`});n=n.replace(/\//g,".");const a=n.split("."),i=[];for(const o of a){const r=/^__HANDLEBARS_PLACEHOLDER_(\d+)__$/.exec(o);if(r){const c=parseInt(r[1],10);i.push(e[c])}else o!==""&&i.push(o)}return i},j="dataSourceHandlebars",U=d.startup;return O(function(t,e={}){const s=D(t,new w),n=G(t,{contains:"{{",importer:new B});R({editor:t,licenseKey:e.licenseKey,plan:U,pluginName:j,cleanup:()=>{s(),n()}})})});
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const A="app.grapesjs.com",k="app-stage.grapesjs.com",R="app2.grapesjs.com",_="app-stage2.grapesjs.com",x=[A,R,k,_,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],$="license:check:end",G=()=>typeof window<"u",N=({isDev:e,isStage:n,isPlatform:r})=>`${e?"":`https://${n?k:A}`}/${r?"platform-api":"api"}`,B=()=>{const e=G()&&window.location.hostname;return!!e&&(x.includes(e)||x.some(n=>e.endsWith(n)))};async function M({path:e,baseApiUrl:n,method:r="GET",headers:s={},params:c,body:i}){const a=`${n||N({isDev:!1,isStage:!1})}${e}`,g={method:r,headers:{"Content-Type":"application/json",...s}};i&&(g.body=JSON.stringify(i));const p=c?new URLSearchParams(c).toString():"",d=p?`?${p}`:"",o=await fetch(`${a}${d}`,g);if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);return o.json()}var W=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(W||{}),w=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",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.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.settings="studio:settings",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))(w||{});const O={[W.free]:0,[W.startup]:10,[W.business]:20,[W.enterprise]:30};function I(e){const n=e;return n.init=r=>s=>e(s,r),n}const U=e=>I(e);async function m({editor:e,plan:n,pluginName:r,licenseKey:s,onLicenseCheckResponse:c,cleanup:i}){let u="",a;const g=o=>{console.warn("Cleanup plugin:",r,"Reason:",o),i()},p=(o={})=>{var b;const{error:v,sdkLicense:L}=o,l=(b=o.plan)==null?void 0:b.category;if(!(L||o.license)||v)g(v||"Invalid license");else if(l){const P=O[n],T=O[l];P>T&&g({pluginRequiredPlan:n,licensePlan:l})}};e.Commands.has(w.settings)&&(a=e.runCommand(w.settings),u=(a==null?void 0:a.baseUrl)||"");const d=o=>{c==null||c(o),o&&p(o)};if(!a){e.onReady(async()=>{if(!B())if(s){const o=await X({licenseKey:s,pluginName:r,baseApiUrl:u});d(o)}else g("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const o=q(a);d(o);return}e.on($,o=>d(o))}const q=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function X(e){const{licenseKey:n,pluginName:r,baseApiUrl:s}=e;try{return(await M({baseApiUrl:s,path:`/sdk/${n||"na"}`,method:"POST",params:{d:window.location.hostname,pn:r}})).result||{}}catch(c){return console.error("Error during SDK license check:",c),!1}}const j=(...e)=>e.map(n=>`[data-gjs-type="${n}"]`).join(","),F="dialogComponent",z=function(e,n={}){const{Blocks:r,Components:s}=e,{licenseKey:c}=n,i="gjs-plg-dialog",u="gjs-plg-dialog-overlay",a="gjs-plg-dialog-content",g="gjs-plg-dialog-close",p="gjs-plg-dialog-title",d="gjs-plg-dialog-body",o="gjs-plg-dialog-description",v="gjs-plg-dialog-placeholder";r.add(i,{label:"Dialog",media:`
|
|
2
2
|
<svg viewBox="0 0 24 24">
|
|
3
3
|
<path d="M4 4h16v10H8l-4 4V4z"></path>
|
|
4
4
|
</svg>
|
|
5
|
-
`,category:"Extra",content:{type:i},activate:!0,...
|
|
5
|
+
`,category:"Extra",content:{type:i},activate:!0,...n.block}),s.addType(i,{model:{defaults:{tagName:"div",attributes:{class:i,"data-type-role":i},components:[{type:u},{type:v}],draggable:j("wrapper"),droppable:j(i),styles:`
|
|
6
6
|
.${i} {
|
|
7
7
|
position: relative;
|
|
8
8
|
z-index: 1;
|
|
9
9
|
}
|
|
10
|
-
`,traits:[{type:"button",label:"Open dialog",name:"onActive",changeProp:!0,command(
|
|
10
|
+
`,traits:[{type:"button",label:"Open dialog",name:"onActive",changeProp:!0,command(l){var t;(t=l.getSelected())==null||t.trigger("active")}},{type:"checkbox",label:"Close when pressing X",name:"closeWhenPressingX",default:!0,changeProp:!0},{type:"checkbox",label:"Close when pressing ESC",name:"closeWhenPressingEsc",default:!0,changeProp:!0},{type:"checkbox",label:"Open when leaving the window",name:"openWhenLeavingWindow",default:!1,changeProp:!0},{type:"number",label:"Open when scrolling to level",name:"openWhenScrollingToLevel",default:0,changeProp:!0}],"script-props":["closeWhenPressingX","closeWhenPressingEsc","openWhenLeavingWindow","openWhenScrollingToLevel"],script:function(l){const t=this;function b(y){const f=t.querySelector('[data-type-role="gjs-plg-dialog-overlay"]'),h=t.querySelector('[data-type-role="gjs-plg-dialog-close"]');function E(){f.style.display="none"}y?(t._onCloseWhenPressingX=E,h.addEventListener("click",t._onCloseWhenPressingX)):(h.removeEventListener("click",t._onCloseWhenPressingX),t._onCloseWhenPressingX=null)}function P(y){const f=t.querySelector('[data-type-role="gjs-plg-dialog-overlay"]');function h(E){E.key==="Escape"&&(f.style.display="none")}y?(t._onCloseWhenPressingEsc=h,t.addEventListener("keydown",t._onCloseWhenPressingEsc)):(t.removeEventListener("keydown",t._onCloseWhenPressingEsc),t._onCloseWhenPressingEsc=null)}function T(y){const f=t.querySelector('[data-type-role="gjs-plg-dialog-overlay"]');function h(){f.style.display="flex"}y?(t._onOpenWhenLeavingWindow=h,document.addEventListener("mouseleave",t._onOpenWhenLeavingWindow)):(document.removeEventListener("mouseleave",t._onOpenWhenLeavingWindow),t._onOpenWhenLeavingWindow=null)}function D(y){const f=t.querySelector('[data-type-role="gjs-plg-dialog-overlay"]');function h(){const E=document.documentElement.scrollTop;y&&E>=Number(y)&&(f.style.display="flex")}y?(t._onOpenWhenScrollingToLevel=h,document.addEventListener("scroll",t._onOpenWhenScrollingToLevel)):(document.removeEventListener("scroll",t._onOpenWhenScrollingToLevel),t._onOpenWhenScrollingToLevel=null)}b(l.closeWhenPressingX),P(l.closeWhenPressingEsc),T(l.openWhenLeavingWindow),D(l.openWhenScrollingToLevel)}},init(){this.on("active",this.handleOpenWhenClickPlaceholder)},handleOpenWhenClickPlaceholder(){this.view.el.querySelector('[data-type-role="gjs-plg-dialog-placeholder"]').addEventListener("click",()=>{const t=this.view.el.querySelector('[data-type-role="gjs-plg-dialog-overlay"]');t.style.display="flex"})}},view:{onActive(){const l=this.el.querySelector('[data-type-role="gjs-plg-dialog-overlay"]');l.style.display="flex"}}}),s.addType(u,{model:{defaults:{tagName:"div",attributes:{class:u,"data-type-role":u},components:{type:a},droppable:!1,draggable:!1,styles:`
|
|
11
11
|
.${u} {
|
|
12
12
|
position: fixed;
|
|
13
13
|
top: 0;
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
justify-content: center;
|
|
20
20
|
background-color: rgba(0, 0, 0, 0.5);
|
|
21
21
|
}
|
|
22
|
-
`}}}),
|
|
23
|
-
.${
|
|
22
|
+
`}}}),s.addType(a,{model:{defaults:{tagName:"div",attributes:{class:a,"data-type-role":a},components:[{type:g},{type:p},{type:d}],droppable:!1,draggable:!1,styles:`
|
|
23
|
+
.${a} {
|
|
24
24
|
position: relative;
|
|
25
25
|
background-color: #fff;
|
|
26
26
|
border-radius: 10px;
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
height: 600px;
|
|
31
31
|
box-sizing: border-box;
|
|
32
32
|
}
|
|
33
|
-
`}}}),
|
|
34
|
-
.${
|
|
33
|
+
`}}}),s.addType(g,{model:{defaults:{tagName:"button",attributes:{class:g,"data-type-role":g},components:"×",droppable:!1,draggable:!1,styles:`
|
|
34
|
+
.${g} {
|
|
35
35
|
position: absolute;
|
|
36
36
|
top: 10px;
|
|
37
37
|
right: 10px;
|
|
@@ -42,18 +42,18 @@
|
|
|
42
42
|
font-size: 20px;
|
|
43
43
|
cursor: pointer;
|
|
44
44
|
}
|
|
45
|
-
`}}}),
|
|
46
|
-
.${
|
|
45
|
+
`}}}),s.addType(p,{model:{defaults:{tagName:"h2",attributes:{class:p,"data-type-role":p},components:"Dialog Title",editable:!0,droppable:!1,draggable:!1,styles:`
|
|
46
|
+
.${p} {
|
|
47
47
|
margin: 0;
|
|
48
48
|
padding: 0 40px 20px 0;
|
|
49
49
|
}
|
|
50
|
-
`}}}),
|
|
51
|
-
.${
|
|
50
|
+
`}}}),s.addType(d,{model:{defaults:{tagName:"div",attributes:{class:d,"data-type-role":d},components:[{type:o}],styles:`
|
|
51
|
+
.${d} {
|
|
52
52
|
height: 90%;
|
|
53
53
|
overflow: auto;
|
|
54
54
|
}
|
|
55
|
-
`}}}),
|
|
56
|
-
.${
|
|
55
|
+
`}}}),s.addType(o,{model:{defaults:{tagName:"p",attributes:{class:o,"data-type-role":o},components:"This is a customizable dialog!",editable:!0,styles:`
|
|
56
|
+
.${o} {
|
|
57
57
|
margin: 0;
|
|
58
58
|
}
|
|
59
|
-
`}}}),
|
|
59
|
+
`}}}),s.addType(v,{model:{toHTML(){return""},defaults:{tagName:"button",attributes:{class:v,"data-type-role":v},components:"Dialog (click me to open)",droppable:!1,draggable:!1}},view:{init(){const{em:l,el:t}=this,b="core:preview",P=l.Commands.events;this.listenTo(l,`${P.runCommand}${b}`,()=>{t.style.display="none"}),this.listenTo(l,`${P.stopCommand}${b}`,()=>{t.style.display=""})}}}),m({editor:e,licenseKey:c,plan:W.startup,pluginName:F,cleanup:()=>{r.remove(i),s.removeType(i)}})},H=U(z);module.exports=H;
|