@wavemaker/angular-codegen 11.0.3-rc.5185 → 11.0.3-rc.5186

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.
@@ -5,8 +5,6 @@ import { AppModule } from './app/app.module';
5
5
  import { environment } from './environments/environment';
6
6
 
7
7
  import initWmProjectProperties from './app/wm-project-properties';
8
- import { isIos, isSpotcues } from '@wm/core';
9
- import { initSpotCues } from '@wm/runtime/base';
10
8
 
11
9
  initWmProjectProperties();
12
10
 
@@ -16,9 +14,7 @@ if (environment.production) {
16
14
 
17
15
  document.addEventListener('DOMContentLoaded', () => {
18
16
  new Promise<Event | void>( resolve => {
19
- if (isSpotcues) {
20
- initSpotCues().then(resolve);
21
- } else if (window['cordova']) {
17
+ if (window['cordova']) {
22
18
  document.addEventListener('deviceready', resolve);
23
19
  } else {
24
20
  resolve();
@@ -46421,7 +46421,6 @@ const convertToBlob = (filepath) => {
46421
46421
  const hasCordova = () => {
46422
46422
  return !!window['cordova'];
46423
46423
  };
46424
- const isSpotcues = /Spotcues/i.test(window['navigator'].userAgent);
46425
46424
  const AppConstants = {
46426
46425
  INT_MAX_VALUE: 2147483647
46427
46426
  };
@@ -47066,7 +47065,6 @@ var Utils = /*#__PURE__*/Object.freeze({
47066
47065
  isNumber: isNumber,
47067
47066
  convertToBlob: convertToBlob,
47068
47067
  hasCordova: hasCordova,
47069
- isSpotcues: isSpotcues,
47070
47068
  AppConstants: AppConstants,
47071
47069
  openLink: openLink,
47072
47070
  fetchContent: fetchContent,
@@ -42501,7 +42501,6 @@ const convertToBlob = (filepath) => {
42501
42501
  const hasCordova = () => {
42502
42502
  return !!window['cordova'];
42503
42503
  };
42504
- const isSpotcues = /Spotcues/i.test(window['navigator'].userAgent);
42505
42504
  const AppConstants = {
42506
42505
  INT_MAX_VALUE: 2147483647
42507
42506
  };
@@ -43146,7 +43145,6 @@ var Utils = /*#__PURE__*/Object.freeze({
43146
43145
  isNumber: isNumber,
43147
43146
  convertToBlob: convertToBlob,
43148
43147
  hasCordova: hasCordova,
43149
- isSpotcues: isSpotcues,
43150
43148
  AppConstants: AppConstants,
43151
43149
  openLink: openLink,
43152
43150
  fetchContent: fetchContent,
@@ -42501,7 +42501,6 @@ const convertToBlob = (filepath) => {
42501
42501
  const hasCordova = () => {
42502
42502
  return !!window['cordova'];
42503
42503
  };
42504
- const isSpotcues = /Spotcues/i.test(window['navigator'].userAgent);
42505
42504
  const AppConstants = {
42506
42505
  INT_MAX_VALUE: 2147483647
42507
42506
  };
@@ -43146,7 +43145,6 @@ var Utils = /*#__PURE__*/Object.freeze({
43146
43145
  isNumber: isNumber,
43147
43146
  convertToBlob: convertToBlob,
43148
43147
  hasCordova: hasCordova,
43149
- isSpotcues: isSpotcues,
43150
43148
  AppConstants: AppConstants,
43151
43149
  openLink: openLink,
43152
43150
  fetchContent: fetchContent,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-codegen",
3
- "version": "11.0.3-rc.5185",
3
+ "version": "11.0.3-rc.5186",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -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,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
+ 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,void 0,void 0,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(/\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
+ 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,i,n,a,s,o,l,p,c="";for(checkIsCustomPipeExpression(e)&&(e+=": __1"),e=e.replace(/\$\[data\[\$i\]/g,"$[__1"),i=0;i<e.length;i++)if(r=e[i],t=e[i+1],"$"===r&&"["===t){for(s=1,p=!1,o=!1,n=i+2;n<e.length;n++)if(" "!==(a=e[n])&&(p||(o='"'===e[n]||"'"===e[n],p=!0),"["===a?s++:"]"===a&&s--,!s)){l=e.substring(i+2,n),c+=o?"__1["+l+"]":l;break}i=n}else c+=r;return c},updateArrTypeExpr=(e,r,t)=>{let i=/\[\$i\]/g;return isArrayTypeProperty(r,t)?e.substr(0,e.lastIndexOf("[$i]")).replace("[$i]","[0]"):e.replace(i,"[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,i=r.widgetNode,n=r.prop;if(t||-1===e.indexOf("[$i]")||(e=updateArrTypeExpr(e,n,i)),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),c=a.pipes||[];c.forEach((e,r)=>{s+="["+e.reduce((e,r)=>"'"+e+"','"+r+"'")+"]"+(r<c.length?",":"")}),s=safeString(s);const d=safeString(e.replace(/(?<!\\)"/g,'\\"').replace(/\r/g,"\\r").replace(/\n/g,"\\n"));return getHandlebarTemplate("expr-vs-fn")({expr:d,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},getActionDatasetExpressions=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 i in e){const n=e[i];if("wm.LiveVariable"===n.category&&"read"===n.operation)r+=generateFilterExprBindings(n.filterExpressions);else if("wm.CrudVariable"===n.category)r+=getCRUDVariableExpressions(n);else{"wm.NavigationVariable"!==n.category&&"wm.NotificationVariable"!==n.category||(r+=getActionDatasetExpressions(n)),(n.dataBinding||[]).forEach(e=>{r+=getExprForBinding(e.value)})}t.forEach(e=>{n[e]&&(r+=getFnForExpr(n[e],{isEvent:!0}))})}return r},generateInternalWidgetExpressions=e=>{let r="";return["wmalertdialog","wmconfirmdialog","wmtable","wmtablecolumn","wmform","wmformaction","wmformfield","wmformfield","wmchips","wmlist","wmmedialist"].forEach(t=>{if(void 0!==e.attribs[t])switch(t){case"wmalertdialog":r+=getFnForExpr("oktext");break;case"wmconfirmdialog":r+=getFnForExpr("oktext"),r+=getFnForExpr("canceltext");break;case"wmtable":r+=e.attribs.rowngclass?getFnForExpr(e.attribs.rowngclass):"";break;case"wmtablecolumn":r+=e.attribs["col-ng-class"]?getFnForExpr(e.attribs["col-ng-class"]):"";break;case"wmform":r+=getFnForExpr("boundFn(fn)");break;case"wmformaction":e.attribs["disabled.bind"]&&(r+=getFnForExpr("ngform.status === 'PENDING' || btn.disabled"));break;case"wmformfield":if(e.attribs.filterexpressions){let t=e.attribs.filterexpressions;try{t=JSON.parse(t),r+=generateFilterExprBindings(t)}catch(r){console.log("ERROR: there was an error while parsing filter-expressions in a form field named ",e.attribs.name)}}break;case"wmchips":e.attribs["disabled.bind"]&&(r+=getFnForExpr("disabled || readonly || saturate")),e.attribs["placeholder.bind"]&&(r+=getFnForExpr("saturate ? maxSizeReached : placeholder"));break;case"wmlist":r+=getFnForExpr("!onDemandLoad");break;case"wmmedialist":r+=getFnForExpr("getPicTitle()"),r+=getFnForExpr("src || getSrc(field)")}}),r},isActionTypeNode=e=>["wmtableaction","wmtablerowaction","wmformaction"].some(r=>void 0!==e.attribs[r]),generatePageExpressions=(e,r,t)=>{let i,n,a="";const s=cheerio.load(e);if(processedPageExpr.length=0,s("*").each((e,r)=>{for(let e in r.attribs)e.endsWith(".bind")?(n=e.replace(".bind",""),i=r.attribs[e],isDisplayExpressionAttr(n)&&(i=updateBindExpressionForDisplayexpression(i)),a+=getFnForExpr(i,{prop:n,widgetNode:r})):e.endsWith(".event")?(n=e.replace(".event",""),i=r.attribs[e],a+=getFnForExpr(i,{isEvent:!0})):"displayexpression"===e?(i=r.attribs[e],a+=getFnForExpr(i)):"action"===e&&isActionTypeNode(r)?(i=r.attribs[e],a+=getFnForExpr(i,{isEvent:!0})):"*lazyload"===e&&(i=(i=r.attribs[e]).replace(/'/g,"").replace(/\\"/g,'"'),a+=getFnForExpr(i));a+=generateInternalWidgetExpressions(r)}),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};