@sap/ux-specification 1.108.67 → 1.108.69

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 (347) hide show
  1. package/CHANGELOG.md +54 -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 +245 -245
  14. package/dist/index-min.js.map +4 -4
  15. package/dist/schemas/v2/ApplicationV2.json +18 -9
  16. package/dist/schemas/v2/ListReportNewConfig.json +170 -0
  17. package/dist/schemas/v4/ApplicationV4.json +18 -9
  18. package/dist/schemas/v4/BuildingBlocksConfig.json +2 -3
  19. package/dist/specification/package.json +10 -9
  20. package/dist/specification/scripts/macros/schema.d.ts +7 -0
  21. package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
  22. package/dist/specification/scripts/macros/schema.js +61 -14
  23. package/dist/specification/scripts/macros/schema.js.map +1 -1
  24. package/dist/specification/scripts/macros/types.d.ts +1 -0
  25. package/dist/specification/scripts/macros/types.d.ts.map +1 -1
  26. package/dist/specification/scripts/schema/to-json-schema.d.ts.map +1 -1
  27. package/dist/specification/scripts/schema/to-json-schema.js +53 -6
  28. package/dist/specification/scripts/schema/to-json-schema.js.map +1 -1
  29. package/dist/specification/src/api.js +2 -2
  30. package/dist/specification/src/ftfs/ftfs.d.ts +1 -1
  31. package/dist/specification/src/ftfs/ftfs.d.ts.map +1 -1
  32. package/dist/specification/src/ftfs/ftfs.js +38 -5
  33. package/dist/specification/src/ftfs/ftfs.js.map +1 -1
  34. package/dist/specification/src/ftfs/parser/annotations.d.ts +9 -0
  35. package/dist/specification/src/ftfs/parser/annotations.d.ts.map +1 -0
  36. package/dist/specification/src/ftfs/parser/annotations.js +13 -0
  37. package/dist/specification/src/ftfs/parser/annotations.js.map +1 -0
  38. package/dist/specification/src/ftfs/parser/index.d.ts +15 -0
  39. package/dist/specification/src/ftfs/parser/index.d.ts.map +1 -0
  40. package/dist/specification/src/ftfs/parser/index.js +35 -0
  41. package/dist/specification/src/ftfs/parser/index.js.map +1 -0
  42. package/dist/specification/src/ftfs/parser/model/AggregationValidator.d.ts +65 -0
  43. package/dist/specification/src/ftfs/parser/model/AggregationValidator.d.ts.map +1 -0
  44. package/dist/specification/src/ftfs/parser/model/AggregationValidator.js +209 -0
  45. package/dist/specification/src/ftfs/parser/model/AggregationValidator.js.map +1 -0
  46. package/dist/specification/src/ftfs/parser/model/ArrayAggregation.d.ts +49 -0
  47. package/dist/specification/src/ftfs/parser/model/ArrayAggregation.d.ts.map +1 -0
  48. package/dist/specification/src/ftfs/parser/model/ArrayAggregation.js +122 -0
  49. package/dist/specification/src/ftfs/parser/model/ArrayAggregation.js.map +1 -0
  50. package/dist/specification/src/ftfs/parser/model/NodeProperty.d.ts +38 -0
  51. package/dist/specification/src/ftfs/parser/model/NodeProperty.d.ts.map +1 -0
  52. package/dist/specification/src/ftfs/parser/model/NodeProperty.js +25 -0
  53. package/dist/specification/src/ftfs/parser/model/NodeProperty.js.map +1 -0
  54. package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts +339 -0
  55. package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts.map +1 -0
  56. package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js +682 -0
  57. package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js.map +1 -0
  58. package/dist/specification/src/ftfs/parser/model/RootAggregation.d.ts +24 -0
  59. package/dist/specification/src/ftfs/parser/model/RootAggregation.d.ts.map +1 -0
  60. package/dist/specification/src/ftfs/parser/model/RootAggregation.js +57 -0
  61. package/dist/specification/src/ftfs/parser/model/RootAggregation.js.map +1 -0
  62. package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts +224 -0
  63. package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts.map +1 -0
  64. package/dist/specification/src/ftfs/parser/model/TreeModel.js +947 -0
  65. package/dist/specification/src/ftfs/parser/model/TreeModel.js.map +1 -0
  66. package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts +34 -0
  67. package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts.map +1 -0
  68. package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js +94 -0
  69. package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js.map +1 -0
  70. package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts +67 -0
  71. package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts.map +1 -0
  72. package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js +113 -0
  73. package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js.map +1 -0
  74. package/dist/specification/src/ftfs/parser/model/actions/index.d.ts +3 -0
  75. package/dist/specification/src/ftfs/parser/model/actions/index.d.ts.map +1 -0
  76. package/dist/specification/src/ftfs/parser/model/actions/index.js +19 -0
  77. package/dist/specification/src/ftfs/parser/model/actions/index.js.map +1 -0
  78. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.d.ts +17 -0
  79. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.d.ts.map +1 -0
  80. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.js +29 -0
  81. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectAggregation.js.map +1 -0
  82. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.d.ts +46 -0
  83. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.d.ts.map +1 -0
  84. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.js +66 -0
  85. package/dist/specification/src/ftfs/parser/model/additionalObjects/AdditionalObjectsAggregation.js.map +1 -0
  86. package/dist/specification/src/ftfs/parser/model/additionalObjects/index.d.ts +3 -0
  87. package/dist/specification/src/ftfs/parser/model/additionalObjects/index.d.ts.map +1 -0
  88. package/dist/specification/src/ftfs/parser/model/additionalObjects/index.js +19 -0
  89. package/dist/specification/src/ftfs/parser/model/additionalObjects/index.js.map +1 -0
  90. package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.d.ts +21 -0
  91. package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.d.ts.map +1 -0
  92. package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.js +30 -0
  93. package/dist/specification/src/ftfs/parser/model/chart/ChartAggregation.js.map +1 -0
  94. package/dist/specification/src/ftfs/parser/model/chart/index.d.ts +2 -0
  95. package/dist/specification/src/ftfs/parser/model/chart/index.d.ts.map +1 -0
  96. package/dist/specification/src/ftfs/parser/model/chart/index.js +18 -0
  97. package/dist/specification/src/ftfs/parser/model/chart/index.js.map +1 -0
  98. package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.d.ts +9 -0
  99. package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.d.ts.map +1 -0
  100. package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.js +16 -0
  101. package/dist/specification/src/ftfs/parser/model/fields/ConnectedFieldsAggregation.js.map +1 -0
  102. package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.d.ts +25 -0
  103. package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.d.ts.map +1 -0
  104. package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.js +45 -0
  105. package/dist/specification/src/ftfs/parser/model/fields/FieldAggregation.js.map +1 -0
  106. package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.d.ts +22 -0
  107. package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.d.ts.map +1 -0
  108. package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.js +37 -0
  109. package/dist/specification/src/ftfs/parser/model/fields/FieldsAggregation.js.map +1 -0
  110. package/dist/specification/src/ftfs/parser/model/fields/index.d.ts +4 -0
  111. package/dist/specification/src/ftfs/parser/model/fields/index.d.ts.map +1 -0
  112. package/dist/specification/src/ftfs/parser/model/fields/index.js +20 -0
  113. package/dist/specification/src/ftfs/parser/model/fields/index.js.map +1 -0
  114. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.d.ts +39 -0
  115. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.d.ts.map +1 -0
  116. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.js +97 -0
  117. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldAggregation.js.map +1 -0
  118. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.d.ts +36 -0
  119. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.d.ts.map +1 -0
  120. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.js +59 -0
  121. package/dist/specification/src/ftfs/parser/model/filter-fields/FilterFieldsAggregation.js.map +1 -0
  122. package/dist/specification/src/ftfs/parser/model/filter-fields/index.d.ts +3 -0
  123. package/dist/specification/src/ftfs/parser/model/filter-fields/index.d.ts.map +1 -0
  124. package/dist/specification/src/ftfs/parser/model/filter-fields/index.js +19 -0
  125. package/dist/specification/src/ftfs/parser/model/filter-fields/index.js.map +1 -0
  126. package/dist/specification/src/ftfs/parser/model/index.d.ts +19 -0
  127. package/dist/specification/src/ftfs/parser/model/index.d.ts.map +1 -0
  128. package/dist/specification/src/ftfs/parser/model/index.js +35 -0
  129. package/dist/specification/src/ftfs/parser/model/index.js.map +1 -0
  130. package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.d.ts +29 -0
  131. package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.d.ts.map +1 -0
  132. package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.js +50 -0
  133. package/dist/specification/src/ftfs/parser/model/macros/MacrosRoot.js.map +1 -0
  134. package/dist/specification/src/ftfs/parser/model/macros/index.d.ts +2 -0
  135. package/dist/specification/src/ftfs/parser/model/macros/index.d.ts.map +1 -0
  136. package/dist/specification/src/ftfs/parser/model/macros/index.js +18 -0
  137. package/dist/specification/src/ftfs/parser/model/macros/index.js.map +1 -0
  138. package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.d.ts +31 -0
  139. package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.d.ts.map +1 -0
  140. package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.js +82 -0
  141. package/dist/specification/src/ftfs/parser/model/sections/HeaderSectionsAggregation.js.map +1 -0
  142. package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.d.ts +78 -0
  143. package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.d.ts.map +1 -0
  144. package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.js +126 -0
  145. package/dist/specification/src/ftfs/parser/model/sections/SectionAggregation.js.map +1 -0
  146. package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.d.ts +135 -0
  147. package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.d.ts.map +1 -0
  148. package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.js +402 -0
  149. package/dist/specification/src/ftfs/parser/model/sections/SectionsAggregation.js.map +1 -0
  150. package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.d.ts +50 -0
  151. package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.d.ts.map +1 -0
  152. package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.js +120 -0
  153. package/dist/specification/src/ftfs/parser/model/sections/SectionsObjectAggregation.js.map +1 -0
  154. package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.d.ts +39 -0
  155. package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.d.ts.map +1 -0
  156. package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.js +70 -0
  157. package/dist/specification/src/ftfs/parser/model/sections/SubSectionsAggregation.js.map +1 -0
  158. package/dist/specification/src/ftfs/parser/model/sections/index.d.ts +6 -0
  159. package/dist/specification/src/ftfs/parser/model/sections/index.d.ts.map +1 -0
  160. package/dist/specification/src/ftfs/parser/model/sections/index.js +22 -0
  161. package/dist/specification/src/ftfs/parser/model/sections/index.js.map +1 -0
  162. package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.d.ts +89 -0
  163. package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.d.ts.map +1 -0
  164. package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.js +175 -0
  165. package/dist/specification/src/ftfs/parser/model/table/ColumnAggregation.js.map +1 -0
  166. package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.d.ts +113 -0
  167. package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.d.ts.map +1 -0
  168. package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.js +290 -0
  169. package/dist/specification/src/ftfs/parser/model/table/ColumnsAggregation.js.map +1 -0
  170. package/dist/specification/src/ftfs/parser/model/table/TableAggregation.d.ts +13 -0
  171. package/dist/specification/src/ftfs/parser/model/table/TableAggregation.d.ts.map +1 -0
  172. package/dist/specification/src/ftfs/parser/model/table/TableAggregation.js +21 -0
  173. package/dist/specification/src/ftfs/parser/model/table/TableAggregation.js.map +1 -0
  174. package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.d.ts +15 -0
  175. package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.d.ts.map +1 -0
  176. package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.js +22 -0
  177. package/dist/specification/src/ftfs/parser/model/table/ToolbarAggregation.js.map +1 -0
  178. package/dist/specification/src/ftfs/parser/model/table/index.d.ts +5 -0
  179. package/dist/specification/src/ftfs/parser/model/table/index.d.ts.map +1 -0
  180. package/dist/specification/src/ftfs/parser/model/table/index.js +21 -0
  181. package/dist/specification/src/ftfs/parser/model/table/index.js.map +1 -0
  182. package/dist/specification/src/ftfs/parser/model/table/utils.d.ts +12 -0
  183. package/dist/specification/src/ftfs/parser/model/table/utils.d.ts.map +1 -0
  184. package/dist/specification/src/ftfs/parser/model/table/utils.js +44 -0
  185. package/dist/specification/src/ftfs/parser/model/table/utils.js.map +1 -0
  186. package/dist/specification/src/ftfs/parser/model/types/annotations.d.ts +63 -0
  187. package/dist/specification/src/ftfs/parser/model/types/annotations.d.ts.map +1 -0
  188. package/dist/specification/src/ftfs/parser/model/types/annotations.js +29 -0
  189. package/dist/specification/src/ftfs/parser/model/types/annotations.js.map +1 -0
  190. package/dist/specification/src/ftfs/parser/model/types/common.d.ts +13 -0
  191. package/dist/specification/src/ftfs/parser/model/types/common.d.ts.map +1 -0
  192. package/dist/specification/src/ftfs/parser/model/types/common.js +3 -0
  193. package/dist/specification/src/ftfs/parser/model/types/common.js.map +1 -0
  194. package/dist/specification/src/ftfs/parser/model/types/index.d.ts +219 -0
  195. package/dist/specification/src/ftfs/parser/model/types/index.d.ts.map +1 -0
  196. package/dist/specification/src/ftfs/parser/model/types/index.js +156 -0
  197. package/dist/specification/src/ftfs/parser/model/types/index.js.map +1 -0
  198. package/dist/specification/src/ftfs/parser/model/utils/annotations.d.ts +38 -0
  199. package/dist/specification/src/ftfs/parser/model/utils/annotations.d.ts.map +1 -0
  200. package/dist/specification/src/ftfs/parser/model/utils/annotations.js +120 -0
  201. package/dist/specification/src/ftfs/parser/model/utils/annotations.js.map +1 -0
  202. package/dist/specification/src/ftfs/parser/model/utils/i18n.d.ts +33 -0
  203. package/dist/specification/src/ftfs/parser/model/utils/i18n.d.ts.map +1 -0
  204. package/dist/specification/src/ftfs/parser/model/utils/i18n.js +69 -0
  205. package/dist/specification/src/ftfs/parser/model/utils/i18n.js.map +1 -0
  206. package/dist/specification/src/ftfs/parser/model/utils/index.d.ts +6 -0
  207. package/dist/specification/src/ftfs/parser/model/utils/index.d.ts.map +1 -0
  208. package/dist/specification/src/ftfs/parser/model/utils/index.js +22 -0
  209. package/dist/specification/src/ftfs/parser/model/utils/index.js.map +1 -0
  210. package/dist/specification/src/ftfs/parser/model/utils/object.d.ts +25 -0
  211. package/dist/specification/src/ftfs/parser/model/utils/object.d.ts.map +1 -0
  212. package/dist/specification/src/ftfs/parser/model/utils/object.js +68 -0
  213. package/dist/specification/src/ftfs/parser/model/utils/object.js.map +1 -0
  214. package/dist/specification/src/ftfs/parser/model/utils/sort.d.ts +31 -0
  215. package/dist/specification/src/ftfs/parser/model/utils/sort.d.ts.map +1 -0
  216. package/dist/specification/src/ftfs/parser/model/utils/sort.js +18 -0
  217. package/dist/specification/src/ftfs/parser/model/utils/sort.js.map +1 -0
  218. package/dist/specification/src/ftfs/parser/model/utils/utils.d.ts +95 -0
  219. package/dist/specification/src/ftfs/parser/model/utils/utils.d.ts.map +1 -0
  220. package/dist/specification/src/ftfs/parser/model/utils/utils.js +267 -0
  221. package/dist/specification/src/ftfs/parser/model/utils/utils.js.map +1 -0
  222. package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.d.ts +62 -0
  223. package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.d.ts.map +1 -0
  224. package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.js +111 -0
  225. package/dist/specification/src/ftfs/parser/model/views/ViewAggregation.js.map +1 -0
  226. package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.d.ts +54 -0
  227. package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.d.ts.map +1 -0
  228. package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.js +144 -0
  229. package/dist/specification/src/ftfs/parser/model/views/ViewsAggregation.js.map +1 -0
  230. package/dist/specification/src/ftfs/parser/model/views/index.d.ts +3 -0
  231. package/dist/specification/src/ftfs/parser/model/views/index.d.ts.map +1 -0
  232. package/dist/specification/src/ftfs/parser/model/views/index.js +19 -0
  233. package/dist/specification/src/ftfs/parser/model/views/index.js.map +1 -0
  234. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.d.ts +11 -0
  235. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.d.ts.map +1 -0
  236. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.js +18 -0
  237. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFilterAggregation.js.map +1 -0
  238. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.d.ts +11 -0
  239. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.d.ts.map +1 -0
  240. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.js +18 -0
  241. package/dist/specification/src/ftfs/parser/model/visual-filters/VisualFiltersAggregation.js.map +1 -0
  242. package/dist/specification/src/ftfs/parser/model/visual-filters/index.d.ts +3 -0
  243. package/dist/specification/src/ftfs/parser/model/visual-filters/index.d.ts.map +1 -0
  244. package/dist/specification/src/ftfs/parser/model/visual-filters/index.js +19 -0
  245. package/dist/specification/src/ftfs/parser/model/visual-filters/index.js.map +1 -0
  246. package/dist/specification/src/sync/common/dist_tag.json +17 -18
  247. package/dist/specification/src/sync/common/i18n.json +17 -5
  248. package/dist/specification/src/sync/common/utils.d.ts +25 -0
  249. package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
  250. package/dist/specification/src/sync/common/utils.js +55 -0
  251. package/dist/specification/src/sync/common/utils.js.map +1 -1
  252. package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
  253. package/dist/specification/src/sync/v2/export/exportPageGeneric.js +1 -10
  254. package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
  255. package/dist/specification/src/sync/v2/generate/listReport.d.ts.map +1 -1
  256. package/dist/specification/src/sync/v2/generate/listReport.js +1 -92
  257. package/dist/specification/src/sync/v2/generate/listReport.js.map +1 -1
  258. package/dist/specification/src/sync/v2/generate/manifestPropertyUtils.d.ts +1 -2
  259. package/dist/specification/src/sync/v2/generate/manifestPropertyUtils.d.ts.map +1 -1
  260. package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts +1 -1
  261. package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
  262. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +6 -18
  263. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
  264. package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts +48 -0
  265. package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts.map +1 -0
  266. package/dist/specification/src/sync/v2/generate/stableIdUtils.js +180 -0
  267. package/dist/specification/src/sync/v2/generate/stableIdUtils.js.map +1 -0
  268. package/dist/specification/src/sync/v2/generate/utils.d.ts +63 -3
  269. package/dist/specification/src/sync/v2/generate/utils.d.ts.map +1 -1
  270. package/dist/specification/src/sync/v2/generate/utils.js +191 -7
  271. package/dist/specification/src/sync/v2/generate/utils.js.map +1 -1
  272. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.d.ts +59 -0
  273. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.d.ts.map +1 -1
  274. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.js +193 -4
  275. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.js.map +1 -1
  276. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.js +3 -2
  277. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.js.map +1 -1
  278. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiTable.d.ts +78 -0
  279. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiTable.d.ts.map +1 -0
  280. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiTable.js +454 -0
  281. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiTable.js.map +1 -0
  282. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts +54 -0
  283. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts.map +1 -0
  284. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js +148 -0
  285. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js.map +1 -0
  286. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts +2 -0
  287. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts.map +1 -1
  288. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js +2 -0
  289. package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js.map +1 -1
  290. package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.d.ts +10 -0
  291. package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.d.ts.map +1 -1
  292. package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.js +90 -7
  293. package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.js.map +1 -1
  294. package/dist/specification/src/sync/v2/import/pages/overviewPage.d.ts.map +1 -1
  295. package/dist/specification/src/sync/v2/import/pages/overviewPage.js +28 -13
  296. package/dist/specification/src/sync/v2/import/pages/overviewPage.js.map +1 -1
  297. package/dist/specification/src/sync/v2/utils.d.ts +7 -0
  298. package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
  299. package/dist/specification/src/sync/v2/utils.js +10 -0
  300. package/dist/specification/src/sync/v2/utils.js.map +1 -1
  301. package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
  302. package/dist/specification/src/sync/v4/export/fpmCustomPage.js +13 -3
  303. package/dist/specification/src/sync/v4/export/fpmCustomPage.js.map +1 -1
  304. package/dist/specification/src/sync/v4/export/manifest.js +1 -1
  305. package/dist/specification/src/sync/v4/export/manifest.js.map +1 -1
  306. package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +1 -1
  307. package/dist/specification/src/sync/v4/generate/listReport.js +100 -33
  308. package/dist/specification/src/sync/v4/generate/listReport.js.map +1 -1
  309. package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
  310. package/dist/specification/src/sync/v4/generate/objectPage.js +74 -28
  311. package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
  312. package/dist/specification/src/sync/v4/import/app/appProvider.d.ts.map +1 -1
  313. package/dist/specification/src/sync/v4/import/app/appProvider.js +3 -0
  314. package/dist/specification/src/sync/v4/import/app/appProvider.js.map +1 -1
  315. package/dist/specification/src/sync/v4/import/pages/listReport.d.ts.map +1 -1
  316. package/dist/specification/src/sync/v4/import/pages/listReport.js +3 -1
  317. package/dist/specification/src/sync/v4/import/pages/listReport.js.map +1 -1
  318. package/dist/specification/src/sync/v4/utils/utils.d.ts +33 -0
  319. package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
  320. package/dist/specification/src/sync/v4/utils/utils.js +95 -0
  321. package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
  322. package/dist/types/src/apiTypes.d.ts +22 -0
  323. package/dist/types/src/apiTypes.d.ts.map +1 -1
  324. package/dist/types/src/apiTypes.js.map +1 -1
  325. package/dist/types/src/common/types.d.ts +1 -0
  326. package/dist/types/src/common/types.d.ts.map +1 -1
  327. package/dist/types/src/index.d.ts +1 -0
  328. package/dist/types/src/index.d.ts.map +1 -1
  329. package/dist/types/src/index.js +2 -1
  330. package/dist/types/src/index.js.map +1 -1
  331. package/dist/types/src/parser/application.d.ts +22 -0
  332. package/dist/types/src/parser/application.d.ts.map +1 -0
  333. package/dist/types/src/parser/application.js +3 -0
  334. package/dist/types/src/parser/application.js.map +1 -0
  335. package/dist/types/src/parser/index.d.ts +3 -0
  336. package/dist/types/src/parser/index.d.ts.map +1 -0
  337. package/dist/types/src/parser/index.js +18 -0
  338. package/dist/types/src/parser/index.js.map +1 -0
  339. package/dist/types/src/parser/model.d.ts +17 -0
  340. package/dist/types/src/parser/model.d.ts.map +1 -0
  341. package/dist/types/src/parser/model.js +3 -0
  342. package/dist/types/src/parser/model.js.map +1 -0
  343. package/package.json +10 -9
  344. package/dist/specification/src/ftfs/annotations.d.ts +0 -12
  345. package/dist/specification/src/ftfs/annotations.d.ts.map +0 -1
  346. package/dist/specification/src/ftfs/annotations.js +0 -50
  347. package/dist/specification/src/ftfs/annotations.js.map +0 -1
@@ -46,6 +46,10 @@ const factory_2 = require("../../src/sync/v4/export/factory");
46
46
  const ux_specification_types_1 = require("@sap/ux-specification-types");
47
47
  const ListReportNew_1 = require("../../src/sync/v2/genericSchemaHandling/pages/ListReportNew");
48
48
  const v2Controls = __importStar(require("../../src/sync/v2/genericSchemaHandling/controls"));
49
+ const decoration_1 = require("../../src/sync/common/decoration");
50
+ const utils_2 = require("../../src/sync/common/utils");
51
+ const application_1 = require("../../src/sync/v4/application");
52
+ const application_2 = require("../../src/sync/v2/application");
49
53
  //TS compiler options, compare with tsconfig
50
54
  const compilerOptions = {
51
55
  skipLibCheck: true,
@@ -184,6 +188,45 @@ function convertPagesOfFEVersion(paths, version, outputPath, factory) {
184
188
  function getPosition(string, subString, index) {
185
189
  return string.split(subString, index).join(subString).length;
186
190
  }
191
+ /**
192
+ * Performs post-processing on the provided array of schemas for V2 and V4 applications.
193
+ *
194
+ * @param schemas - An array of `Schema` objects to be post-processed.
195
+ */
196
+ function postProcessingApps(schemas) {
197
+ // Add manifest paths to V4 and V2
198
+ addManifestPathsToApplication(schemas['ApplicationV4.json'], application_1.AppSettings.prototype);
199
+ addManifestPathsToApplication(schemas['ApplicationV2.json'], application_2.AppSettings.prototype);
200
+ }
201
+ /**
202
+ * Adds `manifestPath` to the `AppSettings` properties inside a JSON schema.
203
+ *
204
+ * @param {JSONSchema4} schema - The JSON schema object to be updated.
205
+ * @param {object} classPrototype - The prototype object whose metadata is used to determine manifest path information for each property.
206
+ */
207
+ function addManifestPathsToApplication(schema, classPrototype) {
208
+ // Update schema with manifest path for properties in settings
209
+ for (const property in schema.definitions.AppSettings.properties) {
210
+ const propertySchema = schema.definitions.AppSettings.properties[property];
211
+ const rule = (0, decoration_1.getReflectMetadata)(classPrototype, property);
212
+ const manifestPath = rule?.manifest?.path;
213
+ if (manifestPath) {
214
+ const manifestPath = `${rule.manifest.path()}/${property}`;
215
+ propertySchema.manifestPath = (0, utils_2.convertSyncRulePathToJsonPath)(manifestPath);
216
+ // Continue parsing of inner properties
217
+ if (propertySchema.anyOf) {
218
+ for (const innerSchema of propertySchema.anyOf) {
219
+ if (!innerSchema.properties) {
220
+ continue;
221
+ }
222
+ for (const property in innerSchema.properties) {
223
+ innerSchema.properties[property].manifestPath = (0, utils_2.appendJsonPathSegment)(propertySchema.manifestPath, property);
224
+ }
225
+ }
226
+ }
227
+ }
228
+ }
229
+ }
187
230
  /**
188
231
  * Factory giving access to the metadata of the new v2 ListReport page.
189
232
  */
@@ -192,7 +235,9 @@ exports.FACTORY_FOR_LIST_REPORT_NEW = {
192
235
  const metadataClass = v2Controls[schemaPropertyName];
193
236
  // Naming convention: Types that are only introduced as host for enums have a name ending with 'Enum'.
194
237
  // They cannot be instantiated.
195
- if (schemaPropertyName.endsWith('Enum')) {
238
+ // In addition to that some enums (ButtonType,...) are imported from sapui5.
239
+ if (schemaPropertyName.endsWith('Enum') ||
240
+ ['ButtonType', 'smarttable.ExportType'].includes(schemaPropertyName)) {
196
241
  return metadataClass;
197
242
  }
198
243
  let instance;
@@ -215,7 +260,6 @@ exports.FACTORY_FOR_LIST_REPORT_NEW = {
215
260
  * @param outputPath - The path to write the generated schemas to.
216
261
  */
217
262
  function toJsonSchema(outputPath) {
218
- let schemas = [];
219
263
  const rootName = __dirname.slice(0, getPosition(__dirname, 'specification', 2));
220
264
  const typesPath = (0, path_1.join)(rootName, 'types', 'src');
221
265
  //Pages V2
@@ -233,10 +277,13 @@ function toJsonSchema(outputPath) {
233
277
  paths.push((0, path_1.join)(typesPath, 'v4', 'pages'));
234
278
  convertPagesOfFEVersion(paths, ux_specification_types_1.FioriElementsVersion.v4, outputPath);
235
279
  //App V2
236
- schemas = convertInterfaces((0, path_1.join)(typesPath, 'v2'), ['ApplicationV2.ts'], ux_specification_types_1.FioriElementsVersion.v2);
237
- writeSchemasToFile(outputPath, schemas, 'v2');
280
+ const v2AppSchemas = convertInterfaces((0, path_1.join)(typesPath, 'v2'), ['ApplicationV2.ts'], ux_specification_types_1.FioriElementsVersion.v2);
238
281
  //App V4
239
- schemas = convertInterfaces((0, path_1.join)(typesPath, 'v4'), ['ApplicationV4.ts'], ux_specification_types_1.FioriElementsVersion.v4);
240
- writeSchemasToFile(outputPath, schemas, 'v4');
282
+ const v4AppSchemas = convertInterfaces((0, path_1.join)(typesPath, 'v4'), ['ApplicationV4.ts'], ux_specification_types_1.FioriElementsVersion.v4);
283
+ //App postprocessing of schema
284
+ postProcessingApps({ ...v2AppSchemas, ...v4AppSchemas });
285
+ //Write App schemas
286
+ writeSchemasToFile(outputPath, v2AppSchemas, 'v2');
287
+ writeSchemasToFile(outputPath, v4AppSchemas, 'v4');
241
288
  }
242
289
  //# sourceMappingURL=to-json-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"to-json-schema.js","sourceRoot":"","sources":["../../../../scripts/schema/to-json-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"to-json-schema.js","sourceRoot":"","sources":["../../../../scripts/schema/to-json-schema.ts"],"names":[],"mappings":"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"}
@@ -265,8 +265,8 @@ async function importProjectSchema(importParameters) {
265
265
  */
266
266
  function getApiVersion() {
267
267
  return {
268
- version: '23',
269
- fpmWriter: '34',
268
+ version: '24',
269
+ fpmWriter: '35',
270
270
  moduleVersion: package_json_1.default.version
271
271
  };
272
272
  }
@@ -1,4 +1,4 @@
1
- import type { ReadAppParams, ReadAppResult } from '@sap/ux-specification-types';
1
+ import { type ReadAppParams, type ReadAppResult } from '@sap/ux-specification-types';
2
2
  /**
3
3
  * Reads virtual files for a project located at the given application path.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ftfs.d.ts","sourceRoot":"","sources":["../../../../src/ftfs/ftfs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,aAAa,EAAE,aAAa,EAAY,MAAM,6BAA6B,CAAC;AAqBhG;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAuB5E"}
1
+ {"version":3,"file":"ftfs.d.ts","sourceRoot":"","sources":["../../../../src/ftfs/ftfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,aAAa,EAClB,KAAK,aAAa,EAErB,MAAM,6BAA6B,CAAC;AAqBrC;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAuD5E"}
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.readApp = readApp;
4
+ const ux_specification_types_1 = require("@sap/ux-specification-types");
4
5
  const project_access_1 = require("@sap-ux/project-access");
5
6
  const mem_fs_1 = require("mem-fs");
6
7
  const mem_fs_editor_1 = require("mem-fs-editor");
7
- const annotations_1 = require("./annotations");
8
8
  const api_1 = require("../api");
9
+ const parser_1 = require("./parser");
9
10
  // Retrieve API version
10
11
  const ApiVersion = (0, api_1.getApiVersion)();
11
12
  /**
@@ -28,10 +29,10 @@ async function readApp(options) {
28
29
  // Reuse app access or create new instance
29
30
  const appAccess = typeof options.app === 'string' ? await (0, project_access_1.createApplicationAccess)(options.app, memFs) : options.app;
30
31
  let files = [];
31
- const manifest = memFs.readJSON(appAccess.app.manifest);
32
+ const manifest = await appAccess.readManifest(memFs);
32
33
  if (manifest) {
33
- const annotationData = await (0, annotations_1.readAnnotationFiles)(appAccess, memFs);
34
- const changeFiles = await (0, project_access_1.readFlexChanges)(appAccess.app.changes, memFs);
34
+ const annotationData = await appAccess.readAnnotationFiles(memFs);
35
+ const changeFiles = await appAccess.readFlexChanges(memFs);
35
36
  // Import project using specification API
36
37
  files = await (0, api_1.importProject)({
37
38
  manifest: manifest,
@@ -40,10 +41,42 @@ async function readApp(options) {
40
41
  logger: options.logger
41
42
  });
42
43
  }
43
- return {
44
+ // Application model
45
+ let applicationModel;
46
+ if (!options.skipParsing) {
47
+ const appFile = files.find((file) => file.dataSourceUri === ux_specification_types_1.FileName.App);
48
+ const application = appFile ? JSON.parse(appFile.fileContent) : {};
49
+ const appSchemaFile = files.find((file) => application.$schema?.endsWith(file.dataSourceUri));
50
+ if (application && appSchemaFile) {
51
+ applicationModel = {
52
+ ...application,
53
+ model: (0, parser_1.getModel)(appSchemaFile.fileContent, application),
54
+ pages: {}
55
+ };
56
+ for (const pageId in application.pages ?? {}) {
57
+ const page = application.pages[pageId];
58
+ // Paths are unified and does not require OS specific handling
59
+ const pageSourceUri = `pages/${pageId}.json`;
60
+ const configFile = files.find((file) => file.dataSourceUri === pageSourceUri);
61
+ const config = configFile ? JSON.parse(configFile.fileContent) : {};
62
+ const schemaFile = files.find((file) => config.$schema?.endsWith(file.dataSourceUri));
63
+ if (schemaFile) {
64
+ applicationModel.pages[pageId] = {
65
+ ...page,
66
+ model: (0, parser_1.getModel)(schemaFile.fileContent, config, page.pageType)
67
+ };
68
+ }
69
+ }
70
+ }
71
+ }
72
+ const result = {
44
73
  files,
45
74
  appAccess,
46
75
  version: ApiVersion
47
76
  };
77
+ if (applicationModel) {
78
+ result.applicationModel = applicationModel;
79
+ }
80
+ return result;
48
81
  }
49
82
  //# sourceMappingURL=ftfs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ftfs.js","sourceRoot":"","sources":["../../../../src/ftfs/ftfs.ts"],"names":[],"mappings":";;AA2BA,0BAuBC;AAjDD,2DAAkF;AAClF,mCAAiD;AACjD,iDAAuC;AAEvC,+CAAoD;AACpD,gCAAsD;AAEtD,uBAAuB;AACvB,MAAM,UAAU,GAAG,IAAA,mBAAa,GAAE,CAAC;AAEnC;;;;;GAKG;AACH,SAAS,aAAa,CAAC,EAAW;IAC9B,OAAO,EAAE,IAAI,IAAA,sBAAM,EAAC,IAAA,eAAa,GAAE,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,OAAO,CAAC,OAAsB;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,0CAA0C;IAC1C,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAA,wCAAuB,EAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACpH,IAAI,KAAK,GAAW,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAwB,CAAC;IAC/E,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,cAAc,GAAG,MAAM,IAAA,iCAAmB,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAe,EAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxE,yCAAyC;QACzC,KAAK,GAAG,MAAM,IAAA,mBAAa,EAAC;YACxB,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,cAAc;YAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;SACzB,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,KAAK;QACL,SAAS;QACT,OAAO,EAAE,UAAU;KACtB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"ftfs.js","sourceRoot":"","sources":["../../../../src/ftfs/ftfs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { TooComplexData } from './model';
2
+ /**
3
+ * Type guard to check whether a given value is of type `TooComplexData`.
4
+ *
5
+ * @param value The value to check.
6
+ * @returns true if the value is a TooComplexData object.
7
+ */
8
+ export declare function isTooComplex<T>(value: T | TooComplexData): value is TooComplexData;
9
+ //# sourceMappingURL=annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../../../src/ftfs/parser/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,cAAc,GAAG,KAAK,IAAI,cAAc,CAElF"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTooComplex = isTooComplex;
4
+ /**
5
+ * Type guard to check whether a given value is of type `TooComplexData`.
6
+ *
7
+ * @param value The value to check.
8
+ * @returns true if the value is a TooComplexData object.
9
+ */
10
+ function isTooComplex(value) {
11
+ return value?.tooComplex === true;
12
+ }
13
+ //# sourceMappingURL=annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../../../src/ftfs/parser/annotations.ts"],"names":[],"mappings":";;AAQA,oCAEC;AARD;;;;;GAKG;AACH,SAAgB,YAAY,CAAI,KAAyB;IACrD,OAAQ,KAAwB,EAAE,UAAU,KAAK,IAAI,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { PageConfig, PageType } from '@sap/ux-specification-types';
2
+ import type { PageAnnotations } from './model';
3
+ import { TreeModel } from './model';
4
+ export * from './model';
5
+ /**
6
+ * Method initializes and returns model.
7
+ *
8
+ * @param schema JSON schema.
9
+ * @param data Page or application config.
10
+ * @param pageType Page type.
11
+ * @param annotation Page annotations.
12
+ * @returns Initialized model.
13
+ */
14
+ export declare function getModel(schema: string, data: PageConfig, pageType?: PageType, annotation?: PageAnnotations): TreeModel;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ftfs/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,cAAc,SAAS,CAAC;AAExB;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,QAAQ,CAAC,EAAE,QAAQ,EACnB,UAAU,CAAC,EAAE,eAAe,GAC7B,SAAS,CAWX"}
@@ -0,0 +1,35 @@
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
+ exports.getModel = getModel;
18
+ const model_1 = require("./model");
19
+ __exportStar(require("./model"), exports);
20
+ /**
21
+ * Method initializes and returns model.
22
+ *
23
+ * @param schema JSON schema.
24
+ * @param data Page or application config.
25
+ * @param pageType Page type.
26
+ * @param annotation Page annotations.
27
+ * @returns Initialized model.
28
+ */
29
+ function getModel(schema, data, pageType, annotation) {
30
+ return new model_1.TreeModel('Root', data, schema, annotation ?? {
31
+ dynamicNodes: {},
32
+ nodes: []
33
+ }, pageType);
34
+ }
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ftfs/parser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAeA,4BAgBC;AA7BD,mCAAoC;AAEpC,0CAAwB;AAExB;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CACpB,MAAc,EACd,IAAgB,EAChB,QAAmB,EACnB,UAA4B;IAE5B,OAAO,IAAI,iBAAS,CAChB,MAAM,EACN,IAAI,EACJ,MAAM,EACN,UAAU,IAAI;QACV,YAAY,EAAE,EAAE;QAChB,KAAK,EAAE,EAAE;KACZ,EACD,QAAQ,CACX,CAAC;AACN,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { Parser } from '@sap/ux-specification-types';
2
+ import type { ObjectAggregation, AggregationVariant } from './ObjectAggregation';
3
+ import type { PageData } from './types';
4
+ import { ValidationState } from './types';
5
+ /**
6
+ * Represents validator for aggregations.
7
+ */
8
+ export declare class AggregationValidator {
9
+ /**
10
+ * Method validates states of properties and aggregation. Following states are supported:
11
+ * 1. Valid.
12
+ * 2. Invalid - when value is set for property/aggregation, but it is not valid.
13
+ * 3. Skipped - when property/aggregation is not relevant in current value context and value does not set.
14
+ *
15
+ * @param aggregation ObjectAggregation which state should be validated.
16
+ * @param data Page data.
17
+ */
18
+ validate(aggregation: ObjectAggregation, data: PageData): void;
19
+ /**
20
+ * Method receives possible variants of variants received from schema and validates against current values.
21
+ *
22
+ * @param variants Array of variants.
23
+ * @param aggregation Aggregation to validate.
24
+ * @returns State of each property and aggregation.
25
+ */
26
+ validateVariants(variants: Array<AggregationVariant>, aggregation: ObjectAggregation): {
27
+ [k: string]: ValidationState;
28
+ };
29
+ /**
30
+ * Method receives single variants and validates received property against variant schema.
31
+ *
32
+ * @param variant Variant to use as validation rule.
33
+ * @param aggregation Aggregation to validate.
34
+ * @param property Name of inner property or aggregation, which should be validated.
35
+ * @param ignoreUnexisting Do not return skip state when ignore passed and variant property does not exist.
36
+ * @returns Validation result.
37
+ */
38
+ validateVariant(variant: AggregationVariant, aggregation: ObjectAggregation, property: string, ignoreUnexisting?: boolean): ValidationState;
39
+ /**
40
+ * Iterates over all aggregations contained in the given variants.
41
+ * Useful for replacing nested loops when traversing variant aggregations.
42
+ *
43
+ * @param variants List of variant aggregations to traverse.
44
+ * @yields A tuple containing:
45
+ * - `name`: The aggregation key within the variant.
46
+ * - `aggregation`: The aggregation within the variant.
47
+ */
48
+ private iterateVariantAggregations;
49
+ /**
50
+ * Method goes through passed variants and checks for unify aggregations.
51
+ * If there is any aggregation for unification, then method updates unify aggregation with latest valid context paths.
52
+ *
53
+ * @param aggregation Aggregation to validate.
54
+ * @param variants Valid aggeregation to use as context for properties and aggregations paths.
55
+ */
56
+ private unifyVariants;
57
+ /**
58
+ * Recursive method updates paths of all aggregations and properties using passed context path.
59
+ *
60
+ * @param aggregation Target aggregation.
61
+ * @param contextPath Context path.
62
+ */
63
+ applyContextPath(aggregation: ObjectAggregation, contextPath: Parser.PropertyPath): void;
64
+ }
65
+ //# sourceMappingURL=AggregationValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregationValidator.d.ts","sourceRoot":"","sources":["../../../../../../src/ftfs/parser/model/AggregationValidator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C;;GAEG;AACH,qBAAa,oBAAoB;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IA2B9D;;;;;;OAMG;IACH,gBAAgB,CACZ,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,EACnC,WAAW,EAAE,iBAAiB,GAC/B;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE;IAkDnC;;;;;;;;OAQG;IACH,eAAe,CACX,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,UAAQ,GACzB,eAAe;IA0BlB;;;;;;;;OAQG;IACH,OAAO,CAAE,0BAA0B;IAQnC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAkCrB;;;;;OAKG;IACH,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,CAAC,YAAY,GAAG,IAAI;CAS3F"}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AggregationValidator = void 0;
7
+ const types_1 = require("./types");
8
+ const i18next_1 = __importDefault(require("i18next"));
9
+ const utils_1 = require("./utils");
10
+ /**
11
+ * Represents validator for aggregations.
12
+ */
13
+ class AggregationValidator {
14
+ /**
15
+ * Method validates states of properties and aggregation. Following states are supported:
16
+ * 1. Valid.
17
+ * 2. Invalid - when value is set for property/aggregation, but it is not valid.
18
+ * 3. Skipped - when property/aggregation is not relevant in current value context and value does not set.
19
+ *
20
+ * @param aggregation ObjectAggregation which state should be validated.
21
+ * @param data Page data.
22
+ */
23
+ validate(aggregation, data) {
24
+ if (aggregation.state === types_1.ValidationState.Valid && aggregation.variants.length >= 1) {
25
+ const properties = this.validateVariants(aggregation.variants, aggregation);
26
+ for (const property in properties) {
27
+ const entry = aggregation.properties[property] || aggregation.aggregations[property];
28
+ if (entry) {
29
+ entry.state = properties[property];
30
+ if (entry.state === types_1.ValidationState.Invalid) {
31
+ // Property is defined in source, but it is not allowed
32
+ (0, utils_1.addValidationMessages)(entry, [
33
+ {
34
+ text: i18next_1.default.t('PAGE_EDITOR_PROPERTIES_PROPERTY_WARNING_PROPERTY_NOT_ALLOWED', {
35
+ name: property
36
+ }),
37
+ deletable: true
38
+ }
39
+ ]);
40
+ }
41
+ }
42
+ }
43
+ }
44
+ // Go through standard aggregation with recursion
45
+ for (const name in aggregation.aggregations) {
46
+ this.validate(aggregation.aggregations[name], data ? data[name] : {});
47
+ }
48
+ }
49
+ /**
50
+ * Method receives possible variants of variants received from schema and validates against current values.
51
+ *
52
+ * @param variants Array of variants.
53
+ * @param aggregation Aggregation to validate.
54
+ * @returns State of each property and aggregation.
55
+ */
56
+ validateVariants(variants, aggregation) {
57
+ const valueProperties = {};
58
+ // Get properties with actual values
59
+ for (const property in aggregation.properties) {
60
+ if (aggregation.properties[property].value !== undefined) {
61
+ valueProperties[property] = aggregation.properties[property].value;
62
+ }
63
+ }
64
+ for (const property in aggregation.aggregations) {
65
+ if (aggregation.aggregations[property].value !== undefined) {
66
+ valueProperties[property] = aggregation.aggregations[property].value;
67
+ }
68
+ }
69
+ // Get valid variants
70
+ let validVariants = [...variants];
71
+ for (const property in valueProperties) {
72
+ validVariants = validVariants.filter((variant) => {
73
+ const result = this.validateVariant(variant, aggregation, property);
74
+ return result === types_1.ValidationState.Valid;
75
+ });
76
+ }
77
+ if (validVariants.length === 0) {
78
+ validVariants = [...variants];
79
+ for (const property in valueProperties) {
80
+ validVariants = validVariants.filter((variant) => {
81
+ const result = this.validateVariant(variant, aggregation, property, true);
82
+ return result === types_1.ValidationState.Valid;
83
+ });
84
+ }
85
+ }
86
+ // Unify aggregation and variants if 'unionName' is used in aggregation
87
+ this.unifyVariants(aggregation, validVariants);
88
+ // Populate property states
89
+ const propertyStates = {};
90
+ const properties = [...Object.keys(aggregation.properties), ...Object.keys(aggregation.aggregations)];
91
+ for (const property of properties) {
92
+ const valid = validVariants.some((variant) => {
93
+ return property in variant.properties || property in variant.aggregations;
94
+ });
95
+ if (valid) {
96
+ propertyStates[property] = types_1.ValidationState.Valid;
97
+ }
98
+ else if (property in valueProperties) {
99
+ propertyStates[property] = types_1.ValidationState.Invalid;
100
+ }
101
+ else {
102
+ propertyStates[property] = types_1.ValidationState.Skipped;
103
+ }
104
+ }
105
+ return propertyStates;
106
+ }
107
+ /**
108
+ * Method receives single variants and validates received property against variant schema.
109
+ *
110
+ * @param variant Variant to use as validation rule.
111
+ * @param aggregation Aggregation to validate.
112
+ * @param property Name of inner property or aggregation, which should be validated.
113
+ * @param ignoreUnexisting Do not return skip state when ignore passed and variant property does not exist.
114
+ * @returns Validation result.
115
+ */
116
+ validateVariant(variant, aggregation, property, ignoreUnexisting = false) {
117
+ const variantProperty = variant.aggregations[property] || variant.properties[property];
118
+ if (variantProperty === undefined) {
119
+ return ignoreUnexisting ? types_1.ValidationState.Valid : types_1.ValidationState.Skipped;
120
+ }
121
+ // Check enum value
122
+ const entity = aggregation.properties[property] || aggregation.aggregations[property] || {};
123
+ const value = 'value' in entity ? entity.value : undefined;
124
+ if (variantProperty.schema) {
125
+ if (variantProperty.schema.pattern &&
126
+ !new RegExp(variantProperty.schema.pattern).exec(value.toString())) {
127
+ return types_1.ValidationState.Skipped;
128
+ }
129
+ if (variantProperty.schema.enum &&
130
+ !variantProperty.schema.enum.includes(value) &&
131
+ !variantProperty.freeText) {
132
+ return types_1.ValidationState.Skipped;
133
+ }
134
+ }
135
+ return types_1.ValidationState.Valid;
136
+ }
137
+ /**
138
+ * Iterates over all aggregations contained in the given variants.
139
+ * Useful for replacing nested loops when traversing variant aggregations.
140
+ *
141
+ * @param variants List of variant aggregations to traverse.
142
+ * @yields A tuple containing:
143
+ * - `name`: The aggregation key within the variant.
144
+ * - `aggregation`: The aggregation within the variant.
145
+ */
146
+ *iterateVariantAggregations(variants) {
147
+ for (const variant of variants) {
148
+ for (const [name, aggregation] of Object.entries(variant.aggregations)) {
149
+ yield [name, aggregation];
150
+ }
151
+ }
152
+ }
153
+ /**
154
+ * Method goes through passed variants and checks for unify aggregations.
155
+ * If there is any aggregation for unification, then method updates unify aggregation with latest valid context paths.
156
+ *
157
+ * @param aggregation Aggregation to validate.
158
+ * @param variants Valid aggeregation to use as context for properties and aggregations paths.
159
+ */
160
+ unifyVariants(aggregation, variants) {
161
+ const handledProperties = {};
162
+ for (const [name, variantAggregation] of this.iterateVariantAggregations(variants)) {
163
+ if (variantAggregation.union && !handledProperties[name]) {
164
+ this.applyContextPath(aggregation.aggregations[name], variantAggregation.path);
165
+ // Name correction to show context
166
+ aggregation.aggregations[name].name =
167
+ variantAggregation.path[variantAggregation.path.length - 1].toString();
168
+ // Mark handled property
169
+ handledProperties[name] = true;
170
+ }
171
+ }
172
+ if (!Object.keys(handledProperties).length) {
173
+ return;
174
+ }
175
+ // update variant arrays
176
+ for (const name in handledProperties) {
177
+ aggregation.aggregations[name].variants = [];
178
+ }
179
+ for (const variant of variants) {
180
+ for (const name in handledProperties) {
181
+ const variantAggregation = variant.aggregations[name];
182
+ if (!variantAggregation) {
183
+ continue;
184
+ }
185
+ aggregation.aggregations[name].variants = [
186
+ ...aggregation.aggregations[name].variants,
187
+ ...(variantAggregation.variants.length ? variantAggregation.variants : [variantAggregation])
188
+ ];
189
+ }
190
+ }
191
+ }
192
+ /**
193
+ * Recursive method updates paths of all aggregations and properties using passed context path.
194
+ *
195
+ * @param aggregation Target aggregation.
196
+ * @param contextPath Context path.
197
+ */
198
+ applyContextPath(aggregation, contextPath) {
199
+ aggregation.path = aggregation.path.slice();
200
+ for (let i = 0; i < contextPath.length; i++) {
201
+ aggregation.path[i] = contextPath[i];
202
+ }
203
+ for (const name in aggregation.aggregations) {
204
+ this.applyContextPath(aggregation.aggregations[name], contextPath);
205
+ }
206
+ }
207
+ }
208
+ exports.AggregationValidator = AggregationValidator;
209
+ //# sourceMappingURL=AggregationValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregationValidator.js","sourceRoot":"","sources":["../../../../../../src/ftfs/parser/model/AggregationValidator.ts"],"names":[],"mappings":"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"}