@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.
- package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
- package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
- package/dist/documentation/v2/v2-ListReport.html +1 -1
- package/dist/documentation/v2/v2-ObjectPage.html +1 -1
- package/dist/documentation/v2/v2-OverviewPage.html +1 -1
- package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
- package/dist/documentation/v4/v4-BuildingBlocks.html +60 -0
- package/dist/documentation/v4/v4-FreestylePage.html +1 -1
- package/dist/documentation/v4/v4-ListReport.html +1 -1
- package/dist/documentation/v4/v4-ObjectPage.html +1 -1
- package/dist/index-min.js +271 -187
- package/dist/index-min.js.map +3 -3
- package/dist/package.json +111 -0
- package/dist/schemas/v4/BuildingBlocksConfig.json +750 -0
- package/dist/schemas/v4/ObjectPageConfig.json +185 -9
- package/dist/scripts/macros/api.d.ts +9 -0
- package/dist/scripts/macros/api.d.ts.map +1 -0
- package/dist/scripts/macros/api.js +161 -0
- package/dist/scripts/macros/api.js.map +1 -0
- package/dist/scripts/macros/cmd.d.ts +7 -0
- package/dist/scripts/macros/cmd.d.ts.map +1 -0
- package/dist/scripts/macros/cmd.js +49 -0
- package/dist/scripts/macros/cmd.js.map +1 -0
- package/dist/scripts/macros/corrections.d.ts +18 -0
- package/dist/scripts/macros/corrections.d.ts.map +1 -0
- package/dist/scripts/macros/corrections.js +188 -0
- package/dist/scripts/macros/corrections.js.map +1 -0
- package/dist/scripts/macros/index.d.ts +2 -0
- package/dist/scripts/macros/index.d.ts.map +1 -0
- package/dist/scripts/macros/index.js +8 -0
- package/dist/scripts/macros/index.js.map +1 -0
- package/dist/scripts/macros/schema.d.ts +9 -0
- package/dist/scripts/macros/schema.d.ts.map +1 -0
- package/dist/scripts/macros/schema.js +201 -0
- package/dist/scripts/macros/schema.js.map +1 -0
- package/dist/scripts/macros/types.d.ts +77 -0
- package/dist/scripts/macros/types.d.ts.map +1 -0
- package/dist/scripts/macros/types.js +14 -0
- package/dist/scripts/macros/types.js.map +1 -0
- package/dist/src/api.d.ts.map +1 -1
- package/dist/src/api.js +8 -1
- package/dist/src/api.js.map +1 -1
- package/dist/src/project.d.ts +1 -0
- package/dist/src/project.d.ts.map +1 -1
- package/dist/src/project.js +6 -4
- package/dist/src/project.js.map +1 -1
- package/dist/src/specification/schemaAccess.d.ts.map +1 -1
- package/dist/src/specification/schemaAccess.js +16 -3
- package/dist/src/specification/schemaAccess.js.map +1 -1
- package/dist/src/sync/common/appProvider.d.ts +12 -0
- package/dist/src/sync/common/appProvider.d.ts.map +1 -1
- package/dist/src/sync/common/appProvider.js +51 -18
- package/dist/src/sync/common/appProvider.js.map +1 -1
- package/dist/src/sync/common/generate/utils.d.ts +7 -7
- package/dist/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/src/sync/common/generate/utils.js +27 -33
- package/dist/src/sync/common/generate/utils.js.map +1 -1
- package/dist/src/sync/common/i18n.json +2 -1
- package/dist/src/sync/common/importProject.d.ts.map +1 -1
- package/dist/src/sync/common/importProject.js +67 -31
- package/dist/src/sync/common/importProject.js.map +1 -1
- package/dist/src/sync/common/types.d.ts +6 -0
- package/dist/src/sync/common/types.d.ts.map +1 -0
- package/dist/src/sync/common/types.js +3 -0
- package/dist/src/sync/common/types.js.map +1 -0
- package/dist/src/sync/common/utils.d.ts +26 -5
- package/dist/src/sync/common/utils.d.ts.map +1 -1
- package/dist/src/sync/common/utils.js +42 -5
- package/dist/src/sync/common/utils.js.map +1 -1
- package/dist/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
- package/dist/src/sync/v2/generate/analyticalListReport.js +1 -0
- package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/src/sync/v2/generate/listReport.d.ts.map +1 -1
- package/dist/src/sync/v2/generate/listReport.js +1 -0
- package/dist/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/src/sync/v2/generate/objectPage.d.ts.map +1 -1
- package/dist/src/sync/v2/generate/objectPage.js +1 -0
- package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooter.d.ts +5 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooter.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooter.js +4 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooter.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.d.ts +14 -0
- package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.js +83 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts +5 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeader.js +4 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeader.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts +14 -0
- package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.js +83 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.js.map +1 -1
- package/dist/src/sync/v4/export/export.d.ts +1 -0
- package/dist/src/sync/v4/export/export.d.ts.map +1 -1
- package/dist/src/sync/v4/export/export.js +11 -6
- package/dist/src/sync/v4/export/export.js.map +1 -1
- package/dist/src/sync/v4/export/fpmCustomPage.d.ts +11 -0
- package/dist/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -0
- package/dist/src/sync/v4/export/fpmCustomPage.js +131 -0
- package/dist/src/sync/v4/export/fpmCustomPage.js.map +1 -0
- package/dist/src/sync/v4/generate/fpmCustomPage.d.ts +10 -0
- package/dist/src/sync/v4/generate/fpmCustomPage.d.ts.map +1 -0
- package/dist/src/sync/v4/generate/fpmCustomPage.js +266 -0
- package/dist/src/sync/v4/generate/fpmCustomPage.js.map +1 -0
- package/dist/src/sync/v4/generate/generate.d.ts +13 -1
- package/dist/src/sync/v4/generate/generate.d.ts.map +1 -1
- package/dist/src/sync/v4/generate/generate.js +22 -1
- package/dist/src/sync/v4/generate/generate.js.map +1 -1
- package/dist/src/sync/v4/generate/index.d.ts +2 -1
- package/dist/src/sync/v4/generate/index.d.ts.map +1 -1
- package/dist/src/sync/v4/generate/index.js +4 -1
- package/dist/src/sync/v4/generate/index.js.map +1 -1
- package/dist/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/src/sync/v4/generate/objectPage.js +45 -12
- package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v4/import/app/appProvider.d.ts +2 -1
- package/dist/src/sync/v4/import/app/appProvider.d.ts.map +1 -1
- package/dist/src/sync/v4/import/app/appProvider.js +2 -2
- package/dist/src/sync/v4/import/app/appProvider.js.map +1 -1
- package/dist/src/sync/v4/import/app/baseAppProvider.d.ts +7 -2
- package/dist/src/sync/v4/import/app/baseAppProvider.d.ts.map +1 -1
- package/dist/src/sync/v4/import/app/baseAppProvider.js +26 -6
- package/dist/src/sync/v4/import/app/baseAppProvider.js.map +1 -1
- package/dist/src/sync/v4/import/app/freestyleProvider.d.ts +2 -1
- package/dist/src/sync/v4/import/app/freestyleProvider.d.ts.map +1 -1
- package/dist/src/sync/v4/import/app/freestyleProvider.js +2 -2
- package/dist/src/sync/v4/import/app/freestyleProvider.js.map +1 -1
- package/dist/src/sync/v4/import/index.d.ts +1 -0
- package/dist/src/sync/v4/import/index.d.ts.map +1 -1
- package/dist/src/sync/v4/import/index.js +1 -0
- package/dist/src/sync/v4/import/index.js.map +1 -1
- package/dist/src/sync/v4/import/pages/fpmCustomPage.d.ts +9 -0
- package/dist/src/sync/v4/import/pages/fpmCustomPage.d.ts.map +1 -0
- package/dist/src/sync/v4/import/pages/fpmCustomPage.js +102 -0
- package/dist/src/sync/v4/import/pages/fpmCustomPage.js.map +1 -0
- package/dist/src/sync/v4/import/pages/objectPage.js +1 -1
- package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/src/sync/v4/utils/macros.d.ts +29 -0
- package/dist/src/sync/v4/utils/macros.d.ts.map +1 -0
- package/dist/src/sync/v4/utils/macros.js +113 -0
- package/dist/src/sync/v4/utils/macros.js.map +1 -0
- package/dist/src/sync/v4/utils/utils.d.ts +11 -1
- package/dist/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/src/sync/v4/utils/utils.js +88 -1
- package/dist/src/sync/v4/utils/utils.js.map +1 -1
- 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":"
|
|
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,
|
|
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 {
|
|
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,
|
|
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,
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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];
|