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

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.
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};