@sapui5/sap.fe.core 1.95.0 → 1.98.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 (207) hide show
  1. package/package.json +5 -5
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AnnotationHelper.js +3 -3
  4. package/src/sap/fe/core/AppComponent.js +9 -44
  5. package/src/sap/fe/core/AppStateHandler.js +2 -2
  6. package/src/sap/fe/core/BaseController.js +1 -1
  7. package/src/sap/fe/core/BusyLocker.js +13 -1
  8. package/src/sap/fe/core/CommonUtils.js +129 -219
  9. package/src/sap/fe/core/ExtensionAPI.js +14 -6
  10. package/src/sap/fe/core/PageController.js +9 -35
  11. package/src/sap/fe/core/RouterProxy.js +79 -75
  12. package/src/sap/fe/core/Synchronization.js +1 -1
  13. package/src/sap/fe/core/TemplateComponent.js +16 -7
  14. package/src/sap/fe/core/TemplateModel.js +1 -1
  15. package/src/sap/fe/core/TransactionHelper.js +183 -65
  16. package/src/sap/fe/core/actions/draft.js +50 -23
  17. package/src/sap/fe/core/actions/messageHandling.js +86 -7
  18. package/src/sap/fe/core/actions/nonDraft.js +1 -1
  19. package/src/sap/fe/core/actions/operations.js +75 -33
  20. package/src/sap/fe/core/actions/sticky.js +1 -1
  21. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +1 -1
  22. package/src/sap/fe/core/controllerextensions/EditFlow.js +276 -122
  23. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +1 -1
  24. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +14 -6
  25. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +90 -46
  26. package/src/sap/fe/core/controllerextensions/InternalRouting.js +234 -232
  27. package/src/sap/fe/core/controllerextensions/KPIManagement.js +539 -209
  28. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +550 -213
  29. package/src/sap/fe/core/controllerextensions/MassEdit.js +79 -0
  30. package/src/sap/fe/core/controllerextensions/MessageHandler.js +227 -103
  31. package/src/sap/fe/core/controllerextensions/PageReady.js +2 -2
  32. package/src/sap/fe/core/controllerextensions/PageReady.ts +3 -7
  33. package/src/sap/fe/core/controllerextensions/Paginator.js +38 -12
  34. package/src/sap/fe/core/controllerextensions/Placeholder.js +16 -19
  35. package/src/sap/fe/core/controllerextensions/Routing.js +17 -2
  36. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  37. package/src/sap/fe/core/controllerextensions/Share.js +20 -7
  38. package/src/sap/fe/core/controllerextensions/SideEffects.js +8 -9
  39. package/src/sap/fe/core/controllerextensions/SideEffects.ts +19 -17
  40. package/src/sap/fe/core/controllerextensions/ViewState.js +54 -9
  41. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +40 -34
  42. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +35 -0
  43. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  44. package/src/sap/fe/core/controls/ConditionalWrapper.js +1 -1
  45. package/src/sap/fe/core/controls/CustomQuickViewPage.js +110 -109
  46. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +7 -4
  47. package/src/sap/fe/core/controls/FieldWrapper.js +10 -4
  48. package/src/sap/fe/core/controls/FilterBar.js +1 -1
  49. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -6
  50. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +45 -0
  51. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -1
  52. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +1 -1
  53. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
  54. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +1 -1
  55. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  56. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +106 -0
  57. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +78 -0
  58. package/src/sap/fe/core/converters/ConverterContext.js +13 -1
  59. package/src/sap/fe/core/converters/ConverterContext.ts +10 -0
  60. package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
  61. package/src/sap/fe/core/converters/ManifestSettings.ts +7 -1
  62. package/src/sap/fe/core/converters/ManifestWrapper.js +18 -7
  63. package/src/sap/fe/core/converters/ManifestWrapper.ts +15 -6
  64. package/src/sap/fe/core/converters/MetaModelConverter.js +920 -882
  65. package/src/sap/fe/core/converters/MetaModelConverter.ts +829 -853
  66. package/src/sap/fe/core/converters/annotations/DataField.js +54 -4
  67. package/src/sap/fe/core/converters/annotations/DataField.ts +53 -3
  68. package/src/sap/fe/core/converters/common/AnnotationConverter.js +83 -48
  69. package/src/sap/fe/core/converters/controls/Common/Action.js +15 -3
  70. package/src/sap/fe/core/converters/controls/Common/Action.ts +12 -3
  71. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -3
  72. package/src/sap/fe/core/converters/controls/Common/Chart.ts +0 -2
  73. package/src/sap/fe/core/converters/controls/Common/Form.js +68 -21
  74. package/src/sap/fe/core/converters/controls/Common/Form.ts +60 -16
  75. package/src/sap/fe/core/converters/controls/Common/KPI.js +331 -248
  76. package/src/sap/fe/core/converters/controls/Common/KPI.ts +355 -287
  77. package/src/sap/fe/core/converters/controls/Common/Table.js +426 -332
  78. package/src/sap/fe/core/converters/controls/Common/Table.ts +516 -383
  79. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +468 -0
  80. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +609 -0
  81. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +30 -13
  82. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +31 -12
  83. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +2 -2
  84. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
  85. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +15 -7
  86. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +27 -6
  87. package/src/sap/fe/core/converters/helpers/Aggregation.js +8 -1
  88. package/src/sap/fe/core/converters/helpers/Aggregation.ts +9 -1
  89. package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
  90. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +2 -2
  91. package/src/sap/fe/core/converters/helpers/ID.js +9 -1
  92. package/src/sap/fe/core/converters/helpers/ID.ts +6 -2
  93. package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -5
  94. package/src/sap/fe/core/converters/helpers/IssueManager.ts +6 -4
  95. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +2 -2
  96. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +1 -1
  97. package/src/sap/fe/core/converters/templates/ListReportConverter.js +34 -4
  98. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +36 -7
  99. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +2 -5
  100. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +1 -2
  101. package/src/sap/fe/core/designtime/AppComponent.designtime.js +11 -2
  102. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  103. package/src/sap/fe/core/formatters/FPMFormatter.ts +8 -3
  104. package/src/sap/fe/core/formatters/TableFormatter.js +27 -4
  105. package/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
  106. package/src/sap/fe/core/formatters/ValueFormatter.js +30 -5
  107. package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -3
  108. package/src/sap/fe/core/fpm/Component.js +2 -2
  109. package/src/sap/fe/core/helpers/AppStartupHelper.js +359 -0
  110. package/src/sap/fe/core/helpers/AppStartupHelper.ts +388 -0
  111. package/src/sap/fe/core/helpers/BindingExpression.js +199 -111
  112. package/src/sap/fe/core/helpers/BindingExpression.ts +193 -102
  113. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
  114. package/src/sap/fe/core/helpers/EditState.js +1 -1
  115. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -3
  116. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  117. package/src/sap/fe/core/helpers/KeepAliveHelper.js +211 -0
  118. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
  119. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +32 -0
  120. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
  121. package/src/sap/fe/core/helpers/MassEditHelper.js +678 -0
  122. package/src/sap/fe/core/helpers/ModelHelper.js +64 -1
  123. package/src/sap/fe/core/helpers/PasteHelper.js +7 -1
  124. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  125. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  126. package/src/sap/fe/core/helpers/StableIdHelper.js +2 -2
  127. package/src/sap/fe/core/helpers/StableIdHelper.ts +1 -1
  128. package/src/sap/fe/core/library.js +28 -2
  129. package/src/sap/fe/core/library.support.js +10 -4
  130. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +62 -0
  131. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -0
  132. package/src/sap/fe/core/messagebundle.properties +67 -3
  133. package/src/sap/fe/core/messagebundle_ar.properties +40 -3
  134. package/src/sap/fe/core/messagebundle_bg.properties +40 -3
  135. package/src/sap/fe/core/messagebundle_ca.properties +41 -4
  136. package/src/sap/fe/core/messagebundle_cs.properties +41 -4
  137. package/src/sap/fe/core/messagebundle_cy.properties +40 -3
  138. package/src/sap/fe/core/messagebundle_da.properties +40 -3
  139. package/src/sap/fe/core/messagebundle_de.properties +40 -3
  140. package/src/sap/fe/core/messagebundle_el.properties +40 -3
  141. package/src/sap/fe/core/messagebundle_en.properties +37 -0
  142. package/src/sap/fe/core/messagebundle_en_GB.properties +37 -0
  143. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +37 -0
  144. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +46 -2
  145. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -0
  146. package/src/sap/fe/core/messagebundle_es.properties +40 -3
  147. package/src/sap/fe/core/messagebundle_es_MX.properties +41 -4
  148. package/src/sap/fe/core/messagebundle_et.properties +40 -3
  149. package/src/sap/fe/core/messagebundle_fi.properties +40 -3
  150. package/src/sap/fe/core/messagebundle_fr.properties +41 -4
  151. package/src/sap/fe/core/messagebundle_fr_CA.properties +40 -3
  152. package/src/sap/fe/core/messagebundle_hi.properties +40 -3
  153. package/src/sap/fe/core/messagebundle_hr.properties +40 -3
  154. package/src/sap/fe/core/messagebundle_hu.properties +41 -4
  155. package/src/sap/fe/core/messagebundle_id.properties +42 -5
  156. package/src/sap/fe/core/messagebundle_it.properties +40 -3
  157. package/src/sap/fe/core/messagebundle_iw.properties +40 -3
  158. package/src/sap/fe/core/messagebundle_ja.properties +49 -12
  159. package/src/sap/fe/core/messagebundle_kk.properties +40 -3
  160. package/src/sap/fe/core/messagebundle_ko.properties +40 -3
  161. package/src/sap/fe/core/messagebundle_lt.properties +40 -3
  162. package/src/sap/fe/core/messagebundle_lv.properties +40 -3
  163. package/src/sap/fe/core/messagebundle_ms.properties +40 -3
  164. package/src/sap/fe/core/messagebundle_nl.properties +40 -3
  165. package/src/sap/fe/core/messagebundle_no.properties +40 -3
  166. package/src/sap/fe/core/messagebundle_pl.properties +40 -3
  167. package/src/sap/fe/core/messagebundle_pt.properties +42 -5
  168. package/src/sap/fe/core/messagebundle_pt_PT.properties +40 -3
  169. package/src/sap/fe/core/messagebundle_ro.properties +40 -3
  170. package/src/sap/fe/core/messagebundle_ru.properties +40 -3
  171. package/src/sap/fe/core/messagebundle_sh.properties +40 -3
  172. package/src/sap/fe/core/messagebundle_sk.properties +40 -3
  173. package/src/sap/fe/core/messagebundle_sl.properties +40 -3
  174. package/src/sap/fe/core/messagebundle_sv.properties +41 -4
  175. package/src/sap/fe/core/messagebundle_th.properties +40 -3
  176. package/src/sap/fe/core/messagebundle_tr.properties +40 -3
  177. package/src/sap/fe/core/messagebundle_uk.properties +40 -3
  178. package/src/sap/fe/core/messagebundle_vi.properties +40 -3
  179. package/src/sap/fe/core/messagebundle_zh_CN.properties +40 -3
  180. package/src/sap/fe/core/messagebundle_zh_TW.properties +40 -3
  181. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  182. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
  183. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +4 -3
  184. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -0
  185. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  186. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  187. package/src/sap/fe/core/services/RoutingServiceFactory.js +98 -328
  188. package/src/sap/fe/core/services/ShellServicesFactory.js +31 -2
  189. package/src/sap/fe/core/services/ShellServicesFactory.ts +30 -1
  190. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +8 -5
  191. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +11 -6
  192. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +14 -5
  193. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
  194. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
  195. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
  196. package/src/sap/fe/core/templating/DataModelPathHelper.js +8 -37
  197. package/src/sap/fe/core/templating/DataModelPathHelper.ts +13 -33
  198. package/src/sap/fe/core/templating/DisplayModeFormatter.js +114 -0
  199. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
  200. package/src/sap/fe/core/templating/EntitySetHelper.js +86 -3
  201. package/src/sap/fe/core/templating/EntitySetHelper.ts +44 -0
  202. package/src/sap/fe/core/templating/FilterHelper.js +10 -7
  203. package/src/sap/fe/core/templating/FilterHelper.ts +8 -6
  204. package/src/sap/fe/core/templating/PropertyHelper.js +2 -2
  205. package/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
  206. package/src/sap/fe/core/templating/UIFormatters.js +47 -107
  207. package/src/sap/fe/core/templating/UIFormatters.ts +76 -72
@@ -26,7 +26,8 @@ import {
26
26
  isComputed,
27
27
  isImmutable,
28
28
  isKey,
29
- isPathExpression
29
+ isPathExpression,
30
+ isProperty
30
31
  } from "sap/fe/core/templating/PropertyHelper";
31
32
  import { NavigationProperty, Property } from "@sap-ux/annotation-converter";
32
33
  import { PathAnnotationExpression } from "@sap-ux/vocabularies-types/types/Edm";
@@ -38,6 +39,13 @@ import {
38
39
  } from "sap/fe/core/templating/DataModelPathHelper";
39
40
  import { isReadOnlyExpression, isNonEditableExpression, isDisabledExpression } from "sap/fe/core/templating/FieldControlHelper";
40
41
  import valueFormatters from "sap/fe/core/formatters/ValueFormatter";
42
+ import { DataFieldAbstractTypes } from "@sap-ux/vocabularies-types";
43
+ import * as DisplayModeFormatter from "sap/fe/core/templating/DisplayModeFormatter";
44
+
45
+ // Import-export method used by the converter to use them in the templating through the UIFormatters.
46
+ export type DisplayMode = DisplayModeFormatter.DisplayMode;
47
+ export const getDisplayMode = DisplayModeFormatter.getDisplayMode;
48
+ export const EDM_TYPE_MAPPING = DisplayModeFormatter.EDM_TYPE_MAPPING;
41
49
 
42
50
  export type PropertyOrPath<P> = string | P | PathAnnotationExpression<P>;
43
51
  export type MetaModelContext = {
@@ -49,49 +57,26 @@ export type ComputedAnnotationInterface = {
49
57
  $$valueAsPromise: boolean;
50
58
  };
51
59
 
52
- export const EDM_TYPE_MAPPING: Record<string, any> = {
53
- "Edm.Boolean": { type: "sap.ui.model.odata.type.Boolean" },
54
- "Edm.Byte": { type: "sap.ui.model.odata.type.Byte" },
55
- "Edm.Date": { type: "sap.ui.model.odata.type.Date" },
56
- "Edm.DateTimeOffset": {
57
- constraints: {
58
- "$Precision": "precision"
59
- },
60
- type: "sap.ui.model.odata.type.DateTimeOffset"
61
- },
62
- "Edm.Decimal": {
63
- constraints: {
64
- "@Org.OData.Validation.V1.Minimum/$Decimal": "minimum",
65
- "@Org.OData.Validation.V1.Minimum@Org.OData.Validation.V1.Exclusive": "minimumExclusive",
66
- "@Org.OData.Validation.V1.Maximum/$Decimal": "maximum",
67
- "@Org.OData.Validation.V1.Maximum@Org.OData.Validation.V1.Exclusive": "maximumExclusive",
68
- "$Precision": "precision",
69
- "$Scale": "scale"
70
- },
71
- type: "sap.ui.model.odata.type.Decimal"
72
- },
73
- "Edm.Double": { type: "sap.ui.model.odata.type.Double" },
74
- "Edm.Guid": { type: "sap.ui.model.odata.type.Guid" },
75
- "Edm.Int16": { type: "sap.ui.model.odata.type.Int16" },
76
- "Edm.Int32": { type: "sap.ui.model.odata.type.Int32" },
77
- "Edm.Int64": { type: "sap.ui.model.odata.type.Int64" },
78
- "Edm.SByte": { type: "sap.ui.model.odata.type.SByte" },
79
- "Edm.Single": { type: "sap.ui.model.odata.type.Single" },
80
- "Edm.Stream": { type: "sap.ui.model.odata.type.Stream" },
81
- "Edm.String": {
82
- constraints: {
83
- "@com.sap.vocabularies.Common.v1.IsDigitSequence": "isDigitSequence",
84
- "$MaxLength": "maxLength",
85
- "$Nullable": "nullable"
86
- },
87
- type: "sap.ui.model.odata.type.String"
88
- },
89
- "Edm.TimeOfDay": {
90
- constraints: {
91
- "$Precision": "precision"
92
- },
93
- type: "sap.ui.model.odata.type.TimeOfDay"
94
- }
60
+ export type configTypeConstraints = {
61
+ scale?: number;
62
+ precision?: number;
63
+ maxLength?: number;
64
+ nullable?: boolean;
65
+ minimum?: string;
66
+ maximum?: string;
67
+ isDigitSequence?: boolean;
68
+ };
69
+
70
+ export type configTypeformatOptions = {
71
+ parseAsString?: boolean;
72
+ emptyString?: string;
73
+ parseKeepsEmptyString?: boolean;
74
+ };
75
+
76
+ export type configType = {
77
+ type: string;
78
+ constraints: configTypeConstraints;
79
+ formatOptions: configTypeformatOptions;
95
80
  };
96
81
 
97
82
  /**
@@ -265,34 +250,6 @@ export const ifUnitEditable = function(
265
250
  return compileBinding(ifElse(editableExpression, sEditableValue, sNonEditableValue));
266
251
  };
267
252
 
268
- export type DisplayMode = "Value" | "Description" | "DescriptionValue" | "ValueDescription";
269
- export const getDisplayMode = function(oPropertyPath: PropertyOrPath<Property>, oDataModelObjectPath?: DataModelObjectPath): DisplayMode {
270
- if (!oPropertyPath || typeof oPropertyPath === "string") {
271
- return "Value";
272
- }
273
- const oProperty = (isPathExpression(oPropertyPath) && oPropertyPath.$target) || (oPropertyPath as Property);
274
- const oEntityType = oDataModelObjectPath && oDataModelObjectPath.targetEntityType;
275
- const oTextAnnotation = oProperty.annotations?.Common?.Text;
276
- const oTextArrangementAnnotation =
277
- (typeof oTextAnnotation !== "string" && oTextAnnotation?.annotations?.UI?.TextArrangement?.toString()) ||
278
- oEntityType?.annotations?.UI?.TextArrangement?.toString();
279
-
280
- let sDisplayValue = oTextAnnotation ? "DescriptionValue" : "Value";
281
- if ((oTextAnnotation && oTextArrangementAnnotation) || oEntityType?.annotations?.UI?.TextArrangement?.toString()) {
282
- if (oTextArrangementAnnotation === "UI.TextArrangementType/TextOnly") {
283
- sDisplayValue = "Description";
284
- } else if (oTextArrangementAnnotation === "UI.TextArrangementType/TextLast") {
285
- sDisplayValue = "ValueDescription";
286
- } else if (oTextArrangementAnnotation === "UI.TextArrangementType/TextSeparate") {
287
- sDisplayValue = "Value";
288
- } else {
289
- //Default should be TextFirst if there is a Text annotation and neither TextOnly nor TextLast are set
290
- sDisplayValue = "DescriptionValue";
291
- }
292
- }
293
- return sDisplayValue as DisplayMode;
294
- };
295
-
296
253
  export const getFieldDisplay = function(
297
254
  oPropertyPath: PropertyOrPath<Property>,
298
255
  sTargetDisplayMode: string,
@@ -376,6 +333,53 @@ export const formatWithTypeInformation = function(oProperty: Property, propertyB
376
333
  return outExpression;
377
334
  };
378
335
 
336
+ export const getTypeConfig = function(oProperty: Property | DataFieldAbstractTypes, dataType: string | undefined): any {
337
+ const oTargetMapping = EDM_TYPE_MAPPING[(oProperty as Property)?.type] || (dataType ? EDM_TYPE_MAPPING[dataType] : undefined);
338
+ const propertyTypeConfig: configType = {
339
+ type: oTargetMapping.type,
340
+ constraints: {},
341
+ formatOptions: {}
342
+ };
343
+ if (isProperty(oProperty)) {
344
+ propertyTypeConfig.constraints = {
345
+ scale: oTargetMapping.constraints?.$Scale ? oProperty.scale : undefined,
346
+ precision: oTargetMapping.constraints?.$Precision ? oProperty.precision : undefined,
347
+ maxLength: oTargetMapping.constraints?.$MaxLength ? oProperty.maxLength : undefined,
348
+ nullable: oTargetMapping.constraints?.$Nullable ? oProperty.nullable : undefined,
349
+ minimum:
350
+ oTargetMapping.constraints?.["@Org.OData.Validation.V1.Minimum/$Decimal"] &&
351
+ !isNaN(oProperty.annotations?.Validation?.Minimum)
352
+ ? `${oProperty.annotations?.Validation?.Minimum}`
353
+ : undefined,
354
+ maximum:
355
+ oTargetMapping.constraints?.["@Org.OData.Validation.V1.Maximum/$Decimal"] &&
356
+ !isNaN(oProperty.annotations?.Validation?.Maximum)
357
+ ? `${oProperty.annotations?.Validation?.Maximum}`
358
+ : undefined,
359
+ isDigitSequence:
360
+ propertyTypeConfig.type === "sap.ui.model.odata.type.String" &&
361
+ oTargetMapping.constraints?.["@com.sap.vocabularies.Common.v1.IsDigitSequence"] &&
362
+ (oProperty as Property).annotations?.Common?.IsDigitSequence
363
+ ? true
364
+ : undefined
365
+ };
366
+ }
367
+ propertyTypeConfig.formatOptions = {
368
+ parseAsString:
369
+ propertyTypeConfig?.type?.indexOf("sap.ui.model.odata.type.Int") === 0 ||
370
+ propertyTypeConfig?.type?.indexOf("sap.ui.model.odata.type.Double") === 0
371
+ ? false
372
+ : undefined,
373
+ emptyString:
374
+ propertyTypeConfig?.type?.indexOf("sap.ui.model.odata.type.Int") === 0 ||
375
+ propertyTypeConfig?.type?.indexOf("sap.ui.model.odata.type.Double") === 0
376
+ ? ""
377
+ : undefined,
378
+ parseKeepsEmptyString: propertyTypeConfig.type === "sap.ui.model.odata.type.String" ? true : undefined
379
+ };
380
+ return propertyTypeConfig;
381
+ };
382
+
379
383
  export const getBindingWithUnitOrCurrency = function(
380
384
  oPropertyDataModelPath: DataModelObjectPath,
381
385
  propertyBindingExpression: Expression<string>