@sap/ux-ui5-tooling 1.20.4 → 1.22.0
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/CHANGELOG.md +60 -0
- package/dist/adp-tooling/templates/cf/_gitignore +6 -0
- package/dist/adp-tooling/templates/cf/approuter/package.json +13 -0
- package/dist/adp-tooling/templates/cf/approuter/xs-app.json +15 -0
- package/dist/adp-tooling/templates/cf/i18n/i18n.properties +3 -0
- package/dist/adp-tooling/templates/cf/package.json +35 -0
- package/dist/adp-tooling/templates/cf/ui5.yaml +5 -0
- package/dist/adp-tooling/templates/cf/xs-security.json +7 -0
- package/dist/adp-tooling/templates/changes/annotation.xml +18 -0
- package/dist/adp-tooling/templates/project/gitignore.tmpl +5 -0
- package/dist/adp-tooling/templates/project/package.json +31 -0
- package/dist/adp-tooling/templates/project/ui5.yaml +6 -0
- package/dist/adp-tooling/templates/project/webapp/i18n/i18n.properties +6 -0
- package/dist/adp-tooling/templates/project/webapp/manifest.appdescr_variant +10 -0
- package/dist/adp-tooling/templates/rta/common/analytical-custom-column.xml +25 -0
- package/dist/adp-tooling/templates/rta/common/custom-action.xml +8 -0
- package/dist/adp-tooling/templates/rta/common/grid-tree-custom-column.xml +22 -0
- package/dist/adp-tooling/templates/rta/common/header-field.xml +13 -0
- package/dist/adp-tooling/templates/rta/common/op-custom-section.xml +20 -0
- package/dist/adp-tooling/templates/rta/common/v4-table-action.xml +8 -0
- package/dist/adp-tooling/templates/rta/controller.ejs +80 -0
- package/dist/adp-tooling/templates/rta/fragment.xml +7 -0
- package/dist/adp-tooling/templates/rta/ts-controller.ejs +18 -0
- package/dist/adp-tooling/templates/rta/v2/m-table-custom-column-cell.xml +7 -0
- package/dist/adp-tooling/templates/rta/v2/m-table-custom-column.xml +18 -0
- package/dist/adp-tooling/templates/rta/v4/custom-section.xml +12 -0
- package/dist/adp-tooling/templates/rta/v4/mdc-custom-column-config.xml +6 -0
- package/dist/adp-tooling/templates/rta/v4/mdc-custom-column.xml +11 -0
- package/dist/adp-tooling/templates/typescript/tsconfig.json +19 -0
- package/dist/cli/index.js +17761 -11603
- package/dist/control-property-editor/app.css +2 -0
- package/dist/control-property-editor/app.js +175 -0
- package/dist/livereload-js/livereload.js +3795 -0
- package/dist/middlewares/fiori-tools-appreload.js +44007 -41669
- package/dist/middlewares/fiori-tools-preview.js +66889 -4176
- package/dist/middlewares/fiori-tools-proxy.js +38049 -5767
- package/dist/middlewares/fiori-tools-servestatic.js +32893 -347
- package/dist/preview-middleware/dist/client/adp/add-fragment.js +48 -0
- package/dist/preview-middleware/dist/client/adp/add-fragment.ts +51 -0
- package/dist/preview-middleware/dist/client/adp/api-handler.js +165 -0
- package/dist/preview-middleware/dist/client/adp/api-handler.ts +191 -0
- package/dist/preview-middleware/dist/client/adp/command-executor.js +100 -0
- package/dist/preview-middleware/dist/client/adp/command-executor.ts +105 -0
- package/dist/preview-middleware/dist/client/adp/control-utils.js +46 -0
- package/dist/preview-middleware/dist/client/adp/control-utils.ts +48 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddActionFragment.controller.js +198 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddActionFragment.controller.ts +232 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddCustomFragment.controller.js +223 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddCustomFragment.controller.ts +257 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddFragment.controller.js +195 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddFragment.controller.ts +264 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddSubpage.controller.js +146 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddSubpage.controller.ts +209 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddTableColumnFragments.controller.js +232 -0
- package/dist/preview-middleware/dist/client/adp/controllers/AddTableColumnFragments.controller.ts +306 -0
- package/dist/preview-middleware/dist/client/adp/controllers/BaseDialog.controller.js +187 -0
- package/dist/preview-middleware/dist/client/adp/controllers/BaseDialog.controller.ts +254 -0
- package/dist/preview-middleware/dist/client/adp/controllers/ControllerExtension.controller.js +330 -0
- package/dist/preview-middleware/dist/client/adp/controllers/ControllerExtension.controller.ts +408 -0
- package/dist/preview-middleware/dist/client/adp/controllers/ExtensionPoint.controller.js +160 -0
- package/dist/preview-middleware/dist/client/adp/controllers/ExtensionPoint.controller.ts +195 -0
- package/dist/preview-middleware/dist/client/adp/controllers/FileExistsDialog.controller.js +68 -0
- package/dist/preview-middleware/dist/client/adp/controllers/FileExistsDialog.controller.ts +86 -0
- package/dist/preview-middleware/dist/client/adp/controllers/types.js +2 -0
- package/dist/preview-middleware/dist/client/adp/controllers/types.ts +10 -0
- package/dist/preview-middleware/dist/client/adp/dialog-factory.js +151 -0
- package/dist/preview-middleware/dist/client/adp/dialog-factory.ts +210 -0
- package/dist/preview-middleware/dist/client/adp/extend-controller.js +48 -0
- package/dist/preview-middleware/dist/client/adp/extend-controller.ts +49 -0
- package/dist/preview-middleware/dist/client/adp/extension-point.js +83 -0
- package/dist/preview-middleware/dist/client/adp/extension-point.ts +116 -0
- package/dist/preview-middleware/dist/client/adp/init-dialogs.js +142 -0
- package/dist/preview-middleware/dist/client/adp/init-dialogs.ts +178 -0
- package/dist/preview-middleware/dist/client/adp/init.js +111 -0
- package/dist/preview-middleware/dist/client/adp/init.ts +92 -0
- package/dist/preview-middleware/dist/client/adp/ovp-window-functions.js +130 -0
- package/dist/preview-middleware/dist/client/adp/ovp-window-functions.ts +171 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/add-new-subpage-quick-action-base.js +97 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/add-new-subpage-quick-action-base.ts +140 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-controller-to-page.js +74 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-controller-to-page.ts +92 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-new-annotation-file.js +171 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-new-annotation-file.ts +174 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/create-page-action.js +56 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/create-page-action.ts +56 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-custom-section.js +41 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-custom-section.ts +51 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-header-field.js +69 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-header-field.ts +81 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/utils.js +20 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/common/utils.ts +7 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/control-types.js +25 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/control-types.ts +7 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/dialog-enablement-validator.js +26 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/dialog-enablement-validator.ts +18 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/enablement-validator.js +2 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/enablement-validator.ts +19 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/add-new-subpage.js +82 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/add-new-subpage.ts +87 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-actions.js +69 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-actions.ts +71 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-columns.js +103 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-columns.ts +105 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-action.js +111 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-action.ts +110 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.js +108 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.ts +141 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.js +80 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.ts +93 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.js +79 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.ts +102 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-variant-management.js +71 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-variant-management.ts +98 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.js +61 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.ts +77 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.js +95 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.ts +102 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-variant-management.js +86 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-variant-management.ts +116 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/registry.js +79 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/registry.ts +121 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/utils.js +138 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/utils.ts +134 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/add-new-subpage.js +140 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/add-new-subpage.ts +181 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-actions.js +81 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-actions.ts +81 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-columns.js +90 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-columns.ts +97 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-page-action.js +81 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-page-action.ts +98 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-action-config-change.js +129 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-action-config-change.ts +149 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-custom-column-config-change.js +142 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-custom-column-config-change.ts +178 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/enable-variant-management.js +83 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/enable-variant-management.ts +96 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.js +58 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.ts +70 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.js +86 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.ts +96 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.js +55 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.ts +61 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-add-custom-section.js +73 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-add-custom-section.ts +91 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.js +91 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.ts +88 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/registry.js +62 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/registry.ts +86 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/utils.js +158 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/utils.ts +175 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/load.js +46 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/load.ts +23 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/quick-action-base.js +64 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/quick-action-base.ts +71 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/simple-quick-action-base.js +44 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/simple-quick-action-base.ts +51 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/supported-ui5versions.md +40 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/table-quick-action-base.js +372 -0
- package/dist/preview-middleware/dist/client/adp/quick-actions/table-quick-action-base.ts +433 -0
- package/dist/preview-middleware/dist/client/adp/sync-views-utils.js +123 -0
- package/dist/preview-middleware/dist/client/adp/sync-views-utils.ts +90 -0
- package/dist/preview-middleware/dist/client/adp/ui/AddAction.fragment.xml +49 -0
- package/dist/preview-middleware/dist/client/adp/ui/AddCustomFragment.fragment.xml +48 -0
- package/dist/preview-middleware/dist/client/adp/ui/AddFragment.fragment.xml +83 -0
- package/dist/preview-middleware/dist/client/adp/ui/AddSubpage.fragment.xml +73 -0
- package/dist/preview-middleware/dist/client/adp/ui/AddTableColumnFragments.fragment.xml +63 -0
- package/dist/preview-middleware/dist/client/adp/ui/ControllerExtension.fragment.xml +63 -0
- package/dist/preview-middleware/dist/client/adp/ui/ExtensionPoint.fragment.xml +61 -0
- package/dist/preview-middleware/dist/client/adp/ui/FileExistsDialog.fragment.xml +43 -0
- package/dist/preview-middleware/dist/client/adp/utils.js +199 -0
- package/dist/preview-middleware/dist/client/adp/utils.ts +200 -0
- package/dist/preview-middleware/dist/client/cpe/additional-change-info/add-xml-additional-info.js +85 -0
- package/dist/preview-middleware/dist/client/cpe/additional-change-info/add-xml-additional-info.ts +107 -0
- package/dist/preview-middleware/dist/client/cpe/changes/flex-change.js +66 -0
- package/dist/preview-middleware/dist/client/cpe/changes/flex-change.ts +66 -0
- package/dist/preview-middleware/dist/client/cpe/changes/generic-change.js +321 -0
- package/dist/preview-middleware/dist/client/cpe/changes/generic-change.ts +462 -0
- package/dist/preview-middleware/dist/client/cpe/changes/index.js +12 -0
- package/dist/preview-middleware/dist/client/cpe/changes/index.ts +1 -0
- package/dist/preview-middleware/dist/client/cpe/changes/service.js +527 -0
- package/dist/preview-middleware/dist/client/cpe/changes/service.ts +595 -0
- package/dist/preview-middleware/dist/client/cpe/changes/validator.js +41 -0
- package/dist/preview-middleware/dist/client/cpe/changes/validator.ts +35 -0
- package/dist/preview-middleware/dist/client/cpe/communication-service.js +44 -0
- package/dist/preview-middleware/dist/client/cpe/communication-service.ts +41 -0
- package/dist/preview-middleware/dist/client/cpe/connector-service.js +88 -0
- package/dist/preview-middleware/dist/client/cpe/connector-service.ts +74 -0
- package/dist/preview-middleware/dist/client/cpe/context-menu-service.js +90 -0
- package/dist/preview-middleware/dist/client/cpe/context-menu-service.ts +77 -0
- package/dist/preview-middleware/dist/client/cpe/control-data.js +366 -0
- package/dist/preview-middleware/dist/client/cpe/control-data.ts +400 -0
- package/dist/preview-middleware/dist/client/cpe/documentation.js +191 -0
- package/dist/preview-middleware/dist/client/cpe/documentation.ts +187 -0
- package/dist/preview-middleware/dist/client/cpe/feature-service.js +39 -0
- package/dist/preview-middleware/dist/client/cpe/feature-service.ts +25 -0
- package/dist/preview-middleware/dist/client/cpe/init.js +92 -0
- package/dist/preview-middleware/dist/client/cpe/init.ts +114 -0
- package/dist/preview-middleware/dist/client/cpe/logger.js +32 -0
- package/dist/preview-middleware/dist/client/cpe/logger.ts +24 -0
- package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-checker.js +136 -0
- package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-checker.ts +160 -0
- package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-status.js +63 -0
- package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-status.ts +52 -0
- package/dist/preview-middleware/dist/client/cpe/outline/editable.js +38 -0
- package/dist/preview-middleware/dist/client/cpe/outline/editable.ts +30 -0
- package/dist/preview-middleware/dist/client/cpe/outline/nodes.js +212 -0
- package/dist/preview-middleware/dist/client/cpe/outline/nodes.ts +236 -0
- package/dist/preview-middleware/dist/client/cpe/outline/service.js +62 -0
- package/dist/preview-middleware/dist/client/cpe/outline/service.ts +66 -0
- package/dist/preview-middleware/dist/client/cpe/quick-actions/quick-action-service.js +161 -0
- package/dist/preview-middleware/dist/client/cpe/quick-actions/quick-action-service.ts +184 -0
- package/dist/preview-middleware/dist/client/cpe/quick-actions/registry.js +145 -0
- package/dist/preview-middleware/dist/client/cpe/quick-actions/registry.ts +157 -0
- package/dist/preview-middleware/dist/client/cpe/quick-actions/utils.js +94 -0
- package/dist/preview-middleware/dist/client/cpe/quick-actions/utils.ts +113 -0
- package/dist/preview-middleware/dist/client/cpe/rta-service.js +94 -0
- package/dist/preview-middleware/dist/client/cpe/rta-service.ts +86 -0
- package/dist/preview-middleware/dist/client/cpe/selection.js +249 -0
- package/dist/preview-middleware/dist/client/cpe/selection.ts +267 -0
- package/dist/preview-middleware/dist/client/cpe/ui5-utils.js +35 -0
- package/dist/preview-middleware/dist/client/cpe/ui5-utils.ts +28 -0
- package/dist/preview-middleware/dist/client/cpe/utils.js +113 -0
- package/dist/preview-middleware/dist/client/cpe/utils.ts +162 -0
- package/dist/preview-middleware/dist/client/flp/WorkspaceConnector.js +97 -0
- package/dist/preview-middleware/dist/client/flp/WorkspaceConnector.ts +101 -0
- package/dist/preview-middleware/dist/client/flp/common.js +30 -0
- package/dist/preview-middleware/dist/client/flp/common.ts +28 -0
- package/dist/preview-middleware/dist/client/flp/enableFakeConnector.js +92 -0
- package/dist/preview-middleware/dist/client/flp/enableFakeConnector.ts +113 -0
- package/dist/preview-middleware/dist/client/flp/homepage/Component.js +16 -0
- package/dist/preview-middleware/dist/client/flp/homepage/Component.ts +10 -0
- package/dist/preview-middleware/dist/client/flp/homepage/controller/MyHome.controller.js +54 -0
- package/dist/preview-middleware/dist/client/flp/homepage/controller/MyHome.controller.ts +41 -0
- package/dist/preview-middleware/dist/client/flp/homepage/css/style.css +3 -0
- package/dist/preview-middleware/dist/client/flp/homepage/manifest.json +41 -0
- package/dist/preview-middleware/dist/client/flp/homepage/view/MyHome.view.xml +18 -0
- package/dist/preview-middleware/dist/client/flp/init.js +418 -0
- package/dist/preview-middleware/dist/client/flp/init.ts +448 -0
- package/dist/preview-middleware/dist/client/flp/initCdm.js +117 -0
- package/dist/preview-middleware/dist/client/flp/initCdm.ts +111 -0
- package/dist/preview-middleware/dist/client/flp/initConnectors.js +31 -0
- package/dist/preview-middleware/dist/client/flp/initConnectors.ts +20 -0
- package/dist/preview-middleware/dist/client/flp/initRta.js +180 -0
- package/dist/preview-middleware/dist/client/flp/initRta.ts +194 -0
- package/dist/preview-middleware/dist/client/i18n.js +56 -0
- package/dist/preview-middleware/dist/client/i18n.ts +49 -0
- package/dist/preview-middleware/dist/client/manifest.json +8 -0
- package/dist/preview-middleware/dist/client/messagebundle.properties +143 -0
- package/dist/preview-middleware/dist/client/thirdparty/@sap-ux-private/control-property-editor-common.js +486 -0
- package/dist/preview-middleware/dist/client/utils/additional-change-info.js +69 -0
- package/dist/preview-middleware/dist/client/utils/additional-change-info.ts +73 -0
- package/dist/preview-middleware/dist/client/utils/application.js +34 -0
- package/dist/preview-middleware/dist/client/utils/application.ts +27 -0
- package/dist/preview-middleware/dist/client/utils/core.js +144 -0
- package/dist/preview-middleware/dist/client/utils/core.ts +145 -0
- package/dist/preview-middleware/dist/client/utils/error.js +28 -0
- package/dist/preview-middleware/dist/client/utils/error.ts +18 -0
- package/dist/preview-middleware/dist/client/utils/fe-v2.js +58 -0
- package/dist/preview-middleware/dist/client/utils/fe-v2.ts +61 -0
- package/dist/preview-middleware/dist/client/utils/fe-v4.js +168 -0
- package/dist/preview-middleware/dist/client/utils/fe-v4.ts +186 -0
- package/dist/preview-middleware/dist/client/utils/info-center-message.js +60 -0
- package/dist/preview-middleware/dist/client/utils/info-center-message.ts +60 -0
- package/dist/preview-middleware/dist/client/utils/version.js +126 -0
- package/dist/preview-middleware/dist/client/utils/version.ts +138 -0
- package/dist/preview-middleware/templates/flp/cdm.base.json +47 -0
- package/dist/preview-middleware/templates/flp/cdm.ejs +72 -0
- package/dist/preview-middleware/templates/flp/editor.ejs +28 -0
- package/dist/preview-middleware/templates/flp/sandbox.ejs +88 -0
- package/dist/preview-middleware/templates/flp/sandbox2.ejs +86 -0
- package/dist/preview-middleware/templates/test/qunit.ejs +26 -0
- package/dist/preview-middleware/templates/test/qunit.js +29 -0
- package/dist/preview-middleware/templates/test/testsuite.qunit.ejs +10 -0
- package/dist/preview-middleware/templates/test/testsuite.qunit.js +8 -0
- package/dist/tasks/cf-deploy/index.js +3916 -3521
- package/dist/tasks/deploy/index.js +17204 -11133
- package/package.json +36 -39
- package/prebuilds/keyring.darwin-arm64.node +0 -0
- package/prebuilds/keyring.darwin-x64.node +0 -0
- package/prebuilds/keyring.linux-arm-gnueabihf.node +0 -0
- package/prebuilds/keyring.linux-arm64-gnu.node +0 -0
- package/prebuilds/keyring.linux-arm64-musl.node +0 -0
- package/prebuilds/keyring.linux-ia32-gnu.node +0 -0
- package/prebuilds/keyring.linux-x64-gnu.node +0 -0
- package/prebuilds/keyring.linux-x64-musl.node +0 -0
- package/prebuilds/keyring.win32-arm64-msvc.node +0 -0
- package/prebuilds/keyring.win32-ia32-msvc.node +0 -0
- package/prebuilds/keyring.win32-x64-msvc.node +0 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/** sap.m */
|
|
2
|
+
import Button from 'sap/m/Button';
|
|
3
|
+
import type ComboBox from 'sap/m/ComboBox';
|
|
4
|
+
import type Dialog from 'sap/m/Dialog';
|
|
5
|
+
|
|
6
|
+
/** sap.ui.core */
|
|
7
|
+
import type UI5Element from 'sap/ui/core/Element';
|
|
8
|
+
|
|
9
|
+
/** sap.ui.base */
|
|
10
|
+
import type Event from 'sap/ui/base/Event';
|
|
11
|
+
|
|
12
|
+
/** sap.ui.model */
|
|
13
|
+
import JSONModel from 'sap/ui/model/json/JSONModel';
|
|
14
|
+
|
|
15
|
+
/** sap.ui.rta */
|
|
16
|
+
import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
17
|
+
|
|
18
|
+
/** sap.ui.dt */
|
|
19
|
+
import OverlayRegistry from 'sap/ui/dt/OverlayRegistry';
|
|
20
|
+
|
|
21
|
+
/** sap.ui.fl */
|
|
22
|
+
import { type AddFragmentChangeContentType } from 'sap/ui/fl/Change';
|
|
23
|
+
import type Selector from 'sap/ui/fl/Selector';
|
|
24
|
+
|
|
25
|
+
import { getResourceModel } from '../../i18n';
|
|
26
|
+
|
|
27
|
+
import { MessageBarType, setApplicationRequiresReload } from '@sap-ux-private/control-property-editor-common';
|
|
28
|
+
import { getFragmentTemplateName } from '../../cpe/additional-change-info/add-xml-additional-info';
|
|
29
|
+
import { CommunicationService } from '../../cpe/communication-service';
|
|
30
|
+
import { QuickActionTelemetryData } from '../../cpe/quick-actions/quick-action-definition';
|
|
31
|
+
import { getError } from '../../utils/error';
|
|
32
|
+
import { sendInfoCenterMessage } from '../../utils/info-center-message';
|
|
33
|
+
import type { AddFragmentData, DeferredXmlFragmentData } from '../add-fragment';
|
|
34
|
+
import { getFragments } from '../api-handler';
|
|
35
|
+
import CommandExecutor from '../command-executor';
|
|
36
|
+
import ControlUtils from '../control-utils';
|
|
37
|
+
import BaseDialog from './BaseDialog.controller';
|
|
38
|
+
|
|
39
|
+
const radix = 10;
|
|
40
|
+
|
|
41
|
+
export type AddFragmentModel = JSONModel & {
|
|
42
|
+
getProperty(sPath: '/title'): string;
|
|
43
|
+
getProperty(sPath: '/completeView'): boolean;
|
|
44
|
+
getProperty(sPath: '/newFragmentName'): string;
|
|
45
|
+
getProperty(sPath: '/selectedIndex'): number;
|
|
46
|
+
getProperty(sPath: '/selectedAggregation/value'): string;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export interface AddFragmentOptions {
|
|
50
|
+
title: string;
|
|
51
|
+
aggregation?: string;
|
|
52
|
+
defaultAggregationArrayIndex?: number;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @namespace open.ux.preview.client.adp.controllers
|
|
57
|
+
*/
|
|
58
|
+
export default class AddFragment extends BaseDialog<AddFragmentModel> {
|
|
59
|
+
private readonly data?: AddFragmentData;
|
|
60
|
+
|
|
61
|
+
constructor(
|
|
62
|
+
name: string,
|
|
63
|
+
overlays: UI5Element,
|
|
64
|
+
rta: RuntimeAuthoring,
|
|
65
|
+
readonly options: AddFragmentOptions,
|
|
66
|
+
data?: AddFragmentData,
|
|
67
|
+
telemetryData?: QuickActionTelemetryData
|
|
68
|
+
) {
|
|
69
|
+
super(name, telemetryData);
|
|
70
|
+
this.rta = rta;
|
|
71
|
+
this.overlays = overlays;
|
|
72
|
+
this.model = new JSONModel({
|
|
73
|
+
title: options.title,
|
|
74
|
+
completeView: options.aggregation === undefined
|
|
75
|
+
});
|
|
76
|
+
this.commandExecutor = new CommandExecutor(this.rta);
|
|
77
|
+
this.data = data;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Setups the Dialog and the JSON Model
|
|
82
|
+
*
|
|
83
|
+
* @param {Dialog} dialog - Dialog instance
|
|
84
|
+
*/
|
|
85
|
+
async setup(dialog: Dialog): Promise<void> {
|
|
86
|
+
this.dialog = dialog;
|
|
87
|
+
|
|
88
|
+
this.setEscapeHandler();
|
|
89
|
+
|
|
90
|
+
await this.buildDialogData();
|
|
91
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
92
|
+
|
|
93
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
94
|
+
this.dialog.setModel(this.model);
|
|
95
|
+
|
|
96
|
+
this.dialog.open();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Handles the change in aggregations
|
|
101
|
+
*
|
|
102
|
+
* @param event Event
|
|
103
|
+
*/
|
|
104
|
+
onAggregationChanged(event: Event) {
|
|
105
|
+
const source = event.getSource<ComboBox>();
|
|
106
|
+
|
|
107
|
+
const selectedKey = source.getSelectedKey();
|
|
108
|
+
const selectedItem = source.getSelectedItem();
|
|
109
|
+
|
|
110
|
+
let selectedItemText = '';
|
|
111
|
+
if (selectedItem) {
|
|
112
|
+
selectedItemText = selectedItem.getText();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
this.model.setProperty('/selectedAggregation/key', selectedKey);
|
|
116
|
+
this.model.setProperty('/selectedAggregation/value', selectedItemText);
|
|
117
|
+
|
|
118
|
+
let newSelectedControlChildren: string[] | number[] = Object.keys(
|
|
119
|
+
ControlUtils.getControlAggregationByName(this.getRuntimeControl(), selectedItemText)
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
newSelectedControlChildren = newSelectedControlChildren.map((key) => {
|
|
123
|
+
return Number.parseInt(key, radix);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
this.specialIndexHandling(selectedItemText);
|
|
127
|
+
|
|
128
|
+
const updatedIndexArray: { key: number; value: number }[] = this.fillIndexArray(newSelectedControlChildren);
|
|
129
|
+
|
|
130
|
+
this.model.setProperty('/index', updatedIndexArray);
|
|
131
|
+
this.model.setProperty('/selectedIndex', updatedIndexArray.length - 1);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Handles create button press
|
|
136
|
+
*
|
|
137
|
+
* @param event Event
|
|
138
|
+
*/
|
|
139
|
+
async onCreateBtnPress(event: Event) {
|
|
140
|
+
const source = event.getSource<Button>();
|
|
141
|
+
source.setEnabled(false);
|
|
142
|
+
|
|
143
|
+
await super.onCreateBtnPressHandler();
|
|
144
|
+
|
|
145
|
+
const fragmentName = this.model.getProperty('/newFragmentName');
|
|
146
|
+
const index = this.model.getProperty('/selectedIndex');
|
|
147
|
+
const targetAggregation = this.model.getProperty('/selectedAggregation/value') ?? 'content';
|
|
148
|
+
|
|
149
|
+
const modifiedValue = {
|
|
150
|
+
fragment: `<core:FragmentDefinition xmlns:core='sap.ui.core'></core:FragmentDefinition>`,
|
|
151
|
+
fragmentPath: `fragments/${fragmentName}.fragment.xml`,
|
|
152
|
+
index: index ?? 0,
|
|
153
|
+
targetAggregation: targetAggregation ?? 'content'
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
if (this.data) {
|
|
157
|
+
this.data.deferred.resolve(modifiedValue);
|
|
158
|
+
} else {
|
|
159
|
+
await this.createFragmentChange(modifiedValue);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const selector: Selector = { id: this.getRuntimeControl().getId(), idIsLocal: false };
|
|
163
|
+
const templateName = getFragmentTemplateName(selector, targetAggregation);
|
|
164
|
+
if (templateName) {
|
|
165
|
+
CommunicationService.sendAction(setApplicationRequiresReload(true));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
await sendInfoCenterMessage({
|
|
169
|
+
title: { key: 'ADP_CREATE_XML_FRAGMENT_TITLE' },
|
|
170
|
+
description: { key: 'ADP_ADD_FRAGMENT_NOTIFICATION', params: [fragmentName] },
|
|
171
|
+
type: MessageBarType.info
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
this.handleDialogClose();
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Builds data that is used in the dialog
|
|
179
|
+
*/
|
|
180
|
+
async buildDialogData(): Promise<void> {
|
|
181
|
+
const { controlMetadata, targetAggregation } = this.getControlMetadata();
|
|
182
|
+
const defaultAggregation = this.options.aggregation ?? controlMetadata.getDefaultAggregationName();
|
|
183
|
+
const selectedControlName = controlMetadata.getName();
|
|
184
|
+
|
|
185
|
+
let selectedControlChildren: string[] | number[] = Object.keys(
|
|
186
|
+
ControlUtils.getControlAggregationByName(this.getRuntimeControl(), defaultAggregation)
|
|
187
|
+
);
|
|
188
|
+
|
|
189
|
+
selectedControlChildren = selectedControlChildren.map((key) => {
|
|
190
|
+
return Number.parseInt(key, radix);
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
this.model.setProperty('/selectedControlName', selectedControlName);
|
|
194
|
+
this.model.setProperty('/selectedAggregation', {});
|
|
195
|
+
|
|
196
|
+
const indexArray = this.fillIndexArray(selectedControlChildren);
|
|
197
|
+
|
|
198
|
+
const controlAggregation: { key: string | number; value: string | number }[] = targetAggregation.map(
|
|
199
|
+
(elem, index) => {
|
|
200
|
+
return { key: index, value: elem };
|
|
201
|
+
}
|
|
202
|
+
);
|
|
203
|
+
|
|
204
|
+
if (defaultAggregation !== null) {
|
|
205
|
+
controlAggregation.forEach((obj) => {
|
|
206
|
+
if (obj.value === defaultAggregation) {
|
|
207
|
+
obj.key = 'default';
|
|
208
|
+
this.model.setProperty('/selectedAggregation/key', obj.key);
|
|
209
|
+
this.model.setProperty('/selectedAggregation/value', obj.value);
|
|
210
|
+
this.specialIndexHandling(obj.value);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
} else {
|
|
214
|
+
this.model.setProperty('/selectedAggregation/key', controlAggregation[0].key);
|
|
215
|
+
this.model.setProperty('/selectedAggregation/value', controlAggregation[0].value);
|
|
216
|
+
this.specialIndexHandling(controlAggregation[0].value);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
try {
|
|
220
|
+
const { fragments } = await getFragments();
|
|
221
|
+
|
|
222
|
+
this.model.setProperty('/fragmentList', fragments);
|
|
223
|
+
} catch (e) {
|
|
224
|
+
const error = getError(e);
|
|
225
|
+
await sendInfoCenterMessage({
|
|
226
|
+
title: { key: 'ADP_ADD_FRAGMENT_FAILURE_TITLE' },
|
|
227
|
+
description: error.message,
|
|
228
|
+
type: MessageBarType.error
|
|
229
|
+
});
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
this.model.setProperty('/selectedIndex', indexArray.length - 1);
|
|
234
|
+
this.model.setProperty('/targetAggregation', controlAggregation);
|
|
235
|
+
this.model.setProperty('/index', indexArray);
|
|
236
|
+
const defaultIndex = Number(this.options.defaultAggregationArrayIndex);
|
|
237
|
+
if (defaultIndex >= 0) {
|
|
238
|
+
this.model.setProperty('/selectedIndex', indexArray.length - 1 > 0 ? defaultIndex : 0);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Creates an addXML fragment command and pushes it to the command stack
|
|
244
|
+
*
|
|
245
|
+
* @param modifiedValue - modified value
|
|
246
|
+
* @param templateName - fragment template name
|
|
247
|
+
*/
|
|
248
|
+
private async createFragmentChange(modifiedValue: DeferredXmlFragmentData): Promise<void> {
|
|
249
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
250
|
+
|
|
251
|
+
const overlay = OverlayRegistry.getOverlay(this.getRuntimeControl() as UI5Element);
|
|
252
|
+
const designMetadata = overlay.getDesignTimeMetadata();
|
|
253
|
+
|
|
254
|
+
const command = await this.commandExecutor.getCommand<AddFragmentChangeContentType>(
|
|
255
|
+
this.getRuntimeControl(),
|
|
256
|
+
'addXML',
|
|
257
|
+
modifiedValue,
|
|
258
|
+
flexSettings,
|
|
259
|
+
designMetadata
|
|
260
|
+
);
|
|
261
|
+
|
|
262
|
+
await this.commandExecutor.pushAndExecuteCommand(command);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/model/json/JSONModel", "../../i18n", "../command-executor", "./BaseDialog.controller", "sap/ui/rta/command/CommandFactory", "../../cpe/communication-service", "open/ux/preview/client/thirdparty/@sap-ux-private/control-property-editor-common", "../quick-actions/fe-v4/utils"], function (JSONModel, ____i18n, __CommandExecutor, __BaseDialog, CommandFactory, ____cpe_communication_service, ___sap_ux_private_control_property_editor_common, ___quick_actions_fe_v4_utils) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function _interopRequireDefault(obj) {
|
|
7
|
+
return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
|
|
8
|
+
}
|
|
9
|
+
const getResourceModel = ____i18n["getResourceModel"];
|
|
10
|
+
const CommandExecutor = _interopRequireDefault(__CommandExecutor);
|
|
11
|
+
const BaseDialog = _interopRequireDefault(__BaseDialog);
|
|
12
|
+
const CommunicationService = ____cpe_communication_service["CommunicationService"];
|
|
13
|
+
const setApplicationRequiresReload = ___sap_ux_private_control_property_editor_common["setApplicationRequiresReload"];
|
|
14
|
+
const generateRoutePattern = ___quick_actions_fe_v4_utils["generateRoutePattern"];
|
|
15
|
+
/**
|
|
16
|
+
* @namespace open.ux.preview.client.adp.controllers
|
|
17
|
+
*/
|
|
18
|
+
const AddSubpage = BaseDialog.extend("open.ux.preview.client.adp.controllers.AddSubpage", {
|
|
19
|
+
constructor: function _constructor(name, overlays, rta, options, telemetryData) {
|
|
20
|
+
BaseDialog.prototype.constructor.call(this, name, telemetryData);
|
|
21
|
+
this.options = options;
|
|
22
|
+
this.rta = rta;
|
|
23
|
+
this.overlays = overlays;
|
|
24
|
+
this.model = new JSONModel({
|
|
25
|
+
title: options.title,
|
|
26
|
+
navigationData: options.navProperties
|
|
27
|
+
});
|
|
28
|
+
this.commandExecutor = new CommandExecutor(this.rta);
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* Setups the Dialog and the JSON Model
|
|
32
|
+
*
|
|
33
|
+
* @param {Dialog} dialog - Dialog instance
|
|
34
|
+
*/
|
|
35
|
+
setup: async function _setup(dialog) {
|
|
36
|
+
this.dialog = dialog;
|
|
37
|
+
this.setEscapeHandler();
|
|
38
|
+
this.buildDialogData();
|
|
39
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
40
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
41
|
+
this.dialog.setModel(this.model);
|
|
42
|
+
this.dialog.open();
|
|
43
|
+
},
|
|
44
|
+
onPageTypeChange: function _onPageTypeChange() {
|
|
45
|
+
// TODO: to be supported in future releases
|
|
46
|
+
},
|
|
47
|
+
onNavigationChange: function _onNavigationChange(event) {
|
|
48
|
+
const source = event.getSource();
|
|
49
|
+
const selectedKey = source.getSelectedKey();
|
|
50
|
+
this.model.setProperty('/selectedNavigation/key', selectedKey);
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* Handles create button press
|
|
54
|
+
*
|
|
55
|
+
* @param event Event
|
|
56
|
+
*/
|
|
57
|
+
onCreateBtnPress: async function _onCreateBtnPress(event) {
|
|
58
|
+
const source = event.getSource();
|
|
59
|
+
source.setEnabled(false);
|
|
60
|
+
await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
|
|
61
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
62
|
+
const navProperty = this.model.getProperty('/selectedNavigation/key');
|
|
63
|
+
const navigation = this.model.getProperty('/navigationData').find(item => item.navProperty = navProperty);
|
|
64
|
+
const targetEntitySet = navigation?.entitySet ?? '';
|
|
65
|
+
const pageDescriptor = this.options.pageDescriptor;
|
|
66
|
+
let modifiedValue;
|
|
67
|
+
if (pageDescriptor.appType === 'fe-v2') {
|
|
68
|
+
modifiedValue = {
|
|
69
|
+
appComponent: pageDescriptor.appComponent,
|
|
70
|
+
changeType: 'appdescr_ui_generic_app_addNewObjectPage',
|
|
71
|
+
reference: this.options.appReference,
|
|
72
|
+
parameters: {
|
|
73
|
+
parentPage: {
|
|
74
|
+
component: pageDescriptor.pageType,
|
|
75
|
+
entitySet: pageDescriptor.entitySet
|
|
76
|
+
},
|
|
77
|
+
childPage: {
|
|
78
|
+
id: `ObjectPage|${navProperty}`,
|
|
79
|
+
definition: {
|
|
80
|
+
entitySet: targetEntitySet,
|
|
81
|
+
navigationProperty: navProperty
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
} else if (pageDescriptor.routePattern) {
|
|
87
|
+
const routePattern = generateRoutePattern(pageDescriptor.routePattern, navProperty, targetEntitySet);
|
|
88
|
+
modifiedValue = {
|
|
89
|
+
appComponent: pageDescriptor.appComponent,
|
|
90
|
+
changeType: 'appdescr_fe_addNewPage',
|
|
91
|
+
reference: this.options.appReference,
|
|
92
|
+
parameters: {
|
|
93
|
+
sourcePage: {
|
|
94
|
+
id: pageDescriptor.pageId,
|
|
95
|
+
navigationSource: navProperty
|
|
96
|
+
},
|
|
97
|
+
targetPage: {
|
|
98
|
+
type: 'Component',
|
|
99
|
+
id: `${targetEntitySet}ObjectPage`,
|
|
100
|
+
name: 'sap.fe.templates.ObjectPage',
|
|
101
|
+
routePattern,
|
|
102
|
+
settings: {
|
|
103
|
+
contextPath: `/${targetEntitySet}`,
|
|
104
|
+
editableHeaderContent: false,
|
|
105
|
+
entitySet: targetEntitySet,
|
|
106
|
+
pageLayout: '',
|
|
107
|
+
controlConfiguration: {}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const command = await CommandFactory.getCommandFor(this.getRuntimeControl(), 'appDescriptor', modifiedValue, null, flexSettings);
|
|
114
|
+
await this.commandExecutor.pushAndExecuteCommand(command);
|
|
115
|
+
CommunicationService.sendAction(setApplicationRequiresReload(true));
|
|
116
|
+
this.handleDialogClose();
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* Builds data that is used in the dialog
|
|
120
|
+
*/
|
|
121
|
+
buildDialogData: function _buildDialogData() {
|
|
122
|
+
this.getControlMetadata(); // is called to fill this.runtimeControl
|
|
123
|
+
|
|
124
|
+
const pageTypeOptions = [{
|
|
125
|
+
key: 'ObjectPage',
|
|
126
|
+
value: 'Object Page'
|
|
127
|
+
}, {
|
|
128
|
+
key: 'CustomPage',
|
|
129
|
+
value: 'Custom Page'
|
|
130
|
+
}];
|
|
131
|
+
this.model.setProperty('/pageTypeOptions', pageTypeOptions);
|
|
132
|
+
this.model.setProperty('/selectedPageType', pageTypeOptions[0]);
|
|
133
|
+
const navigationOptions = this.model.getProperty('/navigationData').map(item => {
|
|
134
|
+
const value = item.entitySet === item.navProperty ? item.entitySet : `${item.entitySet} (${item.navProperty})`;
|
|
135
|
+
return {
|
|
136
|
+
key: item.navProperty,
|
|
137
|
+
value
|
|
138
|
+
};
|
|
139
|
+
});
|
|
140
|
+
this.model.setProperty('/navigationOptions', navigationOptions);
|
|
141
|
+
this.model.setProperty('/selectedNavigation', navigationOptions[0]);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
return AddSubpage;
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=AddSubpage.controller.js.map
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/** sap.m */
|
|
2
|
+
import type Button from 'sap/m/Button';
|
|
3
|
+
import type Dialog from 'sap/m/Dialog';
|
|
4
|
+
import type ComboBox from 'sap/m/ComboBox';
|
|
5
|
+
|
|
6
|
+
/** sap.ui.core */
|
|
7
|
+
import type UI5Element from 'sap/ui/core/Element';
|
|
8
|
+
|
|
9
|
+
/** sap.ui.base */
|
|
10
|
+
import type Event from 'sap/ui/base/Event';
|
|
11
|
+
|
|
12
|
+
/** sap.ui.model */
|
|
13
|
+
import JSONModel from 'sap/ui/model/json/JSONModel';
|
|
14
|
+
|
|
15
|
+
/** sap.ui.rta */
|
|
16
|
+
import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
17
|
+
|
|
18
|
+
/** sap.suite.ui.generic */
|
|
19
|
+
import type AppComponentV2 from 'sap/suite/ui/generic/template/lib/AppComponent';
|
|
20
|
+
|
|
21
|
+
import { getResourceModel } from '../../i18n';
|
|
22
|
+
|
|
23
|
+
import CommandExecutor from '../command-executor';
|
|
24
|
+
|
|
25
|
+
import BaseDialog from './BaseDialog.controller';
|
|
26
|
+
|
|
27
|
+
import CommandFactory from 'sap/ui/rta/command/CommandFactory';
|
|
28
|
+
import { CommunicationService } from '../../cpe/communication-service';
|
|
29
|
+
import { setApplicationRequiresReload } from '@sap-ux-private/control-property-editor-common';
|
|
30
|
+
import { generateRoutePattern } from '../quick-actions/fe-v4/utils';
|
|
31
|
+
import { QuickActionTelemetryData } from '../../cpe/quick-actions/quick-action-definition';
|
|
32
|
+
import { PageDescriptorV4 } from './types';
|
|
33
|
+
|
|
34
|
+
type SubpageType = 'ObjectPage' | 'CustomPage';
|
|
35
|
+
|
|
36
|
+
export interface PageDescriptorV2 {
|
|
37
|
+
appType: 'fe-v2';
|
|
38
|
+
appComponent: AppComponentV2;
|
|
39
|
+
entitySet: string;
|
|
40
|
+
pageType: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface AddSubpageOptions {
|
|
44
|
+
appReference: string;
|
|
45
|
+
title: string;
|
|
46
|
+
navProperties: { navProperty: string; entitySet: string }[];
|
|
47
|
+
pageDescriptor: PageDescriptorV2 | PageDescriptorV4;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type AddSubpageModel = JSONModel & {
|
|
51
|
+
getProperty(sPath: '/title'): string;
|
|
52
|
+
getProperty(sPath: '/navigationData'): { navProperty: string; entitySet: string }[];
|
|
53
|
+
getProperty(sPath: '/selectedPageType/key'): SubpageType;
|
|
54
|
+
getProperty(sPath: '/selectedNavigation/key'): string;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @namespace open.ux.preview.client.adp.controllers
|
|
59
|
+
*/
|
|
60
|
+
export default class AddSubpage extends BaseDialog<AddSubpageModel> {
|
|
61
|
+
constructor(
|
|
62
|
+
name: string,
|
|
63
|
+
overlays: UI5Element,
|
|
64
|
+
rta: RuntimeAuthoring,
|
|
65
|
+
readonly options: AddSubpageOptions,
|
|
66
|
+
telemetryData?: QuickActionTelemetryData
|
|
67
|
+
) {
|
|
68
|
+
super(name, telemetryData);
|
|
69
|
+
this.rta = rta;
|
|
70
|
+
this.overlays = overlays;
|
|
71
|
+
this.model = new JSONModel({
|
|
72
|
+
title: options.title,
|
|
73
|
+
navigationData: options.navProperties
|
|
74
|
+
});
|
|
75
|
+
this.commandExecutor = new CommandExecutor(this.rta);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Setups the Dialog and the JSON Model
|
|
80
|
+
*
|
|
81
|
+
* @param {Dialog} dialog - Dialog instance
|
|
82
|
+
*/
|
|
83
|
+
async setup(dialog: Dialog): Promise<void> {
|
|
84
|
+
this.dialog = dialog;
|
|
85
|
+
|
|
86
|
+
this.setEscapeHandler();
|
|
87
|
+
|
|
88
|
+
this.buildDialogData();
|
|
89
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
90
|
+
|
|
91
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
92
|
+
this.dialog.setModel(this.model);
|
|
93
|
+
|
|
94
|
+
this.dialog.open();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
onPageTypeChange() {
|
|
98
|
+
// TODO: to be supported in future releases
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
onNavigationChange(event: Event) {
|
|
102
|
+
const source = event.getSource<ComboBox>();
|
|
103
|
+
const selectedKey = source.getSelectedKey();
|
|
104
|
+
this.model.setProperty('/selectedNavigation/key', selectedKey);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Handles create button press
|
|
109
|
+
*
|
|
110
|
+
* @param event Event
|
|
111
|
+
*/
|
|
112
|
+
async onCreateBtnPress(event: Event) {
|
|
113
|
+
const source = event.getSource<Button>();
|
|
114
|
+
source.setEnabled(false);
|
|
115
|
+
await super.onCreateBtnPressHandler();
|
|
116
|
+
|
|
117
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
118
|
+
const navProperty = this.model.getProperty('/selectedNavigation/key');
|
|
119
|
+
const navigation = this.model.getProperty('/navigationData').find((item) => (item.navProperty = navProperty));
|
|
120
|
+
const targetEntitySet = navigation?.entitySet ?? '';
|
|
121
|
+
|
|
122
|
+
const pageDescriptor = this.options.pageDescriptor;
|
|
123
|
+
|
|
124
|
+
let modifiedValue;
|
|
125
|
+
if (pageDescriptor.appType === 'fe-v2') {
|
|
126
|
+
modifiedValue = {
|
|
127
|
+
appComponent: pageDescriptor.appComponent,
|
|
128
|
+
changeType: 'appdescr_ui_generic_app_addNewObjectPage',
|
|
129
|
+
reference: this.options.appReference,
|
|
130
|
+
parameters: {
|
|
131
|
+
parentPage: {
|
|
132
|
+
component: pageDescriptor.pageType,
|
|
133
|
+
entitySet: pageDescriptor.entitySet
|
|
134
|
+
},
|
|
135
|
+
childPage: {
|
|
136
|
+
id: `ObjectPage|${navProperty}`,
|
|
137
|
+
definition: {
|
|
138
|
+
entitySet: targetEntitySet,
|
|
139
|
+
navigationProperty: navProperty
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
} else if (pageDescriptor.routePattern) {
|
|
145
|
+
const routePattern = generateRoutePattern(pageDescriptor.routePattern, navProperty, targetEntitySet);
|
|
146
|
+
modifiedValue = {
|
|
147
|
+
appComponent: pageDescriptor.appComponent,
|
|
148
|
+
changeType: 'appdescr_fe_addNewPage',
|
|
149
|
+
reference: this.options.appReference,
|
|
150
|
+
parameters: {
|
|
151
|
+
sourcePage: {
|
|
152
|
+
id: pageDescriptor.pageId,
|
|
153
|
+
navigationSource: navProperty
|
|
154
|
+
},
|
|
155
|
+
targetPage: {
|
|
156
|
+
type: 'Component',
|
|
157
|
+
id: `${targetEntitySet}ObjectPage`,
|
|
158
|
+
name: 'sap.fe.templates.ObjectPage',
|
|
159
|
+
routePattern,
|
|
160
|
+
settings: {
|
|
161
|
+
contextPath: `/${targetEntitySet}`,
|
|
162
|
+
editableHeaderContent: false,
|
|
163
|
+
entitySet: targetEntitySet,
|
|
164
|
+
pageLayout: '',
|
|
165
|
+
controlConfiguration: {}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const command = await CommandFactory.getCommandFor(
|
|
173
|
+
this.getRuntimeControl(),
|
|
174
|
+
'appDescriptor',
|
|
175
|
+
modifiedValue,
|
|
176
|
+
null,
|
|
177
|
+
flexSettings
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
await this.commandExecutor.pushAndExecuteCommand(command);
|
|
181
|
+
CommunicationService.sendAction(setApplicationRequiresReload(true));
|
|
182
|
+
|
|
183
|
+
this.handleDialogClose();
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Builds data that is used in the dialog
|
|
188
|
+
*/
|
|
189
|
+
buildDialogData(): void {
|
|
190
|
+
this.getControlMetadata(); // is called to fill this.runtimeControl
|
|
191
|
+
|
|
192
|
+
const pageTypeOptions: { key: string; value: string }[] = [
|
|
193
|
+
{ key: 'ObjectPage', value: 'Object Page' },
|
|
194
|
+
{ key: 'CustomPage', value: 'Custom Page' }
|
|
195
|
+
];
|
|
196
|
+
this.model.setProperty('/pageTypeOptions', pageTypeOptions);
|
|
197
|
+
this.model.setProperty('/selectedPageType', pageTypeOptions[0]);
|
|
198
|
+
|
|
199
|
+
const navigationOptions: { key: string; value: string }[] = (
|
|
200
|
+
this.model.getProperty('/navigationData') as { navProperty: string; entitySet: string }[]
|
|
201
|
+
).map((item) => {
|
|
202
|
+
const value =
|
|
203
|
+
item.entitySet === item.navProperty ? item.entitySet : `${item.entitySet} (${item.navProperty})`;
|
|
204
|
+
return { key: item.navProperty, value };
|
|
205
|
+
});
|
|
206
|
+
this.model.setProperty('/navigationOptions', navigationOptions);
|
|
207
|
+
this.model.setProperty('/selectedNavigation', navigationOptions[0]);
|
|
208
|
+
}
|
|
209
|
+
}
|