@sap/ux-specification 1.90.25 → 1.90.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/CHANGELOG.md +77 -0
- 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-ListReport.html +1 -1
- package/dist/documentation/v4/v4-ObjectPage.html +1 -1
- package/dist/index-min.js +1 -1
- package/dist/schemas/v2/AnalyticalListPageConfig.json +10 -10
- package/dist/schemas/v2/ListReportConfig.json +15 -15
- package/dist/schemas/v2/ObjectPageConfig.json +204 -20
- package/dist/schemas/v4/ListReportConfig.json +22 -2
- package/dist/schemas/v4/ObjectPageConfig.json +36 -0
- package/dist/scripts/to-json-schema.js +1 -1
- package/dist/scripts/to-json-schema.js.map +1 -1
- package/dist/specification/v2/index-min.js +1 -1
- package/dist/src/apiTypes.d.ts +5 -4
- package/dist/src/project.d.ts +1 -0
- package/dist/src/project.js +2 -2
- package/dist/src/project.js.map +1 -1
- package/dist/src/specification/schemaAccess.js +2 -2
- package/dist/src/specification/schemaAccess.js.map +1 -1
- package/dist/src/specification/v2/controls/Action.d.ts +6 -4
- package/dist/src/specification/v2/controls/Facets.d.ts +2 -1
- package/dist/src/specification/v2/controls/ObjectPageHeader.d.ts +3 -2
- package/dist/src/specification/v2/controls/ObjectPageSection.d.ts +44 -9
- package/dist/src/specification/v2/controls/ObjectPageSection.js.map +1 -1
- package/dist/src/specification/v2/controls/ObjectPageTable.d.ts +5 -3
- package/dist/src/specification/v2/controls/ObjectPageTable.js.map +1 -1
- package/dist/src/specification/v2/controls/Table.d.ts +7 -4
- package/dist/src/specification/v2/controls/Table.js.map +1 -1
- package/dist/src/specification/v4/controls/ObjectPageSection.d.ts +22 -1
- package/dist/src/specification/v4/controls/ObjectPageSection.js.map +1 -1
- package/dist/src/specification/v4/controls/Table.d.ts +4 -0
- package/dist/src/sync/common/appProvider.d.ts +1 -1
- package/dist/src/sync/common/appProvider.js +1 -1
- package/dist/src/sync/common/decoration/control.d.ts +1 -1
- package/dist/src/sync/common/decoration/control.js +28 -23
- package/dist/src/sync/common/decoration/control.js.map +1 -1
- package/dist/src/sync/common/decoration/decorators.d.ts +2 -2
- package/dist/src/sync/common/decoration/decorators.js +8 -6
- package/dist/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/src/sync/common/flexUtils.js +1 -2
- package/dist/src/sync/common/flexUtils.js.map +1 -1
- package/dist/src/sync/common/generate/objectPage.d.ts +8 -9
- package/dist/src/sync/common/generate/objectPage.js +13 -13
- package/dist/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/src/sync/common/generate/utils.d.ts +63 -14
- package/dist/src/sync/common/generate/utils.js +125 -23
- package/dist/src/sync/common/generate/utils.js.map +1 -1
- package/dist/src/sync/common/import/utils.d.ts +9 -2
- package/dist/src/sync/common/import/utils.js +25 -6
- package/dist/src/sync/common/import/utils.js.map +1 -1
- package/dist/src/sync/common/importProject.d.ts +2 -3
- package/dist/src/sync/common/importProject.js +20 -19
- package/dist/src/sync/common/importProject.js.map +1 -1
- package/dist/src/sync/common/types.d.ts +65 -9
- package/dist/src/sync/common/types.js +57 -4
- package/dist/src/sync/common/types.js.map +1 -1
- package/dist/src/sync/common/utils.d.ts +30 -23
- package/dist/src/sync/common/utils.js +124 -86
- package/dist/src/sync/common/utils.js.map +1 -1
- package/dist/src/sync/v2/application.d.ts +3 -3
- package/dist/src/sync/v2/application.js +4 -4
- package/dist/src/sync/v2/application.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Action.d.ts +12 -10
- package/dist/src/sync/v2/export/controls/Action.js.map +1 -1
- package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js +1 -1
- package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js.map +1 -1
- package/dist/src/sync/v2/export/controls/AnalyticalListPageKPI.js +6 -6
- package/dist/src/sync/v2/export/controls/AnalyticalListPageKPI.js.map +1 -1
- package/dist/src/sync/v2/export/controls/FormAction.d.ts +9 -7
- package/dist/src/sync/v2/export/controls/FormAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.js +3 -3
- package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.d.ts +6 -4
- package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageHeader.d.ts +3 -2
- package/dist/src/sync/v2/export/controls/ObjectPageHeader.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +6 -4
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +26 -14
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +57 -5
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageTable.d.ts +5 -3
- package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.d.ts +6 -4
- package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Table.d.ts +6 -3
- package/dist/src/sync/v2/export/controls/Table.js +90 -49
- package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
- package/dist/src/sync/v2/export/controls/TableColumn.d.ts +12 -10
- package/dist/src/sync/v2/export/controls/TableColumn.js.map +1 -1
- package/dist/src/sync/v2/export/export.d.ts +0 -1
- package/dist/src/sync/v2/export/export.js +219 -157
- package/dist/src/sync/v2/export/export.js.map +1 -1
- package/dist/src/sync/v2/export/exportPage.js +34 -33
- package/dist/src/sync/v2/export/exportPage.js.map +1 -1
- package/dist/src/sync/v2/export/manifest.d.ts +6 -0
- package/dist/src/sync/v2/export/manifest.js +50 -35
- package/dist/src/sync/v2/export/manifest.js.map +1 -1
- package/dist/src/sync/v2/export/pages/OverviewPage.d.ts +1 -1
- package/dist/src/sync/v2/export/pages/OverviewPage.js +18 -16
- package/dist/src/sync/v2/export/pages/OverviewPage.js.map +1 -1
- package/dist/src/sync/v2/generate/analyticalListReport.js +3 -3
- package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/src/sync/v2/generate/listReport.d.ts +3 -4
- package/dist/src/sync/v2/generate/listReport.js +1 -1
- package/dist/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/src/sync/v2/generate/objectPage.js +50 -36
- package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v2/generate/utils.d.ts +11 -9
- package/dist/src/sync/v2/generate/utils.js +98 -95
- package/dist/src/sync/v2/generate/utils.js.map +1 -1
- package/dist/src/sync/v2/import/app/appProvider.d.ts +9 -0
- package/dist/src/sync/v2/import/app/appProvider.js +36 -13
- package/dist/src/sync/v2/import/app/appProvider.js.map +1 -1
- package/dist/src/sync/v2/import/app/ovpProvider.js +1 -1
- package/dist/src/sync/v2/import/app/ovpProvider.js.map +1 -1
- package/dist/src/sync/v2/import/common/index.js +5 -5
- package/dist/src/sync/v2/import/common/index.js.map +1 -1
- package/dist/src/sync/v2/import/pages/objectPage.js +89 -95
- package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
- package/dist/src/sync/v2/types.d.ts +8 -3
- package/dist/src/sync/v2/types.js +6 -2
- package/dist/src/sync/v2/types.js.map +1 -1
- package/dist/src/sync/v4/application.d.ts +22 -10
- package/dist/src/sync/v4/application.js +67 -18
- package/dist/src/sync/v4/application.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageTable.js +6 -18
- package/dist/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/src/sync/v4/export/controls/Table.d.ts +8 -2
- package/dist/src/sync/v4/export/controls/Table.js +106 -92
- package/dist/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/src/sync/v4/export/controls/TableColumn.js +4 -4
- package/dist/src/sync/v4/export/controls/TableColumn.js.map +1 -1
- package/dist/src/sync/v4/export/export.js +305 -172
- package/dist/src/sync/v4/export/export.js.map +1 -1
- package/dist/src/sync/v4/export/manifest.js +25 -6
- package/dist/src/sync/v4/export/manifest.js.map +1 -1
- package/dist/src/sync/v4/export/pages/ObjectPage.js +3 -2
- package/dist/src/sync/v4/export/pages/ObjectPage.js.map +1 -1
- package/dist/src/sync/v4/export/types.d.ts +5 -5
- package/dist/src/sync/v4/generate/listReport.d.ts +2 -2
- package/dist/src/sync/v4/generate/listReport.js +265 -165
- package/dist/src/sync/v4/generate/listReport.js.map +1 -1
- package/dist/src/sync/v4/generate/objectPage.d.ts +1 -1
- package/dist/src/sync/v4/generate/objectPage.js +290 -151
- package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v4/import/app/appProvider.js +32 -22
- package/dist/src/sync/v4/import/app/appProvider.js.map +1 -1
- package/dist/src/sync/v4/import/pages/listReport.js +100 -60
- package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
- package/dist/src/sync/v4/import/pages/objectPage.d.ts +13 -0
- package/dist/src/sync/v4/import/pages/objectPage.js +64 -35
- package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/src/sync/v4/import/utils.d.ts +2 -1
- package/dist/src/sync/v4/import/utils.js +1 -1
- package/dist/src/sync/v4/import/utils.js.map +1 -1
- package/dist/src/sync/v4/types.d.ts +2 -0
- package/dist/src/sync/v4/utils/StableIdHelper.js +13 -10
- package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -1
- package/dist/src/sync/v4/utils/utils.d.ts +9 -8
- package/dist/src/sync/v4/utils/utils.js +26 -26
- package/dist/src/sync/v4/utils/utils.js.map +1 -1
- package/package.json +6 -6
|
@@ -67,7 +67,6 @@ function transferManifestEntriesOVP(configObject, exportResults, jsonSchema, tar
|
|
|
67
67
|
exports.transferManifestEntriesOVP = transferManifestEntriesOVP;
|
|
68
68
|
/**
|
|
69
69
|
* Assign sync rules to {currentObject}
|
|
70
|
-
*
|
|
71
70
|
* @param {string} structureName - name of the complex structure in schema
|
|
72
71
|
* @param {object} currentObject - the given part of the configuration
|
|
73
72
|
* @param {string} defaultTypeName - name of the default type that shall be taken if no class is registered for structureName
|
|
@@ -76,38 +75,50 @@ function assignReflectMetadataRules(factory, structureName, currentObject, defau
|
|
|
76
75
|
return factory.createInstance(v2_1.PageType.OverviewPage, defaultTypeName, currentObject, structureName);
|
|
77
76
|
}
|
|
78
77
|
exports.assignReflectMetadataRules = assignReflectMetadataRules;
|
|
79
|
-
function processAnyOfDefinitionsOfOVP(
|
|
80
|
-
pathHierarchy.pop();
|
|
81
|
-
let newConfigObject = currentObject;
|
|
82
|
-
for (const anyOfKey in propertyList['anyOf']) {
|
|
83
|
-
if (propertyList['anyOf'][anyOfKey].$ref) {
|
|
84
|
-
const definitionArray = propertyList['anyOf'][anyOfKey].$ref.split(common_1.DEFINITION_LINK_PREFIX);
|
|
85
|
-
const nextTargetDefinition =
|
|
86
|
-
const cardSettingsType = pathHierarchy[1];
|
|
87
|
-
currentObject = configObject[cardSettingsType];
|
|
88
|
-
newConfigObject = assignReflectMetadataRules(factory, cardSettingsType, currentObject, 'CustomCard');
|
|
89
|
-
transferManifestEntriesOVP(newConfigObject, exportResults,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
else if (typeof propertyList['anyOf'][anyOfKey] === 'object') {
|
|
78
|
+
function processAnyOfDefinitionsOfOVP(params) {
|
|
79
|
+
params.pathHierarchy.pop();
|
|
80
|
+
let newConfigObject = params.currentObject;
|
|
81
|
+
for (const anyOfKey in params.propertyList['anyOf']) {
|
|
82
|
+
if (params.propertyList['anyOf'][anyOfKey].$ref) {
|
|
83
|
+
const definitionArray = params.propertyList['anyOf'][anyOfKey].$ref.split(common_1.DEFINITION_LINK_PREFIX);
|
|
84
|
+
const nextTargetDefinition = params.appSchema['definitions'][definitionArray[definitionArray.length - 1]];
|
|
85
|
+
const cardSettingsType = params.pathHierarchy[1];
|
|
86
|
+
params.currentObject = params.configObject[cardSettingsType];
|
|
87
|
+
newConfigObject = assignReflectMetadataRules(params.factory, cardSettingsType, params.currentObject, 'CustomCard');
|
|
88
|
+
transferManifestEntriesOVP(newConfigObject, params.exportResults, params.appSchema, nextTargetDefinition, params.factory, [...params.pathHierarchy]);
|
|
89
|
+
}
|
|
90
|
+
else if (typeof params.propertyList['anyOf'][anyOfKey] === 'object') {
|
|
94
91
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
95
|
-
processProperties(configObject, exportResults,
|
|
92
|
+
processProperties(params.configObject, params.exportResults, params.appSchema, params.propertyList['anyOf'][anyOfKey].properties, params.factory, [...params.pathHierarchy, 'anyOfObject']);
|
|
96
93
|
}
|
|
97
94
|
}
|
|
98
95
|
return newConfigObject;
|
|
99
96
|
}
|
|
97
|
+
function checkSyncRuleForExport(exportHandler, manifestSection, configObject, key, currentObject, exceptionList) {
|
|
98
|
+
if (exportHandler && typeof exportHandler === 'function') {
|
|
99
|
+
exportHandler(manifestSection, configObject, key);
|
|
100
|
+
}
|
|
101
|
+
else if (typeof currentObject === 'object' && !exceptionList.includes(key)) {
|
|
102
|
+
// colorPalette is an exception as it can contain anything as per our schema, so just replace the object
|
|
103
|
+
manifestSection[key] = deepmerge_1.default(manifestSection[key] || {}, currentObject || {}, {
|
|
104
|
+
arrayMerge: common_1.arrayCombineMerge
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
manifestSection[key] = currentObject;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
100
111
|
/**
|
|
101
112
|
* Transfer manifest settings from config to manifest
|
|
102
|
-
* @param syncRule
|
|
103
|
-
* @param pathHierarchy
|
|
113
|
+
* @param syncRule - metadata rule used for import and export
|
|
114
|
+
* @param pathHierarchy - elements of the path indicating the hierarchical level
|
|
104
115
|
* @param key
|
|
105
|
-
* @param exportResults
|
|
116
|
+
* @param exportResults - overall result list, to be updated
|
|
106
117
|
* @param currentObject
|
|
107
118
|
* @param configObject
|
|
108
|
-
* @param exceptionList
|
|
109
119
|
*/
|
|
110
|
-
function transferToManifest(syncRule, pathHierarchy, key, exportResults, currentObject, configObject
|
|
120
|
+
function transferToManifest(syncRule, pathHierarchy, key, exportResults, currentObject, configObject) {
|
|
121
|
+
const exceptionList = ['colorPalette', 'tabs'];
|
|
111
122
|
const path = syncRule.manifest.path([...pathHierarchy, key]);
|
|
112
123
|
const manifestSection = manifest_1.ensureManifestSectionByPathV2(exportResults.manifest, path);
|
|
113
124
|
if (key in v2_1.CardSettingsType || key === 'settings') {
|
|
@@ -118,25 +129,14 @@ function transferToManifest(syncRule, pathHierarchy, key, exportResults, current
|
|
|
118
129
|
else if (currentObject !== undefined) {
|
|
119
130
|
const exportHandler = syncRule.manifest.export;
|
|
120
131
|
if (exportHandler !== false) {
|
|
121
|
-
|
|
122
|
-
exportHandler(manifestSection, configObject, key);
|
|
123
|
-
}
|
|
124
|
-
else if (typeof currentObject === 'object' && !exceptionList.includes(key)) {
|
|
125
|
-
// colorPalette is an exception as it can contain anything as per our schema, so just replace the object
|
|
126
|
-
manifestSection[key] = deepmerge_1.default(manifestSection[key] || {}, currentObject || {}, {
|
|
127
|
-
arrayMerge: common_1.arrayCombineMerge
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
manifestSection[key] = currentObject;
|
|
132
|
-
}
|
|
132
|
+
checkSyncRuleForExport(exportHandler, manifestSection, configObject, key, currentObject, exceptionList);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
else if (manifestSection[key] !== undefined) {
|
|
136
136
|
delete manifestSection[key];
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
function transferCards(currentObject,
|
|
139
|
+
function transferCards(currentObject, appSchema, factory, exportResults) {
|
|
140
140
|
Object.keys(currentObject).forEach((cardKey) => {
|
|
141
141
|
const cardType = currentObject[cardKey].template;
|
|
142
142
|
//Determine target defintion
|
|
@@ -145,15 +145,15 @@ function transferCards(currentObject, jsonSchema, factory, exportResults) {
|
|
|
145
145
|
targetDefinition = ['CustomCard'];
|
|
146
146
|
}
|
|
147
147
|
else {
|
|
148
|
-
targetDefinition = Object.keys(
|
|
148
|
+
targetDefinition = Object.keys(appSchema.definitions).filter((definition) => {
|
|
149
149
|
var _a, _b, _c;
|
|
150
|
-
return ((_c = (_b = (_a =
|
|
150
|
+
return ((_c = (_b = (_a = appSchema.definitions[definition].properties) === null || _a === void 0 ? void 0 : _a.template) === null || _b === void 0 ? void 0 : _b.enum) === null || _c === void 0 ? void 0 : _c.indexOf(currentObject[cardKey].template)) > -1;
|
|
151
151
|
});
|
|
152
152
|
}
|
|
153
153
|
//Get metadata
|
|
154
154
|
currentObject[cardKey] = assignReflectMetadataRules(factory, targetDefinition[0], currentObject[cardKey], 'CustomCard');
|
|
155
155
|
createCard(cardKey, exportResults['manifest'][v2_1.ManifestSection.ovp]);
|
|
156
|
-
transferManifestEntriesOVP(currentObject[cardKey], exportResults,
|
|
156
|
+
transferManifestEntriesOVP(currentObject[cardKey], exportResults, appSchema, appSchema.definitions[targetDefinition[0]], factory, [cardKey]);
|
|
157
157
|
});
|
|
158
158
|
//check for deletions:
|
|
159
159
|
Object.keys(exportResults.manifest[v2_1.ManifestSection.ovp].cards).forEach((manifestCard) => {
|
|
@@ -162,22 +162,40 @@ function transferCards(currentObject, jsonSchema, factory, exportResults) {
|
|
|
162
162
|
}
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
+
function exportOfObject(params, key, factory) {
|
|
166
|
+
if (key === 'cards') {
|
|
167
|
+
//inserts and updates:
|
|
168
|
+
transferCards(params.currentObject, params.appSchema, factory, params.exportResults);
|
|
169
|
+
}
|
|
170
|
+
else if (params.propertyList[key].$ref) {
|
|
171
|
+
const definitionArray = params.propertyList[key].$ref.split(common_1.DEFINITION_LINK_PREFIX);
|
|
172
|
+
const nextTargetDefinition = params.appSchema.definitions[definitionArray[definitionArray.length - 1]];
|
|
173
|
+
params.currentObject = assignReflectMetadataRules(params.factory, key, params.currentObject, key === 'settings' ? 'CustomCard' : '');
|
|
174
|
+
transferManifestEntriesOVP(params.currentObject, params.exportResults, params.appSchema, nextTargetDefinition, factory, [...params.pathHierarchy, key]);
|
|
175
|
+
}
|
|
176
|
+
else if (params.propertyList[key].anyOf) {
|
|
177
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
178
|
+
processProperties(params.configObject, params.exportResults, params.appSchema, params.propertyList[key], factory, [...params.pathHierarchy, key, 'anyOf']);
|
|
179
|
+
}
|
|
180
|
+
else if (params.propertyList[key]['properties'] !== undefined) {
|
|
181
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
182
|
+
processProperties(params.configObject, params.exportResults, params.appSchema, params.propertyList[key].properties, params.factory, [...params.pathHierarchy, key, 'objectProperties']);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
165
185
|
/**
|
|
166
186
|
* Recursive function that transfers the content of a list of properties of a configuration to the overall exportResults
|
|
167
187
|
* @param configObject - the given part of the configuration
|
|
168
188
|
* @param exportResults - overall result list, to be updated
|
|
169
|
-
* @param
|
|
189
|
+
* @param appSchema - app-specific JSON schema
|
|
170
190
|
* @param propertyList - current property list of the config (properties or additional properties)
|
|
171
191
|
* @param {MetadataInstanceInterface} factory - factory for creating metadata instances
|
|
172
192
|
* @param pathHierarchy - elements of the path indicating the hierarchical level
|
|
173
193
|
*/
|
|
174
|
-
function processProperties(configObject, exportResults,
|
|
175
|
-
let currentObject;
|
|
194
|
+
function processProperties(configObject, exportResults, appSchema, propertyList, factory, pathHierarchy) {
|
|
176
195
|
let isAnyOfObject = false;
|
|
177
196
|
let isObjectProperty = false;
|
|
178
|
-
const exceptionList = ['colorPalette', 'tabs'];
|
|
179
197
|
for (const key in propertyList) {
|
|
180
|
-
currentObject = configObject[key];
|
|
198
|
+
let currentObject = configObject[key];
|
|
181
199
|
let syncRule = common_1.getReflectMetadata(configObject, key);
|
|
182
200
|
if (pathHierarchy[pathHierarchy.length - 1] === 'anyOfObject') {
|
|
183
201
|
isAnyOfObject = true;
|
|
@@ -195,40 +213,23 @@ function processProperties(configObject, exportResults, jsonSchema, propertyList
|
|
|
195
213
|
currentObject = configObject[pathHierarchy[pathHierarchy.length - 1]][key];
|
|
196
214
|
syncRule = common_1.getReflectMetadata(configObject, pathHierarchy[pathHierarchy.length - 1]);
|
|
197
215
|
}
|
|
216
|
+
const processDefinitionParams = {
|
|
217
|
+
pathHierarchy,
|
|
218
|
+
propertyList,
|
|
219
|
+
appSchema,
|
|
220
|
+
currentObject,
|
|
221
|
+
configObject,
|
|
222
|
+
factory,
|
|
223
|
+
exportResults
|
|
224
|
+
};
|
|
198
225
|
if (pathHierarchy[pathHierarchy.length - 1] === 'anyOf') {
|
|
199
|
-
currentObject = processAnyOfDefinitionsOfOVP(
|
|
226
|
+
currentObject = processAnyOfDefinitionsOfOVP(processDefinitionParams);
|
|
200
227
|
}
|
|
201
228
|
if (syncRule === null || syncRule === void 0 ? void 0 : syncRule.manifest) {
|
|
202
|
-
transferToManifest(syncRule, pathHierarchy, key, exportResults, currentObject, configObject
|
|
229
|
+
transferToManifest(syncRule, pathHierarchy, key, exportResults, currentObject, configObject);
|
|
203
230
|
}
|
|
204
231
|
if (currentObject && typeof currentObject === 'object' && propertyList[key]) {
|
|
205
|
-
|
|
206
|
-
//inserts and updates:
|
|
207
|
-
transferCards(currentObject, jsonSchema, factory, exportResults);
|
|
208
|
-
}
|
|
209
|
-
else if (propertyList[key].$ref) {
|
|
210
|
-
const definitionArray = propertyList[key].$ref.split(common_1.DEFINITION_LINK_PREFIX);
|
|
211
|
-
const nextTargetDefinition = jsonSchema['definitions'][definitionArray[definitionArray.length - 1]];
|
|
212
|
-
currentObject = assignReflectMetadataRules(factory, key, currentObject, key === 'settings' ? 'CustomCard' : '');
|
|
213
|
-
transferManifestEntriesOVP(currentObject, exportResults, jsonSchema, nextTargetDefinition, factory, [
|
|
214
|
-
...pathHierarchy,
|
|
215
|
-
key
|
|
216
|
-
]);
|
|
217
|
-
}
|
|
218
|
-
else if (propertyList[key].anyOf) {
|
|
219
|
-
processProperties(configObject, exportResults, jsonSchema, propertyList[key], factory, [
|
|
220
|
-
...pathHierarchy,
|
|
221
|
-
key,
|
|
222
|
-
'anyOf'
|
|
223
|
-
]);
|
|
224
|
-
}
|
|
225
|
-
else if (propertyList[key]['properties'] !== undefined) {
|
|
226
|
-
processProperties(configObject, exportResults, jsonSchema, propertyList[key].properties, factory, [
|
|
227
|
-
...pathHierarchy,
|
|
228
|
-
key,
|
|
229
|
-
'objectProperties'
|
|
230
|
-
]);
|
|
231
|
-
}
|
|
232
|
+
exportOfObject(processDefinitionParams, key, factory);
|
|
232
233
|
}
|
|
233
234
|
}
|
|
234
235
|
}
|
|
@@ -276,6 +277,35 @@ function evaluateFlexRule(transferParameters, breadcrumbs, syncRule, ids, title,
|
|
|
276
277
|
transferParameters.exportResults.flexChanges.push(completeFlexChange);
|
|
277
278
|
}
|
|
278
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Exports a given config property value to manifest
|
|
282
|
+
* @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
|
|
283
|
+
* @param syncRule - export rule from the object classes decorator
|
|
284
|
+
* @param manifestSection - current section in manifest.json
|
|
285
|
+
* @param configObject - current (sub)object of the configuration file
|
|
286
|
+
* @param key - key of the given property in the config
|
|
287
|
+
* @param manifestKey - key of the given property in manifest
|
|
288
|
+
*/
|
|
289
|
+
function exportConfigValue(transferParameters, syncRule, manifestSection, configObject, key, manifestKey) {
|
|
290
|
+
if (
|
|
291
|
+
// In case of arrays we take over complete array
|
|
292
|
+
!(transferParameters.propertyDefinition['type'] !== 'array' &&
|
|
293
|
+
transferParameters.nextDefinition &&
|
|
294
|
+
transferParameters.nextDefinition['targetDefinition'].type === 'object' &&
|
|
295
|
+
transferParameters.nextDefinition['targetDefinition'].properties)) {
|
|
296
|
+
const exportHandler = syncRule.manifest.export;
|
|
297
|
+
if (exportHandler && typeof exportHandler === 'function') {
|
|
298
|
+
exportHandler(manifestSection, configObject, key, manifestKey);
|
|
299
|
+
}
|
|
300
|
+
else if (exportHandler !== false) {
|
|
301
|
+
manifestSection[manifestKey] = configObject[key];
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
else if (transferParameters.propertyDefinition['type'] !== 'array' &&
|
|
305
|
+
manifestSection[manifestKey] === undefined) {
|
|
306
|
+
manifestSection[manifestKey] = {};
|
|
307
|
+
}
|
|
308
|
+
}
|
|
279
309
|
/**
|
|
280
310
|
* Evaluates an export rule for a property, transfers to manifest setting
|
|
281
311
|
* @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
|
|
@@ -289,31 +319,39 @@ function evaluateManifestRule(transferParameters, path, syncRule, key, configObj
|
|
|
289
319
|
const manifestSection = manifest_1.ensureManifestSectionByPathV2(transferParameters.exportResults.manifest, path);
|
|
290
320
|
const manifestKey = syncRule.manifest.key || key;
|
|
291
321
|
if (configObject[key] !== undefined) {
|
|
292
|
-
|
|
293
|
-
if (!(transferParameters.propertyDefinition['type'] !== 'array' &&
|
|
294
|
-
transferParameters.nextDefinition &&
|
|
295
|
-
transferParameters.nextDefinition['targetDefinition'].type === 'object' &&
|
|
296
|
-
transferParameters.nextDefinition['targetDefinition'].properties)) {
|
|
297
|
-
const exportHandler = syncRule.manifest.export;
|
|
298
|
-
if (exportHandler && typeof exportHandler === 'function') {
|
|
299
|
-
exportHandler(manifestSection, configObject, key, manifestKey);
|
|
300
|
-
}
|
|
301
|
-
else if (exportHandler !== false) {
|
|
302
|
-
manifestSection[manifestKey] = configObject[key];
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
else if (transferParameters.propertyDefinition['type'] !== 'array' &&
|
|
306
|
-
manifestSection[manifestKey] === undefined) {
|
|
307
|
-
manifestSection[manifestKey] = {};
|
|
308
|
-
}
|
|
322
|
+
exportConfigValue(transferParameters, syncRule, manifestSection, configObject, key, manifestKey);
|
|
309
323
|
}
|
|
310
324
|
else {
|
|
311
|
-
|
|
325
|
+
//delete value
|
|
326
|
+
const deleteHandler = syncRule.manifest.delete;
|
|
327
|
+
if (deleteHandler && typeof deleteHandler === 'function') {
|
|
328
|
+
deleteHandler(manifestSection, configObject, key, manifestKey);
|
|
329
|
+
}
|
|
330
|
+
else if (Object.prototype.hasOwnProperty.call(manifestSection, manifestKey)) {
|
|
312
331
|
delete manifestSection[manifestKey];
|
|
313
332
|
}
|
|
314
333
|
}
|
|
315
334
|
common_1.deleteEmptyStructure(transferParameters.exportResults.manifest, path);
|
|
316
335
|
}
|
|
336
|
+
function getManifestPathOfSections(breadcrumbs, path, syncRule, transferParameters, title) {
|
|
337
|
+
if (breadcrumbs[1] === 'custom') {
|
|
338
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[2]);
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, {}, (title === null || title === void 0 ? void 0 : title.startsWith(common_1.FacetTitlePrefix)) ? title.split(common_1.FacetTitlePrefix)[1] : breadcrumbs[1], breadcrumbs[breadcrumbs.length - 1]);
|
|
342
|
+
path = path.replace('/@', '::').replace(/VOCWITHCOLONS/g, '::com.sap.vocabularies');
|
|
343
|
+
}
|
|
344
|
+
return path;
|
|
345
|
+
}
|
|
346
|
+
function getManifestPathOfTable(breadcrumbs, path, syncRule, transferParameters, configObject) {
|
|
347
|
+
if (breadcrumbs[1] === 'columns' && breadcrumbs[2] === 'custom') {
|
|
348
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, transferParameters.exportResults.manifest, configObject['tabKey']);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[breadcrumbs.length - 1]);
|
|
352
|
+
}
|
|
353
|
+
return path;
|
|
354
|
+
}
|
|
317
355
|
/**
|
|
318
356
|
* Determines the path to a manifest setting, based on the syncRule
|
|
319
357
|
* @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
|
|
@@ -325,22 +363,11 @@ function evaluateManifestRule(transferParameters, path, syncRule, key, configObj
|
|
|
325
363
|
*/
|
|
326
364
|
function getManifestPath(transferParameters, breadcrumbs, syncRule, configObject, title) {
|
|
327
365
|
let path;
|
|
328
|
-
if (breadcrumbs[0] ===
|
|
329
|
-
|
|
330
|
-
path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[2]);
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
path = syncRule.manifest.path(transferParameters.pageKeys, {}, (title === null || title === void 0 ? void 0 : title.startsWith(common_1.FacetTitlePrefix)) ? title.split(common_1.FacetTitlePrefix)[1] : breadcrumbs[1], breadcrumbs[breadcrumbs.length - 1]);
|
|
334
|
-
path = path.replace('/@', '::').replace(/VOCWITHCOLONS/g, '::com.sap.vocabularies');
|
|
335
|
-
}
|
|
366
|
+
if (breadcrumbs[0] === v2_1.PropertyName.sections) {
|
|
367
|
+
path = getManifestPathOfSections(breadcrumbs, path, syncRule, transferParameters, title);
|
|
336
368
|
}
|
|
337
|
-
else if (breadcrumbs[0] ===
|
|
338
|
-
|
|
339
|
-
path = syncRule.manifest.path(transferParameters.pageKeys, transferParameters.exportResults.manifest, configObject['tabKey']);
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[breadcrumbs.length - 1]);
|
|
343
|
-
}
|
|
369
|
+
else if (breadcrumbs[0] === v2_1.PropertyName.table) {
|
|
370
|
+
path = getManifestPathOfTable(breadcrumbs, path, syncRule, transferParameters, configObject);
|
|
344
371
|
}
|
|
345
372
|
else if (breadcrumbs[0] === 'keyPerformanceIndicators') {
|
|
346
373
|
path = syncRule.manifest.path(transferParameters.pageKeys, transferParameters.exportResults.manifest, title);
|
|
@@ -381,6 +408,34 @@ function evaluateExportRule(transferParameters, syncRule, configObject, breadcru
|
|
|
381
408
|
evaluateManifestRule(transferParameters, path, syncRule, key, configObject);
|
|
382
409
|
}
|
|
383
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* Deletes an obsolete custom column from manifest
|
|
413
|
+
*/
|
|
414
|
+
function deleteObsoleteColumn(key, columnParams, manifestSection) {
|
|
415
|
+
var _a;
|
|
416
|
+
const keyParts = key.split('|');
|
|
417
|
+
const keyEntitySet = keyParts[1];
|
|
418
|
+
const keyTab = keyParts[2];
|
|
419
|
+
if (keyEntitySet === columnParams.entitySet) {
|
|
420
|
+
//relevant extension. still present in config?
|
|
421
|
+
const existingConfigEntries = (_a = columnParams.config) === null || _a === void 0 ? void 0 : _a.filter((column) => (column.tabKey === keyTab ||
|
|
422
|
+
(keyTab === undefined && column.tabKey === '') ||
|
|
423
|
+
(keyTab && columnParams.sectionKey === keyTab)) &&
|
|
424
|
+
column.extensionType === columnParams.extensionType);
|
|
425
|
+
if (!existingConfigEntries || existingConfigEntries.length === 0) {
|
|
426
|
+
controls_1.deleteColumnFromFragment(manifestSection, key, columnParams.appId, columnParams.exportResults.fragments);
|
|
427
|
+
// delete from manifest
|
|
428
|
+
delete manifestSection[key];
|
|
429
|
+
// delete cells entry
|
|
430
|
+
if (key.startsWith(common_1.ViewTemplateType.ResponsiveTableColumnsExtension)) {
|
|
431
|
+
const cellsPattern = key.replace(common_1.ViewTemplateType.ResponsiveTableColumnsExtension, common_1.ViewTemplateType.ResponsiveTableCellsExtension);
|
|
432
|
+
controls_1.deleteColumnFromFragment(manifestSection, cellsPattern, columnParams.appId, columnParams.exportResults.fragments);
|
|
433
|
+
// delete from manifest
|
|
434
|
+
delete manifestSection[cellsPattern];
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
384
439
|
/**
|
|
385
440
|
* Walks through the extensions registered in manifest and compares the columns of the fragment with the ones present in config.
|
|
386
441
|
* If not present anymore, the extension column gets deleted from fragment.
|
|
@@ -392,34 +447,13 @@ function evaluateExportRule(transferParameters, syncRule, configObject, breadcru
|
|
|
392
447
|
* @param extensionType - extensionType
|
|
393
448
|
* @param appId - application ID
|
|
394
449
|
*/
|
|
395
|
-
function deleteObsoleteColumnsFromFragment(
|
|
396
|
-
const folderPath = path.
|
|
397
|
-
const manifestSection = manifest_1.getManifestSectionByPathV2(exportResults.manifest, folderPath);
|
|
398
|
-
const extensionPattern = path.
|
|
450
|
+
function deleteObsoleteColumnsFromFragment(columnParams) {
|
|
451
|
+
const folderPath = columnParams.path.substring(0, columnParams.path.lastIndexOf('/'));
|
|
452
|
+
const manifestSection = manifest_1.getManifestSectionByPathV2(columnParams.exportResults.manifest, folderPath);
|
|
453
|
+
const extensionPattern = columnParams.path.substring(columnParams.path.lastIndexOf('/') + 1);
|
|
399
454
|
for (const key in manifestSection) {
|
|
400
455
|
if (key.startsWith(extensionPattern)) {
|
|
401
|
-
|
|
402
|
-
const keyEntitySet = keyParts[1];
|
|
403
|
-
const keyTab = keyParts[2];
|
|
404
|
-
if (keyEntitySet === entitySet) {
|
|
405
|
-
//relevant extension. still present in config?
|
|
406
|
-
const existingConfigEntries = config === null || config === void 0 ? void 0 : config.filter((column) => (column.tabKey === keyTab ||
|
|
407
|
-
(keyTab === undefined && column.tabKey === '') ||
|
|
408
|
-
(keyTab && sectionKey === keyTab)) &&
|
|
409
|
-
column.extensionType === extensionType);
|
|
410
|
-
if (!existingConfigEntries || existingConfigEntries.length === 0) {
|
|
411
|
-
controls_1.deleteColumnFromFragment(manifestSection, key, appId, exportResults.fragments);
|
|
412
|
-
// delete from manifest
|
|
413
|
-
delete manifestSection[key];
|
|
414
|
-
// delete cells entry
|
|
415
|
-
if (key.startsWith(common_1.ViewTemplateType.ResponsiveTableColumnsExtension)) {
|
|
416
|
-
const cellsPattern = key.replace(common_1.ViewTemplateType.ResponsiveTableColumnsExtension, common_1.ViewTemplateType.ResponsiveTableCellsExtension);
|
|
417
|
-
controls_1.deleteColumnFromFragment(manifestSection, cellsPattern, appId, exportResults.fragments);
|
|
418
|
-
// delete from manifest
|
|
419
|
-
delete manifestSection[cellsPattern];
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
}
|
|
456
|
+
deleteObsoleteColumn(key, columnParams, manifestSection);
|
|
423
457
|
}
|
|
424
458
|
}
|
|
425
459
|
}
|
|
@@ -476,7 +510,16 @@ function transferColumnExtensions(transferParameters, customColumnsInConfig, sch
|
|
|
476
510
|
if (!path) {
|
|
477
511
|
continue;
|
|
478
512
|
}
|
|
479
|
-
|
|
513
|
+
const columParams = {
|
|
514
|
+
path,
|
|
515
|
+
exportResults: transferParameters.exportResults,
|
|
516
|
+
entitySet,
|
|
517
|
+
config: customColumnsInConfig,
|
|
518
|
+
sectionKey,
|
|
519
|
+
extensionType,
|
|
520
|
+
appId: transferParameters.appId
|
|
521
|
+
};
|
|
522
|
+
deleteObsoleteColumnsFromFragment(columParams);
|
|
480
523
|
}
|
|
481
524
|
if (customColumnsInConfig) {
|
|
482
525
|
//cluster existing custom columns by manifest path (or tab key)
|
|
@@ -530,14 +573,18 @@ function transferManifestExtensions(transferParameters, configSections, pageKey,
|
|
|
530
573
|
function getSectionId(breadcrumbs, title) {
|
|
531
574
|
let sectionId = undefined;
|
|
532
575
|
for (let i = breadcrumbs.length - 1; i >= 0; i--) {
|
|
533
|
-
if (breadcrumbs[i] ===
|
|
576
|
+
if (breadcrumbs[i] === v2_1.PropertyName.table) {
|
|
534
577
|
sectionId = breadcrumbs[i - 1];
|
|
535
578
|
break;
|
|
536
579
|
}
|
|
537
580
|
}
|
|
538
581
|
return common_1.convertSectionId(sectionId, title);
|
|
539
582
|
}
|
|
540
|
-
|
|
583
|
+
/**
|
|
584
|
+
* Processes index tables in schema
|
|
585
|
+
*/
|
|
586
|
+
function transferIndexTable(currentConfigObject, transferParameters, title, key, ids, breadcrumbs) {
|
|
587
|
+
const propertyDefinition = transferParameters.propertyDefinition;
|
|
541
588
|
if (!currentConfigObject || !(propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.additionalProperties)) {
|
|
542
589
|
return;
|
|
543
590
|
}
|
|
@@ -547,6 +594,9 @@ function transferIndexTable(currentConfigObject, transferParameters, title, prop
|
|
|
547
594
|
transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, newKey);
|
|
548
595
|
});
|
|
549
596
|
}
|
|
597
|
+
/**
|
|
598
|
+
* Transfers custom columns of schema
|
|
599
|
+
*/
|
|
550
600
|
function transferCustomColumns(propertyDefinition, breadcrumbs, title, transferParameters, configObject, nextDefinition) {
|
|
551
601
|
let objectPageSectionData;
|
|
552
602
|
const target = common_1.getTargetFromCustomColumnRef(propertyDefinition.$ref);
|
|
@@ -558,6 +608,9 @@ function transferCustomColumns(propertyDefinition, breadcrumbs, title, transferP
|
|
|
558
608
|
}
|
|
559
609
|
transferColumnExtensions(transferParameters, configObject === null || configObject === void 0 ? void 0 : configObject.custom, nextDefinition.targetDefinition, objectPageSectionData);
|
|
560
610
|
}
|
|
611
|
+
/**
|
|
612
|
+
* Processes anyOf definitions of schema
|
|
613
|
+
*/
|
|
561
614
|
function handleAnyOfDefinitions(propertyDefinition, transferParameters, title, currentConfigObject, key, ids, breadcrumbs) {
|
|
562
615
|
propertyDefinition['anyOf'].forEach((element) => {
|
|
563
616
|
const nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject, element, key, transferParameters.factory, transferParameters.pageType);
|
|
@@ -567,6 +620,28 @@ function handleAnyOfDefinitions(propertyDefinition, transferParameters, title, c
|
|
|
567
620
|
}
|
|
568
621
|
});
|
|
569
622
|
}
|
|
623
|
+
/**
|
|
624
|
+
* Processes complex definitions of schema
|
|
625
|
+
*/
|
|
626
|
+
function transferComplexProperty(transferParameters, breadcrumbs, configObject, ids, propertyKey, nextDefinition, title) {
|
|
627
|
+
const propertyDefinition = transferParameters.propertyDefinition;
|
|
628
|
+
if ((propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.type) === 'array' &&
|
|
629
|
+
(breadcrumbs[0] === 'sections' || breadcrumbs[0] === 'subsections') &&
|
|
630
|
+
propertyKey === 'custom') {
|
|
631
|
+
transferManifestExtensions(transferParameters, configObject[propertyKey], transferParameters.pageKeys[transferParameters.pageKeys.length - 1], ids, [...breadcrumbs, propertyKey], propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.items);
|
|
632
|
+
}
|
|
633
|
+
else if (nextDefinition && propertyKey === 'custom') {
|
|
634
|
+
transferCustomColumns(propertyDefinition, breadcrumbs, title, transferParameters, configObject, nextDefinition);
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
else if (nextDefinition) {
|
|
638
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
639
|
+
transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, propertyKey], nextDefinition.targetDefinition, nextDefinition.title);
|
|
640
|
+
}
|
|
641
|
+
else if (propertyDefinition['anyOf']) {
|
|
642
|
+
handleAnyOfDefinitions(propertyDefinition, transferParameters, title, configObject === null || configObject === void 0 ? void 0 : configObject[propertyKey], propertyKey, ids, breadcrumbs);
|
|
643
|
+
}
|
|
644
|
+
}
|
|
570
645
|
/**
|
|
571
646
|
* Function that traverses the content of the current object. It reads decorators and fills manifest entries and flex changes
|
|
572
647
|
* @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
|
|
@@ -581,33 +656,20 @@ function transferManifestEntriesAndFlexChange(transferParameters, configObject,
|
|
|
581
656
|
if (!(schemaDefinition === null || schemaDefinition === void 0 ? void 0 : schemaDefinition['properties'])) {
|
|
582
657
|
return;
|
|
583
658
|
}
|
|
584
|
-
for (const
|
|
585
|
-
currentConfigObject = configObject
|
|
586
|
-
const childId = configObject && common_1.getChildId(configObject,
|
|
659
|
+
for (const propertyKey in schemaDefinition['properties']) {
|
|
660
|
+
currentConfigObject = configObject === null || configObject === void 0 ? void 0 : configObject[propertyKey];
|
|
661
|
+
const childId = configObject && common_1.getChildId(configObject, propertyKey);
|
|
587
662
|
const ids = childId ? [...parentIds, childId] : parentIds;
|
|
588
|
-
const syncRule = common_1.getReflectMetadata(configObject,
|
|
589
|
-
const propertyDefinition = (transferParameters.propertyDefinition =
|
|
590
|
-
|
|
663
|
+
const syncRule = common_1.getReflectMetadata(configObject, propertyKey);
|
|
664
|
+
const propertyDefinition = (transferParameters.propertyDefinition =
|
|
665
|
+
schemaDefinition['properties'][propertyKey]);
|
|
666
|
+
const nextDefinition = (transferParameters.nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject, propertyDefinition, propertyKey, transferParameters.factory, transferParameters.pageType));
|
|
591
667
|
//Evaluate sync rule for the export
|
|
592
|
-
evaluateExportRule(transferParameters, syncRule, configObject, [...breadcrumbs], ids, title,
|
|
668
|
+
evaluateExportRule(transferParameters, syncRule, configObject, [...breadcrumbs], ids, title, propertyKey);
|
|
593
669
|
//index table
|
|
594
|
-
transferIndexTable(currentConfigObject, transferParameters, title,
|
|
670
|
+
transferIndexTable(currentConfigObject, transferParameters, title, propertyKey, ids, breadcrumbs);
|
|
595
671
|
if (currentConfigObject === undefined || typeof currentConfigObject === 'object') {
|
|
596
|
-
|
|
597
|
-
(breadcrumbs[0] === 'sections' || breadcrumbs[0] === 'subsections') &&
|
|
598
|
-
key === 'custom') {
|
|
599
|
-
transferManifestExtensions(transferParameters, configObject[key], transferParameters.pageKeys[transferParameters.pageKeys.length - 1], ids, [...breadcrumbs, key], propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.items);
|
|
600
|
-
}
|
|
601
|
-
else if (nextDefinition && key === 'custom') {
|
|
602
|
-
transferCustomColumns(propertyDefinition, breadcrumbs, title, transferParameters, configObject, nextDefinition);
|
|
603
|
-
continue;
|
|
604
|
-
}
|
|
605
|
-
else if (nextDefinition) {
|
|
606
|
-
transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, nextDefinition.title);
|
|
607
|
-
}
|
|
608
|
-
else if (propertyDefinition['anyOf']) {
|
|
609
|
-
handleAnyOfDefinitions(propertyDefinition, transferParameters, title, currentConfigObject, key, ids, breadcrumbs);
|
|
610
|
-
}
|
|
672
|
+
transferComplexProperty(transferParameters, breadcrumbs, configObject, ids, propertyKey, nextDefinition, title);
|
|
611
673
|
}
|
|
612
674
|
else if ((propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.$ref) === common_1.DEFINITION_LINK_PREFIX + 'TableCustomColumns') {
|
|
613
675
|
//empty config ==> delete all given extensions
|