@sap/ux-specification 1.84.35 → 1.84.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/CHANGELOG.md +69 -24
  2. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  3. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  4. package/dist/documentation/v2/v2-ListReport.html +1 -1
  5. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  6. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  7. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  8. package/dist/documentation/v4/v4-ListReport.html +1 -1
  9. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  10. package/dist/index-min.js +1 -1
  11. package/dist/schemas/v2/AnalyticalListPageConfig.json +9 -5
  12. package/dist/schemas/v2/ListReportConfig.json +11 -7
  13. package/dist/schemas/v2/ObjectPageConfig.json +195 -7
  14. package/dist/schemas/v4/ListReportConfig.json +34 -4
  15. package/dist/schemas/v4/ObjectPageConfig.json +36 -0
  16. package/dist/specification/v2/index-min.js +1 -1
  17. package/dist/src/apiTypes.d.ts +2 -1
  18. package/dist/src/project.d.ts +1 -0
  19. package/dist/src/project.js +13 -5
  20. package/dist/src/project.js.map +1 -1
  21. package/dist/src/specification/v2/controls/ObjectPageSection.d.ts +40 -7
  22. package/dist/src/specification/v2/controls/ObjectPageSection.js.map +1 -1
  23. package/dist/src/specification/v2/controls/ObjectPageTable.d.ts +2 -3
  24. package/dist/src/specification/v2/controls/Table.d.ts +5 -2
  25. package/dist/src/specification/v2/controls/Table.js +5 -0
  26. package/dist/src/specification/v2/controls/Table.js.map +1 -1
  27. package/dist/src/specification/v4/controls/ObjectPageSection.d.ts +22 -1
  28. package/dist/src/specification/v4/controls/ObjectPageSection.js.map +1 -1
  29. package/dist/src/specification/v4/controls/ObjectPageTable.d.ts +0 -14
  30. package/dist/src/specification/v4/controls/Table.d.ts +12 -29
  31. package/dist/src/specification/v4/pages/ListReportConfig.d.ts +6 -1
  32. package/dist/src/specification/v4/webapp/manifest/sapUiPageV4.d.ts +1 -0
  33. package/dist/src/specification/v4/webapp/manifest/sapUiPageV4.js.map +1 -1
  34. package/dist/src/sync/common/decoration/control.d.ts +1 -1
  35. package/dist/src/sync/common/decoration/control.js +27 -22
  36. package/dist/src/sync/common/decoration/control.js.map +1 -1
  37. package/dist/src/sync/common/generate/objectPage.d.ts +5 -4
  38. package/dist/src/sync/common/generate/objectPage.js +67 -66
  39. package/dist/src/sync/common/generate/objectPage.js.map +1 -1
  40. package/dist/src/sync/common/generate/utils.d.ts +53 -12
  41. package/dist/src/sync/common/generate/utils.js +139 -46
  42. package/dist/src/sync/common/generate/utils.js.map +1 -1
  43. package/dist/src/sync/common/import/utils.d.ts +3 -2
  44. package/dist/src/sync/common/import/utils.js +11 -6
  45. package/dist/src/sync/common/import/utils.js.map +1 -1
  46. package/dist/src/sync/common/importProject.js +20 -19
  47. package/dist/src/sync/common/importProject.js.map +1 -1
  48. package/dist/src/sync/common/types.d.ts +105 -26
  49. package/dist/src/sync/common/types.js +101 -22
  50. package/dist/src/sync/common/types.js.map +1 -1
  51. package/dist/src/sync/common/utils.d.ts +17 -12
  52. package/dist/src/sync/common/utils.js +132 -88
  53. package/dist/src/sync/common/utils.js.map +1 -1
  54. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js +1 -1
  55. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js.map +1 -1
  56. package/dist/src/sync/v2/export/controls/Fragment.js +2 -2
  57. package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
  58. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +26 -14
  59. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +57 -5
  60. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -1
  61. package/dist/src/sync/v2/export/controls/ObjectPageTable.d.ts +2 -3
  62. package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
  63. package/dist/src/sync/v2/export/controls/Table.d.ts +3 -3
  64. package/dist/src/sync/v2/export/controls/Table.js +89 -48
  65. package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
  66. package/dist/src/sync/v2/export/export.d.ts +0 -1
  67. package/dist/src/sync/v2/export/export.js +222 -160
  68. package/dist/src/sync/v2/export/export.js.map +1 -1
  69. package/dist/src/sync/v2/export/exportPage.js +35 -34
  70. package/dist/src/sync/v2/export/exportPage.js.map +1 -1
  71. package/dist/src/sync/v2/export/manifest.d.ts +22 -0
  72. package/dist/src/sync/v2/export/manifest.js +77 -36
  73. package/dist/src/sync/v2/export/manifest.js.map +1 -1
  74. package/dist/src/sync/v2/export/pages/OverviewPage.d.ts +1 -1
  75. package/dist/src/sync/v2/export/pages/OverviewPage.js +18 -16
  76. package/dist/src/sync/v2/export/pages/OverviewPage.js.map +1 -1
  77. package/dist/src/sync/v2/generate/analyticalListReport.js +10 -10
  78. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  79. package/dist/src/sync/v2/generate/listReport.js +1 -1
  80. package/dist/src/sync/v2/generate/listReport.js.map +1 -1
  81. package/dist/src/sync/v2/generate/objectPage.js +57 -43
  82. package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
  83. package/dist/src/sync/v2/generate/utils.d.ts +5 -4
  84. package/dist/src/sync/v2/generate/utils.js +73 -69
  85. package/dist/src/sync/v2/generate/utils.js.map +1 -1
  86. package/dist/src/sync/v2/import/app/appProvider.d.ts +9 -0
  87. package/dist/src/sync/v2/import/app/appProvider.js +36 -13
  88. package/dist/src/sync/v2/import/app/appProvider.js.map +1 -1
  89. package/dist/src/sync/v2/import/app/ovpProvider.js +1 -1
  90. package/dist/src/sync/v2/import/app/ovpProvider.js.map +1 -1
  91. package/dist/src/sync/v2/import/common/index.js +6 -6
  92. package/dist/src/sync/v2/import/common/index.js.map +1 -1
  93. package/dist/src/sync/v2/import/pages/objectPage.js +93 -101
  94. package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
  95. package/dist/src/sync/v2/import/pages/overviewPage.js +1 -1
  96. package/dist/src/sync/v2/import/pages/overviewPage.js.map +1 -1
  97. package/dist/src/sync/v2/import/utils.js +1 -1
  98. package/dist/src/sync/v2/import/utils.js.map +1 -1
  99. package/dist/src/sync/v2/types.d.ts +8 -3
  100. package/dist/src/sync/v2/types.js +6 -2
  101. package/dist/src/sync/v2/types.js.map +1 -1
  102. package/dist/src/sync/v4/application.d.ts +22 -10
  103. package/dist/src/sync/v4/application.js +68 -19
  104. package/dist/src/sync/v4/application.js.map +1 -1
  105. package/dist/src/sync/v4/export/controls/Table.d.ts +5 -0
  106. package/dist/src/sync/v4/export/controls/Table.js +91 -50
  107. package/dist/src/sync/v4/export/controls/Table.js.map +1 -1
  108. package/dist/src/sync/v4/export/controls/TableColumn.js +4 -4
  109. package/dist/src/sync/v4/export/controls/TableColumn.js.map +1 -1
  110. package/dist/src/sync/v4/export/export.js +287 -150
  111. package/dist/src/sync/v4/export/export.js.map +1 -1
  112. package/dist/src/sync/v4/export/manifest.js +25 -6
  113. package/dist/src/sync/v4/export/manifest.js.map +1 -1
  114. package/dist/src/sync/v4/export/pages/ListReport.d.ts +1 -0
  115. package/dist/src/sync/v4/export/pages/ListReport.js +7 -0
  116. package/dist/src/sync/v4/export/pages/ListReport.js.map +1 -1
  117. package/dist/src/sync/v4/export/pages/ObjectPage.js +3 -2
  118. package/dist/src/sync/v4/export/pages/ObjectPage.js.map +1 -1
  119. package/dist/src/sync/v4/export/types.d.ts +5 -5
  120. package/dist/src/sync/v4/generate/listReport.js +304 -156
  121. package/dist/src/sync/v4/generate/listReport.js.map +1 -1
  122. package/dist/src/sync/v4/generate/objectPage.d.ts +1 -1
  123. package/dist/src/sync/v4/generate/objectPage.js +288 -147
  124. package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
  125. package/dist/src/sync/v4/import/app/appProvider.js +32 -22
  126. package/dist/src/sync/v4/import/app/appProvider.js.map +1 -1
  127. package/dist/src/sync/v4/import/pages/listReport.js +54 -37
  128. package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
  129. package/dist/src/sync/v4/import/pages/objectPage.d.ts +13 -0
  130. package/dist/src/sync/v4/import/pages/objectPage.js +64 -35
  131. package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
  132. package/dist/src/sync/v4/import/utils.d.ts +2 -1
  133. package/dist/src/sync/v4/import/utils.js.map +1 -1
  134. package/dist/src/sync/v4/types.d.ts +2 -0
  135. package/dist/src/sync/v4/utils/StableIdHelper.js +13 -10
  136. package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -1
  137. package/dist/src/sync/v4/utils/utils.d.ts +7 -7
  138. package/dist/src/sync/v4/utils/utils.js +43 -32
  139. package/dist/src/sync/v4/utils/utils.js.map +1 -1
  140. package/dist/test/unit/export/manifest.test.d.ts +1 -0
  141. package/package.json +2 -2
@@ -56,73 +56,107 @@ function exportFlexChange(syncRule, transferParameters, ids, breadcrumbs, config
56
56
  const flexChange = common_1.fillFlexChangeContent(configObject, syncRule, transferParameters.ui5Version, key, controlId);
57
57
  transferParameters.exportResults.flexChanges.push(syncRule.flex.createFlexChange(flexChange, transferParameters.exportResults.manifest));
58
58
  }
59
- /**
60
- * Determines the target annotation that is relevant for the sync rule
61
- * @param {string[]} ids - list of ids of parent elements
62
- * @param {TransferParameterTypeV4} transferParameters - list of parameters passed from API
63
- * @param { [key: string]: any } configObject - the given config.json, to be exported
64
- * @returns { targetAnnotationEncoded, targetAnnotation, custom }
65
- */
66
- function determineTargetAnnotation(ids, transferParameters, configObject) {
59
+ function determineTargetAnnotationOfTable(ids, transferParameters, configObject) {
67
60
  var _a, _b, _c;
68
- let targetAnnotation = '', targetAnnotationEncoded = '', custom = false, annoPath;
69
- if (ids[0] === 'table' && transferParameters.templateType === utils_1.TemplateType.AnalyticalListPageV4) {
70
- if (ids.length > 1) {
71
- annoPath = transferParameters.appSchema.definitions[v4_1.DefinitionName.ALPTable]['annotationPath'];
72
- targetAnnotationEncoded = targetAnnotation = annoPath.substr(annoPath.lastIndexOf('@'));
73
- }
74
- else {
75
- //table level
76
- targetAnnotationEncoded = targetAnnotation = `@${(_a = configObject.table) === null || _a === void 0 ? void 0 : _a.annotationPath}`;
77
- }
78
- }
79
- else if (ids[0] === 'chart' && transferParameters.templateType === utils_1.TemplateType.AnalyticalListPageV4) {
80
- if (ids.length > 1) {
81
- annoPath = transferParameters.appSchema.definitions[v4_1.DefinitionName.ALPChart]['annotationPath'];
82
- targetAnnotationEncoded = targetAnnotation = annoPath === null || annoPath === void 0 ? void 0 : annoPath.substr(annoPath.lastIndexOf('@'));
83
- }
84
- else {
85
- //chart level
86
- targetAnnotationEncoded = targetAnnotation = `@${(_b = configObject.chart) === null || _b === void 0 ? void 0 : _b.annotationPath}`;
61
+ let targetAnnotationEncoded = '@com.sap.vocabularies.UI.v1.LineItem';
62
+ let targetAnnotation = '@com.sap.vocabularies.UI.v1.LineItem';
63
+ if (ids.length > 1 && transferParameters.config['table'].annotationPath) {
64
+ const annoPath = (_a = transferParameters.appSchema.definitions[v4_1.DefinitionName.ALPTable]) === null || _a === void 0 ? void 0 : _a[v4_1.SchemaTag.annotationPath];
65
+ targetAnnotationEncoded = targetAnnotation = annoPath && annoPath.substr(annoPath.lastIndexOf('@'));
66
+ }
67
+ else if ((_b = configObject.table) === null || _b === void 0 ? void 0 : _b.annotationPath) {
68
+ //view definition
69
+ targetAnnotationEncoded = targetAnnotation = `@${configObject.table.annotationPath}`;
70
+ }
71
+ else if (ids[0] === v4_1.PropertyName.table && transferParameters.config[v4_1.PropertyName.defaultTemplateAnnotationPath]) {
72
+ const annotationPath = (_c = transferParameters.appSchema.definitions[v4_1.DefinitionName.TableSPV]) === null || _c === void 0 ? void 0 : _c[v4_1.SchemaTag.annotationPath];
73
+ if (annotationPath) {
74
+ const annotationPathArray = annotationPath.split('/');
75
+ targetAnnotationEncoded = targetAnnotation = annotationPathArray[annotationPathArray.length - 1];
87
76
  }
88
77
  }
89
- else if (ids[0] === 'sections') {
90
- if (ids[1] === 'custom' && ids[2] !== ids[ids.length - 1]) {
91
- custom = true;
92
- targetAnnotationEncoded = ids[2];
93
- targetAnnotation = targetAnnotationEncoded.replace(/::/g, '/');
94
- }
95
- else {
96
- targetAnnotationEncoded = ids[1] && ids[1].replace(/\//g, '::');
97
- targetAnnotation = targetAnnotationEncoded.replace(/::/g, '/');
98
- }
78
+ return { targetAnnotationEncoded, targetAnnotation };
79
+ }
80
+ function determineTargetAnnotationOfChart(ids, transferParameters, targetAnnotationEncoded, targetAnnotation, configObject) {
81
+ var _a, _b;
82
+ if (ids.length > 1) {
83
+ const annoPath = (_a = transferParameters.appSchema.definitions[v4_1.DefinitionName.ALPChart]) === null || _a === void 0 ? void 0 : _a[v4_1.SchemaTag.annotationPath];
84
+ targetAnnotationEncoded = targetAnnotation = annoPath && annoPath.substr(annoPath.lastIndexOf('@'));
99
85
  }
100
- else if (ids[1] === 'sections') {
101
- //header sections
102
- targetAnnotation = targetAnnotationEncoded =
103
- transferParameters.title && transferParameters.title.indexOf(v4_1.FacetTitlePrefix) > -1
104
- ? transferParameters.title.split(v4_1.FacetTitlePrefix)[1]
105
- : targetAnnotationEncoded.replace(/::/g, '/');
86
+ else {
87
+ //chart level
88
+ targetAnnotationEncoded = targetAnnotation = `@${(_b = configObject.chart) === null || _b === void 0 ? void 0 : _b.annotationPath}`;
106
89
  }
107
- else if (ids[1] === 'views') {
108
- const parentDefinition = transferParameters.appSchema.definitions['MultiTableModeV4'].properties[ids[2]];
90
+ return { targetAnnotationEncoded, targetAnnotation };
91
+ }
92
+ function determineTargetAnnotationOfViews(transferParameters, ids, targetAnnotation, targetAnnotationEncoded) {
93
+ var _a, _b;
94
+ const parentDefinition = (_a = transferParameters.appSchema.definitions['MultiTableModeV4']) === null || _a === void 0 ? void 0 : _a.properties[ids[2]];
95
+ if (parentDefinition) {
109
96
  if (ids.length === 3) {
110
97
  //the parent definition comprises the annotation of the visualization of the (Selection)PresentationVariant.
111
98
  targetAnnotation = targetAnnotationEncoded =
112
- parentDefinition['annotationPath'] &&
113
- parentDefinition['annotationPath'].substr(parentDefinition['annotationPath'].lastIndexOf('@'));
99
+ parentDefinition[v4_1.SchemaTag.annotationPath] &&
100
+ parentDefinition[v4_1.SchemaTag.annotationPath].substr(parentDefinition[v4_1.SchemaTag.annotationPath].lastIndexOf('@'));
114
101
  }
115
102
  else if (ids.length > 3) {
116
103
  //the own definitio comprises the lineItem or chart annotation from he visualization
117
- const ownDefinitionName = (_c = parentDefinition.$ref) === null || _c === void 0 ? void 0 : _c.split(utils_1.DEFINITION_LINK_PREFIX)[1];
104
+ const ownDefinitionName = (_b = parentDefinition.$ref) === null || _b === void 0 ? void 0 : _b.split(utils_1.DEFINITION_LINK_PREFIX)[1];
118
105
  const ownDefinition = ownDefinitionName && transferParameters.appSchema.definitions[ownDefinitionName];
119
- const annotation = (ownDefinition === null || ownDefinition === void 0 ? void 0 : ownDefinition['annotationPath']) &&
120
- ownDefinition['annotationPath'].substr(ownDefinition['annotationPath'].lastIndexOf('@'));
106
+ const annotation = (ownDefinition === null || ownDefinition === void 0 ? void 0 : ownDefinition[v4_1.SchemaTag.annotationPath]) &&
107
+ ownDefinition[v4_1.SchemaTag.annotationPath].substr(ownDefinition[v4_1.SchemaTag.annotationPath].lastIndexOf('@'));
121
108
  targetAnnotation = targetAnnotationEncoded = ownDefinition['navigationProperty']
122
109
  ? `${ownDefinition['navigationProperty']}/${annotation}`
123
110
  : annotation;
124
111
  }
125
112
  }
113
+ return { targetAnnotation, targetAnnotationEncoded };
114
+ }
115
+ function determineTargetAnnotationOfSections(ids, custom, targetAnnotationEncoded, targetAnnotation) {
116
+ if (ids[1] === 'custom' && ids[2] !== ids[ids.length - 1]) {
117
+ custom = true;
118
+ targetAnnotationEncoded = ids[2];
119
+ targetAnnotation = targetAnnotationEncoded && targetAnnotationEncoded.replace(/::/g, '/');
120
+ }
121
+ else {
122
+ targetAnnotationEncoded = ids[1] && ids[1].replace(/\//g, '::');
123
+ targetAnnotation = targetAnnotationEncoded && targetAnnotationEncoded.replace(/::/g, '/');
124
+ }
125
+ return { custom, targetAnnotationEncoded, targetAnnotation };
126
+ }
127
+ /**
128
+ * Determines the target annotation that is relevant for the sync rule
129
+ * @param {string[]} ids - list of ids of parent elements
130
+ * @param {TransferParameterTypeV4} transferParameters - list of parameters passed from API
131
+ * @param { [key: string]: any } configObject - the given config.json, to be exported
132
+ * @returns { targetAnnotationEncoded, targetAnnotation, custom }
133
+ */
134
+ function determineTargetAnnotation(ids, transferParameters, configObject) {
135
+ let targetAnnotation, targetAnnotationEncoded, custom = false;
136
+ if (ids[0] === v4_1.PropertyName.table && ids[1] !== v4_1.PropertyName.views) {
137
+ ({ targetAnnotationEncoded, targetAnnotation } = determineTargetAnnotationOfTable(ids, transferParameters, configObject));
138
+ }
139
+ else if (ids[0] === v4_1.PropertyName.chart && transferParameters.templateType === utils_1.TemplateType.AnalyticalListPageV4) {
140
+ ({ targetAnnotationEncoded, targetAnnotation } = determineTargetAnnotationOfChart(ids, transferParameters, targetAnnotationEncoded, targetAnnotation, configObject));
141
+ }
142
+ else if (ids[0] === v4_1.PropertyName.sections) {
143
+ ({ custom, targetAnnotationEncoded, targetAnnotation } = determineTargetAnnotationOfSections(ids, custom, targetAnnotationEncoded, targetAnnotation));
144
+ }
145
+ else if (ids[1] === v4_1.PropertyName.sections) {
146
+ //header sections
147
+ if (transferParameters.title && transferParameters.title.indexOf(v4_1.FacetTitlePrefix) > -1) {
148
+ targetAnnotation = targetAnnotationEncoded = transferParameters.title.split(v4_1.FacetTitlePrefix)[1];
149
+ }
150
+ else if (ids[2]) {
151
+ targetAnnotation = targetAnnotationEncoded = ids[2].split('@')[1];
152
+ }
153
+ else if (targetAnnotationEncoded) {
154
+ targetAnnotation = targetAnnotationEncoded = targetAnnotationEncoded.replace(/::/g, '/');
155
+ }
156
+ }
157
+ else if (ids[1] === v4_1.PropertyName.views) {
158
+ ({ targetAnnotation, targetAnnotationEncoded } = determineTargetAnnotationOfViews(transferParameters, ids, targetAnnotation, targetAnnotationEncoded));
159
+ }
126
160
  return { targetAnnotationEncoded, targetAnnotation, custom };
127
161
  }
128
162
  /**
@@ -134,49 +168,50 @@ function determineKeyForSyncRule(ids) {
134
168
  let idIndex = 0;
135
169
  for (let index = ids.length - 1; index > -1; index--) {
136
170
  const element = ids[index];
137
- if (element === 'columns' || element === 'actions' || element === 'views') {
171
+ if (element === 'columns' || element === v4_1.PropertyName.actions || element === 'views') {
138
172
  idIndex = index + 1;
139
173
  break;
140
174
  }
141
175
  }
142
- return idIndex > 0 ? ids[idIndex] : undefined;
176
+ return idIndex > 0 ? ids[idIndex].replace(/\//gi, '??') : undefined;
177
+ }
178
+ /**
179
+ * Creates a new object in manifest
180
+ * @param {ExportToManifestParams} params - list of parameters
181
+ */
182
+ function createNewObjectInManifest(params) {
183
+ if (params.exportHandler && typeof params.exportHandler === 'function') {
184
+ params.exportHandler(params.manifestSection, params.configObject, params.configPropertyKey, params.manifestKey, params.syncRuleKey);
185
+ }
186
+ else if (!params.manifestSection[params.manifestKey]) {
187
+ params.manifestSection[params.manifestKey] = {};
188
+ }
143
189
  }
144
190
  /**
145
191
  * Transfers a property value from config to manifest
192
+ * @param {ExportToManifestParams} params - list of parameters
146
193
  * @param propertyDefinition - schema definiton of a particular property
147
194
  * @param nextDefinition - schema definition referred by $ref
148
- * @param {SyncRule} syncRule - syncRule (metadata)
149
- * @param manifestSection - actual section n manifest.json
150
- * @param { [key: string]: any } configObject - the given config.json, to be exported
151
- * @param {string} configPropertyKey - key of property in the config
152
- * @param manifestKey - key in manifest (might be different from propertyKey)
153
- * @param syncRuleKey - specific key, calculated for the export handler
154
195
  */
155
- function transferPropertyToManifest(propertyDefinition, nextDefinition, syncRule, manifestSection, configObject, configPropertyKey, manifestKey, syncRuleKey) {
156
- const exportHandler = syncRule.manifest.export;
196
+ function transferPropertyToManifest(params, propertyDefinition, nextDefinition) {
197
+ var _a, _b;
157
198
  if (!(propertyDefinition['type'] !== 'array' &&
158
- nextDefinition &&
159
- nextDefinition['targetDefinition'].type === 'object' &&
160
- nextDefinition['targetDefinition'].properties)) {
161
- if (exportHandler !== false) {
162
- if (exportHandler && typeof exportHandler === 'function') {
163
- exportHandler(manifestSection, configObject, configPropertyKey, manifestKey, syncRuleKey);
199
+ ((_a = nextDefinition === null || nextDefinition === void 0 ? void 0 : nextDefinition['targetDefinition']) === null || _a === void 0 ? void 0 : _a.type) === 'object' && ((_b = nextDefinition === null || nextDefinition === void 0 ? void 0 : nextDefinition['targetDefinition']) === null || _b === void 0 ? void 0 : _b.properties))) {
200
+ if (params.exportHandler !== false) {
201
+ if (params.exportHandler && typeof params.exportHandler === 'function') {
202
+ params.exportHandler(params.manifestSection, params.configObject, params.configPropertyKey, params.manifestKey, params.syncRuleKey);
164
203
  }
165
- else if (Array.isArray(configObject[configPropertyKey]) && !configObject[configPropertyKey].length) {
166
- delete manifestSection[manifestKey];
204
+ else if (Array.isArray(params.configObject[params.configPropertyKey]) &&
205
+ !params.configObject[params.configPropertyKey].length) {
206
+ delete params.manifestSection[params.manifestKey];
167
207
  }
168
208
  else {
169
- manifestSection[manifestKey] = configObject[configPropertyKey];
209
+ params.manifestSection[params.manifestKey] = params.configObject[params.configPropertyKey];
170
210
  }
171
211
  }
172
212
  }
173
- else if (propertyDefinition['type'] !== 'array' && manifestSection[manifestKey] === undefined) {
174
- if (exportHandler && typeof exportHandler === 'function') {
175
- exportHandler(manifestSection, configObject, configPropertyKey, manifestKey, syncRuleKey);
176
- }
177
- else {
178
- manifestSection[manifestKey] = {};
179
- }
213
+ else if (propertyDefinition['type'] !== 'array' && params.manifestSection[params.manifestKey] === undefined) {
214
+ createNewObjectInManifest(params);
180
215
  }
181
216
  }
182
217
  /**
@@ -200,19 +235,29 @@ function exportManifestChange(ids, syncRule, transferParameters, configPropertyK
200
235
  const syncRuleKey = determineKeyForSyncRule(ids);
201
236
  const path = syncRule.manifest.path(transferParameters.pageNameArray, transferParameters.exportResults.manifest, targetAnnotationEncoded, syncRuleKey, targetAnnotation);
202
237
  const manifestSection = common_1.getManifestSectionByPathV4(transferParameters.exportResults.manifest, path, targetAnnotation, custom ? undefined : targetAnnotationEncoded);
203
- const manifestKey = syncRule.manifest.key || configPropertyKey;
204
- if (configObject[configPropertyKey] !== undefined) {
205
- // In case of arrays we take over complete array
206
- transferPropertyToManifest(propertyDefinition, nextDefinition, syncRule, manifestSection, configObject, configPropertyKey, manifestKey, syncRuleKey);
207
- }
208
- else if (syncRule.manifest.delete) {
209
- const deleteHandler = syncRule.manifest.delete;
210
- if (typeof deleteHandler === 'function') {
211
- deleteHandler(manifestSection, configObject, configPropertyKey, manifestKey);
238
+ if (manifestSection) {
239
+ const manifestKey = syncRule.manifest.key || configPropertyKey;
240
+ if (configObject[configPropertyKey] !== undefined) {
241
+ // In case of arrays we take over complete array
242
+ const exportParams = {
243
+ exportHandler: syncRule.manifest.export,
244
+ manifestSection,
245
+ configObject,
246
+ configPropertyKey,
247
+ manifestKey,
248
+ syncRuleKey
249
+ };
250
+ transferPropertyToManifest(exportParams, propertyDefinition, nextDefinition);
251
+ }
252
+ else if (syncRule.manifest.delete) {
253
+ const deleteHandler = syncRule.manifest.delete;
254
+ if (typeof deleteHandler === 'function') {
255
+ deleteHandler(manifestSection, configObject, configPropertyKey, manifestKey, syncRuleKey);
256
+ }
257
+ }
258
+ else if (manifestSection[manifestKey] !== undefined) {
259
+ delete manifestSection[manifestKey];
212
260
  }
213
- }
214
- else if (manifestSection[manifestKey] !== undefined) {
215
- delete manifestSection[manifestKey];
216
261
  }
217
262
  utils_1.deleteEmptyStructure(transferParameters.exportResults.manifest, path, targetAnnotation, targetAnnotationEncoded);
218
263
  }
@@ -238,15 +283,23 @@ function evaluateExportRule(transferParameters, breadcrumbs, key, configObject,
238
283
  }
239
284
  }
240
285
  }
241
- function transferSubObject(propertyDefinition, nextDefinition, currentConfigObject, breadcrumbs, key, transferParameters, ids, localIdParts) {
286
+ /**
287
+ * Processes an (object-like) sub-object of the app schema and transfer all connected config entries to manifest
288
+ * @param {TransferEntryParameters} parameters - list of parameters
289
+ * @param {NextDefinition} nextDefinition - the next definition in app schema to be processed
290
+ * @param currentConfigObject - current config object
291
+ * @param ids - list of parent & child ID's
292
+ * @param localIdParts - list of ID parts for building the stable ID
293
+ */
294
+ function transferSubObject(parameters, nextDefinition, currentConfigObject, ids, localIdParts) {
242
295
  let objects = [], isArray = false;
243
- if (propertyDefinition.$ref && nextDefinition) {
296
+ if (parameters.propertyDefinition.$ref && nextDefinition) {
244
297
  objects.push(nextDefinition.configObject);
245
298
  }
246
- else if (propertyDefinition['anyOf']) {
299
+ else if (parameters.propertyDefinition['anyOf']) {
247
300
  objects.push(currentConfigObject);
248
301
  }
249
- else if (propertyDefinition.type === 'array') {
302
+ else if (parameters.propertyDefinition.type === 'array') {
250
303
  objects = currentConfigObject;
251
304
  isArray = true;
252
305
  }
@@ -255,13 +308,13 @@ function transferSubObject(propertyDefinition, nextDefinition, currentConfigObje
255
308
  }
256
309
  for (const innerObject of objects) {
257
310
  const additionalIds = [];
258
- if (breadcrumbs[0] === 'sections' && key === 'custom' && isArray) {
311
+ if (parameters.breadcrumbs[0] === v4_1.PropertyName.sections && parameters.key === 'custom' && isArray) {
259
312
  // We need add custom section 'id' into breadcrumbs to retrieve correct path to manifest
260
313
  additionalIds.push(innerObject['id']);
261
314
  }
262
- transferParameters.title = nextDefinition.title;
315
+ parameters.transferParameters.title = nextDefinition.title;
263
316
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
264
- transferManifestEntriesAndFlexChange(transferParameters, innerObject, [...ids, ...additionalIds], localIdParts, [...breadcrumbs, key], nextDefinition.targetDefinition);
317
+ transferManifestEntriesAndFlexChange(parameters.transferParameters, innerObject, [...ids, ...additionalIds], localIdParts, [...parameters.breadcrumbs, parameters.key], nextDefinition.targetDefinition);
265
318
  }
266
319
  }
267
320
  /**
@@ -312,6 +365,7 @@ function createALPTableView(transferParameters, configObject, key) {
312
365
  * - a boolean infcating if the processing of sub-objects shall be stopped
313
366
  */
314
367
  function createALPChartView(transferParameters, configObject, key) {
368
+ var _a;
315
369
  let newElementCreated = false;
316
370
  if (!configObject[key] || Object.keys(configObject[key]).length === 0) {
317
371
  return { newElementCreated, stopProcessing: true };
@@ -341,7 +395,7 @@ function createALPChartView(transferParameters, configObject, key) {
341
395
  if (!views['paths'][0].secondary) {
342
396
  views['paths'][0].secondary = [
343
397
  {
344
- annotationPath: 'com.sap.vocabularies.UI.v1.LineItem'
398
+ annotationPath: ((_a = configObject === null || configObject === void 0 ? void 0 : configObject.table) === null || _a === void 0 ? void 0 : _a.annotationPath) || 'com.sap.vocabularies.UI.v1.LineItem'
345
399
  }
346
400
  ];
347
401
  }
@@ -354,28 +408,35 @@ function createALPChartView(transferParameters, configObject, key) {
354
408
  * @param configObject - current object in config.json
355
409
  * @returns a boolean indicating that the views entry got created.
356
410
  */
357
- function createLRTableView(transferParameters, key, configObject) {
411
+ function createLRTableView(index, transferParameters, key, configObject) {
358
412
  if (!configObject || Object.keys(configObject).length === 0) {
359
413
  return false;
360
414
  }
361
415
  let newElementCreated = false;
362
416
  const path = application_1.getSettingsPathForPage(transferParameters.pageNameArray) + `/views`;
363
417
  const views = common_1.getManifestSectionByPathV4(transferParameters.exportResults.manifest, path);
418
+ const newEntry = {
419
+ key: key,
420
+ annotationPath: configObject.annotationPath
421
+ };
364
422
  if (!views['paths'] || Object.keys(views['paths']).length === 0) {
365
- views['paths'] = [
366
- {
367
- key: key,
368
- annotationPath: configObject.annotationPath
369
- }
370
- ];
423
+ //No views yet
424
+ views['paths'] = [newEntry];
371
425
  newElementCreated = true;
372
426
  }
373
- else if (!views['paths'].find((view) => view.key === key)) {
374
- views['paths'].push({
375
- key: key,
376
- annotationPath: configObject.annotationPath
377
- });
378
- newElementCreated = true;
427
+ else {
428
+ const existingIndex = views['paths'].findIndex((view) => view.key === key);
429
+ if (existingIndex === -1) {
430
+ //Given view does not exist yet
431
+ views['paths'].push(newEntry);
432
+ newElementCreated = true;
433
+ }
434
+ else if (existingIndex !== index) {
435
+ //Reordering scenario
436
+ views['paths'].splice(existingIndex, 1);
437
+ views['paths'].splice(index, 0, newEntry);
438
+ newElementCreated = true;
439
+ }
379
440
  }
380
441
  return newElementCreated;
381
442
  }
@@ -388,19 +449,89 @@ function createLRTableView(transferParameters, key, configObject) {
388
449
  * @param {TransferParameterTypeV4} transferParameters - list of parameters passed from API
389
450
  * @returns newElementCreated - boolean value to indicate that a new element was created ==> no further sync rule on this level
390
451
  */
391
- function createNewElement(definitionName, key, configObject, breadcrumbs, transferParameters) {
452
+ function createNewElement(index, definitionName, key, configObject, breadcrumbs, transferParameters, preprocessed = false) {
392
453
  let newElementCreated = false;
393
454
  const stopProcessing = false;
394
- if (definitionName === v4_1.DefinitionName.ALPChartView && key === 'chart' && configObject) {
395
- return createALPChartView(transferParameters, configObject, key);
455
+ if (!preprocessed) {
456
+ if (definitionName === v4_1.DefinitionName.ALPChartView && key === v4_1.PropertyName.chart && configObject) {
457
+ return createALPChartView(transferParameters, configObject, key);
458
+ }
459
+ else if (definitionName === v4_1.DefinitionName.ALPTableView && key === v4_1.PropertyName.table && configObject) {
460
+ return createALPTableView(transferParameters, configObject, key);
461
+ }
462
+ else if (key &&
463
+ ((definitionName === null || definitionName === void 0 ? void 0 : definitionName.startsWith(v4_1.DefinitionName.LRTableView)) || (definitionName === null || definitionName === void 0 ? void 0 : definitionName.startsWith(v4_1.DefinitionName.LRChartView)))) {
464
+ newElementCreated = createLRTableView(index, transferParameters, key, configObject[key]);
465
+ }
396
466
  }
397
- else if (definitionName === v4_1.DefinitionName.ALPTableView && key === 'table' && configObject) {
398
- return createALPTableView(transferParameters, configObject, key);
467
+ return { newElementCreated, stopProcessing };
468
+ }
469
+ /**
470
+ * Transfers one enry of a list (aka one property of the config) to the manifest
471
+ * @param {TransferEntryParameters} parameters - list of parameters
472
+ * @param parentIds - array of collected parent ids
473
+ * @param stableIdParts - list of parts of the stable ID for flex changes
474
+ * @param preprocessed - indicates that the list was already preprocessed by following the config order
475
+ */
476
+ function transferSortedListEntry(parameters, parentIds, stableIdParts, preprocessed = false) {
477
+ var _a;
478
+ const currentConfigObject = parameters.configObject[parameters.key];
479
+ const childId = common_1.getChildId(parameters.configObject, parameters.key);
480
+ const nextDefinition = utils_1.getNextTargetDefinition(parameters.transferParameters.appSchema, parameters.transferParameters.title, currentConfigObject, parameters.propertyDefinition, parameters.key, parameters.transferParameters.factory, parameters.transferParameters.pageType);
481
+ const { newElementCreated, stopProcessing } = createNewElement(parameters.index, (_a = parameters.propertyDefinition.$ref) === null || _a === void 0 ? void 0 : _a.split(utils_1.DEFINITION_LINK_PREFIX)[1], parameters.key, parameters.configObject, parameters.breadcrumbs, parameters.transferParameters, preprocessed);
482
+ const ids = childId ? [...parentIds, childId] : [...parentIds, parameters.key];
483
+ if (!newElementCreated) {
484
+ evaluateExportRule(parameters.transferParameters, parameters.breadcrumbs, parameters.key, parameters.configObject, ids, parameters.propertyDefinition, nextDefinition);
485
+ }
486
+ if (parameters.propertyDefinition &&
487
+ (typeof currentConfigObject === 'object' ||
488
+ (parameters.propertyDefinition.$ref && nextDefinition.configObject)) &&
489
+ !stopProcessing) {
490
+ const localIdParts = childId ? [...stableIdParts, childId] : stableIdParts;
491
+ transferSubObject(parameters, nextDefinition, currentConfigObject, ids, localIdParts);
399
492
  }
400
- else if (key && ((definitionName === null || definitionName === void 0 ? void 0 : definitionName.startsWith('LRTableView')) || (definitionName === null || definitionName === void 0 ? void 0 : definitionName.startsWith('LRChartView')))) {
401
- newElementCreated = createLRTableView(transferParameters, key, configObject[key]);
493
+ }
494
+ /**
495
+ * Function for special handling of anyOf definitions during the export
496
+ * @param {TransferEntryParameters} parameters - list of parameters
497
+ * @param anyOfDefinitions - the array of definitions from the anyOf (of additionalProperties)
498
+ * @param schemaDefinition - parent definition, comprising properties as well as additionalProperties
499
+ * @param parentIds - array of collected parent ids
500
+ * @param stableIdParts - list of parts of the stable ID for flex changes
501
+ * @returns
502
+ */
503
+ function transferConfigEntriesWithAnyOfDefinitions(transferEntryParameters, anyOfDefinitions, schemaDefinition, parentIds, stableIdParts) {
504
+ let preprocessed = false;
505
+ if (anyOfDefinitions) {
506
+ const configEntries = Object.entries(transferEntryParameters.configObject);
507
+ if (!configEntries || configEntries.length < 1) {
508
+ return preprocessed;
509
+ }
510
+ configEntries.sort((a, b) => a[1]['index'] - b[1]['index']);
511
+ //follow the config order, to support reordering
512
+ configEntries.forEach((configEntry) => {
513
+ if (schemaDefinition.properties[configEntry[0]]) {
514
+ transferEntryParameters.key = configEntry[0];
515
+ transferEntryParameters.propertyDefinition = schemaDefinition.properties[configEntry[0]];
516
+ //already part of schema
517
+ transferSortedListEntry(transferEntryParameters, parentIds, stableIdParts);
518
+ preprocessed = true;
519
+ }
520
+ else if (typeof configEntry[1] === 'object') {
521
+ //match against potential schema definitions
522
+ anyOfDefinitions.forEach((anyOfDefinition) => {
523
+ if (anyOfDefinition.$ref) {
524
+ transferEntryParameters.key = configEntry[0];
525
+ transferEntryParameters.propertyDefinition = anyOfDefinition;
526
+ transferSortedListEntry(transferEntryParameters, parentIds, stableIdParts);
527
+ preprocessed = true;
528
+ }
529
+ });
530
+ }
531
+ transferEntryParameters.index++;
532
+ });
402
533
  }
403
- return { newElementCreated, stopProcessing };
534
+ return preprocessed;
404
535
  }
405
536
  /**
406
537
  * Recursive function that traverses the content of the current object. It reads decorators and fills exportResultManifest entries and flex changes
@@ -413,35 +544,36 @@ function createNewElement(definitionName, key, configObject, breadcrumbs, transf
413
544
  * @param title - the title to be used for the given schema definition
414
545
  */
415
546
  function transferManifestEntriesAndFlexChange(transferParameters, configObject, parentIds, stableIdParts, breadcrumbs, schemaDefinition) {
416
- var _a;
417
- let currentConfigObject;
418
- if (!(schemaDefinition === null || schemaDefinition === void 0 ? void 0 : schemaDefinition['properties'])) {
547
+ var _a, _b;
548
+ if (!(schemaDefinition === null || schemaDefinition === void 0 ? void 0 : schemaDefinition.properties)) {
419
549
  return;
420
550
  }
421
- //Sort, if there is a propertyIndex, so that the exported list ends up in manifest in the right order
422
- let sortedList = Object.entries(schemaDefinition['properties']);
551
+ let index = 0;
552
+ //In case of additionalProperties = flexible array definition ==> new entries from the config shall be exported too
553
+ const transferEntryParameters = {
554
+ transferParameters,
555
+ breadcrumbs,
556
+ key: undefined,
557
+ index,
558
+ configObject,
559
+ propertyDefinition: undefined
560
+ };
561
+ const anyOfDefinitions = (_a = schemaDefinition.additionalProperties) === null || _a === void 0 ? void 0 : _a.anyOf;
562
+ const preprocessed = transferConfigEntriesWithAnyOfDefinitions(transferEntryParameters, anyOfDefinitions, schemaDefinition, parentIds, stableIdParts);
563
+ //Sort if there is a propertyIndex, so that the exported list ends up in manifest in the right order
564
+ let sortedList = schemaDefinition.properties && Object.entries(schemaDefinition.properties);
423
565
  if (sortedList) {
424
- if ((_a = sortedList[0]) === null || _a === void 0 ? void 0 : _a[1]['propertyIndex']) {
425
- sortedList = Object.entries(schemaDefinition['properties']).sort((a, b) => a[1]['propertyIndex'] - b[1]['propertyIndex']);
566
+ if ((_b = sortedList[0]) === null || _b === void 0 ? void 0 : _b[1][v4_1.SchemaTag.propertyIndex]) {
567
+ sortedList = Object.entries(schemaDefinition.properties).sort((a, b) => a[1][v4_1.SchemaTag.propertyIndex] - b[1][v4_1.SchemaTag.propertyIndex]);
426
568
  }
569
+ index = 0;
427
570
  sortedList.forEach((element) => {
428
- var _a;
429
- const key = element[0];
430
- currentConfigObject = configObject[key];
431
- const childId = common_1.getChildId(configObject, key);
432
- const propertyDefinition = element[1];
433
- const nextDefinition = utils_1.getNextTargetDefinition(transferParameters.appSchema, transferParameters.title, currentConfigObject, propertyDefinition, key, transferParameters.factory, transferParameters.pageType);
434
- const definitionInSchema = (_a = propertyDefinition.$ref) === null || _a === void 0 ? void 0 : _a.split(utils_1.DEFINITION_LINK_PREFIX)[1];
435
- const { newElementCreated, stopProcessing } = createNewElement(definitionInSchema, key, configObject, breadcrumbs, transferParameters);
436
- const ids = childId ? [...parentIds, childId] : [...parentIds, key];
437
- if (!newElementCreated) {
438
- evaluateExportRule(transferParameters, breadcrumbs, key, configObject, ids, propertyDefinition, nextDefinition);
439
- }
440
- if (propertyDefinition &&
441
- (typeof currentConfigObject === 'object' || (propertyDefinition.$ref && nextDefinition.configObject)) &&
442
- !stopProcessing) {
443
- const localIdParts = childId ? [...stableIdParts, childId] : stableIdParts;
444
- transferSubObject(propertyDefinition, nextDefinition, currentConfigObject, breadcrumbs, key, transferParameters, ids, localIdParts);
571
+ transferEntryParameters.key = element[0];
572
+ transferEntryParameters.propertyDefinition = element[1];
573
+ transferEntryParameters.index = index;
574
+ transferSortedListEntry(transferEntryParameters, parentIds, stableIdParts, preprocessed);
575
+ if (element[1].$ref) {
576
+ index++;
445
577
  }
446
578
  });
447
579
  }
@@ -503,7 +635,7 @@ const exportObjectPage = (exportParameters, ui5Version) => {
503
635
  const pageLayoutInformation = common_1.getPageLayoutInformation(objectPage);
504
636
  const pageName = exportParameters.page.name;
505
637
  const baseId = `${exportParameters.appId}::${pageLayoutInformation.id}::${pageName}--`;
506
- if ((_a = exportParameters.page.config) === null || _a === void 0 ? void 0 : _a['sections']) {
638
+ if ((_a = exportParameters.page.config) === null || _a === void 0 ? void 0 : _a[v4_1.PropertyName.sections]) {
507
639
  getExportClassesForSections(exportParameters.page.config, objectPage, factory);
508
640
  }
509
641
  const transferParameters = {
@@ -512,6 +644,7 @@ const exportObjectPage = (exportParameters, ui5Version) => {
512
644
  appRootPath: exportParameters.appRootPath,
513
645
  baseId,
514
646
  appSchema: exportParameters.jsonSchema,
647
+ config: objectPage,
515
648
  ui5Version,
516
649
  factory,
517
650
  pageNameArray: [pageName],
@@ -534,28 +667,32 @@ const exportObjectPage = (exportParameters, ui5Version) => {
534
667
  * @param ui5Version - SAP UI5 version
535
668
  */
536
669
  const exportListPage = (exportParameters, factory, config, pageType, ui5Version, templateType) => {
537
- var _a;
670
+ var _a, _b;
538
671
  const exportResults = defaultExportResult;
539
672
  exportResults.manifest = JSON.parse(JSON.stringify(exportParameters.manifest));
540
- config.table = factory.createInstance(pageType, v4_1.DefinitionName.Table, config.table);
541
- if (((_a = config.table.toolBar) === null || _a === void 0 ? void 0 : _a.actions) && exportParameters.jsonSchema['definitions']['Actions<LineItems>']) {
542
- for (const actionKey in exportParameters.jsonSchema['definitions']['Actions<LineItems>'].properties) {
673
+ const appSchema = exportParameters.jsonSchema;
674
+ const tableDefinition = ((_a = config.table) === null || _a === void 0 ? void 0 : _a[v4_1.PropertyName.annotationPath]) ? v4_1.DefinitionName.ALPTableView
675
+ : v4_1.DefinitionName.Table;
676
+ config.table = factory.createInstance(pageType, tableDefinition, config.table);
677
+ if (((_b = config.table.toolBar) === null || _b === void 0 ? void 0 : _b.actions) && appSchema.definitions['Actions<LineItems>']) {
678
+ for (const actionKey in appSchema.definitions['Actions<LineItems>'].properties) {
543
679
  config.table.toolBar.actions[actionKey] = factory.createInstance(pageType, 'ToolBarAction', config.table.toolBar.actions[actionKey]);
544
680
  }
545
681
  }
546
682
  const pageLayoutInformation = common_1.getPageLayoutInformation(config);
547
683
  const pageName = exportParameters.page.name;
548
684
  const baseId = `${exportParameters.appId}::${pageLayoutInformation.id}::${pageName}--`;
549
- if (!exportResults.manifest[v4_1.ManifestSection.ui5]['routing']['targets'][pageName]) {
685
+ if (!exportResults.manifest[v4_1.ManifestSection.ui5].routing.targets[pageName]) {
550
686
  const newV4Page = getV4ManifestPageTemplate(pageLayoutInformation.pageId, pageName);
551
- exportResults.manifest[v4_1.ManifestSection.ui5]['routing']['targets'][pageName] = newV4Page;
687
+ exportResults.manifest[v4_1.ManifestSection.ui5].routing.targets[pageName] = newV4Page;
552
688
  }
553
689
  const transferParameters = {
554
690
  exportResults,
555
691
  appId: exportParameters.appId,
556
692
  appRootPath: exportParameters.appRootPath,
557
693
  baseId,
558
- appSchema: exportParameters.jsonSchema,
694
+ appSchema,
695
+ config,
559
696
  ui5Version,
560
697
  factory,
561
698
  pageNameArray: [pageName],
@@ -567,7 +704,7 @@ const exportListPage = (exportParameters, factory, config, pageType, ui5Version,
567
704
  transferManifestEntriesAndFlexChange(transferParameters, config, [], //no parentIds
568
705
  [], // no stableIds
569
706
  [], // no breadcrumbs
570
- exportParameters.jsonSchema //starting point for target definition
707
+ appSchema //starting point for target definition
571
708
  );
572
709
  return exportResults;
573
710
  };