@wavemaker/angular-codegen 12.0.0-next.45061 → 12.0.0-next.45062

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. angular-codegen/angular-app/package-lock.json +12 -12
  2. angular-codegen/angular-app/package.json +4 -4
  3. angular-codegen/dependencies/custom-widgets-m3/src/checkbox_set/checkbox_set.d.ts +0 -0
  4. angular-codegen/dependencies/custom-widgets-m3/src/checkbox_set/checkbox_set.js +38 -0
  5. angular-codegen/dependencies/custom-widgets-m3/src/checkbox_set/page.min.d.ts +7 -0
  6. angular-codegen/dependencies/custom-widgets-m3/src/checkbox_set/page.min.js +7 -0
  7. angular-codegen/dependencies/custom-widgets-m3/src/discrete_slider/discrete_slider.d.ts +10 -0
  8. angular-codegen/dependencies/custom-widgets-m3/src/discrete_slider/discrete_slider.js +171 -0
  9. angular-codegen/dependencies/custom-widgets-m3/src/discrete_slider/page.min.d.ts +7 -0
  10. angular-codegen/dependencies/custom-widgets-m3/src/discrete_slider/page.min.js +7 -0
  11. angular-codegen/dependencies/custom-widgets-m3/src/divider/divider.d.ts +0 -0
  12. angular-codegen/dependencies/custom-widgets-m3/src/divider/divider.js +28 -0
  13. angular-codegen/dependencies/custom-widgets-m3/src/divider/page.min.d.ts +7 -0
  14. angular-codegen/dependencies/custom-widgets-m3/src/divider/page.min.js +7 -0
  15. angular-codegen/dependencies/custom-widgets-m3/src/icon_button/icon_button.d.ts +0 -0
  16. angular-codegen/dependencies/custom-widgets-m3/src/icon_button/icon_button.js +24 -0
  17. angular-codegen/dependencies/custom-widgets-m3/src/icon_button/page.min.d.ts +7 -0
  18. angular-codegen/dependencies/custom-widgets-m3/src/icon_button/page.min.js +7 -0
  19. angular-codegen/dependencies/custom-widgets-m3/src/input_chip/input_chip.d.ts +0 -0
  20. angular-codegen/dependencies/custom-widgets-m3/src/input_chip/input_chip.js +34 -0
  21. angular-codegen/dependencies/custom-widgets-m3/src/input_chip/input_chip.variables.d.ts +0 -0
  22. angular-codegen/dependencies/custom-widgets-m3/src/input_chip/input_chip.variables.js +1 -0
  23. angular-codegen/dependencies/custom-widgets-m3/src/input_chip/page.min.d.ts +7 -0
  24. angular-codegen/dependencies/custom-widgets-m3/src/input_chip/page.min.js +7 -0
  25. angular-codegen/dependencies/custom-widgets-m3/src/payee_list/page.min.d.ts +7 -0
  26. angular-codegen/dependencies/custom-widgets-m3/src/payee_list/page.min.js +7 -0
  27. angular-codegen/dependencies/custom-widgets-m3/src/payee_list/payee_list.d.ts +0 -0
  28. angular-codegen/dependencies/custom-widgets-m3/src/payee_list/payee_list.js +19 -0
  29. angular-codegen/dependencies/custom-widgets-m3/src/progressbar/page.min.d.ts +7 -0
  30. angular-codegen/dependencies/custom-widgets-m3/src/progressbar/page.min.js +7 -0
  31. angular-codegen/dependencies/custom-widgets-m3/src/progressbar/progressbar.d.ts +0 -0
  32. angular-codegen/dependencies/custom-widgets-m3/src/progressbar/progressbar.js +52 -0
  33. angular-codegen/dependencies/custom-widgets-m3/src/radio_set/page.min.d.ts +7 -0
  34. angular-codegen/dependencies/custom-widgets-m3/src/radio_set/page.min.js +7 -0
  35. angular-codegen/dependencies/custom-widgets-m3/src/radio_set/radio_set.d.ts +0 -0
  36. angular-codegen/dependencies/custom-widgets-m3/src/radio_set/radio_set.js +35 -0
  37. angular-codegen/dependencies/custom-widgets-m3/src/slider/page.min.d.ts +7 -0
  38. angular-codegen/dependencies/custom-widgets-m3/src/slider/page.min.js +7 -0
  39. angular-codegen/dependencies/custom-widgets-m3/src/slider/slider.d.ts +11 -0
  40. angular-codegen/dependencies/custom-widgets-m3/src/slider/slider.js +121 -0
  41. angular-codegen/dependencies/custom-widgets-m3/src/switch_button/page.min.d.ts +7 -0
  42. angular-codegen/dependencies/custom-widgets-m3/src/switch_button/page.min.js +7 -0
  43. angular-codegen/dependencies/custom-widgets-m3/src/switch_button/switch_button.d.ts +0 -0
  44. angular-codegen/dependencies/custom-widgets-m3/src/switch_button/switch_button.js +33 -0
  45. angular-codegen/dependencies/custom-widgets-m3/src/textfield/page.min.d.ts +7 -0
  46. angular-codegen/dependencies/custom-widgets-m3/src/textfield/page.min.js +7 -0
  47. angular-codegen/dependencies/custom-widgets-m3/src/textfield/textfield.d.ts +4 -0
  48. angular-codegen/dependencies/custom-widgets-m3/src/textfield/textfield.js +65 -0
  49. angular-codegen/dependencies/custom-widgets-m3/src/widget-registry.d.ts +6 -0
  50. angular-codegen/dependencies/custom-widgets-m3/src/widget-registry.js +68 -0
  51. angular-codegen/package.json +1 -1
  52. angular-codegen/src/gen-components.js +1 -1
@@ -0,0 +1,65 @@
1
+ /*
2
+ * Use App.getDependency for Dependency Injection
3
+ * eg: var DialogService = App.getDependency('DialogService');
4
+ */
5
+ /* perform any action on widgets/variables within this block */
6
+ Widget.onReady = function () {
7
+ /*
8
+ * variables can be accessed through 'Widget.Variables' property here
9
+ * e.g. to get dataSet in a staticVariable named 'loggedInUser' use following script
10
+ * Widget.Variables.loggedInUser.getData()
11
+ *
12
+ * widgets can be accessed through 'widgetMap' property here
13
+ * e.g. to get value of text widget named 'username' use following script
14
+ * 'widgetMap.username.datavalue'
15
+ */
16
+ var widgetMap = Widget.Widgets;
17
+ var _a = Widget.props, leading_icon = _a.leading_icon, trailing_icon = _a.trailing_icon, input_type = _a.input_type, required = _a.required;
18
+ handleLeadingIcon(widgetMap, leading_icon);
19
+ handleTrailingIcon(widgetMap, trailing_icon);
20
+ handleinputType(widgetMap, input_type);
21
+ handleRequired(widgetMap, required);
22
+ };
23
+ Widget.onPropertyChange = function (propname, newvalue, oldvalue) {
24
+ var widgetMap = Widget.Widgets;
25
+ var _a = Widget.props, leading_icon = _a.leading_icon, trailing_icon = _a.trailing_icon, input_type = _a.input_type, required = _a.required;
26
+ switch (propname) {
27
+ case 'prop-leading_icon':
28
+ handleLeadingIcon(widgetMap, leading_icon);
29
+ break;
30
+ case 'prop-trailing_icon':
31
+ handleTrailingIcon(widgetMap, trailing_icon);
32
+ break;
33
+ case 'prop-required':
34
+ handleRequired(widgetMap, required);
35
+ break;
36
+ case 'prop-input_type':
37
+ handleinputType(widgetMap, input_type);
38
+ break;
39
+ }
40
+ };
41
+ function handleLeadingIcon(widgetMap, leading_icon) {
42
+ widgetMap.textField.nativeElement.classList.remove('with-leading-icon');
43
+ widgetMap.labelCaption.nativeElement.classList.remove('with-leading-icon');
44
+ if (leading_icon == true) {
45
+ widgetMap.labelCaption.class += ' with-leading-icon';
46
+ widgetMap.textField.class += ' with-leading-icon';
47
+ }
48
+ }
49
+ function handleTrailingIcon(widgetMap, trailing_icon) {
50
+ widgetMap.textField.nativeElement.classList.remove('with-trailing-icon');
51
+ widgetMap.labelCaption.nativeElement.classList.remove('with-trailing-icon');
52
+ if (trailing_icon == true) {
53
+ widgetMap.labelCaption.class += ' with-trailing-icon';
54
+ widgetMap.textField.class += ' with-trailing-icon';
55
+ }
56
+ }
57
+ function handleRequired(widgetMap, required) {
58
+ widgetMap.composite.required = required;
59
+ }
60
+ function handleinputType(widgetMap, input_type) {
61
+ widgetMap.textField.type = input_type;
62
+ }
63
+ Widget.buttonTrailingIconClick = function ($event, widget) {
64
+ // Widget.invokeEvent('trailingIconButtonOnClick');
65
+ };
@@ -0,0 +1,6 @@
1
+ export declare const widgetRegistry: {
2
+ name: string;
3
+ displayName: string;
4
+ iconClass: string;
5
+ desc: string;
6
+ }[];
@@ -0,0 +1,68 @@
1
+ export var widgetRegistry = [
2
+ {
3
+ "name": "checkbox_set",
4
+ "displayName": "Chekboxset",
5
+ "iconClass": "checkboxset",
6
+ "desc": "Checkbox set control supporting Material 3 design system"
7
+ },
8
+ {
9
+ "name": "divider",
10
+ "displayName": "Divider",
11
+ "iconClass": "design-dialog",
12
+ "desc": "Divider based on Material 3 design system"
13
+ },
14
+ {
15
+ "name": "icon_button",
16
+ "displayName": "Icon button",
17
+ "iconClass": "button",
18
+ "desc": "Icon button based on Material 3 design system"
19
+ },
20
+ {
21
+ "name": "input_chip",
22
+ "displayName": "Input Chip",
23
+ "iconClass": "chips",
24
+ "desc": "Input chips based on Material 3 design system"
25
+ },
26
+ {
27
+ "name": "payee_list",
28
+ "displayName": "Payee List",
29
+ "iconClass": "checkboxset",
30
+ "desc": "Payee List"
31
+ },
32
+ {
33
+ "name": "radio_set",
34
+ "displayName": "Radioset",
35
+ "iconClass": "radioset",
36
+ "desc": "Radioset based on Material 3 design system"
37
+ },
38
+ {
39
+ "name": "switch_button",
40
+ "displayName": "Switch",
41
+ "iconClass": "switch",
42
+ "desc": "Switch button based on Material 3 design system"
43
+ },
44
+ {
45
+ "name": "textfield",
46
+ "displayName": "Textfield",
47
+ "iconClass": "text",
48
+ "desc": "Input text control based on Material 3 design system"
49
+ },
50
+ {
51
+ "name": "slider",
52
+ "displayName": "Slider",
53
+ "iconClass": "slider",
54
+ "desc": "Slider control based on Material 3 design system"
55
+ },
56
+ {
57
+ "name": "discrete_slider",
58
+ "displayName": "Discrete slider",
59
+ "iconClass": "slider",
60
+ "desc": "Discrete Slider control based on Material 3 design system"
61
+ },
62
+ {
63
+ "name": "progressbar",
64
+ "displayName": "Progress bar",
65
+ "iconClass": "progress",
66
+ "desc": "Progress bar widget based on Material 3 design system"
67
+ }
68
+ ];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-codegen",
3
- "version": "12.0.0-next.45061",
3
+ "version": "12.0.0-next.45062",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -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,getCustomWidgetPageContents:getCustomWidgetPageContents}=require("./pages-util"),{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),{generateCustomWidgetConfigFile:generateCustomWidgetConfigFile}=require("./gen-customwidget-config"),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))},writeComponentConfigFile=async(e,t,a,n)=>{let o=getHandlebarTemplate(e)({config:a});await writeFile(`${n}/${t}.component.config.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,i=[])=>{let s=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t),enableSpa:o,layoutPages:safeString(JSON.stringify(r)),requiredWMComponents:i});await writeFile(`${n}/${t}.component.ts`,s)},writePagePartialModuleTsFile=async(e,t,a,n,o,r,i=!1,s,m,p,g)=>{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,requireCustomComponents:g});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,p=!1)=>{await createDir(e,{recursive:!0});const{markup:g,styles:l,variables:c,script:u,expressions:d}=n,C=[writeComponentHtmlFile(t,safeString(g),e),writeComponentTsFile(o,t,a,e,s,m,n.requiredWMComponents)];return p||writeComponentExpressionsFile("component-expressions",t,safeString(d),e),i||C.concat([writeComponentCssFile(t,safeString(l),e),writeComponentVariablesFile("component-variables",t,safeString(c),e),writeComponentJsFile(r,t,safeString(u),e)]),Promise.all(C)},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))},findRequiredCustomWidgets=e=>{const t={};return e("[customWidgetContainer]").map((t,a)=>e(a).attr("widgetname")).toArray().map(e=>({type:"CUSTOMWIDGET",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},generateCustomWidgetsComponent=async(e,t,a,n)=>{let o,r,i,s;{if(s=`${t}/src/app/customwidgets/${e}`,o="customwidget-component-ts",r="customwidget-component-script",i="customwidget-module-ts",fs.existsSync(`${s}/${e}.component.ts`))return;const a="angular-app/libraries/scripts/custom-widgets-m3/src",m=await getCustomWidgetPageContents(a,e);n.set(e,m.config);try{const t=cheerio.load(m.markup);findRequiredPartials(t),findRequiredPrefabs(t);await generateComponent(s,e,void 0,m,"customwidget-component-ts","customwidget-component-script",!1,void 0,void 0,!0)}catch(e){throw console.log("failed in "+pageName),e}}};convertHTMLStructure=(e=>{return e.replace(/<div\s+wmWidgetContainer\s+customWidgetContainer\s+#wm_custom_widget\d+="wmWidgetContainer"\s+widgetname="([^"]+)"\s+name="([^"]+)"\s*(.*?)\s*\/?>\s*<\/div>/g,(e,t,a,n)=>{let o;return`<${o=`app-custom-${t.replace("_","-")}`} wmWidgetContainer #wm_custom_widget${a.match(/\d+/)[0]}="wmWidgetContainer" widgetname="${t}" name="${a}" ${n}></${o}>`})});const generatePagePartialComponent=async(e,t,a,n,o,r,i,s,m,p,g,l)=>{let c,u,d,C,f;if("PAGE"===n?(C=`${o}/src/app/pages/${a}`,c="page-component-ts",u="page-component-script",d="page-module-ts"):"LAYOUT"===n?(C=`${o}/src/app/layouts/${a}`,c="layout-component-ts",d="layout-module-ts",f=p.filter(e=>"PAGE"===e.type&&e.layout===a).map(e=>e.name)):(C=r?`${o}/partials/${a}`:`${o}/src/app/partials/${a}`,c="partial-component-ts",u="partial-component-script",d="partial-module-ts"),fs.existsSync(`${C}/${a}.component.ts`))return;let w=`${e}/${a}`;r&&(w=`${getPrefabPagesDirPath(i,r)}/${a}`);const P=await getPageContents(t,w,`${a}`,a,n,void 0,s),$=new Map;try{const e=cheerio.load(P.markup),l=findRequiredPartials(e),w=findRequiredPrefabs(e),y=findRequiredCustomWidgets(e);for(const e of l){const a=getPagesDirPath(i);await generatePagePartialComponent(a,t,e.name,e.type,o,r,i,s,m)}for(const e of y)await generateCustomWidgetsComponent(e.name,o,0,$);y.length&&await generateCustomWidgetConfigFile($,o),P.markup=convertHTMLStructure(P.markup),await generateComponent(C,a,void 0,P,c,u,"LAYOUT"===n,m,f),await writePagePartialModuleTsFile(d,a,C,l,w,P.requiredWMComponents,P.hasCustomElement,r,p,g,y)}catch(e){throw console.log("failed in "+a),e}},generateComponents=async(e,t,a,n,o,r,i,s,m,p)=>{const g=getPagesDirPath(e);for(const a of r.keys()){const n="__self__"===a?`${g}/Main`:`${getPrefabPagesDirPath(e,a)}/Main`,o=await getPageContents(t,n,"Main",a,"PREFAB",r.get(a),m),c=`${i}/src/app/prefabs/${a}`,u=cheerio.load(o.markup),d=findRequiredPartials(u);await generateComponent(c,a,a,o,"prefab-component-ts","prefab-component-script",!1,p);const C=s[a];for(var l=0;l<C.length;l++)await generatePagePartialComponent(g,t,C[l].name,C[l].type,c,a,e,m,p);await writePrefabModuleTsFile(a,c,o.requiredWMComponents,o.hasCustomElement,d)}if(!isPrefabProject(t)){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(g,t,a.name,a.type,i,a.prefabName,e,m,p)}},generateLayoutComponent=async(e,t,a,n,o,r,i,s,m,p,g)=>{await generatePagePartialComponent(e,t,a,n,o,r,i,s,m,p,g)};module.exports={generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent};
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,getCustomWidgetPageContents:getCustomWidgetPageContents}=require("./pages-util"),{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),{generateCustomWidgetConfigFile:generateCustomWidgetConfigFile}=require("./gen-customwidget-config");let customWidgetConfigMap=new Map;const 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))},writeComponentConfigFile=async(e,t,a,n)=>{let o=getHandlebarTemplate(e)({config:a});await writeFile(`${n}/${t}.component.config.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,i,r=[])=>{let s=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t),enableSpa:o,layoutPages:safeString(JSON.stringify(i)),requiredWMComponents:r});await writeFile(`${n}/${t}.component.ts`,s)},writePagePartialModuleTsFile=async(e,t,a,n,o,i,r=!1,s,m,p,g)=>{let l=getHandlebarTemplate(e)({name:t,componentName:getComponentName(t),moduleName:getComponentModuleName(t),requiredPartials:n,requiredPrefabs:o,requiredWMComponents:i,hasCustomElement:r,insidePrefab:!!s,pagesConfig:m,securityConfig:p,requireCustomComponents:g});await writeFile(`${a}/${t}.module.ts`,l)},writePrefabModuleTsFile=async(e,t,a,n=!1,o)=>{let i=getHandlebarTemplate("prefab-module-ts")({name:e,componentName:getComponentName(e),moduleName:getComponentModuleName(e),requiredPartials:o,requiredWMComponents:a,hasCustomElement:n});await writeFile(`${t}/${e}.module.ts`,i)},generateComponent=async(e,t,a,n,o,i,r,s,m,p=!1)=>{await createDir(e,{recursive:!0});const{markup:g,styles:l,variables:c,script:u,expressions:d}=n,C=[writeComponentHtmlFile(t,safeString(g),e),writeComponentTsFile(o,t,a,e,s,m,n.requiredWMComponents)];return p||writeComponentExpressionsFile("component-expressions",t,safeString(d),e),r||C.concat([writeComponentCssFile(t,safeString(l),e),writeComponentVariablesFile("component-variables",t,safeString(c),e),writeComponentJsFile(i,t,safeString(u),e)]),Promise.all(C)},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))},findRequiredCustomWidgets=e=>{const t={};return e("[customWidgetContainer]").map((t,a)=>e(a).attr("widgetname")).toArray().map(e=>({type:"CUSTOMWIDGET",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},generateCustomWidgetsComponent=async(e,t,a,n)=>{let o,i,r,s;{if(s=`${t}/src/app/customwidgets/${e}`,o="customwidget-component-ts",i="customwidget-component-script",r="customwidget-module-ts",fs.existsSync(`${s}/${e}.component.ts`))return;const a="dependencies/custom-widgets-m3/src",m=await getCustomWidgetPageContents(a,e);n.set(e,m.config);try{const t=cheerio.load(m.markup);findRequiredPartials(t),findRequiredPrefabs(t);await generateComponent(s,e,void 0,m,"customwidget-component-ts","customwidget-component-script",!1,void 0,void 0,!0)}catch(e){throw console.log("failed in "+pageName),e}}};convertHTMLStructure=(e=>{return e.replace(/<div\s+wmWidgetContainer\s+customWidgetContainer\s+#wm_custom_widget\d+="wmWidgetContainer"\s+widgetname="([^"]+)"\s+name="([^"]+)"\s*(.*?)\s*\/?>\s*<\/div>/g,(e,t,a,n)=>{let o;return`<${o=`app-custom-${t.replace("_","-")}`} wmWidgetContainer #wm_custom_widget${a.match(/\d+/)[0]}="wmWidgetContainer" widgetname="${t}" name="${a}" ${n}></${o}>`})});const generatePagePartialComponent=async(e,t,a,n,o,i,r,s,m,p,g,l)=>{let c,u,d,C,f;if("PAGE"===n?(C=`${o}/src/app/pages/${a}`,c="page-component-ts",u="page-component-script",d="page-module-ts"):"LAYOUT"===n?(C=`${o}/src/app/layouts/${a}`,c="layout-component-ts",d="layout-module-ts",f=p.filter(e=>"PAGE"===e.type&&e.layout===a).map(e=>e.name)):(C=i?`${o}/partials/${a}`:`${o}/src/app/partials/${a}`,c="partial-component-ts",u="partial-component-script",d="partial-module-ts"),fs.existsSync(`${C}/${a}.component.ts`))return;let w=`${e}/${a}`;i&&(w=`${getPrefabPagesDirPath(r,i)}/${a}`);const P=await getPageContents(t,w,`${a}`,a,n,void 0,s);try{const e=cheerio.load(P.markup),l=findRequiredPartials(e),w=findRequiredPrefabs(e),$=findRequiredCustomWidgets(e);for(const e of l){const a=getPagesDirPath(r);await generatePagePartialComponent(a,t,e.name,e.type,o,i,r,s,m)}for(const e of $)await generateCustomWidgetsComponent(e.name,o,0,customWidgetConfigMap);$.length&&await generateCustomWidgetConfigFile(customWidgetConfigMap,o),P.markup=convertHTMLStructure(P.markup),await generateComponent(C,a,void 0,P,c,u,"LAYOUT"===n,m,f),await writePagePartialModuleTsFile(d,a,C,l,w,P.requiredWMComponents,P.hasCustomElement,i,p,g,$)}catch(e){throw console.log("failed in "+a),e}},generateComponents=async(e,t,a,n,o,i,r,s,m,p)=>{const g=getPagesDirPath(e);customWidgetConfigMap=new Map;for(const a of i.keys()){const n="__self__"===a?`${g}/Main`:`${getPrefabPagesDirPath(e,a)}/Main`,o=await getPageContents(t,n,"Main",a,"PREFAB",i.get(a),m),c=`${r}/src/app/prefabs/${a}`,u=cheerio.load(o.markup),d=findRequiredPartials(u);await generateComponent(c,a,a,o,"prefab-component-ts","prefab-component-script",!1,p);const C=s[a];for(var l=0;l<C.length;l++)await generatePagePartialComponent(g,t,C[l].name,C[l].type,c,a,e,m,p);await writePrefabModuleTsFile(a,c,o.requiredWMComponents,o.hasCustomElement,d)}if(!isPrefabProject(t)){if(p){const i=getLayoutsDirPath(e);for(let s of a)await generateLayoutComponent(i,t,s.name,s.type,r,s.prefabName,e,m,p,n,o)}for(let a of n)await generatePagePartialComponent(g,t,a.name,a.type,r,a.prefabName,e,m,p)}},generateLayoutComponent=async(e,t,a,n,o,i,r,s,m,p,g)=>{await generatePagePartialComponent(e,t,a,n,o,i,r,s,m,p,g)};module.exports={generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent};