@sap/ux-specification 1.90.17 → 1.90.20

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 (196) hide show
  1. package/CHANGELOG.md +55 -2
  2. package/dist/documentation/runDocu-min.js +1 -1
  3. package/dist/documentation/styleDocu.css +7 -14
  4. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  5. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  6. package/dist/documentation/v2/v2-ListReport.html +1 -1
  7. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  8. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  9. package/dist/documentation/v4/v4-AnalyticalListPage.html +1 -1
  10. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  11. package/dist/documentation/v4/v4-ListReport.html +1 -1
  12. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  13. package/dist/index-min.js +1 -1
  14. package/dist/schemas/v2/AnalyticalListPageConfig.json +175 -15
  15. package/dist/schemas/v2/ListReportConfig.json +187 -15
  16. package/dist/schemas/v2/ObjectPageConfig.json +127 -33
  17. package/dist/schemas/v2/OverviewPageConfig.json +57 -16
  18. package/dist/schemas/v4/AnalyticalListPageConfig.json +43 -86
  19. package/dist/schemas/v4/ListReportConfig.json +43 -86
  20. package/dist/schemas/v4/ObjectPageConfig.json +64 -71
  21. package/dist/scripts/runDocu.js +30 -7
  22. package/dist/scripts/runDocu.js.map +1 -1
  23. package/dist/scripts/to-json-schema.js +31 -37
  24. package/dist/scripts/to-json-schema.js.map +1 -1
  25. package/dist/specification/v2/index-min.js +1 -1
  26. package/dist/specification/v4/index-min.js +1 -1
  27. package/dist/src/api.js +9 -9
  28. package/dist/src/api.js.map +1 -1
  29. package/dist/src/apiTypes.d.ts +5 -2
  30. package/dist/src/specification/schemaAccess.js +1 -3
  31. package/dist/src/specification/schemaAccess.js.map +1 -1
  32. package/dist/src/specification/v2/controls/Action.d.ts +19 -2
  33. package/dist/src/specification/v2/controls/FilterBar.d.ts +70 -22
  34. package/dist/src/specification/v2/controls/FilterBar.js +24 -0
  35. package/dist/src/specification/v2/controls/FilterBar.js.map +1 -1
  36. package/dist/src/specification/v2/controls/Footer.d.ts +20 -0
  37. package/dist/src/specification/v2/controls/{ObjectPageFooter.js → Footer.js} +1 -1
  38. package/dist/src/specification/v2/controls/Footer.js.map +1 -0
  39. package/dist/src/specification/v2/controls/ObjectPageTable.d.ts +4 -0
  40. package/dist/src/specification/v2/controls/Table.d.ts +12 -1
  41. package/dist/src/specification/v2/controls/Table.js.map +1 -1
  42. package/dist/src/specification/v2/controls/ToolBar.d.ts +1 -8
  43. package/dist/src/specification/v2/controls/index.d.ts +1 -2
  44. package/dist/src/specification/v2/controls/index.js.map +1 -1
  45. package/dist/src/specification/v2/pages/AnalyticalListPageConfig.d.ts +2 -1
  46. package/dist/src/specification/v2/pages/ListReportConfig.d.ts +2 -1
  47. package/dist/src/specification/v2/pages/OverviewPageConfig.d.ts +36 -2
  48. package/dist/src/specification/v2/pages/OverviewPageConfig.js.map +1 -1
  49. package/dist/src/specification/v4/controls/ObjectPageFooter.d.ts +2 -2
  50. package/dist/src/specification/v4/controls/ObjectPageSection.d.ts +7 -7
  51. package/dist/src/specification/v4/controls/ObjectPageTable.d.ts +5 -6
  52. package/dist/src/specification/v4/controls/Table.d.ts +2 -7
  53. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.d.ts +59 -10
  54. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.js +6 -0
  55. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.js.map +1 -1
  56. package/dist/src/sync/common/appProvider.js.map +1 -1
  57. package/dist/src/sync/common/decoration/control.d.ts +11 -1
  58. package/dist/src/sync/common/decoration/control.js +29 -3
  59. package/dist/src/sync/common/decoration/control.js.map +1 -1
  60. package/dist/src/sync/common/decoration/factory.js +2 -4
  61. package/dist/src/sync/common/decoration/factory.js.map +1 -1
  62. package/dist/src/sync/common/generate/objectPage.d.ts +9 -0
  63. package/dist/src/sync/common/generate/objectPage.js +89 -43
  64. package/dist/src/sync/common/generate/objectPage.js.map +1 -1
  65. package/dist/src/sync/common/generate/utils.d.ts +27 -0
  66. package/dist/src/sync/common/generate/utils.js +118 -3
  67. package/dist/src/sync/common/generate/utils.js.map +1 -1
  68. package/dist/src/sync/common/i18n.json +2 -0
  69. package/dist/src/sync/common/import/utils.d.ts +8 -1
  70. package/dist/src/sync/common/import/utils.js +15 -4
  71. package/dist/src/sync/common/import/utils.js.map +1 -1
  72. package/dist/src/sync/common/importProject.js +13 -22
  73. package/dist/src/sync/common/importProject.js.map +1 -1
  74. package/dist/src/sync/common/types.d.ts +30 -16
  75. package/dist/src/sync/common/types.js +25 -1
  76. package/dist/src/sync/common/types.js.map +1 -1
  77. package/dist/src/sync/common/utils.d.ts +4 -3
  78. package/dist/src/sync/common/utils.js +19 -24
  79. package/dist/src/sync/common/utils.js.map +1 -1
  80. package/dist/src/sync/v2/export/controls/Action.d.ts +15 -0
  81. package/dist/src/sync/v2/export/controls/Action.js +68 -15
  82. package/dist/src/sync/v2/export/controls/Action.js.map +1 -1
  83. package/dist/src/sync/v2/export/controls/FilterBar.d.ts +18 -6
  84. package/dist/src/sync/v2/export/controls/FilterBar.js +102 -65
  85. package/dist/src/sync/v2/export/controls/FilterBar.js.map +1 -1
  86. package/dist/src/sync/v2/export/controls/FormAction.js +3 -2
  87. package/dist/src/sync/v2/export/controls/FormAction.js.map +1 -1
  88. package/dist/src/sync/v2/export/controls/Fragment.d.ts +1 -1
  89. package/dist/src/sync/v2/export/controls/Fragment.js +239 -164
  90. package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
  91. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.d.ts +2 -2
  92. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js +9 -9
  93. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js.map +1 -1
  94. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +2 -2
  95. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +4 -4
  96. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -1
  97. package/dist/src/sync/v2/export/controls/ObjectPageTable.d.ts +1 -0
  98. package/dist/src/sync/v2/export/controls/ObjectPageTable.js +12 -0
  99. package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
  100. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js +6 -4
  101. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js.map +1 -1
  102. package/dist/src/sync/v2/export/controls/Table.d.ts +1 -0
  103. package/dist/src/sync/v2/export/controls/Table.js +12 -0
  104. package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
  105. package/dist/src/sync/v2/export/controls/TableColumn.d.ts +18 -2
  106. package/dist/src/sync/v2/export/controls/TableColumn.js +126 -1
  107. package/dist/src/sync/v2/export/controls/TableColumn.js.map +1 -1
  108. package/dist/src/sync/v2/export/export.js +137 -111
  109. package/dist/src/sync/v2/export/export.js.map +1 -1
  110. package/dist/src/sync/v2/export/manifest.js +2 -5
  111. package/dist/src/sync/v2/export/manifest.js.map +1 -1
  112. package/dist/src/sync/v2/export/pages/AnalyticalListPage.d.ts +2 -1
  113. package/dist/src/sync/v2/export/pages/AnalyticalListPage.js +3 -0
  114. package/dist/src/sync/v2/export/pages/AnalyticalListPage.js.map +1 -1
  115. package/dist/src/sync/v2/export/pages/ListReport.d.ts +2 -1
  116. package/dist/src/sync/v2/export/pages/ListReport.js +3 -0
  117. package/dist/src/sync/v2/export/pages/ListReport.js.map +1 -1
  118. package/dist/src/sync/v2/export/pages/OverviewPage.d.ts +2 -1
  119. package/dist/src/sync/v2/export/pages/OverviewPage.js +32 -2
  120. package/dist/src/sync/v2/export/pages/OverviewPage.js.map +1 -1
  121. package/dist/src/sync/v2/export/view-controller-generator.d.ts +16 -21
  122. package/dist/src/sync/v2/export/view-controller-generator.js +20 -36
  123. package/dist/src/sync/v2/export/view-controller-generator.js.map +1 -1
  124. package/dist/src/sync/v2/generate/analyticalListReport.js +14 -6
  125. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  126. package/dist/src/sync/v2/generate/listReport.js +13 -4
  127. package/dist/src/sync/v2/generate/listReport.js.map +1 -1
  128. package/dist/src/sync/v2/generate/objectPage.d.ts +1 -5
  129. package/dist/src/sync/v2/generate/objectPage.js +10 -10
  130. package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
  131. package/dist/src/sync/v2/generate/utils.d.ts +22 -11
  132. package/dist/src/sync/v2/generate/utils.js +282 -110
  133. package/dist/src/sync/v2/generate/utils.js.map +1 -1
  134. package/dist/src/sync/v2/import/common/index.d.ts +22 -4
  135. package/dist/src/sync/v2/import/common/index.js +237 -27
  136. package/dist/src/sync/v2/import/common/index.js.map +1 -1
  137. package/dist/src/sync/v2/import/controls/table.js +3 -2
  138. package/dist/src/sync/v2/import/controls/table.js.map +1 -1
  139. package/dist/src/sync/v2/import/pages/analyticalListPage.js +36 -5
  140. package/dist/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
  141. package/dist/src/sync/v2/import/pages/listReport.d.ts +0 -5
  142. package/dist/src/sync/v2/import/pages/listReport.js +21 -122
  143. package/dist/src/sync/v2/import/pages/listReport.js.map +1 -1
  144. package/dist/src/sync/v2/import/pages/objectPage.js +182 -107
  145. package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
  146. package/dist/src/sync/v2/import/utils.d.ts +4 -6
  147. package/dist/src/sync/v2/import/utils.js +43 -11
  148. package/dist/src/sync/v2/import/utils.js.map +1 -1
  149. package/dist/src/sync/v2/types.d.ts +8 -1
  150. package/dist/src/sync/v2/types.js +8 -1
  151. package/dist/src/sync/v2/types.js.map +1 -1
  152. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.d.ts +3 -7
  153. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.js +2 -25
  154. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.js.map +1 -1
  155. package/dist/src/sync/v4/export/controls/TableColumn.d.ts +1 -6
  156. package/dist/src/sync/v4/export/controls/TableColumn.js +0 -33
  157. package/dist/src/sync/v4/export/controls/TableColumn.js.map +1 -1
  158. package/dist/src/sync/v4/export/controls/ToolBar.d.ts +5 -1
  159. package/dist/src/sync/v4/export/controls/ToolBar.js +3 -0
  160. package/dist/src/sync/v4/export/controls/ToolBar.js.map +1 -1
  161. package/dist/src/sync/v4/export/export.js +20 -16
  162. package/dist/src/sync/v4/export/export.js.map +1 -1
  163. package/dist/src/sync/v4/export/pages/AnalyticalListPage.d.ts +2 -2
  164. package/dist/src/sync/v4/export/pages/ListReport.d.ts +2 -2
  165. package/dist/src/sync/v4/export/pages/ObjectPage.d.ts +2 -2
  166. package/dist/src/sync/v4/export/types.d.ts +3 -0
  167. package/dist/src/sync/v4/generate/generate.d.ts +4 -2
  168. package/dist/src/sync/v4/generate/generate.js +15 -6
  169. package/dist/src/sync/v4/generate/generate.js.map +1 -1
  170. package/dist/src/sync/v4/generate/listReport.d.ts +7 -6
  171. package/dist/src/sync/v4/generate/listReport.js +50 -34
  172. package/dist/src/sync/v4/generate/listReport.js.map +1 -1
  173. package/dist/src/sync/v4/generate/objectPage.js +66 -85
  174. package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
  175. package/dist/src/sync/v4/import/pages/analyticalListPage.d.ts +2 -2
  176. package/dist/src/sync/v4/import/pages/analyticalListPage.js +0 -1
  177. package/dist/src/sync/v4/import/pages/analyticalListPage.js.map +1 -1
  178. package/dist/src/sync/v4/import/pages/listReport.d.ts +3 -3
  179. package/dist/src/sync/v4/import/pages/listReport.js +34 -23
  180. package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
  181. package/dist/src/sync/v4/import/pages/objectPage.d.ts +2 -2
  182. package/dist/src/sync/v4/import/pages/objectPage.js +21 -16
  183. package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
  184. package/dist/src/sync/v4/import/utils.js +6 -5
  185. package/dist/src/sync/v4/import/utils.js.map +1 -1
  186. package/dist/src/sync/v4/utils/utils.d.ts +14 -1
  187. package/dist/src/sync/v4/utils/utils.js +62 -26
  188. package/dist/src/sync/v4/utils/utils.js.map +1 -1
  189. package/dist/test/unit/utils.test.d.ts +1 -1
  190. package/package.json +8 -9
  191. package/dist/src/specification/v2/controls/ObjectPageFooter.d.ts +0 -11
  192. package/dist/src/specification/v2/controls/ObjectPageFooter.js.map +0 -1
  193. package/dist/src/specification/v2/controls/ObjectPageFooterAction.d.ts +0 -28
  194. package/dist/src/specification/v2/controls/ObjectPageFooterAction.js +0 -3
  195. package/dist/src/specification/v2/controls/ObjectPageFooterAction.js.map +0 -1
  196. package/dist/test/test-utils/metadataParser.d.ts +0 -19
@@ -10,8 +10,6 @@ const extensionLogger_1 = require("../../../../extensionLogger");
10
10
  const i18next_1 = __importDefault(require("i18next"));
11
11
  const i18n_1 = require("../../../../i18n/i18n");
12
12
  const utils_1 = require("../../import/utils");
13
- const xml_js_1 = require("xml-js");
14
- const controls_1 = require("../../export/controls");
15
13
  const factory_1 = require("../../export/factory");
16
14
  const types_1 = require("../../types");
17
15
  /**
@@ -43,133 +41,34 @@ function addSettings(importParameters, listReportConfig, factory, pageKey) {
43
41
  index_1.transferSettingsOfObject(listReportConfig.table.toolBar, importParameters.manifest, importParameters.jsonSchema['definitions']['ToolBar'], pageKey, importParameters.logger);
44
42
  if (importParameters.jsonSchema['definitions']['Actions<LineItems>']) {
45
43
  for (const actionProperty in importParameters.jsonSchema['definitions']['Actions<LineItems>'].properties) {
46
- const actionKey = actionProperty.replace('/', '::');
44
+ const actionKey = actionProperty;
47
45
  listReportConfig.table.toolBar.actions[actionKey] = factory.createInstance(common_1.PageType.ListReport, 'Action');
48
46
  index_1.transferSettingsOfObject(listReportConfig.table.toolBar.actions[actionKey], importParameters.manifest, importParameters.jsonSchema['definitions']['Action'], pageKey, importParameters.logger);
49
47
  }
50
48
  }
51
- //Filterbar:
52
- listReportConfig.filterBar = factory.createInstance(common_1.PageType.ListReport, 'ListReportFilterBar', listReportConfig.filterBar);
53
- index_1.transferSettingsOfObject(listReportConfig.filterBar, importParameters.manifest, importParameters.jsonSchema['definitions']['ListReportFilterBar'], pageKey, importParameters.logger);
54
- }
55
- /**
56
- * Removes empty properties in the config.json of List Report V2
57
- * @param {ListReportConfig} config - the configuration to be checked
58
- */
59
- function removeEmptySettings(config) {
60
- // Check ToolBar
61
- if (config.table.toolBar) {
62
- for (const actionKey in config.table.toolBar.actions) {
63
- if (Object.keys(config.table.toolBar.actions[actionKey]).length === 0) {
64
- delete config.table.toolBar.actions[actionKey];
65
- }
66
- }
67
- if (Object.keys(config.table.toolBar.actions).length === 0) {
68
- delete config.table.toolBar.actions;
69
- }
70
- if (Object.keys(config.table.toolBar).length === 0) {
71
- delete config.table.toolBar;
49
+ //FilterBar:
50
+ listReportConfig.filterBar = factory.createInstance(common_1.PageType.ListReport, common_2.DefinitionName.ListReportFilterBar, listReportConfig.filterBar);
51
+ index_1.transferSettingsOfObject(listReportConfig.filterBar, importParameters.manifest, importParameters.jsonSchema['definitions'][common_2.DefinitionName.ListReportFilterBar], pageKey, importParameters.logger);
52
+ if (importParameters.jsonSchema['definitions']['SelectionFields']) {
53
+ listReportConfig.filterBar.selectionFields = factory.createInstance(common_1.PageType.ListReport, common_2.DefinitionName.ListReportFilterBar, listReportConfig.filterBar.selectionFields);
54
+ const schemaSelectionFields = importParameters.jsonSchema['definitions']['SelectionFields'].properties;
55
+ for (const selectionProperty in schemaSelectionFields) {
56
+ const selectionKey = selectionProperty;
57
+ listReportConfig.filterBar.selectionFields[selectionKey] = factory.createInstance(common_1.PageType.ListReport, 'SelectionFieldDateSettings');
58
+ index_1.transferSettingsOfObject(listReportConfig.filterBar.selectionFields[selectionKey], importParameters.manifest, importParameters.jsonSchema['definitions']['SelectionFieldDateSettings'], pageKey, importParameters.logger, selectionKey);
72
59
  }
73
60
  }
74
- }
75
- function evaluateFragmentColumn(column, viewExtensionsOfPage, manifestKey, keyPart3, config, extensionType, cellsFragmentName) {
76
- if (column['customData'] || column['table:customData']) {
77
- const p13nData = column['customData']
78
- ? column['customData']['core:CustomData']._attributes.value
79
- : column['table:customData']['core:CustomData']._attributes.value;
80
- const columnParts = JSON.parse(p13nData.substr(1, p13nData.length));
81
- let columnText = column['Text'] && column['Text']._attributes && column['Text']._attributes['text'];
82
- if (!columnText) {
83
- columnText = column['Label'] && column['Label']._attributes && column['Label']._attributes['text'];
84
- }
85
- const customElement = {
86
- id: column._attributes && column._attributes['id'],
87
- text: columnText,
88
- columnKey: columnParts['columnKey'],
89
- columnIndex: columnParts['columnIndex'] !== undefined ? Number(columnParts['columnIndex']) : undefined,
90
- leadingProperty: columnParts['leadingProperty'],
91
- className: viewExtensionsOfPage[manifestKey].className,
92
- fragmentName: viewExtensionsOfPage[manifestKey].fragmentName,
93
- tabKey: keyPart3,
94
- extensionType
95
- };
96
- if (cellsFragmentName) {
97
- customElement.cellsFragmentName = cellsFragmentName;
98
- }
99
- if (!config.table['columns']['custom']) {
100
- config.table['columns']['custom'] = [];
101
- }
102
- const customColumns = config.table['columns']['custom'];
103
- customColumns.push(customElement);
104
- }
105
- }
106
- function addFragments(config, manifest, v2Page, pageType, fragments, objectPageSectionData) {
107
- if (!fragments) {
108
- return;
109
- }
110
- const targetKeyEntitySet = '|' + (objectPageSectionData && objectPageSectionData.target ? objectPageSectionData.target : v2Page.entitySet);
111
- if (manifest[common_1.ManifestSection.ui5] &&
112
- manifest[common_1.ManifestSection.ui5]['extends'] &&
113
- manifest[common_1.ManifestSection.ui5]['extends']['extensions'] &&
114
- manifest[common_1.ManifestSection.ui5]['extends']['extensions']['sap.ui.viewExtensions']) {
115
- const viewExtension = common_1.PAGETYPE_VIEW_EXTENSION_TEMPLATE_MAP.get(pageType);
116
- const viewExtensionsOfPage = manifest[common_1.ManifestSection.ui5]['extends']['extensions']['sap.ui.viewExtensions'][viewExtension];
117
- if (viewExtensionsOfPage) {
118
- for (const manifestKey of Object.keys(viewExtensionsOfPage)) {
119
- const manifestKeyParts = manifestKey.split('|');
120
- const [keyExtensionType, keyEntitySet] = manifestKeyParts;
121
- // If Object Page section have key, then Ignore it as it is not from QuickVariantSelectionX
122
- const referenceId = manifestKeyParts[2];
123
- const keyTab = objectPageSectionData && referenceId === objectPageSectionData.key ? undefined : referenceId;
124
- const extensionType = common_2.ViewTemplateType[keyExtensionType];
125
- if (extensionType && '|' + keyEntitySet === targetKeyEntitySet) {
126
- const fragmentType = viewExtensionsOfPage[manifestKey].type
127
- ? viewExtensionsOfPage[manifestKey].type.toLowerCase()
128
- : 'xml';
129
- let fragmentName = viewExtensionsOfPage[manifestKey].fragmentName;
130
- if (!fragmentName) {
131
- continue;
132
- }
133
- // Responsive Table ==> check cells' fragment name
134
- let cellsFragmentName;
135
- if (extensionType === common_2.ViewTemplateType.ResponsiveTableColumnsExtension) {
136
- for (const cellsKey of Object.keys(viewExtensionsOfPage)) {
137
- const [cellsKeyType, cellsKeyEntitySet, cellsKeyTab] = cellsKey.split('|');
138
- if (cellsKeyType === common_2.ViewTemplateType.ResponsiveTableCellsExtension &&
139
- cellsKeyEntitySet === keyEntitySet &&
140
- cellsKeyTab === referenceId) {
141
- cellsFragmentName = viewExtensionsOfPage[cellsKey].fragmentName;
142
- }
143
- }
144
- }
145
- // Retrieve information from fragment
146
- const fragmentParts = fragmentName.split('.');
147
- fragmentName = fragmentParts[fragmentParts.length - 1] + common_2.FRAGMENTNAMEPART + fragmentType;
148
- const filteredFragments = fragments.filter((fragment) => fragment['dataSourceUri'].endsWith(fragmentName));
149
- if (filteredFragments[0]) {
150
- const fragmentJson = JSON.parse(xml_js_1.xml2json(filteredFragments[0].fileContent, { compact: true }));
151
- const fragmentDefintion = fragmentJson[controls_1.FRAGMENT_DEFINITION];
152
- const columnDefinition = controls_1.getRootCustomColumnFromFragmentJSON(fragmentDefintion);
153
- if (columnDefinition) {
154
- if (!config.table['columns']) {
155
- config.table['columns'] = {};
156
- }
157
- if (Array.isArray(columnDefinition)) {
158
- for (let j = 0; j < columnDefinition.length; j++) {
159
- evaluateFragmentColumn(columnDefinition[j], viewExtensionsOfPage, manifestKey, keyTab, config, extensionType, cellsFragmentName);
160
- }
161
- }
162
- else {
163
- evaluateFragmentColumn(columnDefinition, viewExtensionsOfPage, manifestKey, keyTab, config, extensionType, cellsFragmentName);
164
- }
165
- }
166
- }
167
- }
168
- }
61
+ //Footer:
62
+ listReportConfig.footer = { actions: {} };
63
+ const footerAction = importParameters.jsonSchema['definitions']['FooterActions<LineItems>'];
64
+ if (footerAction) {
65
+ for (const actionProperty in footerAction.properties) {
66
+ const actionKey = actionProperty.replace('/', '::');
67
+ listReportConfig.footer.actions[actionKey] = factory.createInstance(common_1.PageType.ListReport, 'FooterAction');
68
+ index_1.transferSettingsOfObject(listReportConfig.footer.actions[actionKey], importParameters.manifest, importParameters.jsonSchema['definitions']['Action'], pageKey, importParameters.logger);
169
69
  }
170
70
  }
171
71
  }
172
- exports.addFragments = addFragments;
173
72
  /**
174
73
  * Creates the configuration file content for a list report V2
175
74
  * @param {ImportListReportV2Parameters} importParameters - object comprising all input data
@@ -226,8 +125,8 @@ function createListReportConfig(importParameters) {
226
125
  index_1.addFlex(config, change, importParameters.jsonSchema, importParameters.logger);
227
126
  }
228
127
  });
229
- addFragments(config, importParameters.manifest, v2Page, common_1.PageType.ListReport, importParameters.fragments);
230
- removeEmptySettings(config);
128
+ index_1.addFragments(config, importParameters.manifest, v2Page, common_1.PageType.ListReport, importParameters.fragments);
129
+ utils_1.removeEmptySettings(config);
231
130
  return config;
232
131
  }
233
132
  exports.createListReportConfig = createListReportConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"listReport.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/import/pages/listReport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listReport.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/import/pages/listReport.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,6 @@ const sapUiPageV2_1 = require("../.../../../../../specification/v2/webapp/manife
13
13
  const i18next_1 = __importDefault(require("i18next"));
14
14
  const i18n_1 = require("../../../../i18n/i18n");
15
15
  const common_2 = require("../../../../specification/common");
16
- const listReport_1 = require("../pages/listReport");
17
16
  const factory_1 = require("../../export/factory");
18
17
  const types_1 = require("../../types");
19
18
  const common_3 = require("../common");
@@ -25,9 +24,12 @@ const common_3 = require("../common");
25
24
  function getSingleSelectorIdPart(selectorIdParts, facetID) {
26
25
  const lastIdParts = selectorIdParts[0].split('-');
27
26
  const id = lastIdParts[lastIdParts.length - 1];
28
- if (selectorIdParts[0].indexOf("com.sap.vocabularies.UI.v1.LineItem" /* LineItem */) >= 0 && selectorIdParts[0].indexOf('action') >= 0) {
27
+ if (selectorIdParts[0].indexOf('::action::') >= 0 || selectorIdParts[0].startsWith('action::')) {
29
28
  // Object Page ToolBar Actions
30
- facetID = lastIdParts[0].split(`${"com.sap.vocabularies.UI.v1.LineItem" /* LineItem */}::`)[1].split('::')[0];
29
+ facetID =
30
+ lastIdParts[0].split('::action::')[0] ||
31
+ lastIdParts[0].split(`${"com.sap.vocabularies.UI.v1.LineItem" /* LineItem */}::`)[1].split('::')[0];
32
+ facetID = `Action ID: ${facetID}`;
31
33
  }
32
34
  else if (selectorIdParts[0].indexOf("com.sap.vocabularies.UI.v1.LineItem" /* LineItem */) >= 0 ||
33
35
  selectorIdParts[0].indexOf('UI.LineItem') >= 0 ||
@@ -91,7 +93,7 @@ function prepareFlexChanges(changes, entitySet, logger) {
91
93
  const change = common_1.parseChangeString(changeString);
92
94
  if (change && ((_a = change.controlId) === null || _a === void 0 ? void 0 : _a.includes(sapUiPageV2_1.FE_TEMPLATE_V2_OBJECT_PAGE)) && ((_b = change.controlId) === null || _b === void 0 ? void 0 : _b.includes(entitySet))) {
93
95
  let selectorId = change.controlId.split('--')[1].replace(/:3a:3a/g, '::');
94
- const complexIdMatch = new RegExp('.+DataField.+:::sSmartTableId::.+');
96
+ const complexIdMatch = /.+DataField.+:::sSmartTableId::.+/;
95
97
  if (complexIdMatch.exec(selectorId) !== null) {
96
98
  selectorId = selectorId.split('template:::TableColumn:::')[1];
97
99
  }
@@ -121,9 +123,11 @@ function prepareFlexChanges(changes, entitySet, logger) {
121
123
  });
122
124
  return result;
123
125
  }
124
- const addFlexToConfig = (config, propertyKey, flexChange) => {
125
- config[propertyKey] = flexChange;
126
- };
126
+ /**
127
+ * Returns the type of a given section
128
+ * @param schemaSection - current section
129
+ * @returns {SectionTypeV2} - type of section, differentiated by level (Sub/Section)
130
+ */
127
131
  const getSectionType = (schemaSection) => {
128
132
  var _a, _b, _c;
129
133
  let reference;
@@ -140,6 +144,131 @@ const getSectionType = (schemaSection) => {
140
144
  return types_1.SectionTypeV2.SubSection;
141
145
  }
142
146
  };
147
+ /**
148
+ * Import of flex changes of a table to the config JSON of OP
149
+ * @param flexChanges - list of flex changes (pre-processed by prepareFlexChanges)
150
+ * @param propertyKey - key of the current property in the app schema
151
+ * @param configPart - part of the configuration to be filled
152
+ * @param {ImportObjectPageV2Parameters} importParameters - object comprising all input data
153
+ * @param sectionTitle - title of the section (optional)
154
+ * @param sectionId - ID of the given section (optional)
155
+ */
156
+ function importFlexChangesOfTable(flexChanges, propertyKey, configPart, importParameters, sectionTitle, sectionId) {
157
+ const unescapedId = sectionId === null || sectionId === void 0 ? void 0 : sectionId.replace(/::@com.sap.vocabularies/g, v2_1.VOCWITHSLASH);
158
+ for (const selector in flexChanges) {
159
+ const flexChange = flexChanges[selector];
160
+ const propertyIdMatch = flexChange.propertyId === propertyKey;
161
+ const isTableColumn = propertyKey === 'columns' && flexChange.controlType === common_1.ControlType.TableColumn;
162
+ let facetIds;
163
+ if (sectionTitle) {
164
+ facetIds = [sectionTitle];
165
+ }
166
+ else {
167
+ facetIds = [sectionId, unescapedId];
168
+ }
169
+ if ((propertyIdMatch || isTableColumn) && facetIds.indexOf(flexChange === null || flexChange === void 0 ? void 0 : flexChange.facetId) > -1) {
170
+ table_1.addFlexForTable(configPart, flexChanges[selector], importParameters.jsonSchema);
171
+ }
172
+ }
173
+ }
174
+ /**
175
+ * Import of (regular) flex changes to the config JSON of OP
176
+ * @param schemaDefinition - current section of the app specific schema
177
+ * @param configPart - part of the configuration to be filled
178
+ * @param flexChanges - list of flex changes (pre-processed by prepareFlexChanges)
179
+ * @param propertyKey - key of the current property in the app schema
180
+ * @param sectionTitle - title of the section (optional)
181
+ * @param actionId - ID of the given action (optional)
182
+ */
183
+ function importFlexChanges(schemaDefinition, configPart, flexChanges, propertyKey, sectionTitle, actionId) {
184
+ var _a, _b;
185
+ for (const selector in flexChanges) {
186
+ const flexChange = flexChanges[selector];
187
+ const actionIdMatch = !actionId || new RegExp(`.*${actionId}\\d?$`).test(selector);
188
+ const propertyIdMatch = flexChange.propertyId === propertyKey;
189
+ const schemaControlType = (_a = schemaDefinition['properties'][flexChange.propertyId]) === null || _a === void 0 ? void 0 : _a.controlType;
190
+ const controlTypeMatch = flexChange.controlType === schemaControlType;
191
+ if (
192
+ // Actions
193
+ (((_b = flexChange === null || flexChange === void 0 ? void 0 : flexChange.facetId) === null || _b === void 0 ? void 0 : _b.includes(common_1.ActionTitlePrefix)) && !sectionTitle && actionIdMatch && propertyIdMatch) ||
194
+ (!sectionTitle && actionIdMatch && propertyIdMatch && controlTypeMatch) ||
195
+ // Sections
196
+ (selector.includes(sectionTitle) && actionIdMatch && propertyIdMatch && controlTypeMatch)) {
197
+ configPart[propertyKey] = flexChange.newValue;
198
+ }
199
+ }
200
+ }
201
+ /**
202
+ * Checks for deprecated properties and writes them to the log
203
+ * @param manifestSection - given section in the manifest
204
+ * @param deprecatedProperties - list of deperecated properties
205
+ * @param {ImportObjectPageV2Parameters} importParameters - object comprising all input data
206
+ * @param manifestPath - manifest path, as calcualted by the sync rule
207
+ */
208
+ function checkDeprecatedProperties(manifestSection, deprecatedProperties, importParameters, manifestPath) {
209
+ if (manifestSection && deprecatedProperties) {
210
+ for (const key in manifestSection) {
211
+ const deprecated = deprecatedProperties[key];
212
+ if (deprecated) {
213
+ extensionLogger_1.log(importParameters.logger, {
214
+ severity: "warning" /* Warning */,
215
+ message: common_1.getTextForDeprecated(key, deprecated),
216
+ location: {
217
+ path: 'webapp/manifest.json/',
218
+ range: manifestPath.split('/')
219
+ }
220
+ });
221
+ delete deprecatedProperties[key];
222
+ }
223
+ }
224
+ }
225
+ }
226
+ /**
227
+ * Imports manifest settings to the object page config
228
+ * @param syncRule - sync rule for accessing the reflect-metadata
229
+ * @param pageKeys - list of page keys (comprises the one entry describing the given page)
230
+ * @param {ImportObjectPageV2Parameters} importParameters - object comprising all input data
231
+ * @param configPart - part of the configuration to be filled
232
+ * @param propertyKey - key of the current property of the schema definition
233
+ * @param deprecatedProperties - list od deperecated properties
234
+ * @param sectionId - ID of the given section (optional)
235
+ * @param sectionTitle - title of the section (optional)
236
+ */
237
+ function importManifestSetting(syncRule, pageKeys, importParameters, configPart, propertyKey, deprecatedProperties, sectionId, sectionTitle) {
238
+ const sectionIdInManifest = sectionId ? sectionId.replace(/\/@/g, '::').replace(/@com.sap/g, 'com.sap') : undefined;
239
+ let manifestPath;
240
+ let manifestSection;
241
+ if (sectionTitle) {
242
+ manifestPath = syncRule.manifest.path(pageKeys, {}, sectionTitle);
243
+ if (Object.values(manifest_1.getManifestSectionByPathV2(importParameters.manifest, manifestPath)).length !== 0) {
244
+ manifestSection = manifest_1.getManifestSectionByPathV2(importParameters.manifest, manifestPath);
245
+ }
246
+ else {
247
+ manifestPath = syncRule.manifest.path(pageKeys, {}, sectionIdInManifest);
248
+ manifestSection = manifest_1.getManifestSectionByPathV2(importParameters.manifest, manifestPath);
249
+ }
250
+ }
251
+ else {
252
+ manifestPath = syncRule.manifest.path(pageKeys, {}, sectionIdInManifest);
253
+ manifestSection = manifest_1.getManifestSectionByPathV2(importParameters.manifest, manifestPath);
254
+ }
255
+ const importHandler = syncRule.manifest.import;
256
+ if (importHandler && typeof importHandler === 'function') {
257
+ const value = importHandler(manifestSection, sectionId);
258
+ if (value !== undefined) {
259
+ configPart[propertyKey] = value;
260
+ }
261
+ }
262
+ else {
263
+ const manifestKey = syncRule.manifest.key || propertyKey;
264
+ if (manifestKey in manifestSection) {
265
+ configPart[propertyKey] = manifestSection[manifestKey];
266
+ }
267
+ }
268
+ // Check for deprecated properties.
269
+ checkDeprecatedProperties(manifestSection, deprecatedProperties, importParameters, manifestPath);
270
+ return manifestSection;
271
+ }
143
272
  /**
144
273
  * Transfers settings from manifest and flexChanges to object page config
145
274
  * @param {ImportObjectPageV2Parameters} importParameters - object comprising all input data
@@ -148,105 +277,57 @@ const getSectionType = (schemaSection) => {
148
277
  * @param pageKeys - list of page keys (comprises the one entry describing the given page)
149
278
  * @param flexChanges - list of flex changes (pre-processed by prepareFlexChanges)
150
279
  * @param sectionId - ID of the given section (optional)
280
+ * @param sectionTitle - Facet ID of the given section mentioned in annotations (optional)
151
281
  * @param actionId - ID of the given action (optional)
152
282
  */
153
283
  function transferSettingsAndFlexChanges(importParameters, configPart, schemaDefinition, pageKeys, flexChanges, sectionId, sectionTitle, actionId) {
154
- var _a;
155
284
  if (!schemaDefinition) {
156
285
  return;
157
286
  }
158
- let deprecatedProperties = [];
159
- let manifestSection = {};
287
+ let deprecatedProperties = {};
160
288
  if (configPart === null || configPart === void 0 ? void 0 : configPart.getDeprecated) {
161
289
  deprecatedProperties = configPart.getDeprecated();
162
290
  }
163
- const unescapedId = sectionId && sectionId.replace(/::@com.sap.vocabularies/g, v2_1.VOCWITHSLASH);
164
291
  for (const propertyKey in schemaDefinition['properties'] || schemaDefinition) {
165
292
  const syncRule = common_1.getReflectMetadata(configPart, propertyKey);
166
293
  if (syncRule || propertyKey === 'columns') {
167
- if (propertyKey === 'columns' || (syncRule && syncRule.flex)) {
294
+ if (propertyKey === 'columns' || (syncRule === null || syncRule === void 0 ? void 0 : syncRule.flex)) {
168
295
  if (sectionId) {
169
- for (const selector in flexChanges) {
170
- const flexChange = flexChanges[selector];
171
- const propertyIdMatch = flexChange.propertyId === propertyKey;
172
- const isTableColumn = propertyKey === 'columns' && flexChange.controlType === common_1.ControlType.TableColumn;
173
- const facetIds = [sectionId, unescapedId, sectionTitle];
174
- if ((propertyIdMatch || isTableColumn) && facetIds.indexOf(flexChange === null || flexChange === void 0 ? void 0 : flexChange.facetId) > -1) {
175
- table_1.addFlexForTable(configPart, flexChanges[selector], importParameters.jsonSchema);
176
- }
177
- }
296
+ importFlexChangesOfTable(flexChanges, propertyKey, configPart, importParameters, sectionTitle, sectionId);
178
297
  }
179
298
  else {
180
- for (const selector in flexChanges) {
181
- const flexChange = flexChanges[selector];
182
- const actionIdMatch = !actionId || new RegExp(`.*${actionId}\\d?$`).test(selector);
183
- const propertyIdMatch = flexChange.propertyId === propertyKey;
184
- const schemaControlType = (_a = schemaDefinition['properties'][flexChange.propertyId]) === null || _a === void 0 ? void 0 : _a.controlType;
185
- const controlTypeMatch = flexChange.controlType === schemaControlType;
186
- if (
187
- // Actions
188
- (flexChange.facetId === 'action' && !sectionTitle && actionIdMatch && propertyIdMatch) ||
189
- (!sectionTitle && actionIdMatch && propertyIdMatch && controlTypeMatch) ||
190
- // Sections
191
- (selector.includes(sectionTitle) && actionIdMatch && propertyIdMatch && controlTypeMatch)) {
192
- addFlexToConfig(configPart, propertyKey, flexChange.newValue);
193
- }
194
- }
299
+ importFlexChanges(schemaDefinition, configPart, flexChanges, propertyKey, sectionTitle, actionId);
195
300
  }
196
301
  }
197
302
  else if (syncRule.manifest) {
198
- const sectionIdInManifest = sectionId
199
- ? sectionId.replace(/\/@/g, '::').replace(/@com.sap/g, 'com.sap')
200
- : undefined;
201
- let path;
202
- if (sectionTitle) {
203
- path = syncRule.manifest.path(pageKeys, {}, sectionTitle);
204
- if (Object.values(manifest_1.getManifestSectionByPathV2(importParameters.manifest, path)).length !== 0) {
205
- manifestSection = manifest_1.getManifestSectionByPathV2(importParameters.manifest, path);
206
- }
207
- else {
208
- path = syncRule.manifest.path(pageKeys, {}, sectionIdInManifest);
209
- manifestSection = manifest_1.getManifestSectionByPathV2(importParameters.manifest, path);
210
- }
211
- }
212
- else {
213
- path = syncRule.manifest.path(pageKeys, {}, sectionIdInManifest);
214
- manifestSection = manifest_1.getManifestSectionByPathV2(importParameters.manifest, path);
215
- }
216
- const importHandler = syncRule.manifest.import;
217
- if (importHandler && typeof importHandler === 'function') {
218
- const value = importHandler(manifestSection, sectionId);
219
- if (value !== undefined) {
220
- configPart[propertyKey] = value;
221
- }
222
- }
223
- else {
224
- const manifestKey = syncRule.manifest.key || propertyKey;
225
- if (manifestKey in manifestSection) {
226
- configPart[propertyKey] = manifestSection[manifestKey];
227
- }
228
- }
229
- // Check for deprecated properties.
230
- if (manifestSection && deprecatedProperties) {
231
- for (const key in manifestSection) {
232
- const deprecated = deprecatedProperties[key];
233
- if (deprecated) {
234
- extensionLogger_1.log(importParameters.logger, {
235
- severity: "warning" /* Warning */,
236
- message: common_1.getTextForDeprecated(key, deprecated),
237
- location: {
238
- path: 'webapp/manifest.json/',
239
- range: path.split('/')
240
- }
241
- });
242
- delete deprecatedProperties[key];
243
- }
244
- }
245
- }
303
+ importManifestSetting(syncRule, pageKeys, importParameters, configPart, propertyKey, deprecatedProperties, sectionId, sectionTitle);
246
304
  }
247
305
  }
248
306
  }
249
307
  }
308
+ /**
309
+ *
310
+ * @param actionType - type of action
311
+ * @param configActionId - id of action in config
312
+ * @param {ActionTypeV2|string} importTypeId - type of action that was be initiated
313
+ * @returns {string} actionId - to be used for import of flex changes
314
+ */
315
+ function getActionId(actionType, configActionId, importTypeId, facetId) {
316
+ if (actionType === types_1.ActionTypeV2.Form) {
317
+ return `${configActionId}::${facetId}::${importTypeId}`;
318
+ }
319
+ else if (actionType === types_1.ActionTypeV2.OPFooter) {
320
+ return `${configActionId}::Determining`;
321
+ }
322
+ else if (actionType === types_1.ActionTypeV2.OPToolBar) {
323
+ return configActionId.includes('sAction::')
324
+ ? configActionId.split('sAction::')[1]
325
+ : configActionId.replace(':2f', '::');
326
+ }
327
+ else {
328
+ return configActionId;
329
+ }
330
+ }
250
331
  /**
251
332
  * Fills the action of the configuration
252
333
  * @param {ImportObjectPageV2Parameters} importParameters - object comprising all input data
@@ -255,25 +336,17 @@ function transferSettingsAndFlexChanges(importParameters, configPart, schemaDefi
255
336
  * @param {ObjectPageV2ConfigParameters} configParameters - container for factory, pageKeys, flexChanges, v2Page, ObjectPageConfig
256
337
  * @param {ActionTypeV2|string} importTypeId - type of action that should be initiated
257
338
  */
258
- function fillActions(importParameters, actionProperties, configPart, configParameters, importTypeId) {
259
- let actionId, configActionId;
339
+ function fillActions(importParameters, actionProperties, configPart, configParameters, importTypeId, facetId) {
260
340
  configPart['actions'] = {};
261
- importTypeId = importTypeId.replace(/@/g, '::');
262
341
  const actionType = importTypeId.split('::').pop();
263
342
  if (configParameters.flexChanges.constructor === Object && Object.keys(configParameters.flexChanges).length !== 0) {
264
343
  for (const actionProperty in actionProperties) {
265
- configActionId = actionProperty.replace(/@/g, '::');
266
- if (actionType === types_1.ActionTypeV2.Form) {
267
- actionId = `${configActionId}${importTypeId}`;
268
- }
269
- else if (actionType === types_1.ActionTypeV2.Footer) {
270
- actionId = `${configActionId}::Determining`;
271
- }
272
- else {
273
- actionId = configActionId;
274
- }
344
+ const configActionId = actionProperty.replace(/@/g, '::');
345
+ const actionId = getActionId(actionType, configActionId, importTypeId, facetId);
275
346
  configPart['actions'][configActionId] = configParameters.factory.createInstance(common_2.PageType.ObjectPage, actionType);
276
- transferSettingsAndFlexChanges(importParameters, configPart['actions'][configActionId], importParameters.jsonSchema['definitions'][actionType], configParameters.pageKeys, configParameters.flexChanges, undefined, undefined, actionId);
347
+ if (actionId) {
348
+ transferSettingsAndFlexChanges(importParameters, configPart['actions'][configActionId], importParameters.jsonSchema['definitions'][actionType], configParameters.pageKeys, configParameters.flexChanges, undefined, undefined, actionId);
349
+ }
277
350
  if (Object.keys(configPart['actions'][configActionId]).length === 0) {
278
351
  delete configPart['actions'][configActionId];
279
352
  }
@@ -346,7 +419,7 @@ function fillTableInConfig(importParameters, sectionPart, manifestSettings, conf
346
419
  transferSettingsAndFlexChanges(importParameters, configPart[sectionPart.id]['table'], localJsonSchema, configParameters.pageKeys, configParameters.flexChanges, sectionPart.id, sectionTitle);
347
420
  const toolBarActions = JSON.parse(JSON.stringify(schemaDefinitions))[`Actions<${sectionPart.id}>`];
348
421
  if (toolBarActions === null || toolBarActions === void 0 ? void 0 : toolBarActions['properties']) {
349
- fillActions(importParameters, toolBarActions.properties, configPart[sectionPart.id]['table']['toolBar'], configParameters, types_1.ActionTypeV2.ToolBar);
422
+ fillActions(importParameters, toolBarActions.properties, configPart[sectionPart.id]['table']['toolBar'], configParameters, types_1.ActionTypeV2.OPToolBar);
350
423
  }
351
424
  if (Object.keys(configPart[sectionPart.id]['table']['toolBar']).length === 0) {
352
425
  delete configPart[sectionPart.id]['table']['toolBar'];
@@ -361,17 +434,17 @@ function fillTableInConfig(importParameters, sectionPart, manifestSettings, conf
361
434
  * @param {object} configPart - the given part of the object page config
362
435
  * @param {SapUiAppPageV2} v2Page - v2 page from manifest.
363
436
  */
364
- function fillCustomColumnsInConfig(importParameters, escapedSectionId, sectionTitle, configPart, v2Page) {
437
+ function fillCustomColumnsInConfig(importParameters, escapedSectionId, configPart, v2Page) {
365
438
  const customColumnSchemaProp = importParameters.jsonSchema['definitions'][escapedSectionId].properties.custom;
366
439
  const customColumnTarget = customColumnSchemaProp
367
- ? utils_1.getTargetFromCustomColumnRef(customColumnSchemaProp.$ref)
440
+ ? common_1.getTargetFromCustomColumnRef(customColumnSchemaProp.$ref)
368
441
  : undefined;
369
442
  if (customColumnTarget) {
370
443
  const objectPageSectionData = {
371
- key: sectionTitle || escapedSectionId.replace('@', ''),
444
+ key: escapedSectionId.replace('@', ''),
372
445
  target: customColumnTarget
373
446
  };
374
- listReport_1.addFragments(configPart[escapedSectionId], importParameters.manifest, v2Page, common_2.PageType.ObjectPage, importParameters.fragments, objectPageSectionData);
447
+ common_3.addFragments(configPart[escapedSectionId], importParameters.manifest, v2Page, common_2.PageType.ObjectPage, importParameters.fragments, objectPageSectionData);
375
448
  }
376
449
  }
377
450
  /**
@@ -412,8 +485,9 @@ function fillFormSection(importParameters, sectionPart, configPart, configParame
412
485
  transferSettingsAndFlexChanges(importParameters, configPart[sectionPart.id], sectionPart.schema, configParameters.pageKeys, configParameters.flexChanges, undefined, sectionTitle);
413
486
  }
414
487
  const formActions = importParameters.jsonSchema['definitions'][`SectionActions${formId}`];
488
+ const formFacetId = sectionTitle || sectionPart.id.replace(/@/g, '::').replace(/::com/g, 'com');
415
489
  if (formActions && formActions['properties']) {
416
- fillActions(importParameters, formActions.properties, configPart[sectionPart.id]['form'], configParameters, `${sectionPart.id}::${types_1.ActionTypeV2.Form}`);
490
+ fillActions(importParameters, formActions.properties, configPart[sectionPart.id]['form'], configParameters, types_1.ActionTypeV2.Form, formFacetId);
417
491
  }
418
492
  const formFields = importParameters.jsonSchema['definitions'][`SectionFields${formId}`];
419
493
  if (formFields['properties']) {
@@ -462,8 +536,9 @@ function fillSubSection(importParameters, sectionPart, manifestSettings, configP
462
536
  */
463
537
  function fillSectionsInConfig(importParameters, sectionProperties, manifestSettings, configPart, configParameters) {
464
538
  for (const sectionId in sectionProperties) {
539
+ const escapedSectionId = sectionId.replace(/\/@/g, '::');
465
540
  const sectionPart = {
466
- id: sectionId.replace(/\/@/g, '::'),
541
+ id: escapedSectionId,
467
542
  type: getSectionType(sectionProperties[sectionId]),
468
543
  schema: sectionProperties[sectionId]
469
544
  };
@@ -475,7 +550,7 @@ function fillSectionsInConfig(importParameters, sectionProperties, manifestSetti
475
550
  importParameters.jsonSchema['definitions'][`${sectionPart.type}<${sectionId}>`];
476
551
  fillTableInConfig(importParameters, sectionPart, manifestSettings, configPart, configParameters);
477
552
  // Custom column ref
478
- fillCustomColumnsInConfig(importParameters, sectionPart.id, undefined, configPart, configParameters.v2Page);
553
+ fillCustomColumnsInConfig(importParameters, escapedSectionId, configPart, configParameters.v2Page);
479
554
  break;
480
555
  }
481
556
  case types_1.SectionTypeV2.SectionChart:
@@ -535,7 +610,7 @@ function fillConfig(importParameters, configParameters) {
535
610
  objectPageConfig.footer = {};
536
611
  const footerAction = importParameters.jsonSchema['definitions']['FooterActions'];
537
612
  if (footerAction) {
538
- fillActions(importParameters, footerAction.properties, objectPageConfig.footer, configParameters, types_1.ActionTypeV2.Footer);
613
+ fillActions(importParameters, footerAction.properties, objectPageConfig.footer, configParameters, types_1.ActionTypeV2.OPFooter);
539
614
  }
540
615
  // Transfer Layout information
541
616
  objectPageConfig.layout = configParameters.factory.createInstance(common_2.PageType.ObjectPage, 'ObjectPageLayout');