@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,408 @@
|
|
|
1
|
+
/** sap.m */
|
|
2
|
+
import Button from 'sap/m/Button';
|
|
3
|
+
import type Dialog from 'sap/m/Dialog';
|
|
4
|
+
import Input from 'sap/m/Input';
|
|
5
|
+
|
|
6
|
+
/** sap.ui.core */
|
|
7
|
+
import type UI5Element from 'sap/ui/core/Element';
|
|
8
|
+
import { ValueState } from 'sap/ui/core/library';
|
|
9
|
+
|
|
10
|
+
/** sap.ui.base */
|
|
11
|
+
import type Event from 'sap/ui/base/Event';
|
|
12
|
+
|
|
13
|
+
/** sap.ui.model */
|
|
14
|
+
import JSONModel from 'sap/ui/model/json/JSONModel';
|
|
15
|
+
|
|
16
|
+
/** sap.ui.rta */
|
|
17
|
+
import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
18
|
+
|
|
19
|
+
/** sap.ui.dt */
|
|
20
|
+
import type ElementOverlay from 'sap/ui/dt/ElementOverlay';
|
|
21
|
+
|
|
22
|
+
import { MessageBarType } from '@sap-ux-private/control-property-editor-common';
|
|
23
|
+
import { QuickActionTelemetryData } from '../../cpe/quick-actions/quick-action-definition';
|
|
24
|
+
import { getResourceModel, getTextBundle, TextBundle } from '../../i18n';
|
|
25
|
+
import { getControlById } from '../../utils/core';
|
|
26
|
+
import { getError } from '../../utils/error';
|
|
27
|
+
import { sendInfoCenterMessage } from '../../utils/info-center-message';
|
|
28
|
+
import { getUi5Version, isLowerThanMinimalUi5Version } from '../../utils/version';
|
|
29
|
+
import type { CodeExtResponse, ControllersResponse } from '../api-handler';
|
|
30
|
+
import { getExistingController, readControllers, writeChange, writeController } from '../api-handler';
|
|
31
|
+
import CommandExecutor from '../command-executor';
|
|
32
|
+
import type { DeferredExtendControllerData, ExtendControllerData } from '../extend-controller';
|
|
33
|
+
import { checkForExistingChange, getControllerInfo } from '../utils';
|
|
34
|
+
import BaseDialog from './BaseDialog.controller';
|
|
35
|
+
|
|
36
|
+
interface ControllerExtensionService {
|
|
37
|
+
add: (codeRef: string, viewId: string) => Promise<{ creation: string }>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
type ControllerList = {
|
|
41
|
+
/**
|
|
42
|
+
* File name without extension
|
|
43
|
+
*/
|
|
44
|
+
controllerName: string;
|
|
45
|
+
}[];
|
|
46
|
+
|
|
47
|
+
type ControllerModel = JSONModel & {
|
|
48
|
+
getProperty(sPath: '/controllersList'): ControllerList;
|
|
49
|
+
getProperty(sPath: '/controllerExists'): boolean;
|
|
50
|
+
getProperty(sPath: '/newControllerName'): string;
|
|
51
|
+
getProperty(sPath: '/viewId'): string;
|
|
52
|
+
getProperty(sPath: '/controllerPath'): string;
|
|
53
|
+
getProperty(sPath: '/controllerExtension'): string;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @namespace open.ux.preview.client.adp.controllers
|
|
58
|
+
*/
|
|
59
|
+
export default class ControllerExtension extends BaseDialog<ControllerModel> {
|
|
60
|
+
/* The minimum version of UI5 framework which supports controller extensions. */
|
|
61
|
+
private static readonly CONTROLLER_EXT_MIN_UI5_VERSION = { major: 1, minor: 135 };
|
|
62
|
+
public readonly data?: ExtendControllerData;
|
|
63
|
+
private bundle: TextBundle;
|
|
64
|
+
|
|
65
|
+
constructor(
|
|
66
|
+
name: string,
|
|
67
|
+
overlays: UI5Element,
|
|
68
|
+
rta: RuntimeAuthoring,
|
|
69
|
+
data?: ExtendControllerData,
|
|
70
|
+
telemetryData?: QuickActionTelemetryData
|
|
71
|
+
) {
|
|
72
|
+
super(name, telemetryData);
|
|
73
|
+
this.rta = rta;
|
|
74
|
+
this.overlays = overlays;
|
|
75
|
+
this.model = new JSONModel();
|
|
76
|
+
this.data = data;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Setups the Dialog and the JSON Model
|
|
81
|
+
*
|
|
82
|
+
* @param {Dialog} dialog - Dialog instance
|
|
83
|
+
*/
|
|
84
|
+
async setup(dialog: Dialog): Promise<void> {
|
|
85
|
+
this.dialog = dialog;
|
|
86
|
+
|
|
87
|
+
this.setEscapeHandler();
|
|
88
|
+
|
|
89
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
90
|
+
this.bundle = await getTextBundle();
|
|
91
|
+
|
|
92
|
+
await this.buildDialogData();
|
|
93
|
+
|
|
94
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
95
|
+
this.dialog.setModel(this.model);
|
|
96
|
+
|
|
97
|
+
this.dialog.open();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Handles fragment name input change
|
|
102
|
+
*
|
|
103
|
+
* @param event Event
|
|
104
|
+
*/
|
|
105
|
+
onControllerNameInputChange(event: Event) {
|
|
106
|
+
const input = event.getSource<Input>();
|
|
107
|
+
const beginBtn = this.dialog.getBeginButton();
|
|
108
|
+
|
|
109
|
+
const controllerName: string = input.getValue();
|
|
110
|
+
const controllerList = this.model.getProperty('/controllersList');
|
|
111
|
+
|
|
112
|
+
const updateDialogState = (valueState: ValueState, valueStateText = '') => {
|
|
113
|
+
input.setValueState(valueState).setValueStateText(valueStateText);
|
|
114
|
+
beginBtn.setEnabled(valueState === ValueState.Success);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
if (controllerName.length <= 0) {
|
|
118
|
+
updateDialogState(ValueState.None);
|
|
119
|
+
this.model.setProperty('/newControllerName', null);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const fileExists = controllerList.some((f) => f.controllerName === controllerName);
|
|
124
|
+
|
|
125
|
+
const pendingChangeExists = checkForExistingChange(
|
|
126
|
+
this.rta,
|
|
127
|
+
'codeExt',
|
|
128
|
+
'content.codeRef',
|
|
129
|
+
`${controllerName}.js`
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
if (fileExists) {
|
|
133
|
+
updateDialogState(
|
|
134
|
+
ValueState.Error,
|
|
135
|
+
'Enter a different name. The controller name that you entered already exists in your project.'
|
|
136
|
+
);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (pendingChangeExists) {
|
|
141
|
+
updateDialogState(
|
|
142
|
+
ValueState.Error,
|
|
143
|
+
'Enter a different name. The controller name that you entered already exists as a pending change.'
|
|
144
|
+
);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const isValidName = /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(controllerName);
|
|
149
|
+
|
|
150
|
+
if (!isValidName) {
|
|
151
|
+
updateDialogState(
|
|
152
|
+
ValueState.Error,
|
|
153
|
+
'The controller name cannot contain white spaces or special characters.'
|
|
154
|
+
);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (controllerName.length > 64) {
|
|
159
|
+
updateDialogState(ValueState.Error, 'A controller file name cannot contain more than 64 characters.');
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
updateDialogState(ValueState.Success);
|
|
164
|
+
this.model.setProperty('/newControllerName', controllerName);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Handles create button press
|
|
169
|
+
*
|
|
170
|
+
* @param event Event
|
|
171
|
+
*/
|
|
172
|
+
async onCreateBtnPress(event: Event) {
|
|
173
|
+
const source = event.getSource<Button>();
|
|
174
|
+
|
|
175
|
+
await super.onCreateBtnPressHandler();
|
|
176
|
+
|
|
177
|
+
const controllerExists = this.model.getProperty('/controllerExists');
|
|
178
|
+
|
|
179
|
+
if (!controllerExists) {
|
|
180
|
+
source.setEnabled(false);
|
|
181
|
+
|
|
182
|
+
const controllerName = this.model.getProperty('/newControllerName');
|
|
183
|
+
const viewId = this.model.getProperty('/viewId');
|
|
184
|
+
|
|
185
|
+
const controllerRef = {
|
|
186
|
+
codeRef: `coding/${controllerName}.js`,
|
|
187
|
+
viewId
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
if (this.data) {
|
|
191
|
+
this.data.deferred.resolve(controllerRef);
|
|
192
|
+
} else {
|
|
193
|
+
await this.createNewController(controllerName, controllerRef);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
if (this.data && (await this.isControllerExtensionSupported())) {
|
|
197
|
+
await sendInfoCenterMessage({
|
|
198
|
+
title: { key: 'ADP_CREATE_CONTROLLER_EXTENSION_TITLE' },
|
|
199
|
+
description: { key: 'ADP_CREATE_CONTROLLER_EXTENSION', params: [controllerName] },
|
|
200
|
+
type: MessageBarType.info
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
} else {
|
|
204
|
+
const controllerPath = this.model.getProperty('/controllerPath');
|
|
205
|
+
window.open(`vscode://file${controllerPath}`);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
this.handleDialogClose();
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Builds data that is used in the dialog.
|
|
213
|
+
*/
|
|
214
|
+
async buildDialogData(): Promise<void> {
|
|
215
|
+
const selectorId = this.overlays.getId();
|
|
216
|
+
const overlayControl = sap.ui.getCore().byId(selectorId) as unknown as ElementOverlay;
|
|
217
|
+
|
|
218
|
+
const { controllerName, viewId } = getControllerInfo(overlayControl);
|
|
219
|
+
const data = await this.getExistingController(controllerName);
|
|
220
|
+
|
|
221
|
+
const hasPendingChangeForView = checkForExistingChange(
|
|
222
|
+
this.rta,
|
|
223
|
+
'codeExt',
|
|
224
|
+
'selector.controllerName',
|
|
225
|
+
controllerName
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
if (data) {
|
|
229
|
+
if (hasPendingChangeForView) {
|
|
230
|
+
this.updateModelForExistingPendingChange();
|
|
231
|
+
} else if (data?.controllerExists) {
|
|
232
|
+
this.updateModelForExistingController(data);
|
|
233
|
+
} else {
|
|
234
|
+
this.updateModelForNewController(viewId, data.isTsSupported);
|
|
235
|
+
|
|
236
|
+
await this.getControllers();
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Updates the model properties for an existing controller.
|
|
242
|
+
*
|
|
243
|
+
* @param {CodeExtResponse} data - Existing controller data from the server.
|
|
244
|
+
*/
|
|
245
|
+
private updateModelForExistingController(data: CodeExtResponse): void {
|
|
246
|
+
const { controllerExists, controllerPath, controllerPathFromRoot, isRunningInBAS } = data;
|
|
247
|
+
|
|
248
|
+
this.model.setProperty('/controllerExists', controllerExists);
|
|
249
|
+
this.model.setProperty('/controllerPath', controllerPath);
|
|
250
|
+
this.model.setProperty('/controllerPathFromRoot', controllerPathFromRoot);
|
|
251
|
+
this.model.setProperty('/inputFormVisibility', false);
|
|
252
|
+
this.model.setProperty('/pendingChangeFormVisibility', false);
|
|
253
|
+
this.model.setProperty('/existingControllerFormVisibility', true);
|
|
254
|
+
|
|
255
|
+
if (isRunningInBAS) {
|
|
256
|
+
this.dialog.getBeginButton().setVisible(false);
|
|
257
|
+
} else {
|
|
258
|
+
this.dialog.getBeginButton().setText('Open in VS Code').setEnabled(true);
|
|
259
|
+
}
|
|
260
|
+
this.dialog.getEndButton().setText('Close');
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Updates the model properties for an existing controller in a pending change.
|
|
265
|
+
*/
|
|
266
|
+
private updateModelForExistingPendingChange(): void {
|
|
267
|
+
this.model.setProperty('/inputFormVisibility', false);
|
|
268
|
+
this.model.setProperty('/existingControllerFormVisibility', false);
|
|
269
|
+
this.model.setProperty('/pendingChangeFormVisibility', true);
|
|
270
|
+
|
|
271
|
+
this.dialog.getBeginButton().setVisible(false);
|
|
272
|
+
this.dialog.getEndButton().setText('Close');
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Updates the model property for a new controller.
|
|
277
|
+
*
|
|
278
|
+
* @param {string} viewId - The view ID.
|
|
279
|
+
* @param {boolean} isTsSupported - Whether TypeScript supported for the current project.
|
|
280
|
+
*/
|
|
281
|
+
private updateModelForNewController(viewId: string, isTsSupported: boolean): void {
|
|
282
|
+
this.model.setProperty('/viewId', viewId);
|
|
283
|
+
this.model.setProperty('/controllerExtension', isTsSupported ? '.ts' : '.js');
|
|
284
|
+
this.model.setProperty('/existingControllerFormVisibility', false);
|
|
285
|
+
this.model.setProperty('/pendingChangeFormVisibility', false);
|
|
286
|
+
this.model.setProperty('/inputFormVisibility', true);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Retrieves existing controller data if found in the project's workspace.
|
|
291
|
+
*
|
|
292
|
+
* @param controllerName Controller name that exists in the view.
|
|
293
|
+
* @returns Returns existing controller data.
|
|
294
|
+
*/
|
|
295
|
+
private async getExistingController(controllerName: string): Promise<CodeExtResponse | undefined> {
|
|
296
|
+
let data: CodeExtResponse | undefined;
|
|
297
|
+
try {
|
|
298
|
+
data = await getExistingController(controllerName);
|
|
299
|
+
} catch (e) {
|
|
300
|
+
const error = getError(e);
|
|
301
|
+
await sendInfoCenterMessage({
|
|
302
|
+
title: { key: 'ADP_CONTROLLER_ERROR_TITLE' },
|
|
303
|
+
description: error.message,
|
|
304
|
+
type: MessageBarType.error
|
|
305
|
+
});
|
|
306
|
+
throw error;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
return data;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Retrieves controller files and fills the model with data
|
|
314
|
+
*/
|
|
315
|
+
async getControllers(): Promise<void> {
|
|
316
|
+
try {
|
|
317
|
+
const { controllers } = await readControllers<ControllersResponse>();
|
|
318
|
+
this.model.setProperty('/controllersList', controllers);
|
|
319
|
+
} catch (e) {
|
|
320
|
+
const error = getError(e);
|
|
321
|
+
await sendInfoCenterMessage({
|
|
322
|
+
title: { key: 'ADP_CONTROLLER_ERROR_TITLE' },
|
|
323
|
+
description: error.message,
|
|
324
|
+
type: MessageBarType.error
|
|
325
|
+
});
|
|
326
|
+
throw error;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Creates a new fragment for the specified control
|
|
332
|
+
*
|
|
333
|
+
* @param controllerName Controller Name
|
|
334
|
+
* @param controllerRef Controller reference
|
|
335
|
+
*/
|
|
336
|
+
private async createNewController(
|
|
337
|
+
controllerName: string,
|
|
338
|
+
controllerRef: DeferredExtendControllerData
|
|
339
|
+
): Promise<void> {
|
|
340
|
+
if (await this.isControllerExtensionSupported()) {
|
|
341
|
+
await this.createControllerCommand(controllerName, controllerRef);
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
try {
|
|
345
|
+
await writeController({ controllerName });
|
|
346
|
+
|
|
347
|
+
const service = await this.rta.getService<ControllerExtensionService>('controllerExtension');
|
|
348
|
+
|
|
349
|
+
const change = await service.add(controllerRef.codeRef, controllerRef.viewId);
|
|
350
|
+
change.creation = new Date().toISOString();
|
|
351
|
+
|
|
352
|
+
await writeChange(change);
|
|
353
|
+
await sendInfoCenterMessage({
|
|
354
|
+
title: { key: 'ADP_CREATE_CONTROLLER_EXTENSION_TITLE' },
|
|
355
|
+
description: {
|
|
356
|
+
key: 'ADP_CREATE_CONTROLLER_EXTENSION_DESCRIPTION',
|
|
357
|
+
params: [controllerName]
|
|
358
|
+
},
|
|
359
|
+
type: MessageBarType.info
|
|
360
|
+
});
|
|
361
|
+
} catch (e) {
|
|
362
|
+
const error = getError(e);
|
|
363
|
+
await sendInfoCenterMessage({
|
|
364
|
+
title: { key: 'ADP_CONTROLLER_ERROR_TITLE' },
|
|
365
|
+
description: error.message,
|
|
366
|
+
type: MessageBarType.error
|
|
367
|
+
});
|
|
368
|
+
// We want to update the model incase we have already created a controller file but failed when creating a change file,
|
|
369
|
+
// so when the user types the same controller name again he does not get 409 from the server, instead an error is shown in the UI
|
|
370
|
+
await this.getControllers();
|
|
371
|
+
throw error;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Creates a controller command and executes it.
|
|
377
|
+
*
|
|
378
|
+
* @param controllerName Controller name
|
|
379
|
+
* @param controllerRef Controller reference
|
|
380
|
+
*/
|
|
381
|
+
private async createControllerCommand(
|
|
382
|
+
controllerName: string,
|
|
383
|
+
controllerRef: DeferredExtendControllerData
|
|
384
|
+
): Promise<void> {
|
|
385
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
386
|
+
const commandExecutor = new CommandExecutor(this.rta);
|
|
387
|
+
const view = getControlById(controllerRef.viewId) as UI5Element;
|
|
388
|
+
const command = await commandExecutor.getCommand<DeferredExtendControllerData>(
|
|
389
|
+
view,
|
|
390
|
+
'codeExt',
|
|
391
|
+
controllerRef,
|
|
392
|
+
flexSettings
|
|
393
|
+
);
|
|
394
|
+
|
|
395
|
+
await commandExecutor.pushAndExecuteCommand(command);
|
|
396
|
+
|
|
397
|
+
await sendInfoCenterMessage({
|
|
398
|
+
title: { key: 'ADP_CREATE_CONTROLLER_EXTENSION_TITLE' },
|
|
399
|
+
description: { key: 'ADP_CREATE_CONTROLLER_EXTENSION', params: [controllerName] },
|
|
400
|
+
type: MessageBarType.info
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
private async isControllerExtensionSupported(): Promise<boolean> {
|
|
405
|
+
const ui5Version = await getUi5Version();
|
|
406
|
+
return !isLowerThanMinimalUi5Version(ui5Version, ControllerExtension.CONTROLLER_EXT_MIN_UI5_VERSION);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/model/json/JSONModel", "open/ux/preview/client/thirdparty/@sap-ux-private/control-property-editor-common", "../../utils/error", "../../utils/info-center-message", "../api-handler", "./BaseDialog.controller"], function (JSONModel, ___sap_ux_private_control_property_editor_common, ____utils_error, ____utils_info_center_message, ___api_handler, __BaseDialog) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function _interopRequireDefault(obj) {
|
|
7
|
+
return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
|
|
8
|
+
}
|
|
9
|
+
const MessageBarType = ___sap_ux_private_control_property_editor_common["MessageBarType"];
|
|
10
|
+
const getError = ____utils_error["getError"];
|
|
11
|
+
const sendInfoCenterMessage = ____utils_info_center_message["sendInfoCenterMessage"];
|
|
12
|
+
const getFragments = ___api_handler["getFragments"];
|
|
13
|
+
const BaseDialog = _interopRequireDefault(__BaseDialog);
|
|
14
|
+
/**
|
|
15
|
+
* @namespace open.ux.preview.client.adp.controllers
|
|
16
|
+
*/
|
|
17
|
+
const ExtensionPoint = BaseDialog.extend("open.ux.preview.client.adp.controllers.ExtensionPoint", {
|
|
18
|
+
constructor: function _constructor(name, _overlays, rta, data) {
|
|
19
|
+
BaseDialog.prototype.constructor.call(this, name);
|
|
20
|
+
this.model = new JSONModel();
|
|
21
|
+
this.data = data;
|
|
22
|
+
this.rta = rta;
|
|
23
|
+
},
|
|
24
|
+
/**
|
|
25
|
+
* Setups the Dialog and the JSON Model
|
|
26
|
+
*
|
|
27
|
+
* @param {Dialog} dialog - Dialog instance
|
|
28
|
+
*/
|
|
29
|
+
setup: async function _setup(dialog) {
|
|
30
|
+
this.dialog = dialog;
|
|
31
|
+
this.setEscapeHandler();
|
|
32
|
+
await this.buildDialogData();
|
|
33
|
+
this.dialog.setModel(this.model);
|
|
34
|
+
this.dialog.open();
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* Handles create button press
|
|
38
|
+
*
|
|
39
|
+
* @param event Event
|
|
40
|
+
*/
|
|
41
|
+
onCreateBtnPress: async function _onCreateBtnPress(event) {
|
|
42
|
+
const source = event.getSource();
|
|
43
|
+
source.setEnabled(false);
|
|
44
|
+
await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
|
|
45
|
+
const fragmentName = this.model.getProperty('/newFragmentName');
|
|
46
|
+
this.createExtensionPointFragmentChange(fragmentName);
|
|
47
|
+
await sendInfoCenterMessage({
|
|
48
|
+
title: {
|
|
49
|
+
key: 'ADP_CREATE_XML_FRAGMENT_TITLE'
|
|
50
|
+
},
|
|
51
|
+
description: {
|
|
52
|
+
key: 'ADP_CREATE_XML_FRAGMENT_DESCRIPTION',
|
|
53
|
+
params: [fragmentName]
|
|
54
|
+
},
|
|
55
|
+
type: MessageBarType.info
|
|
56
|
+
});
|
|
57
|
+
this.handleDialogClose();
|
|
58
|
+
},
|
|
59
|
+
/**
|
|
60
|
+
* Handler for extension point select control
|
|
61
|
+
*
|
|
62
|
+
* @param event Select control change event
|
|
63
|
+
*/
|
|
64
|
+
onExtensionPointHandler: function _onExtensionPointHandler(event) {
|
|
65
|
+
const source = event.getSource();
|
|
66
|
+
const selectedItem = source.getSelectedItem();
|
|
67
|
+
let extensionPointName = '';
|
|
68
|
+
if (selectedItem) {
|
|
69
|
+
extensionPointName = selectedItem.getText();
|
|
70
|
+
}
|
|
71
|
+
this.model.setProperty('/extensionPointName', extensionPointName);
|
|
72
|
+
const hasDefaultContent = this.hasDefaultContentForName(extensionPointName);
|
|
73
|
+
this.model.setProperty('/hasDefaultContent', hasDefaultContent);
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* Determines whether there is default content associated with the given name.
|
|
77
|
+
*
|
|
78
|
+
* @param {string} name - The name to check for associated default content.
|
|
79
|
+
* @returns {boolean} - True if there is non-empty default content associated with the name, false otherwise.
|
|
80
|
+
*/
|
|
81
|
+
hasDefaultContentForName: function _hasDefaultContentForName(name) {
|
|
82
|
+
const defaultContent = this.data?.info.find(v => v.name === name)?.defaultContent;
|
|
83
|
+
return defaultContent ? defaultContent.length > 0 : false;
|
|
84
|
+
},
|
|
85
|
+
/**
|
|
86
|
+
* Builds data that is used in the dialog
|
|
87
|
+
*/
|
|
88
|
+
buildDialogData: async function _buildDialogData() {
|
|
89
|
+
const name = this.data?.name;
|
|
90
|
+
if (name) {
|
|
91
|
+
const hasDefaultContent = this.hasDefaultContentForName(name);
|
|
92
|
+
const extensionPointList = [{
|
|
93
|
+
key: 0,
|
|
94
|
+
value: name
|
|
95
|
+
}];
|
|
96
|
+
this.updateModel(name, 0, extensionPointList, false, hasDefaultContent);
|
|
97
|
+
} else {
|
|
98
|
+
// In this case we are selecting from the application. There can be many extension points under one control.
|
|
99
|
+
const extensionPointList = this.data.info.map((v, idx) => {
|
|
100
|
+
return {
|
|
101
|
+
key: idx,
|
|
102
|
+
value: v.name
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
const firstElName = extensionPointList[0].value;
|
|
106
|
+
const enabled = extensionPointList.length > 1;
|
|
107
|
+
const hasDefaultContent = this.hasDefaultContentForName(firstElName);
|
|
108
|
+
this.updateModel(firstElName, 0, extensionPointList, enabled, hasDefaultContent);
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const {
|
|
112
|
+
fragments
|
|
113
|
+
} = await getFragments();
|
|
114
|
+
this.model.setProperty('/fragmentList', fragments);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
const error = getError(e);
|
|
117
|
+
await sendInfoCenterMessage({
|
|
118
|
+
title: {
|
|
119
|
+
key: 'ADP_EXTENSION_POINT_ERROR_TITLE'
|
|
120
|
+
},
|
|
121
|
+
description: error.message,
|
|
122
|
+
type: MessageBarType.error
|
|
123
|
+
});
|
|
124
|
+
throw error;
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
/**
|
|
128
|
+
* Updates the Select control according to provided values
|
|
129
|
+
*
|
|
130
|
+
* @param name Extension point name
|
|
131
|
+
* @param key Selected extension point key
|
|
132
|
+
* @param list All of the extension points that are under a view
|
|
133
|
+
* @param enabled Enables the select control
|
|
134
|
+
* @param hasDefaultContent Whether there is default content associated with the extension name
|
|
135
|
+
*/
|
|
136
|
+
updateModel: function _updateModel(name, key, list, enabled, hasDefaultContent) {
|
|
137
|
+
this.model.setProperty('/extensionPointName', name);
|
|
138
|
+
this.model.setProperty('/extensionPointKey', key);
|
|
139
|
+
this.model.setProperty('/extensionPointList', list);
|
|
140
|
+
this.model.setProperty('/extensionListEnabled', enabled);
|
|
141
|
+
this.model.setProperty('/hasDefaultContent', hasDefaultContent);
|
|
142
|
+
},
|
|
143
|
+
/**
|
|
144
|
+
* Creates add xml at extension point changes
|
|
145
|
+
*
|
|
146
|
+
* @param fragmentName Fragment name
|
|
147
|
+
*/
|
|
148
|
+
createExtensionPointFragmentChange: function _createExtensionPointFragmentChange(fragmentName) {
|
|
149
|
+
const extensionPointName = this.model.getProperty('/extensionPointName');
|
|
150
|
+
const modifiedValue = {
|
|
151
|
+
fragment: `<core:FragmentDefinition xmlns:core='sap.ui.core'></core:FragmentDefinition>`,
|
|
152
|
+
fragmentPath: `fragments/${fragmentName}.fragment.xml`,
|
|
153
|
+
extensionPointName
|
|
154
|
+
};
|
|
155
|
+
this.data.deferred.resolve(modifiedValue);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
return ExtensionPoint;
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=ExtensionPoint.controller.js.map
|