@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,91 @@
1
+ "use strict";
2
+
3
+ sap.ui.define(["../../../utils/fe-v4", "../../../utils/version", "../control-types", "../table-quick-action-base", "../../../utils/core", "../common/utils", "../fe-v2/create-table-custom-column"], function (_____utils_fe_v4, _____utils_version, ___control_types, ___table_quick_action_base, _____utils_core, ___common_utils, ___fe_v2_create_table_custom_column) {
4
+ "use strict";
5
+
6
+ const createManifestPropertyChange = _____utils_fe_v4["createManifestPropertyChange"];
7
+ const getUi5Version = _____utils_version["getUi5Version"];
8
+ const isLowerThanMinimalUi5Version = _____utils_version["isLowerThanMinimalUi5Version"];
9
+ const ANALYTICAL_TABLE_TYPE = ___control_types["ANALYTICAL_TABLE_TYPE"];
10
+ const GRID_TABLE_TYPE = ___control_types["GRID_TABLE_TYPE"];
11
+ const MDC_TABLE_TYPE = ___control_types["MDC_TABLE_TYPE"];
12
+ const TREE_TABLE_TYPE = ___control_types["TREE_TABLE_TYPE"];
13
+ const TableQuickActionDefinitionBase = ___table_quick_action_base["TableQuickActionDefinitionBase"];
14
+ const isA = _____utils_core["isA"];
15
+ const getTooltipsForTableEmptyRowModeAction = ___common_utils["getTooltipsForTableEmptyRowModeAction"];
16
+ const preprocessActionExecution = ___fe_v2_create_table_custom_column["preprocessActionExecution"];
17
+ const ENABLE_TABLE_EMPTY_ROW_MODE = 'enable-table-empty-row-mode';
18
+ const CONTROL_TYPES = [MDC_TABLE_TYPE, GRID_TABLE_TYPE, ANALYTICAL_TABLE_TYPE, TREE_TABLE_TYPE];
19
+ const UNSUPPORTED_TABLES = [ANALYTICAL_TABLE_TYPE, TREE_TABLE_TYPE];
20
+ const INLINE_CREATION_ROWS_MODE = 'InlineCreationRows';
21
+ /**
22
+ * Quick Action for enabling table filtering using table personalization settings.
23
+ */
24
+ class EnableTableEmptyRowModeQuickAction extends TableQuickActionDefinitionBase {
25
+ constructor(context) {
26
+ super(ENABLE_TABLE_EMPTY_ROW_MODE, CONTROL_TYPES, 'QUICK_ACTION_ENABLE_TABLE_EMPTY_ROW_MODE', context);
27
+ }
28
+ forceRefreshAfterExecution = true;
29
+ async initialize() {
30
+ const version = await getUi5Version();
31
+ if (isLowerThanMinimalUi5Version(version, {
32
+ major: 1,
33
+ minor: 131
34
+ })) {
35
+ this.isApplicable = false;
36
+ return;
37
+ }
38
+ const {
39
+ alreadyEnabledTooltip,
40
+ unsupportedCreationRowsTooltip
41
+ } = getTooltipsForTableEmptyRowModeAction(this.context.resourceBundle);
42
+ const processChild = (child, mapKey) => {
43
+ const table = this.tableMap[mapKey]?.table;
44
+ if (table) {
45
+ if (UNSUPPORTED_TABLES.some(t => isA(t, table))) {
46
+ child.enabled = false;
47
+ child.tooltip = unsupportedCreationRowsTooltip;
48
+ } else if (table.data('creationMode') === INLINE_CREATION_ROWS_MODE) {
49
+ child.enabled = false;
50
+ child.tooltip = alreadyEnabledTooltip;
51
+ }
52
+ }
53
+ child.children.forEach((nestedChild, idx) => processChild(nestedChild, `${mapKey}/${idx.toFixed(0)}`));
54
+ };
55
+ await super.initialize();
56
+
57
+ // disable nested actions based on conditions
58
+ this.children.forEach((nestedChild, idx) => processChild(nestedChild, `${idx.toFixed(0)}`));
59
+ }
60
+ async execute(path) {
61
+ const {
62
+ flexSettings
63
+ } = this.context;
64
+ const {
65
+ table,
66
+ sectionInfo,
67
+ iconTabBarFilterKey
68
+ } = this.tableMap[path];
69
+ if (!table) {
70
+ return [];
71
+ }
72
+ preprocessActionExecution(table, sectionInfo, this.iconTabBar, iconTabBarFilterKey);
73
+ this.selectOverlay(table);
74
+ const command = await createManifestPropertyChange(table, flexSettings, {
75
+ name: INLINE_CREATION_ROWS_MODE
76
+ }, ['creationMode']);
77
+ if (command) {
78
+ return [command];
79
+ } else {
80
+ return [];
81
+ }
82
+ }
83
+ }
84
+ var __exports = {
85
+ __esModule: true
86
+ };
87
+ __exports.ENABLE_TABLE_EMPTY_ROW_MODE = ENABLE_TABLE_EMPTY_ROW_MODE;
88
+ __exports.EnableTableEmptyRowModeQuickAction = EnableTableEmptyRowModeQuickAction;
89
+ return __exports;
90
+ });
91
+ //# sourceMappingURL=op-enable-empty-row-mode.js.map
@@ -0,0 +1,88 @@
1
+ import type FlexCommand from 'sap/ui/rta/command/FlexCommand';
2
+
3
+ import type {
4
+ NestedQuickActionDefinition,
5
+ QuickActionContext
6
+ } from '../../../cpe/quick-actions/quick-action-definition';
7
+ import { createManifestPropertyChange } from '../../../utils/fe-v4';
8
+ import { getUi5Version, isLowerThanMinimalUi5Version } from '../../../utils/version';
9
+ import { ANALYTICAL_TABLE_TYPE, GRID_TABLE_TYPE, MDC_TABLE_TYPE, TREE_TABLE_TYPE } from '../control-types';
10
+ import { TableQuickActionDefinitionBase } from '../table-quick-action-base';
11
+ import { isA } from '../../../utils/core';
12
+ import { getTooltipsForTableEmptyRowModeAction } from '../common/utils';
13
+ import type { NestedQuickActionChild } from '@sap-ux-private/control-property-editor-common';
14
+ import { preprocessActionExecution } from '../fe-v2/create-table-custom-column';
15
+
16
+ export const ENABLE_TABLE_EMPTY_ROW_MODE = 'enable-table-empty-row-mode';
17
+ const CONTROL_TYPES = [MDC_TABLE_TYPE, GRID_TABLE_TYPE, ANALYTICAL_TABLE_TYPE, TREE_TABLE_TYPE];
18
+ const UNSUPPORTED_TABLES = [ANALYTICAL_TABLE_TYPE, TREE_TABLE_TYPE];
19
+
20
+ const INLINE_CREATION_ROWS_MODE = 'InlineCreationRows';
21
+ /**
22
+ * Quick Action for enabling table filtering using table personalization settings.
23
+ */
24
+ export class EnableTableEmptyRowModeQuickAction
25
+ extends TableQuickActionDefinitionBase
26
+ implements NestedQuickActionDefinition
27
+ {
28
+ constructor(context: QuickActionContext) {
29
+ super(ENABLE_TABLE_EMPTY_ROW_MODE, CONTROL_TYPES, 'QUICK_ACTION_ENABLE_TABLE_EMPTY_ROW_MODE', context);
30
+ }
31
+ readonly forceRefreshAfterExecution = true;
32
+
33
+ async initialize(): Promise<void> {
34
+ const version = await getUi5Version();
35
+ if (isLowerThanMinimalUi5Version(version, { major: 1, minor: 131 })) {
36
+ this.isApplicable = false;
37
+ return;
38
+ }
39
+
40
+ const { alreadyEnabledTooltip, unsupportedCreationRowsTooltip } = getTooltipsForTableEmptyRowModeAction(
41
+ this.context.resourceBundle
42
+ );
43
+
44
+ const processChild = (child: NestedQuickActionChild, mapKey: string) => {
45
+ const table = this.tableMap[mapKey]?.table;
46
+ if (table) {
47
+ if (UNSUPPORTED_TABLES.some((t) => isA(t, table))) {
48
+ child.enabled = false;
49
+ child.tooltip = unsupportedCreationRowsTooltip;
50
+ } else if (table.data('creationMode') === INLINE_CREATION_ROWS_MODE) {
51
+ child.enabled = false;
52
+ child.tooltip = alreadyEnabledTooltip;
53
+ }
54
+ }
55
+ child.children.forEach((nestedChild, idx) => processChild(nestedChild, `${mapKey}/${idx.toFixed(0)}`));
56
+ };
57
+
58
+ await super.initialize();
59
+
60
+ // disable nested actions based on conditions
61
+ this.children.forEach((nestedChild, idx) => processChild(nestedChild, `${idx.toFixed(0)}`));
62
+ }
63
+
64
+ async execute(path: string): Promise<FlexCommand[]> {
65
+ const { flexSettings } = this.context;
66
+ const { table, sectionInfo, iconTabBarFilterKey } = this.tableMap[path];
67
+ if (!table) {
68
+ return [];
69
+ }
70
+
71
+ preprocessActionExecution(table, sectionInfo, this.iconTabBar, iconTabBarFilterKey);
72
+ this.selectOverlay(table);
73
+
74
+ const command = await createManifestPropertyChange(
75
+ table,
76
+ flexSettings,
77
+ {
78
+ name: INLINE_CREATION_ROWS_MODE
79
+ },
80
+ ['creationMode']
81
+ );
82
+ if (command) {
83
+ return [command];
84
+ } else {
85
+ return [];
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ sap.ui.define(["../../../cpe/quick-actions/registry", "../common/add-controller-to-page", "./lr-toggle-clear-filter-bar", "./change-table-columns", "../common/op-add-header-field", "./op-add-custom-section", "./create-page-action", "./lr-enable-table-filtering", "./lr-enable-semantic-date-range-filter-bar", "./op-enable-empty-row-mode", "../common/add-new-annotation-file", "./enable-variant-management", "../fe-v4/add-new-subpage", "../fe-v4/change-table-actions", "./create-table-action-config-change", "./create-table-custom-column-config-change"], function (_____cpe_quick_actions_registry, ___common_add_controller_to_page, ___lr_toggle_clear_filter_bar, ___change_table_columns, ___common_op_add_header_field, ___op_add_custom_section, ___create_page_action, ___lr_enable_table_filtering, ___lr_enable_semantic_date_range_filter_bar, ___op_enable_empty_row_mode, ___common_add_new_annotation_file, ___enable_variant_management, ___fe_v4_add_new_subpage, ___fe_v4_change_table_actions, ___create_table_action_config_change, ___create_table_custom_column_config_change) {
4
+ "use strict";
5
+
6
+ const QuickActionDefinitionRegistry = _____cpe_quick_actions_registry["QuickActionDefinitionRegistry"];
7
+ const AddControllerToPageQuickAction = ___common_add_controller_to_page["AddControllerToPageQuickAction"];
8
+ const ToggleClearFilterBarQuickAction = ___lr_toggle_clear_filter_bar["ToggleClearFilterBarQuickAction"];
9
+ const ChangeTableColumnsQuickAction = ___change_table_columns["ChangeTableColumnsQuickAction"];
10
+ const AddHeaderFieldQuickAction = ___common_op_add_header_field["AddHeaderFieldQuickAction"];
11
+ const AddCustomSectionQuickAction = ___op_add_custom_section["AddCustomSectionQuickAction"];
12
+ const AddPageActionQuickAction = ___create_page_action["AddPageActionQuickAction"];
13
+ const EnableTableFilteringQuickAction = ___lr_enable_table_filtering["EnableTableFilteringQuickAction"];
14
+ const ToggleSemanticDateRangeFilterBar = ___lr_enable_semantic_date_range_filter_bar["ToggleSemanticDateRangeFilterBar"];
15
+ const EnableTableEmptyRowModeQuickAction = ___op_enable_empty_row_mode["EnableTableEmptyRowModeQuickAction"];
16
+ const AddNewAnnotationFile = ___common_add_new_annotation_file["AddNewAnnotationFile"];
17
+ const EnableVariantManagementQuickAction = ___enable_variant_management["EnableVariantManagementQuickAction"];
18
+ const AddNewSubpage = ___fe_v4_add_new_subpage["AddNewSubpage"];
19
+ const ChangeTableActionsQuickAction = ___fe_v4_change_table_actions["ChangeTableActionsQuickAction"];
20
+ const AddTableActionQuickAction = ___create_table_action_config_change["AddTableActionQuickAction"];
21
+ const AddTableCustomColumnQuickAction = ___create_table_custom_column_config_change["AddTableCustomColumnQuickAction"];
22
+ const LIST_REPORT_TYPE = 'sap.fe.templates.ListReport.ListReport';
23
+ const OBJECT_PAGE_TYPE = 'sap.fe.templates.ObjectPage.ObjectPage';
24
+
25
+ /**
26
+ * Quick Action provider for SAP Fiori Elements V4 applications.
27
+ */
28
+ class FEV4QuickActionRegistry extends QuickActionDefinitionRegistry {
29
+ PAGE_NAME_MAP = {
30
+ [LIST_REPORT_TYPE]: 'listReport',
31
+ [OBJECT_PAGE_TYPE]: 'objectPage'
32
+ };
33
+ getDefinitions(context) {
34
+ const activePages = this.getActivePageContent(context.controlIndex);
35
+ const definitionGroups = [];
36
+ for (let index = 0; index < activePages.length; index++) {
37
+ const {
38
+ name,
39
+ view
40
+ } = activePages[index];
41
+ if (name === 'listReport') {
42
+ definitionGroups.push({
43
+ title: 'LIST REPORT',
44
+ definitions: [AddControllerToPageQuickAction, AddPageActionQuickAction, ToggleClearFilterBarQuickAction, ToggleSemanticDateRangeFilterBar, EnableVariantManagementQuickAction, ChangeTableActionsQuickAction, ChangeTableColumnsQuickAction, AddTableActionQuickAction, AddTableCustomColumnQuickAction, EnableTableFilteringQuickAction, AddNewAnnotationFile, AddNewSubpage],
45
+ view,
46
+ key: name + index
47
+ });
48
+ } else if (name === 'objectPage') {
49
+ definitionGroups.push({
50
+ title: 'OBJECT PAGE',
51
+ definitions: [AddControllerToPageQuickAction, AddPageActionQuickAction, AddHeaderFieldQuickAction, AddCustomSectionQuickAction, EnableVariantManagementQuickAction, ChangeTableActionsQuickAction, ChangeTableColumnsQuickAction, AddTableActionQuickAction, AddTableCustomColumnQuickAction, EnableTableEmptyRowModeQuickAction, AddNewAnnotationFile, AddNewSubpage],
52
+ view,
53
+ key: name + index
54
+ });
55
+ }
56
+ }
57
+ return definitionGroups;
58
+ }
59
+ }
60
+ return FEV4QuickActionRegistry;
61
+ });
62
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1,86 @@
1
+ import type {
2
+ QuickActionActivationContext,
3
+ QuickActionDefinitionGroup
4
+ } from '../../../cpe/quick-actions/quick-action-definition';
5
+ import { QuickActionDefinitionRegistry } from '../../../cpe/quick-actions/registry';
6
+
7
+ import { AddControllerToPageQuickAction } from '../common/add-controller-to-page';
8
+ import { ToggleClearFilterBarQuickAction } from './lr-toggle-clear-filter-bar';
9
+ import { ChangeTableColumnsQuickAction } from './change-table-columns';
10
+ import { AddHeaderFieldQuickAction } from '../common/op-add-header-field';
11
+ import { AddCustomSectionQuickAction } from './op-add-custom-section';
12
+ import { AddPageActionQuickAction } from './create-page-action';
13
+ import { EnableTableFilteringQuickAction } from './lr-enable-table-filtering';
14
+ import { ToggleSemanticDateRangeFilterBar } from './lr-enable-semantic-date-range-filter-bar';
15
+ import { EnableTableEmptyRowModeQuickAction } from './op-enable-empty-row-mode';
16
+ import { AddNewAnnotationFile } from '../common/add-new-annotation-file';
17
+ import { EnableVariantManagementQuickAction } from './enable-variant-management';
18
+ import { AddNewSubpage } from '../fe-v4/add-new-subpage';
19
+ import { ChangeTableActionsQuickAction } from '../fe-v4/change-table-actions';
20
+ import { AddTableActionQuickAction } from './create-table-action-config-change';
21
+ import { AddTableCustomColumnQuickAction } from './create-table-custom-column-config-change';
22
+
23
+ type PageName = 'listReport' | 'objectPage';
24
+
25
+ const LIST_REPORT_TYPE = 'sap.fe.templates.ListReport.ListReport';
26
+ const OBJECT_PAGE_TYPE = 'sap.fe.templates.ObjectPage.ObjectPage';
27
+
28
+ /**
29
+ * Quick Action provider for SAP Fiori Elements V4 applications.
30
+ */
31
+ export default class FEV4QuickActionRegistry extends QuickActionDefinitionRegistry<PageName> {
32
+ PAGE_NAME_MAP: Record<string, PageName> = {
33
+ [LIST_REPORT_TYPE]: 'listReport',
34
+ [OBJECT_PAGE_TYPE]: 'objectPage'
35
+ };
36
+
37
+ getDefinitions(context: QuickActionActivationContext): QuickActionDefinitionGroup[] {
38
+ const activePages = this.getActivePageContent(context.controlIndex);
39
+ const definitionGroups: QuickActionDefinitionGroup[] = [];
40
+ for (let index = 0; index < activePages.length; index++) {
41
+ const { name, view } = activePages[index];
42
+ if (name === 'listReport') {
43
+ definitionGroups.push({
44
+ title: 'LIST REPORT',
45
+ definitions: [
46
+ AddControllerToPageQuickAction,
47
+ AddPageActionQuickAction,
48
+ ToggleClearFilterBarQuickAction,
49
+ ToggleSemanticDateRangeFilterBar,
50
+ EnableVariantManagementQuickAction,
51
+ ChangeTableActionsQuickAction,
52
+ ChangeTableColumnsQuickAction,
53
+ AddTableActionQuickAction,
54
+ AddTableCustomColumnQuickAction,
55
+ EnableTableFilteringQuickAction,
56
+ AddNewAnnotationFile,
57
+ AddNewSubpage
58
+ ],
59
+ view,
60
+ key: name + index
61
+ });
62
+ } else if (name === 'objectPage') {
63
+ definitionGroups.push({
64
+ title: 'OBJECT PAGE',
65
+ definitions: [
66
+ AddControllerToPageQuickAction,
67
+ AddPageActionQuickAction,
68
+ AddHeaderFieldQuickAction,
69
+ AddCustomSectionQuickAction,
70
+ EnableVariantManagementQuickAction,
71
+ ChangeTableActionsQuickAction,
72
+ ChangeTableColumnsQuickAction,
73
+ AddTableActionQuickAction,
74
+ AddTableCustomColumnQuickAction,
75
+ EnableTableEmptyRowModeQuickAction,
76
+ AddNewAnnotationFile,
77
+ AddNewSubpage
78
+ ],
79
+ view,
80
+ key: name + index
81
+ });
82
+ }
83
+ }
84
+ return definitionGroups;
85
+ }
86
+ }
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+
3
+ sap.ui.define(["../../../utils/core", "sap/ui/rta/command/CommandFactory", "../../../utils/fe-v4"], function (_____utils_core, CommandFactory, _____utils_fe_v4) {
4
+ "use strict";
5
+
6
+ const getControlById = _____utils_core["getControlById"];
7
+ const getV4AppComponent = _____utils_fe_v4["getV4AppComponent"];
8
+ const getPageName = _____utils_fe_v4["getPageName"];
9
+ const getReference = _____utils_fe_v4["getReference"];
10
+ const isMacroTable = _____utils_fe_v4["isMacroTable"];
11
+ async function executeToggleAction(context, isButtonEnabled, controlType, propertyPath) {
12
+ const controls = context.controlIndex[controlType] ?? [];
13
+ const control = controls[0];
14
+ if (control) {
15
+ const modifiedControl = getControlById(control.controlId);
16
+ if (!modifiedControl) {
17
+ return [];
18
+ }
19
+ const {
20
+ flexSettings
21
+ } = context;
22
+ const parent = modifiedControl.getParent();
23
+ if (!parent) {
24
+ return [];
25
+ }
26
+ const modifiedValue = {
27
+ reference: getReference(modifiedControl),
28
+ appComponent: getV4AppComponent(modifiedControl),
29
+ changeType: 'appdescr_fe_changePageConfiguration',
30
+ parameters: {
31
+ page: getPageName(parent),
32
+ entityPropertyChange: {
33
+ propertyPath: propertyPath,
34
+ propertyValue: !isButtonEnabled,
35
+ operation: 'UPSERT'
36
+ }
37
+ }
38
+ };
39
+ const command = await CommandFactory.getCommandFor(modifiedControl, 'appDescriptor', modifiedValue, null, flexSettings);
40
+ return [command];
41
+ }
42
+ return [];
43
+ }
44
+ const PATTERN_SUFFIX = ':?query:';
45
+
46
+ /**
47
+ * Generates the pattern for a new route based on the input.
48
+ *
49
+ * @param sourceRoutePattern source page route pattern
50
+ * @param navProperty navigation property name (used to build nav pattern for nested OP )
51
+ * @param targetEntitySet navigation target entity set
52
+ * @returns the generated pattern as string
53
+ */
54
+ function generateRoutePattern(sourceRoutePattern, navProperty, targetEntitySet) {
55
+ const parts = [];
56
+ const basePattern = sourceRoutePattern.replace(PATTERN_SUFFIX, '');
57
+ if (basePattern) {
58
+ parts.push(basePattern);
59
+ parts.push('/');
60
+ parts.push(navProperty);
61
+ } else {
62
+ parts.push(targetEntitySet);
63
+ }
64
+ parts.push(`({${targetEntitySet}Key})`);
65
+ parts.push(PATTERN_SUFFIX);
66
+ return parts.join('');
67
+ }
68
+
69
+ /**
70
+ * Get LineItem annotation - tries to use design-time helper if available, falls back to local implementation.
71
+ *
72
+ * @param table - table control
73
+ * @returns LineItem annotation string
74
+ */
75
+ function getLineItemAnnotation(table) {
76
+ try {
77
+ const helper = sap.ui.require('sap/fe/macros/table/designtime/Table.designtime.helper');
78
+ if (helper && typeof helper.getLineItemAnnotation === 'function') {
79
+ return helper.getLineItemAnnotation(table);
80
+ }
81
+ } catch {
82
+ // Module not available or error occurred
83
+ }
84
+ return getLineItemAnnotationForTable(table);
85
+ }
86
+
87
+ /**
88
+ * Get property path for table action.
89
+ *
90
+ * @param table - table control
91
+ * @returns string
92
+ */
93
+ function getPropertyPath(table, property = 'actions') {
94
+ const macroTable = table.getParent();
95
+ const configPath = '';
96
+ if (isMacroTable(macroTable)) {
97
+ const lineItemAnnotation = getLineItemAnnotation(macroTable);
98
+ const navigationPath = macroTable.metaPath.split(macroTable.getProperty('contextPath'))[1];
99
+ if (!lineItemAnnotation) {
100
+ throw new Error('Line item annotation could not be determined for the table.');
101
+ }
102
+ if (navigationPath) {
103
+ return configPath.concat('controlConfiguration/', navigationPath.split('@')[0], lineItemAnnotation, `/${property}/`);
104
+ } else {
105
+ let contextString = macroTable.metaPath;
106
+ const firstSlash = contextString.indexOf('/');
107
+ if (firstSlash >= 0) {
108
+ contextString = contextString.substring(firstSlash + 1);
109
+ }
110
+ const secondSlash = contextString.indexOf('/');
111
+ if (secondSlash >= 0) {
112
+ contextString = contextString.substring(0, secondSlash);
113
+ }
114
+ return configPath.concat('controlConfiguration/', '/', contextString, '/', lineItemAnnotation, `/${property}/`);
115
+ }
116
+ }
117
+ return undefined;
118
+ }
119
+
120
+ /**
121
+ * Return the line item annotation that defines the table.
122
+ * This may come from a Presentation Variant, a Selection Presentation Variant or the default.
123
+ * @param table - The table control
124
+ * @returns The line item annotation used to define the table
125
+ */
126
+ function getLineItemAnnotationForTable(macroTable) {
127
+ let lineItemAnnotation = '';
128
+ if (isMacroTable(macroTable)) {
129
+ const presentation = macroTable.getModel()?.getMetaModel()?.getObject(macroTable.metaPath);
130
+
131
+ // default line item annotation
132
+ if (!presentation.Visualizations && !presentation.PresentationVariant) {
133
+ lineItemAnnotation = macroTable.metaPath.split('/').pop();
134
+ } else if (presentation.Visualizations) {
135
+ lineItemAnnotation = presentation.Visualizations[0].$AnnotationPath;
136
+ } else if (presentation.PresentationVariant) {
137
+ if (presentation.PresentationVariant.Visualizations) {
138
+ lineItemAnnotation = presentation.PresentationVariant.Visualizations[0].$AnnotationPath;
139
+ } else {
140
+ const contextPath = macroTable.metaPath.startsWith('/') ? macroTable.metaPath.split('@')[0] : macroTable.contextPath;
141
+ const pathForLineItems = contextPath + presentation.PresentationVariant.$Path;
142
+ const presentationVariantType = macroTable.getModel()?.getMetaModel()?.getObject(pathForLineItems);
143
+ lineItemAnnotation = presentationVariantType.Visualizations[0].$AnnotationPath;
144
+ }
145
+ }
146
+ }
147
+ return lineItemAnnotation;
148
+ }
149
+ var __exports = {
150
+ __esModule: true
151
+ };
152
+ __exports.executeToggleAction = executeToggleAction;
153
+ __exports.generateRoutePattern = generateRoutePattern;
154
+ __exports.getLineItemAnnotation = getLineItemAnnotation;
155
+ __exports.getPropertyPath = getPropertyPath;
156
+ return __exports;
157
+ });
158
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,175 @@
1
+ import { getControlById } from '../../../utils/core';
2
+ import type FlexCommand from 'sap/ui/rta/command/FlexCommand';
3
+ import type { QuickActionContext } from '../../../cpe/quick-actions/quick-action-definition';
4
+ import CommandFactory from 'sap/ui/rta/command/CommandFactory';
5
+ import { getV4AppComponent, getPageName, getReference, isMacroTable } from '../../../utils/fe-v4';
6
+ import UI5Element from 'sap/ui/core/Element';
7
+
8
+ export async function executeToggleAction(
9
+ context: QuickActionContext,
10
+ isButtonEnabled: boolean,
11
+ controlType: string,
12
+ propertyPath: string
13
+ ): Promise<FlexCommand[]> {
14
+ const controls = context.controlIndex[controlType] ?? [];
15
+ const control = controls[0];
16
+ if (control) {
17
+ const modifiedControl = getControlById(control.controlId);
18
+ if (!modifiedControl) {
19
+ return [];
20
+ }
21
+
22
+ const { flexSettings } = context;
23
+ const parent = modifiedControl.getParent();
24
+ if (!parent) {
25
+ return [];
26
+ }
27
+
28
+ const modifiedValue = {
29
+ reference: getReference(modifiedControl),
30
+ appComponent: getV4AppComponent(modifiedControl),
31
+ changeType: 'appdescr_fe_changePageConfiguration',
32
+ parameters: {
33
+ page: getPageName(parent),
34
+ entityPropertyChange: {
35
+ propertyPath: propertyPath,
36
+ propertyValue: !isButtonEnabled,
37
+ operation: 'UPSERT'
38
+ }
39
+ }
40
+ };
41
+
42
+ const command = await CommandFactory.getCommandFor<FlexCommand>(
43
+ modifiedControl,
44
+ 'appDescriptor',
45
+ modifiedValue,
46
+ null,
47
+ flexSettings
48
+ );
49
+
50
+ return [command];
51
+ }
52
+
53
+ return [];
54
+ }
55
+
56
+ const PATTERN_SUFFIX = ':?query:';
57
+
58
+ /**
59
+ * Generates the pattern for a new route based on the input.
60
+ *
61
+ * @param sourceRoutePattern source page route pattern
62
+ * @param navProperty navigation property name (used to build nav pattern for nested OP )
63
+ * @param targetEntitySet navigation target entity set
64
+ * @returns the generated pattern as string
65
+ */
66
+ export function generateRoutePattern(sourceRoutePattern: string, navProperty: string, targetEntitySet: string): string {
67
+ const parts: string[] = [];
68
+ const basePattern = sourceRoutePattern.replace(PATTERN_SUFFIX, '');
69
+ if (basePattern) {
70
+ parts.push(basePattern);
71
+ parts.push('/');
72
+ parts.push(navProperty);
73
+ } else {
74
+ parts.push(targetEntitySet);
75
+ }
76
+ parts.push(`({${targetEntitySet}Key})`);
77
+ parts.push(PATTERN_SUFFIX);
78
+ return parts.join('');
79
+ }
80
+
81
+ /**
82
+ * Get LineItem annotation - tries to use design-time helper if available, falls back to local implementation.
83
+ *
84
+ * @param table - table control
85
+ * @returns LineItem annotation string
86
+ */
87
+ export function getLineItemAnnotation(table: UI5Element): string | undefined {
88
+ try {
89
+ const helper = sap.ui.require('sap/fe/macros/table/designtime/Table.designtime.helper');
90
+ if (helper && typeof helper.getLineItemAnnotation === 'function') {
91
+ return helper.getLineItemAnnotation(table);
92
+ }
93
+ } catch {
94
+ // Module not available or error occurred
95
+ }
96
+ return getLineItemAnnotationForTable(table);
97
+ }
98
+
99
+ /**
100
+ * Get property path for table action.
101
+ *
102
+ * @param table - table control
103
+ * @returns string
104
+ */
105
+ export function getPropertyPath(table: UI5Element, property: 'actions' | 'columns' = 'actions'): string | undefined {
106
+ const macroTable = table.getParent();
107
+ const configPath = '';
108
+ if (isMacroTable(macroTable)) {
109
+ const lineItemAnnotation = getLineItemAnnotation(macroTable);
110
+
111
+ const navigationPath = macroTable.metaPath.split(macroTable.getProperty('contextPath'))[1];
112
+ if (!lineItemAnnotation) {
113
+ throw new Error('Line item annotation could not be determined for the table.');
114
+ }
115
+ if (navigationPath) {
116
+ return configPath.concat(
117
+ 'controlConfiguration/',
118
+ navigationPath.split('@')[0],
119
+ lineItemAnnotation,
120
+ `/${property}/`
121
+ );
122
+ } else {
123
+ let contextString = macroTable.metaPath;
124
+ const firstSlash = contextString.indexOf('/');
125
+ if (firstSlash >= 0) {
126
+ contextString = contextString.substring(firstSlash + 1);
127
+ }
128
+ const secondSlash = contextString.indexOf('/');
129
+ if (secondSlash >= 0) {
130
+ contextString = contextString.substring(0, secondSlash);
131
+ }
132
+ return configPath.concat(
133
+ 'controlConfiguration/',
134
+ '/',
135
+ contextString,
136
+ '/',
137
+ lineItemAnnotation,
138
+ `/${property}/`
139
+ );
140
+ }
141
+ }
142
+ return undefined;
143
+ }
144
+
145
+ /**
146
+ * Return the line item annotation that defines the table.
147
+ * This may come from a Presentation Variant, a Selection Presentation Variant or the default.
148
+ * @param table - The table control
149
+ * @returns The line item annotation used to define the table
150
+ */
151
+ function getLineItemAnnotationForTable(macroTable: UI5Element): string | undefined {
152
+ let lineItemAnnotation: string | undefined = '';
153
+ if (isMacroTable(macroTable)) {
154
+ const presentation = macroTable.getModel()?.getMetaModel()?.getObject(macroTable.metaPath);
155
+
156
+ // default line item annotation
157
+ if (!presentation.Visualizations && !presentation.PresentationVariant) {
158
+ lineItemAnnotation = macroTable.metaPath.split('/').pop();
159
+ } else if (presentation.Visualizations) {
160
+ lineItemAnnotation = presentation.Visualizations[0].$AnnotationPath;
161
+ } else if (presentation.PresentationVariant) {
162
+ if (presentation.PresentationVariant.Visualizations) {
163
+ lineItemAnnotation = presentation.PresentationVariant.Visualizations[0].$AnnotationPath;
164
+ } else {
165
+ const contextPath = macroTable.metaPath.startsWith('/')
166
+ ? macroTable.metaPath.split('@')[0]
167
+ : macroTable.contextPath;
168
+ const pathForLineItems = contextPath + presentation.PresentationVariant.$Path;
169
+ const presentationVariantType = macroTable.getModel()?.getMetaModel()?.getObject(pathForLineItems);
170
+ lineItemAnnotation = presentationVariantType.Visualizations[0].$AnnotationPath;
171
+ }
172
+ }
173
+ }
174
+ return lineItemAnnotation;
175
+ }