@sap/ux-specification 1.124.6 → 1.124.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 (33) hide show
  1. package/CHANGELOG.md +31 -0
  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-ObjectPage.html +2 -2
  6. package/dist/documentation/v2/v2-OverviewPage.html +2 -2
  7. package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
  8. package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
  9. package/dist/documentation/v4/v4-FreestylePage.html +2 -2
  10. package/dist/documentation/v4/v4-ListReport.html +2 -2
  11. package/dist/documentation/v4/v4-ObjectPage.html +2 -2
  12. package/dist/index-min.js +22 -22
  13. package/dist/index-min.js.map +4 -4
  14. package/dist/schemas/v4/BuildingBlocksConfig.json +165 -121
  15. package/dist/specification/package.json +7 -9
  16. package/dist/specification/scripts/extractDocu.js +59 -74
  17. package/dist/specification/scripts/extractDocu.js.map +1 -1
  18. package/dist/specification/scripts/to-json-schema.js +17 -7
  19. package/dist/specification/scripts/to-json-schema.js.map +1 -1
  20. package/dist/specification/src/api.js +2 -2
  21. package/dist/specification/src/sync/common/distTagEvaluator.js +17 -7
  22. package/dist/specification/src/sync/common/distTagEvaluator.js.map +1 -1
  23. package/dist/specification/src/sync/common/flexUtils.js +17 -7
  24. package/dist/specification/src/sync/common/flexUtils.js.map +1 -1
  25. package/dist/specification/src/sync/i18n.js +17 -7
  26. package/dist/specification/src/sync/i18n.js.map +1 -1
  27. package/dist/specification/src/sync/v2/export/factory.js +17 -7
  28. package/dist/specification/src/sync/v2/export/factory.js.map +1 -1
  29. package/dist/specification/src/sync/v4/export/factory.js +17 -7
  30. package/dist/specification/src/sync/v4/export/factory.js.map +1 -1
  31. package/dist/types/src/index.js +17 -7
  32. package/dist/types/src/index.js.map +1 -1
  33. package/package.json +7 -9
@@ -26,6 +26,116 @@
26
26
  },
27
27
  "additionalProperties": false,
28
28
  "definitions": {
29
+ "sap.fe.macros.Chart": {
30
+ "description": "Building block used to create a chart based on the metadata provided by OData V4.\n\nUsually, a contextPath and metaPath is expected.\nUsage example:\n\n<macros:Chart id=\"MyChart\" contextPath=\"/RootEntity\" metaPath=\"@com.sap.vocabularies.UI.v1.Chart\" />\n\n",
31
+ "isViewNode": true,
32
+ "type": "object",
33
+ "properties": {
34
+ "contextPath": {
35
+ "type": "string",
36
+ "description": "Metadata path to the entitySet or navigationProperty",
37
+ "artifactType": "XMLProperty",
38
+ "metadata": {
39
+ "type": "Property"
40
+ }
41
+ },
42
+ "filterBar": {
43
+ "type": "string",
44
+ "description": "Id of the FilterBar building block associated with the chart.",
45
+ "artifactType": "XMLProperty",
46
+ "metadata": {
47
+ "type": "Property"
48
+ }
49
+ },
50
+ "header": {
51
+ "type": "string",
52
+ "description": "Specifies the header text that is shown in the chart",
53
+ "artifactType": "XMLProperty",
54
+ "metadata": {
55
+ "type": "Property"
56
+ },
57
+ "i18nClassification": "HED: Header of the chart"
58
+ },
59
+ "headerVisible": {
60
+ "type": "boolean",
61
+ "description": "Controls if the header text should be shown or not",
62
+ "artifactType": "XMLProperty",
63
+ "metadata": {
64
+ "type": "Property"
65
+ }
66
+ },
67
+ "metaPath": {
68
+ "type": "string",
69
+ "description": "Metadata path to the presentation context (UI.Chart with or without a qualifier)",
70
+ "artifactType": "XMLProperty",
71
+ "metadata": {
72
+ "type": "Property"
73
+ }
74
+ },
75
+ "personalization": {
76
+ "type": "string",
77
+ "description": "Controls which options should be enabled for the chart personalization dialog.\nIf it is set to `true`, all possible options for this kind of chart are enabled.\nIf it is set to `false`, personalization is disabled.\n\nYou can also provide a more granular control for the personalization by providing a comma-separated list with the options you want to be available.\nAvailable options are:\n- Sort\n- Type\n- Item\n- Filter\n",
78
+ "artifactType": "XMLProperty",
79
+ "metadata": {
80
+ "type": "Property"
81
+ }
82
+ },
83
+ "selectionMode": {
84
+ "type": "string",
85
+ "description": "Defines the selection mode to be used by the chart.\nAllowed values are `None`, `Single` or `Multiple`\n",
86
+ "artifactType": "XMLProperty",
87
+ "metadata": {
88
+ "type": "Property"
89
+ },
90
+ "enum": [
91
+ "None",
92
+ "Single",
93
+ "Multiple"
94
+ ]
95
+ },
96
+ "variantManagement": {
97
+ "type": "string",
98
+ "description": "Controls the kind of variant management that should be enabled for the chart.\nAllowed value is `Control`.\nIf set with value `Control`, a variant management control is seen within the chart and the chart is linked to this.\nIf not set with any value, variant management control is not available for this chart.\n",
99
+ "artifactType": "XMLProperty",
100
+ "metadata": {
101
+ "type": "Property"
102
+ },
103
+ "const": "Control"
104
+ },
105
+ "id": {
106
+ "type": "string",
107
+ "description": "Unique id of control",
108
+ "artifactType": "XMLProperty",
109
+ "metadata": {
110
+ "type": "Property"
111
+ }
112
+ },
113
+ "actions": {
114
+ "type": "object",
115
+ "additionalProperties": {
116
+ "$ref": "#/definitions/sap.fe.macros.chart.Action"
117
+ },
118
+ "isViewNode": true,
119
+ "metadata": {
120
+ "path": [],
121
+ "type": "Aggregation"
122
+ }
123
+ },
124
+ "selectionChange": {
125
+ "type": "string",
126
+ "description": "An event triggered when chart selections are changed. The event contains information about the data selected/deselected and the Boolean flag that indicates whether data is selected or deselected.",
127
+ "artifactType": "XMLProperty",
128
+ "metadata": {
129
+ "type": "Event"
130
+ }
131
+ }
132
+ },
133
+ "additionalProperties": false,
134
+ "metadata": {
135
+ "path": [],
136
+ "type": "Control"
137
+ }
138
+ },
29
139
  "sap.fe.macros.CollectionBindingInfo": {
30
140
  "description": "API to add parameters to the collection binding infos.",
31
141
  "isViewNode": true,
@@ -544,116 +654,6 @@
544
654
  "type": "Control"
545
655
  }
546
656
  },
547
- "sap.fe.macros.Chart": {
548
- "description": "Building block used to create a chart based on the metadata provided by OData V4.\n\nUsually, a contextPath and metaPath is expected.\nUsage example:\n\n<macros:Chart id=\"Mychart\" contextPath=\"/RootEntity\" metaPath=\"@com.sap.vocabularies.UI.v1.Chart\" />\n\n",
549
- "isViewNode": true,
550
- "type": "object",
551
- "properties": {
552
- "contextPath": {
553
- "type": "string",
554
- "description": "Metadata path to the entitySet or navigationProperty",
555
- "artifactType": "XMLProperty",
556
- "metadata": {
557
- "type": "Property"
558
- }
559
- },
560
- "filterBar": {
561
- "type": "string",
562
- "description": "Id of the FilterBar building block associated with the chart.",
563
- "artifactType": "XMLProperty",
564
- "metadata": {
565
- "type": "Property"
566
- }
567
- },
568
- "header": {
569
- "type": "string",
570
- "description": "Specifies the header text that is shown in the chart",
571
- "artifactType": "XMLProperty",
572
- "metadata": {
573
- "type": "Property"
574
- },
575
- "i18nClassification": "HED: Header of the chart"
576
- },
577
- "headerVisible": {
578
- "type": "boolean",
579
- "description": "Controls if the header text should be shown or not",
580
- "artifactType": "XMLProperty",
581
- "metadata": {
582
- "type": "Property"
583
- }
584
- },
585
- "metaPath": {
586
- "type": "string",
587
- "description": "Metadata path to the presentation context (UI.Chart with or without a qualifier)",
588
- "artifactType": "XMLProperty",
589
- "metadata": {
590
- "type": "Property"
591
- }
592
- },
593
- "personalization": {
594
- "type": "string",
595
- "description": "Controls which options should be enabled for the chart personalization dialog.\nIf it is set to `true`, all possible options for this kind of chart are enabled.\nIf it is set to `false`, personalization is disabled.\n\nYou can also provide a more granular control for the personalization by providing a comma-separated list with the options you want to be available.\nAvailable options are:\n- Sort\n- Type\n- Item\n- Filter\n",
596
- "artifactType": "XMLProperty",
597
- "metadata": {
598
- "type": "Property"
599
- }
600
- },
601
- "selectionMode": {
602
- "type": "string",
603
- "description": "Defines the selection mode to be used by the chart.\nAllowed values are `None`, `Single` or `Multiple`\n",
604
- "artifactType": "XMLProperty",
605
- "metadata": {
606
- "type": "Property"
607
- },
608
- "enum": [
609
- "None",
610
- "Single",
611
- "Multiple"
612
- ]
613
- },
614
- "variantManagement": {
615
- "type": "string",
616
- "description": "Controls the kind of variant management that should be enabled for the chart.\nAllowed value is `Control`.\nIf set with value `Control`, a variant management control is seen within the chart and the chart is linked to this.\nIf not set with any value, variant management control is not available for this chart.\n",
617
- "artifactType": "XMLProperty",
618
- "metadata": {
619
- "type": "Property"
620
- },
621
- "const": "Control"
622
- },
623
- "id": {
624
- "type": "string",
625
- "description": "Unique id of control",
626
- "artifactType": "XMLProperty",
627
- "metadata": {
628
- "type": "Property"
629
- }
630
- },
631
- "actions": {
632
- "type": "object",
633
- "additionalProperties": {
634
- "$ref": "#/definitions/sap.fe.macros.chart.Action"
635
- },
636
- "isViewNode": true,
637
- "metadata": {
638
- "path": [],
639
- "type": "Aggregation"
640
- }
641
- },
642
- "selectionChange": {
643
- "type": "string",
644
- "description": "An event triggered when chart selections are changed. The event contains information about the data selected/deselected and the Boolean flag that indicates whether data is selected or deselected.",
645
- "artifactType": "XMLProperty",
646
- "metadata": {
647
- "type": "Event"
648
- }
649
- }
650
- },
651
- "additionalProperties": false,
652
- "metadata": {
653
- "path": [],
654
- "type": "Control"
655
- }
656
- },
657
657
  "sap.fe.macros.controls.BuildingBlockObjectProperty": {
658
658
  "description": "Base class for building block complex object properties that can be serialized to XML.",
659
659
  "isViewNode": true,
@@ -1429,9 +1429,10 @@
1429
1429
  }
1430
1430
  },
1431
1431
  "customToolbarPriority": {
1432
- "type": "string",
1433
- "description": "The priority of the group in the custom toolbar.",
1432
+ "$ref": "#/definitions/int",
1433
+ "description": "customToolbarPriority",
1434
1434
  "artifactType": "XMLProperty",
1435
+ "isViewNode": true,
1435
1436
  "metadata": {
1436
1437
  "type": "Property"
1437
1438
  }
@@ -1445,9 +1446,19 @@
1445
1446
  }
1446
1447
  },
1447
1448
  "priority": {
1448
- "type": "string",
1449
- "description": "The priority of the group.",
1449
+ "$ref": "#/definitions/int",
1450
+ "description": "priority",
1450
1451
  "artifactType": "XMLProperty",
1452
+ "isViewNode": true,
1453
+ "metadata": {
1454
+ "type": "Property"
1455
+ }
1456
+ },
1457
+ "row": {
1458
+ "$ref": "#/definitions/int",
1459
+ "description": "row",
1460
+ "artifactType": "XMLProperty",
1461
+ "isViewNode": true,
1451
1462
  "metadata": {
1452
1463
  "type": "Property"
1453
1464
  }
@@ -2148,7 +2159,7 @@
2148
2159
  },
2149
2160
  "beforeRebindTable": {
2150
2161
  "type": "string",
2151
- "description": "An event is triggered when the table is about to be rebinded. This event contains information about the binding info.\nYou can use this event to add or read: Filters, Sorters.\nYou can use this event to read the binding info.\nYou can use this event to add: Selects.\n",
2162
+ "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",
2152
2163
  "artifactType": "XMLProperty",
2153
2164
  "metadata": {
2154
2165
  "type": "Event"
@@ -2457,7 +2468,7 @@
2457
2468
  },
2458
2469
  "beforeRebindTable": {
2459
2470
  "type": "string",
2460
- "description": "An event is triggered when the table is about to be rebinded. This event contains information about the binding info.\nYou can use this event to add or read: Filters, Sorters.\nYou can use this event to read the binding info.\nYou can use this event to add: Selects.\n",
2471
+ "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",
2461
2472
  "artifactType": "XMLProperty",
2462
2473
  "metadata": {
2463
2474
  "type": "Event"
@@ -2499,6 +2510,14 @@
2499
2510
  "type": "Property"
2500
2511
  }
2501
2512
  },
2513
+ "creationFields": {
2514
+ "type": "string",
2515
+ "description": "Defines the list of properties that will be displayed in the creation dialog, when the creation mode is set to 'CreationDialog'.\nThe value is a comma-separated list of property names.\n",
2516
+ "artifactType": "XMLProperty",
2517
+ "metadata": {
2518
+ "type": "Property"
2519
+ }
2520
+ },
2502
2521
  "inlineCreationRowsHiddenInEditMode": {
2503
2522
  "type": "boolean",
2504
2523
  "description": "Specifies if the new entry should be hidden in case of creationMode 'InlineCreationRows'. This only applies to responsive tables.\nThe default value is 'false'\n",
@@ -2509,7 +2528,7 @@
2509
2528
  },
2510
2529
  "name": {
2511
2530
  "type": "string",
2512
- "description": "Defines the creation mode to be used by the table.\nAllowed values are `NewPage`, `Inline`, `InlineCreationsRows` or `External`.\n\nNewPage - the created document is shown in a new page, depending on whether metadata 'Sync', 'Async' or 'Deferred' is used\nInline - The creation is done inline\nInlineCreationsRows - The creation is done inline with an empty row\nExternal - The creation is done in a different application specified via the parameter 'outbound'\nIf not set with any value:\nif navigation is defined, the default value is 'NewPage'. Otherwise it is 'Inline'.\n",
2531
+ "description": "Defines the creation mode to be used by the table.\nAllowed values are `NewPage`, `Inline`, `InlineCreationsRows`, `External` or `CreationDialog`.\n\nNewPage - the created document is shown in a new page, depending on whether metadata 'Sync', 'Async' or 'Deferred' is used\nInline - The creation is done inline\nInlineCreationsRows - The creation is done inline with an empty row\nExternal - The creation is done in a different application specified via the parameter 'outbound'\nCreationDialog - the creation is done in the table, with a dialog allowing to specify some initial property values (the properties are listed in `creationFields`).\n\nIf not set with any value:\nif navigation is defined, the default value is 'NewPage'. Otherwise it is 'Inline'.\n",
2513
2532
  "artifactType": "XMLProperty",
2514
2533
  "metadata": {
2515
2534
  "type": "Property"
@@ -2844,7 +2863,7 @@
2844
2863
  },
2845
2864
  "beforeRebindTable": {
2846
2865
  "type": "string",
2847
- "description": "An event is triggered when the table is about to be rebinded. This event contains information about the binding info.\nYou can use this event to add or read: Filters, Sorters.\nYou can use this event to read the binding info.\nYou can use this event to add: Selects.\n",
2866
+ "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",
2848
2867
  "artifactType": "XMLProperty",
2849
2868
  "metadata": {
2850
2869
  "type": "Event"
@@ -3172,7 +3191,7 @@
3172
3191
  },
3173
3192
  "beforeRebindTable": {
3174
3193
  "type": "string",
3175
- "description": "An event is triggered when the table is about to be rebinded. This event contains information about the binding info.\nYou can use this event to add or read: Filters, Sorters.\nYou can use this event to read the binding info.\nYou can use this event to add: Selects.\n",
3194
+ "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",
3176
3195
  "artifactType": "XMLProperty",
3177
3196
  "metadata": {
3178
3197
  "type": "Event"
@@ -3214,6 +3233,14 @@
3214
3233
  "type": "Property"
3215
3234
  }
3216
3235
  },
3236
+ "creationFields": {
3237
+ "type": "string",
3238
+ "description": "Defines the list of properties that will be displayed in the creation dialog, when the creation mode is set to 'CreationDialog'.\nThe value is a comma-separated list of property names.\n",
3239
+ "artifactType": "XMLProperty",
3240
+ "metadata": {
3241
+ "type": "Property"
3242
+ }
3243
+ },
3217
3244
  "isCreateEnabled": {
3218
3245
  "type": "string",
3219
3246
  "description": "Defines the extension point to control the enablement of the Create button or Create Menu buttons.\n",
@@ -3224,7 +3251,7 @@
3224
3251
  },
3225
3252
  "name": {
3226
3253
  "type": "string",
3227
- "description": "Defines the creation mode to be used by the tree table.\nAllowed values are `NewPage` or `Inline`.\n\nNewPage - the created document is shown in a new page, depending on whether metadata 'Sync', 'Async' or 'Deferred' is used.\nInline - the creation is done inline.\n\nIf not set with any value:\nif navigation is defined, the default value is 'NewPage'. Otherwise it is 'Inline'.\n",
3254
+ "description": "Defines the creation mode to be used by the tree table.\nAllowed values are `NewPage`, `Inline` or `CreationDialog`.\n\nNewPage - the created document is shown in a new page, depending on whether metadata 'Sync', 'Async' or 'Deferred' is used.\nInline - the creation is done inline.\nCreationDialog - the creation is done in the table, with a dialog allowing to specify some initial property values (the properties are listed in `creationFields`).\n\nIf not set with any value:\nif navigation is defined, the default value is 'NewPage'. Otherwise it is 'Inline'.\n",
3228
3255
  "artifactType": "XMLProperty",
3229
3256
  "metadata": {
3230
3257
  "type": "Property"
@@ -3237,7 +3264,7 @@
3237
3264
  },
3238
3265
  "nodeType": {
3239
3266
  "type": "object",
3240
- "description": "Defines the nodes to be added on the custom create.\nThis object must have the following properties:\npropertyName: the name of the property on the page entity set used to categorize the node type to be created within the hierarchy\nvalues: an array of key and label that define a value of the property defined by the propertyName key and its label\n",
3267
+ "description": "Defines the nodes to be added on the custom create.\nThis object must have the following properties:\npropertyName: the name of the property on the page entity set used to categorize the node type to be created within the hierarchy\nvalues: an array of key, label and an optional creationFields that define a value of the property defined by the propertyName key, its label, and the specific fields to be shown in the creation dialog.\n",
3241
3268
  "artifactType": "XMLProperty",
3242
3269
  "metadata": {
3243
3270
  "type": "Property"
@@ -3328,6 +3355,23 @@
3328
3355
  "isViewNode": true,
3329
3356
  "type": "object",
3330
3357
  "properties": {
3358
+ "dateTimePattern": {
3359
+ "type": "string",
3360
+ "description": "Property for defining a custom pattern for the date, time, or dateTime format. \nIf there is a dateTimePattern defined dateTimeStyle is ignored.\n",
3361
+ "artifactType": "XMLProperty",
3362
+ "metadata": {
3363
+ "type": "Property"
3364
+ }
3365
+ },
3366
+ "dateTimeStyle": {
3367
+ "$ref": "#/definitions/sap.fe.core.templating.UIFormatters.DateTimeStyle",
3368
+ "description": "dateTimeStyle",
3369
+ "artifactType": "XMLProperty",
3370
+ "isViewNode": true,
3371
+ "metadata": {
3372
+ "type": "Property"
3373
+ }
3374
+ },
3331
3375
  "displayMode": {
3332
3376
  "type": "string",
3333
3377
  "description": "Defines how the field value and associated text will be displayed together.\n\nAllowed values are \"Value\", \"Description\", \"DescriptionValue\" and \"ValueDescription\"\n",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap/ux-specification",
3
- "version": "1.124.6",
3
+ "version": "1.124.7",
4
4
  "displayName": "SAP Fiori tools - Specification",
5
5
  "description": "SAP Fiori tools - Specification",
6
6
  "files": [
@@ -34,8 +34,6 @@
34
34
  "docuV4": "ts-node ./scripts/extractDocu.ts --version=v4 format=excel",
35
35
  "htmlV2": "ts-node ./scripts/extractDocu.ts --version=v2 --format=html",
36
36
  "htmlV4": "ts-node ./scripts/extractDocu.ts --version=v4 --format=html",
37
- "iXiaSoftV2": "ts-node ./scripts/extractDocu.ts --version=v2 --format=iXiaSoft",
38
- "iXiaSoftV4": "ts-node ./scripts/extractDocu.ts --version=v4 --format=iXiaSoft",
39
37
  "lint": "eslint . --ext .ts",
40
38
  "lint:summary": "eslint . --ext .ts -f summary",
41
39
  "lint:fix": "eslint . --ext .ts --fix",
@@ -51,13 +49,13 @@
51
49
  "publisher": "SAPSE",
52
50
  "license": "SEE LICENSE IN LICENSE",
53
51
  "dependencies": {
54
- "@sap-ux/fe-fpm-writer": "0.31.16",
55
- "@sap-ux/vocabularies-types": "0.11.6"
52
+ "@sap-ux/fe-fpm-writer": "0.31.21",
53
+ "@sap-ux/vocabularies-types": "0.12.0"
56
54
  },
57
55
  "devDependencies": {
58
- "@sap-ux/annotation-converter": "0.9.9",
56
+ "@sap-ux/annotation-converter": "0.9.11",
59
57
  "@sap-ux/edmx-parser": "0.8.2",
60
- "@sap/ux-specification-types": "1.124.6",
58
+ "@sap/ux-specification-types": "1.124.7",
61
59
  "@sapui5/types": "latest-1.124",
62
60
  "@types/d3": "7.4.3",
63
61
  "@types/jquery": "3.5.31",
@@ -65,13 +63,13 @@
65
63
  "@ui5/flexibility-utils": "0.1.3",
66
64
  "@xml-tools/ast": "5.0.5",
67
65
  "@xml-tools/parser": "1.0.11",
68
- "axios": "1.7.7",
66
+ "axios": "1.7.9",
69
67
  "copyfiles": "2.4.1",
70
68
  "d3": "7.9.0",
71
69
  "deepmerge": "4.3.1",
72
70
  "ejs": "3.1.10",
73
71
  "excel4node": "1.8.2",
74
- "i18next": "23.16.2",
72
+ "i18next": "23.16.8",
75
73
  "jquery": "3.7.1",
76
74
  "jsdom": "25.0.1",
77
75
  "lodash.unset": "4.5.2",
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  /**
27
37
  * This script extracts all existing documentation (i.e. descriptions) from the generic schemas of a certain OData version (V2 or V4).
@@ -69,18 +79,18 @@ function processElement(schema, subSchema, property, output, definition) {
69
79
  `TYPE_${element['type']}` +
70
80
  additionalMetadata +
71
81
  ';' +
72
- element['description'] +
82
+ `DESC_${element['description']}` +
73
83
  ';' +
74
- element['descriptionSrcURL']);
84
+ `URL_${element['descriptionSrcURL']}`);
75
85
  }
76
86
  else {
77
87
  output.push(definition +
78
88
  ';' +
79
89
  `TYPE_${element['type']}` +
80
90
  ';' +
81
- element['description'] +
91
+ `DESC_${element['description']}` +
82
92
  ';' +
83
- element['descriptionSrcURL']);
93
+ `URL_${element['descriptionSrcURL']}`);
84
94
  }
85
95
  }
86
96
  // Ignored properties and also case to avoid infinitive loop
@@ -225,12 +235,18 @@ function parseSchema(schema, subSchema, output, definition, description, additio
225
235
  `TYPE_${[subSchema['enum'].join('|')]}` +
226
236
  additionalMetadata +
227
237
  ';' +
228
- description +
238
+ `DESC_${description}` +
229
239
  ';' +
230
- descriptionSrcUrl);
240
+ `URL_${descriptionSrcUrl}`);
231
241
  }
232
242
  else {
233
- output.push(definition + ';' + `TYPE_${[subSchema['enum'].join('|')]}` + ';' + description + ';' + descriptionSrcUrl);
243
+ output.push(definition +
244
+ ';' +
245
+ `TYPE_${[subSchema['enum'].join('|')]}` +
246
+ ';' +
247
+ `DESC_${description}` +
248
+ ';' +
249
+ `URL_${descriptionSrcUrl}`);
234
250
  }
235
251
  }
236
252
  else if (subSchema['type'] && description) {
@@ -240,12 +256,18 @@ function parseSchema(schema, subSchema, output, definition, description, additio
240
256
  `TYPE_${subSchema['type']}` +
241
257
  additionalMetadata +
242
258
  ';' +
243
- description +
259
+ `DESC_${description}` +
244
260
  ';' +
245
- descriptionSrcUrl);
261
+ `URL_${descriptionSrcUrl}`);
246
262
  }
247
263
  else {
248
- output.push(definition + ';' + `TYPE_${subSchema['type']}` + ';' + description + ';' + descriptionSrcUrl);
264
+ output.push(definition +
265
+ ';' +
266
+ `TYPE_${subSchema['type']}` +
267
+ ';' +
268
+ `DESC_${description}` +
269
+ ';' +
270
+ `URL_${descriptionSrcUrl}`);
249
271
  }
250
272
  }
251
273
  }
@@ -273,7 +295,15 @@ function writeToExcel(workbook, output, file) {
273
295
  const element = output[rowIndex];
274
296
  const cellArray = element.split(';');
275
297
  for (let cellIndex = 0; cellIndex < cellArray.length; cellIndex++) {
276
- const cell = cellArray[cellIndex];
298
+ let cell = cellArray[cellIndex];
299
+ // skip writing undefined urls into sheet
300
+ if (cell.includes('URL_undefined')) {
301
+ continue;
302
+ }
303
+ // remove the prefix for better readability
304
+ if (cell.includes('DESC_') || cell.includes('URL_')) {
305
+ cell = cell.split('_')[1];
306
+ }
277
307
  worksheet
278
308
  .cell(rowIndex, cellIndex + 1)
279
309
  .string(cell)
@@ -281,55 +311,6 @@ function writeToExcel(workbook, output, file) {
281
311
  }
282
312
  }
283
313
  }
284
- function generateIxiaSoftFormat(output, file, version) {
285
- //filter output to remove duplicated lines due to different table types (anyOf)
286
- output = output.filter((e, i, a) => a.indexOf(e) === i);
287
- let iXiaFormat = `<simpletable frame="all" relcolwidth="1* 1*" id="simpletable_uqj_klr_jlb">
288
- <sthead>
289
- <stentry> Settings </stentry>
290
- <stentry> Description </stentry>
291
- </sthead>
292
- `;
293
- const fileName = file.split('.')[0];
294
- for (let rowIndex = 1; rowIndex < output.length; rowIndex++) {
295
- const element = output[rowIndex];
296
- const cellArray = element.split(';');
297
- let setting = '{';
298
- iXiaFormat = iXiaFormat + `\t<strow>\n`;
299
- for (let cellIndex = 0; cellIndex < cellArray.length - 1; cellIndex++) {
300
- let cell = cellArray[cellIndex];
301
- if (['0', '1'].includes(cell)) {
302
- cell = 'variantKey' + cell;
303
- }
304
- if (cellArray[cellIndex + 1].includes('TYPE')) {
305
- setting = setting + `"${cell}": ${cellArray[cellIndex + 1].split('_')[1]}`;
306
- let noOfOpeningBraces = setting.match(/{/g).length;
307
- while (noOfOpeningBraces > 0) {
308
- setting = setting + '}';
309
- noOfOpeningBraces--;
310
- }
311
- iXiaFormat = iXiaFormat + `\t\t<stentry> ${setting} </stentry>\n`;
312
- }
313
- else {
314
- setting = setting + `"${cell}": {`;
315
- }
316
- }
317
- // add description to the table
318
- iXiaFormat = iXiaFormat + `\t\t<stentry> ${cellArray[cellArray.length - 1]} </stentry>\n\t</strow>\n`;
319
- }
320
- iXiaFormat = iXiaFormat + `</simpletable>`;
321
- const outDir = (0, path_1.join)('dist', 'documentation');
322
- if (!fs.existsSync(outDir)) {
323
- fs.mkdirSync(outDir);
324
- }
325
- const outFile = (0, path_1.join)(outDir, 'Specification' + version + fileName + '.txt');
326
- fs.writeFile(outFile, iXiaFormat, (err) => {
327
- if (err) {
328
- throw err;
329
- }
330
- console.log(`${outFile} was succesfully saved!`);
331
- });
332
- }
333
314
  function createTreeData(output, floorPlan, odataVersion, specVersion) {
334
315
  let root;
335
316
  const treeData = {
@@ -348,7 +329,10 @@ function createTreeData(output, floorPlan, odataVersion, specVersion) {
348
329
  else if (string.includes('CONTROL_')) {
349
330
  return 'control';
350
331
  }
351
- else {
332
+ else if (string.includes('URL_')) {
333
+ return 'url';
334
+ }
335
+ else if (string.includes('DESC_')) {
352
336
  return 'description';
353
337
  }
354
338
  }
@@ -356,7 +340,10 @@ function createTreeData(output, floorPlan, odataVersion, specVersion) {
356
340
  if (element.includes('TYPE_')) {
357
341
  root.type = element.split('_')[1];
358
342
  for (let i = index + 1; i < elementsArray.length; i++) {
359
- const match = find(elementsArray[i]);
343
+ let match;
344
+ if (elementsArray[i] !== '') {
345
+ match = find(elementsArray[i]);
346
+ }
360
347
  switch (match) {
361
348
  case 'artifact':
362
349
  if (elementsArray[i].split('_')[1] === 'FlexChange') {
@@ -369,8 +356,10 @@ function createTreeData(output, floorPlan, odataVersion, specVersion) {
369
356
  case 'control':
370
357
  root.control = elementsArray[i].split('_')[1];
371
358
  break;
359
+ case 'url':
360
+ break;
372
361
  default:
373
- root.description = elementsArray[i];
362
+ root.description = elementsArray[i].split('_')[1];
374
363
  }
375
364
  }
376
365
  return false;
@@ -538,13 +527,9 @@ function generateDocmentation() {
538
527
  const data = fs.readFileSync(filePath, 'utf8');
539
528
  const schema = JSON.parse(data);
540
529
  parseSchema(schema, schema, output);
541
- //console.log(output);
542
530
  if (format === 'excel') {
543
531
  writeToExcel(workbook, output, file);
544
532
  }
545
- if (format === 'iXiaSoft') {
546
- generateIxiaSoftFormat(output, file, version);
547
- }
548
533
  if (format === 'html') {
549
534
  generateHTMLFormat(output, file, version);
550
535
  }