@sap/ux-specification 1.96.27 → 1.96.28

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 (148) hide show
  1. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  2. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  3. package/dist/documentation/v2/v2-ListReport.html +1 -1
  4. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  5. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  6. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  7. package/dist/documentation/v4/v4-BuildingBlocks.html +60 -0
  8. package/dist/documentation/v4/v4-FreestylePage.html +1 -1
  9. package/dist/documentation/v4/v4-ListReport.html +1 -1
  10. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  11. package/dist/index-min.js +271 -187
  12. package/dist/index-min.js.map +3 -3
  13. package/dist/package.json +111 -0
  14. package/dist/schemas/v4/BuildingBlocksConfig.json +750 -0
  15. package/dist/schemas/v4/ObjectPageConfig.json +185 -9
  16. package/dist/scripts/macros/api.d.ts +9 -0
  17. package/dist/scripts/macros/api.d.ts.map +1 -0
  18. package/dist/scripts/macros/api.js +161 -0
  19. package/dist/scripts/macros/api.js.map +1 -0
  20. package/dist/scripts/macros/cmd.d.ts +7 -0
  21. package/dist/scripts/macros/cmd.d.ts.map +1 -0
  22. package/dist/scripts/macros/cmd.js +49 -0
  23. package/dist/scripts/macros/cmd.js.map +1 -0
  24. package/dist/scripts/macros/corrections.d.ts +18 -0
  25. package/dist/scripts/macros/corrections.d.ts.map +1 -0
  26. package/dist/scripts/macros/corrections.js +188 -0
  27. package/dist/scripts/macros/corrections.js.map +1 -0
  28. package/dist/scripts/macros/index.d.ts +2 -0
  29. package/dist/scripts/macros/index.d.ts.map +1 -0
  30. package/dist/scripts/macros/index.js +8 -0
  31. package/dist/scripts/macros/index.js.map +1 -0
  32. package/dist/scripts/macros/schema.d.ts +9 -0
  33. package/dist/scripts/macros/schema.d.ts.map +1 -0
  34. package/dist/scripts/macros/schema.js +201 -0
  35. package/dist/scripts/macros/schema.js.map +1 -0
  36. package/dist/scripts/macros/types.d.ts +77 -0
  37. package/dist/scripts/macros/types.d.ts.map +1 -0
  38. package/dist/scripts/macros/types.js +14 -0
  39. package/dist/scripts/macros/types.js.map +1 -0
  40. package/dist/src/api.d.ts.map +1 -1
  41. package/dist/src/api.js +8 -1
  42. package/dist/src/api.js.map +1 -1
  43. package/dist/src/project.d.ts +1 -0
  44. package/dist/src/project.d.ts.map +1 -1
  45. package/dist/src/project.js +6 -4
  46. package/dist/src/project.js.map +1 -1
  47. package/dist/src/specification/schemaAccess.d.ts.map +1 -1
  48. package/dist/src/specification/schemaAccess.js +16 -3
  49. package/dist/src/specification/schemaAccess.js.map +1 -1
  50. package/dist/src/sync/common/appProvider.d.ts +12 -0
  51. package/dist/src/sync/common/appProvider.d.ts.map +1 -1
  52. package/dist/src/sync/common/appProvider.js +51 -18
  53. package/dist/src/sync/common/appProvider.js.map +1 -1
  54. package/dist/src/sync/common/generate/utils.d.ts +7 -7
  55. package/dist/src/sync/common/generate/utils.d.ts.map +1 -1
  56. package/dist/src/sync/common/generate/utils.js +27 -33
  57. package/dist/src/sync/common/generate/utils.js.map +1 -1
  58. package/dist/src/sync/common/i18n.json +2 -1
  59. package/dist/src/sync/common/importProject.d.ts.map +1 -1
  60. package/dist/src/sync/common/importProject.js +67 -31
  61. package/dist/src/sync/common/importProject.js.map +1 -1
  62. package/dist/src/sync/common/types.d.ts +6 -0
  63. package/dist/src/sync/common/types.d.ts.map +1 -0
  64. package/dist/src/sync/common/types.js +3 -0
  65. package/dist/src/sync/common/types.js.map +1 -0
  66. package/dist/src/sync/common/utils.d.ts +26 -5
  67. package/dist/src/sync/common/utils.d.ts.map +1 -1
  68. package/dist/src/sync/common/utils.js +42 -5
  69. package/dist/src/sync/common/utils.js.map +1 -1
  70. package/dist/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
  71. package/dist/src/sync/v2/generate/analyticalListReport.js +1 -0
  72. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  73. package/dist/src/sync/v2/generate/listReport.d.ts.map +1 -1
  74. package/dist/src/sync/v2/generate/listReport.js +1 -0
  75. package/dist/src/sync/v2/generate/listReport.js.map +1 -1
  76. package/dist/src/sync/v2/generate/objectPage.d.ts.map +1 -1
  77. package/dist/src/sync/v2/generate/objectPage.js +1 -0
  78. package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
  79. package/dist/src/sync/v4/export/controls/ObjectPageFooter.d.ts +5 -1
  80. package/dist/src/sync/v4/export/controls/ObjectPageFooter.d.ts.map +1 -1
  81. package/dist/src/sync/v4/export/controls/ObjectPageFooter.js +4 -1
  82. package/dist/src/sync/v4/export/controls/ObjectPageFooter.js.map +1 -1
  83. package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.d.ts +14 -0
  84. package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.d.ts.map +1 -1
  85. package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.js +83 -1
  86. package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.js.map +1 -1
  87. package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts +5 -1
  88. package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
  89. package/dist/src/sync/v4/export/controls/ObjectPageHeader.js +4 -1
  90. package/dist/src/sync/v4/export/controls/ObjectPageHeader.js.map +1 -1
  91. package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts +14 -0
  92. package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
  93. package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.js +83 -1
  94. package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.js.map +1 -1
  95. package/dist/src/sync/v4/export/export.d.ts +1 -0
  96. package/dist/src/sync/v4/export/export.d.ts.map +1 -1
  97. package/dist/src/sync/v4/export/export.js +11 -6
  98. package/dist/src/sync/v4/export/export.js.map +1 -1
  99. package/dist/src/sync/v4/export/fpmCustomPage.d.ts +11 -0
  100. package/dist/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -0
  101. package/dist/src/sync/v4/export/fpmCustomPage.js +131 -0
  102. package/dist/src/sync/v4/export/fpmCustomPage.js.map +1 -0
  103. package/dist/src/sync/v4/generate/fpmCustomPage.d.ts +10 -0
  104. package/dist/src/sync/v4/generate/fpmCustomPage.d.ts.map +1 -0
  105. package/dist/src/sync/v4/generate/fpmCustomPage.js +266 -0
  106. package/dist/src/sync/v4/generate/fpmCustomPage.js.map +1 -0
  107. package/dist/src/sync/v4/generate/generate.d.ts +13 -1
  108. package/dist/src/sync/v4/generate/generate.d.ts.map +1 -1
  109. package/dist/src/sync/v4/generate/generate.js +22 -1
  110. package/dist/src/sync/v4/generate/generate.js.map +1 -1
  111. package/dist/src/sync/v4/generate/index.d.ts +2 -1
  112. package/dist/src/sync/v4/generate/index.d.ts.map +1 -1
  113. package/dist/src/sync/v4/generate/index.js +4 -1
  114. package/dist/src/sync/v4/generate/index.js.map +1 -1
  115. package/dist/src/sync/v4/generate/objectPage.d.ts.map +1 -1
  116. package/dist/src/sync/v4/generate/objectPage.js +45 -12
  117. package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
  118. package/dist/src/sync/v4/import/app/appProvider.d.ts +2 -1
  119. package/dist/src/sync/v4/import/app/appProvider.d.ts.map +1 -1
  120. package/dist/src/sync/v4/import/app/appProvider.js +2 -2
  121. package/dist/src/sync/v4/import/app/appProvider.js.map +1 -1
  122. package/dist/src/sync/v4/import/app/baseAppProvider.d.ts +7 -2
  123. package/dist/src/sync/v4/import/app/baseAppProvider.d.ts.map +1 -1
  124. package/dist/src/sync/v4/import/app/baseAppProvider.js +26 -6
  125. package/dist/src/sync/v4/import/app/baseAppProvider.js.map +1 -1
  126. package/dist/src/sync/v4/import/app/freestyleProvider.d.ts +2 -1
  127. package/dist/src/sync/v4/import/app/freestyleProvider.d.ts.map +1 -1
  128. package/dist/src/sync/v4/import/app/freestyleProvider.js +2 -2
  129. package/dist/src/sync/v4/import/app/freestyleProvider.js.map +1 -1
  130. package/dist/src/sync/v4/import/index.d.ts +1 -0
  131. package/dist/src/sync/v4/import/index.d.ts.map +1 -1
  132. package/dist/src/sync/v4/import/index.js +1 -0
  133. package/dist/src/sync/v4/import/index.js.map +1 -1
  134. package/dist/src/sync/v4/import/pages/fpmCustomPage.d.ts +9 -0
  135. package/dist/src/sync/v4/import/pages/fpmCustomPage.d.ts.map +1 -0
  136. package/dist/src/sync/v4/import/pages/fpmCustomPage.js +102 -0
  137. package/dist/src/sync/v4/import/pages/fpmCustomPage.js.map +1 -0
  138. package/dist/src/sync/v4/import/pages/objectPage.js +1 -1
  139. package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
  140. package/dist/src/sync/v4/utils/macros.d.ts +29 -0
  141. package/dist/src/sync/v4/utils/macros.d.ts.map +1 -0
  142. package/dist/src/sync/v4/utils/macros.js +113 -0
  143. package/dist/src/sync/v4/utils/macros.js.map +1 -0
  144. package/dist/src/sync/v4/utils/utils.d.ts +11 -1
  145. package/dist/src/sync/v4/utils/utils.d.ts.map +1 -1
  146. package/dist/src/sync/v4/utils/utils.js +88 -1
  147. package/dist/src/sync/v4/utils/utils.js.map +1 -1
  148. package/package.json +14 -8
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateCustomPageSchemaV4 = void 0;
4
+ const utils_1 = require("../../common/utils");
5
+ const macros_1 = require("../utils/macros");
6
+ const MACROS_NAMESPACE = 'sap.fe.macros';
7
+ // List of properties which should be used to describe schema view nodes
8
+ const descriptionProperties = ['id', 'key', 'title', 'text', 'label', 'header'];
9
+ /**
10
+ * Method returns full element name by concating name and namespace.
11
+ * @param {XMLElement} element Parsed XML element.
12
+ * @returns {string} Full name of element including namespace.
13
+ */
14
+ function getElementName(element) {
15
+ const { ns, name } = element;
16
+ if (ns) {
17
+ return `${ns}:${name}`;
18
+ }
19
+ return name;
20
+ }
21
+ /**
22
+ * Method checks if passed XML element is defined within passed namespace.
23
+ * @param {XMLElement} element Parsed XML element.
24
+ * @param {string} namespacePrefix Namespace prefix.
25
+ * @returns {boolean} Is element defined within passed namespace.
26
+ */
27
+ function isElementWithNamespace(element, namespacePrefix) {
28
+ const { ns = '' } = element;
29
+ if (!namespacePrefix) {
30
+ return !ns;
31
+ }
32
+ else {
33
+ return ns === namespacePrefix;
34
+ }
35
+ }
36
+ /**
37
+ * Method returns all dependecies defined in passed core SAPUI5 XML element.
38
+ * @param {XMLElement} coreElement Parsed XML element.
39
+ * @returns {UI5Depenencies} Object with dependencies.
40
+ */
41
+ function getDependencies(coreElement) {
42
+ const dependencies = {};
43
+ const coreAttributes = coreElement.attributes || [];
44
+ for (const attr of coreAttributes) {
45
+ const { key, value } = attr;
46
+ let accesor = '';
47
+ const namespaceConst = 'xmlns:';
48
+ if (key.startsWith(namespaceConst)) {
49
+ accesor = key.substring(namespaceConst.length);
50
+ }
51
+ dependencies[value] = accesor;
52
+ }
53
+ return dependencies;
54
+ }
55
+ /**
56
+ * Method returns description for passed view node.
57
+ * @param {XMLElement} node Parsed XML element.
58
+ * @param {string} name View node name.
59
+ * @returns {string} Description for view node.
60
+ */
61
+ function getViewNodeDescription(node, name) {
62
+ let description = '';
63
+ const attributes = node.attributes || [];
64
+ for (const attributeName of descriptionProperties) {
65
+ const attr = attributes.find((attribute) => attribute.key === attributeName);
66
+ if (attr) {
67
+ const prefix = attributeName === 'id' ? '#' : '';
68
+ description = `${prefix}${attr.value}`;
69
+ break;
70
+ }
71
+ }
72
+ return description ? `${name} ${description}` : name;
73
+ }
74
+ /**
75
+ * Method finds available name for properties in schema's properties.
76
+ * @param {string} name Original property name.
77
+ * @param {{ [k: string]: SchemaDefinition }} properties Object with existing properties.
78
+ * @returns {string} Available name in properties.
79
+ */
80
+ function findAvailableName(name, properties) {
81
+ let availableName = name;
82
+ let index = 2;
83
+ while (availableName in properties) {
84
+ availableName = `${name}${index}`;
85
+ index++;
86
+ }
87
+ return availableName;
88
+ }
89
+ /**
90
+ * Method prepares schema 'properties' for passed schema by resolving '$ref' property.
91
+ * @param {SchemaDefinition} schema Schema node to update.
92
+ * @param {SchemaDefinition} fullSchema Full schema object which contains definitions.
93
+ */
94
+ function prepareSchemaProperties(schema, fullSchema) {
95
+ schema.properties = {};
96
+ if (schema.$ref) {
97
+ const key = utils_1.getDefinitionKey(schema.$ref);
98
+ const definition = fullSchema.definitions[key];
99
+ if (typeof definition === 'object' && definition.properties) {
100
+ schema.type = definition.type;
101
+ schema.isViewNode = definition.isViewNode;
102
+ schema.properties = JSON.parse(JSON.stringify(definition.properties));
103
+ }
104
+ delete schema.$ref;
105
+ }
106
+ }
107
+ /**
108
+ * Method handles attributes of xml node and stores range position to schema.
109
+ * @param {XMLElement} node Parsed XML element.
110
+ * @param {SchemaDefinition} schema Schema object containing properties matching to element attributes.
111
+ * @param {SchemaDefinition} fullSchema Full schema object which contains definitions.
112
+ */
113
+ function handleAttributes(node, schema, fullSchema) {
114
+ if (!schema.properties) {
115
+ prepareSchemaProperties(schema, fullSchema);
116
+ }
117
+ const { properties = {} } = schema;
118
+ for (const attr of node.attributes) {
119
+ const property = properties[attr.key];
120
+ if (property && property.metadata) {
121
+ property.metadata.position = attr.position;
122
+ }
123
+ }
124
+ }
125
+ /**
126
+ * Method adds property to schema's properties.
127
+ * @param {XMLElement} node Parsed XML element.
128
+ * @param {SchemaDefinition} schema Schema object to update with new property.
129
+ * @param {XMLParseParams} params XML parsing params.
130
+ * @param {string} name Property name.
131
+ * @returns {string} Added property name.
132
+ */
133
+ function addProperty(node, schema, params, name) {
134
+ const fullSchema = params.schema;
135
+ if (!schema.properties) {
136
+ prepareSchemaProperties(schema, fullSchema);
137
+ }
138
+ const schemaProperty = schema.properties[name];
139
+ const metadata = {
140
+ path: params.path,
141
+ type: schemaProperty?.metadata?.type,
142
+ position: node.position
143
+ };
144
+ const objectKey = schemaProperty?.metadata?.path?.length ? findAvailableName(name, schema.properties) : name;
145
+ let refs = [];
146
+ if (schemaProperty?.$ref) {
147
+ refs.push(utils_1.getDefinitionKey(schemaProperty.$ref));
148
+ }
149
+ else {
150
+ refs = [`${MACROS_NAMESPACE}.${name}`, `${MACROS_NAMESPACE}.table.${name}`];
151
+ }
152
+ let unknown = true;
153
+ for (const ref of refs) {
154
+ const refDefinition = fullSchema.definitions?.[ref];
155
+ if (typeof refDefinition === 'object') {
156
+ const description = getViewNodeDescription(node, name);
157
+ if (!metadata.type) {
158
+ metadata.type = refDefinition.metadata.type;
159
+ }
160
+ const newDefinition = {
161
+ $ref: utils_1.getDefinitionsRef(ref),
162
+ description,
163
+ propertyIndex: params.index,
164
+ metadata
165
+ };
166
+ handleAttributes(node, newDefinition, fullSchema);
167
+ schema.properties[objectKey] = newDefinition;
168
+ unknown = false;
169
+ break;
170
+ }
171
+ }
172
+ if (unknown) {
173
+ // Unknown definition
174
+ const newDefinition = {
175
+ properties: {},
176
+ isViewNode: true,
177
+ type: 'object',
178
+ description: name,
179
+ propertyIndex: params.index,
180
+ metadata
181
+ };
182
+ schema.properties[objectKey] = newDefinition;
183
+ }
184
+ return objectKey;
185
+ }
186
+ /**
187
+ * Method adds property to schema's properties.
188
+ * @param {XMLElement} node Parsed XML element.
189
+ * @param {SchemaDefinition} schema Schema object to update with new property.
190
+ * @param {XMLParseParams} params XML parsing params.
191
+ * @param {string} name Property name.
192
+ * @returns {string} Added property name.
193
+ */
194
+ function handleXMLNode(node, schema, params) {
195
+ const { macrosPrefix } = params;
196
+ const parentSchema = schema.$ref ? params.schema.definitions?.[utils_1.getDefinitionKey(schema.$ref)] : schema;
197
+ if (isElementWithNamespace(node, macrosPrefix) ||
198
+ (typeof parentSchema === 'object' && parentSchema.properties?.[node.name])) {
199
+ const names = node.name.split(':');
200
+ const name = addProperty(node, schema, params, names[names.length - 1]);
201
+ // Go deeper in schema
202
+ schema = schema.properties[name];
203
+ }
204
+ const { subElements = [] } = node;
205
+ const uniqueKeys = {};
206
+ for (let index = 0; index < subElements.length; index++) {
207
+ const element = subElements[index];
208
+ const isUnique = !uniqueKeys[element.name];
209
+ uniqueKeys[element.name] = true;
210
+ handleXMLNode(element, schema, {
211
+ ...params,
212
+ isUnique,
213
+ index,
214
+ path: [
215
+ ...params.path,
216
+ {
217
+ name: getElementName(element),
218
+ index
219
+ }
220
+ ]
221
+ });
222
+ }
223
+ }
224
+ /**
225
+ * Method generates schema for passed XML content.
226
+ * @param {string} xmlContent XML content.
227
+ * @param {SchemaDefinition} genericSchema Generic schema of "sap.fe.macros".
228
+ * @param {ExtensionLogger} [logger] - Logger class for logging messages.
229
+ * @returns {SchemaDefinition} Generated schema for passed XML content.
230
+ */
231
+ function generateCustomPageSchemaV4(genericSchema, xmlFile, logger) {
232
+ const viewDocument = macros_1.parseXML(xmlFile, true, logger);
233
+ if (!viewDocument) {
234
+ return undefined;
235
+ }
236
+ let schema = undefined;
237
+ const coreElement = viewDocument.rootElement;
238
+ const dependencies = getDependencies(coreElement);
239
+ const macrosPrefix = dependencies[MACROS_NAMESPACE];
240
+ if (macrosPrefix !== undefined) {
241
+ // Macros supported
242
+ schema = JSON.parse(JSON.stringify(genericSchema));
243
+ const uniqueKeys = {};
244
+ for (let index = 0; index < coreElement.subElements.length; index++) {
245
+ const element = coreElement.subElements[index];
246
+ const isUnique = !uniqueKeys[element.name];
247
+ uniqueKeys[element.name] = true;
248
+ handleXMLNode(element, schema, {
249
+ macrosPrefix,
250
+ schema,
251
+ dependencies,
252
+ index,
253
+ isUnique,
254
+ path: [
255
+ {
256
+ name: getElementName(element),
257
+ index
258
+ }
259
+ ]
260
+ });
261
+ }
262
+ }
263
+ return schema;
264
+ }
265
+ exports.generateCustomPageSchemaV4 = generateCustomPageSchemaV4;
266
+ //# sourceMappingURL=fpmCustomPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fpmCustomPage.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/fpmCustomPage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ExtensionLogger, FileData } from '@sap/ux-specification-types';
1
+ import type { ExtensionLogger, FileData, Manifest, FeatureToggle } from '@sap/ux-specification-types';
2
2
  import { TemplateType } from '@sap/ux-specification-types';
3
3
  /**
4
4
  * Generates the app specific schema of an object page out of the generic schema for the same page.
@@ -39,4 +39,16 @@ export declare function generateListReportInterfaceV4(templateType: TemplateType
39
39
  * @returns the app specific JSON schema
40
40
  */
41
41
  export declare function generateFreestyleInterfaceV4(templateType: TemplateType, genericSchema: object, annotations: FileData[], manifest?: object, _entitySetName?: string, logger?: ExtensionLogger): object;
42
+ /**
43
+ * Generates the app specific schema of a FPM Custom page out of the generic schema.
44
+ * @param {object} genericSchema - generic JSON schema of a list report.
45
+ * @param {string} routingId - page id in routing.
46
+ * @param {Manifest} manifest - manifest.json of the app.
47
+ * @param {FileData[]} views - array of views.xml files.
48
+ * @param {FeatureToggle[]} [featureToggles] - array of supported features.
49
+ * @param {ExtensionLogger} [logger] - Logger class for logging messages.
50
+ *
51
+ * @returns the app specific JSON schema.
52
+ */
53
+ export declare function generateFPMCustomPageInterfaceV4(genericSchema: object, routingId: string, manifest: Manifest, views: FileData[], featureToggles?: FeatureToggle[], logger?: ExtensionLogger): object;
42
54
  //# sourceMappingURL=generate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAA+B,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EAA4B,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAErF;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CACzC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,QAAQ,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,eAAe,EACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,GACvB,MAAM,CAWR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CACzC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,QAAQ,EAAE,EACvB,MAAM,CAAC,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,CAcR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CACxC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,QAAQ,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,eAAe,GACzB,MAAM,CAUR"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/generate.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,eAAe,EAEf,QAAQ,EACR,QAAQ,EACR,aAAa,EAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAA4B,YAAY,EAAY,MAAM,6BAA6B,CAAC;AAG/F;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CACzC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,QAAQ,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,eAAe,EACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,GACvB,MAAM,CAWR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CACzC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,QAAQ,EAAE,EACvB,MAAM,CAAC,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,CAcR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CACxC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,QAAQ,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,eAAe,GACzB,MAAM,CAUR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC5C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,QAAQ,EAAE,EACjB,cAAc,CAAC,EAAE,aAAa,EAAE,EAChC,MAAM,CAAC,EAAE,eAAe,GACzB,MAAM,CAOR"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateFreestyleInterfaceV4 = exports.generateListReportInterfaceV4 = exports.generateObjectPageInterfaceV4 = void 0;
3
+ exports.generateFPMCustomPageInterfaceV4 = exports.generateFreestyleInterfaceV4 = exports.generateListReportInterfaceV4 = exports.generateObjectPageInterfaceV4 = void 0;
4
4
  const utils_1 = require("../../common/utils");
5
5
  const _1 = require(".");
6
6
  const ux_specification_types_1 = require("@sap/ux-specification-types");
7
+ const utils_2 = require("../utils/utils");
7
8
  /**
8
9
  * Generates the app specific schema of an object page out of the generic schema for the same page.
9
10
  * Generic types are replaced by information from the app specific annotations.
@@ -79,4 +80,24 @@ function generateFreestyleInterfaceV4(templateType, genericSchema, annotations,
79
80
  return _1.generateFreestyleSchemaV4(generateParameters, genericSchema);
80
81
  }
81
82
  exports.generateFreestyleInterfaceV4 = generateFreestyleInterfaceV4;
83
+ /**
84
+ * Generates the app specific schema of a FPM Custom page out of the generic schema.
85
+ * @param {object} genericSchema - generic JSON schema of a list report.
86
+ * @param {string} routingId - page id in routing.
87
+ * @param {Manifest} manifest - manifest.json of the app.
88
+ * @param {FileData[]} views - array of views.xml files.
89
+ * @param {FeatureToggle[]} [featureToggles] - array of supported features.
90
+ * @param {ExtensionLogger} [logger] - Logger class for logging messages.
91
+ *
92
+ * @returns the app specific JSON schema.
93
+ */
94
+ function generateFPMCustomPageInterfaceV4(genericSchema, routingId, manifest, views, featureToggles, logger) {
95
+ let schema = {};
96
+ if (utils_1.isFeatureSupported(featureToggles, ux_specification_types_1.Features.BuildingBlocks)) {
97
+ const file = utils_2.getPageCustomViewFile(views || [], routingId, manifest);
98
+ schema = file?.fileContent ? _1.generateCustomPageSchemaV4(genericSchema, file, logger) : {};
99
+ }
100
+ return schema;
101
+ }
102
+ exports.generateFPMCustomPageInterfaceV4 = generateFPMCustomPageInterfaceV4;
82
103
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/generate.ts"],"names":[],"mappings":";;;AAAA,8CAA6D;AAC7D,wBAAsG;AAEtG,wEAAqF;AAErF;;;;;;;;;;;;GAYG;AACH,SAAgB,6BAA6B,CACzC,aAAqB,EACrB,SAAiB,EACjB,WAAuB,EACvB,QAAgB,EAChB,MAAwB,EACxB,SAAsB;IAEtB,MAAM,UAAU,GAAG,+BAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,kBAAkB,GAAgC;QACpD,YAAY,EAAE,qCAAY,CAAC,sBAAsB;QACjD,oBAAoB,EAAE,6CAAoB,CAAC,EAAE;QAC7C,QAAQ;QACR,SAAS;QACT,UAAU;QACV,MAAM;KACT,CAAC;IACF,OAAO,6BAA0B,CAAC,kBAAkB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AACpF,CAAC;AAlBD,sEAkBC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,6BAA6B,CACzC,YAA0B,EAC1B,aAAqB,EACrB,aAAqB,EACrB,WAAuB,EACvB,MAAwB,EACxB,QAAiB;IAEjB,MAAM,UAAU,GAAG,+BAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IACjF,MAAM,kBAAkB,GAAgC;QACpD,YAAY;QACZ,oBAAoB,EAAE,6CAAoB,CAAC,EAAE;QAC7C,QAAQ;QACR,UAAU;QACV,MAAM;KACT,CAAC;IAEF,MAAM,YAAY,GACd,YAAY,KAAK,qCAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,2BAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,2BAAE,CAAC,kBAAkB,CAAC;IACjH,OAAO,6BAA0B,CAAC,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAClG,CAAC;AArBD,sEAqBC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,4BAA4B,CACxC,YAA0B,EAC1B,aAAqB,EACrB,WAAuB,EACvB,QAAiB,EACjB,cAAuB,EACvB,MAAwB;IAExB,MAAM,UAAU,GAAG,+BAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,kBAAkB,GAAgC;QACpD,YAAY;QACZ,oBAAoB,EAAE,6CAAoB,CAAC,EAAE;QAC7C,QAAQ;QACR,UAAU;QACV,MAAM;KACT,CAAC;IACF,OAAO,4BAAyB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;AACxE,CAAC;AAjBD,oEAiBC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/generate.ts"],"names":[],"mappings":";;;AAAA,8CAAiF;AACjF,wBAKW;AAQX,wEAA+F;AAC/F,0CAAuD;AAEvD;;;;;;;;;;;;GAYG;AACH,SAAgB,6BAA6B,CACzC,aAAqB,EACrB,SAAiB,EACjB,WAAuB,EACvB,QAAgB,EAChB,MAAwB,EACxB,SAAsB;IAEtB,MAAM,UAAU,GAAG,+BAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,kBAAkB,GAAgC;QACpD,YAAY,EAAE,qCAAY,CAAC,sBAAsB;QACjD,oBAAoB,EAAE,6CAAoB,CAAC,EAAE;QAC7C,QAAQ;QACR,SAAS;QACT,UAAU;QACV,MAAM;KACT,CAAC;IACF,OAAO,6BAA0B,CAAC,kBAAkB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AACpF,CAAC;AAlBD,sEAkBC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,6BAA6B,CACzC,YAA0B,EAC1B,aAAqB,EACrB,aAAqB,EACrB,WAAuB,EACvB,MAAwB,EACxB,QAAiB;IAEjB,MAAM,UAAU,GAAG,+BAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IACjF,MAAM,kBAAkB,GAAgC;QACpD,YAAY;QACZ,oBAAoB,EAAE,6CAAoB,CAAC,EAAE;QAC7C,QAAQ;QACR,UAAU;QACV,MAAM;KACT,CAAC;IAEF,MAAM,YAAY,GACd,YAAY,KAAK,qCAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,2BAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,2BAAE,CAAC,kBAAkB,CAAC;IACjH,OAAO,6BAA0B,CAAC,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAClG,CAAC;AArBD,sEAqBC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,4BAA4B,CACxC,YAA0B,EAC1B,aAAqB,EACrB,WAAuB,EACvB,QAAiB,EACjB,cAAuB,EACvB,MAAwB;IAExB,MAAM,UAAU,GAAG,+BAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,kBAAkB,GAAgC;QACpD,YAAY;QACZ,oBAAoB,EAAE,6CAAoB,CAAC,EAAE;QAC7C,QAAQ;QACR,UAAU;QACV,MAAM;KACT,CAAC;IACF,OAAO,4BAAyB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;AACxE,CAAC;AAjBD,oEAiBC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,gCAAgC,CAC5C,aAAqB,EACrB,SAAiB,EACjB,QAAkB,EAClB,KAAiB,EACjB,cAAgC,EAChC,MAAwB;IAExB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,0BAAkB,CAAC,cAAc,EAAE,iCAAQ,CAAC,cAAc,CAAC,EAAE;QAC7D,MAAM,IAAI,GAAG,6BAAqB,CAAC,KAAK,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrE,MAAM,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,6BAA0B,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7F;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAdD,4EAcC"}
@@ -1,5 +1,6 @@
1
1
  export { generateListReportSchemaV4 } from './listReport';
2
2
  export { generateObjectPageSchemaV4 } from './objectPage';
3
3
  export { generateFreestyleSchemaV4 } from './freestylePage';
4
- export { generateListReportInterfaceV4, generateObjectPageInterfaceV4, generateFreestyleInterfaceV4 } from './generate';
4
+ export { generateCustomPageSchemaV4 } from './fpmCustomPage';
5
+ export { generateListReportInterfaceV4, generateObjectPageInterfaceV4, generateFreestyleInterfaceV4, generateFPMCustomPageInterfaceV4 } from './generate';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACH,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EACnC,MAAM,YAAY,CAAC"}
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateFreestyleInterfaceV4 = exports.generateObjectPageInterfaceV4 = exports.generateListReportInterfaceV4 = exports.generateFreestyleSchemaV4 = exports.generateObjectPageSchemaV4 = exports.generateListReportSchemaV4 = void 0;
3
+ exports.generateFPMCustomPageInterfaceV4 = exports.generateFreestyleInterfaceV4 = exports.generateObjectPageInterfaceV4 = exports.generateListReportInterfaceV4 = exports.generateCustomPageSchemaV4 = exports.generateFreestyleSchemaV4 = exports.generateObjectPageSchemaV4 = exports.generateListReportSchemaV4 = void 0;
4
4
  var listReport_1 = require("./listReport");
5
5
  Object.defineProperty(exports, "generateListReportSchemaV4", { enumerable: true, get: function () { return listReport_1.generateListReportSchemaV4; } });
6
6
  var objectPage_1 = require("./objectPage");
7
7
  Object.defineProperty(exports, "generateObjectPageSchemaV4", { enumerable: true, get: function () { return objectPage_1.generateObjectPageSchemaV4; } });
8
8
  var freestylePage_1 = require("./freestylePage");
9
9
  Object.defineProperty(exports, "generateFreestyleSchemaV4", { enumerable: true, get: function () { return freestylePage_1.generateFreestyleSchemaV4; } });
10
+ var fpmCustomPage_1 = require("./fpmCustomPage");
11
+ Object.defineProperty(exports, "generateCustomPageSchemaV4", { enumerable: true, get: function () { return fpmCustomPage_1.generateCustomPageSchemaV4; } });
10
12
  var generate_1 = require("./generate");
11
13
  Object.defineProperty(exports, "generateListReportInterfaceV4", { enumerable: true, get: function () { return generate_1.generateListReportInterfaceV4; } });
12
14
  Object.defineProperty(exports, "generateObjectPageInterfaceV4", { enumerable: true, get: function () { return generate_1.generateObjectPageInterfaceV4; } });
13
15
  Object.defineProperty(exports, "generateFreestyleInterfaceV4", { enumerable: true, get: function () { return generate_1.generateFreestyleInterfaceV4; } });
16
+ Object.defineProperty(exports, "generateFPMCustomPageInterfaceV4", { enumerable: true, get: function () { return generate_1.generateFPMCustomPageInterfaceV4; } });
14
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,iDAA4D;AAAnD,0HAAA,yBAAyB,OAAA;AAClC,uCAAwH;AAA/G,yHAAA,6BAA6B,OAAA;AAAE,yHAAA,6BAA6B,OAAA;AAAE,wHAAA,4BAA4B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,iDAA4D;AAAnD,0HAAA,yBAAyB,OAAA;AAClC,iDAA6D;AAApD,2HAAA,0BAA0B,OAAA;AACnC,uCAKoB;AAJhB,yHAAA,6BAA6B,OAAA;AAC7B,yHAAA,6BAA6B,OAAA;AAC7B,wHAAA,4BAA4B,OAAA;AAC5B,4HAAA,gCAAgC,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"objectPage.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/objectPage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,2BAA2B,EAAE,MAAM,UAAU,CAAC;AA84B7E;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,kBAAkB,EAAE,2BAA2B,EAC/C,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACvB,MAAM,CA+FR"}
1
+ {"version":3,"file":"objectPage.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/objectPage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAw7B7E;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,kBAAkB,EAAE,2BAA2B,EAC/C,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACvB,MAAM,CAqGR"}
@@ -9,7 +9,9 @@ const extensionLogger_1 = require("../../../extensionLogger");
9
9
  const ux_specification_types_1 = require("@sap/ux-specification-types");
10
10
  const common_1 = require("../../common");
11
11
  const utils_1 = require("../utils/utils");
12
+ const utils_2 = require("../utils/utils");
12
13
  const StableIdHelper_1 = require("../../v4/utils/StableIdHelper");
14
+ const CUSTOM_ACTION_DEFINITION_DESCRIPTION = 'Custom Action';
13
15
  /**
14
16
  * Callback for adding a single action to headerActions of V4
15
17
  * @param {EntityType} entityType - current entity type
@@ -94,12 +96,12 @@ function addCustomColumnsOP(appSchema, v4Page, lineItemId, facetIdInManifest, lo
94
96
  customColumnDefinition.description = 'Custom Column';
95
97
  // Update definitions for type specific custom columns
96
98
  const schemaId = `${ux_specification_types_1.DefinitionName.CustomColumnOP}<${lineItemId}>`;
97
- utils_1.addCustomColumnDefinition(appSchema, v4Page, logger, schemaId, lineItemId, facetIdInManifest);
99
+ utils_2.addCustomColumnDefinition(appSchema, v4Page, logger, schemaId, lineItemId, facetIdInManifest);
98
100
  const facetKey = useDefinitionAsKey ? lineItemId : ux_specification_types_1.DefinitionName.PositionOP;
99
101
  common_1.parseSchemaDefinition(ux_specification_types_1.DefinitionName.PositionOP, facetKey, appSchema, useDefinitionAsKey);
100
102
  const positionId = useDefinitionAsKey ? `${ux_specification_types_1.DefinitionName.PositionOP}<${lineItemId}>` : ux_specification_types_1.DefinitionName.PositionOP;
101
103
  customColumnDefinition.properties.position.$ref = `${common_1.DEFINITION_LINK_PREFIX}${positionId}`;
102
- utils_1.addFragmentEnumForAnchor(appSchema, lineItemId, v4Page, positionId, facetIdInManifest.replace(/::/g, '/'));
104
+ utils_2.addFragmentEnumForAnchor(appSchema, lineItemId, v4Page, positionId, facetIdInManifest.replace(/::/g, '/'));
103
105
  }
104
106
  /**
105
107
  * Object Page specific enhancements to addCustomColumnDefinition
@@ -109,7 +111,7 @@ function addCustomColumnsOP(appSchema, v4Page, lineItemId, facetIdInManifest, lo
109
111
  * @param {string} facetIdInManifest - identifier of the current object page section in manifest
110
112
  * @param {ExtensionLogger} logger - logger for exceptions
111
113
  */
112
- function addCustomActionsOP(appSchema, v4Page, lineItemId, facetIdInManifest, logger) {
114
+ function addTableCustomActionsOP(appSchema, v4Page, lineItemId, facetIdInManifest, logger) {
113
115
  // Create type specific copy of 'TableCustomActionOP'
114
116
  const useDefinitionAsKey = lineItemId !== ux_specification_types_1.DefinitionName.LineItems &&
115
117
  lineItemId !== 'LineItemsOfSPV::LineItem' &&
@@ -119,11 +121,11 @@ function addCustomActionsOP(appSchema, v4Page, lineItemId, facetIdInManifest, lo
119
121
  : ux_specification_types_1.DefinitionName.CustomTableActionOP;
120
122
  const customActionDefinition = appSchema.definitions[customActionDefinitionKey];
121
123
  customActionDefinition[ux_specification_types_1.SchemaTag.isViewNode] = true;
122
- customActionDefinition.description = 'Custom Action';
124
+ customActionDefinition.description = CUSTOM_ACTION_DEFINITION_DESCRIPTION;
123
125
  // Update definitions for type specific custom columns
124
126
  const schemaId = `${ux_specification_types_1.DefinitionName.CustomTableActionOP}<${lineItemId}>`;
125
127
  const schemaIdForActions = `${ux_specification_types_1.DefinitionName.Actions}<${common_1.prepareRef(lineItemId)}>`;
126
- utils_1.addCustomActionDefinition(appSchema, v4Page, logger, schemaId, schemaIdForActions, facetIdInManifest);
128
+ utils_2.addCustomActionDefinition(appSchema, v4Page, logger, schemaId, schemaIdForActions, facetIdInManifest);
127
129
  const facetKey = useDefinitionAsKey ? lineItemId : ux_specification_types_1.DefinitionName.CustomActionPositionOP;
128
130
  common_1.parseSchemaDefinition(ux_specification_types_1.DefinitionName.CustomActionPositionOP, facetKey, appSchema, useDefinitionAsKey);
129
131
  // Anchor selection
@@ -131,7 +133,35 @@ function addCustomActionsOP(appSchema, v4Page, lineItemId, facetIdInManifest, lo
131
133
  ? `${ux_specification_types_1.DefinitionName.CustomActionPositionOP}<${lineItemId}>`
132
134
  : ux_specification_types_1.DefinitionName.CustomActionPositionOP;
133
135
  customActionDefinition.properties.position.$ref = `${common_1.DEFINITION_LINK_PREFIX}${positionId}`;
134
- utils_1.addEnumForActionAnchor(appSchema, schemaIdForActions, positionId);
136
+ utils_2.addEnumForActionAnchor(appSchema, schemaIdForActions, positionId);
137
+ }
138
+ /**
139
+ * Object Page specific custom action enhancements to header and footer
140
+ * @param {object} appSchema App schema in general
141
+ * @param {SapUiAppPageV4} v4Page Current page in manifest
142
+ * @param {DefinitionName} customActionDefinitionKey custom action key used in definitions
143
+ * @param {ExtensionLogger} logger - logger for exceptions
144
+ */
145
+ function addHeaderFooterCustomActionsOP(appSchema, v4Page, customActionDefinitionKey, logger) {
146
+ const customActionDefinition = appSchema.definitions[customActionDefinitionKey];
147
+ customActionDefinition[ux_specification_types_1.SchemaTag.isViewNode] = true;
148
+ customActionDefinition.description = CUSTOM_ACTION_DEFINITION_DESCRIPTION;
149
+ const schemaIdForActions = customActionDefinitionKey === ux_specification_types_1.DefinitionName.CustomHeaderActionOP
150
+ ? ux_specification_types_1.DefinitionName.HeaderActions
151
+ : ux_specification_types_1.DefinitionName.FooterActions;
152
+ utils_1.addHeaderFooterCustomActionDefinition(appSchema, v4Page, logger, customActionDefinitionKey, schemaIdForActions);
153
+ const facetKey = customActionDefinitionKey === ux_specification_types_1.DefinitionName.CustomHeaderActionOP
154
+ ? ux_specification_types_1.DefinitionName.CustomHeaderActionPositionOP
155
+ : ux_specification_types_1.DefinitionName.CustomFooterActionPositionOP;
156
+ common_1.parseSchemaDefinition(facetKey, facetKey, appSchema, false);
157
+ // Anchor selection
158
+ customActionDefinition.properties.position.$ref = `${common_1.DEFINITION_LINK_PREFIX}${facetKey}`;
159
+ utils_2.addEnumForActionAnchor(appSchema, schemaIdForActions, facetKey);
160
+ if (appSchema.definitions[schemaIdForActions]) {
161
+ appSchema.definitions[schemaIdForActions].additionalProperties = {
162
+ $ref: `${common_1.DEFINITION_LINK_PREFIX}${customActionDefinitionKey}`
163
+ };
164
+ }
135
165
  }
136
166
  /**
137
167
  * Object Page specific enhancements to handleFormIdentification
@@ -148,10 +178,10 @@ function addFormCustomActionsOP(appSchema, v4Page, formItemId, facetIdInManifest
148
178
  : ux_specification_types_1.DefinitionName.CustomFormActionOP;
149
179
  const customActionDefinition = appSchema.definitions[customActionDefinitionKey];
150
180
  customActionDefinition[ux_specification_types_1.SchemaTag.isViewNode] = true;
151
- customActionDefinition.description = 'Custom Action';
181
+ customActionDefinition.description = CUSTOM_ACTION_DEFINITION_DESCRIPTION;
152
182
  const schemaId = `${ux_specification_types_1.DefinitionName.CustomFormActionOP}<${formItemId}>`;
153
183
  const schemaIdForActions = `${ux_specification_types_1.DefinitionName.SectionActions}<${common_1.prepareRef(formItemId)}>`;
154
- utils_1.addCustomActionDefinition(appSchema, v4Page, logger, schemaId, schemaIdForActions, facetIdInManifest);
184
+ utils_2.addCustomActionDefinition(appSchema, v4Page, logger, schemaId, schemaIdForActions, facetIdInManifest);
155
185
  const facetKey = useDefinitionAsKey ? formItemId : ux_specification_types_1.DefinitionName.CustomActionPositionOP;
156
186
  common_1.parseSchemaDefinition(ux_specification_types_1.DefinitionName.CustomActionPositionOP, facetKey, appSchema, useDefinitionAsKey);
157
187
  // Anchor selection
@@ -159,7 +189,7 @@ function addFormCustomActionsOP(appSchema, v4Page, formItemId, facetIdInManifest
159
189
  ? `${ux_specification_types_1.DefinitionName.CustomActionPositionOP}<${formItemId}>`
160
190
  : ux_specification_types_1.DefinitionName.CustomActionPositionOP;
161
191
  customActionDefinition.properties.position.$ref = `${common_1.DEFINITION_LINK_PREFIX}${positionId}`;
162
- utils_1.addEnumForActionAnchor(appSchema, schemaIdForActions, positionId);
192
+ utils_2.addEnumForActionAnchor(appSchema, schemaIdForActions, positionId);
163
193
  if (appSchema.definitions[schemaIdForActions]) {
164
194
  appSchema.definitions[schemaIdForActions].additionalProperties = {
165
195
  $ref: `${common_1.DEFINITION_LINK_PREFIX}${customActionDefinitionKey}`
@@ -201,9 +231,9 @@ function handleLineItem(facet, facetKey, appSchema, lineItemFacet, oDataServiceA
201
231
  oDataServiceAVT,
202
232
  lineItemId
203
233
  };
204
- utils_1.addLineItemsTypeToSchema(dataForLineItem, ux_specification_types_1.DefinitionName.ObjectPageTableColumn, ux_specification_types_1.DefinitionName.CustomColumnOP, ux_specification_types_1.DefinitionName.CustomTableActionOP);
234
+ utils_2.addLineItemsTypeToSchema(dataForLineItem, ux_specification_types_1.DefinitionName.ObjectPageTableColumn, ux_specification_types_1.DefinitionName.CustomColumnOP, ux_specification_types_1.DefinitionName.CustomTableActionOP);
205
235
  addCustomColumnsOP(appSchema, v4Page, lineItemId, facetKey, logger);
206
- addCustomActionsOP(appSchema, v4Page, lineItemId, facetKey, logger);
236
+ addTableCustomActionsOP(appSchema, v4Page, lineItemId, facetKey, logger);
207
237
  return tableDefinition;
208
238
  }
209
239
  /**
@@ -612,6 +642,8 @@ function addHeader(generateParameters, appSchema, v4Page) {
612
642
  common_1.addCommonHeaderSchema(appSchema, entityType);
613
643
  // Add header actions
614
644
  common_1.addHeaderActions(appSchema, entityType, generateParameters.serviceAVT, addHeaderActionCallBackV4);
645
+ // Add custom header actions
646
+ addHeaderFooterCustomActionsOP(appSchema, v4Page, ux_specification_types_1.DefinitionName.CustomHeaderActionOP, generateParameters.logger);
615
647
  // Add header sections
616
648
  appSchema.definitions[ux_specification_types_1.DefinitionName.HeaderSections][ux_specification_types_1.SchemaTag.annotationPath] = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.HeaderFacets" /* HeaderFacets */}`;
617
649
  addHeaderSections(generateParameters, appSchema, entityType, v4Page);
@@ -675,7 +707,7 @@ function generateObjectPageSchemaV4(generateParameters, genericSchema, entityTyp
675
707
  });
676
708
  return appSchema;
677
709
  }
678
- const v4Page = utils_1.findPageV4(pages, ux_specification_types_1.v4.FE_TEMPLATE_V4_OBJECT_PAGE, entitySet, generateParameters.logger);
710
+ const v4Page = utils_2.findPageV4(pages, ux_specification_types_1.v4.FE_TEMPLATE_V4_OBJECT_PAGE, entitySet, generateParameters.logger);
679
711
  if (!v4Page) {
680
712
  return appSchema;
681
713
  }
@@ -689,6 +721,7 @@ function generateObjectPageSchemaV4(generateParameters, genericSchema, entityTyp
689
721
  addRelatedFacetKeysType(generateParameters, appSchema, entitySet.name, pages);
690
722
  // Add Footer (actions only)
691
723
  common_1.addFooterActions(appSchema, generateParameters, ux_specification_types_1.FioriElementsVersion.v4, addFooterActionCallBackV4);
724
+ addHeaderFooterCustomActionsOP(appSchema, v4Page, ux_specification_types_1.DefinitionName.CustomFooterActionOP, generateParameters.logger);
692
725
  }
693
726
  // Delete generic definitions from schema
694
727
  delete appSchema.definitions[ux_specification_types_1.DefinitionName.CommonHeaderFacetSettings];