@sapui5/sap.fe.core 1.93.3 → 1.97.0

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 (193) hide show
  1. package/package.json +6 -6
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppComponent.js +8 -40
  4. package/src/sap/fe/core/BusyLocker.js +12 -0
  5. package/src/sap/fe/core/CommonUtils.js +224 -48
  6. package/src/sap/fe/core/ExtensionAPI.js +1 -1
  7. package/src/sap/fe/core/PageController.js +13 -2
  8. package/src/sap/fe/core/RouterProxy.js +52 -64
  9. package/src/sap/fe/core/TemplateComponent.js +8 -2
  10. package/src/sap/fe/core/TransactionHelper.js +210 -180
  11. package/src/sap/fe/core/actions/draft.js +13 -1
  12. package/src/sap/fe/core/actions/messageHandling.js +80 -4
  13. package/src/sap/fe/core/actions/operations.js +207 -68
  14. package/src/sap/fe/core/controllerextensions/EditFlow.js +82 -55
  15. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +13 -6
  16. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +132 -23
  17. package/src/sap/fe/core/controllerextensions/InternalRouting.js +203 -214
  18. package/src/sap/fe/core/controllerextensions/KPIManagement.js +834 -170
  19. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +890 -189
  20. package/src/sap/fe/core/controllerextensions/MessageHandler.js +222 -102
  21. package/src/sap/fe/core/controllerextensions/PageReady.js +48 -33
  22. package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -14
  23. package/src/sap/fe/core/controllerextensions/Paginator.js +150 -0
  24. package/src/sap/fe/core/controllerextensions/Placeholder.js +133 -270
  25. package/src/sap/fe/core/controllerextensions/Share.js +12 -9
  26. package/src/sap/fe/core/controllerextensions/SideEffects.js +5 -6
  27. package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -12
  28. package/src/sap/fe/core/controllerextensions/ViewState.js +202 -8
  29. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +39 -34
  30. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +35 -0
  31. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +1 -1
  32. package/src/sap/fe/core/controls/CustomQuickViewPage.js +109 -108
  33. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +45 -0
  34. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +15 -4
  35. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +250 -94
  36. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +129 -135
  37. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +325 -0
  38. package/src/sap/fe/core/controls/filterbar.d.js +8 -0
  39. package/src/sap/fe/core/controls/filterbar.d.ts +0 -0
  40. package/src/sap/fe/core/converters/ConverterContext.js +19 -5
  41. package/src/sap/fe/core/converters/ConverterContext.ts +13 -3
  42. package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
  43. package/src/sap/fe/core/converters/ManifestSettings.ts +13 -3
  44. package/src/sap/fe/core/converters/ManifestWrapper.js +9 -9
  45. package/src/sap/fe/core/converters/MetaModelConverter.js +867 -871
  46. package/src/sap/fe/core/converters/MetaModelConverter.ts +772 -827
  47. package/src/sap/fe/core/converters/TemplateConverter.js +4 -4
  48. package/src/sap/fe/core/converters/annotations/DataField.js +57 -7
  49. package/src/sap/fe/core/converters/annotations/DataField.ts +52 -2
  50. package/src/sap/fe/core/converters/common/AnnotationConverter.js +146 -85
  51. package/src/sap/fe/core/converters/controls/Common/Action.js +61 -56
  52. package/src/sap/fe/core/converters/controls/Common/Action.ts +54 -39
  53. package/src/sap/fe/core/converters/controls/Common/Chart.js +101 -9
  54. package/src/sap/fe/core/converters/controls/Common/Chart.ts +100 -5
  55. package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
  56. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -16
  57. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +16 -30
  58. package/src/sap/fe/core/converters/controls/Common/Form.js +77 -29
  59. package/src/sap/fe/core/converters/controls/Common/Form.ts +79 -21
  60. package/src/sap/fe/core/converters/controls/Common/KPI.js +287 -109
  61. package/src/sap/fe/core/converters/controls/Common/KPI.ts +314 -139
  62. package/src/sap/fe/core/converters/controls/Common/Table.js +521 -166
  63. package/src/sap/fe/core/converters/controls/Common/Table.ts +519 -115
  64. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +487 -0
  65. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +541 -0
  66. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +364 -0
  67. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +338 -0
  68. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +74 -0
  69. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +50 -0
  70. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +11 -11
  71. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +47 -35
  72. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +45 -29
  73. package/src/sap/fe/core/converters/helpers/Aggregation.js +31 -32
  74. package/src/sap/fe/core/converters/helpers/Aggregation.ts +26 -27
  75. package/src/sap/fe/core/converters/helpers/BindingHelper.js +27 -2
  76. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +22 -2
  77. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  78. package/src/sap/fe/core/converters/helpers/ID.js +9 -3
  79. package/src/sap/fe/core/converters/helpers/ID.ts +6 -3
  80. package/src/sap/fe/core/converters/helpers/IssueManager.js +5 -4
  81. package/src/sap/fe/core/converters/helpers/IssueManager.ts +4 -3
  82. package/src/sap/fe/core/converters/helpers/Key.js +3 -3
  83. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +11 -6
  84. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +9 -5
  85. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +18 -5
  86. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +14 -14
  87. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +91 -20
  88. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +77 -5
  89. package/src/sap/fe/core/converters/templates/ListReportConverter.js +87 -714
  90. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +85 -812
  91. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -17
  92. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +121 -16
  93. package/src/sap/fe/core/designtime/AppComponent.designtime.js +2 -1
  94. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  95. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  96. package/src/sap/fe/core/formatters/FPMFormatter.ts +8 -3
  97. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  98. package/src/sap/fe/core/formatters/TableFormatter.js +27 -4
  99. package/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
  100. package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
  101. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  102. package/src/sap/fe/core/fpm/Component.js +1 -1
  103. package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -3
  104. package/src/sap/fe/core/helpers/BindingExpression.js +6 -6
  105. package/src/sap/fe/core/helpers/ClassSupport.js +4 -4
  106. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +0 -2
  107. package/src/sap/fe/core/helpers/KeepAliveHelper.js +211 -0
  108. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
  109. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +32 -0
  110. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
  111. package/src/sap/fe/core/helpers/ModelHelper.js +78 -0
  112. package/src/sap/fe/core/helpers/PasteHelper.js +6 -0
  113. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +2 -2
  114. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  115. package/src/sap/fe/core/helpers/StableIdHelper.ts +1 -1
  116. package/src/sap/fe/core/jsx-runtime/jsx.js +2 -2
  117. package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
  118. package/src/sap/fe/core/library.js +1 -1
  119. package/src/sap/fe/core/messagebundle.properties +45 -2
  120. package/src/sap/fe/core/messagebundle_ar.properties +53 -1
  121. package/src/sap/fe/core/messagebundle_bg.properties +52 -0
  122. package/src/sap/fe/core/messagebundle_ca.properties +54 -2
  123. package/src/sap/fe/core/messagebundle_cs.properties +52 -0
  124. package/src/sap/fe/core/messagebundle_cy.properties +52 -0
  125. package/src/sap/fe/core/messagebundle_da.properties +53 -1
  126. package/src/sap/fe/core/messagebundle_de.properties +55 -3
  127. package/src/sap/fe/core/messagebundle_el.properties +53 -1
  128. package/src/sap/fe/core/messagebundle_en.properties +52 -0
  129. package/src/sap/fe/core/messagebundle_en_GB.properties +53 -1
  130. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +49 -1
  131. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +53 -1
  132. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +53 -1
  133. package/src/sap/fe/core/messagebundle_es.properties +60 -8
  134. package/src/sap/fe/core/messagebundle_es_MX.properties +55 -3
  135. package/src/sap/fe/core/messagebundle_et.properties +52 -0
  136. package/src/sap/fe/core/messagebundle_fi.properties +52 -0
  137. package/src/sap/fe/core/messagebundle_fr.properties +61 -9
  138. package/src/sap/fe/core/messagebundle_fr_CA.properties +52 -0
  139. package/src/sap/fe/core/messagebundle_hi.properties +53 -1
  140. package/src/sap/fe/core/messagebundle_hr.properties +53 -1
  141. package/src/sap/fe/core/messagebundle_hu.properties +52 -0
  142. package/src/sap/fe/core/messagebundle_id.properties +54 -2
  143. package/src/sap/fe/core/messagebundle_it.properties +53 -1
  144. package/src/sap/fe/core/messagebundle_iw.properties +54 -2
  145. package/src/sap/fe/core/messagebundle_ja.properties +62 -10
  146. package/src/sap/fe/core/messagebundle_kk.properties +53 -1
  147. package/src/sap/fe/core/messagebundle_ko.properties +53 -1
  148. package/src/sap/fe/core/messagebundle_lt.properties +53 -1
  149. package/src/sap/fe/core/messagebundle_lv.properties +53 -1
  150. package/src/sap/fe/core/messagebundle_ms.properties +53 -1
  151. package/src/sap/fe/core/messagebundle_nl.properties +57 -5
  152. package/src/sap/fe/core/messagebundle_no.properties +54 -2
  153. package/src/sap/fe/core/messagebundle_pl.properties +53 -1
  154. package/src/sap/fe/core/messagebundle_pt.properties +54 -2
  155. package/src/sap/fe/core/messagebundle_pt_PT.properties +53 -1
  156. package/src/sap/fe/core/messagebundle_ro.properties +53 -1
  157. package/src/sap/fe/core/messagebundle_ru.properties +53 -1
  158. package/src/sap/fe/core/messagebundle_sh.properties +53 -1
  159. package/src/sap/fe/core/messagebundle_sk.properties +52 -0
  160. package/src/sap/fe/core/messagebundle_sl.properties +53 -1
  161. package/src/sap/fe/core/messagebundle_sv.properties +53 -1
  162. package/src/sap/fe/core/messagebundle_th.properties +52 -0
  163. package/src/sap/fe/core/messagebundle_tr.properties +52 -0
  164. package/src/sap/fe/core/messagebundle_uk.properties +52 -0
  165. package/src/sap/fe/core/messagebundle_vi.properties +53 -1
  166. package/src/sap/fe/core/messagebundle_zh_CN.properties +53 -1
  167. package/src/sap/fe/core/messagebundle_zh_TW.properties +53 -1
  168. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +5 -5
  169. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +5 -5
  170. package/src/sap/fe/core/services/RoutingServiceFactory.js +154 -78
  171. package/src/sap/fe/core/services/ShellServicesFactory.js +9 -9
  172. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +11 -12
  173. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +12 -2
  174. package/src/sap/fe/core/support/AnnotationIssue.support.js +2 -4
  175. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +2 -4
  176. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -4
  177. package/src/sap/fe/core/support/CommonHelper.js +2 -4
  178. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  179. package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -4
  180. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
  181. package/src/sap/fe/core/templating/DataModelPathHelper.js +54 -6
  182. package/src/sap/fe/core/templating/DataModelPathHelper.ts +54 -4
  183. package/src/sap/fe/core/templating/EntitySetHelper.js +86 -3
  184. package/src/sap/fe/core/templating/EntitySetHelper.ts +44 -0
  185. package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
  186. package/src/sap/fe/core/templating/FilterHelper.js +23 -5
  187. package/src/sap/fe/core/templating/FilterHelper.ts +15 -1
  188. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  189. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  190. package/src/sap/fe/core/templating/PropertyHelper.js +8 -8
  191. package/src/sap/fe/core/templating/UIFormatters.js +72 -4
  192. package/src/sap/fe/core/templating/UIFormatters.ts +98 -3
  193. package/src/sap/fe/core/type/Email.js +1 -1
@@ -6,19 +6,21 @@ import {
6
6
  FacetTypes,
7
7
  FieldGroup,
8
8
  Identification,
9
+ PartOfPreview,
9
10
  ReferenceFacetTypes,
10
11
  UIAnnotationTerms,
11
12
  UIAnnotationTypes
12
13
  } from "@sap-ux/vocabularies-types";
13
14
  import { BindingExpression } from "sap/fe/core/helpers/BindingExpression";
14
15
  import { ConfigurableObject, CustomElement, insertCustomElements, Placement } from "../../helpers/ConfigurableObject";
15
- import { FormID } from "../../helpers/ID";
16
+ import { FormID, FormStandardActionButtonID } from "../../helpers/ID";
16
17
  import { KeyHelper } from "../../helpers/Key";
17
- import { FormManifestConfiguration, FormatOptionsType } from "../../ManifestSettings";
18
+ import { ActionType, FormatOptionsType, FormManifestConfiguration } from "../../ManifestSettings";
18
19
  import { getSemanticObjectPath } from "sap/fe/core/converters/annotations/DataField";
19
20
  import { getTargetEntitySetPath, getTargetObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
20
21
  import { generate } from "../../../helpers/StableIdHelper";
21
22
  import ConverterContext from "../../ConverterContext";
23
+ import { BaseAction, ConverterAction } from "sap/fe/core/converters/controls/Common/Action";
22
24
 
23
25
  export type FormDefinition = {
24
26
  id: string;
@@ -32,6 +34,7 @@ export enum FormElementType {
32
34
  }
33
35
 
34
36
  export type BaseFormElement = ConfigurableObject & {
37
+ id?: string;
35
38
  type: FormElementType;
36
39
  label?: string;
37
40
  visible?: BindingExpression<boolean>;
@@ -43,6 +46,7 @@ export type AnnotationFormElement = BaseFormElement & {
43
46
  annotationPath?: string;
44
47
  isValueMultilineText?: boolean;
45
48
  semanticObjectPath?: string;
49
+ isPartOfPreview?: boolean;
46
50
  };
47
51
 
48
52
  export type CustomFormElement = CustomElement<
@@ -59,6 +63,7 @@ type FormContainer = {
59
63
  formElements: FormElement[];
60
64
  annotationPath: string;
61
65
  entitySet?: string;
66
+ actions?: ConverterAction[] | BaseAction[];
62
67
  };
63
68
 
64
69
  /**
@@ -68,11 +73,17 @@ type FormContainer = {
68
73
  */
69
74
  function getDefaultFormatOptionsForForm(): FormatOptionsType {
70
75
  return {
71
- textLinesDisplay: 0,
72
76
  textLinesEdit: 4
73
77
  };
74
78
  }
75
79
 
80
+ function isFieldPartOfPreview(field: DataFieldAbstractTypes, formPartOfPreview: PartOfPreview | undefined): boolean {
81
+ // Both each form and field can have the PartOfPreview annotation. Only if the form is not hidden (not partOfPreview) we allow toggling on field level
82
+ return (
83
+ formPartOfPreview === false || field.annotations?.UI?.PartOfPreview === undefined || field.annotations?.UI?.PartOfPreview === true
84
+ );
85
+ }
86
+
76
87
  function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, converterContext: ConverterContext): AnnotationFormElement[] {
77
88
  const formElements: AnnotationFormElement[] = [];
78
89
  const resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
@@ -81,7 +92,7 @@ function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, co
81
92
  | AnnotationTerm<FieldGroup>;
82
93
  converterContext = resolvedTarget.converterContext;
83
94
 
84
- function getDataFieldsFromAnnotations(field: DataFieldAbstractTypes) {
95
+ function getDataFieldsFromAnnotations(field: DataFieldAbstractTypes, formPartOfPreview: PartOfPreview | undefined) {
85
96
  const semanticObjectAnnotationPath = getSemanticObjectPath(converterContext, field);
86
97
  if (
87
98
  field.$Type !== UIAnnotationTypes.DataFieldForAction &&
@@ -93,17 +104,22 @@ function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, co
93
104
  type: FormElementType.Annotation,
94
105
  annotationPath: converterContext.getEntitySetBasedAnnotationPath(field.fullyQualifiedName) + "/",
95
106
  semanticObjectPath: semanticObjectAnnotationPath,
96
- formatOptions: getDefaultFormatOptionsForForm()
107
+ formatOptions: getDefaultFormatOptionsForForm(),
108
+ isPartOfPreview: isFieldPartOfPreview(field, formPartOfPreview)
97
109
  });
98
110
  }
99
111
  }
100
112
 
101
113
  switch (formAnnotation?.term) {
102
114
  case UIAnnotationTerms.FieldGroup:
103
- (formAnnotation as AnnotationTerm<FieldGroup>).Data.forEach(getDataFieldsFromAnnotations);
115
+ (formAnnotation as AnnotationTerm<FieldGroup>).Data.forEach(field =>
116
+ getDataFieldsFromAnnotations(field, facetDefinition.annotations?.UI?.PartOfPreview)
117
+ );
104
118
  break;
105
119
  case UIAnnotationTerms.Identification:
106
- (formAnnotation as AnnotationTerm<Identification>).forEach(getDataFieldsFromAnnotations);
120
+ (formAnnotation as AnnotationTerm<Identification>).forEach(field =>
121
+ getDataFieldsFromAnnotations(field, facetDefinition.annotations?.UI?.PartOfPreview)
122
+ );
107
123
  break;
108
124
  case UIAnnotationTerms.DataPoint:
109
125
  formElements.push({
@@ -138,6 +154,7 @@ export function getFormElementsFromManifest(
138
154
  Object.keys(manifestFormContainer?.fields).forEach(fieldId => {
139
155
  formElements[fieldId] = {
140
156
  key: fieldId,
157
+ id: "CustomFormElement::" + fieldId,
141
158
  type: FormElementType.Default,
142
159
  template: manifestFormContainer.fields[fieldId].template,
143
160
  label: manifestFormContainer.fields[fieldId].label,
@@ -154,8 +171,14 @@ export function getFormElementsFromManifest(
154
171
  return formElements;
155
172
  }
156
173
 
157
- export function getFormContainer(facetDefinition: ReferenceFacetTypes, converterContext: ConverterContext): FormContainer {
174
+ export function getFormContainer(
175
+ facetDefinition: ReferenceFacetTypes,
176
+ converterContext: ConverterContext,
177
+ actions: BaseAction[] | ConverterAction[] | undefined
178
+ ): FormContainer {
158
179
  //TODO form container id
180
+ const sFormContainerId = generate([{ Facet: facetDefinition }]);
181
+ const sAnnotationPath = "/" + facetDefinition.fullyQualifiedName;
159
182
  const resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
160
183
  let sEntitySetPath!: string;
161
184
  // resolvedTarget doesn't have a entitySet in case Containments and Paramterized services.
@@ -167,19 +190,50 @@ export function getFormContainer(facetDefinition: ReferenceFacetTypes, converter
167
190
  } else if (resolvedTarget.converterContext.getDataModelObjectPath().targetObject?.containsTarget === true) {
168
191
  sEntitySetPath = getTargetObjectPath(resolvedTarget.converterContext.getDataModelObjectPath(), false);
169
192
  }
193
+ const aFormElements = insertCustomElements(
194
+ getFormElementsFromAnnotations(facetDefinition, converterContext),
195
+ getFormElementsFromManifest(facetDefinition, converterContext),
196
+ { formatOptions: "overwrite" }
197
+ );
198
+
199
+ actions = actions !== undefined ? actions.filter(action => action.facetName == facetDefinition.fullyQualifiedName) : [];
200
+ if (actions.length === 0) {
201
+ actions = undefined;
202
+ }
203
+
204
+ const oActionShowDetails: BaseAction = {
205
+ id: FormStandardActionButtonID(sFormContainerId, "ShowHideDetails"),
206
+ key: "StandardAction::ShowHideDetails",
207
+ text: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_SHOW_FORM_CONTAINER_DETAILS}",
208
+ type: ActionType.ShowFormDetails,
209
+ press: "FormContainerRuntime.toggleDetails"
210
+ };
211
+
212
+ if (
213
+ facetDefinition.annotations?.UI?.PartOfPreview !== false &&
214
+ aFormElements.some(oFormElement => oFormElement.isPartOfPreview === false)
215
+ ) {
216
+ if (actions !== undefined) {
217
+ actions.push(oActionShowDetails);
218
+ } else {
219
+ actions = [oActionShowDetails];
220
+ }
221
+ }
222
+
170
223
  return {
171
- id: generate([{ Facet: facetDefinition }]),
172
- formElements: insertCustomElements(
173
- getFormElementsFromAnnotations(facetDefinition, converterContext),
174
- getFormElementsFromManifest(facetDefinition, converterContext),
175
- { formatOptions: "overwrite" }
176
- ),
177
- annotationPath: "/" + facetDefinition.fullyQualifiedName,
178
- entitySet: sEntitySetPath
224
+ id: sFormContainerId,
225
+ formElements: aFormElements,
226
+ annotationPath: sAnnotationPath,
227
+ entitySet: sEntitySetPath,
228
+ actions: actions
179
229
  };
180
230
  }
181
231
 
182
- function getFormContainersForCollection(facetDefinition: CollectionFacetTypes, converterContext: ConverterContext): FormContainer[] {
232
+ function getFormContainersForCollection(
233
+ facetDefinition: CollectionFacetTypes,
234
+ converterContext: ConverterContext,
235
+ actions: BaseAction[] | ConverterAction[]
236
+ ): FormContainer[] {
183
237
  const formContainers: FormContainer[] = [];
184
238
  //TODO coll facet inside coll facet?
185
239
  facetDefinition.Facets?.forEach(facet => {
@@ -187,7 +241,7 @@ function getFormContainersForCollection(facetDefinition: CollectionFacetTypes, c
187
241
  if (facet.$Type === UIAnnotationTypes.CollectionFacet) {
188
242
  return;
189
243
  }
190
- formContainers.push(getFormContainer(facet as ReferenceFacetTypes, converterContext));
244
+ formContainers.push(getFormContainer(facet as ReferenceFacetTypes, converterContext, actions));
191
245
  });
192
246
  return formContainers;
193
247
  }
@@ -196,7 +250,11 @@ export function isReferenceFacet(facetDefinition: FacetTypes): facetDefinition i
196
250
  return facetDefinition.$Type === UIAnnotationTypes.ReferenceFacet;
197
251
  }
198
252
 
199
- export function createFormDefinition(facetDefinition: FacetTypes, converterContext: ConverterContext): FormDefinition {
253
+ export function createFormDefinition(
254
+ facetDefinition: FacetTypes,
255
+ converterContext: ConverterContext,
256
+ actions: BaseAction[] | ConverterAction[]
257
+ ): FormDefinition {
200
258
  switch (facetDefinition.$Type) {
201
259
  case UIAnnotationTypes.CollectionFacet:
202
260
  // Keep only valid children
@@ -206,7 +264,7 @@ export function createFormDefinition(facetDefinition: FacetTypes, converterConte
206
264
  hasFacetsNotPartOfPreview: facetDefinition.Facets.some(
207
265
  childFacet => childFacet.annotations?.UI?.PartOfPreview?.valueOf() === false
208
266
  ),
209
- formContainers: getFormContainersForCollection(facetDefinition, converterContext)
267
+ formContainers: getFormContainersForCollection(facetDefinition, converterContext, actions)
210
268
  };
211
269
  return formCollectionDefinition;
212
270
  case UIAnnotationTypes.ReferenceFacet:
@@ -214,7 +272,7 @@ export function createFormDefinition(facetDefinition: FacetTypes, converterConte
214
272
  id: FormID({ Facet: facetDefinition }),
215
273
  useFormContainerLabels: false,
216
274
  hasFacetsNotPartOfPreview: facetDefinition.annotations?.UI?.PartOfPreview?.valueOf() === false,
217
- formContainers: [getFormContainer(facetDefinition, converterContext)]
275
+ formContainers: [getFormContainer(facetDefinition, converterContext, actions)]
218
276
  };
219
277
  return formDefinition;
220
278
  default: