@wavemaker-ai/react-codegen 1.0.0-rc.647469

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 (360) hide show
  1. package/build-react-web.js +149 -0
  2. package/build-react-web.js.map +1 -0
  3. package/command.js +101 -0
  4. package/command.js.map +1 -0
  5. package/index.js +122 -0
  6. package/index.js.map +1 -0
  7. package/package-lock.json +4353 -0
  8. package/package.json +86 -0
  9. package/src/app.generator.js +1272 -0
  10. package/src/app.generator.js.map +1 -0
  11. package/src/download-packages.js +193 -0
  12. package/src/download-packages.js.map +1 -0
  13. package/src/fomatter.js +20 -0
  14. package/src/fomatter.js.map +1 -0
  15. package/src/gen-app-override-css.js +379 -0
  16. package/src/gen-app-override-css.js.map +1 -0
  17. package/src/genappoverridecssold-file.js +311 -0
  18. package/src/genappoverridecssold-file.js.map +1 -0
  19. package/src/handlebar-helpers.js +399 -0
  20. package/src/handlebar-helpers.js.map +1 -0
  21. package/src/increment-builder.js +85 -0
  22. package/src/increment-builder.js.map +1 -0
  23. package/src/profiles/profile.js +24 -0
  24. package/src/profiles/profile.js.map +1 -0
  25. package/src/profiles/web-preview.profile.js +15 -0
  26. package/src/profiles/web-preview.profile.js.map +1 -0
  27. package/src/project.service.js +314 -0
  28. package/src/project.service.js.map +1 -0
  29. package/src/transpile/bind.ex.transformer.js +226 -0
  30. package/src/transpile/bind.ex.transformer.js.map +1 -0
  31. package/src/transpile/components/advanced/carousel-template.transformer.js +16 -0
  32. package/src/transpile/components/advanced/carousel-template.transformer.js.map +1 -0
  33. package/src/transpile/components/advanced/carousel.transformer.js +55 -0
  34. package/src/transpile/components/advanced/carousel.transformer.js.map +1 -0
  35. package/src/transpile/components/advanced/login.transformer.js +26 -0
  36. package/src/transpile/components/advanced/login.transformer.js.map +1 -0
  37. package/src/transpile/components/advanced/marquee.transformer.js +16 -0
  38. package/src/transpile/components/advanced/marquee.transformer.js.map +1 -0
  39. package/src/transpile/components/basic/anchor.transformer.js +13 -0
  40. package/src/transpile/components/basic/anchor.transformer.js.map +1 -0
  41. package/src/transpile/components/basic/audio.transformer.js +16 -0
  42. package/src/transpile/components/basic/audio.transformer.js.map +1 -0
  43. package/src/transpile/components/basic/html.transformer.js +15 -0
  44. package/src/transpile/components/basic/html.transformer.js.map +1 -0
  45. package/src/transpile/components/basic/icon.transformer.js +16 -0
  46. package/src/transpile/components/basic/icon.transformer.js.map +1 -0
  47. package/src/transpile/components/basic/iframe.transformer.js +16 -0
  48. package/src/transpile/components/basic/iframe.transformer.js.map +1 -0
  49. package/src/transpile/components/basic/label.transformer.js +16 -0
  50. package/src/transpile/components/basic/label.transformer.js.map +1 -0
  51. package/src/transpile/components/basic/message.transformer.js +16 -0
  52. package/src/transpile/components/basic/message.transformer.js.map +1 -0
  53. package/src/transpile/components/basic/picture.transformer.js +22 -0
  54. package/src/transpile/components/basic/picture.transformer.js.map +1 -0
  55. package/src/transpile/components/basic/progress-bar.transformer.js +18 -0
  56. package/src/transpile/components/basic/progress-bar.transformer.js.map +1 -0
  57. package/src/transpile/components/basic/progress-circle.transformer.js +16 -0
  58. package/src/transpile/components/basic/progress-circle.transformer.js.map +1 -0
  59. package/src/transpile/components/basic/richtexteditor.transformer.js +21 -0
  60. package/src/transpile/components/basic/richtexteditor.transformer.js.map +1 -0
  61. package/src/transpile/components/basic/search.transformer.js +68 -0
  62. package/src/transpile/components/basic/search.transformer.js.map +1 -0
  63. package/src/transpile/components/basic/spinner.transformer.js +16 -0
  64. package/src/transpile/components/basic/spinner.transformer.js.map +1 -0
  65. package/src/transpile/components/basic/tree.transformer.js +16 -0
  66. package/src/transpile/components/basic/tree.transformer.js.map +1 -0
  67. package/src/transpile/components/basic/video.transformer.js +16 -0
  68. package/src/transpile/components/basic/video.transformer.js.map +1 -0
  69. package/src/transpile/components/chart/chart.transformer.js +13 -0
  70. package/src/transpile/components/chart/chart.transformer.js.map +1 -0
  71. package/src/transpile/components/container/accordion-pane.transformer.js +34 -0
  72. package/src/transpile/components/container/accordion-pane.transformer.js.map +1 -0
  73. package/src/transpile/components/container/accordion.transformer.js +49 -0
  74. package/src/transpile/components/container/accordion.transformer.js.map +1 -0
  75. package/src/transpile/components/container/container.transformer.js +27 -0
  76. package/src/transpile/components/container/container.transformer.js.map +1 -0
  77. package/src/transpile/components/container/layout-grid/grid-column.transformer.js +16 -0
  78. package/src/transpile/components/container/layout-grid/grid-column.transformer.js.map +1 -0
  79. package/src/transpile/components/container/layout-grid/grid-row.transformer.js +16 -0
  80. package/src/transpile/components/container/layout-grid/grid-row.transformer.js.map +1 -0
  81. package/src/transpile/components/container/layout-grid/grid.transformer.js +16 -0
  82. package/src/transpile/components/container/layout-grid/grid.transformer.js.map +1 -0
  83. package/src/transpile/components/container/linear-layout/linear-layout-item.js +16 -0
  84. package/src/transpile/components/container/linear-layout/linear-layout-item.js.map +1 -0
  85. package/src/transpile/components/container/linear-layout/linear-layout.js +16 -0
  86. package/src/transpile/components/container/linear-layout/linear-layout.js.map +1 -0
  87. package/src/transpile/components/container/panel-content.transformer.js +16 -0
  88. package/src/transpile/components/container/panel-content.transformer.js.map +1 -0
  89. package/src/transpile/components/container/panel-footer.transformer.js +11 -0
  90. package/src/transpile/components/container/panel-footer.transformer.js.map +1 -0
  91. package/src/transpile/components/container/panel.transformer.js +26 -0
  92. package/src/transpile/components/container/panel.transformer.js.map +1 -0
  93. package/src/transpile/components/container/repeat-template.transformer.js +16 -0
  94. package/src/transpile/components/container/repeat-template.transformer.js.map +1 -0
  95. package/src/transpile/components/container/tabheader.transformer.js +13 -0
  96. package/src/transpile/components/container/tabheader.transformer.js.map +1 -0
  97. package/src/transpile/components/container/tabpane.transformer.js +38 -0
  98. package/src/transpile/components/container/tabpane.transformer.js.map +1 -0
  99. package/src/transpile/components/container/tabs.transformer.js +105 -0
  100. package/src/transpile/components/container/tabs.transformer.js.map +1 -0
  101. package/src/transpile/components/container/tile.transformer.js +16 -0
  102. package/src/transpile/components/container/tile.transformer.js.map +1 -0
  103. package/src/transpile/components/container/wizard.transformer.js +81 -0
  104. package/src/transpile/components/container/wizard.transformer.js.map +1 -0
  105. package/src/transpile/components/container/wizardaction.transformer.js +120 -0
  106. package/src/transpile/components/container/wizardaction.transformer.js.map +1 -0
  107. package/src/transpile/components/container/wizardstep.transformer.js +74 -0
  108. package/src/transpile/components/container/wizardstep.transformer.js.map +1 -0
  109. package/src/transpile/components/data/card/card-actions.transformer.js +13 -0
  110. package/src/transpile/components/data/card/card-actions.transformer.js.map +1 -0
  111. package/src/transpile/components/data/card/card-content.transformer.js +23 -0
  112. package/src/transpile/components/data/card/card-content.transformer.js.map +1 -0
  113. package/src/transpile/components/data/card/card-footer.transformer.js +13 -0
  114. package/src/transpile/components/data/card/card-footer.transformer.js.map +1 -0
  115. package/src/transpile/components/data/card/card.transformer.js +13 -0
  116. package/src/transpile/components/data/card/card.transformer.js.map +1 -0
  117. package/src/transpile/components/data/form/dynamic-fields.transformer.js +24 -0
  118. package/src/transpile/components/data/form/dynamic-fields.transformer.js.map +1 -0
  119. package/src/transpile/components/data/form/form-action.transformer.js +145 -0
  120. package/src/transpile/components/data/form/form-action.transformer.js.map +1 -0
  121. package/src/transpile/components/data/form/form-body.transformer.js +16 -0
  122. package/src/transpile/components/data/form/form-body.transformer.js.map +1 -0
  123. package/src/transpile/components/data/form/form-field.transformer.js +443 -0
  124. package/src/transpile/components/data/form/form-field.transformer.js.map +1 -0
  125. package/src/transpile/components/data/form/form-footer.transformer.js +16 -0
  126. package/src/transpile/components/data/form/form-footer.transformer.js.map +1 -0
  127. package/src/transpile/components/data/form/form.transformer.js +167 -0
  128. package/src/transpile/components/data/form/form.transformer.js.map +1 -0
  129. package/src/transpile/components/data/form/util.js +70 -0
  130. package/src/transpile/components/data/form/util.js.map +1 -0
  131. package/src/transpile/components/data/list/list-content.transformer.js +35 -0
  132. package/src/transpile/components/data/list/list-content.transformer.js.map +1 -0
  133. package/src/transpile/components/data/list/list-template-transformer.js +13 -0
  134. package/src/transpile/components/data/list/list-template-transformer.js.map +1 -0
  135. package/src/transpile/components/data/list/list-transformer.js +308 -0
  136. package/src/transpile/components/data/list/list-transformer.js.map +1 -0
  137. package/src/transpile/components/data/live-filter-field.transformer.js +437 -0
  138. package/src/transpile/components/data/live-filter-field.transformer.js.map +1 -0
  139. package/src/transpile/components/data/livefilter.transformer.js +141 -0
  140. package/src/transpile/components/data/livefilter.transformer.js.map +1 -0
  141. package/src/transpile/components/data/liveform.transformer.js +160 -0
  142. package/src/transpile/components/data/liveform.transformer.js.map +1 -0
  143. package/src/transpile/components/data/table/live-table.transformer.js +15 -0
  144. package/src/transpile/components/data/table/live-table.transformer.js.map +1 -0
  145. package/src/transpile/components/data/table/table-action.transformer.js +29 -0
  146. package/src/transpile/components/data/table/table-action.transformer.js.map +1 -0
  147. package/src/transpile/components/data/table/table-column.transformer.js +121 -0
  148. package/src/transpile/components/data/table/table-column.transformer.js.map +1 -0
  149. package/src/transpile/components/data/table/table-group.transformer.js +16 -0
  150. package/src/transpile/components/data/table/table-group.transformer.js.map +1 -0
  151. package/src/transpile/components/data/table/table-row-action.transformer.js +34 -0
  152. package/src/transpile/components/data/table/table-row-action.transformer.js.map +1 -0
  153. package/src/transpile/components/data/table/table-row.transformer.js +33 -0
  154. package/src/transpile/components/data/table/table-row.transformer.js.map +1 -0
  155. package/src/transpile/components/data/table/table.transformer.js +64 -0
  156. package/src/transpile/components/data/table/table.transformer.js.map +1 -0
  157. package/src/transpile/components/data/table/utils.js +89 -0
  158. package/src/transpile/components/data/table/utils.js.map +1 -0
  159. package/src/transpile/components/dialogs/alert-dialog.transformer.js +16 -0
  160. package/src/transpile/components/dialogs/alert-dialog.transformer.js.map +1 -0
  161. package/src/transpile/components/dialogs/confirm-dialog.transformer.js +16 -0
  162. package/src/transpile/components/dialogs/confirm-dialog.transformer.js.map +1 -0
  163. package/src/transpile/components/dialogs/dialog-actions.transformer.js +57 -0
  164. package/src/transpile/components/dialogs/dialog-actions.transformer.js.map +1 -0
  165. package/src/transpile/components/dialogs/dialog-body.transformer.js +13 -0
  166. package/src/transpile/components/dialogs/dialog-body.transformer.js.map +1 -0
  167. package/src/transpile/components/dialogs/dialog.transformer.js +26 -0
  168. package/src/transpile/components/dialogs/dialog.transformer.js.map +1 -0
  169. package/src/transpile/components/dialogs/iframe-dialog.transformer.js +16 -0
  170. package/src/transpile/components/dialogs/iframe-dialog.transformer.js.map +1 -0
  171. package/src/transpile/components/dialogs/login-dialog.transformer.js +45 -0
  172. package/src/transpile/components/dialogs/login-dialog.transformer.js.map +1 -0
  173. package/src/transpile/components/dialogs/page-dialog.transformer.js +16 -0
  174. package/src/transpile/components/dialogs/page-dialog.transformer.js.map +1 -0
  175. package/src/transpile/components/element/html-transformer.js +9 -0
  176. package/src/transpile/components/element/html-transformer.js.map +1 -0
  177. package/src/transpile/components/form/button-group.transformer.js +16 -0
  178. package/src/transpile/components/form/button-group.transformer.js.map +1 -0
  179. package/src/transpile/components/form/button.transformer.js +27 -0
  180. package/src/transpile/components/form/button.transformer.js.map +1 -0
  181. package/src/transpile/components/form/rating.transformer.js +19 -0
  182. package/src/transpile/components/form/rating.transformer.js.map +1 -0
  183. package/src/transpile/components/input/calendar.transformer.js +13 -0
  184. package/src/transpile/components/input/calendar.transformer.js.map +1 -0
  185. package/src/transpile/components/input/checkbox-set.transformer.js +29 -0
  186. package/src/transpile/components/input/checkbox-set.transformer.js.map +1 -0
  187. package/src/transpile/components/input/checkbox.transformer.js +47 -0
  188. package/src/transpile/components/input/checkbox.transformer.js.map +1 -0
  189. package/src/transpile/components/input/chips.transformer.js +22 -0
  190. package/src/transpile/components/input/chips.transformer.js.map +1 -0
  191. package/src/transpile/components/input/color-picker.transformer.js +19 -0
  192. package/src/transpile/components/input/color-picker.transformer.js.map +1 -0
  193. package/src/transpile/components/input/composite.transformer.js +16 -0
  194. package/src/transpile/components/input/composite.transformer.js.map +1 -0
  195. package/src/transpile/components/input/currency.transformer.js +21 -0
  196. package/src/transpile/components/input/currency.transformer.js.map +1 -0
  197. package/src/transpile/components/input/epoch/date.transformer.js +16 -0
  198. package/src/transpile/components/input/epoch/date.transformer.js.map +1 -0
  199. package/src/transpile/components/input/epoch/datetime.transformer.js +16 -0
  200. package/src/transpile/components/input/epoch/datetime.transformer.js.map +1 -0
  201. package/src/transpile/components/input/epoch/time.transformer.js +16 -0
  202. package/src/transpile/components/input/epoch/time.transformer.js.map +1 -0
  203. package/src/transpile/components/input/file-upload.transformer.js +32 -0
  204. package/src/transpile/components/input/file-upload.transformer.js.map +1 -0
  205. package/src/transpile/components/input/number.transformer.js +20 -0
  206. package/src/transpile/components/input/number.transformer.js.map +1 -0
  207. package/src/transpile/components/input/radio-set.transformer.js +25 -0
  208. package/src/transpile/components/input/radio-set.transformer.js.map +1 -0
  209. package/src/transpile/components/input/rating.transformer.js +20 -0
  210. package/src/transpile/components/input/rating.transformer.js.map +1 -0
  211. package/src/transpile/components/input/select.transformer.js +57 -0
  212. package/src/transpile/components/input/select.transformer.js.map +1 -0
  213. package/src/transpile/components/input/slider.transformer.js +28 -0
  214. package/src/transpile/components/input/slider.transformer.js.map +1 -0
  215. package/src/transpile/components/input/switch.transformer.js +21 -0
  216. package/src/transpile/components/input/switch.transformer.js.map +1 -0
  217. package/src/transpile/components/input/text.transformer.js +21 -0
  218. package/src/transpile/components/input/text.transformer.js.map +1 -0
  219. package/src/transpile/components/input/textarea.transformer.js +19 -0
  220. package/src/transpile/components/input/textarea.transformer.js.map +1 -0
  221. package/src/transpile/components/input/upload.transformer.js +19 -0
  222. package/src/transpile/components/input/upload.transformer.js.map +1 -0
  223. package/src/transpile/components/layout/footer.transformer.js +31 -0
  224. package/src/transpile/components/layout/footer.transformer.js.map +1 -0
  225. package/src/transpile/components/layout/header.transformer.js +31 -0
  226. package/src/transpile/components/layout/header.transformer.js.map +1 -0
  227. package/src/transpile/components/layout/leftnav.transformer.js +31 -0
  228. package/src/transpile/components/layout/leftnav.transformer.js.map +1 -0
  229. package/src/transpile/components/layout/rightnav.transformer.js +31 -0
  230. package/src/transpile/components/layout/rightnav.transformer.js.map +1 -0
  231. package/src/transpile/components/layout/topnav.transformer.js +35 -0
  232. package/src/transpile/components/layout/topnav.transformer.js.map +1 -0
  233. package/src/transpile/components/nav/nav-item.transformer.js +25 -0
  234. package/src/transpile/components/nav/nav-item.transformer.js.map +1 -0
  235. package/src/transpile/components/nav/nav.transformer.js +69 -0
  236. package/src/transpile/components/nav/nav.transformer.js.map +1 -0
  237. package/src/transpile/components/nav/navbar.transformer.js +121 -0
  238. package/src/transpile/components/nav/navbar.transformer.js.map +1 -0
  239. package/src/transpile/components/navigation/breadcrumb.transformer.js +16 -0
  240. package/src/transpile/components/navigation/breadcrumb.transformer.js.map +1 -0
  241. package/src/transpile/components/navigation/menu.transformer.js +36 -0
  242. package/src/transpile/components/navigation/menu.transformer.js.map +1 -0
  243. package/src/transpile/components/navigation/popover.transformer.js +29 -0
  244. package/src/transpile/components/navigation/popover.transformer.js.map +1 -0
  245. package/src/transpile/components/page/content.transformer.js +17 -0
  246. package/src/transpile/components/page/content.transformer.js.map +1 -0
  247. package/src/transpile/components/page/page-content.transformer.js +17 -0
  248. package/src/transpile/components/page/page-content.transformer.js.map +1 -0
  249. package/src/transpile/components/page/page.transformer.js +50 -0
  250. package/src/transpile/components/page/page.transformer.js.map +1 -0
  251. package/src/transpile/components/page/partial-container.transformer.js +95 -0
  252. package/src/transpile/components/page/partial-container.transformer.js.map +1 -0
  253. package/src/transpile/components/page/partial.transformer.js +19 -0
  254. package/src/transpile/components/page/partial.transformer.js.map +1 -0
  255. package/src/transpile/components/prefab/prefab-container.transformer.js +32 -0
  256. package/src/transpile/components/prefab/prefab-container.transformer.js.map +1 -0
  257. package/src/transpile/components/prefab/prefab.transformer.js +85 -0
  258. package/src/transpile/components/prefab/prefab.transformer.js.map +1 -0
  259. package/src/transpile/components/transform-register.js +247 -0
  260. package/src/transpile/components/transform-register.js.map +1 -0
  261. package/src/transpile/components/utils.js +371 -0
  262. package/src/transpile/components/utils.js.map +1 -0
  263. package/src/transpile/components/wmx-component/wmx-component.transformer.js +35 -0
  264. package/src/transpile/components/wmx-component/wmx-component.transformer.js.map +1 -0
  265. package/src/transpile/id-generator.js +87 -0
  266. package/src/transpile/id-generator.js.map +1 -0
  267. package/src/transpile/property/base-parser.js +13 -0
  268. package/src/transpile/property/base-parser.js.map +1 -0
  269. package/src/transpile/property/property-parser.js +276 -0
  270. package/src/transpile/property/property-parser.js.map +1 -0
  271. package/src/transpile/property/show-in-device.parser.js +17 -0
  272. package/src/transpile/property/show-in-device.parser.js.map +1 -0
  273. package/src/transpile/style/background-image.parser.js +20 -0
  274. package/src/transpile/style/background-image.parser.js.map +1 -0
  275. package/src/transpile/style/border-width.parser.js +20 -0
  276. package/src/transpile/style/border-width.parser.js.map +1 -0
  277. package/src/transpile/style/dimension-style.parser.js +70 -0
  278. package/src/transpile/style/dimension-style.parser.js.map +1 -0
  279. package/src/transpile/style/horizontal-align.parser.js +24 -0
  280. package/src/transpile/style/horizontal-align.parser.js.map +1 -0
  281. package/src/transpile/style/margin.parser.js +20 -0
  282. package/src/transpile/style/margin.parser.js.map +1 -0
  283. package/src/transpile/style/multi-dimension-style.parser.js +29 -0
  284. package/src/transpile/style/multi-dimension-style.parser.js.map +1 -0
  285. package/src/transpile/style/numeric-style.parser.js +18 -0
  286. package/src/transpile/style/numeric-style.parser.js.map +1 -0
  287. package/src/transpile/style/padding.parser.js +20 -0
  288. package/src/transpile/style/padding.parser.js.map +1 -0
  289. package/src/transpile/style/style.parser.js +15 -0
  290. package/src/transpile/style/style.parser.js.map +1 -0
  291. package/src/transpile/style.transformer.js +124 -0
  292. package/src/transpile/style.transformer.js.map +1 -0
  293. package/src/transpile/transpile.js +1057 -0
  294. package/src/transpile/transpile.js.map +1 -0
  295. package/src/transpile/widget-inline-style-constants.js +200 -0
  296. package/src/transpile/widget-inline-style-constants.js.map +1 -0
  297. package/src/transpile/widget-inline-style-processor.js +714 -0
  298. package/src/transpile/widget-inline-style-processor.js.map +1 -0
  299. package/src/types/index.js +6 -0
  300. package/src/types/index.js.map +1 -0
  301. package/src/utils/grouping-util.js +500 -0
  302. package/src/utils/grouping-util.js.map +1 -0
  303. package/src/utils.js +934 -0
  304. package/src/utils.js.map +1 -0
  305. package/src/variables/variable.transformer.js +675 -0
  306. package/src/variables/variable.transformer.js.map +1 -0
  307. package/src/wmx.generator.js +216 -0
  308. package/src/wmx.generator.js.map +1 -0
  309. package/templates/.DS_Store +0 -0
  310. package/templates/app.style.template +3 -0
  311. package/templates/app.variables.template +1 -0
  312. package/templates/component/app.libs.hbs +38 -0
  313. package/templates/component/app.script.hbs +8 -0
  314. package/templates/component/app.template.hbs +47 -0
  315. package/templates/component/component.hbs +92 -0
  316. package/templates/component/component.props.template +1 -0
  317. package/templates/component/formatter.hbs +8 -0
  318. package/templates/component/layout.hbs +32 -0
  319. package/templates/component/page.hbs +16 -0
  320. package/templates/component/partial.hbs +78 -0
  321. package/templates/component/script.template +6 -0
  322. package/templates/component/style-def.template +18 -0
  323. package/templates/component/style.template +1 -0
  324. package/templates/entity-provider.template +21 -0
  325. package/templates/foundation/layout.tsx +30 -0
  326. package/templates/pages-config.template +12 -0
  327. package/templates/partial-config.template +58 -0
  328. package/templates/project/.DS_Store +0 -0
  329. package/templates/project/.env +1 -0
  330. package/templates/project/.gitignore +2 -0
  331. package/templates/project/.prettierrc +8 -0
  332. package/templates/project/README.md +60 -0
  333. package/templates/project/app/autoLayout.css +133 -0
  334. package/templates/project/app/client.layout.tsx +193 -0
  335. package/templates/project/app/components.css +186 -0
  336. package/templates/project/app/error.tsx +27 -0
  337. package/templates/project/app/globals.css +157 -0
  338. package/templates/project/app/layout.tsx +40 -0
  339. package/templates/project/app/loading.tsx +6 -0
  340. package/templates/project/app/page.tsx +3 -0
  341. package/templates/project/app/widgetInlineStylesOverride.css +676 -0
  342. package/templates/project/hooks/usePageEvents.tsx +45 -0
  343. package/templates/project/libs/appConfig.ts +14 -0
  344. package/templates/project/next-env.d.ts +5 -0
  345. package/templates/project/next.config.ts +17 -0
  346. package/templates/project/package-lock.json +5397 -0
  347. package/templates/project/package.json +38 -0
  348. package/templates/project/public/error-fallback.svg +89 -0
  349. package/templates/project/public/file.svg +1 -0
  350. package/templates/project/public/globe.svg +1 -0
  351. package/templates/project/public/next.svg +1 -0
  352. package/templates/project/public/vercel.svg +1 -0
  353. package/templates/project/public/window.svg +1 -0
  354. package/templates/project/scripts/app-custom-server.js +44 -0
  355. package/templates/project/scripts/getlibs.js +53 -0
  356. package/templates/project/tsconfig.json +36 -0
  357. package/templates/project/types/runtime-config.d.ts +9 -0
  358. package/templates/resource.resolver.template +20 -0
  359. package/templates/service.defs.template +3 -0
  360. package/templates/variables.template +252 -0
@@ -0,0 +1,675 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const bind_ex_transformer_1 = __importDefault(require("../transpile/bind.ex.transformer"));
7
+ const lodash_1 = require("lodash");
8
+ function isStaticParamsVariable(variable) {
9
+ const db = variable.dataBinding;
10
+ // No dataBinding at all → nothing dynamic
11
+ if (!db)
12
+ return true;
13
+ const entryIsStatic = (entry) => {
14
+ const v = Array.isArray(entry.value) ? entry.value[0] : entry.value;
15
+ return !v || !(typeof v === "string" && v.startsWith("bind:"));
16
+ };
17
+ if (Array.isArray(db)) {
18
+ return db.every(entryIsStatic);
19
+ }
20
+ if ((0, lodash_1.isObject)(db) && !Array.isArray(db)) {
21
+ return Object.values(db).every((opBindings) => {
22
+ if (!Array.isArray(opBindings))
23
+ return true;
24
+ return opBindings.every(entryIsStatic);
25
+ });
26
+ }
27
+ return true;
28
+ }
29
+ function transformDataItem(d, scope) {
30
+ let v = (0, lodash_1.isArray)(d.value) ? d.value[0] : d.value;
31
+ let arrayIndex = null;
32
+ if (v) {
33
+ if (v.startsWith && v.startsWith("bind:")) {
34
+ // "value" : "bind:'Do you want to delete this product: \"'+Widgets.Cart_Details.selecteditem.productDetails.productName+'\" from your Cart'",
35
+ const originalValue = v.substr(5);
36
+ v = originalValue;
37
+ // Check if the value contains array indexing like [$i] or [0]
38
+ const arrayIndexMatch = v.match(/\[(\$i|\d+)\]/);
39
+ if (arrayIndexMatch) {
40
+ // Extract the index (convert $i to 0 for now, or use the number)
41
+ arrayIndex = arrayIndexMatch[1] === "$i" ? 0 : parseInt(arrayIndexMatch[1], 10);
42
+ }
43
+ // Remove trailing semicolons and trim whitespace from binding expressions
44
+ v = (v || "").trim().replace(/;+\s*$/, "");
45
+ if (v === "null") {
46
+ v = null;
47
+ }
48
+ else {
49
+ const transformed = (0, bind_ex_transformer_1.default)(v, scope, "attr").replace(/\\n/g, "");
50
+ // If the expression starts with '{', it's an object literal and needs to be wrapped in ()
51
+ // to distinguish it from a block statement in arrow functions
52
+ if (transformed.trim().startsWith("{")) {
53
+ v = `${scope}.eval(() => (${transformed}))`;
54
+ }
55
+ else {
56
+ v = `${scope}.eval(() => ${transformed})`;
57
+ }
58
+ }
59
+ }
60
+ else if (d.type === "string") {
61
+ v = `${v}`;
62
+ }
63
+ }
64
+ return {
65
+ name: d.target,
66
+ value: v,
67
+ arrayIndex: arrayIndex,
68
+ };
69
+ }
70
+ function appendIfNotEmpty(input, str) {
71
+ return input && input + "";
72
+ }
73
+ function checkEmptyObject(obj) {
74
+ let isVariableEmpty = true;
75
+ (0, lodash_1.forEach)(obj, (value) => {
76
+ if ((0, lodash_1.isEmpty)(value) && !(0, lodash_1.isBoolean)(value) && !(0, lodash_1.isNumber)(value)) {
77
+ return;
78
+ }
79
+ if (!(0, lodash_1.isObject)(value)) {
80
+ isVariableEmpty = false;
81
+ }
82
+ else if ((0, lodash_1.isArray)(value)) {
83
+ isVariableEmpty = (0, lodash_1.isEmpty)(value) || (value.length === 1 ? (0, lodash_1.isEmpty)(value[0]) : false);
84
+ }
85
+ else {
86
+ isVariableEmpty = checkEmptyObject(value);
87
+ }
88
+ return isVariableEmpty;
89
+ });
90
+ return isVariableEmpty;
91
+ }
92
+ function transformVariable(variable, scope) {
93
+ var _a;
94
+ let params = {}, filters = {};
95
+ if (variable.category !== "wm.DeviceVariable") {
96
+ if ((0, lodash_1.isArray)(variable.dataSet)) {
97
+ if (variable.category === "wm.NavigationAction") {
98
+ variable.dataSet.forEach((d) => {
99
+ const { name, value } = transformDataItem(d, scope);
100
+ (0, lodash_1.set)(params, name, value);
101
+ });
102
+ }
103
+ else if (variable.category === "wm.Variable") {
104
+ params = (0, lodash_1.clone)(variable.dataSet);
105
+ }
106
+ }
107
+ else if ((0, lodash_1.isBoolean)(variable.dataSet) || (0, lodash_1.isNumber)(variable.dataSet)) {
108
+ if (variable.category === "wm.Variable") {
109
+ params = variable.dataSet;
110
+ }
111
+ }
112
+ else if (variable.dataSet) {
113
+ Object.keys(variable.dataSet).forEach(k => {
114
+ if (params[k] == undefined || params[k] == null) {
115
+ (0, lodash_1.set)(params, k, (0, lodash_1.get)(variable.dataSet, k));
116
+ }
117
+ });
118
+ }
119
+ }
120
+ if (variable.dataBinding) {
121
+ if (Array.isArray(variable.dataBinding)) {
122
+ // First pass: collect all bindings and identify conflicts
123
+ const bindings = [];
124
+ const parentKeys = new Set(); // Keys that have direct bindings
125
+ const nestedKeys = new Map(); // Parent -> array of nested bindings
126
+ (_a = variable.dataBinding) === null || _a === void 0 ? void 0 : _a.forEach((d) => {
127
+ // Capture the original bind value BEFORE transformation
128
+ const originalValue = d.value && d.value.startsWith && d.value.startsWith("bind:")
129
+ ? d.value.substr(5)
130
+ : d.value;
131
+ const { name, value, arrayIndex } = transformDataItem(d, scope);
132
+ let finalValue = value;
133
+ if (variable.dataSet &&
134
+ !(0, lodash_1.isArray)(variable.dataSet) &&
135
+ variable.dataSet.hasOwnProperty(name)) {
136
+ const defaultValue = (0, lodash_1.get)(variable.dataSet, name);
137
+ // Only add fallback if:
138
+ // 1. The binding is an expression (not a static value)
139
+ // 2. There's a default value (including empty strings and arrays)
140
+ if (d.value && d.value.startsWith && d.value.startsWith("bind:")) {
141
+ // Format default value appropriately
142
+ let formattedDefault;
143
+ if (typeof defaultValue === "string") {
144
+ formattedDefault = `"${defaultValue}"`;
145
+ }
146
+ else if ((0, lodash_1.isArray)(defaultValue)) {
147
+ formattedDefault = JSON.stringify(defaultValue);
148
+ }
149
+ else if ((0, lodash_1.isObject)(defaultValue)) {
150
+ formattedDefault = JSON.stringify(defaultValue);
151
+ }
152
+ else if (defaultValue === null) {
153
+ formattedDefault = "null";
154
+ }
155
+ else if (defaultValue === undefined) {
156
+ formattedDefault = "undefined";
157
+ }
158
+ else {
159
+ formattedDefault = String(defaultValue);
160
+ }
161
+ // Append fallback: value || defaultValue
162
+ finalValue = `${value} || ${formattedDefault}`;
163
+ }
164
+ }
165
+ bindings.push({ name, value: finalValue, arrayIndex, originalValue });
166
+ const parts = name.split(".");
167
+ if (parts.length === 1) {
168
+ // Direct binding for a key
169
+ parentKeys.add(name);
170
+ }
171
+ else {
172
+ // Nested binding
173
+ const parentKey = parts[0];
174
+ if (!nestedKeys.has(parentKey)) {
175
+ nestedKeys.set(parentKey, []);
176
+ }
177
+ nestedKeys.get(parentKey).push({ name, value: finalValue, arrayIndex, originalValue });
178
+ }
179
+ });
180
+ // Helper to check if nested bindings involve arrays
181
+ const hasArrayBindings = (key) => {
182
+ const nested = nestedKeys.get(key);
183
+ if (!nested)
184
+ return false;
185
+ // Check if any nested binding has an array index
186
+ return nested.some(n => n.arrayIndex !== null);
187
+ };
188
+ // Helper to check if nested bindings are complex (deep nesting > 2 levels)
189
+ const hasComplexNesting = (key) => {
190
+ const nested = nestedKeys.get(key);
191
+ if (!nested)
192
+ return false;
193
+ // Check if any nested path has more than 2 levels (e.g., RequestBody.serviceQualificationItem.resource)
194
+ return nested.some(n => n.name.split(".").length > 2);
195
+ };
196
+ // Helper to group array bindings by their array path
197
+ const groupArrayBindings = (key) => {
198
+ const nested = nestedKeys.get(key) || [];
199
+ const arrayGroups = new Map();
200
+ // First, identify which paths have array bindings (have [$i] in their values)
201
+ const arrayPaths = new Set();
202
+ nested.forEach(n => {
203
+ if (n.arrayIndex !== null) {
204
+ const parts = n.name.split(".");
205
+ if (parts.length >= 3) {
206
+ const arrayPath = `${parts[0]}.${parts[1]}`;
207
+ arrayPaths.add(arrayPath);
208
+ }
209
+ }
210
+ });
211
+ // Now group ALL bindings that go through these array paths
212
+ nested.forEach(n => {
213
+ const parts = n.name.split(".");
214
+ if (parts.length >= 3) {
215
+ // Check if this path goes through any identified array path
216
+ const potentialArrayPath = `${parts[0]}.${parts[1]}`;
217
+ // Include if: either has arrayIndex OR goes through an array path
218
+ if (n.arrayIndex !== null || arrayPaths.has(potentialArrayPath)) {
219
+ if (!arrayGroups.has(potentialArrayPath)) {
220
+ arrayGroups.set(potentialArrayPath, []);
221
+ }
222
+ // Remaining path after the array (e.g., resource.id from RequestBody.serviceQualificationItem.resource.id)
223
+ const remainingPath = parts.slice(2).join(".");
224
+ arrayGroups
225
+ .get(potentialArrayPath)
226
+ .push({ path: remainingPath, value: n.value, originalValue: n.originalValue });
227
+ }
228
+ }
229
+ });
230
+ return arrayGroups;
231
+ };
232
+ // Helper to generate map expression for array bindings
233
+ const generateMapExpression = (arrayPath, items, parentValue) => {
234
+ // Build the nested object structure for map
235
+ const structure = {};
236
+ items.forEach(item => {
237
+ (0, lodash_1.set)(structure, item.path, {
238
+ __isOverride: true,
239
+ value: item.value,
240
+ originalValue: item.originalValue,
241
+ });
242
+ });
243
+ // Generate map expression
244
+ const arrayPathParts = arrayPath.split(".");
245
+ const arraySourcePath = arrayPathParts.join(".");
246
+ return `__MAP__${arraySourcePath}__STRUCTURE__${JSON.stringify(structure)}__PARENT__${parentValue}__ENDMAP__`;
247
+ };
248
+ // Second pass: process bindings based on conflicts
249
+ bindings.forEach(({ name, value, arrayIndex, originalValue }) => {
250
+ const parts = name.split(".");
251
+ if (parts.length === 1) {
252
+ // This is a direct binding
253
+ const hasNestedBindings = nestedKeys.has(name);
254
+ if (hasNestedBindings && !hasComplexNesting(name) && !hasArrayBindings(name)) {
255
+ // Simple case: There are nested bindings but they're not deep and no arrays
256
+ // We can safely merge with spread operator
257
+ // Example: RequestBody -> RequestBody.state
258
+ const parentValue = value;
259
+ const parentObj = { __base__: parentValue };
260
+ nestedKeys.get(name).forEach(nested => {
261
+ const nestedParts = nested.name.split(".");
262
+ if (nestedParts.length === 2 && nestedParts[0] === name) {
263
+ parentObj[nestedParts[1]] = nested.value;
264
+ }
265
+ });
266
+ (0, lodash_1.set)(params, name, parentObj);
267
+ }
268
+ else if (hasNestedBindings && (hasComplexNesting(name) || hasArrayBindings(name))) {
269
+ // Complex case with arrays - use map expression
270
+ const parentObj = { __base__: value };
271
+ // Group array bindings and create map expressions
272
+ const arrayGroups = groupArrayBindings(name);
273
+ arrayGroups.forEach((items, arrayPath) => {
274
+ const mapExpr = generateMapExpression(arrayPath, items, value);
275
+ // Extract the array property name (last part of the path)
276
+ const arrayProp = arrayPath.split(".").pop();
277
+ if (arrayProp) {
278
+ // Store map marker directly in parent object, not using set()
279
+ parentObj[arrayProp] = mapExpr;
280
+ }
281
+ });
282
+ // Handle all non-array nested bindings (including deep paths like RequestBody.payload.templateInput.year)
283
+ // Exclude bindings that go through array paths (already handled by arrayGroups above)
284
+ const arrayRelativePaths = Array.from(arrayGroups.keys()).map(ap => ap.split(".").slice(1).join("."));
285
+ nestedKeys.get(name).forEach(nested => {
286
+ if (nested.arrayIndex === null) {
287
+ const nestedParts = nested.name.split(".");
288
+ if (nestedParts[0] === name && nestedParts.length > 1) {
289
+ const relativePath = nestedParts.slice(1).join(".");
290
+ // Skip if this path goes through an array (e.g. serviceQualificationItem.resource.id)
291
+ const goesThroughArray = arrayRelativePaths.some(rp => relativePath === rp || relativePath.startsWith(rp + "."));
292
+ if (!goesThroughArray) {
293
+ (0, lodash_1.set)(parentObj, relativePath, nested.value);
294
+ }
295
+ }
296
+ }
297
+ });
298
+ // For inline eval format: when no array bindings and base is JSON, store parsed base for stringify
299
+ if (arrayGroups.size === 0 && originalValue && typeof originalValue === "string") {
300
+ const trimmed = originalValue.trim();
301
+ if ((trimmed.startsWith("{") || trimmed.startsWith("[")) && trimmed.length > 1) {
302
+ try {
303
+ parentObj.__baseObject__ = JSON.parse(originalValue);
304
+ parentObj.__scope__ = scope;
305
+ }
306
+ catch (_a) {
307
+ // Ignore parse errors
308
+ }
309
+ }
310
+ }
311
+ // Set the parent object with all properties
312
+ (0, lodash_1.set)(params, name, parentObj);
313
+ }
314
+ else {
315
+ // No conflicts, just set the value
316
+ (0, lodash_1.set)(params, name, value);
317
+ }
318
+ }
319
+ else {
320
+ // This is a nested binding - already handled in parent block for array cases
321
+ const parentKey = parts[0];
322
+ if (!parentKeys.has(parentKey)) {
323
+ // No parent binding, set normally
324
+ (0, lodash_1.set)(params, name, value);
325
+ }
326
+ }
327
+ });
328
+ if (params.dataBinding) {
329
+ params = params.dataBinding;
330
+ }
331
+ }
332
+ else if (variable.category === "wm.CrudVariable" &&
333
+ (0, lodash_1.isObject)(variable.dataBinding) &&
334
+ !(0, lodash_1.isArray)(variable.dataBinding)) {
335
+ // Transform dataBinding object for CrudVariable
336
+ // Input: { list: [...], create: [...], update: [...], delete: [...] }
337
+ // Output: dataBinding: () => ({ list: [...], create: [...], update: [...], delete: [...] })
338
+ // Helper function to format value for JavaScript object literal
339
+ const formatValue = (value) => {
340
+ if (value === null) {
341
+ return "null";
342
+ }
343
+ if (value === undefined) {
344
+ return "undefined";
345
+ }
346
+ if (typeof value === "string") {
347
+ // If it's already a transformed expression (contains .eval), return as-is without quotes
348
+ if (value.includes(".eval(")) {
349
+ return value;
350
+ }
351
+ // Otherwise, quote it as a string
352
+ return JSON.stringify(value);
353
+ }
354
+ if (typeof value === "number" || typeof value === "boolean") {
355
+ return String(value);
356
+ }
357
+ return JSON.stringify(value);
358
+ };
359
+ // Build array of binding objects
360
+ const buildBindingArray = (bindings) => {
361
+ return bindings
362
+ .map((binding) => {
363
+ const transformed = transformDataItem(binding, scope);
364
+ const props = [];
365
+ // Always include target
366
+ props.push(`"target" : ${JSON.stringify(binding.target)}`);
367
+ // Format value - use transformed value if it's an expression, otherwise use original
368
+ let finalValue;
369
+ if (transformed.value !== undefined && transformed.value !== null) {
370
+ // If transformed value is a template literal (wrapped in backticks), extract the inner value
371
+ if (typeof transformed.value === "string" &&
372
+ transformed.value.startsWith("`") &&
373
+ transformed.value.endsWith("`")) {
374
+ finalValue = transformed.value.slice(1, -1);
375
+ }
376
+ else if (typeof transformed.value === "string" &&
377
+ transformed.value.includes(".eval(")) {
378
+ // It's a transformed expression, use as-is
379
+ finalValue = transformed.value;
380
+ }
381
+ else {
382
+ // Use transformed value, but check if we should preserve original type
383
+ finalValue = transformed.value;
384
+ }
385
+ }
386
+ else {
387
+ finalValue = binding.value || "";
388
+ }
389
+ props.push(`"value" : ${formatValue(finalValue)}`);
390
+ // Always include type
391
+ props.push(`"type" : ${JSON.stringify(binding.type)}`);
392
+ // Include isList if it exists
393
+ if (binding.hasOwnProperty("isList")) {
394
+ props.push(`"isList" : ${binding.isList}`);
395
+ }
396
+ return `{\n ${props.join(`,\n `)}\n }`;
397
+ })
398
+ .join(" , ");
399
+ };
400
+ // Build the object string
401
+ const objectParts = [];
402
+ Object.keys(variable.dataBinding).forEach((operationKey) => {
403
+ const operationBindings = variable.dataBinding[operationKey];
404
+ if ((0, lodash_1.isArray)(operationBindings)) {
405
+ objectParts.push(`"${operationKey}" : [ ${buildBindingArray(operationBindings)} ]`);
406
+ }
407
+ else {
408
+ objectParts.push(`"${operationKey}" : ${formatValue(operationBindings)}`);
409
+ }
410
+ });
411
+ // Store transformed dataBinding on variable object for use in transformCrudVariable
412
+ // Don't add it to params so it doesn't end up in paramProvider
413
+ variable._transformedDataBinding = `() => ({\n ${objectParts.join(`,\n `)}\n })`;
414
+ // Remove dataBinding from params if it exists to prevent it from going into paramProvider
415
+ if (params.dataBinding) {
416
+ delete params.dataBinding;
417
+ }
418
+ }
419
+ }
420
+ const filterProvider = (rules) => {
421
+ rules === null || rules === void 0 ? void 0 : rules.forEach((r) => {
422
+ if (r.rules) {
423
+ filterProvider(r.rules);
424
+ }
425
+ else {
426
+ const { name, value } = transformDataItem(r, scope);
427
+ filters[name] = value;
428
+ }
429
+ });
430
+ };
431
+ if (variable.filterExpressions) {
432
+ filterProvider(variable.filterExpressions.rules);
433
+ }
434
+ // Todo: these properties directly on variable are to be handled from studio
435
+ if (variable.category === "wm.DeviceVariable" && variable.operation === "scanBarCode") {
436
+ params["barcodeFormat"] = variable.barcodeFormat;
437
+ }
438
+ if (variable.category === "wm.DeviceVariable" &&
439
+ variable.service === "file" &&
440
+ variable.operation === "upload") {
441
+ params["browse"] = !variable.localFile;
442
+ }
443
+ const obj = {
444
+ name: variable.name,
445
+ group: "variable",
446
+ params: params,
447
+ filters: filters,
448
+ onSuccess: appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onSuccess, scope, "event"), ";"),
449
+ onError: appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onError, scope, "event"), ";"),
450
+ };
451
+ if (variable.onCanUpdate) {
452
+ obj.onCanUpdate = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onCanUpdate, scope, "event"), ";");
453
+ }
454
+ if (variable.onBeforeUpdate) {
455
+ obj.onBeforeUpdate = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onBeforeUpdate, scope, "event"), ";");
456
+ }
457
+ if (variable.onResult) {
458
+ obj.onResult = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onResult, scope, "event"), ";");
459
+ }
460
+ if (variable.onOnline) {
461
+ obj.onOnline = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onOnline, scope, "event"), ";");
462
+ }
463
+ if (variable.onOffline) {
464
+ obj.onOffline = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onOffline, scope, "event"), ";");
465
+ }
466
+ if (variable.onBeforeDatasetReady) {
467
+ obj.onBeforeDatasetReady = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onBeforeDatasetReady, scope, "event"), ";");
468
+ }
469
+ if (variable.spinnerContext) {
470
+ obj.spinnerContext = variable.spinnerContext;
471
+ obj.spinnerMessage = variable.spinnerMessage;
472
+ }
473
+ if (variable.category === "wm.LoginAction" || variable.category === "wm.LogoutAction") {
474
+ obj.useDefaultSuccessHandler = variable.useDefaultSuccessHandler;
475
+ }
476
+ return obj;
477
+ }
478
+ function transformModelVariable(variable, scope) {
479
+ if ((0, lodash_1.isArray)(variable.dataSet) &&
480
+ variable.dataSet.length === 1 &&
481
+ checkEmptyObject(variable.dataSet[0])) {
482
+ variable.dataSet = [];
483
+ }
484
+ if (variable.dataBinding) {
485
+ delete variable.dataBinding;
486
+ }
487
+ const tv = transformVariable(variable, scope);
488
+ tv.classname = "ModelVariable";
489
+ tv.twoWayBinding = variable.twoWayBinding;
490
+ tv.isList = !!variable.isList;
491
+ return tv;
492
+ }
493
+ function transformServiceVariable(variable, scope) {
494
+ const tv = transformVariable(variable, scope);
495
+ tv.classname = "ServiceVariable";
496
+ tv.operationId = variable.operationId;
497
+ tv.isList = !!variable.isList;
498
+ tv.inFlightBehavior = variable.inFlightBehavior;
499
+ tv.service = variable.service;
500
+ tv.operation = variable.operation;
501
+ tv.operationType = variable.operationType;
502
+ tv.maxResults = variable.maxResults;
503
+ tv._context = variable._context;
504
+ tv.serviceType = variable.serviceType;
505
+ tv.controller = variable.controller;
506
+ tv.autoUpdate = variable.autoUpdate;
507
+ tv.orderBy = variable.orderBy;
508
+ tv.isStaticParams = isStaticParamsVariable(variable);
509
+ return tv;
510
+ }
511
+ function transformNavigationAction(variable, scope) {
512
+ const tv = transformVariable(variable, scope);
513
+ tv.classname = "NavigationAction";
514
+ tv.group = "action";
515
+ tv.operation = variable.operation;
516
+ tv.params = (0, lodash_1.isArray)(tv.params) && tv.params.length == 0 ? {} : tv.params;
517
+ if (!tv.params["pageName"] && variable.pageName) {
518
+ tv.params["pageName"] = variable.pageName;
519
+ }
520
+ return tv;
521
+ }
522
+ function transformTimerAction(variable, scope) {
523
+ const tv = transformVariable(variable, scope);
524
+ tv.classname = "TimerAction";
525
+ tv.group = "action";
526
+ tv.repeating = variable.repeating;
527
+ tv.delay = variable.delay;
528
+ if (variable.onTimerFire) {
529
+ tv.onTimerFire = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onTimerFire, scope, "event"), ";");
530
+ }
531
+ return tv;
532
+ }
533
+ function transformNotificationAction(variable, scope, imports) {
534
+ const tv = transformVariable(variable, scope);
535
+ tv.classname = "NotificationAction";
536
+ tv.group = "action";
537
+ tv.operation = variable.operation;
538
+ const partialContent = Array.isArray(variable.dataBinding)
539
+ ? variable.dataBinding.filter((binding) => {
540
+ return binding.target === "page";
541
+ })[0]
542
+ : null;
543
+ if (variable.onOk || variable.onClick) {
544
+ tv.onOk = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onOk || variable.onClick, scope, "event"), ";");
545
+ }
546
+ if (variable.onCancel) {
547
+ tv.onCancel = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onCancel, scope, "event"), ";");
548
+ }
549
+ if (variable.onClose || variable.onHide) {
550
+ tv.onClose = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onClose || variable.onHide, scope, "event"), ";");
551
+ }
552
+ if (variable.operation === "alert" || variable.operation === "confirm") {
553
+ const owner = scope === "App" ? "App" : scope;
554
+ const widgetName = `Common${(0, lodash_1.upperFirst)(variable.operation)}Dialog`;
555
+ if (owner === "App") {
556
+ tv.showDialog = `App.openActionDialog(options,"${widgetName}");`;
557
+ }
558
+ else {
559
+ tv.showDialog = `${owner}.App.openActionDialog(options,"${widgetName}");`;
560
+ }
561
+ }
562
+ if (partialContent) {
563
+ const partialName = partialContent.value.charAt(0).toUpperCase() + partialContent.value.slice(1);
564
+ const importItem = `import ${partialName} from "@/app/components/${partialContent.value}/${partialContent.value}";`;
565
+ if (!imports.includes(importItem)) {
566
+ imports.push(importItem);
567
+ }
568
+ tv.partialContent = { component: partialName };
569
+ }
570
+ return tv;
571
+ }
572
+ function transformDeviceVariable(variable, scope, appUrl) {
573
+ if ((0, lodash_1.isArray)(variable.dataSet) &&
574
+ variable.dataSet.length === 1 &&
575
+ checkEmptyObject(variable.dataSet[0])) {
576
+ variable.dataSet = [];
577
+ }
578
+ const tv = transformVariable(variable, scope);
579
+ tv.classname = "DeviceVariable";
580
+ tv.operation = variable.operation;
581
+ tv.service = variable.service;
582
+ if (variable.service === "file") {
583
+ tv.params.serverUrl = `${scope}.eval(() => ${scope}.appConfig.url)`;
584
+ }
585
+ return tv;
586
+ }
587
+ function transformLoginVariable(variable, scope) {
588
+ const tv = transformVariable(variable, scope);
589
+ tv.classname = "LoginAction";
590
+ tv.group = "action";
591
+ return tv;
592
+ }
593
+ function transformLogoutVariable(variable, scope) {
594
+ const tv = transformVariable(variable, scope);
595
+ tv.classname = "LogoutAction";
596
+ tv.group = "action";
597
+ tv.redirectTo = variable.redirectTo;
598
+ return tv;
599
+ }
600
+ function transformLiveVariable(variable, scope) {
601
+ const tv = transformVariable(variable, scope);
602
+ tv.classname = "LiveVariable";
603
+ tv.isList = !!variable.isList;
604
+ tv.inFlightBehavior = variable.inFlightBehavior;
605
+ tv.maxResults = variable.maxResults;
606
+ tv._context = variable._context;
607
+ tv.operation = variable.operation;
608
+ tv.type = variable.type;
609
+ tv.autoUpdate = variable.autoUpdate;
610
+ tv.orderBy = variable.orderBy;
611
+ tv.liveSource = variable.liveSource;
612
+ tv.category = variable.category;
613
+ tv.tableName = variable.tableName;
614
+ tv.tableType = variable.tableType;
615
+ tv.relatedTables = variable.relatedTables;
616
+ tv.filterExpressions = variable.filterExpressions;
617
+ tv._id = variable._id;
618
+ tv.isStaticParams = isStaticParamsVariable(variable);
619
+ return tv;
620
+ }
621
+ function transformCrudVariable(variable, scope) {
622
+ const tv = transformVariable(variable, scope);
623
+ tv._id = variable._id;
624
+ tv.name = variable.name;
625
+ tv.owner = variable.owner;
626
+ tv.category = variable.category;
627
+ tv.type = variable.type;
628
+ tv.service = variable.service;
629
+ tv.operation = variable.operation;
630
+ tv.operationId = variable.operationId;
631
+ tv.crudOperationId = variable.crudOperationId;
632
+ tv.operationType = variable.operationType;
633
+ tv.serviceType = variable.serviceType;
634
+ tv.dataSet = variable.dataSet;
635
+ tv.isList = variable.isList;
636
+ tv.maxResults = variable.maxResults;
637
+ tv.startUpdate = variable.startUpdate;
638
+ tv.autoUpdate = variable.autoUpdate;
639
+ tv.inFlightBehavior = variable.inFlightBehavior;
640
+ tv.transformationRequired = variable.transformationRequired;
641
+ tv.saveInPhonegap = variable.saveInPhonegap;
642
+ tv.controller = variable.controller;
643
+ // Use transformed dataBinding if available, otherwise use original
644
+ tv.dataBinding = variable._transformedDataBinding || variable.dataBinding;
645
+ tv.classname = "CrudVariable";
646
+ tv.group = "variable";
647
+ tv.isStaticParams = isStaticParamsVariable(variable);
648
+ return tv;
649
+ }
650
+ exports.default = (variable, scope, appUrl, imports) => {
651
+ switch (variable.category) {
652
+ case "wm.Variable":
653
+ return transformModelVariable(variable, scope);
654
+ case "wm.ServiceVariable":
655
+ return transformServiceVariable(variable, scope);
656
+ case "wm.NavigationAction":
657
+ return transformNavigationAction(variable, scope);
658
+ case "wm.TimerAction":
659
+ return transformTimerAction(variable, scope);
660
+ case "wm.NotificationAction":
661
+ return transformNotificationAction(variable, scope, imports);
662
+ case "wm.DeviceVariable":
663
+ return transformDeviceVariable(variable, scope, appUrl);
664
+ case "wm.LoginAction":
665
+ return transformLoginVariable(variable, scope);
666
+ case "wm.LogoutAction":
667
+ return transformLogoutVariable(variable, scope);
668
+ case "wm.LiveVariable":
669
+ return transformLiveVariable(variable, scope);
670
+ case "wm.CrudVariable":
671
+ return transformCrudVariable(variable, scope);
672
+ }
673
+ return null;
674
+ };
675
+ //# sourceMappingURL=variable.transformer.js.map