@sap/ux-specification 1.136.14 → 1.136.15

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 (174) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
  3. package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
  4. package/dist/documentation/v2/v2-ListReport.html +2 -2
  5. package/dist/documentation/v2/v2-ListReportNew.html +2 -2
  6. package/dist/documentation/v2/v2-ObjectPage.html +2 -2
  7. package/dist/documentation/v2/v2-OverviewPage.html +2 -2
  8. package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
  9. package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
  10. package/dist/documentation/v4/v4-FreestylePage.html +2 -2
  11. package/dist/documentation/v4/v4-ListReport.html +2 -2
  12. package/dist/documentation/v4/v4-ObjectPage.html +2 -2
  13. package/dist/index-min.js +257 -258
  14. package/dist/index-min.js.map +4 -4
  15. package/dist/schemas/v4/BuildingBlocksConfig.json +72 -35
  16. package/dist/schemas/v4/ListReportConfig.json +251 -28
  17. package/dist/schemas/v4/ObjectPageConfig.json +385 -130
  18. package/dist/specification/package.json +8 -8
  19. package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
  20. package/dist/specification/scripts/macros/corrections.js +17 -1
  21. package/dist/specification/scripts/macros/corrections.js.map +1 -1
  22. package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
  23. package/dist/specification/scripts/macros/schema.js +10 -1
  24. package/dist/specification/scripts/macros/schema.js.map +1 -1
  25. package/dist/specification/scripts/macros/types.d.ts +1 -0
  26. package/dist/specification/scripts/macros/types.d.ts.map +1 -1
  27. package/dist/specification/src/api.d.ts.map +1 -1
  28. package/dist/specification/src/api.js +2 -1
  29. package/dist/specification/src/api.js.map +1 -1
  30. package/dist/specification/src/sync/common/DataFieldStrategy.d.ts +38 -8
  31. package/dist/specification/src/sync/common/DataFieldStrategy.d.ts.map +1 -1
  32. package/dist/specification/src/sync/common/DataFieldStrategy.js +64 -11
  33. package/dist/specification/src/sync/common/DataFieldStrategy.js.map +1 -1
  34. package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts +0 -4
  35. package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts.map +1 -1
  36. package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js +0 -3
  37. package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js.map +1 -1
  38. package/dist/specification/src/sync/common/appProvider.d.ts +0 -1
  39. package/dist/specification/src/sync/common/appProvider.d.ts.map +1 -1
  40. package/dist/specification/src/sync/common/appProvider.js +0 -1
  41. package/dist/specification/src/sync/common/appProvider.js.map +1 -1
  42. package/dist/specification/src/sync/common/generate/objectPage.d.ts +0 -1
  43. package/dist/specification/src/sync/common/generate/objectPage.d.ts.map +1 -1
  44. package/dist/specification/src/sync/common/generate/objectPage.js +0 -3
  45. package/dist/specification/src/sync/common/generate/objectPage.js.map +1 -1
  46. package/dist/specification/src/sync/common/generate/utils.d.ts +1 -2
  47. package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
  48. package/dist/specification/src/sync/common/generate/utils.js +1 -2
  49. package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
  50. package/dist/specification/src/sync/common/import/utils.d.ts +0 -1
  51. package/dist/specification/src/sync/common/import/utils.d.ts.map +1 -1
  52. package/dist/specification/src/sync/common/import/utils.js +0 -1
  53. package/dist/specification/src/sync/common/import/utils.js.map +1 -1
  54. package/dist/specification/src/sync/common/rules.js +0 -1
  55. package/dist/specification/src/sync/common/rules.js.map +1 -1
  56. package/dist/specification/src/sync/common/utils.d.ts +13 -2
  57. package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
  58. package/dist/specification/src/sync/common/utils.js +84 -4
  59. package/dist/specification/src/sync/common/utils.js.map +1 -1
  60. package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
  61. package/dist/specification/src/sync/v2/export/exportPageGeneric.js +3 -13
  62. package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
  63. package/dist/specification/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
  64. package/dist/specification/src/sync/v2/generate/analyticalListReport.js +46 -0
  65. package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  66. package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
  67. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +28 -1
  68. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
  69. package/dist/specification/src/sync/v2/import/importPage.d.ts.map +1 -1
  70. package/dist/specification/src/sync/v2/import/importPage.js +5 -6
  71. package/dist/specification/src/sync/v2/import/importPage.js.map +1 -1
  72. package/dist/specification/src/sync/v4/application.d.ts +1 -1
  73. package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
  74. package/dist/specification/src/sync/v4/application.js +1 -1
  75. package/dist/specification/src/sync/v4/application.js.map +1 -1
  76. package/dist/specification/src/sync/v4/export/actions.d.ts +39 -0
  77. package/dist/specification/src/sync/v4/export/actions.d.ts.map +1 -0
  78. package/dist/specification/src/sync/v4/export/actions.js +99 -0
  79. package/dist/specification/src/sync/v4/export/actions.js.map +1 -0
  80. package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts +2 -1
  81. package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts.map +1 -1
  82. package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.js.map +1 -1
  83. package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.d.ts +2 -4
  84. package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.d.ts.map +1 -1
  85. package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.js +2 -21
  86. package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.js.map +1 -1
  87. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts +2 -2
  88. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
  89. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.js.map +1 -1
  90. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts +14 -3
  91. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
  92. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.js +52 -9
  93. package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.js.map +1 -1
  94. package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts +15 -3
  95. package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts.map +1 -1
  96. package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.js +53 -10
  97. package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.js.map +1 -1
  98. package/dist/specification/src/sync/v4/export/controls/Table.d.ts +0 -3
  99. package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
  100. package/dist/specification/src/sync/v4/export/controls/Table.js +0 -3
  101. package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
  102. package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts +9 -2
  103. package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts.map +1 -1
  104. package/dist/specification/src/sync/v4/export/controls/ToolBar.js +39 -1
  105. package/dist/specification/src/sync/v4/export/controls/ToolBar.js.map +1 -1
  106. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +17 -4
  107. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
  108. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +76 -19
  109. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
  110. package/dist/specification/src/sync/v4/export/export.d.ts +7 -0
  111. package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
  112. package/dist/specification/src/sync/v4/export/export.js +100 -11
  113. package/dist/specification/src/sync/v4/export/export.js.map +1 -1
  114. package/dist/specification/src/sync/v4/export/types.d.ts +2 -0
  115. package/dist/specification/src/sync/v4/export/types.d.ts.map +1 -1
  116. package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts.map +1 -1
  117. package/dist/specification/src/sync/v4/generate/ListReportUtils.js +19 -17
  118. package/dist/specification/src/sync/v4/generate/ListReportUtils.js.map +1 -1
  119. package/dist/specification/src/sync/v4/generate/actions.d.ts +35 -0
  120. package/dist/specification/src/sync/v4/generate/actions.d.ts.map +1 -0
  121. package/dist/specification/src/sync/v4/generate/actions.js +112 -0
  122. package/dist/specification/src/sync/v4/generate/actions.js.map +1 -0
  123. package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts +3 -3
  124. package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts.map +1 -1
  125. package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js +10 -2
  126. package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
  127. package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.d.ts +1 -1
  128. package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.d.ts.map +1 -1
  129. package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js +3 -2
  130. package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js.map +1 -1
  131. package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -1
  132. package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +9 -2
  133. package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -1
  134. package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js +2 -2
  135. package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -1
  136. package/dist/specification/src/sync/v4/generate/listReport.d.ts +25 -5
  137. package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +1 -1
  138. package/dist/specification/src/sync/v4/generate/listReport.js +97 -262
  139. package/dist/specification/src/sync/v4/generate/listReport.js.map +1 -1
  140. package/dist/specification/src/sync/v4/generate/objectPage.d.ts +0 -1
  141. package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
  142. package/dist/specification/src/sync/v4/generate/objectPage.js +8 -14
  143. package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
  144. package/dist/specification/src/sync/v4/import/pages/objectPage.d.ts.map +1 -1
  145. package/dist/specification/src/sync/v4/import/pages/objectPage.js +16 -3
  146. package/dist/specification/src/sync/v4/import/pages/objectPage.js.map +1 -1
  147. package/dist/specification/src/sync/v4/import/utils.d.ts +0 -1
  148. package/dist/specification/src/sync/v4/import/utils.d.ts.map +1 -1
  149. package/dist/specification/src/sync/v4/import/utils.js +0 -1
  150. package/dist/specification/src/sync/v4/import/utils.js.map +1 -1
  151. package/dist/specification/src/sync/v4/utils/utils.d.ts +103 -25
  152. package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
  153. package/dist/specification/src/sync/v4/utils/utils.js +357 -44
  154. package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
  155. package/dist/types/src/apiTypes.d.ts +3 -2
  156. package/dist/types/src/apiTypes.d.ts.map +1 -1
  157. package/dist/types/src/apiTypes.js +1 -0
  158. package/dist/types/src/apiTypes.js.map +1 -1
  159. package/dist/types/src/common/types.d.ts +43 -2
  160. package/dist/types/src/common/types.d.ts.map +1 -1
  161. package/dist/types/src/common/types.js +41 -2
  162. package/dist/types/src/common/types.js.map +1 -1
  163. package/dist/types/src/v4/controls/CustomAction.d.ts +133 -19
  164. package/dist/types/src/v4/controls/CustomAction.d.ts.map +1 -1
  165. package/dist/types/src/v4/controls/CustomAction.js.map +1 -1
  166. package/dist/types/src/v4/controls/ObjectPageForm.d.ts +2 -2
  167. package/dist/types/src/v4/controls/ObjectPageForm.d.ts.map +1 -1
  168. package/dist/types/src/v4/controls/ObjectPageHeader.d.ts +22 -3
  169. package/dist/types/src/v4/controls/ObjectPageHeader.d.ts.map +1 -1
  170. package/dist/types/src/v4/controls/ObjectPageToolBar.d.ts +2 -2
  171. package/dist/types/src/v4/controls/ObjectPageToolBar.d.ts.map +1 -1
  172. package/dist/types/src/v4/controls/ToolBar.d.ts +3 -3
  173. package/dist/types/src/v4/controls/ToolBar.d.ts.map +1 -1
  174. package/package.json +8 -8
@@ -9,7 +9,7 @@ exports.addVisualFilters = addVisualFilters;
9
9
  exports.applyCustomFilterFields = applyCustomFilterFields;
10
10
  exports.analyzeViewAnnotation = analyzeViewAnnotation;
11
11
  exports.addALPViews = addALPViews;
12
- exports.applyLRTableSchemaAdjustments = applyLRTableSchemaAdjustments;
12
+ exports.applyLRSchemaAdjustments = applyLRSchemaAdjustments;
13
13
  exports.addTagsToView = addTagsToView;
14
14
  exports.addLRViewParts = addLRViewParts;
15
15
  exports.getDefaultAnnotationPath = getDefaultAnnotationPath;
@@ -22,6 +22,7 @@ const ux_specification_types_1 = require("@sap/ux-specification-types");
22
22
  const i18next_1 = __importDefault(require("i18next"));
23
23
  const extensionLogger_1 = require("../../../extensionLogger");
24
24
  const common_1 = require("../../common");
25
+ const actions_1 = require("./actions");
25
26
  const AppSchema_1 = require("../sync-rules/AppSchema");
26
27
  const App_1 = require("../sync-rules/App");
27
28
  const Page_1 = require("../sync-rules/Page");
@@ -181,38 +182,6 @@ function applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page) {
181
182
  });
182
183
  }
183
184
  }
184
- /**
185
- * Adds selection fields or compact/visual filters to filter bar.
186
- *
187
- * @param entityType - actual entity type (AVT information)
188
- * @param appSchema - app-specific JSON schema
189
- * @param v4Page - actual page in the manifest
190
- * @param alias - the given alias or namespace of the OData annotations
191
- */
192
- function addFilterBar(entityType, appSchema, v4Page, alias) {
193
- const visualFilters = getVisualFilters(v4Page);
194
- const selectionFields = alias && entityType?.annotations?.[alias]?.SelectionFields;
195
- let selectionFieldsDefinition;
196
- // Hide visualFilters/selectionFields depending on existing visual filters
197
- if (visualFilters) {
198
- appSchema.definitions[ux_specification_types_1.DefinitionName.SelectionFields][ux_specification_types_1.SchemaTag.hidden] = true;
199
- appSchema.definitions[ux_specification_types_1.DefinitionName.SelectionFields]['properties'] = {};
200
- selectionFieldsDefinition = appSchema.definitions[ux_specification_types_1.DefinitionName.CompactFilters];
201
- selectionFieldsDefinition.additionalProperties = false;
202
- selectionFieldsDefinition.properties = {};
203
- addVisualFilters(entityType, appSchema, visualFilters, selectionFields);
204
- }
205
- else {
206
- const filterBar = appSchema.definitions[ux_specification_types_1.DefinitionName.FilterBar];
207
- filterBar.properties['initialLayout'][ux_specification_types_1.SchemaTag.hidden] = true;
208
- filterBar.properties['layout'][ux_specification_types_1.SchemaTag.hidden] = true;
209
- appSchema.definitions[ux_specification_types_1.DefinitionName.CompactFilters][ux_specification_types_1.SchemaTag.hidden] = true;
210
- appSchema.definitions[ux_specification_types_1.DefinitionName.VisualFilters][ux_specification_types_1.SchemaTag.hidden] = true;
211
- }
212
- selectionFieldsDefinition = addSelectionFields(entityType, appSchema, selectionFields, selectionFieldsDefinition);
213
- // Apply custom filter fields
214
- applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page);
215
- }
216
185
  /**
217
186
  *
218
187
  * @param appSchema - The app JSON schema to be updated
@@ -498,28 +467,27 @@ function addALPViews(appSchema, viewsPaths, generateParameters, templateAnnotati
498
467
  appSchema.definitions[ux_specification_types_1.DefinitionName.ALPTable][ux_specification_types_1.SchemaTag.annotationPath] = target;
499
468
  }
500
469
  const schemaAdjustmentParameters = {
470
+ logger: generateParameters.logger,
501
471
  appSchema,
502
472
  v4Page,
503
- tableDefinitionId: ux_specification_types_1.DefinitionName.ALPTable,
504
- facetDefinitionId: ux_specification_types_1.DefinitionName.LineItems,
505
- dataForLineItem
473
+ tableDefinitionKey: ux_specification_types_1.DefinitionName.ALPTable,
474
+ facetDefinitionKey: ux_specification_types_1.DefinitionName.LineItems,
475
+ dataForLineItem,
476
+ customActionDefinitionName: ux_specification_types_1.DefinitionName.CustomTableAction,
477
+ sectionActionsDefinitionKey: `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`
506
478
  };
507
- applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
479
+ applyLRSchemaAdjustments(schemaAdjustmentParameters);
508
480
  const pathParts = annotations[viewAnnotation].fullyQualifiedName.split('@');
509
481
  tableView[ux_specification_types_1.SchemaTag.annotationPath] = `/${pathParts[0]}/@${pathParts[1]}`;
510
482
  tableView[ux_specification_types_1.SchemaTag.key] = 'secondary';
511
483
  tableView[ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: 'secondary' }];
512
484
  }
513
485
  (0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger);
514
- // Table toolbar actions with custom actions
515
- const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`;
516
- (0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, undefined, schemaIdForToolbarActions);
517
- (0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForToolbarActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
518
486
  // Add "manifestPath" for table properties
519
487
  addManifestPathsToPropertiesLR(appSchema, ux_specification_types_1.DefinitionName.ALPTable, tableDefinition, {
520
488
  pageName: v4Page.id,
521
489
  manifest: generateParameters.manifest,
522
- targetAnnotation
490
+ targetAnnotation: target
523
491
  });
524
492
  }
525
493
  /**
@@ -558,18 +526,30 @@ function addViewChartDefinitions(inputParameters, annotations) {
558
526
  * @param viewsDefinition - the views definition in app schema (MultiTableModeV4)
559
527
  * @param viewKey - view key
560
528
  * @param title - view title
529
+ * @param page - Represents the page in the application's structure where the view line items are to be added.
561
530
  */
562
- function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition, viewKey, title) {
531
+ function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition, viewKey, title, page) {
563
532
  const idForChart = addViewChartDefinitions(inputParameters, UIAnnotations);
564
- appSchema.definitions[idForChart].properties.annotationPath[ux_specification_types_1.SchemaTag.hidden] = true;
565
- appSchema.definitions[idForChart].properties.index[ux_specification_types_1.SchemaTag.hidden] = true;
566
- appSchema.definitions[idForChart].properties.entitySet[ux_specification_types_1.SchemaTag.hidden] = true;
533
+ const chartViewDefinition = appSchema.definitions[idForChart];
534
+ chartViewDefinition.properties.annotationPath[ux_specification_types_1.SchemaTag.hidden] = true;
535
+ chartViewDefinition.properties.index[ux_specification_types_1.SchemaTag.hidden] = true;
536
+ chartViewDefinition.properties.entitySet[ux_specification_types_1.SchemaTag.hidden] = true;
567
537
  const titleOnHover = `Chart View (key: ${viewKey})`;
568
538
  viewsDefinition.properties[viewKey] = {
569
539
  $ref: `${common_1.DEFINITION_LINK_PREFIX}${idForChart}`,
570
540
  description: title ? title : titleOnHover,
571
541
  title: titleOnHover
572
542
  };
543
+ // Add "manifestPath" for table properties
544
+ addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRChartView, chartViewDefinition, {
545
+ pageName: page.getPage().id,
546
+ manifest: page.getApp().manifest,
547
+ targetAnnotation: inputParameters.targetAnnotation,
548
+ viewConfig: {
549
+ key: viewKey,
550
+ entitySet: inputParameters.entitySet
551
+ }
552
+ });
573
553
  }
574
554
  /**
575
555
  * Retrieves the line item reference for a specified view and entity type.
@@ -599,20 +579,19 @@ function getLineItemRef(v4Page, entityType, viewKey, lineItemTerm, lineItemQuali
599
579
  *
600
580
  * @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
601
581
  * It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
602
- * @returns {void} This function does not return any value.
603
582
  */
604
583
  function adjustCreationFieldsDefinition(schemaAdjustmentParameters) {
605
- const { entityType, appSchema, tableDefinitionId, facetDefinitionId, v4Page, viewKey } = schemaAdjustmentParameters;
584
+ const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey } = schemaAdjustmentParameters;
606
585
  // when the table view is created, the entity type may differ from the one used for the table
607
586
  // schemaAdjustmentParameters contains the entity type used for the view
608
587
  const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term);
609
588
  // set specific implementation for creation fields in the LR table
610
- const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionId);
611
- const tableDefinition = appSchema.definitions[tableDefinitionId];
589
+ const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
590
+ const tableDefinition = appSchema.definitions[tableDefinitionKey];
612
591
  const creationModeProperty = tableDefinition.properties[ux_specification_types_1.PropertyName.creationMode];
613
- creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionId);
592
+ creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
614
593
  const creationModeDefinition = appSchema.definitions[creationModeDefinitionKey] ??
615
- (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionId, appSchema);
594
+ (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey, appSchema);
616
595
  const context = {
617
596
  page: v4Page,
618
597
  schema: creationModeDefinition,
@@ -634,20 +613,19 @@ function adjustCreationFieldsDefinition(schemaAdjustmentParameters) {
634
613
  *
635
614
  * @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
636
615
  * It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
637
- * @returns {void} This function does not return any value.
638
616
  */
639
617
  function adjustAnalyticalConfiguration(schemaAdjustmentParameters) {
640
- const { entityType, appSchema, tableDefinitionId, facetDefinitionId, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
618
+ const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
641
619
  // when the table view is created, the entity type may differ from the one used for the table
642
620
  // schemaAdjustmentParameters contains the entity type used for the view
643
621
  const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
644
622
  // set specific implementation for analytical configuration in the LR table
645
- const tableDefinition = appSchema.definitions[tableDefinitionId];
623
+ const tableDefinition = appSchema.definitions[tableDefinitionKey];
646
624
  const analyticalConfigurationDefinitionName = viewKey
647
625
  ? ux_specification_types_1.DefinitionName.ViewAnalyticalConfiguration
648
626
  : ux_specification_types_1.DefinitionName.AnalyticalConfiguration;
649
627
  const analyticalConfigurationDefinition = appSchema.definitions[analyticalConfigurationDefinitionName] ??
650
- (0, common_1.parseSchemaDefinition)(analyticalConfigurationDefinitionName, facetDefinitionId, appSchema);
628
+ (0, common_1.parseSchemaDefinition)(analyticalConfigurationDefinitionName, facetDefinitionKey, appSchema);
651
629
  const context = {
652
630
  page: v4Page,
653
631
  schema: analyticalConfigurationDefinition,
@@ -665,46 +643,61 @@ function adjustAnalyticalConfiguration(schemaAdjustmentParameters) {
665
643
  *
666
644
  * @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
667
645
  * It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
668
- * @returns {void} This function does not return any value.
669
646
  */
670
647
  function adjustPopinLayout(schemaAdjustmentParameters) {
671
- const { entityType, appSchema, tableDefinitionId, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
648
+ const { entityType, appSchema, tableDefinitionKey, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
672
649
  // when the table view is created, the entity type may differ from the one used for the table
673
650
  // schemaAdjustmentParameters contains the entity type used for the view
674
651
  const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
652
+ // set specific implementation for popinLayout in the LR table
653
+ const tableDefinition = appSchema.definitions[tableDefinitionKey];
654
+ const popinLayoutDefinition = tableDefinition.properties['popinLayout'];
655
+ const context = {
656
+ page: v4Page,
657
+ schema: popinLayoutDefinition,
658
+ parameters: {
659
+ lineItemRef,
660
+ tableDefinition
661
+ }
662
+ };
663
+ // for the ResponsiveTable (default table type) we allow to set the popin layout property
664
+ common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRPopinLayoutForNonResponsiveTable, context);
675
665
  }
676
666
  /**
677
667
  * Adjusts the schema for a table by making necessary changes such as populating creation fields,
678
668
  * adjusting creation field definitions, and adding enum mappings for mass edit functionalities.
679
669
  *
680
670
  * @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - Object containing the parameters required for schema adjustments. Includes the generate parameters, application schema, table definition ID, and facet definition ID.
681
- * @returns {void} This function does not return a value; it performs in-place adjustments to the schema provided through the input parameters.
682
671
  */
683
- function applyLRTableSchemaAdjustments(schemaAdjustmentParameters) {
684
- const { entityType, appSchema, tableDefinitionId, facetDefinitionId } = schemaAdjustmentParameters;
672
+ function applyLRSchemaAdjustments(schemaAdjustmentParameters) {
673
+ const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey } = schemaAdjustmentParameters;
685
674
  // in the future, all postgeneration adjustments for the LR Page should be done here
686
675
  // populate the creation fields for the table with the data from the columns
687
- (0, utils_1.initializeCreationModeSchema)(appSchema, facetDefinitionId, entityType, ux_specification_types_1.DefinitionName.TableCreationModeLR);
676
+ (0, utils_1.initializeCreationModeSchema)(appSchema, facetDefinitionKey, entityType, ux_specification_types_1.DefinitionName.TableCreationModeLR);
688
677
  // remove unnecessary properties from the creation mode aggregation according to the table type
689
678
  adjustCreationFieldsDefinition(schemaAdjustmentParameters);
690
679
  // remove unnecessary properties from the analytical configuration aggregation according to the table type
691
680
  adjustAnalyticalConfiguration(schemaAdjustmentParameters);
692
681
  adjustPopinLayout(schemaAdjustmentParameters);
693
682
  // add columns to a enum, in this case enableMassEdit -> visibleFields and ignoredFields
694
- (0, utils_2.addEnumForEnableMassEdit)(appSchema, tableDefinitionId, facetDefinitionId, entityType);
683
+ (0, utils_2.addEnumForEnableMassEdit)(appSchema, tableDefinitionKey, facetDefinitionKey, entityType);
684
+ // add the custom action and custom action menu definition
685
+ (0, actions_1.configureCustomActionDefinition)(schemaAdjustmentParameters);
695
686
  }
696
687
  /**
697
688
  * Modifies the app schema, adds the right line item settings as derived from the visualization.
698
689
  *
699
- * @param {ViewsParameters} inputParameters - The parameters required for generating and defining the line items in the view schema.
700
- * @param {Definition} viewsDefinition - The existing schema definition for views that will be updated with new view line items.
701
- * @param {string} visualization - The visualization format or mode for the line items, used to determine the associated annotations.
702
- * @param {string} templateAnnotation - The template annotation to infer metadata for the line items.
703
- * @param {GenerateAppSchemaParameters} generateParameters - Parameters essential for schema generation, including OData service metadata.
704
- * @param {Page} page - The page object representing the context in which the view is being generated.
705
- * @returns {void} No return value.
690
+ * @param {ViewsParameters} inputParameters - Parameters containing details needed for the view line item addition, including the app schema, view key, and target annotation.
691
+ * @param {Definition} viewsDefinition - The definition object to which the view line items will be added.
692
+ * @param {string} visualization - The specific visualization type, typically used to determine the annotation term.
693
+ * @param {string} templateAnnotation - Annotation path or type related to the template.
694
+ * @param generateParameters - list of API input parameters
695
+ * @param generateParameters.serviceAVT - OData service AVT information
696
+ * @param generateParameters.entityType - entity type of the current page
697
+ * @param {Page} page - Represents the page in the application's structure where the view line items are to be added.
698
+ * @param {ExtensionLogger} logger - Logger for recording informational or error messages during the schema adjustment process.
706
699
  */
707
- function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page) {
700
+ function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page, logger) {
708
701
  const tableId = `${ux_specification_types_1.DefinitionName.LRTableView}<${inputParameters.viewKey}>`;
709
702
  const viewId = `${ux_specification_types_1.DefinitionName.LineItemsOfView}::${inputParameters.viewKey}`;
710
703
  const lrTableView = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.LRTableView, inputParameters.viewKey, inputParameters.appSchema);
@@ -738,21 +731,42 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
738
731
  lineItemId: viewId
739
732
  };
740
733
  (0, utils_2.addLineItemsTypeToSchema)(dataForLineItem, ux_specification_types_1.DefinitionName.ViewTableColumn, ux_specification_types_1.DefinitionName.ViewCustomColumn, ux_specification_types_1.DefinitionName.ViewCustomAction);
734
+ // Table toolbar actions with custom actions
735
+ const sectionIdPrefix = inputParameters.entitySet ? `/${inputParameters.entitySet}/` : '';
736
+ const sectionIdInManifest = `${sectionIdPrefix}@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}${visualization.split(ux_specification_types_1.Visualization.LineItem)[1]}`;
737
+ const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${viewId}>`;
738
+ const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${viewId}>`;
739
+ // Anchor selection
740
+ (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition, viewId, inputParameters.appSchema);
741
+ const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${viewId}>`;
742
+ const customActionDefinition = inputParameters.appSchema.definitions[customActionDefinitionKey];
743
+ customActionDefinition.properties.position.$ref =
744
+ `${common_1.DEFINITION_LINK_PREFIX}${customActionPositionDefinitionKey}`;
741
745
  const schemaAdjustmentParameters = {
746
+ logger: logger,
742
747
  appSchema: inputParameters.appSchema,
743
748
  v4Page: page.getPage(),
744
- tableDefinitionId: tableId,
745
- facetDefinitionId: viewId,
749
+ tableDefinitionKey: tableId,
750
+ facetDefinitionKey: viewId,
746
751
  viewKey: inputParameters.viewKey,
747
752
  entityType: inputParameters.targetEntityType || entityType,
748
- dataForLineItem
753
+ dataForLineItem,
754
+ sectionActionsDefinitionKey: schemaIdForToolbarActions,
755
+ scopedCustomActionDefinitionKey: customActionDefinitionKey,
756
+ customActionDefinitionName: ux_specification_types_1.DefinitionName.ViewCustomAction,
757
+ sectionIdInManifest,
758
+ customActionPosition: customActionPositionDefinitionKey
749
759
  };
750
- applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
760
+ applyLRSchemaAdjustments(schemaAdjustmentParameters);
751
761
  // Add "manifestPath" for table properties
752
762
  addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRTableView, lrTableView, {
753
763
  pageName: page.getPage().id,
754
764
  manifest: page.getApp().manifest,
755
- targetAnnotation: inputParameters.targetAnnotation
765
+ targetAnnotation: inputParameters.targetAnnotation,
766
+ viewConfig: {
767
+ key: inputParameters.viewKey,
768
+ entitySet: inputParameters.entitySet
769
+ }
756
770
  });
757
771
  }
758
772
  /**
@@ -772,25 +786,6 @@ function addTagsToView(viewsDefinition, viewKey, namespace, view) {
772
786
  viewsDefinition.properties[viewKey][ux_specification_types_1.SchemaTag.key] = viewKey;
773
787
  viewsDefinition.properties[viewKey][ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: viewKey }];
774
788
  }
775
- /**
776
- * Adjusts the entity type if a different entity set is maintained for a view.
777
- *
778
- * @param {EntitySet} entitySet - actual entity set (AVT information)
779
- * @param view - the current view in manifest
780
- * @param {GenerateAppSchemaParameters} generateParameters - list of API input parameters
781
- * @returns the target entity type
782
- */
783
- function getTargetEntityType(entitySet, view, generateParameters) {
784
- let targetEntityType = generateParameters.entityType;
785
- let viewEntitySet = entitySet;
786
- if (view['entitySet'] && view['entitySet'] !== entitySet.name) {
787
- viewEntitySet = generateParameters.serviceAVT?.entitySets.find((es) => {
788
- return es.name === view['entitySet'];
789
- });
790
- targetEntityType = viewEntitySet.entityType;
791
- }
792
- return targetEntityType;
793
- }
794
789
  /**
795
790
  * Adds view custom extensions - custom column and custom action definitions.
796
791
  *
@@ -812,17 +807,6 @@ function addViewCustomExtensions(commonInputParameters, visualization, v4Page, l
812
807
  if (commonInputParameters.appSchema.definitions.Position) {
813
808
  delete commonInputParameters.appSchema.definitions.Position;
814
809
  }
815
- // Table toolbar actions with custom actions
816
- const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${sectionId}>`;
817
- const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${sectionId}>`;
818
- (0, utils_2.addCustomActionDefinition)(commonInputParameters.appSchema, v4Page, logger, customActionDefinitionKey, schemaIdForToolbarActions, sectionIdInManifest);
819
- // Anchor selection
820
- (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition, sectionId, commonInputParameters.appSchema);
821
- const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${sectionId}>`;
822
- const customActionDefinition = commonInputParameters.appSchema.definitions[customActionDefinitionKey];
823
- customActionDefinition.properties.position.$ref =
824
- `${common_1.DEFINITION_LINK_PREFIX}${customActionPositionDefinitionKey}`;
825
- (0, utils_2.addEnumForActionAnchor)(commonInputParameters.appSchema, schemaIdForToolbarActions, customActionPositionDefinitionKey);
826
810
  }
827
811
  /**
828
812
  * Adds definition parts to a LR View (LineItem/Chart).
@@ -841,12 +825,12 @@ function addViewCustomExtensions(commonInputParameters, visualization, v4Page, l
841
825
  function addLRViewParts(visualization, viewsDefinition, commonInputParameters, { serviceAVT, entityType, logger }, page, uiAnnotations, view) {
842
826
  if (visualization?.indexOf(ux_specification_types_1.Visualization.LineItem) > -1) {
843
827
  //Add Line item view
844
- addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page);
828
+ addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page, logger);
845
829
  addViewCustomExtensions(commonInputParameters, visualization, page.getPage(), logger);
846
830
  }
847
831
  else if (visualization?.indexOf('Chart') > -1) {
848
832
  //Add Chart view
849
- addViewChart(commonInputParameters, uiAnnotations, commonInputParameters.appSchema, viewsDefinition, commonInputParameters.viewKey, commonInputParameters.title);
833
+ addViewChart(commonInputParameters, uiAnnotations, commonInputParameters.appSchema, viewsDefinition, commonInputParameters.viewKey, commonInputParameters.title, page);
850
834
  }
851
835
  else if (view['template']) {
852
836
  const titleOnHover = view['label'] || `Custom View (key: ${commonInputParameters.viewKey})`;
@@ -867,159 +851,6 @@ function addLRViewParts(visualization, viewsDefinition, commonInputParameters, {
867
851
  };
868
852
  }
869
853
  }
870
- /**
871
- * Add list report views to the app-specific schema.
872
- *
873
- * @param appSchema - app-specific JSON schema
874
- * @param viewsPaths - views' paths' section in the manifest
875
- * @param generateParameters - list of API input parameters
876
- * @param page - the current page object
877
- * @param tableDefinitionName - The name of the table definition in the schema
878
- */
879
- function addLRViews(appSchema, viewsPaths, generateParameters, page, tableDefinitionName) {
880
- const tableDefinition = appSchema.definitions[tableDefinitionName];
881
- tableDefinition.properties = {
882
- annotationPath: tableDefinition.properties.annotationPath,
883
- initialLoad: tableDefinition.properties.initialLoad,
884
- views: tableDefinition.properties.views
885
- };
886
- const viewsDefinition = appSchema.definitions.MultiTableModeV4;
887
- for (const view of viewsPaths) {
888
- if (!view[ux_specification_types_1.SchemaTag.key]) {
889
- continue;
890
- }
891
- let navPropName = undefined;
892
- const targetEntityType = getTargetEntityType(generateParameters.entitySet, view, generateParameters);
893
- const uiAnnotations = targetEntityType?.annotations.UI;
894
- const { visualization, targetAnnotation, namespace, title } = analyzeViewAnnotation(view?.[ux_specification_types_1.SchemaTag.annotationPath], uiAnnotations, generateParameters.serviceAVT, view[ux_specification_types_1.SchemaTag.key], undefined, generateParameters.logger);
895
- if (view['entitySet']) {
896
- navPropName = generateParameters.entityType.navigationProperties.find((np) => {
897
- return np.targetTypeName === namespace;
898
- })?.name;
899
- }
900
- const viewKey = (0, common_1.prepareRef)(view[ux_specification_types_1.SchemaTag.key]);
901
- const commonInputParameters = {
902
- viewKey,
903
- appSchema,
904
- targetAnnotation,
905
- navPropName,
906
- targetEntityType,
907
- title,
908
- entitySet: view['entitySet']
909
- };
910
- addLRViewParts(visualization, viewsDefinition, commonInputParameters, generateParameters, page, uiAnnotations, view);
911
- addTagsToView(viewsDefinition, viewKey, namespace, view);
912
- }
913
- }
914
- /**
915
- * Adapts the table definition in schema.
916
- * Evaluates the path depending on if defaultTemplateAnnotationPath or Selection-/PresentationVariant is present.
917
- *
918
- * @param appSchema - the app-specific JSON schema
919
- * @param generateParameters - list of API input parameters
920
- * @param templateAnnotation - defaultTemplateAnnotationPath as registered in manifest
921
- * @param v4Page - the given page in manifest
922
- * @param alias - alias definition for the UI vocabulary
923
- * @param tableDefinitionName - The name of the table definition in the schema
924
- */
925
- function adaptTableDefinition(appSchema, generateParameters, templateAnnotation, v4Page, alias, tableDefinitionName) {
926
- //here: tableDefinitionName = DefinitionName.Table
927
- const tableDefinition = appSchema.definitions[tableDefinitionName];
928
- const { visualization, targetAnnotation, namespace } = analyzeViewAnnotation(templateAnnotation, generateParameters.entityType?.annotations.UI, generateParameters.serviceAVT, undefined, ux_specification_types_1.Visualization.LineItem, generateParameters.logger);
929
- if (visualization) {
930
- const annotationTerm = visualization.split('.')[1];
931
- const annotationTermInSchema = `${ux_specification_types_1.DefinitionName.LineItems}OfSPV::${(0, common_1.prepareRef)(annotationTerm)}`;
932
- const spvTable = (appSchema.definitions[`${tableDefinitionName}SPV`] = JSON.parse(JSON.stringify(appSchema.definitions[tableDefinitionName])));
933
- delete spvTable[ux_specification_types_1.SchemaTag.isViewNode];
934
- (0, common_1.addDefinitionRef)(spvTable.properties.toolBar, ux_specification_types_1.DefinitionName.ToolBar, annotationTermInSchema);
935
- // Switch from generic column to specific definition
936
- spvTable[ux_specification_types_1.SchemaTag.annotationPath] = targetAnnotation;
937
- spvTable.properties.columns = {};
938
- (0, common_1.addDefinitionRef)(spvTable.properties.columns, annotationTermInSchema);
939
- delete tableDefinition.properties;
940
- (0, common_1.addDefinitionRef)(tableDefinition, `${tableDefinitionName}SPV`);
941
- tableDefinition[ux_specification_types_1.SchemaTag.annotationPath] = `/${namespace}/@${templateAnnotation}`;
942
- const lineItemAnnotation = generateParameters.entityType?.annotations.UI[annotationTerm];
943
- if (!lineItemAnnotation) {
944
- (0, extensionLogger_1.log)(generateParameters.logger, {
945
- severity: "error" /* LogSeverity.Error */,
946
- message: i18next_1.default.t('NOTARGET', { target: annotationTerm })
947
- });
948
- }
949
- const dataForLineItem = {
950
- isObjectPage: false,
951
- appSchema,
952
- lineItemAnnotation,
953
- entityType: generateParameters.entityType,
954
- oDataServiceAVT: generateParameters.serviceAVT,
955
- lineItemId: annotationTermInSchema
956
- };
957
- (0, utils_2.addLineItemsTypeToSchema)(dataForLineItem);
958
- const annotationTermQualifier = annotationTerm.split('#')?.[1];
959
- const sectionIdInManifest = annotationTermQualifier
960
- ? `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}#${annotationTermQualifier}`
961
- : `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}`;
962
- (0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger, undefined, annotationTermInSchema, sectionIdInManifest);
963
- (0, utils_2.addFragmentEnumForAnchor)(appSchema, annotationTermInSchema, v4Page, undefined, sectionIdInManifest);
964
- const schemaAdjustmentParameters = {
965
- appSchema,
966
- v4Page,
967
- tableDefinitionId: `${tableDefinitionName}SPV`,
968
- facetDefinitionId: annotationTermInSchema,
969
- dataForLineItem
970
- };
971
- applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
972
- // Table toolbar actions with custom actions
973
- const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${annotationTermInSchema}>`;
974
- const customColumnDefinitionName = (0, common_1.getCustomExtensionDefinitionName)(appSchema, annotationTermInSchema, ux_specification_types_1.DefinitionName.CustomTableAction);
975
- (0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, (0, common_1.getDefinitionKey)(customColumnDefinitionName), schemaIdForToolbarActions, sectionIdInManifest);
976
- (0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForToolbarActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
977
- }
978
- else {
979
- tableDefinition.properties.toolBar['$ref'] = `${common_1.DEFINITION_LINK_PREFIX}${ux_specification_types_1.DefinitionName.ToolBarLR}`;
980
- // Switch from generic column to specific definition
981
- (0, common_1.addDefinitionRef)(tableDefinition.properties.columns, ux_specification_types_1.DefinitionName.LineItems);
982
- const lineItemAnnotation = generateParameters.entityType?.annotations?.[alias]?.LineItem;
983
- if (!lineItemAnnotation && !v4Page.options?.settings?.views?.paths) {
984
- (0, extensionLogger_1.log)(generateParameters.logger, {
985
- severity: "error" /* LogSeverity.Error */,
986
- message: i18next_1.default.t('NOLINEITEMS')
987
- });
988
- }
989
- const dataForLineItem = {
990
- isObjectPage: false,
991
- appSchema,
992
- lineItemAnnotation,
993
- entityType: generateParameters.entityType,
994
- oDataServiceAVT: generateParameters.serviceAVT,
995
- lineItemId: ux_specification_types_1.DefinitionName.LineItems
996
- };
997
- (0, utils_2.addLineItemsTypeToSchema)(dataForLineItem);
998
- (0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger);
999
- (0, utils_2.addFragmentEnumForAnchor)(appSchema, ux_specification_types_1.DefinitionName.LineItems, v4Page);
1000
- const schemaAdjustmentParameters = {
1001
- appSchema,
1002
- v4Page,
1003
- tableDefinitionId: tableDefinitionName,
1004
- facetDefinitionId: ux_specification_types_1.DefinitionName.LineItems,
1005
- dataForLineItem
1006
- };
1007
- applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
1008
- if (lineItemAnnotation && !v4Page.options?.settings?.views?.paths) {
1009
- tableDefinition[ux_specification_types_1.SchemaTag.annotationPath] = (0, common_1.createAnnotationPath)(generateParameters.entityType?.fullyQualifiedName, lineItemAnnotation.term, lineItemAnnotation.qualifier);
1010
- }
1011
- // Table toolbar actions with custom actions
1012
- const schemaIdForActions = `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`;
1013
- (0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, undefined, schemaIdForActions);
1014
- (0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
1015
- }
1016
- // Add "manifestPath" for table properties
1017
- addManifestPathsToPropertiesLR(appSchema, tableDefinitionName, tableDefinition, {
1018
- pageName: v4Page.id,
1019
- manifest: generateParameters.manifest,
1020
- targetAnnotation
1021
- });
1022
- }
1023
854
  /**
1024
855
  * Checks for the default annotation path to use for LR table.
1025
856
  *
@@ -1084,9 +915,13 @@ function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, p
1084
915
  // Default annotation path
1085
916
  targetAnnotation = `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}`;
1086
917
  }
918
+ const entitySet = pathParams.viewConfig?.entitySet;
919
+ if (entitySet) {
920
+ targetAnnotation = entitySet ? `/${entitySet}/${targetAnnotation}` : targetAnnotation;
921
+ }
1087
922
  (0, utils_1.addManifestPathsToProperties)(appSchema, definitionName, definition, {
1088
923
  ...pathParams,
1089
- pathsParts: [targetAnnotation, '', targetAnnotation]
924
+ pathsParts: [targetAnnotation, '', targetAnnotation, pathParams.viewConfig]
1090
925
  });
1091
926
  }
1092
927
  /**