@sap/ux-specification 1.96.99 → 1.96.101

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 (343) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
  3. package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
  4. package/dist/documentation/v2/v2-ListReport.html +2 -2
  5. package/dist/documentation/v2/v2-ListReportNew.html +2 -2
  6. package/dist/documentation/v2/v2-ObjectPage.html +2 -2
  7. package/dist/documentation/v2/v2-OverviewPage.html +2 -2
  8. package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
  9. package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
  10. package/dist/documentation/v4/v4-FreestylePage.html +2 -2
  11. package/dist/documentation/v4/v4-ListReport.html +2 -2
  12. package/dist/documentation/v4/v4-ObjectPage.html +2 -2
  13. package/dist/index-min.js +445 -140
  14. package/dist/index-min.js.map +4 -4
  15. package/dist/schemas/v2/ListReportNewConfig.json +79 -0
  16. package/dist/schemas/v4/ObjectPageConfig.json +54 -3
  17. package/dist/specification/package.json +13 -9
  18. package/dist/specification/scripts/schema/to-json-schema.d.ts.map +1 -1
  19. package/dist/specification/scripts/schema/to-json-schema.js +2 -1
  20. package/dist/specification/scripts/schema/to-json-schema.js.map +1 -1
  21. package/dist/specification/src/api.d.ts +1 -0
  22. package/dist/specification/src/api.d.ts.map +1 -1
  23. package/dist/specification/src/api.js +7 -4
  24. package/dist/specification/src/api.js.map +1 -1
  25. package/dist/specification/src/ftfs/ftfs.d.ts +9 -0
  26. package/dist/specification/src/ftfs/ftfs.d.ts.map +1 -0
  27. package/dist/specification/src/ftfs/ftfs.js +82 -0
  28. package/dist/specification/src/ftfs/ftfs.js.map +1 -0
  29. package/dist/specification/src/ftfs/index.d.ts +2 -0
  30. package/dist/specification/src/ftfs/index.d.ts.map +1 -0
  31. package/dist/specification/src/ftfs/index.js +6 -0
  32. package/dist/specification/src/ftfs/index.js.map +1 -0
  33. package/dist/specification/src/ftfs/parser/annotations.d.ts +9 -0
  34. package/dist/specification/src/ftfs/parser/annotations.d.ts.map +1 -0
  35. package/dist/specification/src/ftfs/parser/annotations.js +13 -0
  36. package/dist/specification/src/ftfs/parser/annotations.js.map +1 -0
  37. package/dist/specification/src/ftfs/parser/index.d.ts +15 -0
  38. package/dist/specification/src/ftfs/parser/index.d.ts.map +1 -0
  39. package/dist/specification/src/ftfs/parser/index.js +35 -0
  40. package/dist/specification/src/ftfs/parser/index.js.map +1 -0
  41. package/dist/specification/src/ftfs/parser/model/AggregationValidator.d.ts +65 -0
  42. package/dist/specification/src/ftfs/parser/model/AggregationValidator.d.ts.map +1 -0
  43. package/dist/specification/src/ftfs/parser/model/AggregationValidator.js +209 -0
  44. package/dist/specification/src/ftfs/parser/model/AggregationValidator.js.map +1 -0
  45. package/dist/specification/src/ftfs/parser/model/ArrayAggregation.d.ts +49 -0
  46. package/dist/specification/src/ftfs/parser/model/ArrayAggregation.d.ts.map +1 -0
  47. package/dist/specification/src/ftfs/parser/model/ArrayAggregation.js +122 -0
  48. package/dist/specification/src/ftfs/parser/model/ArrayAggregation.js.map +1 -0
  49. package/dist/specification/src/ftfs/parser/model/NodeProperty.d.ts +38 -0
  50. package/dist/specification/src/ftfs/parser/model/NodeProperty.d.ts.map +1 -0
  51. package/dist/specification/src/ftfs/parser/model/NodeProperty.js +25 -0
  52. package/dist/specification/src/ftfs/parser/model/NodeProperty.js.map +1 -0
  53. package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts +339 -0
  54. package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts.map +1 -0
  55. package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js +682 -0
  56. package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js.map +1 -0
  57. package/dist/specification/src/ftfs/parser/model/RootAggregation.d.ts +24 -0
  58. package/dist/specification/src/ftfs/parser/model/RootAggregation.d.ts.map +1 -0
  59. package/dist/specification/src/ftfs/parser/model/RootAggregation.js +57 -0
  60. package/dist/specification/src/ftfs/parser/model/RootAggregation.js.map +1 -0
  61. package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts +224 -0
  62. package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts.map +1 -0
  63. package/dist/specification/src/ftfs/parser/model/TreeModel.js +947 -0
  64. package/dist/specification/src/ftfs/parser/model/TreeModel.js.map +1 -0
  65. package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts +34 -0
  66. package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts.map +1 -0
  67. package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js +94 -0
  68. package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js.map +1 -0
  69. package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts +67 -0
  70. package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts.map +1 -0
  71. package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js +113 -0
  72. package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js.map +1 -0
  73. package/dist/specification/src/ftfs/parser/model/actions/index.d.ts +3 -0
  74. package/dist/specification/src/ftfs/parser/model/actions/index.d.ts.map +1 -0
  75. package/dist/specification/src/ftfs/parser/model/actions/index.js +19 -0
  76. package/dist/specification/src/ftfs/parser/model/actions/index.js.map +1 -0
  77. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.d.ts +17 -0
  78. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.d.ts.map +1 -0
  79. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.js +29 -0
  80. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.js.map +1 -0
  81. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.d.ts +46 -0
  82. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.d.ts.map +1 -0
  83. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.js +66 -0
  84. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.js.map +1 -0
  85. package/dist/specification/src/ftfs/parser/model/additionalObjects/index.d.ts +3 -0
  86. package/dist/specification/src/ftfs/parser/model/additionalObjects/index.d.ts.map +1 -0
  87. package/dist/specification/src/ftfs/parser/model/additionalObjects/index.js +19 -0
  88. package/dist/specification/src/ftfs/parser/model/additionalObjects/index.js.map +1 -0
  89. package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.d.ts +21 -0
  90. package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.d.ts.map +1 -0
  91. package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.js +30 -0
  92. package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.js.map +1 -0
  93. package/dist/specification/src/ftfs/parser/model/chart/index.d.ts +2 -0
  94. package/dist/specification/src/ftfs/parser/model/chart/index.d.ts.map +1 -0
  95. package/dist/specification/src/ftfs/parser/model/chart/index.js +18 -0
  96. package/dist/specification/src/ftfs/parser/model/chart/index.js.map +1 -0
  97. package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.d.ts +9 -0
  98. package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.d.ts.map +1 -0
  99. package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.js +16 -0
  100. package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.js.map +1 -0
  101. package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.d.ts +25 -0
  102. package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.d.ts.map +1 -0
  103. package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.js +45 -0
  104. package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.js.map +1 -0
  105. package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.d.ts +22 -0
  106. package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.d.ts.map +1 -0
  107. package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.js +37 -0
  108. package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.js.map +1 -0
  109. package/dist/specification/src/ftfs/parser/model/fields/index.d.ts +4 -0
  110. package/dist/specification/src/ftfs/parser/model/fields/index.d.ts.map +1 -0
  111. package/dist/specification/src/ftfs/parser/model/fields/index.js +20 -0
  112. package/dist/specification/src/ftfs/parser/model/fields/index.js.map +1 -0
  113. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.d.ts +39 -0
  114. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.d.ts.map +1 -0
  115. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.js +97 -0
  116. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.js.map +1 -0
  117. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.d.ts +36 -0
  118. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.d.ts.map +1 -0
  119. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.js +59 -0
  120. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.js.map +1 -0
  121. package/dist/specification/src/ftfs/parser/model/filter-fields/index.d.ts +3 -0
  122. package/dist/specification/src/ftfs/parser/model/filter-fields/index.d.ts.map +1 -0
  123. package/dist/specification/src/ftfs/parser/model/filter-fields/index.js +19 -0
  124. package/dist/specification/src/ftfs/parser/model/filter-fields/index.js.map +1 -0
  125. package/dist/specification/src/ftfs/parser/model/index.d.ts +19 -0
  126. package/dist/specification/src/ftfs/parser/model/index.d.ts.map +1 -0
  127. package/dist/specification/src/ftfs/parser/model/index.js +35 -0
  128. package/dist/specification/src/ftfs/parser/model/index.js.map +1 -0
  129. package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.d.ts +29 -0
  130. package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.d.ts.map +1 -0
  131. package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.js +50 -0
  132. package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.js.map +1 -0
  133. package/dist/specification/src/ftfs/parser/model/macros/index.d.ts +2 -0
  134. package/dist/specification/src/ftfs/parser/model/macros/index.d.ts.map +1 -0
  135. package/dist/specification/src/ftfs/parser/model/macros/index.js +18 -0
  136. package/dist/specification/src/ftfs/parser/model/macros/index.js.map +1 -0
  137. package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.d.ts +31 -0
  138. package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.d.ts.map +1 -0
  139. package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.js +82 -0
  140. package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.js.map +1 -0
  141. package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.d.ts +78 -0
  142. package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.d.ts.map +1 -0
  143. package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.js +126 -0
  144. package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.js.map +1 -0
  145. package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.d.ts +135 -0
  146. package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.d.ts.map +1 -0
  147. package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.js +402 -0
  148. package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.js.map +1 -0
  149. package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.d.ts +50 -0
  150. package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.d.ts.map +1 -0
  151. package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.js +120 -0
  152. package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.js.map +1 -0
  153. package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.d.ts +39 -0
  154. package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.d.ts.map +1 -0
  155. package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.js +70 -0
  156. package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.js.map +1 -0
  157. package/dist/specification/src/ftfs/parser/model/sections/index.d.ts +6 -0
  158. package/dist/specification/src/ftfs/parser/model/sections/index.d.ts.map +1 -0
  159. package/dist/specification/src/ftfs/parser/model/sections/index.js +22 -0
  160. package/dist/specification/src/ftfs/parser/model/sections/index.js.map +1 -0
  161. package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.d.ts +89 -0
  162. package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.d.ts.map +1 -0
  163. package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.js +175 -0
  164. package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.js.map +1 -0
  165. package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.d.ts +113 -0
  166. package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.d.ts.map +1 -0
  167. package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.js +290 -0
  168. package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.js.map +1 -0
  169. package/dist/specification/src/ftfs/parser/model/table/TableAggregation.d.ts +13 -0
  170. package/dist/specification/src/ftfs/parser/model/table/TableAggregation.d.ts.map +1 -0
  171. package/dist/specification/src/ftfs/parser/model/table/TableAggregation.js +21 -0
  172. package/dist/specification/src/ftfs/parser/model/table/TableAggregation.js.map +1 -0
  173. package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.d.ts +15 -0
  174. package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.d.ts.map +1 -0
  175. package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.js +22 -0
  176. package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.js.map +1 -0
  177. package/dist/specification/src/ftfs/parser/model/table/index.d.ts +5 -0
  178. package/dist/specification/src/ftfs/parser/model/table/index.d.ts.map +1 -0
  179. package/dist/specification/src/ftfs/parser/model/table/index.js +21 -0
  180. package/dist/specification/src/ftfs/parser/model/table/index.js.map +1 -0
  181. package/dist/specification/src/ftfs/parser/model/table/utils.d.ts +12 -0
  182. package/dist/specification/src/ftfs/parser/model/table/utils.d.ts.map +1 -0
  183. package/dist/specification/src/ftfs/parser/model/table/utils.js +44 -0
  184. package/dist/specification/src/ftfs/parser/model/table/utils.js.map +1 -0
  185. package/dist/specification/src/ftfs/parser/model/types/annotations.d.ts +63 -0
  186. package/dist/specification/src/ftfs/parser/model/types/annotations.d.ts.map +1 -0
  187. package/dist/specification/src/ftfs/parser/model/types/annotations.js +29 -0
  188. package/dist/specification/src/ftfs/parser/model/types/annotations.js.map +1 -0
  189. package/dist/specification/src/ftfs/parser/model/types/common.d.ts +13 -0
  190. package/dist/specification/src/ftfs/parser/model/types/common.d.ts.map +1 -0
  191. package/dist/specification/src/ftfs/parser/model/types/common.js +3 -0
  192. package/dist/specification/src/ftfs/parser/model/types/common.js.map +1 -0
  193. package/dist/specification/src/ftfs/parser/model/types/index.d.ts +219 -0
  194. package/dist/specification/src/ftfs/parser/model/types/index.d.ts.map +1 -0
  195. package/dist/specification/src/ftfs/parser/model/types/index.js +156 -0
  196. package/dist/specification/src/ftfs/parser/model/types/index.js.map +1 -0
  197. package/dist/specification/src/ftfs/parser/model/utils/annotations.d.ts +38 -0
  198. package/dist/specification/src/ftfs/parser/model/utils/annotations.d.ts.map +1 -0
  199. package/dist/specification/src/ftfs/parser/model/utils/annotations.js +120 -0
  200. package/dist/specification/src/ftfs/parser/model/utils/annotations.js.map +1 -0
  201. package/dist/specification/src/ftfs/parser/model/utils/i18n.d.ts +33 -0
  202. package/dist/specification/src/ftfs/parser/model/utils/i18n.d.ts.map +1 -0
  203. package/dist/specification/src/ftfs/parser/model/utils/i18n.js +69 -0
  204. package/dist/specification/src/ftfs/parser/model/utils/i18n.js.map +1 -0
  205. package/dist/specification/src/ftfs/parser/model/utils/index.d.ts +6 -0
  206. package/dist/specification/src/ftfs/parser/model/utils/index.d.ts.map +1 -0
  207. package/dist/specification/src/ftfs/parser/model/utils/index.js +22 -0
  208. package/dist/specification/src/ftfs/parser/model/utils/index.js.map +1 -0
  209. package/dist/specification/src/ftfs/parser/model/utils/object.d.ts +25 -0
  210. package/dist/specification/src/ftfs/parser/model/utils/object.d.ts.map +1 -0
  211. package/dist/specification/src/ftfs/parser/model/utils/object.js +68 -0
  212. package/dist/specification/src/ftfs/parser/model/utils/object.js.map +1 -0
  213. package/dist/specification/src/ftfs/parser/model/utils/sort.d.ts +31 -0
  214. package/dist/specification/src/ftfs/parser/model/utils/sort.d.ts.map +1 -0
  215. package/dist/specification/src/ftfs/parser/model/utils/sort.js +18 -0
  216. package/dist/specification/src/ftfs/parser/model/utils/sort.js.map +1 -0
  217. package/dist/specification/src/ftfs/parser/model/utils/utils.d.ts +95 -0
  218. package/dist/specification/src/ftfs/parser/model/utils/utils.d.ts.map +1 -0
  219. package/dist/specification/src/ftfs/parser/model/utils/utils.js +267 -0
  220. package/dist/specification/src/ftfs/parser/model/utils/utils.js.map +1 -0
  221. package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.d.ts +62 -0
  222. package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.d.ts.map +1 -0
  223. package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.js +111 -0
  224. package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.js.map +1 -0
  225. package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.d.ts +54 -0
  226. package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.d.ts.map +1 -0
  227. package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.js +144 -0
  228. package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.js.map +1 -0
  229. package/dist/specification/src/ftfs/parser/model/views/index.d.ts +3 -0
  230. package/dist/specification/src/ftfs/parser/model/views/index.d.ts.map +1 -0
  231. package/dist/specification/src/ftfs/parser/model/views/index.js +19 -0
  232. package/dist/specification/src/ftfs/parser/model/views/index.js.map +1 -0
  233. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.d.ts +11 -0
  234. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.d.ts.map +1 -0
  235. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.js +18 -0
  236. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.js.map +1 -0
  237. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.d.ts +11 -0
  238. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.d.ts.map +1 -0
  239. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.js +18 -0
  240. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.js.map +1 -0
  241. package/dist/specification/src/ftfs/parser/model/visual-filters/index.d.ts +3 -0
  242. package/dist/specification/src/ftfs/parser/model/visual-filters/index.d.ts.map +1 -0
  243. package/dist/specification/src/ftfs/parser/model/visual-filters/index.js +19 -0
  244. package/dist/specification/src/ftfs/parser/model/visual-filters/index.js.map +1 -0
  245. package/dist/specification/src/sync/common/i18n.json +5 -4
  246. package/dist/specification/src/sync/v2/generate/listReport.d.ts.map +1 -1
  247. package/dist/specification/src/sync/v2/generate/listReport.js +1 -92
  248. package/dist/specification/src/sync/v2/generate/listReport.js.map +1 -1
  249. package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
  250. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +2 -17
  251. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
  252. package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts +40 -0
  253. package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts.map +1 -0
  254. package/dist/specification/src/sync/v2/generate/stableIdUtils.js +179 -0
  255. package/dist/specification/src/sync/v2/generate/stableIdUtils.js.map +1 -0
  256. package/dist/specification/src/sync/v2/generate/utils.d.ts +63 -3
  257. package/dist/specification/src/sync/v2/generate/utils.d.ts.map +1 -1
  258. package/dist/specification/src/sync/v2/generate/utils.js +191 -7
  259. package/dist/specification/src/sync/v2/generate/utils.js.map +1 -1
  260. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.d.ts +59 -0
  261. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.d.ts.map +1 -1
  262. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.js +193 -4
  263. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.js.map +1 -1
  264. package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.d.ts +8 -0
  265. package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.d.ts.map +1 -1
  266. package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.js +52 -7
  267. package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.js.map +1 -1
  268. package/dist/specification/src/sync/v4/application.d.ts +10 -0
  269. package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
  270. package/dist/specification/src/sync/v4/application.js +14 -1
  271. package/dist/specification/src/sync/v4/application.js.map +1 -1
  272. package/dist/specification/src/sync/v4/export/controls/Field.d.ts +17 -0
  273. package/dist/specification/src/sync/v4/export/controls/Field.d.ts.map +1 -0
  274. package/dist/specification/src/sync/v4/export/controls/Field.js +74 -0
  275. package/dist/specification/src/sync/v4/export/controls/Field.js.map +1 -0
  276. package/dist/specification/src/sync/v4/export/controls/index.d.ts +1 -0
  277. package/dist/specification/src/sync/v4/export/controls/index.d.ts.map +1 -1
  278. package/dist/specification/src/sync/v4/export/controls/index.js +1 -0
  279. package/dist/specification/src/sync/v4/export/controls/index.js.map +1 -1
  280. package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
  281. package/dist/specification/src/sync/v4/export/export.js +15 -1
  282. package/dist/specification/src/sync/v4/export/export.js.map +1 -1
  283. package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts +10 -0
  284. package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
  285. package/dist/specification/src/sync/v4/export/fpmCustomPage.js +55 -6
  286. package/dist/specification/src/sync/v4/export/fpmCustomPage.js.map +1 -1
  287. package/dist/specification/src/sync/v4/export/manifest.js +1 -1
  288. package/dist/specification/src/sync/v4/export/manifest.js.map +1 -1
  289. package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
  290. package/dist/specification/src/sync/v4/generate/objectPage.js +44 -1
  291. package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
  292. package/dist/specification/src/sync/v4/import/app/appProvider.d.ts.map +1 -1
  293. package/dist/specification/src/sync/v4/import/app/appProvider.js +3 -0
  294. package/dist/specification/src/sync/v4/import/app/appProvider.js.map +1 -1
  295. package/dist/specification/src/sync/v4/import/pages/listReport.d.ts.map +1 -1
  296. package/dist/specification/src/sync/v4/import/pages/listReport.js +3 -1
  297. package/dist/specification/src/sync/v4/import/pages/listReport.js.map +1 -1
  298. package/dist/specification/src/sync/v4/import/pages/objectPage.d.ts.map +1 -1
  299. package/dist/specification/src/sync/v4/import/pages/objectPage.js +59 -9
  300. package/dist/specification/src/sync/v4/import/pages/objectPage.js.map +1 -1
  301. package/dist/specification/src/sync/v4/utils/macros.d.ts +12 -4
  302. package/dist/specification/src/sync/v4/utils/macros.d.ts.map +1 -1
  303. package/dist/specification/src/sync/v4/utils/macros.js +23 -8
  304. package/dist/specification/src/sync/v4/utils/macros.js.map +1 -1
  305. package/dist/specification/src/sync/v4/utils/utils.d.ts +11 -0
  306. package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
  307. package/dist/specification/src/sync/v4/utils/utils.js +33 -0
  308. package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
  309. package/dist/types/src/apiTypes.d.ts +56 -3
  310. package/dist/types/src/apiTypes.d.ts.map +1 -1
  311. package/dist/types/src/apiTypes.js +1 -0
  312. package/dist/types/src/apiTypes.js.map +1 -1
  313. package/dist/types/src/common/types.d.ts +9 -2
  314. package/dist/types/src/common/types.d.ts.map +1 -1
  315. package/dist/types/src/common/types.js +7 -0
  316. package/dist/types/src/common/types.js.map +1 -1
  317. package/dist/types/src/index.d.ts +1 -0
  318. package/dist/types/src/index.d.ts.map +1 -1
  319. package/dist/types/src/index.js +2 -1
  320. package/dist/types/src/index.js.map +1 -1
  321. package/dist/types/src/parser/application.d.ts +22 -0
  322. package/dist/types/src/parser/application.d.ts.map +1 -0
  323. package/dist/types/src/parser/application.js +3 -0
  324. package/dist/types/src/parser/application.js.map +1 -0
  325. package/dist/types/src/parser/index.d.ts +3 -0
  326. package/dist/types/src/parser/index.d.ts.map +1 -0
  327. package/dist/types/src/parser/index.js +18 -0
  328. package/dist/types/src/parser/index.js.map +1 -0
  329. package/dist/types/src/parser/model.d.ts +17 -0
  330. package/dist/types/src/parser/model.d.ts.map +1 -0
  331. package/dist/types/src/parser/model.js +3 -0
  332. package/dist/types/src/parser/model.js.map +1 -0
  333. package/dist/types/src/v4/controls/CustomField.d.ts +45 -0
  334. package/dist/types/src/v4/controls/CustomField.d.ts.map +1 -0
  335. package/dist/types/src/v4/controls/CustomField.js +9 -0
  336. package/dist/types/src/v4/controls/CustomField.js.map +1 -0
  337. package/dist/types/src/v4/controls/ObjectPageForm.d.ts +2 -1
  338. package/dist/types/src/v4/controls/ObjectPageForm.d.ts.map +1 -1
  339. package/dist/types/src/v4/controls/index.d.ts +1 -0
  340. package/dist/types/src/v4/controls/index.d.ts.map +1 -1
  341. package/dist/types/src/v4/controls/index.js +1 -0
  342. package/dist/types/src/v4/controls/index.js.map +1 -1
  343. package/package.json +13 -9
@@ -0,0 +1,113 @@
1
+ import type { PageEditAggregationData } from '../ObjectAggregation';
2
+ import { ObjectAggregation } from '../ObjectAggregation';
3
+ import type { PageData, PageAnnotations, UINode } from '../types';
4
+ import { AggregationCreationForm, TableColumnExtensionType } from '../types';
5
+ import type { JSONSchema4 } from 'json-schema';
6
+ import type { PageConfig, Parser } from '@sap/ux-specification-types';
7
+ import { PageType } from '@sap/ux-specification-types';
8
+ export interface ColumnBase {
9
+ id?: string;
10
+ text?: string;
11
+ columnKey: string;
12
+ columnIndex?: number;
13
+ leadingProperty?: string;
14
+ fragmentName: string;
15
+ tabKey?: string;
16
+ cellsFragmentName?: string;
17
+ extensionType: TableColumnExtensionType;
18
+ }
19
+ /**
20
+ * Represents an aggregation for columns objects.
21
+ */
22
+ export declare class ColumnsAggregation extends ObjectAggregation {
23
+ formSchema?: ObjectAggregation;
24
+ customColumns: Array<ColumnBase>;
25
+ private columnKeys;
26
+ tableColumnExtensionType?: TableColumnExtensionType;
27
+ allowedAnnotationCreationForms: AggregationCreationForm[];
28
+ private readonly isV4?;
29
+ sectionId?: string;
30
+ sortableCollection: string | undefined;
31
+ /**
32
+ * Creates an instance of `ColumnsAggregation`.
33
+ *
34
+ * @param data Optional aggregation data object used to initialize properties.
35
+ * @param schema Optional JSON schema fragment associated with this aggregation.
36
+ */
37
+ constructor(data?: PageEditAggregationData, schema?: JSONSchema4);
38
+ /**
39
+ * Groups all custom table columns by their extension type.
40
+ *
41
+ * @returns Grouped custom table columns by their extension type.
42
+ */
43
+ private groupCustomColumnsByExtension;
44
+ /**
45
+ * Method ensures that 'order' property of aggregation is zero based and does not have any gap.
46
+ */
47
+ private ensureColumnOrder;
48
+ /**
49
+ * Data update of custom columns from 'custom' block, V2 scenario.
50
+ *
51
+ * @param data Data which should be used for value population.
52
+ * @param page Page config data.
53
+ * @param pageType Page type
54
+ * @param path Path of columns.
55
+ */
56
+ private updatePropertiesFromCustomAggregation;
57
+ /**
58
+ * Overwritten method for data update of table columns.
59
+ *
60
+ * @param data - Data which should be used for value population.
61
+ * @param page - Page config data.
62
+ * @param pageType - Page type
63
+ * @param path - Path of columns.
64
+ * @param annotations - Annotations
65
+ */
66
+ updatePropertiesValues(data: PageData, page: PageConfig, pageType: PageType, path: Parser.PropertyPath, annotations: PageAnnotations): void;
67
+ /**
68
+ * Method returns available column id for candidate column id.
69
+ *
70
+ * @param id Candidate id.
71
+ * @param existingIds Array of existing ids.
72
+ * @returns Available id.
73
+ */
74
+ private getFreeId;
75
+ /**
76
+ * Method detects default extension type for current page with table object.
77
+ *
78
+ * @param page Page config data.
79
+ * @param pageType Page type.
80
+ * @param path Path of columns.
81
+ */
82
+ private resolveTableColumnExtensionType;
83
+ /**
84
+ * Method returns if passed custom column matches table type.
85
+ * Table can have multiple columns with different 'extensionType', but Runtime will render only those which are matches to table type.
86
+ *
87
+ * @param column - Custom column object from 'page.json'.
88
+ * @returns True if custom column extension type matches table type.
89
+ */
90
+ private doesColumnExtensionMatchTableType;
91
+ /**
92
+ * Method checks if custom columns schema supports 'extensionType' property.
93
+ * Old 'spec' version does not support this property, but we still can support custom columns with old spec version.
94
+ *
95
+ * @returns True if 'extensionType' property exists in schema for Custom Column definition.
96
+ */
97
+ isExtensionTypeSupported(): boolean;
98
+ /**
99
+ * Method returns maximal order by looping through all aggregations and all custom columns data.
100
+ *
101
+ * @param columnData - Custom column data.
102
+ * @returns Maximal property order index.
103
+ */
104
+ private getMaxColumnIndex;
105
+ /**
106
+ * Refreshes node locations based on the annotation node data.
107
+ *
108
+ * @param annotations All page annotation nodes.
109
+ * @param currentUINode Current annotation node.
110
+ */
111
+ protected updateLocations(annotations: PageAnnotations | undefined, currentUINode?: UINode): void;
112
+ }
113
+ //# sourceMappingURL=ColumnsAggregation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnsAggregation.d.ts","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/ColumnsAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EACH,uBAAuB,EAGvB,wBAAwB,EAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAkB,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAMvE,MAAM,WAAW,UAAU;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,wBAAwB,CAAC;CAC3C;AAYD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACtC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAEvC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,CAAM;IAC7C,OAAO,CAAC,UAAU,CAAqB;IAChC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,8BAA8B,4BAQnC;IACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAG1B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAa;IACnD;;;;;OAKG;gBACS,IAAI,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,WAAW;IAoChE;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IAuBrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;;;;OAOG;IACH,OAAO,CAAC,qCAAqC;IA4D7C;;;;;;;;OAQG;IACI,sBAAsB,CACzB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,CAAC,YAAY,EACzB,WAAW,EAAE,eAAe,GAC7B,IAAI;IAkCP;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAWjB;;;;;;OAMG;IACH,OAAO,CAAC,+BAA+B;IAavC;;;;;;OAMG;IACH,OAAO,CAAC,iCAAiC;IAIzC;;;;;OAKG;IACI,wBAAwB,IAAI,OAAO;IAI1C;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;CAIpG"}
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnsAggregation = void 0;
4
+ const ObjectAggregation_1 = require("../ObjectAggregation");
5
+ const types_1 = require("../types");
6
+ const ColumnAggregation_1 = require("./ColumnAggregation");
7
+ const ux_specification_types_1 = require("@sap/ux-specification-types");
8
+ const utils_1 = require("./utils");
9
+ const utils_2 = require("../utils");
10
+ const CUSTOM_PROPERTY_NAME = 'custom';
11
+ const PAGE_TYPE_DEFAULT_EXTENSION_MAP = new Map([
12
+ [ux_specification_types_1.PageType.ObjectPage, "ResponsiveTableColumnsExtension" /* TableColumnExtensionType.ResponsiveTableColumnsExtension */],
13
+ [ux_specification_types_1.PageType.ListReport, "ResponsiveTableColumnsExtension" /* TableColumnExtensionType.ResponsiveTableColumnsExtension */],
14
+ [ux_specification_types_1.PageType.AnalyticalListPage, "AnalyticalTableColumnsExtension" /* TableColumnExtensionType.AnalyticalTableColumnsExtension */]
15
+ ]);
16
+ /**
17
+ * Represents an aggregation for columns objects.
18
+ */
19
+ class ColumnsAggregation extends ObjectAggregation_1.ObjectAggregation {
20
+ /**
21
+ * Creates an instance of `ColumnsAggregation`.
22
+ *
23
+ * @param data Optional aggregation data object used to initialize properties.
24
+ * @param schema Optional JSON schema fragment associated with this aggregation.
25
+ */
26
+ constructor(data, schema) {
27
+ super(data, schema);
28
+ // Array of end result ordered columns
29
+ this.customColumns = [];
30
+ this.columnKeys = [];
31
+ this.allowedAnnotationCreationForms = [
32
+ types_1.AggregationCreationForm.NativeBasicColumn,
33
+ types_1.AggregationCreationForm.NativeRatingColumn,
34
+ types_1.AggregationCreationForm.NativeChartColumn,
35
+ types_1.AggregationCreationForm.NativeProgressColumn,
36
+ types_1.AggregationCreationForm.NativeAction,
37
+ types_1.AggregationCreationForm.NativeContactColumn,
38
+ types_1.AggregationCreationForm.NativeNavigation
39
+ ];
40
+ // In case if we would need connect columns and actions separately - in future it can be changed to array ['columns', 'actions']
41
+ this.sortableCollection = 'actions';
42
+ // Child objects as column aggregation
43
+ this.childClass = ColumnAggregation_1.ColumnAggregation;
44
+ if (schema?.properties) {
45
+ let formName;
46
+ if (schema.properties?.custom) {
47
+ formName = types_1.AggregationCreationForm.CustomColumn;
48
+ }
49
+ else if (typeof schema.additionalProperties === 'object' &&
50
+ schema.additionalProperties.$ref &&
51
+ schema.additionalProperties.$ref.indexOf('TableCustomColumn') > -1) {
52
+ formName = types_1.AggregationCreationForm.CustomColumnV4;
53
+ this.isV4 = true;
54
+ }
55
+ else if (this.isMacrosNode()) {
56
+ this.isV4 = true;
57
+ }
58
+ // Custom creation form
59
+ if (formName) {
60
+ this.schemaCreationForms = [
61
+ {
62
+ name: formName,
63
+ kind: types_1.SCHEMA_CREATION_FORM,
64
+ title: 'PAGE_EDITOR_OUTLINE_ADD_CUSTOM_COLUMNS_TITLE',
65
+ disabled: false
66
+ }
67
+ ];
68
+ }
69
+ }
70
+ // Sortable
71
+ this.sortableList = true;
72
+ // i18n key
73
+ this.i18nKey = 'COLUMNS';
74
+ }
75
+ /**
76
+ * Groups all custom table columns by their extension type.
77
+ *
78
+ * @returns Grouped custom table columns by their extension type.
79
+ */
80
+ groupCustomColumnsByExtension() {
81
+ const customColumnGroups = new Map();
82
+ // Sort all columns by index
83
+ const customColumns = [...this.customColumns].sort((column1, column2) => {
84
+ const columnIndex1 = column1.columnIndex ?? 0;
85
+ const columnIndex2 = column2.columnIndex ?? 0;
86
+ if (columnIndex1 === columnIndex2) {
87
+ return 0;
88
+ }
89
+ return columnIndex1 > columnIndex2 ? 1 : -1;
90
+ });
91
+ // Group columns
92
+ for (const customColumn of customColumns) {
93
+ let columns = customColumnGroups.get(customColumn.extensionType);
94
+ if (!columns) {
95
+ columns = [];
96
+ customColumnGroups.set(customColumn.extensionType, columns);
97
+ }
98
+ columns.push(customColumn);
99
+ }
100
+ return customColumnGroups;
101
+ }
102
+ /**
103
+ * Method ensures that 'order' property of aggregation is zero based and does not have any gap.
104
+ */
105
+ ensureColumnOrder() {
106
+ const keys = this.getAggregationKeys();
107
+ for (let i = 0; i < keys.length; i++) {
108
+ const aggregation = this.aggregations[keys[i]];
109
+ if (aggregation) {
110
+ aggregation.order = i;
111
+ }
112
+ }
113
+ }
114
+ /**
115
+ * Data update of custom columns from 'custom' block, V2 scenario.
116
+ *
117
+ * @param data Data which should be used for value population.
118
+ * @param page Page config data.
119
+ * @param pageType Page type
120
+ * @param path Path of columns.
121
+ */
122
+ updatePropertiesFromCustomAggregation(data, page, pageType, path) {
123
+ const formSchema = this.formSchema;
124
+ this.customColumns = data && CUSTOM_PROPERTY_NAME in data ? data[CUSTOM_PROPERTY_NAME] : [];
125
+ if (pageType === ux_specification_types_1.PageTypeV2.ObjectPage) {
126
+ this.sectionId = this.parent?.parent?.schema?.keys?.reduce((key) => key.name === 'ID').value;
127
+ }
128
+ if (this.customColumns.length) {
129
+ // Ensure column order are starting with 0 and does not have any gap
130
+ this.ensureColumnOrder();
131
+ // Array with columns order
132
+ this.columnKeys = Object.keys(this.aggregations);
133
+ const customColumnsGroup = this.groupCustomColumnsByExtension();
134
+ customColumnsGroup.forEach((customColumns) => {
135
+ for (const index in customColumns) {
136
+ const customColumn = formSchema?.getCopy(ColumnAggregation_1.ColumnAggregation);
137
+ const columnData = customColumns[index];
138
+ // Original index in page config array
139
+ const originalIndex = this.customColumns.indexOf(columnData);
140
+ // Update some column specific properties by calling methods
141
+ customColumn.markAsCustomColumn({
142
+ pageType,
143
+ originalIndex,
144
+ columnExtension: columnData.extensionType,
145
+ isExtensionTypeSupported: this.isExtensionTypeSupported(),
146
+ i18nKey: this.i18nKey,
147
+ tableExtension: this.tableColumnExtensionType,
148
+ isV4: this.isV4,
149
+ tabkey: columnData.tabKey
150
+ });
151
+ customColumn.updatePropertiesValues(columnData, page, pageType, path);
152
+ customColumn.setTitle(columnData.text);
153
+ // Get unique column key
154
+ const columnKey = this.getFreeId(columnData.id || columnData.columnKey || 'customColumn', this.columnKeys);
155
+ this.columnKeys.push(columnKey);
156
+ // Add custom column into columns aggregation
157
+ const columnIndex = this.doesColumnExtensionMatchTableType(columnData)
158
+ ? columnData.columnIndex
159
+ : this.getMaxColumnIndex(this.customColumns) + 1;
160
+ this.addAggregation(columnKey, customColumn, this.path.concat([CUSTOM_PROPERTY_NAME, originalIndex]), columnIndex);
161
+ }
162
+ });
163
+ }
164
+ }
165
+ /**
166
+ * Overwritten method for data update of table columns.
167
+ *
168
+ * @param data - Data which should be used for value population.
169
+ * @param page - Page config data.
170
+ * @param pageType - Page type
171
+ * @param path - Path of columns.
172
+ * @param annotations - Annotations
173
+ */
174
+ updatePropertiesValues(data, page, pageType, path, annotations) {
175
+ super.updatePropertiesValues(data, page, pageType, path, annotations);
176
+ // Detect extension type
177
+ this.resolveTableColumnExtensionType(page, pageType, path);
178
+ // Hold custom column aggregation
179
+ if (!this.isV4) {
180
+ this.formSchema = this.aggregations[CUSTOM_PROPERTY_NAME];
181
+ delete this.aggregations[CUSTOM_PROPERTY_NAME];
182
+ // Custom block is present, V2 scenario
183
+ this.updatePropertiesFromCustomAggregation(data, page, pageType, path);
184
+ }
185
+ else {
186
+ // V4 new custom columns metadata aggregation is stored under 'additionalProperties'
187
+ this.formSchema = this.additionalProperties?.aggregations['columns'];
188
+ // V4 scenario: analyze all customs
189
+ const columns = data || {};
190
+ for (const columnKey in columns) {
191
+ const column = this.aggregations[columnKey];
192
+ if (column.schema && !column.schema.annotationPath) {
193
+ column.originalIndex = column.schema.propertyIndex;
194
+ column.markAsCustomColumn({
195
+ pageType,
196
+ originalIndex: column.schema.propertyIndex,
197
+ columnExtension: this.tableColumnExtensionType,
198
+ isExtensionTypeSupported: this.isExtensionTypeSupported(),
199
+ i18nKey: this.i18nKey,
200
+ tableExtension: this.tableColumnExtensionType,
201
+ isV4: this.isV4,
202
+ tabkey: column.properties.tabkey?.value
203
+ });
204
+ }
205
+ }
206
+ }
207
+ }
208
+ /**
209
+ * Method returns available column id for candidate column id.
210
+ *
211
+ * @param id Candidate id.
212
+ * @param existingIds Array of existing ids.
213
+ * @returns Available id.
214
+ */
215
+ getFreeId(id, existingIds) {
216
+ // Find available id
217
+ let counter = 1;
218
+ const originalId = id;
219
+ while (existingIds.includes(id)) {
220
+ id = originalId + counter;
221
+ counter++;
222
+ }
223
+ return id;
224
+ }
225
+ /**
226
+ * Method detects default extension type for current page with table object.
227
+ *
228
+ * @param page Page config data.
229
+ * @param pageType Page type.
230
+ * @param path Path of columns.
231
+ */
232
+ resolveTableColumnExtensionType(page, pageType, path) {
233
+ // Get path for table object
234
+ const tableTypePath = path.splice(0, path.length - 1);
235
+ // Read table type
236
+ tableTypePath.push('type');
237
+ const tableType = (0, utils_2.getProperty)(page, tableTypePath);
238
+ // Use mappings and detect extension type
239
+ this.tableColumnExtensionType =
240
+ typeof tableType === 'string' && tableType in ux_specification_types_1.v2.TableTypeV2
241
+ ? types_1.TABLE_TYPE_EXTENSION_MAP.get(tableType)
242
+ : PAGE_TYPE_DEFAULT_EXTENSION_MAP.get(pageType);
243
+ }
244
+ /**
245
+ * Method returns if passed custom column matches table type.
246
+ * Table can have multiple columns with different 'extensionType', but Runtime will render only those which are matches to table type.
247
+ *
248
+ * @param column - Custom column object from 'page.json'.
249
+ * @returns True if custom column extension type matches table type.
250
+ */
251
+ doesColumnExtensionMatchTableType(column) {
252
+ return !this.isExtensionTypeSupported() || column.extensionType === this.tableColumnExtensionType;
253
+ }
254
+ /**
255
+ * Method checks if custom columns schema supports 'extensionType' property.
256
+ * Old 'spec' version does not support this property, but we still can support custom columns with old spec version.
257
+ *
258
+ * @returns True if 'extensionType' property exists in schema for Custom Column definition.
259
+ */
260
+ isExtensionTypeSupported() {
261
+ return !!this.formSchema?.properties.extensionType;
262
+ }
263
+ /**
264
+ * Method returns maximal order by looping through all aggregations and all custom columns data.
265
+ *
266
+ * @param columnData - Custom column data.
267
+ * @returns Maximal property order index.
268
+ */
269
+ getMaxColumnIndex(columnData) {
270
+ let maxIndex = this.getMaxOrder();
271
+ for (const column of columnData) {
272
+ if (column.columnIndex !== undefined && maxIndex < column.columnIndex) {
273
+ maxIndex = column.columnIndex;
274
+ }
275
+ }
276
+ return maxIndex;
277
+ }
278
+ /**
279
+ * Refreshes node locations based on the annotation node data.
280
+ *
281
+ * @param annotations All page annotation nodes.
282
+ * @param currentUINode Current annotation node.
283
+ */
284
+ updateLocations(annotations, currentUINode) {
285
+ super.updateLocations(annotations, currentUINode);
286
+ (0, utils_1.updateTableChildNodeLocations)(this);
287
+ }
288
+ }
289
+ exports.ColumnsAggregation = ColumnsAggregation;
290
+ //# sourceMappingURL=ColumnsAggregation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnsAggregation.js","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/ColumnsAggregation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { ObjectAggregation } from '../ObjectAggregation';
2
+ /**
3
+ * Represents an aggregation for table objects.
4
+ */
5
+ export declare class TableAggregation extends ObjectAggregation {
6
+ /**
7
+ * Method parses object path key and returns table source entity name(target).
8
+ *
9
+ * @returns Table source entity name(target).
10
+ */
11
+ getTechnicalName(): string | undefined;
12
+ }
13
+ //# sourceMappingURL=TableAggregation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableAggregation.d.ts","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/TableAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;IACnD;;;;OAIG;IACI,gBAAgB,IAAI,MAAM,GAAG,SAAS;CAIhD"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableAggregation = void 0;
4
+ const ObjectAggregation_1 = require("../ObjectAggregation");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * Represents an aggregation for table objects.
8
+ */
9
+ class TableAggregation extends ObjectAggregation_1.ObjectAggregation {
10
+ /**
11
+ * Method parses object path key and returns table source entity name(target).
12
+ *
13
+ * @returns Table source entity name(target).
14
+ */
15
+ getTechnicalName() {
16
+ const key = this.parent ? (0, utils_1.getTechnicalIdFromPath)(this.parent.path, true) : undefined;
17
+ return key || super.getTechnicalName();
18
+ }
19
+ }
20
+ exports.TableAggregation = TableAggregation;
21
+ //# sourceMappingURL=TableAggregation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableAggregation.js","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/TableAggregation.ts"],"names":[],"mappings":";;;AAAA,4DAAyD;AACzD,oCAAkD;AAElD;;GAEG;AACH,MAAa,gBAAiB,SAAQ,qCAAiB;IACnD;;;;OAIG;IACI,gBAAgB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,8BAAsB,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,OAAO,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC;CACJ;AAVD,4CAUC"}
@@ -0,0 +1,15 @@
1
+ import type { PageAnnotations, UINode } from '../types';
2
+ import { ObjectAggregation } from '../ObjectAggregation';
3
+ /**
4
+ * Represents an aggregation for table toolbar objects.
5
+ */
6
+ export declare class ToolbarAggregation extends ObjectAggregation {
7
+ /**
8
+ * Refreshes node locations based on the annotation node data.
9
+ *
10
+ * @param annotations All page annotation nodes.
11
+ * @param currentUINode Current annotation node.
12
+ */
13
+ protected updateLocations(annotations: PageAnnotations | undefined, currentUINode?: UINode): void;
14
+ }
15
+ //# sourceMappingURL=ToolbarAggregation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarAggregation.d.ts","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/ToolbarAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACrD;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;CAIpG"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToolbarAggregation = void 0;
4
+ const ObjectAggregation_1 = require("../ObjectAggregation");
5
+ const utils_1 = require("./utils");
6
+ /**
7
+ * Represents an aggregation for table toolbar objects.
8
+ */
9
+ class ToolbarAggregation extends ObjectAggregation_1.ObjectAggregation {
10
+ /**
11
+ * Refreshes node locations based on the annotation node data.
12
+ *
13
+ * @param annotations All page annotation nodes.
14
+ * @param currentUINode Current annotation node.
15
+ */
16
+ updateLocations(annotations, currentUINode) {
17
+ super.updateLocations(annotations, currentUINode);
18
+ (0, utils_1.updateTableChildNodeLocations)(this);
19
+ }
20
+ }
21
+ exports.ToolbarAggregation = ToolbarAggregation;
22
+ //# sourceMappingURL=ToolbarAggregation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarAggregation.js","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/ToolbarAggregation.ts"],"names":[],"mappings":";;;AACA,4DAAyD;AACzD,mCAAwD;AAExD;;GAEG;AACH,MAAa,kBAAmB,SAAQ,qCAAiB;IACrD;;;;;OAKG;IACO,eAAe,CAAC,WAAwC,EAAE,aAAsB;QACtF,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAClD,IAAA,qCAA6B,EAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACJ;AAXD,gDAWC"}
@@ -0,0 +1,5 @@
1
+ export * from './ColumnAggregation';
2
+ export * from './ColumnsAggregation';
3
+ export * from './TableAggregation';
4
+ export * from './ToolbarAggregation';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ColumnAggregation"), exports);
18
+ __exportStar(require("./ColumnsAggregation"), exports);
19
+ __exportStar(require("./TableAggregation"), exports);
20
+ __exportStar(require("./ToolbarAggregation"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,uDAAqC;AACrC,qDAAmC;AACnC,uDAAqC"}
@@ -0,0 +1,12 @@
1
+ import type { ObjectAggregation } from '../ObjectAggregation';
2
+ /**
3
+ * Method updates table and table's child nodes annotation "locations" properties.
4
+ * It is used to handle different schema variations:
5
+ * 1. "AnnotationPath" can be placed in "Table" node;
6
+ * 2. "AnnotationPath" can be missed in "Table" node, but placed in child node;
7
+ * In case of 2nd scenario - we need to copy "locations" from child and apply to "Table" node.
8
+ *
9
+ * @param child Table's child aggregation/node.
10
+ */
11
+ export declare const updateTableChildNodeLocations: (child: ObjectAggregation) => void;
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAY9D;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,GAAI,OAAO,iBAAiB,KAAG,IAmBxE,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateTableChildNodeLocations = void 0;
4
+ const ux_specification_types_1 = require("@sap/ux-specification-types");
5
+ /**
6
+ * Method checks if passed location is associated with annotation source/artifact.
7
+ *
8
+ * @param location Location object.
9
+ * @returns True if passed location is associated with annotation source/artifact.
10
+ */
11
+ const isAnnotationLocation = (location) => {
12
+ return !location.type || location.type === ux_specification_types_1.ArtifactType.Annotation;
13
+ };
14
+ /**
15
+ * Method updates table and table's child nodes annotation "locations" properties.
16
+ * It is used to handle different schema variations:
17
+ * 1. "AnnotationPath" can be placed in "Table" node;
18
+ * 2. "AnnotationPath" can be missed in "Table" node, but placed in child node;
19
+ * In case of 2nd scenario - we need to copy "locations" from child and apply to "Table" node.
20
+ *
21
+ * @param child Table's child aggregation/node.
22
+ */
23
+ const updateTableChildNodeLocations = (child) => {
24
+ const annotationLocations = [];
25
+ const locations = child.locations ? [...child.locations] : [];
26
+ // Remove annotation locations from original aggregation
27
+ for (let i = locations.length - 1; i >= 0; i--) {
28
+ const location = locations[i];
29
+ if (isAnnotationLocation(location)) {
30
+ annotationLocations.push(location);
31
+ locations.splice(i, 1);
32
+ }
33
+ }
34
+ // Add annotation locations to parent aggregation
35
+ if (child.parent && annotationLocations.length) {
36
+ const parentLocations = child.parent.locations || [];
37
+ // Overwrite annotation locations if exists
38
+ child.parent.locations = parentLocations.filter((location) => !isAnnotationLocation(location));
39
+ child.parent.locations.unshift(...annotationLocations);
40
+ }
41
+ child.locations = locations;
42
+ };
43
+ exports.updateTableChildNodeLocations = updateTableChildNodeLocations;
44
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../src/ftfs/parser/model/table/utils.ts"],"names":[],"mappings":";;;AAAA,wEAA2D;AAI3D;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAW,EAAE;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,qCAAY,CAAC,UAAU,CAAC;AACvE,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACI,MAAM,6BAA6B,GAAG,CAAC,KAAwB,EAAQ,EAAE;IAC5E,MAAM,mBAAmB,GAAe,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,wDAAwD;IACxD,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,iDAAiD;IACjD,IAAI,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QACrD,2CAA2C;QAC3C,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AAChC,CAAC,CAAC;AAnBW,QAAA,6BAA6B,iCAmBxC"}