@sap/ux-specification 1.136.9 → 1.136.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
- package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
- package/dist/documentation/v2/v2-ListReport.html +2 -2
- package/dist/documentation/v2/v2-ListReportNew.html +2 -2
- package/dist/documentation/v2/v2-ObjectPage.html +2 -2
- package/dist/documentation/v2/v2-OverviewPage.html +2 -2
- package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
- package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
- package/dist/documentation/v4/v4-FreestylePage.html +2 -2
- package/dist/documentation/v4/v4-ListReport.html +2 -2
- package/dist/documentation/v4/v4-ObjectPage.html +2 -2
- package/dist/index-min.js +437 -135
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v4/BuildingBlocksConfig.json +325 -8
- package/dist/schemas/v4/ListReportConfig.json +93 -0
- package/dist/schemas/v4/ObjectPageConfig.json +70 -3
- package/dist/specification/package.json +10 -7
- package/dist/specification/src/api.d.ts +1 -0
- package/dist/specification/src/api.d.ts.map +1 -1
- package/dist/specification/src/api.js +6 -3
- package/dist/specification/src/api.js.map +1 -1
- package/dist/specification/src/ftfs/annotations.d.ts +12 -0
- package/dist/specification/src/ftfs/annotations.d.ts.map +1 -0
- package/dist/specification/src/ftfs/annotations.js +50 -0
- package/dist/specification/src/ftfs/annotations.js.map +1 -0
- package/dist/specification/src/ftfs/ftfs.d.ts +9 -0
- package/dist/specification/src/ftfs/ftfs.d.ts.map +1 -0
- package/dist/specification/src/ftfs/ftfs.js +49 -0
- package/dist/specification/src/ftfs/ftfs.js.map +1 -0
- package/dist/specification/src/ftfs/index.d.ts +2 -0
- package/dist/specification/src/ftfs/index.d.ts.map +1 -0
- package/dist/specification/src/ftfs/index.js +6 -0
- package/dist/specification/src/ftfs/index.js.map +1 -0
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts +75 -0
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts.map +1 -0
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js +70 -0
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js.map +1 -0
- package/dist/specification/src/sync/common/dist_tag.json +19 -4
- package/dist/specification/src/sync/common/generate/utils.d.ts +5 -3
- package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +7 -4
- package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/common/i18n.json +5 -1
- package/dist/specification/src/sync/common/index.d.ts +1 -0
- package/dist/specification/src/sync/common/index.d.ts.map +1 -1
- package/dist/specification/src/sync/common/index.js +1 -0
- package/dist/specification/src/sync/common/index.js.map +1 -1
- package/dist/specification/src/sync/common/rules.d.ts +6 -0
- package/dist/specification/src/sync/common/rules.d.ts.map +1 -0
- package/dist/specification/src/sync/common/rules.js +126 -0
- package/dist/specification/src/sync/common/rules.js.map +1 -0
- package/dist/specification/src/sync/v4/application.d.ts +23 -0
- package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/application.js +39 -2
- package/dist/specification/src/sync/v4/application.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Field.d.ts +17 -0
- package/dist/specification/src/sync/v4/export/controls/Field.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/export/controls/Field.js +74 -0
- package/dist/specification/src/sync/v4/export/controls/Field.js.map +1 -0
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts +4 -10
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js +61 -121
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +63 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +220 -2
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/index.d.ts +1 -0
- package/dist/specification/src/sync/v4/export/controls/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/index.js +1 -0
- package/dist/specification/src/sync/v4/export/controls/index.js.map +1 -1
- package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/export.js +18 -2
- package/dist/specification/src/sync/v4/export/export.js.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts +10 -0
- package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js +55 -6
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/listReport.d.ts +12 -1
- package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/listReport.js +183 -40
- package/dist/specification/src/sync/v4/generate/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +55 -11
- package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/objectPage.js +61 -10
- package/dist/specification/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/macros.d.ts +12 -4
- package/dist/specification/src/sync/v4/utils/macros.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/macros.js +23 -8
- package/dist/specification/src/sync/v4/utils/macros.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts +35 -13
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +108 -37
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/types/src/apiTypes.d.ts +34 -3
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js +1 -0
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +24 -3
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +23 -1
- package/dist/types/src/common/types.js.map +1 -1
- package/dist/types/src/v4/controls/CustomField.d.ts +45 -0
- package/dist/types/src/v4/controls/CustomField.d.ts.map +1 -0
- package/dist/types/src/v4/controls/CustomField.js +9 -0
- package/dist/types/src/v4/controls/CustomField.js.map +1 -0
- package/dist/types/src/v4/controls/ObjectPageForm.d.ts +2 -1
- package/dist/types/src/v4/controls/ObjectPageForm.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts +4 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.js.map +1 -1
- package/dist/types/src/v4/controls/Table.d.ts +61 -3
- package/dist/types/src/v4/controls/Table.d.ts.map +1 -1
- package/dist/types/src/v4/controls/Table.js.map +1 -1
- package/dist/types/src/v4/controls/index.d.ts +1 -0
- package/dist/types/src/v4/controls/index.d.ts.map +1 -1
- package/dist/types/src/v4/controls/index.js +1 -0
- package/dist/types/src/v4/controls/index.js.map +1 -1
- package/dist/types/src/v4/webapp/manifest/sapUiPageV4.d.ts +1 -0
- package/dist/types/src/v4/webapp/manifest/sapUiPageV4.d.ts.map +1 -1
- package/dist/types/src/v4/webapp/manifest/sapUiPageV4.js.map +1 -1
- package/package.json +10 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fpmCustomPage.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/export/fpmCustomPage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fpmCustomPage.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/export/fpmCustomPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EACR,+BAA+B,EAC/B,aAAa,EACb,eAAe,EACf,gBAAgB,EACnB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,aAAa,CAAC,EAAE,KAAK,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;CACN;AAyJD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACpC,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,GAAG,UAAU,EAClC,MAAM,CAAC,EAAE,eAAe,QAqC3B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GAClC,kBAAkB,+BAA+B,EACjD,qBAAqB,aAAa,KACnC,aAYF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAChC,oBAAoB,uBAAuB,EAC3C,cAAc,MAAM,EACpB,QAAQ,MAAM,KACf,IAkBF,CAAC"}
|
|
@@ -37,6 +37,29 @@ function deleteProperty(traverseData, name) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Callback method of traversing schema and XML.
|
|
42
|
+
* Method exports value from page config object to XML element.
|
|
43
|
+
*
|
|
44
|
+
* @param {TraverseData} traverseData Schema and XML traverse data.
|
|
45
|
+
* @param {SchemaDefinition} property Schema property to use for export.
|
|
46
|
+
* @param {object} config Fragment of page config object.
|
|
47
|
+
* @param {string} name Name of property to export.
|
|
48
|
+
* @returns {boolean} Is new value differs.
|
|
49
|
+
*/
|
|
50
|
+
function detectElementDeletion(traverseData, property, config, name) {
|
|
51
|
+
const { element, parentElement } = traverseData;
|
|
52
|
+
if (element?.name === name) {
|
|
53
|
+
if (traverseData.data?.nodesToDelete) {
|
|
54
|
+
traverseData.data.nodesToDelete.push({
|
|
55
|
+
element,
|
|
56
|
+
parent: parentElement
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
40
63
|
/**
|
|
41
64
|
* Callback method of traversing schema and XML.
|
|
42
65
|
* Method exports value from page config object to XML element.
|
|
@@ -76,10 +99,12 @@ function exportProperty(traverseData, property, config, name) {
|
|
|
76
99
|
}
|
|
77
100
|
],
|
|
78
101
|
config: config[name],
|
|
79
|
-
parent: traverseData
|
|
80
|
-
|
|
102
|
+
parent: traverseData,
|
|
103
|
+
parentElement: element,
|
|
104
|
+
data: traverseData.data
|
|
105
|
+
}, exportProperty, detectElementDeletion);
|
|
81
106
|
}
|
|
82
|
-
else if (!isExportValueEquals(element.attributes?.[name], config[name])) {
|
|
107
|
+
else if (element && !isExportValueEquals(element.attributes?.[name], config[name])) {
|
|
83
108
|
if (!element.attributes) {
|
|
84
109
|
element.attributes = {};
|
|
85
110
|
}
|
|
@@ -87,12 +112,29 @@ function exportProperty(traverseData, property, config, name) {
|
|
|
87
112
|
differs = true;
|
|
88
113
|
}
|
|
89
114
|
}
|
|
90
|
-
else if (element
|
|
115
|
+
else if (element?.attributes?.[name]) {
|
|
91
116
|
deleteProperty(traverseData, name);
|
|
92
117
|
differs = true;
|
|
93
118
|
}
|
|
94
119
|
return differs;
|
|
95
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Deletes elements from their parent containers.
|
|
123
|
+
*
|
|
124
|
+
* @param nodesToDelete Array of elements marked for deletion with their parent references
|
|
125
|
+
*/
|
|
126
|
+
function deleteElements(nodesToDelete) {
|
|
127
|
+
for (const deleteNode of nodesToDelete) {
|
|
128
|
+
const { parent, element } = deleteNode;
|
|
129
|
+
if (!parent?.elements) {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
const index = parent.elements.findIndex((el) => el === element);
|
|
133
|
+
if (index !== -1) {
|
|
134
|
+
parent.elements.splice(index, 1);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
96
138
|
/**
|
|
97
139
|
* Populates export results with data from extension.
|
|
98
140
|
*
|
|
@@ -107,14 +149,21 @@ function getExtensionExportResult(extensionData, exportResults, config, jsonSche
|
|
|
107
149
|
const element = (0, macros_1.parseXML)(extensionData.file, false, logger);
|
|
108
150
|
if (element) {
|
|
109
151
|
const coreElement = (0, macros_1.getRootElement)(element);
|
|
152
|
+
const traversionData = {
|
|
153
|
+
nodesToDelete: []
|
|
154
|
+
};
|
|
110
155
|
const differs = (0, macros_1.traverseSchema)({
|
|
111
156
|
fullSchema: jsonSchema,
|
|
112
157
|
schema: jsonSchema,
|
|
113
158
|
element: coreElement,
|
|
114
159
|
contextPath: [],
|
|
115
|
-
config
|
|
116
|
-
|
|
160
|
+
config,
|
|
161
|
+
data: traversionData
|
|
162
|
+
}, exportProperty, detectElementDeletion);
|
|
117
163
|
if (differs) {
|
|
164
|
+
if (traversionData.nodesToDelete?.length) {
|
|
165
|
+
deleteElements(traversionData.nodesToDelete);
|
|
166
|
+
}
|
|
118
167
|
const fileContent = (0, xml_js_1.js2xml)(element, { spaces: 4 });
|
|
119
168
|
const extensionExportResult = {
|
|
120
169
|
dataSourceUri: extensionData.file.dataSourceUri,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fpmCustomPage.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/export/fpmCustomPage.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"fpmCustomPage.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/export/fpmCustomPage.ts"],"names":[],"mappings":";;;AAyLA,4DA2CC;AApOD,mCAA8C;AAO9C,wEAAkF;AAClF,0CAAoG;AACpG,4CAAoH;AAepH;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,MAAe,EAAE,MAAe;IACzD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;AAC1G,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,YAAoD,EAAE,IAAY;IACtF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAC9D,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IACI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,2CAAkB,CAAC,QAAQ;QACrD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC;QAC5C,MAAM,EAAE,OAAO,CAAC,QAAQ,EAC1B,CAAC;QACC,8FAA8F;QAC9F,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,qBAAqB,CAC1B,YAAoD,EACpD,QAA0B,EAC1B,MAA0B,EAC1B,IAAY;IAEZ,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAChD,IAAI,OAAO,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACjC,OAAO;gBACP,MAAM,EAAE,aAAa;aACxB,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CACnB,YAAoD,EACpD,QAA0B,EAC1B,MAAc,EACd,IAAY;IAEZ,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAC1D,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,wCAAwC;QACxC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM,aAAa,GAAG;gBAClB,IAAI;gBACJ,IAAI,EAAE,SAAS;aAClB,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrC,OAAO,IAAA,uBAAc,EACjB;gBACI,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE;oBACT,GAAG,WAAW;oBACd;wBACI,IAAI;wBACJ,KAAK,EAAE,CAAC;qBACX;iBACJ;gBACD,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,OAAO;gBACtB,IAAI,EAAE,YAAY,CAAC,IAAI;aAC1B,EACD,cAAc,EACd,qBAAqB,CACxB,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;YAC5B,CAAC;YACD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;IACL,CAAC;SAAM,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,aAAwD;IAC5E,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAEvC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;YACpB,SAAS;QACb,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAChE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,wBAAwB,CACpC,aAAgC,EAChC,aAA4B,EAC5B,MAAc,EACd,UAA4B,EAC5B,aAAkC,EAClC,MAAwB;IAExB,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,cAAc,GAA6B;YAC7C,aAAa,EAAE,EAAE;SACpB,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,uBAAc,EAC1B;YACI,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,EAAE;YACf,MAAM;YACN,IAAI,EAAE,cAAc;SACvB,EACD,cAAc,EACd,qBAAqB,CACxB,CAAC;QACF,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBACvC,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,WAAW,GAAG,IAAA,eAAM,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,qBAAqB,GAAG;gBAC1B,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa;gBAC/C,WAAW;gBACX,eAAe,EAAE,wCAAe,CAAC,OAAO;aAC3C,CAAC;YACF,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;gBAC3B,aAAa,CAAC,KAAK,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;gBACtC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACI,MAAM,yBAAyB,GAAG,CACrC,gBAAiD,EACjD,mBAAkC,EACrB,EAAE;IACf,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC;IACvE,MAAM,aAAa,GAAkB,EAAE,GAAG,mBAAmB,EAAE,QAAQ,EAAE,CAAC;IAC1E,IAAI,QAAQ,GAAkC,SAAS,CAAC;IACxD,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,QAAQ,GAAG,IAAA,6BAAqB,EAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACX,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAfW,QAAA,yBAAyB,6BAepC;AAEF;;;;;;GAMG;AACI,MAAM,uBAAuB,GAAG,CACnC,kBAA2C,EAC3C,YAAoB,EACpB,MAAc,EACV,EAAE;IACN,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC;IAC1F,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IACnC,IAAI,YAAY,GAAkC,SAAS,CAAC;IAC5D,MAAM,aAAa,GAAG,UAAU,CAAC;IACjC,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,YAAY,GAAG,IAAA,kCAA0B,EAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IACpH,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,aAAa,GAAG,IAAA,gDAAuC,EAAC,YAAY,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,aAAa,CAAqB,CAAC;QACvF,MAAM,UAAU,GAAG;YACf,GAAG,kBAAkB;YACrB,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC;SACpB,CAAC;QACtB,wBAAwB,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACrG,CAAC;AACL,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
+
import { type LineItemDataForSchema } from '../utils/utils';
|
|
1
2
|
import { Visualization } from '@sap/ux-specification-types';
|
|
2
|
-
import type { ExtensionLogger, GenerateAppSchemaParameters } from '@sap/ux-specification-types';
|
|
3
|
+
import type { ExtensionLogger, v4, GenerateAppSchemaParameters } from '@sap/ux-specification-types';
|
|
3
4
|
import type { AnnotationTerm, EntityType, ConvertedMetadata } from '@sap-ux/vocabularies-types';
|
|
4
5
|
import type { SelectionFields } from '@sap-ux/vocabularies-types/vocabularies/UI';
|
|
5
6
|
import type { Definition } from 'typescript-json-schema';
|
|
7
|
+
export interface SchemaAdjustmentParameters {
|
|
8
|
+
generateParameters: GenerateAppSchemaParameters;
|
|
9
|
+
appSchema: Definition;
|
|
10
|
+
v4Page: v4.SapUiAppPageV4;
|
|
11
|
+
tableDefinitionId: string;
|
|
12
|
+
facetDefinitionId: string;
|
|
13
|
+
viewKey?: string;
|
|
14
|
+
entityType?: EntityType;
|
|
15
|
+
dataForLineItem: LineItemDataForSchema;
|
|
16
|
+
}
|
|
6
17
|
/**
|
|
7
18
|
* Adds the selection fields to the app schema, as properties of the FilterBar.
|
|
8
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listReport.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/listReport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"listReport.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/listReport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAc1F,OAAO,EAKH,aAAa,EAWhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAa,UAAU,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC3G,OAAO,KAAK,EAAoC,eAAe,EAAE,MAAM,4CAA4C,CAAC;AA0BpH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD,MAAM,WAAW,0BAA0B;IACvC,kBAAkB,EAAE,2BAA2B,CAAC;IAChD,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,qBAAqB,CAAC;CAC1C;AAKD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,EACrB,yBAAyB,EAAE,cAAc,CAAC,eAAe,CAAC,EAC1D,yBAAyB,CAAC,EAAE,UAAU,EACtC,SAAS,CAAC,EAAE,MAAM,GACnB,UAAU,CAsDZ;AA+SD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACjC,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,CAAC,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,aAAa,EACjC,MAAM,CAAC,EAAE,eAAe,GACzB;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgDvF;AAo7BD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACtC,kBAAkB,EAAE,2BAA2B,EAC/C,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GACpB,MAAM,CAqCR"}
|
|
@@ -7,6 +7,7 @@ exports.addSelectionFields = addSelectionFields;
|
|
|
7
7
|
exports.analyzeViewAnnotation = analyzeViewAnnotation;
|
|
8
8
|
exports.generateListReportSchemaV4 = generateListReportSchemaV4;
|
|
9
9
|
const utils_1 = require("../utils/utils");
|
|
10
|
+
const utils_2 = require("../utils/utils");
|
|
10
11
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
11
12
|
const i18next_1 = __importDefault(require("i18next"));
|
|
12
13
|
const extensionLogger_1 = require("../../../extensionLogger");
|
|
@@ -153,7 +154,7 @@ function applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page) {
|
|
|
153
154
|
selectionFieldsDefinition.additionalProperties = {
|
|
154
155
|
$ref: `#/definitions/${ux_specification_types_1.DefinitionName.CustomFilterField}`
|
|
155
156
|
};
|
|
156
|
-
(0,
|
|
157
|
+
(0, utils_2.addCustomFilterFieldDefinition)(appSchema, selectionFieldsDefinition, v4Page);
|
|
157
158
|
const customSectionDefinition = appSchema.definitions[ux_specification_types_1.DefinitionName.CustomFilterFieldPosition];
|
|
158
159
|
if (typeof customSectionDefinition === 'object') {
|
|
159
160
|
(0, common_1.addDescriptiveEnumDefinition)(appSchema, selectionFieldsDefinition, {
|
|
@@ -478,22 +479,29 @@ function addALPViews(appSchema, viewsPaths, generateParameters, templateAnnotati
|
|
|
478
479
|
oDataServiceAVT: generateParameters.serviceAVT,
|
|
479
480
|
lineItemId: ux_specification_types_1.DefinitionName.LineItems
|
|
480
481
|
};
|
|
481
|
-
(0,
|
|
482
|
+
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem, ux_specification_types_1.DefinitionName.ViewTableColumn);
|
|
482
483
|
if (target) {
|
|
483
484
|
appSchema.definitions[ux_specification_types_1.DefinitionName.ALPTable][ux_specification_types_1.SchemaTag.annotationPath] = target;
|
|
484
485
|
}
|
|
485
|
-
|
|
486
|
-
|
|
486
|
+
const schemaAdjustmentParameters = {
|
|
487
|
+
generateParameters,
|
|
488
|
+
appSchema,
|
|
489
|
+
v4Page,
|
|
490
|
+
tableDefinitionId: ux_specification_types_1.DefinitionName.ALPTable,
|
|
491
|
+
facetDefinitionId: ux_specification_types_1.DefinitionName.LineItems,
|
|
492
|
+
dataForLineItem
|
|
493
|
+
};
|
|
494
|
+
applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
|
|
487
495
|
const pathParts = annotations[viewAnnotation].fullyQualifiedName.split('@');
|
|
488
496
|
tableView[ux_specification_types_1.SchemaTag.annotationPath] = `/${pathParts[0]}/@${pathParts[1]}`;
|
|
489
497
|
tableView[ux_specification_types_1.SchemaTag.key] = 'secondary';
|
|
490
498
|
tableView[ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: 'secondary' }];
|
|
491
499
|
}
|
|
492
|
-
(0,
|
|
500
|
+
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger);
|
|
493
501
|
// Table toolbar actions with custom actions
|
|
494
502
|
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`;
|
|
495
|
-
(0,
|
|
496
|
-
(0,
|
|
503
|
+
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, undefined, schemaIdForToolbarActions);
|
|
504
|
+
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForToolbarActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
497
505
|
}
|
|
498
506
|
/**
|
|
499
507
|
* Modifies the app schema, adds the right line chart settings.
|
|
@@ -544,16 +552,128 @@ function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition
|
|
|
544
552
|
title: titleOnHover
|
|
545
553
|
};
|
|
546
554
|
}
|
|
555
|
+
/**
|
|
556
|
+
* Retrieves the line item reference for a specified view and entity type.
|
|
557
|
+
*
|
|
558
|
+
* @param {SapUiAppPageV4} v4Page - The page object containing application-specific settings and views configuration.
|
|
559
|
+
* @param {EntityType} entityType - The entity type definition for which the line item reference is required.
|
|
560
|
+
* @param {string} viewKey - The key identifying the desired view configuration.
|
|
561
|
+
* @param {string} lineItemTerm - The term representing the line item annotation.
|
|
562
|
+
* @param {string} lineItemQualifier - The qualifier representing the line item annotation.
|
|
563
|
+
* @returns {string} The resolved line item reference in the form of a path or annotation term.
|
|
564
|
+
*/
|
|
565
|
+
function getLineItemRef(v4Page, entityType, viewKey, lineItemTerm, lineItemQualifier) {
|
|
566
|
+
const qualifier = lineItemQualifier ? `#${lineItemQualifier}` : ``;
|
|
567
|
+
const path = (v4Page?.options?.settings?.views?.paths ?? []).find((path) => path.key === viewKey);
|
|
568
|
+
if (path === undefined) {
|
|
569
|
+
return `@${lineItemTerm}${qualifier}`;
|
|
570
|
+
}
|
|
571
|
+
const { annotationPath, entitySet } = path;
|
|
572
|
+
const viewAnnotationPath = (annotationPath ?? '').split(ux_specification_types_1.UIVOCABULARYDOT)[1];
|
|
573
|
+
const lineItemReference = entityType?.annotations?.UI?.[viewAnnotationPath]?.PresentationVariant?.Visualizations?.[0]?.value ??
|
|
574
|
+
`@${lineItemTerm}${qualifier}`;
|
|
575
|
+
return entitySet ? `/${entitySet}/${lineItemReference}` : lineItemReference;
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Adjusts the schema definition related to the creation fields in the list report (LR) table.
|
|
579
|
+
* This function modifies the app schema to handle the creation mode and relevant settings for the table.
|
|
580
|
+
*
|
|
581
|
+
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
582
|
+
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
583
|
+
* @returns {void} This function does not return any value.
|
|
584
|
+
*/
|
|
585
|
+
function adjustCreationFieldsDefinition(schemaAdjustmentParameters) {
|
|
586
|
+
const { appSchema, tableDefinitionId, facetDefinitionId, v4Page, generateParameters, viewKey } = schemaAdjustmentParameters;
|
|
587
|
+
// when the table view is created, the entity type may differ from the one used for the table
|
|
588
|
+
// schemaAdjustmentParameters contains the entity type used for the view
|
|
589
|
+
const entityType = schemaAdjustmentParameters.entityType ?? generateParameters.entityType;
|
|
590
|
+
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term);
|
|
591
|
+
// set specific implementation for creation fields in the LR table
|
|
592
|
+
const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionId);
|
|
593
|
+
const tableDefinition = appSchema.definitions[tableDefinitionId];
|
|
594
|
+
const creationModeProperty = tableDefinition.properties[ux_specification_types_1.PropertyName.creationMode];
|
|
595
|
+
creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionId);
|
|
596
|
+
const creationModeDefinition = appSchema.definitions[creationModeDefinitionKey] ??
|
|
597
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionId, appSchema);
|
|
598
|
+
const context = {
|
|
599
|
+
page: v4Page,
|
|
600
|
+
schema: creationModeDefinition,
|
|
601
|
+
parameters: {
|
|
602
|
+
lineItemRef,
|
|
603
|
+
tableDefinition
|
|
604
|
+
}
|
|
605
|
+
};
|
|
606
|
+
// for the AnalyticalTable we don't set the creation mode property
|
|
607
|
+
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRCreationModeForAnalyticalTable, context);
|
|
608
|
+
// the TreeTable has some specific properties in the creation mode
|
|
609
|
+
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRCreationModeForNonTreeTable, context);
|
|
610
|
+
// only in CreationDialog mode is the creationFields property allowed
|
|
611
|
+
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRCreationModeForNonCreationDialogMode, context);
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* Adjusts the schema definition related to the analytical configuration in the list report (LR) table.
|
|
615
|
+
* This function modifies the app schema to handle the analytical configuration and relevant settings for the table.
|
|
616
|
+
*
|
|
617
|
+
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
618
|
+
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
619
|
+
* @returns {void} This function does not return any value.
|
|
620
|
+
*/
|
|
621
|
+
function adjustAnalyticalConfiguration(schemaAdjustmentParameters) {
|
|
622
|
+
const { appSchema, tableDefinitionId, facetDefinitionId, v4Page, generateParameters, viewKey, dataForLineItem } = schemaAdjustmentParameters;
|
|
623
|
+
// when the table view is created, the entity type may differ from the one used for the table
|
|
624
|
+
// schemaAdjustmentParameters contains the entity type used for the view
|
|
625
|
+
const entityType = schemaAdjustmentParameters.entityType ?? generateParameters.entityType;
|
|
626
|
+
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
|
|
627
|
+
// set specific implementation for analytical configuration in the LR table
|
|
628
|
+
const tableDefinition = appSchema.definitions[tableDefinitionId];
|
|
629
|
+
const analyticalConfigurationDefinitionName = viewKey
|
|
630
|
+
? ux_specification_types_1.DefinitionName.ViewAnalyticalConfiguration
|
|
631
|
+
: ux_specification_types_1.DefinitionName.AnalyticalConfiguration;
|
|
632
|
+
const analyticalConfigurationDefinition = appSchema.definitions[analyticalConfigurationDefinitionName] ??
|
|
633
|
+
(0, common_1.parseSchemaDefinition)(analyticalConfigurationDefinitionName, facetDefinitionId, appSchema);
|
|
634
|
+
const context = {
|
|
635
|
+
page: v4Page,
|
|
636
|
+
schema: analyticalConfigurationDefinition,
|
|
637
|
+
parameters: {
|
|
638
|
+
lineItemRef,
|
|
639
|
+
tableDefinition
|
|
640
|
+
}
|
|
641
|
+
};
|
|
642
|
+
// for the AnalyticalTable we set the analytical configuration property
|
|
643
|
+
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRAnalyticalConfigurationForNonAnalyticalTable, context);
|
|
644
|
+
}
|
|
645
|
+
/**
|
|
646
|
+
* Adjusts the schema for a table by making necessary changes such as populating creation fields,
|
|
647
|
+
* adjusting creation field definitions, and adding enum mappings for mass edit functionalities.
|
|
648
|
+
*
|
|
649
|
+
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - Object containing the parameters required for schema adjustments. Includes the generate parameters, application schema, table definition ID, and facet definition ID.
|
|
650
|
+
* @returns {void} This function does not return a value; it performs in-place adjustments to the schema provided through the input parameters.
|
|
651
|
+
*/
|
|
652
|
+
function applyLRTableSchemaAdjustments(schemaAdjustmentParameters) {
|
|
653
|
+
const { generateParameters, appSchema, tableDefinitionId, facetDefinitionId } = schemaAdjustmentParameters;
|
|
654
|
+
const { entityType } = generateParameters;
|
|
655
|
+
// in the future, all postgeneration adjustments for the LR Page should be done here
|
|
656
|
+
// populate the creation fields for the table with the data from the columns
|
|
657
|
+
(0, utils_1.initializeCreationModeSchema)(appSchema, facetDefinitionId, entityType, ux_specification_types_1.DefinitionName.TableCreationModeLR);
|
|
658
|
+
// remove unnecessary properties from the creation mode aggregation according to the table type
|
|
659
|
+
adjustCreationFieldsDefinition(schemaAdjustmentParameters);
|
|
660
|
+
// remove unnecessary properties from the analytical configuration aggregation according to the table type
|
|
661
|
+
adjustAnalyticalConfiguration(schemaAdjustmentParameters);
|
|
662
|
+
// add columns to a enum, in this case enableMassEdit -> visibleFields and ignoredFields
|
|
663
|
+
(0, utils_2.addEnumForEnableMassEdit)(appSchema, tableDefinitionId, facetDefinitionId, entityType);
|
|
664
|
+
}
|
|
547
665
|
/**
|
|
548
666
|
* Modifies the app schema, adds the right line item settings as derived from the visualization.
|
|
549
667
|
*
|
|
550
|
-
* @param inputParameters -
|
|
551
|
-
* @param viewsDefinition -
|
|
552
|
-
* @param visualization - visualization
|
|
553
|
-
* @param templateAnnotation -
|
|
554
|
-
* @param {GenerateAppSchemaParameters} generateParameters -
|
|
668
|
+
* @param {ViewsParameters} inputParameters - The parameters required for generating and defining the line items in the view schema.
|
|
669
|
+
* @param {Definition} viewsDefinition - The existing schema definition for views that will be updated with new view line items.
|
|
670
|
+
* @param {string} visualization - The visualization format or mode for the line items, used to determine the associated annotations.
|
|
671
|
+
* @param {string} templateAnnotation - The template annotation to infer metadata for the line items.
|
|
672
|
+
* @param {GenerateAppSchemaParameters} generateParameters - Parameters essential for schema generation, including OData service metadata.
|
|
673
|
+
* @param {v4.SapUiAppPageV4} v4Page - The V4 application page configuration where adjustments and schema changes will apply.
|
|
674
|
+
* @returns {void} No return value.
|
|
555
675
|
*/
|
|
556
|
-
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, generateParameters) {
|
|
676
|
+
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, generateParameters, v4Page) {
|
|
557
677
|
const tableId = `${ux_specification_types_1.DefinitionName.LRTableView}<${inputParameters.viewKey}>`;
|
|
558
678
|
const viewId = `${ux_specification_types_1.DefinitionName.LineItemsOfView}::${inputParameters.viewKey}`;
|
|
559
679
|
const lrTableView = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.LRTableView, inputParameters.viewKey, inputParameters.appSchema);
|
|
@@ -586,9 +706,18 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
586
706
|
oDataServiceAVT: generateParameters.serviceAVT,
|
|
587
707
|
lineItemId: viewId
|
|
588
708
|
};
|
|
589
|
-
(0,
|
|
590
|
-
|
|
591
|
-
|
|
709
|
+
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem, ux_specification_types_1.DefinitionName.ViewTableColumn, ux_specification_types_1.DefinitionName.ViewCustomColumn, ux_specification_types_1.DefinitionName.ViewCustomAction);
|
|
710
|
+
const schemaAdjustmentParameters = {
|
|
711
|
+
generateParameters,
|
|
712
|
+
appSchema: inputParameters.appSchema,
|
|
713
|
+
v4Page,
|
|
714
|
+
tableDefinitionId: tableId,
|
|
715
|
+
facetDefinitionId: viewId,
|
|
716
|
+
viewKey: inputParameters.viewKey,
|
|
717
|
+
entityType: inputParameters.targetEntityType,
|
|
718
|
+
dataForLineItem
|
|
719
|
+
};
|
|
720
|
+
applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
|
|
592
721
|
}
|
|
593
722
|
/**
|
|
594
723
|
* Adds the schema tags to a given view.
|
|
@@ -641,8 +770,8 @@ function addViewCustomExtensions(commonInputParameters, generateParameters, visu
|
|
|
641
770
|
const viewColumnDefinition = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomColumn, sectionId, commonInputParameters.appSchema);
|
|
642
771
|
(0, common_1.addDefinitionRef)(viewColumnDefinition.properties.position, ux_specification_types_1.DefinitionName.ViewPosition, sectionId);
|
|
643
772
|
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewPosition, sectionId, commonInputParameters.appSchema);
|
|
644
|
-
(0,
|
|
645
|
-
(0,
|
|
773
|
+
(0, utils_2.addCustomColumnDefinition)(commonInputParameters.appSchema, v4Page, generateParameters.logger, `${ux_specification_types_1.DefinitionName.ViewCustomColumn}<${sectionId}>`, sectionId, sectionIdInManifest);
|
|
774
|
+
(0, utils_2.addFragmentEnumForAnchor)(commonInputParameters.appSchema, sectionId, v4Page, `${ux_specification_types_1.DefinitionName.ViewPosition}<${sectionId}>`, sectionIdInManifest);
|
|
646
775
|
// Remove generic position
|
|
647
776
|
if (commonInputParameters.appSchema.definitions.Position) {
|
|
648
777
|
delete commonInputParameters.appSchema.definitions.Position;
|
|
@@ -650,14 +779,14 @@ function addViewCustomExtensions(commonInputParameters, generateParameters, visu
|
|
|
650
779
|
// Table toolbar actions with custom actions
|
|
651
780
|
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${sectionId}>`;
|
|
652
781
|
const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${sectionId}>`;
|
|
653
|
-
(0,
|
|
782
|
+
(0, utils_2.addCustomActionDefinition)(commonInputParameters.appSchema, v4Page, generateParameters.logger, customActionDefinitionKey, schemaIdForToolbarActions, sectionIdInManifest);
|
|
654
783
|
// Anchor selection
|
|
655
784
|
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition, sectionId, commonInputParameters.appSchema);
|
|
656
785
|
const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${sectionId}>`;
|
|
657
786
|
const customActionDefinition = commonInputParameters.appSchema.definitions[customActionDefinitionKey];
|
|
658
787
|
customActionDefinition.properties.position.$ref =
|
|
659
788
|
`${common_1.DEFINITION_LINK_PREFIX}${customActionPositionDefinitionKey}`;
|
|
660
|
-
(0,
|
|
789
|
+
(0, utils_2.addEnumForActionAnchor)(commonInputParameters.appSchema, schemaIdForToolbarActions, customActionPositionDefinitionKey);
|
|
661
790
|
}
|
|
662
791
|
/**
|
|
663
792
|
* Adds definition parts to a LR View (LineItem/Chart).
|
|
@@ -673,7 +802,7 @@ function addViewCustomExtensions(commonInputParameters, generateParameters, visu
|
|
|
673
802
|
function addLRViewParts(visualization, viewsDefinition, commonInputParameters, generateParameters, v4Page, uiAnnotations, view) {
|
|
674
803
|
if (visualization?.indexOf(ux_specification_types_1.Visualization.LineItem) > -1) {
|
|
675
804
|
//Add Line item view
|
|
676
|
-
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, generateParameters);
|
|
805
|
+
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, generateParameters, v4Page);
|
|
677
806
|
addViewCustomExtensions(commonInputParameters, generateParameters, visualization, v4Page);
|
|
678
807
|
}
|
|
679
808
|
else if (visualization?.indexOf('Chart') > -1) {
|
|
@@ -786,20 +915,27 @@ function adaptTableDefinition(appSchema, generateParameters, templateAnnotation,
|
|
|
786
915
|
oDataServiceAVT: generateParameters.serviceAVT,
|
|
787
916
|
lineItemId: annotationTermInSchema
|
|
788
917
|
};
|
|
789
|
-
(0,
|
|
918
|
+
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem);
|
|
790
919
|
const annotationTermQualifier = annotationTerm.split('#')?.[1];
|
|
791
920
|
const sectionIdInManifest = annotationTermQualifier
|
|
792
921
|
? `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}#${annotationTermQualifier}`
|
|
793
922
|
: `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}`;
|
|
794
|
-
(0,
|
|
795
|
-
(0,
|
|
796
|
-
|
|
797
|
-
|
|
923
|
+
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger, undefined, annotationTermInSchema, sectionIdInManifest);
|
|
924
|
+
(0, utils_2.addFragmentEnumForAnchor)(appSchema, annotationTermInSchema, v4Page, undefined, sectionIdInManifest);
|
|
925
|
+
const schemaAdjustmentParameters = {
|
|
926
|
+
generateParameters,
|
|
927
|
+
appSchema,
|
|
928
|
+
v4Page,
|
|
929
|
+
tableDefinitionId: `${tableDefinitionName}SPV`,
|
|
930
|
+
facetDefinitionId: annotationTermInSchema,
|
|
931
|
+
dataForLineItem
|
|
932
|
+
};
|
|
933
|
+
applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
|
|
798
934
|
// Table toolbar actions with custom actions
|
|
799
935
|
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${annotationTermInSchema}>`;
|
|
800
936
|
const customColumnDefinitionName = (0, common_1.getCustomExtensionDefinitionName)(appSchema, annotationTermInSchema, ux_specification_types_1.DefinitionName.CustomTableAction);
|
|
801
|
-
(0,
|
|
802
|
-
(0,
|
|
937
|
+
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, (0, common_1.getDefinitionKey)(customColumnDefinitionName), schemaIdForToolbarActions, sectionIdInManifest);
|
|
938
|
+
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForToolbarActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
803
939
|
}
|
|
804
940
|
else {
|
|
805
941
|
tableDefinition.properties.toolBar['$ref'] = `${common_1.DEFINITION_LINK_PREFIX}${ux_specification_types_1.DefinitionName.ToolBarLR}`;
|
|
@@ -820,18 +956,25 @@ function adaptTableDefinition(appSchema, generateParameters, templateAnnotation,
|
|
|
820
956
|
oDataServiceAVT: generateParameters.serviceAVT,
|
|
821
957
|
lineItemId: ux_specification_types_1.DefinitionName.LineItems
|
|
822
958
|
};
|
|
823
|
-
(0,
|
|
824
|
-
(0,
|
|
825
|
-
(0,
|
|
826
|
-
|
|
827
|
-
|
|
959
|
+
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem);
|
|
960
|
+
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger);
|
|
961
|
+
(0, utils_2.addFragmentEnumForAnchor)(appSchema, ux_specification_types_1.DefinitionName.LineItems, v4Page);
|
|
962
|
+
const schemaAdjustmentParameters = {
|
|
963
|
+
generateParameters,
|
|
964
|
+
appSchema,
|
|
965
|
+
v4Page,
|
|
966
|
+
tableDefinitionId: tableDefinitionName,
|
|
967
|
+
facetDefinitionId: ux_specification_types_1.DefinitionName.LineItems,
|
|
968
|
+
dataForLineItem
|
|
969
|
+
};
|
|
970
|
+
applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
|
|
828
971
|
if (lineItemAnnotation && !v4Page.options?.settings?.views?.paths) {
|
|
829
972
|
tableDefinition[ux_specification_types_1.SchemaTag.annotationPath] = (0, common_1.createAnnotationPath)(generateParameters.entityType?.fullyQualifiedName, lineItemAnnotation.term, lineItemAnnotation.qualifier);
|
|
830
973
|
}
|
|
831
974
|
// Table toolbar actions with custom actions
|
|
832
975
|
const schemaIdForActions = `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`;
|
|
833
|
-
(0,
|
|
834
|
-
(0,
|
|
976
|
+
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, undefined, schemaIdForActions);
|
|
977
|
+
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
835
978
|
}
|
|
836
979
|
}
|
|
837
980
|
/**
|
|
@@ -866,7 +1009,7 @@ function addTableAndViews(appSchema, v4Page, generateParameters, alias) {
|
|
|
866
1009
|
const viewsPaths = v4Page.options?.settings?.views?.paths;
|
|
867
1010
|
const entityType = generateParameters.entityType;
|
|
868
1011
|
const defaultAnnotation = getDefaultAnnotationPath(v4Page, generateParameters.entityType, generateParameters.templateType);
|
|
869
|
-
const tableDefinitionName = (0,
|
|
1012
|
+
const tableDefinitionName = (0, utils_2.alignSchemaWithTemplateType)(appSchema, generateParameters);
|
|
870
1013
|
// Add filter bar
|
|
871
1014
|
addFilterBar(entityType, appSchema, v4Page, alias);
|
|
872
1015
|
if (generateParameters.templateType === ux_specification_types_1.TemplateType.ListReportObjectPageV4) {
|
|
@@ -884,7 +1027,7 @@ function addTableAndViews(appSchema, v4Page, generateParameters, alias) {
|
|
|
884
1027
|
}
|
|
885
1028
|
else if (generateParameters.templateType === ux_specification_types_1.TemplateType.AnalyticalListPageV4) {
|
|
886
1029
|
addALPViews(appSchema, viewsPaths, generateParameters, defaultAnnotation, v4Page, tableDefinitionName);
|
|
887
|
-
(0,
|
|
1030
|
+
(0, utils_2.addFragmentEnumForAnchor)(appSchema, ux_specification_types_1.DefinitionName.LineItems, v4Page);
|
|
888
1031
|
}
|
|
889
1032
|
}
|
|
890
1033
|
/**
|
|
@@ -906,12 +1049,12 @@ function addHeaderActions(appSchema, v4Page, logger) {
|
|
|
906
1049
|
const customActionDefinition = appSchema.definitions[customActionDefinitionKey];
|
|
907
1050
|
customActionDefinition[ux_specification_types_1.SchemaTag.isViewNode] = true;
|
|
908
1051
|
customActionDefinition.description = 'Custom Action';
|
|
909
|
-
(0,
|
|
1052
|
+
(0, utils_2.addHeaderFooterCustomActionDefinition)(appSchema, v4Page, logger, customActionDefinitionKey, headerActionsDefinitionKey);
|
|
910
1053
|
const facetKey = ux_specification_types_1.DefinitionName.CustomHeaderActionPosition;
|
|
911
1054
|
(0, common_1.parseSchemaDefinition)(facetKey, facetKey, appSchema, false);
|
|
912
1055
|
// Anchor selection
|
|
913
1056
|
customActionDefinition.properties.position.$ref = `${common_1.DEFINITION_LINK_PREFIX}${facetKey}`;
|
|
914
|
-
(0,
|
|
1057
|
+
(0, utils_2.addEnumForActionAnchor)(appSchema, headerActionsDefinitionKey, facetKey);
|
|
915
1058
|
}
|
|
916
1059
|
/**
|
|
917
1060
|
* Generates an app specific schema for the FE V4 ListReport from the generic schema.
|
|
@@ -945,7 +1088,7 @@ function generateListReportSchemaV4(generateParameters, genericSchema, templateN
|
|
|
945
1088
|
});
|
|
946
1089
|
return appSchema;
|
|
947
1090
|
}
|
|
948
|
-
const v4Page = (0,
|
|
1091
|
+
const v4Page = (0, utils_2.findPageV4)(pages, templateName, generateParameters.entitySet, contextPath);
|
|
949
1092
|
if (!v4Page) {
|
|
950
1093
|
return appSchema;
|
|
951
1094
|
}
|