@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.
- package/build-react-web.js +149 -0
- package/build-react-web.js.map +1 -0
- package/command.js +101 -0
- package/command.js.map +1 -0
- package/index.js +122 -0
- package/index.js.map +1 -0
- package/package-lock.json +4353 -0
- package/package.json +86 -0
- package/src/app.generator.js +1272 -0
- package/src/app.generator.js.map +1 -0
- package/src/download-packages.js +193 -0
- package/src/download-packages.js.map +1 -0
- package/src/fomatter.js +20 -0
- package/src/fomatter.js.map +1 -0
- package/src/gen-app-override-css.js +379 -0
- package/src/gen-app-override-css.js.map +1 -0
- package/src/genappoverridecssold-file.js +311 -0
- package/src/genappoverridecssold-file.js.map +1 -0
- package/src/handlebar-helpers.js +399 -0
- package/src/handlebar-helpers.js.map +1 -0
- package/src/increment-builder.js +85 -0
- package/src/increment-builder.js.map +1 -0
- package/src/profiles/profile.js +24 -0
- package/src/profiles/profile.js.map +1 -0
- package/src/profiles/web-preview.profile.js +15 -0
- package/src/profiles/web-preview.profile.js.map +1 -0
- package/src/project.service.js +314 -0
- package/src/project.service.js.map +1 -0
- package/src/transpile/bind.ex.transformer.js +226 -0
- package/src/transpile/bind.ex.transformer.js.map +1 -0
- package/src/transpile/components/advanced/carousel-template.transformer.js +16 -0
- package/src/transpile/components/advanced/carousel-template.transformer.js.map +1 -0
- package/src/transpile/components/advanced/carousel.transformer.js +55 -0
- package/src/transpile/components/advanced/carousel.transformer.js.map +1 -0
- package/src/transpile/components/advanced/login.transformer.js +26 -0
- package/src/transpile/components/advanced/login.transformer.js.map +1 -0
- package/src/transpile/components/advanced/marquee.transformer.js +16 -0
- package/src/transpile/components/advanced/marquee.transformer.js.map +1 -0
- package/src/transpile/components/basic/anchor.transformer.js +13 -0
- package/src/transpile/components/basic/anchor.transformer.js.map +1 -0
- package/src/transpile/components/basic/audio.transformer.js +16 -0
- package/src/transpile/components/basic/audio.transformer.js.map +1 -0
- package/src/transpile/components/basic/html.transformer.js +15 -0
- package/src/transpile/components/basic/html.transformer.js.map +1 -0
- package/src/transpile/components/basic/icon.transformer.js +16 -0
- package/src/transpile/components/basic/icon.transformer.js.map +1 -0
- package/src/transpile/components/basic/iframe.transformer.js +16 -0
- package/src/transpile/components/basic/iframe.transformer.js.map +1 -0
- package/src/transpile/components/basic/label.transformer.js +16 -0
- package/src/transpile/components/basic/label.transformer.js.map +1 -0
- package/src/transpile/components/basic/message.transformer.js +16 -0
- package/src/transpile/components/basic/message.transformer.js.map +1 -0
- package/src/transpile/components/basic/picture.transformer.js +22 -0
- package/src/transpile/components/basic/picture.transformer.js.map +1 -0
- package/src/transpile/components/basic/progress-bar.transformer.js +18 -0
- package/src/transpile/components/basic/progress-bar.transformer.js.map +1 -0
- package/src/transpile/components/basic/progress-circle.transformer.js +16 -0
- package/src/transpile/components/basic/progress-circle.transformer.js.map +1 -0
- package/src/transpile/components/basic/richtexteditor.transformer.js +21 -0
- package/src/transpile/components/basic/richtexteditor.transformer.js.map +1 -0
- package/src/transpile/components/basic/search.transformer.js +68 -0
- package/src/transpile/components/basic/search.transformer.js.map +1 -0
- package/src/transpile/components/basic/spinner.transformer.js +16 -0
- package/src/transpile/components/basic/spinner.transformer.js.map +1 -0
- package/src/transpile/components/basic/tree.transformer.js +16 -0
- package/src/transpile/components/basic/tree.transformer.js.map +1 -0
- package/src/transpile/components/basic/video.transformer.js +16 -0
- package/src/transpile/components/basic/video.transformer.js.map +1 -0
- package/src/transpile/components/chart/chart.transformer.js +13 -0
- package/src/transpile/components/chart/chart.transformer.js.map +1 -0
- package/src/transpile/components/container/accordion-pane.transformer.js +34 -0
- package/src/transpile/components/container/accordion-pane.transformer.js.map +1 -0
- package/src/transpile/components/container/accordion.transformer.js +49 -0
- package/src/transpile/components/container/accordion.transformer.js.map +1 -0
- package/src/transpile/components/container/container.transformer.js +27 -0
- package/src/transpile/components/container/container.transformer.js.map +1 -0
- package/src/transpile/components/container/layout-grid/grid-column.transformer.js +16 -0
- package/src/transpile/components/container/layout-grid/grid-column.transformer.js.map +1 -0
- package/src/transpile/components/container/layout-grid/grid-row.transformer.js +16 -0
- package/src/transpile/components/container/layout-grid/grid-row.transformer.js.map +1 -0
- package/src/transpile/components/container/layout-grid/grid.transformer.js +16 -0
- package/src/transpile/components/container/layout-grid/grid.transformer.js.map +1 -0
- package/src/transpile/components/container/linear-layout/linear-layout-item.js +16 -0
- package/src/transpile/components/container/linear-layout/linear-layout-item.js.map +1 -0
- package/src/transpile/components/container/linear-layout/linear-layout.js +16 -0
- package/src/transpile/components/container/linear-layout/linear-layout.js.map +1 -0
- package/src/transpile/components/container/panel-content.transformer.js +16 -0
- package/src/transpile/components/container/panel-content.transformer.js.map +1 -0
- package/src/transpile/components/container/panel-footer.transformer.js +11 -0
- package/src/transpile/components/container/panel-footer.transformer.js.map +1 -0
- package/src/transpile/components/container/panel.transformer.js +26 -0
- package/src/transpile/components/container/panel.transformer.js.map +1 -0
- package/src/transpile/components/container/repeat-template.transformer.js +16 -0
- package/src/transpile/components/container/repeat-template.transformer.js.map +1 -0
- package/src/transpile/components/container/tabheader.transformer.js +13 -0
- package/src/transpile/components/container/tabheader.transformer.js.map +1 -0
- package/src/transpile/components/container/tabpane.transformer.js +38 -0
- package/src/transpile/components/container/tabpane.transformer.js.map +1 -0
- package/src/transpile/components/container/tabs.transformer.js +105 -0
- package/src/transpile/components/container/tabs.transformer.js.map +1 -0
- package/src/transpile/components/container/tile.transformer.js +16 -0
- package/src/transpile/components/container/tile.transformer.js.map +1 -0
- package/src/transpile/components/container/wizard.transformer.js +81 -0
- package/src/transpile/components/container/wizard.transformer.js.map +1 -0
- package/src/transpile/components/container/wizardaction.transformer.js +120 -0
- package/src/transpile/components/container/wizardaction.transformer.js.map +1 -0
- package/src/transpile/components/container/wizardstep.transformer.js +74 -0
- package/src/transpile/components/container/wizardstep.transformer.js.map +1 -0
- package/src/transpile/components/data/card/card-actions.transformer.js +13 -0
- package/src/transpile/components/data/card/card-actions.transformer.js.map +1 -0
- package/src/transpile/components/data/card/card-content.transformer.js +23 -0
- package/src/transpile/components/data/card/card-content.transformer.js.map +1 -0
- package/src/transpile/components/data/card/card-footer.transformer.js +13 -0
- package/src/transpile/components/data/card/card-footer.transformer.js.map +1 -0
- package/src/transpile/components/data/card/card.transformer.js +13 -0
- package/src/transpile/components/data/card/card.transformer.js.map +1 -0
- package/src/transpile/components/data/form/dynamic-fields.transformer.js +24 -0
- package/src/transpile/components/data/form/dynamic-fields.transformer.js.map +1 -0
- package/src/transpile/components/data/form/form-action.transformer.js +145 -0
- package/src/transpile/components/data/form/form-action.transformer.js.map +1 -0
- package/src/transpile/components/data/form/form-body.transformer.js +16 -0
- package/src/transpile/components/data/form/form-body.transformer.js.map +1 -0
- package/src/transpile/components/data/form/form-field.transformer.js +443 -0
- package/src/transpile/components/data/form/form-field.transformer.js.map +1 -0
- package/src/transpile/components/data/form/form-footer.transformer.js +16 -0
- package/src/transpile/components/data/form/form-footer.transformer.js.map +1 -0
- package/src/transpile/components/data/form/form.transformer.js +167 -0
- package/src/transpile/components/data/form/form.transformer.js.map +1 -0
- package/src/transpile/components/data/form/util.js +70 -0
- package/src/transpile/components/data/form/util.js.map +1 -0
- package/src/transpile/components/data/list/list-content.transformer.js +35 -0
- package/src/transpile/components/data/list/list-content.transformer.js.map +1 -0
- package/src/transpile/components/data/list/list-template-transformer.js +13 -0
- package/src/transpile/components/data/list/list-template-transformer.js.map +1 -0
- package/src/transpile/components/data/list/list-transformer.js +308 -0
- package/src/transpile/components/data/list/list-transformer.js.map +1 -0
- package/src/transpile/components/data/live-filter-field.transformer.js +437 -0
- package/src/transpile/components/data/live-filter-field.transformer.js.map +1 -0
- package/src/transpile/components/data/livefilter.transformer.js +141 -0
- package/src/transpile/components/data/livefilter.transformer.js.map +1 -0
- package/src/transpile/components/data/liveform.transformer.js +160 -0
- package/src/transpile/components/data/liveform.transformer.js.map +1 -0
- package/src/transpile/components/data/table/live-table.transformer.js +15 -0
- package/src/transpile/components/data/table/live-table.transformer.js.map +1 -0
- package/src/transpile/components/data/table/table-action.transformer.js +29 -0
- package/src/transpile/components/data/table/table-action.transformer.js.map +1 -0
- package/src/transpile/components/data/table/table-column.transformer.js +121 -0
- package/src/transpile/components/data/table/table-column.transformer.js.map +1 -0
- package/src/transpile/components/data/table/table-group.transformer.js +16 -0
- package/src/transpile/components/data/table/table-group.transformer.js.map +1 -0
- package/src/transpile/components/data/table/table-row-action.transformer.js +34 -0
- package/src/transpile/components/data/table/table-row-action.transformer.js.map +1 -0
- package/src/transpile/components/data/table/table-row.transformer.js +33 -0
- package/src/transpile/components/data/table/table-row.transformer.js.map +1 -0
- package/src/transpile/components/data/table/table.transformer.js +64 -0
- package/src/transpile/components/data/table/table.transformer.js.map +1 -0
- package/src/transpile/components/data/table/utils.js +89 -0
- package/src/transpile/components/data/table/utils.js.map +1 -0
- package/src/transpile/components/dialogs/alert-dialog.transformer.js +16 -0
- package/src/transpile/components/dialogs/alert-dialog.transformer.js.map +1 -0
- package/src/transpile/components/dialogs/confirm-dialog.transformer.js +16 -0
- package/src/transpile/components/dialogs/confirm-dialog.transformer.js.map +1 -0
- package/src/transpile/components/dialogs/dialog-actions.transformer.js +57 -0
- package/src/transpile/components/dialogs/dialog-actions.transformer.js.map +1 -0
- package/src/transpile/components/dialogs/dialog-body.transformer.js +13 -0
- package/src/transpile/components/dialogs/dialog-body.transformer.js.map +1 -0
- package/src/transpile/components/dialogs/dialog.transformer.js +26 -0
- package/src/transpile/components/dialogs/dialog.transformer.js.map +1 -0
- package/src/transpile/components/dialogs/iframe-dialog.transformer.js +16 -0
- package/src/transpile/components/dialogs/iframe-dialog.transformer.js.map +1 -0
- package/src/transpile/components/dialogs/login-dialog.transformer.js +45 -0
- package/src/transpile/components/dialogs/login-dialog.transformer.js.map +1 -0
- package/src/transpile/components/dialogs/page-dialog.transformer.js +16 -0
- package/src/transpile/components/dialogs/page-dialog.transformer.js.map +1 -0
- package/src/transpile/components/element/html-transformer.js +9 -0
- package/src/transpile/components/element/html-transformer.js.map +1 -0
- package/src/transpile/components/form/button-group.transformer.js +16 -0
- package/src/transpile/components/form/button-group.transformer.js.map +1 -0
- package/src/transpile/components/form/button.transformer.js +27 -0
- package/src/transpile/components/form/button.transformer.js.map +1 -0
- package/src/transpile/components/form/rating.transformer.js +19 -0
- package/src/transpile/components/form/rating.transformer.js.map +1 -0
- package/src/transpile/components/input/calendar.transformer.js +13 -0
- package/src/transpile/components/input/calendar.transformer.js.map +1 -0
- package/src/transpile/components/input/checkbox-set.transformer.js +29 -0
- package/src/transpile/components/input/checkbox-set.transformer.js.map +1 -0
- package/src/transpile/components/input/checkbox.transformer.js +47 -0
- package/src/transpile/components/input/checkbox.transformer.js.map +1 -0
- package/src/transpile/components/input/chips.transformer.js +22 -0
- package/src/transpile/components/input/chips.transformer.js.map +1 -0
- package/src/transpile/components/input/color-picker.transformer.js +19 -0
- package/src/transpile/components/input/color-picker.transformer.js.map +1 -0
- package/src/transpile/components/input/composite.transformer.js +16 -0
- package/src/transpile/components/input/composite.transformer.js.map +1 -0
- package/src/transpile/components/input/currency.transformer.js +21 -0
- package/src/transpile/components/input/currency.transformer.js.map +1 -0
- package/src/transpile/components/input/epoch/date.transformer.js +16 -0
- package/src/transpile/components/input/epoch/date.transformer.js.map +1 -0
- package/src/transpile/components/input/epoch/datetime.transformer.js +16 -0
- package/src/transpile/components/input/epoch/datetime.transformer.js.map +1 -0
- package/src/transpile/components/input/epoch/time.transformer.js +16 -0
- package/src/transpile/components/input/epoch/time.transformer.js.map +1 -0
- package/src/transpile/components/input/file-upload.transformer.js +32 -0
- package/src/transpile/components/input/file-upload.transformer.js.map +1 -0
- package/src/transpile/components/input/number.transformer.js +20 -0
- package/src/transpile/components/input/number.transformer.js.map +1 -0
- package/src/transpile/components/input/radio-set.transformer.js +25 -0
- package/src/transpile/components/input/radio-set.transformer.js.map +1 -0
- package/src/transpile/components/input/rating.transformer.js +20 -0
- package/src/transpile/components/input/rating.transformer.js.map +1 -0
- package/src/transpile/components/input/select.transformer.js +57 -0
- package/src/transpile/components/input/select.transformer.js.map +1 -0
- package/src/transpile/components/input/slider.transformer.js +28 -0
- package/src/transpile/components/input/slider.transformer.js.map +1 -0
- package/src/transpile/components/input/switch.transformer.js +21 -0
- package/src/transpile/components/input/switch.transformer.js.map +1 -0
- package/src/transpile/components/input/text.transformer.js +21 -0
- package/src/transpile/components/input/text.transformer.js.map +1 -0
- package/src/transpile/components/input/textarea.transformer.js +19 -0
- package/src/transpile/components/input/textarea.transformer.js.map +1 -0
- package/src/transpile/components/input/upload.transformer.js +19 -0
- package/src/transpile/components/input/upload.transformer.js.map +1 -0
- package/src/transpile/components/layout/footer.transformer.js +31 -0
- package/src/transpile/components/layout/footer.transformer.js.map +1 -0
- package/src/transpile/components/layout/header.transformer.js +31 -0
- package/src/transpile/components/layout/header.transformer.js.map +1 -0
- package/src/transpile/components/layout/leftnav.transformer.js +31 -0
- package/src/transpile/components/layout/leftnav.transformer.js.map +1 -0
- package/src/transpile/components/layout/rightnav.transformer.js +31 -0
- package/src/transpile/components/layout/rightnav.transformer.js.map +1 -0
- package/src/transpile/components/layout/topnav.transformer.js +35 -0
- package/src/transpile/components/layout/topnav.transformer.js.map +1 -0
- package/src/transpile/components/nav/nav-item.transformer.js +25 -0
- package/src/transpile/components/nav/nav-item.transformer.js.map +1 -0
- package/src/transpile/components/nav/nav.transformer.js +69 -0
- package/src/transpile/components/nav/nav.transformer.js.map +1 -0
- package/src/transpile/components/nav/navbar.transformer.js +121 -0
- package/src/transpile/components/nav/navbar.transformer.js.map +1 -0
- package/src/transpile/components/navigation/breadcrumb.transformer.js +16 -0
- package/src/transpile/components/navigation/breadcrumb.transformer.js.map +1 -0
- package/src/transpile/components/navigation/menu.transformer.js +36 -0
- package/src/transpile/components/navigation/menu.transformer.js.map +1 -0
- package/src/transpile/components/navigation/popover.transformer.js +29 -0
- package/src/transpile/components/navigation/popover.transformer.js.map +1 -0
- package/src/transpile/components/page/content.transformer.js +17 -0
- package/src/transpile/components/page/content.transformer.js.map +1 -0
- package/src/transpile/components/page/page-content.transformer.js +17 -0
- package/src/transpile/components/page/page-content.transformer.js.map +1 -0
- package/src/transpile/components/page/page.transformer.js +50 -0
- package/src/transpile/components/page/page.transformer.js.map +1 -0
- package/src/transpile/components/page/partial-container.transformer.js +95 -0
- package/src/transpile/components/page/partial-container.transformer.js.map +1 -0
- package/src/transpile/components/page/partial.transformer.js +19 -0
- package/src/transpile/components/page/partial.transformer.js.map +1 -0
- package/src/transpile/components/prefab/prefab-container.transformer.js +32 -0
- package/src/transpile/components/prefab/prefab-container.transformer.js.map +1 -0
- package/src/transpile/components/prefab/prefab.transformer.js +85 -0
- package/src/transpile/components/prefab/prefab.transformer.js.map +1 -0
- package/src/transpile/components/transform-register.js +247 -0
- package/src/transpile/components/transform-register.js.map +1 -0
- package/src/transpile/components/utils.js +371 -0
- package/src/transpile/components/utils.js.map +1 -0
- package/src/transpile/components/wmx-component/wmx-component.transformer.js +35 -0
- package/src/transpile/components/wmx-component/wmx-component.transformer.js.map +1 -0
- package/src/transpile/id-generator.js +87 -0
- package/src/transpile/id-generator.js.map +1 -0
- package/src/transpile/property/base-parser.js +13 -0
- package/src/transpile/property/base-parser.js.map +1 -0
- package/src/transpile/property/property-parser.js +276 -0
- package/src/transpile/property/property-parser.js.map +1 -0
- package/src/transpile/property/show-in-device.parser.js +17 -0
- package/src/transpile/property/show-in-device.parser.js.map +1 -0
- package/src/transpile/style/background-image.parser.js +20 -0
- package/src/transpile/style/background-image.parser.js.map +1 -0
- package/src/transpile/style/border-width.parser.js +20 -0
- package/src/transpile/style/border-width.parser.js.map +1 -0
- package/src/transpile/style/dimension-style.parser.js +70 -0
- package/src/transpile/style/dimension-style.parser.js.map +1 -0
- package/src/transpile/style/horizontal-align.parser.js +24 -0
- package/src/transpile/style/horizontal-align.parser.js.map +1 -0
- package/src/transpile/style/margin.parser.js +20 -0
- package/src/transpile/style/margin.parser.js.map +1 -0
- package/src/transpile/style/multi-dimension-style.parser.js +29 -0
- package/src/transpile/style/multi-dimension-style.parser.js.map +1 -0
- package/src/transpile/style/numeric-style.parser.js +18 -0
- package/src/transpile/style/numeric-style.parser.js.map +1 -0
- package/src/transpile/style/padding.parser.js +20 -0
- package/src/transpile/style/padding.parser.js.map +1 -0
- package/src/transpile/style/style.parser.js +15 -0
- package/src/transpile/style/style.parser.js.map +1 -0
- package/src/transpile/style.transformer.js +124 -0
- package/src/transpile/style.transformer.js.map +1 -0
- package/src/transpile/transpile.js +1057 -0
- package/src/transpile/transpile.js.map +1 -0
- package/src/transpile/widget-inline-style-constants.js +200 -0
- package/src/transpile/widget-inline-style-constants.js.map +1 -0
- package/src/transpile/widget-inline-style-processor.js +714 -0
- package/src/transpile/widget-inline-style-processor.js.map +1 -0
- package/src/types/index.js +6 -0
- package/src/types/index.js.map +1 -0
- package/src/utils/grouping-util.js +500 -0
- package/src/utils/grouping-util.js.map +1 -0
- package/src/utils.js +934 -0
- package/src/utils.js.map +1 -0
- package/src/variables/variable.transformer.js +675 -0
- package/src/variables/variable.transformer.js.map +1 -0
- package/src/wmx.generator.js +216 -0
- package/src/wmx.generator.js.map +1 -0
- package/templates/.DS_Store +0 -0
- package/templates/app.style.template +3 -0
- package/templates/app.variables.template +1 -0
- package/templates/component/app.libs.hbs +38 -0
- package/templates/component/app.script.hbs +8 -0
- package/templates/component/app.template.hbs +47 -0
- package/templates/component/component.hbs +92 -0
- package/templates/component/component.props.template +1 -0
- package/templates/component/formatter.hbs +8 -0
- package/templates/component/layout.hbs +32 -0
- package/templates/component/page.hbs +16 -0
- package/templates/component/partial.hbs +78 -0
- package/templates/component/script.template +6 -0
- package/templates/component/style-def.template +18 -0
- package/templates/component/style.template +1 -0
- package/templates/entity-provider.template +21 -0
- package/templates/foundation/layout.tsx +30 -0
- package/templates/pages-config.template +12 -0
- package/templates/partial-config.template +58 -0
- package/templates/project/.DS_Store +0 -0
- package/templates/project/.env +1 -0
- package/templates/project/.gitignore +2 -0
- package/templates/project/.prettierrc +8 -0
- package/templates/project/README.md +60 -0
- package/templates/project/app/autoLayout.css +133 -0
- package/templates/project/app/client.layout.tsx +193 -0
- package/templates/project/app/components.css +186 -0
- package/templates/project/app/error.tsx +27 -0
- package/templates/project/app/globals.css +157 -0
- package/templates/project/app/layout.tsx +40 -0
- package/templates/project/app/loading.tsx +6 -0
- package/templates/project/app/page.tsx +3 -0
- package/templates/project/app/widgetInlineStylesOverride.css +676 -0
- package/templates/project/hooks/usePageEvents.tsx +45 -0
- package/templates/project/libs/appConfig.ts +14 -0
- package/templates/project/next-env.d.ts +5 -0
- package/templates/project/next.config.ts +17 -0
- package/templates/project/package-lock.json +5397 -0
- package/templates/project/package.json +38 -0
- package/templates/project/public/error-fallback.svg +89 -0
- package/templates/project/public/file.svg +1 -0
- package/templates/project/public/globe.svg +1 -0
- package/templates/project/public/next.svg +1 -0
- package/templates/project/public/vercel.svg +1 -0
- package/templates/project/public/window.svg +1 -0
- package/templates/project/scripts/app-custom-server.js +44 -0
- package/templates/project/scripts/getlibs.js +53 -0
- package/templates/project/tsconfig.json +36 -0
- package/templates/project/types/runtime-config.d.ts +9 -0
- package/templates/resource.resolver.template +20 -0
- package/templates/service.defs.template +3 -0
- 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
|