@sap/ux-specification 1.90.18 → 1.90.19

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 (180) hide show
  1. package/CHANGELOG.md +16 -2
  2. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  3. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  4. package/dist/documentation/v2/v2-ListReport.html +1 -1
  5. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  6. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  7. package/dist/documentation/v4/v4-AnalyticalListPage.html +1 -1
  8. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  9. package/dist/documentation/v4/v4-ListReport.html +1 -1
  10. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  11. package/dist/index-min.js +1 -1
  12. package/dist/schemas/v2/AnalyticalListPageConfig.json +112 -2
  13. package/dist/schemas/v2/ListReportConfig.json +112 -2
  14. package/dist/schemas/v2/ObjectPageConfig.json +89 -33
  15. package/dist/schemas/v2/OverviewPageConfig.json +40 -0
  16. package/dist/schemas/v4/AnalyticalListPageConfig.json +43 -86
  17. package/dist/schemas/v4/ListReportConfig.json +43 -86
  18. package/dist/schemas/v4/ObjectPageConfig.json +64 -71
  19. package/dist/scripts/to-json-schema.js +31 -37
  20. package/dist/scripts/to-json-schema.js.map +1 -1
  21. package/dist/specification/v2/index-min.js +1 -1
  22. package/dist/specification/v4/index-min.js +1 -1
  23. package/dist/src/api.js +9 -9
  24. package/dist/src/api.js.map +1 -1
  25. package/dist/src/apiTypes.d.ts +5 -2
  26. package/dist/src/specification/schemaAccess.js +1 -3
  27. package/dist/src/specification/schemaAccess.js.map +1 -1
  28. package/dist/src/specification/v2/controls/Action.d.ts +19 -2
  29. package/dist/src/specification/v2/controls/FilterBar.d.ts +32 -0
  30. package/dist/src/specification/v2/controls/FilterBar.js +24 -0
  31. package/dist/src/specification/v2/controls/FilterBar.js.map +1 -1
  32. package/dist/src/specification/v2/controls/Footer.d.ts +20 -0
  33. package/dist/src/specification/v2/controls/{ObjectPageFooter.js → Footer.js} +1 -1
  34. package/dist/src/specification/v2/controls/Footer.js.map +1 -0
  35. package/dist/src/specification/v2/controls/Table.d.ts +8 -1
  36. package/dist/src/specification/v2/controls/Table.js.map +1 -1
  37. package/dist/src/specification/v2/controls/ToolBar.d.ts +1 -8
  38. package/dist/src/specification/v2/controls/index.d.ts +1 -2
  39. package/dist/src/specification/v2/controls/index.js.map +1 -1
  40. package/dist/src/specification/v2/pages/AnalyticalListPageConfig.d.ts +2 -1
  41. package/dist/src/specification/v2/pages/ListReportConfig.d.ts +2 -1
  42. package/dist/src/specification/v4/controls/ObjectPageFooter.d.ts +2 -2
  43. package/dist/src/specification/v4/controls/ObjectPageSection.d.ts +7 -7
  44. package/dist/src/specification/v4/controls/ObjectPageTable.d.ts +5 -6
  45. package/dist/src/specification/v4/controls/Table.d.ts +2 -7
  46. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.d.ts +59 -10
  47. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.js +6 -0
  48. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.js.map +1 -1
  49. package/dist/src/sync/common/appProvider.js.map +1 -1
  50. package/dist/src/sync/common/decoration/control.d.ts +11 -1
  51. package/dist/src/sync/common/decoration/control.js +29 -3
  52. package/dist/src/sync/common/decoration/control.js.map +1 -1
  53. package/dist/src/sync/common/decoration/factory.js +2 -4
  54. package/dist/src/sync/common/decoration/factory.js.map +1 -1
  55. package/dist/src/sync/common/generate/objectPage.d.ts +8 -0
  56. package/dist/src/sync/common/generate/objectPage.js +18 -6
  57. package/dist/src/sync/common/generate/objectPage.js.map +1 -1
  58. package/dist/src/sync/common/generate/utils.d.ts +1 -0
  59. package/dist/src/sync/common/generate/utils.js +19 -3
  60. package/dist/src/sync/common/generate/utils.js.map +1 -1
  61. package/dist/src/sync/common/i18n.json +2 -0
  62. package/dist/src/sync/common/import/utils.d.ts +8 -1
  63. package/dist/src/sync/common/import/utils.js +14 -3
  64. package/dist/src/sync/common/import/utils.js.map +1 -1
  65. package/dist/src/sync/common/importProject.js +13 -22
  66. package/dist/src/sync/common/importProject.js.map +1 -1
  67. package/dist/src/sync/common/types.d.ts +29 -15
  68. package/dist/src/sync/common/types.js +25 -1
  69. package/dist/src/sync/common/types.js.map +1 -1
  70. package/dist/src/sync/common/utils.d.ts +4 -3
  71. package/dist/src/sync/common/utils.js +15 -18
  72. package/dist/src/sync/common/utils.js.map +1 -1
  73. package/dist/src/sync/v2/export/controls/Action.d.ts +15 -0
  74. package/dist/src/sync/v2/export/controls/Action.js +68 -15
  75. package/dist/src/sync/v2/export/controls/Action.js.map +1 -1
  76. package/dist/src/sync/v2/export/controls/FilterBar.d.ts +3 -3
  77. package/dist/src/sync/v2/export/controls/FilterBar.js +2 -11
  78. package/dist/src/sync/v2/export/controls/FilterBar.js.map +1 -1
  79. package/dist/src/sync/v2/export/controls/FormAction.js +3 -2
  80. package/dist/src/sync/v2/export/controls/FormAction.js.map +1 -1
  81. package/dist/src/sync/v2/export/controls/Fragment.d.ts +1 -1
  82. package/dist/src/sync/v2/export/controls/Fragment.js +239 -164
  83. package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
  84. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.d.ts +2 -2
  85. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js +9 -9
  86. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js.map +1 -1
  87. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +2 -2
  88. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +4 -4
  89. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -1
  90. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js +6 -4
  91. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js.map +1 -1
  92. package/dist/src/sync/v2/export/controls/TableColumn.d.ts +18 -2
  93. package/dist/src/sync/v2/export/controls/TableColumn.js +126 -1
  94. package/dist/src/sync/v2/export/controls/TableColumn.js.map +1 -1
  95. package/dist/src/sync/v2/export/export.js +134 -111
  96. package/dist/src/sync/v2/export/export.js.map +1 -1
  97. package/dist/src/sync/v2/export/manifest.js +2 -5
  98. package/dist/src/sync/v2/export/manifest.js.map +1 -1
  99. package/dist/src/sync/v2/export/pages/AnalyticalListPage.d.ts +2 -1
  100. package/dist/src/sync/v2/export/pages/AnalyticalListPage.js +3 -0
  101. package/dist/src/sync/v2/export/pages/AnalyticalListPage.js.map +1 -1
  102. package/dist/src/sync/v2/export/pages/ListReport.d.ts +2 -1
  103. package/dist/src/sync/v2/export/pages/ListReport.js +3 -0
  104. package/dist/src/sync/v2/export/pages/ListReport.js.map +1 -1
  105. package/dist/src/sync/v2/export/view-controller-generator.d.ts +16 -21
  106. package/dist/src/sync/v2/export/view-controller-generator.js +20 -36
  107. package/dist/src/sync/v2/export/view-controller-generator.js.map +1 -1
  108. package/dist/src/sync/v2/generate/analyticalListReport.js +10 -5
  109. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  110. package/dist/src/sync/v2/generate/listReport.js +9 -4
  111. package/dist/src/sync/v2/generate/listReport.js.map +1 -1
  112. package/dist/src/sync/v2/generate/objectPage.d.ts +1 -5
  113. package/dist/src/sync/v2/generate/objectPage.js +10 -10
  114. package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
  115. package/dist/src/sync/v2/generate/utils.d.ts +15 -11
  116. package/dist/src/sync/v2/generate/utils.js +239 -110
  117. package/dist/src/sync/v2/generate/utils.js.map +1 -1
  118. package/dist/src/sync/v2/import/common/index.d.ts +22 -4
  119. package/dist/src/sync/v2/import/common/index.js +237 -27
  120. package/dist/src/sync/v2/import/common/index.js.map +1 -1
  121. package/dist/src/sync/v2/import/controls/table.js +3 -2
  122. package/dist/src/sync/v2/import/controls/table.js.map +1 -1
  123. package/dist/src/sync/v2/import/pages/analyticalListPage.js +27 -5
  124. package/dist/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
  125. package/dist/src/sync/v2/import/pages/listReport.d.ts +0 -5
  126. package/dist/src/sync/v2/import/pages/listReport.js +14 -124
  127. package/dist/src/sync/v2/import/pages/listReport.js.map +1 -1
  128. package/dist/src/sync/v2/import/pages/objectPage.js +182 -107
  129. package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
  130. package/dist/src/sync/v2/import/utils.d.ts +4 -6
  131. package/dist/src/sync/v2/import/utils.js +32 -11
  132. package/dist/src/sync/v2/import/utils.js.map +1 -1
  133. package/dist/src/sync/v2/types.d.ts +8 -1
  134. package/dist/src/sync/v2/types.js +8 -1
  135. package/dist/src/sync/v2/types.js.map +1 -1
  136. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.d.ts +3 -7
  137. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.js +2 -25
  138. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.js.map +1 -1
  139. package/dist/src/sync/v4/export/controls/TableColumn.d.ts +1 -6
  140. package/dist/src/sync/v4/export/controls/TableColumn.js +0 -33
  141. package/dist/src/sync/v4/export/controls/TableColumn.js.map +1 -1
  142. package/dist/src/sync/v4/export/controls/ToolBar.d.ts +5 -1
  143. package/dist/src/sync/v4/export/controls/ToolBar.js +3 -0
  144. package/dist/src/sync/v4/export/controls/ToolBar.js.map +1 -1
  145. package/dist/src/sync/v4/export/export.js +20 -16
  146. package/dist/src/sync/v4/export/export.js.map +1 -1
  147. package/dist/src/sync/v4/export/pages/AnalyticalListPage.d.ts +2 -2
  148. package/dist/src/sync/v4/export/pages/ListReport.d.ts +2 -2
  149. package/dist/src/sync/v4/export/pages/ObjectPage.d.ts +2 -2
  150. package/dist/src/sync/v4/export/types.d.ts +3 -0
  151. package/dist/src/sync/v4/generate/generate.d.ts +4 -2
  152. package/dist/src/sync/v4/generate/generate.js +15 -6
  153. package/dist/src/sync/v4/generate/generate.js.map +1 -1
  154. package/dist/src/sync/v4/generate/listReport.d.ts +7 -6
  155. package/dist/src/sync/v4/generate/listReport.js +48 -23
  156. package/dist/src/sync/v4/generate/listReport.js.map +1 -1
  157. package/dist/src/sync/v4/generate/objectPage.js +66 -85
  158. package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
  159. package/dist/src/sync/v4/import/pages/analyticalListPage.d.ts +2 -2
  160. package/dist/src/sync/v4/import/pages/analyticalListPage.js +0 -1
  161. package/dist/src/sync/v4/import/pages/analyticalListPage.js.map +1 -1
  162. package/dist/src/sync/v4/import/pages/listReport.d.ts +3 -3
  163. package/dist/src/sync/v4/import/pages/listReport.js +34 -23
  164. package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
  165. package/dist/src/sync/v4/import/pages/objectPage.d.ts +2 -2
  166. package/dist/src/sync/v4/import/pages/objectPage.js +21 -16
  167. package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
  168. package/dist/src/sync/v4/import/utils.js +6 -5
  169. package/dist/src/sync/v4/import/utils.js.map +1 -1
  170. package/dist/src/sync/v4/utils/utils.d.ts +22 -2
  171. package/dist/src/sync/v4/utils/utils.js +102 -26
  172. package/dist/src/sync/v4/utils/utils.js.map +1 -1
  173. package/dist/test/unit/utils.test.d.ts +1 -1
  174. package/package.json +5 -6
  175. package/dist/src/specification/v2/controls/ObjectPageFooter.d.ts +0 -11
  176. package/dist/src/specification/v2/controls/ObjectPageFooter.js.map +0 -1
  177. package/dist/src/specification/v2/controls/ObjectPageFooterAction.d.ts +0 -28
  178. package/dist/src/specification/v2/controls/ObjectPageFooterAction.js +0 -3
  179. package/dist/src/specification/v2/controls/ObjectPageFooterAction.js.map +0 -1
  180. package/dist/test/test-utils/metadataParser.d.ts +0 -19
@@ -285,90 +285,32 @@
285
285
  "additionalProperties": {
286
286
  "anyOf": [
287
287
  {
288
- "description": "Table Column",
289
- "isViewNode": true,
290
- "type": "object",
291
- "properties": {
292
- "width": {
293
- "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
294
- "type": "string"
295
- },
296
- "availability": {
297
- "$ref": "#/definitions/Availability",
298
- "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation."
299
- }
300
- },
301
- "additionalProperties": false
288
+ "$ref": "#/definitions/TableColumn"
302
289
  },
303
290
  {
304
- "description": "Inline Action",
305
- "isViewNode": true,
306
- "additionalProperties": false,
307
- "type": "object",
308
- "properties": {
309
- "width": {
310
- "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
311
- "type": "string"
312
- },
313
- "availability": {
314
- "$ref": "#/definitions/Availability",
315
- "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation."
316
- },
317
- "afterExecution": {
318
- "$ref": "#/definitions/ActionAfterExecutionConfiguration",
319
- "description": "Settings that are only relevant for actions (associated with a UI.DataFieldForAction annotation)"
320
- }
321
- }
322
- },
323
- {
324
- "description": "Custom Columns",
325
- "isViewNode": true,
326
- "type": "array",
327
- "items": {
328
- "description": "Custom Column",
329
- "isViewNode": true,
330
- "additionalProperties": false,
331
- "type": "object",
332
- "properties": {
333
- "position": {
334
- "description": "Defines the position of the column relative to other columns.",
335
- "type": "object",
336
- "properties": {
337
- "anchor": {
338
- "description": "The key of another column to be used as placement anchor.",
339
- "type": "string"
340
- },
341
- "placement": {
342
- "$ref": "#/definitions/Placement",
343
- "description": "Define the placement, either before or after the anchor column."
344
- }
345
- },
346
- "additionalProperties": false,
347
- "required": [
348
- "placement"
349
- ]
350
- },
351
- "header": {
352
- "description": "The header is shown on the table as header, as well as in the add/remove dialog.",
353
- "type": "string"
354
- },
355
- "width": {
356
- "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
357
- "type": "string"
358
- },
359
- "template": {
360
- "description": "Relevant for extension columns; allows the definition of a target fragment.",
361
- "type": "string"
362
- }
363
- },
364
- "required": [
365
- "header"
366
- ]
367
- }
291
+ "$ref": "#/definitions/TableColumnAction"
368
292
  }
369
293
  ]
370
294
  }
371
295
  },
296
+ "TableColumn": {
297
+ "description": "Table Column",
298
+ "isViewNode": true,
299
+ "type": "object",
300
+ "properties": {
301
+ "width": {
302
+ "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
303
+ "type": "string",
304
+ "artifactType": "Manifest"
305
+ },
306
+ "availability": {
307
+ "$ref": "#/definitions/Availability",
308
+ "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation.",
309
+ "artifactType": "Manifest"
310
+ }
311
+ },
312
+ "additionalProperties": false
313
+ },
372
314
  "Availability": {
373
315
  "enum": [
374
316
  "Adaptation",
@@ -377,6 +319,29 @@
377
319
  ],
378
320
  "type": "string"
379
321
  },
322
+ "TableColumnAction": {
323
+ "description": "Inline Action",
324
+ "isViewNode": true,
325
+ "type": "object",
326
+ "properties": {
327
+ "afterExecution": {
328
+ "$ref": "#/definitions/ActionAfterExecutionConfiguration",
329
+ "description": "Settings that are only relevant for actions (associated with a UI.DataFieldForAction annotation)",
330
+ "artifactType": "Manifest"
331
+ },
332
+ "width": {
333
+ "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
334
+ "type": "string",
335
+ "artifactType": "Manifest"
336
+ },
337
+ "availability": {
338
+ "$ref": "#/definitions/Availability",
339
+ "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation.",
340
+ "artifactType": "Manifest"
341
+ }
342
+ },
343
+ "additionalProperties": false
344
+ },
380
345
  "ActionAfterExecutionConfiguration": {
381
346
  "type": "object",
382
347
  "properties": {
@@ -393,14 +358,6 @@
393
358
  },
394
359
  "additionalProperties": false
395
360
  },
396
- "Placement": {
397
- "enum": [
398
- "After",
399
- "Before",
400
- "End"
401
- ],
402
- "type": "string"
403
- },
404
361
  "VariantManagementTypeListReport": {
405
362
  "enum": [
406
363
  "Control",
@@ -285,90 +285,32 @@
285
285
  "additionalProperties": {
286
286
  "anyOf": [
287
287
  {
288
- "description": "Table Column",
289
- "isViewNode": true,
290
- "type": "object",
291
- "properties": {
292
- "width": {
293
- "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
294
- "type": "string"
295
- },
296
- "availability": {
297
- "$ref": "#/definitions/Availability",
298
- "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation."
299
- }
300
- },
301
- "additionalProperties": false
288
+ "$ref": "#/definitions/TableColumn"
302
289
  },
303
290
  {
304
- "description": "Inline Action",
305
- "isViewNode": true,
306
- "additionalProperties": false,
307
- "type": "object",
308
- "properties": {
309
- "width": {
310
- "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
311
- "type": "string"
312
- },
313
- "availability": {
314
- "$ref": "#/definitions/Availability",
315
- "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation."
316
- },
317
- "afterExecution": {
318
- "$ref": "#/definitions/ActionAfterExecutionConfiguration",
319
- "description": "Settings that are only relevant for actions (associated with a UI.DataFieldForAction annotation)"
320
- }
321
- }
322
- },
323
- {
324
- "description": "Custom Columns",
325
- "isViewNode": true,
326
- "type": "array",
327
- "items": {
328
- "description": "Custom Column",
329
- "isViewNode": true,
330
- "additionalProperties": false,
331
- "type": "object",
332
- "properties": {
333
- "position": {
334
- "description": "Defines the position of the column relative to other columns.",
335
- "type": "object",
336
- "properties": {
337
- "anchor": {
338
- "description": "The key of another column to be used as placement anchor.",
339
- "type": "string"
340
- },
341
- "placement": {
342
- "$ref": "#/definitions/Placement",
343
- "description": "Define the placement, either before or after the anchor column."
344
- }
345
- },
346
- "additionalProperties": false,
347
- "required": [
348
- "placement"
349
- ]
350
- },
351
- "header": {
352
- "description": "The header is shown on the table as header, as well as in the add/remove dialog.",
353
- "type": "string"
354
- },
355
- "width": {
356
- "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
357
- "type": "string"
358
- },
359
- "template": {
360
- "description": "Relevant for extension columns; allows the definition of a target fragment.",
361
- "type": "string"
362
- }
363
- },
364
- "required": [
365
- "header"
366
- ]
367
- }
291
+ "$ref": "#/definitions/TableColumnAction"
368
292
  }
369
293
  ]
370
294
  }
371
295
  },
296
+ "TableColumn": {
297
+ "description": "Table Column",
298
+ "isViewNode": true,
299
+ "type": "object",
300
+ "properties": {
301
+ "width": {
302
+ "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
303
+ "type": "string",
304
+ "artifactType": "Manifest"
305
+ },
306
+ "availability": {
307
+ "$ref": "#/definitions/Availability",
308
+ "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation.",
309
+ "artifactType": "Manifest"
310
+ }
311
+ },
312
+ "additionalProperties": false
313
+ },
372
314
  "Availability": {
373
315
  "enum": [
374
316
  "Adaptation",
@@ -377,6 +319,29 @@
377
319
  ],
378
320
  "type": "string"
379
321
  },
322
+ "TableColumnAction": {
323
+ "description": "Inline Action",
324
+ "isViewNode": true,
325
+ "type": "object",
326
+ "properties": {
327
+ "afterExecution": {
328
+ "$ref": "#/definitions/ActionAfterExecutionConfiguration",
329
+ "description": "Settings that are only relevant for actions (associated with a UI.DataFieldForAction annotation)",
330
+ "artifactType": "Manifest"
331
+ },
332
+ "width": {
333
+ "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
334
+ "type": "string",
335
+ "artifactType": "Manifest"
336
+ },
337
+ "availability": {
338
+ "$ref": "#/definitions/Availability",
339
+ "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation.",
340
+ "artifactType": "Manifest"
341
+ }
342
+ },
343
+ "additionalProperties": false
344
+ },
380
345
  "ActionAfterExecutionConfiguration": {
381
346
  "type": "object",
382
347
  "properties": {
@@ -393,14 +358,6 @@
393
358
  },
394
359
  "additionalProperties": false
395
360
  },
396
- "Placement": {
397
- "enum": [
398
- "After",
399
- "Before",
400
- "End"
401
- ],
402
- "type": "string"
403
- },
404
361
  "VariantManagementTypeListReport": {
405
362
  "enum": [
406
363
  "Control",
@@ -23,7 +23,7 @@
23
23
  ]
24
24
  },
25
25
  "footer": {
26
- "$ref": "#/definitions/ObjectPageFooter<GenericFooterActions>"
26
+ "$ref": "#/definitions/ObjectPageFooter<ObjectPageFooterActions>"
27
27
  },
28
28
  "$schema": {
29
29
  "type": "string"
@@ -316,7 +316,7 @@
316
316
  "artifactType": "Manifest"
317
317
  },
318
318
  "columns": {
319
- "$ref": "#/definitions/GenericColumns"
319
+ "$ref": "#/definitions/GenericColumnsOP"
320
320
  },
321
321
  "type": {
322
322
  "$ref": "#/definitions/TableTypeV4",
@@ -477,75 +477,37 @@
477
477
  "annotationPath"
478
478
  ]
479
479
  },
480
- "GenericColumns": {
480
+ "GenericColumnsOP": {
481
481
  "type": "object",
482
482
  "additionalProperties": {
483
483
  "anyOf": [
484
484
  {
485
- "description": "Table Column",
486
- "isViewNode": true,
487
- "type": "object",
488
- "properties": {
489
- "width": {
490
- "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
491
- "type": "string"
492
- },
493
- "availability": {
494
- "$ref": "#/definitions/Availability",
495
- "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation."
496
- }
497
- },
498
- "additionalProperties": false
485
+ "$ref": "#/definitions/ObjectPageTableColumn"
499
486
  },
500
487
  {
501
- "description": "Custom Columns",
502
- "isViewNode": true,
503
- "type": "array",
504
- "items": {
505
- "description": "Custom Column",
506
- "isViewNode": true,
507
- "additionalProperties": false,
508
- "type": "object",
509
- "properties": {
510
- "position": {
511
- "description": "Defines the position of the column relative to other columns.",
512
- "type": "object",
513
- "properties": {
514
- "anchor": {
515
- "description": "The key of another column to be used as placement anchor.",
516
- "type": "string"
517
- },
518
- "placement": {
519
- "$ref": "#/definitions/Placement",
520
- "description": "Define the placement, either before or after the anchor column."
521
- }
522
- },
523
- "additionalProperties": false,
524
- "required": [
525
- "placement"
526
- ]
527
- },
528
- "header": {
529
- "description": "The header is shown on the table as header, as well as in the add/remove dialog.",
530
- "type": "string"
531
- },
532
- "width": {
533
- "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
534
- "type": "string"
535
- },
536
- "template": {
537
- "description": "Relevant for extension columns; allows the definition of a target fragment.",
538
- "type": "string"
539
- }
540
- },
541
- "required": [
542
- "header"
543
- ]
544
- }
488
+ "$ref": "#/definitions/ObjectPageTableColumnAction"
545
489
  }
546
490
  ]
547
491
  }
548
492
  },
493
+ "ObjectPageTableColumn": {
494
+ "description": "Table Column",
495
+ "isViewNode": true,
496
+ "type": "object",
497
+ "properties": {
498
+ "width": {
499
+ "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
500
+ "type": "string",
501
+ "artifactType": "Manifest"
502
+ },
503
+ "availability": {
504
+ "$ref": "#/definitions/Availability",
505
+ "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation.",
506
+ "artifactType": "Manifest"
507
+ }
508
+ },
509
+ "additionalProperties": false
510
+ },
549
511
  "Availability": {
550
512
  "enum": [
551
513
  "Adaptation",
@@ -554,13 +516,44 @@
554
516
  ],
555
517
  "type": "string"
556
518
  },
557
- "Placement": {
558
- "enum": [
559
- "After",
560
- "Before",
561
- "End"
562
- ],
563
- "type": "string"
519
+ "ObjectPageTableColumnAction": {
520
+ "description": "Inline Action for Object Page",
521
+ "isViewNode": true,
522
+ "type": "object",
523
+ "properties": {
524
+ "afterExecution": {
525
+ "$ref": "#/definitions/ActionAfterExecutionConfigurationOP",
526
+ "description": "Settings that are only relevant for actions (associated with a UI.DataFieldForAction annotation)",
527
+ "artifactType": "Manifest"
528
+ },
529
+ "width": {
530
+ "description": "A string type that represents CSS size values.\nRefer to https://openui5.hana.ondemand.com/api/sap.ui.core.CSSSize.",
531
+ "type": "string",
532
+ "artifactType": "Manifest"
533
+ },
534
+ "availability": {
535
+ "$ref": "#/definitions/Availability",
536
+ "description": "Defines where the column should be shown.\nDefault: it will be shown by default in the table.\nAdaptation: it will initially not shown in the table but be available via end user adaptation.\nHidden: the column is neither available in the table nor in adaptation.",
537
+ "artifactType": "Manifest"
538
+ }
539
+ },
540
+ "additionalProperties": false
541
+ },
542
+ "ActionAfterExecutionConfigurationOP": {
543
+ "type": "object",
544
+ "properties": {
545
+ "navigateToInstance": {
546
+ "description": "By default, a navigation is automatically triggered after an action execution. If applications want to disable the navigation, they can do so using the manifest setting “navigateToInstance”.",
547
+ "type": "boolean",
548
+ "artifactType": "Manifest"
549
+ },
550
+ "enableAutoScroll": {
551
+ "description": "The \"enableAutoScroll\" allows you to scroll to the newly created or change item after execution of an action",
552
+ "type": "boolean",
553
+ "artifactType": "Manifest"
554
+ }
555
+ },
556
+ "additionalProperties": false
564
557
  },
565
558
  "TableTypeV4": {
566
559
  "enum": [
@@ -700,18 +693,18 @@
700
693
  ],
701
694
  "type": "string"
702
695
  },
703
- "ObjectPageFooter<GenericFooterActions>": {
696
+ "ObjectPageFooter<ObjectPageFooterActions>": {
704
697
  "description": "Footer",
705
698
  "isViewNode": true,
706
699
  "type": "object",
707
700
  "properties": {
708
701
  "actions": {
709
- "$ref": "#/definitions/GenericFooterActions"
702
+ "$ref": "#/definitions/ObjectPageFooterActions"
710
703
  }
711
704
  },
712
705
  "additionalProperties": false
713
706
  },
714
- "GenericFooterActions": {
707
+ "ObjectPageFooterActions": {
715
708
  "type": "object",
716
709
  "additionalProperties": {
717
710
  "type": "object",
@@ -14,9 +14,13 @@ const utils_1 = require("../src/sync/v2/generate/utils");
14
14
  const factory_1 = require("../src/sync/v2/export/factory");
15
15
  const factory_2 = require("../src/sync/v4/export/factory");
16
16
  const common_1 = require("../src/specification/common");
17
+ //TS compiler options, compare with tsconfig
17
18
  const compilerOptions = {
18
19
  skipLibCheck: true,
19
- types: ['node', '@sapui5/ts-types']
20
+ types: ['node', '@sapui5/ts-types', 'jest'],
21
+ esModuleInterop: true,
22
+ resolveJsonModule: true,
23
+ downlevelIteration: true
20
24
  };
21
25
  /**
22
26
  * Convert interfaces to json schema
@@ -25,52 +29,42 @@ const compilerOptions = {
25
29
  */
26
30
  function convertInterfaces(path, files, version) {
27
31
  const schemas = [];
28
- const paths = [];
29
- files.forEach((file) => {
30
- paths.push(path_1.join(path, file));
31
- });
32
32
  files.forEach((file) => {
33
33
  const generator = typescript_json_schema_1.buildGenerator(typescript_json_schema_1.getProgramFromFiles([path_1.join(path, file)], compilerOptions), {
34
34
  noExtraProps: true,
35
35
  required: true,
36
- validationKeywords: [
37
- 'i18nClassification',
38
- 'isViewNode',
39
- 'displayName',
40
- 'dataType',
41
- 'controlProperty',
42
- 'annotationType',
43
- 'annotationPath'
44
- ]
36
+ validationKeywords: ['i18nClassification', 'isViewNode', 'displayName', 'controlProperty']
45
37
  });
46
- const filename = file.replace('ts', 'json');
47
- schemas[filename] = generator.getSchemaForSymbol(file.replace('.ts', ''));
48
- if (file.search('Config') > -1) {
49
- //it is a page template
50
- let pageType;
51
- let factory;
52
- if (version === common_1.FioriElementsVersion.v2) {
53
- factory = new factory_1.MetadataInstanceFactoryV2();
54
- pageType = file.split('Config')[0];
55
- }
56
- else {
57
- factory = new factory_2.MetadataInstanceFactoryV4();
58
- pageType = file.split('Config')[0];
38
+ if (generator) {
39
+ const filename = file.replace('ts', 'json');
40
+ schemas[filename] = generator.getSchemaForSymbol(file.replace('.ts', ''));
41
+ if (file.search('Config') > -1) {
42
+ //it is a page template ==> enhance schema by further information from reflect-metadata
43
+ let pageType;
44
+ let factory;
45
+ if (version === common_1.FioriElementsVersion.v2) {
46
+ factory = new factory_1.MetadataInstanceFactoryV2();
47
+ pageType = file.split('Config')[0];
48
+ }
49
+ else {
50
+ factory = new factory_2.MetadataInstanceFactoryV4();
51
+ pageType = file.split('Config')[0];
52
+ }
53
+ const page = factory.createPageInstance(pageType, {});
54
+ utils_1.processMetadata(schemas[filename], schemas[filename], page, pageType, factory);
59
55
  }
60
- const page = factory.createPageInstance(pageType, {});
61
- utils_1.processMetadata(schemas[filename], schemas[filename], page, pageType, factory);
62
56
  }
63
57
  });
64
58
  return schemas;
65
59
  }
66
60
  exports.convertInterfaces = convertInterfaces;
67
61
  function writeSchemasToFile(path, schemas, version) {
68
- const dir = path_1.join(path, version);
69
- if (!fs.existsSync(dir)) {
70
- fs.mkdirSync(dir);
62
+ const dirToWrite = path_1.join(path, version);
63
+ if (!fs.existsSync(dirToWrite)) {
64
+ fs.mkdirSync(dirToWrite);
71
65
  }
72
66
  for (const schema in schemas) {
73
- const file = path_1.join(dir, schema);
67
+ const file = path_1.join(dirToWrite, schema);
74
68
  fs.writeFile(file, JSON.stringify(schemas[schema], null, 2), function (err) {
75
69
  if (err) {
76
70
  return console.log(err);
@@ -79,7 +73,7 @@ function writeSchemasToFile(path, schemas, version) {
79
73
  });
80
74
  }
81
75
  }
82
- function convertPagesOfFEVersion(schemas, paths, version, outputPath) {
76
+ function convertPagesOfFEVersion(paths, version, outputPath) {
83
77
  let fileNames = [];
84
78
  for (let index = 0; index < paths.length; index++) {
85
79
  fs.readdir(paths[index], function (err, files) {
@@ -95,7 +89,7 @@ function convertPagesOfFEVersion(schemas, paths, version, outputPath) {
95
89
  fileNames.push(fileName);
96
90
  }
97
91
  });
98
- schemas = convertInterfaces(paths[index], fileNames, version);
92
+ const schemas = convertInterfaces(paths[index], fileNames, version);
99
93
  fileNames = [];
100
94
  writeSchemasToFile(outputPath, schemas, version);
101
95
  });
@@ -110,11 +104,11 @@ async function toJsonSchema(outputPath) {
110
104
  //Pages V2
111
105
  let paths = [];
112
106
  paths.push(path_1.join('src', 'specification', 'v2', 'pages'));
113
- convertPagesOfFEVersion(schemas, paths, common_1.FioriElementsVersion.v2, outputPath);
107
+ convertPagesOfFEVersion(paths, common_1.FioriElementsVersion.v2, outputPath);
114
108
  //Pages V4
115
109
  paths = [];
116
110
  paths.push(path_1.join('src', 'specification', 'v4', 'pages'));
117
- convertPagesOfFEVersion(schemas, paths, common_1.FioriElementsVersion.v4, outputPath);
111
+ convertPagesOfFEVersion(paths, common_1.FioriElementsVersion.v4, outputPath);
118
112
  //App V2
119
113
  schemas = convertInterfaces(path_1.join('src', 'specification', 'v2'), ['ApplicationV2.ts'], common_1.FioriElementsVersion.v2);
120
114
  writeSchemasToFile(outputPath, schemas, 'v2');
@@ -1 +1 @@
1
- {"version":3,"file":"to-json-schema.js","sourceRoot":"","sources":["../../scripts/to-json-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"to-json-schema.js","sourceRoot":"","sources":["../../scripts/to-json-schema.ts"],"names":[],"mappings":"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"}