@sap/ux-ui5-tooling 1.20.4 → 1.21.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.
Files changed (287) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/adp-tooling/templates/cf/_gitignore +6 -0
  3. package/dist/adp-tooling/templates/cf/approuter/package.json +13 -0
  4. package/dist/adp-tooling/templates/cf/approuter/xs-app.json +15 -0
  5. package/dist/adp-tooling/templates/cf/i18n/i18n.properties +3 -0
  6. package/dist/adp-tooling/templates/cf/package.json +35 -0
  7. package/dist/adp-tooling/templates/cf/ui5.yaml +5 -0
  8. package/dist/adp-tooling/templates/cf/xs-security.json +7 -0
  9. package/dist/adp-tooling/templates/changes/annotation.xml +18 -0
  10. package/dist/adp-tooling/templates/project/gitignore.tmpl +5 -0
  11. package/dist/adp-tooling/templates/project/package.json +31 -0
  12. package/dist/adp-tooling/templates/project/ui5.yaml +6 -0
  13. package/dist/adp-tooling/templates/project/webapp/i18n/i18n.properties +6 -0
  14. package/dist/adp-tooling/templates/project/webapp/manifest.appdescr_variant +10 -0
  15. package/dist/adp-tooling/templates/rta/common/analytical-custom-column.xml +25 -0
  16. package/dist/adp-tooling/templates/rta/common/custom-action.xml +8 -0
  17. package/dist/adp-tooling/templates/rta/common/grid-tree-custom-column.xml +22 -0
  18. package/dist/adp-tooling/templates/rta/common/header-field.xml +13 -0
  19. package/dist/adp-tooling/templates/rta/common/op-custom-section.xml +20 -0
  20. package/dist/adp-tooling/templates/rta/common/v4-table-action.xml +8 -0
  21. package/dist/adp-tooling/templates/rta/controller.ejs +80 -0
  22. package/dist/adp-tooling/templates/rta/fragment.xml +7 -0
  23. package/dist/adp-tooling/templates/rta/ts-controller.ejs +18 -0
  24. package/dist/adp-tooling/templates/rta/v2/m-table-custom-column-cell.xml +7 -0
  25. package/dist/adp-tooling/templates/rta/v2/m-table-custom-column.xml +18 -0
  26. package/dist/adp-tooling/templates/rta/v4/custom-section.xml +12 -0
  27. package/dist/adp-tooling/templates/rta/v4/mdc-custom-column-config.xml +6 -0
  28. package/dist/adp-tooling/templates/rta/v4/mdc-custom-column.xml +11 -0
  29. package/dist/adp-tooling/templates/typescript/tsconfig.json +19 -0
  30. package/dist/cli/index.js +15811 -9929
  31. package/dist/control-property-editor/app.css +2 -0
  32. package/dist/control-property-editor/app.js +175 -0
  33. package/dist/livereload-js/livereload.js +3795 -0
  34. package/dist/middlewares/fiori-tools-appreload.js +43486 -41472
  35. package/dist/middlewares/fiori-tools-preview.js +56962 -3066
  36. package/dist/middlewares/fiori-tools-proxy.js +55281 -32282
  37. package/dist/middlewares/fiori-tools-servestatic.js +31629 -29
  38. package/dist/preview-middleware/dist/client/adp/add-fragment.js +48 -0
  39. package/dist/preview-middleware/dist/client/adp/add-fragment.ts +51 -0
  40. package/dist/preview-middleware/dist/client/adp/api-handler.js +162 -0
  41. package/dist/preview-middleware/dist/client/adp/api-handler.ts +188 -0
  42. package/dist/preview-middleware/dist/client/adp/command-executor.js +100 -0
  43. package/dist/preview-middleware/dist/client/adp/command-executor.ts +105 -0
  44. package/dist/preview-middleware/dist/client/adp/control-utils.js +46 -0
  45. package/dist/preview-middleware/dist/client/adp/control-utils.ts +48 -0
  46. package/dist/preview-middleware/dist/client/adp/controllers/AddActionFragment.controller.js +198 -0
  47. package/dist/preview-middleware/dist/client/adp/controllers/AddActionFragment.controller.ts +232 -0
  48. package/dist/preview-middleware/dist/client/adp/controllers/AddCustomFragment.controller.js +223 -0
  49. package/dist/preview-middleware/dist/client/adp/controllers/AddCustomFragment.controller.ts +257 -0
  50. package/dist/preview-middleware/dist/client/adp/controllers/AddFragment.controller.js +195 -0
  51. package/dist/preview-middleware/dist/client/adp/controllers/AddFragment.controller.ts +264 -0
  52. package/dist/preview-middleware/dist/client/adp/controllers/AddSubpage.controller.js +146 -0
  53. package/dist/preview-middleware/dist/client/adp/controllers/AddSubpage.controller.ts +209 -0
  54. package/dist/preview-middleware/dist/client/adp/controllers/AddTableColumnFragments.controller.js +232 -0
  55. package/dist/preview-middleware/dist/client/adp/controllers/AddTableColumnFragments.controller.ts +306 -0
  56. package/dist/preview-middleware/dist/client/adp/controllers/BaseDialog.controller.js +187 -0
  57. package/dist/preview-middleware/dist/client/adp/controllers/BaseDialog.controller.ts +254 -0
  58. package/dist/preview-middleware/dist/client/adp/controllers/ControllerExtension.controller.js +330 -0
  59. package/dist/preview-middleware/dist/client/adp/controllers/ControllerExtension.controller.ts +408 -0
  60. package/dist/preview-middleware/dist/client/adp/controllers/ExtensionPoint.controller.js +160 -0
  61. package/dist/preview-middleware/dist/client/adp/controllers/ExtensionPoint.controller.ts +195 -0
  62. package/dist/preview-middleware/dist/client/adp/controllers/FileExistsDialog.controller.js +68 -0
  63. package/dist/preview-middleware/dist/client/adp/controllers/FileExistsDialog.controller.ts +86 -0
  64. package/dist/preview-middleware/dist/client/adp/controllers/types.js +2 -0
  65. package/dist/preview-middleware/dist/client/adp/controllers/types.ts +10 -0
  66. package/dist/preview-middleware/dist/client/adp/dialog-factory.js +151 -0
  67. package/dist/preview-middleware/dist/client/adp/dialog-factory.ts +210 -0
  68. package/dist/preview-middleware/dist/client/adp/extend-controller.js +48 -0
  69. package/dist/preview-middleware/dist/client/adp/extend-controller.ts +49 -0
  70. package/dist/preview-middleware/dist/client/adp/extension-point.js +83 -0
  71. package/dist/preview-middleware/dist/client/adp/extension-point.ts +116 -0
  72. package/dist/preview-middleware/dist/client/adp/init-dialogs.js +142 -0
  73. package/dist/preview-middleware/dist/client/adp/init-dialogs.ts +178 -0
  74. package/dist/preview-middleware/dist/client/adp/init.js +102 -0
  75. package/dist/preview-middleware/dist/client/adp/init.ts +85 -0
  76. package/dist/preview-middleware/dist/client/adp/quick-actions/add-new-subpage-quick-action-base.js +97 -0
  77. package/dist/preview-middleware/dist/client/adp/quick-actions/add-new-subpage-quick-action-base.ts +140 -0
  78. package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-controller-to-page.js +74 -0
  79. package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-controller-to-page.ts +92 -0
  80. package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-new-annotation-file.js +171 -0
  81. package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-new-annotation-file.ts +174 -0
  82. package/dist/preview-middleware/dist/client/adp/quick-actions/common/create-page-action.js +56 -0
  83. package/dist/preview-middleware/dist/client/adp/quick-actions/common/create-page-action.ts +56 -0
  84. package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-custom-section.js +41 -0
  85. package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-custom-section.ts +51 -0
  86. package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-header-field.js +69 -0
  87. package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-header-field.ts +81 -0
  88. package/dist/preview-middleware/dist/client/adp/quick-actions/common/utils.js +20 -0
  89. package/dist/preview-middleware/dist/client/adp/quick-actions/common/utils.ts +7 -0
  90. package/dist/preview-middleware/dist/client/adp/quick-actions/control-types.js +25 -0
  91. package/dist/preview-middleware/dist/client/adp/quick-actions/control-types.ts +7 -0
  92. package/dist/preview-middleware/dist/client/adp/quick-actions/dialog-enablement-validator.js +26 -0
  93. package/dist/preview-middleware/dist/client/adp/quick-actions/dialog-enablement-validator.ts +18 -0
  94. package/dist/preview-middleware/dist/client/adp/quick-actions/enablement-validator.js +2 -0
  95. package/dist/preview-middleware/dist/client/adp/quick-actions/enablement-validator.ts +19 -0
  96. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/add-new-subpage.js +82 -0
  97. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/add-new-subpage.ts +87 -0
  98. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-actions.js +69 -0
  99. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-actions.ts +71 -0
  100. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-columns.js +103 -0
  101. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-columns.ts +105 -0
  102. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-action.js +111 -0
  103. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-action.ts +110 -0
  104. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.js +108 -0
  105. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.ts +141 -0
  106. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.js +80 -0
  107. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.ts +93 -0
  108. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.js +79 -0
  109. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.ts +102 -0
  110. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-variant-management.js +71 -0
  111. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-variant-management.ts +98 -0
  112. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.js +61 -0
  113. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.ts +77 -0
  114. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.js +95 -0
  115. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.ts +102 -0
  116. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-variant-management.js +86 -0
  117. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-variant-management.ts +116 -0
  118. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/registry.js +79 -0
  119. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/registry.ts +121 -0
  120. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/utils.js +138 -0
  121. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/utils.ts +134 -0
  122. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/add-new-subpage.js +140 -0
  123. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/add-new-subpage.ts +181 -0
  124. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-actions.js +81 -0
  125. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-actions.ts +81 -0
  126. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-columns.js +90 -0
  127. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-columns.ts +97 -0
  128. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-page-action.js +81 -0
  129. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-page-action.ts +98 -0
  130. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-action-config-change.js +129 -0
  131. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-action-config-change.ts +149 -0
  132. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-custom-column-config-change.js +142 -0
  133. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-custom-column-config-change.ts +178 -0
  134. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/enable-variant-management.js +83 -0
  135. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/enable-variant-management.ts +96 -0
  136. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.js +58 -0
  137. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.ts +70 -0
  138. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.js +86 -0
  139. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.ts +96 -0
  140. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.js +55 -0
  141. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.ts +61 -0
  142. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-add-custom-section.js +73 -0
  143. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-add-custom-section.ts +91 -0
  144. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.js +91 -0
  145. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.ts +88 -0
  146. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/registry.js +62 -0
  147. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/registry.ts +86 -0
  148. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/utils.js +158 -0
  149. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/utils.ts +175 -0
  150. package/dist/preview-middleware/dist/client/adp/quick-actions/load.js +46 -0
  151. package/dist/preview-middleware/dist/client/adp/quick-actions/load.ts +23 -0
  152. package/dist/preview-middleware/dist/client/adp/quick-actions/quick-action-base.js +64 -0
  153. package/dist/preview-middleware/dist/client/adp/quick-actions/quick-action-base.ts +71 -0
  154. package/dist/preview-middleware/dist/client/adp/quick-actions/simple-quick-action-base.js +44 -0
  155. package/dist/preview-middleware/dist/client/adp/quick-actions/simple-quick-action-base.ts +51 -0
  156. package/dist/preview-middleware/dist/client/adp/quick-actions/supported-ui5versions.md +40 -0
  157. package/dist/preview-middleware/dist/client/adp/quick-actions/table-quick-action-base.js +372 -0
  158. package/dist/preview-middleware/dist/client/adp/quick-actions/table-quick-action-base.ts +433 -0
  159. package/dist/preview-middleware/dist/client/adp/sync-views-utils.js +123 -0
  160. package/dist/preview-middleware/dist/client/adp/sync-views-utils.ts +90 -0
  161. package/dist/preview-middleware/dist/client/adp/ui/AddAction.fragment.xml +49 -0
  162. package/dist/preview-middleware/dist/client/adp/ui/AddCustomFragment.fragment.xml +48 -0
  163. package/dist/preview-middleware/dist/client/adp/ui/AddFragment.fragment.xml +83 -0
  164. package/dist/preview-middleware/dist/client/adp/ui/AddSubpage.fragment.xml +73 -0
  165. package/dist/preview-middleware/dist/client/adp/ui/AddTableColumnFragments.fragment.xml +63 -0
  166. package/dist/preview-middleware/dist/client/adp/ui/ControllerExtension.fragment.xml +63 -0
  167. package/dist/preview-middleware/dist/client/adp/ui/ExtensionPoint.fragment.xml +61 -0
  168. package/dist/preview-middleware/dist/client/adp/ui/FileExistsDialog.fragment.xml +43 -0
  169. package/dist/preview-middleware/dist/client/adp/utils.js +199 -0
  170. package/dist/preview-middleware/dist/client/adp/utils.ts +200 -0
  171. package/dist/preview-middleware/dist/client/cpe/additional-change-info/add-xml-additional-info.js +85 -0
  172. package/dist/preview-middleware/dist/client/cpe/additional-change-info/add-xml-additional-info.ts +107 -0
  173. package/dist/preview-middleware/dist/client/cpe/changes/flex-change.js +66 -0
  174. package/dist/preview-middleware/dist/client/cpe/changes/flex-change.ts +66 -0
  175. package/dist/preview-middleware/dist/client/cpe/changes/generic-change.js +321 -0
  176. package/dist/preview-middleware/dist/client/cpe/changes/generic-change.ts +462 -0
  177. package/dist/preview-middleware/dist/client/cpe/changes/index.js +12 -0
  178. package/dist/preview-middleware/dist/client/cpe/changes/index.ts +1 -0
  179. package/dist/preview-middleware/dist/client/cpe/changes/service.js +527 -0
  180. package/dist/preview-middleware/dist/client/cpe/changes/service.ts +595 -0
  181. package/dist/preview-middleware/dist/client/cpe/changes/validator.js +41 -0
  182. package/dist/preview-middleware/dist/client/cpe/changes/validator.ts +35 -0
  183. package/dist/preview-middleware/dist/client/cpe/communication-service.js +44 -0
  184. package/dist/preview-middleware/dist/client/cpe/communication-service.ts +41 -0
  185. package/dist/preview-middleware/dist/client/cpe/connector-service.js +88 -0
  186. package/dist/preview-middleware/dist/client/cpe/connector-service.ts +74 -0
  187. package/dist/preview-middleware/dist/client/cpe/context-menu-service.js +90 -0
  188. package/dist/preview-middleware/dist/client/cpe/context-menu-service.ts +77 -0
  189. package/dist/preview-middleware/dist/client/cpe/control-data.js +366 -0
  190. package/dist/preview-middleware/dist/client/cpe/control-data.ts +400 -0
  191. package/dist/preview-middleware/dist/client/cpe/documentation.js +191 -0
  192. package/dist/preview-middleware/dist/client/cpe/documentation.ts +187 -0
  193. package/dist/preview-middleware/dist/client/cpe/feature-service.js +39 -0
  194. package/dist/preview-middleware/dist/client/cpe/feature-service.ts +25 -0
  195. package/dist/preview-middleware/dist/client/cpe/init.js +92 -0
  196. package/dist/preview-middleware/dist/client/cpe/init.ts +114 -0
  197. package/dist/preview-middleware/dist/client/cpe/logger.js +32 -0
  198. package/dist/preview-middleware/dist/client/cpe/logger.ts +24 -0
  199. package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-checker.js +126 -0
  200. package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-checker.ts +150 -0
  201. package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-status.js +63 -0
  202. package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-status.ts +52 -0
  203. package/dist/preview-middleware/dist/client/cpe/outline/editable.js +38 -0
  204. package/dist/preview-middleware/dist/client/cpe/outline/editable.ts +30 -0
  205. package/dist/preview-middleware/dist/client/cpe/outline/nodes.js +212 -0
  206. package/dist/preview-middleware/dist/client/cpe/outline/nodes.ts +236 -0
  207. package/dist/preview-middleware/dist/client/cpe/outline/service.js +62 -0
  208. package/dist/preview-middleware/dist/client/cpe/outline/service.ts +66 -0
  209. package/dist/preview-middleware/dist/client/cpe/quick-actions/quick-action-service.js +161 -0
  210. package/dist/preview-middleware/dist/client/cpe/quick-actions/quick-action-service.ts +184 -0
  211. package/dist/preview-middleware/dist/client/cpe/quick-actions/registry.js +145 -0
  212. package/dist/preview-middleware/dist/client/cpe/quick-actions/registry.ts +157 -0
  213. package/dist/preview-middleware/dist/client/cpe/quick-actions/utils.js +94 -0
  214. package/dist/preview-middleware/dist/client/cpe/quick-actions/utils.ts +113 -0
  215. package/dist/preview-middleware/dist/client/cpe/rta-service.js +94 -0
  216. package/dist/preview-middleware/dist/client/cpe/rta-service.ts +86 -0
  217. package/dist/preview-middleware/dist/client/cpe/selection.js +249 -0
  218. package/dist/preview-middleware/dist/client/cpe/selection.ts +267 -0
  219. package/dist/preview-middleware/dist/client/cpe/ui5-utils.js +35 -0
  220. package/dist/preview-middleware/dist/client/cpe/ui5-utils.ts +28 -0
  221. package/dist/preview-middleware/dist/client/cpe/utils.js +113 -0
  222. package/dist/preview-middleware/dist/client/cpe/utils.ts +162 -0
  223. package/dist/preview-middleware/dist/client/flp/WorkspaceConnector.js +96 -0
  224. package/dist/preview-middleware/dist/client/flp/WorkspaceConnector.ts +99 -0
  225. package/dist/preview-middleware/dist/client/flp/common.js +30 -0
  226. package/dist/preview-middleware/dist/client/flp/common.ts +28 -0
  227. package/dist/preview-middleware/dist/client/flp/enableFakeConnector.js +92 -0
  228. package/dist/preview-middleware/dist/client/flp/enableFakeConnector.ts +113 -0
  229. package/dist/preview-middleware/dist/client/flp/homepage/Component.js +16 -0
  230. package/dist/preview-middleware/dist/client/flp/homepage/Component.ts +10 -0
  231. package/dist/preview-middleware/dist/client/flp/homepage/controller/MyHome.controller.js +54 -0
  232. package/dist/preview-middleware/dist/client/flp/homepage/controller/MyHome.controller.ts +41 -0
  233. package/dist/preview-middleware/dist/client/flp/homepage/css/style.css +3 -0
  234. package/dist/preview-middleware/dist/client/flp/homepage/manifest.json +41 -0
  235. package/dist/preview-middleware/dist/client/flp/homepage/view/MyHome.view.xml +18 -0
  236. package/dist/preview-middleware/dist/client/flp/init.js +418 -0
  237. package/dist/preview-middleware/dist/client/flp/init.ts +448 -0
  238. package/dist/preview-middleware/dist/client/flp/initCdm.js +117 -0
  239. package/dist/preview-middleware/dist/client/flp/initCdm.ts +111 -0
  240. package/dist/preview-middleware/dist/client/flp/initConnectors.js +31 -0
  241. package/dist/preview-middleware/dist/client/flp/initConnectors.ts +20 -0
  242. package/dist/preview-middleware/dist/client/flp/initRta.js +180 -0
  243. package/dist/preview-middleware/dist/client/flp/initRta.ts +194 -0
  244. package/dist/preview-middleware/dist/client/i18n.js +56 -0
  245. package/dist/preview-middleware/dist/client/i18n.ts +49 -0
  246. package/dist/preview-middleware/dist/client/manifest.json +8 -0
  247. package/dist/preview-middleware/dist/client/messagebundle.properties +143 -0
  248. package/dist/preview-middleware/dist/client/thirdparty/@sap-ux-private/control-property-editor-common.js +486 -0
  249. package/dist/preview-middleware/dist/client/utils/additional-change-info.js +69 -0
  250. package/dist/preview-middleware/dist/client/utils/additional-change-info.ts +73 -0
  251. package/dist/preview-middleware/dist/client/utils/application.js +34 -0
  252. package/dist/preview-middleware/dist/client/utils/application.ts +27 -0
  253. package/dist/preview-middleware/dist/client/utils/core.js +144 -0
  254. package/dist/preview-middleware/dist/client/utils/core.ts +145 -0
  255. package/dist/preview-middleware/dist/client/utils/error.js +28 -0
  256. package/dist/preview-middleware/dist/client/utils/error.ts +18 -0
  257. package/dist/preview-middleware/dist/client/utils/fe-v2.js +58 -0
  258. package/dist/preview-middleware/dist/client/utils/fe-v2.ts +61 -0
  259. package/dist/preview-middleware/dist/client/utils/fe-v4.js +168 -0
  260. package/dist/preview-middleware/dist/client/utils/fe-v4.ts +186 -0
  261. package/dist/preview-middleware/dist/client/utils/info-center-message.js +60 -0
  262. package/dist/preview-middleware/dist/client/utils/info-center-message.ts +60 -0
  263. package/dist/preview-middleware/dist/client/utils/version.js +126 -0
  264. package/dist/preview-middleware/dist/client/utils/version.ts +138 -0
  265. package/dist/preview-middleware/templates/flp/cdm.base.json +47 -0
  266. package/dist/preview-middleware/templates/flp/cdm.ejs +72 -0
  267. package/dist/preview-middleware/templates/flp/editor.ejs +28 -0
  268. package/dist/preview-middleware/templates/flp/sandbox.ejs +88 -0
  269. package/dist/preview-middleware/templates/flp/sandbox2.ejs +86 -0
  270. package/dist/preview-middleware/templates/test/qunit.ejs +26 -0
  271. package/dist/preview-middleware/templates/test/qunit.js +29 -0
  272. package/dist/preview-middleware/templates/test/testsuite.qunit.ejs +10 -0
  273. package/dist/preview-middleware/templates/test/testsuite.qunit.js +8 -0
  274. package/dist/tasks/cf-deploy/index.js +1780 -1464
  275. package/dist/tasks/deploy/index.js +14857 -9062
  276. package/package.json +31 -34
  277. package/prebuilds/keyring.darwin-arm64.node +0 -0
  278. package/prebuilds/keyring.darwin-x64.node +0 -0
  279. package/prebuilds/keyring.linux-arm-gnueabihf.node +0 -0
  280. package/prebuilds/keyring.linux-arm64-gnu.node +0 -0
  281. package/prebuilds/keyring.linux-arm64-musl.node +0 -0
  282. package/prebuilds/keyring.linux-ia32-gnu.node +0 -0
  283. package/prebuilds/keyring.linux-x64-gnu.node +0 -0
  284. package/prebuilds/keyring.linux-x64-musl.node +0 -0
  285. package/prebuilds/keyring.win32-arm64-msvc.node +0 -0
  286. package/prebuilds/keyring.win32-ia32-msvc.node +0 -0
  287. package/prebuilds/keyring.win32-x64-msvc.node +0 -0
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ sap.ui.define(["sap/ui/rta/command/CommandFactory", "../../../utils/version", "sap/ui/core/Component"], function (CommandFactory, _____utils_version, Component) {
4
+ "use strict";
5
+
6
+ const getUi5Version = _____utils_version["getUi5Version"];
7
+ const isLowerThanMinimalUi5Version = _____utils_version["isLowerThanMinimalUi5Version"];
8
+ const isVersionEqualOrHasNewerPatch = _____utils_version["isVersionEqualOrHasNewerPatch"];
9
+ /**
10
+ * Gets app component of a v2 project.
11
+ *
12
+ * @param control - ManagedObject.
13
+ * @returns AppComponent.
14
+ */
15
+ function getV2AppComponent(control) {
16
+ const ownerComponent = Component.getOwnerComponentFor(control);
17
+ let result;
18
+ if (ownerComponent?.isA('sap.suite.ui.generic.template.lib.TemplateComponent')) {
19
+ result = ownerComponent.getAppComponent();
20
+ }
21
+ return result;
22
+ }
23
+
24
+ /**
25
+ * Prepares the change for the manifest setting.
26
+ *
27
+ * @param context - The context object containing flexSettings.
28
+ * @param propertyPath - The path of the property in the manifest.
29
+ * @param control - The UI5 element representing the control.
30
+ * @param component - component name e.g list report or object page.
31
+ * @param entitySet - Entity Set name.
32
+ * @param propertyValue - The value to be set for the property.
33
+ *
34
+ * @returns A Promise resolving to an array of FlexCommand objects.
35
+ */
36
+ async function prepareManifestChange(context, propertyPath, control, component, entitySet, propertyValue) {
37
+ const {
38
+ flexSettings
39
+ } = context;
40
+ const appComponent = getV2AppComponent(control);
41
+ const modifiedValue = {
42
+ changeType: 'appdescr_ui_generic_app_changePageConfiguration',
43
+ reference: flexSettings.projectId,
44
+ appComponent,
45
+ parameters: {
46
+ parentPage: {
47
+ component,
48
+ entitySet
49
+ },
50
+ entityPropertyChange: {
51
+ propertyPath: propertyPath,
52
+ operation: 'UPSERT',
53
+ propertyValue: propertyValue
54
+ }
55
+ }
56
+ };
57
+ const command = await CommandFactory.getCommandFor(control, 'appDescriptor', modifiedValue, null, flexSettings);
58
+ return [command];
59
+ }
60
+
61
+ /**
62
+ * Checks whether the manifest has array structured page definitions
63
+ * @param manifest - manifest object
64
+ * @returns true if pages are defined as array, false if defined as object
65
+ */
66
+ function isManifestArrayStructured(manifest) {
67
+ return Array.isArray(manifest['sap.ui.generic.app']?.pages);
68
+ }
69
+
70
+ /**
71
+ * Checks if the current UI5 version and manifest structure is supported in v2 applications.
72
+ *
73
+ * @param manifest - manifest changes of the current application.
74
+ *
75
+ * Returns `false`
76
+ *
77
+ * - If the manifest is structured is an array and is below version 1.134
78
+ * - If the UI5 version is not supported
79
+ * Otherwise, returns `true`.
80
+ *
81
+ */
82
+ async function areManifestChangesSupported(manifest) {
83
+ const version = await getUi5Version();
84
+ if (isLowerThanMinimalUi5Version(version, {
85
+ major: 1,
86
+ minor: 134
87
+ }) && isManifestArrayStructured(manifest)) {
88
+ return false;
89
+ }
90
+ const isAboveOrEqualMinimalVersion = !isLowerThanMinimalUi5Version(version, {
91
+ major: 1,
92
+ minor: 128
93
+ });
94
+ const isSupportedPatchVersion = isVersionEqualOrHasNewerPatch(version, {
95
+ major: 1,
96
+ minor: 96,
97
+ patch: 35
98
+ }) || isVersionEqualOrHasNewerPatch(version, {
99
+ major: 1,
100
+ minor: 108,
101
+ patch: 38
102
+ }) || isVersionEqualOrHasNewerPatch(version, {
103
+ major: 1,
104
+ minor: 120,
105
+ patch: 23
106
+ });
107
+ return isAboveOrEqualMinimalVersion || isSupportedPatchVersion;
108
+ }
109
+ function isVariantManagementEnabledOPPage(context, control) {
110
+ const ownerComponent = Component.getOwnerComponentFor(control);
111
+ if (ownerComponent?.isA('sap.suite.ui.generic.template.ObjectPage.Component')) {
112
+ const id = control.getId();
113
+ if (typeof id !== 'string') {
114
+ throw new Error('Could not retrieve configuration property because control id is not valid!');
115
+ }
116
+ if (!control.isA('sap.ui.comp.smarttable.SmartTable')) {
117
+ // variant management is only supported by SmartTable
118
+ return false;
119
+ }
120
+ let value = context.changeService.getConfigurationPropertyValue(id, 'variantManagement');
121
+ if (value === undefined) {
122
+ value = !!control.getVariantManagement();
123
+ }
124
+ return value;
125
+ }
126
+ return undefined;
127
+ }
128
+ var __exports = {
129
+ __esModule: true
130
+ };
131
+ __exports.getV2AppComponent = getV2AppComponent;
132
+ __exports.prepareManifestChange = prepareManifestChange;
133
+ __exports.isManifestArrayStructured = isManifestArrayStructured;
134
+ __exports.areManifestChangesSupported = areManifestChangesSupported;
135
+ __exports.isVariantManagementEnabledOPPage = isVariantManagementEnabledOPPage;
136
+ return __exports;
137
+ });
138
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,134 @@
1
+ import type UI5Element from 'sap/ui/core/Element';
2
+ import type FlexCommand from 'sap/ui/rta/command/FlexCommand';
3
+ import CommandFactory from 'sap/ui/rta/command/CommandFactory';
4
+
5
+ import type { QuickActionContext } from '../../../cpe/quick-actions/quick-action-definition';
6
+ import { getUi5Version, isLowerThanMinimalUi5Version, isVersionEqualOrHasNewerPatch } from '../../../utils/version';
7
+ import type { Manifest } from 'sap/ui/rta/RuntimeAuthoring';
8
+ import Component from 'sap/ui/core/Component';
9
+ import type AppComponent from 'sap/suite/ui/generic/template/lib/AppComponent';
10
+ import type ManagedObject from 'sap/ui/base/ManagedObject';
11
+ import type TemplateComponent from 'sap/suite/ui/generic/template/lib/TemplateComponent';
12
+ import SmartTableExtended from 'sap/ui/comp/smarttable';
13
+
14
+ /**
15
+ * Gets app component of a v2 project.
16
+ *
17
+ * @param control - ManagedObject.
18
+ * @returns AppComponent.
19
+ */
20
+ export function getV2AppComponent(control: ManagedObject): AppComponent | undefined {
21
+ const ownerComponent = Component.getOwnerComponentFor(control);
22
+ let result;
23
+ if (ownerComponent?.isA<TemplateComponent>('sap.suite.ui.generic.template.lib.TemplateComponent')) {
24
+ result = ownerComponent.getAppComponent();
25
+ }
26
+ return result;
27
+ }
28
+
29
+ /**
30
+ * Prepares the change for the manifest setting.
31
+ *
32
+ * @param context - The context object containing flexSettings.
33
+ * @param propertyPath - The path of the property in the manifest.
34
+ * @param control - The UI5 element representing the control.
35
+ * @param component - component name e.g list report or object page.
36
+ * @param entitySet - Entity Set name.
37
+ * @param propertyValue - The value to be set for the property.
38
+ *
39
+ * @returns A Promise resolving to an array of FlexCommand objects.
40
+ */
41
+ export async function prepareManifestChange(
42
+ context: QuickActionContext,
43
+ propertyPath: string,
44
+ control: UI5Element,
45
+ component: string,
46
+ entitySet: string | undefined,
47
+ propertyValue: object | string
48
+ ): Promise<FlexCommand[]> {
49
+ const { flexSettings } = context;
50
+ const appComponent = getV2AppComponent(control);
51
+ const modifiedValue = {
52
+ changeType: 'appdescr_ui_generic_app_changePageConfiguration',
53
+ reference: flexSettings.projectId,
54
+ appComponent,
55
+ parameters: {
56
+ parentPage: {
57
+ component,
58
+ entitySet
59
+ },
60
+ entityPropertyChange: {
61
+ propertyPath: propertyPath,
62
+ operation: 'UPSERT',
63
+ propertyValue: propertyValue
64
+ }
65
+ }
66
+ };
67
+ const command = await CommandFactory.getCommandFor<FlexCommand>(
68
+ control,
69
+ 'appDescriptor',
70
+ modifiedValue,
71
+ null,
72
+ flexSettings
73
+ );
74
+ return [command];
75
+ }
76
+
77
+ /**
78
+ * Checks whether the manifest has array structured page definitions
79
+ * @param manifest - manifest object
80
+ * @returns true if pages are defined as array, false if defined as object
81
+ */
82
+ export function isManifestArrayStructured(manifest: Manifest): boolean {
83
+ return Array.isArray(manifest['sap.ui.generic.app']?.pages);
84
+ }
85
+
86
+ /**
87
+ * Checks if the current UI5 version and manifest structure is supported in v2 applications.
88
+ *
89
+ * @param manifest - manifest changes of the current application.
90
+ *
91
+ * Returns `false`
92
+ *
93
+ * - If the manifest is structured is an array and is below version 1.134
94
+ * - If the UI5 version is not supported
95
+ * Otherwise, returns `true`.
96
+ *
97
+ */
98
+ export async function areManifestChangesSupported(manifest: Manifest): Promise<boolean> {
99
+ const version = await getUi5Version();
100
+ if (isLowerThanMinimalUi5Version(version, { major: 1, minor: 134 }) && isManifestArrayStructured(manifest)) {
101
+ return false;
102
+ }
103
+
104
+ const isAboveOrEqualMinimalVersion = !isLowerThanMinimalUi5Version(version, { major: 1, minor: 128 });
105
+ const isSupportedPatchVersion =
106
+ isVersionEqualOrHasNewerPatch(version, { major: 1, minor: 96, patch: 35 }) ||
107
+ isVersionEqualOrHasNewerPatch(version, { major: 1, minor: 108, patch: 38 }) ||
108
+ isVersionEqualOrHasNewerPatch(version, { major: 1, minor: 120, patch: 23 });
109
+
110
+ return isAboveOrEqualMinimalVersion || isSupportedPatchVersion;
111
+ }
112
+
113
+ export function isVariantManagementEnabledOPPage(
114
+ context: QuickActionContext,
115
+ control: UI5Element
116
+ ): boolean | undefined {
117
+ const ownerComponent = Component.getOwnerComponentFor(control);
118
+ if (ownerComponent?.isA('sap.suite.ui.generic.template.ObjectPage.Component')) {
119
+ const id = control.getId();
120
+ if (typeof id !== 'string') {
121
+ throw new Error('Could not retrieve configuration property because control id is not valid!');
122
+ }
123
+ if (!control.isA<SmartTableExtended>('sap.ui.comp.smarttable.SmartTable')) {
124
+ // variant management is only supported by SmartTable
125
+ return false;
126
+ }
127
+ let value = context.changeService.getConfigurationPropertyValue(id, 'variantManagement');
128
+ if (value === undefined) {
129
+ value = !!control.getVariantManagement();
130
+ }
131
+ return value as boolean;
132
+ }
133
+ return undefined;
134
+ }
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ sap.ui.define(["../../../utils/fe-v4", "../add-new-subpage-quick-action-base", "../../../utils/core", "../../../utils/version"], function (_____utils_fe_v4, ___add_new_subpage_quick_action_base, _____utils_core, _____utils_version) {
4
+ "use strict";
5
+
6
+ const getV4AppComponent = _____utils_fe_v4["getV4AppComponent"];
7
+ const getV4ApplicationPages = _____utils_fe_v4["getV4ApplicationPages"];
8
+ const AddNewSubpageBase = ___add_new_subpage_quick_action_base["AddNewSubpageBase"];
9
+ const isA = _____utils_core["isA"];
10
+ const getUi5Version = _____utils_version["getUi5Version"];
11
+ const isLowerThanMinimalUi5Version = _____utils_version["isLowerThanMinimalUi5Version"];
12
+ const OBJECT_PAGE_COMPONENT_NAME_V4 = 'sap.fe.templates.ObjectPage.ObjectPage';
13
+ /**
14
+ * Quick Action for adding a custom page action.
15
+ */
16
+ class AddNewSubpage extends AddNewSubpageBase {
17
+ get currentPageDescriptor() {
18
+ if (!this.pageId) {
19
+ throw new Error('pageId is not defined');
20
+ }
21
+ if (!this.routePattern) {
22
+ throw new Error('routePattern is not defined');
23
+ }
24
+ if (!this.appComponent) {
25
+ throw new Error('appComponent is not defined');
26
+ }
27
+ return {
28
+ appType: 'fe-v4',
29
+ appComponent: this.appComponent,
30
+ pageId: this.pageId,
31
+ routePattern: this.routePattern
32
+ };
33
+ }
34
+ getApplicationPages() {
35
+ return getV4ApplicationPages(this.context.manifest);
36
+ }
37
+ async resolveContextPathTargetName(contextPath, metaModel) {
38
+ let result;
39
+ const segments = contextPath.split('/').filter(s => !!s);
40
+ if (segments.length === 1) {
41
+ // one segment - assumed it is the direct name of entitySet
42
+ result = segments[0];
43
+ } else {
44
+ // resolve segment by segment
45
+ let targetObject = await metaModel.requestObject(`/${segments[0]}`); // NO SONAR;
46
+
47
+ let idx = 1;
48
+ let targetSetName = '';
49
+ while (targetObject && idx < segments.length) {
50
+ const navProp = segments[idx];
51
+ targetSetName = targetObject.$NavigationPropertyBinding[navProp];
52
+ if (!targetSetName) {
53
+ targetObject = undefined;
54
+ } else {
55
+ targetObject = await metaModel.requestObject(`/${targetSetName}`); // NO SONAR;
56
+ idx++;
57
+ }
58
+ }
59
+ if (targetObject) {
60
+ result = targetSetName;
61
+ }
62
+ }
63
+ return result;
64
+ }
65
+ async isPageExists(targetEntitySet, metaModel) {
66
+ let pageFound = false;
67
+ let entitySetName;
68
+ for (const page of this.existingPages) {
69
+ if (page.contextPath) {
70
+ // resolve contextPath to target entitySet
71
+ entitySetName = await this.resolveContextPathTargetName(page.contextPath, metaModel);
72
+ } else {
73
+ entitySetName = page.entitySet;
74
+ }
75
+ if (entitySetName === targetEntitySet) {
76
+ pageFound = true;
77
+ break;
78
+ }
79
+ }
80
+ return pageFound;
81
+ }
82
+ isCurrentObjectPage() {
83
+ return this.pageType === OBJECT_PAGE_COMPONENT_NAME_V4;
84
+ }
85
+ getODataMetaModel() {
86
+ return this.context.rta.getRootControlInstance().getModel()?.getMetaModel();
87
+ }
88
+ async getEntitySetNameFromPageComponent(component, metaModel) {
89
+ if (!isA('sap.fe.templates.ListReport.Component', component) && !isA('sap.fe.templates.ObjectPage.Component', component)) {
90
+ throw new Error('Unexpected type of page owner component');
91
+ }
92
+ let entitySet = component.getEntitySet();
93
+ const contextPath = component.getContextPath();
94
+ if (contextPath) {
95
+ entitySet = await this.resolveContextPathTargetName(contextPath, metaModel);
96
+ }
97
+ return entitySet;
98
+ }
99
+ async prepareNavigationData(metaModel) {
100
+ const entitySet = await metaModel.requestObject(`/${this.entitySet}`); // NO SONAR;
101
+ if (!entitySet) {
102
+ return;
103
+ }
104
+ const entityTypePath = entitySet.$Type;
105
+ const entitySetNavigationKeys = Object.keys(entitySet.$NavigationPropertyBinding);
106
+ for (const navigationProperty of entitySetNavigationKeys) {
107
+ const associationEnd = await metaModel.requestObject(`/${entityTypePath}/${navigationProperty}`);
108
+ if (associationEnd?.$isCollection) {
109
+ const targetEntitySet = entitySet.$NavigationPropertyBinding[navigationProperty];
110
+ await this.addNavigationOptionIfAvailable(metaModel, targetEntitySet, navigationProperty);
111
+ }
112
+ }
113
+ }
114
+ async initialize() {
115
+ const version = await getUi5Version();
116
+ if (isLowerThanMinimalUi5Version(version, {
117
+ major: 1,
118
+ minor: 135
119
+ })) {
120
+ return;
121
+ }
122
+ await super.initialize();
123
+ this.appComponent = getV4AppComponent(this.context.view);
124
+ this.pageId = this.context.view.getViewData()?.stableId.split('::').pop();
125
+ // remember current page route pattern (used in dialog controller for new page change)
126
+ const currentPageRoute = (this.context.manifest['sap.ui5'].routing?.routes ?? []).find(r => r.name === this.pageId);
127
+ if (!currentPageRoute) {
128
+ throw new Error('Current page navigation route not found in manifest');
129
+ }
130
+ this.routePattern = currentPageRoute.pattern;
131
+ }
132
+ }
133
+ var __exports = {
134
+ __esModule: true
135
+ };
136
+ __exports.OBJECT_PAGE_COMPONENT_NAME_V4 = OBJECT_PAGE_COMPONENT_NAME_V4;
137
+ __exports.AddNewSubpage = AddNewSubpage;
138
+ return __exports;
139
+ });
140
+ //# sourceMappingURL=add-new-subpage.js.map
@@ -0,0 +1,181 @@
1
+ import ODataModelV4 from 'sap/ui/model/odata/v4/ODataModel';
2
+ import ODataMetaModelV4 from 'sap/ui/model/odata/v4/ODataMetaModel';
3
+ import Component from 'sap/ui/core/Component';
4
+ import AppComponent from 'sap/fe/core/AppComponent';
5
+
6
+ import { getV4AppComponent, getV4ApplicationPages } from '../../../utils/fe-v4';
7
+ import { AddNewSubpageBase, ApplicationPageData } from '../add-new-subpage-quick-action-base';
8
+ import { isA } from '../../../utils/core';
9
+ import FEObjectPageComponent from 'sap/fe/templates/ObjectPage/Component';
10
+ import FEListReportComponent from 'sap/fe/templates/ListReport/Component';
11
+ import { getUi5Version, isLowerThanMinimalUi5Version } from '../../../utils/version';
12
+ import { PageDescriptorV4 } from '../../controllers/types';
13
+
14
+ export const OBJECT_PAGE_COMPONENT_NAME_V4 = 'sap.fe.templates.ObjectPage.ObjectPage';
15
+
16
+ interface ViewDataType {
17
+ stableId: string;
18
+ }
19
+
20
+ /**
21
+ * Quick Action for adding a custom page action.
22
+ */
23
+ export class AddNewSubpage extends AddNewSubpageBase<ODataMetaModelV4> {
24
+ protected pageId: string | undefined;
25
+ protected routePattern: string | undefined;
26
+ protected appComponent: AppComponent | undefined;
27
+
28
+ protected get currentPageDescriptor(): PageDescriptorV4 {
29
+ if (!this.pageId) {
30
+ throw new Error('pageId is not defined');
31
+ }
32
+ if (!this.routePattern) {
33
+ throw new Error('routePattern is not defined');
34
+ }
35
+ if (!this.appComponent) {
36
+ throw new Error('appComponent is not defined');
37
+ }
38
+ return {
39
+ appType: 'fe-v4',
40
+ appComponent: this.appComponent,
41
+ pageId: this.pageId,
42
+ routePattern: this.routePattern
43
+ };
44
+ }
45
+
46
+ protected getApplicationPages(): ApplicationPageData[] {
47
+ return getV4ApplicationPages(this.context.manifest);
48
+ }
49
+
50
+ private async resolveContextPathTargetName(
51
+ contextPath: string,
52
+ metaModel: ODataMetaModelV4
53
+ ): Promise<string | undefined> {
54
+ let result: string | undefined;
55
+ const segments = contextPath.split('/').filter((s) => !!s);
56
+ if (segments.length === 1) {
57
+ // one segment - assumed it is the direct name of entitySet
58
+ result = segments[0];
59
+ } else {
60
+ // resolve segment by segment
61
+ let targetObject = (await metaModel.requestObject(`/${segments[0]}`)) as
62
+ | {
63
+ $Type: string;
64
+ $NavigationPropertyBinding: { [key: string]: string };
65
+ }
66
+ | undefined; // NO SONAR;
67
+
68
+ let idx = 1;
69
+ let targetSetName = '';
70
+ while (targetObject && idx < segments.length) {
71
+ const navProp = segments[idx];
72
+ targetSetName = targetObject.$NavigationPropertyBinding[navProp];
73
+ if (!targetSetName) {
74
+ targetObject = undefined;
75
+ } else {
76
+ targetObject = (await metaModel.requestObject(`/${targetSetName}`)) as
77
+ | {
78
+ $Type: string;
79
+ $NavigationPropertyBinding: { [key: string]: string };
80
+ }
81
+ | undefined; // NO SONAR;
82
+ idx++;
83
+ }
84
+ }
85
+ if (targetObject) {
86
+ result = targetSetName;
87
+ }
88
+ }
89
+ return result;
90
+ }
91
+
92
+ protected async isPageExists(targetEntitySet: string, metaModel: ODataMetaModelV4): Promise<boolean> {
93
+ let pageFound = false;
94
+ let entitySetName: string | undefined;
95
+ for (const page of this.existingPages) {
96
+ if (page.contextPath) {
97
+ // resolve contextPath to target entitySet
98
+ entitySetName = await this.resolveContextPathTargetName(page.contextPath, metaModel);
99
+ } else {
100
+ entitySetName = page.entitySet;
101
+ }
102
+
103
+ if (entitySetName === targetEntitySet) {
104
+ pageFound = true;
105
+ break;
106
+ }
107
+ }
108
+
109
+ return pageFound;
110
+ }
111
+
112
+ protected isCurrentObjectPage(): boolean {
113
+ return this.pageType === OBJECT_PAGE_COMPONENT_NAME_V4;
114
+ }
115
+
116
+ protected getODataMetaModel(): ODataMetaModelV4 | undefined {
117
+ return (this.context.rta.getRootControlInstance().getModel() as ODataModelV4)?.getMetaModel();
118
+ }
119
+
120
+ protected async getEntitySetNameFromPageComponent(
121
+ component: Component | undefined,
122
+ metaModel: ODataMetaModelV4
123
+ ): Promise<string | undefined> {
124
+ if (
125
+ !isA<FEObjectPageComponent>('sap.fe.templates.ListReport.Component', component) &&
126
+ !isA<FEListReportComponent>('sap.fe.templates.ObjectPage.Component', component)
127
+ ) {
128
+ throw new Error('Unexpected type of page owner component');
129
+ }
130
+ let entitySet: string | undefined = component.getEntitySet();
131
+ const contextPath = component.getContextPath();
132
+ if (contextPath) {
133
+ entitySet = await this.resolveContextPathTargetName(contextPath, metaModel);
134
+ }
135
+ return entitySet;
136
+ }
137
+
138
+ protected async prepareNavigationData(metaModel: ODataMetaModelV4) {
139
+ const entitySet = (await metaModel.requestObject(`/${this.entitySet}`)) as {
140
+ $Type: string;
141
+ $NavigationPropertyBinding: { [key: string]: string };
142
+ }; // NO SONAR;
143
+ if (!entitySet) {
144
+ return;
145
+ }
146
+ const entityTypePath = entitySet.$Type;
147
+ const entitySetNavigationKeys = Object.keys(entitySet.$NavigationPropertyBinding);
148
+
149
+ for (const navigationProperty of entitySetNavigationKeys) {
150
+ const associationEnd = (await metaModel.requestObject(`/${entityTypePath}/${navigationProperty}`)) as {
151
+ $Type: string;
152
+ $isCollection: boolean;
153
+ $kind: 'NavigationProperty';
154
+ };
155
+ if (associationEnd?.$isCollection) {
156
+ const targetEntitySet = entitySet.$NavigationPropertyBinding[navigationProperty];
157
+ await this.addNavigationOptionIfAvailable(metaModel, targetEntitySet, navigationProperty);
158
+ }
159
+ }
160
+ }
161
+
162
+ async initialize(): Promise<void> {
163
+ const version = await getUi5Version();
164
+ if (isLowerThanMinimalUi5Version(version, { major: 1, minor: 135 })) {
165
+ return;
166
+ }
167
+ await super.initialize();
168
+
169
+ this.appComponent = getV4AppComponent(this.context.view);
170
+
171
+ this.pageId = (this.context.view.getViewData() as ViewDataType)?.stableId.split('::').pop() as string;
172
+ // remember current page route pattern (used in dialog controller for new page change)
173
+ const currentPageRoute = (this.context.manifest['sap.ui5'].routing?.routes ?? []).find(
174
+ (r) => r.name === this.pageId
175
+ );
176
+ if (!currentPageRoute) {
177
+ throw new Error('Current page navigation route not found in manifest');
178
+ }
179
+ this.routePattern = currentPageRoute.pattern;
180
+ }
181
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ sap.ui.define(["sap/ui/dt/OverlayUtil", "../../../utils/core", "../table-quick-action-base", "../control-types", "../../../cpe/quick-actions/utils", "../fe-v2/create-table-custom-column", "../dialog-enablement-validator"], function (OverlayUtil, _____utils_core, ___table_quick_action_base, ___control_types, _____cpe_quick_actions_utils, ___fe_v2_create_table_custom_column, ___dialog_enablement_validator) {
4
+ "use strict";
5
+
6
+ const getControlById = _____utils_core["getControlById"];
7
+ const findNestedElements = _____utils_core["findNestedElements"];
8
+ const TableQuickActionDefinitionBase = ___table_quick_action_base["TableQuickActionDefinitionBase"];
9
+ const MDC_ACTION_TOOLBAR_TYPE = ___control_types["MDC_ACTION_TOOLBAR_TYPE"];
10
+ const MDC_TABLE_TYPE = ___control_types["MDC_TABLE_TYPE"];
11
+ const getRelevantControlFromActivePage = _____cpe_quick_actions_utils["getRelevantControlFromActivePage"];
12
+ const preprocessActionExecution = ___fe_v2_create_table_custom_column["preprocessActionExecution"];
13
+ const DIALOG_ENABLEMENT_VALIDATOR = ___dialog_enablement_validator["DIALOG_ENABLEMENT_VALIDATOR"];
14
+ const CHANGE_TABLE_ACTIONS = 'change-table-actions';
15
+ const ACTION_ID = 'CTX_SETTINGS';
16
+
17
+ /**
18
+ * Quick Action for changing table columns.
19
+ */
20
+ class ChangeTableActionsQuickAction extends TableQuickActionDefinitionBase {
21
+ toolbarsMap = {};
22
+ constructor(context) {
23
+ super(CHANGE_TABLE_ACTIONS, [MDC_TABLE_TYPE], 'V4_QUICK_ACTION_CHANGE_TABLE_ACTIONS', context, undefined, [DIALOG_ENABLEMENT_VALIDATOR]);
24
+ }
25
+ async initialize() {
26
+ const toolbars = getRelevantControlFromActivePage(this.context.controlIndex, this.context.view, [MDC_ACTION_TOOLBAR_TYPE]);
27
+ const processChild = async (child, mapKey) => {
28
+ const mapEntry = this.tableMap[mapKey];
29
+ if (mapEntry) {
30
+ const tableToolbar = findNestedElements(mapEntry.table, toolbars)[0];
31
+ this.toolbarsMap[mapKey] = tableToolbar;
32
+ const actions = tableToolbar ? await this.context.actionService.get(tableToolbar.getId()) : [];
33
+ const changeToolbarContentAction = actions.find(action => action.id === ACTION_ID);
34
+ child.enabled = !!changeToolbarContentAction?.enabled;
35
+ let tooltip;
36
+ if (!tableToolbar) {
37
+ tooltip = this.context.resourceBundle.getText('TABLE_HEADER_TOOLBAR_NOT_AVAILABLE');
38
+ } else if (!child.enabled) {
39
+ tooltip = this.context.resourceBundle.getText('TABLE_HEADER_TOOLBAR_NOT_CHANGEABLE');
40
+ }
41
+ child.tooltip = tooltip ?? child.tooltip;
42
+ }
43
+ for (let idx = 0; idx < child.children.length; idx++) {
44
+ await processChild(child.children[idx], `${mapKey}/${idx}`);
45
+ }
46
+ };
47
+ await super.initialize();
48
+
49
+ // disable nested actions based on conditions
50
+ for (let idx = 0; idx < this.children.length; idx++) {
51
+ await processChild(this.children[idx], `${idx}`);
52
+ }
53
+ }
54
+ async execute(path) {
55
+ const {
56
+ table,
57
+ sectionInfo,
58
+ iconTabBarFilterKey
59
+ } = this.tableMap[path];
60
+ const toolbar = this.toolbarsMap[path];
61
+ if (!table || !toolbar) {
62
+ return [];
63
+ }
64
+ preprocessActionExecution(table, sectionInfo, this.iconTabBar, iconTabBarFilterKey);
65
+ const toolbarControl = getControlById(toolbar.getId());
66
+ const controlOverlay = OverlayUtil.getClosestOverlayFor(toolbarControl);
67
+ if (controlOverlay) {
68
+ controlOverlay.setSelected(true);
69
+ await this.context.actionService.execute(toolbar.getId(), ACTION_ID);
70
+ }
71
+ return [];
72
+ }
73
+ }
74
+ var __exports = {
75
+ __esModule: true
76
+ };
77
+ __exports.CHANGE_TABLE_ACTIONS = CHANGE_TABLE_ACTIONS;
78
+ __exports.ChangeTableActionsQuickAction = ChangeTableActionsQuickAction;
79
+ return __exports;
80
+ });
81
+ //# sourceMappingURL=change-table-actions.js.map