@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,210 @@
|
|
|
1
|
+
import type Dialog from 'sap/m/Dialog';
|
|
2
|
+
import type UI5Element from 'sap/ui/core/Element';
|
|
3
|
+
import Fragment from 'sap/ui/core/Fragment';
|
|
4
|
+
import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
5
|
+
|
|
6
|
+
import { getTextBundle } from '../i18n';
|
|
7
|
+
|
|
8
|
+
import type { AddFragmentOptions } from './controllers/AddFragment.controller';
|
|
9
|
+
import AddFragment from './controllers/AddFragment.controller';
|
|
10
|
+
import AddTableColumnFragments from './controllers/AddTableColumnFragments.controller';
|
|
11
|
+
import ControllerExtension from './controllers/ControllerExtension.controller';
|
|
12
|
+
import ExtensionPoint from './controllers/ExtensionPoint.controller';
|
|
13
|
+
|
|
14
|
+
import type { ExtensionPointData } from './extension-point';
|
|
15
|
+
import { AddFragmentData } from './add-fragment';
|
|
16
|
+
import { ExtendControllerData } from './extend-controller';
|
|
17
|
+
import FileExistsDialog, { FileExistsDialogOptions } from './controllers/FileExistsDialog.controller';
|
|
18
|
+
import AddSubpage, { AddSubpageOptions } from './controllers/AddSubpage.controller';
|
|
19
|
+
import { QuickActionTelemetryData } from '../cpe/quick-actions/quick-action-definition';
|
|
20
|
+
import AddCustomFragment, { AddCustomFragmentOptions } from './controllers/AddCustomFragment.controller';
|
|
21
|
+
import AddActionFragment, { AddActionOptions } from './controllers/AddActionFragment.controller';
|
|
22
|
+
|
|
23
|
+
export const enum DialogNames {
|
|
24
|
+
ADD_FRAGMENT = 'AddFragment',
|
|
25
|
+
ADD_ACTION = 'AddAction',
|
|
26
|
+
ADD_TABLE_COLUMN_FRAGMENTS = 'AddTableColumnFragments',
|
|
27
|
+
CONTROLLER_EXTENSION = 'ControllerExtension',
|
|
28
|
+
ADD_FRAGMENT_AT_EXTENSION_POINT = 'ExtensionPoint',
|
|
29
|
+
ADD_CUSTOM_FRAGMENT = 'AddCustomFragment',
|
|
30
|
+
FILE_EXISTS = 'FileExistsDialog',
|
|
31
|
+
ADD_SUBPAGE = 'AddSubpage'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
type Controller =
|
|
35
|
+
| AddFragment
|
|
36
|
+
| AddTableColumnFragments
|
|
37
|
+
| AddActionFragment
|
|
38
|
+
| ControllerExtension
|
|
39
|
+
| ExtensionPoint
|
|
40
|
+
| FileExistsDialog
|
|
41
|
+
| AddSubpage
|
|
42
|
+
| AddCustomFragment;
|
|
43
|
+
|
|
44
|
+
type DialogData = ExtensionPointData | AddFragmentData | ExtendControllerData;
|
|
45
|
+
|
|
46
|
+
export const OPEN_DIALOG_STATUS_CHANGED = 'OPEN_DIALOG_STATUS_CHANGED';
|
|
47
|
+
|
|
48
|
+
export class DialogFactory {
|
|
49
|
+
private static readonly eventTarget = new EventTarget();
|
|
50
|
+
private static isDialogOpen = false;
|
|
51
|
+
/**
|
|
52
|
+
* Only one dialog can be open at a time. This flag indicates if a new dialog can be opened.
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
public static get canOpenDialog(): boolean {
|
|
56
|
+
return !this.isDialogOpen;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Factory method for creating a new dialog.
|
|
61
|
+
*
|
|
62
|
+
* @param overlay - Control overlay.
|
|
63
|
+
* @param rta - Runtime Authoring instance.
|
|
64
|
+
* @param dialogName - Dialog name.
|
|
65
|
+
* @param data - Data to be passed to the dialog.
|
|
66
|
+
* @param options - Dialog options.
|
|
67
|
+
* @param telemetryData - Telemetry data.
|
|
68
|
+
*/
|
|
69
|
+
public static async createDialog(
|
|
70
|
+
overlay: UI5Element,
|
|
71
|
+
rta: RuntimeAuthoring,
|
|
72
|
+
dialogName: DialogNames,
|
|
73
|
+
data?: DialogData,
|
|
74
|
+
options:
|
|
75
|
+
| Partial<AddFragmentOptions>
|
|
76
|
+
| Partial<FileExistsDialogOptions>
|
|
77
|
+
| AddCustomFragmentOptions
|
|
78
|
+
| AddActionOptions
|
|
79
|
+
| AddSubpageOptions = {},
|
|
80
|
+
telemetryData?: QuickActionTelemetryData
|
|
81
|
+
): Promise<void> {
|
|
82
|
+
if (this.isDialogOpen) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
let controller: Controller;
|
|
86
|
+
const resources = await getTextBundle();
|
|
87
|
+
|
|
88
|
+
switch (dialogName) {
|
|
89
|
+
case DialogNames.ADD_FRAGMENT:
|
|
90
|
+
controller = new AddFragment(
|
|
91
|
+
`open.ux.preview.client.adp.controllers.${dialogName}`,
|
|
92
|
+
overlay,
|
|
93
|
+
rta,
|
|
94
|
+
{
|
|
95
|
+
...('aggregation' in options && { aggregation: options.aggregation }),
|
|
96
|
+
...('defaultAggregationArrayIndex' in options && {
|
|
97
|
+
defaultAggregationArrayIndex: options.defaultAggregationArrayIndex
|
|
98
|
+
}),
|
|
99
|
+
title: resources.getText(options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE')
|
|
100
|
+
},
|
|
101
|
+
data as AddFragmentData,
|
|
102
|
+
telemetryData
|
|
103
|
+
);
|
|
104
|
+
break;
|
|
105
|
+
case DialogNames.ADD_CUSTOM_FRAGMENT:
|
|
106
|
+
controller = new AddCustomFragment(
|
|
107
|
+
`open.ux.preview.client.adp.controllers.${dialogName}`,
|
|
108
|
+
overlay,
|
|
109
|
+
rta,
|
|
110
|
+
{
|
|
111
|
+
...options,
|
|
112
|
+
title: resources.getText(options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE')
|
|
113
|
+
} as AddCustomFragmentOptions
|
|
114
|
+
);
|
|
115
|
+
break;
|
|
116
|
+
case DialogNames.ADD_ACTION:
|
|
117
|
+
controller = new AddActionFragment(
|
|
118
|
+
`open.ux.preview.client.adp.controllers.${dialogName}`,
|
|
119
|
+
overlay,
|
|
120
|
+
rta,
|
|
121
|
+
{
|
|
122
|
+
...options,
|
|
123
|
+
title: resources.getText(options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE')
|
|
124
|
+
} as AddActionOptions
|
|
125
|
+
);
|
|
126
|
+
break;
|
|
127
|
+
case DialogNames.ADD_TABLE_COLUMN_FRAGMENTS:
|
|
128
|
+
controller = new AddTableColumnFragments(
|
|
129
|
+
`open.ux.preview.client.adp.controllers.${dialogName}`,
|
|
130
|
+
overlay,
|
|
131
|
+
rta,
|
|
132
|
+
{
|
|
133
|
+
...('aggregation' in options && { aggregation: options.aggregation }),
|
|
134
|
+
title: resources.getText(options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE')
|
|
135
|
+
},
|
|
136
|
+
telemetryData
|
|
137
|
+
);
|
|
138
|
+
break;
|
|
139
|
+
case DialogNames.CONTROLLER_EXTENSION:
|
|
140
|
+
controller = new ControllerExtension(
|
|
141
|
+
`open.ux.preview.client.adp.controllers.${dialogName}`,
|
|
142
|
+
overlay,
|
|
143
|
+
rta,
|
|
144
|
+
data as ExtendControllerData,
|
|
145
|
+
telemetryData
|
|
146
|
+
);
|
|
147
|
+
break;
|
|
148
|
+
case DialogNames.ADD_FRAGMENT_AT_EXTENSION_POINT:
|
|
149
|
+
controller = new ExtensionPoint(
|
|
150
|
+
`open.ux.preview.client.adp.controllers.${dialogName}`,
|
|
151
|
+
overlay,
|
|
152
|
+
rta,
|
|
153
|
+
data as ExtensionPointData
|
|
154
|
+
);
|
|
155
|
+
break;
|
|
156
|
+
case DialogNames.FILE_EXISTS:
|
|
157
|
+
controller = new FileExistsDialog(
|
|
158
|
+
`open.ux.preview.client.adp.controllers.${dialogName}`,
|
|
159
|
+
options as FileExistsDialogOptions
|
|
160
|
+
);
|
|
161
|
+
break;
|
|
162
|
+
case DialogNames.ADD_SUBPAGE:
|
|
163
|
+
controller = new AddSubpage(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, {
|
|
164
|
+
...options,
|
|
165
|
+
title: resources.getText(options.title ?? 'ADD_SUB_PAGE_DIALOG_TITLE')
|
|
166
|
+
} as AddSubpageOptions);
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const id = dialogName === DialogNames.ADD_FRAGMENT_AT_EXTENSION_POINT ? `dialog--${dialogName}` : undefined;
|
|
171
|
+
|
|
172
|
+
const dialog = (await Fragment.load({
|
|
173
|
+
name: `open.ux.preview.client.adp.ui.${dialogName}`,
|
|
174
|
+
controller,
|
|
175
|
+
id
|
|
176
|
+
})) as Dialog;
|
|
177
|
+
|
|
178
|
+
this.isDialogOpen = true;
|
|
179
|
+
dialog.attachBeforeClose(() => {
|
|
180
|
+
this.updateStatus(false);
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
await controller.setup(dialog);
|
|
184
|
+
this.updateStatus(true);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Updates open dialog status.
|
|
189
|
+
*
|
|
190
|
+
* @param isDialogOpen Flag indicating if there is an open dialog.
|
|
191
|
+
*/
|
|
192
|
+
private static updateStatus(isDialogOpen: boolean) {
|
|
193
|
+
this.isDialogOpen = isDialogOpen;
|
|
194
|
+
const event = new CustomEvent(OPEN_DIALOG_STATUS_CHANGED);
|
|
195
|
+
this.eventTarget.dispatchEvent(event);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Attach event handler for OPEN_DIALOG_STATUS_CHANGED event.
|
|
200
|
+
*
|
|
201
|
+
* @param handler Event handler.
|
|
202
|
+
* @returns Function that removes listener.
|
|
203
|
+
*/
|
|
204
|
+
public static onOpenDialogStatusChange(handler: (event: CustomEvent) => void | Promise<void>): () => void {
|
|
205
|
+
this.eventTarget.addEventListener(OPEN_DIALOG_STATUS_CHANGED, handler as EventListener);
|
|
206
|
+
return () => {
|
|
207
|
+
this.eventTarget.removeEventListener(OPEN_DIALOG_STATUS_CHANGED, handler as EventListener);
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/rta/command/CommandFactory", "./utils", "./dialog-factory", "sap/ui/rta/plugin/ExtendControllerPlugin"], function (CommandFactory, ___utils, ___dialog_factory, ExtendController) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const createDeferred = ___utils["createDeferred"];
|
|
7
|
+
const DialogFactory = ___dialog_factory["DialogFactory"];
|
|
8
|
+
const DialogNames = ___dialog_factory["DialogNames"];
|
|
9
|
+
/**
|
|
10
|
+
* Initializes the ExtendControllerPlugin and includes it in the Runtime Authoring (RTA) plugins.
|
|
11
|
+
*
|
|
12
|
+
* @param rta Runtime Authoring instance
|
|
13
|
+
*/
|
|
14
|
+
function initExtendControllerPlugin(rta) {
|
|
15
|
+
const flexSettings = rta.getFlexSettings();
|
|
16
|
+
const commandFactory = new CommandFactory({
|
|
17
|
+
flexSettings
|
|
18
|
+
});
|
|
19
|
+
const plugin = new ExtendController({
|
|
20
|
+
commandFactory,
|
|
21
|
+
handlerFunction: async overlay => await handlerFunction(rta, overlay)
|
|
22
|
+
});
|
|
23
|
+
const plugins = rta.getPlugins();
|
|
24
|
+
plugins.extendControllerPlugin = plugin;
|
|
25
|
+
rta.setPlugins(plugins);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Handles the creation of a controller extension by opening a dialog and resolving the deferred data.
|
|
30
|
+
*
|
|
31
|
+
* @param rta Runtime Authoring instance
|
|
32
|
+
* @param overlay UI5 Element overlay
|
|
33
|
+
* @returns A promise that resolves with DeferredXmlFragmentData
|
|
34
|
+
*/
|
|
35
|
+
async function handlerFunction(rta, overlay) {
|
|
36
|
+
const deferred = createDeferred();
|
|
37
|
+
await DialogFactory.createDialog(overlay, rta, DialogNames.CONTROLLER_EXTENSION, {
|
|
38
|
+
deferred
|
|
39
|
+
});
|
|
40
|
+
return deferred.promise;
|
|
41
|
+
}
|
|
42
|
+
var __exports = {
|
|
43
|
+
__esModule: true
|
|
44
|
+
};
|
|
45
|
+
__exports.initExtendControllerPlugin = initExtendControllerPlugin;
|
|
46
|
+
return __exports;
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=extend-controller.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
2
|
+
import type UI5Element from 'sap/ui/core/Element';
|
|
3
|
+
import CommandFactory from 'sap/ui/rta/command/CommandFactory';
|
|
4
|
+
import { Deferred, createDeferred } from './utils';
|
|
5
|
+
import { DialogFactory, DialogNames } from './dialog-factory';
|
|
6
|
+
import ExtendController from 'sap/ui/rta/plugin/ExtendControllerPlugin';
|
|
7
|
+
|
|
8
|
+
export interface ExtendControllerData {
|
|
9
|
+
deferred: Deferred<DeferredExtendControllerData>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type DeferredExtendControllerData = {
|
|
13
|
+
codeRef: string;
|
|
14
|
+
viewId: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Initializes the ExtendControllerPlugin and includes it in the Runtime Authoring (RTA) plugins.
|
|
19
|
+
*
|
|
20
|
+
* @param rta Runtime Authoring instance
|
|
21
|
+
*/
|
|
22
|
+
export function initExtendControllerPlugin(rta: RuntimeAuthoring): void {
|
|
23
|
+
const flexSettings = rta.getFlexSettings();
|
|
24
|
+
const commandFactory = new CommandFactory({ flexSettings });
|
|
25
|
+
|
|
26
|
+
const plugin = new ExtendController({
|
|
27
|
+
commandFactory,
|
|
28
|
+
handlerFunction: async (overlay: UI5Element) => await handlerFunction(rta, overlay)
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const plugins = rta.getPlugins();
|
|
32
|
+
plugins.extendControllerPlugin = plugin;
|
|
33
|
+
rta.setPlugins(plugins);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Handles the creation of a controller extension by opening a dialog and resolving the deferred data.
|
|
38
|
+
*
|
|
39
|
+
* @param rta Runtime Authoring instance
|
|
40
|
+
* @param overlay UI5 Element overlay
|
|
41
|
+
* @returns A promise that resolves with DeferredXmlFragmentData
|
|
42
|
+
*/
|
|
43
|
+
async function handlerFunction(rta: RuntimeAuthoring, overlay: UI5Element): Promise<DeferredExtendControllerData> {
|
|
44
|
+
const deferred = createDeferred<DeferredExtendControllerData>();
|
|
45
|
+
|
|
46
|
+
await DialogFactory.createDialog(overlay, rta, DialogNames.CONTROLLER_EXTENSION, { deferred });
|
|
47
|
+
|
|
48
|
+
return deferred.promise;
|
|
49
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/rta/plugin/AddXMLAtExtensionPoint", "sap/ui/rta/command/CommandFactory", "open/ux/preview/client/thirdparty/@sap-ux-private/control-property-editor-common", "./utils", "./dialog-factory", "../cpe/communication-service"], function (AddXMLAtExtensionPoint, CommandFactory, ___sap_ux_private_control_property_editor_common, ___utils, ___dialog_factory, ___cpe_communication_service) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const addExtensionPoint = ___sap_ux_private_control_property_editor_common["addExtensionPoint"];
|
|
7
|
+
const createDeferred = ___utils["createDeferred"];
|
|
8
|
+
const DialogFactory = ___dialog_factory["DialogFactory"];
|
|
9
|
+
const DialogNames = ___dialog_factory["DialogNames"];
|
|
10
|
+
const CommunicationService = ___cpe_communication_service["CommunicationService"];
|
|
11
|
+
class ExtensionPointService {
|
|
12
|
+
actionId = 'CTX_ADDXML_AT_EXTENSIONPOINT';
|
|
13
|
+
/**
|
|
14
|
+
* @param rta Runtime Authoring
|
|
15
|
+
*/
|
|
16
|
+
constructor(rta) {
|
|
17
|
+
this.rta = rta;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Initializes communication with CPE, and the extension point plugin.
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
init() {
|
|
25
|
+
this.initPlugin();
|
|
26
|
+
CommunicationService.subscribe(async action => {
|
|
27
|
+
if (addExtensionPoint.match(action)) {
|
|
28
|
+
try {
|
|
29
|
+
const {
|
|
30
|
+
controlId,
|
|
31
|
+
name
|
|
32
|
+
} = action.payload;
|
|
33
|
+
const suffix = `--${name}`;
|
|
34
|
+
const baseControlId = controlId.endsWith(suffix) ? controlId.slice(0, -suffix.length) : controlId;
|
|
35
|
+
const service = await this.rta.getService('action');
|
|
36
|
+
service.execute(baseControlId, this.actionId);
|
|
37
|
+
this.selectedExtensionPointName = name;
|
|
38
|
+
} catch {
|
|
39
|
+
throw new Error(`Failed to execute service with actionId: ${this.actionId}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Initializes Add XML at Extension Point plugin and adds it to the default RTA plugins.
|
|
47
|
+
*/
|
|
48
|
+
initPlugin() {
|
|
49
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
50
|
+
const commandFactory = new CommandFactory({
|
|
51
|
+
flexSettings
|
|
52
|
+
});
|
|
53
|
+
const plugin = new AddXMLAtExtensionPoint({
|
|
54
|
+
commandFactory,
|
|
55
|
+
fragmentHandler: async (overlay, info) => await this.fragmentHandler(overlay, info)
|
|
56
|
+
});
|
|
57
|
+
const plugins = this.rta.getPlugins();
|
|
58
|
+
plugins.addXMLAtExtensionPoint = plugin;
|
|
59
|
+
this.rta.setPlugins(plugins);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Handler function for AddXMLAtExtensionPoint plugin.
|
|
64
|
+
*
|
|
65
|
+
* @param overlay UI5 Element overlay
|
|
66
|
+
* @param info Extension point data from the plugin
|
|
67
|
+
* @returns Deferred extension point data that is provided to the plugin
|
|
68
|
+
*/
|
|
69
|
+
async fragmentHandler(overlay, info) {
|
|
70
|
+
const deferred = createDeferred();
|
|
71
|
+
const name = this.selectedExtensionPointName;
|
|
72
|
+
await DialogFactory.createDialog(overlay, this.rta, DialogNames.ADD_FRAGMENT_AT_EXTENSION_POINT, {
|
|
73
|
+
name,
|
|
74
|
+
info,
|
|
75
|
+
deferred
|
|
76
|
+
});
|
|
77
|
+
this.selectedExtensionPointName = '';
|
|
78
|
+
return deferred.promise;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return ExtensionPointService;
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=extension-point.js.map
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type View from 'sap/ui/core/mvc/View';
|
|
2
|
+
import type UI5Element from 'sap/ui/core/Element';
|
|
3
|
+
import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
4
|
+
import AddXMLAtExtensionPoint from 'sap/ui/rta/plugin/AddXMLAtExtensionPoint';
|
|
5
|
+
import CommandFactory from 'sap/ui/rta/command/CommandFactory';
|
|
6
|
+
|
|
7
|
+
import type { ExternalAction } from '@sap-ux-private/control-property-editor-common';
|
|
8
|
+
import { addExtensionPoint } from '@sap-ux-private/control-property-editor-common';
|
|
9
|
+
|
|
10
|
+
import type { Deferred } from './utils';
|
|
11
|
+
import { createDeferred } from './utils';
|
|
12
|
+
import { DialogFactory, DialogNames } from './dialog-factory';
|
|
13
|
+
|
|
14
|
+
import { CommunicationService } from '../cpe/communication-service';
|
|
15
|
+
|
|
16
|
+
type ActionService = {
|
|
17
|
+
execute: (controlId: string, actionId: string) => void;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
type DeferredExtPointData = {
|
|
21
|
+
fragmentPath: string;
|
|
22
|
+
extensionPointName: string | undefined;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export interface ExtensionPointInfo {
|
|
26
|
+
name: string;
|
|
27
|
+
index?: number;
|
|
28
|
+
view?: View;
|
|
29
|
+
createdControls: string[];
|
|
30
|
+
fragmentId?: string;
|
|
31
|
+
aggregation?: string[];
|
|
32
|
+
aggregationName?: string;
|
|
33
|
+
defaultContent: UI5Element[];
|
|
34
|
+
targetControl?: UI5Element;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface ExtensionPointData {
|
|
38
|
+
name: string;
|
|
39
|
+
deferred: Deferred<DeferredExtPointData>;
|
|
40
|
+
info: ExtensionPointInfo[];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default class ExtensionPointService {
|
|
44
|
+
private readonly actionId = 'CTX_ADDXML_AT_EXTENSIONPOINT';
|
|
45
|
+
private selectedExtensionPointName: string;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @param rta Runtime Authoring
|
|
49
|
+
*/
|
|
50
|
+
constructor(private readonly rta: RuntimeAuthoring) {}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Initializes communication with CPE, and the extension point plugin.
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
public init() {
|
|
57
|
+
this.initPlugin();
|
|
58
|
+
CommunicationService.subscribe(async (action: ExternalAction): Promise<void> => {
|
|
59
|
+
if (addExtensionPoint.match(action)) {
|
|
60
|
+
try {
|
|
61
|
+
const { controlId, name } = action.payload;
|
|
62
|
+
|
|
63
|
+
const suffix = `--${name}`;
|
|
64
|
+
const baseControlId = controlId.endsWith(suffix) ? controlId.slice(0, -suffix.length) : controlId;
|
|
65
|
+
const service = await this.rta.getService<ActionService>('action');
|
|
66
|
+
|
|
67
|
+
service.execute(baseControlId, this.actionId);
|
|
68
|
+
this.selectedExtensionPointName = name;
|
|
69
|
+
} catch {
|
|
70
|
+
throw new Error(`Failed to execute service with actionId: ${this.actionId}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Initializes Add XML at Extension Point plugin and adds it to the default RTA plugins.
|
|
78
|
+
*/
|
|
79
|
+
public initPlugin() {
|
|
80
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
81
|
+
const commandFactory = new CommandFactory({
|
|
82
|
+
flexSettings
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
const plugin = new AddXMLAtExtensionPoint({
|
|
86
|
+
commandFactory,
|
|
87
|
+
fragmentHandler: async (overlay: UI5Element, info: ExtensionPointInfo[]) =>
|
|
88
|
+
await this.fragmentHandler(overlay, info)
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
const plugins = this.rta.getPlugins();
|
|
92
|
+
plugins.addXMLAtExtensionPoint = plugin;
|
|
93
|
+
this.rta.setPlugins(plugins);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Handler function for AddXMLAtExtensionPoint plugin.
|
|
98
|
+
*
|
|
99
|
+
* @param overlay UI5 Element overlay
|
|
100
|
+
* @param info Extension point data from the plugin
|
|
101
|
+
* @returns Deferred extension point data that is provided to the plugin
|
|
102
|
+
*/
|
|
103
|
+
public async fragmentHandler(overlay: UI5Element, info: ExtensionPointInfo[]): Promise<DeferredExtPointData> {
|
|
104
|
+
const deferred = createDeferred<DeferredExtPointData>();
|
|
105
|
+
const name = this.selectedExtensionPointName;
|
|
106
|
+
|
|
107
|
+
await DialogFactory.createDialog(overlay, this.rta, DialogNames.ADD_FRAGMENT_AT_EXTENSION_POINT, {
|
|
108
|
+
name,
|
|
109
|
+
info,
|
|
110
|
+
deferred
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
this.selectedExtensionPointName = '';
|
|
114
|
+
return deferred.promise;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/rta/util/hasStableId", "sap/ui/fl/Utils", "./dialog-factory", "../i18n", "./utils", "./sync-views-utils"], function (hasStableId, FlUtils, ___dialog_factory, ___i18n, ___utils, ___sync_views_utils) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const DialogFactory = ___dialog_factory["DialogFactory"];
|
|
7
|
+
const DialogNames = ___dialog_factory["DialogNames"];
|
|
8
|
+
const getTextBundle = ___i18n["getTextBundle"];
|
|
9
|
+
const getReuseComponentChecker = ___utils["getReuseComponentChecker"];
|
|
10
|
+
const getSyncViewIds = ___sync_views_utils["getSyncViewIds"];
|
|
11
|
+
/**
|
|
12
|
+
* Handler for enablement of Extend With Controller context menu entry
|
|
13
|
+
*
|
|
14
|
+
* @param control UI5 control.
|
|
15
|
+
* @param isReuseComponent Function to check if the control is a reuse component.
|
|
16
|
+
* @param isCloud Whether the application is running in the cloud
|
|
17
|
+
* @returns boolean whether menu item is enabled or not
|
|
18
|
+
*/
|
|
19
|
+
function isControllerExtensionEnabledForControl(control, isReuseComponent, isCloud) {
|
|
20
|
+
const viewId = FlUtils.getViewForControl(control).getId();
|
|
21
|
+
const syncViewsIds = getSyncViewIds();
|
|
22
|
+
const isControlInSyncView = syncViewsIds.has(viewId);
|
|
23
|
+
if (isCloud) {
|
|
24
|
+
const isClickedControlReuseComponent = isReuseComponent(control.getId());
|
|
25
|
+
return !isControlInSyncView && !isClickedControlReuseComponent;
|
|
26
|
+
}
|
|
27
|
+
return !isControlInSyncView;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Handler for enablement of Extend With Controller context menu entry
|
|
32
|
+
*
|
|
33
|
+
* @param overlays Control overlays
|
|
34
|
+
* @param isReuseComponent Function to check if the control is a reuse component.
|
|
35
|
+
* @param isCloud Whether the application is running in the cloud
|
|
36
|
+
* @returns boolean whether menu item is enabled or not
|
|
37
|
+
*/
|
|
38
|
+
const isControllerExtensionEnabled = (overlays, isReuseComponent, isCloud) => {
|
|
39
|
+
if (overlays.length === 0 || overlays.length > 1) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
return isControllerExtensionEnabledForControl(overlays[0].getElement(), isReuseComponent, isCloud);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Determines whether the fragment command should be enabled based on the provided overlays.
|
|
47
|
+
*
|
|
48
|
+
* @param {ElementOverlay[]} overlays - An array of ElementOverlay objects representing the UI overlays.
|
|
49
|
+
* @param {isReuseComponentApi} isReuseComponent - Function to check if the control is a reuse component.
|
|
50
|
+
* @param {boolean} isCloud - Whether the application is running in the cloud.
|
|
51
|
+
* @returns {boolean} True if the fragment command is enabled, false otherwise.
|
|
52
|
+
*/
|
|
53
|
+
const isFragmentCommandEnabled = (overlays, isReuseComponent, isCloud) => {
|
|
54
|
+
if (overlays.length === 0 || overlays.length > 1) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
const control = overlays[0].getElement();
|
|
58
|
+
const stableId = hasStableId(overlays[0]);
|
|
59
|
+
if (isCloud) {
|
|
60
|
+
return stableId && !isReuseComponent(control.getId());
|
|
61
|
+
}
|
|
62
|
+
return stableId;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Determines the text that should be displayed for the Add Fragment context menu item.
|
|
67
|
+
*
|
|
68
|
+
* @param {ElementOverlay} overlay - An ElementOverlay object representing the UI overlay.
|
|
69
|
+
* @param {isReuseComponentApi} isReuseComponentChecker - Function to check if the control is a reuse component.
|
|
70
|
+
* @param {boolean} isCloud - Whether the application is running in the cloud.
|
|
71
|
+
* @param {TextBundle} resources - The text bundle.
|
|
72
|
+
* @returns {string} The text of the Add Fragment context menu item.
|
|
73
|
+
*/
|
|
74
|
+
const getAddFragmentItemText = (overlay, isReuseComponentChecker, isCloud, resources) => {
|
|
75
|
+
if (isCloud && isReuseComponentChecker(overlay.getElement().getId())) {
|
|
76
|
+
return resources.getText('ADP_ADD_FRAGMENT_MENU_ITEM_REUSE_COMPONENT');
|
|
77
|
+
}
|
|
78
|
+
if (!hasStableId(overlay)) {
|
|
79
|
+
return resources.getText('ADP_ADD_FRAGMENT_MENU_ITEM_UNSTABLE_ID');
|
|
80
|
+
}
|
|
81
|
+
return resources.getText('ADP_ADD_FRAGMENT_MENU_ITEM');
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Determines the text that should be displayed for Controller Extension context menu item.
|
|
86
|
+
*
|
|
87
|
+
* @param {ElementOverlay} overlay - An ElementOverlay object representing the UI overlay.
|
|
88
|
+
* @param {isReuseComponentApi} isReuseComponentChecker - Function to check if the control is a reuse component.
|
|
89
|
+
* @param {boolean} isCloud - Whether the application is running in the cloud.
|
|
90
|
+
* @param {TextBundle} resources - The text bundle.
|
|
91
|
+
* @returns {string} The text of the Add Fragment context menu item.
|
|
92
|
+
*/
|
|
93
|
+
const getExtendControllerItemText = (overlay, isReuseComponentChecker, isCloud, resources) => {
|
|
94
|
+
const viewId = FlUtils.getViewForControl(overlay.getElement()).getId();
|
|
95
|
+
const syncViewsIds = getSyncViewIds();
|
|
96
|
+
if (syncViewsIds.has(viewId)) {
|
|
97
|
+
return resources.getText('ADP_ADD_CONTROLLER_EXTENSION_MENU_ITEM_SYNC_VIEW');
|
|
98
|
+
}
|
|
99
|
+
if (isCloud && isReuseComponentChecker(overlay.getElement().getId())) {
|
|
100
|
+
return resources.getText('ADP_ADD_CONTROLLER_EXTENSION_MENU_ITEM_REUSE_COMPONENT');
|
|
101
|
+
}
|
|
102
|
+
return resources.getText('ADP_ADD_CONTROLLER_EXTENSION_MENU_ITEM');
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Adds a new item to the context menu
|
|
107
|
+
*
|
|
108
|
+
* @param rta Runtime Authoring
|
|
109
|
+
* @param ui5VersionInfo UI5 version information
|
|
110
|
+
*/
|
|
111
|
+
const initDialogs = async (rta, ui5VersionInfo) => {
|
|
112
|
+
const contextMenu = rta.getDefaultPlugins().contextMenu;
|
|
113
|
+
const isCloud = rta.getFlexSettings().isCloud;
|
|
114
|
+
const resources = await getTextBundle();
|
|
115
|
+
const isReuseComponentChecker = await getReuseComponentChecker(ui5VersionInfo);
|
|
116
|
+
contextMenu.addMenuItem({
|
|
117
|
+
id: 'ADD_FRAGMENT',
|
|
118
|
+
text: overlay => getAddFragmentItemText(overlay, isReuseComponentChecker, isCloud, resources),
|
|
119
|
+
handler: async overlays => await DialogFactory.createDialog(overlays[0], rta, DialogNames.ADD_FRAGMENT),
|
|
120
|
+
icon: 'sap-icon://attachment-html',
|
|
121
|
+
enabled: overlays => isFragmentCommandEnabled(overlays, isReuseComponentChecker, isCloud)
|
|
122
|
+
});
|
|
123
|
+
contextMenu.addMenuItem({
|
|
124
|
+
id: 'EXTEND_CONTROLLER',
|
|
125
|
+
text: overlay => getExtendControllerItemText(overlay, isReuseComponentChecker, isCloud, resources),
|
|
126
|
+
handler: async overlays => await DialogFactory.createDialog(overlays[0], rta, DialogNames.CONTROLLER_EXTENSION),
|
|
127
|
+
icon: 'sap-icon://create-form',
|
|
128
|
+
enabled: overlays => isControllerExtensionEnabled(overlays, isReuseComponentChecker, isCloud)
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
var __exports = {
|
|
132
|
+
__esModule: true
|
|
133
|
+
};
|
|
134
|
+
__exports.isControllerExtensionEnabledForControl = isControllerExtensionEnabledForControl;
|
|
135
|
+
__exports.isControllerExtensionEnabled = isControllerExtensionEnabled;
|
|
136
|
+
__exports.isFragmentCommandEnabled = isFragmentCommandEnabled;
|
|
137
|
+
__exports.getAddFragmentItemText = getAddFragmentItemText;
|
|
138
|
+
__exports.getExtendControllerItemText = getExtendControllerItemText;
|
|
139
|
+
__exports.initDialogs = initDialogs;
|
|
140
|
+
return __exports;
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=init-dialogs.js.map
|