@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,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define([], function () {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Handles calling control specific functions for retrieving control data
|
|
8
|
+
*/
|
|
9
|
+
class ControlUtils {
|
|
10
|
+
/**
|
|
11
|
+
* Returns ManagedObject runtime control
|
|
12
|
+
*
|
|
13
|
+
* @param overlayControl Overlay
|
|
14
|
+
* @returns {ManagedObject} Managed Object instance
|
|
15
|
+
*/
|
|
16
|
+
static getRuntimeControl(overlayControl) {
|
|
17
|
+
let runtimeControl;
|
|
18
|
+
if (overlayControl.getElementInstance) {
|
|
19
|
+
runtimeControl = overlayControl.getElementInstance();
|
|
20
|
+
} else {
|
|
21
|
+
runtimeControl = overlayControl.getElement();
|
|
22
|
+
}
|
|
23
|
+
return runtimeControl;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Returns control aggregation names in an array
|
|
28
|
+
*
|
|
29
|
+
* @param control Managed Object runtime control
|
|
30
|
+
* @param name Aggregation name
|
|
31
|
+
* @returns Array of control aggregations
|
|
32
|
+
*/
|
|
33
|
+
static getControlAggregationByName(control, name) {
|
|
34
|
+
let result = [];
|
|
35
|
+
const aggregation = (control ? control.getMetadata().getAllAggregations() : {})[name];
|
|
36
|
+
if (aggregation) {
|
|
37
|
+
// This executes a _sGetter function that can vary from control to control (_sGetter can be: getContent, getItems, etc)
|
|
38
|
+
const names = aggregation._sGetter && control[aggregation._sGetter]() || [];
|
|
39
|
+
result = Array.isArray(names) ? names : [names];
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return ControlUtils;
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=control-utils.js.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type ElementOverlay from 'sap/ui/dt/ElementOverlay';
|
|
2
|
+
import type ManagedObject from 'sap/ui/base/ManagedObject';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Handles calling control specific functions for retrieving control data
|
|
6
|
+
*/
|
|
7
|
+
export default class ControlUtils {
|
|
8
|
+
/**
|
|
9
|
+
* Returns ManagedObject runtime control
|
|
10
|
+
*
|
|
11
|
+
* @param overlayControl Overlay
|
|
12
|
+
* @returns {ManagedObject} Managed Object instance
|
|
13
|
+
*/
|
|
14
|
+
public static getRuntimeControl(overlayControl: ElementOverlay): ManagedObject {
|
|
15
|
+
let runtimeControl;
|
|
16
|
+
if (overlayControl.getElementInstance) {
|
|
17
|
+
runtimeControl = overlayControl.getElementInstance();
|
|
18
|
+
} else {
|
|
19
|
+
runtimeControl = overlayControl.getElement();
|
|
20
|
+
}
|
|
21
|
+
return runtimeControl;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns control aggregation names in an array
|
|
26
|
+
*
|
|
27
|
+
* @param control Managed Object runtime control
|
|
28
|
+
* @param name Aggregation name
|
|
29
|
+
* @returns Array of control aggregations
|
|
30
|
+
*/
|
|
31
|
+
public static getControlAggregationByName(control: ManagedObject, name: string): unknown[] {
|
|
32
|
+
let result: unknown[] = [];
|
|
33
|
+
const aggregation = (control ? control.getMetadata().getAllAggregations() : {})[name] as unknown as object & {
|
|
34
|
+
_sGetter: string;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
if (aggregation) {
|
|
38
|
+
// This executes a _sGetter function that can vary from control to control (_sGetter can be: getContent, getItems, etc)
|
|
39
|
+
const names =
|
|
40
|
+
(aggregation._sGetter &&
|
|
41
|
+
(control as ManagedObject & { [key: string]: () => unknown })[aggregation._sGetter]()) ||
|
|
42
|
+
[];
|
|
43
|
+
|
|
44
|
+
result = Array.isArray(names) ? names : [names];
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["./BaseDialog.controller", "sap/ui/model/json/JSONModel", "../../i18n", "open/ux/preview/client/thirdparty/@sap-ux-private/control-property-editor-common", "../../utils/info-center-message", "../command-executor", "../../utils/error", "sap/ui/core/library"], function (__BaseDialog, JSONModel, ____i18n, ___sap_ux_private_control_property_editor_common, ____utils_info_center_message, __CommandExecutor, ____utils_error, sap_ui_core_library) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function _interopRequireDefault(obj) {
|
|
7
|
+
return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
|
|
8
|
+
}
|
|
9
|
+
const BaseDialog = _interopRequireDefault(__BaseDialog);
|
|
10
|
+
const getResourceModel = ____i18n["getResourceModel"];
|
|
11
|
+
const getTextBundle = ____i18n["getTextBundle"];
|
|
12
|
+
const MessageBarType = ___sap_ux_private_control_property_editor_common["MessageBarType"];
|
|
13
|
+
const sendInfoCenterMessage = ____utils_info_center_message["sendInfoCenterMessage"];
|
|
14
|
+
const CommandExecutor = _interopRequireDefault(__CommandExecutor);
|
|
15
|
+
const getError = ____utils_error["getError"];
|
|
16
|
+
const ValueState = sap_ui_core_library["ValueState"];
|
|
17
|
+
/**
|
|
18
|
+
* Validates Action ID input.
|
|
19
|
+
*
|
|
20
|
+
* @param input control of action ID to validate
|
|
21
|
+
* @param resource text bundle for messages
|
|
22
|
+
* @param validateForDuplicateId custom validation function
|
|
23
|
+
* @return validation result
|
|
24
|
+
*/
|
|
25
|
+
function validateActionId(input, resource, validateForDuplicateId) {
|
|
26
|
+
const actionId = input.getValue();
|
|
27
|
+
// Check if empty
|
|
28
|
+
if (!actionId || actionId.trim().length === 0) {
|
|
29
|
+
return {
|
|
30
|
+
isValid: false,
|
|
31
|
+
errorMessage: resource.getText('ACTION_ID_REQUIRED')
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (typeof validateForDuplicateId === 'function' && !validateForDuplicateId(actionId)) {
|
|
35
|
+
return {
|
|
36
|
+
isValid: false,
|
|
37
|
+
errorMessage: resource.getText('ACTION_WITH_GIVEN_ID_ALREADY_EXISTS', [actionId])
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Check starts and only allowed characters
|
|
42
|
+
if (!/(^([A-Za-z_][-A-Za-z0-9_.:]*)$)/.test(actionId)) {
|
|
43
|
+
return {
|
|
44
|
+
isValid: false,
|
|
45
|
+
errorMessage: resource.getText('ID_INVALID_FORMAT', ['Action'])
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
isValid: true,
|
|
50
|
+
errorMessage: ''
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const AddActionFragment = BaseDialog.extend("src.adp.controllers.AddActionFragment", {
|
|
54
|
+
constructor: function _constructor(name, overlays, rta, options, telemetryData) {
|
|
55
|
+
BaseDialog.prototype.constructor.call(this, name, telemetryData);
|
|
56
|
+
this.options = options;
|
|
57
|
+
this.rta = rta;
|
|
58
|
+
this.overlays = overlays;
|
|
59
|
+
this.model = new JSONModel({
|
|
60
|
+
title: options.title
|
|
61
|
+
});
|
|
62
|
+
this.commandExecutor = new CommandExecutor(this.rta);
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* Setups the Dialog and the JSON Model
|
|
66
|
+
*
|
|
67
|
+
* @param {Dialog} dialog - Dialog instance
|
|
68
|
+
*/
|
|
69
|
+
setup: async function _setup(dialog) {
|
|
70
|
+
this.dialog = dialog;
|
|
71
|
+
this.setEscapeHandler();
|
|
72
|
+
this.bundle = await getTextBundle();
|
|
73
|
+
await this.buildDialogData();
|
|
74
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
75
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
76
|
+
this.dialog.setModel(this.model);
|
|
77
|
+
this.dialog.open();
|
|
78
|
+
},
|
|
79
|
+
/**
|
|
80
|
+
* Handles create button press
|
|
81
|
+
*
|
|
82
|
+
* @param event Event
|
|
83
|
+
*/
|
|
84
|
+
onCreateBtnPress: async function _onCreateBtnPress(event) {
|
|
85
|
+
const source = event.getSource();
|
|
86
|
+
source.setEnabled(false);
|
|
87
|
+
await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
|
|
88
|
+
const actionId = this.model.getProperty('/actionId');
|
|
89
|
+
const buttonText = this.model.getProperty('/buttonText');
|
|
90
|
+
await this.createAppDescriptorChangeForV4(`${this.options.propertyPath}${actionId}`, buttonText);
|
|
91
|
+
this.handleDialogClose();
|
|
92
|
+
},
|
|
93
|
+
/**
|
|
94
|
+
* Builds data that is used in the dialog
|
|
95
|
+
*/
|
|
96
|
+
buildDialogData: async function _buildDialogData() {
|
|
97
|
+
try {
|
|
98
|
+
let hasController = false;
|
|
99
|
+
if (this.options.controllerReference) {
|
|
100
|
+
this.model.setProperty('/handlerReference', this.options.controllerReference);
|
|
101
|
+
hasController = true;
|
|
102
|
+
}
|
|
103
|
+
this.model.setProperty('/hasController', hasController);
|
|
104
|
+
} catch (e) {
|
|
105
|
+
const error = getError(e);
|
|
106
|
+
await sendInfoCenterMessage({
|
|
107
|
+
title: {
|
|
108
|
+
key: 'ADP_GET_FRAGMENTS_FAILURE_TITLE'
|
|
109
|
+
},
|
|
110
|
+
description: error.message,
|
|
111
|
+
type: MessageBarType.error
|
|
112
|
+
});
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
/**
|
|
117
|
+
* Checks input values for duplicates and updates confirmation button state based on input validation states
|
|
118
|
+
*/
|
|
119
|
+
updateFormState: function _updateFormState() {
|
|
120
|
+
const form = this.dialog.getContent()[0];
|
|
121
|
+
const formContent = form.getContent();
|
|
122
|
+
const inputs = formContent.filter(item => item.isA('sap.m.Input'));
|
|
123
|
+
const beginBtn = this.dialog.getBeginButton();
|
|
124
|
+
// Exclude the last input (display-only) from validation
|
|
125
|
+
// Only validate inputs that are visible and editable
|
|
126
|
+
const validatableInputs = inputs.filter(input => input.getVisible() && input.getEditable());
|
|
127
|
+
beginBtn.setEnabled(validatableInputs.every(input => input.getValueState() === ValueState.Success));
|
|
128
|
+
},
|
|
129
|
+
/**
|
|
130
|
+
* Handles action id input change
|
|
131
|
+
*
|
|
132
|
+
* @param event Event
|
|
133
|
+
*/
|
|
134
|
+
onActionIdInputChange: function _onActionIdInputChange(event) {
|
|
135
|
+
// update model value
|
|
136
|
+
const input = event.getSource();
|
|
137
|
+
let modelValue = input.getValue();
|
|
138
|
+
if (modelValue.length < 1) {
|
|
139
|
+
modelValue = null;
|
|
140
|
+
}
|
|
141
|
+
this.model.setProperty('/actionId', modelValue);
|
|
142
|
+
const result = validateActionId(input, this.bundle, this.options.validateActionId);
|
|
143
|
+
if (result.isValid) {
|
|
144
|
+
input.setValueState(ValueState.Success).setValueStateText('');
|
|
145
|
+
} else {
|
|
146
|
+
input.setValueState(ValueState.Error).setValueStateText(result.errorMessage);
|
|
147
|
+
}
|
|
148
|
+
this.updateFormState();
|
|
149
|
+
},
|
|
150
|
+
onButtonTextInputChange: function _onButtonTextInputChange(event) {
|
|
151
|
+
// update model value
|
|
152
|
+
const input = event.getSource();
|
|
153
|
+
let modelValue = input.getValue();
|
|
154
|
+
if (modelValue.length < 1) {
|
|
155
|
+
modelValue = null;
|
|
156
|
+
}
|
|
157
|
+
this.model.setProperty('/buttonText', modelValue);
|
|
158
|
+
if (modelValue && modelValue.length > 0) {
|
|
159
|
+
input.setValueState(ValueState.Success).setValueStateText('');
|
|
160
|
+
} else {
|
|
161
|
+
input.setValueState(ValueState.Error).setValueStateText(this.bundle.getText('BUTTON_TEXT_REQUIRED'));
|
|
162
|
+
}
|
|
163
|
+
this.updateFormState();
|
|
164
|
+
},
|
|
165
|
+
createAppDescriptorChangeForV4: async function _createAppDescriptorChangeForV(propertyPath, actionLabel) {
|
|
166
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
167
|
+
const modifiedValue = {
|
|
168
|
+
reference: this.options.appDescriptor?.projectId,
|
|
169
|
+
appComponent: this.options.appDescriptor?.appComponent,
|
|
170
|
+
changeType: 'appdescr_fe_changePageConfiguration',
|
|
171
|
+
parameters: {
|
|
172
|
+
page: this.options.appDescriptor?.pageId,
|
|
173
|
+
entityPropertyChange: {
|
|
174
|
+
propertyPath: `${propertyPath}`,
|
|
175
|
+
// e.g. 'content/body/sections/test'
|
|
176
|
+
operation: 'UPSERT',
|
|
177
|
+
propertyValue: {
|
|
178
|
+
press: this.options.controllerReference,
|
|
179
|
+
visible: true,
|
|
180
|
+
enabled: true,
|
|
181
|
+
text: actionLabel,
|
|
182
|
+
...(this.options.actionType === 'tableAction' ? {
|
|
183
|
+
requiresSelection: false
|
|
184
|
+
} : {}),
|
|
185
|
+
...(this.options.position && {
|
|
186
|
+
position: this.options.position
|
|
187
|
+
})
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const command = await this.commandExecutor.getCommand(this.getRuntimeControl(), 'appDescriptor', modifiedValue, flexSettings);
|
|
193
|
+
await this.commandExecutor.pushAndExecuteCommand(command);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
return AddActionFragment;
|
|
197
|
+
});
|
|
198
|
+
//# sourceMappingURL=AddActionFragment.controller.js.map
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
2
|
+
import { PageDescriptorV4 } from './types';
|
|
3
|
+
import UI5Element from 'sap/ui/core/Element';
|
|
4
|
+
import BaseDialog from './BaseDialog.controller';
|
|
5
|
+
import { QuickActionTelemetryData } from '../../cpe/quick-actions/quick-action-definition';
|
|
6
|
+
import JSONModel from 'sap/ui/model/json/JSONModel';
|
|
7
|
+
import Dialog from 'sap/m/Dialog';
|
|
8
|
+
import { getResourceModel, getTextBundle, TextBundle } from '../../i18n';
|
|
9
|
+
import { MessageBarType } from '@sap-ux-private/control-property-editor-common';
|
|
10
|
+
import Button from 'sap/m/Button';
|
|
11
|
+
import { sendInfoCenterMessage } from '../../utils/info-center-message';
|
|
12
|
+
import Input from 'sap/m/Input';
|
|
13
|
+
import CommandExecutor from '../command-executor';
|
|
14
|
+
import Event from 'sap/ui/base/Event';
|
|
15
|
+
import { getError } from '../../utils/error';
|
|
16
|
+
import { ValueState } from 'sap/ui/core/library';
|
|
17
|
+
import FlexCommand from 'sap/ui/rta/command/FlexCommand';
|
|
18
|
+
import SimpleForm from 'sap/ui/layout/form';
|
|
19
|
+
import Control from 'sap/ui/core/Control';
|
|
20
|
+
|
|
21
|
+
type AddActionFragmentsModel = JSONModel & {
|
|
22
|
+
getProperty(sPath: '/title'): string;
|
|
23
|
+
getProperty(sPath: '/buttonText'): string;
|
|
24
|
+
getProperty(sPath: '/actionId'): string;
|
|
25
|
+
getProperty(sPath: '/handlerReference'): string;
|
|
26
|
+
getProperty(sPath: '/hasController'): boolean;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export interface AddActionOptions {
|
|
30
|
+
name: string;
|
|
31
|
+
propertyPath: string;
|
|
32
|
+
actionType: 'pageAction' | 'tableAction';
|
|
33
|
+
title: string;
|
|
34
|
+
controllerReference: string;
|
|
35
|
+
appDescriptor?: PageDescriptorV4;
|
|
36
|
+
validateActionId?: (actionId: string) => boolean;
|
|
37
|
+
position?: {
|
|
38
|
+
placement: 'Before' | 'After';
|
|
39
|
+
anchor: string;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Validates Action ID input.
|
|
45
|
+
*
|
|
46
|
+
* @param input control of action ID to validate
|
|
47
|
+
* @param resource text bundle for messages
|
|
48
|
+
* @param validateForDuplicateId custom validation function
|
|
49
|
+
* @return validation result
|
|
50
|
+
*/
|
|
51
|
+
function validateActionId(
|
|
52
|
+
input: Input,
|
|
53
|
+
resource: TextBundle,
|
|
54
|
+
validateForDuplicateId?: (actionId: string) => boolean
|
|
55
|
+
): { isValid: boolean; errorMessage: string } {
|
|
56
|
+
const actionId = input.getValue();
|
|
57
|
+
// Check if empty
|
|
58
|
+
if (!actionId || actionId.trim().length === 0) {
|
|
59
|
+
return { isValid: false, errorMessage: resource.getText('ACTION_ID_REQUIRED') };
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (typeof validateForDuplicateId === 'function' && !validateForDuplicateId(actionId)) {
|
|
63
|
+
return { isValid: false, errorMessage: resource.getText('ACTION_WITH_GIVEN_ID_ALREADY_EXISTS', [actionId]) };
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Check starts and only allowed characters
|
|
67
|
+
if (!/(^([A-Za-z_][-A-Za-z0-9_.:]*)$)/.test(actionId)) {
|
|
68
|
+
return { isValid: false, errorMessage: resource.getText('ID_INVALID_FORMAT', ['Action']) };
|
|
69
|
+
}
|
|
70
|
+
return { isValid: true, errorMessage: '' };
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export default class AddActionFragment extends BaseDialog<AddActionFragmentsModel> {
|
|
74
|
+
private bundle: TextBundle;
|
|
75
|
+
constructor(
|
|
76
|
+
name: string,
|
|
77
|
+
overlays: UI5Element,
|
|
78
|
+
rta: RuntimeAuthoring,
|
|
79
|
+
readonly options: AddActionOptions,
|
|
80
|
+
telemetryData?: QuickActionTelemetryData
|
|
81
|
+
) {
|
|
82
|
+
super(name, telemetryData);
|
|
83
|
+
this.rta = rta;
|
|
84
|
+
this.overlays = overlays;
|
|
85
|
+
this.model = new JSONModel({
|
|
86
|
+
title: options.title
|
|
87
|
+
});
|
|
88
|
+
this.commandExecutor = new CommandExecutor(this.rta);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Setups the Dialog and the JSON Model
|
|
93
|
+
*
|
|
94
|
+
* @param {Dialog} dialog - Dialog instance
|
|
95
|
+
*/
|
|
96
|
+
async setup(dialog: Dialog): Promise<void> {
|
|
97
|
+
this.dialog = dialog;
|
|
98
|
+
|
|
99
|
+
this.setEscapeHandler();
|
|
100
|
+
this.bundle = await getTextBundle();
|
|
101
|
+
await this.buildDialogData();
|
|
102
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
103
|
+
|
|
104
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
105
|
+
this.dialog.setModel(this.model);
|
|
106
|
+
|
|
107
|
+
this.dialog.open();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Handles create button press
|
|
112
|
+
*
|
|
113
|
+
* @param event Event
|
|
114
|
+
*/
|
|
115
|
+
async onCreateBtnPress(event: Event) {
|
|
116
|
+
const source = event.getSource<Button>();
|
|
117
|
+
source.setEnabled(false);
|
|
118
|
+
await super.onCreateBtnPressHandler();
|
|
119
|
+
|
|
120
|
+
const actionId = this.model.getProperty('/actionId');
|
|
121
|
+
const buttonText = this.model.getProperty('/buttonText');
|
|
122
|
+
await this.createAppDescriptorChangeForV4(`${this.options.propertyPath}${actionId}`, buttonText);
|
|
123
|
+
this.handleDialogClose();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Builds data that is used in the dialog
|
|
128
|
+
*/
|
|
129
|
+
async buildDialogData(): Promise<void> {
|
|
130
|
+
try {
|
|
131
|
+
let hasController = false;
|
|
132
|
+
if (this.options.controllerReference) {
|
|
133
|
+
this.model.setProperty('/handlerReference', this.options.controllerReference);
|
|
134
|
+
hasController = true;
|
|
135
|
+
}
|
|
136
|
+
this.model.setProperty('/hasController', hasController);
|
|
137
|
+
} catch (e) {
|
|
138
|
+
const error = getError(e);
|
|
139
|
+
await sendInfoCenterMessage({
|
|
140
|
+
title: { key: 'ADP_GET_FRAGMENTS_FAILURE_TITLE' },
|
|
141
|
+
description: error.message,
|
|
142
|
+
type: MessageBarType.error
|
|
143
|
+
});
|
|
144
|
+
throw error;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Checks input values for duplicates and updates confirmation button state based on input validation states
|
|
150
|
+
*/
|
|
151
|
+
private updateFormState(): void {
|
|
152
|
+
const form = this.dialog.getContent()[0] as unknown as SimpleForm<Control[]>;
|
|
153
|
+
const formContent = form.getContent();
|
|
154
|
+
const inputs = formContent.filter((item) => item.isA('sap.m.Input')) as Input[];
|
|
155
|
+
|
|
156
|
+
const beginBtn = this.dialog.getBeginButton();
|
|
157
|
+
// Exclude the last input (display-only) from validation
|
|
158
|
+
// Only validate inputs that are visible and editable
|
|
159
|
+
const validatableInputs = inputs.filter((input) => input.getVisible() && input.getEditable());
|
|
160
|
+
beginBtn.setEnabled(validatableInputs.every((input) => input.getValueState() === ValueState.Success));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Handles action id input change
|
|
165
|
+
*
|
|
166
|
+
* @param event Event
|
|
167
|
+
*/
|
|
168
|
+
onActionIdInputChange(event: Event): void {
|
|
169
|
+
// update model value
|
|
170
|
+
const input = event.getSource<Input>();
|
|
171
|
+
let modelValue: string | null = input.getValue();
|
|
172
|
+
if (modelValue.length < 1) {
|
|
173
|
+
modelValue = null;
|
|
174
|
+
}
|
|
175
|
+
this.model.setProperty('/actionId', modelValue);
|
|
176
|
+
const result = validateActionId(input, this.bundle, this.options.validateActionId);
|
|
177
|
+
if (result.isValid) {
|
|
178
|
+
input.setValueState(ValueState.Success).setValueStateText('');
|
|
179
|
+
} else {
|
|
180
|
+
input.setValueState(ValueState.Error).setValueStateText(result.errorMessage);
|
|
181
|
+
}
|
|
182
|
+
this.updateFormState();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
onButtonTextInputChange(event: Event): void {
|
|
186
|
+
// update model value
|
|
187
|
+
const input = event.getSource<Input>();
|
|
188
|
+
let modelValue: string | null = input.getValue();
|
|
189
|
+
if (modelValue.length < 1) {
|
|
190
|
+
modelValue = null;
|
|
191
|
+
}
|
|
192
|
+
this.model.setProperty('/buttonText', modelValue);
|
|
193
|
+
if (modelValue && modelValue.length > 0) {
|
|
194
|
+
input.setValueState(ValueState.Success).setValueStateText('');
|
|
195
|
+
} else {
|
|
196
|
+
input.setValueState(ValueState.Error).setValueStateText(this.bundle.getText('BUTTON_TEXT_REQUIRED'));
|
|
197
|
+
}
|
|
198
|
+
this.updateFormState();
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
private async createAppDescriptorChangeForV4(propertyPath: string, actionLabel: string) {
|
|
202
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
203
|
+
const modifiedValue = {
|
|
204
|
+
reference: this.options.appDescriptor?.projectId,
|
|
205
|
+
appComponent: this.options.appDescriptor?.appComponent,
|
|
206
|
+
changeType: 'appdescr_fe_changePageConfiguration',
|
|
207
|
+
parameters: {
|
|
208
|
+
page: this.options.appDescriptor?.pageId,
|
|
209
|
+
entityPropertyChange: {
|
|
210
|
+
propertyPath: `${propertyPath}`, // e.g. 'content/body/sections/test'
|
|
211
|
+
operation: 'UPSERT',
|
|
212
|
+
propertyValue: {
|
|
213
|
+
press: this.options.controllerReference,
|
|
214
|
+
visible: true,
|
|
215
|
+
enabled: true,
|
|
216
|
+
text: actionLabel,
|
|
217
|
+
...(this.options.actionType === 'tableAction' ? { requiresSelection: false } : {}),
|
|
218
|
+
...(this.options.position && { position: this.options.position })
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
const command = await this.commandExecutor.getCommand<FlexCommand>(
|
|
224
|
+
this.getRuntimeControl(),
|
|
225
|
+
'appDescriptor',
|
|
226
|
+
modifiedValue,
|
|
227
|
+
flexSettings
|
|
228
|
+
);
|
|
229
|
+
|
|
230
|
+
await this.commandExecutor.pushAndExecuteCommand(command);
|
|
231
|
+
}
|
|
232
|
+
}
|