@sap/ux-specification 1.96.16 → 1.96.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 (39) hide show
  1. package/CHANGELOG.md +72 -15
  2. package/dist/documentation/runDocu-min.js +1 -1
  3. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  4. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  5. package/dist/documentation/v2/v2-ListReport.html +1 -1
  6. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  7. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  8. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  9. package/dist/documentation/v4/v4-FreestylePage.html +1 -1
  10. package/dist/documentation/v4/v4-ListReport.html +1 -1
  11. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  12. package/dist/index-min.js +1 -1
  13. package/dist/schemas/v2/AnalyticalListPageConfig.json +3 -2
  14. package/dist/schemas/v2/ApplicationV2.json +10 -1
  15. package/dist/schemas/v2/ListReportConfig.json +5 -4
  16. package/dist/schemas/v2/ObjectPageConfig.json +20 -19
  17. package/dist/schemas/v4/ApplicationV4.json +10 -1
  18. package/dist/schemas/v4/ListReportConfig.json +307 -38
  19. package/dist/schemas/v4/ObjectPageConfig.json +101 -1
  20. package/dist/specification/v4/index-min.js +1 -1
  21. package/dist/src/apiTypes.d.ts +6 -3
  22. package/dist/src/specification/common/page.d.ts +1 -1
  23. package/dist/src/specification/v2/controls/Table.d.ts +1 -0
  24. package/dist/src/specification/v4/controls/ObjectPageToolBar.d.ts +14 -2
  25. package/dist/src/specification/v4/controls/Table.d.ts +42 -1
  26. package/dist/src/specification/v4/controls/ToolBar.d.ts +59 -2
  27. package/dist/src/specification/v4/webapp/manifest/sapUi5.d.ts +1 -3
  28. package/dist/src/sync/common/generate/utils.d.ts +39 -18
  29. package/dist/src/sync/common/types.d.ts +10 -3
  30. package/dist/src/sync/common/utils.d.ts +7 -1
  31. package/dist/src/sync/v2/export/export.d.ts +2 -1
  32. package/dist/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts +16 -1
  33. package/dist/src/sync/v4/export/controls/Table.d.ts +12 -2
  34. package/dist/src/sync/v4/export/controls/ToolBar.d.ts +2 -2
  35. package/dist/src/sync/v4/export/controls/ToolBarAction.d.ts +31 -1
  36. package/dist/src/sync/v4/export/utils.d.ts +6 -0
  37. package/dist/src/sync/v4/generate/generate.d.ts +1 -1
  38. package/dist/src/sync/v4/utils/utils.d.ts +20 -3
  39. package/package.json +6 -6
@@ -485,7 +485,7 @@
485
485
  "controlType": "sap.m.Column"
486
486
  },
487
487
  "hAlign": {
488
- "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
488
+ "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
489
489
  "anyOf": [
490
490
  {
491
491
  "$ref": "#/definitions/TextAlign"
@@ -550,7 +550,7 @@
550
550
  "controlType": "sap.m.Column"
551
551
  },
552
552
  "hAlign": {
553
- "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
553
+ "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
554
554
  "anyOf": [
555
555
  {
556
556
  "$ref": "#/definitions/TextAlign"
@@ -587,6 +587,7 @@
587
587
  "columnIndex": {
588
588
  "description": "The index of the column in the overall collection; if undefined, the custom column will be added at the end of the table.",
589
589
  "minimum": 0,
590
+ "hidden": true,
590
591
  "type": "number"
591
592
  },
592
593
  "leadingProperty": {
@@ -146,7 +146,16 @@
146
146
  "navigation": {
147
147
  "type": "object",
148
148
  "additionalProperties": {
149
- "type": "string"
149
+ "anyOf": [
150
+ {
151
+ "type": "object",
152
+ "properties": {},
153
+ "additionalProperties": true
154
+ },
155
+ {
156
+ "type": "string"
157
+ }
158
+ ]
150
159
  }
151
160
  },
152
161
  "variantManagement": {
@@ -64,7 +64,7 @@
64
64
  "controlType": "sap.m.Table"
65
65
  },
66
66
  "popinLayout": {
67
- "pattern": "^(Block|GridLarge|GridSmall)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
67
+ "pattern": "^(Block|GridLarge|GridSmall)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
68
68
  "anyOf": [
69
69
  {
70
70
  "$ref": "#/definitions/PopinLayout"
@@ -489,7 +489,7 @@
489
489
  "controlType": "sap.m.Column"
490
490
  },
491
491
  "hAlign": {
492
- "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
492
+ "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
493
493
  "anyOf": [
494
494
  {
495
495
  "$ref": "#/definitions/TextAlign"
@@ -554,7 +554,7 @@
554
554
  "controlType": "sap.m.Column"
555
555
  },
556
556
  "hAlign": {
557
- "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
557
+ "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
558
558
  "anyOf": [
559
559
  {
560
560
  "$ref": "#/definitions/TextAlign"
@@ -591,6 +591,7 @@
591
591
  "columnIndex": {
592
592
  "description": "The index of the column in the overall collection; if undefined, the custom column will be added at the end of the table.",
593
593
  "minimum": 0,
594
+ "hidden": true,
594
595
  "type": "number"
595
596
  },
596
597
  "leadingProperty": {
@@ -664,7 +665,7 @@
664
665
  "controlType": "sap.m.Table"
665
666
  },
666
667
  "popinLayout": {
667
- "pattern": "^(Block|GridLarge|GridSmall)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
668
+ "pattern": "^(Block|GridLarge|GridSmall)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
668
669
  "anyOf": [
669
670
  {
670
671
  "$ref": "#/definitions/PopinLayout"
@@ -91,7 +91,7 @@
91
91
  "artifactType": "Manifest"
92
92
  },
93
93
  "displayShape": {
94
- "pattern": "^(Circle|Square)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
94
+ "pattern": "^(Circle|Square)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
95
95
  "anyOf": [
96
96
  {
97
97
  "$ref": "#/definitions/AvatarShape"
@@ -130,7 +130,7 @@
130
130
  "type": "object",
131
131
  "properties": {
132
132
  "visible": {
133
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
133
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
134
134
  "anyOf": [
135
135
  {
136
136
  "enum": [
@@ -262,7 +262,7 @@
262
262
  "type": "object",
263
263
  "properties": {
264
264
  "visible": {
265
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
265
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
266
266
  "anyOf": [
267
267
  {
268
268
  "enum": [
@@ -292,7 +292,7 @@
292
292
  "$ref": "#/definitions/ObjectPageForm"
293
293
  },
294
294
  "visible": {
295
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
295
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
296
296
  "anyOf": [
297
297
  {
298
298
  "enum": [
@@ -339,7 +339,7 @@
339
339
  "type": "object",
340
340
  "properties": {
341
341
  "visible": {
342
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
342
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
343
343
  "anyOf": [
344
344
  {
345
345
  "enum": [
@@ -372,7 +372,7 @@
372
372
  "type": "object",
373
373
  "properties": {
374
374
  "visible": {
375
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
375
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
376
376
  "anyOf": [
377
377
  {
378
378
  "enum": [
@@ -443,7 +443,7 @@
443
443
  ]
444
444
  },
445
445
  "visible": {
446
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
446
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
447
447
  "anyOf": [
448
448
  {
449
449
  "enum": [
@@ -490,7 +490,7 @@
490
490
  "controlType": "sap.m.Table"
491
491
  },
492
492
  "popinLayout": {
493
- "pattern": "^(Block|GridLarge|GridSmall)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
493
+ "pattern": "^(Block|GridLarge|GridSmall)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
494
494
  "anyOf": [
495
495
  {
496
496
  "$ref": "#/definitions/PopinLayout"
@@ -695,7 +695,7 @@
695
695
  "type": "object",
696
696
  "properties": {
697
697
  "visible": {
698
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
698
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
699
699
  "anyOf": [
700
700
  {
701
701
  "enum": [
@@ -774,7 +774,7 @@
774
774
  "controlType": "sap.m.Column"
775
775
  },
776
776
  "hAlign": {
777
- "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
777
+ "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
778
778
  "anyOf": [
779
779
  {
780
780
  "$ref": "#/definitions/TextAlign"
@@ -839,7 +839,7 @@
839
839
  "controlType": "sap.m.Column"
840
840
  },
841
841
  "hAlign": {
842
- "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
842
+ "pattern": "^(Begin|Center|End|Initial|Left|Right)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
843
843
  "anyOf": [
844
844
  {
845
845
  "$ref": "#/definitions/TextAlign"
@@ -876,6 +876,7 @@
876
876
  "columnIndex": {
877
877
  "description": "The index of the column in the overall collection; if undefined, the custom column will be added at the end of the table.",
878
878
  "minimum": 0,
879
+ "hidden": true,
879
880
  "type": "number"
880
881
  },
881
882
  "leadingProperty": {
@@ -949,7 +950,7 @@
949
950
  "controlType": "sap.m.Table"
950
951
  },
951
952
  "popinLayout": {
952
- "pattern": "^(Block|GridLarge|GridSmall)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
953
+ "pattern": "^(Block|GridLarge|GridSmall)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
953
954
  "anyOf": [
954
955
  {
955
956
  "$ref": "#/definitions/PopinLayout"
@@ -1317,7 +1318,7 @@
1317
1318
  "$ref": "#/definitions/ObjectPageChart"
1318
1319
  },
1319
1320
  "visible": {
1320
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
1321
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1321
1322
  "anyOf": [
1322
1323
  {
1323
1324
  "enum": [
@@ -1362,7 +1363,7 @@
1362
1363
  "additionalProperties": true
1363
1364
  },
1364
1365
  "visible": {
1365
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
1366
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1366
1367
  "anyOf": [
1367
1368
  {
1368
1369
  "enum": [
@@ -1394,7 +1395,7 @@
1394
1395
  "additionalProperties": true
1395
1396
  },
1396
1397
  "visible": {
1397
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
1398
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1398
1399
  "anyOf": [
1399
1400
  {
1400
1401
  "enum": [
@@ -1424,7 +1425,7 @@
1424
1425
  "$ref": "#/definitions/GenericSubSections"
1425
1426
  },
1426
1427
  "visible": {
1427
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
1428
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1428
1429
  "anyOf": [
1429
1430
  {
1430
1431
  "enum": [
@@ -1478,7 +1479,7 @@
1478
1479
  "additionalProperties": true
1479
1480
  },
1480
1481
  "visible": {
1481
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
1482
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1482
1483
  "anyOf": [
1483
1484
  {
1484
1485
  "enum": [
@@ -1510,7 +1511,7 @@
1510
1511
  "additionalProperties": true
1511
1512
  },
1512
1513
  "visible": {
1513
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
1514
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1514
1515
  "anyOf": [
1515
1516
  {
1516
1517
  "enum": [
@@ -1673,7 +1674,7 @@
1673
1674
  "type": "object",
1674
1675
  "properties": {
1675
1676
  "visible": {
1676
- "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#? _|,<>'()[\\]\\/:=.]+}$",
1677
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1677
1678
  "anyOf": [
1678
1679
  {
1679
1680
  "enum": [
@@ -113,7 +113,16 @@
113
113
  "navigation": {
114
114
  "type": "object",
115
115
  "additionalProperties": {
116
- "type": "string"
116
+ "anyOf": [
117
+ {
118
+ "type": "object",
119
+ "properties": {},
120
+ "additionalProperties": true
121
+ },
122
+ {
123
+ "type": "string"
124
+ }
125
+ ]
117
126
  }
118
127
  },
119
128
  "variantManagement": {
@@ -116,6 +116,9 @@
116
116
  {
117
117
  "type": "object",
118
118
  "properties": {}
119
+ },
120
+ {
121
+ "$ref": "#/definitions/ViewTableCustomAction"
119
122
  }
120
123
  ]
121
124
  }
@@ -140,6 +143,95 @@
140
143
  ],
141
144
  "type": "string"
142
145
  },
146
+ "ViewTableCustomAction": {
147
+ "type": "object",
148
+ "properties": {
149
+ "position": {
150
+ "$ref": "#/definitions/ViewCustomActionPosition",
151
+ "description": "Defines the position of the action relative to other actions.",
152
+ "artifactType": "Manifest"
153
+ },
154
+ "text": {
155
+ "description": "The text that is displayed on the button (typically a binding to an i18n entry).",
156
+ "i18nClassification": "COL: Custom action text",
157
+ "type": "string",
158
+ "artifactType": "Manifest"
159
+ },
160
+ "press": {
161
+ "description": "Relevant for extension actions; allows the definition of a target action handler.",
162
+ "type": "string",
163
+ "artifactType": "Manifest"
164
+ },
165
+ "requiresSelection": {
166
+ "description": "Indicates whether the action requires a selection of items.",
167
+ "type": "boolean",
168
+ "artifactType": "Manifest"
169
+ },
170
+ "visible": {
171
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
172
+ "anyOf": [
173
+ {
174
+ "enum": [
175
+ false,
176
+ true
177
+ ]
178
+ },
179
+ {
180
+ "type": "string"
181
+ }
182
+ ],
183
+ "description": "Whether the action button should be visible on the screen.",
184
+ "artifactType": "Manifest"
185
+ },
186
+ "enabled": {
187
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
188
+ "anyOf": [
189
+ {
190
+ "enum": [
191
+ false,
192
+ true
193
+ ]
194
+ },
195
+ {
196
+ "type": "string"
197
+ }
198
+ ],
199
+ "description": "Whether the action button should be enabled. Default value is `true`.",
200
+ "artifactType": "Manifest"
201
+ }
202
+ },
203
+ "additionalProperties": false,
204
+ "required": [
205
+ "press",
206
+ "text"
207
+ ]
208
+ },
209
+ "ViewCustomActionPosition": {
210
+ "type": "object",
211
+ "properties": {
212
+ "anchor": {
213
+ "description": "The key of another action to be used as placement anchor.",
214
+ "type": "string",
215
+ "artifactType": "Manifest"
216
+ },
217
+ "placement": {
218
+ "$ref": "#/definitions/ActionPlacement",
219
+ "description": "Define the placement, either before or after the anchor action.",
220
+ "artifactType": "Manifest"
221
+ }
222
+ },
223
+ "additionalProperties": false,
224
+ "required": [
225
+ "placement"
226
+ ]
227
+ },
228
+ "ActionPlacement": {
229
+ "enum": [
230
+ "After",
231
+ "Before"
232
+ ],
233
+ "type": "string"
234
+ },
143
235
  "ALPTableView": {
144
236
  "description": "Table View",
145
237
  "isViewNode": true,
@@ -274,7 +366,14 @@
274
366
  "isViewNode": true,
275
367
  "type": "object",
276
368
  "additionalProperties": {
277
- "$ref": "#/definitions/ToolBarAction"
369
+ "anyOf": [
370
+ {
371
+ "$ref": "#/definitions/ToolBarAction"
372
+ },
373
+ {
374
+ "$ref": "#/definitions/CustomAction"
375
+ }
376
+ ]
278
377
  }
279
378
  },
280
379
  "ToolBarAction": {
@@ -290,6 +389,90 @@
290
389
  },
291
390
  "additionalProperties": false
292
391
  },
392
+ "CustomAction": {
393
+ "description": "Action",
394
+ "isViewNode": true,
395
+ "type": "object",
396
+ "properties": {
397
+ "text": {
398
+ "description": "The text that is displayed on the button (typically a binding to an i18n entry).",
399
+ "i18nClassification": "COL: Custom action text",
400
+ "type": "string",
401
+ "artifactType": "Manifest"
402
+ },
403
+ "position": {
404
+ "$ref": "#/definitions/CustomActionPosition",
405
+ "description": "Defines the position of the action relative to other actions.",
406
+ "artifactType": "Manifest"
407
+ },
408
+ "press": {
409
+ "description": "Relevant for extension actions; allows the definition of a target action handler.",
410
+ "type": "string",
411
+ "artifactType": "Manifest"
412
+ },
413
+ "requiresSelection": {
414
+ "description": "Indicates whether the action requires a selection of items.",
415
+ "type": "boolean",
416
+ "artifactType": "Manifest"
417
+ },
418
+ "visible": {
419
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
420
+ "anyOf": [
421
+ {
422
+ "enum": [
423
+ false,
424
+ true
425
+ ]
426
+ },
427
+ {
428
+ "type": "string"
429
+ }
430
+ ],
431
+ "description": "Whether the action button should be visible on the screen.",
432
+ "artifactType": "Manifest"
433
+ },
434
+ "enabled": {
435
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
436
+ "anyOf": [
437
+ {
438
+ "enum": [
439
+ false,
440
+ true
441
+ ]
442
+ },
443
+ {
444
+ "type": "string"
445
+ }
446
+ ],
447
+ "description": "Whether the action button should be enabled. Default value is `true`.",
448
+ "artifactType": "Manifest"
449
+ }
450
+ },
451
+ "additionalProperties": false,
452
+ "required": [
453
+ "press",
454
+ "text"
455
+ ]
456
+ },
457
+ "CustomActionPosition": {
458
+ "type": "object",
459
+ "properties": {
460
+ "anchor": {
461
+ "description": "The key of another action to be used as placement anchor.",
462
+ "type": "string",
463
+ "artifactType": "Manifest"
464
+ },
465
+ "placement": {
466
+ "$ref": "#/definitions/ActionPlacement",
467
+ "description": "Define the placement, either before or after the anchor action.",
468
+ "artifactType": "Manifest"
469
+ }
470
+ },
471
+ "additionalProperties": false,
472
+ "required": [
473
+ "placement"
474
+ ]
475
+ },
293
476
  "ViewColumns": {
294
477
  "type": "object",
295
478
  "additionalProperties": {
@@ -629,11 +812,14 @@
629
812
  "type": "object",
630
813
  "additionalProperties": {
631
814
  "anyOf": [
815
+ {
816
+ "$ref": "#/definitions/LRTableView"
817
+ },
632
818
  {
633
819
  "$ref": "#/definitions/LRChartView"
634
820
  },
635
821
  {
636
- "$ref": "#/definitions/LRTableView"
822
+ "$ref": "#/definitions/TableViewExtension"
637
823
  },
638
824
  {
639
825
  "type": "boolean"
@@ -648,47 +834,13 @@
648
834
  }
649
835
  }
650
836
  },
651
- "LRChartView": {
652
- "description": "Chart View",
653
- "isViewNode": true,
654
- "type": "object",
655
- "properties": {
656
- "key": {
657
- "type": "string",
658
- "artifactType": "Manifest"
659
- },
660
- "index": {
661
- "type": "number",
662
- "artifactType": "Manifest"
663
- },
664
- "annotationPath": {
665
- "description": "To use charts in multiple table mode, define a UI.Chart annotation, including a qualifier.\nReference the UI.Chart annotation in your SelectionPresentationVariant or PresentationVariant for your view.",
666
- "type": "string",
667
- "artifactType": "Manifest"
668
- },
669
- "entitySet": {
670
- "description": "Each chart can be based on a different entitySet.",
671
- "type": "string",
672
- "artifactType": "Manifest"
673
- },
674
- "toolBar": {
675
- "$ref": "#/definitions/ViewChartToolBar",
676
- "description": "Chart Toolbar"
677
- }
678
- },
679
- "additionalProperties": false,
680
- "required": [
681
- "annotationPath",
682
- "index",
683
- "key"
684
- ]
685
- },
686
837
  "LRTableView": {
687
838
  "description": "Table View",
688
839
  "isViewNode": true,
689
840
  "type": "object",
690
841
  "properties": {
691
842
  "key": {
843
+ "description": "Unique tab identifier.",
692
844
  "type": "string",
693
845
  "artifactType": "Manifest"
694
846
  },
@@ -726,7 +878,24 @@
726
878
  "description": "Table Toolbar"
727
879
  },
728
880
  "columns": {
729
- "$ref": "#/definitions/ViewColumns"
881
+ "$ref": "#/definitions/ViewColumns",
882
+ "description": "Columns"
883
+ },
884
+ "visible": {
885
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
886
+ "anyOf": [
887
+ {
888
+ "enum": [
889
+ false,
890
+ true
891
+ ]
892
+ },
893
+ {
894
+ "type": "string"
895
+ }
896
+ ],
897
+ "description": "Specifies whether the view is visible or not",
898
+ "artifactType": "Manifest"
730
899
  },
731
900
  "type": {
732
901
  "$ref": "#/definitions/TableTypeV4",
@@ -771,6 +940,106 @@
771
940
  "key"
772
941
  ]
773
942
  },
943
+ "LRChartView": {
944
+ "description": "Chart View",
945
+ "isViewNode": true,
946
+ "type": "object",
947
+ "properties": {
948
+ "key": {
949
+ "type": "string",
950
+ "artifactType": "Manifest"
951
+ },
952
+ "index": {
953
+ "type": "number",
954
+ "artifactType": "Manifest"
955
+ },
956
+ "annotationPath": {
957
+ "description": "To use charts in multiple table mode, define a UI.Chart annotation, including a qualifier.\nReference the UI.Chart annotation in your SelectionPresentationVariant or PresentationVariant for your view.",
958
+ "type": "string",
959
+ "artifactType": "Manifest"
960
+ },
961
+ "entitySet": {
962
+ "description": "Each chart can be based on a different entitySet.",
963
+ "type": "string",
964
+ "artifactType": "Manifest"
965
+ },
966
+ "toolBar": {
967
+ "$ref": "#/definitions/ViewChartToolBar",
968
+ "description": "Chart Toolbar"
969
+ },
970
+ "visible": {
971
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
972
+ "anyOf": [
973
+ {
974
+ "enum": [
975
+ false,
976
+ true
977
+ ]
978
+ },
979
+ {
980
+ "type": "string"
981
+ }
982
+ ],
983
+ "description": "Specifies whether the view is visible or not",
984
+ "artifactType": "Manifest"
985
+ }
986
+ },
987
+ "additionalProperties": false,
988
+ "required": [
989
+ "annotationPath",
990
+ "index",
991
+ "key"
992
+ ]
993
+ },
994
+ "TableViewExtension": {
995
+ "description": "Table View Extension",
996
+ "isViewNode": true,
997
+ "type": "object",
998
+ "properties": {
999
+ "key": {
1000
+ "description": "Unique tab identifier.",
1001
+ "type": "string",
1002
+ "artifactType": "Manifest"
1003
+ },
1004
+ "index": {
1005
+ "hidden": true,
1006
+ "type": "number",
1007
+ "artifactType": "Manifest"
1008
+ },
1009
+ "label": {
1010
+ "description": "View title (localization supported).",
1011
+ "type": "string",
1012
+ "artifactType": "Manifest"
1013
+ },
1014
+ "template": {
1015
+ "description": "The name contains sap.app.id as a prefix, followed by the path in the app/webapp folder and the name of the XML view.",
1016
+ "type": "string",
1017
+ "artifactType": "Manifest"
1018
+ },
1019
+ "visible": {
1020
+ "pattern": "^(false|true)$|^{[A-Za-z0-9{}&$!@#%? _|,<>'()[\\]\\/:=.]+}$",
1021
+ "anyOf": [
1022
+ {
1023
+ "enum": [
1024
+ false,
1025
+ true
1026
+ ]
1027
+ },
1028
+ {
1029
+ "type": "string"
1030
+ }
1031
+ ],
1032
+ "description": "Specifies whether the view is visible or not",
1033
+ "artifactType": "Manifest"
1034
+ }
1035
+ },
1036
+ "additionalProperties": false,
1037
+ "required": [
1038
+ "index",
1039
+ "key",
1040
+ "template"
1041
+ ]
1042
+ },
774
1043
  "GenericColumns": {
775
1044
  "type": "object",
776
1045
  "additionalProperties": {