@sapui5/sap.fe.core 1.121.2 → 1.123.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 (241) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +2 -2
  4. package/src/sap/fe/core/ActionRuntime.ts +1 -2
  5. package/src/sap/fe/core/CommonUtils.js +14 -171
  6. package/src/sap/fe/core/CommonUtils.ts +15 -221
  7. package/src/sap/fe/core/PageController.js +13 -1
  8. package/src/sap/fe/core/PageController.ts +16 -0
  9. package/src/sap/fe/core/TemplateComponent.js +6 -1
  10. package/src/sap/fe/core/TemplateComponent.ts +8 -0
  11. package/src/sap/fe/core/UIProvider.js +23 -0
  12. package/src/sap/fe/core/UIProvider.ts +38 -0
  13. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +97 -43
  14. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +120 -50
  15. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +6 -3
  16. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +12 -18
  17. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +2 -2
  18. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +1 -1
  19. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +1 -1
  20. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +4 -3
  21. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +1 -1
  22. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +1 -0
  23. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +42 -1
  24. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +40 -0
  25. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +5 -2
  26. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +5 -3
  27. package/src/sap/fe/core/controllerextensions/EditFlow.js +151 -60
  28. package/src/sap/fe/core/controllerextensions/EditFlow.ts +165 -68
  29. package/src/sap/fe/core/controllerextensions/HookSupport.js +32 -14
  30. package/src/sap/fe/core/controllerextensions/HookSupport.ts +35 -14
  31. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +5 -17
  32. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -12
  33. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +6 -6
  34. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +15 -10
  35. package/src/sap/fe/core/controllerextensions/InternalRouting.js +108 -287
  36. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +117 -309
  37. package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -2
  38. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +6 -2
  39. package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
  40. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +1 -1
  41. package/src/sap/fe/core/controllerextensions/PageReady.js +6 -6
  42. package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -4
  43. package/src/sap/fe/core/controllerextensions/Paginator.js +17 -110
  44. package/src/sap/fe/core/controllerextensions/Paginator.ts +13 -130
  45. package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -3
  46. package/src/sap/fe/core/controllerextensions/Placeholder.ts +1 -2
  47. package/src/sap/fe/core/controllerextensions/Recommendations.js +36 -31
  48. package/src/sap/fe/core/controllerextensions/Recommendations.ts +32 -37
  49. package/src/sap/fe/core/controllerextensions/Share.js +7 -7
  50. package/src/sap/fe/core/controllerextensions/Share.ts +6 -6
  51. package/src/sap/fe/core/controllerextensions/SideEffects.js +52 -6
  52. package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -4
  53. package/src/sap/fe/core/controllerextensions/ViewState.js +32 -46
  54. package/src/sap/fe/core/controllerextensions/ViewState.ts +24 -31
  55. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +42 -31
  56. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +6 -0
  57. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +168 -276
  58. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +182 -310
  59. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -3
  60. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +2 -2
  61. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +4 -3
  62. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +3 -2
  63. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +74 -52
  64. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +95 -55
  65. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -17
  66. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +10 -23
  67. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +3 -3
  68. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +2 -2
  69. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +225 -0
  70. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +241 -0
  71. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +69 -48
  72. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +56 -33
  73. package/src/sap/fe/core/controls/FormElementWrapper.js +8 -11
  74. package/src/sap/fe/core/controls/FormElementWrapper.ts +9 -0
  75. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +6 -14
  76. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +12 -23
  77. package/src/sap/fe/core/converters/ConverterContext.js +17 -9
  78. package/src/sap/fe/core/converters/ConverterContext.ts +55 -41
  79. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  80. package/src/sap/fe/core/converters/ManifestSettings.ts +19 -5
  81. package/src/sap/fe/core/converters/ManifestWrapper.js +14 -4
  82. package/src/sap/fe/core/converters/ManifestWrapper.ts +21 -10
  83. package/src/sap/fe/core/converters/MetaModelConverter.js +402 -383
  84. package/src/sap/fe/core/converters/MetaModelConverter.ts +538 -338
  85. package/src/sap/fe/core/converters/TemplateConverter.js +4 -2
  86. package/src/sap/fe/core/converters/TemplateConverter.ts +18 -13
  87. package/src/sap/fe/core/converters/annotations/DataField.js +30 -28
  88. package/src/sap/fe/core/converters/annotations/DataField.ts +58 -35
  89. package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -23
  90. package/src/sap/fe/core/converters/controls/Common/Action.js +5 -4
  91. package/src/sap/fe/core/converters/controls/Common/Action.ts +34 -28
  92. package/src/sap/fe/core/converters/controls/Common/Chart.js +37 -33
  93. package/src/sap/fe/core/converters/controls/Common/Chart.ts +64 -46
  94. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -4
  95. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +31 -15
  96. package/src/sap/fe/core/converters/controls/Common/Form.js +6 -4
  97. package/src/sap/fe/core/converters/controls/Common/Form.ts +23 -11
  98. package/src/sap/fe/core/converters/controls/Common/KPI.js +5 -3
  99. package/src/sap/fe/core/converters/controls/Common/KPI.ts +17 -11
  100. package/src/sap/fe/core/converters/controls/Common/Table.js +197 -101
  101. package/src/sap/fe/core/converters/controls/Common/Table.ts +393 -182
  102. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +4 -5
  103. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +38 -27
  104. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +41 -11
  105. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +112 -45
  106. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +7 -7
  107. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +18 -12
  108. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
  109. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +5 -4
  110. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  111. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +19 -9
  112. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +64 -63
  113. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +109 -100
  114. package/src/sap/fe/core/converters/helpers/Aggregation.js +12 -11
  115. package/src/sap/fe/core/converters/helpers/Aggregation.ts +35 -30
  116. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -1
  117. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +12 -9
  118. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -1
  119. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +1 -1
  120. package/src/sap/fe/core/converters/helpers/ID.js +1 -1
  121. package/src/sap/fe/core/converters/helpers/ID.ts +6 -6
  122. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +3 -3
  123. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +11 -6
  124. package/src/sap/fe/core/converters/helpers/Key.js +2 -2
  125. package/src/sap/fe/core/converters/helpers/Key.ts +4 -4
  126. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  127. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -2
  128. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +21 -19
  129. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +43 -31
  130. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  131. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +16 -12
  132. package/src/sap/fe/core/converters/templates/ListReportConverter.js +8 -3
  133. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +41 -21
  134. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -3
  135. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +24 -19
  136. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
  137. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +2 -1
  138. package/src/sap/fe/core/filter/DraftEditState.fragment.xml +1 -1
  139. package/src/sap/fe/core/formatters/CollaborationFormatter.js +4 -6
  140. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +5 -4
  141. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -13
  142. package/src/sap/fe/core/formatters/FPMFormatter.ts +11 -10
  143. package/src/sap/fe/core/formatters/FiscalFormat.js +1 -1
  144. package/src/sap/fe/core/formatters/FiscalFormat.ts +1 -1
  145. package/src/sap/fe/core/formatters/KPIFormatter.js +4 -7
  146. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -3
  147. package/src/sap/fe/core/formatters/StandardFormatter.js +4 -7
  148. package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
  149. package/src/sap/fe/core/formatters/ValueFormatter.js +35 -6
  150. package/src/sap/fe/core/formatters/ValueFormatter.ts +31 -3
  151. package/src/sap/fe/core/fpm/manifest.json +1 -1
  152. package/src/sap/fe/core/helpers/AppStartupHelper.js +54 -33
  153. package/src/sap/fe/core/helpers/AppStartupHelper.ts +62 -41
  154. package/src/sap/fe/core/helpers/BindingToolkit.js +17 -3
  155. package/src/sap/fe/core/helpers/BindingToolkit.ts +28 -6
  156. package/src/sap/fe/core/helpers/ClassSupport.js +32 -13
  157. package/src/sap/fe/core/helpers/ClassSupport.ts +35 -15
  158. package/src/sap/fe/core/helpers/DeleteHelper.js +71 -61
  159. package/src/sap/fe/core/helpers/DeleteHelper.ts +125 -103
  160. package/src/sap/fe/core/helpers/DraftEditState.js +5 -3
  161. package/src/sap/fe/core/helpers/DraftEditState.ts +3 -1
  162. package/src/sap/fe/core/helpers/FPMHelper.js +43 -46
  163. package/src/sap/fe/core/helpers/FPMHelper.ts +50 -56
  164. package/src/sap/fe/core/helpers/MetaModelFunction.js +77 -53
  165. package/src/sap/fe/core/helpers/MetaModelFunction.ts +78 -57
  166. package/src/sap/fe/core/helpers/ModelHelper.js +10 -4
  167. package/src/sap/fe/core/helpers/ModelHelper.ts +12 -6
  168. package/src/sap/fe/core/helpers/PasteHelper.js +194 -7
  169. package/src/sap/fe/core/helpers/PasteHelper.ts +265 -13
  170. package/src/sap/fe/core/helpers/PromiseKeeper.js +66 -0
  171. package/src/sap/fe/core/helpers/PromiseKeeper.ts +56 -0
  172. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +30 -19
  173. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +34 -22
  174. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  175. package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -2
  176. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +26 -52
  177. package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +37 -63
  178. package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
  179. package/src/sap/fe/core/helpers/TitleHelper.ts +17 -14
  180. package/src/sap/fe/core/helpers/TypeGuards.js +27 -3
  181. package/src/sap/fe/core/helpers/TypeGuards.ts +37 -7
  182. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +48 -8
  183. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +40 -9
  184. package/src/sap/fe/core/library.js +1 -1
  185. package/src/sap/fe/core/messagebundle.properties +5 -2
  186. package/src/sap/fe/core/messagebundle_da.properties +1 -1
  187. package/src/sap/fe/core/messagebundle_en.properties +267 -2
  188. package/src/sap/fe/core/messagebundle_sl.properties +1 -1
  189. package/src/sap/fe/core/operationsHelper.js +2 -1
  190. package/src/sap/fe/core/operationsHelper.ts +1 -0
  191. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -3
  192. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +2 -2
  193. package/src/sap/fe/core/services/NavigationServiceFactory.js +2 -2
  194. package/src/sap/fe/core/services/NavigationServiceFactory.ts +3 -2
  195. package/src/sap/fe/core/services/RoutingServiceFactory.js +27 -14
  196. package/src/sap/fe/core/services/RoutingServiceFactory.ts +27 -14
  197. package/src/sap/fe/core/services/ShellServicesFactory.js +49 -12
  198. package/src/sap/fe/core/services/ShellServicesFactory.ts +62 -13
  199. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +156 -82
  200. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +218 -100
  201. package/src/sap/fe/core/services/TelemetryServiceFactory.js +3 -3
  202. package/src/sap/fe/core/services/TelemetryServiceFactory.ts +6 -6
  203. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +3 -2
  204. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
  205. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +1 -1
  206. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +2 -2
  207. package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
  208. package/src/sap/fe/core/templating/CommonFormatters.js +6 -3
  209. package/src/sap/fe/core/templating/CommonFormatters.ts +13 -12
  210. package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
  211. package/src/sap/fe/core/templating/CriticalityFormatters.ts +37 -14
  212. package/src/sap/fe/core/templating/DataFieldFormatters.js +12 -11
  213. package/src/sap/fe/core/templating/DataFieldFormatters.ts +35 -24
  214. package/src/sap/fe/core/templating/DataModelPathHelper.js +22 -18
  215. package/src/sap/fe/core/templating/DataModelPathHelper.ts +61 -51
  216. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  217. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +8 -3
  218. package/src/sap/fe/core/templating/EntityTypeHelper.js +1 -1
  219. package/src/sap/fe/core/templating/EntityTypeHelper.ts +1 -1
  220. package/src/sap/fe/core/templating/FieldControlHelper.js +3 -3
  221. package/src/sap/fe/core/templating/FieldControlHelper.ts +27 -8
  222. package/src/sap/fe/core/templating/FilterHelper.js +13 -10
  223. package/src/sap/fe/core/templating/FilterHelper.ts +80 -46
  224. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  225. package/src/sap/fe/core/templating/FilterTemplating.ts +2 -2
  226. package/src/sap/fe/core/templating/PropertyFormatters.js +6 -8
  227. package/src/sap/fe/core/templating/PropertyFormatters.ts +11 -11
  228. package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
  229. package/src/sap/fe/core/templating/PropertyHelper.ts +4 -4
  230. package/src/sap/fe/core/templating/SemanticObjectHelper.js +157 -13
  231. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +182 -16
  232. package/src/sap/fe/core/templating/UIFormatters.js +23 -22
  233. package/src/sap/fe/core/templating/UIFormatters.ts +94 -66
  234. package/src/sap/fe/core/type/DateTimeWithTimezone.js +1 -1
  235. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -2
  236. package/src/sap/fe/core/type/EDM.js +1 -1
  237. package/src/sap/fe/core/type/EDM.ts +2 -2
  238. package/src/sap/fe/core/type/Email.js +1 -1
  239. package/src/sap/fe/core/type/Email.ts +1 -1
  240. package/src/sap/fe/core/type/FiscalDate.js +2 -2
  241. package/src/sap/fe/core/type/FiscalDate.ts +2 -2
@@ -6,6 +6,7 @@ import type {
6
6
  NavigationProperty,
7
7
  Property,
8
8
  PropertyPath,
9
+ ServiceObject,
9
10
  Singleton
10
11
  } from "@sap-ux/vocabularies-types";
11
12
  import type { NavigationPropertyPath } from "@sap-ux/vocabularies-types/Edm";
@@ -18,29 +19,36 @@ import type {
18
19
  EntityTypeAnnotations_Capabilities,
19
20
  SingletonAnnotations_Capabilities
20
21
  } from "@sap-ux/vocabularies-types/vocabularies/Capabilities_Edm";
22
+ import type { PageContextPathTarget } from "sap/fe/core/converters/TemplateConverter";
21
23
  import type { BindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
22
24
  import { constant, equal, getExpressionFromAnnotation, isConstant, unresolvableExpression } from "sap/fe/core/helpers/BindingToolkit";
23
25
  import {
26
+ isAnnotationTerm,
24
27
  isComplexType,
25
28
  isEntitySet,
26
29
  isEntityType,
27
30
  isMultipleNavigationProperty,
28
31
  isNavigationProperty,
29
32
  isPathAnnotationExpression,
30
- isProperty
33
+ isProperty,
34
+ isPropertyPathExpression,
35
+ isServiceObject
31
36
  } from "sap/fe/core/helpers/TypeGuards";
32
37
  import type { PropertyOrPath } from "sap/fe/core/templating/DisplayModeFormatter";
33
38
 
34
- export type DataModelObjectPath = {
39
+ export type DataModelObjectContext = {
35
40
  startingEntitySet: Singleton | EntitySet;
36
- contextLocation?: DataModelObjectPath;
37
41
  navigationProperties: (NavigationProperty | Property)[];
38
42
  targetEntitySet?: Singleton | EntitySet;
39
43
  targetEntityType: EntityType;
40
- targetObject: any;
41
44
  convertedTypes: ConvertedMetadata;
42
45
  };
43
46
 
47
+ export type DataModelObjectPath<T> = DataModelObjectContext & {
48
+ contextLocation?: DataModelObjectContext;
49
+ targetObject?: T;
50
+ };
51
+
44
52
  type ExtractionParametersOnPath = {
45
53
  propertyPath?: PropertyOrPath<Property>;
46
54
  pathVisitor?: Function;
@@ -55,7 +63,7 @@ type ExtractionParametersOnPath = {
55
63
  * @param skipCleanup Don't clean up circular navigation properties
56
64
  * @returns The path from the root entity set
57
65
  */
58
- export const getRelativePaths = function (contextPath: DataModelObjectPath, skipCleanup?: boolean): string[] {
66
+ export const getRelativePaths = function (contextPath: DataModelObjectPath<unknown> | undefined, skipCleanup?: boolean): string[] {
59
67
  return getPathRelativeLocation(contextPath?.contextLocation, contextPath?.navigationProperties, skipCleanup).map((np) => np.name);
60
68
  };
61
69
 
@@ -68,11 +76,11 @@ export const getRelativePaths = function (contextPath: DataModelObjectPath, skip
68
76
  * @returns An array of navigation properties to reach the targeted navigation properties
69
77
  */
70
78
  export const getPathRelativeLocation = function (
71
- contextPath?: DataModelObjectPath,
79
+ contextPath?: DataModelObjectContext,
72
80
  visitedNavProps: (NavigationProperty | Property)[] = [],
73
81
  skipCleanup = false
74
82
  ): (NavigationProperty | Property)[] {
75
- const cleanUpNavProp = (navProps: (NavigationProperty | Property)[]) => {
83
+ const cleanUpNavProp = (navProps: (NavigationProperty | Property)[]): (NavigationProperty | Property)[] => {
76
84
  let currentIdx = 0;
77
85
  while (navProps.length > 1 && currentIdx != navProps.length - 1) {
78
86
  const currentNav = navProps[currentIdx];
@@ -90,7 +98,7 @@ export const getPathRelativeLocation = function (
90
98
  referenceProps: (NavigationProperty | Property)[],
91
99
  otherProps: (NavigationProperty | Property)[],
92
100
  keepReference: boolean
93
- ) => {
101
+ ): (NavigationProperty | Property)[] => {
94
102
  const additionalNavProps: (NavigationProperty | Property)[] = [];
95
103
  referenceProps.forEach((navProp, navIndex) => {
96
104
  if (otherProps[navIndex] !== navProp) {
@@ -128,10 +136,10 @@ export const getPathRelativeLocation = function (
128
136
  * @param propertyPath The property path or property to reach
129
137
  * @returns A new dataModelObjectPath
130
138
  */
131
- export const enhanceDataModelPath = function (
132
- dataModelObjectPath: DataModelObjectPath,
139
+ export const enhanceDataModelPath = function <T>(
140
+ dataModelObjectPath: DataModelObjectPath<unknown> | DataModelObjectContext,
133
141
  propertyPath?: PropertyOrPath<Property>
134
- ): DataModelObjectPath {
142
+ ): DataModelObjectPath<T> {
135
143
  let sPropertyPath = "";
136
144
  if (isPathAnnotationExpression(propertyPath)) {
137
145
  sPropertyPath = propertyPath.path;
@@ -153,7 +161,7 @@ export const enhanceDataModelPath = function (
153
161
 
154
162
  const pathSplits = sPropertyPath.split("/");
155
163
 
156
- let newDataModelObjectPath = dataModelObjectPath;
164
+ let newDataModelObjectPath: DataModelObjectPath<T> = dataModelObjectPath as DataModelObjectPath<T>;
157
165
  for (const pathPart of pathSplits) {
158
166
  newDataModelObjectPath = enhanceFromPath(newDataModelObjectPath, pathPart);
159
167
  }
@@ -170,7 +178,7 @@ export const enhanceDataModelPath = function (
170
178
  * @returns A new dataModelObjectPath
171
179
  */
172
180
 
173
- const enhanceFromPath = function (dataModelObjectPath: DataModelObjectPath, path: string): DataModelObjectPath {
181
+ const enhanceFromPath = function <T>(dataModelObjectPath: DataModelObjectPath<unknown>, path: string): DataModelObjectPath<T> {
174
182
  let targetEntitySet: EntitySet | undefined;
175
183
  let targetEntityType: EntityType | undefined;
176
184
  const navigationProperties = dataModelObjectPath.navigationProperties.concat();
@@ -179,7 +187,7 @@ const enhanceFromPath = function (dataModelObjectPath: DataModelObjectPath, path
179
187
  ? navigationProperties[navigationIndex - 1].targetType
180
188
  : dataModelObjectPath.targetEntityType;
181
189
  if (!referenceEntityType) {
182
- return dataModelObjectPath;
190
+ return dataModelObjectPath as DataModelObjectPath<T>;
183
191
  } else if (isEntityType(referenceEntityType) || isComplexType(referenceEntityType)) {
184
192
  const currentEntitySet = dataModelObjectPath.targetEntitySet;
185
193
  const potentialNavProp = referenceEntityType.navigationProperties.find((navProp) => navProp.name === path);
@@ -209,7 +217,7 @@ const enhanceFromPath = function (dataModelObjectPath: DataModelObjectPath, path
209
217
  contextLocation: dataModelObjectPath.contextLocation,
210
218
  targetEntitySet: targetEntitySet ?? dataModelObjectPath.targetEntitySet,
211
219
  targetEntityType: targetEntityType ?? dataModelObjectPath.targetEntityType,
212
- targetObject: dataModelObjectPath.targetObject,
220
+ targetObject: dataModelObjectPath.targetObject as T,
213
221
  convertedTypes: dataModelObjectPath.convertedTypes
214
222
  };
215
223
  };
@@ -220,7 +228,7 @@ const enhanceFromPath = function (dataModelObjectPath: DataModelObjectPath, path
220
228
  * @param dataModelObjectPath The dataModelObjectPath
221
229
  * @returns Is there a complexType into the DataModelObjectPath.
222
230
  */
223
- const containsAComplexType = function (dataModelObjectPath: DataModelObjectPath): boolean {
231
+ const containsAComplexType = function (dataModelObjectPath: DataModelObjectContext): boolean {
224
232
  return dataModelObjectPath.navigationProperties.find((navigation) => isComplexType(navigation?.targetType)) !== undefined;
225
233
  };
226
234
 
@@ -257,7 +265,7 @@ const getNavigationBindingFromPreviousEntitySet = function (navigationProperties
257
265
  * @param dataModelObjectPath The dataModelObjectPath
258
266
  * @returns The path.
259
267
  */
260
- export const getTargetEntitySetPath = function (dataModelObjectPath: DataModelObjectPath): string {
268
+ export const getTargetEntitySetPath = function (dataModelObjectPath: DataModelObjectPath<unknown>): string {
261
269
  const initialPath = `/${dataModelObjectPath.startingEntitySet.name}`;
262
270
  let targetEntitySetPath = initialPath;
263
271
  let currentEntitySet = dataModelObjectPath.startingEntitySet;
@@ -283,7 +291,7 @@ export const getTargetEntitySetPath = function (dataModelObjectPath: DataModelOb
283
291
  * @returns The path.
284
292
  */
285
293
 
286
- export const getTargetNavigationPath = function (dataModelObjectPath: DataModelObjectPath, bRelative = false): string {
294
+ export const getTargetNavigationPath = function (dataModelObjectPath: DataModelObjectPath<unknown>, bRelative = false): string {
287
295
  let path = "";
288
296
  if (!dataModelObjectPath.startingEntitySet) {
289
297
  return "/";
@@ -305,19 +313,19 @@ export const getTargetNavigationPath = function (dataModelObjectPath: DataModelO
305
313
  * @param bRelative
306
314
  * @returns The path.
307
315
  */
308
- export const getTargetObjectPath = function (dataModelObjectPath: DataModelObjectPath, bRelative = false): string {
316
+ export const getTargetObjectPath = function (dataModelObjectPath: DataModelObjectPath<unknown>, bRelative = false): string {
309
317
  let path = getTargetNavigationPath(dataModelObjectPath, bRelative);
310
318
  if (
311
- dataModelObjectPath.targetObject?.name &&
319
+ isServiceObject(dataModelObjectPath.targetObject) &&
312
320
  !isNavigationProperty(dataModelObjectPath.targetObject) &&
313
321
  !isEntityType(dataModelObjectPath.targetObject) &&
314
322
  !isEntitySet(dataModelObjectPath.targetObject) &&
315
- !isComplexType(dataModelObjectPath.targetObject?.targetType) &&
323
+ (!isProperty(dataModelObjectPath.targetObject) || !isComplexType(dataModelObjectPath.targetObject?.targetType)) &&
316
324
  dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet
317
325
  ) {
318
326
  path = setTrailingSlash(path);
319
327
  path += `${dataModelObjectPath.targetObject.name}`;
320
- } else if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.hasOwnProperty("term")) {
328
+ } else if (dataModelObjectPath.targetObject && isAnnotationTerm(dataModelObjectPath.targetObject)) {
321
329
  path = setTrailingSlash(path);
322
330
  path += `@${dataModelObjectPath.targetObject.term}`;
323
331
  if (dataModelObjectPath.targetObject.hasOwnProperty("qualifier") && !!dataModelObjectPath.targetObject.qualifier) {
@@ -328,7 +336,7 @@ export const getTargetObjectPath = function (dataModelObjectPath: DataModelObjec
328
336
  };
329
337
 
330
338
  export const getContextRelativeTargetObjectPath = function (
331
- dataModelObjectPath: DataModelObjectPath,
339
+ dataModelObjectPath: DataModelObjectPath<unknown>,
332
340
  forBindingExpression = false,
333
341
  forFilterConditionPath = false
334
342
  ): string | undefined {
@@ -339,7 +347,7 @@ export const getContextRelativeTargetObjectPath = function (
339
347
  };
340
348
 
341
349
  const _getContextRelativeTargetObjectPath = function (
342
- dataModelObjectPath: DataModelObjectPath,
350
+ dataModelObjectPath: DataModelObjectPath<unknown>,
343
351
  forBindingExpression = false,
344
352
  forFilterConditionPath = false
345
353
  ): string | undefined {
@@ -362,20 +370,19 @@ const _getContextRelativeTargetObjectPath = function (
362
370
  : navProperties.map((navProp) => navProp.name).join("/");
363
371
 
364
372
  if (
365
- (dataModelObjectPath.targetObject.name ||
366
- (dataModelObjectPath.targetObject.type === "PropertyPath" && dataModelObjectPath.targetObject.value)) &&
373
+ ((isServiceObject(dataModelObjectPath.targetObject) && dataModelObjectPath.targetObject.name) ||
374
+ (isPropertyPathExpression(dataModelObjectPath.targetObject) && dataModelObjectPath.targetObject.value)) &&
367
375
  !isNavigationProperty(dataModelObjectPath.targetObject) &&
368
376
  !isEntityType(dataModelObjectPath.targetObject) &&
369
377
  !isEntitySet(dataModelObjectPath.targetObject) &&
370
- !isComplexType(dataModelObjectPath.targetObject?.targetType) &&
378
+ (!isProperty(dataModelObjectPath.targetObject) || !isComplexType(dataModelObjectPath.targetObject?.targetType)) &&
371
379
  dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet
372
380
  ) {
373
381
  path = setTrailingSlash(path);
374
- path +=
375
- dataModelObjectPath.targetObject.type === "PropertyPath"
376
- ? `${dataModelObjectPath.targetObject.value}`
377
- : `${dataModelObjectPath.targetObject.name}`;
378
- } else if (dataModelObjectPath.targetObject.hasOwnProperty("term")) {
382
+ path += isPropertyPathExpression(dataModelObjectPath.targetObject)
383
+ ? `${dataModelObjectPath.targetObject.value}`
384
+ : `${dataModelObjectPath.targetObject.name}`;
385
+ } else if (isAnnotationTerm(dataModelObjectPath.targetObject)) {
379
386
  path = setTrailingSlash(path);
380
387
  path += `@${dataModelObjectPath.targetObject.term}`;
381
388
  if (dataModelObjectPath.targetObject.hasOwnProperty("qualifier") && !!dataModelObjectPath.targetObject.qualifier) {
@@ -394,7 +401,7 @@ const _getContextRelativeTargetObjectPath = function (
394
401
  * @returns The properties.
395
402
  */
396
403
  export const getContextPropertyRestriction = (
397
- dataModelObjectPath: DataModelObjectPath,
404
+ dataModelObjectPath: DataModelObjectPath<unknown>,
398
405
  checkFunction: (
399
406
  capabilities: EntitySetAnnotations_Capabilities | SingletonAnnotations_Capabilities | undefined
400
407
  ) => PropertyPath[] | undefined,
@@ -407,7 +414,7 @@ export const getContextPropertyRestriction = (
407
414
  };
408
415
 
409
416
  export const isPathUpdatable = function (
410
- dataModelObjectPath: DataModelObjectPath | undefined,
417
+ dataModelObjectPath: DataModelObjectPath<unknown> | undefined,
411
418
  extractionParametersOnPath?: ExtractionParametersOnPath
412
419
  ): BindingToolkitExpression<boolean> {
413
420
  return checkOnPath(
@@ -427,7 +434,7 @@ export const isPathUpdatable = function (
427
434
  * @returns The parent navigation property.
428
435
  */
429
436
  export const getHierarchyParentNavigationPropertyPath = function (
430
- dataModelObjectPath: DataModelObjectPath,
437
+ dataModelObjectPath: DataModelObjectPath<unknown>,
431
438
  hierarchyQualifier: string
432
439
  ): string | undefined {
433
440
  return dataModelObjectPath.targetEntityType.annotations.Aggregation?.[`RecursiveHierarchy#${hierarchyQualifier}`]
@@ -440,15 +447,18 @@ export const getHierarchyParentNavigationPropertyPath = function (
440
447
  * @param dataModelObjectPath The dataModelObjectPath
441
448
  * @returns The navigation properties with the restriction.
442
449
  */
443
- export const getNonUpdatableNavigationProperties = function (dataModelObjectPath: DataModelObjectPath): (string | undefined)[] | undefined {
450
+ export const getNonUpdatableNavigationProperties = function (
451
+ dataModelObjectPath: DataModelObjectPath<PageContextPathTarget>
452
+ ): (string | undefined)[] | undefined {
444
453
  // UpdateRestrictions.NonUpdatableNavigationProperties on the parent navigation:
445
- const nonUpdatableNavigationProperties =
446
- dataModelObjectPath.targetObject?.annotations?.Capabilities?.UpdateRestrictions?.NonUpdatableNavigationProperties;
447
- if (nonUpdatableNavigationProperties?.length > 0) {
454
+ // REVIEW: This is wrong ? the updateRestriction annotation needs to be on entityset but our test sometimes put it on the navigation property
455
+ const nonUpdatableNavigationProperties = (dataModelObjectPath.targetObject as EntitySet)?.annotations?.Capabilities?.UpdateRestrictions
456
+ ?.NonUpdatableNavigationProperties;
457
+ if (nonUpdatableNavigationProperties && nonUpdatableNavigationProperties?.length > 0) {
448
458
  return nonUpdatableNavigationProperties.map(
449
459
  (nonUpdatableNavigationProperty: NavigationPropertyPath) =>
450
460
  dataModelObjectPath.contextLocation &&
451
- enhanceDataModelPath(dataModelObjectPath.contextLocation, nonUpdatableNavigationProperty.value).targetObject
461
+ enhanceDataModelPath<ServiceObject>(dataModelObjectPath.contextLocation, nonUpdatableNavigationProperty.value).targetObject!
452
462
  .fullyQualifiedName
453
463
  );
454
464
  }
@@ -459,7 +469,7 @@ export const getNonUpdatableNavigationProperties = function (dataModelObjectPath
459
469
  };
460
470
 
461
471
  export const isPathSearchable = function (
462
- dataModelObjectPath: DataModelObjectPath | undefined,
472
+ dataModelObjectPath: DataModelObjectPath<unknown> | undefined,
463
473
  extractionParametersOnPath?: ExtractionParametersOnPath
464
474
  ): BindingToolkitExpression<boolean> {
465
475
  return checkOnPath(
@@ -472,7 +482,7 @@ export const isPathSearchable = function (
472
482
  };
473
483
 
474
484
  export const isPathDeletable = function (
475
- dataModelObjectPath: DataModelObjectPath | undefined,
485
+ dataModelObjectPath: DataModelObjectPath<unknown> | undefined,
476
486
  extractionParametersOnPath?: ExtractionParametersOnPath
477
487
  ): BindingToolkitExpression<boolean> {
478
488
  return checkOnPath(
@@ -485,7 +495,7 @@ export const isPathDeletable = function (
485
495
  };
486
496
 
487
497
  export const isPathInsertable = function (
488
- dataModelObjectPath: DataModelObjectPath | undefined,
498
+ dataModelObjectPath: DataModelObjectPath<unknown> | undefined,
489
499
  extractionParametersOnPath?: ExtractionParametersOnPath
490
500
  ): BindingToolkitExpression<boolean> {
491
501
  return checkOnPath(
@@ -498,7 +508,7 @@ export const isPathInsertable = function (
498
508
  };
499
509
 
500
510
  export const isPathFilterable = function (
501
- dataModelObjectPath: DataModelObjectPath | undefined,
511
+ dataModelObjectPath: DataModelObjectPath<unknown> | undefined,
502
512
  extractionParametersOnPath?: ExtractionParametersOnPath
503
513
  ): BindingToolkitExpression<boolean> {
504
514
  return checkOnPath(
@@ -511,7 +521,7 @@ export const isPathFilterable = function (
511
521
  };
512
522
 
513
523
  export const checkFilterExpressionRestrictions = function (
514
- dataModelObjectPath: DataModelObjectPath,
524
+ dataModelObjectPath: DataModelObjectPath<unknown>,
515
525
  allowedExpression: (string | undefined)[]
516
526
  ): BindingToolkitExpression<boolean> {
517
527
  return checkOnPath(
@@ -545,7 +555,7 @@ type EntityOrSingleton = Singleton | EntitySet | null;
545
555
  * @returns The target entityset, its parent and the navigation path
546
556
  */
547
557
  export const getTargetEntitySetInfo = (
548
- dataModelObjectPath: DataModelObjectPath
558
+ dataModelObjectPath: DataModelObjectPath<unknown>
549
559
  ): {
550
560
  parentEntitySet: EntityOrSingleton;
551
561
  targetEntitySet: EntityOrSingleton;
@@ -596,7 +606,7 @@ export const getTargetEntitySetInfo = (
596
606
  * @returns The binding expression.
597
607
  */
598
608
  const checkOnParentNavigation = (
599
- dataModelObjectPath: DataModelObjectPath,
609
+ dataModelObjectPath: DataModelObjectPath<unknown>,
600
610
  checkFunction: Function,
601
611
  extractionParametersOnPath?: ExtractionParametersOnPath
602
612
  ): BindingToolkitExpression<boolean> | undefined => {
@@ -647,7 +657,7 @@ const checkOnParentNavigation = (
647
657
  * @returns The binding expression.
648
658
  */
649
659
  const checkOnTarget = (
650
- dataModelObjectPath: DataModelObjectPath,
660
+ dataModelObjectPath: DataModelObjectPath<unknown>,
651
661
  checkFunction: Function,
652
662
  extractionParametersOnPath?: ExtractionParametersOnPath
653
663
  ): BindingToolkitExpression<boolean> | undefined => {
@@ -681,7 +691,7 @@ const checkOnTarget = (
681
691
  * @returns The binding expression.
682
692
  */
683
693
  export const checkOnPath = function (
684
- dataModelObjectPath: DataModelObjectPath | undefined,
694
+ dataModelObjectPath: DataModelObjectPath<unknown> | undefined,
685
695
  checkFunction: Function,
686
696
  extractionParametersOnPath?: ExtractionParametersOnPath
687
697
  ): BindingToolkitExpression<boolean> {
@@ -708,7 +718,7 @@ export const checkOnPath = function (
708
718
  * @param path The path
709
719
  * @returns The path with a trailing slash
710
720
  */
711
- const setTrailingSlash = function (path: string) {
721
+ const setTrailingSlash = function (path: string): string {
712
722
  if (path.length && !path.endsWith("/")) {
713
723
  return `${path}/`;
714
724
  }
@@ -718,7 +728,7 @@ const setTrailingSlash = function (path: string) {
718
728
  // This helper method is used to add relative path location argument to singletonPathVisitorFunction i.e. pathVisitor
719
729
  // pathVisitor method is used later to get the correct bindings for singleton entity
720
730
  // method is invoked later in pathInModel() method to get the correct binding.
721
- const getPathVisitorForSingleton = function (pathVisitor: Function, pathRelativeLocation: string[]) {
731
+ const getPathVisitorForSingleton = function (pathVisitor: Function, pathRelativeLocation: string[]): Function {
722
732
  return function (path: string) {
723
733
  return pathVisitor(path, pathRelativeLocation);
724
734
  };
@@ -53,4 +53,4 @@ sap.ui.define(["sap/fe/core/helpers/TypeGuards"], function (TypeGuards) {
53
53
  _exports.getDisplayMode = getDisplayMode;
54
54
  return _exports;
55
55
  }, false);
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPREFUQV9UWVBFX01BUFBJTkciLCJnZXREaXNwbGF5TW9kZSIsIm9Qcm9wZXJ0eVBhdGgiLCJvRGF0YU1vZGVsT2JqZWN0UGF0aCIsIm9Qcm9wZXJ0eSIsImlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uIiwiaXNQcm9wZXJ0eVBhdGhFeHByZXNzaW9uIiwiJHRhcmdldCIsIm9FbnRpdHlUeXBlIiwidGFyZ2V0RW50aXR5VHlwZSIsIm9UZXh0QW5ub3RhdGlvbiIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVGV4dCIsIm9UZXh0QXJyYW5nZW1lbnRBbm5vdGF0aW9uIiwiVUkiLCJUZXh0QXJyYW5nZW1lbnQiLCJ0b1N0cmluZyIsInNEaXNwbGF5VmFsdWUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRpc3BsYXlNb2RlRm9ybWF0dGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VwYXJhdGluZyB0aGVzZSBtZXRob2RzIGZyb20gdGhlIFVJRm9ybWF0dGVycyBhcyB0aGV5IGFyZSB1c2VkIGFsc28gaW4gdGhlIGNvbnZlcnRlci5cbiAqIFRoZXNlIG1ldGhvZHMgbXVzdCBOT1QgdXNlIGFueSBkZXBlbmRlbmN5IGZyb20gdGhlIFNBUCBVSTUgcnVudGltZS5cbiAqIFdoZW4gY29uc3VtZWQgb3V0c2lkZSBvZiBjb252ZXJ0ZXJzLCB5b3Ugc2hvdWxkIGNhbGwgdGhlbSB2aWEgVUlGb3JtYXR0ZXJzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGF0aEFubm90YXRpb25FeHByZXNzaW9uLCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24sIGlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlPclBhdGg8UD4gPSBzdHJpbmcgfCBQIHwgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFA+O1xuXG5leHBvcnQgY29uc3QgT0RBVEFfVFlQRV9NQVBQSU5HOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkJvb2xlYW5cIjogXCJFZG0uQm9vbGVhblwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkJ5dGVcIjogXCJFZG0uQnl0ZVwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkRhdGVcIjogXCJFZG0uRGF0ZVwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkRhdGVUaW1lT2Zmc2V0XCI6IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuRGVjaW1hbFwiOiBcIkVkbS5EZWNpbWFsXCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuRG91YmxlXCI6IFwiRWRtLkRvdWJsZVwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkd1aWRcIjogXCJFZG0uR3VpZFwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDE2XCI6IFwiRWRtLkludDE2XCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50MzJcIjogXCJFZG0uSW50MzJcIixcblx0XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQ2NFwiOiBcIkVkbS5JbnQ2NFwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlNCeXRlXCI6IFwiRWRtLlNCeXRlXCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU2luZ2xlXCI6IFwiRWRtLlNpbmdsZVwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmVhbVwiOiBcIkVkbS5TdHJlYW1cIixcblx0XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5UaW1lT2ZEYXlcIjogXCJFZG0uVGltZU9mRGF5XCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nXCI6IFwiRWRtLlN0cmluZ1wiXG59O1xuXG5leHBvcnQgdHlwZSBEaXNwbGF5TW9kZSA9IFwiVmFsdWVcIiB8IFwiRGVzY3JpcHRpb25cIiB8IFwiRGVzY3JpcHRpb25WYWx1ZVwiIHwgXCJWYWx1ZURlc2NyaXB0aW9uXCI7XG5leHBvcnQgY29uc3QgZ2V0RGlzcGxheU1vZGUgPSBmdW5jdGlvbiAob1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+LCBvRGF0YU1vZGVsT2JqZWN0UGF0aD86IERhdGFNb2RlbE9iamVjdFBhdGgpOiBEaXNwbGF5TW9kZSB7XG5cdGlmICghb1Byb3BlcnR5UGF0aCB8fCB0eXBlb2Ygb1Byb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybiBcIlZhbHVlXCI7XG5cdH1cblx0Y29uc3Qgb1Byb3BlcnR5ID1cblx0XHQoKGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpIHx8IGlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbihvUHJvcGVydHlQYXRoKSkgJiYgb1Byb3BlcnR5UGF0aC4kdGFyZ2V0KSB8fFxuXHRcdChvUHJvcGVydHlQYXRoIGFzIFByb3BlcnR5KTtcblx0Y29uc3Qgb0VudGl0eVR5cGUgPSBvRGF0YU1vZGVsT2JqZWN0UGF0aCAmJiBvRGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlUeXBlO1xuXHRjb25zdCBvVGV4dEFubm90YXRpb24gPSBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dDtcblx0Y29uc3Qgb1RleHRBcnJhbmdlbWVudEFubm90YXRpb24gPVxuXHRcdCh0eXBlb2Ygb1RleHRBbm5vdGF0aW9uICE9PSBcInN0cmluZ1wiICYmIG9UZXh0QW5ub3RhdGlvbj8uYW5ub3RhdGlvbnM/LlVJPy5UZXh0QXJyYW5nZW1lbnQ/LnRvU3RyaW5nKCkpIHx8XG5cdFx0b0VudGl0eVR5cGU/LmFubm90YXRpb25zPy5VST8uVGV4dEFycmFuZ2VtZW50Py50b1N0cmluZygpO1xuXG5cdGxldCBzRGlzcGxheVZhbHVlID0gb1RleHRBbm5vdGF0aW9uID8gXCJEZXNjcmlwdGlvblZhbHVlXCIgOiBcIlZhbHVlXCI7XG5cdGlmICgob1RleHRBbm5vdGF0aW9uICYmIG9UZXh0QXJyYW5nZW1lbnRBbm5vdGF0aW9uKSB8fCBvRW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LlVJPy5UZXh0QXJyYW5nZW1lbnQ/LnRvU3RyaW5nKCkpIHtcblx0XHRpZiAob1RleHRBcnJhbmdlbWVudEFubm90YXRpb24gPT09IFwiVUkuVGV4dEFycmFuZ2VtZW50VHlwZS9UZXh0T25seVwiKSB7XG5cdFx0XHRzRGlzcGxheVZhbHVlID0gXCJEZXNjcmlwdGlvblwiO1xuXHRcdH0gZWxzZSBpZiAob1RleHRBcnJhbmdlbWVudEFubm90YXRpb24gPT09IFwiVUkuVGV4dEFycmFuZ2VtZW50VHlwZS9UZXh0TGFzdFwiKSB7XG5cdFx0XHRzRGlzcGxheVZhbHVlID0gXCJWYWx1ZURlc2NyaXB0aW9uXCI7XG5cdFx0fSBlbHNlIGlmIChvVGV4dEFycmFuZ2VtZW50QW5ub3RhdGlvbiA9PT0gXCJVSS5UZXh0QXJyYW5nZW1lbnRUeXBlL1RleHRTZXBhcmF0ZVwiKSB7XG5cdFx0XHRzRGlzcGxheVZhbHVlID0gXCJWYWx1ZVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvL0RlZmF1bHQgc2hvdWxkIGJlIFRleHRGaXJzdCBpZiB0aGVyZSBpcyBhIFRleHQgYW5ub3RhdGlvbiBhbmQgbmVpdGhlciBUZXh0T25seSBub3IgVGV4dExhc3QgYXJlIHNldFxuXHRcdFx0c0Rpc3BsYXlWYWx1ZSA9IFwiRGVzY3JpcHRpb25WYWx1ZVwiO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gc0Rpc3BsYXlWYWx1ZSBhcyBEaXNwbGF5TW9kZTtcbn07XG4iXSwi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
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPREFUQV9UWVBFX01BUFBJTkciLCJnZXREaXNwbGF5TW9kZSIsIm9Qcm9wZXJ0eVBhdGgiLCJvRGF0YU1vZGVsT2JqZWN0UGF0aCIsIm9Qcm9wZXJ0eSIsImlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uIiwiaXNQcm9wZXJ0eVBhdGhFeHByZXNzaW9uIiwiJHRhcmdldCIsIm9FbnRpdHlUeXBlIiwidGFyZ2V0RW50aXR5VHlwZSIsIm9UZXh0QW5ub3RhdGlvbiIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVGV4dCIsIm9UZXh0QXJyYW5nZW1lbnRBbm5vdGF0aW9uIiwiVUkiLCJUZXh0QXJyYW5nZW1lbnQiLCJ0b1N0cmluZyIsInNEaXNwbGF5VmFsdWUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRpc3BsYXlNb2RlRm9ybWF0dGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VwYXJhdGluZyB0aGVzZSBtZXRob2RzIGZyb20gdGhlIFVJRm9ybWF0dGVycyBhcyB0aGV5IGFyZSB1c2VkIGFsc28gaW4gdGhlIGNvbnZlcnRlci5cbiAqIFRoZXNlIG1ldGhvZHMgbXVzdCBOT1QgdXNlIGFueSBkZXBlbmRlbmN5IGZyb20gdGhlIFNBUCBVSTUgcnVudGltZS5cbiAqIFdoZW4gY29uc3VtZWQgb3V0c2lkZSBvZiBjb252ZXJ0ZXJzLCB5b3Ugc2hvdWxkIGNhbGwgdGhlbSB2aWEgVUlGb3JtYXR0ZXJzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGF0aEFubm90YXRpb25FeHByZXNzaW9uLCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBBbm5vdGF0aW9uUGF0aCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9FZG1cIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcywgRGF0YVBvaW50VHlwZVR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24sIGlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlPclBhdGg8UD4gPSBzdHJpbmcgfCBQIHwgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFA+IHwgQW5ub3RhdGlvblBhdGg8UD47XG5cbmV4cG9ydCBjb25zdCBPREFUQV9UWVBFX01BUFBJTkc6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuQm9vbGVhblwiOiBcIkVkbS5Cb29sZWFuXCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuQnl0ZVwiOiBcIkVkbS5CeXRlXCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuRGF0ZVwiOiBcIkVkbS5EYXRlXCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuRGF0ZVRpbWVPZmZzZXRcIjogXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIixcblx0XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5EZWNpbWFsXCI6IFwiRWRtLkRlY2ltYWxcIixcblx0XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Eb3VibGVcIjogXCJFZG0uRG91YmxlXCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuR3VpZFwiOiBcIkVkbS5HdWlkXCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50MTZcIjogXCJFZG0uSW50MTZcIixcblx0XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQzMlwiOiBcIkVkbS5JbnQzMlwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDY0XCI6IFwiRWRtLkludDY0XCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU0J5dGVcIjogXCJFZG0uU0J5dGVcIixcblx0XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TaW5nbGVcIjogXCJFZG0uU2luZ2xlXCIsXG5cdFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyZWFtXCI6IFwiRWRtLlN0cmVhbVwiLFxuXHRcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlRpbWVPZkRheVwiOiBcIkVkbS5UaW1lT2ZEYXlcIixcblx0XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmdcIjogXCJFZG0uU3RyaW5nXCJcbn07XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlNb2RlID0gXCJWYWx1ZVwiIHwgXCJEZXNjcmlwdGlvblwiIHwgXCJEZXNjcmlwdGlvblZhbHVlXCIgfCBcIlZhbHVlRGVzY3JpcHRpb25cIjtcbmV4cG9ydCBjb25zdCBnZXREaXNwbGF5TW9kZSA9IGZ1bmN0aW9uIChcblx0b1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHkgfCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzIHwgRGF0YVBvaW50VHlwZVR5cGVzPiB8IHVuZGVmaW5lZCxcblx0b0RhdGFNb2RlbE9iamVjdFBhdGg/OiBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5IHwgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB8IERhdGFQb2ludFR5cGVUeXBlcz5cbik6IERpc3BsYXlNb2RlIHtcblx0aWYgKCFvUHJvcGVydHlQYXRoIHx8IHR5cGVvZiBvUHJvcGVydHlQYXRoID09PSBcInN0cmluZ1wiKSB7XG5cdFx0cmV0dXJuIFwiVmFsdWVcIjtcblx0fVxuXHRjb25zdCBvUHJvcGVydHkgPVxuXHRcdCgoaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24ob1Byb3BlcnR5UGF0aCkgfHwgaXNQcm9wZXJ0eVBhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpKSAmJiBvUHJvcGVydHlQYXRoLiR0YXJnZXQpIHx8XG5cdFx0KG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHRjb25zdCBvRW50aXR5VHlwZSA9IG9EYXRhTW9kZWxPYmplY3RQYXRoICYmIG9EYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdGNvbnN0IG9UZXh0QW5ub3RhdGlvbiA9IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0O1xuXHRjb25zdCBvVGV4dEFycmFuZ2VtZW50QW5ub3RhdGlvbiA9XG5cdFx0KHR5cGVvZiBvVGV4dEFubm90YXRpb24gIT09IFwic3RyaW5nXCIgJiYgb1RleHRBbm5vdGF0aW9uPy5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudD8udG9TdHJpbmcoKSkgfHxcblx0XHRvRW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LlVJPy5UZXh0QXJyYW5nZW1lbnQ/LnRvU3RyaW5nKCk7XG5cblx0bGV0IHNEaXNwbGF5VmFsdWUgPSBvVGV4dEFubm90YXRpb24gPyBcIkRlc2NyaXB0aW9uVmFsdWVcIiA6IFwiVmFsdWVcIjtcblx0aWYgKChvVGV4dEFubm90YXRpb24gJiYgb1RleHRBcnJhbmdlbWVudEFubm90YXRpb24pIHx8IG9FbnRpdHlUeXBlPy5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudD8udG9TdHJpbmcoKSkge1xuXHRcdGlmIChvVGV4dEFycmFuZ2VtZW50QW5ub3RhdGlvbiA9PT0gXCJVSS5UZXh0QXJyYW5nZW1lbnRUeXBlL1RleHRPbmx5XCIpIHtcblx0XHRcdHNEaXNwbGF5VmFsdWUgPSBcIkRlc2NyaXB0aW9uXCI7XG5cdFx0fSBlbHNlIGlmIChvVGV4dEFycmFuZ2VtZW50QW5ub3RhdGlvbiA9PT0gXCJVSS5UZXh0QXJyYW5nZW1lbnRUeXBlL1RleHRMYXN0XCIpIHtcblx0XHRcdHNEaXNwbGF5VmFsdWUgPSBcIlZhbHVlRGVzY3JpcHRpb25cIjtcblx0XHR9IGVsc2UgaWYgKG9UZXh0QXJyYW5nZW1lbnRBbm5vdGF0aW9uID09PSBcIlVJLlRleHRBcnJhbmdlbWVudFR5cGUvVGV4dFNlcGFyYXRlXCIpIHtcblx0XHRcdHNEaXNwbGF5VmFsdWUgPSBcIlZhbHVlXCI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vRGVmYXVsdCBzaG91bGQgYmUgVGV4dEZpcnN0IGlmIHRoZXJlIGlzIGEgVGV4dCBhbm5vdGF0aW9uIGFuZCBuZWl0aGVyIFRleHRPbmx5IG5vciBUZXh0TGFzdCBhcmUgc2V0XG5cdFx0XHRzRGlzcGxheVZhbHVlID0gXCJEZXNjcmlwdGlvblZhbHVlXCI7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBzRGlzcGxheVZhbHVlIGFzIERpc3BsYXlNb2RlO1xufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7OztFQWNPLE1BQU1BLGtCQUEwQyxHQUFHO0lBQ3pELGlDQUFpQyxFQUFFLGFBQWE7SUFDaEQsOEJBQThCLEVBQUUsVUFBVTtJQUMxQyw4QkFBOEIsRUFBRSxVQUFVO0lBQzFDLHdDQUF3QyxFQUFFLG9CQUFvQjtJQUM5RCxpQ0FBaUMsRUFBRSxhQUFhO0lBQ2hELGdDQUFnQyxFQUFFLFlBQVk7SUFDOUMsOEJBQThCLEVBQUUsVUFBVTtJQUMxQywrQkFBK0IsRUFBRSxXQUFXO0lBQzVDLCtCQUErQixFQUFFLFdBQVc7SUFDNUMsK0JBQStCLEVBQUUsV0FBVztJQUM1QywrQkFBK0IsRUFBRSxXQUFXO0lBQzVDLGdDQUFnQyxFQUFFLFlBQVk7SUFDOUMsZ0NBQWdDLEVBQUUsWUFBWTtJQUM5QyxtQ0FBbUMsRUFBRSxlQUFlO0lBQ3BELGdDQUFnQyxFQUFFO0VBQ25DLENBQUM7RUFBQztFQUdLLE1BQU1DLGNBQWMsR0FBRyxVQUM3QkMsYUFBaUcsRUFDakdDLG9CQUFrRyxFQUNwRjtJQUFBO0lBQ2QsSUFBSSxDQUFDRCxhQUFhLElBQUksT0FBT0EsYUFBYSxLQUFLLFFBQVEsRUFBRTtNQUN4RCxPQUFPLE9BQU87SUFDZjtJQUNBLE1BQU1FLFNBQVMsR0FDYixDQUFDQywwQkFBMEIsQ0FBQ0gsYUFBYSxDQUFDLElBQUlJLHdCQUF3QixDQUFDSixhQUFhLENBQUMsS0FBS0EsYUFBYSxDQUFDSyxPQUFPLElBQy9HTCxhQUEwQjtJQUM1QixNQUFNTSxXQUFXLEdBQUdMLG9CQUFvQixJQUFJQSxvQkFBb0IsQ0FBQ00sZ0JBQWdCO0lBQ2pGLE1BQU1DLGVBQWUsNEJBQUdOLFNBQVMsQ0FBQ08sV0FBVyxvRkFBckIsc0JBQXVCQyxNQUFNLDJEQUE3Qix1QkFBK0JDLElBQUk7SUFDM0QsTUFBTUMsMEJBQTBCLEdBQzlCLE9BQU9KLGVBQWUsS0FBSyxRQUFRLEtBQUlBLGVBQWUsYUFBZkEsZUFBZSxnREFBZkEsZUFBZSxDQUFFQyxXQUFXLG9GQUE1QixzQkFBOEJJLEVBQUUscUZBQWhDLHVCQUFrQ0MsZUFBZSwyREFBakQsdUJBQW1EQyxRQUFRLEVBQUUsTUFDckdULFdBQVcsYUFBWEEsV0FBVyxnREFBWEEsV0FBVyxDQUFFRyxXQUFXLG9GQUF4QixzQkFBMEJJLEVBQUUscUZBQTVCLHVCQUE4QkMsZUFBZSwyREFBN0MsdUJBQStDQyxRQUFRLEVBQUU7SUFFMUQsSUFBSUMsYUFBYSxHQUFHUixlQUFlLEdBQUcsa0JBQWtCLEdBQUcsT0FBTztJQUNsRSxJQUFLQSxlQUFlLElBQUlJLDBCQUEwQixJQUFLTixXQUFXLGFBQVhBLFdBQVcseUNBQVhBLFdBQVcsQ0FBRUcsV0FBVyw2RUFBeEIsdUJBQTBCSSxFQUFFLDZFQUE1Qix1QkFBOEJDLGVBQWUsbURBQTdDLHVCQUErQ0MsUUFBUSxFQUFFLEVBQUU7TUFDakgsSUFBSUgsMEJBQTBCLEtBQUssaUNBQWlDLEVBQUU7UUFDckVJLGFBQWEsR0FBRyxhQUFhO01BQzlCLENBQUMsTUFBTSxJQUFJSiwwQkFBMEIsS0FBSyxpQ0FBaUMsRUFBRTtRQUM1RUksYUFBYSxHQUFHLGtCQUFrQjtNQUNuQyxDQUFDLE1BQU0sSUFBSUosMEJBQTBCLEtBQUsscUNBQXFDLEVBQUU7UUFDaEZJLGFBQWEsR0FBRyxPQUFPO01BQ3hCLENBQUMsTUFBTTtRQUNOO1FBQ0FBLGFBQWEsR0FBRyxrQkFBa0I7TUFDbkM7SUFDRDtJQUNBLE9BQU9BLGFBQWE7RUFDckIsQ0FBQztFQUFDO0VBQUE7QUFBQSJ9
@@ -5,12 +5,14 @@
5
5
  */
6
6
 
7
7
  import type { PathAnnotationExpression, Property } from "@sap-ux/vocabularies-types";
8
+ import type { AnnotationPath } from "@sap-ux/vocabularies-types/Edm";
9
+ import type { DataFieldAbstractTypes, DataPointTypeTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
8
10
  import { isPathAnnotationExpression, isPropertyPathExpression } from "sap/fe/core/helpers/TypeGuards";
9
11
  import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
10
12
 
11
- export type PropertyOrPath<P> = string | P | PathAnnotationExpression<P>;
13
+ export type PropertyOrPath<P> = string | P | PathAnnotationExpression<P> | AnnotationPath<P>;
12
14
 
13
- export const ODATA_TYPE_MAPPING: Record<string, any> = {
15
+ export const ODATA_TYPE_MAPPING: Record<string, string> = {
14
16
  "sap.ui.model.odata.type.Boolean": "Edm.Boolean",
15
17
  "sap.ui.model.odata.type.Byte": "Edm.Byte",
16
18
  "sap.ui.model.odata.type.Date": "Edm.Date",
@@ -29,7 +31,10 @@ export const ODATA_TYPE_MAPPING: Record<string, any> = {
29
31
  };
30
32
 
31
33
  export type DisplayMode = "Value" | "Description" | "DescriptionValue" | "ValueDescription";
32
- export const getDisplayMode = function (oPropertyPath: PropertyOrPath<Property>, oDataModelObjectPath?: DataModelObjectPath): DisplayMode {
34
+ export const getDisplayMode = function (
35
+ oPropertyPath: PropertyOrPath<Property | DataFieldAbstractTypes | DataPointTypeTypes> | undefined,
36
+ oDataModelObjectPath?: DataModelObjectPath<Property | DataFieldAbstractTypes | DataPointTypeTypes>
37
+ ): DisplayMode {
33
38
  if (!oPropertyPath || typeof oPropertyPath === "string") {
34
39
  return "Value";
35
40
  }
@@ -45,4 +45,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/BindingToolkit"], function (
45
45
  _exports.getTitleExpression = getTitleExpression;
46
46
  return _exports;
47
47
  }, false);
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRUaXRsZUV4cHJlc3Npb24iLCJlbnRpdHlUeXBlIiwiaGVhZGVySW5mb1RpdGxlIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhlYWRlckluZm8iLCJUaXRsZSIsIiRUeXBlIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwiVmFsdWUiLCJMb2ciLCJlcnJvciIsIlR5cGVOYW1lIiwic2VtYW50aWNLZXlzIiwiQ29tbW9uIiwiU2VtYW50aWNLZXkiLCJjb25jYXQiLCJtYXAiLCJrZXkiLCJwYXRoSW5Nb2RlbCIsInZhbHVlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFbnRpdHlUeXBlSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5VHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGQsIERhdGFGaWVsZEZvckFubm90YXRpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29uY2F0LCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sIHBhdGhJbk1vZGVsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcblxuLy8gQ29sbGVjdGlvbiBvZiBoZWxwZXIgZnVuY3Rpb25zIHRvIHJldHJpZXZlIGluZm9ybWF0aW9uIGZyb20gYW4gRW50aXR5VHlwZS5cblxuLy8gVGhpcyBpcyBzdGlsbCBhIHdvcmsgaW4gcHJvZ3Jlc3NcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgYmluZGluZyBleHByZXNzaW9uIHJlcXVpcmVkIHRvIGRpc3BsYXkgdGhlIHRpdGxlIG9mIGFuIGVudGl0eS5cbiAqXG4gKiBUaGlzIGlzIHVzdWFsbHkgZGVmaW5lZCBhczpcbiAqICAtIHRoZSBIZWFkZXJJbmZvLlRpdGxlIHZhbHVlXG4gKiAgLSB0aGUgU2VtYW50aWNLZXlzIHByb3BlcnRpZXNcbiAqICAtIHRoZSBrZXlzIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIGVudGl0eVR5cGUgVGhlIHRhcmdldCBlbnRpdHlUeXBlXG4gKiBAcmV0dXJucyBUaGUgdGl0bGUgYmluZGluZyBleHByZXNzaW9uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaXRsZUV4cHJlc3Npb24gPSAoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxhbnk+IHwgdW5kZWZpbmVkID0+IHtcblx0Ly8gSGVhZGVySW5mbyBjYW4gYmUgYSBbRGF0YUZpZWxkXSBhbmQgYW55IG9mIGl0cyBjaGlsZHJlbiwgb3IgYSBbRGF0YUZpZWxkRm9yQW5ub3RhdGlvbl0gdGFyZ2V0aW5nIFtDb25uZWN0ZWRGaWVsZHNdKCNDb25uZWN0ZWRGaWVsZHMpLlxuXHRjb25zdCBoZWFkZXJJbmZvVGl0bGUgPSBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSGVhZGVySW5mbz8uVGl0bGUgYXMgRGF0YUZpZWxkIHwgRGF0YUZpZWxkRm9yQW5ub3RhdGlvbjtcblx0aWYgKGhlYWRlckluZm9UaXRsZSkge1xuXHRcdHN3aXRjaCAoaGVhZGVySW5mb1RpdGxlLiRUeXBlKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZDpcblx0XHRcdFx0cmV0dXJuIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihoZWFkZXJJbmZvVGl0bGUuVmFsdWUpO1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uOlxuXHRcdFx0XHRMb2cuZXJyb3IoXCJEYXRhRmllbGRGb3JBbm5vdGF0aW9uIHdpdGggY29ubmVjdGVkIGZpZWxkcyBub3Qgc3VwcG9ydGVkIGZvciBIZWFkZXJJbmZvLlRpdGxlXCIpO1xuXHRcdFx0XHRyZXR1cm4gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5IZWFkZXJJbmZvPy5UeXBlTmFtZSk7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IHNlbWFudGljS2V5cyA9IGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LkNvbW1vbj8uU2VtYW50aWNLZXk7XG5cdGlmIChzZW1hbnRpY0tleXMpIHtcblx0XHRyZXR1cm4gY29uY2F0KC4uLnNlbWFudGljS2V5cy5tYXAoKGtleSkgPT4gcGF0aEluTW9kZWwoa2V5LnZhbHVlKSkpO1xuXHR9XG59O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztFQU9BOztFQUVBOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDTyxNQUFNQSxrQkFBa0IsR0FBSUMsVUFBc0IsSUFBZ0Q7SUFBQTtJQUN4RztJQUNBLE1BQU1DLGVBQWUsNEJBQUdELFVBQVUsQ0FBQ0UsV0FBVyxvRkFBdEIsc0JBQXdCQyxFQUFFLHFGQUExQix1QkFBNEJDLFVBQVUsMkRBQXRDLHVCQUF3Q0MsS0FBMkM7SUFDM0csSUFBSUosZUFBZSxFQUFFO01BQ3BCLFFBQVFBLGVBQWUsQ0FBQ0ssS0FBSztRQUM1QjtVQUNDLE9BQU9DLDJCQUEyQixDQUFDTixlQUFlLENBQUNPLEtBQUssQ0FBQztRQUMxRDtVQUNDQyxHQUFHLENBQUNDLEtBQUssQ0FBQyxpRkFBaUYsQ0FBQztVQUM1RixPQUFPSCwyQkFBMkIsMkJBQUNQLFVBQVUsQ0FBQ0UsV0FBVyxxRkFBdEIsdUJBQXdCQyxFQUFFLHFGQUExQix1QkFBNEJDLFVBQVUsMkRBQXRDLHVCQUF3Q08sUUFBUSxDQUFDO01BQUM7SUFFeEY7SUFDQSxNQUFNQyxZQUFZLDZCQUFHWixVQUFVLENBQUNFLFdBQVcscUZBQXRCLHVCQUF3QlcsTUFBTSwyREFBOUIsdUJBQWdDQyxXQUFXO0lBQ2hFLElBQUlGLFlBQVksRUFBRTtNQUNqQixPQUFPRyxNQUFNLENBQUMsR0FBR0gsWUFBWSxDQUFDSSxHQUFHLENBQUVDLEdBQUcsSUFBS0MsV0FBVyxDQUFDRCxHQUFHLENBQUNFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEU7RUFDRCxDQUFDO0VBQUM7RUFBQTtBQUFBIn0=
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRUaXRsZUV4cHJlc3Npb24iLCJlbnRpdHlUeXBlIiwiaGVhZGVySW5mb1RpdGxlIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhlYWRlckluZm8iLCJUaXRsZSIsIiRUeXBlIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwiVmFsdWUiLCJMb2ciLCJlcnJvciIsIlR5cGVOYW1lIiwic2VtYW50aWNLZXlzIiwiQ29tbW9uIiwiU2VtYW50aWNLZXkiLCJjb25jYXQiLCJtYXAiLCJrZXkiLCJwYXRoSW5Nb2RlbCIsInZhbHVlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFbnRpdHlUeXBlSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5VHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGQsIERhdGFGaWVsZEZvckFubm90YXRpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29uY2F0LCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sIHBhdGhJbk1vZGVsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcblxuLy8gQ29sbGVjdGlvbiBvZiBoZWxwZXIgZnVuY3Rpb25zIHRvIHJldHJpZXZlIGluZm9ybWF0aW9uIGZyb20gYW4gRW50aXR5VHlwZS5cblxuLy8gVGhpcyBpcyBzdGlsbCBhIHdvcmsgaW4gcHJvZ3Jlc3NcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgYmluZGluZyBleHByZXNzaW9uIHJlcXVpcmVkIHRvIGRpc3BsYXkgdGhlIHRpdGxlIG9mIGFuIGVudGl0eS5cbiAqXG4gKiBUaGlzIGlzIHVzdWFsbHkgZGVmaW5lZCBhczpcbiAqICAtIHRoZSBIZWFkZXJJbmZvLlRpdGxlIHZhbHVlXG4gKiAgLSB0aGUgU2VtYW50aWNLZXlzIHByb3BlcnRpZXNcbiAqICAtIHRoZSBrZXlzIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIGVudGl0eVR5cGUgVGhlIHRhcmdldCBlbnRpdHlUeXBlXG4gKiBAcmV0dXJucyBUaGUgdGl0bGUgYmluZGluZyBleHByZXNzaW9uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaXRsZUV4cHJlc3Npb24gPSAoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjx1bmtub3duPiB8IHVuZGVmaW5lZCA9PiB7XG5cdC8vIEhlYWRlckluZm8gY2FuIGJlIGEgW0RhdGFGaWVsZF0gYW5kIGFueSBvZiBpdHMgY2hpbGRyZW4sIG9yIGEgW0RhdGFGaWVsZEZvckFubm90YXRpb25dIHRhcmdldGluZyBbQ29ubmVjdGVkRmllbGRzXSgjQ29ubmVjdGVkRmllbGRzKS5cblx0Y29uc3QgaGVhZGVySW5mb1RpdGxlID0gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LkhlYWRlckluZm8/LlRpdGxlIGFzIERhdGFGaWVsZCB8IERhdGFGaWVsZEZvckFubm90YXRpb247XG5cdGlmIChoZWFkZXJJbmZvVGl0bGUpIHtcblx0XHRzd2l0Y2ggKGhlYWRlckluZm9UaXRsZS4kVHlwZSkge1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGQ6XG5cdFx0XHRcdHJldHVybiBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oaGVhZGVySW5mb1RpdGxlLlZhbHVlKTtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQW5ub3RhdGlvbjpcblx0XHRcdFx0TG9nLmVycm9yKFwiRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiB3aXRoIGNvbm5lY3RlZCBmaWVsZHMgbm90IHN1cHBvcnRlZCBmb3IgSGVhZGVySW5mby5UaXRsZVwiKTtcblx0XHRcdFx0cmV0dXJuIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSGVhZGVySW5mbz8uVHlwZU5hbWUpO1xuXHRcdH1cblx0fVxuXHRjb25zdCBzZW1hbnRpY0tleXMgPSBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5Db21tb24/LlNlbWFudGljS2V5O1xuXHRpZiAoc2VtYW50aWNLZXlzKSB7XG5cdFx0cmV0dXJuIGNvbmNhdCguLi5zZW1hbnRpY0tleXMubWFwKChrZXkpID0+IHBhdGhJbk1vZGVsKGtleS52YWx1ZSkpKTtcblx0fVxufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7RUFPQTs7RUFFQTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sTUFBTUEsa0JBQWtCLEdBQUlDLFVBQXNCLElBQW9EO0lBQUE7SUFDNUc7SUFDQSxNQUFNQyxlQUFlLDRCQUFHRCxVQUFVLENBQUNFLFdBQVcsb0ZBQXRCLHNCQUF3QkMsRUFBRSxxRkFBMUIsdUJBQTRCQyxVQUFVLDJEQUF0Qyx1QkFBd0NDLEtBQTJDO0lBQzNHLElBQUlKLGVBQWUsRUFBRTtNQUNwQixRQUFRQSxlQUFlLENBQUNLLEtBQUs7UUFDNUI7VUFDQyxPQUFPQywyQkFBMkIsQ0FBQ04sZUFBZSxDQUFDTyxLQUFLLENBQUM7UUFDMUQ7VUFDQ0MsR0FBRyxDQUFDQyxLQUFLLENBQUMsaUZBQWlGLENBQUM7VUFDNUYsT0FBT0gsMkJBQTJCLDJCQUFDUCxVQUFVLENBQUNFLFdBQVcscUZBQXRCLHVCQUF3QkMsRUFBRSxxRkFBMUIsdUJBQTRCQyxVQUFVLDJEQUF0Qyx1QkFBd0NPLFFBQVEsQ0FBQztNQUFDO0lBRXhGO0lBQ0EsTUFBTUMsWUFBWSw2QkFBR1osVUFBVSxDQUFDRSxXQUFXLHFGQUF0Qix1QkFBd0JXLE1BQU0sMkRBQTlCLHVCQUFnQ0MsV0FBVztJQUNoRSxJQUFJRixZQUFZLEVBQUU7TUFDakIsT0FBT0csTUFBTSxDQUFDLEdBQUdILFlBQVksQ0FBQ0ksR0FBRyxDQUFFQyxHQUFHLElBQUtDLFdBQVcsQ0FBQ0QsR0FBRyxDQUFDRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BFO0VBQ0QsQ0FBQztFQUFDO0VBQUE7QUFBQSJ9
@@ -20,7 +20,7 @@ import { concat, getExpressionFromAnnotation, pathInModel } from "sap/fe/core/he
20
20
  * @param entityType The target entityType
21
21
  * @returns The title binding expression
22
22
  */
23
- export const getTitleExpression = (entityType: EntityType): BindingToolkitExpression<any> | undefined => {
23
+ export const getTitleExpression = (entityType: EntityType): BindingToolkitExpression<unknown> | undefined => {
24
24
  // HeaderInfo can be a [DataField] and any of its children, or a [DataFieldForAnnotation] targeting [ConnectedFields](#ConnectedFields).
25
25
  const headerInfoTitle = entityType.annotations?.UI?.HeaderInfo?.Title as DataField | DataFieldForAnnotation;
26
26
  if (headerInfoTitle) {
@@ -83,7 +83,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingToolkit", "../converters/annotations/
83
83
  _exports.hasFieldControlNotMandatory = hasFieldControlNotMandatory;
84
84
  function isStaticallyMandatory(target) {
85
85
  var _target$annotations, _target$annotations$C, _Value, _Value$$target, _Value$$target$annota, _Value$$target$annota2, _Value$$target$annota3;
86
- const fieldFieldControl = (_target$annotations = target.annotations) === null || _target$annotations === void 0 ? void 0 : (_target$annotations$C = _target$annotations.Common) === null || _target$annotations$C === void 0 ? void 0 : _target$annotations$C.FieldControl;
86
+ const fieldFieldControl = target === null || target === void 0 ? void 0 : (_target$annotations = target.annotations) === null || _target$annotations === void 0 ? void 0 : (_target$annotations$C = _target$annotations.Common) === null || _target$annotations$C === void 0 ? void 0 : _target$annotations$C.FieldControl;
87
87
  if (isProperty(target) || isDataFieldForAnnotation(target)) {
88
88
  return (fieldFieldControl === null || fieldFieldControl === void 0 ? void 0 : fieldFieldControl.toString()) === "Common.FieldControlType/Mandatory";
89
89
  }
@@ -111,7 +111,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingToolkit", "../converters/annotations/
111
111
  _exports.isStaticallyMandatory = isStaticallyMandatory;
112
112
  const isRequiredExpression = function (oTarget, relativePath) {
113
113
  var _oTarget$annotations4, _oTarget$annotations5;
114
- const oFieldControlValue = (_oTarget$annotations4 = oTarget.annotations) === null || _oTarget$annotations4 === void 0 ? void 0 : (_oTarget$annotations5 = _oTarget$annotations4.Common) === null || _oTarget$annotations5 === void 0 ? void 0 : _oTarget$annotations5.FieldControl;
114
+ const oFieldControlValue = oTarget === null || oTarget === void 0 ? void 0 : (_oTarget$annotations4 = oTarget.annotations) === null || _oTarget$annotations4 === void 0 ? void 0 : (_oTarget$annotations5 = _oTarget$annotations4.Common) === null || _oTarget$annotations5 === void 0 ? void 0 : _oTarget$annotations5.FieldControl;
115
115
  const fieldControlValue = getExpressionFromAnnotation(oFieldControlValue, relativePath);
116
116
  return _isRequiredExpression(fieldControlValue);
117
117
  };
@@ -138,4 +138,4 @@ sap.ui.define(["sap/fe/core/helpers/BindingToolkit", "../converters/annotations/
138
138
  };
139
139
  return _exports;
140
140
  }, false);
141
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1JlYWRPbmx5RXhwcmVzc2lvbiIsIm9UYXJnZXQiLCJyZWxhdGl2ZVBhdGgiLCJmaWVsZENvbnRyb2xFeHByZXNzaW9uIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJGaWVsZENvbnRyb2wiLCJpc0NvbnN0YW50Iiwib3IiLCJlcXVhbCIsImlzRGlzYWJsZWRFeHByZXNzaW9uIiwiaXNOb25FZGl0YWJsZUV4cHJlc3Npb24iLCJoYXNGaWVsZENvbnRyb2xOb3RNYW5kYXRvcnkiLCJkYXRhRmllbGRGb3JBbm5vdGF0aW9uIiwiZmllbGRDb250cm9sIiwidG9TdHJpbmciLCJpc1N0YXRpY2FsbHlNYW5kYXRvcnkiLCJ0YXJnZXQiLCJmaWVsZEZpZWxkQ29udHJvbCIsImlzUHJvcGVydHkiLCJpc0RhdGFGaWVsZEZvckFubm90YXRpb24iLCJpc0RhdGFGaWVsZCIsInVuZGVmaW5lZCIsIlZhbHVlIiwiJHRhcmdldCIsImlzUmVxdWlyZWRFeHByZXNzaW9uIiwib0ZpZWxkQ29udHJvbFZhbHVlIiwiZmllbGRDb250cm9sVmFsdWUiLCJfaXNSZXF1aXJlZEV4cHJlc3Npb24iLCJpc0FjdGlvblBhcmFtZXRlclJlcXVpcmVkRXhwcmVzc2lvbiIsImFjdGlvblBhcmFtZXRlciIsImFjdGlvblRhcmdldCIsImNvbnZlcnRlZFR5cGVzIiwiYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lIiwiaXNCb3VuZCIsInBhcmFtZXRlcnMiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJmaWVsZENvbnRyb2xFeHAiLCJwYXRoIiwiYmluZGluZ0NvbnRleHRQYXRoVmlzaXRvciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmllbGRDb250cm9sSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBBY3Rpb25QYXJhbWV0ZXIsIENvbnZlcnRlZE1ldGFkYXRhLCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGQsIERhdGFGaWVsZEZvckFubm90YXRpb24sIERhdGFQb2ludCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGVxdWFsLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sIGlzQ29uc3RhbnQsIG9yIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGlzRGF0YUZpZWxkLCBpc0RhdGFGaWVsZEZvckFubm90YXRpb24gfSBmcm9tIFwiLi4vY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IGJpbmRpbmdDb250ZXh0UGF0aFZpc2l0b3IgfSBmcm9tIFwiLi4vaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgeyBpc1Byb3BlcnR5IH0gZnJvbSBcIi4uL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuXG4vKipcbiAqIENyZWF0ZSB0aGUgYmluZGluZyBleHByZXNzaW9uIHRvIGNoZWNrIGlmIHRoZSBwcm9wZXJ0eSBpcyByZWFkIG9ubHkgb3Igbm90LlxuICpcbiAqIEBwYXJhbSBvVGFyZ2V0IFRoZSB0YXJnZXQgcHJvcGVydHkgb3IgRGF0YUZpZWxkXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIEFycmF5IG9mIG5hdmlnYXRpb24gcHJvcGVydGllcyBwb2ludGluZyB0byB0aGUgbG9jYXRpb24gb2YgZmllbGQgY29udHJvbCBwcm9wZXJ0eVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiByZXNvbHZpbmcgdG8gYSBCb29sZWFuIGJlaW5nIHRydWUgaWYgaXQncyByZWFkIG9ubHlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzUmVhZE9ubHlFeHByZXNzaW9uID0gZnVuY3Rpb24gKG9UYXJnZXQ6IFByb3BlcnR5IHwgdW5kZWZpbmVkLCByZWxhdGl2ZVBhdGg/OiBzdHJpbmdbXSk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGZpZWxkQ29udHJvbEV4cHJlc3Npb24gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ob1RhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRmllbGRDb250cm9sLCByZWxhdGl2ZVBhdGgpO1xuXHRpZiAoIWlzQ29uc3RhbnQoZmllbGRDb250cm9sRXhwcmVzc2lvbikpIHtcblx0XHRyZXR1cm4gb3IoZXF1YWwoZmllbGRDb250cm9sRXhwcmVzc2lvbiwgMSksIGVxdWFsKGZpZWxkQ29udHJvbEV4cHJlc3Npb24sIFwiMVwiKSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIG9yKFxuXHRcdFx0ZXF1YWwoZmllbGRDb250cm9sRXhwcmVzc2lvbiwgXCJDb21tb24uRmllbGRDb250cm9sVHlwZS9SZWFkT25seVwiKSxcblx0XHRcdGVxdWFsKGZpZWxkQ29udHJvbEV4cHJlc3Npb24sIDEpLFxuXHRcdFx0ZXF1YWwoZmllbGRDb250cm9sRXhwcmVzc2lvbiwgXCIxXCIpXG5cdFx0KTtcblx0fVxufTtcblxuLyoqXG4gKiBDcmVhdGUgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0byBjaGVjayBpZiB0aGUgcHJvcGVydHkgaXMgZGlzYWJsZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSBvVGFyZ2V0IFRoZSB0YXJnZXQgcHJvcGVydHkgb3IgRGF0YUZpZWxkXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIEFycmF5IG9mIG5hdmlnYXRpb24gcHJvcGVydGllcyBwb2ludGluZyB0byB0aGUgbG9jYXRpb24gb2YgZmllbGQgY29udHJvbCBwcm9wZXJ0eVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiByZXNvbHZpbmcgdG8gYSBCb29sZWFuIGJlaW5nIHRydWUgaWYgaXQncyBkaXNhYmxlZFxuICovXG5leHBvcnQgY29uc3QgaXNEaXNhYmxlZEV4cHJlc3Npb24gPSBmdW5jdGlvbiAob1RhcmdldDogUHJvcGVydHksIHJlbGF0aXZlUGF0aD86IHN0cmluZ1tdKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZmllbGRDb250cm9sRXhwcmVzc2lvbiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihvVGFyZ2V0Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5GaWVsZENvbnRyb2wsIHJlbGF0aXZlUGF0aCk7XG5cdGlmICghaXNDb25zdGFudChmaWVsZENvbnRyb2xFeHByZXNzaW9uKSkge1xuXHRcdHJldHVybiBvcihlcXVhbChmaWVsZENvbnRyb2xFeHByZXNzaW9uLCAwKSwgZXF1YWwoZmllbGRDb250cm9sRXhwcmVzc2lvbiwgXCIwXCIpKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gb3IoXG5cdFx0XHRlcXVhbChmaWVsZENvbnRyb2xFeHByZXNzaW9uLCBcIkNvbW1vbi5GaWVsZENvbnRyb2xUeXBlL0luYXBwbGljYWJsZVwiKSxcblx0XHRcdGVxdWFsKGZpZWxkQ29udHJvbEV4cHJlc3Npb24sIDApLFxuXHRcdFx0ZXF1YWwoZmllbGRDb250cm9sRXhwcmVzc2lvbiwgXCIwXCIpXG5cdFx0KTtcblx0fVxufTtcblxuLyoqXG4gKiBDcmVhdGUgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0byBjaGVjayBpZiB0aGUgcHJvcGVydHkgaXMgZWRpdGFibGUgb3Igbm90LlxuICpcbiAqIEBwYXJhbSBvVGFyZ2V0IFRoZSB0YXJnZXQgcHJvcGVydHkgb3IgRGF0YUZpZWxkXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIEFycmF5IG9mIG5hdmlnYXRpb24gcHJvcGVydGllcyBwb2ludGluZyB0byB0aGUgbG9jYXRpb24gb2YgZmllbGQgY29udHJvbCBwcm9wZXJ0eVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiByZXNvbHZpbmcgdG8gYSBCb29sZWFuIGJlaW5nIHRydWUgaWYgaXQncyBub3QgZWRpdGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTm9uRWRpdGFibGVFeHByZXNzaW9uID0gZnVuY3Rpb24gKG9UYXJnZXQ6IFByb3BlcnR5LCByZWxhdGl2ZVBhdGg/OiBzdHJpbmdbXSk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBvcihpc1JlYWRPbmx5RXhwcmVzc2lvbihvVGFyZ2V0LCByZWxhdGl2ZVBhdGgpLCBpc0Rpc2FibGVkRXhwcmVzc2lvbihvVGFyZ2V0LCByZWxhdGl2ZVBhdGgpKTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgZGF0YUZpZWxkRm9yQW5ub3RhdGlvbiBoYXMgYSBmaWVsZENvbnRyb2wgdGhhdCBpcyBub3Qgc2V0IHRvIE1hbmRhdG9yeS5cbiAqXG4gKiBAcGFyYW0gZGF0YUZpZWxkRm9yQW5ub3RhdGlvbiBUaGUgZGF0YUZpZWxkRm9yQW5ub3RhdGlvbiBiZWluZyBwcm9jZXNzZWRcbiAqIEByZXR1cm5zIFRydWUgaWYgaXQgaGFzIGEgZmllbGRDb250cm9sIHNldCBhbmQgbm90IE1hbmRhdG9yeS5cbiAqL1xuZXhwb3J0IGNvbnN0IGhhc0ZpZWxkQ29udHJvbE5vdE1hbmRhdG9yeSA9IGZ1bmN0aW9uIChkYXRhRmllbGRGb3JBbm5vdGF0aW9uOiBEYXRhRmllbGRGb3JBbm5vdGF0aW9uKTogYm9vbGVhbiB7XG5cdGNvbnN0IGZpZWxkQ29udHJvbCA9IGRhdGFGaWVsZEZvckFubm90YXRpb24uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRmllbGRDb250cm9sO1xuXHRyZXR1cm4gZmllbGRDb250cm9sICYmIGZpZWxkQ29udHJvbC50b1N0cmluZygpICE9PSBcIkNvbW1vbi5GaWVsZENvbnRyb2xUeXBlL01hbmRhdG9yeVwiID8gdHJ1ZSA6IGZhbHNlO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSB0YXJnZXQgaGFzIGEgZmllbGQgY29udHJvbCBhbm5vdGF0aW9uIHdpdGggc3RhdGljIHZhbHVlIG1hbmRhdG9yeSAuXG4gKlxuICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IHRvIGJlIHByb2Nlc3NlZFxuICogQHJldHVybnMgVHJ1ZSBpZiBpdCBoYXMgYSBzdGF0aWMgbWFuZGF0b3J5IGZpZWxkIGNvbnRyb2wuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXRpY2FsbHlNYW5kYXRvcnkodGFyZ2V0OiBEYXRhRmllbGQgfCBEYXRhRmllbGRGb3JBbm5vdGF0aW9uIHwgRGF0YVBvaW50IHwgUHJvcGVydHkpOiBib29sZWFuIHtcblx0Y29uc3QgZmllbGRGaWVsZENvbnRyb2wgPSB0YXJnZXQuYW5ub3RhdGlvbnM/LkNvbW1vbj8uRmllbGRDb250cm9sO1xuXHRpZiAoaXNQcm9wZXJ0eSh0YXJnZXQpIHx8IGlzRGF0YUZpZWxkRm9yQW5ub3RhdGlvbih0YXJnZXQgYXMgRGF0YUZpZWxkRm9yQW5ub3RhdGlvbikpIHtcblx0XHRyZXR1cm4gZmllbGRGaWVsZENvbnRyb2w/LnRvU3RyaW5nKCkgPT09IFwiQ29tbW9uLkZpZWxkQ29udHJvbFR5cGUvTWFuZGF0b3J5XCI7XG5cdH1cblx0aWYgKGlzRGF0YUZpZWxkKHRhcmdldCkpIHtcblx0XHRpZiAoZmllbGRGaWVsZENvbnRyb2w/LnRvU3RyaW5nKCkgPT09IFwiQ29tbW9uLkZpZWxkQ29udHJvbFR5cGUvTWFuZGF0b3J5XCIpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRpZiAoZmllbGRGaWVsZENvbnRyb2w/LnRvU3RyaW5nKCkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0Py5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRmllbGRDb250cm9sPy50b1N0cmluZygpID09PSBcIkNvbW1vbi5GaWVsZENvbnRyb2xUeXBlL01hbmRhdG9yeVwiO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gKHRhcmdldCBhcyBEYXRhUG9pbnQpPy5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRmllbGRDb250cm9sPy50b1N0cmluZygpID09PSBcIkNvbW1vbi5GaWVsZENvbnRyb2xUeXBlL01hbmRhdG9yeVwiO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgYmluZGluZyBleHByZXNzaW9uIHRvIGNoZWNrIGlmIHRoZSBwcm9wZXJ0eSBpcyByZWFkIG9ubHkgb3Igbm90LlxuICpcbiAqIEBwYXJhbSBvVGFyZ2V0IFRoZSB0YXJnZXQgcHJvcGVydHkgb3IgRGF0YUZpZWxkXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIEFycmF5IG9mIG5hdmlnYXRpb24gcHJvcGVydGllcyBwb2ludGluZyB0byB0aGUgbG9jYXRpb24gb2YgZmllbGQgY29udHJvbCBwcm9wZXJ0eVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiByZXNvbHZpbmcgdG8gYSBCb29sZWFuIGJlaW5nIHRydWUgaWYgaXQncyByZWFkIG9ubHlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzUmVxdWlyZWRFeHByZXNzaW9uID0gZnVuY3Rpb24gKG9UYXJnZXQ6IFByb3BlcnR5LCByZWxhdGl2ZVBhdGg/OiBzdHJpbmdbXSk6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IG9GaWVsZENvbnRyb2xWYWx1ZSA9IG9UYXJnZXQuYW5ub3RhdGlvbnM/LkNvbW1vbj8uRmllbGRDb250cm9sO1xuXHRjb25zdCBmaWVsZENvbnRyb2xWYWx1ZSA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihvRmllbGRDb250cm9sVmFsdWUsIHJlbGF0aXZlUGF0aCk7XG5cdHJldHVybiBfaXNSZXF1aXJlZEV4cHJlc3Npb24oZmllbGRDb250cm9sVmFsdWUpO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0byBjaGVjayBpZiBhY3Rpb24gcGFyYW1ldGVyIGlzIHJlcXVpcmVkLlxuICpcbiAqIEBwYXJhbSBhY3Rpb25QYXJhbWV0ZXIgQWN0aW9uIHBhcmFtZXRlclxuICogQHBhcmFtIGFjdGlvblRhcmdldCBBY3Rpb24gZGVmaW5pdGlvblxuICogQHBhcmFtIGNvbnZlcnRlZFR5cGVzIENvbnZlcnRlZCBNZXRhZGF0YVxuICogQHJldHVybnMgSXMgcmVxdWlyZWQgYmluZGluZyBleHByZXNzaW9uIGZvciBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBpc0FjdGlvblBhcmFtZXRlclJlcXVpcmVkRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChcblx0YWN0aW9uUGFyYW1ldGVyOiBBY3Rpb25QYXJhbWV0ZXIsXG5cdGFjdGlvblRhcmdldDogQWN0aW9uLFxuXHRjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGFcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSA9IGFjdGlvblRhcmdldC5pc0JvdW5kID8gYWN0aW9uVGFyZ2V0LnBhcmFtZXRlcnNbMF0/LmZ1bGx5UXVhbGlmaWVkTmFtZSA6IHVuZGVmaW5lZDtcblx0Y29uc3QgZmllbGRDb250cm9sVmFsdWUgPSBhY3Rpb25QYXJhbWV0ZXIuYW5ub3RhdGlvbnM/LkNvbW1vbj8uRmllbGRDb250cm9sO1xuXHRjb25zdCBmaWVsZENvbnRyb2xFeHAgPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZmllbGRDb250cm9sVmFsdWUsIFtdLCB1bmRlZmluZWQsIChwYXRoOiBzdHJpbmcpID0+XG5cdFx0YmluZGluZ0NvbnRleHRQYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZWRUeXBlcywgYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lKVxuXHQpO1xuXG5cdHJldHVybiBfaXNSZXF1aXJlZEV4cHJlc3Npb24oZmllbGRDb250cm9sRXhwKTtcbn07XG5cbmNvbnN0IF9pc1JlcXVpcmVkRXhwcmVzc2lvbiA9IChmaWVsZENvbnRyb2xFeHA6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmcgfCBudW1iZXI+KTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0+IHtcblx0cmV0dXJuIG9yKFxuXHRcdGlzQ29uc3RhbnQoZmllbGRDb250cm9sRXhwKSAmJiBlcXVhbChmaWVsZENvbnRyb2xFeHAsIFwiQ29tbW9uLkZpZWxkQ29udHJvbFR5cGUvTWFuZGF0b3J5XCIpLFxuXHRcdGVxdWFsKGZpZWxkQ29udHJvbEV4cCwgNyksXG5cdFx0ZXF1YWwoZmllbGRDb250cm9sRXhwLCBcIjdcIilcblx0KTtcbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7RUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPLE1BQU1BLG9CQUFvQixHQUFHLFVBQVVDLE9BQTZCLEVBQUVDLFlBQXVCLEVBQXFDO0lBQUE7SUFDeEksTUFBTUMsc0JBQXNCLEdBQUdDLDJCQUEyQixDQUFDSCxPQUFPLGFBQVBBLE9BQU8sK0NBQVBBLE9BQU8sQ0FBRUksV0FBVyxrRkFBcEIscUJBQXNCQyxNQUFNLDBEQUE1QixzQkFBOEJDLFlBQVksRUFBRUwsWUFBWSxDQUFDO0lBQ3BILElBQUksQ0FBQ00sVUFBVSxDQUFDTCxzQkFBc0IsQ0FBQyxFQUFFO01BQ3hDLE9BQU9NLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDUCxzQkFBc0IsRUFBRSxDQUFDLENBQUMsRUFBRU8sS0FBSyxDQUFDUCxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoRixDQUFDLE1BQU07TUFDTixPQUFPTSxFQUFFLENBQ1JDLEtBQUssQ0FBQ1Asc0JBQXNCLEVBQUUsa0NBQWtDLENBQUMsRUFDakVPLEtBQUssQ0FBQ1Asc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQ2hDTyxLQUFLLENBQUNQLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyxDQUNs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
141
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1JlYWRPbmx5RXhwcmVzc2lvbiIsIm9UYXJnZXQiLCJyZWxhdGl2ZVBhdGgiLCJmaWVsZENvbnRyb2xFeHByZXNzaW9uIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJGaWVsZENvbnRyb2wiLCJpc0NvbnN0YW50Iiwib3IiLCJlcXVhbCIsImlzRGlzYWJsZWRFeHByZXNzaW9uIiwiaXNOb25FZGl0YWJsZUV4cHJlc3Npb24iLCJoYXNGaWVsZENvbnRyb2xOb3RNYW5kYXRvcnkiLCJkYXRhRmllbGRGb3JBbm5vdGF0aW9uIiwiZmllbGRDb250cm9sIiwidG9TdHJpbmciLCJpc1N0YXRpY2FsbHlNYW5kYXRvcnkiLCJ0YXJnZXQiLCJmaWVsZEZpZWxkQ29udHJvbCIsImlzUHJvcGVydHkiLCJpc0RhdGFGaWVsZEZvckFubm90YXRpb24iLCJpc0RhdGFGaWVsZCIsInVuZGVmaW5lZCIsIlZhbHVlIiwiJHRhcmdldCIsImlzUmVxdWlyZWRFeHByZXNzaW9uIiwib0ZpZWxkQ29udHJvbFZhbHVlIiwiZmllbGRDb250cm9sVmFsdWUiLCJfaXNSZXF1aXJlZEV4cHJlc3Npb24iLCJpc0FjdGlvblBhcmFtZXRlclJlcXVpcmVkRXhwcmVzc2lvbiIsImFjdGlvblBhcmFtZXRlciIsImFjdGlvblRhcmdldCIsImNvbnZlcnRlZFR5cGVzIiwiYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lIiwiaXNCb3VuZCIsInBhcmFtZXRlcnMiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJmaWVsZENvbnRyb2xFeHAiLCJwYXRoIiwiYmluZGluZ0NvbnRleHRQYXRoVmlzaXRvciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmllbGRDb250cm9sSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBBY3Rpb25QYXJhbWV0ZXIsIENvbnZlcnRlZE1ldGFkYXRhLCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUge1xuXHREYXRhRmllbGQsXG5cdERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdERhdGFGaWVsZEZvckFubm90YXRpb24sXG5cdERhdGFQb2ludCxcblx0RGF0YVBvaW50VHlwZSxcblx0RGF0YVBvaW50VHlwZVR5cGVzXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGVxdWFsLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sIGlzQ29uc3RhbnQsIG9yIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGlzRGF0YUZpZWxkLCBpc0RhdGFGaWVsZEZvckFubm90YXRpb24gfSBmcm9tIFwiLi4vY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IGJpbmRpbmdDb250ZXh0UGF0aFZpc2l0b3IgfSBmcm9tIFwiLi4vaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgeyBpc1Byb3BlcnR5IH0gZnJvbSBcIi4uL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuXG4vKipcbiAqIENyZWF0ZSB0aGUgYmluZGluZyBleHByZXNzaW9uIHRvIGNoZWNrIGlmIHRoZSBwcm9wZXJ0eSBpcyByZWFkIG9ubHkgb3Igbm90LlxuICpcbiAqIEBwYXJhbSBvVGFyZ2V0IFRoZSB0YXJnZXQgcHJvcGVydHkgb3IgRGF0YUZpZWxkXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIEFycmF5IG9mIG5hdmlnYXRpb24gcHJvcGVydGllcyBwb2ludGluZyB0byB0aGUgbG9jYXRpb24gb2YgZmllbGQgY29udHJvbCBwcm9wZXJ0eVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiByZXNvbHZpbmcgdG8gYSBCb29sZWFuIGJlaW5nIHRydWUgaWYgaXQncyByZWFkIG9ubHlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzUmVhZE9ubHlFeHByZXNzaW9uID0gZnVuY3Rpb24gKFxuXHRvVGFyZ2V0OiBQcm9wZXJ0eSB8IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCBEYXRhUG9pbnRUeXBlVHlwZXMgfCB1bmRlZmluZWQsXG5cdHJlbGF0aXZlUGF0aD86IHN0cmluZ1tdXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRjb25zdCBmaWVsZENvbnRyb2xFeHByZXNzaW9uID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKG9UYXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbCwgcmVsYXRpdmVQYXRoKTtcblx0aWYgKCFpc0NvbnN0YW50KGZpZWxkQ29udHJvbEV4cHJlc3Npb24pKSB7XG5cdFx0cmV0dXJuIG9yKGVxdWFsKGZpZWxkQ29udHJvbEV4cHJlc3Npb24sIDEpLCBlcXVhbChmaWVsZENvbnRyb2xFeHByZXNzaW9uLCBcIjFcIikpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBvcihcblx0XHRcdGVxdWFsKGZpZWxkQ29udHJvbEV4cHJlc3Npb24sIFwiQ29tbW9uLkZpZWxkQ29udHJvbFR5cGUvUmVhZE9ubHlcIiksXG5cdFx0XHRlcXVhbChmaWVsZENvbnRyb2xFeHByZXNzaW9uLCAxKSxcblx0XHRcdGVxdWFsKGZpZWxkQ29udHJvbEV4cHJlc3Npb24sIFwiMVwiKVxuXHRcdCk7XG5cdH1cbn07XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gdG8gY2hlY2sgaWYgdGhlIHByb3BlcnR5IGlzIGRpc2FibGVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gb1RhcmdldCBUaGUgdGFyZ2V0IHByb3BlcnR5IG9yIERhdGFGaWVsZFxuICogQHBhcmFtIHJlbGF0aXZlUGF0aCBBcnJheSBvZiBuYXZpZ2F0aW9uIHByb3BlcnRpZXMgcG9pbnRpbmcgdG8gdGhlIGxvY2F0aW9uIG9mIGZpZWxkIGNvbnRyb2wgcHJvcGVydHlcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gcmVzb2x2aW5nIHRvIGEgQm9vbGVhbiBiZWluZyB0cnVlIGlmIGl0J3MgZGlzYWJsZWRcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRGlzYWJsZWRFeHByZXNzaW9uID0gZnVuY3Rpb24gKFxuXHRvVGFyZ2V0OiBQcm9wZXJ0eSB8IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCBEYXRhUG9pbnRUeXBlVHlwZXMgfCB1bmRlZmluZWQsXG5cdHJlbGF0aXZlUGF0aD86IHN0cmluZ1tdXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRjb25zdCBmaWVsZENvbnRyb2xFeHByZXNzaW9uID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKG9UYXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbCwgcmVsYXRpdmVQYXRoKTtcblx0aWYgKCFpc0NvbnN0YW50KGZpZWxkQ29udHJvbEV4cHJlc3Npb24pKSB7XG5cdFx0cmV0dXJuIG9yKGVxdWFsKGZpZWxkQ29udHJvbEV4cHJlc3Npb24sIDApLCBlcXVhbChmaWVsZENvbnRyb2xFeHByZXNzaW9uLCBcIjBcIikpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBvcihcblx0XHRcdGVxdWFsKGZpZWxkQ29udHJvbEV4cHJlc3Npb24sIFwiQ29tbW9uLkZpZWxkQ29udHJvbFR5cGUvSW5hcHBsaWNhYmxlXCIpLFxuXHRcdFx0ZXF1YWwoZmllbGRDb250cm9sRXhwcmVzc2lvbiwgMCksXG5cdFx0XHRlcXVhbChmaWVsZENvbnRyb2xFeHByZXNzaW9uLCBcIjBcIilcblx0XHQpO1xuXHR9XG59O1xuXG4vKipcbiAqIENyZWF0ZSB0aGUgYmluZGluZyBleHByZXNzaW9uIHRvIGNoZWNrIGlmIHRoZSBwcm9wZXJ0eSBpcyBlZGl0YWJsZSBvciBub3QuXG4gKlxuICogQHBhcmFtIG9UYXJnZXQgVGhlIHRhcmdldCBwcm9wZXJ0eSBvciBEYXRhRmllbGRcbiAqIEBwYXJhbSByZWxhdGl2ZVBhdGggQXJyYXkgb2YgbmF2aWdhdGlvbiBwcm9wZXJ0aWVzIHBvaW50aW5nIHRvIHRoZSBsb2NhdGlvbiBvZiBmaWVsZCBjb250cm9sIHByb3BlcnR5XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIHJlc29sdmluZyB0byBhIEJvb2xlYW4gYmVpbmcgdHJ1ZSBpZiBpdCdzIG5vdCBlZGl0YWJsZVxuICovXG5leHBvcnQgY29uc3QgaXNOb25FZGl0YWJsZUV4cHJlc3Npb24gPSBmdW5jdGlvbiAoXG5cdG9UYXJnZXQ6IFByb3BlcnR5IHwgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB8IERhdGFQb2ludFR5cGVUeXBlcyB8IHVuZGVmaW5lZCxcblx0cmVsYXRpdmVQYXRoPzogc3RyaW5nW11cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBvcihpc1JlYWRPbmx5RXhwcmVzc2lvbihvVGFyZ2V0LCByZWxhdGl2ZVBhdGgpLCBpc0Rpc2FibGVkRXhwcmVzc2lvbihvVGFyZ2V0LCByZWxhdGl2ZVBhdGgpKTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgZGF0YUZpZWxkRm9yQW5ub3RhdGlvbiBoYXMgYSBmaWVsZENvbnRyb2wgdGhhdCBpcyBub3Qgc2V0IHRvIE1hbmRhdG9yeS5cbiAqXG4gKiBAcGFyYW0gZGF0YUZpZWxkRm9yQW5ub3RhdGlvbiBUaGUgZGF0YUZpZWxkRm9yQW5ub3RhdGlvbiBiZWluZyBwcm9jZXNzZWRcbiAqIEByZXR1cm5zIFRydWUgaWYgaXQgaGFzIGEgZmllbGRDb250cm9sIHNldCBhbmQgbm90IE1hbmRhdG9yeS5cbiAqL1xuZXhwb3J0IGNvbnN0IGhhc0ZpZWxkQ29udHJvbE5vdE1hbmRhdG9yeSA9IGZ1bmN0aW9uIChkYXRhRmllbGRGb3JBbm5vdGF0aW9uOiBEYXRhRmllbGRGb3JBbm5vdGF0aW9uKTogYm9vbGVhbiB7XG5cdGNvbnN0IGZpZWxkQ29udHJvbCA9IGRhdGFGaWVsZEZvckFubm90YXRpb24uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRmllbGRDb250cm9sO1xuXHRyZXR1cm4gZmllbGRDb250cm9sICYmIGZpZWxkQ29udHJvbC50b1N0cmluZygpICE9PSBcIkNvbW1vbi5GaWVsZENvbnRyb2xUeXBlL01hbmRhdG9yeVwiID8gdHJ1ZSA6IGZhbHNlO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSB0YXJnZXQgaGFzIGEgZmllbGQgY29udHJvbCBhbm5vdGF0aW9uIHdpdGggc3RhdGljIHZhbHVlIG1hbmRhdG9yeSAuXG4gKlxuICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IHRvIGJlIHByb2Nlc3NlZFxuICogQHJldHVybnMgVHJ1ZSBpZiBpdCBoYXMgYSBzdGF0aWMgbWFuZGF0b3J5IGZpZWxkIGNvbnRyb2wuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXRpY2FsbHlNYW5kYXRvcnkodGFyZ2V0OiBEYXRhRmllbGQgfCBEYXRhRmllbGRGb3JBbm5vdGF0aW9uIHwgRGF0YVBvaW50IHwgUHJvcGVydHkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0Y29uc3QgZmllbGRGaWVsZENvbnRyb2wgPSB0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbDtcblx0aWYgKGlzUHJvcGVydHkodGFyZ2V0KSB8fCBpc0RhdGFGaWVsZEZvckFubm90YXRpb24odGFyZ2V0IGFzIERhdGFGaWVsZEZvckFubm90YXRpb24pKSB7XG5cdFx0cmV0dXJuIGZpZWxkRmllbGRDb250cm9sPy50b1N0cmluZygpID09PSBcIkNvbW1vbi5GaWVsZENvbnRyb2xUeXBlL01hbmRhdG9yeVwiO1xuXHR9XG5cdGlmIChpc0RhdGFGaWVsZCh0YXJnZXQpKSB7XG5cdFx0aWYgKGZpZWxkRmllbGRDb250cm9sPy50b1N0cmluZygpID09PSBcIkNvbW1vbi5GaWVsZENvbnRyb2xUeXBlL01hbmRhdG9yeVwiKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkRmllbGRDb250cm9sPy50b1N0cmluZygpICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRhcmdldD8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbD8udG9TdHJpbmcoKSA9PT0gXCJDb21tb24uRmllbGRDb250cm9sVHlwZS9NYW5kYXRvcnlcIjtcblx0XHR9XG5cdH1cblx0cmV0dXJuICh0YXJnZXQgYXMgRGF0YVBvaW50KT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbD8udG9TdHJpbmcoKSA9PT0gXCJDb21tb24uRmllbGRDb250cm9sVHlwZS9NYW5kYXRvcnlcIjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0byBjaGVjayBpZiB0aGUgcHJvcGVydHkgaXMgcmVhZCBvbmx5IG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gb1RhcmdldCBUaGUgdGFyZ2V0IHByb3BlcnR5IG9yIERhdGFGaWVsZFxuICogQHBhcmFtIHJlbGF0aXZlUGF0aCBBcnJheSBvZiBuYXZpZ2F0aW9uIHByb3BlcnRpZXMgcG9pbnRpbmcgdG8gdGhlIGxvY2F0aW9uIG9mIGZpZWxkIGNvbnRyb2wgcHJvcGVydHlcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gcmVzb2x2aW5nIHRvIGEgQm9vbGVhbiBiZWluZyB0cnVlIGlmIGl0J3MgcmVhZCBvbmx5XG4gKi9cbmV4cG9ydCBjb25zdCBpc1JlcXVpcmVkRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChcblx0b1RhcmdldDogUHJvcGVydHkgfCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzIHwgRGF0YVBvaW50VHlwZSB8IHVuZGVmaW5lZCxcblx0cmVsYXRpdmVQYXRoPzogc3RyaW5nW11cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IG9GaWVsZENvbnRyb2xWYWx1ZSA9IG9UYXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbDtcblx0Y29uc3QgZmllbGRDb250cm9sVmFsdWUgPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ob0ZpZWxkQ29udHJvbFZhbHVlLCByZWxhdGl2ZVBhdGgpO1xuXHRyZXR1cm4gX2lzUmVxdWlyZWRFeHByZXNzaW9uKGZpZWxkQ29udHJvbFZhbHVlKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gdG8gY2hlY2sgaWYgYWN0aW9uIHBhcmFtZXRlciBpcyByZXF1aXJlZC5cbiAqXG4gKiBAcGFyYW0gYWN0aW9uUGFyYW1ldGVyIEFjdGlvbiBwYXJhbWV0ZXJcbiAqIEBwYXJhbSBhY3Rpb25UYXJnZXQgQWN0aW9uIGRlZmluaXRpb25cbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBDb252ZXJ0ZWQgTWV0YWRhdGFcbiAqIEByZXR1cm5zIElzIHJlcXVpcmVkIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgcGFyYW1ldGVyLlxuICovXG5leHBvcnQgY29uc3QgaXNBY3Rpb25QYXJhbWV0ZXJSZXF1aXJlZEV4cHJlc3Npb24gPSBmdW5jdGlvbiAoXG5cdGFjdGlvblBhcmFtZXRlcjogQWN0aW9uUGFyYW1ldGVyLFxuXHRhY3Rpb25UYXJnZXQ6IEFjdGlvbixcblx0Y29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRjb25zdCBiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWUgPSBhY3Rpb25UYXJnZXQuaXNCb3VuZCA/IGFjdGlvblRhcmdldC5wYXJhbWV0ZXJzWzBdPy5mdWxseVF1YWxpZmllZE5hbWUgOiB1bmRlZmluZWQ7XG5cdGNvbnN0IGZpZWxkQ29udHJvbFZhbHVlID0gYWN0aW9uUGFyYW1ldGVyLmFubm90YXRpb25zPy5Db21tb24/LkZpZWxkQ29udHJvbDtcblx0Y29uc3QgZmllbGRDb250cm9sRXhwID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGZpZWxkQ29udHJvbFZhbHVlLCBbXSwgdW5kZWZpbmVkLCAocGF0aDogc3RyaW5nKSA9PlxuXHRcdGJpbmRpbmdDb250ZXh0UGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVkVHlwZXMsIGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSlcblx0KTtcblxuXHRyZXR1cm4gX2lzUmVxdWlyZWRFeHByZXNzaW9uKGZpZWxkQ29udHJvbEV4cCk7XG59O1xuXG5jb25zdCBfaXNSZXF1aXJlZEV4cHJlc3Npb24gPSAoZmllbGRDb250cm9sRXhwOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nIHwgbnVtYmVyPik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiA9PiB7XG5cdHJldHVybiBvcihcblx0XHRpc0NvbnN0YW50KGZpZWxkQ29udHJvbEV4cCkgJiYgZXF1YWwoZmllbGRDb250cm9sRXhwLCBcIkNvbW1vbi5GaWVsZENvbnRyb2xUeXBlL01hbmRhdG9yeVwiKSxcblx0XHRlcXVhbChmaWVsZENvbnRyb2xFeHAsIDcpLFxuXHRcdGVxdWFsKGZpZWxkQ29udHJvbEV4cCwgXCI3XCIpXG5cdCk7XG59O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7O0VBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDTyxNQUFNQSxvQkFBb0IsR0FBRyxVQUNuQ0MsT0FBMkUsRUFDM0VDLFlBQXVCLEVBQ2E7SUFBQTtJQUNwQyxNQUFNQyxzQkFBc0IsR0FBR0MsMkJBQTJCLENBQUNILE9BQU8sYUFBUEEsT0FBTywrQ0FBUEEsT0FBTyxDQUFFSSxXQUFXLGtGQUFwQixxQkFBc0JD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
@@ -1,5 +1,12 @@
1
1
  import type { Action, ActionParameter, ConvertedMetadata, Property } from "@sap-ux/vocabularies-types";
2
- import type { DataField, DataFieldForAnnotation, DataPoint } from "@sap-ux/vocabularies-types/vocabularies/UI";
2
+ import type {
3
+ DataField,
4
+ DataFieldAbstractTypes,
5
+ DataFieldForAnnotation,
6
+ DataPoint,
7
+ DataPointType,
8
+ DataPointTypeTypes
9
+ } from "@sap-ux/vocabularies-types/vocabularies/UI";
3
10
  import type { BindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
4
11
  import { equal, getExpressionFromAnnotation, isConstant, or } from "sap/fe/core/helpers/BindingToolkit";
5
12
  import { isDataField, isDataFieldForAnnotation } from "../converters/annotations/DataField";
@@ -13,7 +20,10 @@ import { isProperty } from "../helpers/TypeGuards";
13
20
  * @param relativePath Array of navigation properties pointing to the location of field control property
14
21
  * @returns The binding expression resolving to a Boolean being true if it's read only
15
22
  */
16
- export const isReadOnlyExpression = function (oTarget: Property | undefined, relativePath?: string[]): BindingToolkitExpression<boolean> {
23
+ export const isReadOnlyExpression = function (
24
+ oTarget: Property | DataFieldAbstractTypes | DataPointTypeTypes | undefined,
25
+ relativePath?: string[]
26
+ ): BindingToolkitExpression<boolean> {
17
27
  const fieldControlExpression = getExpressionFromAnnotation(oTarget?.annotations?.Common?.FieldControl, relativePath);
18
28
  if (!isConstant(fieldControlExpression)) {
19
29
  return or(equal(fieldControlExpression, 1), equal(fieldControlExpression, "1"));
@@ -33,7 +43,10 @@ export const isReadOnlyExpression = function (oTarget: Property | undefined, rel
33
43
  * @param relativePath Array of navigation properties pointing to the location of field control property
34
44
  * @returns The binding expression resolving to a Boolean being true if it's disabled
35
45
  */
36
- export const isDisabledExpression = function (oTarget: Property, relativePath?: string[]): BindingToolkitExpression<boolean> {
46
+ export const isDisabledExpression = function (
47
+ oTarget: Property | DataFieldAbstractTypes | DataPointTypeTypes | undefined,
48
+ relativePath?: string[]
49
+ ): BindingToolkitExpression<boolean> {
37
50
  const fieldControlExpression = getExpressionFromAnnotation(oTarget?.annotations?.Common?.FieldControl, relativePath);
38
51
  if (!isConstant(fieldControlExpression)) {
39
52
  return or(equal(fieldControlExpression, 0), equal(fieldControlExpression, "0"));
@@ -53,7 +66,10 @@ export const isDisabledExpression = function (oTarget: Property, relativePath?:
53
66
  * @param relativePath Array of navigation properties pointing to the location of field control property
54
67
  * @returns The binding expression resolving to a Boolean being true if it's not editable
55
68
  */
56
- export const isNonEditableExpression = function (oTarget: Property, relativePath?: string[]): BindingToolkitExpression<boolean> {
69
+ export const isNonEditableExpression = function (
70
+ oTarget: Property | DataFieldAbstractTypes | DataPointTypeTypes | undefined,
71
+ relativePath?: string[]
72
+ ): BindingToolkitExpression<boolean> {
57
73
  return or(isReadOnlyExpression(oTarget, relativePath), isDisabledExpression(oTarget, relativePath));
58
74
  };
59
75
 
@@ -74,8 +90,8 @@ export const hasFieldControlNotMandatory = function (dataFieldForAnnotation: Dat
74
90
  * @param target The target to be processed
75
91
  * @returns True if it has a static mandatory field control.
76
92
  */
77
- export function isStaticallyMandatory(target: DataField | DataFieldForAnnotation | DataPoint | Property): boolean {
78
- const fieldFieldControl = target.annotations?.Common?.FieldControl;
93
+ export function isStaticallyMandatory(target: DataField | DataFieldForAnnotation | DataPoint | Property | undefined): boolean {
94
+ const fieldFieldControl = target?.annotations?.Common?.FieldControl;
79
95
  if (isProperty(target) || isDataFieldForAnnotation(target as DataFieldForAnnotation)) {
80
96
  return fieldFieldControl?.toString() === "Common.FieldControlType/Mandatory";
81
97
  }
@@ -99,8 +115,11 @@ export function isStaticallyMandatory(target: DataField | DataFieldForAnnotation
99
115
  * @param relativePath Array of navigation properties pointing to the location of field control property
100
116
  * @returns The binding expression resolving to a Boolean being true if it's read only
101
117
  */
102
- export const isRequiredExpression = function (oTarget: Property, relativePath?: string[]): BindingToolkitExpression<boolean> {
103
- const oFieldControlValue = oTarget.annotations?.Common?.FieldControl;
118
+ export const isRequiredExpression = function (
119
+ oTarget: Property | DataFieldAbstractTypes | DataPointType | undefined,
120
+ relativePath?: string[]
121
+ ): BindingToolkitExpression<boolean> {
122
+ const oFieldControlValue = oTarget?.annotations?.Common?.FieldControl;
104
123
  const fieldControlValue = getExpressionFromAnnotation(oFieldControlValue, relativePath);
105
124
  return _isRequiredExpression(fieldControlValue);
106
125
  };