@sap/ux-specification 1.139.6 → 1.139.7

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 (174) hide show
  1. package/CHANGELOG.md +40 -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 +258 -259
  14. package/dist/index-min.js.map +4 -4
  15. package/dist/schemas/v4/BuildingBlocksConfig.json +72 -35
  16. package/dist/schemas/v4/ListReportConfig.json +274 -28
  17. package/dist/schemas/v4/ObjectPageConfig.json +433 -154
  18. package/dist/specification/package.json +8 -8
  19. package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
  20. package/dist/specification/scripts/macros/corrections.js +17 -1
  21. package/dist/specification/scripts/macros/corrections.js.map +1 -1
  22. package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
  23. package/dist/specification/scripts/macros/schema.js +10 -1
  24. package/dist/specification/scripts/macros/schema.js.map +1 -1
  25. package/dist/specification/scripts/macros/types.d.ts +1 -0
  26. package/dist/specification/scripts/macros/types.d.ts.map +1 -1
  27. package/dist/specification/src/api.d.ts.map +1 -1
  28. package/dist/specification/src/api.js +2 -1
  29. package/dist/specification/src/api.js.map +1 -1
  30. package/dist/specification/src/sync/common/DataFieldStrategy.d.ts +38 -8
  31. package/dist/specification/src/sync/common/DataFieldStrategy.d.ts.map +1 -1
  32. package/dist/specification/src/sync/common/DataFieldStrategy.js +64 -11
  33. package/dist/specification/src/sync/common/DataFieldStrategy.js.map +1 -1
  34. package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts +0 -4
  35. package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts.map +1 -1
  36. package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js +0 -3
  37. package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js.map +1 -1
  38. package/dist/specification/src/sync/common/appProvider.d.ts +0 -1
  39. package/dist/specification/src/sync/common/appProvider.d.ts.map +1 -1
  40. package/dist/specification/src/sync/common/appProvider.js +0 -1
  41. package/dist/specification/src/sync/common/appProvider.js.map +1 -1
  42. package/dist/specification/src/sync/common/generate/objectPage.d.ts +0 -1
  43. package/dist/specification/src/sync/common/generate/objectPage.d.ts.map +1 -1
  44. package/dist/specification/src/sync/common/generate/objectPage.js +0 -3
  45. package/dist/specification/src/sync/common/generate/objectPage.js.map +1 -1
  46. package/dist/specification/src/sync/common/generate/utils.d.ts +1 -2
  47. package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
  48. package/dist/specification/src/sync/common/generate/utils.js +1 -2
  49. package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
  50. package/dist/specification/src/sync/common/import/utils.d.ts +0 -1
  51. package/dist/specification/src/sync/common/import/utils.d.ts.map +1 -1
  52. package/dist/specification/src/sync/common/import/utils.js +0 -1
  53. package/dist/specification/src/sync/common/import/utils.js.map +1 -1
  54. package/dist/specification/src/sync/common/rules.js +0 -1
  55. package/dist/specification/src/sync/common/rules.js.map +1 -1
  56. package/dist/specification/src/sync/common/utils.d.ts +13 -2
  57. package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
  58. package/dist/specification/src/sync/common/utils.js +84 -4
  59. package/dist/specification/src/sync/common/utils.js.map +1 -1
  60. package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
  61. package/dist/specification/src/sync/v2/export/exportPageGeneric.js +3 -13
  62. package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
  63. package/dist/specification/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
  64. package/dist/specification/src/sync/v2/generate/analyticalListReport.js +46 -0
  65. package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  66. package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
  67. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +28 -1
  68. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
  69. package/dist/specification/src/sync/v2/import/importPage.d.ts.map +1 -1
  70. package/dist/specification/src/sync/v2/import/importPage.js +5 -6
  71. package/dist/specification/src/sync/v2/import/importPage.js.map +1 -1
  72. package/dist/specification/src/sync/v4/application.d.ts +1 -1
  73. package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
  74. package/dist/specification/src/sync/v4/application.js +1 -1
  75. package/dist/specification/src/sync/v4/application.js.map +1 -1
  76. package/dist/specification/src/sync/v4/export/actions.d.ts +39 -0
  77. package/dist/specification/src/sync/v4/export/actions.d.ts.map +1 -0
  78. package/dist/specification/src/sync/v4/export/actions.js +99 -0
  79. package/dist/specification/src/sync/v4/export/actions.js.map +1 -0
  80. package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts +2 -1
  81. package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts.map +1 -1
  82. package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.js.map +1 -1
  83. package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.d.ts +2 -6
  84. package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.d.ts.map +1 -1
  85. package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.js +2 -44
  86. package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.js.map +1 -1
  87. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts +2 -2
  88. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
  89. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.js.map +1 -1
  90. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts +14 -3
  91. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
  92. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.js +53 -10
  93. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.js.map +1 -1
  94. package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts +15 -3
  95. package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts.map +1 -1
  96. package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.js +54 -11
  97. package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.js.map +1 -1
  98. package/dist/specification/src/sync/v4/export/controls/Table.d.ts +0 -3
  99. package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
  100. package/dist/specification/src/sync/v4/export/controls/Table.js +0 -3
  101. package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
  102. package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts +9 -2
  103. package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts.map +1 -1
  104. package/dist/specification/src/sync/v4/export/controls/ToolBar.js +39 -1
  105. package/dist/specification/src/sync/v4/export/controls/ToolBar.js.map +1 -1
  106. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +17 -4
  107. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
  108. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +78 -21
  109. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
  110. package/dist/specification/src/sync/v4/export/export.d.ts +7 -0
  111. package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
  112. package/dist/specification/src/sync/v4/export/export.js +100 -11
  113. package/dist/specification/src/sync/v4/export/export.js.map +1 -1
  114. package/dist/specification/src/sync/v4/export/types.d.ts +2 -0
  115. package/dist/specification/src/sync/v4/export/types.d.ts.map +1 -1
  116. package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts.map +1 -1
  117. package/dist/specification/src/sync/v4/generate/ListReportUtils.js +19 -17
  118. package/dist/specification/src/sync/v4/generate/ListReportUtils.js.map +1 -1
  119. package/dist/specification/src/sync/v4/generate/actions.d.ts +35 -0
  120. package/dist/specification/src/sync/v4/generate/actions.d.ts.map +1 -0
  121. package/dist/specification/src/sync/v4/generate/actions.js +112 -0
  122. package/dist/specification/src/sync/v4/generate/actions.js.map +1 -0
  123. package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts +3 -3
  124. package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts.map +1 -1
  125. package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js +10 -2
  126. package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
  127. package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.d.ts +1 -1
  128. package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.d.ts.map +1 -1
  129. package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js +3 -2
  130. package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js.map +1 -1
  131. package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -1
  132. package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +9 -2
  133. package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -1
  134. package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js +2 -2
  135. package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -1
  136. package/dist/specification/src/sync/v4/generate/listReport.d.ts +25 -5
  137. package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +1 -1
  138. package/dist/specification/src/sync/v4/generate/listReport.js +85 -263
  139. package/dist/specification/src/sync/v4/generate/listReport.js.map +1 -1
  140. package/dist/specification/src/sync/v4/generate/objectPage.d.ts +0 -1
  141. package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
  142. package/dist/specification/src/sync/v4/generate/objectPage.js +8 -14
  143. package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
  144. package/dist/specification/src/sync/v4/import/pages/objectPage.d.ts.map +1 -1
  145. package/dist/specification/src/sync/v4/import/pages/objectPage.js +16 -3
  146. package/dist/specification/src/sync/v4/import/pages/objectPage.js.map +1 -1
  147. package/dist/specification/src/sync/v4/import/utils.d.ts +0 -1
  148. package/dist/specification/src/sync/v4/import/utils.d.ts.map +1 -1
  149. package/dist/specification/src/sync/v4/import/utils.js +0 -1
  150. package/dist/specification/src/sync/v4/import/utils.js.map +1 -1
  151. package/dist/specification/src/sync/v4/utils/utils.d.ts +103 -26
  152. package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
  153. package/dist/specification/src/sync/v4/utils/utils.js +350 -64
  154. package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
  155. package/dist/types/src/apiTypes.d.ts +3 -2
  156. package/dist/types/src/apiTypes.d.ts.map +1 -1
  157. package/dist/types/src/apiTypes.js +1 -0
  158. package/dist/types/src/apiTypes.js.map +1 -1
  159. package/dist/types/src/common/types.d.ts +41 -1
  160. package/dist/types/src/common/types.d.ts.map +1 -1
  161. package/dist/types/src/common/types.js +39 -1
  162. package/dist/types/src/common/types.js.map +1 -1
  163. package/dist/types/src/v4/controls/CustomAction.d.ts +133 -19
  164. package/dist/types/src/v4/controls/CustomAction.d.ts.map +1 -1
  165. package/dist/types/src/v4/controls/CustomAction.js.map +1 -1
  166. package/dist/types/src/v4/controls/ObjectPageForm.d.ts +2 -2
  167. package/dist/types/src/v4/controls/ObjectPageForm.d.ts.map +1 -1
  168. package/dist/types/src/v4/controls/ObjectPageHeader.d.ts +22 -3
  169. package/dist/types/src/v4/controls/ObjectPageHeader.d.ts.map +1 -1
  170. package/dist/types/src/v4/controls/ObjectPageToolBar.d.ts +2 -2
  171. package/dist/types/src/v4/controls/ObjectPageToolBar.d.ts.map +1 -1
  172. package/dist/types/src/v4/controls/ToolBar.d.ts +10 -3
  173. package/dist/types/src/v4/controls/ToolBar.d.ts.map +1 -1
  174. package/package.json +8 -8
@@ -77,17 +77,26 @@
77
77
  "properties": {
78
78
  "position": {
79
79
  "$ref": "#/definitions/CustomHeaderActionPosition",
80
- "description": "Defines the position of the action relative to other actions.",
80
+ "description": "Defines the position of the action relative to other actions or action menus.",
81
81
  "artifactType": "Manifest"
82
82
  },
83
- "text": {
84
- "description": "The text that is displayed on the button (typically a binding to an i18n entry).",
85
- "i18nClassification": "COL: Custom action text",
83
+ "press": {
84
+ "description": "Relevant for extension actions; allows the definition of a target action handler.",
86
85
  "artifactType": "Manifest",
87
86
  "type": "string"
88
87
  },
89
- "press": {
90
- "description": "Relevant for extension actions; allows the definition of a target action handler.",
88
+ "menu": {
89
+ "description": "List of action names from the manifest.",
90
+ "hidden": true,
91
+ "isViewNode": false,
92
+ "type": "array",
93
+ "items": {
94
+ "type": "string"
95
+ }
96
+ },
97
+ "text": {
98
+ "description": "The text that is displayed on the button. This is typically a binding to an i18n entry.",
99
+ "i18nClassification": "COL: Custom action text",
91
100
  "artifactType": "Manifest",
92
101
  "type": "string"
93
102
  },
@@ -104,7 +113,7 @@
104
113
  "type": "string"
105
114
  }
106
115
  ],
107
- "description": "Defines if the action button is visible.",
116
+ "description": "Determines if the action or action menu button is visible.",
108
117
  "artifactType": "Manifest"
109
118
  },
110
119
  "enabled": {
@@ -120,7 +129,7 @@
120
129
  "type": "string"
121
130
  }
122
131
  ],
123
- "description": "Defines if the action is enabled. The default value is true.",
132
+ "description": "Defines if the action or action menu is enabled. The default value is true.",
124
133
  "artifactType": "Manifest"
125
134
  },
126
135
  "priority": {
@@ -146,13 +155,13 @@
146
155
  "type": "object",
147
156
  "properties": {
148
157
  "anchor": {
149
- "description": "The key of another action to be used as placement anchor.",
158
+ "description": "The key of another action or action menu to be used as a placement anchor.",
150
159
  "artifactType": "Manifest",
151
160
  "type": "string"
152
161
  },
153
162
  "placement": {
154
163
  "$ref": "#/definitions/ActionPlacement",
155
- "description": "Define the placement, either before or after the anchor action.",
164
+ "description": "Defines the placement of the action or action menu relative to the placement anchor.",
156
165
  "artifactType": "Manifest"
157
166
  }
158
167
  },
@@ -398,6 +407,9 @@
398
407
  },
399
408
  {
400
409
  "$ref": "#/definitions/ViewTableCustomAction"
410
+ },
411
+ {
412
+ "$ref": "#/definitions/ViewCustomActionMenu"
401
413
  }
402
414
  ]
403
415
  }
@@ -539,14 +551,24 @@
539
551
  "artifactType": "Manifest",
540
552
  "type": "boolean"
541
553
  },
542
- "text": {
543
- "description": "The text that is displayed on the button (typically a binding to an i18n entry).",
544
- "i18nClassification": "COL: Custom action text",
554
+ "press": {
555
+ "description": "Relevant for extension actions; allows the definition of a target action handler.",
545
556
  "artifactType": "Manifest",
546
557
  "type": "string"
547
558
  },
548
- "press": {
549
- "description": "Relevant for extension actions; allows the definition of a target action handler.",
559
+ "menu": {
560
+ "description": "List of action names from the manifest.",
561
+ "hidden": true,
562
+ "isViewNode": false,
563
+ "type": "array",
564
+ "items": {
565
+ "type": "string"
566
+ },
567
+ "artifactType": "Manifest"
568
+ },
569
+ "text": {
570
+ "description": "The text that is displayed on the button. This is typically a binding to an i18n entry.",
571
+ "i18nClassification": "COL: Custom action text",
550
572
  "artifactType": "Manifest",
551
573
  "type": "string"
552
574
  },
@@ -563,7 +585,7 @@
563
585
  "type": "string"
564
586
  }
565
587
  ],
566
- "description": "Defines if the action button is visible.",
588
+ "description": "Determines if the action or action menu button is visible.",
567
589
  "artifactType": "Manifest"
568
590
  },
569
591
  "enabled": {
@@ -579,7 +601,7 @@
579
601
  "type": "string"
580
602
  }
581
603
  ],
582
- "description": "Defines if the action is enabled. The default value is true.",
604
+ "description": "Defines if the action or action menu is enabled. The default value is true.",
583
605
  "artifactType": "Manifest"
584
606
  },
585
607
  "priority": {
@@ -611,7 +633,7 @@
611
633
  },
612
634
  "placement": {
613
635
  "$ref": "#/definitions/ActionPlacement",
614
- "description": "Define the placement, either before or after the anchor action.",
636
+ "description": "Defines the placement of the action or action menu relative to the placement anchor.",
615
637
  "artifactType": "Manifest"
616
638
  }
617
639
  },
@@ -620,6 +642,113 @@
620
642
  "placement"
621
643
  ]
622
644
  },
645
+ "ViewCustomActionMenu": {
646
+ "isViewNode": true,
647
+ "type": "object",
648
+ "properties": {
649
+ "menu": {
650
+ "description": "List of action names from the manifest.",
651
+ "hidden": true,
652
+ "isViewNode": false,
653
+ "type": "array",
654
+ "items": {
655
+ "type": "string"
656
+ },
657
+ "artifactType": "Manifest"
658
+ },
659
+ "actions": {
660
+ "$ref": "#/definitions/ViewCustomActionMenuActions",
661
+ "description": "List of actions.",
662
+ "artifactType": "Manifest"
663
+ },
664
+ "position": {
665
+ "$ref": "#/definitions/ViewCustomActionPosition",
666
+ "description": "Defines the position of the action relative to other actions or action menus.",
667
+ "artifactType": "Manifest"
668
+ },
669
+ "defaultAction": {
670
+ "description": "The default action for a menu button.",
671
+ "isViewNode": false,
672
+ "type": "string",
673
+ "artifactType": "Manifest"
674
+ },
675
+ "text": {
676
+ "description": "The text that is displayed on the button. This is typically a binding to an i18n entry.",
677
+ "i18nClassification": "COL: Custom action text",
678
+ "artifactType": "Manifest",
679
+ "type": "string"
680
+ },
681
+ "visible": {
682
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
683
+ "anyOf": [
684
+ {
685
+ "enum": [
686
+ false,
687
+ true
688
+ ]
689
+ },
690
+ {
691
+ "type": "string"
692
+ }
693
+ ],
694
+ "description": "Determines if the action or action menu button is visible.",
695
+ "artifactType": "Manifest"
696
+ },
697
+ "enabled": {
698
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
699
+ "anyOf": [
700
+ {
701
+ "enum": [
702
+ false,
703
+ true
704
+ ]
705
+ },
706
+ {
707
+ "type": "string"
708
+ }
709
+ ],
710
+ "description": "Defines if the action or action menu is enabled. The default value is true.",
711
+ "artifactType": "Manifest"
712
+ },
713
+ "priority": {
714
+ "description": "Defines the priority of the action. This determines ordering and whether the action is moved into overflow.",
715
+ "artifactType": "Manifest",
716
+ "descriptionSrcURL": "https://ui5.sap.com/#/topic/cbf16c599f2d4b8796e3702f7d4aae6c",
717
+ "enum": [
718
+ "AlwaysOverflow",
719
+ "High",
720
+ "Low",
721
+ "NeverOverflow"
722
+ ],
723
+ "type": "string"
724
+ }
725
+ },
726
+ "additionalProperties": false,
727
+ "required": [
728
+ "menu",
729
+ "text"
730
+ ]
731
+ },
732
+ "ViewCustomActionMenuActions": {
733
+ "isViewNode": false,
734
+ "type": "object",
735
+ "additionalProperties": {
736
+ "anyOf": [
737
+ {
738
+ "$ref": "#/definitions/GroupableAction"
739
+ },
740
+ {
741
+ "$ref": "#/definitions/ViewToolBarActionGroup"
742
+ },
743
+ {
744
+ "$ref": "#/definitions/ViewToolBarAction"
745
+ },
746
+ {
747
+ "$ref": "#/definitions/ViewTableCustomAction"
748
+ }
749
+ ]
750
+ }
751
+ },
623
752
  "ALPTableView": {
624
753
  "description": "Table View",
625
754
  "isViewNode": true,
@@ -810,6 +939,9 @@
810
939
  },
811
940
  {
812
941
  "$ref": "#/definitions/CustomTableAction"
942
+ },
943
+ {
944
+ "$ref": "#/definitions/CustomActionMenu"
813
945
  }
814
946
  ]
815
947
  }
@@ -904,19 +1036,29 @@
904
1036
  "artifactType": "Manifest",
905
1037
  "type": "boolean"
906
1038
  },
907
- "text": {
908
- "description": "The text that is displayed on the button (typically a binding to an i18n entry).",
909
- "i18nClassification": "COL: Custom action text",
1039
+ "press": {
1040
+ "description": "Relevant for extension actions; allows the definition of a target action handler.",
910
1041
  "artifactType": "Manifest",
911
1042
  "type": "string"
912
1043
  },
1044
+ "menu": {
1045
+ "description": "List of action names from the manifest.",
1046
+ "hidden": true,
1047
+ "isViewNode": false,
1048
+ "type": "array",
1049
+ "items": {
1050
+ "type": "string"
1051
+ },
1052
+ "artifactType": "Manifest"
1053
+ },
913
1054
  "position": {
914
1055
  "$ref": "#/definitions/CustomActionPosition",
915
- "description": "Defines the position of the action relative to other actions.",
1056
+ "description": "Defines the position of the action relative to other actions or action menus.",
916
1057
  "artifactType": "Manifest"
917
1058
  },
918
- "press": {
919
- "description": "Relevant for extension actions; allows the definition of a target action handler.",
1059
+ "text": {
1060
+ "description": "The text that is displayed on the button. This is typically a binding to an i18n entry.",
1061
+ "i18nClassification": "COL: Custom action text",
920
1062
  "artifactType": "Manifest",
921
1063
  "type": "string"
922
1064
  },
@@ -933,7 +1075,7 @@
933
1075
  "type": "string"
934
1076
  }
935
1077
  ],
936
- "description": "Defines if the action button is visible.",
1078
+ "description": "Determines if the action or action menu button is visible.",
937
1079
  "artifactType": "Manifest"
938
1080
  },
939
1081
  "enabled": {
@@ -949,7 +1091,7 @@
949
1091
  "type": "string"
950
1092
  }
951
1093
  ],
952
- "description": "Defines if the action is enabled. The default value is true.",
1094
+ "description": "Defines if the action or action menu is enabled. The default value is true.",
953
1095
  "artifactType": "Manifest"
954
1096
  },
955
1097
  "priority": {
@@ -975,13 +1117,13 @@
975
1117
  "type": "object",
976
1118
  "properties": {
977
1119
  "anchor": {
978
- "description": "The key of another action to be used as placement anchor.",
1120
+ "description": "The key of another action or action menu to be used as a placement anchor.",
979
1121
  "artifactType": "Manifest",
980
1122
  "type": "string"
981
1123
  },
982
1124
  "placement": {
983
1125
  "$ref": "#/definitions/ActionPlacement",
984
- "description": "Define the placement, either before or after the anchor action.",
1126
+ "description": "Defines the placement of the action or action menu relative to the placement anchor.",
985
1127
  "artifactType": "Manifest"
986
1128
  }
987
1129
  },
@@ -990,6 +1132,110 @@
990
1132
  "placement"
991
1133
  ]
992
1134
  },
1135
+ "CustomActionMenu": {
1136
+ "isViewNode": true,
1137
+ "type": "object",
1138
+ "properties": {
1139
+ "menu": {
1140
+ "description": "List of action names from the manifest.",
1141
+ "hidden": true,
1142
+ "isViewNode": false,
1143
+ "type": "array",
1144
+ "items": {
1145
+ "type": "string"
1146
+ },
1147
+ "artifactType": "Manifest"
1148
+ },
1149
+ "actions": {
1150
+ "$ref": "#/definitions/CustomActionMenuActions",
1151
+ "description": "List of actions.",
1152
+ "artifactType": "Manifest"
1153
+ },
1154
+ "position": {
1155
+ "$ref": "#/definitions/CustomActionPosition",
1156
+ "description": "Defines the position of the action relative to other actions or action menus.",
1157
+ "artifactType": "Manifest"
1158
+ },
1159
+ "defaultAction": {
1160
+ "description": "The default action for a menu button.",
1161
+ "isViewNode": false,
1162
+ "type": "string",
1163
+ "artifactType": "Manifest"
1164
+ },
1165
+ "text": {
1166
+ "description": "The text that is displayed on the button. This is typically a binding to an i18n entry.",
1167
+ "i18nClassification": "COL: Custom action text",
1168
+ "artifactType": "Manifest",
1169
+ "type": "string"
1170
+ },
1171
+ "visible": {
1172
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1173
+ "anyOf": [
1174
+ {
1175
+ "enum": [
1176
+ false,
1177
+ true
1178
+ ]
1179
+ },
1180
+ {
1181
+ "type": "string"
1182
+ }
1183
+ ],
1184
+ "description": "Determines if the action or action menu button is visible.",
1185
+ "artifactType": "Manifest"
1186
+ },
1187
+ "enabled": {
1188
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1189
+ "anyOf": [
1190
+ {
1191
+ "enum": [
1192
+ false,
1193
+ true
1194
+ ]
1195
+ },
1196
+ {
1197
+ "type": "string"
1198
+ }
1199
+ ],
1200
+ "description": "Defines if the action or action menu is enabled. The default value is true.",
1201
+ "artifactType": "Manifest"
1202
+ },
1203
+ "priority": {
1204
+ "description": "Defines the priority of the action. This determines ordering and whether the action is moved into overflow.",
1205
+ "artifactType": "Manifest",
1206
+ "descriptionSrcURL": "https://ui5.sap.com/#/topic/cbf16c599f2d4b8796e3702f7d4aae6c",
1207
+ "enum": [
1208
+ "AlwaysOverflow",
1209
+ "High",
1210
+ "Low",
1211
+ "NeverOverflow"
1212
+ ],
1213
+ "type": "string"
1214
+ }
1215
+ },
1216
+ "additionalProperties": false,
1217
+ "required": [
1218
+ "menu",
1219
+ "text"
1220
+ ]
1221
+ },
1222
+ "CustomActionMenuActions": {
1223
+ "isViewNode": false,
1224
+ "type": "object",
1225
+ "additionalProperties": {
1226
+ "anyOf": [
1227
+ {
1228
+ "$ref": "#/definitions/ToolBarAction"
1229
+ },
1230
+ {
1231
+ "$ref": "#/definitions/ToolBarActionGroup"
1232
+ },
1233
+ {
1234
+ "$ref": "#/definitions/CustomTableAction"
1235
+ }
1236
+ ]
1237
+ }
1238
+ },
993
1239
  "ViewColumns": {
994
1240
  "description": "View Columns",
995
1241
  "isViewNode": true,