@sapui5/sap.fe.core 1.124.2 → 1.126.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 (300) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +5 -1
  3. package/src/sap/fe/core/ActionRuntime.js +2 -2
  4. package/src/sap/fe/core/ActionRuntime.ts +4 -4
  5. package/src/sap/fe/core/AppComponent.js +2 -2
  6. package/src/sap/fe/core/AppComponent.ts +1 -1
  7. package/src/sap/fe/core/AppStateHandler.js +2 -2
  8. package/src/sap/fe/core/AppStateHandler.ts +1 -1
  9. package/src/sap/fe/core/BaseController.js +2 -2
  10. package/src/sap/fe/core/BaseController.ts +1 -1
  11. package/src/sap/fe/core/CommonUtils.js +3 -3
  12. package/src/sap/fe/core/CommonUtils.ts +12 -15
  13. package/src/sap/fe/core/ExtensionAPI.js +2 -2
  14. package/src/sap/fe/core/ExtensionAPI.ts +4 -3
  15. package/src/sap/fe/core/PageController.js +2 -2
  16. package/src/sap/fe/core/PageController.ts +1 -1
  17. package/src/sap/fe/core/ResourceModel.js +2 -2
  18. package/src/sap/fe/core/ResourceModel.ts +1 -1
  19. package/src/sap/fe/core/ReuseComponent.js +172 -0
  20. package/src/sap/fe/core/ReuseComponent.ts +165 -0
  21. package/src/sap/fe/core/TemplateComponent.js +2 -2
  22. package/src/sap/fe/core/TemplateComponent.ts +5 -1
  23. package/src/sap/fe/core/TemplateModel.js +2 -2
  24. package/src/sap/fe/core/TemplateModel.ts +1 -1
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +92 -6
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +90 -10
  27. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +1 -1
  28. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +1 -1
  29. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +30 -3
  30. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +28 -4
  31. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +10 -16
  32. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +19 -16
  33. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +3 -3
  34. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +5 -5
  35. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +2 -2
  36. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +1 -1
  37. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +17 -5
  38. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +14 -6
  39. package/src/sap/fe/core/controllerextensions/ContextSharing.js +2 -2
  40. package/src/sap/fe/core/controllerextensions/ContextSharing.ts +1 -1
  41. package/src/sap/fe/core/controllerextensions/EditFlow.js +57 -43
  42. package/src/sap/fe/core/controllerextensions/EditFlow.ts +61 -46
  43. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
  44. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
  45. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -11
  46. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +8 -16
  47. package/src/sap/fe/core/controllerextensions/InternalRouting.js +10 -7
  48. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +5 -5
  49. package/src/sap/fe/core/controllerextensions/KPIManagement.js +22 -18
  50. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +28 -23
  51. package/src/sap/fe/core/controllerextensions/MessageHandler.js +4 -4
  52. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +4 -1
  53. package/src/sap/fe/core/controllerextensions/PageReady.js +21 -15
  54. package/src/sap/fe/core/controllerextensions/PageReady.ts +29 -20
  55. package/src/sap/fe/core/controllerextensions/Paginator.js +2 -2
  56. package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -1
  57. package/src/sap/fe/core/controllerextensions/Placeholder.js +12 -6
  58. package/src/sap/fe/core/controllerextensions/Placeholder.ts +15 -1
  59. package/src/sap/fe/core/controllerextensions/Recommendations.js +26 -8
  60. package/src/sap/fe/core/controllerextensions/Recommendations.ts +29 -3
  61. package/src/sap/fe/core/controllerextensions/Routing.js +5 -7
  62. package/src/sap/fe/core/controllerextensions/Routing.ts +4 -4
  63. package/src/sap/fe/core/controllerextensions/Share.js +4 -4
  64. package/src/sap/fe/core/controllerextensions/Share.ts +10 -6
  65. package/src/sap/fe/core/controllerextensions/SideEffects.js +20 -5
  66. package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -2
  67. package/src/sap/fe/core/controllerextensions/Telemetry.js +2 -2
  68. package/src/sap/fe/core/controllerextensions/Telemetry.ts +1 -1
  69. package/src/sap/fe/core/controllerextensions/ViewState.js +79 -81
  70. package/src/sap/fe/core/controllerextensions/ViewState.ts +117 -105
  71. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +3 -3
  72. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +1 -1
  73. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
  74. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +2 -2
  75. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +17 -8
  76. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +8 -2
  77. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  78. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +10 -9
  79. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +15 -10
  80. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +2 -2
  81. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +1 -1
  82. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +130 -158
  83. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +240 -275
  84. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +2 -2
  85. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +1 -1
  86. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +46 -28
  87. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +60 -32
  88. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +2 -2
  89. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -1
  90. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +2 -2
  91. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +27 -3
  92. package/src/sap/fe/core/controls/CommandExecution.js +2 -2
  93. package/src/sap/fe/core/controls/CommandExecution.ts +2 -2
  94. package/src/sap/fe/core/controls/ComponentLoader.js +3 -3
  95. package/src/sap/fe/core/controls/ComponentLoader.ts +2 -2
  96. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +3 -3
  97. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +2 -2
  98. package/src/sap/fe/core/controls/EventDelegateHook.js +2 -2
  99. package/src/sap/fe/core/controls/EventDelegateHook.ts +2 -2
  100. package/src/sap/fe/core/controls/FormElementWrapper.js +51 -6
  101. package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -2
  102. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +3 -3
  103. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +3 -3
  104. package/src/sap/fe/core/converters/ConverterContext.js +4 -2
  105. package/src/sap/fe/core/converters/ConverterContext.ts +5 -2
  106. package/src/sap/fe/core/converters/ManifestSettings.js +8 -2
  107. package/src/sap/fe/core/converters/ManifestSettings.ts +25 -3
  108. package/src/sap/fe/core/converters/ManifestWrapper.js +12 -3
  109. package/src/sap/fe/core/converters/ManifestWrapper.ts +11 -1
  110. package/src/sap/fe/core/converters/MetaModelConverter.js +7 -6
  111. package/src/sap/fe/core/converters/MetaModelConverter.ts +6 -2
  112. package/src/sap/fe/core/converters/annotations/DataField.js +56 -16
  113. package/src/sap/fe/core/converters/annotations/DataField.ts +74 -25
  114. package/src/sap/fe/core/converters/common/AnnotationConverter.js +19 -18
  115. package/src/sap/fe/core/converters/controls/Common/Action.js +5 -5
  116. package/src/sap/fe/core/converters/controls/Common/Action.ts +14 -14
  117. package/src/sap/fe/core/converters/controls/Common/Chart.js +40 -7
  118. package/src/sap/fe/core/converters/controls/Common/Chart.ts +56 -20
  119. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +8 -11
  120. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +23 -27
  121. package/src/sap/fe/core/converters/controls/Common/Form.js +10 -3
  122. package/src/sap/fe/core/converters/controls/Common/Form.ts +13 -4
  123. package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -2
  124. package/src/sap/fe/core/converters/controls/Common/KPI.ts +6 -2
  125. package/src/sap/fe/core/converters/controls/Common/Table.js +137 -48
  126. package/src/sap/fe/core/converters/controls/Common/Table.ts +174 -52
  127. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +73 -21
  128. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +91 -20
  129. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +4 -4
  130. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +2 -2
  131. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +2 -2
  132. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +2 -2
  133. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -3
  134. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +1 -1
  135. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -16
  136. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +18 -17
  137. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +2 -2
  138. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +1 -1
  139. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +9 -9
  140. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +12 -12
  141. package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -7
  142. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +12 -5
  143. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +9 -73
  144. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +4 -74
  145. package/src/sap/fe/core/designtime/AppComponent.designtime.js +5 -10
  146. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +3 -12
  147. package/src/sap/fe/core/formatters/CriticalityFormatter.js +4 -7
  148. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +3 -3
  149. package/src/sap/fe/core/formatters/FiscalFormat.js +5 -3
  150. package/src/sap/fe/core/formatters/FiscalFormat.ts +4 -2
  151. package/src/sap/fe/core/formatters/StandardFormatter.js +2 -2
  152. package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
  153. package/src/sap/fe/core/fpm/Component.js +3 -3
  154. package/src/sap/fe/core/fpm/Component.ts +3 -3
  155. package/src/sap/fe/core/fpm/manifest.json +1 -1
  156. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +2 -2
  157. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +1 -1
  158. package/src/sap/fe/core/helpers/BindingHelper.js +2 -2
  159. package/src/sap/fe/core/helpers/BindingHelper.ts +2 -2
  160. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +2 -2
  161. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +2 -2
  162. package/src/sap/fe/core/helpers/DeleteHelper.js +7 -4
  163. package/src/sap/fe/core/helpers/DeleteHelper.ts +9 -3
  164. package/src/sap/fe/core/helpers/MetaModelFunction.js +5 -5
  165. package/src/sap/fe/core/helpers/MetaModelFunction.ts +2 -2
  166. package/src/sap/fe/core/helpers/MetaPath.js +9 -3
  167. package/src/sap/fe/core/helpers/MetaPath.ts +8 -2
  168. package/src/sap/fe/core/helpers/ModelHelper.js +149 -3
  169. package/src/sap/fe/core/helpers/ModelHelper.ts +202 -6
  170. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +3 -3
  171. package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +2 -2
  172. package/src/sap/fe/core/helpers/TitleHelper.js +4 -4
  173. package/src/sap/fe/core/helpers/TitleHelper.ts +4 -4
  174. package/src/sap/fe/core/library.js +4 -4
  175. package/src/sap/fe/core/library.ts +2 -1
  176. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +11 -3
  177. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +10 -2
  178. package/src/sap/fe/core/messagebundle.properties +8 -57
  179. package/src/sap/fe/core/messagebundle_ar.properties +2 -0
  180. package/src/sap/fe/core/messagebundle_bg.properties +2 -0
  181. package/src/sap/fe/core/messagebundle_ca.properties +2 -0
  182. package/src/sap/fe/core/messagebundle_cnr.properties +2 -0
  183. package/src/sap/fe/core/messagebundle_cs.properties +2 -0
  184. package/src/sap/fe/core/messagebundle_cy.properties +4 -2
  185. package/src/sap/fe/core/messagebundle_da.properties +2 -0
  186. package/src/sap/fe/core/messagebundle_de.properties +2 -0
  187. package/src/sap/fe/core/messagebundle_el.properties +2 -0
  188. package/src/sap/fe/core/messagebundle_en.properties +6 -57
  189. package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
  190. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -36
  191. package/src/sap/fe/core/messagebundle_es.properties +2 -0
  192. package/src/sap/fe/core/messagebundle_es_MX.properties +2 -0
  193. package/src/sap/fe/core/messagebundle_et.properties +2 -0
  194. package/src/sap/fe/core/messagebundle_fi.properties +2 -0
  195. package/src/sap/fe/core/messagebundle_fr.properties +2 -0
  196. package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
  197. package/src/sap/fe/core/messagebundle_hi.properties +2 -0
  198. package/src/sap/fe/core/messagebundle_hr.properties +2 -0
  199. package/src/sap/fe/core/messagebundle_hu.properties +3 -1
  200. package/src/sap/fe/core/messagebundle_id.properties +2 -0
  201. package/src/sap/fe/core/messagebundle_it.properties +2 -0
  202. package/src/sap/fe/core/messagebundle_iw.properties +3 -1
  203. package/src/sap/fe/core/messagebundle_ja.properties +2 -0
  204. package/src/sap/fe/core/messagebundle_kk.properties +2 -0
  205. package/src/sap/fe/core/messagebundle_ko.properties +2 -0
  206. package/src/sap/fe/core/messagebundle_lt.properties +2 -0
  207. package/src/sap/fe/core/messagebundle_lv.properties +2 -0
  208. package/src/sap/fe/core/messagebundle_mk.properties +2 -0
  209. package/src/sap/fe/core/messagebundle_ms.properties +2 -0
  210. package/src/sap/fe/core/messagebundle_nl.properties +2 -0
  211. package/src/sap/fe/core/messagebundle_no.properties +2 -0
  212. package/src/sap/fe/core/messagebundle_pl.properties +2 -0
  213. package/src/sap/fe/core/messagebundle_pt.properties +2 -0
  214. package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -0
  215. package/src/sap/fe/core/messagebundle_ro.properties +2 -0
  216. package/src/sap/fe/core/messagebundle_ru.properties +2 -0
  217. package/src/sap/fe/core/messagebundle_sh.properties +64 -62
  218. package/src/sap/fe/core/messagebundle_sk.properties +2 -0
  219. package/src/sap/fe/core/messagebundle_sl.properties +2 -0
  220. package/src/sap/fe/core/messagebundle_sr.properties +2 -0
  221. package/src/sap/fe/core/messagebundle_sv.properties +2 -0
  222. package/src/sap/fe/core/messagebundle_th.properties +2 -0
  223. package/src/sap/fe/core/messagebundle_tr.properties +2 -0
  224. package/src/sap/fe/core/messagebundle_uk.properties +3 -1
  225. package/src/sap/fe/core/messagebundle_vi.properties +2 -0
  226. package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
  227. package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
  228. package/src/sap/fe/core/operationsHelper.js +3 -3
  229. package/src/sap/fe/core/operationsHelper.ts +2 -2
  230. package/src/sap/fe/core/rootView/Fcl.controller.js +3 -3
  231. package/src/sap/fe/core/rootView/Fcl.controller.ts +2 -2
  232. package/src/sap/fe/core/rootView/NavContainer.controller.js +2 -2
  233. package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
  234. package/src/sap/fe/core/rootView/RootViewBaseController.js +114 -92
  235. package/src/sap/fe/core/rootView/RootViewBaseController.ts +120 -106
  236. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +2 -2
  237. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.ts +1 -1
  238. package/src/sap/fe/core/services/NavigationServiceFactory.js +6 -4
  239. package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -3
  240. package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
  241. package/src/sap/fe/core/services/RoutingServiceFactory.ts +1 -1
  242. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  243. package/src/sap/fe/core/services/ShellServicesFactory.ts +12 -2
  244. package/src/sap/fe/core/services/TelemetryServiceFactory.js +8 -2
  245. package/src/sap/fe/core/services/TelemetryServiceFactory.ts +7 -1
  246. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +16 -9
  247. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +22 -11
  248. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +2 -2
  249. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
  250. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
  251. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  252. package/src/sap/fe/core/templating/ActionHelper.js +2 -2
  253. package/src/sap/fe/core/templating/ActionHelper.ts +2 -2
  254. package/src/sap/fe/core/templating/CommonFormatters.js +2 -2
  255. package/src/sap/fe/core/templating/CommonFormatters.ts +3 -3
  256. package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
  257. package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
  258. package/src/sap/fe/core/templating/DataFieldFormatters.js +4 -4
  259. package/src/sap/fe/core/templating/DataFieldFormatters.ts +2 -2
  260. package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -2
  261. package/src/sap/fe/core/templating/DataModelPathHelper.ts +2 -2
  262. package/src/sap/fe/core/templating/EntityTypeHelper.js +2 -2
  263. package/src/sap/fe/core/templating/EntityTypeHelper.ts +2 -2
  264. package/src/sap/fe/core/templating/FieldControlHelper.js +2 -2
  265. package/src/sap/fe/core/templating/FieldControlHelper.ts +2 -2
  266. package/src/sap/fe/core/templating/SemanticObjectHelper.js +2 -2
  267. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +2 -2
  268. package/src/sap/fe/core/templating/UIFormatters.js +7 -7
  269. package/src/sap/fe/core/templating/UIFormatters.ts +6 -6
  270. package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
  271. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +1 -1
  272. package/src/sap/fe/core/type/Email.js +2 -2
  273. package/src/sap/fe/core/type/Email.ts +1 -1
  274. package/src/sap/fe/core/type/FiscalDate.js +2 -2
  275. package/src/sap/fe/core/type/FiscalDate.ts +1 -1
  276. package/src/sap/fe/core/type/InputMask.js +124 -0
  277. package/src/sap/fe/core/type/InputMask.ts +131 -0
  278. package/ui5.yaml +19 -0
  279. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +0 -81
  280. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +0 -117
  281. package/src/sap/fe/core/helpers/AnnotationEnum.js +0 -33
  282. package/src/sap/fe/core/helpers/AnnotationEnum.ts +0 -21
  283. package/src/sap/fe/core/helpers/BindingToolkit.js +0 -1813
  284. package/src/sap/fe/core/helpers/BindingToolkit.ts +0 -2450
  285. package/src/sap/fe/core/helpers/ClassSupport.js +0 -584
  286. package/src/sap/fe/core/helpers/ClassSupport.ts +0 -697
  287. package/src/sap/fe/core/jsx-runtime/Fragment.js +0 -14
  288. package/src/sap/fe/core/jsx-runtime/Fragment.ts +0 -3
  289. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +0 -93
  290. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +0 -86
  291. package/src/sap/fe/core/jsx-runtime/jsx-control.js +0 -177
  292. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +0 -197
  293. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +0 -237
  294. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +0 -246
  295. package/src/sap/fe/core/jsx-runtime/jsx.js +0 -47
  296. package/src/sap/fe/core/jsx-runtime/jsx.ts +0 -71
  297. package/src/sap/fe/core/jsx-runtime/jsxs.js +0 -10
  298. package/src/sap/fe/core/jsx-runtime/jsxs.ts +0 -3
  299. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +0 -172
  300. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +0 -194
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/model/odata/type/DateTimeWithTimezone"], function (ClassSupport, _DateTimeWithTimezone) {
5
+ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/model/odata/type/DateTimeWithTimezone"], function (ClassSupport, _DateTimeWithTimezone) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _class;
@@ -32,4 +32,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/model/odata/type/Date
32
32
  }(_DateTimeWithTimezone)) || _class);
33
33
  return DateTimeWithTimezone;
34
34
  }, false);
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRlVGltZVdpdGhUaW1lem9uZSIsImRlZmluZVVJNUNsYXNzIiwib0Zvcm1hdE9wdGlvbnMiLCJvQ29uc3RyYWludHMiLCJiU2hvd1RpbWV6b25lRm9yRW1wdHlWYWx1ZXMiLCJzaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcyIsImZvcm1hdFZhbHVlIiwiYVZhbHVlcyIsInNUYXJnZXRUeXBlIiwib1RpbWVzdGFtcCIsInVuZGVmaW5lZCIsIl9EYXRlVGltZVdpdGhUaW1lem9uZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0ZVRpbWVXaXRoVGltZXpvbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBfRGF0ZVRpbWVXaXRoVGltZXpvbmUgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS90eXBlL0RhdGVUaW1lV2l0aFRpbWV6b25lXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLnR5cGUuRGF0ZVRpbWVXaXRoVGltZXpvbmVcIilcbmNsYXNzIERhdGVUaW1lV2l0aFRpbWV6b25lIGV4dGVuZHMgX0RhdGVUaW1lV2l0aFRpbWV6b25lIHtcblx0cHJpdmF0ZSBiU2hvd1RpbWV6b25lRm9yRW1wdHlWYWx1ZXM6IGJvb2xlYW47XG5cblx0Y29uc3RydWN0b3Iob0Zvcm1hdE9wdGlvbnM/OiBvYmplY3QgJiB7IHNob3dUaW1lem9uZUZvckVtcHR5VmFsdWVzPzogYm9vbGVhbiB9LCBvQ29uc3RyYWludHM/OiBvYmplY3QpIHtcblx0XHRzdXBlcihvRm9ybWF0T3B0aW9ucywgb0NvbnN0cmFpbnRzKTtcblx0XHR0aGlzLmJTaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcyA9IG9Gb3JtYXRPcHRpb25zPy5zaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcyA/PyB0cnVlO1xuXHR9XG5cblx0Zm9ybWF0VmFsdWUoYVZhbHVlczogdW5rbm93bltdLCBzVGFyZ2V0VHlwZTogc3RyaW5nKTogdW5rbm93biB8IG51bGwge1xuXHRcdGNvbnN0IG9UaW1lc3RhbXAgPSBhVmFsdWVzICYmIGFWYWx1ZXNbMF07XG5cdFx0aWYgKFxuXHRcdFx0b1RpbWVzdGFtcCA9PT0gdW5kZWZpbmVkIHx8IC8vIGRhdGEgaXMgbm90IHlldCBhdmFpbGFibGVcblx0XHRcdC8vIGlmIHRpbWUgem9uZSBpcyBub3Qgc2hvd24gZmFsc3kgdGltZXN0YW1wcyBjYW5ub3QgYmUgZm9ybWF0dGVkIC0+IHJldHVybiBudWxsXG5cdFx0XHQoIW9UaW1lc3RhbXAgJiYgIXRoaXMuYlNob3dUaW1lem9uZUZvckVtcHR5VmFsdWVzKVxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiBzdXBlci5mb3JtYXRWYWx1ZShhVmFsdWVzLCBzVGFyZ2V0VHlwZSk7XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lV2l0aFRpbWV6b25lO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztNQUlNQSxvQkFBb0IsV0FEekJDLGNBQWMsQ0FBQyx1Q0FBdUMsQ0FBQztJQUFBO0lBSXZELDhCQUFZQyxjQUFrRSxFQUFFQyxZQUFxQixFQUFFO01BQUE7TUFDdEcsMENBQU1ELGNBQWMsRUFBRUMsWUFBWSxDQUFDO01BQ25DLE1BQUtDLDJCQUEyQixHQUFHLENBQUFGLGNBQWMsYUFBZEEsY0FBYyx1QkFBZEEsY0FBYyxDQUFFRywwQkFBMEIsS0FBSSxJQUFJO01BQUM7SUFDdkY7SUFBQztJQUFBLE9BRURDLFdBQVcsR0FBWCxxQkFBWUMsT0FBa0IsRUFBRUMsV0FBbUIsRUFBa0I7TUFDcEUsTUFBTUMsVUFBVSxHQUFHRixPQUFPLElBQUlBLE9BQU8sQ0FBQyxDQUFDLENBQUM7TUFDeEMsSUFDQ0UsVUFBVSxLQUFLQyxTQUFTO01BQUk7TUFDNUI7TUFDQyxDQUFDRCxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUNMLDJCQUE0QixFQUNqRDtRQUNELE9BQU8sSUFBSTtNQUNaO01BQ0Esd0NBQWFFLFdBQVcsWUFBQ0MsT0FBTyxFQUFFQyxXQUFXO0lBQzlDLENBQUM7SUFBQTtFQUFBLEVBbEJpQ0cscUJBQXFCO0VBQUEsT0FvQnpDWCxvQkFBb0I7QUFBQSJ9
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRlVGltZVdpdGhUaW1lem9uZSIsImRlZmluZVVJNUNsYXNzIiwib0Zvcm1hdE9wdGlvbnMiLCJvQ29uc3RyYWludHMiLCJiU2hvd1RpbWV6b25lRm9yRW1wdHlWYWx1ZXMiLCJzaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcyIsImZvcm1hdFZhbHVlIiwiYVZhbHVlcyIsInNUYXJnZXRUeXBlIiwib1RpbWVzdGFtcCIsInVuZGVmaW5lZCIsIl9EYXRlVGltZVdpdGhUaW1lem9uZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0ZVRpbWVXaXRoVGltZXpvbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgX0RhdGVUaW1lV2l0aFRpbWV6b25lIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9EYXRlVGltZVdpdGhUaW1lem9uZVwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS50eXBlLkRhdGVUaW1lV2l0aFRpbWV6b25lXCIpXG5jbGFzcyBEYXRlVGltZVdpdGhUaW1lem9uZSBleHRlbmRzIF9EYXRlVGltZVdpdGhUaW1lem9uZSB7XG5cdHByaXZhdGUgYlNob3dUaW1lem9uZUZvckVtcHR5VmFsdWVzOiBib29sZWFuO1xuXG5cdGNvbnN0cnVjdG9yKG9Gb3JtYXRPcHRpb25zPzogb2JqZWN0ICYgeyBzaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcz86IGJvb2xlYW4gfSwgb0NvbnN0cmFpbnRzPzogb2JqZWN0KSB7XG5cdFx0c3VwZXIob0Zvcm1hdE9wdGlvbnMsIG9Db25zdHJhaW50cyk7XG5cdFx0dGhpcy5iU2hvd1RpbWV6b25lRm9yRW1wdHlWYWx1ZXMgPSBvRm9ybWF0T3B0aW9ucz8uc2hvd1RpbWV6b25lRm9yRW1wdHlWYWx1ZXMgPz8gdHJ1ZTtcblx0fVxuXG5cdGZvcm1hdFZhbHVlKGFWYWx1ZXM6IHVua25vd25bXSwgc1RhcmdldFR5cGU6IHN0cmluZyk6IHVua25vd24gfCBudWxsIHtcblx0XHRjb25zdCBvVGltZXN0YW1wID0gYVZhbHVlcyAmJiBhVmFsdWVzWzBdO1xuXHRcdGlmIChcblx0XHRcdG9UaW1lc3RhbXAgPT09IHVuZGVmaW5lZCB8fCAvLyBkYXRhIGlzIG5vdCB5ZXQgYXZhaWxhYmxlXG5cdFx0XHQvLyBpZiB0aW1lIHpvbmUgaXMgbm90IHNob3duIGZhbHN5IHRpbWVzdGFtcHMgY2Fubm90IGJlIGZvcm1hdHRlZCAtPiByZXR1cm4gbnVsbFxuXHRcdFx0KCFvVGltZXN0YW1wICYmICF0aGlzLmJTaG93VGltZXpvbmVGb3JFbXB0eVZhbHVlcylcblx0XHQpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gc3VwZXIuZm9ybWF0VmFsdWUoYVZhbHVlcywgc1RhcmdldFR5cGUpO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZVdpdGhUaW1lem9uZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7TUFJTUEsb0JBQW9CLFdBRHpCQyxjQUFjLENBQUMsdUNBQXVDLENBQUM7SUFBQTtJQUl2RCw4QkFBWUMsY0FBa0UsRUFBRUMsWUFBcUIsRUFBRTtNQUFBO01BQ3RHLDBDQUFNRCxjQUFjLEVBQUVDLFlBQVksQ0FBQztNQUNuQyxNQUFLQywyQkFBMkIsR0FBRyxDQUFBRixjQUFjLGFBQWRBLGNBQWMsdUJBQWRBLGNBQWMsQ0FBRUcsMEJBQTBCLEtBQUksSUFBSTtNQUFDO0lBQ3ZGO0lBQUM7SUFBQSxPQUVEQyxXQUFXLEdBQVgscUJBQVlDLE9BQWtCLEVBQUVDLFdBQW1CLEVBQWtCO01BQ3BFLE1BQU1DLFVBQVUsR0FBR0YsT0FBTyxJQUFJQSxPQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3hDLElBQ0NFLFVBQVUsS0FBS0MsU0FBUztNQUFJO01BQzVCO01BQ0MsQ0FBQ0QsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDTCwyQkFBNEIsRUFDakQ7UUFDRCxPQUFPLElBQUk7TUFDWjtNQUNBLHdDQUFhRSxXQUFXLFlBQUNDLE9BQU8sRUFBRUMsV0FBVztJQUM5QyxDQUFDO0lBQUE7RUFBQSxFQWxCaUNHLHFCQUFxQjtFQUFBLE9Bb0J6Q1gsb0JBQW9CO0FBQUEifQ==
@@ -1,4 +1,4 @@
1
- import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
1
+ import { defineUI5Class } from "sap/fe/base/ClassSupport";
2
2
  import _DateTimeWithTimezone from "sap/ui/model/odata/type/DateTimeWithTimezone";
3
3
 
4
4
  @defineUI5Class("sap.fe.core.type.DateTimeWithTimezone")
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/core/Lib", "sap/ui/model/odata/type/String", "sap/ui/model/ValidateException"], function (ClassSupport, Library, ODataStringType, ValidateException) {
5
+ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Lib", "sap/ui/model/odata/type/String", "sap/ui/model/ValidateException"], function (ClassSupport, Library, ODataStringType, ValidateException) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _class;
@@ -26,4 +26,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/core/Lib", "sap/ui/mo
26
26
  }(ODataStringType)) || _class);
27
27
  return EmailType;
28
28
  }, false);
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbWFpbFczQ1JlZ2V4cCIsIkVtYWlsVHlwZSIsImRlZmluZVVJNUNsYXNzIiwidmFsaWRhdGVWYWx1ZSIsInNWYWx1ZSIsInRlc3QiLCJWYWxpZGF0ZUV4Y2VwdGlvbiIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJPRGF0YVN0cmluZ1R5cGUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVtYWlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgT0RhdGFTdHJpbmdUeXBlIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9TdHJpbmdcIjtcbmltcG9ydCBWYWxpZGF0ZUV4Y2VwdGlvbiBmcm9tIFwic2FwL3VpL21vZGVsL1ZhbGlkYXRlRXhjZXB0aW9uXCI7XG5cbmNvbnN0IGVtYWlsVzNDUmVnZXhwID0gL15bYS16QS1aMC05LiEjJCUm4oCZKisvPT9eX2B7fH1+LV0rQFthLXpBLVowLTktXSsoPzouW2EtekEtWjAtOS1dKykqJC87XG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS50eXBlLkVtYWlsXCIpXG5jbGFzcyBFbWFpbFR5cGUgZXh0ZW5kcyBPRGF0YVN0cmluZ1R5cGUge1xuXHR2YWxpZGF0ZVZhbHVlKHNWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG5cdFx0aWYgKHNWYWx1ZSAmJiAhZW1haWxXM0NSZWdleHAudGVzdChzVmFsdWUpKSB7XG5cdFx0XHR0aHJvdyBuZXcgVmFsaWRhdGVFeGNlcHRpb24oTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb3JlXCIpIS5nZXRUZXh0KFwiVF9FTUFJTFRZUEVfSU5WQUxJRF9WQUxVRVwiKSk7XG5cdFx0fVxuXHRcdHN1cGVyLnZhbGlkYXRlVmFsdWUoc1ZhbHVlKTtcblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgRW1haWxUeXBlO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztFQUtBLE1BQU1BLGNBQWMsR0FBRyxxRUFBcUU7RUFBQyxJQUV2RkMsU0FBUyxXQURkQyxjQUFjLENBQUMsd0JBQXdCLENBQUM7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBQUEsT0FFeENDLGFBQWEsR0FBYix1QkFBY0MsTUFBYyxFQUFRO01BQ25DLElBQUlBLE1BQU0sSUFBSSxDQUFDSixjQUFjLENBQUNLLElBQUksQ0FBQ0QsTUFBTSxDQUFDLEVBQUU7UUFDM0MsTUFBTSxJQUFJRSxpQkFBaUIsQ0FBQ0MsT0FBTyxDQUFDQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBRUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7TUFDL0c7TUFDQSwyQkFBTU4sYUFBYSxZQUFDQyxNQUFNO0lBQzNCLENBQUM7SUFBQTtFQUFBLEVBTnNCTSxlQUFlO0VBQUEsT0FReEJULFNBQVM7QUFBQSJ9
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbWFpbFczQ1JlZ2V4cCIsIkVtYWlsVHlwZSIsImRlZmluZVVJNUNsYXNzIiwidmFsaWRhdGVWYWx1ZSIsInNWYWx1ZSIsInRlc3QiLCJWYWxpZGF0ZUV4Y2VwdGlvbiIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJPRGF0YVN0cmluZ1R5cGUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVtYWlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IE9EYXRhU3RyaW5nVHlwZSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvU3RyaW5nXCI7XG5pbXBvcnQgVmFsaWRhdGVFeGNlcHRpb24gZnJvbSBcInNhcC91aS9tb2RlbC9WYWxpZGF0ZUV4Y2VwdGlvblwiO1xuXG5jb25zdCBlbWFpbFczQ1JlZ2V4cCA9IC9eW2EtekEtWjAtOS4hIyQlJuKAmSorLz0/Xl9ge3x9fi1dK0BbYS16QS1aMC05LV0rKD86LlthLXpBLVowLTktXSspKiQvO1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUudHlwZS5FbWFpbFwiKVxuY2xhc3MgRW1haWxUeXBlIGV4dGVuZHMgT0RhdGFTdHJpbmdUeXBlIHtcblx0dmFsaWRhdGVWYWx1ZShzVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdGlmIChzVmFsdWUgJiYgIWVtYWlsVzNDUmVnZXhwLnRlc3Qoc1ZhbHVlKSkge1xuXHRcdFx0dGhyb3cgbmV3IFZhbGlkYXRlRXhjZXB0aW9uKExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSEuZ2V0VGV4dChcIlRfRU1BSUxUWVBFX0lOVkFMSURfVkFMVUVcIikpO1xuXHRcdH1cblx0XHRzdXBlci52YWxpZGF0ZVZhbHVlKHNWYWx1ZSk7XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IEVtYWlsVHlwZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7RUFLQSxNQUFNQSxjQUFjLEdBQUcscUVBQXFFO0VBQUMsSUFFdkZDLFNBQVMsV0FEZEMsY0FBYyxDQUFDLHdCQUF3QixDQUFDO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBLE9BRXhDQyxhQUFhLEdBQWIsdUJBQWNDLE1BQWMsRUFBUTtNQUNuQyxJQUFJQSxNQUFNLElBQUksQ0FBQ0osY0FBYyxDQUFDSyxJQUFJLENBQUNELE1BQU0sQ0FBQyxFQUFFO1FBQzNDLE1BQU0sSUFBSUUsaUJBQWlCLENBQUNDLE9BQU8sQ0FBQ0Msb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUVDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO01BQy9HO01BQ0EsMkJBQU1OLGFBQWEsWUFBQ0MsTUFBTTtJQUMzQixDQUFDO0lBQUE7RUFBQSxFQU5zQk0sZUFBZTtFQUFBLE9BUXhCVCxTQUFTO0FBQUEifQ==
@@ -1,4 +1,4 @@
1
- import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
1
+ import { defineUI5Class } from "sap/fe/base/ClassSupport";
2
2
  import Library from "sap/ui/core/Lib";
3
3
  import ODataStringType from "sap/ui/model/odata/type/String";
4
4
  import ValidateException from "sap/ui/model/ValidateException";
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/i18n/date/CalendarType", "sap/fe/core/formatters/FiscalFormat", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/Lib", "sap/ui/model/ValidateException", "sap/ui/model/odata/type/String"], function (CalendarType, FiscalFormat, ClassSupport, Library, ValidateException, ODataStringType) {
5
+ sap.ui.define(["sap/base/i18n/date/CalendarType", "sap/fe/base/ClassSupport", "sap/fe/core/formatters/FiscalFormat", "sap/ui/core/Lib", "sap/ui/model/ValidateException", "sap/ui/model/odata/type/String"], function (CalendarType, ClassSupport, FiscalFormat, Library, ValidateException, ODataStringType) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _class, _class2;
@@ -174,4 +174,4 @@ sap.ui.define(["sap/base/i18n/date/CalendarType", "sap/fe/core/formatters/Fiscal
174
174
  }, _class2)) || _class);
175
175
  return FiscalDate;
176
176
  }, false);
177
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaXNjYWxEYXRlIiwiZGVmaW5lVUk1Q2xhc3MiLCJmb3JtYXRPcHRpb25zIiwiY29uc3RyYWludHMiLCJmaXNjYWxUeXBlIiwibWF4TGVuZ3RoIiwiYW5ub3RhdGlvblR5cGUiLCJmb3JtYXQiLCJkYXRlRm9ybWF0cyIsImZvcm1hdHRlciIsIkZpc2NhbEZvcm1hdCIsImdldERhdGVJbnN0YW5jZSIsImNhbGVuZGFyVHlwZSIsIkNhbGVuZGFyVHlwZSIsIkdyZWdvcmlhbiIsImdldFBhdHRlcm4iLCJmb3JtYXRWYWx1ZSIsInZhbHVlIiwidGFyZ2V0VHlwZSIsInBhcnNlVmFsdWUiLCJzb3VyY2VUeXBlIiwicGFyc2UiLCJ2YWxpZGF0ZVZhbHVlIiwiZXJyb3IiLCJ2YWxpZGF0ZSIsIlZhbGlkYXRlRXhjZXB0aW9uIiwiZ2V0RXJyb3JNZXNzYWdlIiwic1ZhbHVlIiwiZnVsbFllYXIiLCJEYXRlIiwiZ2V0RnVsbFllYXIiLCJ0b1N0cmluZyIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJnZXROYW1lIiwiZ2V0Rm9ybWF0dGVyIiwiT0RhdGFTdHJpbmdUeXBlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaXNjYWxEYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgQ2FsZW5kYXJUeXBlIGZyb20gXCJzYXAvYmFzZS9pMThuL2RhdGUvQ2FsZW5kYXJUeXBlXCI7XG5pbXBvcnQgRmlzY2FsRm9ybWF0IGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL0Zpc2NhbEZvcm1hdFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBMaWJyYXJ5IGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBWYWxpZGF0ZUV4Y2VwdGlvbiBmcm9tIFwic2FwL3VpL21vZGVsL1ZhbGlkYXRlRXhjZXB0aW9uXCI7XG5pbXBvcnQgT0RhdGFTdHJpbmdUeXBlIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9TdHJpbmdcIjtcblxuLyoqXG4gKiBEZWZpbmUgdGhlIFVJNSBjbGFzcyBmb3IgYSB0eXBlIG9mIGZpc2NhbCBkYXRlLlxuICpcbiAqIFRoZSBkYXRhIHR5cGUgRmlzY2FsIERhdGUgc3VwcG9ydHMgdGhlIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcgb2YgZmlzY2FsIGRhdGVzIHRoYXQgZm9sbG93IHRoZSBwYXR0ZXJuICd5TScuXG4gKlxuICogQHNpbmNlIDEuMTEwLjBcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUudHlwZS5GaXNjYWxEYXRlXCIpXG5jbGFzcyBGaXNjYWxEYXRlIGV4dGVuZHMgT0RhdGFTdHJpbmdUeXBlIHtcblx0cHJpdmF0ZSBhbm5vdGF0aW9uVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgZnVsbFllYXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRwcml2YXRlIHN0YXRpYyBkYXRlRm9ybWF0cyA9IHtcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhcl06IFwiWVlZWVwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxQZXJpb2RdOiBcIlBQUFwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyUGVyaW9kXTogXCJZWVlZUFBQXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFF1YXJ0ZXJdOiBcIlFcIixcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclF1YXJ0ZXJdOiBcIllZWVlRXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFdlZWtdOiBcIldXXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJXZWVrXTogXCJZWVlZV1dcIixcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRGF5T2ZGaXNjYWxZZWFyXTogXCJkXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJWYXJpYW50XTogXCJcIlxuXHR9O1xuXG5cdHByaXZhdGUgZm9ybWF0dGVyOiBGaXNjYWxGb3JtYXQgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zIEZvcm1hdCBvcHRpb25zXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zLmZpc2NhbFR5cGUgU3RyaW5nIHdpdGggYSBmaXNjYWwgYW5ub3RhdGlvbiB0eXBlXG5cdCAqIEBwYXJhbSBmb3JtYXRPcHRpb25zLnBhcnNlS2VlcHNFbXB0eVN0cmluZyBXaGV0aGVyIGVtcHR5IHN0cmluZyBzaG91bGQgYmUga2VwdCBvciBub3Rcblx0ICogQHBhcmFtIGNvbnN0cmFpbnRzIENvbnN0cmFpbnRzXG5cdCAqIEBwYXJhbSBjb25zdHJhaW50cy5tYXhMZW5ndGggTWF4aW11bSBsZW5ndGggb2YgdGhlIGZpZWxkXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihmb3JtYXRPcHRpb25zOiB7IGZpc2NhbFR5cGU6IHN0cmluZzsgcGFyc2VLZWVwc0VtcHR5U3RyaW5nPzogYm9vbGVhbiB9LCBjb25zdHJhaW50cz86IHsgbWF4TGVuZ3RoPzogbnVtYmVyIH0pIHtcblx0XHRpZiAoXG5cdFx0XHQoZm9ybWF0T3B0aW9ucy5maXNjYWxUeXBlID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyUGVyaW9kIHx8XG5cdFx0XHRcdGZvcm1hdE9wdGlvbnMuZmlzY2FsVHlwZSA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclF1YXJ0ZXIgfHxcblx0XHRcdFx0Zm9ybWF0T3B0aW9ucy5maXNjYWxUeXBlID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyV2VlaykgJiZcblx0XHRcdGNvbnN0cmFpbnRzPy5tYXhMZW5ndGhcblx0XHQpIHtcblx0XHRcdC8vIFdlIGluY3JlYXNlIG1heExlbmd0aCBmb3IgKzEgZm9yIGFueSBmaXNjYWwgdHlwZSB0aGF0IGhhdmUgZGVsaW1pdGVyIGluIGxvY2FsZSBmb3JtYXQuXG5cdFx0XHQvLyBJdCdzIG5lY2Vzc2FyeSBmb3IgdmFsaWRhdGlvbiB0byB3b3JrIGNvcnJlY3RseS5cblx0XHRcdC8vIEFsc28gZm9yIHZhbGlkYXRpb24gdG8gZnVuY3Rpb24gcHJvcGVybHkgdXNlciBhbHNvIHNob3VsZCBzcGVjaWZ5IGNvbnN0cmFpbnRzLmlzRGlnaXRTZXF1ZW5jZSA9IHRydWVcblx0XHRcdC8vIGlzRGlnaXRTZXF1ZW5jZSBhbmQgbWF4TGVuZ3RoIGNvbWJpbmF0aW9uIGVuc3VyZXMgdGhhdCBtaXNzaW5nIGNoYXJhY3RlcnMgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCBsZWFkaW5nIHplcm9zXG5cdFx0XHQvLyB0aGF0IHdpbGwgZW5zdXJlIHVzZXIgd2lsbCByZWNlaXZlIGNvcnJlY3QgdmFsaWRhdGlvbiByZXN1bHRzLlxuXHRcdFx0Y29uc3RyYWludHMubWF4TGVuZ3RoID0gY29uc3RyYWludHMubWF4TGVuZ3RoICsgMTtcblx0XHR9XG5cdFx0c3VwZXIoZm9ybWF0T3B0aW9ucywgY29uc3RyYWludHMpO1xuXHRcdHRoaXMuYW5ub3RhdGlvblR5cGUgPSBmb3JtYXRPcHRpb25zLmZpc2NhbFR5cGU7XG5cdFx0Y29uc3QgZm9ybWF0ID0gRmlzY2FsRGF0ZS5kYXRlRm9ybWF0c1t0aGlzLmFubm90YXRpb25UeXBlIGFzIGtleW9mIHR5cGVvZiBGaXNjYWxEYXRlLmRhdGVGb3JtYXRzXTtcblx0XHRpZiAoZm9ybWF0KSB7XG5cdFx0XHR0aGlzLmZvcm1hdHRlciA9IEZpc2NhbEZvcm1hdC5nZXREYXRlSW5zdGFuY2Uoe1xuXHRcdFx0XHRmb3JtYXQsXG5cdFx0XHRcdGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlLkdyZWdvcmlhblxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybiBwYXR0ZXJuIGZvciBmaXNjYWwgZGF0ZSB0eXBlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgZmlzY2FsIGRhdGUgcGF0dGVyblxuXHQgKi9cblx0cHVibGljIGdldFBhdHRlcm4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5mb3JtYXR0ZXI/LmdldFBhdHRlcm4oKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGb3JtYXRzIHRoZSBnaXZlbiB2YWx1ZSB0byB0aGUgZ2l2ZW4gZmlzY2FsIHR5cGUuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkXG5cdCAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgb3V0cHV0IHZhbHVlOyA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IGlzIGFsd2F5cyBmb3JtYXR0ZWQgdG8gPGNvZGU+bnVsbDwvY29kZT5cblx0ICogQG92ZXJyaWRlXG5cdCAqL1xuXHRwdWJsaWMgZm9ybWF0VmFsdWUodmFsdWU6IHN0cmluZywgdGFyZ2V0VHlwZTogc3RyaW5nKTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZm9ybWF0dGVyID8gdGhpcy5mb3JtYXR0ZXIuZm9ybWF0KHN1cGVyLmZvcm1hdFZhbHVlKHZhbHVlLCB0YXJnZXRUeXBlKSkgOiBzdXBlci5mb3JtYXRWYWx1ZSh2YWx1ZSwgdGFyZ2V0VHlwZSk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBnaXZlbiB2YWx1ZSwgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgb2YgdGhlIGZpc2NhbCB0eXBlLCB0byBhIHN0cmluZy5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBiZSBwYXJzZWRcblx0ICogQHJldHVybnMgVGhlIHBhcnNlZCB2YWx1ZVxuXHQgKiBAb3ZlcnJpZGVcblx0ICovXG5cdHB1YmxpYyBwYXJzZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuLCBzb3VyY2VUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmZvcm1hdHRlciA/IHRoaXMuZm9ybWF0dGVyLnBhcnNlKHN1cGVyLnBhcnNlVmFsdWUodmFsdWUsIHNvdXJjZVR5cGUpKSA6IHN1cGVyLnBhcnNlVmFsdWUodmFsdWUsIHNvdXJjZVR5cGUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBpbmhlcml0RG9jXG5cdCAqL1xuXHRwdWJsaWMgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG5cdFx0dHJ5IHtcblx0XHRcdHN1cGVyLnZhbGlkYXRlVmFsdWUodmFsdWUpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRpZiAoIXRoaXMuZm9ybWF0dGVyKSB7XG5cdFx0XHRcdHRocm93IGVycm9yO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aGlzLmZvcm1hdHRlci52YWxpZGF0ZSh2YWx1ZSkpIHtcblx0XHRcdFx0dGhyb3cgbmV3IFZhbGlkYXRlRXhjZXB0aW9uKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRoaXMuYW5ub3RhdGlvblR5cGUpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuZm9ybWF0dGVyIHx8IHZhbHVlID09PSBcIlwiIHx8IHZhbHVlID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICghdGhpcy5mb3JtYXR0ZXIudmFsaWRhdGUodmFsdWUpKSB7XG5cdFx0XHR0aHJvdyBuZXcgVmFsaWRhdGVFeGNlcHRpb24odGhpcy5nZXRFcnJvck1lc3NhZ2UodGhpcy5hbm5vdGF0aW9uVHlwZSkpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBsb2NhbGUtZGVwZW5kZW50IGVycm9yIG1lc3NhZ2UgZm9yIHRoZSB0eXBlIGJhc2VkIG9uIHRoZSBmaXNjYWwgYW5ub3RhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGFubm90YXRpb25UeXBlIFRoZSBmaXNjYWwgYW5ub3RhdGlvbiB0eXBlXG5cdCAqIEByZXR1cm5zIFRoZSBsb2NhbGUtZGVwZW5kZW50IGVycm9yIG1lc3NhZ2Vcblx0ICovXG5cdHB1YmxpYyBnZXRFcnJvck1lc3NhZ2UoYW5ub3RhdGlvblR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG5cdFx0bGV0IHNWYWx1ZSA9IFwiXCI7XG5cdFx0dGhpcy5mdWxsWWVhciA9IHRoaXMuZnVsbFllYXIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XG5cblx0XHRzd2l0Y2ggKGFubm90YXRpb25UeXBlKSB7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXI6XG5cdFx0XHRcdHNWYWx1ZSA9IHRoaXMuZnVsbFllYXI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxQZXJpb2Q6XG5cdFx0XHRcdHNWYWx1ZSA9IFwiMDAxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyUGVyaW9kOlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyICsgXCIwMDFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFF1YXJ0ZXI6XG5cdFx0XHRcdHNWYWx1ZSA9IFwiMVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclF1YXJ0ZXI6XG5cdFx0XHRcdHNWYWx1ZSA9IHRoaXMuZnVsbFllYXIgKyBcIjFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFdlZWs6XG5cdFx0XHRcdHNWYWx1ZSA9IFwiMDFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJXZWVrOlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyICsgXCIwMVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRGF5T2ZGaXNjYWxZZWFyOlxuXHRcdFx0XHRzVmFsdWUgPSBcIjFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJWYXJpYW50OlxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHNWYWx1ZSA9IHRoaXMuZnVsbFllYXI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSEuZ2V0VGV4dChcIkZJU0NBTF9WQUxJREFUSU9OX0ZBSUxTXCIsIFt0aGlzLmZvcm1hdFZhbHVlKHNWYWx1ZSwgXCJzdHJpbmdcIildKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAaW5oZXJpdERvY1xuXHQgKi9cblx0cHVibGljIGdldE5hbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gXCJzYXAuZmUuY29yZS50eXBlLkZpc2NhbERhdGVcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBmb3JtYXR0ZXIgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGlzIHBhcnRpY3VsYXIgRmlzY2FsRGF0ZSB0eXBlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgYXNzaWduZWQgaW5zdGFuY2Ugb2YgRmlzY2FsRm9ybWF0XG5cdCAqL1xuXHRwdWJsaWMgZ2V0Rm9ybWF0dGVyKCk6IEZpc2NhbEZvcm1hdCB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZm9ybWF0dGVyO1xuXHR9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
177
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaXNjYWxEYXRlIiwiZGVmaW5lVUk1Q2xhc3MiLCJmb3JtYXRPcHRpb25zIiwiY29uc3RyYWludHMiLCJmaXNjYWxUeXBlIiwibWF4TGVuZ3RoIiwiYW5ub3RhdGlvblR5cGUiLCJmb3JtYXQiLCJkYXRlRm9ybWF0cyIsImZvcm1hdHRlciIsIkZpc2NhbEZvcm1hdCIsImdldERhdGVJbnN0YW5jZSIsImNhbGVuZGFyVHlwZSIsIkNhbGVuZGFyVHlwZSIsIkdyZWdvcmlhbiIsImdldFBhdHRlcm4iLCJmb3JtYXRWYWx1ZSIsInZhbHVlIiwidGFyZ2V0VHlwZSIsInBhcnNlVmFsdWUiLCJzb3VyY2VUeXBlIiwicGFyc2UiLCJ2YWxpZGF0ZVZhbHVlIiwiZXJyb3IiLCJ2YWxpZGF0ZSIsIlZhbGlkYXRlRXhjZXB0aW9uIiwiZ2V0RXJyb3JNZXNzYWdlIiwic1ZhbHVlIiwiZnVsbFllYXIiLCJEYXRlIiwiZ2V0RnVsbFllYXIiLCJ0b1N0cmluZyIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJnZXROYW1lIiwiZ2V0Rm9ybWF0dGVyIiwiT0RhdGFTdHJpbmdUeXBlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaXNjYWxEYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgQ2FsZW5kYXJUeXBlIGZyb20gXCJzYXAvYmFzZS9pMThuL2RhdGUvQ2FsZW5kYXJUeXBlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBGaXNjYWxGb3JtYXQgZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvRmlzY2FsRm9ybWF0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgVmFsaWRhdGVFeGNlcHRpb24gZnJvbSBcInNhcC91aS9tb2RlbC9WYWxpZGF0ZUV4Y2VwdGlvblwiO1xuaW1wb3J0IE9EYXRhU3RyaW5nVHlwZSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvU3RyaW5nXCI7XG5cbi8qKlxuICogRGVmaW5lIHRoZSBVSTUgY2xhc3MgZm9yIGEgdHlwZSBvZiBmaXNjYWwgZGF0ZS5cbiAqXG4gKiBUaGUgZGF0YSB0eXBlIEZpc2NhbCBEYXRlIHN1cHBvcnRzIHRoZSBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIG9mIGZpc2NhbCBkYXRlcyB0aGF0IGZvbGxvdyB0aGUgcGF0dGVybiAneU0nLlxuICpcbiAqIEBzaW5jZSAxLjExMC4wXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLnR5cGUuRmlzY2FsRGF0ZVwiKVxuY2xhc3MgRmlzY2FsRGF0ZSBleHRlbmRzIE9EYXRhU3RyaW5nVHlwZSB7XG5cdHByaXZhdGUgYW5ub3RhdGlvblR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRwcml2YXRlIGZ1bGxZZWFyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBzdGF0aWMgZGF0ZUZvcm1hdHMgPSB7XG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJdOiBcIllZWVlcIixcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsUGVyaW9kXTogXCJQUFBcIixcblx0XHRbQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclBlcmlvZF06IFwiWVlZWVBQUFwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxRdWFydGVyXTogXCJRXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJRdWFydGVyXTogXCJZWVlZUVwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxXZWVrXTogXCJXV1wiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyV2Vla106IFwiWVlZWVdXXCIsXG5cdFx0W0NvbW1vbkFubm90YXRpb25UZXJtcy5Jc0RheU9mRmlzY2FsWWVhcl06IFwiZFwiLFxuXHRcdFtDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyVmFyaWFudF06IFwiXCJcblx0fTtcblxuXHRwcml2YXRlIGZvcm1hdHRlcjogRmlzY2FsRm9ybWF0IHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBAcGFyYW0gZm9ybWF0T3B0aW9ucyBGb3JtYXQgb3B0aW9uc1xuXHQgKiBAcGFyYW0gZm9ybWF0T3B0aW9ucy5maXNjYWxUeXBlIFN0cmluZyB3aXRoIGEgZmlzY2FsIGFubm90YXRpb24gdHlwZVxuXHQgKiBAcGFyYW0gZm9ybWF0T3B0aW9ucy5wYXJzZUtlZXBzRW1wdHlTdHJpbmcgV2hldGhlciBlbXB0eSBzdHJpbmcgc2hvdWxkIGJlIGtlcHQgb3Igbm90XG5cdCAqIEBwYXJhbSBjb25zdHJhaW50cyBDb25zdHJhaW50c1xuXHQgKiBAcGFyYW0gY29uc3RyYWludHMubWF4TGVuZ3RoIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBmaWVsZFxuXHQgKi9cblx0Y29uc3RydWN0b3IoZm9ybWF0T3B0aW9uczogeyBmaXNjYWxUeXBlOiBzdHJpbmc7IHBhcnNlS2VlcHNFbXB0eVN0cmluZz86IGJvb2xlYW4gfSwgY29uc3RyYWludHM/OiB7IG1heExlbmd0aD86IG51bWJlciB9KSB7XG5cdFx0aWYgKFxuXHRcdFx0KGZvcm1hdE9wdGlvbnMuZmlzY2FsVHlwZSA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclBlcmlvZCB8fFxuXHRcdFx0XHRmb3JtYXRPcHRpb25zLmZpc2NhbFR5cGUgPT09IENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJRdWFydGVyIHx8XG5cdFx0XHRcdGZvcm1hdE9wdGlvbnMuZmlzY2FsVHlwZSA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhcldlZWspICYmXG5cdFx0XHRjb25zdHJhaW50cz8ubWF4TGVuZ3RoXG5cdFx0KSB7XG5cdFx0XHQvLyBXZSBpbmNyZWFzZSBtYXhMZW5ndGggZm9yICsxIGZvciBhbnkgZmlzY2FsIHR5cGUgdGhhdCBoYXZlIGRlbGltaXRlciBpbiBsb2NhbGUgZm9ybWF0LlxuXHRcdFx0Ly8gSXQncyBuZWNlc3NhcnkgZm9yIHZhbGlkYXRpb24gdG8gd29yayBjb3JyZWN0bHkuXG5cdFx0XHQvLyBBbHNvIGZvciB2YWxpZGF0aW9uIHRvIGZ1bmN0aW9uIHByb3Blcmx5IHVzZXIgYWxzbyBzaG91bGQgc3BlY2lmeSBjb25zdHJhaW50cy5pc0RpZ2l0U2VxdWVuY2UgPSB0cnVlXG5cdFx0XHQvLyBpc0RpZ2l0U2VxdWVuY2UgYW5kIG1heExlbmd0aCBjb21iaW5hdGlvbiBlbnN1cmVzIHRoYXQgbWlzc2luZyBjaGFyYWN0ZXJzIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggbGVhZGluZyB6ZXJvc1xuXHRcdFx0Ly8gdGhhdCB3aWxsIGVuc3VyZSB1c2VyIHdpbGwgcmVjZWl2ZSBjb3JyZWN0IHZhbGlkYXRpb24gcmVzdWx0cy5cblx0XHRcdGNvbnN0cmFpbnRzLm1heExlbmd0aCA9IGNvbnN0cmFpbnRzLm1heExlbmd0aCArIDE7XG5cdFx0fVxuXHRcdHN1cGVyKGZvcm1hdE9wdGlvbnMsIGNvbnN0cmFpbnRzKTtcblx0XHR0aGlzLmFubm90YXRpb25UeXBlID0gZm9ybWF0T3B0aW9ucy5maXNjYWxUeXBlO1xuXHRcdGNvbnN0IGZvcm1hdCA9IEZpc2NhbERhdGUuZGF0ZUZvcm1hdHNbdGhpcy5hbm5vdGF0aW9uVHlwZSBhcyBrZXlvZiB0eXBlb2YgRmlzY2FsRGF0ZS5kYXRlRm9ybWF0c107XG5cdFx0aWYgKGZvcm1hdCkge1xuXHRcdFx0dGhpcy5mb3JtYXR0ZXIgPSBGaXNjYWxGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKHtcblx0XHRcdFx0Zm9ybWF0LFxuXHRcdFx0XHRjYWxlbmRhclR5cGU6IENhbGVuZGFyVHlwZS5HcmVnb3JpYW5cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm4gcGF0dGVybiBmb3IgZmlzY2FsIGRhdGUgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGZpc2NhbCBkYXRlIHBhdHRlcm5cblx0ICovXG5cdHB1YmxpYyBnZXRQYXR0ZXJuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZm9ybWF0dGVyPy5nZXRQYXR0ZXJuKCk7XG5cdH1cblxuXHQvKipcblx0ICogRm9ybWF0cyB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlIGdpdmVuIGZpc2NhbCB0eXBlLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGJlIGZvcm1hdHRlZFxuXHQgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIG91dHB1dCB2YWx1ZTsgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBpcyBhbHdheXMgZm9ybWF0dGVkIHRvIDxjb2RlPm51bGw8L2NvZGU+XG5cdCAqIEBvdmVycmlkZVxuXHQgKi9cblx0cHVibGljIGZvcm1hdFZhbHVlKHZhbHVlOiBzdHJpbmcsIHRhcmdldFR5cGU6IHN0cmluZyk6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmZvcm1hdHRlciA/IHRoaXMuZm9ybWF0dGVyLmZvcm1hdChzdXBlci5mb3JtYXRWYWx1ZSh2YWx1ZSwgdGFyZ2V0VHlwZSkpIDogc3VwZXIuZm9ybWF0VmFsdWUodmFsdWUsIHRhcmdldFR5cGUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyB0aGUgZ2l2ZW4gdmFsdWUsIHdoaWNoIGlzIGV4cGVjdGVkIHRvIGJlIG9mIHRoZSBmaXNjYWwgdHlwZSwgdG8gYSBzdHJpbmcuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gYmUgcGFyc2VkXG5cdCAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdmFsdWVcblx0ICogQG92ZXJyaWRlXG5cdCAqL1xuXHRwdWJsaWMgcGFyc2VWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiwgc291cmNlVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5mb3JtYXR0ZXIgPyB0aGlzLmZvcm1hdHRlci5wYXJzZShzdXBlci5wYXJzZVZhbHVlKHZhbHVlLCBzb3VyY2VUeXBlKSkgOiBzdXBlci5wYXJzZVZhbHVlKHZhbHVlLCBzb3VyY2VUeXBlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAaW5oZXJpdERvY1xuXHQgKi9cblx0cHVibGljIHZhbGlkYXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRyeSB7XG5cdFx0XHRzdXBlci52YWxpZGF0ZVZhbHVlKHZhbHVlKTtcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0aWYgKCF0aGlzLmZvcm1hdHRlcikge1xuXHRcdFx0XHR0aHJvdyBlcnJvcjtcblx0XHRcdH1cblx0XHRcdGlmICghdGhpcy5mb3JtYXR0ZXIudmFsaWRhdGUodmFsdWUpKSB7XG5cdFx0XHRcdHRocm93IG5ldyBWYWxpZGF0ZUV4Y2VwdGlvbih0aGlzLmdldEVycm9yTWVzc2FnZSh0aGlzLmFubm90YXRpb25UeXBlKSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmZvcm1hdHRlciB8fCB2YWx1ZSA9PT0gXCJcIiB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoIXRoaXMuZm9ybWF0dGVyLnZhbGlkYXRlKHZhbHVlKSkge1xuXHRcdFx0dGhyb3cgbmV3IFZhbGlkYXRlRXhjZXB0aW9uKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRoaXMuYW5ub3RhdGlvblR5cGUpKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgbWF0Y2hpbmcgbG9jYWxlLWRlcGVuZGVudCBlcnJvciBtZXNzYWdlIGZvciB0aGUgdHlwZSBiYXNlZCBvbiB0aGUgZmlzY2FsIGFubm90YXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uVHlwZSBUaGUgZmlzY2FsIGFubm90YXRpb24gdHlwZVxuXHQgKiBAcmV0dXJucyBUaGUgbG9jYWxlLWRlcGVuZGVudCBlcnJvciBtZXNzYWdlXG5cdCAqL1xuXHRwdWJsaWMgZ2V0RXJyb3JNZXNzYWdlKGFubm90YXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuXHRcdGxldCBzVmFsdWUgPSBcIlwiO1xuXHRcdHRoaXMuZnVsbFllYXIgPSB0aGlzLmZ1bGxZZWFyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO1xuXG5cdFx0c3dpdGNoIChhbm5vdGF0aW9uVHlwZSkge1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyOlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsUGVyaW9kOlxuXHRcdFx0XHRzVmFsdWUgPSBcIjAwMVwiO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgQ29tbW9uQW5ub3RhdGlvblRlcm1zLklzRmlzY2FsWWVhclBlcmlvZDpcblx0XHRcdFx0c1ZhbHVlID0gdGhpcy5mdWxsWWVhciArIFwiMDAxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxRdWFydGVyOlxuXHRcdFx0XHRzVmFsdWUgPSBcIjFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0Zpc2NhbFllYXJRdWFydGVyOlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyICsgXCIxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxXZWVrOlxuXHRcdFx0XHRzVmFsdWUgPSBcIjAxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyV2Vlazpcblx0XHRcdFx0c1ZhbHVlID0gdGhpcy5mdWxsWWVhciArIFwiMDFcIjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIENvbW1vbkFubm90YXRpb25UZXJtcy5Jc0RheU9mRmlzY2FsWWVhcjpcblx0XHRcdFx0c1ZhbHVlID0gXCIxXCI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBDb21tb25Bbm5vdGF0aW9uVGVybXMuSXNGaXNjYWxZZWFyVmFyaWFudDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRzVmFsdWUgPSB0aGlzLmZ1bGxZZWFyO1xuXHRcdH1cblxuXHRcdHJldHVybiBMaWJyYXJ5LmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvcmVcIikhLmdldFRleHQoXCJGSVNDQUxfVkFMSURBVElPTl9GQUlMU1wiLCBbdGhpcy5mb3JtYXRWYWx1ZShzVmFsdWUsIFwic3RyaW5nXCIpXSk7XG5cdH1cblxuXHQvKipcblx0ICogQGluaGVyaXREb2Ncblx0ICovXG5cdHB1YmxpYyBnZXROYW1lKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIFwic2FwLmZlLmNvcmUudHlwZS5GaXNjYWxEYXRlXCI7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgZm9ybWF0dGVyIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhpcyBwYXJ0aWN1bGFyIEZpc2NhbERhdGUgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGFzc2lnbmVkIGluc3RhbmNlIG9mIEZpc2NhbEZvcm1hdFxuXHQgKi9cblx0cHVibGljIGdldEZvcm1hdHRlcigpOiBGaXNjYWxGb3JtYXQgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmZvcm1hdHRlcjtcblx0fVxufVxuZXhw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
@@ -1,7 +1,7 @@
1
1
  import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
2
2
  import CalendarType from "sap/base/i18n/date/CalendarType";
3
+ import { defineUI5Class } from "sap/fe/base/ClassSupport";
3
4
  import FiscalFormat from "sap/fe/core/formatters/FiscalFormat";
4
- import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
5
5
  import Library from "sap/ui/core/Lib";
6
6
  import ValidateException from "sap/ui/model/ValidateException";
7
7
  import ODataStringType from "sap/ui/model/odata/type/String";
@@ -0,0 +1,124 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Lib", "sap/ui/model/ValidateException", "sap/ui/model/odata/type/String"], function (ClassSupport, Library, ValidateException, ODataStringType) {
6
+ "use strict";
7
+
8
+ var _dec, _class;
9
+ var defineUI5Class = ClassSupport.defineUI5Class;
10
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
11
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12
+ let InputMaskType = (_dec = defineUI5Class("sap.fe.core.type.InputMask"), _dec(_class = /*#__PURE__*/function (_ODataStringType) {
13
+ _inheritsLoose(InputMaskType, _ODataStringType);
14
+ function InputMaskType(oFormatOptions) {
15
+ return _ODataStringType.call(this, oFormatOptions) || this;
16
+ }
17
+ var _proto = InputMaskType.prototype;
18
+ /**
19
+ * Validates the value against the mask. If the value is not provided for any of the mask characters, it throws an error.
20
+ *
21
+ * @param value String value received from the parseValue method without the mask.
22
+ */
23
+ _proto.validateValue = function validateValue(value) {
24
+ // Reuse the formatValue to validate if the value does not match the mask and throw an error in that case
25
+ const maskedValue = this.formatValue(value);
26
+ if (maskedValue.includes(this.oFormatOptions.placeholderSymbol)) {
27
+ let text = Library.getResourceBundleFor("sap.fe.core").getText("T_MASKEDINPUT_INVALID_VALUE");
28
+ if (!text) {
29
+ text = "";
30
+ }
31
+ throw new ValidateException(text);
32
+ }
33
+ _ODataStringType.prototype.validateValue.call(this, value);
34
+ }
35
+ /**
36
+ * Parse the value by removing the mask characters.
37
+ *
38
+ * @param value String value from the control with the mask
39
+ * @returns String value without the mask
40
+ */;
41
+ _proto.parseValue = function parseValue(value) {
42
+ var _this$oFormatOptions;
43
+ // Remove the mask characters from the value
44
+ let parsedValue = "";
45
+ let parsedValueIndex = 0;
46
+ const mask = (_this$oFormatOptions = this.oFormatOptions) === null || _this$oFormatOptions === void 0 ? void 0 : _this$oFormatOptions.mask;
47
+ if (mask) {
48
+ for (let i = 0; i <= mask.length; i++) {
49
+ if (this.doesMakingRuleExists(this.oFormatOptions.maskRule, mask[i])) {
50
+ const maskRule = this.oFormatOptions.maskRule.find(rule => rule.symbol === mask[i]);
51
+ if (value[parsedValueIndex] && maskRule && value[parsedValueIndex].match(new RegExp(maskRule.regex))) {
52
+ parsedValue += value[parsedValueIndex++];
53
+ }
54
+ } else if (mask[i] === "^") {
55
+ // check if the character is ^, then skip the next character in value and increment the loop i++ as we don't want to add the escaped character to the parsed value
56
+ i++;
57
+ parsedValueIndex++;
58
+ } else {
59
+ parsedValueIndex++;
60
+ }
61
+ }
62
+ }
63
+ return parsedValue;
64
+ }
65
+ /**
66
+ * Checks if the mask rule exists for the given mask character.
67
+ *
68
+ * @param maskRule Array of mask rules
69
+ * @param maskCharacter Single mask character
70
+ * @returns True or False based on the result
71
+ */;
72
+ _proto.doesMakingRuleExists = function doesMakingRuleExists(maskRule, maskCharacter) {
73
+ for (const rule of maskRule) {
74
+ if (rule.symbol === maskCharacter) {
75
+ return true;
76
+ }
77
+ }
78
+ return false;
79
+ }
80
+ /**
81
+ * Format the value by applying the mask.
82
+ *
83
+ * @param value String value from the model without the mask
84
+ * @returns String value with the mask
85
+ */;
86
+ _proto.formatValue = function formatValue(value) {
87
+ if (!value) return value;
88
+ const maskRulesPerCharacter = {};
89
+ let formatValue = "";
90
+ // Create a map of mask rules per character
91
+ if (this.oFormatOptions.maskRule) {
92
+ for (const rule of this.oFormatOptions.maskRule) {
93
+ maskRulesPerCharacter[rule.symbol] = rule.regex;
94
+ }
95
+ let valueIndex = 0;
96
+ let formattedValue = "";
97
+ const mask = this.oFormatOptions.mask;
98
+ for (let i = 0; i < mask.length; i++) {
99
+ // Process character by character, comparing with the mask rules
100
+ // If the character matches a mask rule, replace it with the character from the value and increment the value index;
101
+ // Otherwise replace it with the character from the mask
102
+ if (maskRulesPerCharacter[mask[i]]) {
103
+ if (value[valueIndex] && value[valueIndex].match(new RegExp(maskRulesPerCharacter[mask[i]]))) {
104
+ formattedValue += value[valueIndex++];
105
+ } else {
106
+ formattedValue += this.oFormatOptions.placeholderSymbol;
107
+ }
108
+ } else if (mask[i] === "^") {
109
+ // if the mask character is ^ then add the character after it to the formatted value and increment the value i++
110
+ formattedValue += mask[i + 1];
111
+ i++;
112
+ } else {
113
+ formattedValue += mask[i];
114
+ }
115
+ }
116
+ formatValue = formattedValue;
117
+ }
118
+ return formatValue;
119
+ };
120
+ return InputMaskType;
121
+ }(ODataStringType)) || _class);
122
+ return InputMaskType;
123
+ }, false);
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnB1dE1hc2tUeXBlIiwiZGVmaW5lVUk1Q2xhc3MiLCJvRm9ybWF0T3B0aW9ucyIsInZhbGlkYXRlVmFsdWUiLCJ2YWx1ZSIsIm1hc2tlZFZhbHVlIiwiZm9ybWF0VmFsdWUiLCJpbmNsdWRlcyIsInBsYWNlaG9sZGVyU3ltYm9sIiwidGV4dCIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJWYWxpZGF0ZUV4Y2VwdGlvbiIsInBhcnNlVmFsdWUiLCJwYXJzZWRWYWx1ZSIsInBhcnNlZFZhbHVlSW5kZXgiLCJtYXNrIiwiaSIsImxlbmd0aCIsImRvZXNNYWtpbmdSdWxlRXhpc3RzIiwibWFza1J1bGUiLCJmaW5kIiwicnVsZSIsInN5bWJvbCIsIm1hdGNoIiwiUmVnRXhwIiwicmVnZXgiLCJtYXNrQ2hhcmFjdGVyIiwibWFza1J1bGVzUGVyQ2hhcmFjdGVyIiwidmFsdWVJbmRleCIsImZvcm1hdHRlZFZhbHVlIiwiT0RhdGFTdHJpbmdUeXBlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJJbnB1dE1hc2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgVmFsaWRhdGVFeGNlcHRpb24gZnJvbSBcInNhcC91aS9tb2RlbC9WYWxpZGF0ZUV4Y2VwdGlvblwiO1xuaW1wb3J0IE9EYXRhU3RyaW5nVHlwZSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvU3RyaW5nXCI7XG5cbmV4cG9ydCB0eXBlIElucHV0TWFza1J1bGUgPSB7XG5cdHN5bWJvbDogc3RyaW5nO1xuXHRyZWdleDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIElucHV0TWFza0Zvcm1hdE9wdGlvbnMgPSB7XG5cdG1hc2s6IHN0cmluZztcblx0cGxhY2Vob2xkZXJTeW1ib2w6IHN0cmluZztcblx0bWFza1J1bGU6IElucHV0TWFza1J1bGVbXTtcbn07XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLnR5cGUuSW5wdXRNYXNrXCIpXG5jbGFzcyBJbnB1dE1hc2tUeXBlIGV4dGVuZHMgT0RhdGFTdHJpbmdUeXBlIHtcblx0Y29uc3RydWN0b3Iob0Zvcm1hdE9wdGlvbnM6IElucHV0TWFza0Zvcm1hdE9wdGlvbnMgJiB7IHBhcnNlS2VlcHNFbXB0eVN0cmluZz86IGJvb2xlYW4gfSkge1xuXHRcdHN1cGVyKG9Gb3JtYXRPcHRpb25zKTtcblx0fVxuXG5cdG9Gb3JtYXRPcHRpb25zITogSW5wdXRNYXNrRm9ybWF0T3B0aW9ucztcblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHRoZSB2YWx1ZSBhZ2FpbnN0IHRoZSBtYXNrLiBJZiB0aGUgdmFsdWUgaXMgbm90IHByb3ZpZGVkIGZvciBhbnkgb2YgdGhlIG1hc2sgY2hhcmFjdGVycywgaXQgdGhyb3dzIGFuIGVycm9yLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHZhbHVlIHJlY2VpdmVkIGZyb20gdGhlIHBhcnNlVmFsdWUgbWV0aG9kIHdpdGhvdXQgdGhlIG1hc2suXG5cdCAqL1xuXG5cdHZhbGlkYXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdC8vIFJldXNlIHRoZSBmb3JtYXRWYWx1ZSB0byB2YWxpZGF0ZSBpZiB0aGUgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlIG1hc2sgYW5kIHRocm93IGFuIGVycm9yIGluIHRoYXQgY2FzZVxuXHRcdGNvbnN0IG1hc2tlZFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSk7XG5cdFx0aWYgKG1hc2tlZFZhbHVlLmluY2x1ZGVzKHRoaXMub0Zvcm1hdE9wdGlvbnMucGxhY2Vob2xkZXJTeW1ib2wpKSB7XG5cdFx0XHRsZXQgdGV4dCA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSEuZ2V0VGV4dChcIlRfTUFTS0VESU5QVVRfSU5WQUxJRF9WQUxVRVwiKTtcblx0XHRcdGlmICghdGV4dCkge1xuXHRcdFx0XHR0ZXh0ID0gXCJcIjtcblx0XHRcdH1cblx0XHRcdHRocm93IG5ldyBWYWxpZGF0ZUV4Y2VwdGlvbih0ZXh0KTtcblx0XHR9XG5cdFx0c3VwZXIudmFsaWRhdGVWYWx1ZSh2YWx1ZSk7XG5cdH1cblx0LyoqXG5cdCAqIFBhcnNlIHRoZSB2YWx1ZSBieSByZW1vdmluZyB0aGUgbWFzayBjaGFyYWN0ZXJzLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHZhbHVlIGZyb20gdGhlIGNvbnRyb2wgd2l0aCB0aGUgbWFza1xuXHQgKiBAcmV0dXJucyBTdHJpbmcgdmFsdWUgd2l0aG91dCB0aGUgbWFza1xuXHQgKi9cblxuXHRwYXJzZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdC8vIFJlbW92ZSB0aGUgbWFzayBjaGFyYWN0ZXJzIGZyb20gdGhlIHZhbHVlXG5cdFx0bGV0IHBhcnNlZFZhbHVlID0gXCJcIjtcblx0XHRsZXQgcGFyc2VkVmFsdWVJbmRleCA9IDA7XG5cdFx0Y29uc3QgbWFzayA9IHRoaXMub0Zvcm1hdE9wdGlvbnM/Lm1hc2s7XG5cdFx0aWYgKG1hc2spIHtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDw9IG1hc2subGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHRoaXMuZG9lc01ha2luZ1J1bGVFeGlzdHModGhpcy5vRm9ybWF0T3B0aW9ucy5tYXNrUnVsZSwgbWFza1tpXSkpIHtcblx0XHRcdFx0XHRjb25zdCBtYXNrUnVsZSA9IHRoaXMub0Zvcm1hdE9wdGlvbnMubWFza1J1bGUuZmluZCgocnVsZSkgPT4gcnVsZS5zeW1ib2wgPT09IG1hc2tbaV0pO1xuXHRcdFx0XHRcdGlmICh2YWx1ZVtwYXJzZWRWYWx1ZUluZGV4XSAmJiBtYXNrUnVsZSAmJiB2YWx1ZVtwYXJzZWRWYWx1ZUluZGV4XS5tYXRjaChuZXcgUmVnRXhwKG1hc2tSdWxlLnJlZ2V4KSkpIHtcblx0XHRcdFx0XHRcdHBhcnNlZFZhbHVlICs9IHZhbHVlW3BhcnNlZFZhbHVlSW5kZXgrK107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKG1hc2tbaV0gPT09IFwiXlwiKSB7XG5cdFx0XHRcdFx0Ly8gY2hlY2sgaWYgdGhlIGNoYXJhY3RlciBpcyBeLCB0aGVuIHNraXAgdGhlIG5leHQgY2hhcmFjdGVyIGluIHZhbHVlIGFuZCBpbmNyZW1lbnQgdGhlIGxvb3AgaSsrIGFzIHdlIGRvbid0IHdhbnQgdG8gYWRkIHRoZSBlc2NhcGVkIGNoYXJhY3RlciB0byB0aGUgcGFyc2VkIHZhbHVlXG5cdFx0XHRcdFx0aSsrO1xuXHRcdFx0XHRcdHBhcnNlZFZhbHVlSW5kZXgrKztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRwYXJzZWRWYWx1ZUluZGV4Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHBhcnNlZFZhbHVlO1xuXHR9XG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIG1hc2sgcnVsZSBleGlzdHMgZm9yIHRoZSBnaXZlbiBtYXNrIGNoYXJhY3Rlci5cblx0ICpcblx0ICogQHBhcmFtIG1hc2tSdWxlIEFycmF5IG9mIG1hc2sgcnVsZXNcblx0ICogQHBhcmFtIG1hc2tDaGFyYWN0ZXIgU2luZ2xlIG1hc2sgY2hhcmFjdGVyXG5cdCAqIEByZXR1cm5zIFRydWUgb3IgRmFsc2UgYmFzZWQgb24gdGhlIHJlc3VsdFxuXHQgKi9cblxuXHRkb2VzTWFraW5nUnVsZUV4aXN0cyhtYXNrUnVsZTogSW5wdXRNYXNrUnVsZVtdLCBtYXNrQ2hhcmFjdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRmb3IgKGNvbnN0IHJ1bGUgb2YgbWFza1J1bGUpIHtcblx0XHRcdGlmIChydWxlLnN5bWJvbCA9PT0gbWFza0NoYXJhY3Rlcikge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdC8qKlxuXHQgKiBGb3JtYXQgdGhlIHZhbHVlIGJ5IGFwcGx5aW5nIHRoZSBtYXNrLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHZhbHVlIGZyb20gdGhlIG1vZGVsIHdpdGhvdXQgdGhlIG1hc2tcblx0ICogQHJldHVybnMgU3RyaW5nIHZhbHVlIHdpdGggdGhlIG1hc2tcblx0ICovXG5cblx0Zm9ybWF0VmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCF2YWx1ZSkgcmV0dXJuIHZhbHVlO1xuXG5cdFx0Y29uc3QgbWFza1J1bGVzUGVyQ2hhcmFjdGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cdFx0bGV0IGZvcm1hdFZhbHVlID0gXCJcIjtcblx0XHQvLyBDcmVhdGUgYSBtYXAgb2YgbWFzayBydWxlcyBwZXIgY2hhcmFjdGVyXG5cdFx0aWYgKHRoaXMub0Zvcm1hdE9wdGlvbnMubWFza1J1bGUpIHtcblx0XHRcdGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLm9Gb3JtYXRPcHRpb25zLm1hc2tSdWxlKSB7XG5cdFx0XHRcdG1hc2tSdWxlc1BlckNoYXJhY3RlcltydWxlLnN5bWJvbF0gPSBydWxlLnJlZ2V4O1xuXHRcdFx0fVxuXHRcdFx0bGV0IHZhbHVlSW5kZXggPSAwO1xuXHRcdFx0bGV0IGZvcm1hdHRlZFZhbHVlID0gXCJcIjtcblx0XHRcdGNvbnN0IG1hc2sgPSB0aGlzLm9Gb3JtYXRPcHRpb25zLm1hc2s7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IG1hc2subGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Ly8gUHJvY2VzcyBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyLCBjb21wYXJpbmcgd2l0aCB0aGUgbWFzayBydWxlc1xuXHRcdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIG1hdGNoZXMgYSBtYXNrIHJ1bGUsIHJlcGxhY2UgaXQgd2l0aCB0aGUgY2hhcmFjdGVyIGZyb20gdGhlIHZhbHVlIGFuZCBpbmNyZW1lbnQgdGhlIHZhbHVlIGluZGV4O1xuXHRcdFx0XHQvLyBPdGhlcndpc2UgcmVwbGFjZSBpdCB3aXRoIHRoZSBjaGFyYWN0ZXIgZnJvbSB0aGUgbWFza1xuXHRcdFx0XHRpZiAobWFza1J1bGVzUGVyQ2hhcmFjdGVyW21hc2tbaV1dKSB7XG5cdFx0XHRcdFx0aWYgKHZhbHVlW3ZhbHVlSW5kZXhdICYmIHZhbHVlW3ZhbHVlSW5kZXhdLm1hdGNoKG5ldyBSZWdFeHAobWFza1J1bGVzUGVyQ2hhcmFjdGVyW21hc2tbaV1dKSkpIHtcblx0XHRcdFx0XHRcdGZvcm1hdHRlZFZhbHVlICs9IHZhbHVlW3ZhbHVlSW5kZXgrK107XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGZvcm1hdHRlZFZhbHVlICs9IHRoaXMub0Zvcm1hdE9wdGlvbnMucGxhY2Vob2xkZXJTeW1ib2w7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKG1hc2tbaV0gPT09IFwiXlwiKSB7XG5cdFx0XHRcdFx0Ly8gaWYgdGhlIG1hc2sgY2hhcmFjdGVyIGlzIF4gdGhlbiBhZGQgdGhlIGNoYXJhY3RlciBhZnRlciBpdCB0byB0aGUgZm9ybWF0dGVkIHZhbHVlIGFuZCBpbmNyZW1lbnQgdGhlIHZhbHVlIGkrK1xuXHRcdFx0XHRcdGZvcm1hdHRlZFZhbHVlICs9IG1hc2tbaSArIDFdO1xuXHRcdFx0XHRcdGkrKztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRmb3JtYXR0ZWRWYWx1ZSArPSBtYXNrW2ldO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRmb3JtYXRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZm9ybWF0VmFsdWU7XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IElucHV0TWFza1R5cGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7O01BZ0JNQSxhQUFhLFdBRGxCQyxjQUFjLENBQUMsNEJBQTRCLENBQUM7SUFBQTtJQUU1Qyx1QkFBWUMsY0FBNEUsRUFBRTtNQUFBLE9BQ3pGLDRCQUFNQSxjQUFjLENBQUM7SUFDdEI7SUFBQztJQUlEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7SUFKQyxPQU1BQyxhQUFhLEdBQWIsdUJBQWNDLEtBQWEsRUFBUTtNQUNsQztNQUNBLE1BQU1DLFdBQVcsR0FBRyxJQUFJLENBQUNDLFdBQVcsQ0FBQ0YsS0FBSyxDQUFDO01BQzNDLElBQUlDLFdBQVcsQ0FBQ0UsUUFBUSxDQUFDLElBQUksQ0FBQ0wsY0FBYyxDQUFDTSxpQkFBaUIsQ0FBQyxFQUFFO1FBQ2hFLElBQUlDLElBQUksR0FBR0MsT0FBTyxDQUFDQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBRUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDO1FBQzlGLElBQUksQ0FBQ0gsSUFBSSxFQUFFO1VBQ1ZBLElBQUksR0FBRyxFQUFFO1FBQ1Y7UUFDQSxNQUFNLElBQUlJLGlCQUFpQixDQUFDSixJQUFJLENBQUM7TUFDbEM7TUFDQSwyQkFBTU4sYUFBYSxZQUFDQyxLQUFLO0lBQzFCO0lBQ0E7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEM7SUFBQSxPQU9BVSxVQUFVLEdBQVYsb0JBQVdWLEtBQWEsRUFBVTtNQUFBO01BQ2pDO01BQ0EsSUFBSVcsV0FBVyxHQUFHLEVBQUU7TUFDcEIsSUFBSUMsZ0JBQWdCLEdBQUcsQ0FBQztNQUN4QixNQUFNQyxJQUFJLDJCQUFHLElBQUksQ0FBQ2YsY0FBYyx5REFBbkIscUJBQXFCZSxJQUFJO01BQ3RDLElBQUlBLElBQUksRUFBRTtRQUNULEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxJQUFJRCxJQUFJLENBQUNFLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7VUFDdEMsSUFBSSxJQUFJLENBQUNFLG9CQUFvQixDQUFDLElBQUksQ0FBQ2xCLGNBQWMsQ0FBQ21CLFFBQVEsRUFBRUosSUFBSSxDQUFDQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JFLE1BQU1HLFFBQVEsR0FBRyxJQUFJLENBQUNuQixjQUFjLENBQUNtQixRQUFRLENBQUNDLElBQUksQ0FBRUMsSUFBSSxJQUFLQSxJQUFJLENBQUNDLE1BQU0sS0FBS1AsSUFBSSxDQUFDQyxDQUFDLENBQUMsQ0FBQztZQUNyRixJQUFJZCxLQUFLLENBQUNZLGdCQUFnQixDQUFDLElBQUlLLFFBQVEsSUFBSWpCLEtBQUssQ0FBQ1ksZ0JBQWdCLENBQUMsQ0FBQ1MsS0FBSyxDQUFDLElBQUlDLE1BQU0sQ0FBQ0wsUUFBUSxDQUFDTSxLQUFLLENBQUMsQ0FBQyxFQUFFO2NBQ3JHWixXQUFXLElBQUlYLEtBQUssQ0FBQ1ksZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QztVQUNELENBQUMsTUFBTSxJQUFJQyxJQUFJLENBQUNDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUMzQjtZQUNBQSxDQUFDLEVBQUU7WUFDSEYsZ0JBQWdCLEVBQUU7VUFDbkIsQ0FBQyxNQUFNO1lBQ05BLGdCQUFnQixFQUFFO1VBQ25CO1FBQ0Q7TUFDRDtNQUNBLE9BQU9ELFdBQVc7SUFDbkI7SUFDQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQU5DO0lBQUEsT0FRQUssb0JBQW9CLEdBQXBCLDhCQUFxQkMsUUFBeUIsRUFBRU8sYUFBcUIsRUFBVztNQUMvRSxLQUFLLE1BQU1MLElBQUksSUFBSUYsUUFBUSxFQUFFO1FBQzVCLElBQUlFLElBQUksQ0FBQ0MsTUFBTSxLQUFLSSxhQUFhLEVBQUU7VUFDbEMsT0FBTyxJQUFJO1FBQ1o7TUFDRDtNQUNBLE9BQU8sS0FBSztJQUNiO0lBQ0E7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEM7SUFBQSxPQU9BdEIsV0FBVyxHQUFYLHFCQUFZRixLQUFhLEVBQVU7TUFDbEMsSUFBSSxDQUFDQSxLQUFLLEVBQUUsT0FBT0EsS0FBSztNQUV4QixNQUFNeUIscUJBQTZDLEdBQUcsQ0FBQyxDQUFDO01BQ3hELElBQUl2QixXQUFXLEdBQUcsRUFBRTtNQUNwQjtNQUNBLElBQUksSUFBSSxDQUFDSixjQUFjLENBQUNtQixRQUFRLEVBQUU7UUFDakMsS0FBSyxNQUFNRSxJQUFJLElBQUksSUFBSSxDQUFDckIsY0FBYyxDQUFDbUIsUUFBUSxFQUFFO1VBQ2hEUSxxQkFBcUIsQ0FBQ04sSUFBSSxDQUFDQyxNQUFNLENBQUMsR0FBR0QsSUFBSSxDQUFDSSxLQUFLO1FBQ2hEO1FBQ0EsSUFBSUcsVUFBVSxHQUFHLENBQUM7UUFDbEIsSUFBSUMsY0FBYyxHQUFHLEVBQUU7UUFDdkIsTUFBTWQsSUFBSSxHQUFHLElBQUksQ0FBQ2YsY0FBYyxDQUFDZSxJQUFJO1FBQ3JDLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRCxJQUFJLENBQUNFLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7VUFDckM7VUFDQTtVQUNBO1VBQ0EsSUFBSVcscUJBQXFCLENBQUNaLElBQUksQ0FBQ0MsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQyxJQUFJZCxLQUFLLENBQUMwQixVQUFVLENBQUMsSUFBSTFCLEtBQUssQ0FBQzBCLFVBQVUsQ0FBQyxDQUFDTCxLQUFLLENBQUMsSUFBSUMsTUFBTSxDQUFDRyxxQkFBcUIsQ0FBQ1osSUFBSSxDQUFDQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtjQUM3RmEsY0FBYyxJQUFJM0IsS0FBSyxDQUFDMEIsVUFBVSxFQUFFLENBQUM7WUFDdEMsQ0FBQyxNQUFNO2NBQ05DLGNBQWMsSUFBSSxJQUFJLENBQUM3QixjQUFjLENBQUNNLGlCQUFpQjtZQUN4RDtVQUNELENBQUMsTUFBTSxJQUFJUyxJQUFJLENBQUNDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUMzQjtZQUNBYSxjQUFjLElBQUlkLElBQUksQ0FBQ0MsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QkEsQ0FBQyxFQUFFO1VBQ0osQ0FBQyxNQUFNO1lBQ05hLGNBQWMsSUFBSWQsSUFBSSxDQUFDQyxDQUFDLENBQUM7VUFDMUI7UUFDRDtRQUNBWixXQUFXLEdBQUd5QixjQUFjO01BQzdCO01BQ0EsT0FBT3pCLFdBQVc7SUFDbkIsQ0FBQztJQUFBO0VBQUEsRUFoSDBCMEIsZUFBZTtFQUFBLE9Ba0g1QmhDLGFBQWE7QUFBQSJ9
@@ -0,0 +1,131 @@
1
+ import { defineUI5Class } from "sap/fe/base/ClassSupport";
2
+ import Library from "sap/ui/core/Lib";
3
+ import ValidateException from "sap/ui/model/ValidateException";
4
+ import ODataStringType from "sap/ui/model/odata/type/String";
5
+
6
+ export type InputMaskRule = {
7
+ symbol: string;
8
+ regex: string;
9
+ };
10
+ export type InputMaskFormatOptions = {
11
+ mask: string;
12
+ placeholderSymbol: string;
13
+ maskRule: InputMaskRule[];
14
+ };
15
+
16
+ @defineUI5Class("sap.fe.core.type.InputMask")
17
+ class InputMaskType extends ODataStringType {
18
+ constructor(oFormatOptions: InputMaskFormatOptions & { parseKeepsEmptyString?: boolean }) {
19
+ super(oFormatOptions);
20
+ }
21
+
22
+ oFormatOptions!: InputMaskFormatOptions;
23
+
24
+ /**
25
+ * Validates the value against the mask. If the value is not provided for any of the mask characters, it throws an error.
26
+ *
27
+ * @param value String value received from the parseValue method without the mask.
28
+ */
29
+
30
+ validateValue(value: string): void {
31
+ // Reuse the formatValue to validate if the value does not match the mask and throw an error in that case
32
+ const maskedValue = this.formatValue(value);
33
+ if (maskedValue.includes(this.oFormatOptions.placeholderSymbol)) {
34
+ let text = Library.getResourceBundleFor("sap.fe.core")!.getText("T_MASKEDINPUT_INVALID_VALUE");
35
+ if (!text) {
36
+ text = "";
37
+ }
38
+ throw new ValidateException(text);
39
+ }
40
+ super.validateValue(value);
41
+ }
42
+ /**
43
+ * Parse the value by removing the mask characters.
44
+ *
45
+ * @param value String value from the control with the mask
46
+ * @returns String value without the mask
47
+ */
48
+
49
+ parseValue(value: string): string {
50
+ // Remove the mask characters from the value
51
+ let parsedValue = "";
52
+ let parsedValueIndex = 0;
53
+ const mask = this.oFormatOptions?.mask;
54
+ if (mask) {
55
+ for (let i = 0; i <= mask.length; i++) {
56
+ if (this.doesMakingRuleExists(this.oFormatOptions.maskRule, mask[i])) {
57
+ const maskRule = this.oFormatOptions.maskRule.find((rule) => rule.symbol === mask[i]);
58
+ if (value[parsedValueIndex] && maskRule && value[parsedValueIndex].match(new RegExp(maskRule.regex))) {
59
+ parsedValue += value[parsedValueIndex++];
60
+ }
61
+ } else if (mask[i] === "^") {
62
+ // check if the character is ^, then skip the next character in value and increment the loop i++ as we don't want to add the escaped character to the parsed value
63
+ i++;
64
+ parsedValueIndex++;
65
+ } else {
66
+ parsedValueIndex++;
67
+ }
68
+ }
69
+ }
70
+ return parsedValue;
71
+ }
72
+ /**
73
+ * Checks if the mask rule exists for the given mask character.
74
+ *
75
+ * @param maskRule Array of mask rules
76
+ * @param maskCharacter Single mask character
77
+ * @returns True or False based on the result
78
+ */
79
+
80
+ doesMakingRuleExists(maskRule: InputMaskRule[], maskCharacter: string): boolean {
81
+ for (const rule of maskRule) {
82
+ if (rule.symbol === maskCharacter) {
83
+ return true;
84
+ }
85
+ }
86
+ return false;
87
+ }
88
+ /**
89
+ * Format the value by applying the mask.
90
+ *
91
+ * @param value String value from the model without the mask
92
+ * @returns String value with the mask
93
+ */
94
+
95
+ formatValue(value: string): string {
96
+ if (!value) return value;
97
+
98
+ const maskRulesPerCharacter: Record<string, string> = {};
99
+ let formatValue = "";
100
+ // Create a map of mask rules per character
101
+ if (this.oFormatOptions.maskRule) {
102
+ for (const rule of this.oFormatOptions.maskRule) {
103
+ maskRulesPerCharacter[rule.symbol] = rule.regex;
104
+ }
105
+ let valueIndex = 0;
106
+ let formattedValue = "";
107
+ const mask = this.oFormatOptions.mask;
108
+ for (let i = 0; i < mask.length; i++) {
109
+ // Process character by character, comparing with the mask rules
110
+ // If the character matches a mask rule, replace it with the character from the value and increment the value index;
111
+ // Otherwise replace it with the character from the mask
112
+ if (maskRulesPerCharacter[mask[i]]) {
113
+ if (value[valueIndex] && value[valueIndex].match(new RegExp(maskRulesPerCharacter[mask[i]]))) {
114
+ formattedValue += value[valueIndex++];
115
+ } else {
116
+ formattedValue += this.oFormatOptions.placeholderSymbol;
117
+ }
118
+ } else if (mask[i] === "^") {
119
+ // if the mask character is ^ then add the character after it to the formatted value and increment the value i++
120
+ formattedValue += mask[i + 1];
121
+ i++;
122
+ } else {
123
+ formattedValue += mask[i];
124
+ }
125
+ }
126
+ formatValue = formattedValue;
127
+ }
128
+ return formatValue;
129
+ }
130
+ }
131
+ export default InputMaskType;
package/ui5.yaml CHANGED
@@ -6,6 +6,7 @@ framework:
6
6
  name: SAPUI5
7
7
  libraries:
8
8
  - name: sap.f
9
+ - name: sap.fe.base
9
10
  - name: sap.fe.navigation
10
11
  - name: sap.fe.placeholder
11
12
  - name: sap.m
@@ -13,3 +14,21 @@ framework:
13
14
  - name: sap.ui.layout
14
15
  - name: themelib_sap_fiori_3
15
16
  optional: true
17
+ builder:
18
+ bundles:
19
+ - bundleDefinition:
20
+ name: sap/fe/core/library-preload.js
21
+ sections:
22
+ - mode: preload
23
+ name: sap/fe/core-lib-preload
24
+ filters:
25
+ - sap/fe/core/**/*
26
+ - sap/fe/base/**/*
27
+ - "!sap/fe/**/*.designtime.js"
28
+ - "!sap/fe/designtime/**/*"
29
+ resolve: false
30
+ renderer: true
31
+ sort: true
32
+ bundleOptions:
33
+ optimize: true
34
+ usePredefineCalls: true
@@ -1,81 +0,0 @@
1
- /*!
2
- * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
- */
5
- sap.ui.define(["sap/ui/core/library", "sap/ui/core/message/Message", "sap/ui/core/Messaging"], function (library, Message, Messaging) {
6
- "use strict";
7
-
8
- var _exports = {};
9
- var MessageType = library.MessageType;
10
- /**
11
- * Adds error messages for an action parameter field to the message manager.
12
- *
13
- * @param messageParameters Information identifying an action parameter and messages refering to this parameter
14
- */
15
- // in case of missing mandaotory parameter, message currently differs per parameter, as it superfluously contains the label as parameter. Possiblky this could be removed in future, in that case, interface could be simplified to ActionParameterInfo[], string
16
- function _addMessageForActionParameter(messageParameters) {
17
- Messaging.addMessages(messageParameters.map(messageParameter => {
18
- const binding = messageParameter.actionParameterInfo.field.getBinding(messageParameter.actionParameterInfo.isMultiValue ? "items" : "value");
19
- return new Message({
20
- message: messageParameter.message,
21
- type: MessageType.Error,
22
- processor: binding === null || binding === void 0 ? void 0 : binding.getModel(),
23
- persistent: true,
24
- target: binding === null || binding === void 0 ? void 0 : binding.getResolvedPath()
25
- });
26
- }));
27
- }
28
-
29
- /**
30
- * Checks if all required action parameters contain data and checks for all action parameters if the
31
- * contained data is valid.
32
- *
33
- *
34
- * @param actionParameterInfos Information identifying an action parameter
35
- * @param resourceModel The model to load text resources
36
- * @returns A promise that indicate if the properties are valid or not
37
- */
38
- _exports._addMessageForActionParameter = _addMessageForActionParameter;
39
- async function _validateProperties(actionParameterInfos, resourceModel) {
40
- await Promise.allSettled(actionParameterInfos.map(async actionParameterInfo => actionParameterInfo.validationPromise));
41
- const requiredParameterInfos = actionParameterInfos.filter(actionParameterInfo => actionParameterInfo.field.getRequired());
42
-
43
- /* Hint: The boolean false is a valid value */
44
- const emptyRequiredFields = requiredParameterInfos.filter(requiredParameterInfo => {
45
- if (requiredParameterInfo.isMultiValue) {
46
- return requiredParameterInfo.value === undefined || !requiredParameterInfo.value.length;
47
- } else {
48
- const fieldValue = requiredParameterInfo.field.getValue();
49
- return fieldValue === undefined || fieldValue === null || fieldValue === "";
50
- }
51
- });
52
-
53
- // message contains label per field for historical reason (originally, it was shown in additional popup, now it's directly added to the field)
54
- // if this was not the case (and hopefully, in future this might be subject to change), interface of _addMessageForActionParameter could be simplified to just pass emptyRequiredFields and a constant message here
55
- _addMessageForActionParameter(emptyRequiredFields.map(actionParameterInfo => {
56
- var _actionParameterInfo$;
57
- return {
58
- actionParameterInfo: actionParameterInfo,
59
- message: resourceModel.getText("C_OPERATIONS_ACTION_PARAMETER_DIALOG_MISSING_MANDATORY_MSG", [((_actionParameterInfo$ = actionParameterInfo.field.getParent()) === null || _actionParameterInfo$ === void 0 ? void 0 : _actionParameterInfo$.getAggregation("label")).getText()])
60
- };
61
- }));
62
-
63
- /* Check value state of all parameter */
64
- const firstInvalidActionParameter = actionParameterInfos.find(
65
- // unfortunately, _addMessageForActionParameter sets valueState only asynchroneously, thus checking emptyRequiredFields and hasError additionally:
66
- // - checking hasError: user has changed field to invalid value, validation promise has been rejected, therefore we are adding message to message model
67
- // which in turn sets value state to 'Error' but this last step might not have happened yet due to asynchronity in model.
68
- // - also checking value state: also out parameter of another action parameter could change field and it's value state without sending change event.
69
-
70
- actionParameterInfo => actionParameterInfo.hasError || actionParameterInfo.field.getValueState() === "Error" || emptyRequiredFields.includes(actionParameterInfo));
71
- if (firstInvalidActionParameter) {
72
- firstInvalidActionParameter.field.focus();
73
- return false;
74
- } else {
75
- return true;
76
- }
77
- }
78
- _exports._validateProperties = _validateProperties;
79
- return _exports;
80
- }, false);
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWRkTWVzc2FnZUZvckFjdGlvblBhcmFtZXRlciIsIm1lc3NhZ2VQYXJhbWV0ZXJzIiwiTWVzc2FnaW5nIiwiYWRkTWVzc2FnZXMiLCJtYXAiLCJtZXNzYWdlUGFyYW1ldGVyIiwiYmluZGluZyIsImFjdGlvblBhcmFtZXRlckluZm8iLCJmaWVsZCIsImdldEJpbmRpbmciLCJpc011bHRpVmFsdWUiLCJNZXNzYWdlIiwibWVzc2FnZSIsInR5cGUiLCJNZXNzYWdlVHlwZSIsIkVycm9yIiwicHJvY2Vzc29yIiwiZ2V0TW9kZWwiLCJwZXJzaXN0ZW50IiwidGFyZ2V0IiwiZ2V0UmVzb2x2ZWRQYXRoIiwiX3ZhbGlkYXRlUHJvcGVydGllcyIsImFjdGlvblBhcmFtZXRlckluZm9zIiwicmVzb3VyY2VNb2RlbCIsIlByb21pc2UiLCJhbGxTZXR0bGVkIiwidmFsaWRhdGlvblByb21pc2UiLCJyZXF1aXJlZFBhcmFtZXRlckluZm9zIiwiZmlsdGVyIiwiZ2V0UmVxdWlyZWQiLCJlbXB0eVJlcXVpcmVkRmllbGRzIiwicmVxdWlyZWRQYXJhbWV0ZXJJbmZvIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJmaWVsZFZhbHVlIiwiZ2V0VmFsdWUiLCJnZXRUZXh0IiwiZ2V0UGFyZW50IiwiZ2V0QWdncmVnYXRpb24iLCJmaXJzdEludmFsaWRBY3Rpb25QYXJhbWV0ZXIiLCJmaW5kIiwiaGFzRXJyb3IiLCJnZXRWYWx1ZVN0YXRlIiwiaW5jbHVkZXMiLCJmb2N1cyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiX2ludGVybmFsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlTW9kZWwgZnJvbSBcInNhcC9mZS9jb3JlL1Jlc291cmNlTW9kZWxcIjtcbmltcG9ydCB0eXBlIExhYmVsIGZyb20gXCJzYXAvbS9MYWJlbFwiO1xuaW1wb3J0IHsgTWVzc2FnZVR5cGUgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IE1lc3NhZ2luZyBmcm9tIFwic2FwL3VpL2NvcmUvTWVzc2FnaW5nXCI7XG5pbXBvcnQgdHlwZSBGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWVsZFwiO1xuaW1wb3J0IHR5cGUgTXVsdGlWYWx1ZUZpZWxkSXRlbSBmcm9tIFwic2FwL3VpL21kYy9maWVsZC9NdWx0aVZhbHVlRmllbGRJdGVtXCI7XG5pbXBvcnQgdHlwZSBNdWx0aVZhbHVlRmllbGQgZnJvbSBcInNhcC91aS9tZGMvTXVsdGlWYWx1ZUZpZWxkXCI7XG5cbi8qKlxuICogTk9OIG9mIHRoZXNlIGV4cG9ydCBtdXN0IGJlIGltcG9ydGVkIGFueXdoZXJlIG91dHNpZGUgb2YgdGhlIC4vb3BlcmF0aW9ucyBtb2R1bGUuXG4gKiBUaGV5IGFyZSBvbmx5IGV4cG9zZWQgdG8gc2ltcGxpZnkgdGVzdGluZyB1bnRpbCB0aGUgb3BlcmF0aW9ucy50cyBmaWxlIGhhcyBiZWVuIHJlZmFjdG9yZWRcbiAqL1xuXG4vLyB0aGlzIHR5cGUgaXMgbWVhbnQgdG8gZGVzY3JpYmUgdGhlIG1ldGEgaW5mb3JtYXRpb24gZm9yIG9uZSBBY3Rpb25QYXJhbWV0ZXIgKGkuZS4gaXRzIG9iamVjdCBpbiBtZXRhTW9kZWwpXG5leHBvcnQgdHlwZSBBY3Rpb25QYXJhbWV0ZXIgPSB7XG5cdCROYW1lOiBzdHJpbmc7XG5cdCRUeXBlOiBzdHJpbmc7XG5cdCRpc0NvbGxlY3Rpb246IGJvb2xlYW47XG5cdC8vIGN1cnJlbnRseSBydW50aW1lIGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gaW50byB0aGUgbWV0YW1vZGVsOlxuXHQvLyAtIGluIHRoZSBwcmVzcyBoYW5kbGVyIG9mIHRoZSBhY3Rpb24gYnV0dG9uIG9uIHRoZSBwYXJhbWV0ZXIgZGlhbG9nLCB0aGUgdmFsdWUgb2YgZWFjaCBwYXJhbWV0ZXIgaXMgYWRkZWRcblx0Ly8gLSBpbiBzZXRBY3Rpb25QYXJhbWV0ZXJEZWZhdWx0VmFsdWUsIHRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZCBhbmQgdHJhbnNmZXJyZWQgdG8gdGhlIGNvbnRleHQgKGluIE9EYXRhTW9kZWwpIGNyZWF0ZWQgZm9yIHRoZSBhY3Rpb24gZXhlY3V0aW9uXG5cdC8vIHRoaXMgaXMgcXVpdGUgb2RkLCBhbmQgaXQgd291bGQgbWFrZSBtdWNoIG1vcmUgc2Vuc2UgdG8gdGFrZSB0aGUgdmFsdWUgZnJvbSBhY3Rpb25QYXJhbWV0ZXJJbmZvc1xuXHQvLyAtIGhvd2V2ZXIsIHNldEFjdGlvblBhcmFtZXRlckRlZmF1bHRWYWx1ZSAob3IgcmF0aGVyIHRoZSBzdXJyb3VuZGluZyBfZXhlY3V0ZUFjdGlvbikgaXMgYWxzbyBjYWxsZWQgZnJvbSBvdGhlciBwbGFjZXNcblx0Ly8gPT4gZm9yIHRoZSB0aW1lIGJlaW5nLCBhZGRpbmcgdmFsdWUgaGVyZSB0byBhdm9pZCB0cyBlcnJvcnMsIHN1YmplY3QgdG8gcmVmYWN0b3Jpbmdcblx0Ly8gaW4gY2FzZSBvZiBGaWVsZCwgdGhlIHZhbHVlIGlzIHN0cmluZywgaW4gY2FzZSBvZiBNdWx0aVZhbHVlRmllbGQsIGl0J3MgTXVsdGlWYWx1ZUZpZWxkSXRlbVtdXG5cdHZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgTXVsdGlWYWx1ZUZpZWxkSXRlbVtdIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uUGFyYW1ldGVySW5mbyA9IHtcblx0cGFyYW1ldGVyOiBBY3Rpb25QYXJhbWV0ZXI7XG5cdGZpZWxkOiBGaWVsZCB8IE11bHRpVmFsdWVGaWVsZDtcblx0aXNNdWx0aVZhbHVlOiBib29sZWFuO1xuXHR2YWx1ZT86IHN0cmluZyB8IE11bHRpVmFsdWVGaWVsZEl0ZW1bXTtcblx0dmFsaWRhdGlvblByb21pc2U/OiBQcm9taXNlPHN0cmluZyB8IE11bHRpVmFsdWVGaWVsZEl0ZW1bXT47XG5cdGhhc0Vycm9yPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQWRkcyBlcnJvciBtZXNzYWdlcyBmb3IgYW4gYWN0aW9uIHBhcmFtZXRlciBmaWVsZCB0byB0aGUgbWVzc2FnZSBtYW5hZ2VyLlxuICpcbiAqIEBwYXJhbSBtZXNzYWdlUGFyYW1ldGVycyBJbmZvcm1hdGlvbiBpZGVudGlmeWluZyBhbiBhY3Rpb24gcGFyYW1ldGVyIGFuZCBtZXNzYWdlcyByZWZlcmluZyB0byB0aGlzIHBhcmFtZXRlclxuICovXG4vLyBpbiBjYXNlIG9mIG1pc3NpbmcgbWFuZGFvdG9yeSBwYXJhbWV0ZXIsIG1lc3NhZ2UgY3VycmVudGx5IGRpZmZlcnMgcGVyIHBhcmFtZXRlciwgYXMgaXQgc3VwZXJmbHVvdXNseSBjb250YWlucyB0aGUgbGFiZWwgYXMgcGFyYW1ldGVyLiBQb3NzaWJsa3kgdGhpcyBjb3VsZCBiZSByZW1vdmVkIGluIGZ1dHVyZSwgaW4gdGhhdCBjYXNlLCBpbnRlcmZhY2UgY291bGQgYmUgc2ltcGxpZmllZCB0byBBY3Rpb25QYXJhbWV0ZXJJbmZvW10sIHN0cmluZ1xuZXhwb3J0IGZ1bmN0aW9uIF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyKG1lc3NhZ2VQYXJhbWV0ZXJzOiB7IGFjdGlvblBhcmFtZXRlckluZm86IEFjdGlvblBhcmFtZXRlckluZm87IG1lc3NhZ2U6IHN0cmluZyB9W10pOiB2b2lkIHtcblx0TWVzc2FnaW5nLmFkZE1lc3NhZ2VzKFxuXHRcdG1lc3NhZ2VQYXJhbWV0ZXJzLm1hcCgobWVzc2FnZVBhcmFtZXRlcikgPT4ge1xuXHRcdFx0Y29uc3QgYmluZGluZyA9IG1lc3NhZ2VQYXJhbWV0ZXIuYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRCaW5kaW5nKFxuXHRcdFx0XHRtZXNzYWdlUGFyYW1ldGVyLmFjdGlvblBhcmFtZXRlckluZm8uaXNNdWx0aVZhbHVlID8gXCJpdGVtc1wiIDogXCJ2YWx1ZVwiXG5cdFx0XHQpO1xuXHRcdFx0cmV0dXJuIG5ldyBNZXNzYWdlKHtcblx0XHRcdFx0bWVzc2FnZTogbWVzc2FnZVBhcmFtZXRlci5tZXNzYWdlLFxuXHRcdFx0XHR0eXBlOiBNZXNzYWdlVHlwZS5FcnJvcixcblx0XHRcdFx0cHJvY2Vzc29yOiBiaW5kaW5nPy5nZXRNb2RlbCgpLFxuXHRcdFx0XHRwZXJzaXN0ZW50OiB0cnVlLFxuXHRcdFx0XHR0YXJnZXQ6IGJpbmRpbmc/LmdldFJlc29sdmVkUGF0aCgpXG5cdFx0XHR9KTtcblx0XHR9KVxuXHQpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhbGwgcmVxdWlyZWQgYWN0aW9uIHBhcmFtZXRlcnMgY29udGFpbiBkYXRhIGFuZCBjaGVja3MgZm9yIGFsbCBhY3Rpb24gcGFyYW1ldGVycyBpZiB0aGVcbiAqIGNvbnRhaW5lZCBkYXRhIGlzIHZhbGlkLlxuICpcbiAqXG4gKiBAcGFyYW0gYWN0aW9uUGFyYW1ldGVySW5mb3MgSW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgYW4gYWN0aW9uIHBhcmFtZXRlclxuICogQHBhcmFtIHJlc291cmNlTW9kZWwgVGhlIG1vZGVsIHRvIGxvYWQgdGV4dCByZXNvdXJjZXNcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IGluZGljYXRlIGlmIHRoZSBwcm9wZXJ0aWVzIGFyZSB2YWxpZCBvciBub3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIF92YWxpZGF0ZVByb3BlcnRpZXMoYWN0aW9uUGFyYW1ldGVySW5mb3M6IEFjdGlvblBhcmFtZXRlckluZm9bXSwgcmVzb3VyY2VNb2RlbDogUmVzb3VyY2VNb2RlbCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoXG5cdFx0YWN0aW9uUGFyYW1ldGVySW5mb3MubWFwKGFzeW5jIChhY3Rpb25QYXJhbWV0ZXJJbmZvOiBBY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBhY3Rpb25QYXJhbWV0ZXJJbmZvLnZhbGlkYXRpb25Qcm9taXNlKVxuXHQpO1xuXHRjb25zdCByZXF1aXJlZFBhcmFtZXRlckluZm9zID0gYWN0aW9uUGFyYW1ldGVySW5mb3MuZmlsdGVyKChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBhY3Rpb25QYXJhbWV0ZXJJbmZvLmZpZWxkLmdldFJlcXVpcmVkKCkpO1xuXG5cdC8qIEhpbnQ6IFRoZSBib29sZWFuIGZhbHNlIGlzIGEgdmFsaWQgdmFsdWUgKi9cblx0Y29uc3QgZW1wdHlSZXF1aXJlZEZpZWxkcyA9IHJlcXVpcmVkUGFyYW1ldGVySW5mb3MuZmlsdGVyKChyZXF1aXJlZFBhcmFtZXRlckluZm8pID0+IHtcblx0XHRpZiAocmVxdWlyZWRQYXJhbWV0ZXJJbmZvLmlzTXVsdGlWYWx1ZSkge1xuXHRcdFx0cmV0dXJuIHJlcXVpcmVkUGFyYW1ldGVySW5mby52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICFyZXF1aXJlZFBhcmFtZXRlckluZm8udmFsdWUubGVuZ3RoO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBmaWVsZFZhbHVlID0gKHJlcXVpcmVkUGFyYW1ldGVySW5mby5maWVsZCBhcyBGaWVsZCkuZ2V0VmFsdWUoKTtcblx0XHRcdHJldHVybiBmaWVsZFZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGRWYWx1ZSA9PT0gbnVsbCB8fCBmaWVsZFZhbHVlID09PSBcIlwiO1xuXHRcdH1cblx0fSk7XG5cblx0Ly8gbWVzc2FnZSBjb250YWlucyBsYWJlbCBwZXIgZmllbGQgZm9yIGhpc3RvcmljYWwgcmVhc29uIChvcmlnaW5hbGx5LCBpdCB3YXMgc2hvd24gaW4gYWRkaXRpb25hbCBwb3B1cCwgbm93IGl0J3MgZGlyZWN0bHkgYWRkZWQgdG8gdGhlIGZpZWxkKVxuXHQvLyBpZiB0aGlzIHdhcyBub3QgdGhlIGNhc2UgKGFuZCBob3BlZnVsbHksIGluIGZ1dHVyZSB0aGlzIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlKSwgaW50ZXJmYWNlIG9mIF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyIGNvdWxkIGJlIHNpbXBsaWZpZWQgdG8ganVzdCBwYXNzIGVtcHR5UmVxdWlyZWRGaWVsZHMgYW5kIGEgY29uc3RhbnQgbWVzc2FnZSBoZXJlXG5cdF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyKFxuXHRcdGVtcHR5UmVxdWlyZWRGaWVsZHMubWFwKChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiAoe1xuXHRcdFx0YWN0aW9uUGFyYW1ldGVySW5mbzogYWN0aW9uUGFyYW1ldGVySW5mbyxcblx0XHRcdG1lc3NhZ2U6IHJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfT1BFUkFUSU9OU19BQ1RJT05fUEFSQU1FVEVSX0RJQUxPR19NSVNTSU5HX01BTkRBVE9SWV9NU0dcIiwgW1xuXHRcdFx0XHQoYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRQYXJlbnQoKT8uZ2V0QWdncmVnYXRpb24oXCJsYWJlbFwiKSBhcyBMYWJlbCkuZ2V0VGV4dCgpXG5cdFx0XHRdKVxuXHRcdH0pKVxuXHQpO1xuXG5cdC8qIENoZWNrIHZhbHVlIHN0YXRlIG9mIGFsbCBwYXJhbWV0ZXIgKi9cblx0Y29uc3QgZmlyc3RJbnZhbGlkQWN0aW9uUGFyYW1ldGVyID0gYWN0aW9uUGFyYW1ldGVySW5mb3MuZmluZChcblx0XHQvLyB1bmZvcnR1bmF0ZWx5LCBfYWRkTWVzc2FnZUZvckFjdGlvblBhcmFtZXRlciBzZXRzIHZhbHVlU3RhdGUgb25seSBhc3luY2hyb25lb3VzbHksIHRodXMgY2hlY2tpbmcgZW1wdHlSZXF1aXJlZEZpZWxkcyBhbmQgaGFzRXJyb3IgYWRkaXRpb25hbGx5OlxuXHRcdC8vIC0gY2hlY2tpbmcgaGFzRXJyb3I6IHVzZXIgaGFzIGNoYW5nZWQgZmllbGQgdG8gaW52YWxpZCB2YWx1ZSwgdmFsaWRhdGlvbiBwcm9taXNlIGhhcyBiZWVuIHJlamVjdGVkLCB0aGVyZWZvcmUgd2UgYXJlIGFkZGluZyBtZXNzYWdlIHRvIG1lc3NhZ2UgbW9kZWxcblx0XHQvLyB3aGljaCBpbiB0dXJuIHNldHMgdmFsdWUgc3RhdGUgdG8gJ0Vycm9yJyBidXQgdGhpcyBsYXN0IHN0ZXAgbWlnaHQgbm90IGhhdmUgaGFwcGVuZWQgeWV0IGR1ZSB0byBhc3luY2hyb25pdHkgaW4gbW9kZWwuXG5cdFx0Ly8gLSBhbHNvIGNoZWNraW5nIHZhbHVlIHN0YXRlOiBhbHNvIG91dCBwYXJhbWV0ZXIgb2YgYW5vdGhlciBhY3Rpb24gcGFyYW1ldGVyIGNvdWxkIGNoYW5nZSBmaWVsZCBhbmQgaXQncyB2YWx1ZSBzdGF0ZSB3aXRob3V0IHNlbmRpbmcgY2hhbmdlIGV2ZW50LlxuXG5cdFx0KGFjdGlvblBhcmFtZXRlckluZm8pID0+XG5cdFx0XHRhY3Rpb25QYXJhbWV0ZXJJbmZvLmhhc0Vycm9yIHx8XG5cdFx0XHRhY3Rpb25QYXJhbWV0ZXJJbmZvLmZpZWxkLmdldFZhbHVlU3RhdGUoKSA9PT0gXCJFcnJvclwiIHx8XG5cdFx0XHRlbXB0eVJlcXVpcmVkRmllbGRzLmluY2x1ZGVzKGFjdGlvblBhcmFtZXRlckluZm8pXG5cdCk7XG5cblx0aWYgKGZpcnN0SW52YWxpZEFjdGlvblBhcmFtZXRlcikge1xuXHRcdGZpcnN0SW52YWxpZEFjdGlvblBhcmFtZXRlci5maWVsZC5mb2N1cygpO1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7RUFzQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ08sU0FBU0EsNkJBQTZCLENBQUNDLGlCQUFrRixFQUFRO0lBQ3ZJQyxTQUFTLENBQUNDLFdBQVcsQ0FDcEJGLGlCQUFpQixDQUFDRyxHQUFHLENBQUVDLGdCQUFnQixJQUFLO01BQzNDLE1BQU1DLE9BQU8sR0FBR0QsZ0JBQWdCLENBQUNFLG1CQUFtQixDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FDcEVKLGdCQUFnQixDQUFDRSxtQkFBbUIsQ0FBQ0csWUFBWSxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQ3JFO01BQ0QsT0FBTyxJQUFJQyxPQUFPLENBQUM7UUFDbEJDLE9BQU8sRUFBRVAsZ0JBQWdCLENBQUNPLE9BQU87UUFDakNDLElBQUksRUFBRUMsV0FBVyxDQUFD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