@sap/ux-specification 1.136.3 → 1.136.4
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.
- package/CHANGELOG.md +21 -0
- package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
- package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
- package/dist/documentation/v2/v2-ListReport.html +2 -2
- package/dist/documentation/v2/v2-ListReportNew.html +2 -2
- package/dist/documentation/v2/v2-ObjectPage.html +2 -2
- package/dist/documentation/v2/v2-OverviewPage.html +2 -2
- package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
- package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
- package/dist/documentation/v4/v4-FreestylePage.html +2 -2
- package/dist/documentation/v4/v4-ListReport.html +2 -2
- package/dist/documentation/v4/v4-ObjectPage.html +2 -2
- package/dist/index-min.js +109 -109
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v2/ListReportNewConfig.json +42 -0
- package/dist/schemas/v4/BuildingBlocksConfig.json +154 -80
- package/dist/specification/package.json +8 -8
- package/dist/specification/scripts/extractDocu.js +65 -56
- package/dist/specification/scripts/extractDocu.js.map +1 -1
- package/dist/specification/scripts/schema/to-json-schema.d.ts.map +1 -1
- package/dist/specification/scripts/schema/to-json-schema.js +3 -2
- package/dist/specification/scripts/schema/to-json-schema.js.map +1 -1
- package/dist/specification/src/api.js +2 -2
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +1 -2
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.d.ts +5 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.js +24 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Action.js.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/ListHeader.d.ts +12 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/ListHeader.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/ListHeader.js +58 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/ListHeader.js.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts +7 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js +23 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.d.ts +2 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.js +15 -2
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/ListReportNew.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.d.ts +3 -3
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.js +10 -8
- package/dist/specification/src/sync/v2/genericSchemaHandling/pages/pageAccess.js.map +1 -1
- package/dist/specification/src/sync/v2/import/importPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/importPage.js +1 -2
- package/dist/specification/src/sync/v2/import/importPage.js.map +1 -1
- package/dist/specification/src/sync/v2/utils.d.ts +5 -6
- package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/utils.js +8 -17
- package/dist/specification/src/sync/v2/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/listReport.js +2 -0
- package/dist/specification/src/sync/v4/generate/listReport.js.map +1 -1
- package/dist/types/src/common/types.d.ts +1 -5
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js.map +1 -1
- package/package.json +8 -8
|
@@ -7,10 +7,52 @@
|
|
|
7
7
|
"artifactType": "FlexChange",
|
|
8
8
|
"controlType": "sap.f.DynamicPage"
|
|
9
9
|
},
|
|
10
|
+
"header": {
|
|
11
|
+
"$ref": "#/definitions/ListHeader",
|
|
12
|
+
"description": "Header"
|
|
13
|
+
},
|
|
10
14
|
"$schema": {
|
|
11
15
|
"type": "string"
|
|
12
16
|
}
|
|
13
17
|
},
|
|
14
18
|
"additionalProperties": false,
|
|
19
|
+
"definitions": {
|
|
20
|
+
"ListHeader": {
|
|
21
|
+
"description": "Header",
|
|
22
|
+
"isViewNode": true,
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"actions": {
|
|
26
|
+
"$ref": "#/definitions/ListHeaderActions"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"additionalProperties": false
|
|
30
|
+
},
|
|
31
|
+
"ListHeaderActions": {
|
|
32
|
+
"description": "Actions",
|
|
33
|
+
"isViewNode": true,
|
|
34
|
+
"type": "object",
|
|
35
|
+
"properties": {
|
|
36
|
+
"Share": {
|
|
37
|
+
"$ref": "#/definitions/Share"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"additionalProperties": false
|
|
41
|
+
},
|
|
42
|
+
"Share": {
|
|
43
|
+
"description": "Share",
|
|
44
|
+
"isViewNode": true,
|
|
45
|
+
"type": "object",
|
|
46
|
+
"properties": {
|
|
47
|
+
"visible": {
|
|
48
|
+
"description": "Allows you to define if the button is visible on the screen.",
|
|
49
|
+
"type": "boolean",
|
|
50
|
+
"artifactType": "FlexChange",
|
|
51
|
+
"controlType": "sap.m.Button"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"additionalProperties": false
|
|
55
|
+
}
|
|
56
|
+
},
|
|
15
57
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
16
58
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"metadata": {
|
|
4
4
|
"namespaces": [
|
|
5
5
|
"sap.fe.macros",
|
|
6
|
+
"sap.fe.macros.form",
|
|
6
7
|
"sap.fe.macros.chart",
|
|
7
8
|
"sap.fe.macros.controls",
|
|
8
9
|
"sap.fe.macros.field",
|
|
@@ -137,7 +138,7 @@
|
|
|
137
138
|
}
|
|
138
139
|
},
|
|
139
140
|
"sap.fe.macros.CollectionBindingInfo": {
|
|
140
|
-
"description": "API to add parameters to the collection binding
|
|
141
|
+
"description": "API to add parameters to the collection binding info.",
|
|
141
142
|
"isViewNode": true,
|
|
142
143
|
"type": "object",
|
|
143
144
|
"properties": {
|
|
@@ -251,6 +252,69 @@
|
|
|
251
252
|
"type": "Control"
|
|
252
253
|
}
|
|
253
254
|
},
|
|
255
|
+
"sap.fe.macros.form.FormElement": {
|
|
256
|
+
"description": "Building block used to create a form element based on the metadata provided by OData V4.",
|
|
257
|
+
"isViewNode": true,
|
|
258
|
+
"type": "object",
|
|
259
|
+
"properties": {
|
|
260
|
+
"contextPath": {
|
|
261
|
+
"type": "string",
|
|
262
|
+
"description": "Defines the path of the context used in the current page or block.\nThis setting is defined by the framework.",
|
|
263
|
+
"artifactType": "XMLProperty",
|
|
264
|
+
"metadata": {
|
|
265
|
+
"type": "Property"
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"label": {
|
|
269
|
+
"type": "string",
|
|
270
|
+
"description": "Label shown for the field. If not set, the label from the annotations will be shown.",
|
|
271
|
+
"artifactType": "XMLProperty",
|
|
272
|
+
"metadata": {
|
|
273
|
+
"type": "Property"
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"metaPath": {
|
|
277
|
+
"type": "string",
|
|
278
|
+
"description": "Defines the relative path of the property in the metamodel, based on the current contextPath.",
|
|
279
|
+
"artifactType": "XMLProperty",
|
|
280
|
+
"metadata": {
|
|
281
|
+
"type": "Property"
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"visible": {
|
|
285
|
+
"type": "boolean",
|
|
286
|
+
"description": "If set to false, the FormElement is not rendered.",
|
|
287
|
+
"artifactType": "XMLProperty",
|
|
288
|
+
"metadata": {
|
|
289
|
+
"type": "Property"
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
"id": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"description": "Unique id of control",
|
|
295
|
+
"artifactType": "XMLProperty",
|
|
296
|
+
"metadata": {
|
|
297
|
+
"type": "Property"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"fields": {
|
|
301
|
+
"type": "object",
|
|
302
|
+
"additionalProperties": {
|
|
303
|
+
"$ref": "#/definitions/sap.ui.core.Control"
|
|
304
|
+
},
|
|
305
|
+
"isViewNode": true,
|
|
306
|
+
"metadata": {
|
|
307
|
+
"path": [],
|
|
308
|
+
"type": "Aggregation"
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
"additionalProperties": false,
|
|
313
|
+
"metadata": {
|
|
314
|
+
"path": [],
|
|
315
|
+
"type": "Control"
|
|
316
|
+
}
|
|
317
|
+
},
|
|
254
318
|
"sap.fe.macros.KPITag": {
|
|
255
319
|
"description": "Building block used to create a KPI tag.",
|
|
256
320
|
"isViewNode": true,
|
|
@@ -468,7 +532,7 @@
|
|
|
468
532
|
},
|
|
469
533
|
"items": {
|
|
470
534
|
"type": "any",
|
|
471
|
-
"description": "Property added to be able to add data / items to the multi
|
|
535
|
+
"description": "Property added to be able to add data / items to the multi-input field using a different model",
|
|
472
536
|
"artifactType": "XMLProperty",
|
|
473
537
|
"metadata": {
|
|
474
538
|
"type": "Property"
|
|
@@ -1677,80 +1741,6 @@
|
|
|
1677
1741
|
"type": "Control"
|
|
1678
1742
|
}
|
|
1679
1743
|
},
|
|
1680
|
-
"sap.fe.macros.FormElement": {
|
|
1681
|
-
"description": "Building block used to create a form element based on the metadata provided by OData V4.",
|
|
1682
|
-
"isViewNode": true,
|
|
1683
|
-
"type": "object",
|
|
1684
|
-
"properties": {
|
|
1685
|
-
"contextPath": {
|
|
1686
|
-
"$ref": "#/definitions/sap.ui.model.Context",
|
|
1687
|
-
"description": "contextPath",
|
|
1688
|
-
"artifactType": "XMLProperty",
|
|
1689
|
-
"isViewNode": true,
|
|
1690
|
-
"metadata": {
|
|
1691
|
-
"type": "Property"
|
|
1692
|
-
}
|
|
1693
|
-
},
|
|
1694
|
-
"label": {
|
|
1695
|
-
"type": "string",
|
|
1696
|
-
"description": "Label shown for the field. If not set, the label from the annotations will be shown.",
|
|
1697
|
-
"artifactType": "XMLProperty",
|
|
1698
|
-
"metadata": {
|
|
1699
|
-
"type": "Property"
|
|
1700
|
-
},
|
|
1701
|
-
"i18nClassification": "FLD: Label of the form element"
|
|
1702
|
-
},
|
|
1703
|
-
"metaPath": {
|
|
1704
|
-
"$ref": "#/definitions/sap.ui.model.Context",
|
|
1705
|
-
"description": "metaPath",
|
|
1706
|
-
"artifactType": "XMLProperty",
|
|
1707
|
-
"isViewNode": true,
|
|
1708
|
-
"metadata": {
|
|
1709
|
-
"type": "Property"
|
|
1710
|
-
}
|
|
1711
|
-
},
|
|
1712
|
-
"visible": {
|
|
1713
|
-
"type": "boolean",
|
|
1714
|
-
"description": "If set to false, the FormElement is not rendered.",
|
|
1715
|
-
"artifactType": "XMLProperty",
|
|
1716
|
-
"metadata": {
|
|
1717
|
-
"type": "Property"
|
|
1718
|
-
}
|
|
1719
|
-
},
|
|
1720
|
-
"id": {
|
|
1721
|
-
"type": "string",
|
|
1722
|
-
"description": "Unique id of control",
|
|
1723
|
-
"artifactType": "XMLProperty",
|
|
1724
|
-
"metadata": {
|
|
1725
|
-
"type": "Property"
|
|
1726
|
-
}
|
|
1727
|
-
},
|
|
1728
|
-
"fields": {
|
|
1729
|
-
"type": "object",
|
|
1730
|
-
"additionalProperties": {
|
|
1731
|
-
"$ref": "#/definitions/sap.ui.core.Control"
|
|
1732
|
-
},
|
|
1733
|
-
"isViewNode": true,
|
|
1734
|
-
"metadata": {
|
|
1735
|
-
"path": [],
|
|
1736
|
-
"type": "Aggregation"
|
|
1737
|
-
}
|
|
1738
|
-
},
|
|
1739
|
-
"change": {
|
|
1740
|
-
"type": "string",
|
|
1741
|
-
"description": "The event is triggered when the field is changed.",
|
|
1742
|
-
"artifactType": "XMLProperty",
|
|
1743
|
-
"metadata": {
|
|
1744
|
-
"type": "Event"
|
|
1745
|
-
}
|
|
1746
|
-
}
|
|
1747
|
-
},
|
|
1748
|
-
"additionalProperties": false,
|
|
1749
|
-
"metadata": {
|
|
1750
|
-
"path": [],
|
|
1751
|
-
"type": "Control"
|
|
1752
|
-
}
|
|
1753
|
-
},
|
|
1754
1744
|
"sap.fe.macros.microchart.MicroChart": {
|
|
1755
1745
|
"description": "Building block used to create a MicroChart based on the metadata provided by OData V4.\n\nUsually, a contextPath and metaPath is expected.\nUsage example:\n\nsap.ui.require([\"sap/fe/macros/microchart/MicroChart\"], function(MicroChart) {\n\t ...\n\t new MicroChart(\"microChartID\", {metaPath:\"MyProperty\"})\n})\n\nThis is currently an experimental API because the structure of the generated content will change to come closer to the MicroChart that you get out of templates.\nThe public method and property will not change but the internal structure will so be careful on your usage.\n",
|
|
1756
1746
|
"isViewNode": true,
|
|
@@ -1971,6 +1961,14 @@
|
|
|
1971
1961
|
"type": "Property"
|
|
1972
1962
|
}
|
|
1973
1963
|
},
|
|
1964
|
+
"isAIOperation": {
|
|
1965
|
+
"type": "boolean",
|
|
1966
|
+
"description": "Displays the AI Icon on the action button.",
|
|
1967
|
+
"artifactType": "XMLProperty",
|
|
1968
|
+
"metadata": {
|
|
1969
|
+
"type": "Property"
|
|
1970
|
+
}
|
|
1971
|
+
},
|
|
1974
1972
|
"key": {
|
|
1975
1973
|
"type": "string",
|
|
1976
1974
|
"description": "Unique identifier of the action",
|
|
@@ -2231,6 +2229,14 @@
|
|
|
2231
2229
|
"type": "Property"
|
|
2232
2230
|
}
|
|
2233
2231
|
},
|
|
2232
|
+
"isAIOperation": {
|
|
2233
|
+
"type": "boolean",
|
|
2234
|
+
"description": "Displays the AI Icon on the action button.",
|
|
2235
|
+
"artifactType": "XMLProperty",
|
|
2236
|
+
"metadata": {
|
|
2237
|
+
"type": "Property"
|
|
2238
|
+
}
|
|
2239
|
+
},
|
|
2234
2240
|
"key": {
|
|
2235
2241
|
"type": "string",
|
|
2236
2242
|
"description": "Unique identifier of the action to overridden.",
|
|
@@ -2719,6 +2725,14 @@
|
|
|
2719
2725
|
"type": "Property"
|
|
2720
2726
|
}
|
|
2721
2727
|
},
|
|
2728
|
+
"disableColumnFreeze": {
|
|
2729
|
+
"type": "boolean",
|
|
2730
|
+
"description": "Determines whether the number of fixed columns can be configured in the Column Settings dialog.\nThis property doesn't apply for responsive tables\n",
|
|
2731
|
+
"artifactType": "XMLProperty",
|
|
2732
|
+
"metadata": {
|
|
2733
|
+
"type": "Property"
|
|
2734
|
+
}
|
|
2735
|
+
},
|
|
2722
2736
|
"disableCopyToClipboard": {
|
|
2723
2737
|
"type": "boolean",
|
|
2724
2738
|
"description": "Controls if the copy functionality of the table is disabled or not.",
|
|
@@ -2934,6 +2948,15 @@
|
|
|
2934
2948
|
"ForceSingle"
|
|
2935
2949
|
]
|
|
2936
2950
|
},
|
|
2951
|
+
"threshold": {
|
|
2952
|
+
"$ref": "#/definitions/int",
|
|
2953
|
+
"description": "threshold",
|
|
2954
|
+
"artifactType": "XMLProperty",
|
|
2955
|
+
"isViewNode": true,
|
|
2956
|
+
"metadata": {
|
|
2957
|
+
"type": "Property"
|
|
2958
|
+
}
|
|
2959
|
+
},
|
|
2937
2960
|
"type": {
|
|
2938
2961
|
"type": "string",
|
|
2939
2962
|
"description": "Defines the type of table that will be used by the building block to render the data.\nAllowed values are `GridTable`, `ResponsiveTable` and `AnalyticalTable`.\n",
|
|
@@ -3022,7 +3045,7 @@
|
|
|
3022
3045
|
},
|
|
3023
3046
|
"beforeRebindTable": {
|
|
3024
3047
|
"type": "string",
|
|
3025
|
-
"description": "Before a table rebind, an event is triggered that contains information about the binding.\nYou can use this event to add selects, and add or read the sorters and filters.\n",
|
|
3048
|
+
"description": "Before a table rebind, an event is triggered that contains information about the binding.\nThe event contains a parameter, `collectionBindingInfo`, which is an instance of `CollectionBindingInfoAPI`.\nThis allows you to manipulate the table's list binding.\nYou can use this event to attach event handlers to the table's list binding.\nYou can use this event to add selects, and add or read the sorters and filters.\n",
|
|
3026
3049
|
"artifactType": "XMLProperty",
|
|
3027
3050
|
"metadata": {
|
|
3028
3051
|
"type": "Event"
|
|
@@ -3090,6 +3113,14 @@
|
|
|
3090
3113
|
"type": "Property"
|
|
3091
3114
|
}
|
|
3092
3115
|
},
|
|
3116
|
+
"disableColumnFreeze": {
|
|
3117
|
+
"type": "boolean",
|
|
3118
|
+
"description": "Determines whether the number of fixed columns can be configured in the Column Settings dialog.\nThis property doesn't apply for responsive tables\n",
|
|
3119
|
+
"artifactType": "XMLProperty",
|
|
3120
|
+
"metadata": {
|
|
3121
|
+
"type": "Property"
|
|
3122
|
+
}
|
|
3123
|
+
},
|
|
3093
3124
|
"disableCopyToClipboard": {
|
|
3094
3125
|
"type": "boolean",
|
|
3095
3126
|
"description": "Controls if the copy functionality of the table is disabled or not.",
|
|
@@ -3304,6 +3335,15 @@
|
|
|
3304
3335
|
"ForceSingle"
|
|
3305
3336
|
]
|
|
3306
3337
|
},
|
|
3338
|
+
"threshold": {
|
|
3339
|
+
"$ref": "#/definitions/int",
|
|
3340
|
+
"description": "threshold",
|
|
3341
|
+
"artifactType": "XMLProperty",
|
|
3342
|
+
"isViewNode": true,
|
|
3343
|
+
"metadata": {
|
|
3344
|
+
"type": "Property"
|
|
3345
|
+
}
|
|
3346
|
+
},
|
|
3307
3347
|
"type": {
|
|
3308
3348
|
"type": "string",
|
|
3309
3349
|
"description": "Defines the type of table that will be used by the building block to render the data.\nAllowed values are `GridTable`, `ResponsiveTable` and `AnalyticalTable`.\n",
|
|
@@ -3388,7 +3428,7 @@
|
|
|
3388
3428
|
},
|
|
3389
3429
|
"beforeRebindTable": {
|
|
3390
3430
|
"type": "string",
|
|
3391
|
-
"description": "Before a table rebind, an event is triggered that contains information about the binding.\nYou can use this event to add selects, and add or read the sorters and filters.\n",
|
|
3431
|
+
"description": "Before a table rebind, an event is triggered that contains information about the binding.\nThe event contains a parameter, `collectionBindingInfo`, which is an instance of `CollectionBindingInfoAPI`.\nThis allows you to manipulate the table's list binding.\nYou can use this event to attach event handlers to the table's list binding.\nYou can use this event to add selects, and add or read the sorters and filters.\n",
|
|
3392
3432
|
"artifactType": "XMLProperty",
|
|
3393
3433
|
"metadata": {
|
|
3394
3434
|
"type": "Event"
|
|
@@ -3522,6 +3562,14 @@
|
|
|
3522
3562
|
"type": "Property"
|
|
3523
3563
|
}
|
|
3524
3564
|
},
|
|
3565
|
+
"disableColumnFreeze": {
|
|
3566
|
+
"type": "boolean",
|
|
3567
|
+
"description": "Determines whether the number of fixed columns can be configured in the Column Settings dialog.\nThis property doesn't apply for responsive tables\n",
|
|
3568
|
+
"artifactType": "XMLProperty",
|
|
3569
|
+
"metadata": {
|
|
3570
|
+
"type": "Property"
|
|
3571
|
+
}
|
|
3572
|
+
},
|
|
3525
3573
|
"disableCopyToClipboard": {
|
|
3526
3574
|
"type": "boolean",
|
|
3527
3575
|
"description": "Controls if the copy functionality of the table is disabled or not.",
|
|
@@ -3776,6 +3824,15 @@
|
|
|
3776
3824
|
"ForceSingle"
|
|
3777
3825
|
]
|
|
3778
3826
|
},
|
|
3827
|
+
"threshold": {
|
|
3828
|
+
"$ref": "#/definitions/int",
|
|
3829
|
+
"description": "threshold",
|
|
3830
|
+
"artifactType": "XMLProperty",
|
|
3831
|
+
"isViewNode": true,
|
|
3832
|
+
"metadata": {
|
|
3833
|
+
"type": "Property"
|
|
3834
|
+
}
|
|
3835
|
+
},
|
|
3779
3836
|
"type": {
|
|
3780
3837
|
"type": "string",
|
|
3781
3838
|
"description": "Defines the type of table that will be used by the building block to render the data. This setting is defined by the framework.\nAllowed value is `TreeTable`.\n",
|
|
@@ -3856,7 +3913,7 @@
|
|
|
3856
3913
|
},
|
|
3857
3914
|
"beforeRebindTable": {
|
|
3858
3915
|
"type": "string",
|
|
3859
|
-
"description": "Before a table rebind, an event is triggered that contains information about the binding.\nYou can use this event to add selects, and add or read the sorters and filters.\n",
|
|
3916
|
+
"description": "Before a table rebind, an event is triggered that contains information about the binding.\nThe event contains a parameter, `collectionBindingInfo`, which is an instance of `CollectionBindingInfoAPI`.\nThis allows you to manipulate the table's list binding.\nYou can use this event to attach event handlers to the table's list binding.\nYou can use this event to add selects, and add or read the sorters and filters.\n",
|
|
3860
3917
|
"artifactType": "XMLProperty",
|
|
3861
3918
|
"metadata": {
|
|
3862
3919
|
"type": "Event"
|
|
@@ -3923,6 +3980,14 @@
|
|
|
3923
3980
|
"type": "Property"
|
|
3924
3981
|
}
|
|
3925
3982
|
},
|
|
3983
|
+
"disableColumnFreeze": {
|
|
3984
|
+
"type": "boolean",
|
|
3985
|
+
"description": "Determines whether the number of fixed columns can be configured in the Column Settings dialog.\nThis property doesn't apply for responsive tables\n",
|
|
3986
|
+
"artifactType": "XMLProperty",
|
|
3987
|
+
"metadata": {
|
|
3988
|
+
"type": "Property"
|
|
3989
|
+
}
|
|
3990
|
+
},
|
|
3926
3991
|
"disableCopyToClipboard": {
|
|
3927
3992
|
"type": "boolean",
|
|
3928
3993
|
"description": "Controls if the copy functionality of the table is disabled or not.",
|
|
@@ -4177,6 +4242,15 @@
|
|
|
4177
4242
|
"ForceSingle"
|
|
4178
4243
|
]
|
|
4179
4244
|
},
|
|
4245
|
+
"threshold": {
|
|
4246
|
+
"$ref": "#/definitions/int",
|
|
4247
|
+
"description": "threshold",
|
|
4248
|
+
"artifactType": "XMLProperty",
|
|
4249
|
+
"isViewNode": true,
|
|
4250
|
+
"metadata": {
|
|
4251
|
+
"type": "Property"
|
|
4252
|
+
}
|
|
4253
|
+
},
|
|
4180
4254
|
"type": {
|
|
4181
4255
|
"type": "string",
|
|
4182
4256
|
"description": "Defines the type of table that will be used by the building block to render the data. This setting is defined by the framework.\nAllowed value is `TreeTable`.\n",
|
|
@@ -4257,7 +4331,7 @@
|
|
|
4257
4331
|
},
|
|
4258
4332
|
"beforeRebindTable": {
|
|
4259
4333
|
"type": "string",
|
|
4260
|
-
"description": "Before a table rebind, an event is triggered that contains information about the binding.\nYou can use this event to add selects, and add or read the sorters and filters.\n",
|
|
4334
|
+
"description": "Before a table rebind, an event is triggered that contains information about the binding.\nThe event contains a parameter, `collectionBindingInfo`, which is an instance of `CollectionBindingInfoAPI`.\nThis allows you to manipulate the table's list binding.\nYou can use this event to attach event handlers to the table's list binding.\nYou can use this event to add selects, and add or read the sorters and filters.\n",
|
|
4261
4335
|
"artifactType": "XMLProperty",
|
|
4262
4336
|
"metadata": {
|
|
4263
4337
|
"type": "Event"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sap/ux-specification",
|
|
3
|
-
"version": "1.136.
|
|
3
|
+
"version": "1.136.4",
|
|
4
4
|
"displayName": "SAP Fiori tools - Specification",
|
|
5
5
|
"description": "SAP Fiori tools - Specification",
|
|
6
6
|
"files": [
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"bundle": "node esbuild",
|
|
22
22
|
"bundle:dev": "node esbuild --minify=false",
|
|
23
23
|
"bundle:watch": "node esbuild --watch --stats --minify=false",
|
|
24
|
-
"build": "npm-run-all -l -s clean:before -s compile -p create-json-schemas macros copy-templates -p copy-json-schemas htmlV2 htmlV4 -s bundle",
|
|
24
|
+
"build": "npm-run-all -l -s clean:before -s compile -p create-json-schemas macros copy-templates -p copy-json-schemas -s htmlV2 htmlV4 -s bundle",
|
|
25
25
|
"build:dev": "npm-run-all -l -s clean:before -s compile -p create-json-schemas copy-templates -s copy-json-schemas bundle:dev",
|
|
26
|
-
"build:doc": "npm-run-all -l -s clean:doc -s compile -
|
|
26
|
+
"build:doc": "npm-run-all -l -s clean:doc -s compile -s htmlV2 htmlV4 -s bundle",
|
|
27
27
|
"build:schemas": "npm-run-all -l -s create-json-schemas copy-json-schemas",
|
|
28
28
|
"build:snap": "yarn build:dev && yarn update-snapshots",
|
|
29
29
|
"create-json-schemas": "ts-node ./scripts/schema/index.ts ",
|
|
@@ -44,18 +44,18 @@
|
|
|
44
44
|
"test:ci": "jest --ci --forceExit --detectOpenHandles && node ../../scripts/scov.js reports/test/unit/coverage/lcov.info",
|
|
45
45
|
"update-snapshots": "jest --updateSnapshot",
|
|
46
46
|
"watch": "npm-run-all -l -s clean:before -p compile create-json-schemas macros copy-templates -p copy-json-schemas -s bundle:watch",
|
|
47
|
-
"watch:doc": "npm-run-all -l -s clean:doc -s compile -
|
|
47
|
+
"watch:doc": "npm-run-all -l -s clean:doc -s compile -s htmlV2 htmlV4 -s bundle:watch"
|
|
48
48
|
},
|
|
49
49
|
"publisher": "SAPSE",
|
|
50
50
|
"license": "SEE LICENSE IN LICENSE",
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@sap-ux/fe-fpm-writer": "0.
|
|
52
|
+
"@sap-ux/fe-fpm-writer": "0.36.0",
|
|
53
53
|
"@sap-ux/vocabularies-types": "0.13.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@sap-ux/annotation-converter": "0.10.3",
|
|
57
57
|
"@sap-ux/edmx-parser": "0.8.2",
|
|
58
|
-
"@sap/ux-specification-types": "1.136.
|
|
58
|
+
"@sap/ux-specification-types": "1.136.4",
|
|
59
59
|
"@sapui5/types": "latest-1.136",
|
|
60
60
|
"@types/d3": "7.4.3",
|
|
61
61
|
"@types/jquery": "3.5.32",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"deepmerge": "4.3.1",
|
|
70
70
|
"ejs": "3.1.10",
|
|
71
71
|
"excel4node": "1.8.2",
|
|
72
|
-
"i18next": "
|
|
72
|
+
"i18next": "25.3.0",
|
|
73
73
|
"jquery": "3.7.1",
|
|
74
74
|
"jsdom": "25.0.1",
|
|
75
75
|
"lodash.unset": "4.5.2",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"path": "0.12.7",
|
|
78
78
|
"reflect-metadata": "0.2.2",
|
|
79
79
|
"semver": "7.7.2",
|
|
80
|
-
"typescript-json-schema": "0.
|
|
80
|
+
"typescript-json-schema": "0.65.1",
|
|
81
81
|
"xml-js": "1.6.11"
|
|
82
82
|
},
|
|
83
83
|
"husky": {
|
|
@@ -43,7 +43,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
43
43
|
*/
|
|
44
44
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
45
45
|
const path_1 = require("path");
|
|
46
|
-
const
|
|
46
|
+
const fs_1 = require("fs");
|
|
47
47
|
const excel = __importStar(require("excel4node"));
|
|
48
48
|
/**
|
|
49
49
|
* Handles reference ($ref) within the schema, finds the corresponding definition.
|
|
@@ -458,13 +458,13 @@ function createSVGIcon(floorPlan) {
|
|
|
458
458
|
* @param file - The name of the file being processed.
|
|
459
459
|
* @param odataVersion - The OData version (e.g., "v2" or "v4").
|
|
460
460
|
*/
|
|
461
|
-
function generateHTMLFormat(output, file, odataVersion) {
|
|
461
|
+
async function generateHTMLFormat(output, file, odataVersion) {
|
|
462
462
|
//filter output to remove duplicated lines due to different table types (anyOf)
|
|
463
463
|
output = output.filter((e, i, a) => a.indexOf(e) === i);
|
|
464
464
|
output.shift();
|
|
465
465
|
const nameFloorPlan = file.split('.')[0].replace(/Config/g, '');
|
|
466
466
|
const rootName = __dirname.slice(0, __dirname.lastIndexOf('specification') + 13);
|
|
467
|
-
const packageJson = JSON.parse(
|
|
467
|
+
const packageJson = JSON.parse(await fs_1.promises.readFile((0, path_1.join)(rootName, 'package.json'), 'utf8'));
|
|
468
468
|
//shortens spec version
|
|
469
469
|
const specVersion = packageJson.version.includes('+') ? packageJson.version.split('+')[0] : packageJson.version;
|
|
470
470
|
const svgIcon = createSVGIcon(nameFloorPlan);
|
|
@@ -473,12 +473,12 @@ function generateHTMLFormat(output, file, odataVersion) {
|
|
|
473
473
|
//only create html if porperties exist
|
|
474
474
|
if (treeData.children.length > 0) {
|
|
475
475
|
let template;
|
|
476
|
-
let outDir;
|
|
477
476
|
try {
|
|
478
|
-
template =
|
|
477
|
+
template = await fs_1.promises.readFile(templateFilePath, 'utf8');
|
|
479
478
|
}
|
|
480
479
|
catch (e) {
|
|
481
480
|
console.log(`Error: ${e.message}`);
|
|
481
|
+
return;
|
|
482
482
|
}
|
|
483
483
|
template = template.replace(`'placeholderTreeData'`, JSON.stringify(treeData));
|
|
484
484
|
template = template.replace(`OData_version`, odataVersion.toUpperCase());
|
|
@@ -486,37 +486,35 @@ function generateHTMLFormat(output, file, odataVersion) {
|
|
|
486
486
|
if (svgIcon !== undefined) {
|
|
487
487
|
template = template.replace(`floorPlanIcon`, 'floorPlanIcon = `' + svgIcon + '`');
|
|
488
488
|
}
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
else {
|
|
493
|
-
outDir = (0, path_1.join)('dist', 'documentation', 'v4');
|
|
489
|
+
const outDir = odataVersion === 'v2' ? (0, path_1.join)('dist', 'documentation', 'v2') : (0, path_1.join)('dist', 'documentation', 'v4');
|
|
490
|
+
try {
|
|
491
|
+
await fs_1.promises.mkdir(outDir, { recursive: true });
|
|
494
492
|
}
|
|
495
|
-
|
|
496
|
-
|
|
493
|
+
catch (e) {
|
|
494
|
+
// in case rare errors occur
|
|
495
|
+
console.log(`Error: ${e.message}`);
|
|
496
|
+
return;
|
|
497
497
|
}
|
|
498
498
|
const outFile = (0, path_1.join)(outDir, odataVersion + '-' + nameFloorPlan + '.html');
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
throw err;
|
|
502
|
-
}
|
|
503
|
-
console.log(`${outFile} was successfully saved!`);
|
|
504
|
-
});
|
|
499
|
+
await fs_1.promises.writeFile(outFile, template);
|
|
500
|
+
console.log(`${outFile} was successfully saved!`);
|
|
505
501
|
}
|
|
506
502
|
}
|
|
507
|
-
function
|
|
503
|
+
async function copyStyleSheetToDocFolder() {
|
|
508
504
|
const file = 'styleDocu.css';
|
|
509
505
|
const src = (0, path_1.join)(__dirname, '..', 'scripts', 'documentation', file);
|
|
510
|
-
const
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
506
|
+
const outDir = (0, path_1.join)('dist', 'documentation');
|
|
507
|
+
const dest = (0, path_1.join)(outDir, file);
|
|
508
|
+
await fs_1.promises.mkdir(outDir, { recursive: true });
|
|
509
|
+
try {
|
|
510
|
+
// avoids EBUSY errors due to concurrent access
|
|
511
|
+
await fs_1.promises.access(dest);
|
|
512
|
+
console.log(file + ' already exists, skipping copy.');
|
|
513
|
+
}
|
|
514
|
+
catch {
|
|
515
|
+
// file does not exist, proceed to copy
|
|
516
|
+
await fs_1.promises.copyFile(src, dest);
|
|
517
|
+
console.log(file + ' has been copied!');
|
|
520
518
|
}
|
|
521
519
|
}
|
|
522
520
|
/**
|
|
@@ -525,16 +523,29 @@ function copyFileToFolder() {
|
|
|
525
523
|
* @param workbook - Excel workbook (excel4node format)
|
|
526
524
|
* @param version - OData version
|
|
527
525
|
*/
|
|
528
|
-
function writeToFile(workbook, version) {
|
|
526
|
+
async function writeToFile(workbook, version) {
|
|
529
527
|
const outDir = (0, path_1.join)('dist', 'documentation');
|
|
530
|
-
|
|
531
|
-
fs.mkdirSync(outDir);
|
|
532
|
-
}
|
|
528
|
+
await fs_1.promises.mkdir(outDir, { recursive: true });
|
|
533
529
|
const outFile = (0, path_1.join)(outDir, 'Specification' + version + '.xlsx');
|
|
534
530
|
workbook.write(outFile);
|
|
535
531
|
}
|
|
532
|
+
/**
|
|
533
|
+
* Reads a schema file, parses its contents, and builds the output array.
|
|
534
|
+
*
|
|
535
|
+
* @param directoryPath - The directory containing the schema files.
|
|
536
|
+
* @param file - The name of the schema file to process.
|
|
537
|
+
* @returns An object containing the parsed output array and the file name.
|
|
538
|
+
*/
|
|
539
|
+
async function getParsedOutput(directoryPath, file) {
|
|
540
|
+
const filePath = (0, path_1.join)(directoryPath, file);
|
|
541
|
+
const output = [filePath];
|
|
542
|
+
const data = await fs_1.promises.readFile(filePath, 'utf8');
|
|
543
|
+
const schema = JSON.parse(data);
|
|
544
|
+
parseSchema(schema, schema, output);
|
|
545
|
+
return { output, file };
|
|
546
|
+
}
|
|
536
547
|
/********************** Main ***************************/
|
|
537
|
-
function
|
|
548
|
+
async function generateDocumentation() {
|
|
538
549
|
const myArgs = process.argv.slice(2);
|
|
539
550
|
let version;
|
|
540
551
|
let format;
|
|
@@ -561,31 +572,29 @@ function generateDocmentation() {
|
|
|
561
572
|
}
|
|
562
573
|
if (directoryPath.length > 0) {
|
|
563
574
|
const workbook = new excel.Workbook();
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
return console.log(err);
|
|
567
|
-
}
|
|
568
|
-
files.forEach((file) => {
|
|
569
|
-
const filePath = (0, path_1.join)(directoryPath, file);
|
|
570
|
-
const output = [filePath];
|
|
571
|
-
const data = fs.readFileSync(filePath, 'utf8');
|
|
572
|
-
const schema = JSON.parse(data);
|
|
573
|
-
parseSchema(schema, schema, output);
|
|
574
|
-
if (format === 'excel') {
|
|
575
|
-
writeToExcel(workbook, output, file);
|
|
576
|
-
}
|
|
577
|
-
if (format === 'html') {
|
|
578
|
-
generateHTMLFormat(output, file, version);
|
|
579
|
-
}
|
|
580
|
-
});
|
|
575
|
+
try {
|
|
576
|
+
const files = await fs_1.promises.readdir(directoryPath);
|
|
581
577
|
if (format === 'excel') {
|
|
582
|
-
|
|
578
|
+
for (const file of files) {
|
|
579
|
+
const { output, file: fileName } = await getParsedOutput(directoryPath, file);
|
|
580
|
+
writeToExcel(workbook, output, fileName);
|
|
581
|
+
}
|
|
582
|
+
await writeToFile(workbook, version);
|
|
583
583
|
}
|
|
584
|
-
if (format === 'html') {
|
|
585
|
-
|
|
584
|
+
else if (format === 'html') {
|
|
585
|
+
await Promise.all(files.map(async (file) => {
|
|
586
|
+
const { output, file: fileName } = await getParsedOutput(directoryPath, file);
|
|
587
|
+
await generateHTMLFormat(output, fileName, version);
|
|
588
|
+
}));
|
|
589
|
+
await copyStyleSheetToDocFolder();
|
|
586
590
|
}
|
|
587
|
-
}
|
|
591
|
+
}
|
|
592
|
+
catch (err) {
|
|
593
|
+
console.log(err);
|
|
594
|
+
}
|
|
588
595
|
}
|
|
589
596
|
}
|
|
590
|
-
|
|
597
|
+
(async () => {
|
|
598
|
+
await generateDocumentation();
|
|
599
|
+
})();
|
|
591
600
|
//# sourceMappingURL=extractDocu.js.map
|