@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,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/model/json/JSONModel", "../../i18n", "../command-executor", "./BaseDialog.controller", "open/ux/preview/client/thirdparty/@sap-ux-private/control-property-editor-common", "../../cpe/communication-service", "../../utils/info-center-message", "../../utils/error", "sap/ui/core/library", "../api-handler"], function (JSONModel, ____i18n, __CommandExecutor, __BaseDialog, ___sap_ux_private_control_property_editor_common, ____cpe_communication_service, ____utils_info_center_message, ____utils_error, sap_ui_core_library, ___api_handler) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function _interopRequireDefault(obj) {
|
|
7
|
+
return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
|
|
8
|
+
}
|
|
9
|
+
const getResourceModel = ____i18n["getResourceModel"];
|
|
10
|
+
const getTextBundle = ____i18n["getTextBundle"];
|
|
11
|
+
const CommandExecutor = _interopRequireDefault(__CommandExecutor);
|
|
12
|
+
const BaseDialog = _interopRequireDefault(__BaseDialog);
|
|
13
|
+
const MessageBarType = ___sap_ux_private_control_property_editor_common["MessageBarType"];
|
|
14
|
+
const setApplicationRequiresReload = ___sap_ux_private_control_property_editor_common["setApplicationRequiresReload"];
|
|
15
|
+
const CommunicationService = ____cpe_communication_service["CommunicationService"];
|
|
16
|
+
const sendInfoCenterMessage = ____utils_info_center_message["sendInfoCenterMessage"];
|
|
17
|
+
const getError = ____utils_error["getError"];
|
|
18
|
+
const ValueState = sap_ui_core_library["ValueState"];
|
|
19
|
+
const getFragments = ___api_handler["getFragments"];
|
|
20
|
+
/**
|
|
21
|
+
* Validates Control ID input.
|
|
22
|
+
*
|
|
23
|
+
* @param input control of control ID to validate
|
|
24
|
+
* @param validateForDuplicateId custom validation function
|
|
25
|
+
* @return validation result
|
|
26
|
+
*/
|
|
27
|
+
function validateControlId(input, resource, identifier = 'Column', validateForDuplicateId) {
|
|
28
|
+
const id = input.getValue();
|
|
29
|
+
// Check if empty
|
|
30
|
+
if (!id || id.trim().length === 0) {
|
|
31
|
+
return {
|
|
32
|
+
isValid: false,
|
|
33
|
+
errorMessage: resource.getText('ID_REQUIRED', [identifier])
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (typeof validateForDuplicateId === 'function' && !validateForDuplicateId?.(id)) {
|
|
37
|
+
return {
|
|
38
|
+
isValid: false,
|
|
39
|
+
errorMessage: resource.getText('GIVEN_ID_ALREADY_EXISTS', [identifier, id])
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Check if starts with number
|
|
44
|
+
if (!/(^([A-Za-z_][-A-Za-z0-9_.:]*)$)/.test(id)) {
|
|
45
|
+
return {
|
|
46
|
+
isValid: false,
|
|
47
|
+
errorMessage: resource.getText('ID_INVALID_FORMAT', [identifier])
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
isValid: true,
|
|
52
|
+
errorMessage: ''
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @namespace open.ux.preview.client.adp.controllers
|
|
58
|
+
*/
|
|
59
|
+
const AddCustomFragment = BaseDialog.extend("open.ux.preview.client.adp.controllers.AddCustomFragment", {
|
|
60
|
+
constructor: function _constructor(name, overlays, rta, options, telemetryData) {
|
|
61
|
+
BaseDialog.prototype.constructor.call(this, name, telemetryData);
|
|
62
|
+
this.options = options;
|
|
63
|
+
this.rta = rta;
|
|
64
|
+
this.overlays = overlays;
|
|
65
|
+
this.model = new JSONModel({
|
|
66
|
+
title: options.title
|
|
67
|
+
});
|
|
68
|
+
this.commandExecutor = new CommandExecutor(this.rta);
|
|
69
|
+
},
|
|
70
|
+
/**
|
|
71
|
+
* Setups the Dialog and the JSON Model
|
|
72
|
+
*
|
|
73
|
+
* @param {Dialog} dialog - Dialog instance
|
|
74
|
+
*/
|
|
75
|
+
setup: async function _setup(dialog) {
|
|
76
|
+
this.dialog = dialog;
|
|
77
|
+
this.setEscapeHandler();
|
|
78
|
+
this.bundle = await getTextBundle();
|
|
79
|
+
await this.buildDialogData();
|
|
80
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
81
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
82
|
+
this.dialog.setModel(this.model);
|
|
83
|
+
this.dialog.open();
|
|
84
|
+
},
|
|
85
|
+
/**
|
|
86
|
+
* Handles create button press
|
|
87
|
+
*
|
|
88
|
+
* @param event Event
|
|
89
|
+
*/
|
|
90
|
+
onCreateBtnPress: async function _onCreateBtnPress(event) {
|
|
91
|
+
const source = event.getSource();
|
|
92
|
+
source.setEnabled(false);
|
|
93
|
+
await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
|
|
94
|
+
const fragmentName = this.model.getProperty('/newFragmentName');
|
|
95
|
+
const template = `fragments.${fragmentName}`;
|
|
96
|
+
await this.createAppDescriptorChangeForV4(template);
|
|
97
|
+
CommunicationService.sendAction(setApplicationRequiresReload(true));
|
|
98
|
+
await sendInfoCenterMessage({
|
|
99
|
+
title: {
|
|
100
|
+
key: this.options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE'
|
|
101
|
+
},
|
|
102
|
+
description: {
|
|
103
|
+
key: 'ADP_ADD_FRAGMENT_NOTIFICATION',
|
|
104
|
+
params: [fragmentName]
|
|
105
|
+
},
|
|
106
|
+
type: MessageBarType.warning
|
|
107
|
+
});
|
|
108
|
+
this.handleDialogClose();
|
|
109
|
+
},
|
|
110
|
+
/**
|
|
111
|
+
* Builds data that is used in the dialog
|
|
112
|
+
*/
|
|
113
|
+
buildDialogData: async function _buildDialogData() {
|
|
114
|
+
try {
|
|
115
|
+
let isCustomColumnFragment = false;
|
|
116
|
+
if (this.options.type === 'tableColumn') {
|
|
117
|
+
await this.addFragmentListToModel();
|
|
118
|
+
isCustomColumnFragment = true;
|
|
119
|
+
}
|
|
120
|
+
this.model.setProperty('/isCustomColumnFragment', isCustomColumnFragment);
|
|
121
|
+
} catch (e) {
|
|
122
|
+
const error = getError(e);
|
|
123
|
+
await sendInfoCenterMessage({
|
|
124
|
+
title: {
|
|
125
|
+
key: this.options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE'
|
|
126
|
+
},
|
|
127
|
+
description: error.message,
|
|
128
|
+
type: MessageBarType.error
|
|
129
|
+
});
|
|
130
|
+
throw error;
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
addFragmentListToModel: async function _addFragmentListToModel() {
|
|
134
|
+
try {
|
|
135
|
+
const {
|
|
136
|
+
fragments
|
|
137
|
+
} = await getFragments();
|
|
138
|
+
this.model.setProperty('/fragmentList', fragments);
|
|
139
|
+
} catch (e) {
|
|
140
|
+
const error = getError(e);
|
|
141
|
+
await sendInfoCenterMessage({
|
|
142
|
+
title: {
|
|
143
|
+
key: 'ADP_ADD_FRAGMENT_FAILURE_TITLE'
|
|
144
|
+
},
|
|
145
|
+
description: error.message,
|
|
146
|
+
type: MessageBarType.error
|
|
147
|
+
});
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
/**
|
|
152
|
+
* Checks input values for duplicates and updates confirmation button state based on input validation states
|
|
153
|
+
*/
|
|
154
|
+
updateFormState: function _updateFormState() {
|
|
155
|
+
const form = this.dialog.getContent()[0];
|
|
156
|
+
const formContent = form.getContent();
|
|
157
|
+
const inputs = formContent.filter(item => item.isA('sap.m.Input'));
|
|
158
|
+
const beginBtn = this.dialog.getBeginButton();
|
|
159
|
+
// Exclude the last input (display-only) from validation
|
|
160
|
+
// Only validate inputs that are visible and editable
|
|
161
|
+
const validatableInputs = inputs.filter(input => input.getVisible() && input.getEditable());
|
|
162
|
+
beginBtn.setEnabled(validatableInputs.every(input => input.getValueState() === ValueState.Success));
|
|
163
|
+
},
|
|
164
|
+
/**
|
|
165
|
+
* Handles id input change
|
|
166
|
+
*
|
|
167
|
+
* @param event Event
|
|
168
|
+
*/
|
|
169
|
+
onIdInputChange: function _onIdInputChange(event) {
|
|
170
|
+
// update model value
|
|
171
|
+
const input = event.getSource();
|
|
172
|
+
let modelValue = input.getValue();
|
|
173
|
+
if (modelValue.length < 1) {
|
|
174
|
+
modelValue = null;
|
|
175
|
+
}
|
|
176
|
+
this.model.setProperty('/id', modelValue);
|
|
177
|
+
const result = validateControlId(input, this.bundle, 'Column', this.options.validateId);
|
|
178
|
+
if (result.isValid) {
|
|
179
|
+
input.setValueState(ValueState.Success).setValueStateText('');
|
|
180
|
+
} else {
|
|
181
|
+
input.setValueState(ValueState.Error).setValueStateText(result.errorMessage);
|
|
182
|
+
}
|
|
183
|
+
this.updateFormState();
|
|
184
|
+
},
|
|
185
|
+
createAppDescriptorChangeForV4: async function _createAppDescriptorChangeForV(templatePath) {
|
|
186
|
+
const id = this.options.type === 'tableColumn' ? this.model.getProperty('/id') : this.model.getProperty('/newFragmentName');
|
|
187
|
+
const template = `${this.options.appDescriptor?.projectId}.changes.${templatePath}`;
|
|
188
|
+
const anchor = this.options.appDescriptor?.anchor;
|
|
189
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
190
|
+
const modifiedValue = {
|
|
191
|
+
reference: this.options.appDescriptor?.projectId,
|
|
192
|
+
appComponent: this.options.appDescriptor?.appComponent,
|
|
193
|
+
changeType: 'appdescr_fe_changePageConfiguration',
|
|
194
|
+
parameters: {
|
|
195
|
+
page: this.options.appDescriptor?.pageId,
|
|
196
|
+
entityPropertyChange: {
|
|
197
|
+
propertyPath: `${this.options.propertyPath}${id}`,
|
|
198
|
+
// e.g. 'content/body/sections/test'
|
|
199
|
+
operation: 'UPSERT',
|
|
200
|
+
propertyValue: {
|
|
201
|
+
template,
|
|
202
|
+
...(this.options.type === 'tableColumn' ? {
|
|
203
|
+
header: 'New Column'
|
|
204
|
+
} : {
|
|
205
|
+
title: 'New Custom Section'
|
|
206
|
+
}),
|
|
207
|
+
...(anchor && {
|
|
208
|
+
position: {
|
|
209
|
+
placement: 'After',
|
|
210
|
+
anchor
|
|
211
|
+
}
|
|
212
|
+
})
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
const command = await this.commandExecutor.getCommand(this.getRuntimeControl(), 'appDescriptor', modifiedValue, flexSettings);
|
|
218
|
+
await this.commandExecutor.pushAndExecuteCommand(command);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
return AddCustomFragment;
|
|
222
|
+
});
|
|
223
|
+
//# sourceMappingURL=AddCustomFragment.controller.js.map
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/** sap.m */
|
|
2
|
+
import Button from 'sap/m/Button';
|
|
3
|
+
import type Dialog from 'sap/m/Dialog';
|
|
4
|
+
|
|
5
|
+
/** sap.ui.core */
|
|
6
|
+
import type UI5Element from 'sap/ui/core/Element';
|
|
7
|
+
|
|
8
|
+
/** sap.ui.base */
|
|
9
|
+
import type Event from 'sap/ui/base/Event';
|
|
10
|
+
|
|
11
|
+
/** sap.ui.model */
|
|
12
|
+
import JSONModel from 'sap/ui/model/json/JSONModel';
|
|
13
|
+
|
|
14
|
+
/** sap.ui.rta */
|
|
15
|
+
import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
16
|
+
|
|
17
|
+
import { getResourceModel, getTextBundle, TextBundle } from '../../i18n';
|
|
18
|
+
import CommandExecutor from '../command-executor';
|
|
19
|
+
import BaseDialog from './BaseDialog.controller';
|
|
20
|
+
import { QuickActionTelemetryData } from '../../cpe/quick-actions/quick-action-definition';
|
|
21
|
+
import { MessageBarType, setApplicationRequiresReload } from '@sap-ux-private/control-property-editor-common';
|
|
22
|
+
import { CommunicationService } from '../../cpe/communication-service';
|
|
23
|
+
import FlexCommand from 'sap/ui/rta/command/FlexCommand';
|
|
24
|
+
import { sendInfoCenterMessage } from '../../utils/info-center-message';
|
|
25
|
+
import { getError } from '../../utils/error';
|
|
26
|
+
import { PageDescriptorV4 } from './types';
|
|
27
|
+
import Input from 'sap/m/Input';
|
|
28
|
+
import { ValueState } from 'sap/ui/core/library';
|
|
29
|
+
import SimpleForm from 'sap/ui/layout/form';
|
|
30
|
+
import Control from 'sap/ui/core/Control';
|
|
31
|
+
import { getFragments } from '../api-handler';
|
|
32
|
+
|
|
33
|
+
export type AddFragmentModel = JSONModel & {
|
|
34
|
+
getProperty(sPath: '/title'): string;
|
|
35
|
+
getProperty(sPath: '/newFragmentName'): string;
|
|
36
|
+
getProperty(sPath: '/isCustomColumnFragment'): boolean;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export interface AddCustomFragmentOptions {
|
|
40
|
+
title: string;
|
|
41
|
+
propertyPath: string;
|
|
42
|
+
appDescriptor?: PageDescriptorV4;
|
|
43
|
+
validateId?: (id: string) => boolean;
|
|
44
|
+
type: 'section' | 'tableColumn';
|
|
45
|
+
availability?: 'Default' | 'Adaptation' | 'Hidden';
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Validates Control ID input.
|
|
50
|
+
*
|
|
51
|
+
* @param input control of control ID to validate
|
|
52
|
+
* @param validateForDuplicateId custom validation function
|
|
53
|
+
* @return validation result
|
|
54
|
+
*/
|
|
55
|
+
function validateControlId(
|
|
56
|
+
input: Input,
|
|
57
|
+
resource: TextBundle,
|
|
58
|
+
identifier: 'Column' = 'Column',
|
|
59
|
+
validateForDuplicateId?: (id: string) => boolean
|
|
60
|
+
): { isValid: boolean; errorMessage: string } {
|
|
61
|
+
const id = input.getValue();
|
|
62
|
+
// Check if empty
|
|
63
|
+
if (!id || id.trim().length === 0) {
|
|
64
|
+
return { isValid: false, errorMessage: resource.getText('ID_REQUIRED', [identifier]) };
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (typeof validateForDuplicateId === 'function' && !validateForDuplicateId?.(id)) {
|
|
68
|
+
return { isValid: false, errorMessage: resource.getText('GIVEN_ID_ALREADY_EXISTS', [identifier, id]) };
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Check if starts with number
|
|
72
|
+
if (!/(^([A-Za-z_][-A-Za-z0-9_.:]*)$)/.test(id)) {
|
|
73
|
+
return { isValid: false, errorMessage: resource.getText('ID_INVALID_FORMAT', [identifier]) };
|
|
74
|
+
}
|
|
75
|
+
return { isValid: true, errorMessage: '' };
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @namespace open.ux.preview.client.adp.controllers
|
|
80
|
+
*/
|
|
81
|
+
export default class AddCustomFragment extends BaseDialog<AddFragmentModel> {
|
|
82
|
+
private bundle: TextBundle;
|
|
83
|
+
constructor(
|
|
84
|
+
name: string,
|
|
85
|
+
overlays: UI5Element,
|
|
86
|
+
rta: RuntimeAuthoring,
|
|
87
|
+
readonly options: AddCustomFragmentOptions,
|
|
88
|
+
telemetryData?: QuickActionTelemetryData
|
|
89
|
+
) {
|
|
90
|
+
super(name, telemetryData);
|
|
91
|
+
this.rta = rta;
|
|
92
|
+
this.overlays = overlays;
|
|
93
|
+
this.model = new JSONModel({
|
|
94
|
+
title: options.title
|
|
95
|
+
});
|
|
96
|
+
this.commandExecutor = new CommandExecutor(this.rta);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Setups the Dialog and the JSON Model
|
|
101
|
+
*
|
|
102
|
+
* @param {Dialog} dialog - Dialog instance
|
|
103
|
+
*/
|
|
104
|
+
async setup(dialog: Dialog): Promise<void> {
|
|
105
|
+
this.dialog = dialog;
|
|
106
|
+
|
|
107
|
+
this.setEscapeHandler();
|
|
108
|
+
this.bundle = await getTextBundle();
|
|
109
|
+
await this.buildDialogData();
|
|
110
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
111
|
+
|
|
112
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
113
|
+
this.dialog.setModel(this.model);
|
|
114
|
+
|
|
115
|
+
this.dialog.open();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Handles create button press
|
|
120
|
+
*
|
|
121
|
+
* @param event Event
|
|
122
|
+
*/
|
|
123
|
+
async onCreateBtnPress(event: Event) {
|
|
124
|
+
const source = event.getSource<Button>();
|
|
125
|
+
source.setEnabled(false);
|
|
126
|
+
|
|
127
|
+
await super.onCreateBtnPressHandler();
|
|
128
|
+
|
|
129
|
+
const fragmentName = this.model.getProperty('/newFragmentName');
|
|
130
|
+
const template = `fragments.${fragmentName}`;
|
|
131
|
+
await this.createAppDescriptorChangeForV4(template);
|
|
132
|
+
CommunicationService.sendAction(setApplicationRequiresReload(true));
|
|
133
|
+
|
|
134
|
+
await sendInfoCenterMessage({
|
|
135
|
+
title: { key: this.options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE' },
|
|
136
|
+
description: { key: 'ADP_ADD_FRAGMENT_NOTIFICATION', params: [fragmentName] },
|
|
137
|
+
type: MessageBarType.warning
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
this.handleDialogClose();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Builds data that is used in the dialog
|
|
145
|
+
*/
|
|
146
|
+
async buildDialogData(): Promise<void> {
|
|
147
|
+
try {
|
|
148
|
+
let isCustomColumnFragment = false;
|
|
149
|
+
if (this.options.type === 'tableColumn') {
|
|
150
|
+
await this.addFragmentListToModel();
|
|
151
|
+
isCustomColumnFragment = true;
|
|
152
|
+
}
|
|
153
|
+
this.model.setProperty('/isCustomColumnFragment', isCustomColumnFragment);
|
|
154
|
+
} catch (e) {
|
|
155
|
+
const error = getError(e);
|
|
156
|
+
await sendInfoCenterMessage({
|
|
157
|
+
title: { key: this.options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE' },
|
|
158
|
+
description: error.message,
|
|
159
|
+
type: MessageBarType.error
|
|
160
|
+
});
|
|
161
|
+
throw error;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
private async addFragmentListToModel(): Promise<void> {
|
|
165
|
+
try {
|
|
166
|
+
const { fragments } = await getFragments();
|
|
167
|
+
|
|
168
|
+
this.model.setProperty('/fragmentList', fragments);
|
|
169
|
+
} catch (e) {
|
|
170
|
+
const error = getError(e);
|
|
171
|
+
await sendInfoCenterMessage({
|
|
172
|
+
title: { key: 'ADP_ADD_FRAGMENT_FAILURE_TITLE' },
|
|
173
|
+
description: error.message,
|
|
174
|
+
type: MessageBarType.error
|
|
175
|
+
});
|
|
176
|
+
throw error;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Checks input values for duplicates and updates confirmation button state based on input validation states
|
|
181
|
+
*/
|
|
182
|
+
private updateFormState(): void {
|
|
183
|
+
const form = this.dialog.getContent()[0] as unknown as SimpleForm<Control[]>;
|
|
184
|
+
const formContent = form.getContent();
|
|
185
|
+
const inputs = formContent.filter((item) => item.isA('sap.m.Input')) as Input[];
|
|
186
|
+
|
|
187
|
+
const beginBtn = this.dialog.getBeginButton();
|
|
188
|
+
// Exclude the last input (display-only) from validation
|
|
189
|
+
// Only validate inputs that are visible and editable
|
|
190
|
+
const validatableInputs = inputs.filter((input) => input.getVisible() && input.getEditable());
|
|
191
|
+
beginBtn.setEnabled(validatableInputs.every((input) => input.getValueState() === ValueState.Success));
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Handles id input change
|
|
196
|
+
*
|
|
197
|
+
* @param event Event
|
|
198
|
+
*/
|
|
199
|
+
onIdInputChange(event: Event): void {
|
|
200
|
+
// update model value
|
|
201
|
+
const input = event.getSource<Input>();
|
|
202
|
+
let modelValue: string | null = input.getValue();
|
|
203
|
+
if (modelValue.length < 1) {
|
|
204
|
+
modelValue = null;
|
|
205
|
+
}
|
|
206
|
+
this.model.setProperty('/id', modelValue);
|
|
207
|
+
const result = validateControlId(input, this.bundle, 'Column', this.options.validateId);
|
|
208
|
+
if (result.isValid) {
|
|
209
|
+
input.setValueState(ValueState.Success).setValueStateText('');
|
|
210
|
+
} else {
|
|
211
|
+
input.setValueState(ValueState.Error).setValueStateText(result.errorMessage);
|
|
212
|
+
}
|
|
213
|
+
this.updateFormState();
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
private async createAppDescriptorChangeForV4(templatePath: string) {
|
|
217
|
+
const id =
|
|
218
|
+
this.options.type === 'tableColumn'
|
|
219
|
+
? this.model.getProperty('/id')
|
|
220
|
+
: this.model.getProperty('/newFragmentName');
|
|
221
|
+
const template = `${this.options.appDescriptor?.projectId}.changes.${templatePath}`;
|
|
222
|
+
const anchor = this.options.appDescriptor?.anchor;
|
|
223
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
224
|
+
const modifiedValue = {
|
|
225
|
+
reference: this.options.appDescriptor?.projectId,
|
|
226
|
+
appComponent: this.options.appDescriptor?.appComponent,
|
|
227
|
+
changeType: 'appdescr_fe_changePageConfiguration',
|
|
228
|
+
parameters: {
|
|
229
|
+
page: this.options.appDescriptor?.pageId,
|
|
230
|
+
entityPropertyChange: {
|
|
231
|
+
propertyPath: `${this.options.propertyPath}${id}`, // e.g. 'content/body/sections/test'
|
|
232
|
+
operation: 'UPSERT',
|
|
233
|
+
propertyValue: {
|
|
234
|
+
template,
|
|
235
|
+
...(this.options.type === 'tableColumn'
|
|
236
|
+
? { header: 'New Column' }
|
|
237
|
+
: { title: 'New Custom Section' }),
|
|
238
|
+
...(anchor && {
|
|
239
|
+
position: {
|
|
240
|
+
placement: 'After',
|
|
241
|
+
anchor
|
|
242
|
+
}
|
|
243
|
+
})
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
const command = await this.commandExecutor.getCommand<FlexCommand>(
|
|
249
|
+
this.getRuntimeControl(),
|
|
250
|
+
'appDescriptor',
|
|
251
|
+
modifiedValue,
|
|
252
|
+
flexSettings
|
|
253
|
+
);
|
|
254
|
+
|
|
255
|
+
await this.commandExecutor.pushAndExecuteCommand(command);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/model/json/JSONModel", "sap/ui/dt/OverlayRegistry", "../../i18n", "open/ux/preview/client/thirdparty/@sap-ux-private/control-property-editor-common", "../../cpe/additional-change-info/add-xml-additional-info", "../../cpe/communication-service", "../../utils/error", "../../utils/info-center-message", "../api-handler", "../command-executor", "../control-utils", "./BaseDialog.controller"], function (JSONModel, OverlayRegistry, ____i18n, ___sap_ux_private_control_property_editor_common, ____cpe_additional_change_info_add_xml_additional_info, ____cpe_communication_service, ____utils_error, ____utils_info_center_message, ___api_handler, __CommandExecutor, __ControlUtils, __BaseDialog) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function _interopRequireDefault(obj) {
|
|
7
|
+
return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
|
|
8
|
+
}
|
|
9
|
+
const getResourceModel = ____i18n["getResourceModel"];
|
|
10
|
+
const MessageBarType = ___sap_ux_private_control_property_editor_common["MessageBarType"];
|
|
11
|
+
const setApplicationRequiresReload = ___sap_ux_private_control_property_editor_common["setApplicationRequiresReload"];
|
|
12
|
+
const getFragmentTemplateName = ____cpe_additional_change_info_add_xml_additional_info["getFragmentTemplateName"];
|
|
13
|
+
const CommunicationService = ____cpe_communication_service["CommunicationService"];
|
|
14
|
+
const getError = ____utils_error["getError"];
|
|
15
|
+
const sendInfoCenterMessage = ____utils_info_center_message["sendInfoCenterMessage"];
|
|
16
|
+
const getFragments = ___api_handler["getFragments"];
|
|
17
|
+
const CommandExecutor = _interopRequireDefault(__CommandExecutor);
|
|
18
|
+
const ControlUtils = _interopRequireDefault(__ControlUtils);
|
|
19
|
+
const BaseDialog = _interopRequireDefault(__BaseDialog);
|
|
20
|
+
const radix = 10;
|
|
21
|
+
/**
|
|
22
|
+
* @namespace open.ux.preview.client.adp.controllers
|
|
23
|
+
*/
|
|
24
|
+
const AddFragment = BaseDialog.extend("open.ux.preview.client.adp.controllers.AddFragment", {
|
|
25
|
+
constructor: function _constructor(name, overlays, rta, options, data, telemetryData) {
|
|
26
|
+
BaseDialog.prototype.constructor.call(this, name, telemetryData);
|
|
27
|
+
this.options = options;
|
|
28
|
+
this.rta = rta;
|
|
29
|
+
this.overlays = overlays;
|
|
30
|
+
this.model = new JSONModel({
|
|
31
|
+
title: options.title,
|
|
32
|
+
completeView: options.aggregation === undefined
|
|
33
|
+
});
|
|
34
|
+
this.commandExecutor = new CommandExecutor(this.rta);
|
|
35
|
+
this.data = data;
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* Setups the Dialog and the JSON Model
|
|
39
|
+
*
|
|
40
|
+
* @param {Dialog} dialog - Dialog instance
|
|
41
|
+
*/
|
|
42
|
+
setup: async function _setup(dialog) {
|
|
43
|
+
this.dialog = dialog;
|
|
44
|
+
this.setEscapeHandler();
|
|
45
|
+
await this.buildDialogData();
|
|
46
|
+
const resourceModel = await getResourceModel('open.ux.preview.client');
|
|
47
|
+
this.dialog.setModel(resourceModel, 'i18n');
|
|
48
|
+
this.dialog.setModel(this.model);
|
|
49
|
+
this.dialog.open();
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* Handles the change in aggregations
|
|
53
|
+
*
|
|
54
|
+
* @param event Event
|
|
55
|
+
*/
|
|
56
|
+
onAggregationChanged: function _onAggregationChanged(event) {
|
|
57
|
+
const source = event.getSource();
|
|
58
|
+
const selectedKey = source.getSelectedKey();
|
|
59
|
+
const selectedItem = source.getSelectedItem();
|
|
60
|
+
let selectedItemText = '';
|
|
61
|
+
if (selectedItem) {
|
|
62
|
+
selectedItemText = selectedItem.getText();
|
|
63
|
+
}
|
|
64
|
+
this.model.setProperty('/selectedAggregation/key', selectedKey);
|
|
65
|
+
this.model.setProperty('/selectedAggregation/value', selectedItemText);
|
|
66
|
+
let newSelectedControlChildren = Object.keys(ControlUtils.getControlAggregationByName(this.getRuntimeControl(), selectedItemText));
|
|
67
|
+
newSelectedControlChildren = newSelectedControlChildren.map(key => {
|
|
68
|
+
return Number.parseInt(key, radix);
|
|
69
|
+
});
|
|
70
|
+
this.specialIndexHandling(selectedItemText);
|
|
71
|
+
const updatedIndexArray = this.fillIndexArray(newSelectedControlChildren);
|
|
72
|
+
this.model.setProperty('/index', updatedIndexArray);
|
|
73
|
+
this.model.setProperty('/selectedIndex', updatedIndexArray.length - 1);
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* Handles create button press
|
|
77
|
+
*
|
|
78
|
+
* @param event Event
|
|
79
|
+
*/
|
|
80
|
+
onCreateBtnPress: async function _onCreateBtnPress(event) {
|
|
81
|
+
const source = event.getSource();
|
|
82
|
+
source.setEnabled(false);
|
|
83
|
+
await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
|
|
84
|
+
const fragmentName = this.model.getProperty('/newFragmentName');
|
|
85
|
+
const index = this.model.getProperty('/selectedIndex');
|
|
86
|
+
const targetAggregation = this.model.getProperty('/selectedAggregation/value') ?? 'content';
|
|
87
|
+
const modifiedValue = {
|
|
88
|
+
fragment: `<core:FragmentDefinition xmlns:core='sap.ui.core'></core:FragmentDefinition>`,
|
|
89
|
+
fragmentPath: `fragments/${fragmentName}.fragment.xml`,
|
|
90
|
+
index: index ?? 0,
|
|
91
|
+
targetAggregation: targetAggregation ?? 'content'
|
|
92
|
+
};
|
|
93
|
+
if (this.data) {
|
|
94
|
+
this.data.deferred.resolve(modifiedValue);
|
|
95
|
+
} else {
|
|
96
|
+
await this.createFragmentChange(modifiedValue);
|
|
97
|
+
}
|
|
98
|
+
const selector = {
|
|
99
|
+
id: this.getRuntimeControl().getId(),
|
|
100
|
+
idIsLocal: false
|
|
101
|
+
};
|
|
102
|
+
const templateName = getFragmentTemplateName(selector, targetAggregation);
|
|
103
|
+
if (templateName) {
|
|
104
|
+
CommunicationService.sendAction(setApplicationRequiresReload(true));
|
|
105
|
+
}
|
|
106
|
+
await sendInfoCenterMessage({
|
|
107
|
+
title: {
|
|
108
|
+
key: 'ADP_CREATE_XML_FRAGMENT_TITLE'
|
|
109
|
+
},
|
|
110
|
+
description: {
|
|
111
|
+
key: 'ADP_ADD_FRAGMENT_NOTIFICATION',
|
|
112
|
+
params: [fragmentName]
|
|
113
|
+
},
|
|
114
|
+
type: MessageBarType.info
|
|
115
|
+
});
|
|
116
|
+
this.handleDialogClose();
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* Builds data that is used in the dialog
|
|
120
|
+
*/
|
|
121
|
+
buildDialogData: async function _buildDialogData() {
|
|
122
|
+
const {
|
|
123
|
+
controlMetadata,
|
|
124
|
+
targetAggregation
|
|
125
|
+
} = this.getControlMetadata();
|
|
126
|
+
const defaultAggregation = this.options.aggregation ?? controlMetadata.getDefaultAggregationName();
|
|
127
|
+
const selectedControlName = controlMetadata.getName();
|
|
128
|
+
let selectedControlChildren = Object.keys(ControlUtils.getControlAggregationByName(this.getRuntimeControl(), defaultAggregation));
|
|
129
|
+
selectedControlChildren = selectedControlChildren.map(key => {
|
|
130
|
+
return Number.parseInt(key, radix);
|
|
131
|
+
});
|
|
132
|
+
this.model.setProperty('/selectedControlName', selectedControlName);
|
|
133
|
+
this.model.setProperty('/selectedAggregation', {});
|
|
134
|
+
const indexArray = this.fillIndexArray(selectedControlChildren);
|
|
135
|
+
const controlAggregation = targetAggregation.map((elem, index) => {
|
|
136
|
+
return {
|
|
137
|
+
key: index,
|
|
138
|
+
value: elem
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
if (defaultAggregation !== null) {
|
|
142
|
+
controlAggregation.forEach(obj => {
|
|
143
|
+
if (obj.value === defaultAggregation) {
|
|
144
|
+
obj.key = 'default';
|
|
145
|
+
this.model.setProperty('/selectedAggregation/key', obj.key);
|
|
146
|
+
this.model.setProperty('/selectedAggregation/value', obj.value);
|
|
147
|
+
this.specialIndexHandling(obj.value);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
} else {
|
|
151
|
+
this.model.setProperty('/selectedAggregation/key', controlAggregation[0].key);
|
|
152
|
+
this.model.setProperty('/selectedAggregation/value', controlAggregation[0].value);
|
|
153
|
+
this.specialIndexHandling(controlAggregation[0].value);
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
const {
|
|
157
|
+
fragments
|
|
158
|
+
} = await getFragments();
|
|
159
|
+
this.model.setProperty('/fragmentList', fragments);
|
|
160
|
+
} catch (e) {
|
|
161
|
+
const error = getError(e);
|
|
162
|
+
await sendInfoCenterMessage({
|
|
163
|
+
title: {
|
|
164
|
+
key: 'ADP_ADD_FRAGMENT_FAILURE_TITLE'
|
|
165
|
+
},
|
|
166
|
+
description: error.message,
|
|
167
|
+
type: MessageBarType.error
|
|
168
|
+
});
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
this.model.setProperty('/selectedIndex', indexArray.length - 1);
|
|
172
|
+
this.model.setProperty('/targetAggregation', controlAggregation);
|
|
173
|
+
this.model.setProperty('/index', indexArray);
|
|
174
|
+
const defaultIndex = Number(this.options.defaultAggregationArrayIndex);
|
|
175
|
+
if (defaultIndex >= 0) {
|
|
176
|
+
this.model.setProperty('/selectedIndex', indexArray.length - 1 > 0 ? defaultIndex : 0);
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
/**
|
|
180
|
+
* Creates an addXML fragment command and pushes it to the command stack
|
|
181
|
+
*
|
|
182
|
+
* @param modifiedValue - modified value
|
|
183
|
+
* @param templateName - fragment template name
|
|
184
|
+
*/
|
|
185
|
+
createFragmentChange: async function _createFragmentChange(modifiedValue) {
|
|
186
|
+
const flexSettings = this.rta.getFlexSettings();
|
|
187
|
+
const overlay = OverlayRegistry.getOverlay(this.getRuntimeControl());
|
|
188
|
+
const designMetadata = overlay.getDesignTimeMetadata();
|
|
189
|
+
const command = await this.commandExecutor.getCommand(this.getRuntimeControl(), 'addXML', modifiedValue, flexSettings, designMetadata);
|
|
190
|
+
await this.commandExecutor.pushAndExecuteCommand(command);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
return AddFragment;
|
|
194
|
+
});
|
|
195
|
+
//# sourceMappingURL=AddFragment.controller.js.map
|