@sap/ux-specification 1.90.10 → 1.90.14

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 (170) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/README.md +4 -4
  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-AnalyticalListPage.html +1 -1
  9. package/dist/documentation/v4/v4-ApplicationV4.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 +87 -12
  14. package/dist/schemas/v2/ApplicationV2.json +2 -0
  15. package/dist/schemas/v2/ListReportConfig.json +86 -11
  16. package/dist/schemas/v2/ObjectPageConfig.json +319 -96
  17. package/dist/schemas/v2/OverviewPageConfig.json +14 -34
  18. package/dist/schemas/v4/ApplicationV4.json +2 -0
  19. package/dist/schemas/v4/ObjectPageConfig.json +35 -2
  20. package/dist/specification/v2/index-min.js +1 -1
  21. package/dist/src/apiTypes.d.ts +8 -0
  22. package/dist/src/specification/v2/ApplicationV2.d.ts +2 -0
  23. package/dist/src/specification/v2/controls/AnalyticalListPageChart.d.ts +1 -1
  24. package/dist/src/specification/v2/controls/Card.d.ts +9 -9
  25. package/dist/src/specification/v2/controls/Card.js.map +1 -1
  26. package/dist/src/specification/v2/controls/Field.d.ts +10 -0
  27. package/dist/src/specification/v2/controls/{DataField.js → Field.js} +1 -1
  28. package/dist/src/specification/v2/controls/Field.js.map +1 -0
  29. package/dist/src/specification/v2/controls/FormAction.d.ts +43 -0
  30. package/dist/src/specification/v2/controls/FormAction.js +20 -0
  31. package/dist/src/specification/v2/controls/FormAction.js.map +1 -0
  32. package/dist/src/specification/v2/controls/ObjectPageChart.d.ts +1 -1
  33. package/dist/src/specification/v2/controls/ObjectPageFooter.d.ts +11 -0
  34. package/dist/src/specification/v2/controls/ObjectPageFooter.js +3 -0
  35. package/dist/src/specification/v2/controls/ObjectPageFooter.js.map +1 -0
  36. package/dist/src/specification/v2/controls/ObjectPageForm.d.ts +4 -5
  37. package/dist/src/specification/v2/controls/ObjectPageHeaderAction.d.ts +21 -5
  38. package/dist/src/specification/v2/controls/ObjectPageHeaderAction.js +0 -5
  39. package/dist/src/specification/v2/controls/ObjectPageHeaderAction.js.map +1 -1
  40. package/dist/src/specification/v2/controls/ObjectPageSection.d.ts +25 -15
  41. package/dist/src/specification/v2/controls/ObjectPageSection.js.map +1 -1
  42. package/dist/src/specification/v2/controls/ObjectPageTable.d.ts +12 -5
  43. package/dist/src/specification/v2/controls/ObjectPageTable.js.map +1 -1
  44. package/dist/src/specification/v2/controls/Table.d.ts +4 -3
  45. package/dist/src/specification/v2/controls/ToolBar.d.ts +2 -6
  46. package/dist/src/specification/v2/controls/index.d.ts +4 -1
  47. package/dist/src/specification/v2/controls/index.js +1 -1
  48. package/dist/src/specification/v2/controls/index.js.map +1 -1
  49. package/dist/src/specification/v2/pages/ObjectPageConfig.d.ts +2 -1
  50. package/dist/src/specification/v4/ApplicationV4.d.ts +2 -0
  51. package/dist/src/specification/v4/controls/ObjectPageFooter.d.ts +11 -0
  52. package/dist/src/specification/v4/controls/ObjectPageFooter.js +3 -0
  53. package/dist/src/specification/v4/controls/ObjectPageFooter.js.map +1 -0
  54. package/dist/src/specification/v4/controls/ObjectPageHeader.d.ts +6 -1
  55. package/dist/src/specification/v4/controls/index.d.ts +1 -0
  56. package/dist/src/specification/v4/pages/ObjectPageConfig.d.ts +2 -1
  57. package/dist/src/specification/v4/webapp/manifest/sapUi5.d.ts +2 -1
  58. package/dist/src/specification/v4/webapp/manifest/sapUi5.js.map +1 -1
  59. package/dist/src/sync/common/decoration/control.d.ts +8 -1
  60. package/dist/src/sync/common/decoration/control.js +58 -17
  61. package/dist/src/sync/common/decoration/control.js.map +1 -1
  62. package/dist/src/sync/common/generate/objectPage.d.ts +41 -1
  63. package/dist/src/sync/common/generate/objectPage.js +214 -25
  64. package/dist/src/sync/common/generate/objectPage.js.map +1 -1
  65. package/dist/src/sync/common/import/utils.d.ts +6 -0
  66. package/dist/src/sync/common/import/utils.js +21 -0
  67. package/dist/src/sync/common/import/utils.js.map +1 -1
  68. package/dist/src/sync/common/importProject.js +64 -62
  69. package/dist/src/sync/common/importProject.js.map +1 -1
  70. package/dist/src/sync/common/types.d.ts +9 -2
  71. package/dist/src/sync/common/types.js +8 -0
  72. package/dist/src/sync/common/types.js.map +1 -1
  73. package/dist/src/sync/common/utils.d.ts +4 -3
  74. package/dist/src/sync/common/utils.js +86 -91
  75. package/dist/src/sync/common/utils.js.map +1 -1
  76. package/dist/src/sync/v2/application.d.ts +1 -0
  77. package/dist/src/sync/v2/application.js +3 -0
  78. package/dist/src/sync/v2/application.js.map +1 -1
  79. package/dist/src/sync/v2/export/controls/Card.d.ts +4 -3
  80. package/dist/src/sync/v2/export/controls/Card.js +16 -9
  81. package/dist/src/sync/v2/export/controls/Card.js.map +1 -1
  82. package/dist/src/sync/v2/export/controls/Field.d.ts +4 -0
  83. package/dist/src/sync/v2/export/controls/{DataField.js → Field.js} +7 -7
  84. package/dist/src/sync/v2/export/controls/Field.js.map +1 -0
  85. package/dist/src/sync/v2/export/controls/FilterBar.d.ts +1 -2
  86. package/dist/src/sync/v2/export/controls/FilterBar.js +7 -9
  87. package/dist/src/sync/v2/export/controls/FilterBar.js.map +1 -1
  88. package/dist/src/sync/v2/export/controls/FormAction.d.ts +15 -0
  89. package/dist/src/sync/v2/export/controls/FormAction.js +133 -0
  90. package/dist/src/sync/v2/export/controls/FormAction.js.map +1 -0
  91. package/dist/src/sync/v2/export/controls/Fragment.js +5 -6
  92. package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
  93. package/dist/src/sync/v2/export/controls/ObjectPageChart.d.ts +4 -1
  94. package/dist/src/sync/v2/export/controls/ObjectPageChart.js +13 -0
  95. package/dist/src/sync/v2/export/controls/ObjectPageChart.js.map +1 -1
  96. package/dist/src/sync/v2/export/controls/ObjectPageHeader.js +1 -1
  97. package/dist/src/sync/v2/export/controls/ObjectPageHeader.js.map +1 -1
  98. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +6 -2
  99. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js +43 -4
  100. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +1 -1
  101. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +32 -0
  102. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +144 -0
  103. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -0
  104. package/dist/src/sync/v2/export/controls/ObjectPageTable.d.ts +5 -4
  105. package/dist/src/sync/v2/export/controls/ObjectPageTable.js +19 -7
  106. package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
  107. package/dist/src/sync/v2/export/controls/Table.d.ts +12 -4
  108. package/dist/src/sync/v2/export/controls/Table.js +87 -40
  109. package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
  110. package/dist/src/sync/v2/export/controls/TableColumn.js +1 -1
  111. package/dist/src/sync/v2/export/controls/TableColumn.js.map +1 -1
  112. package/dist/src/sync/v2/export/controls/index.d.ts +3 -1
  113. package/dist/src/sync/v2/export/controls/index.js +3 -1
  114. package/dist/src/sync/v2/export/controls/index.js.map +1 -1
  115. package/dist/src/sync/v2/export/export.js +129 -91
  116. package/dist/src/sync/v2/export/export.js.map +1 -1
  117. package/dist/src/sync/v2/generate/analyticalListReport.d.ts +3 -9
  118. package/dist/src/sync/v2/generate/analyticalListReport.js +15 -16
  119. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  120. package/dist/src/sync/v2/generate/generate.js +28 -6
  121. package/dist/src/sync/v2/generate/generate.js.map +1 -1
  122. package/dist/src/sync/v2/generate/listReport.d.ts +3 -10
  123. package/dist/src/sync/v2/generate/listReport.js +24 -30
  124. package/dist/src/sync/v2/generate/listReport.js.map +1 -1
  125. package/dist/src/sync/v2/generate/objectPage.d.ts +3 -10
  126. package/dist/src/sync/v2/generate/objectPage.js +210 -145
  127. package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
  128. package/dist/src/sync/v2/generate/utils.d.ts +1 -2
  129. package/dist/src/sync/v2/generate/utils.js +7 -2
  130. package/dist/src/sync/v2/generate/utils.js.map +1 -1
  131. package/dist/src/sync/v2/import/pages/listReport.js +6 -5
  132. package/dist/src/sync/v2/import/pages/listReport.js.map +1 -1
  133. package/dist/src/sync/v2/import/pages/objectPage.js +163 -92
  134. package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
  135. package/dist/src/sync/v2/import/pages/overviewPage.js +1 -0
  136. package/dist/src/sync/v2/import/pages/overviewPage.js.map +1 -1
  137. package/dist/src/sync/v2/types.d.ts +17 -0
  138. package/dist/src/sync/v2/types.js +16 -0
  139. package/dist/src/sync/v2/types.js.map +1 -1
  140. package/dist/src/sync/v4/application.js +10 -10
  141. package/dist/src/sync/v4/application.js.map +1 -1
  142. package/dist/src/sync/v4/export/controls/ObjectPageTable.js +4 -3
  143. package/dist/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
  144. package/dist/src/sync/v4/export/controls/Table.js +4 -3
  145. package/dist/src/sync/v4/export/controls/Table.js.map +1 -1
  146. package/dist/src/sync/v4/export/export.js +156 -134
  147. package/dist/src/sync/v4/export/export.js.map +1 -1
  148. package/dist/src/sync/v4/export/manifest.js +96 -76
  149. package/dist/src/sync/v4/export/manifest.js.map +1 -1
  150. package/dist/src/sync/v4/generate/generate.js +10 -2
  151. package/dist/src/sync/v4/generate/generate.js.map +1 -1
  152. package/dist/src/sync/v4/generate/objectPage.d.ts +3 -6
  153. package/dist/src/sync/v4/generate/objectPage.js +92 -36
  154. package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
  155. package/dist/src/sync/v4/import/app/appProvider.js +108 -80
  156. package/dist/src/sync/v4/import/app/appProvider.js.map +1 -1
  157. package/dist/src/sync/v4/import/fragment.js +41 -46
  158. package/dist/src/sync/v4/import/fragment.js.map +1 -1
  159. package/dist/src/sync/v4/import/pages/listReport.js +1 -1
  160. package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
  161. package/dist/src/sync/v4/utils/StableIdHelper.d.ts +0 -3
  162. package/dist/src/sync/v4/utils/StableIdHelper.js +9 -11
  163. package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -1
  164. package/dist/src/sync/v4/utils/utils.js +2 -2
  165. package/dist/src/sync/v4/utils/utils.js.map +1 -1
  166. package/package.json +4 -5
  167. package/dist/src/specification/v2/controls/DataField.d.ts +0 -7
  168. package/dist/src/specification/v2/controls/DataField.js.map +0 -1
  169. package/dist/src/sync/v2/export/controls/DataField.d.ts +0 -4
  170. package/dist/src/sync/v2/export/controls/DataField.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const StableIdHelper_1 = require("../../v4/utils/StableIdHelper");
4
+ const common_1 = require("../../../specification/common");
4
5
  const __1 = require("..");
5
6
  /**
6
7
  * Adds a field definition to the app specific schema
@@ -11,24 +12,29 @@ const __1 = require("..");
11
12
  * @param {string} key - current field key
12
13
  * @param {SectionType} section - current section of the object page
13
14
  */
14
- function addField(sectionType, appSchema, field, targetID, key, section, isV2) {
15
+ function addField(sectionType, appSchema, field, targetID, key, section, version, withActions = true) {
15
16
  var _a, _b, _c, _d, _e;
16
17
  const fieldReferenceId = StableIdHelper_1.getStableIdPartFromDataField(field);
17
- const fieldReference = isV2 && fieldReferenceId && fieldReferenceId.includes('::')
18
- ? fieldReferenceId.split('::')[1]
18
+ const fieldReference = version === common_1.FioriElementsVersion.v2 && fieldReferenceId && fieldReferenceId.includes('::')
19
+ ? fieldReferenceId
20
+ .split('::')
21
+ .splice(1)
22
+ .join('::')
19
23
  : fieldReferenceId;
20
- const fieldReferenceType = isV2 && fieldReferenceId && fieldReferenceId.includes('::') ? fieldReferenceId.split('::')[0] : undefined;
21
- const fieldDefinition = isV2
24
+ const fieldReferenceType = version === common_1.FioriElementsVersion.v2 && fieldReferenceId && fieldReferenceId.includes('::')
25
+ ? fieldReferenceId.split('::')[0].replace('DataField', 'Field')
26
+ : undefined;
27
+ const fieldDefinition = version === common_1.FioriElementsVersion.v2
22
28
  ? `${fieldReferenceType}<${targetID}::${fieldReference}>`
23
29
  : `${targetID}::${fieldReference}`;
24
30
  const fieldsDefinition = `${sectionType}Fields<${targetID}>`;
25
31
  const actionsDefinition = `${sectionType}Actions<${targetID}>`;
26
32
  if (!field || !field.$Type) {
27
- return; // ToDo: Actions to be interpreted as Header or Footer Actions
33
+ return;
28
34
  }
29
- else if (field.$Type === 'com.sap.vocabularies.UI.v1.DataFieldForAction' ||
30
- field.$Type === 'com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation') {
31
- if (sectionType === __1.SectionType.Section) {
35
+ else if (field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" /* DataFieldForAction */ ||
36
+ field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation" /* DataFieldForIntentBasedNavigation */) {
37
+ if (withActions && sectionType === __1.SectionType.Section) {
32
38
  appSchema['definitions'][actionsDefinition]['properties'][fieldReference] = {
33
39
  $ref: __1.DEFINITION_LINK_PREFIX + fieldDefinition,
34
40
  propertyIndex: parseInt(key)
@@ -48,14 +54,50 @@ function addField(sectionType, appSchema, field, targetID, key, section, isV2) {
48
54
  description: __1.getDatafieldDescription(field, section.entityType),
49
55
  additionalProperties: false
50
56
  };
51
- if (field.$Type === 'com.sap.vocabularies.UI.v1.DataField' && ((_a = appSchema['definitions']) === null || _a === void 0 ? void 0 : _a['DataField'])) {
52
- appSchema['definitions'][fieldDefinition]['properties'] = appSchema['definitions']['DataField']['properties'];
57
+ if (version === common_1.FioriElementsVersion.v4 && appSchema['definitions']['Field']) {
58
+ switch (field.$Type) {
59
+ case "com.sap.vocabularies.UI.v1.DataField" /* DataField */:
60
+ case "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" /* DataFieldForAnnotation */:
61
+ case "com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath" /* DataFieldWithNavigationPath */:
62
+ case "com.sap.vocabularies.UI.v1.DataFieldWithUrl" /* DataFieldWithUrl */: {
63
+ appSchema['definitions'][fieldDefinition]['properties'] =
64
+ appSchema['definitions']['Field']['properties'];
65
+ break;
66
+ }
67
+ }
68
+ }
69
+ else if (version === common_1.FioriElementsVersion.v2 && appSchema['definitions']['Field']) {
70
+ switch (field.$Type) {
71
+ case "com.sap.vocabularies.UI.v1.DataField" /* DataField */:
72
+ case "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" /* DataFieldForAnnotation */:
73
+ case "com.sap.vocabularies.UI.v1.DataFieldWithUrl" /* DataFieldWithUrl */: {
74
+ appSchema['definitions'][fieldDefinition]['properties'] =
75
+ appSchema['definitions']['Field']['properties'];
76
+ break;
77
+ }
78
+ }
79
+ }
80
+ if (field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" /* DataFieldForAction */ && ((_a = appSchema['definitions']) === null || _a === void 0 ? void 0 : _a['FormAction'])) {
81
+ appSchema['definitions'][fieldDefinition]['properties'] = appSchema['definitions']['FormAction']['properties'];
53
82
  }
54
83
  if ((_c = (_b = field['Value']) === null || _b === void 0 ? void 0 : _b.$target) === null || _c === void 0 ? void 0 : _c.type) {
55
84
  appSchema['definitions'][fieldDefinition].dataType = (_e = (_d = field['Value']) === null || _d === void 0 ? void 0 : _d.$target) === null || _e === void 0 ? void 0 : _e.type;
56
85
  }
57
86
  appSchema['definitions'][fieldDefinition].annotationPath = `/${section.entityType.fullyQualifiedName}/${field.fullyQualifiedName.split(section.entityType.fullyQualifiedName)[1]}`;
58
87
  }
88
+ function determineTargetIdOfForm(section) {
89
+ let targetID;
90
+ if (section.target && section.target['qualifier'] && section.entityType) {
91
+ targetID = `${section.entityType.name}::${section.base}::${section.target['qualifier']}`;
92
+ }
93
+ else if (section.entityType) {
94
+ targetID = `${section.entityType.name}::${section.base}`;
95
+ }
96
+ else {
97
+ targetID = section.ID;
98
+ }
99
+ return targetID;
100
+ }
59
101
  /**
60
102
  * Adds definitions for forms in object page sections to the app schema
61
103
  * @param {SectionType} sectionType - prefix to distinguish Section and HeaderSection
@@ -63,23 +105,18 @@ function addField(sectionType, appSchema, field, targetID, key, section, isV2) {
63
105
  * @param {object} appSchemaSection - current definition of facet or section in the JSON schema
64
106
  * @param {object} appSchema - app specific schema that gets enhanced
65
107
  */
66
- function handleForm(sectionType, section, appSchemaSection, appSchema, isV2) {
108
+ function handleForm(sectionType, section, appSchemaSection, appSchema, version, withActions = true) {
109
+ var _a;
67
110
  if (!section.target) {
68
111
  return;
69
112
  }
70
- const targetID = section.target && section.target['qualifier'] && section.entityType
71
- ? section.entityType['name'] + '::' + section.target['qualifier']
72
- : section.entityType
73
- ? section.entityType.name
74
- : section.ID;
113
+ const targetID = determineTargetIdOfForm(section);
75
114
  const formDefinition = `${sectionType}Form<${targetID}>`;
76
115
  const fieldsDefinition = `${sectionType}Fields<${targetID}>`;
77
116
  const actionsDefinition = `${sectionType}Actions<${targetID}>`;
78
117
  // Form definition
79
- appSchemaSection['properties']['form'] = {
80
- $ref: __1.DEFINITION_LINK_PREFIX + formDefinition
81
- };
82
- if (sectionType === __1.SectionType.Section) {
118
+ appSchemaSection['properties']['form'] = { $ref: __1.DEFINITION_LINK_PREFIX + formDefinition };
119
+ if (sectionType === __1.SectionType.Section && withActions) {
83
120
  appSchema['definitions'][formDefinition] = {
84
121
  type: 'object',
85
122
  properties: {
@@ -111,7 +148,7 @@ function handleForm(sectionType, section, appSchemaSection, appSchema, isV2) {
111
148
  additionalProperties: false
112
149
  };
113
150
  }
114
- if (section.entityType && section.entityType.name) {
151
+ if ((_a = section.entityType) === null || _a === void 0 ? void 0 : _a.name) {
115
152
  appSchema['definitions'][formDefinition].annotationPath = __1.createAnnotationPath(section.entityType.fullyQualifiedName, section.target['term'], section.target['qualifier']);
116
153
  }
117
154
  // Fields definition
@@ -123,20 +160,172 @@ function handleForm(sectionType, section, appSchemaSection, appSchema, isV2) {
123
160
  additionalProperties: false
124
161
  };
125
162
  // Add fields
126
- if (section.base === 'Identification') {
163
+ if (section.base === __1.FacetBase.Identification) {
127
164
  for (const key in section.target) {
128
165
  const field = section.target[key];
129
166
  if (field) {
130
- addField(sectionType, appSchema, field, targetID, key, section, isV2);
167
+ addField(sectionType, appSchema, field, targetID, key, section, version, withActions);
131
168
  }
132
169
  }
133
170
  }
134
171
  else {
135
172
  for (const key in section.target['Data']) {
136
173
  const field = section.target['Data'][key];
137
- addField(sectionType, appSchema, field, targetID, key, section, isV2);
174
+ addField(sectionType, appSchema, field, targetID, key, section, version);
138
175
  }
139
176
  }
140
177
  }
141
178
  exports.handleForm = handleForm;
179
+ /**
180
+ * Replaces an alias in an annotation ID or reference, based on the AVT references' list
181
+ * @param annotationIdentifier - annotation ID or reference
182
+ * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
183
+ * @returns the converted string
184
+ */
185
+ function replaceAlias(annotationIdentifier, oDataServiceAVT) {
186
+ const potentialAlias = annotationIdentifier.indexOf('.') > -1 ? annotationIdentifier.split('.')[0] : undefined;
187
+ let result = annotationIdentifier;
188
+ if (potentialAlias) {
189
+ const reference = oDataServiceAVT.references.find((ref) => {
190
+ return ref.alias === potentialAlias;
191
+ });
192
+ if (reference) {
193
+ result = annotationIdentifier.replace(potentialAlias, reference.namespace);
194
+ }
195
+ }
196
+ return result;
197
+ }
198
+ exports.replaceAlias = replaceAlias;
199
+ /**
200
+ * Common routine to determine the name and the ID of a header action
201
+ * @param action - action as given by AVT
202
+ * @param entityType - entity type by AVT
203
+ * @returns an object comprising action name and action id
204
+ */
205
+ function getActionNameAndId(action, entityType) {
206
+ let separatorIndex = action.lastIndexOf('/');
207
+ if (separatorIndex === -1) {
208
+ separatorIndex = action.lastIndexOf('.');
209
+ }
210
+ let actionName, actionId;
211
+ if (separatorIndex > -1) {
212
+ actionName = action.substr(separatorIndex + 1);
213
+ actionId = action.substr(0, separatorIndex) + '::' + actionName;
214
+ }
215
+ else {
216
+ actionName = action;
217
+ const namespace = entityType.fullyQualifiedName.split(entityType.name)[0];
218
+ actionId = namespace.substr(0, namespace.length - 1) + '::' + actionName;
219
+ }
220
+ return { actionName, actionId };
221
+ }
222
+ exports.getActionNameAndId = getActionNameAndId;
223
+ /**
224
+ * Add Object Page Footer Action Buttons to app-specific schema
225
+ *
226
+ * @param {object} appSchema Schema of the app
227
+ * @param {EntityType} entityType - current entity type
228
+ * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
229
+ */
230
+ function addFooterActions(appSchema, entityType, oDataServiceAVT) {
231
+ appSchema['definitions']['ObjectPageFooter'] = JSON.parse(JSON.stringify(appSchema['definitions']['ObjectPageFooter<GenericFooterActions>']));
232
+ // Change reference of footer
233
+ appSchema['properties']['footer'] = {
234
+ $ref: __1.DEFINITION_LINK_PREFIX + 'ObjectPageFooter'
235
+ };
236
+ // Add action to configuration
237
+ appSchema['definitions']['ObjectPageFooter'].properties['actions'] = {
238
+ $ref: `${__1.DEFINITION_LINK_PREFIX}FooterActions`
239
+ };
240
+ const footerActions = (appSchema['definitions']['FooterActions'] = {
241
+ type: 'object',
242
+ properties: {},
243
+ description: 'Actions',
244
+ additionalProperties: false,
245
+ isViewNode: true
246
+ });
247
+ const alias = __1.findAlias(__1.UIVOCABULARY, oDataServiceAVT);
248
+ const actionAnnotation = alias &&
249
+ entityType.annotations &&
250
+ entityType.annotations[alias] &&
251
+ entityType.annotations[alias].Identification;
252
+ if (actionAnnotation) {
253
+ const convertedIdentification = actionAnnotation.fullyQualifiedName.replace(`@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`, `/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`);
254
+ footerActions['annotationPath'] = `/${convertedIdentification}`;
255
+ actionAnnotation.forEach((item, index) => {
256
+ if (item['Determining'] && item.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" /* DataFieldForAction */) {
257
+ const { actionName, actionId } = getActionNameAndId(item.Action, entityType);
258
+ const description = item.Label || actionName;
259
+ const actionDefinitionKey = `FooterAction<${actionId}>`;
260
+ appSchema['definitions'][actionDefinitionKey] = {
261
+ isViewNode: true,
262
+ type: 'object',
263
+ properties: {},
264
+ description: description,
265
+ annotationPath: `/${convertedIdentification}/${index}`
266
+ };
267
+ footerActions.properties[actionId] = {
268
+ $ref: `${__1.DEFINITION_LINK_PREFIX}${actionDefinitionKey}`
269
+ };
270
+ }
271
+ });
272
+ }
273
+ else {
274
+ footerActions['annotationPath'] = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`;
275
+ }
276
+ delete appSchema['definitions']['GenericFooterActions'];
277
+ delete appSchema['definitions']['FooterAction'];
278
+ delete appSchema['definitions']['ObjectPageFooter<GenericFooterActions>'];
279
+ }
280
+ exports.addFooterActions = addFooterActions;
281
+ /**
282
+ * Add Object Page Header Action Buttons to app-specific schema
283
+ * @param {object} appSchema Schema of the app
284
+ * @param {EntityType} entityType - current entity type
285
+ * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
286
+ */
287
+ function addHeaderActions(appSchema, entityType, oDataServiceAVT,
288
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
289
+ addHeaderActionCallBack) {
290
+ appSchema['definitions']['ObjectPageHeader'].properties['actions'] = {
291
+ $ref: `${__1.DEFINITION_LINK_PREFIX}HeaderActions`
292
+ };
293
+ const headerActions = (appSchema['definitions']['HeaderActions'] = {
294
+ type: 'object',
295
+ properties: {},
296
+ description: 'Actions',
297
+ additionalProperties: false,
298
+ isViewNode: true
299
+ });
300
+ const alias = __1.findAlias(__1.UIVOCABULARY, oDataServiceAVT);
301
+ const identification = alias &&
302
+ entityType.annotations &&
303
+ entityType.annotations[alias] &&
304
+ entityType.annotations[alias].Identification;
305
+ if (identification) {
306
+ headerActions['annotationPath'] =
307
+ '/' +
308
+ identification.fullyQualifiedName.replace(`@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`, `/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`);
309
+ identification.forEach(addHeaderActionCallBack(entityType, appSchema, identification, headerActions, oDataServiceAVT));
310
+ }
311
+ else {
312
+ headerActions['annotationPath'] = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`;
313
+ }
314
+ delete appSchema['definitions']['GenericActions'];
315
+ delete appSchema['definitions']['ObjectPageHeader<GenericActions>'];
316
+ }
317
+ exports.addHeaderActions = addHeaderActions;
318
+ /**
319
+ * Adds common Object Page Header definitions to the app schema
320
+ * @param appSchema - app-specific JSOn schema
321
+ * @param entityType - current entity Type
322
+ */
323
+ function addCommonHeaderSchema(appSchema, entityType) {
324
+ appSchema['properties']['header'] = {
325
+ $ref: __1.DEFINITION_LINK_PREFIX + 'ObjectPageHeader'
326
+ };
327
+ appSchema['definitions']['ObjectPageHeader'] = JSON.parse(JSON.stringify(appSchema['definitions']['ObjectPageHeader<GenericActions>']));
328
+ appSchema['definitions']['ObjectPageHeader'].annotationPath = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.HeaderInfo" /* HeaderInfo */}`;
329
+ }
330
+ exports.addCommonHeaderSchema = addCommonHeaderSchema;
142
331
  //# sourceMappingURL=objectPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"objectPage.js","sourceRoot":"","sources":["../../../../../src/sync/common/generate/objectPage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objectPage.js","sourceRoot":"","sources":["../../../../../src/sync/common/generate/objectPage.ts"],"names":[],"mappings":"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"}
@@ -20,3 +20,9 @@ export declare function importProperty(syncRule: SyncRule, manifestSection: {},
20
20
  * @param {ExtensionLogger} logger - Logger class for logging messages
21
21
  */
22
22
  export declare function checkDeprecatedProperties(deprecatedProperties: DeprecatedProperties[], manifestSection: {}, path: string, logger?: ExtensionLogger): void;
23
+ /**
24
+ * get title of the section (Facet ID)
25
+ * @param schemaSection - Section in manifest.json
26
+ * @param jsonSchema - app specific schema
27
+ */
28
+ export declare function getSectionTitle(schemaSection: object, jsonSchema: object): string;
@@ -51,4 +51,25 @@ function checkDeprecatedProperties(deprecatedProperties, manifestSection, path,
51
51
  }
52
52
  }
53
53
  exports.checkDeprecatedProperties = checkDeprecatedProperties;
54
+ /**
55
+ * get title of the section (Facet ID)
56
+ * @param schemaSection - Section in manifest.json
57
+ * @param jsonSchema - app specific schema
58
+ */
59
+ function getSectionTitle(schemaSection, jsonSchema) {
60
+ if (schemaSection['$ref'] && !schemaSection['title']) {
61
+ const refTitle = jsonSchema['definitions'][schemaSection['$ref'].split(__1.DEFINITION_LINK_PREFIX)[1]];
62
+ getSectionTitle(refTitle, jsonSchema);
63
+ }
64
+ else if (schemaSection['title'] && schemaSection['title'].startsWith(__1.FacetTitlePrefix)) {
65
+ return schemaSection['title'].split(__1.FacetTitlePrefix)[1];
66
+ }
67
+ else if (schemaSection['title']) {
68
+ return schemaSection['title'];
69
+ }
70
+ else {
71
+ return undefined;
72
+ }
73
+ }
74
+ exports.getSectionTitle = getSectionTitle;
54
75
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/sync/common/import/utils.ts"],"names":[],"mappings":";;AAAA,2BAA2E;AAC3E,8DAA4D;AAG5D;;;;;;;GAOG;AACH,SAAgB,cAAc,CAC1B,QAAkB,EAClB,eAAmB,EACnB,WAAmB,EACnB,UAAkC,EAClC,SAAkB;IAElB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,WAAW,CAAC;IAEzD,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/C,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;QACtD,MAAM,KAAK,GAAG,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,UAAU,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;SACnC;KACJ;SAAM,IAAI,eAAe,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE;QACnD,UAAU,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;KAC1D;AACL,CAAC;AAlBD,wCAkBC;AAED;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CACrC,oBAA4C,EAC5C,eAAmB,EACnB,IAAY,EACZ,MAAwB;IAExB,IAAI,eAAe,IAAI,oBAAoB,EAAE;QACzC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE;YAC/B,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE;gBACZ,qBAAG,CAAC,MAAM,EAAE;oBACR,QAAQ,yBAAqB;oBAC7B,OAAO,EAAE,wBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC;oBAC9C,QAAQ,EAAE;wBACN,IAAI,EAAE,uBAAuB;wBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;qBACzB;iBACJ,CAAC,CAAC;gBACH,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;KACJ;AACL,CAAC;AAtBD,8DAsBC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/sync/common/import/utils.ts"],"names":[],"mappings":";;AAAA,2BAAqH;AACrH,8DAA4D;AAG5D;;;;;;;GAOG;AACH,SAAgB,cAAc,CAC1B,QAAkB,EAClB,eAAmB,EACnB,WAAmB,EACnB,UAAkC,EAClC,SAAkB;IAElB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,WAAW,CAAC;IAEzD,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/C,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;QACtD,MAAM,KAAK,GAAG,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,UAAU,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;SACnC;KACJ;SAAM,IAAI,eAAe,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE;QACnD,UAAU,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;KAC1D;AACL,CAAC;AAlBD,wCAkBC;AAED;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CACrC,oBAA4C,EAC5C,eAAmB,EACnB,IAAY,EACZ,MAAwB;IAExB,IAAI,eAAe,IAAI,oBAAoB,EAAE;QACzC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE;YAC/B,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE;gBACZ,qBAAG,CAAC,MAAM,EAAE;oBACR,QAAQ,yBAAqB;oBAC7B,OAAO,EAAE,wBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC;oBAC9C,QAAQ,EAAE;wBACN,IAAI,EAAE,uBAAuB;wBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;qBACzB;iBACJ,CAAC,CAAC;gBACH,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;KACJ;AACL,CAAC;AAtBD,8DAsBC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,aAAqB,EAAE,UAAkB;IACrE,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,0BAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KACzC;SAAM,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,oBAAgB,CAAC,EAAE;QACtF,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,oBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5D;SAAM,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;QAC/B,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;KACjC;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAXD,0CAWC"}