@sap/ux-ui5-tooling 1.20.4 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/CHANGELOG.md +60 -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 +17761 -11603
  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 +44007 -41669
  35. package/dist/middlewares/fiori-tools-preview.js +66889 -4176
  36. package/dist/middlewares/fiori-tools-proxy.js +38049 -5767
  37. package/dist/middlewares/fiori-tools-servestatic.js +32893 -347
  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 +165 -0
  41. package/dist/preview-middleware/dist/client/adp/api-handler.ts +191 -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 +111 -0
  75. package/dist/preview-middleware/dist/client/adp/init.ts +92 -0
  76. package/dist/preview-middleware/dist/client/adp/ovp-window-functions.js +130 -0
  77. package/dist/preview-middleware/dist/client/adp/ovp-window-functions.ts +171 -0
  78. package/dist/preview-middleware/dist/client/adp/quick-actions/add-new-subpage-quick-action-base.js +97 -0
  79. package/dist/preview-middleware/dist/client/adp/quick-actions/add-new-subpage-quick-action-base.ts +140 -0
  80. package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-controller-to-page.js +74 -0
  81. package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-controller-to-page.ts +92 -0
  82. package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-new-annotation-file.js +171 -0
  83. package/dist/preview-middleware/dist/client/adp/quick-actions/common/add-new-annotation-file.ts +174 -0
  84. package/dist/preview-middleware/dist/client/adp/quick-actions/common/create-page-action.js +56 -0
  85. package/dist/preview-middleware/dist/client/adp/quick-actions/common/create-page-action.ts +56 -0
  86. package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-custom-section.js +41 -0
  87. package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-custom-section.ts +51 -0
  88. package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-header-field.js +69 -0
  89. package/dist/preview-middleware/dist/client/adp/quick-actions/common/op-add-header-field.ts +81 -0
  90. package/dist/preview-middleware/dist/client/adp/quick-actions/common/utils.js +20 -0
  91. package/dist/preview-middleware/dist/client/adp/quick-actions/common/utils.ts +7 -0
  92. package/dist/preview-middleware/dist/client/adp/quick-actions/control-types.js +25 -0
  93. package/dist/preview-middleware/dist/client/adp/quick-actions/control-types.ts +7 -0
  94. package/dist/preview-middleware/dist/client/adp/quick-actions/dialog-enablement-validator.js +26 -0
  95. package/dist/preview-middleware/dist/client/adp/quick-actions/dialog-enablement-validator.ts +18 -0
  96. package/dist/preview-middleware/dist/client/adp/quick-actions/enablement-validator.js +2 -0
  97. package/dist/preview-middleware/dist/client/adp/quick-actions/enablement-validator.ts +19 -0
  98. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/add-new-subpage.js +82 -0
  99. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/add-new-subpage.ts +87 -0
  100. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-actions.js +69 -0
  101. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-actions.ts +71 -0
  102. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-columns.js +103 -0
  103. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/change-table-columns.ts +105 -0
  104. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-action.js +111 -0
  105. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-action.ts +110 -0
  106. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.js +108 -0
  107. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.ts +141 -0
  108. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.js +80 -0
  109. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.ts +93 -0
  110. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.js +79 -0
  111. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.ts +102 -0
  112. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-variant-management.js +71 -0
  113. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-enable-variant-management.ts +98 -0
  114. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.js +61 -0
  115. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.ts +77 -0
  116. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.js +95 -0
  117. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.ts +102 -0
  118. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-variant-management.js +86 -0
  119. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/op-enable-variant-management.ts +116 -0
  120. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/registry.js +79 -0
  121. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/registry.ts +121 -0
  122. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/utils.js +138 -0
  123. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v2/utils.ts +134 -0
  124. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/add-new-subpage.js +140 -0
  125. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/add-new-subpage.ts +181 -0
  126. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-actions.js +81 -0
  127. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-actions.ts +81 -0
  128. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-columns.js +90 -0
  129. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/change-table-columns.ts +97 -0
  130. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-page-action.js +81 -0
  131. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-page-action.ts +98 -0
  132. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-action-config-change.js +129 -0
  133. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-action-config-change.ts +149 -0
  134. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-custom-column-config-change.js +142 -0
  135. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/create-table-custom-column-config-change.ts +178 -0
  136. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/enable-variant-management.js +83 -0
  137. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/enable-variant-management.ts +96 -0
  138. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.js +58 -0
  139. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.ts +70 -0
  140. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.js +86 -0
  141. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.ts +96 -0
  142. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.js +55 -0
  143. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.ts +61 -0
  144. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-add-custom-section.js +73 -0
  145. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-add-custom-section.ts +91 -0
  146. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.js +91 -0
  147. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.ts +88 -0
  148. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/registry.js +62 -0
  149. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/registry.ts +86 -0
  150. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/utils.js +158 -0
  151. package/dist/preview-middleware/dist/client/adp/quick-actions/fe-v4/utils.ts +175 -0
  152. package/dist/preview-middleware/dist/client/adp/quick-actions/load.js +46 -0
  153. package/dist/preview-middleware/dist/client/adp/quick-actions/load.ts +23 -0
  154. package/dist/preview-middleware/dist/client/adp/quick-actions/quick-action-base.js +64 -0
  155. package/dist/preview-middleware/dist/client/adp/quick-actions/quick-action-base.ts +71 -0
  156. package/dist/preview-middleware/dist/client/adp/quick-actions/simple-quick-action-base.js +44 -0
  157. package/dist/preview-middleware/dist/client/adp/quick-actions/simple-quick-action-base.ts +51 -0
  158. package/dist/preview-middleware/dist/client/adp/quick-actions/supported-ui5versions.md +40 -0
  159. package/dist/preview-middleware/dist/client/adp/quick-actions/table-quick-action-base.js +372 -0
  160. package/dist/preview-middleware/dist/client/adp/quick-actions/table-quick-action-base.ts +433 -0
  161. package/dist/preview-middleware/dist/client/adp/sync-views-utils.js +123 -0
  162. package/dist/preview-middleware/dist/client/adp/sync-views-utils.ts +90 -0
  163. package/dist/preview-middleware/dist/client/adp/ui/AddAction.fragment.xml +49 -0
  164. package/dist/preview-middleware/dist/client/adp/ui/AddCustomFragment.fragment.xml +48 -0
  165. package/dist/preview-middleware/dist/client/adp/ui/AddFragment.fragment.xml +83 -0
  166. package/dist/preview-middleware/dist/client/adp/ui/AddSubpage.fragment.xml +73 -0
  167. package/dist/preview-middleware/dist/client/adp/ui/AddTableColumnFragments.fragment.xml +63 -0
  168. package/dist/preview-middleware/dist/client/adp/ui/ControllerExtension.fragment.xml +63 -0
  169. package/dist/preview-middleware/dist/client/adp/ui/ExtensionPoint.fragment.xml +61 -0
  170. package/dist/preview-middleware/dist/client/adp/ui/FileExistsDialog.fragment.xml +43 -0
  171. package/dist/preview-middleware/dist/client/adp/utils.js +199 -0
  172. package/dist/preview-middleware/dist/client/adp/utils.ts +200 -0
  173. package/dist/preview-middleware/dist/client/cpe/additional-change-info/add-xml-additional-info.js +85 -0
  174. package/dist/preview-middleware/dist/client/cpe/additional-change-info/add-xml-additional-info.ts +107 -0
  175. package/dist/preview-middleware/dist/client/cpe/changes/flex-change.js +66 -0
  176. package/dist/preview-middleware/dist/client/cpe/changes/flex-change.ts +66 -0
  177. package/dist/preview-middleware/dist/client/cpe/changes/generic-change.js +321 -0
  178. package/dist/preview-middleware/dist/client/cpe/changes/generic-change.ts +462 -0
  179. package/dist/preview-middleware/dist/client/cpe/changes/index.js +12 -0
  180. package/dist/preview-middleware/dist/client/cpe/changes/index.ts +1 -0
  181. package/dist/preview-middleware/dist/client/cpe/changes/service.js +527 -0
  182. package/dist/preview-middleware/dist/client/cpe/changes/service.ts +595 -0
  183. package/dist/preview-middleware/dist/client/cpe/changes/validator.js +41 -0
  184. package/dist/preview-middleware/dist/client/cpe/changes/validator.ts +35 -0
  185. package/dist/preview-middleware/dist/client/cpe/communication-service.js +44 -0
  186. package/dist/preview-middleware/dist/client/cpe/communication-service.ts +41 -0
  187. package/dist/preview-middleware/dist/client/cpe/connector-service.js +88 -0
  188. package/dist/preview-middleware/dist/client/cpe/connector-service.ts +74 -0
  189. package/dist/preview-middleware/dist/client/cpe/context-menu-service.js +90 -0
  190. package/dist/preview-middleware/dist/client/cpe/context-menu-service.ts +77 -0
  191. package/dist/preview-middleware/dist/client/cpe/control-data.js +366 -0
  192. package/dist/preview-middleware/dist/client/cpe/control-data.ts +400 -0
  193. package/dist/preview-middleware/dist/client/cpe/documentation.js +191 -0
  194. package/dist/preview-middleware/dist/client/cpe/documentation.ts +187 -0
  195. package/dist/preview-middleware/dist/client/cpe/feature-service.js +39 -0
  196. package/dist/preview-middleware/dist/client/cpe/feature-service.ts +25 -0
  197. package/dist/preview-middleware/dist/client/cpe/init.js +92 -0
  198. package/dist/preview-middleware/dist/client/cpe/init.ts +114 -0
  199. package/dist/preview-middleware/dist/client/cpe/logger.js +32 -0
  200. package/dist/preview-middleware/dist/client/cpe/logger.ts +24 -0
  201. package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-checker.js +136 -0
  202. package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-checker.ts +160 -0
  203. package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-status.js +63 -0
  204. package/dist/preview-middleware/dist/client/cpe/odata-health/odata-health-status.ts +52 -0
  205. package/dist/preview-middleware/dist/client/cpe/outline/editable.js +38 -0
  206. package/dist/preview-middleware/dist/client/cpe/outline/editable.ts +30 -0
  207. package/dist/preview-middleware/dist/client/cpe/outline/nodes.js +212 -0
  208. package/dist/preview-middleware/dist/client/cpe/outline/nodes.ts +236 -0
  209. package/dist/preview-middleware/dist/client/cpe/outline/service.js +62 -0
  210. package/dist/preview-middleware/dist/client/cpe/outline/service.ts +66 -0
  211. package/dist/preview-middleware/dist/client/cpe/quick-actions/quick-action-service.js +161 -0
  212. package/dist/preview-middleware/dist/client/cpe/quick-actions/quick-action-service.ts +184 -0
  213. package/dist/preview-middleware/dist/client/cpe/quick-actions/registry.js +145 -0
  214. package/dist/preview-middleware/dist/client/cpe/quick-actions/registry.ts +157 -0
  215. package/dist/preview-middleware/dist/client/cpe/quick-actions/utils.js +94 -0
  216. package/dist/preview-middleware/dist/client/cpe/quick-actions/utils.ts +113 -0
  217. package/dist/preview-middleware/dist/client/cpe/rta-service.js +94 -0
  218. package/dist/preview-middleware/dist/client/cpe/rta-service.ts +86 -0
  219. package/dist/preview-middleware/dist/client/cpe/selection.js +249 -0
  220. package/dist/preview-middleware/dist/client/cpe/selection.ts +267 -0
  221. package/dist/preview-middleware/dist/client/cpe/ui5-utils.js +35 -0
  222. package/dist/preview-middleware/dist/client/cpe/ui5-utils.ts +28 -0
  223. package/dist/preview-middleware/dist/client/cpe/utils.js +113 -0
  224. package/dist/preview-middleware/dist/client/cpe/utils.ts +162 -0
  225. package/dist/preview-middleware/dist/client/flp/WorkspaceConnector.js +97 -0
  226. package/dist/preview-middleware/dist/client/flp/WorkspaceConnector.ts +101 -0
  227. package/dist/preview-middleware/dist/client/flp/common.js +30 -0
  228. package/dist/preview-middleware/dist/client/flp/common.ts +28 -0
  229. package/dist/preview-middleware/dist/client/flp/enableFakeConnector.js +92 -0
  230. package/dist/preview-middleware/dist/client/flp/enableFakeConnector.ts +113 -0
  231. package/dist/preview-middleware/dist/client/flp/homepage/Component.js +16 -0
  232. package/dist/preview-middleware/dist/client/flp/homepage/Component.ts +10 -0
  233. package/dist/preview-middleware/dist/client/flp/homepage/controller/MyHome.controller.js +54 -0
  234. package/dist/preview-middleware/dist/client/flp/homepage/controller/MyHome.controller.ts +41 -0
  235. package/dist/preview-middleware/dist/client/flp/homepage/css/style.css +3 -0
  236. package/dist/preview-middleware/dist/client/flp/homepage/manifest.json +41 -0
  237. package/dist/preview-middleware/dist/client/flp/homepage/view/MyHome.view.xml +18 -0
  238. package/dist/preview-middleware/dist/client/flp/init.js +418 -0
  239. package/dist/preview-middleware/dist/client/flp/init.ts +448 -0
  240. package/dist/preview-middleware/dist/client/flp/initCdm.js +117 -0
  241. package/dist/preview-middleware/dist/client/flp/initCdm.ts +111 -0
  242. package/dist/preview-middleware/dist/client/flp/initConnectors.js +31 -0
  243. package/dist/preview-middleware/dist/client/flp/initConnectors.ts +20 -0
  244. package/dist/preview-middleware/dist/client/flp/initRta.js +180 -0
  245. package/dist/preview-middleware/dist/client/flp/initRta.ts +194 -0
  246. package/dist/preview-middleware/dist/client/i18n.js +56 -0
  247. package/dist/preview-middleware/dist/client/i18n.ts +49 -0
  248. package/dist/preview-middleware/dist/client/manifest.json +8 -0
  249. package/dist/preview-middleware/dist/client/messagebundle.properties +143 -0
  250. package/dist/preview-middleware/dist/client/thirdparty/@sap-ux-private/control-property-editor-common.js +486 -0
  251. package/dist/preview-middleware/dist/client/utils/additional-change-info.js +69 -0
  252. package/dist/preview-middleware/dist/client/utils/additional-change-info.ts +73 -0
  253. package/dist/preview-middleware/dist/client/utils/application.js +34 -0
  254. package/dist/preview-middleware/dist/client/utils/application.ts +27 -0
  255. package/dist/preview-middleware/dist/client/utils/core.js +144 -0
  256. package/dist/preview-middleware/dist/client/utils/core.ts +145 -0
  257. package/dist/preview-middleware/dist/client/utils/error.js +28 -0
  258. package/dist/preview-middleware/dist/client/utils/error.ts +18 -0
  259. package/dist/preview-middleware/dist/client/utils/fe-v2.js +58 -0
  260. package/dist/preview-middleware/dist/client/utils/fe-v2.ts +61 -0
  261. package/dist/preview-middleware/dist/client/utils/fe-v4.js +168 -0
  262. package/dist/preview-middleware/dist/client/utils/fe-v4.ts +186 -0
  263. package/dist/preview-middleware/dist/client/utils/info-center-message.js +60 -0
  264. package/dist/preview-middleware/dist/client/utils/info-center-message.ts +60 -0
  265. package/dist/preview-middleware/dist/client/utils/version.js +126 -0
  266. package/dist/preview-middleware/dist/client/utils/version.ts +138 -0
  267. package/dist/preview-middleware/templates/flp/cdm.base.json +47 -0
  268. package/dist/preview-middleware/templates/flp/cdm.ejs +72 -0
  269. package/dist/preview-middleware/templates/flp/editor.ejs +28 -0
  270. package/dist/preview-middleware/templates/flp/sandbox.ejs +88 -0
  271. package/dist/preview-middleware/templates/flp/sandbox2.ejs +86 -0
  272. package/dist/preview-middleware/templates/test/qunit.ejs +26 -0
  273. package/dist/preview-middleware/templates/test/qunit.js +29 -0
  274. package/dist/preview-middleware/templates/test/testsuite.qunit.ejs +10 -0
  275. package/dist/preview-middleware/templates/test/testsuite.qunit.js +8 -0
  276. package/dist/tasks/cf-deploy/index.js +3916 -3521
  277. package/dist/tasks/deploy/index.js +17204 -11133
  278. package/package.json +36 -39
  279. package/prebuilds/keyring.darwin-arm64.node +0 -0
  280. package/prebuilds/keyring.darwin-x64.node +0 -0
  281. package/prebuilds/keyring.linux-arm-gnueabihf.node +0 -0
  282. package/prebuilds/keyring.linux-arm64-gnu.node +0 -0
  283. package/prebuilds/keyring.linux-arm64-musl.node +0 -0
  284. package/prebuilds/keyring.linux-ia32-gnu.node +0 -0
  285. package/prebuilds/keyring.linux-x64-gnu.node +0 -0
  286. package/prebuilds/keyring.linux-x64-musl.node +0 -0
  287. package/prebuilds/keyring.win32-arm64-msvc.node +0 -0
  288. package/prebuilds/keyring.win32-ia32-msvc.node +0 -0
  289. package/prebuilds/keyring.win32-x64-msvc.node +0 -0
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+
3
+ sap.ui.define(["sap/ui/model/json/JSONModel", "../../i18n", "../command-executor", "./BaseDialog.controller", "open/ux/preview/client/thirdparty/@sap-ux-private/control-property-editor-common", "../../cpe/communication-service", "../../utils/info-center-message", "../../utils/error", "sap/ui/core/library", "../api-handler"], function (JSONModel, ____i18n, __CommandExecutor, __BaseDialog, ___sap_ux_private_control_property_editor_common, ____cpe_communication_service, ____utils_info_center_message, ____utils_error, sap_ui_core_library, ___api_handler) {
4
+ "use strict";
5
+
6
+ function _interopRequireDefault(obj) {
7
+ return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
8
+ }
9
+ const getResourceModel = ____i18n["getResourceModel"];
10
+ const getTextBundle = ____i18n["getTextBundle"];
11
+ const CommandExecutor = _interopRequireDefault(__CommandExecutor);
12
+ const BaseDialog = _interopRequireDefault(__BaseDialog);
13
+ const MessageBarType = ___sap_ux_private_control_property_editor_common["MessageBarType"];
14
+ const setApplicationRequiresReload = ___sap_ux_private_control_property_editor_common["setApplicationRequiresReload"];
15
+ const CommunicationService = ____cpe_communication_service["CommunicationService"];
16
+ const sendInfoCenterMessage = ____utils_info_center_message["sendInfoCenterMessage"];
17
+ const getError = ____utils_error["getError"];
18
+ const ValueState = sap_ui_core_library["ValueState"];
19
+ const getFragments = ___api_handler["getFragments"];
20
+ /**
21
+ * Validates Control ID input.
22
+ *
23
+ * @param input control of control ID to validate
24
+ * @param validateForDuplicateId custom validation function
25
+ * @return validation result
26
+ */
27
+ function validateControlId(input, resource, identifier = 'Column', validateForDuplicateId) {
28
+ const id = input.getValue();
29
+ // Check if empty
30
+ if (!id || id.trim().length === 0) {
31
+ return {
32
+ isValid: false,
33
+ errorMessage: resource.getText('ID_REQUIRED', [identifier])
34
+ };
35
+ }
36
+ if (typeof validateForDuplicateId === 'function' && !validateForDuplicateId?.(id)) {
37
+ return {
38
+ isValid: false,
39
+ errorMessage: resource.getText('GIVEN_ID_ALREADY_EXISTS', [identifier, id])
40
+ };
41
+ }
42
+
43
+ // Check if starts with number
44
+ if (!/(^([A-Za-z_][-A-Za-z0-9_.:]*)$)/.test(id)) {
45
+ return {
46
+ isValid: false,
47
+ errorMessage: resource.getText('ID_INVALID_FORMAT', [identifier])
48
+ };
49
+ }
50
+ return {
51
+ isValid: true,
52
+ errorMessage: ''
53
+ };
54
+ }
55
+
56
+ /**
57
+ * @namespace open.ux.preview.client.adp.controllers
58
+ */
59
+ const AddCustomFragment = BaseDialog.extend("open.ux.preview.client.adp.controllers.AddCustomFragment", {
60
+ constructor: function _constructor(name, overlays, rta, options, telemetryData) {
61
+ BaseDialog.prototype.constructor.call(this, name, telemetryData);
62
+ this.options = options;
63
+ this.rta = rta;
64
+ this.overlays = overlays;
65
+ this.model = new JSONModel({
66
+ title: options.title
67
+ });
68
+ this.commandExecutor = new CommandExecutor(this.rta);
69
+ },
70
+ /**
71
+ * Setups the Dialog and the JSON Model
72
+ *
73
+ * @param {Dialog} dialog - Dialog instance
74
+ */
75
+ setup: async function _setup(dialog) {
76
+ this.dialog = dialog;
77
+ this.setEscapeHandler();
78
+ this.bundle = await getTextBundle();
79
+ await this.buildDialogData();
80
+ const resourceModel = await getResourceModel('open.ux.preview.client');
81
+ this.dialog.setModel(resourceModel, 'i18n');
82
+ this.dialog.setModel(this.model);
83
+ this.dialog.open();
84
+ },
85
+ /**
86
+ * Handles create button press
87
+ *
88
+ * @param event Event
89
+ */
90
+ onCreateBtnPress: async function _onCreateBtnPress(event) {
91
+ const source = event.getSource();
92
+ source.setEnabled(false);
93
+ await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
94
+ const fragmentName = this.model.getProperty('/newFragmentName');
95
+ const template = `fragments.${fragmentName}`;
96
+ await this.createAppDescriptorChangeForV4(template);
97
+ CommunicationService.sendAction(setApplicationRequiresReload(true));
98
+ await sendInfoCenterMessage({
99
+ title: {
100
+ key: this.options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE'
101
+ },
102
+ description: {
103
+ key: 'ADP_ADD_FRAGMENT_NOTIFICATION',
104
+ params: [fragmentName]
105
+ },
106
+ type: MessageBarType.warning
107
+ });
108
+ this.handleDialogClose();
109
+ },
110
+ /**
111
+ * Builds data that is used in the dialog
112
+ */
113
+ buildDialogData: async function _buildDialogData() {
114
+ try {
115
+ let isCustomColumnFragment = false;
116
+ if (this.options.type === 'tableColumn') {
117
+ await this.addFragmentListToModel();
118
+ isCustomColumnFragment = true;
119
+ }
120
+ this.model.setProperty('/isCustomColumnFragment', isCustomColumnFragment);
121
+ } catch (e) {
122
+ const error = getError(e);
123
+ await sendInfoCenterMessage({
124
+ title: {
125
+ key: this.options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE'
126
+ },
127
+ description: error.message,
128
+ type: MessageBarType.error
129
+ });
130
+ throw error;
131
+ }
132
+ },
133
+ addFragmentListToModel: async function _addFragmentListToModel() {
134
+ try {
135
+ const {
136
+ fragments
137
+ } = await getFragments();
138
+ this.model.setProperty('/fragmentList', fragments);
139
+ } catch (e) {
140
+ const error = getError(e);
141
+ await sendInfoCenterMessage({
142
+ title: {
143
+ key: 'ADP_ADD_FRAGMENT_FAILURE_TITLE'
144
+ },
145
+ description: error.message,
146
+ type: MessageBarType.error
147
+ });
148
+ throw error;
149
+ }
150
+ },
151
+ /**
152
+ * Checks input values for duplicates and updates confirmation button state based on input validation states
153
+ */
154
+ updateFormState: function _updateFormState() {
155
+ const form = this.dialog.getContent()[0];
156
+ const formContent = form.getContent();
157
+ const inputs = formContent.filter(item => item.isA('sap.m.Input'));
158
+ const beginBtn = this.dialog.getBeginButton();
159
+ // Exclude the last input (display-only) from validation
160
+ // Only validate inputs that are visible and editable
161
+ const validatableInputs = inputs.filter(input => input.getVisible() && input.getEditable());
162
+ beginBtn.setEnabled(validatableInputs.every(input => input.getValueState() === ValueState.Success));
163
+ },
164
+ /**
165
+ * Handles id input change
166
+ *
167
+ * @param event Event
168
+ */
169
+ onIdInputChange: function _onIdInputChange(event) {
170
+ // update model value
171
+ const input = event.getSource();
172
+ let modelValue = input.getValue();
173
+ if (modelValue.length < 1) {
174
+ modelValue = null;
175
+ }
176
+ this.model.setProperty('/id', modelValue);
177
+ const result = validateControlId(input, this.bundle, 'Column', this.options.validateId);
178
+ if (result.isValid) {
179
+ input.setValueState(ValueState.Success).setValueStateText('');
180
+ } else {
181
+ input.setValueState(ValueState.Error).setValueStateText(result.errorMessage);
182
+ }
183
+ this.updateFormState();
184
+ },
185
+ createAppDescriptorChangeForV4: async function _createAppDescriptorChangeForV(templatePath) {
186
+ const id = this.options.type === 'tableColumn' ? this.model.getProperty('/id') : this.model.getProperty('/newFragmentName');
187
+ const template = `${this.options.appDescriptor?.projectId}.changes.${templatePath}`;
188
+ const anchor = this.options.appDescriptor?.anchor;
189
+ const flexSettings = this.rta.getFlexSettings();
190
+ const modifiedValue = {
191
+ reference: this.options.appDescriptor?.projectId,
192
+ appComponent: this.options.appDescriptor?.appComponent,
193
+ changeType: 'appdescr_fe_changePageConfiguration',
194
+ parameters: {
195
+ page: this.options.appDescriptor?.pageId,
196
+ entityPropertyChange: {
197
+ propertyPath: `${this.options.propertyPath}${id}`,
198
+ // e.g. 'content/body/sections/test'
199
+ operation: 'UPSERT',
200
+ propertyValue: {
201
+ template,
202
+ ...(this.options.type === 'tableColumn' ? {
203
+ header: 'New Column'
204
+ } : {
205
+ title: 'New Custom Section'
206
+ }),
207
+ ...(anchor && {
208
+ position: {
209
+ placement: 'After',
210
+ anchor
211
+ }
212
+ })
213
+ }
214
+ }
215
+ }
216
+ };
217
+ const command = await this.commandExecutor.getCommand(this.getRuntimeControl(), 'appDescriptor', modifiedValue, flexSettings);
218
+ await this.commandExecutor.pushAndExecuteCommand(command);
219
+ }
220
+ });
221
+ return AddCustomFragment;
222
+ });
223
+ //# sourceMappingURL=AddCustomFragment.controller.js.map
@@ -0,0 +1,257 @@
1
+ /** sap.m */
2
+ import Button from 'sap/m/Button';
3
+ import type Dialog from 'sap/m/Dialog';
4
+
5
+ /** sap.ui.core */
6
+ import type UI5Element from 'sap/ui/core/Element';
7
+
8
+ /** sap.ui.base */
9
+ import type Event from 'sap/ui/base/Event';
10
+
11
+ /** sap.ui.model */
12
+ import JSONModel from 'sap/ui/model/json/JSONModel';
13
+
14
+ /** sap.ui.rta */
15
+ import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
16
+
17
+ import { getResourceModel, getTextBundle, TextBundle } from '../../i18n';
18
+ import CommandExecutor from '../command-executor';
19
+ import BaseDialog from './BaseDialog.controller';
20
+ import { QuickActionTelemetryData } from '../../cpe/quick-actions/quick-action-definition';
21
+ import { MessageBarType, setApplicationRequiresReload } from '@sap-ux-private/control-property-editor-common';
22
+ import { CommunicationService } from '../../cpe/communication-service';
23
+ import FlexCommand from 'sap/ui/rta/command/FlexCommand';
24
+ import { sendInfoCenterMessage } from '../../utils/info-center-message';
25
+ import { getError } from '../../utils/error';
26
+ import { PageDescriptorV4 } from './types';
27
+ import Input from 'sap/m/Input';
28
+ import { ValueState } from 'sap/ui/core/library';
29
+ import SimpleForm from 'sap/ui/layout/form';
30
+ import Control from 'sap/ui/core/Control';
31
+ import { getFragments } from '../api-handler';
32
+
33
+ export type AddFragmentModel = JSONModel & {
34
+ getProperty(sPath: '/title'): string;
35
+ getProperty(sPath: '/newFragmentName'): string;
36
+ getProperty(sPath: '/isCustomColumnFragment'): boolean;
37
+ };
38
+
39
+ export interface AddCustomFragmentOptions {
40
+ title: string;
41
+ propertyPath: string;
42
+ appDescriptor?: PageDescriptorV4;
43
+ validateId?: (id: string) => boolean;
44
+ type: 'section' | 'tableColumn';
45
+ availability?: 'Default' | 'Adaptation' | 'Hidden';
46
+ }
47
+
48
+ /**
49
+ * Validates Control ID input.
50
+ *
51
+ * @param input control of control ID to validate
52
+ * @param validateForDuplicateId custom validation function
53
+ * @return validation result
54
+ */
55
+ function validateControlId(
56
+ input: Input,
57
+ resource: TextBundle,
58
+ identifier: 'Column' = 'Column',
59
+ validateForDuplicateId?: (id: string) => boolean
60
+ ): { isValid: boolean; errorMessage: string } {
61
+ const id = input.getValue();
62
+ // Check if empty
63
+ if (!id || id.trim().length === 0) {
64
+ return { isValid: false, errorMessage: resource.getText('ID_REQUIRED', [identifier]) };
65
+ }
66
+
67
+ if (typeof validateForDuplicateId === 'function' && !validateForDuplicateId?.(id)) {
68
+ return { isValid: false, errorMessage: resource.getText('GIVEN_ID_ALREADY_EXISTS', [identifier, id]) };
69
+ }
70
+
71
+ // Check if starts with number
72
+ if (!/(^([A-Za-z_][-A-Za-z0-9_.:]*)$)/.test(id)) {
73
+ return { isValid: false, errorMessage: resource.getText('ID_INVALID_FORMAT', [identifier]) };
74
+ }
75
+ return { isValid: true, errorMessage: '' };
76
+ }
77
+
78
+ /**
79
+ * @namespace open.ux.preview.client.adp.controllers
80
+ */
81
+ export default class AddCustomFragment extends BaseDialog<AddFragmentModel> {
82
+ private bundle: TextBundle;
83
+ constructor(
84
+ name: string,
85
+ overlays: UI5Element,
86
+ rta: RuntimeAuthoring,
87
+ readonly options: AddCustomFragmentOptions,
88
+ telemetryData?: QuickActionTelemetryData
89
+ ) {
90
+ super(name, telemetryData);
91
+ this.rta = rta;
92
+ this.overlays = overlays;
93
+ this.model = new JSONModel({
94
+ title: options.title
95
+ });
96
+ this.commandExecutor = new CommandExecutor(this.rta);
97
+ }
98
+
99
+ /**
100
+ * Setups the Dialog and the JSON Model
101
+ *
102
+ * @param {Dialog} dialog - Dialog instance
103
+ */
104
+ async setup(dialog: Dialog): Promise<void> {
105
+ this.dialog = dialog;
106
+
107
+ this.setEscapeHandler();
108
+ this.bundle = await getTextBundle();
109
+ await this.buildDialogData();
110
+ const resourceModel = await getResourceModel('open.ux.preview.client');
111
+
112
+ this.dialog.setModel(resourceModel, 'i18n');
113
+ this.dialog.setModel(this.model);
114
+
115
+ this.dialog.open();
116
+ }
117
+
118
+ /**
119
+ * Handles create button press
120
+ *
121
+ * @param event Event
122
+ */
123
+ async onCreateBtnPress(event: Event) {
124
+ const source = event.getSource<Button>();
125
+ source.setEnabled(false);
126
+
127
+ await super.onCreateBtnPressHandler();
128
+
129
+ const fragmentName = this.model.getProperty('/newFragmentName');
130
+ const template = `fragments.${fragmentName}`;
131
+ await this.createAppDescriptorChangeForV4(template);
132
+ CommunicationService.sendAction(setApplicationRequiresReload(true));
133
+
134
+ await sendInfoCenterMessage({
135
+ title: { key: this.options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE' },
136
+ description: { key: 'ADP_ADD_FRAGMENT_NOTIFICATION', params: [fragmentName] },
137
+ type: MessageBarType.warning
138
+ });
139
+
140
+ this.handleDialogClose();
141
+ }
142
+
143
+ /**
144
+ * Builds data that is used in the dialog
145
+ */
146
+ async buildDialogData(): Promise<void> {
147
+ try {
148
+ let isCustomColumnFragment = false;
149
+ if (this.options.type === 'tableColumn') {
150
+ await this.addFragmentListToModel();
151
+ isCustomColumnFragment = true;
152
+ }
153
+ this.model.setProperty('/isCustomColumnFragment', isCustomColumnFragment);
154
+ } catch (e) {
155
+ const error = getError(e);
156
+ await sendInfoCenterMessage({
157
+ title: { key: this.options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE' },
158
+ description: error.message,
159
+ type: MessageBarType.error
160
+ });
161
+ throw error;
162
+ }
163
+ }
164
+ private async addFragmentListToModel(): Promise<void> {
165
+ try {
166
+ const { fragments } = await getFragments();
167
+
168
+ this.model.setProperty('/fragmentList', fragments);
169
+ } catch (e) {
170
+ const error = getError(e);
171
+ await sendInfoCenterMessage({
172
+ title: { key: 'ADP_ADD_FRAGMENT_FAILURE_TITLE' },
173
+ description: error.message,
174
+ type: MessageBarType.error
175
+ });
176
+ throw error;
177
+ }
178
+ }
179
+ /**
180
+ * Checks input values for duplicates and updates confirmation button state based on input validation states
181
+ */
182
+ private updateFormState(): void {
183
+ const form = this.dialog.getContent()[0] as unknown as SimpleForm<Control[]>;
184
+ const formContent = form.getContent();
185
+ const inputs = formContent.filter((item) => item.isA('sap.m.Input')) as Input[];
186
+
187
+ const beginBtn = this.dialog.getBeginButton();
188
+ // Exclude the last input (display-only) from validation
189
+ // Only validate inputs that are visible and editable
190
+ const validatableInputs = inputs.filter((input) => input.getVisible() && input.getEditable());
191
+ beginBtn.setEnabled(validatableInputs.every((input) => input.getValueState() === ValueState.Success));
192
+ }
193
+
194
+ /**
195
+ * Handles id input change
196
+ *
197
+ * @param event Event
198
+ */
199
+ onIdInputChange(event: Event): void {
200
+ // update model value
201
+ const input = event.getSource<Input>();
202
+ let modelValue: string | null = input.getValue();
203
+ if (modelValue.length < 1) {
204
+ modelValue = null;
205
+ }
206
+ this.model.setProperty('/id', modelValue);
207
+ const result = validateControlId(input, this.bundle, 'Column', this.options.validateId);
208
+ if (result.isValid) {
209
+ input.setValueState(ValueState.Success).setValueStateText('');
210
+ } else {
211
+ input.setValueState(ValueState.Error).setValueStateText(result.errorMessage);
212
+ }
213
+ this.updateFormState();
214
+ }
215
+
216
+ private async createAppDescriptorChangeForV4(templatePath: string) {
217
+ const id =
218
+ this.options.type === 'tableColumn'
219
+ ? this.model.getProperty('/id')
220
+ : this.model.getProperty('/newFragmentName');
221
+ const template = `${this.options.appDescriptor?.projectId}.changes.${templatePath}`;
222
+ const anchor = this.options.appDescriptor?.anchor;
223
+ const flexSettings = this.rta.getFlexSettings();
224
+ const modifiedValue = {
225
+ reference: this.options.appDescriptor?.projectId,
226
+ appComponent: this.options.appDescriptor?.appComponent,
227
+ changeType: 'appdescr_fe_changePageConfiguration',
228
+ parameters: {
229
+ page: this.options.appDescriptor?.pageId,
230
+ entityPropertyChange: {
231
+ propertyPath: `${this.options.propertyPath}${id}`, // e.g. 'content/body/sections/test'
232
+ operation: 'UPSERT',
233
+ propertyValue: {
234
+ template,
235
+ ...(this.options.type === 'tableColumn'
236
+ ? { header: 'New Column' }
237
+ : { title: 'New Custom Section' }),
238
+ ...(anchor && {
239
+ position: {
240
+ placement: 'After',
241
+ anchor
242
+ }
243
+ })
244
+ }
245
+ }
246
+ }
247
+ };
248
+ const command = await this.commandExecutor.getCommand<FlexCommand>(
249
+ this.getRuntimeControl(),
250
+ 'appDescriptor',
251
+ modifiedValue,
252
+ flexSettings
253
+ );
254
+
255
+ await this.commandExecutor.pushAndExecuteCommand(command);
256
+ }
257
+ }
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+
3
+ sap.ui.define(["sap/ui/model/json/JSONModel", "sap/ui/dt/OverlayRegistry", "../../i18n", "open/ux/preview/client/thirdparty/@sap-ux-private/control-property-editor-common", "../../cpe/additional-change-info/add-xml-additional-info", "../../cpe/communication-service", "../../utils/error", "../../utils/info-center-message", "../api-handler", "../command-executor", "../control-utils", "./BaseDialog.controller"], function (JSONModel, OverlayRegistry, ____i18n, ___sap_ux_private_control_property_editor_common, ____cpe_additional_change_info_add_xml_additional_info, ____cpe_communication_service, ____utils_error, ____utils_info_center_message, ___api_handler, __CommandExecutor, __ControlUtils, __BaseDialog) {
4
+ "use strict";
5
+
6
+ function _interopRequireDefault(obj) {
7
+ return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
8
+ }
9
+ const getResourceModel = ____i18n["getResourceModel"];
10
+ const MessageBarType = ___sap_ux_private_control_property_editor_common["MessageBarType"];
11
+ const setApplicationRequiresReload = ___sap_ux_private_control_property_editor_common["setApplicationRequiresReload"];
12
+ const getFragmentTemplateName = ____cpe_additional_change_info_add_xml_additional_info["getFragmentTemplateName"];
13
+ const CommunicationService = ____cpe_communication_service["CommunicationService"];
14
+ const getError = ____utils_error["getError"];
15
+ const sendInfoCenterMessage = ____utils_info_center_message["sendInfoCenterMessage"];
16
+ const getFragments = ___api_handler["getFragments"];
17
+ const CommandExecutor = _interopRequireDefault(__CommandExecutor);
18
+ const ControlUtils = _interopRequireDefault(__ControlUtils);
19
+ const BaseDialog = _interopRequireDefault(__BaseDialog);
20
+ const radix = 10;
21
+ /**
22
+ * @namespace open.ux.preview.client.adp.controllers
23
+ */
24
+ const AddFragment = BaseDialog.extend("open.ux.preview.client.adp.controllers.AddFragment", {
25
+ constructor: function _constructor(name, overlays, rta, options, data, telemetryData) {
26
+ BaseDialog.prototype.constructor.call(this, name, telemetryData);
27
+ this.options = options;
28
+ this.rta = rta;
29
+ this.overlays = overlays;
30
+ this.model = new JSONModel({
31
+ title: options.title,
32
+ completeView: options.aggregation === undefined
33
+ });
34
+ this.commandExecutor = new CommandExecutor(this.rta);
35
+ this.data = data;
36
+ },
37
+ /**
38
+ * Setups the Dialog and the JSON Model
39
+ *
40
+ * @param {Dialog} dialog - Dialog instance
41
+ */
42
+ setup: async function _setup(dialog) {
43
+ this.dialog = dialog;
44
+ this.setEscapeHandler();
45
+ await this.buildDialogData();
46
+ const resourceModel = await getResourceModel('open.ux.preview.client');
47
+ this.dialog.setModel(resourceModel, 'i18n');
48
+ this.dialog.setModel(this.model);
49
+ this.dialog.open();
50
+ },
51
+ /**
52
+ * Handles the change in aggregations
53
+ *
54
+ * @param event Event
55
+ */
56
+ onAggregationChanged: function _onAggregationChanged(event) {
57
+ const source = event.getSource();
58
+ const selectedKey = source.getSelectedKey();
59
+ const selectedItem = source.getSelectedItem();
60
+ let selectedItemText = '';
61
+ if (selectedItem) {
62
+ selectedItemText = selectedItem.getText();
63
+ }
64
+ this.model.setProperty('/selectedAggregation/key', selectedKey);
65
+ this.model.setProperty('/selectedAggregation/value', selectedItemText);
66
+ let newSelectedControlChildren = Object.keys(ControlUtils.getControlAggregationByName(this.getRuntimeControl(), selectedItemText));
67
+ newSelectedControlChildren = newSelectedControlChildren.map(key => {
68
+ return Number.parseInt(key, radix);
69
+ });
70
+ this.specialIndexHandling(selectedItemText);
71
+ const updatedIndexArray = this.fillIndexArray(newSelectedControlChildren);
72
+ this.model.setProperty('/index', updatedIndexArray);
73
+ this.model.setProperty('/selectedIndex', updatedIndexArray.length - 1);
74
+ },
75
+ /**
76
+ * Handles create button press
77
+ *
78
+ * @param event Event
79
+ */
80
+ onCreateBtnPress: async function _onCreateBtnPress(event) {
81
+ const source = event.getSource();
82
+ source.setEnabled(false);
83
+ await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
84
+ const fragmentName = this.model.getProperty('/newFragmentName');
85
+ const index = this.model.getProperty('/selectedIndex');
86
+ const targetAggregation = this.model.getProperty('/selectedAggregation/value') ?? 'content';
87
+ const modifiedValue = {
88
+ fragment: `<core:FragmentDefinition xmlns:core='sap.ui.core'></core:FragmentDefinition>`,
89
+ fragmentPath: `fragments/${fragmentName}.fragment.xml`,
90
+ index: index ?? 0,
91
+ targetAggregation: targetAggregation ?? 'content'
92
+ };
93
+ if (this.data) {
94
+ this.data.deferred.resolve(modifiedValue);
95
+ } else {
96
+ await this.createFragmentChange(modifiedValue);
97
+ }
98
+ const selector = {
99
+ id: this.getRuntimeControl().getId(),
100
+ idIsLocal: false
101
+ };
102
+ const templateName = getFragmentTemplateName(selector, targetAggregation);
103
+ if (templateName) {
104
+ CommunicationService.sendAction(setApplicationRequiresReload(true));
105
+ }
106
+ await sendInfoCenterMessage({
107
+ title: {
108
+ key: 'ADP_CREATE_XML_FRAGMENT_TITLE'
109
+ },
110
+ description: {
111
+ key: 'ADP_ADD_FRAGMENT_NOTIFICATION',
112
+ params: [fragmentName]
113
+ },
114
+ type: MessageBarType.info
115
+ });
116
+ this.handleDialogClose();
117
+ },
118
+ /**
119
+ * Builds data that is used in the dialog
120
+ */
121
+ buildDialogData: async function _buildDialogData() {
122
+ const {
123
+ controlMetadata,
124
+ targetAggregation
125
+ } = this.getControlMetadata();
126
+ const defaultAggregation = this.options.aggregation ?? controlMetadata.getDefaultAggregationName();
127
+ const selectedControlName = controlMetadata.getName();
128
+ let selectedControlChildren = Object.keys(ControlUtils.getControlAggregationByName(this.getRuntimeControl(), defaultAggregation));
129
+ selectedControlChildren = selectedControlChildren.map(key => {
130
+ return Number.parseInt(key, radix);
131
+ });
132
+ this.model.setProperty('/selectedControlName', selectedControlName);
133
+ this.model.setProperty('/selectedAggregation', {});
134
+ const indexArray = this.fillIndexArray(selectedControlChildren);
135
+ const controlAggregation = targetAggregation.map((elem, index) => {
136
+ return {
137
+ key: index,
138
+ value: elem
139
+ };
140
+ });
141
+ if (defaultAggregation !== null) {
142
+ controlAggregation.forEach(obj => {
143
+ if (obj.value === defaultAggregation) {
144
+ obj.key = 'default';
145
+ this.model.setProperty('/selectedAggregation/key', obj.key);
146
+ this.model.setProperty('/selectedAggregation/value', obj.value);
147
+ this.specialIndexHandling(obj.value);
148
+ }
149
+ });
150
+ } else {
151
+ this.model.setProperty('/selectedAggregation/key', controlAggregation[0].key);
152
+ this.model.setProperty('/selectedAggregation/value', controlAggregation[0].value);
153
+ this.specialIndexHandling(controlAggregation[0].value);
154
+ }
155
+ try {
156
+ const {
157
+ fragments
158
+ } = await getFragments();
159
+ this.model.setProperty('/fragmentList', fragments);
160
+ } catch (e) {
161
+ const error = getError(e);
162
+ await sendInfoCenterMessage({
163
+ title: {
164
+ key: 'ADP_ADD_FRAGMENT_FAILURE_TITLE'
165
+ },
166
+ description: error.message,
167
+ type: MessageBarType.error
168
+ });
169
+ throw error;
170
+ }
171
+ this.model.setProperty('/selectedIndex', indexArray.length - 1);
172
+ this.model.setProperty('/targetAggregation', controlAggregation);
173
+ this.model.setProperty('/index', indexArray);
174
+ const defaultIndex = Number(this.options.defaultAggregationArrayIndex);
175
+ if (defaultIndex >= 0) {
176
+ this.model.setProperty('/selectedIndex', indexArray.length - 1 > 0 ? defaultIndex : 0);
177
+ }
178
+ },
179
+ /**
180
+ * Creates an addXML fragment command and pushes it to the command stack
181
+ *
182
+ * @param modifiedValue - modified value
183
+ * @param templateName - fragment template name
184
+ */
185
+ createFragmentChange: async function _createFragmentChange(modifiedValue) {
186
+ const flexSettings = this.rta.getFlexSettings();
187
+ const overlay = OverlayRegistry.getOverlay(this.getRuntimeControl());
188
+ const designMetadata = overlay.getDesignTimeMetadata();
189
+ const command = await this.commandExecutor.getCommand(this.getRuntimeControl(), 'addXML', modifiedValue, flexSettings, designMetadata);
190
+ await this.commandExecutor.pushAndExecuteCommand(command);
191
+ }
192
+ });
193
+ return AddFragment;
194
+ });
195
+ //# sourceMappingURL=AddFragment.controller.js.map