@wavemaker/angular-codegen 11.1.0-next.24312 → 11.1.0-next.24315

Sign up to get free protection for your applications and to get access to all the features.
@@ -68,7 +68,7 @@
68
68
  "tslib": "^2.0.0",
69
69
  "x2js": "3.2.6",
70
70
  "zone.js": "~0.11.4",
71
- "@wavemaker/app-ng-runtime": "11.1.0-next.24312"
71
+ "@wavemaker/app-ng-runtime": "11.1.0-next.24315"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@ampproject/rollup-plugin-closure-compiler": "0.8.5",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-codegen",
3
- "version": "11.1.0-next.24312",
3
+ "version": "11.1.0-next.24315",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1 +1 @@
1
- const codegenCLI=require("./codegen-cli"),argv=require("yargs").usage("Usage: $0 -s [wavemaker project path] -t [target location] [-c] [-g]").options({deploy_url:{alias:"d",type:"string"},generate_page:{type:"string"},source:{alias:"s",describe:"source project web-app path",type:"string"},target:{alias:"t",describe:"target directory",type:"string"},codegenPath:{describe:"Codegen installation path",type:"string"},pwa:{describe:"Toggle pwa capability",type:"boolean",default:!1}}).demandOption(["source","target"],"please provide source project and target directory paths").help().argv,init=async()=>{argv.generate_page&&await codegenCLI.generatePage(argv.source,argv.target,argv.generate_page,argv.codegenPath),argv.generate_page||await codegenCLI.generateCodegenAngularApp(argv.source,argv.target,argv.deploy_url,argv.pwa,argv.codegenPath)};init();
1
+ const codegenCLI=require("./codegen-cli"),argv=require("yargs").usage("Usage: $0 -s [wavemaker project path] -t [target location] [-c] [-g]").options({deploy_url:{alias:"d",type:"string"},generate_page:{type:"string"},source:{alias:"s",describe:"source project web-app path",type:"string"},target:{alias:"t",describe:"target directory",type:"string"},codegenPath:{describe:"Codegen installation path",type:"string"},pwa:{describe:"Toggle pwa capability",type:"boolean",default:!1}}).demandOption(["source","target"],"please provide source project and target directory paths").help().argv,init=async()=>{argv.generate_page&&await codegenCLI.generatePage(argv.source,argv.target,argv.generate_page,argv.codegenPath,argv.csp),argv.generate_page||await codegenCLI.generateCodegenAngularApp(argv.source,argv.target,argv.deploy_url,argv.pwa,argv.codegenPath,argv.csp)};init();
@@ -1 +1 @@
1
- const codegen=require("./codegen"),{setCodegenPath:setCodegenPath,initExpressionParser:initExpressionParser}=require("./wm-utils"),{initTemplates:initTemplates}=require("./handlebar-helpers"),create=async(e,a,n)=>{await codegen.createAppSkeleton(e,a,n)},generate=async(e,a,n,t)=>{await codegen.generateSources(e,a,n,t)},generateCodegenAngularApp=async(e,a,n,t,r)=>{setCodegenPath(r),initTemplates(),initExpressionParser(),await create(e,a,r),await generate(e,a,n,t)},generatePage=async(e,a,n,t)=>{setCodegenPath(t),initTemplates(),initExpressionParser(),await codegen.generatePage(e,a,n)};module.exports={create:create,generateCodegenAngularApp:generateCodegenAngularApp,generatePage:generatePage};
1
+ const codegen=require("./codegen"),{setCodegenPath:setCodegenPath,initExpressionParser:initExpressionParser}=require("./wm-utils"),{initTemplates:initTemplates}=require("./handlebar-helpers"),create=async(e,a,n)=>{await codegen.createAppSkeleton(e,a,n)},generate=async(e,a,n,t,r)=>{await codegen.generateSources(e,a,n,t,r)},generateCodegenAngularApp=async(e,a,n,t,r,g)=>{setCodegenPath(r),initTemplates(),initExpressionParser(),await create(e,a,r),await generate(e,a,n,t,g)},generatePage=async(e,a,n,t,r)=>{setCodegenPath(t),initTemplates(),initExpressionParser(),await codegen.generatePage(e,a,n,r)};module.exports={create:create,generateCodegenAngularApp:generateCodegenAngularApp,generatePage:generatePage};
@@ -1 +1 @@
1
- global._WM_APP_PROPERTIES={},global._WM_PACKAGE_PATH="./libraries",global.$=require("jquery"),global._=require("lodash");const cheerio=require("cheerio"),{deleteResource:deleteResource,getIndexHtmlPath:getIndexHtmlPath,getPagesDirPath:getPagesDirPath,readFile:readFile,searchFileByName:searchFileByName,writeFile:writeFile,readFileSync:readFileSync}=require("./wm-utils"),{createAppSkeleton:createApp}=require("./gen-app-skeleton"),{generateAppModule:generateAppModule,generateCodeGenModule:generateCodeGenModule}=require("./gen-app-codegen-module"),{generatePrefabConfigFile:generatePrefabConfigFile}=require("./gen-prefabs"),{generateAppRoutes:generateAppRoutes}=require("./gen-app-routes"),{generateAppJS:generateAppJS}=require("./gen-app-js"),{generateAppVariables:generateAppVariables}=require("./gen-app-variables"),{getWmProjectProperties:getWmProjectProperties,getSecurityConfig:getSecurityConfig,getPagesConfig:getPagesConfig,getPrefabConfigsUsedInApp:getPrefabConfigsUsedInApp,getPrefabPartialsConfig:getPrefabPartialsConfig}=require("./project-meta"),{generateTSConfig:generateTSConfig}=require("./gen-tsconfig"),{generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent}=require("./gen-components"),{generateWmProjectProperties:generateWmProjectProperties}=require("./gen-wm-project-properties"),{generateIndexHtml:generateIndexHtml}=require("./gen-index-html"),{updateAngularJSON:updateAngularJSON}=require("./update-angular-json"),{generatePwaFiles:generatePwaFiles}=require("./gen-pwa-files"),{generateLazyModuleRoutes:generateLazyModuleRoutes}=require("./gen-lazy-module-routes"),getMarkupFiles=async e=>{const a=[];return searchFileByName(e+"/src/app",/\.html$/,e=>{a.push(e)}),a},isDynamicComponentUsedInMarkup=async e=>{const a=await readFile(e,"utf8");return cheerio.load(a)("form[wmForm][metadata],form[wmForm][metadata\\.bind],div[wmTable]:not(:has(*))").length>0},isDynamicComponentUsedInApp=async e=>{const a=await getMarkupFiles(e);return(await Promise.all(a.map(e=>isDynamicComponentUsedInMarkup(e)))).find(e=>e)},cleanPackageJSON=async(e,a)=>{const r=`${e}/package.json`;let t=readFileSync(r,!0);["@ampproject/rollup-plugin-closure-compiler","rollup","rollup-plugin-alias","rollup-plugin-commonjs","rollup-plugin-includepaths","rollup-plugin-multi-entry","rollup-plugin-node-resolve"].forEach(e=>{delete t.devDependencies[e]}),a||delete t.dependencies["@angular/service-worker"],await writeFile(r,JSON.stringify(t,null,4))},generateSources=async(e,a,r,t)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`)]);const n=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=n.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const o=await getWmProjectProperties(e),i=await getSecurityConfig(e),g=await getPagesConfig(e),p=await getPrefabConfigsUsedInApp(o,e);let l={};for(const a of p.keys())l[a]=await getPrefabPartialsConfig(e,a);r&&!r.endsWith("/")&&(r+="/"),await Promise.all([generateIndexHtml(e,a,o,r,t),generateWmProjectProperties(o,a),generateAppRoutes(e,o,g,i,a),generateLazyModuleRoutes(g,p,l,a),generatePrefabConfigFile(p,a),generateCodeGenModule(o,g,p,i,a),generateTSConfig(o,a),generateAppJS(e,a),generateAppVariables(e,a),generateComponents(e,o,g,p,a,l)]);const s=await isDynamicComponentUsedInApp(a),u={aot:!s,buildOptimizer:!s};await generateAppModule(o,a,s,t),await updateAngularJSON(e,a,o,g,p,r,u,l,t),await cleanPackageJSON(a,t),t&&await generatePwaFiles(e,a,o),console.timeEnd("generate app-sources")},createAppSkeleton=async(e,a,r)=>{console.time("create-angular-app"),await createApp(e,a,r),console.timeEnd("create-angular-app")},generatePage=async(e,a,r)=>{console.time("generate page",r);const t=getPagesDirPath(e),n=await getWmProjectProperties(e),o=await getPagesConfig(e),i=_.find(o,{name:r}),g="PAGE"===i.type?"pages":"partials";await deleteResource(`${a}/src/app/${g}/${r}`),await generatePagePartialComponent(t,n,i.name,i.type,a),console.timeEnd("generate page",r)};module.exports={generateSources:generateSources,createAppSkeleton:createAppSkeleton,generatePage:generatePage};
1
+ global._WM_APP_PROPERTIES={},global._WM_PACKAGE_PATH="./libraries",global.$=require("jquery"),global._=require("lodash");const cheerio=require("cheerio"),{deleteResource:deleteResource,getIndexHtmlPath:getIndexHtmlPath,getPagesDirPath:getPagesDirPath,readFile:readFile,searchFileByName:searchFileByName,writeFile:writeFile,readFileSync:readFileSync}=require("./wm-utils"),{createAppSkeleton:createApp}=require("./gen-app-skeleton"),{generateAppModule:generateAppModule,generateCodeGenModule:generateCodeGenModule}=require("./gen-app-codegen-module"),{generatePrefabConfigFile:generatePrefabConfigFile}=require("./gen-prefabs"),{generateAppRoutes:generateAppRoutes}=require("./gen-app-routes"),{generateAppJS:generateAppJS}=require("./gen-app-js"),{generateAppVariables:generateAppVariables}=require("./gen-app-variables"),{getWmProjectProperties:getWmProjectProperties,getSecurityConfig:getSecurityConfig,getPagesConfig:getPagesConfig,getPrefabConfigsUsedInApp:getPrefabConfigsUsedInApp,getPrefabPartialsConfig:getPrefabPartialsConfig}=require("./project-meta"),{generateTSConfig:generateTSConfig}=require("./gen-tsconfig"),{generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent}=require("./gen-components"),{generateWmProjectProperties:generateWmProjectProperties}=require("./gen-wm-project-properties"),{generateIndexHtml:generateIndexHtml}=require("./gen-index-html"),{updateAngularJSON:updateAngularJSON}=require("./update-angular-json"),{generatePwaFiles:generatePwaFiles}=require("./gen-pwa-files"),{generateLazyModuleRoutes:generateLazyModuleRoutes}=require("./gen-lazy-module-routes"),getMarkupFiles=async e=>{const a=[];return searchFileByName(e+"/src/app",/\.html$/,e=>{a.push(e)}),a},isDynamicComponentUsedInMarkup=async e=>{const a=await readFile(e,"utf8");return cheerio.load(a)("form[wmForm][metadata],form[wmForm][metadata\\.bind],div[wmTable]:not(:has(*))").length>0},isDynamicComponentUsedInApp=async e=>{const a=await getMarkupFiles(e);return(await Promise.all(a.map(e=>isDynamicComponentUsedInMarkup(e)))).find(e=>e)},cleanPackageJSON=async(e,a)=>{const r=`${e}/package.json`;let t=readFileSync(r,!0);["@ampproject/rollup-plugin-closure-compiler","rollup","rollup-plugin-alias","rollup-plugin-commonjs","rollup-plugin-includepaths","rollup-plugin-multi-entry","rollup-plugin-node-resolve"].forEach(e=>{delete t.devDependencies[e]}),a||delete t.dependencies["@angular/service-worker"],await writeFile(r,JSON.stringify(t,null,4))},generateSources=async(e,a,r,t,n)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`)]);const o=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=o.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const i=await getWmProjectProperties(e),g=await getSecurityConfig(e),p=await getPagesConfig(e),l=await getPrefabConfigsUsedInApp(i,e);let s={};for(const a of l.keys())s[a]=await getPrefabPartialsConfig(e,a);r&&!r.endsWith("/")&&(r+="/"),await Promise.all([generateIndexHtml(e,a,i,r,t),generateWmProjectProperties(i,a),generateAppRoutes(e,i,p,g,a),generateLazyModuleRoutes(p,l,s,a),generatePrefabConfigFile(l,a),generateCodeGenModule(i,p,l,g,a),generateTSConfig(i,a),generateAppJS(e,a),generateAppVariables(e,a,n),generateComponents(e,i,p,l,a,s,n)]);const u=await isDynamicComponentUsedInApp(a),c={aot:!u,buildOptimizer:!u};await generateAppModule(i,a,u,t),await updateAngularJSON(e,a,i,p,l,r,c,s,t),await cleanPackageJSON(a,t),t&&await generatePwaFiles(e,a,i),console.timeEnd("generate app-sources")},createAppSkeleton=async(e,a,r)=>{console.time("create-angular-app"),await createApp(e,a,r),console.timeEnd("create-angular-app")},generatePage=async(e,a,r,t)=>{console.time("generate page",r);const n=getPagesDirPath(e),o=await getWmProjectProperties(e),i=await getPagesConfig(e),g=_.find(i,{name:r}),p="PAGE"===g.type?"pages":"partials";await deleteResource(`${a}/src/app/${p}/${r}`),await generatePagePartialComponent(n,o,g.name,g.type,a,t),console.timeEnd("generate page",r)};module.exports={generateSources:generateSources,createAppSkeleton:createAppSkeleton,generatePage:generatePage};
@@ -1 +1 @@
1
- const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),cheerio=require("cheerio");let processedPageExpr=[];const isDisplayExpressionAttr=e=>{return["displayexpression","displaylabel","displayimagesrc","nodelabel","nodeicon","nodechildren","nodeid","itemid","itemlabel","itemicon","itemaction","itembadge","itemchildren","itemlink","itemtarget","userrole","isactive"].includes(e)},checkIsCustomPipeExpression=function(e){let r=e.match(/(custom(\s*:))/g);return r&&r.length},updateBindExpressionForDisplayexpression=e=>{let r,t,n,i,a,s,o,l,p,g="";for(checkIsCustomPipeExpression(e)&&(e+=": __1"),e=e.replace(/\$\[data\[\$i\]/g,"$[__1"),n=0;n<e.length;n++)if(r=e[n],t=e[n+1],"$"===r&&"["===t){for(s=1,p=!1,o=!1,i=n+2;i<e.length;i++)if(" "!==(a=e[i])&&(p||(o='"'===e[i]||"'"===e[i],p=!0),"["===a?s++:"]"===a&&s--,!s)){l=e.substring(n+2,i),g+=o?"__1["+l+"]":l;break}n=i}else g+=r;return g},updateArrTypeExpr=(e,r,t)=>{let n=/\[\$i\]/g;return isArrayTypeProperty(r,t)?e.substr(0,e.lastIndexOf("[$i]")).replace("[$i]","[0]"):e.replace(n,"[0]")},isArrayTypeProperty=(e,r)=>{const t=r?r.attribs:{};return["dataset","dataoptions","customcolors"].includes(e)||"datavalue"===e&&void 0!==t.wmcheckbox||"selecteditem"===e&&void 0!==t.wmtable||"selecteditem"===e&&void 0!==t.wmlist||"datavalue"===e&&t.wmselect&&t.multiple},getFnForExpr=(e,r)=>{if(!e)return"";let t=(r=r||{}).isEvent,n=r.widgetNode,i=r.prop;if(t||-1===e.indexOf("[$i]")||(e=updateArrTypeExpr(e,i,n)),processedPageExpr.includes(e))return"";processedPageExpr.push(e);let a,s="";const o=require("../dependencies/expression-parser.cjs");a=t?o.$parseEvent(e,!0):o.$parseExpr(e,!0);const l=safeString(a.fnArgs),p=safeString(a.fnBody),g=a.pipes||[];g.forEach((e,r)=>{s+="["+e.reduce((e,r)=>"'"+e+"','"+r+"'")+"]"+(r<g.length?",":"")}),s=safeString(s);const c=safeString(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"));return getHandlebarTemplate("expr-vs-fn")({expr:c,fnArgs:l,fnBody:p,fnPipes:s})+","},getExprForBinding=e=>{let r="";return"string"==typeof e&&e.startsWith("bind:")&&(r=getFnForExpr(e.replace("bind:",""))),r},generateFilterExprBindings=e=>{let r="";return e.rules&&_.forEach(e.rules,(e,t)=>{e.rules?r+=generateFilterExprBindings(e):("between"===e.matchMode&&(r+=getExprForBinding(e.secondvalue)),r+=getExprForBinding(e.value))}),r},getCRUDVariableExpressions=e=>{let r=e.dataBinding||{},t="";for(let e in r){(r[e]||[]).forEach(e=>{t+=getExprForBinding(e.value)})}return t},getNavigationActionDatasetExpressions=e=>{let r="";return(e.dataSet||[]).forEach(e=>{r+=getExprForBinding(e.value)}),r},generateVariableExpressions=e=>{let r="";e=JSON.parse(e);const t=["onBefore","onBeforeUpdate","onResult","onBeforeOpen","onOpen","onBeforeMessageSend","onMessageReceive","onProgress","onError","onBeforeDatasetReady","onCanUpdate","onClick","onHide","onOk","onCancel","onBeforeClose","onClose","onTimerFire","onSuccess","onOnline","onOffline"];for(const n in e){const i=e[n];if("wm.LiveVariable"===i.category&&"read"===i.operation)r+=generateFilterExprBindings(i.filterExpressions);else if("wm.CrudVariable"===i.category)r+=getCRUDVariableExpressions(i);else{"wm.NavigationVariable"===i.category&&(r+=getNavigationActionDatasetExpressions(i)),(i.dataBinding||[]).forEach(e=>{r+=getExprForBinding(e.value)})}t.forEach(e=>{i[e]&&(r+=getFnForExpr(i[e],{isEvent:!0}))})}return r},generateExtraWidgetBindings=(e,r)=>{let t="";switch(r){case"wmalertdialog":t+=getFnForExpr("oktext");break;case"wmconfirmdialog":t+=getFnForExpr("oktext"),t+=getFnForExpr("canceltext");break;case"wmtable":t+=e.attribs.rowngclass?getFnForExpr(e.attribs.rowngclass):"";break;case"wmtablecolumn":t+=e.attribs["col-ng-class"]?getFnForExpr(e.attribs["col-ng-class"]):""}return t},isActionTypeNode=e=>["wmtableaction","wmtablerowaction","wmformaction"].some(r=>void 0!==e.attribs[r]),generatePageExpressions=(e,r,t)=>{let n,i,a="";const s=cheerio.load(e);if(processedPageExpr.length=0,s("*").each((e,r)=>{for(let e in r.attribs)e.endsWith(".bind")?(i=e.replace(".bind",""),n=r.attribs[e],isDisplayExpressionAttr(i)&&(n=updateBindExpressionForDisplayexpression(n)),a+=getFnForExpr(n,{prop:i,widgetNode:r})):e.endsWith(".event")?(i=e.replace(".event",""),n=r.attribs[e],a+=getFnForExpr(n,{isEvent:!0})):"displayexpression"===e?(n=r.attribs[e],a+=getFnForExpr(n)):"action"===e&&isActionTypeNode(r)?(n=r.attribs[e],a+=getFnForExpr(n,{isEvent:!0})):"*lazyload"===e&&(n=(n=r.attribs[e]).replace(/'/g,"").replace(/\\"/g,'"'),a+=getFnForExpr(n));["wmalertdialog","wmconfirmdialog","wmtable","wmtablecolumn"].forEach(e=>{void 0!==r.attribs[e]&&(a+=generateExtraWidgetBindings(r,e))})}),a+=generateVariableExpressions(r),t){const e=(t=JSON.parse(t.toString())).properties||{};Object.keys(e).forEach(r=>{let t=e[r];"string"==typeof t.value&&t.value.startsWith("bind:")&&(a+=getFnForExpr(t.value.replace("bind:","")))})}return a};module.exports={generatePageExpressions:generatePageExpressions,generateVariableExpressions:generateVariableExpressions};
1
+ const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),cheerio=require("cheerio");let processedPageExpr=[];const isDisplayExpressionAttr=e=>{return["displayexpression","displaylabel","displayimagesrc","nodelabel","nodeicon","nodechildren","nodeid","itemid","itemlabel","itemicon","itemaction","itembadge","itemchildren","itemlink","itemtarget","userrole","isactive"].includes(e)},checkIsCustomPipeExpression=function(e){let r=e.match(/(custom(\s*:))/g);return r&&r.length},updateBindExpressionForDisplayexpression=e=>{let r,t,n,i,a,s,o,l,p,g="";for(checkIsCustomPipeExpression(e)&&(e+=": __1"),e=e.replace(/\$\[data\[\$i\]/g,"$[__1"),n=0;n<e.length;n++)if(r=e[n],t=e[n+1],"$"===r&&"["===t){for(s=1,p=!1,o=!1,i=n+2;i<e.length;i++)if(" "!==(a=e[i])&&(p||(o='"'===e[i]||"'"===e[i],p=!0),"["===a?s++:"]"===a&&s--,!s)){l=e.substring(n+2,i),g+=o?"__1["+l+"]":l;break}n=i}else g+=r;return g},updateArrTypeExpr=(e,r,t)=>{let n=/\[\$i\]/g;return isArrayTypeProperty(r,t)?e.substr(0,e.lastIndexOf("[$i]")).replace("[$i]","[0]"):e.replace(n,"[0]")},isArrayTypeProperty=(e,r)=>{const t=r?r.attribs:{};return["dataset","dataoptions","customcolors"].includes(e)||"datavalue"===e&&void 0!==t.wmcheckbox||"selecteditem"===e&&void 0!==t.wmtable||"selecteditem"===e&&void 0!==t.wmlist||"datavalue"===e&&t.wmselect&&t.multiple},getFnForExpr=(e,r)=>{if(!e)return"";let t=(r=r||{}).isEvent,n=r.widgetNode,i=r.prop;if(t||-1===e.indexOf("[$i]")||(e=updateArrTypeExpr(e,i,n)),processedPageExpr.includes(e))return"";processedPageExpr.push(e);let a,s="";const o=require("../dependencies/expression-parser.cjs");a=t?o.$parseEvent(e,!0):o.$parseExpr(e,!0);const l=safeString(a.fnArgs),p=safeString(a.fnBody),g=a.pipes||[];g.forEach((e,r)=>{s+="["+e.reduce((e,r)=>"'"+e+"','"+r+"'")+"]"+(r<g.length?",":"")}),s=safeString(s);const c=safeString(e.replace(/(?<!\\)"/g,'\\"').replace(/\r/g,"\\r").replace(/\n/g,"\\n"));return getHandlebarTemplate("expr-vs-fn")({expr:c,fnArgs:l,fnBody:p,fnPipes:s})+","},getExprForBinding=e=>{let r="";return"string"==typeof e&&e.startsWith("bind:")&&(r=getFnForExpr(e.replace("bind:",""))),r},generateFilterExprBindings=e=>{let r="";return e.rules&&_.forEach(e.rules,(e,t)=>{e.rules?r+=generateFilterExprBindings(e):("between"===e.matchMode&&(r+=getExprForBinding(e.secondvalue)),r+=getExprForBinding(e.value))}),r},getCRUDVariableExpressions=e=>{let r=e.dataBinding||{},t="";for(let e in r){(r[e]||[]).forEach(e=>{t+=getExprForBinding(e.value)})}return t},getNavigationActionDatasetExpressions=e=>{let r="";return(e.dataSet||[]).forEach(e=>{r+=getExprForBinding(e.value)}),r},generateVariableExpressions=e=>{let r="";e=JSON.parse(e);const t=["onBefore","onBeforeUpdate","onResult","onBeforeOpen","onOpen","onBeforeMessageSend","onMessageReceive","onProgress","onError","onBeforeDatasetReady","onCanUpdate","onClick","onHide","onOk","onCancel","onBeforeClose","onClose","onTimerFire","onSuccess","onOnline","onOffline"];for(const n in e){const i=e[n];if("wm.LiveVariable"===i.category&&"read"===i.operation)r+=generateFilterExprBindings(i.filterExpressions);else if("wm.CrudVariable"===i.category)r+=getCRUDVariableExpressions(i);else{"wm.NavigationVariable"===i.category&&(r+=getNavigationActionDatasetExpressions(i)),(i.dataBinding||[]).forEach(e=>{r+=getExprForBinding(e.value)})}t.forEach(e=>{i[e]&&(r+=getFnForExpr(i[e],{isEvent:!0}))})}return r},generateExtraWidgetBindings=(e,r)=>{let t="";switch(r){case"wmalertdialog":t+=getFnForExpr("oktext");break;case"wmconfirmdialog":t+=getFnForExpr("oktext"),t+=getFnForExpr("canceltext");break;case"wmtable":t+=e.attribs.rowngclass?getFnForExpr(e.attribs.rowngclass):"";break;case"wmtablecolumn":t+=e.attribs["col-ng-class"]?getFnForExpr(e.attribs["col-ng-class"]):""}return t},isActionTypeNode=e=>["wmtableaction","wmtablerowaction","wmformaction"].some(r=>void 0!==e.attribs[r]),generatePageExpressions=(e,r,t)=>{let n,i,a="";const s=cheerio.load(e);if(processedPageExpr.length=0,s("*").each((e,r)=>{for(let e in r.attribs)e.endsWith(".bind")?(i=e.replace(".bind",""),n=r.attribs[e],isDisplayExpressionAttr(i)&&(n=updateBindExpressionForDisplayexpression(n)),a+=getFnForExpr(n,{prop:i,widgetNode:r})):e.endsWith(".event")?(i=e.replace(".event",""),n=r.attribs[e],a+=getFnForExpr(n,{isEvent:!0})):"displayexpression"===e?(n=r.attribs[e],a+=getFnForExpr(n)):"action"===e&&isActionTypeNode(r)?(n=r.attribs[e],a+=getFnForExpr(n,{isEvent:!0})):"*lazyload"===e&&(n=(n=r.attribs[e]).replace(/'/g,"").replace(/\\"/g,'"'),a+=getFnForExpr(n));["wmalertdialog","wmconfirmdialog","wmtable","wmtablecolumn"].forEach(e=>{void 0!==r.attribs[e]&&(a+=generateExtraWidgetBindings(r,e))})}),a+=generateVariableExpressions(r),t){const e=(t=JSON.parse(t.toString())).properties||{};Object.keys(e).forEach(r=>{let t=e[r];"string"==typeof t.value&&t.value.startsWith("bind:")&&(a+=getFnForExpr(t.value.replace("bind:","")))})}return a};module.exports={generatePageExpressions:generatePageExpressions,generateVariableExpressions:generateVariableExpressions};
@@ -1 +1 @@
1
- const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),{readFile:readFile,writeFile:writeFile,getAppVariablesFilePath:getAppVariablesFilePath,formatContents:formatContents,getCodegenPath:getCodegenPath}=require("./wm-utils"),{generatePageExpressions:generatePageExpressions}=require("./expr-parser-utils"),generateAppVariableExpressions=async(e,a)=>{const t=await readFile(`${getCodegenPath()}/dependencies/app.component.html`,"utf-8")||"",r=safeString(generatePageExpressions(t,e)),s=getHandlebarTemplate("component-expressions")({expressions:r});await writeFile(`${a}/src/app/app.component.expressions.ts`,formatContents(s,"javascript"))},generateAppVariables=async(e,a)=>{const t=getHandlebarTemplate("component-variables");let r=await readFile(getAppVariablesFilePath(e),"utf8")||"{}";const s=t({variables:safeString(r)});await writeFile(`${a}/src/app/app.component.variables.ts`,s),await generateAppVariableExpressions(r,a)};module.exports={generateAppVariables:generateAppVariables};
1
+ const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),{readFile:readFile,writeFile:writeFile,getAppVariablesFilePath:getAppVariablesFilePath,formatContents:formatContents,getCodegenPath:getCodegenPath}=require("./wm-utils"),{generatePageExpressions:generatePageExpressions}=require("./expr-parser-utils"),generateAppVariableExpressions=async(e,a,t)=>{const r=await readFile(`${getCodegenPath()}/dependencies/app.component.html`,"utf-8")||"",s=safeString(t?generatePageExpressions(r,e):""),n=getHandlebarTemplate("component-expressions")({expressions:s});await writeFile(`${a}/src/app/app.component.expressions.ts`,formatContents(n,"javascript"))},generateAppVariables=async(e,a,t)=>{const r=getHandlebarTemplate("component-variables");let s=await readFile(getAppVariablesFilePath(e),"utf8")||"{}";const n=r({variables:safeString(s)});await writeFile(`${a}/src/app/app.component.variables.ts`,n),await generateAppVariableExpressions(s,a,t)};module.exports={generateAppVariables:generateAppVariables};
@@ -1 +1 @@
1
- const{createDir:createDir,writeFile:writeFile,isPrefabProject:isPrefabProject,getPagesDirPath:getPagesDirPath,formatContents:formatContents,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,getPrefabPagesDirPath:getPrefabPagesDirPath}=require("./wm-utils"),fs=require("fs"),cheerio=require("cheerio"),{getPageContents:getPageContents}=require("./pages-util"),{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),writeComponentHtmlFile=async(e,t,a)=>{const n=`${a}/${e}.component.html`;await writeFile(n,t.string)},writeComponentCssFile=async(e,t,a)=>{const n=`${a}/${e}.component.css`;await writeFile(n,t.string)},writeComponentVariablesFile=async(e,t,a,n)=>{let r=getHandlebarTemplate(e)({variables:a});await writeFile(`${n}/${t}.component.variables.ts`,formatContents(r))},writeComponentJsFile=async(e,t,a,n)=>{const r=getHandlebarTemplate(e)({jsContent:a});await writeFile(`${n}/${t}.component.script.js`,formatContents(r,"javascript"))},writeComponentExpressionsFile=async(e,t,a,n)=>{const r=getHandlebarTemplate(e)({expressions:a});await writeFile(`${n}/${t}.component.expressions.ts`,formatContents(r,"javascript"))},writeComponentTsFile=async(e,t,a,n)=>{let r=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t)});await writeFile(`${n}/${t}.component.ts`,r)},writePagePartialModuleTsFile=async(e,t,a,n,r,o,i=!1,s)=>{let m=getHandlebarTemplate(e)({name:t,componentName:getComponentName(t),moduleName:getComponentModuleName(t),requiredPartials:n,requiredPrefabs:r,requiredWMComponents:o,hasCustomElement:i,insidePrefab:!!s});await writeFile(`${a}/${t}.module.ts`,m)},writePrefabModuleTsFile=async(e,t,a,n=!1,r)=>{let o=getHandlebarTemplate("prefab-module-ts")({name:e,componentName:getComponentName(e),moduleName:getComponentModuleName(e),requiredPartials:r,requiredWMComponents:a,hasCustomElement:n});await writeFile(`${t}/${e}.module.ts`,o)},generateComponent=async(e,t,a,n,r,o)=>{await createDir(e,{recursive:!0});const{markup:i,styles:s,variables:m,script:p,expressions:l}=n;return Promise.all([writeComponentHtmlFile(t,safeString(i),e),writeComponentCssFile(t,safeString(s),e),writeComponentVariablesFile("component-variables",t,safeString(m),e),writeComponentJsFile(o,t,safeString(p),e),writeComponentExpressionsFile("component-expressions",t,safeString(l),e),writeComponentTsFile(r,t,a,e)])},findRequiredPartials=e=>{const t={};return e("[partialContainer]").map((t,a)=>e(a).attr("content")).toArray().map(e=>({type:"PARTIAL",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},findRequiredPrefabs=e=>{const t={};return e("[wmPrefab]").map((t,a)=>e(a).attr("prefabname")).toArray().map(e=>({type:"PREFAB",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},generatePagePartialComponent=async(e,t,a,n,r,o,i)=>{let s,m,p,l;if("PAGE"===n?(l=`${r}/src/app/pages/${a}`,s="page-component-ts",m="page-component-script",p="page-module-ts"):(l=o?`${r}/partials/${a}`:`${r}/src/app/partials/${a}`,s="partial-component-ts",m="partial-component-script",p="partial-module-ts"),fs.existsSync(`${l}/${a}.component.ts`))return;let g=`${e}/${a}`;o&&(g=`${getPrefabPagesDirPath(i,o)}/${a}`);const c=await getPageContents(t,g,`${a}`,a,n);try{const n=cheerio.load(c.markup),g=findRequiredPartials(n),P=findRequiredPrefabs(n);for(const a of g)await generatePagePartialComponent(e,t,a.name,a.type,r,o,i);await generateComponent(l,a,void 0,c,s,m),await writePagePartialModuleTsFile(p,a,l,g,P,c.requiredWMComponents,c.hasCustomElement,o)}catch(e){throw console.log("failed in "+a),e}},generateComponents=async(e,t,a,n,r,o)=>{const i=getPagesDirPath(e);for(const a of n.keys()){const m="__self__"===a?`${i}/Main`:`${getPrefabPagesDirPath(e,a)}/Main`,p=await getPageContents(t,m,"Main",a,"PREFAB",n.get(a)),l=`${r}/src/app/prefabs/${a}`,g=cheerio.load(p.markup),c=findRequiredPartials(g);await generateComponent(l,a,a,p,"prefab-component-ts","prefab-component-script");const P=o[a];for(var s=0;s<P.length;s++)await generatePagePartialComponent(i,t,P[s].name,P[s].type,l,a,e);await writePrefabModuleTsFile(a,l,p.requiredWMComponents,p.hasCustomElement,c)}if(!isPrefabProject(t))for(let n of a)await generatePagePartialComponent(i,t,n.name,n.type,r,n.prefabName,e)};module.exports={generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent};
1
+ const{createDir:createDir,writeFile:writeFile,isPrefabProject:isPrefabProject,getPagesDirPath:getPagesDirPath,formatContents:formatContents,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,getPrefabPagesDirPath:getPrefabPagesDirPath}=require("./wm-utils"),fs=require("fs"),cheerio=require("cheerio"),{getPageContents:getPageContents}=require("./pages-util"),{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),writeComponentHtmlFile=async(e,t,a)=>{const n=`${a}/${e}.component.html`;await writeFile(n,t.string)},writeComponentCssFile=async(e,t,a)=>{const n=`${a}/${e}.component.css`;await writeFile(n,t.string)},writeComponentVariablesFile=async(e,t,a,n)=>{let r=getHandlebarTemplate(e)({variables:a});await writeFile(`${n}/${t}.component.variables.ts`,formatContents(r))},writeComponentJsFile=async(e,t,a,n)=>{const r=getHandlebarTemplate(e)({jsContent:a});await writeFile(`${n}/${t}.component.script.js`,formatContents(r,"javascript"))},writeComponentExpressionsFile=async(e,t,a,n)=>{const r=getHandlebarTemplate(e)({expressions:a});await writeFile(`${n}/${t}.component.expressions.ts`,formatContents(r,"javascript"))},writeComponentTsFile=async(e,t,a,n)=>{let r=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t)});await writeFile(`${n}/${t}.component.ts`,r)},writePagePartialModuleTsFile=async(e,t,a,n,r,o,i=!1,s)=>{let m=getHandlebarTemplate(e)({name:t,componentName:getComponentName(t),moduleName:getComponentModuleName(t),requiredPartials:n,requiredPrefabs:r,requiredWMComponents:o,hasCustomElement:i,insidePrefab:!!s});await writeFile(`${a}/${t}.module.ts`,m)},writePrefabModuleTsFile=async(e,t,a,n=!1,r)=>{let o=getHandlebarTemplate("prefab-module-ts")({name:e,componentName:getComponentName(e),moduleName:getComponentModuleName(e),requiredPartials:r,requiredWMComponents:a,hasCustomElement:n});await writeFile(`${t}/${e}.module.ts`,o)},generateComponent=async(e,t,a,n,r,o)=>{await createDir(e,{recursive:!0});const{markup:i,styles:s,variables:m,script:p,expressions:l}=n;return Promise.all([writeComponentHtmlFile(t,safeString(i),e),writeComponentCssFile(t,safeString(s),e),writeComponentVariablesFile("component-variables",t,safeString(m),e),writeComponentJsFile(o,t,safeString(p),e),writeComponentExpressionsFile("component-expressions",t,safeString(l),e),writeComponentTsFile(r,t,a,e)])},findRequiredPartials=e=>{const t={};return e("[partialContainer]").map((t,a)=>e(a).attr("content")).toArray().map(e=>({type:"PARTIAL",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},findRequiredPrefabs=e=>{const t={};return e("[wmPrefab]").map((t,a)=>e(a).attr("prefabname")).toArray().map(e=>({type:"PREFAB",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},generatePagePartialComponent=async(e,t,a,n,r,o,i,s)=>{let m,p,l,g;if("PAGE"===n?(g=`${r}/src/app/pages/${a}`,m="page-component-ts",p="page-component-script",l="page-module-ts"):(g=o?`${r}/partials/${a}`:`${r}/src/app/partials/${a}`,m="partial-component-ts",p="partial-component-script",l="partial-module-ts"),fs.existsSync(`${g}/${a}.component.ts`))return;let c=`${e}/${a}`;o&&(c=`${getPrefabPagesDirPath(i,o)}/${a}`);const P=await getPageContents(t,c,`${a}`,a,n,void 0,s);try{const n=cheerio.load(P.markup),c=findRequiredPartials(n),f=findRequiredPrefabs(n);for(const a of c)await generatePagePartialComponent(e,t,a.name,a.type,r,o,i,s);await generateComponent(g,a,void 0,P,m,p),await writePagePartialModuleTsFile(l,a,g,c,f,P.requiredWMComponents,P.hasCustomElement,o)}catch(e){throw console.log("failed in "+a),e}},generateComponents=async(e,t,a,n,r,o,i)=>{const s=getPagesDirPath(e);for(const a of n.keys()){const p="__self__"===a?`${s}/Main`:`${getPrefabPagesDirPath(e,a)}/Main`,l=await getPageContents(t,p,"Main",a,"PREFAB",n.get(a),i),g=`${r}/src/app/prefabs/${a}`,c=cheerio.load(l.markup),P=findRequiredPartials(c);await generateComponent(g,a,a,l,"prefab-component-ts","prefab-component-script");const f=o[a];for(var m=0;m<f.length;m++)await generatePagePartialComponent(s,t,f[m].name,f[m].type,g,a,e,i);await writePrefabModuleTsFile(a,g,l.requiredWMComponents,l.hasCustomElement,P)}if(!isPrefabProject(t))for(let n of a)await generatePagePartialComponent(s,t,n.name,n.type,r,n.prefabName,e,i)};module.exports={generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent};
@@ -1 +1 @@
1
- global.$=require("jquery"),global._=require("lodash"),global._WM_APP_PROPERTIES={};const cheerio=require("cheerio"),{generatePageExpressions:generatePageExpressions}=require("./expr-parser-utils"),{readFile:readFile,isMobileProject:isMobileProject}=require("./wm-utils"),nodePolyfill=require("node-window-polyfill").register(!1),getRequiredScripts=e=>{const r={wmCalendar:["./node_modules/fullcalendar/dist/fullcalendar.min.js"],wmChart:["./node_modules/d3/d3.min.js","./node_modules/@wavemaker.com/nvd3/build/nv.d3.min.js"],wmChips:["./node_modules/jquery-ui/ui/widgets/sortable.js"],wmList:["./node_modules/jquery-ui/ui/widgets/droppable.js","./node_modules/jquery-ui/ui/widgets/sortable.js"],wmRichtexteditor:["./node_modules/summernote/dist/summernote-lite.min.js"],wmTable:[global._WM_PACKAGE_PATH+"/scripts/datatable/datatable.js","./node_modules/jquery-ui/ui/widgets/resizable.js"]};let t=[];return _.each(r,(r,s)=>{e("["+s+"]").length>0&&(t=t.concat(r))}),t=t.map(e=>e.replace(/^(\.\/)/,"").replace(/\//g,"-")),_.uniq(t)},includesCustomElement=e=>{return cheerio.load(e)('[html-custom-element="true"]').length},getPageContents=async(e,r,t,s,i,o)=>{try{const l=`${r}/${t}`,a=await readFile(`${l}.html`,"utf8"),n=await readFile(`${l}.js`,"utf8"),u=await readFile(`${l}.css`,"utf8"),d=await readFile(`${l}.variables.json`,"utf8");let m;global._WM_APP_PROPERTIES=e,window=window||{},window._WM_APP_PROPERTIES=e;const p=(m=isMobileProject(e)?require("../dependencies/transpilation-mobile.cjs"):require("../dependencies/transpilation-web.cjs")).transpile(a),c=cheerio.load(p.markup),g=getRequiredScripts(c);return g.length>0&&(p.markup=p.markup.replace(">",` scripts-to-load="${g.join(",")}">`)),{markup:p.markup,script:n,styles:m.scopeComponentStyles(s,i,u),variables:d,expressions:generatePageExpressions(p.markup,d,o),requiredWMComponents:p.requiredWMComponents.filter(r=>!r.platformType||r.platformType===e.platformType),hasCustomElement:includesCustomElement(a)}}catch(e){throw console.error(`error occurred in transpilation of ${t}`,e),e}};module.exports={getPageContents:getPageContents};
1
+ global.$=require("jquery"),global._=require("lodash"),global._WM_APP_PROPERTIES={};const cheerio=require("cheerio"),{generatePageExpressions:generatePageExpressions}=require("./expr-parser-utils"),{readFile:readFile,isMobileProject:isMobileProject}=require("./wm-utils"),nodePolyfill=require("node-window-polyfill").register(!1),getRequiredScripts=e=>{const r={wmCalendar:["./node_modules/fullcalendar/dist/fullcalendar.min.js"],wmChart:["./node_modules/d3/d3.min.js","./node_modules/@wavemaker.com/nvd3/build/nv.d3.min.js"],wmChips:["./node_modules/jquery-ui/ui/widgets/sortable.js"],wmList:["./node_modules/jquery-ui/ui/widgets/droppable.js","./node_modules/jquery-ui/ui/widgets/sortable.js"],wmRichtexteditor:["./node_modules/summernote/dist/summernote-lite.min.js"],wmTable:[global._WM_PACKAGE_PATH+"/scripts/datatable/datatable.js","./node_modules/jquery-ui/ui/widgets/resizable.js"]};let t=[];return _.each(r,(r,s)=>{e("["+s+"]").length>0&&(t=t.concat(r))}),t=t.map(e=>e.replace(/^(\.\/)/,"").replace(/\//g,"-")),_.uniq(t)},includesCustomElement=e=>{return cheerio.load(e)('[html-custom-element="true"]').length},getPageContents=async(e,r,t,s,i,o,l)=>{try{const a=`${r}/${t}`,n=await readFile(`${a}.html`,"utf8"),u=await readFile(`${a}.js`,"utf8"),d=await readFile(`${a}.css`,"utf8"),m=await readFile(`${a}.variables.json`,"utf8");let p;global._WM_APP_PROPERTIES=e,window=window||{},window._WM_APP_PROPERTIES=e;const c=(p=isMobileProject(e)?require("../dependencies/transpilation-mobile.cjs"):require("../dependencies/transpilation-web.cjs")).transpile(n),g=cheerio.load(c.markup),w=getRequiredScripts(g);return w.length>0&&(c.markup=c.markup.replace(">",` scripts-to-load="${w.join(",")}">`)),{markup:c.markup,script:u,styles:p.scopeComponentStyles(s,i,d),variables:m,expressions:l?generatePageExpressions(c.markup,m,o):"",requiredWMComponents:c.requiredWMComponents.filter(r=>!r.platformType||r.platformType===e.platformType),hasCustomElement:includesCustomElement(n)}}catch(e){throw console.error(`error occurred in transpilation of ${t}`,e),e}};module.exports={getPageContents:getPageContents};