@wavemaker/angular-codegen 11.5.0-next.141658 → 11.5.0-next.141661
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.
- angular-codegen/.npmrc +1 -0
- angular-codegen/angular-app/.npmrc +1 -0
- angular-codegen/angular-app/angular.json +119 -1009
- angular-codegen/angular-app/build-scripts/build.js +35 -0
- angular-codegen/angular-app/build-scripts/post-build.js +19 -13
- angular-codegen/angular-app/package-lock.json +25227 -23221
- angular-codegen/angular-app/package.json +58 -51
- angular-codegen/angular-app/src/app/lazy-load-scripts.resolve.ts +2 -4
- angular-codegen/angular-app/src/assets/print.css +32 -0
- angular-codegen/angular-app/src/assets/styles/css/wm-style.css +1 -1
- angular-codegen/angular-app/src/polyfills.ts +23 -39
- angular-codegen/angular-app/tsconfig.json +6 -3
- angular-codegen/angular-app/tsconfig.web-app.json +2 -2
- angular-codegen/angular-app/wm-custom-webpack.config.js +8 -11
- angular-codegen/build-angular-app.js +5 -4
- angular-codegen/dependencies/expression-parser.cjs.js +13624 -12592
- angular-codegen/dependencies/pipe-provider.cjs.js +124409 -57690
- angular-codegen/dependencies/transpilation-mobile.cjs.js +50243 -27670
- angular-codegen/dependencies/transpilation-web.cjs.js +50243 -27670
- angular-codegen/download-packages.js +10 -3
- angular-codegen/package-lock.json +3633 -2087
- angular-codegen/package.json +11 -2
- angular-codegen/src/codegen.js +1 -1
- angular-codegen/src/gen-app-skeleton.js +1 -1
- angular-codegen/src/gen-app-variables.js +1 -1
- angular-codegen/src/gen-components.js +1 -1
- angular-codegen/src/handlebar-helpers.js +1 -1
- angular-codegen/src/pages-util.js +1 -1
- angular-codegen/src/project-meta.js +1 -1
- angular-codegen/src/update-angular-json.js +1 -1
- angular-codegen/templates/Main/Main.css +0 -0
- angular-codegen/templates/Main/Main.js +17 -0
- angular-codegen/templates/Main/Main.variables.json +1 -0
- angular-codegen/templates/Main/main.html.ts.hbs +7 -0
- angular-codegen/templates/app-prefabs.module.ts.hbs +0 -1
- angular-codegen/templates/app-routes.ts.hbs +6 -5
- angular-codegen/templates/app.module.ts.hbs +24 -4
- angular-codegen/templates/empty/empty.css +0 -0
- angular-codegen/templates/empty/empty.html +1 -0
- angular-codegen/templates/empty/empty.js +17 -0
- angular-codegen/templates/empty/empty.variables.json +1 -0
- angular-codegen/templates/layout/layout.module.ts.hbs +1 -1
- angular-codegen/templates/page/page.component.ts.hbs +4 -4
- angular-codegen/templates/page/page.module.ts.hbs +3 -3
- angular-codegen/templates/partial/partial.component.ts.hbs +5 -5
- angular-codegen/templates/partial/partial.module.ts.hbs +1 -2
- angular-codegen/templates/prefab/formatters.js.hbs +38 -0
- angular-codegen/templates/prefab/prefab.module.ts.hbs +0 -1
angular-codegen/package.json
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker/angular-codegen",
|
|
3
|
-
"version": "11.5.0-next.
|
|
3
|
+
"version": "11.5.0-next.141661",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"pretest": "sh build.sh",
|
|
8
8
|
"test": "jest"
|
|
9
9
|
},
|
|
10
|
+
"files": [
|
|
11
|
+
"**/*",
|
|
12
|
+
".npmrc"
|
|
13
|
+
],
|
|
10
14
|
"keywords": [],
|
|
11
15
|
"author": "",
|
|
12
16
|
"license": "ISC",
|
|
@@ -29,5 +33,10 @@
|
|
|
29
33
|
},
|
|
30
34
|
"devDependencies": {
|
|
31
35
|
"jest": "^27.0.6"
|
|
32
|
-
}
|
|
36
|
+
},
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=18.16.1",
|
|
39
|
+
"npm": ">=9.5.1"
|
|
40
|
+
},
|
|
41
|
+
"engineStrict": true
|
|
33
42
|
}
|
angular-codegen/src/codegen.js
CHANGED
|
@@ -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,getThemesConfigProperties:getThemesConfigProperties,getSecurityConfig:getSecurityConfig,getLayoutsConfig:getLayoutsConfig,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"),{createIntermediateAppSkeleton:createIntermediateAppSkeleton,generateLayoutsAndPages:generateLayoutsAndPages}=require("./gen-layouts"),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 t=`${e}/package.json`;let r=readFileSync(t,!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 r.devDependencies[e]}),a||delete r.dependencies["@angular/service-worker"],await writeFile(t,JSON.stringify(r,null,4))},generateIntermediateApp=async(e,a)=>{console.time("create-intermediate-app"),await createIntermediateAppSkeleton(e,a),await generateLayoutsAndPages(a),console.timeEnd("create-intermediate-app")},generateSources=async(e,a,t,r,n,o)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/layouts`),deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`)]);const i=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=i.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const g=await getWmProjectProperties(e),p=await getThemesConfigProperties(e),s=await getSecurityConfig(e);let l;o&&(l=await getLayoutsConfig(e));const u=await getPagesConfig(e),c=await getPrefabConfigsUsedInApp(g,e);let d={};for(const a of c.keys())d[a]=await getPrefabPartialsConfig(e,a);
|
|
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,isPrefabProject:isPrefabProject}=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,getThemesConfigProperties:getThemesConfigProperties,getSecurityConfig:getSecurityConfig,getLayoutsConfig:getLayoutsConfig,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"),{createIntermediateAppSkeleton:createIntermediateAppSkeleton,generateLayoutsAndPages:generateLayoutsAndPages}=require("./gen-layouts"),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 t=`${e}/package.json`;let r=readFileSync(t,!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 r.devDependencies[e]}),a||delete r.dependencies["@angular/service-worker"],await writeFile(t,JSON.stringify(r,null,4))},generateIntermediateApp=async(e,a)=>{console.time("create-intermediate-app"),await createIntermediateAppSkeleton(e,a),await generateLayoutsAndPages(a),console.timeEnd("create-intermediate-app")},generateSources=async(e,a,t,r,n,o)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/layouts`),deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`)]);const i=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=i.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const g=await getWmProjectProperties(e);isPrefabProject(g)&&await generatePage(e,a,"Common");const p=await getThemesConfigProperties(e),s=await getSecurityConfig(e);let l;o&&(l=await getLayoutsConfig(e));const u=await getPagesConfig(e),c=await getPrefabConfigsUsedInApp(g,e);let d={};for(const a of c.keys())d[a]=await getPrefabPartialsConfig(e,a);await Promise.all([generateIndexHtml(e,a,g,t,r),generateWmProjectProperties(g,a),generateAppRoutes(e,g,l,u,s,a,o),generateLazyModuleRoutes(u,c,d,a),generatePrefabConfigFile(c,a),generateCodeGenModule(g,u,c,s,a),generateTSConfig(g,a),generateAppJS(e,a),generateAppVariables(e,a,n),generateComponents(e,g,l,u,s,c,a,d,n,o)]);const m=await isDynamicComponentUsedInApp(a),P={aot:!m,buildOptimizer:!m};await generateAppModule(g,a,m,r),await updateAngularJSON(e,a,g,p,u,c,t,P,d,r),await cleanPackageJSON(a,r),r&&await generatePwaFiles(e,a,g),console.timeEnd("generate app-sources")},createAppSkeleton=async(e,a,t)=>{console.time("create-angular-app"),await createApp(e,a,t),console.timeEnd("create-angular-app")},generatePage=async(e,a,t,r)=>{console.time("generate page",t);const n=getPagesDirPath(e),o=await getWmProjectProperties(e),i=await getPagesConfig(e),g=_.find(i,{name:t}),p="PAGE"===g.type?"pages":"partials";await deleteResource(`${a}/src/app/${p}/${t}`),await generatePagePartialComponent(n,o,g.name,g.type,a,void 0,void 0,r),console.timeEnd("generate page",t)};module.exports={generateIntermediateApp:generateIntermediateApp,generateSources:generateSources,createAppSkeleton:createAppSkeleton,generatePage:generatePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{deleteResource:deleteResource,createDir:createDir,readDir:readDir,getWebAppPath:getWebAppPath}=require("./wm-utils"),util=require("util"),ncp=util.promisify(require("ncp").ncp),createAppSkeleton=async(e,t,
|
|
1
|
+
const{deleteResource:deleteResource,createDir:createDir,readDir:readDir,getWebAppPath:getWebAppPath,writeFile:writeFile}=require("./wm-utils"),fs=require("fs"),util=require("util"),{getHandlebarTemplate:getHandlebarTemplate}=require("./handlebar-helpers"),ncp=util.promisify(require("ncp").ncp),createAppSkeleton=async(e,t,r)=>{await deleteResource(t),await createDir(t,{recursive:!0}),await ncp(r+"/angular-app",t);const a=getWebAppPath(e);if((await readDir(`${a}/themes`)).length){const e=`${a}/themes/`;await ncp(e,`${t}/src/assets/themes`)}if(fs.existsSync(`${a}/extensions`))await ncp(`${a}/extensions`,`${t}/src/app/extensions`);else{fs.mkdirSync(`${t}/src/app/extensions`);const e=getHandlebarTemplate("prefab-formatters-script")({});await writeFile(`${t}/src/app/extensions/formatters.js`,e)}await ncp(`${a}/app.css`,`${t}/src/assets/app.css`),await ncp(`${a}/resources`,`${t}/resources`),await ncp(`${r}/.npmrc`,`${t}/.npmrc`)};module.exports={createAppSkeleton:createAppSkeleton};
|
|
@@ -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,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
|
+
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")).trim()||"{}";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,getLayoutsDirPath:getLayoutsDirPath,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
|
|
1
|
+
const{createDir:createDir,writeFile:writeFile,isPrefabProject:isPrefabProject,getLayoutsDirPath:getLayoutsDirPath,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 o=getHandlebarTemplate(e)({variables:a});await writeFile(`${n}/${t}.component.variables.ts`,formatContents(o))},writeComponentJsFile=async(e,t,a,n)=>{const o=getHandlebarTemplate(e)({jsContent:a});await writeFile(`${n}/${t}.component.script.js`,formatContents(o,"javascript"))},writeComponentExpressionsFile=async(e,t,a,n)=>{const o=getHandlebarTemplate(e)({expressions:a});await writeFile(`${n}/${t}.component.expressions.ts`,formatContents(o,"javascript"))},writeComponentTsFile=async(e,t,a,n,o,r)=>{let i=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t),enableSpa:o,layoutPages:safeString(JSON.stringify(r))});await writeFile(`${n}/${t}.component.ts`,i)},writePagePartialModuleTsFile=async(e,t,a,n,o,r,i=!1,s,m,p)=>{let l=getHandlebarTemplate(e)({name:t,componentName:getComponentName(t),moduleName:getComponentModuleName(t),requiredPartials:n,requiredPrefabs:o,requiredWMComponents:r,hasCustomElement:i,insidePrefab:!!s,pagesConfig:m,securityConfig:p});await writeFile(`${a}/${t}.module.ts`,l)},writePrefabModuleTsFile=async(e,t,a,n=!1,o)=>{let r=getHandlebarTemplate("prefab-module-ts")({name:e,componentName:getComponentName(e),moduleName:getComponentModuleName(e),requiredPartials:o,requiredWMComponents:a,hasCustomElement:n});await writeFile(`${t}/${e}.module.ts`,r)},generateComponent=async(e,t,a,n,o,r,i,s,m)=>{await createDir(e,{recursive:!0});const{markup:p,styles:l,variables:g,script:c,expressions:P}=n,f=[writeComponentHtmlFile(t,safeString(p),e),writeComponentTsFile(o,t,a,e,s,m),writeComponentExpressionsFile("component-expressions",t,safeString(P),e)];return i||f.concat([writeComponentCssFile(t,safeString(l),e),writeComponentVariablesFile("component-variables",t,safeString(g),e),writeComponentJsFile(r,t,safeString(c),e)]),Promise.all(f)},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,o,r,i,s,m,p,l)=>{let g,c,P,f,u;if("PAGE"===n?(f=`${o}/src/app/pages/${a}`,g="page-component-ts",c="page-component-script",P="page-module-ts"):"LAYOUT"===n?(f=`${o}/src/app/layouts/${a}`,g="layout-component-ts",P="layout-module-ts",u=p.filter(e=>"PAGE"===e.type&&e.layout===a).map(e=>e.name)):(f=r?`${o}/partials/${a}`:`${o}/src/app/partials/${a}`,g="partial-component-ts",c="partial-component-script",P="partial-module-ts"),fs.existsSync(`${f}/${a}.component.ts`))return;let C=`${e}/${a}`;r&&(C=`${getPrefabPagesDirPath(i,r)}/${a}`);const d=await getPageContents(t,C,`${a}`,a,n,void 0,s);try{const e=cheerio.load(d.markup),C=findRequiredPartials(e),w=findRequiredPrefabs(e);for(const e of C){const a=getPagesDirPath(i);await generatePagePartialComponent(a,t,e.name,e.type,o,r,i,s,m)}await generateComponent(f,a,void 0,d,g,c,"LAYOUT"===n,m,u),await writePagePartialModuleTsFile(P,a,f,C,w,d.requiredWMComponents,d.hasCustomElement,r,p,l)}catch(e){throw console.log("failed in "+a),e}},generateComponents=async(e,t,a,n,o,r,i,s,m,p)=>{const l=getPagesDirPath(e);for(const a of r.keys()){const n="PREFAB"===t.type?`${l}/Main`:`${getPrefabPagesDirPath(e,a)}/Main`,o=await getPageContents(t,n,"Main",a,"PREFAB",r.get(a),m),c=`${i}/src/app/prefabs/${a}`,P=cheerio.load(o.markup),f=findRequiredPartials(P);await generateComponent(c,a,a,o,"prefab-component-ts","prefab-component-script",!1,p);const u=s[a];for(var g=0;g<u.length;g++)await generatePagePartialComponent(l,t,u[g].name,u[g].type,c,a,e,m,p);await writePrefabModuleTsFile(a,c,o.requiredWMComponents,o.hasCustomElement,f)}if(p){const r=getLayoutsDirPath(e);for(let s of a)await generateLayoutComponent(r,t,s.name,s.type,i,s.prefabName,e,m,p,n,o)}for(let a of n)await generatePagePartialComponent(l,t,a.name,a.type,i,a.prefabName,e,m,p)},generateLayoutComponent=async(e,t,a,n,o,r,i,s,m,p,l)=>{await generatePagePartialComponent(e,t,a,n,o,r,i,s,m,p,l)};module.exports={generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const Handlebars=require("handlebars"),fs=require("fs"),{getComponentName:getComponentName,isPrefabProject:isPrefabProject,getComponentModuleName:getComponentModuleName,getCodegenPath:getCodegenPath}=require("./wm-utils"),getPageRouteInfo=(e,t,n)=>{let a,r;if(null!==e){a="[AuthGuard]";for(const n of e)if(n.urlPattern.startsWith("/pages/")){n.urlPattern.split("/")[2]===t&&("Role"===n.permission?(a="[RoleGuard]",n.roles&&(r=JSON.stringify(n.roles))):"PermitAll"===n.permission&&(a=void 0))}}return`{\n path: '${t}',\n pathMatch: 'full',\n loadChildren: () => import('${n?"../..":"."}/pages/${t}/${t}.module').then(m => m.${getComponentModuleName(t)}),\n ${a?`canActivate: ${a},`:""}\n data : {\n ${r?`allowedRoles: ${r},`:""}\n pageName: '${t}'\n }\n }`},getLayoutRouteInfo=e=>`{\n path: "",\n resolve: appDependenciesResolve,\n loadChildren: () => import("./layouts/${e}/${e}.module").then(m => m.${getComponentModuleName(e)}),\n data : { \n layoutName: '${e}' \n }\n }`;Handlebars.registerHelper("PageComponentsImportStmts",(e,t)=>{
|
|
1
|
+
const Handlebars=require("handlebars"),fs=require("fs"),{getComponentName:getComponentName,isPrefabProject:isPrefabProject,getComponentModuleName:getComponentModuleName,getCodegenPath:getCodegenPath}=require("./wm-utils"),getPageRouteInfo=(e,t,n)=>{let a,r;if(null!==e){a="[(route) => inject(AuthGuard).canActivate(route)]";for(const n of e)if(n.urlPattern.startsWith("/pages/")){n.urlPattern.split("/")[2]===t&&("Role"===n.permission?(a="[(route) => inject(RoleGuard).canActivate(route)]",n.roles&&(r=JSON.stringify(n.roles))):"PermitAll"===n.permission&&(a=void 0))}}return`{\n path: '${t}',\n pathMatch: 'full',\n loadChildren: () => import('${n?"../..":"."}/pages/${t}/${t}.module').then(m => m.${getComponentModuleName(t)}),\n ${a?`canActivate: ${a},`:""}\n data : {\n ${r?`allowedRoles: ${r},`:""}\n pageName: '${t}'\n }\n }`},getLayoutRouteInfo=e=>`{\n path: "",\n resolve: appDependenciesResolve,\n loadChildren: () => import("./layouts/${e}/${e}.module").then(m => m.${getComponentModuleName(e)}),\n data : { \n layoutName: '${e}' \n }\n }`;Handlebars.registerHelper("PageComponentsImportStmts",(e,t)=>{const n=t.filter(e=>"PAGE"===e.type).map(e=>`import { ${getComponentName(e.name)} } from './pages/${e.name}/${e.name}.component';`).join("\n");return safeString(n)}),Handlebars.registerHelper("WMComponentsImportStmts",(e=[])=>{const t=e.map(e=>`import { ${e.name} as ${e.as||"WM_"+e.name} } from '${e.from}';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PartialModuleImportStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Partial${getComponentModuleName(e.name)}} from '../../partials/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabPartialModuleImportStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Partial${getComponentModuleName(e.name)}} from './partials/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PartialModuleStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>"Partial"+getComponentModuleName(e.name)).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("PrefabModuleImportStmts",e=>{const t=e.filter(e=>"PREFAB"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Prefab${getComponentModuleName(e.name)} } from '../../prefabs/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabModuleStmts",e=>{const t=e.filter(e=>"PREFAB"===e.type).map(e=>"Prefab"+getComponentModuleName(e.name)).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("WMComponentModuleStmts",e=>{const t=e.map(e=>`${e.as||"WM_"+e.name}${e.forRoot?".forRoot()":""}`).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("PartialComponentsImportStmts",e=>{const t=e.filter(e=>"PAGE"!==e.type).map(e=>`import { ${getComponentName(e.name)} } from './partials/${e.name}/${e.name}.component';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabComponentsImportStmts",e=>{const t=[];for(const[n]of e.entries())t.push(`import { MainComponent as ${n}Component } from './prefabs/${n}/Main/Main.component';`);return safeString(t.join("\n"))}),Handlebars.registerHelper("RegisterComponents",(e,t,n)=>{let a=[];for(const[e]of n.entries())a.push(`ComponentRefProviderService.registerComponentRef('${e}', ComponentType.PREFAB, ${e}Component, null);`);return safeString(a.join("\n"))}),Handlebars.registerHelper("ComponentDeclarations",(e,t,n)=>{let a=[];for(const[e]of n.entries())a.push(`${e}Component`);return safeString(a.join(",\n\t"))}),Handlebars.registerHelper("RegisterPrefabConfig",e=>{const t=[];for(const[n,a]of e.entries())t.push(`registerPrefabConfig('${n}', ${a})`);return safeString(t.join("\n"))}),Handlebars.registerHelper("DefineHomePage",e=>e.homePage),Handlebars.registerHelper("ImportPrefabPreviewComponent",e=>""),Handlebars.registerHelper("DefineLayoutRoutes",(e,t,n,a)=>{const r=n.filter(t=>t.layout===e&&"PAGE"===t.type).map(e=>getPageRouteInfo(a,e.name,!0));let s="";return r.length&&(s=`\n children: [\n ${r.join(",\n")}\n ]`),safeString(`[\n {\n path: '',\n component: ${t},\n ${s}\n\n }\n ]`)}),Handlebars.registerHelper("DefineAppRoutes",(e,t,n,a,r)=>{let s="";if(r){s=`${t.map(e=>getLayoutRouteInfo(e.name)).join(",\n")}`}else{s=`{\n path: '',\n resolve: appDependenciesResolve,\n children: [\n ${n.filter(e=>"PAGE"===e.type).map(e=>getPageRouteInfo(a,e.name,!1)).join(",\n")}\n ]\n }`}return safeString(`[\n {\n path: '',\n pathMatch: 'full',\n component: EmptyPageComponent,\n resolve: appDependenciesResolve\n },\n ${s},\n {\n path: "**",\n canActivate: [(route) => inject(PageNotFoundGuard).canActivate(route)],\n component: EmptyPageComponent\n }\n ]`)}),Handlebars.registerHelper("DefinePrefabModules",e=>`{ ${e} }`),Handlebars.registerHelper("DefinePartialModules",e=>`{ ${e} }`),Handlebars.registerHelper("DefinePrefabPartialModules",e=>`{ ${e} }`);const templates=new Map,initTemplates=()=>{const e=getCodegenPath()+"/templates/";templates.set("app-module-ts",Handlebars.compile(fs.readFileSync(e+"app.module.ts.hbs","utf-8"))),templates.set("app-codegen-module",Handlebars.compile(fs.readFileSync(e+"app-codegen.module.ts.hbs","utf-8"))),templates.set("app-prefabs-module",Handlebars.compile(fs.readFileSync(e+"app-prefabs.module.ts.hbs","utf-8"))),templates.set("prefab-config",Handlebars.compile(fs.readFileSync(e+"prefab/prefab-config.ts.hbs","utf-8"))),templates.set("app-routes",Handlebars.compile(fs.readFileSync(e+"app-routes.ts.hbs","utf-8"))),templates.set("lazy-module-routes",Handlebars.compile(fs.readFileSync(e+"lazy-module-routes.ts.hbs","utf-8"))),templates.set("wm-project-properties",Handlebars.compile(fs.readFileSync(e+"wm-project-properties.ts.hbs","utf-8"))),templates.set("component-variables",Handlebars.compile(fs.readFileSync(e+"component.variables.ts.hbs","utf-8"))),templates.set("component-expressions",Handlebars.compile(fs.readFileSync(e+"component.expressions.ts.hbs","utf-8"))),templates.set("app-component-script",Handlebars.compile(fs.readFileSync(e+"app.component.script.js.hbs","utf-8"))),templates.set("layout-component-ts",Handlebars.compile(fs.readFileSync(e+"layout/layout.component.ts.hbs","utf-8"))),templates.set("layout-module-ts",Handlebars.compile(fs.readFileSync(e+"layout/layout.module.ts.hbs","utf-8"))),templates.set("page-component-ts",Handlebars.compile(fs.readFileSync(e+"page/page.component.ts.hbs","utf-8"))),templates.set("page-component-script",Handlebars.compile(fs.readFileSync(e+"page/page.component.script.js.hbs","utf-8"))),templates.set("page-module-ts",Handlebars.compile(fs.readFileSync(e+"page/page.module.ts.hbs","utf-8"))),templates.set("partial-component-ts",Handlebars.compile(fs.readFileSync(e+"partial/partial.component.ts.hbs","utf-8"))),templates.set("partial-component-script",Handlebars.compile(fs.readFileSync(e+"partial/partial.component.script.js.hbs","utf-8"))),templates.set("partial-module-ts",Handlebars.compile(fs.readFileSync(e+"partial/partial.module.ts.hbs","utf-8"))),templates.set("prefab-component-ts",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.component.ts.hbs","utf-8"))),templates.set("prefab-module-ts",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.module.ts.hbs","utf-8"))),templates.set("prefab-component-script",Handlebars.compile(fs.readFileSync(e+"prefab/prefab.component.script.js.hbs","utf-8"))),templates.set("prefab-formatters-script",Handlebars.compile(fs.readFileSync(e+"prefab/formatters.js.hbs","utf-8"))),templates.set("main-html-ts",Handlebars.compile(fs.readFileSync(e+"Main/main.html.ts.hbs","utf-8"))),templates.set("expr-vs-fn",Handlebars.compile(fs.readFileSync(e+"expr-vs-fn.hbs","utf-8")))},getHandlebarTemplate=e=>templates.get(e),safeString=e=>new Handlebars.SafeString(e);module.exports={getHandlebarTemplate:getHandlebarTemplate,safeString:safeString,initTemplates:initTemplates};
|
|
@@ -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
|
|
1
|
+
global.$=require("jquery"),global._=require("lodash"),global._WM_APP_PROPERTIES={};const cheerio=require("cheerio"),{generatePageExpressions:generatePageExpressions}=require("./expr-parser-utils"),fs=require("fs"),{readFile:readFile,isMobileProject:isMobileProject,isPrefabProject:isPrefabProject,getCodegenPath:getCodegenPath,writeFile:writeFile}=require("./wm-utils"),Handlebars=require("handlebars"),{getHandlebarTemplate:getHandlebarTemplate}=require("./handlebar-helpers"),nodePolyfill=require("node-window-polyfill").register(!1),getRequiredScripts=e=>{const t={wmCalendar:["./node_modules/fullcalendar/main.min.js"],wmChart:["./node_modules/d3/dist/d3.min.js","./node_modules/@wavemaker/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 a=[];return _.each(t,(t,r)=>{e("["+r+"]").length>0&&(a=a.concat(t))}),a=a.map(e=>e.replace(/^(\.\/)/,"").replace(/\//g,"-").replace(/@/g,"")),_.uniq(a)},includesCustomElement=e=>{return cheerio.load(e)('[html-custom-element="true"]').length},getPageContents=async(e,t,a,r,i,s,l)=>{try{let o,n,d,u="{}";const m=`${t}/${a}`;let p,c;if(fs.existsSync(`${m}.html`))if(isPrefabProject(e)&&"Main"===a&&"PAGE"===i){p=getCodegenPath()+"/templates/Main",o=getHandlebarTemplate("main-html-ts")({prefabName:e.name,prefabAttrs:""}),"LAYOUT"!==i&&(n=await readFile(`${p}/Main.js`,"utf8"),d=await readFile(`${m}.css`,"utf8"),u=await readFile(`${p}/Main.variables.json`,"utf8"))}else o=await readFile(`${m}.html`,"utf8"),"LAYOUT"!==i&&(n=await readFile(`${m}.js`,"utf8"),d=await readFile(`${m}.css`,"utf8"),u=await readFile(`${m}.variables.json`,"utf8"));else p=getCodegenPath()+"/templates/empty",o=await readFile(`${p}/empty.html`,"utf8"),"LAYOUT"!==i&&(n=await readFile(`${p}/empty.js`,"utf8"),d=await readFile(`${p}/empty.css`,"utf8"),u=await readFile(`${p}/empty.variables.json`,"utf8"));global._WM_APP_PROPERTIES=e,window=window||{},window._WM_APP_PROPERTIES=e;const g=(c=isMobileProject(e)?require("../dependencies/transpilation-mobile.cjs"):require("../dependencies/transpilation-web.cjs")).transpile(o),w=cheerio.load(g.markup),P=getRequiredScripts(w);return P.length>0&&(g.markup=g.markup.replace(">",` scripts-to-load="${P.join(",")}">`)),{markup:g.markup,script:n,styles:c.scopeComponentStyles(r,i,d),variables:u,expressions:l?generatePageExpressions(g.markup,u,s):"",requiredWMComponents:g.requiredWMComponents.filter(t=>!t.platformType||t.platformType===e.platformType),hasCustomElement:includesCustomElement(o)}}catch(e){throw console.error(`error occurred in transpilation of ${a}`,e),e}};module.exports={getPageContents:getPageContents};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const parser=require("fast-xml-parser"),{readFile:readFile,readDir:readDir,stat:stat,isPrefabProject:isPrefabProject,getWmProjectPropertiesFilePath:getWmProjectPropertiesFilePath,getThemesConfigPropertiesFilePath:getThemesConfigPropertiesFilePath,getAuthInfoFilePath:getAuthInfoFilePath,getSecurityConfigPath:getSecurityConfigPath,getLayoutsConfigPath:getLayoutsConfigPath,getPagesConfigPath:getPagesConfigPath,getPrefabsDirPath:getPrefabsDirPath,getPrefabPagesDirPath:getPrefabPagesDirPath,getPrefabConfigPath:getPrefabConfigPath}=require("./wm-utils"),{join:join}=require("path"),getWmProjectProperties=async e=>{let t=await readFile(getWmProjectPropertiesFilePath(e),"utf8");const a={};return parser.parse(t,{textNodeName:"text",ignoreAttributes:!1,ignoreNameSpace:!1,allowBooleanAttributes:!1,parseNodeValue:!0,parseAttributeValue:!1,trimValues:!0,parseTrueNumberOnly:!1,arrayMode:!1,stopNodes:["parse-me-as-string"]},!0).properties.entry.forEach(e=>a[e["@_key"]]=e.text?e.text:""),a},getThemesConfigProperties=async e=>{const t=await readFile(getThemesConfigPropertiesFilePath(e),"utf8");return JSON.parse(t)},getSecurityConfig=async e=>stat(getAuthInfoFilePath(e)).then(()=>new Promise(async(t,a)=>{let r=null;JSON.parse(await readFile(getAuthInfoFilePath(e))).enforceSecurity&&(r=JSON.parse(await readFile(getSecurityConfigPath(e),"utf8"))),t(r)}),()=>Promise.resolve(null)),getLayoutsConfig=async e=>{let t=await readFile(getLayoutsConfigPath(e),"utf8");return t=JSON.parse(t)},getPagesConfig=async e=>{let t=await readFile(getPagesConfigPath(e),"utf8");return t=JSON.parse(t)},getPrefabPartialsConfig=async(e,t)=>{let a=await readFile(`${getPrefabPagesDirPath(e,t)}/pages-config.json`,"utf8")
|
|
1
|
+
const parser=require("fast-xml-parser"),{readFile:readFile,readDir:readDir,stat:stat,isPrefabProject:isPrefabProject,getWmProjectPropertiesFilePath:getWmProjectPropertiesFilePath,getThemesConfigPropertiesFilePath:getThemesConfigPropertiesFilePath,getAuthInfoFilePath:getAuthInfoFilePath,getSecurityConfigPath:getSecurityConfigPath,getLayoutsConfigPath:getLayoutsConfigPath,getPagesConfigPath:getPagesConfigPath,getPrefabsDirPath:getPrefabsDirPath,getPrefabPagesDirPath:getPrefabPagesDirPath,getPrefabConfigPath:getPrefabConfigPath}=require("./wm-utils"),{join:join}=require("path"),getWmProjectProperties=async e=>{let t=await readFile(getWmProjectPropertiesFilePath(e),"utf8");const a={};return parser.parse(t,{textNodeName:"text",ignoreAttributes:!1,ignoreNameSpace:!1,allowBooleanAttributes:!1,parseNodeValue:!0,parseAttributeValue:!1,trimValues:!0,parseTrueNumberOnly:!1,arrayMode:!1,stopNodes:["parse-me-as-string"]},!0).properties.entry.forEach(e=>a[e["@_key"]]=e.text?e.text:""),a},getThemesConfigProperties=async e=>{const t=await readFile(getThemesConfigPropertiesFilePath(e),"utf8");return JSON.parse(t)},getSecurityConfig=async e=>stat(getAuthInfoFilePath(e)).then(()=>new Promise(async(t,a)=>{let r=null;JSON.parse(await readFile(getAuthInfoFilePath(e))).enforceSecurity&&(r=JSON.parse(await readFile(getSecurityConfigPath(e),"utf8"))),t(r)}),()=>Promise.resolve(null)),getLayoutsConfig=async e=>{let t=await readFile(getLayoutsConfigPath(e),"utf8");return t=JSON.parse(t)},getPagesConfig=async e=>{let t=await readFile(getPagesConfigPath(e),"utf8");return t=JSON.parse(t),_.find(t,{name:"Common"})||t.push({name:"Common",type:"PARTIAL",params:[]}),t},getPrefabPartialsConfig=async(e,t)=>{let a;try{a=await readFile(`${getPrefabPagesDirPath(e,t)}/pages-config.json`,"utf8"),a=JSON.parse(a).filter(e=>"partial"===e.type.toLowerCase()||"template"===e.type.toLowerCase()).map(e=>({...e,prefabName:t}))}catch(e){a=[]}return a},getPrefabConfigsUsedInApp=async(e,t)=>{const a=new Map,r=getPrefabsDirPath(t);return stat(r).then(()=>new Promise(async(i,s)=>{for(const e of await readDir(r))(await stat(join(r,e))).isDirectory()&&a.set(e,await readFile(getPrefabConfigPath(t,e)));if(isPrefabProject(e)){let e=await readFile(`${t}/src/main/webapp/config.json`),r=JSON.parse(e).displayName.replaceAll(" ","_");a.set(r,e)}i(a)}),()=>Promise.resolve(a))};module.exports={getWmProjectProperties:getWmProjectProperties,getThemesConfigProperties:getThemesConfigProperties,getSecurityConfig:getSecurityConfig,getLayoutsConfig:getLayoutsConfig,getPagesConfig:getPagesConfig,getPrefabConfigsUsedInApp:getPrefabConfigsUsedInApp,getPrefabPartialsConfig:getPrefabPartialsConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const cheerio=require("cheerio"),{writeFile:writeFile,readFileSync:readFileSync,readDir:readDir,isMobileProject:isMobileProject}=require("./wm-utils"),markScriptsAsLazy=e=>{const s=["./node_modules/d3/d3.min.js","./node_modules/@wavemaker
|
|
1
|
+
const cheerio=require("cheerio"),{writeFile:writeFile,readFileSync:readFileSync,readDir:readDir,isMobileProject:isMobileProject}=require("./wm-utils"),markScriptsAsLazy=e=>{const s=["./node_modules/d3/dist/d3.min.js","./node_modules/@wavemaker/nvd3/build/nv.d3.min.js","./node_modules/fullcalendar/main.min.js","./node_modules/summernote/dist/summernote-lite.min.js",global._WM_PACKAGE_PATH+"/scripts/datatable/datatable.js","./node_modules/jquery-ui/ui/widgets/sortable.js","./node_modules/jquery-ui/ui/widgets/droppable.js","./node_modules/jquery-ui/ui/widgets/resizable.js","./node_modules/hammerjs/hammer.min.js","./node_modules/iscroll/build/iscroll.js"];let t=e.replace(/^(\.\/)/,"").replace(/\//g,"-").replace(/@/g,"");return t=t.substring(0,t.lastIndexOf(".")),t+="-NOHASH",s.includes(e)?{input:e,inject:!1,bundleName:t}:e},setBuildCustomizations=async e=>{const s=e.projects["angular-app"].architect.build,t=s.options.scripts;s.options.scripts=t.map(e=>markScriptsAsLazy(e))},addToScripts=async(e,s,t=[],i=[])=>{const n=`${s}/angular.json`;let o=readFileSync(n,!0);const a=o.projects["angular-app"].architect.build;let r=a.options.scripts;const l=`${s+"/src/app/extensions"}`,c=await readDir(l);c.length&&i.push("./src/app/extensions/"+c[0]),a.options.scripts=[...t,...r,...i],await writeFile(n,JSON.stringify(o,null,4))},updateAngularJSON=async(e,s,t,i,n,o,a,r,l,c)=>{const d=`${s}/angular.json`;let u=readFileSync(d,!0);const p=u.projects["angular-app"].architect.build;a&&a.trim().length>0&&(p.options.deployUrl=a);const m=p.options.styles;if(isMobileProject(t)){const e=m.findIndex(e=>{let s="object"==typeof e;if(s){return(s?e.input:e).includes("themes")}return!1}),s=m[e].input;m[e].bundleName="wm-android-styles",m[e].input=m[e].input.replace(new RegExp("/[a-z]*/style.css$"),`/${i.activeTheme}/android/style.css`);const t=Object.assign({},m[e]);t.input=s.replace(new RegExp("/[a-z]*/style.css$"),`/${i.activeTheme}/ios/style.css`),t.bundleName="wm-ios-styles",m.push(t);const n=m.findIndex(e=>{let s="object"==typeof e;if(s){return"src/assets/app.css"===(s?e.input:e)}return!1});m[n].bundleName="wm-android-styles";const o=Object.assign({},m[n]);o.bundleName="wm-ios-styles",m.push(o)}m.forEach((e,s)=>{let t="object"==typeof e,n=t?e.input:e;!n.includes("themes")||n.includes("/android/")||n.includes("/ios/")||(t?m[s].input=n.replace(new RegExp("/[a-z]*/style.css$"),`/${i.activeTheme}/style.css`):m[s]=n.replace(new RegExp("/[a-z]*/style.css$"),`/${i.activeTheme}/style.css`))}),await setBuildCustomizations(u);const g=p.configurations.production;if(g.aot=!1!==r.aot,g.buildOptimizer=!1!==r.buildOptimizer,c){const e=p.options.assets;e.push("src/manifest.json"),e.push("src/wmsw-worker.js"),g.serviceWorker=!0,g.ngswConfigPath="ngsw-config.json",delete p.options.customWebpackConfig}await writeFile(d,JSON.stringify(u,null,4))};module.exports={updateAngularJSON:updateAngularJSON,addToScripts:addToScripts};
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Use App.getDependency for Dependency Injection
|
|
3
|
+
* eg: var DialogService = App.getDependency('DialogService');
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* perform any action on widgets/variables within this block */
|
|
7
|
+
Page.onReady = function () {
|
|
8
|
+
/*
|
|
9
|
+
* variables can be accessed through 'Page.Variables' property here
|
|
10
|
+
* e.g. to get dataSet in a staticVariable named 'loggedInUser' use following script
|
|
11
|
+
* Page.Variables.loggedInUser.getData()
|
|
12
|
+
*
|
|
13
|
+
* widgets can be accessed through 'Page.Widgets' property here
|
|
14
|
+
* e.g. to get value of text widget named 'username' use following script
|
|
15
|
+
* 'Page.Widgets.username.datavalue'
|
|
16
|
+
*/
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<wm-page pagetitle="{{prefabName}}" name="name-{{prefabName}}">
|
|
2
|
+
<wm-content name="content1">
|
|
3
|
+
<wm-page-content columnwidth="12" name="page_content1">
|
|
4
|
+
<wm-prefab name="{{prefabName}}" prefabname="{{prefabName}}" {{prefabAttrs}}></wm-prefab>
|
|
5
|
+
</wm-page-content>
|
|
6
|
+
</wm-content>
|
|
7
|
+
</wm-page>
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Routes } from '@angular/router';
|
|
2
2
|
|
|
3
|
-
import { AppJSResolve, AppExtensionJSResolve, AppVariablesResolve, {{#unless enableSpa}}AuthGuard, RoleGuard, {{/unless}} EmptyPageComponent,
|
|
3
|
+
import { AppJSResolve, AppExtensionJSResolve, AppVariablesResolve, {{#unless enableSpa}}AuthGuard, RoleGuard, {{/unless}} EmptyPageComponent, PageNotFoundGuard } from '@wm/runtime/base';
|
|
4
4
|
|
|
5
5
|
import { LazyLoadScriptsResolve } from './lazy-load-scripts.resolve';
|
|
6
|
+
import { inject } from "@angular/core"
|
|
6
7
|
|
|
7
8
|
{{ImportPrefabPreviewComponent wmProjectProperties}};
|
|
8
9
|
|
|
9
10
|
const appDependenciesResolve = {
|
|
10
|
-
appJS: AppJSResolve,
|
|
11
|
-
appMetaConfig: AppExtensionJSResolve,
|
|
12
|
-
appVariables: AppVariablesResolve,
|
|
13
|
-
lazyLoadScriptsResolv: LazyLoadScriptsResolve
|
|
11
|
+
appJS: () => inject(AppJSResolve).resolve(),
|
|
12
|
+
appMetaConfig: () => inject(AppExtensionJSResolve).resolve(),
|
|
13
|
+
appVariables: () => inject(AppVariablesResolve).resolve(),
|
|
14
|
+
lazyLoadScriptsResolv: () => inject(LazyLoadScriptsResolve).resolve()
|
|
14
15
|
};
|
|
15
16
|
|
|
16
17
|
export const routes: Routes = {{DefineAppRoutes wmProjectProperties layoutsConfig pagesConfig securityConfig enableSpa}}
|
|
@@ -95,7 +95,7 @@ import { MobileNavbarModule as MobileMobileNavbarModule } from '@wm/mobile/compo
|
|
|
95
95
|
import { TabBarModule as MobileTabBarModule } from '@wm/mobile/components/page/tab-bar';
|
|
96
96
|
{{/if}}
|
|
97
97
|
{{/if}}
|
|
98
|
-
import { PartialRefProvider } from '@wm/core';
|
|
98
|
+
import { CoreModule, PartialRefProvider } from '@wm/core';
|
|
99
99
|
import {
|
|
100
100
|
AppComponent,
|
|
101
101
|
AppJSProvider,
|
|
@@ -104,9 +104,9 @@ import {
|
|
|
104
104
|
PrefabConfigProvider,
|
|
105
105
|
WmNgRouteReuseStrategy,
|
|
106
106
|
CanDeactivateNgPageGuard,
|
|
107
|
-
WM_MODULES_FOR_ROOT,
|
|
108
107
|
REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS,
|
|
109
|
-
AppExtensionProvider
|
|
108
|
+
AppExtensionProvider,
|
|
109
|
+
RuntimeBaseModule
|
|
110
110
|
} from '@wm/runtime/base';
|
|
111
111
|
|
|
112
112
|
|
|
@@ -229,6 +229,25 @@ REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(...mobileComponentModules);
|
|
|
229
229
|
{{/if}}
|
|
230
230
|
{{/if}}
|
|
231
231
|
|
|
232
|
+
import { HttpServiceModule } from "@wm/http";
|
|
233
|
+
import { SecurityModule } from "@wm/security";
|
|
234
|
+
import { WmComponentsModule } from "@wm/components/base";
|
|
235
|
+
import { VariablesModule } from "@wm/variables";
|
|
236
|
+
import { OAuthModule } from "@wm/oAuth";
|
|
237
|
+
import { MobileRuntimeModule } from "@wm/mobile/runtime";
|
|
238
|
+
import { PageDirective } from "@wm/components/page";
|
|
239
|
+
|
|
240
|
+
const WM_MODULES_FOR_ROOT = [
|
|
241
|
+
WmComponentsModule.forRoot(),
|
|
242
|
+
MobileRuntimeModule.forRoot(),
|
|
243
|
+
CoreModule.forRoot(),
|
|
244
|
+
SecurityModule.forRoot(),
|
|
245
|
+
OAuthModule.forRoot(),
|
|
246
|
+
VariablesModule.forRoot(),
|
|
247
|
+
HttpServiceModule.forRoot(),
|
|
248
|
+
RuntimeBaseModule.forRoot()
|
|
249
|
+
];
|
|
250
|
+
|
|
232
251
|
export const isPrefabInitialized = initPrefabConfig();
|
|
233
252
|
|
|
234
253
|
@NgModule({
|
|
@@ -265,7 +284,8 @@ export const isPrefabInitialized = initPrefabConfig();
|
|
|
265
284
|
{provide: PrefabConfigProvider, useClass: PrefabConfigProviderService},
|
|
266
285
|
{provide: RouteReuseStrategy, useClass: WmNgRouteReuseStrategy},
|
|
267
286
|
CanDeactivateNgPageGuard,
|
|
268
|
-
LazyLoadScriptsResolve
|
|
287
|
+
LazyLoadScriptsResolve,
|
|
288
|
+
PageDirective
|
|
269
289
|
],
|
|
270
290
|
bootstrap: [AppComponent]
|
|
271
291
|
})
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<wm-partial name="empty"></wm-partial>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Use App.getDependency for Dependency Injection
|
|
3
|
+
* eg: var DialogService = App.getDependency('DialogService');
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* perform any action on widgets/variables within this block */
|
|
7
|
+
Partial.onReady = function () {
|
|
8
|
+
/*
|
|
9
|
+
* variables can be accessed through 'Partial.Variables' property here
|
|
10
|
+
* e.g. to get dataSet in a staticVariable named 'loggedInUser' use following script
|
|
11
|
+
* Partial.Variables.loggedInUser.getData()
|
|
12
|
+
*
|
|
13
|
+
* widgets can be accessed through 'Partial.Widgets' property here
|
|
14
|
+
* e.g. to get value of text widget named 'username' use following script
|
|
15
|
+
* 'Partial.Widgets.username.datavalue'
|
|
16
|
+
*/
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -6,7 +6,7 @@ import { initScript } from './{{name}}.component.script';
|
|
|
6
6
|
import { getVariables } from './{{name}}.component.variables';
|
|
7
7
|
import { expressionData } from './{{name}}.component.expressions';
|
|
8
8
|
|
|
9
|
-
import { {{#if enableSpa}}BaseSpaPageComponent{{else}}BasePageComponent{{/if}} } from '@wm/runtime/base';
|
|
9
|
+
import { AppRef, {{#if enableSpa}}BaseSpaPageComponent{{else}}BasePageComponent{{/if}} } from '@wm/runtime/base';
|
|
10
10
|
|
|
11
11
|
@Component({
|
|
12
12
|
selector: 'app-page-{{name}}',
|
|
@@ -22,10 +22,10 @@ import { {{#if enableSpa}}BaseSpaPageComponent{{else}}BasePageComponent{{/if}} }
|
|
|
22
22
|
})
|
|
23
23
|
export class {{componentName}} extends {{#if enableSpa}}BaseSpaPageComponent{{else}}BasePageComponent{{/if}} {
|
|
24
24
|
|
|
25
|
-
pageName = '{{name}}';
|
|
25
|
+
override pageName = '{{name}}';
|
|
26
26
|
[key: string]: any;
|
|
27
27
|
|
|
28
|
-
constructor(
|
|
28
|
+
constructor() {
|
|
29
29
|
super();
|
|
30
30
|
super.init();
|
|
31
31
|
}
|
|
@@ -42,4 +42,4 @@ export class {{componentName}} extends {{#if enableSpa}}BaseSpaPageComponent{{el
|
|
|
42
42
|
return expressionData;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
}
|
|
45
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
1
|
+
import { inject, NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule as NgCommonModule, APP_BASE_HREF } from '@angular/common';
|
|
3
3
|
import { Routes, RouterModule } from '@angular/router';
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ const routes: Routes = [
|
|
|
17
17
|
{
|
|
18
18
|
path: '',
|
|
19
19
|
component: {{componentName}},
|
|
20
|
-
canDeactivate: [CanDeactivateNgPageGuard]
|
|
20
|
+
canDeactivate: [(component) => inject(CanDeactivateNgPageGuard).canDeactivate(component)]
|
|
21
21
|
}
|
|
22
22
|
];
|
|
23
23
|
|
|
@@ -25,7 +25,7 @@ const requiredComponentModules = [
|
|
|
25
25
|
{{WMComponentModuleStmts requiredWMComponents}}
|
|
26
26
|
];
|
|
27
27
|
|
|
28
|
-
const requiredPartialModules = [
|
|
28
|
+
const requiredPartialModules: any[] = [
|
|
29
29
|
{{PartialModuleStmts requiredPartials}}
|
|
30
30
|
];
|
|
31
31
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Injector, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { Component, Injector, Optional, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
import { UserDefinedExecutionContext } from '@wm/core';
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ import { initScript } from './{{name}}.component.script';
|
|
|
6
6
|
import { getVariables } from './{{name}}.component.variables';
|
|
7
7
|
import { expressionData } from './{{name}}.component.expressions';
|
|
8
8
|
|
|
9
|
-
import { BasePartialComponent } from '@wm/runtime/base';
|
|
9
|
+
import { AppRef, BasePartialComponent } from '@wm/runtime/base';
|
|
10
10
|
|
|
11
11
|
@Component({
|
|
12
12
|
selector: 'app-partial-{{name}}',
|
|
@@ -22,11 +22,11 @@ import { BasePartialComponent } from '@wm/runtime/base';
|
|
|
22
22
|
})
|
|
23
23
|
export class {{componentName}} extends BasePartialComponent {
|
|
24
24
|
|
|
25
|
-
partialName = '{{name}}';
|
|
25
|
+
override partialName = '{{name}}';
|
|
26
26
|
[key: string]: any;
|
|
27
27
|
{{#if enableSpa}}spa = true;{{/if}}
|
|
28
28
|
|
|
29
|
-
constructor(
|
|
29
|
+
constructor() {
|
|
30
30
|
super();
|
|
31
31
|
super.init();
|
|
32
32
|
}
|
|
@@ -35,7 +35,7 @@ export class {{componentName}} extends BasePartialComponent {
|
|
|
35
35
|
return getVariables();
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
evalUserScript(Partial, App, Utils) {
|
|
38
|
+
evalUserScript(Partial: BasePartialComponent, App: AppRef, Utils: any) {
|
|
39
39
|
initScript(Partial, App, Utils);
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -20,7 +20,7 @@ const requiredComponentModules = [
|
|
|
20
20
|
{{WMComponentModuleStmts requiredWMComponents}}
|
|
21
21
|
];
|
|
22
22
|
|
|
23
|
-
const requiredPartialModules = [
|
|
23
|
+
const requiredPartialModules: any[] = [
|
|
24
24
|
{{PartialModuleStmts requiredPartials}}
|
|
25
25
|
];
|
|
26
26
|
|
|
@@ -33,7 +33,6 @@ const requiredPartialModules = [
|
|
|
33
33
|
RuntimeBaseModule
|
|
34
34
|
],
|
|
35
35
|
exports: components,
|
|
36
|
-
entryComponents: components
|
|
37
36
|
})
|
|
38
37
|
export class {{moduleName}} {
|
|
39
38
|
static rootComponent = {{componentName}};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is used to extend the app runtime
|
|
3
|
+
*
|
|
4
|
+
* Custom Formatters:
|
|
5
|
+
* Used for data formatting across widgets. Apart from predefined formatter like toDate, toCurrency, prefix, etc, you can define custom formatters here.
|
|
6
|
+
* Once defined here, custom formatter appear in the "Use Expression" tab of data binding dialog.
|
|
7
|
+
* E.g. Here is sample custom formatter (for data formatting)
|
|
8
|
+
* myFormatter : {
|
|
9
|
+
* formatter : function(data, param1){
|
|
10
|
+
* // your logic goes here
|
|
11
|
+
* return data;
|
|
12
|
+
* },
|
|
13
|
+
* config: {
|
|
14
|
+
* param1: {
|
|
15
|
+
* name: '',
|
|
16
|
+
* widget: '',
|
|
17
|
+
* value: ''
|
|
18
|
+
* }...
|
|
19
|
+
* }
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* Terminology
|
|
23
|
+
* myFormatter : Name of the custom formatter
|
|
24
|
+
* formatter : Function where you can write the logic to format the data. The returned value from this function will be applied on the property this formatter is bound to
|
|
25
|
+
* config : parameter information required during the design time. List down all the parameters required for your formatter function
|
|
26
|
+
* Each param has following info
|
|
27
|
+
* - name : name of the parameter to display during design time
|
|
28
|
+
* - widget : widget to take parameter input from the user. E.g. text, select
|
|
29
|
+
* - value : default value if user doesn't provide any value
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
var WM_CUSTOM_FORMATTERS = (function(){
|
|
33
|
+
// Define custom formatters here.
|
|
34
|
+
return {
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
})();
|