@sapui5/sap.fe.core 1.110.0 → 1.111.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 (654) hide show
  1. package/README.md +0 -4
  2. package/package.json +2 -23
  3. package/src/sap/fe/core/.library +1 -1
  4. package/src/sap/fe/core/ActionRuntime-dbg.js +182 -0
  5. package/src/sap/fe/core/ActionRuntime.js +3 -181
  6. package/src/sap/fe/core/ActionRuntime.js.map +1 -0
  7. package/src/sap/fe/core/ActionRuntime.ts +3 -5
  8. package/src/sap/fe/core/AppComponent-dbg.js +435 -0
  9. package/src/sap/fe/core/AppComponent.js +3 -439
  10. package/src/sap/fe/core/AppComponent.js.map +1 -0
  11. package/src/sap/fe/core/AppComponent.ts +0 -3
  12. package/src/sap/fe/core/AppStateHandler-dbg.js +200 -0
  13. package/src/sap/fe/core/AppStateHandler.js +3 -227
  14. package/src/sap/fe/core/AppStateHandler.js.map +1 -0
  15. package/src/sap/fe/core/BaseController-dbg.js +76 -0
  16. package/src/sap/fe/core/BaseController.js +3 -73
  17. package/src/sap/fe/core/BaseController.js.map +1 -0
  18. package/src/sap/fe/core/CommonUtils-dbg.js +2135 -0
  19. package/src/sap/fe/core/CommonUtils.js +3 -2296
  20. package/src/sap/fe/core/CommonUtils.js.map +1 -0
  21. package/src/sap/fe/core/CommonUtils.ts +34 -28
  22. package/src/sap/fe/core/ExtensionAPI-dbg.js +273 -0
  23. package/src/sap/fe/core/ExtensionAPI.js +3 -280
  24. package/src/sap/fe/core/ExtensionAPI.js.map +1 -0
  25. package/src/sap/fe/core/PageController-dbg.js +203 -0
  26. package/src/sap/fe/core/PageController.js +3 -200
  27. package/src/sap/fe/core/PageController.js.map +1 -0
  28. package/src/sap/fe/core/TemplateComponent-dbg.js +218 -0
  29. package/src/sap/fe/core/TemplateComponent.js +3 -216
  30. package/src/sap/fe/core/TemplateComponent.js.map +1 -0
  31. package/src/sap/fe/core/TemplateModel-dbg.js +75 -0
  32. package/src/sap/fe/core/TemplateModel.js +3 -72
  33. package/src/sap/fe/core/TemplateModel.js.map +1 -0
  34. package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +57 -0
  35. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +3 -54
  36. package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -0
  37. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +410 -0
  38. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +11 -355
  39. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +1 -0
  40. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +118 -52
  41. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter-dbg.js +14 -0
  42. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +3 -11
  43. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js.map +1 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +44 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +3 -40
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +1 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +3 -0
  48. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +932 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +16 -1292
  50. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +1 -0
  51. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +40 -42
  52. package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +434 -0
  53. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +3 -481
  54. package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -0
  55. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -5
  56. package/src/sap/fe/core/controllerextensions/BusyLocker-dbg.js +92 -0
  57. package/src/sap/fe/core/controllerextensions/BusyLocker.js +3 -89
  58. package/src/sap/fe/core/controllerextensions/BusyLocker.js.map +1 -0
  59. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1659 -0
  60. package/src/sap/fe/core/controllerextensions/EditFlow.js +3 -1868
  61. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -0
  62. package/src/sap/fe/core/controllerextensions/EditFlow.ts +180 -125
  63. package/src/sap/fe/core/controllerextensions/Feedback-dbg.js +70 -0
  64. package/src/sap/fe/core/controllerextensions/Feedback.js +3 -67
  65. package/src/sap/fe/core/controllerextensions/Feedback.js.map +1 -0
  66. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +83 -0
  67. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -84
  68. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js.map +1 -0
  69. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -8
  70. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +711 -0
  71. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +3 -707
  72. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +1 -0
  73. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +79 -48
  74. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +791 -0
  75. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +3 -696
  76. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -0
  77. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +107 -7
  78. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +984 -0
  79. package/src/sap/fe/core/controllerextensions/InternalRouting.js +3 -996
  80. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -0
  81. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +43 -23
  82. package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1013 -0
  83. package/src/sap/fe/core/controllerextensions/KPIManagement.js +3 -1011
  84. package/src/sap/fe/core/controllerextensions/KPIManagement.js.map +1 -0
  85. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -10
  86. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +135 -0
  87. package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -133
  88. package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -0
  89. package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
  90. package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +221 -0
  91. package/src/sap/fe/core/controllerextensions/MessageHandler.js +3 -224
  92. package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -0
  93. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +254 -0
  94. package/src/sap/fe/core/controllerextensions/PageReady.js +3 -279
  95. package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -0
  96. package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -2
  97. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +169 -0
  98. package/src/sap/fe/core/controllerextensions/Paginator.js +3 -174
  99. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -0
  100. package/src/sap/fe/core/controllerextensions/Paginator.ts +4 -5
  101. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +132 -0
  102. package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -130
  103. package/src/sap/fe/core/controllerextensions/Placeholder.js.map +1 -0
  104. package/src/sap/fe/core/controllerextensions/Routing-dbg.js +138 -0
  105. package/src/sap/fe/core/controllerextensions/Routing.js +3 -135
  106. package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -0
  107. package/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +10 -0
  108. package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -7
  109. package/src/sap/fe/core/controllerextensions/RoutingListener.js.map +1 -0
  110. package/src/sap/fe/core/controllerextensions/Share-dbg.js +317 -0
  111. package/src/sap/fe/core/controllerextensions/Share.js +3 -356
  112. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -0
  113. package/src/sap/fe/core/controllerextensions/Share.ts +6 -1
  114. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +553 -0
  115. package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -651
  116. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -0
  117. package/src/sap/fe/core/controllerextensions/SideEffects.ts +411 -553
  118. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +903 -0
  119. package/src/sap/fe/core/controllerextensions/ViewState.js +3 -967
  120. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -0
  121. package/src/sap/fe/core/controllerextensions/ViewState.ts +90 -41
  122. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +99 -0
  123. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +3 -96
  124. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -0
  125. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +314 -0
  126. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +3 -336
  127. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -0
  128. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +152 -0
  129. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +3 -161
  130. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -0
  131. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +243 -0
  132. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +3 -302
  133. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -0
  134. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +252 -0
  135. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +6 -0
  136. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -0
  137. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +188 -0
  138. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +1196 -0
  139. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +3 -1479
  140. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +239 -289
  142. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +689 -0
  143. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -785
  144. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -0
  145. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +134 -142
  146. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +236 -0
  147. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -287
  148. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -0
  149. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +1422 -0
  150. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +3 -1598
  151. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -0
  152. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +40 -24
  153. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +185 -0
  154. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +3 -214
  155. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -0
  156. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +4 -5
  157. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +1219 -0
  158. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -1213
  159. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -0
  160. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +304 -0
  161. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +3 -339
  162. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -0
  163. package/src/sap/fe/core/controllerextensions/routing/NavigationReason-dbg.js +15 -0
  164. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +6 -0
  165. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js.map +1 -0
  166. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.ts +6 -0
  167. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +798 -0
  168. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +3 -799
  169. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -0
  170. package/src/sap/fe/core/controls/Any-dbg.js +32 -0
  171. package/src/sap/fe/core/controls/Any.js +3 -29
  172. package/src/sap/fe/core/controls/Any.js.map +1 -0
  173. package/src/sap/fe/core/controls/AnyElement-dbg.js +29 -0
  174. package/src/sap/fe/core/controls/AnyElement.js +3 -26
  175. package/src/sap/fe/core/controls/AnyElement.js.map +1 -0
  176. package/src/sap/fe/core/controls/CommandExecution-dbg.js +72 -0
  177. package/src/sap/fe/core/controls/CommandExecution.js +3 -69
  178. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -0
  179. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +151 -0
  180. package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -148
  181. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +1 -0
  182. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +330 -0
  183. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +3 -328
  184. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +1 -0
  185. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +126 -0
  186. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -124
  187. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +1 -0
  188. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +170 -0
  189. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -171
  190. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -0
  191. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +194 -0
  192. package/src/sap/fe/core/controls/FieldWrapper.js +3 -191
  193. package/src/sap/fe/core/controls/FieldWrapper.js.map +1 -0
  194. package/src/sap/fe/core/controls/FileWrapper-dbg.js +280 -0
  195. package/src/sap/fe/core/controls/FileWrapper.js +3 -277
  196. package/src/sap/fe/core/controls/FileWrapper.js.map +1 -0
  197. package/src/sap/fe/core/controls/FilterBar-dbg.js +167 -0
  198. package/src/sap/fe/core/controls/FilterBar.js +3 -166
  199. package/src/sap/fe/core/controls/FilterBar.js.map +1 -0
  200. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +92 -0
  201. package/src/sap/fe/core/controls/FormElementWrapper.js +3 -89
  202. package/src/sap/fe/core/controls/FormElementWrapper.js.map +1 -0
  203. package/src/sap/fe/core/controls/MassEditSelect-dbg.js +33 -0
  204. package/src/sap/fe/core/controls/MassEditSelect.js +3 -30
  205. package/src/sap/fe/core/controls/MassEditSelect.js.map +1 -0
  206. package/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -0
  207. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -34
  208. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js.map +1 -0
  209. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +119 -0
  210. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -121
  211. package/src/sap/fe/core/controls/filterbar/FilterContainer.js.map +1 -0
  212. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +267 -0
  213. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +3 -264
  214. package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -0
  215. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -0
  216. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -150
  217. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js.map +1 -0
  218. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +310 -0
  219. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -307
  220. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -0
  221. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +1 -1
  222. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +491 -0
  223. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -504
  224. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -0
  225. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +2 -2
  226. package/src/sap/fe/core/converters/ConverterContext-dbg.js +403 -0
  227. package/src/sap/fe/core/converters/ConverterContext.js +3 -406
  228. package/src/sap/fe/core/converters/ConverterContext.js.map +1 -0
  229. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +88 -0
  230. package/src/sap/fe/core/converters/ManifestSettings.js +3 -84
  231. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -0
  232. package/src/sap/fe/core/converters/ManifestSettings.ts +3 -1
  233. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +402 -0
  234. package/src/sap/fe/core/converters/ManifestWrapper.js +3 -406
  235. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -0
  236. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1161 -0
  237. package/src/sap/fe/core/converters/MetaModelConverter.js +3 -1225
  238. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -0
  239. package/src/sap/fe/core/converters/MetaModelConverter.ts +193 -199
  240. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +89 -0
  241. package/src/sap/fe/core/converters/TemplateConverter.js +3 -86
  242. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -0
  243. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +396 -0
  244. package/src/sap/fe/core/converters/annotations/DataField.js +3 -394
  245. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -0
  246. package/src/sap/fe/core/converters/annotations/DataField.ts +5 -5
  247. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1948 -0
  248. package/src/sap/fe/core/converters/common/AnnotationConverter.js +3 -1868
  249. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -0
  250. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +424 -0
  251. package/src/sap/fe/core/converters/controls/Common/Action.js +3 -446
  252. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -0
  253. package/src/sap/fe/core/converters/controls/Common/Action.ts +31 -14
  254. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +276 -0
  255. package/src/sap/fe/core/converters/controls/Common/Chart.js +3 -260
  256. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -0
  257. package/src/sap/fe/core/converters/controls/Common/Chart.ts +52 -7
  258. package/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +42 -0
  259. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -39
  260. package/src/sap/fe/core/converters/controls/Common/Criticality.js.map +1 -0
  261. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +247 -0
  262. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -242
  263. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -0
  264. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +1 -1
  265. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +229 -0
  266. package/src/sap/fe/core/converters/controls/Common/Form.js +3 -234
  267. package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -0
  268. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +374 -0
  269. package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -371
  270. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -0
  271. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +2596 -0
  272. package/src/sap/fe/core/converters/controls/Common/Table.js +3 -2527
  273. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -0
  274. package/src/sap/fe/core/converters/controls/Common/Table.ts +214 -77
  275. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +522 -0
  276. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +3 -527
  277. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -0
  278. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +51 -50
  279. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +786 -0
  280. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +3 -845
  281. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -0
  282. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +0 -64
  283. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +291 -0
  284. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +3 -316
  285. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -0
  286. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +30 -12
  287. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +56 -0
  288. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +3 -53
  289. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js.map +1 -0
  290. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +438 -0
  291. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -431
  292. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -0
  293. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +597 -0
  294. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +3 -630
  295. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -0
  296. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +1 -1
  297. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +204 -0
  298. package/src/sap/fe/core/converters/helpers/Aggregation.js +3 -204
  299. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -0
  300. package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +100 -0
  301. package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -99
  302. package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -0
  303. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +199 -0
  304. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +3 -199
  305. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -0
  306. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +143 -0
  307. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +3 -140
  308. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js.map +1 -0
  309. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +2 -1
  310. package/src/sap/fe/core/converters/helpers/ID-dbg.js +92 -0
  311. package/src/sap/fe/core/converters/helpers/ID.js +3 -89
  312. package/src/sap/fe/core/converters/helpers/ID.js.map +1 -0
  313. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +62 -0
  314. package/src/sap/fe/core/converters/helpers/IssueManager.js +3 -59
  315. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -0
  316. package/src/sap/fe/core/converters/helpers/Key-dbg.js +62 -0
  317. package/src/sap/fe/core/converters/helpers/Key.js +3 -59
  318. package/src/sap/fe/core/converters/helpers/Key.js.map +1 -0
  319. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  320. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +80 -0
  321. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +3 -77
  322. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js.map +1 -0
  323. package/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +142 -0
  324. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +3 -139
  325. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js.map +1 -0
  326. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +406 -0
  327. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +3 -422
  328. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -0
  329. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +132 -111
  330. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +557 -0
  331. package/src/sap/fe/core/converters/templates/ListReportConverter.js +3 -589
  332. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -0
  333. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +474 -0
  334. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +3 -477
  335. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -0
  336. package/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +103 -0
  337. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -100
  338. package/src/sap/fe/core/designtime/AppComponent.designtime.js.map +1 -0
  339. package/src/sap/fe/core/designtime/library-preload.designtime.js +7 -0
  340. package/src/sap/fe/core/designtime/library-preload.designtime.js.map +1 -0
  341. package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +95 -0
  342. package/src/sap/fe/core/formatters/CollaborationFormatter.js +3 -92
  343. package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -0
  344. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +46 -0
  345. package/src/sap/fe/core/formatters/FPMFormatter.js +3 -44
  346. package/src/sap/fe/core/formatters/FPMFormatter.js.map +1 -0
  347. package/src/sap/fe/core/formatters/FPMFormatter.ts +3 -2
  348. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +343 -0
  349. package/src/sap/fe/core/formatters/FiscalFormat.js +6 -0
  350. package/src/sap/fe/core/formatters/FiscalFormat.js.map +1 -0
  351. package/src/sap/fe/core/formatters/FiscalFormat.ts +319 -0
  352. package/src/sap/fe/core/formatters/KPIFormatter-dbg.js +86 -0
  353. package/src/sap/fe/core/formatters/KPIFormatter.js +3 -83
  354. package/src/sap/fe/core/formatters/KPIFormatter.js.map +1 -0
  355. package/src/sap/fe/core/formatters/StandardFormatter-dbg.js +80 -0
  356. package/src/sap/fe/core/formatters/StandardFormatter.js +3 -78
  357. package/src/sap/fe/core/formatters/StandardFormatter.js.map +1 -0
  358. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +276 -0
  359. package/src/sap/fe/core/formatters/TableFormatter.js +3 -275
  360. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -0
  361. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
  362. package/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +20 -0
  363. package/src/sap/fe/core/formatters/TableFormatterTypes.js +3 -17
  364. package/src/sap/fe/core/formatters/TableFormatterTypes.js.map +1 -0
  365. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +172 -0
  366. package/src/sap/fe/core/formatters/ValueFormatter.js +3 -161
  367. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -0
  368. package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -8
  369. package/src/sap/fe/core/fpm/Component-dbg.js +94 -0
  370. package/src/sap/fe/core/fpm/Component.js +3 -91
  371. package/src/sap/fe/core/fpm/Component.js.map +1 -0
  372. package/src/sap/fe/core/fpm/manifest.json +1 -1
  373. package/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +30 -0
  374. package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -36
  375. package/src/sap/fe/core/helpers/AnnotationEnum.js.map +1 -0
  376. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +334 -0
  377. package/src/sap/fe/core/helpers/AppStartupHelper.js +3 -335
  378. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -0
  379. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +1739 -0
  380. package/src/sap/fe/core/helpers/BindingToolkit.js +3 -1611
  381. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -0
  382. package/src/sap/fe/core/helpers/BindingToolkit.ts +277 -97
  383. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +421 -0
  384. package/src/sap/fe/core/helpers/ClassSupport.js +3 -420
  385. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -0
  386. package/src/sap/fe/core/helpers/ClassSupport.ts +13 -15
  387. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +526 -0
  388. package/src/sap/fe/core/helpers/DeleteHelper.js +3 -618
  389. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -0
  390. package/src/sap/fe/core/helpers/DeleteHelper.ts +116 -134
  391. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +55 -0
  392. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +3 -52
  393. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js.map +1 -0
  394. package/src/sap/fe/core/helpers/EditState-dbg.js +80 -0
  395. package/src/sap/fe/core/helpers/EditState.js +3 -77
  396. package/src/sap/fe/core/helpers/EditState.js.map +1 -0
  397. package/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +55 -0
  398. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +3 -52
  399. package/src/sap/fe/core/helpers/ExcelFormatHelper.js.map +1 -0
  400. package/src/sap/fe/core/helpers/FPMHelper-dbg.js +55 -0
  401. package/src/sap/fe/core/helpers/FPMHelper.js +3 -52
  402. package/src/sap/fe/core/helpers/FPMHelper.js.map +1 -0
  403. package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +180 -0
  404. package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -177
  405. package/src/sap/fe/core/helpers/KeepAliveHelper.js.map +1 -0
  406. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +28 -0
  407. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +3 -25
  408. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js.map +1 -0
  409. package/src/sap/fe/core/helpers/LoaderUtils-dbg.js +29 -0
  410. package/src/sap/fe/core/helpers/LoaderUtils.js +3 -30
  411. package/src/sap/fe/core/helpers/LoaderUtils.js.map +1 -0
  412. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +1229 -0
  413. package/src/sap/fe/core/helpers/MassEditHelper.js +3 -1309
  414. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -0
  415. package/src/sap/fe/core/helpers/MassEditHelper.ts +6 -6
  416. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +65 -0
  417. package/src/sap/fe/core/helpers/MessageStrip.js +3 -62
  418. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -0
  419. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +489 -0
  420. package/src/sap/fe/core/helpers/ModelHelper.js +3 -503
  421. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -0
  422. package/src/sap/fe/core/helpers/ModelHelper.ts +13 -36
  423. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +174 -0
  424. package/src/sap/fe/core/helpers/PasteHelper.js +3 -185
  425. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -0
  426. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +371 -0
  427. package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -368
  428. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -0
  429. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +70 -0
  430. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -67
  431. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -0
  432. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +141 -0
  433. package/src/sap/fe/core/helpers/SideEffectsHelper.js +3 -137
  434. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +1 -0
  435. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +3 -2
  436. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +204 -0
  437. package/src/sap/fe/core/helpers/StableIdHelper.js +3 -208
  438. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -0
  439. package/src/sap/fe/core/helpers/Synchronization-dbg.js +35 -0
  440. package/src/sap/fe/core/helpers/Synchronization.js +3 -33
  441. package/src/sap/fe/core/helpers/Synchronization.js.map +1 -0
  442. package/src/sap/fe/core/helpers/ToES6Promise-dbg.js +29 -0
  443. package/src/sap/fe/core/helpers/ToES6Promise.js +3 -26
  444. package/src/sap/fe/core/helpers/ToES6Promise.js.map +1 -0
  445. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +20 -0
  446. package/src/sap/fe/core/helpers/TypeGuards.js +3 -19
  447. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -0
  448. package/src/sap/fe/core/helpers/TypeGuards.ts +5 -1
  449. package/src/sap/fe/core/jsx-runtime/Fragment-dbg.js +14 -0
  450. package/src/sap/fe/core/jsx-runtime/Fragment.js +3 -11
  451. package/src/sap/fe/core/jsx-runtime/Fragment.js.map +1 -0
  452. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +76 -0
  453. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -86
  454. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -0
  455. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +124 -0
  456. package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -98
  457. package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -0
  458. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +43 -17
  459. package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +41 -0
  460. package/src/sap/fe/core/jsx-runtime/jsx-xml-dbg.js +94 -0
  461. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +3 -90
  462. package/src/sap/fe/core/jsx-runtime/jsx-xml.js.map +1 -0
  463. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
  464. package/src/sap/fe/core/jsx-runtime/jsx.js +3 -28
  465. package/src/sap/fe/core/jsx-runtime/jsx.js.map +1 -0
  466. package/src/sap/fe/core/jsx-runtime/jsx.ts +19 -1
  467. package/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +10 -0
  468. package/src/sap/fe/core/jsx-runtime/jsxs.js +3 -7
  469. package/src/sap/fe/core/jsx-runtime/jsxs.js.map +1 -0
  470. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +154 -0
  471. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +3 -153
  472. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -0
  473. package/src/sap/fe/core/library-dbg.js +437 -0
  474. package/src/sap/fe/core/library-preload.js +900 -0
  475. package/src/sap/fe/core/library-preload.js.map +1 -0
  476. package/src/sap/fe/core/library-preload.support.js +177 -0
  477. package/src/sap/fe/core/library-preload.support.js.map +1 -0
  478. package/src/sap/fe/core/library.js +3 -461
  479. package/src/sap/fe/core/library.js.map +1 -0
  480. package/src/sap/fe/core/library.support.js +1 -1
  481. package/src/sap/fe/core/library.ts +12 -25
  482. package/src/sap/fe/core/manifest.json +100 -0
  483. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +99 -0
  484. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -96
  485. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -0
  486. package/src/sap/fe/core/messagebundle.properties +6 -0
  487. package/src/sap/fe/core/messagebundle_ar.properties +22 -0
  488. package/src/sap/fe/core/messagebundle_bg.properties +22 -0
  489. package/src/sap/fe/core/messagebundle_ca.properties +22 -0
  490. package/src/sap/fe/core/messagebundle_cs.properties +22 -0
  491. package/src/sap/fe/core/messagebundle_cy.properties +22 -0
  492. package/src/sap/fe/core/messagebundle_da.properties +22 -0
  493. package/src/sap/fe/core/messagebundle_de.properties +22 -0
  494. package/src/sap/fe/core/messagebundle_el.properties +22 -0
  495. package/src/sap/fe/core/messagebundle_en.properties +22 -0
  496. package/src/sap/fe/core/messagebundle_en_GB.properties +22 -0
  497. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +22 -0
  498. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +4 -0
  499. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +4 -0
  500. package/src/sap/fe/core/messagebundle_es.properties +22 -0
  501. package/src/sap/fe/core/messagebundle_es_MX.properties +22 -0
  502. package/src/sap/fe/core/messagebundle_et.properties +22 -0
  503. package/src/sap/fe/core/messagebundle_fi.properties +22 -0
  504. package/src/sap/fe/core/messagebundle_fr.properties +22 -0
  505. package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -0
  506. package/src/sap/fe/core/messagebundle_hi.properties +22 -0
  507. package/src/sap/fe/core/messagebundle_hr.properties +23 -1
  508. package/src/sap/fe/core/messagebundle_hu.properties +22 -0
  509. package/src/sap/fe/core/messagebundle_id.properties +22 -0
  510. package/src/sap/fe/core/messagebundle_it.properties +22 -0
  511. package/src/sap/fe/core/messagebundle_iw.properties +22 -0
  512. package/src/sap/fe/core/messagebundle_ja.properties +22 -0
  513. package/src/sap/fe/core/messagebundle_kk.properties +22 -0
  514. package/src/sap/fe/core/messagebundle_ko.properties +22 -0
  515. package/src/sap/fe/core/messagebundle_lt.properties +22 -0
  516. package/src/sap/fe/core/messagebundle_lv.properties +22 -0
  517. package/src/sap/fe/core/messagebundle_ms.properties +22 -0
  518. package/src/sap/fe/core/messagebundle_nl.properties +22 -0
  519. package/src/sap/fe/core/messagebundle_no.properties +22 -0
  520. package/src/sap/fe/core/messagebundle_pl.properties +22 -0
  521. package/src/sap/fe/core/messagebundle_pt.properties +22 -0
  522. package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -0
  523. package/src/sap/fe/core/messagebundle_ro.properties +22 -0
  524. package/src/sap/fe/core/messagebundle_ru.properties +22 -0
  525. package/src/sap/fe/core/messagebundle_sh.properties +22 -0
  526. package/src/sap/fe/core/messagebundle_sk.properties +22 -0
  527. package/src/sap/fe/core/messagebundle_sl.properties +22 -0
  528. package/src/sap/fe/core/messagebundle_sv.properties +22 -0
  529. package/src/sap/fe/core/messagebundle_th.properties +22 -0
  530. package/src/sap/fe/core/messagebundle_tr.properties +22 -0
  531. package/src/sap/fe/core/messagebundle_uk.properties +22 -0
  532. package/src/sap/fe/core/messagebundle_vi.properties +22 -0
  533. package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -0
  534. package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -0
  535. package/src/sap/fe/core/operationsHelper-dbg.js +155 -0
  536. package/src/sap/fe/core/operationsHelper.js +3 -205
  537. package/src/sap/fe/core/operationsHelper.js.map +1 -0
  538. package/src/sap/fe/core/operationsHelper.ts +14 -68
  539. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +837 -0
  540. package/src/sap/fe/core/rootView/Fcl.controller.js +3 -855
  541. package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -0
  542. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +190 -0
  543. package/src/sap/fe/core/rootView/NavContainer.controller.js +3 -190
  544. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -0
  545. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +506 -0
  546. package/src/sap/fe/core/rootView/RootViewBaseController.js +3 -538
  547. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -0
  548. package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -4
  549. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +60 -0
  550. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -60
  551. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js.map +1 -0
  552. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +196 -0
  553. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -219
  554. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -0
  555. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +80 -0
  556. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -82
  557. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -0
  558. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +320 -0
  559. package/src/sap/fe/core/services/NavigationServiceFactory.js +3 -320
  560. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -0
  561. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +91 -0
  562. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -89
  563. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -0
  564. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +817 -0
  565. package/src/sap/fe/core/services/RoutingServiceFactory.js +3 -847
  566. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -0
  567. package/src/sap/fe/core/services/RoutingServiceFactory.ts +6 -3
  568. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +732 -0
  569. package/src/sap/fe/core/services/ShellServicesFactory.js +3 -752
  570. package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -0
  571. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +569 -0
  572. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +3 -599
  573. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -0
  574. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +3 -3
  575. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +355 -0
  576. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +3 -387
  577. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -0
  578. package/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +37 -0
  579. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +3 -34
  580. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js.map +1 -0
  581. package/src/sap/fe/core/support/AnnotationIssue.support.js +4 -4
  582. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +3 -3
  583. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +3 -3
  584. package/src/sap/fe/core/support/CommonHelper-dbg.js +63 -0
  585. package/src/sap/fe/core/support/CommonHelper.js +3 -60
  586. package/src/sap/fe/core/support/CommonHelper.js.map +1 -0
  587. package/src/sap/fe/core/support/Diagnostics-dbg.js +44 -0
  588. package/src/sap/fe/core/support/Diagnostics.js +3 -49
  589. package/src/sap/fe/core/support/Diagnostics.js.map +1 -0
  590. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +3 -3
  591. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +70 -0
  592. package/src/sap/fe/core/templating/CommonFormatters.js +3 -66
  593. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -0
  594. package/src/sap/fe/core/templating/CommonFormatters.ts +9 -3
  595. package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +136 -0
  596. package/src/sap/fe/core/templating/CriticalityFormatters.js +3 -133
  597. package/src/sap/fe/core/templating/CriticalityFormatters.js.map +1 -0
  598. package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +58 -0
  599. package/src/sap/fe/core/templating/DataFieldFormatters.js +3 -55
  600. package/src/sap/fe/core/templating/DataFieldFormatters.js.map +1 -0
  601. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +363 -0
  602. package/src/sap/fe/core/templating/DataModelPathHelper.js +3 -372
  603. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -0
  604. package/src/sap/fe/core/templating/DataModelPathHelper.ts +17 -8
  605. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +56 -0
  606. package/src/sap/fe/core/templating/DisplayModeFormatter.js +3 -124
  607. package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -0
  608. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +0 -47
  609. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +68 -0
  610. package/src/sap/fe/core/templating/EntitySetHelper.js +3 -81
  611. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -0
  612. package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +77 -0
  613. package/src/sap/fe/core/templating/FieldControlHelper.js +3 -74
  614. package/src/sap/fe/core/templating/FieldControlHelper.js.map +1 -0
  615. package/src/sap/fe/core/templating/FilterHelper-dbg.js +346 -0
  616. package/src/sap/fe/core/templating/FilterHelper.js +3 -339
  617. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -0
  618. package/src/sap/fe/core/templating/FilterHelper.ts +2 -21
  619. package/src/sap/fe/core/templating/FilterTemplating-dbg.js +62 -0
  620. package/src/sap/fe/core/templating/FilterTemplating.js +3 -59
  621. package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -0
  622. package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +93 -0
  623. package/src/sap/fe/core/templating/PropertyFormatters.js +3 -90
  624. package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -0
  625. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +340 -0
  626. package/src/sap/fe/core/templating/PropertyHelper.js +3 -337
  627. package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -0
  628. package/src/sap/fe/core/templating/SemanticObjectHelper-dbg.js +91 -0
  629. package/src/sap/fe/core/templating/SemanticObjectHelper.js +3 -43
  630. package/src/sap/fe/core/templating/SemanticObjectHelper.js.map +1 -0
  631. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +45 -1
  632. package/src/sap/fe/core/templating/UIFormatters-dbg.js +498 -0
  633. package/src/sap/fe/core/templating/UIFormatters.js +3 -544
  634. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -0
  635. package/src/sap/fe/core/templating/UIFormatters.ts +60 -110
  636. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +35 -0
  637. package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -33
  638. package/src/sap/fe/core/type/DateTimeWithTimezone.js.map +1 -0
  639. package/src/sap/fe/core/type/EDM-dbg.js +84 -0
  640. package/src/sap/fe/core/type/EDM.js +6 -0
  641. package/src/sap/fe/core/type/EDM.js.map +1 -0
  642. package/src/sap/fe/core/type/EDM.ts +70 -0
  643. package/src/sap/fe/core/type/Email-dbg.js +29 -0
  644. package/src/sap/fe/core/type/Email.js +3 -26
  645. package/src/sap/fe/core/type/Email.js.map +1 -0
  646. package/src/sap/fe/core/type/FiscalDate-dbg.js +174 -0
  647. package/src/sap/fe/core/type/FiscalDate.js +6 -0
  648. package/src/sap/fe/core/type/FiscalDate.js.map +1 -0
  649. package/src/sap/fe/core/type/FiscalDate.ts +179 -0
  650. package/src/sap/fe/core/type/TypeUtil-dbg.js +58 -0
  651. package/src/sap/fe/core/type/TypeUtil.js +3 -55
  652. package/src/sap/fe/core/type/TypeUtil.js.map +1 -0
  653. package/src/sap/fe/core/type/TypeUtil.ts +1 -0
  654. package/src/.eslintrc +0 -7
@@ -1,375 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/helpers/BindingToolkit", "sap/fe/core/templating/PropertyHelper"], function (BindingToolkit, PropertyHelper) {
6
- "use strict";
7
-
8
- var _exports = {};
9
- var isPathExpression = PropertyHelper.isPathExpression;
10
- var isAnnotationPathExpression = PropertyHelper.isAnnotationPathExpression;
11
- var unresolveableExpression = BindingToolkit.unresolveableExpression;
12
- var getExpressionFromAnnotation = BindingToolkit.getExpressionFromAnnotation;
13
- var equal = BindingToolkit.equal;
14
- var constant = BindingToolkit.constant;
15
- /**
16
- * Function that returns the relative path to the property from the DataModelObjectPath.
17
- *
18
- * @param contextPath The DataModelObjectPath object to the property
19
- * @returns The path from the root entity set.
20
- */
21
- var getRelativePaths = function (contextPath) {
22
- return getPathRelativeLocation(contextPath === null || contextPath === void 0 ? void 0 : contextPath.contextLocation, contextPath === null || contextPath === void 0 ? void 0 : contextPath.navigationProperties).map(function (np) {
23
- return np.name;
24
- });
25
- };
26
- _exports.getRelativePaths = getRelativePaths;
27
- var getPathRelativeLocation = function (contextPath) {
28
- var visitedNavProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
29
- if (!contextPath) {
30
- return visitedNavProps;
31
- } else if (visitedNavProps.length >= contextPath.navigationProperties.length) {
32
- var remainingNavProps = [];
33
- contextPath.navigationProperties.forEach(function (navProp, navIndex) {
34
- if (visitedNavProps[navIndex] !== navProp) {
35
- remainingNavProps.push(visitedNavProps[navIndex]);
36
- }
37
- });
38
- remainingNavProps = remainingNavProps.concat(visitedNavProps.slice(contextPath.navigationProperties.length));
39
- // Clean up NavProp -> Owner
40
- var currentIdx = 0;
41
- while (remainingNavProps.length > 1 && currentIdx != remainingNavProps.length - 1) {
42
- var currentNav = remainingNavProps[currentIdx];
43
- var nextNavProp = remainingNavProps[currentIdx + 1];
44
- if (currentNav._type === "NavigationProperty" && currentNav.partner === nextNavProp.name) {
45
- remainingNavProps.splice(0, 2);
46
- } else {
47
- currentIdx++;
48
- }
49
- }
50
- return remainingNavProps;
51
- } else {
52
- var extraNavProp = [];
53
- visitedNavProps.forEach(function (navProp, navIndex) {
54
- if (contextPath.navigationProperties[navIndex] !== navProp) {
55
- extraNavProp.push(visitedNavProps[navIndex]);
56
- }
57
- });
58
- extraNavProp = extraNavProp.concat(contextPath.navigationProperties.slice(visitedNavProps.length));
59
- // Clean up NavProp -> Owner
60
- var _currentIdx = 0;
61
- while (extraNavProp.length > 1 && _currentIdx != extraNavProp.length - 1) {
62
- var _currentNav = extraNavProp[_currentIdx];
63
- var _nextNavProp = extraNavProp[_currentIdx + 1];
64
- if (_currentNav._type === "NavigationProperty" && _currentNav.partner === _nextNavProp.name) {
65
- extraNavProp.splice(0, 2);
66
- } else {
67
- _currentIdx++;
68
- }
69
- }
70
- extraNavProp = extraNavProp.map(function (navProp) {
71
- return navProp._type === "NavigationProperty" ? navProp.targetType.navigationProperties.find(function (np) {
72
- return np.name === navProp.partner;
73
- }) : navProp;
74
- });
75
- return extraNavProp;
76
- }
77
- };
78
- _exports.getPathRelativeLocation = getPathRelativeLocation;
79
- var enhanceDataModelPath = function (dataModelObjectPath, propertyPath) {
80
- var sPropertyPath = "";
81
- if ((isPathExpression(propertyPath) || isAnnotationPathExpression(propertyPath)) && propertyPath.path) {
82
- sPropertyPath = propertyPath.path;
83
- } else if (typeof propertyPath === "string") {
84
- sPropertyPath = propertyPath;
85
- }
86
- var oTarget;
87
- if (isPathExpression(propertyPath) || isAnnotationPathExpression(propertyPath)) {
88
- oTarget = propertyPath.$target;
89
- } else if (dataModelObjectPath.targetEntityType) {
90
- oTarget = dataModelObjectPath.targetEntityType.resolvePath(sPropertyPath);
91
- } else {
92
- oTarget = dataModelObjectPath.targetObject;
93
- }
94
- var aPathSplit = sPropertyPath.split("/");
95
- var currentEntitySet = dataModelObjectPath.targetEntitySet;
96
- var currentEntityType = dataModelObjectPath.targetEntityType;
97
- var navigationProperties = dataModelObjectPath.navigationProperties.concat();
98
- // Process only if we have to go through navigation properties
99
-
100
- var reducedEntityType = dataModelObjectPath.targetEntityType;
101
- aPathSplit.forEach(function (pathPart) {
102
- if (!reducedEntityType) {
103
- return;
104
- }
105
- var potentialNavProp = reducedEntityType.navigationProperties.find(function (navProp) {
106
- return navProp.name === pathPart;
107
- });
108
- if (potentialNavProp) {
109
- navigationProperties.push(potentialNavProp);
110
- currentEntityType = potentialNavProp.targetType;
111
- if (currentEntitySet && currentEntitySet.navigationPropertyBinding.hasOwnProperty(pathPart)) {
112
- currentEntitySet = currentEntitySet.navigationPropertyBinding[pathPart];
113
- }
114
- reducedEntityType = currentEntityType;
115
- } else {
116
- var potentialComplexType = reducedEntityType.entityProperties.find(function (navProp) {
117
- return navProp.name === pathPart;
118
- });
119
- if (potentialComplexType !== null && potentialComplexType !== void 0 && potentialComplexType.targetType) {
120
- navigationProperties.push(potentialComplexType);
121
- reducedEntityType = currentEntityType;
122
- } else {
123
- reducedEntityType = undefined;
124
- }
125
- }
126
- });
127
- return {
128
- startingEntitySet: dataModelObjectPath.startingEntitySet,
129
- navigationProperties: navigationProperties,
130
- contextLocation: dataModelObjectPath.contextLocation,
131
- targetEntitySet: currentEntitySet,
132
- targetEntityType: currentEntityType,
133
- targetObject: oTarget,
134
- convertedTypes: dataModelObjectPath.convertedTypes
135
- };
136
- };
137
- _exports.enhanceDataModelPath = enhanceDataModelPath;
138
- var getTargetEntitySetPath = function (dataModelObjectPath) {
139
- var targetEntitySetPath = "/".concat(dataModelObjectPath.startingEntitySet.name);
140
- var currentEntitySet = dataModelObjectPath.startingEntitySet;
141
- var navigatedPaths = [];
142
- dataModelObjectPath.navigationProperties.forEach(function (navProp) {
143
- navigatedPaths.push(navProp.name);
144
- if (currentEntitySet && currentEntitySet.navigationPropertyBinding.hasOwnProperty(navigatedPaths.join("/"))) {
145
- targetEntitySetPath += "/$NavigationPropertyBinding/".concat(navigatedPaths.join("/"), "/$");
146
- currentEntitySet = currentEntitySet.navigationPropertyBinding[navigatedPaths.join("/")];
147
- navigatedPaths = [];
148
- }
149
- });
150
- return targetEntitySetPath;
151
- };
152
- _exports.getTargetEntitySetPath = getTargetEntitySetPath;
153
- var getTargetObjectPath = function (dataModelObjectPath) {
154
- var bRelative = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
155
- var path = "";
156
- if (!dataModelObjectPath.startingEntitySet) {
157
- return "/";
158
- }
159
- if (!bRelative) {
160
- path += "/".concat(dataModelObjectPath.startingEntitySet.name);
161
- }
162
- if (dataModelObjectPath.navigationProperties.length > 0) {
163
- path = setTrailingSlash(path);
164
- path += dataModelObjectPath.navigationProperties.map(function (navProp) {
165
- return navProp.name;
166
- }).join("/");
167
- }
168
- if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.name && dataModelObjectPath.targetObject._type !== "NavigationProperty" && dataModelObjectPath.targetObject._type !== "EntityType" && dataModelObjectPath.targetObject._type !== "EntitySet" && dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet) {
169
- path = setTrailingSlash(path);
170
- path += "".concat(dataModelObjectPath.targetObject.name);
171
- } else if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.hasOwnProperty("term")) {
172
- path = setTrailingSlash(path);
173
- path += "@".concat(dataModelObjectPath.targetObject.term);
174
- if (dataModelObjectPath.targetObject.hasOwnProperty("qualifier") && !!dataModelObjectPath.targetObject.qualifier) {
175
- path += "#".concat(dataModelObjectPath.targetObject.qualifier);
176
- }
177
- }
178
- return path;
179
- };
180
- _exports.getTargetObjectPath = getTargetObjectPath;
181
- var getContextRelativeTargetObjectPath = function (dataModelObjectPath) {
182
- var _dataModelObjectPath$;
183
- var forBindingExpression = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
184
- if (((_dataModelObjectPath$ = dataModelObjectPath.contextLocation) === null || _dataModelObjectPath$ === void 0 ? void 0 : _dataModelObjectPath$.startingEntitySet) !== dataModelObjectPath.startingEntitySet) {
185
- return getTargetObjectPath(dataModelObjectPath);
186
- }
187
- return _getContextRelativeTargetObjectPath(dataModelObjectPath, forBindingExpression);
188
- };
189
- _exports.getContextRelativeTargetObjectPath = getContextRelativeTargetObjectPath;
190
- var _getContextRelativeTargetObjectPath = function (dataModelObjectPath) {
191
- var forBindingExpression = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
192
- var navProperties = getPathRelativeLocation(dataModelObjectPath.contextLocation, dataModelObjectPath.navigationProperties);
193
- if (forBindingExpression) {
194
- if (navProperties.find(function (np) {
195
- return np._type === "NavigationProperty" && np.isCollection;
196
- })) {
197
- return undefined;
198
- }
199
- }
200
- var path = navProperties.map(function (np) {
201
- return np.name;
202
- }).join("/");
203
- if (dataModelObjectPath.targetObject && (dataModelObjectPath.targetObject.name || dataModelObjectPath.targetObject.type === "PropertyPath" && dataModelObjectPath.targetObject.value) && dataModelObjectPath.targetObject._type !== "NavigationProperty" && dataModelObjectPath.targetObject._type !== "EntityType" && dataModelObjectPath.targetObject._type !== "EntitySet" && dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet) {
204
- path = setTrailingSlash(path);
205
- path += dataModelObjectPath.targetObject.type === "PropertyPath" ? "".concat(dataModelObjectPath.targetObject.value) : "".concat(dataModelObjectPath.targetObject.name);
206
- } else if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.hasOwnProperty("term")) {
207
- path = setTrailingSlash(path);
208
- path += "@".concat(dataModelObjectPath.targetObject.term);
209
- if (dataModelObjectPath.targetObject.hasOwnProperty("qualifier") && !!dataModelObjectPath.targetObject.qualifier) {
210
- path += "#".concat(dataModelObjectPath.targetObject.qualifier);
211
- }
212
- } else if (!dataModelObjectPath.targetObject) {
213
- return undefined;
214
- }
215
- return path;
216
- };
217
- var isPathUpdatable = function (dataModelObjectPath, extractionParametersOnPath) {
218
- return checkOnPath(dataModelObjectPath, function (annotationObject) {
219
- var _annotationObject$Upd;
220
- return annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Upd = annotationObject.UpdateRestrictions) === null || _annotationObject$Upd === void 0 ? void 0 : _annotationObject$Upd.Updatable;
221
- }, extractionParametersOnPath);
222
- };
223
- _exports.isPathUpdatable = isPathUpdatable;
224
- var isPathSearchable = function (dataModelObjectPath, extractionParametersOnPath) {
225
- return checkOnPath(dataModelObjectPath, function (annotationObject) {
226
- var _annotationObject$Sea;
227
- return annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Sea = annotationObject.SearchRestrictions) === null || _annotationObject$Sea === void 0 ? void 0 : _annotationObject$Sea.Searchable;
228
- }, extractionParametersOnPath);
229
- };
230
- _exports.isPathSearchable = isPathSearchable;
231
- var isPathDeletable = function (dataModelObjectPath, extractionParametersOnPath) {
232
- return checkOnPath(dataModelObjectPath, function (annotationObject) {
233
- var _annotationObject$Del;
234
- return annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Del = annotationObject.DeleteRestrictions) === null || _annotationObject$Del === void 0 ? void 0 : _annotationObject$Del.Deletable;
235
- }, extractionParametersOnPath);
236
- };
237
- _exports.isPathDeletable = isPathDeletable;
238
- var isPathInsertable = function (dataModelObjectPath, extractionParametersOnPath) {
239
- return checkOnPath(dataModelObjectPath, function (annotationObject) {
240
- var _annotationObject$Ins;
241
- return annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Ins = annotationObject.InsertRestrictions) === null || _annotationObject$Ins === void 0 ? void 0 : _annotationObject$Ins.Insertable;
242
- }, extractionParametersOnPath);
243
- };
244
- _exports.isPathInsertable = isPathInsertable;
245
- var checkFilterExpressionRestrictions = function (dataModelObjectPath, allowedExpression) {
246
- return checkOnPath(dataModelObjectPath, function (annotationObject) {
247
- if (annotationObject && "FilterRestrictions" in annotationObject) {
248
- var _annotationObject$Fil;
249
- var filterExpressionRestrictions = (annotationObject === null || annotationObject === void 0 ? void 0 : (_annotationObject$Fil = annotationObject.FilterRestrictions) === null || _annotationObject$Fil === void 0 ? void 0 : _annotationObject$Fil.FilterExpressionRestrictions) || [];
250
- var currentObjectRestriction = filterExpressionRestrictions.find(function (restriction) {
251
- return restriction.Property.$target === dataModelObjectPath.targetObject;
252
- });
253
- if (currentObjectRestriction) {
254
- var _currentObjectRestric;
255
- return allowedExpression.indexOf(currentObjectRestriction === null || currentObjectRestriction === void 0 ? void 0 : (_currentObjectRestric = currentObjectRestriction.AllowedExpressions) === null || _currentObjectRestric === void 0 ? void 0 : _currentObjectRestric.toString()) !== -1;
256
- } else {
257
- return false;
258
- }
259
- } else {
260
- return false;
261
- }
262
- });
263
- };
264
- _exports.checkFilterExpressionRestrictions = checkFilterExpressionRestrictions;
265
- var checkOnPath = function (dataModelObjectPath, checkFunction, extractionParametersOnPath) {
266
- if (!dataModelObjectPath || !dataModelObjectPath.startingEntitySet) {
267
- return constant(true);
268
- }
269
- dataModelObjectPath = enhanceDataModelPath(dataModelObjectPath, extractionParametersOnPath === null || extractionParametersOnPath === void 0 ? void 0 : extractionParametersOnPath.propertyPath);
270
- var currentEntitySet = dataModelObjectPath.startingEntitySet;
271
- var parentEntitySet = null;
272
- var visitedNavigationPropsName = [];
273
- var allVisitedNavigationProps = [];
274
- var targetEntitySet = currentEntitySet;
275
- var targetEntityType = dataModelObjectPath.targetEntityType;
276
- var resetVisitedNavProps = false;
277
- dataModelObjectPath.navigationProperties.forEach(function (navigationProperty) {
278
- if (resetVisitedNavProps) {
279
- visitedNavigationPropsName = [];
280
- }
281
- visitedNavigationPropsName.push(navigationProperty.name);
282
- allVisitedNavigationProps.push(navigationProperty);
283
- if (navigationProperty._type === "Property" || !navigationProperty.containsTarget) {
284
- // We should have a navigationPropertyBinding associated with the path so far which can consist of ([ContainmentNavProp]/)*[NavProp]
285
- var _fullNavigationPath = visitedNavigationPropsName.join("/");
286
- if (currentEntitySet && currentEntitySet.navigationPropertyBinding.hasOwnProperty(_fullNavigationPath)) {
287
- parentEntitySet = currentEntitySet;
288
- currentEntitySet = currentEntitySet.navigationPropertyBinding[_fullNavigationPath];
289
- targetEntitySet = currentEntitySet;
290
- // If we reached a navigation property with a navigationpropertybinding, we need to reset the visited path on the next iteration (if there is one)
291
- resetVisitedNavProps = true;
292
- } else {
293
- // We really should not end up here but at least let's try to avoid incorrect behavior
294
- parentEntitySet = currentEntitySet;
295
- currentEntitySet = null;
296
- resetVisitedNavProps = true;
297
- }
298
- } else {
299
- parentEntitySet = currentEntitySet;
300
- targetEntitySet = null;
301
- }
302
- });
303
-
304
- // At this point we have navigated down all the nav prop and we should have
305
- // The target entitySet pointing to either null (in case of containment navprop a last part), or the actual target (non containment as target)
306
- // The parent entitySet pointing to the previous entitySet used in the path
307
- // VisitedNavigationPath should contain the path up to this property
308
-
309
- // Restrictions should then be evaluated as ParentEntitySet.NavRestrictions[NavPropertyPath] || TargetEntitySet.Restrictions
310
- var fullNavigationPath = visitedNavigationPropsName.join("/");
311
- var restrictions, visitedNavProps;
312
- if (parentEntitySet !== null) {
313
- var _parentEntitySet$anno, _parentEntitySet$anno2, _parentEntitySet$anno3;
314
- var _parentEntitySet = parentEntitySet;
315
- (_parentEntitySet$anno = _parentEntitySet.annotations) === null || _parentEntitySet$anno === void 0 ? void 0 : (_parentEntitySet$anno2 = _parentEntitySet$anno.Capabilities) === null || _parentEntitySet$anno2 === void 0 ? void 0 : (_parentEntitySet$anno3 = _parentEntitySet$anno2.NavigationRestrictions) === null || _parentEntitySet$anno3 === void 0 ? void 0 : _parentEntitySet$anno3.RestrictedProperties.forEach(function (restrictedNavProp) {
316
- var _restrictedNavProp$Na;
317
- if (((_restrictedNavProp$Na = restrictedNavProp.NavigationProperty) === null || _restrictedNavProp$Na === void 0 ? void 0 : _restrictedNavProp$Na.type) === "NavigationPropertyPath") {
318
- var restrictionDefinition = checkFunction(restrictedNavProp);
319
- if (fullNavigationPath === restrictedNavProp.NavigationProperty.value && restrictionDefinition !== undefined) {
320
- var _dataModelObjectPath;
321
- var _allVisitedNavigationProps = allVisitedNavigationProps.slice(0, -1);
322
- visitedNavProps = _allVisitedNavigationProps;
323
- var pathRelativeLocation = getPathRelativeLocation((_dataModelObjectPath = dataModelObjectPath) === null || _dataModelObjectPath === void 0 ? void 0 : _dataModelObjectPath.contextLocation, visitedNavProps).map(function (np) {
324
- return np.name;
325
- });
326
- var pathVisitorFunction = extractionParametersOnPath !== null && extractionParametersOnPath !== void 0 && extractionParametersOnPath.pathVisitor ? getPathVisitorForSingleton(extractionParametersOnPath.pathVisitor, pathRelativeLocation) : undefined; // send pathVisitor function only when it is defined and only send function or defined as a parameter
327
- restrictions = equal(getExpressionFromAnnotation(restrictionDefinition, pathRelativeLocation, undefined, pathVisitorFunction), true);
328
- }
329
- }
330
- });
331
- }
332
- var targetRestrictions;
333
- if (!(extractionParametersOnPath !== null && extractionParametersOnPath !== void 0 && extractionParametersOnPath.ignoreTargetCollection)) {
334
- var _targetEntitySet, _targetEntitySet$anno;
335
- var restrictionDefinition = checkFunction((_targetEntitySet = targetEntitySet) === null || _targetEntitySet === void 0 ? void 0 : (_targetEntitySet$anno = _targetEntitySet.annotations) === null || _targetEntitySet$anno === void 0 ? void 0 : _targetEntitySet$anno.Capabilities);
336
- if (targetEntitySet === null && restrictionDefinition === undefined) {
337
- var _targetEntityType$ann;
338
- restrictionDefinition = checkFunction(targetEntityType === null || targetEntityType === void 0 ? void 0 : (_targetEntityType$ann = targetEntityType.annotations) === null || _targetEntityType$ann === void 0 ? void 0 : _targetEntityType$ann.Capabilities);
339
- }
340
- if (restrictionDefinition !== undefined) {
341
- var pathRelativeLocation = getPathRelativeLocation(dataModelObjectPath.contextLocation, allVisitedNavigationProps).map(function (np) {
342
- return np.name;
343
- });
344
- var pathVisitorFunction = extractionParametersOnPath !== null && extractionParametersOnPath !== void 0 && extractionParametersOnPath.pathVisitor ? getPathVisitorForSingleton(extractionParametersOnPath.pathVisitor, pathRelativeLocation) : undefined;
345
- targetRestrictions = equal(getExpressionFromAnnotation(restrictionDefinition, pathRelativeLocation, undefined, pathVisitorFunction), true);
346
- }
347
- }
348
- return restrictions || targetRestrictions || (extractionParametersOnPath !== null && extractionParametersOnPath !== void 0 && extractionParametersOnPath.authorizeUnresolvable ? unresolveableExpression : constant(true));
349
- };
350
-
351
- /**
352
- * Set a trailing slash to a path if not already set.
353
- *
354
- * @param path The path
355
- * @returns The path with a trailing slash
356
- */
357
- _exports.checkOnPath = checkOnPath;
358
- var setTrailingSlash = function (path) {
359
- if (path.length && !path.endsWith("/")) {
360
- return "".concat(path, "/");
361
- }
362
- return path;
363
- };
364
-
365
- // This helper method is used to add relative path location argument to singletonPathVisitorFunction i.e. pathVisitor
366
- // pathVisitor method is used later to get the correct bindings for singleton entity
367
- // method is invoked later in pathInModel() method to get the correct binding.
368
- var getPathVisitorForSingleton = function (pathVisitor, pathRelativeLocation) {
369
- return function (path) {
370
- return pathVisitor(path, pathRelativeLocation);
371
- };
372
- };
373
- return _exports;
374
- }, false);
375
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRSZWxhdGl2ZVBhdGhzIiwiY29udGV4dFBhdGgiLCJnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbiIsImNvbnRleHRMb2NhdGlvbiIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwibWFwIiwibnAiLCJuYW1lIiwidmlzaXRlZE5hdlByb3BzIiwibGVuZ3RoIiwicmVtYWluaW5nTmF2UHJvcHMiLCJmb3JFYWNoIiwibmF2UHJvcCIsIm5hdkluZGV4IiwicHVzaCIsImNvbmNhdCIsInNsaWNlIiwiY3VycmVudElkeCIsImN1cnJlbnROYXYiLCJuZXh0TmF2UHJvcCIsIl90eXBlIiwicGFydG5lciIsInNwbGljZSIsImV4dHJhTmF2UHJvcCIsInRhcmdldFR5cGUiLCJmaW5kIiwiZW5oYW5jZURhdGFNb2RlbFBhdGgiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwicHJvcGVydHlQYXRoIiwic1Byb3BlcnR5UGF0aCIsImlzUGF0aEV4cHJlc3Npb24iLCJpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiIsInBhdGgiLCJvVGFyZ2V0IiwiJHRhcmdldCIsInRhcmdldEVudGl0eVR5cGUiLCJyZXNvbHZlUGF0aCIsInRhcmdldE9iamVjdCIsImFQYXRoU3BsaXQiLCJzcGxpdCIsImN1cnJlbnRFbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5VHlwZSIsInJlZHVjZWRFbnRpdHlUeXBlIiwicGF0aFBhcnQiLCJwb3RlbnRpYWxOYXZQcm9wIiwibmF2aWdhdGlvblByb3BlcnR5QmluZGluZyIsImhhc093blByb3BlcnR5IiwicG90ZW50aWFsQ29tcGxleFR5cGUiLCJlbnRpdHlQcm9wZXJ0aWVzIiwidW5kZWZpbmVkIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJjb252ZXJ0ZWRUeXBlcyIsImdldFRhcmdldEVudGl0eVNldFBhdGgiLCJ0YXJnZXRFbnRpdHlTZXRQYXRoIiwibmF2aWdhdGVkUGF0aHMiLCJqb2luIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImJSZWxhdGl2ZSIsInNldFRyYWlsaW5nU2xhc2giLCJ0ZXJtIiwicXVhbGlmaWVyIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsImZvckJpbmRpbmdFeHByZXNzaW9uIiwiX2dldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJuYXZQcm9wZXJ0aWVzIiwiaXNDb2xsZWN0aW9uIiwidHlwZSIsInZhbHVlIiwiaXNQYXRoVXBkYXRhYmxlIiwiZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGgiLCJjaGVja09uUGF0aCIsImFubm90YXRpb25PYmplY3QiLCJVcGRhdGVSZXN0cmljdGlvbnMiLCJVcGRhdGFibGUiLCJpc1BhdGhTZWFyY2hhYmxlIiwiU2VhcmNoUmVzdHJpY3Rpb25zIiwiU2VhcmNoYWJsZSIsImlzUGF0aERlbGV0YWJsZSIsIkRlbGV0ZVJlc3RyaWN0aW9ucyIsIkRlbGV0YWJsZSIsImlzUGF0aEluc2VydGFibGUiLCJJbnNlcnRSZXN0cmljdGlvbnMiLCJJbnNlcnRhYmxlIiwiY2hlY2tGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zIiwiYWxsb3dlZEV4cHJlc3Npb24iLCJmaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zIiwiRmlsdGVyUmVzdHJpY3Rpb25zIiwiRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyIsImN1cnJlbnRPYmplY3RSZXN0cmljdGlvbiIsInJlc3RyaWN0aW9uIiwiUHJvcGVydHkiLCJpbmRleE9mIiwiQWxsb3dlZEV4cHJlc3Npb25zIiwidG9TdHJpbmciLCJjaGVja0Z1bmN0aW9uIiwiY29uc3RhbnQiLCJwYXJlbnRFbnRpdHlTZXQiLCJ2aXNpdGVkTmF2aWdhdGlvblByb3BzTmFtZSIsImFsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMiLCJyZXNldFZpc2l0ZWROYXZQcm9wcyIsIm5hdmlnYXRpb25Qcm9wZXJ0eSIsImNvbnRhaW5zVGFyZ2V0IiwiZnVsbE5hdmlnYXRpb25QYXRoIiwicmVzdHJpY3Rpb25zIiwiX3BhcmVudEVudGl0eVNldCIsImFubm90YXRpb25zIiwiQ2FwYWJpbGl0aWVzIiwiTmF2aWdhdGlvblJlc3RyaWN0aW9ucyIsIlJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwicmVzdHJpY3RlZE5hdlByb3AiLCJOYXZpZ2F0aW9uUHJvcGVydHkiLCJyZXN0cmljdGlvbkRlZmluaXRpb24iLCJfYWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcyIsInBhdGhSZWxhdGl2ZUxvY2F0aW9uIiwicGF0aFZpc2l0b3JGdW5jdGlvbiIsInBhdGhWaXNpdG9yIiwiZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24iLCJlcXVhbCIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsInRhcmdldFJlc3RyaWN0aW9ucyIsImlnbm9yZVRhcmdldENvbGxlY3Rpb24iLCJhdXRob3JpemVVbnJlc29sdmFibGUiLCJ1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiIsImVuZHNXaXRoIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJEYXRhTW9kZWxQYXRoSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcblx0Q29udmVydGVkTWV0YWRhdGEsXG5cdEVudGl0eVNldCxcblx0RW50aXR5VHlwZSxcblx0TmF2aWdhdGlvblByb3BlcnR5LFxuXHRQcm9wZXJ0eSxcblx0UHJvcGVydHlQYXRoLFxuXHRTaW5nbGV0b25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvblR5cGVUeXBlcyxcblx0TmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24sXG5cdE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uVHlwZXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9DYXBhYmlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHtcblx0RW50aXR5U2V0QW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzLFxuXHRFbnRpdHlUeXBlQW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ2FwYWJpbGl0aWVzX0VkbVwiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29uc3RhbnQsIGVxdWFsLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sIHVucmVzb2x2ZWFibGVFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlPclBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EaXNwbGF5TW9kZUZvcm1hdHRlclwiO1xuaW1wb3J0IHsgaXNBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb24sIGlzUGF0aEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuXG5leHBvcnQgdHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoID0ge1xuXHRzdGFydGluZ0VudGl0eVNldDogU2luZ2xldG9uIHwgRW50aXR5U2V0O1xuXHRjb250ZXh0TG9jYXRpb24/OiBEYXRhTW9kZWxPYmplY3RQYXRoO1xuXHRuYXZpZ2F0aW9uUHJvcGVydGllczogKE5hdmlnYXRpb25Qcm9wZXJ0eSB8IFByb3BlcnR5KVtdO1xuXHR0YXJnZXRFbnRpdHlTZXQ/OiBTaW5nbGV0b24gfCBFbnRpdHlTZXQ7XG5cdHRhcmdldEVudGl0eVR5cGU6IEVudGl0eVR5cGU7XG5cdHRhcmdldE9iamVjdDogYW55O1xuXHRjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGE7XG59O1xuXG50eXBlIEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoID0ge1xuXHRwcm9wZXJ0eVBhdGg/OiBQcm9wZXJ0eU9yUGF0aDxQcm9wZXJ0eT47XG5cdHBhdGhWaXNpdG9yPzogRnVuY3Rpb247XG5cdGlnbm9yZVRhcmdldENvbGxlY3Rpb24/OiBib29sZWFuO1xuXHRhdXRob3JpemVVbnJlc29sdmFibGU/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHByb3BlcnR5IGZyb20gdGhlIERhdGFNb2RlbE9iamVjdFBhdGguXG4gKlxuICogQHBhcmFtIGNvbnRleHRQYXRoIFRoZSBEYXRhTW9kZWxPYmplY3RQYXRoIG9iamVjdCB0byB0aGUgcHJvcGVydHlcbiAqIEByZXR1cm5zIFRoZSBwYXRoIGZyb20gdGhlIHJvb3QgZW50aXR5IHNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFJlbGF0aXZlUGF0aHMgPSBmdW5jdGlvbiAoY29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpIHtcblx0cmV0dXJuIGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uKGNvbnRleHRQYXRoPy5jb250ZXh0TG9jYXRpb24sIGNvbnRleHRQYXRoPy5uYXZpZ2F0aW9uUHJvcGVydGllcykubWFwKChucCkgPT4gbnAubmFtZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24gPSBmdW5jdGlvbiAoXG5cdGNvbnRleHRQYXRoPzogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0dmlzaXRlZE5hdlByb3BzOiAoTmF2aWdhdGlvblByb3BlcnR5IHwgUHJvcGVydHkpW10gPSBbXVxuKTogKE5hdmlnYXRpb25Qcm9wZXJ0eSB8IFByb3BlcnR5KVtdIHtcblx0aWYgKCFjb250ZXh0UGF0aCkge1xuXHRcdHJldHVybiB2aXNpdGVkTmF2UHJvcHM7XG5cdH0gZWxzZSBpZiAodmlzaXRlZE5hdlByb3BzLmxlbmd0aCA+PSBjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5sZW5ndGgpIHtcblx0XHRsZXQgcmVtYWluaW5nTmF2UHJvcHM6IChOYXZpZ2F0aW9uUHJvcGVydHkgfCBQcm9wZXJ0eSlbXSA9IFtdO1xuXHRcdGNvbnRleHRQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goKG5hdlByb3AsIG5hdkluZGV4KSA9PiB7XG5cdFx0XHRpZiAodmlzaXRlZE5hdlByb3BzW25hdkluZGV4XSAhPT0gbmF2UHJvcCkge1xuXHRcdFx0XHRyZW1haW5pbmdOYXZQcm9wcy5wdXNoKHZpc2l0ZWROYXZQcm9wc1tuYXZJbmRleF0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJlbWFpbmluZ05hdlByb3BzID0gcmVtYWluaW5nTmF2UHJvcHMuY29uY2F0KHZpc2l0ZWROYXZQcm9wcy5zbGljZShjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5sZW5ndGgpKTtcblx0XHQvLyBDbGVhbiB1cCBOYXZQcm9wIC0+IE93bmVyXG5cdFx0bGV0IGN1cnJlbnRJZHggPSAwO1xuXHRcdHdoaWxlIChyZW1haW5pbmdOYXZQcm9wcy5sZW5ndGggPiAxICYmIGN1cnJlbnRJZHggIT0gcmVtYWluaW5nTmF2UHJvcHMubGVuZ3RoIC0gMSkge1xuXHRcdFx0Y29uc3QgY3VycmVudE5hdiA9IHJlbWFpbmluZ05hdlByb3BzW2N1cnJlbnRJZHhdO1xuXHRcdFx0Y29uc3QgbmV4dE5hdlByb3AgPSByZW1haW5pbmdOYXZQcm9wc1tjdXJyZW50SWR4ICsgMV07XG5cdFx0XHRpZiAoY3VycmVudE5hdi5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiAmJiBjdXJyZW50TmF2LnBhcnRuZXIgPT09IG5leHROYXZQcm9wLm5hbWUpIHtcblx0XHRcdFx0cmVtYWluaW5nTmF2UHJvcHMuc3BsaWNlKDAsIDIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3VycmVudElkeCsrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVtYWluaW5nTmF2UHJvcHM7XG5cdH0gZWxzZSB7XG5cdFx0bGV0IGV4dHJhTmF2UHJvcDogKE5hdmlnYXRpb25Qcm9wZXJ0eSB8IFByb3BlcnR5KVtdID0gW107XG5cdFx0dmlzaXRlZE5hdlByb3BzLmZvckVhY2goKG5hdlByb3AsIG5hdkluZGV4KSA9PiB7XG5cdFx0XHRpZiAoY29udGV4dFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXNbbmF2SW5kZXhdICE9PSBuYXZQcm9wKSB7XG5cdFx0XHRcdGV4dHJhTmF2UHJvcC5wdXNoKHZpc2l0ZWROYXZQcm9wc1tuYXZJbmRleF0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGV4dHJhTmF2UHJvcCA9IGV4dHJhTmF2UHJvcC5jb25jYXQoY29udGV4dFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMuc2xpY2UodmlzaXRlZE5hdlByb3BzLmxlbmd0aCkpO1xuXHRcdC8vIENsZWFuIHVwIE5hdlByb3AgLT4gT3duZXJcblx0XHRsZXQgY3VycmVudElkeCA9IDA7XG5cdFx0d2hpbGUgKGV4dHJhTmF2UHJvcC5sZW5ndGggPiAxICYmIGN1cnJlbnRJZHggIT0gZXh0cmFOYXZQcm9wLmxlbmd0aCAtIDEpIHtcblx0XHRcdGNvbnN0IGN1cnJlbnROYXYgPSBleHRyYU5hdlByb3BbY3VycmVudElkeF07XG5cdFx0XHRjb25zdCBuZXh0TmF2UHJvcCA9IGV4dHJhTmF2UHJvcFtjdXJyZW50SWR4ICsgMV07XG5cdFx0XHRpZiAoY3VycmVudE5hdi5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiAmJiBjdXJyZW50TmF2LnBhcnRuZXIgPT09IG5leHROYXZQcm9wLm5hbWUpIHtcblx0XHRcdFx0ZXh0cmFOYXZQcm9wLnNwbGljZSgwLCAyKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN1cnJlbnRJZHgrKztcblx0XHRcdH1cblx0XHR9XG5cdFx0ZXh0cmFOYXZQcm9wID0gZXh0cmFOYXZQcm9wLm1hcCgobmF2UHJvcCkgPT4ge1xuXHRcdFx0cmV0dXJuIG5hdlByb3AuX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCJcblx0XHRcdFx0PyAobmF2UHJvcC50YXJnZXRUeXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZpbmQoKG5wKSA9PiBucC5uYW1lID09PSBuYXZQcm9wLnBhcnRuZXIpIGFzIE5hdmlnYXRpb25Qcm9wZXJ0eSlcblx0XHRcdFx0OiBuYXZQcm9wO1xuXHRcdH0pO1xuXHRcdHJldHVybiBleHRyYU5hdlByb3A7XG5cdH1cbn07XG5cbmV4cG9ydCBjb25zdCBlbmhhbmNlRGF0YU1vZGVsUGF0aCA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0cHJvcGVydHlQYXRoPzogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+XG4pOiBEYXRhTW9kZWxPYmplY3RQYXRoIHtcblx0bGV0IHNQcm9wZXJ0eVBhdGg6IHN0cmluZyA9IFwiXCI7XG5cdGlmICgoaXNQYXRoRXhwcmVzc2lvbihwcm9wZXJ0eVBhdGgpIHx8IGlzQW5ub3RhdGlvblBhdGhFeHByZXNzaW9uKHByb3BlcnR5UGF0aCkpICYmIHByb3BlcnR5UGF0aC5wYXRoKSB7XG5cdFx0c1Byb3BlcnR5UGF0aCA9IHByb3BlcnR5UGF0aC5wYXRoO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBwcm9wZXJ0eVBhdGggPT09IFwic3RyaW5nXCIpIHtcblx0XHRzUHJvcGVydHlQYXRoID0gcHJvcGVydHlQYXRoO1xuXHR9XG5cdGxldCBvVGFyZ2V0O1xuXHRpZiAoaXNQYXRoRXhwcmVzc2lvbihwcm9wZXJ0eVBhdGgpIHx8IGlzQW5ub3RhdGlvblBhdGhFeHByZXNzaW9uKHByb3BlcnR5UGF0aCkpIHtcblx0XHRvVGFyZ2V0ID0gcHJvcGVydHlQYXRoLiR0YXJnZXQ7XG5cdH0gZWxzZSBpZiAoZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlUeXBlKSB7XG5cdFx0b1RhcmdldCA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5VHlwZS5yZXNvbHZlUGF0aChzUHJvcGVydHlQYXRoKTtcblx0fSBlbHNlIHtcblx0XHRvVGFyZ2V0ID0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q7XG5cdH1cblx0Y29uc3QgYVBhdGhTcGxpdCA9IHNQcm9wZXJ0eVBhdGguc3BsaXQoXCIvXCIpO1xuXHRsZXQgY3VycmVudEVudGl0eVNldCA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5U2V0O1xuXHRsZXQgY3VycmVudEVudGl0eVR5cGUgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdGNvbnN0IG5hdmlnYXRpb25Qcm9wZXJ0aWVzID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5jb25jYXQoKTtcblx0Ly8gUHJvY2VzcyBvbmx5IGlmIHdlIGhhdmUgdG8gZ28gdGhyb3VnaCBuYXZpZ2F0aW9uIHByb3BlcnRpZXNcblxuXHRsZXQgcmVkdWNlZEVudGl0eVR5cGU6IEVudGl0eVR5cGUgfCB1bmRlZmluZWQgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdGFQYXRoU3BsaXQuZm9yRWFjaCgocGF0aFBhcnQ6IHN0cmluZykgPT4ge1xuXHRcdGlmICghcmVkdWNlZEVudGl0eVR5cGUpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgcG90ZW50aWFsTmF2UHJvcCA9IHJlZHVjZWRFbnRpdHlUeXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZpbmQoKG5hdlByb3ApID0+IG5hdlByb3AubmFtZSA9PT0gcGF0aFBhcnQpO1xuXHRcdGlmIChwb3RlbnRpYWxOYXZQcm9wKSB7XG5cdFx0XHRuYXZpZ2F0aW9uUHJvcGVydGllcy5wdXNoKHBvdGVudGlhbE5hdlByb3ApO1xuXHRcdFx0Y3VycmVudEVudGl0eVR5cGUgPSBwb3RlbnRpYWxOYXZQcm9wLnRhcmdldFR5cGU7XG5cdFx0XHRpZiAoY3VycmVudEVudGl0eVNldCAmJiBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcuaGFzT3duUHJvcGVydHkocGF0aFBhcnQpKSB7XG5cdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbcGF0aFBhcnRdIGFzIEVudGl0eVNldDtcblx0XHRcdH1cblx0XHRcdHJlZHVjZWRFbnRpdHlUeXBlID0gY3VycmVudEVudGl0eVR5cGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHBvdGVudGlhbENvbXBsZXhUeXBlID0gcmVkdWNlZEVudGl0eVR5cGUuZW50aXR5UHJvcGVydGllcy5maW5kKChuYXZQcm9wKSA9PiBuYXZQcm9wLm5hbWUgPT09IHBhdGhQYXJ0KTtcblx0XHRcdGlmIChwb3RlbnRpYWxDb21wbGV4VHlwZT8udGFyZ2V0VHlwZSkge1xuXHRcdFx0XHRuYXZpZ2F0aW9uUHJvcGVydGllcy5wdXNoKHBvdGVudGlhbENvbXBsZXhUeXBlKTtcblx0XHRcdFx0cmVkdWNlZEVudGl0eVR5cGUgPSBjdXJyZW50RW50aXR5VHlwZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlZHVjZWRFbnRpdHlUeXBlID0gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIHtcblx0XHRzdGFydGluZ0VudGl0eVNldDogZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCxcblx0XHRuYXZpZ2F0aW9uUHJvcGVydGllczogbmF2aWdhdGlvblByb3BlcnRpZXMsXG5cdFx0Y29udGV4dExvY2F0aW9uOiBkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHR0YXJnZXRFbnRpdHlTZXQ6IGN1cnJlbnRFbnRpdHlTZXQsXG5cdFx0dGFyZ2V0RW50aXR5VHlwZTogY3VycmVudEVudGl0eVR5cGUsXG5cdFx0dGFyZ2V0T2JqZWN0OiBvVGFyZ2V0LFxuXHRcdGNvbnZlcnRlZFR5cGVzOiBkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnZlcnRlZFR5cGVzXG5cdH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGFyZ2V0RW50aXR5U2V0UGF0aCA9IGZ1bmN0aW9uIChkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoKTogc3RyaW5nIHtcblx0bGV0IHRhcmdldEVudGl0eVNldFBhdGg6IHN0cmluZyA9IGAvJHtkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWV9YDtcblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0O1xuXHRsZXQgbmF2aWdhdGVkUGF0aHM6IHN0cmluZ1tdID0gW107XG5cdGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaCgobmF2UHJvcCkgPT4ge1xuXHRcdG5hdmlnYXRlZFBhdGhzLnB1c2gobmF2UHJvcC5uYW1lKTtcblx0XHRpZiAoY3VycmVudEVudGl0eVNldCAmJiBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcuaGFzT3duUHJvcGVydHkobmF2aWdhdGVkUGF0aHMuam9pbihcIi9cIikpKSB7XG5cdFx0XHR0YXJnZXRFbnRpdHlTZXRQYXRoICs9IGAvJE5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcvJHtuYXZpZ2F0ZWRQYXRocy5qb2luKFwiL1wiKX0vJGA7XG5cdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW25hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpXSBhcyBFbnRpdHlTZXQ7XG5cdFx0XHRuYXZpZ2F0ZWRQYXRocyA9IFtdO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiB0YXJnZXRFbnRpdHlTZXRQYXRoO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRhcmdldE9iamVjdFBhdGggPSBmdW5jdGlvbiAoZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCwgYlJlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcge1xuXHRsZXQgcGF0aCA9IFwiXCI7XG5cdGlmICghZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdHJldHVybiBcIi9cIjtcblx0fVxuXHRpZiAoIWJSZWxhdGl2ZSkge1xuXHRcdHBhdGggKz0gYC8ke2RhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQubmFtZX1gO1xuXHR9XG5cdGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcblx0XHRwYXRoID0gc2V0VHJhaWxpbmdTbGFzaChwYXRoKTtcblx0XHRwYXRoICs9IGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubWFwKChuYXZQcm9wKSA9PiBuYXZQcm9wLm5hbWUpLmpvaW4oXCIvXCIpO1xuXHR9XG5cblx0aWYgKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0ICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QubmFtZSAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Ll90eXBlICE9PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuX3R5cGUgIT09IFwiRW50aXR5VHlwZVwiICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuX3R5cGUgIT09IFwiRW50aXR5U2V0XCIgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCAhPT0gZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldFxuXHQpIHtcblx0XHRwYXRoID0gc2V0VHJhaWxpbmdTbGFzaChwYXRoKTtcblx0XHRwYXRoICs9IGAke2RhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lm5hbWV9YDtcblx0fSBlbHNlIGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCAmJiBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5oYXNPd25Qcm9wZXJ0eShcInRlcm1cIikpIHtcblx0XHRwYXRoID0gc2V0VHJhaWxpbmdTbGFzaChwYXRoKTtcblx0XHRwYXRoICs9IGBAJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC50ZXJtfWA7XG5cdFx0aWYgKGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lmhhc093blByb3BlcnR5KFwicXVhbGlmaWVyXCIpICYmICEhZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucXVhbGlmaWVyKSB7XG5cdFx0XHRwYXRoICs9IGAjJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5xdWFsaWZpZXJ9YDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0Zm9yQmluZGluZ0V4cHJlc3Npb246IGJvb2xlYW4gPSBmYWxzZVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0aWYgKGRhdGFNb2RlbE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uPy5zdGFydGluZ0VudGl0eVNldCAhPT0gZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdHJldHVybiBnZXRUYXJnZXRPYmplY3RQYXRoKGRhdGFNb2RlbE9iamVjdFBhdGgpO1xuXHR9XG5cdHJldHVybiBfZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxPYmplY3RQYXRoLCBmb3JCaW5kaW5nRXhwcmVzc2lvbik7XG59O1xuXG5jb25zdCBfZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0Zm9yQmluZGluZ0V4cHJlc3Npb246IGJvb2xlYW4gPSBmYWxzZVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbmF2UHJvcGVydGllcyA9IGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uKGRhdGFNb2RlbE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uLCBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzKTtcblx0aWYgKGZvckJpbmRpbmdFeHByZXNzaW9uKSB7XG5cdFx0aWYgKG5hdlByb3BlcnRpZXMuZmluZCgobnApID0+IG5wLl90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiICYmIG5wLmlzQ29sbGVjdGlvbikpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cdGxldCBwYXRoID0gbmF2UHJvcGVydGllcy5tYXAoKG5wKSA9PiBucC5uYW1lKS5qb2luKFwiL1wiKTtcblx0aWYgKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0ICYmXG5cdFx0KGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lm5hbWUgfHxcblx0XHRcdChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC50eXBlID09PSBcIlByb3BlcnR5UGF0aFwiICYmIGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnZhbHVlKSkgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5fdHlwZSAhPT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Ll90eXBlICE9PSBcIkVudGl0eVR5cGVcIiAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Ll90eXBlICE9PSBcIkVudGl0eVNldFwiICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgIT09IGRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXRcblx0KSB7XG5cdFx0cGF0aCA9IHNldFRyYWlsaW5nU2xhc2gocGF0aCk7XG5cdFx0cGF0aCArPVxuXHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudHlwZSA9PT0gXCJQcm9wZXJ0eVBhdGhcIlxuXHRcdFx0XHQ/IGAke2RhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnZhbHVlfWBcblx0XHRcdFx0OiBgJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5uYW1lfWA7XG5cdH0gZWxzZSBpZiAoZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgJiYgZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuaGFzT3duUHJvcGVydHkoXCJ0ZXJtXCIpKSB7XG5cdFx0cGF0aCA9IHNldFRyYWlsaW5nU2xhc2gocGF0aCk7XG5cdFx0cGF0aCArPSBgQCR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudGVybX1gO1xuXHRcdGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5oYXNPd25Qcm9wZXJ0eShcInF1YWxpZmllclwiKSAmJiAhIWRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnF1YWxpZmllcikge1xuXHRcdFx0cGF0aCArPSBgIyR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucXVhbGlmaWVyfWA7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCFkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0cmV0dXJuIHBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQYXRoVXBkYXRhYmxlID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRyZXR1cm4gY2hlY2tPblBhdGgoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0XHQoYW5ub3RhdGlvbk9iamVjdDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24gfCBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0Py5VcGRhdGVSZXN0cmljdGlvbnM/LlVwZGF0YWJsZTtcblx0XHR9LFxuXHRcdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQYXRoU2VhcmNoYWJsZSA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCB8IHVuZGVmaW5lZCxcblx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/OiBFeHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0cmV0dXJuIGNoZWNrT25QYXRoKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgsXG5cdFx0KGFubm90YXRpb25PYmplY3Q6IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uIHwgRW50aXR5U2V0QW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzKSA9PiB7XG5cdFx0XHRyZXR1cm4gYW5ub3RhdGlvbk9iamVjdD8uU2VhcmNoUmVzdHJpY3Rpb25zPy5TZWFyY2hhYmxlO1xuXHRcdH0sXG5cdFx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcblx0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhEZWxldGFibGUgPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggfCB1bmRlZmluZWQsXG5cdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPzogRXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBjaGVja09uUGF0aChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdChhbm5vdGF0aW9uT2JqZWN0OiBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbiB8IEVudGl0eVNldEFubm90YXRpb25zX0NhcGFiaWxpdGllcykgPT4ge1xuXHRcdFx0cmV0dXJuIGFubm90YXRpb25PYmplY3Q/LkRlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlO1xuXHRcdH0sXG5cdFx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcblx0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhJbnNlcnRhYmxlID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRyZXR1cm4gY2hlY2tPblBhdGgoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0XHQoYW5ub3RhdGlvbk9iamVjdDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24gfCBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0Py5JbnNlcnRSZXN0cmljdGlvbnM/Lkluc2VydGFibGU7XG5cdFx0fSxcblx0XHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuXHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0YWxsb3dlZEV4cHJlc3Npb246IChzdHJpbmcgfCB1bmRlZmluZWQpW11cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBjaGVja09uUGF0aChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdChhbm5vdGF0aW9uT2JqZWN0OiBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbiB8IEVudGl0eVNldEFubm90YXRpb25zX0NhcGFiaWxpdGllcyB8IEVudGl0eVR5cGVBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0ICYmIFwiRmlsdGVyUmVzdHJpY3Rpb25zXCIgaW4gYW5ub3RhdGlvbk9iamVjdCkge1xuXHRcdFx0XHRjb25zdCBmaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zOiBGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25UeXBlVHlwZXNbXSA9XG5cdFx0XHRcdFx0KGFubm90YXRpb25PYmplY3Q/LkZpbHRlclJlc3RyaWN0aW9ucz8uRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyBhcyBGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25UeXBlVHlwZXNbXSkgfHwgW107XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRPYmplY3RSZXN0cmljdGlvbiA9IGZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMuZmluZCgocmVzdHJpY3Rpb24pID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gKHJlc3RyaWN0aW9uLlByb3BlcnR5IGFzIFByb3BlcnR5UGF0aCkuJHRhcmdldCA9PT0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRpZiAoY3VycmVudE9iamVjdFJlc3RyaWN0aW9uKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGFsbG93ZWRFeHByZXNzaW9uLmluZGV4T2YoY3VycmVudE9iamVjdFJlc3RyaWN0aW9uPy5BbGxvd2VkRXhwcmVzc2lvbnM/LnRvU3RyaW5nKCkpICE9PSAtMTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tPblBhdGggPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggfCB1bmRlZmluZWQsXG5cdGNoZWNrRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRpZiAoIWRhdGFNb2RlbE9iamVjdFBhdGggfHwgIWRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQpIHtcblx0XHRyZXR1cm4gY29uc3RhbnQodHJ1ZSk7XG5cdH1cblxuXHRkYXRhTW9kZWxPYmplY3RQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgoZGF0YU1vZGVsT2JqZWN0UGF0aCwgZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnByb3BlcnR5UGF0aCk7XG5cblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQ6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IG51bGwgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0O1xuXHRsZXQgcGFyZW50RW50aXR5U2V0OiBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCBudWxsID0gbnVsbDtcblx0bGV0IHZpc2l0ZWROYXZpZ2F0aW9uUHJvcHNOYW1lOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBhbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzOiAoTmF2aWdhdGlvblByb3BlcnR5IHwgUHJvcGVydHkpW10gPSBbXTtcblx0bGV0IHRhcmdldEVudGl0eVNldDogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgbnVsbCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdGNvbnN0IHRhcmdldEVudGl0eVR5cGU6IEVudGl0eVR5cGUgfCBudWxsID0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlUeXBlO1xuXHRsZXQgcmVzZXRWaXNpdGVkTmF2UHJvcHMgPSBmYWxzZTtcblxuXHRkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goKG5hdmlnYXRpb25Qcm9wZXJ0eSkgPT4ge1xuXHRcdGlmIChyZXNldFZpc2l0ZWROYXZQcm9wcykge1xuXHRcdFx0dmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUgPSBbXTtcblx0XHR9XG5cdFx0dmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUucHVzaChuYXZpZ2F0aW9uUHJvcGVydHkubmFtZSk7XG5cdFx0YWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcy5wdXNoKG5hdmlnYXRpb25Qcm9wZXJ0eSk7XG5cdFx0aWYgKG5hdmlnYXRpb25Qcm9wZXJ0eS5fdHlwZSA9PT0gXCJQcm9wZXJ0eVwiIHx8ICFuYXZpZ2F0aW9uUHJvcGVydHkuY29udGFpbnNUYXJnZXQpIHtcblx0XHRcdC8vIFdlIHNob3VsZCBoYXZlIGEgbmF2aWdhdGlvblByb3BlcnR5QmluZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHBhdGggc28gZmFyIHdoaWNoIGNhbiBjb25zaXN0IG9mIChbQ29udGFpbm1lbnROYXZQcm9wXS8pKltOYXZQcm9wXVxuXHRcdFx0Y29uc3QgZnVsbE5hdmlnYXRpb25QYXRoID0gdmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUuam9pbihcIi9cIik7XG5cdFx0XHRpZiAoY3VycmVudEVudGl0eVNldCAmJiBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcuaGFzT3duUHJvcGVydHkoZnVsbE5hdmlnYXRpb25QYXRoKSkge1xuXHRcdFx0XHRwYXJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW2Z1bGxOYXZpZ2F0aW9uUGF0aF07XG5cdFx0XHRcdHRhcmdldEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdC8vIElmIHdlIHJlYWNoZWQgYSBuYXZpZ2F0aW9uIHByb3BlcnR5IHdpdGggYSBuYXZpZ2F0aW9ucHJvcGVydHliaW5kaW5nLCB3ZSBuZWVkIHRvIHJlc2V0IHRoZSB2aXNpdGVkIHBhdGggb24gdGhlIG5leHQgaXRlcmF0aW9uIChpZiB0aGVyZSBpcyBvbmUpXG5cdFx0XHRcdHJlc2V0VmlzaXRlZE5hdlByb3BzID0gdHJ1ZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFdlIHJlYWxseSBzaG91bGQgbm90IGVuZCB1cCBoZXJlIGJ1dCBhdCBsZWFzdCBsZXQncyB0cnkgdG8gYXZvaWQgaW5jb3JyZWN0IGJlaGF2aW9yXG5cdFx0XHRcdHBhcmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBudWxsO1xuXHRcdFx0XHRyZXNldFZpc2l0ZWROYXZQcm9wcyA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBhcmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHR0YXJnZXRFbnRpdHlTZXQgPSBudWxsO1xuXHRcdH1cblx0fSk7XG5cblx0Ly8gQXQgdGhpcyBwb2ludCB3ZSBoYXZlIG5hdmlnYXRlZCBkb3duIGFsbCB0aGUgbmF2IHByb3AgYW5kIHdlIHNob3VsZCBoYXZlXG5cdC8vIFRoZSB0YXJnZXQgZW50aXR5U2V0IHBvaW50aW5nIHRvIGVpdGhlciBudWxsIChpbiBjYXNlIG9mIGNvbnRhaW5tZW50IG5hdnByb3AgYSBsYXN0IHBhcnQpLCBvciB0aGUgYWN0dWFsIHRhcmdldCAobm9uIGNvbnRhaW5tZW50IGFzIHRhcmdldClcblx0Ly8gVGhlIHBhcmVudCBlbnRpdHlTZXQgcG9pbnRpbmcgdG8gdGhlIHByZXZpb3VzIGVudGl0eVNldCB1c2VkIGluIHRoZSBwYXRoXG5cdC8vIFZpc2l0ZWROYXZpZ2F0aW9uUGF0aCBzaG91bGQgY29udGFpbiB0aGUgcGF0aCB1cCB0byB0aGlzIHByb3BlcnR5XG5cblx0Ly8gUmVzdHJpY3Rpb25zIHNob3VsZCB0aGVuIGJlIGV2YWx1YXRlZCBhcyBQYXJlbnRFbnRpdHlTZXQuTmF2UmVzdHJpY3Rpb25zW05hdlByb3BlcnR5UGF0aF0gfHwgVGFyZ2V0RW50aXR5U2V0LlJlc3RyaWN0aW9uc1xuXHRjb25zdCBmdWxsTmF2aWdhdGlvblBhdGggPSB2aXNpdGVkTmF2aWdhdGlvblByb3BzTmFtZS5qb2luKFwiL1wiKTtcblx0bGV0IHJlc3RyaWN0aW9ucywgdmlzaXRlZE5hdlByb3BzO1xuXHRpZiAocGFyZW50RW50aXR5U2V0ICE9PSBudWxsKSB7XG5cdFx0Y29uc3QgX3BhcmVudEVudGl0eVNldDogRW50aXR5U2V0ID0gcGFyZW50RW50aXR5U2V0O1xuXHRcdF9wYXJlbnRFbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcz8uTmF2aWdhdGlvblJlc3RyaWN0aW9ucz8uUmVzdHJpY3RlZFByb3BlcnRpZXMuZm9yRWFjaChcblx0XHRcdChyZXN0cmljdGVkTmF2UHJvcDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb25UeXBlcykgPT4ge1xuXHRcdFx0XHRpZiAocmVzdHJpY3RlZE5hdlByb3AuTmF2aWdhdGlvblByb3BlcnR5Py50eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIikge1xuXHRcdFx0XHRcdGNvbnN0IHJlc3RyaWN0aW9uRGVmaW5pdGlvbiA9IGNoZWNrRnVuY3Rpb24ocmVzdHJpY3RlZE5hdlByb3ApO1xuXHRcdFx0XHRcdGlmIChmdWxsTmF2aWdhdGlvblBhdGggPT09IHJlc3RyaWN0ZWROYXZQcm9wLk5hdmlnYXRpb25Qcm9wZXJ0eS52YWx1ZSAmJiByZXN0cmljdGlvbkRlZmluaXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgX2FsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMgPSBhbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzLnNsaWNlKDAsIC0xKTtcblx0XHRcdFx0XHRcdHZpc2l0ZWROYXZQcm9wcyA9IF9hbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzO1xuXHRcdFx0XHRcdFx0Y29uc3QgcGF0aFJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihkYXRhTW9kZWxPYmplY3RQYXRoPy5jb250ZXh0TG9jYXRpb24sIHZpc2l0ZWROYXZQcm9wcykubWFwKFxuXHRcdFx0XHRcdFx0XHQobnApID0+IG5wLm5hbWVcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRjb25zdCBwYXRoVmlzaXRvckZ1bmN0aW9uID0gZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnBhdGhWaXNpdG9yXG5cdFx0XHRcdFx0XHRcdD8gZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24oZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGgucGF0aFZpc2l0b3IsIHBhdGhSZWxhdGl2ZUxvY2F0aW9uKVxuXHRcdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZDsgLy8gc2VuZCBwYXRoVmlzaXRvciBmdW5jdGlvbiBvbmx5IHdoZW4gaXQgaXMgZGVmaW5lZCBhbmQgb25seSBzZW5kIGZ1bmN0aW9uIG9yIGRlZmluZWQgYXMgYSBwYXJhbWV0ZXJcblx0XHRcdFx0XHRcdHJlc3RyaWN0aW9ucyA9IGVxdWFsKFxuXHRcdFx0XHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ocmVzdHJpY3Rpb25EZWZpbml0aW9uLCBwYXRoUmVsYXRpdmVMb2NhdGlvbiwgdW5kZWZpbmVkLCBwYXRoVmlzaXRvckZ1bmN0aW9uKSxcblx0XHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cdGxldCB0YXJnZXRSZXN0cmljdGlvbnM7XG5cdGlmICghZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/Lmlnbm9yZVRhcmdldENvbGxlY3Rpb24pIHtcblx0XHRsZXQgcmVzdHJpY3Rpb25EZWZpbml0aW9uID0gY2hlY2tGdW5jdGlvbih0YXJnZXRFbnRpdHlTZXQ/LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXMpO1xuXHRcdGlmICh0YXJnZXRFbnRpdHlTZXQgPT09IG51bGwgJiYgcmVzdHJpY3Rpb25EZWZpbml0aW9uID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHJlc3RyaWN0aW9uRGVmaW5pdGlvbiA9IGNoZWNrRnVuY3Rpb24odGFyZ2V0RW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcyk7XG5cdFx0fVxuXHRcdGlmIChyZXN0cmljdGlvbkRlZmluaXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3QgcGF0aFJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbiwgYWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcykubWFwKFxuXHRcdFx0XHQobnApID0+IG5wLm5hbWVcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBwYXRoVmlzaXRvckZ1bmN0aW9uID0gZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnBhdGhWaXNpdG9yXG5cdFx0XHRcdD8gZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24oZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGgucGF0aFZpc2l0b3IsIHBhdGhSZWxhdGl2ZUxvY2F0aW9uKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRcdHRhcmdldFJlc3RyaWN0aW9ucyA9IGVxdWFsKFxuXHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ocmVzdHJpY3Rpb25EZWZpbml0aW9uLCBwYXRoUmVsYXRpdmVMb2NhdGlvbiwgdW5kZWZpbmVkLCBwYXRoVmlzaXRvckZ1bmN0aW9uKSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gKFxuXHRcdHJlc3RyaWN0aW9ucyB8fCB0YXJnZXRSZXN0cmljdGlvbnMgfHwgKGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPy5hdXRob3JpemVVbnJlc29sdmFibGUgPyB1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiA6IGNvbnN0YW50KHRydWUpKVxuXHQpO1xufTtcblxuLyoqXG4gKiBTZXQgYSB0cmFpbGluZyBzbGFzaCB0byBhIHBhdGggaWYgbm90IGFscmVhZHkgc2V0LlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoXG4gKiBAcmV0dXJucyBUaGUgcGF0aCB3aXRoIGEgdHJhaWxpbmcgc2xhc2hcbiAqL1xuY29uc3Qgc2V0VHJhaWxpbmdTbGFzaCA9IGZ1bmN0aW9uIChwYXRoOiBzdHJpbmcpIHtcblx0aWYgKHBhdGgubGVuZ3RoICYmICFwYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuXHRcdHJldHVybiBgJHtwYXRofS9gO1xuXHR9XG5cdHJldHVybiBwYXRoO1xufTtcblxuLy8gVGhpcyBoZWxwZXIgbWV0aG9kIGlzIHVzZWQgdG8gYWRkIHJlbGF0aXZlIHBhdGggbG9jYXRpb24gYXJndW1lbnQgdG8gc2luZ2xldG9uUGF0aFZpc2l0b3JGdW5jdGlvbiBpLmUuIHBhdGhWaXNpdG9yXG4vLyBwYXRoVmlzaXRvciBtZXRob2QgaXMgdXNlZCBsYXRlciB0byBnZXQgdGhlIGNvcnJlY3QgYmluZGluZ3MgZm9yIHNpbmdsZXRvbiBlbnRpdHlcbi8vIG1ldGhvZCBpcyBpbnZva2VkIGxhdGVyIGluIHBhdGhJbk1vZGVsKCkgbWV0aG9kIHRvIGdldCB0aGUgY29ycmVjdCBiaW5kaW5nLlxuY29uc3QgZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24gPSBmdW5jdGlvbiAocGF0aFZpc2l0b3I6IEZ1bmN0aW9uLCBwYXRoUmVsYXRpdmVMb2NhdGlvbjogc3RyaW5nW10pIHtcblx0cmV0dXJuIGZ1bmN0aW9uIChwYXRoOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gcGF0aFZpc2l0b3IocGF0aCwgcGF0aFJlbGF0aXZlTG9jYXRpb24pO1xuXHR9O1xufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7RUF3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sSUFBTUEsZ0JBQWdCLEdBQUcsVUFBVUMsV0FBZ0MsRUFBRTtJQUMzRSxPQUFPQyx1QkFBdUIsQ0FBQ0QsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVFLGVBQWUsRUFBRUYsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVHLG9CQUFvQixDQUFDLENBQUNDLEdBQUcsQ0FBQyxVQUFDQyxFQUFFO01BQUEsT0FBS0EsRUFBRSxDQUFDQyxJQUFJO0lBQUEsRUFBQztFQUNySCxDQUFDO0VBQUM7RUFFSyxJQUFNTCx1QkFBdUIsR0FBRyxVQUN0Q0QsV0FBaUMsRUFFRztJQUFBLElBRHBDTyxlQUFrRCx1RUFBRyxFQUFFO0lBRXZELElBQUksQ0FBQ1AsV0FBVyxFQUFFO01BQ2pCLE9BQU9PLGVBQWU7SUFDdkIsQ0FBQyxNQUFNLElBQUlBLGVBQWUsQ0FBQ0MsTUFBTSxJQUFJUixXQUFXLENBQUNHLG9CQUFvQixDQUFDSyxNQUFNLEVBQUU7TUFDN0UsSUFBSUMsaUJBQW9ELEdBQUcsRUFBRTtNQUM3RFQsV0FBVyxDQUFDRyxvQkFBb0IsQ0FBQ08sT0FBTyxDQUFDLFVBQUNDLE9BQU8sRUFBRUMsUUFBUSxFQUFLO1FBQy9ELElBQUlMLGVBQWUsQ0FBQ0ssUUFBUSxDQUFDLEtBQUtELE9BQU8sRUFBRTtVQUMxQ0YsaUJBQWlCLENBQUNJLElBQUksQ0FBQ04sZUFBZSxDQUFDSyxRQUFRLENBQUMsQ0FBQztRQUNsRDtNQUNELENBQUMsQ0FBQztNQUNGSCxpQkFBaUIsR0FBR0EsaUJBQWlCLENBQUNLLE1BQU0sQ0FBQ1AsZUFBZSxDQUFDUSxLQUFLLENBQUNmLFdBQVcsQ0FBQ0csb0JBQW9CLENBQUNLLE1BQU0sQ0FBQyxDQUFDO01BQzVHO01BQ0EsSUFBSVEsVUFBVSxHQUFHLENBQUM7TUFDbEIsT0FBT1AsaUJBQWlCLENBQUNELE1BQU0sR0FBRyxDQUFDLElBQUlRLFVBQVUsSUFBSVAsaUJBQWlCLENBQUNELE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbEYsSUFBTVMsVUFBVSxHQUFHUixpQkFBaUIsQ0FBQ08sVUFBVSxDQUFDO1FBQ2hELElBQU1FLFdBQVcsR0FBR1QsaUJBQWlCLENBQUNPLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSUMsVUFBVSxDQUFDRSxLQUFLLEtBQUssb0JBQW9CLElBQUlGLFVBQVUsQ0FBQ0csT0FBTyxLQUFLRixXQUFXLENBQUNaLElBQUksRUFBRTtVQUN6RkcsaUJBQWlCLENBQUNZLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLENBQUMsTUFBTTtVQUNOTCxVQUFVLEVBQUU7UUFDYjtNQUNEO01BQ0EsT0FBT1AsaUJBQWlCO0lBQ3pCLENBQUMsTUFBTTtNQUNOLElBQUlhLFlBQStDLEdBQUcsRUFBRTtNQUN4RGYsZUFBZSxDQUFDRyxPQUFPLENBQUMsVUFBQ0MsT0FBTyxFQUFFQyxRQUFRLEVBQUs7UUFDOUMsSUFBSVosV0FBVyxDQUFDRyxvQkFBb0IsQ0FBQ1MsUUFBUSxDQUFDLEtBQUtELE9BQU8sRUFBRTtVQUMzRFcsWUFBWSxDQUFDVCxJQUFJLENBQUNOLGVBQWUsQ0FBQ0ssUUFBUSxDQUFDLENBQUM7UUFDN0M7TUFDRCxDQUFDLENBQUM7TUFDRlUsWUFBWSxHQUFHQSxZQUFZLENBQUNSLE1BQU0sQ0FBQ2QsV0FBVyxDQUFDRyxvQkFBb0IsQ0FBQ1ksS0FBSyxDQUFDUixlQUFlLENBQUNDLE1BQU0sQ0FBQyxDQUFDO01BQ2xHO01BQ0EsSUFBSVEsV0FBVSxHQUFHLENBQUM7TUFDbEIsT0FBT00sWUFBWSxDQUFDZCxNQUFNLEdBQUcsQ0FBQyxJQUFJUSxXQUFVLElBQUlNLFlBQVksQ0FBQ2QsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN4RSxJQUFNUyxXQUFVLEdBQUdLLFlBQVksQ0FBQ04sV0FBVSxDQUFDO1FBQzNDLElBQU1FLFlBQVcsR0FBR0ksWUFBWSxDQUFDTixXQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELElBQUlDLFdBQVUsQ0FBQ0UsS0FBSyxLQUFLLG9CQUFvQixJQUFJRixXQUFVLENBQUNHLE9BQU8sS0FBS0YsWUFBVyxDQUFDWixJQUFJLEVBQUU7VUFDekZnQixZQUFZLENBQUNELE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUMsTUFBTTtVQUNOTCxXQUFVLEVBQUU7UUFDYjtNQUNEO01BQ0FNLFlBQVksR0FBR0EsWUFBWSxDQUFDbEIsR0FBRyxDQUFDLFVBQUNPLE9BQU8sRUFBSztRQUM1QyxPQUFPQSxPQUFPLENBQUNRLEtBQUssS0FBSyxvQkFBb0IsR0FDekNSLE9BQU8sQ0FBQ1ksVUFBVSxDQUFDcEIsb0JBQW9CLENBQUNxQixJQUFJLENBQUMsVUFBQ25CLEVBQUU7VUFBQSxPQUFLQSxFQUFFLENBQUNDLElBQUksS0FBS0ssT0FBTyxDQUFDUyxPQUFPO1FBQUEsRUFBQyxHQUNsRlQsT0FBTztNQUNYLENBQUMsQ0FBQztNQUNGLE9BQU9XLFlBQVk7SUFDcEI7RUFDRCxDQUFDO0VBQUM7RUFFSyxJQUFNRyxvQkFBb0IsR0FBRyxVQUNuQ0MsbUJBQXdDLEVBQ3hDQyxZQUF1QyxFQUNqQjtJQUN0QixJQUFJQyxhQUFxQixHQUFHLEVBQUU7SUFDOUIsSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQ0YsWUFBWSxDQUFDLElBQUlHLDBCQUEwQixDQUFDSCxZQUFZLENBQUMsS0FBS0EsWUFBWSxDQUFDSSxJQUFJLEVBQUU7TUFDdEdILGFBQWEsR0FBR0QsWUFBWSxDQUFDSSxJQUFJO0lBQ2xDLENBQUMsTUFBTSxJQUFJLE9BQU9KLFlBQVksS0FBSyxRQUFRLEVBQUU7TUFDNUNDLGFBQWEsR0FBR0QsWUFBWTtJQUM3QjtJQUNBLElBQUlLLE9BQU87SUFDWCxJQUFJSCxnQkFBZ0IsQ0FBQ0YsWUFBWSxDQUFDLElBQUlHLDBCQUEwQixDQUFDSCxZQUFZLENBQUMsRUFBRTtNQUMvRUssT0FBTyxHQUFHTCxZQUFZLENBQUNNLE9BQU87SUFDL0IsQ0FBQyxNQUFNLElBQUlQLG1CQUFtQixDQUFDUSxnQkFBZ0IsRUFBRTtNQUNoREYsT0FBTyxHQUFHTixtQkFBbUIsQ0FBQ1EsZ0JBQWdCLENBQUNDLFdBQVcsQ0FBQ1AsYUFBYSxDQUFDO0lBQzFFLENBQUMsTUFBTTtNQUNOSSxPQUFPLEdBQUdOLG1CQUFtQixDQUFDVSxZQUFZO0lBQzNDO0lBQ0EsSUFBTUMsVUFBVSxHQUFHVCxhQUFhLENBQUNVLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDM0MsSUFBSUMsZ0JBQWdCLEdBQUdiLG1CQUFtQixDQUFDYyxlQUFlO0lBQzFELElBQUlDLGlCQUFpQixHQUFHZixtQkFBbUIsQ0FBQ1EsZ0JBQWdCO0lBQzVELElBQU0vQixvQkFBb0IsR0FBR3VCLG1CQUFtQixDQUFDdkIsb0JBQW9CLENBQUNXLE1BQU0sRUFBRTtJQUM5RTs7SUFFQSxJQUFJNEIsaUJBQXlDLEdBQUdoQixtQkFBbUIsQ0FBQ1EsZ0JBQWdCO0lBQ3BGRyxVQUFVLENBQUMzQixPQUFPLENBQUMsVUFBQ2lDLFFBQWdCLEVBQUs7TUFDeEMsSUFBSSxDQUFDRCxpQkFBaUIsRUFBRTtRQUN2QjtNQUNEO01BQ0EsSUFBTUUsZ0JBQWdCLEdBQUdGLGlCQUFpQixDQUFDdkMsb0JBQW9CLENBQUNxQixJQUFJLENBQUMsVUFBQ2IsT0FBTztRQUFBLE9BQUtBLE9BQU8sQ0FBQ0wsSUFBSSxLQUFLcUMsUUFBUTtNQUFBLEVBQUM7TUFDNUcsSUFBSUMsZ0JBQWdCLEVBQUU7UUFDckJ6QyxvQkFBb0IsQ0FBQ1UsSUFBSSxDQUFDK0IsZ0JBQWdCLENBQUM7UUFDM0NILGlCQUFpQixHQUFHRyxnQkFBZ0IsQ0FBQ3JCLFVBQVU7UUFDL0MsSUFBSWdCLGdCQUFnQixJQUFJQSxnQkFBZ0IsQ0FBQ00seUJBQXlCLENBQUNDLGNBQWMsQ0FBQ0gsUUFBUSxDQUFDLEVBQUU7VUFDNUZKLGdCQUFnQixHQUFHQSxnQkFBZ0IsQ0FBQ00seUJBQXlCLENBQUNGLFFBQVEsQ0FBYztRQUNyRjtRQUNBRCxpQkFBaUIsR0FBR0QsaUJBQWlCO01BQ3RDLENBQUMsTUFBTTtRQUNOLElBQU1NLG9CQUFvQixHQUFHTCxpQkFBaUIsQ0FBQ00sZ0JBQWdCLENBQUN4QixJQUFJLENBQUMsVUFBQ2IsT0FBTztVQUFBLE9BQUtBLE9BQU8sQ0FBQ0wsSUFBSSxLQUFLcUMsUUFBUTtRQUFBLEVBQUM7UUFDNUcsSUFBSUksb0JBQW9CLGFBQXBCQSxvQkFBb0IsZUFBcEJBLG9CQUFvQixDQUFFeEIsVUFBVSxFQUFFO1VBQ3JDcEIsb0JBQW9CLENBQUNVLElBQUksQ0FBQ2tDLG9CQUFvQixDQUFDO1VBQy9DTCxpQkFBaUIsR0FBR0QsaUJBQWlCO1FBQ3RDLENBQUMsTUFBTTtVQUNOQyxpQkFBaUIsR0FBR08sU0FBUztRQUM5QjtNQUNEO0lBQ0QsQ0FBQyxDQUFDO0lBRUYsT0FBTztNQUNOQyxpQkFBaUIsRUFBRXhCLG1CQUFtQixDQUFDd0IsaUJBQWlCO01BQ3hEL0Msb0JBQW9CLEVBQUVBLG9CQUFvQjtNQUMxQ0QsZUFBZSxFQUFFd0IsbUJBQW1CLENBQUN4QixlQUFlO01BQ3BEc0MsZUFBZSxFQUFFRCxnQkFBZ0I7TUFDakNMLGdCQUFnQixFQUFFTyxpQkFBaUI7TUFDbkNMLFlBQVksRUFBRUosT0FBTztNQUNyQm1CLGNBQWMsRUFBRXpCLG1CQUFtQixDQUFDeUI7SUFDckMsQ0FBQztFQUNGLENBQUM7RUFBQztFQUVLLElBQU1DLHNCQUFzQixHQUFHLFVBQVUxQixtQkFBd0MsRUFBVTtJQUNqRyxJQUFJMkIsbUJBQTJCLGNBQU8zQixtQkFBbUIsQ0FBQ3dCLGlCQUFpQixDQUFDNUMsSUFBSSxDQUFFO0lBQ2xGLElBQUlpQyxnQkFBZ0IsR0FBR2IsbUJBQW1CLENBQUN3QixpQkFBaUI7SUFDNUQsSUFBSUksY0FBd0IsR0FBRyxFQUFFO0lBQ2pDNUIsbUJBQW1CLENBQUN2QixvQkFBb0IsQ0FBQ08sT0FBTyxDQUFDLFVBQUNDLE9BQU8sRUFBSztNQUM3RDJDLGNBQWMsQ0FBQ3pDLElBQUksQ0FBQ0YsT0FBTyxDQUFDTCxJQUFJLENBQUM7TUFDakMsSUFBSWlDLGdCQUFnQixJQUFJQSxnQkFBZ0IsQ0FBQ00seUJBQXlCLENBQUNDLGNBQWMsQ0FBQ1EsY0FBYyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUM1R0YsbUJBQW1CLDBDQUFtQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQUk7UUFDbEZoQixnQkFBZ0IsR0FBR0EsZ0JBQWdCLENBQUNNLHlCQUF5QixDQUFDUyxjQUFjLENBQUNDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBYztRQUNwR0QsY0FBYyxHQUFHLEVBQUU7TUFDcEI7SUFDRCxDQUFDLENBQUM7SUFDRixPQUFPRCxtQkFBbUI7RUFDM0IsQ0FBQztFQUFDO0VBRUssSUFBTUcsbUJBQW1CLEdBQUcsVUFBVTlCLG1CQUF3QyxFQUFzQztJQUFBLElBQXBDK0IsU0FBa0IsdUVBQUcsS0FBSztJQUNoSCxJQUFJMUIsSUFBSSxHQUFHLEVBQUU7SUFDYixJQUFJLENBQUNMLG1CQUFtQixDQUFDd0IsaUJBQWlCLEVBQUU7TUFDM0MsT0FBTyxHQUFHO0lBQ1g7SUFDQSxJQUFJLENBQUNPLFNBQVMsRUFBRTtNQUNmMUIsSUFBSSxlQUFRTCxtQkFBbUIsQ0FBQ3dCLGlCQUFpQixDQUFDNUMsSUFBSSxDQUFFO0lBQ3pEO0lBQ0EsSUFBSW9CLG1CQUFtQixDQUFDdkIsb0JBQW9CLENBQUNLLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDeER1QixJQUFJLEdBQUcyQixnQkFBZ0IsQ0FBQzNCLElBQUksQ0FBQztNQUM3QkEsSUFBSSxJQUFJTCxtQkFBbUIsQ0FBQ3ZCLG9CQUFvQixDQUFDQyxHQUFHLENBQUMsVUFBQ08sT0FBTztRQUFBLE9BQUtBLE9BQU8sQ0FBQ0wsSUFBSTtNQUFBLEVBQUMsQ0FBQ2lELElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUY7SUFFQSxJQUNDN0IsbUJBQW1CLENBQUNVLFlBQVksSUFDaENWLG1CQUFtQixDQUFDVSxZQUFZLENBQUM5QixJQUFJLElBQ3JDb0IsbUJBQW1CLENBQUNVLFlBQVksQ0FBQ2pCLEtBQUssS0FBSyxvQkFBb0IsSUFDL0RPLG1CQUFtQixDQUFDVSxZQUFZLENBQUNqQixLQUFLLEtBQUssWUFBWSxJQUN2RE8sbUJBQW1CLENBQUNVLFlBQVksQ0FBQ2pCLEtBQUssS0FBSyxXQUFXLElBQ3RETyxtQkFBbUIsQ0FBQ1UsWUFBWSxLQUFLVixtQkFBbUIsQ0FBQ3dCLGlCQUFpQixFQUN6RTtNQUNEbkIsSUFBSSxHQUFHMkIsZ0JBQWdCLENBQUMzQixJQUFJLENBQUM7TUFDN0JBLElBQUksY0FBT0wsbUJBQW1CLENBQUNVLFlBQVksQ0FBQzlCLElBQUksQ0FBRTtJQUNuRCxDQUFDLE1BQU0sSUFBSW9CLG1CQUFtQixDQUFDVSxZQUFZLElBQUlWLG1CQUFtQixDQUFDVSxZQUFZLENBQUNVLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtNQUN2R2YsSUFBSSxHQUFHMkIsZ0JBQWdCLENBQUMzQixJQUFJLENBQUM7TUFDN0JBLElBQUksZUFBUUwsbUJBQW1CLENBQUNVLFlBQVksQ0FBQ3VCLElBQUksQ0FBRTtNQUNuRCxJQUFJakMsbUJBQW1CLENBQUNVLFlBQVksQ0FBQ1UsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQ3BCLG1CQUFtQixDQUFDVSxZQUFZLENBQUN3QixTQUFTLEVBQUU7UUFDakg3QixJQUFJLGVBQVFMLG1CQUFtQixDQUFDVSxZQUFZLENBQUN3QixTQUFTLENBQUU7TUFDekQ7SUFDRDtJQUNBLE9BQU83QixJQUFJO0VBQ1osQ0FBQztFQUFDO0VBRUssSUFBTThCLGtDQUFrQyxHQUFHLFVBQ2pEbkMsbUJBQXdDLEVBRW5CO0lBQUE7SUFBQSxJQURyQm9DLG9CQUE2Qix1RUFBRyxLQUFLO0lBRXJDLElBQUksMEJBQUFwQyxtQkFBbUIsQ0FBQ3hCLGVBQWUsMERBQW5DLHNCQUFxQ2dELGlCQUFpQixNQUFLeEIsbUJBQW1CLENBQUN3QixpQkFBaUIsRUFBRTtNQUNyRyxPQUFPTSxtQkFBbUIsQ0FBQzlCLG1CQUFtQixDQUFDO0lBQ2hEO0lBQ0EsT0FBT3FDLG1DQUFtQyxDQUFDckMsbUJBQW1CLEVBQUVvQyxvQkFBb0IsQ0FBQztFQUN0RixDQUFDO0VBQUM7RUFFRixJQUFNQyxtQ0FBbUMsR0FBRyxVQUMzQ3JDLG1CQUF3QyxFQUVuQjtJQUFBLElBRHJCb0Msb0JBQTZCLHVFQUFHLEtBQUs7SUFFckMsSUFBTUUsYUFBYSxHQUFHL0QsdUJBQXVCLENBQUN5QixtQkFBbUIsQ0FBQ3hCLGVBQWUsRUFBRXdCLG1CQUFtQixDQUFDdkIsb0JBQW9CLENBQUM7SUFDNUgsSUFBSTJELG9CQUFvQixFQUFFO01BQ3pCLElBQUlFLGFBQWEsQ0FBQ3hDLElBQUksQ0FBQyxVQUFDbkIsRUFBRTtRQUFBLE9BQUtBLEVBQUUsQ0FBQ2MsS0FBSyxLQUFLLG9CQUFvQixJQUFJZCxFQUFFLENBQUM0RCxZQUFZO01BQUEsRUFBQyxFQUFFO1FBQ3JGLE9BQU9oQixTQUFTO01BQ2pCO0lBQ0Q7SUFDQSxJQUFJbEIsSUFBSSxHQUFHaUMsYUFBYSxDQUFDNUQsR0FBRyxDQUFDLFVBQUNDLEVBQUU7TUFBQSxPQUFLQSxFQUFFLENBQUNDLElBQUk7SUFBQSxFQUFDLENBQUNpRCxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3ZELElBQ0M3QixtQkFBbUIsQ0FBQ1UsWUFBWSxLQUMvQlYsbUJBQW1CLENBQUNVLFlBQVksQ0FBQzlCLElBQUksSUFDcENvQixtQkFBbUIsQ0FBQ1UsWUFBWSxDQUFDOEIsSUFBSSxLQUFLLGNBQWMsSUFBSXhDLG1CQUFtQixDQUFDVSxZQUFZLENBQUMrQixLQUFNLENBQUMsSUFDdEd6QyxtQkFBbUIsQ0FBQ1UsWUFBWSxDQUFDakIsS0FBSyxLQUFLLG9CQUFvQixJQUMvRE8sbUJBQW1CLENBQUNVLFlBQVksQ0FBQ2pCLEtBQUssS0FBSyxZQUFZLElBQ3ZETyxtQkFBbUIsQ0FBQ1UsWUFBWSxDQUFDakIsS0FBSyxLQUFLLFdBQVcsSUFDdERPLG1CQUFtQixDQUFDVSxZQUFZLEtBQUtWLG1CQUFtQixDQUFDd0IsaUJBQWlCLEVBQ3pFO01BQ0RuQixJQUFJLEdBQUcyQixnQkFBZ0IsQ0FBQzNCLElBQUksQ0FBQztNQUM3QkEsSUFBSSxJQUNITCxtQkFBbUIsQ0FBQ1UsWUFBWSxDQUFDOEIsSUFBSSxLQUFLLGNBQWMsYUFDbER4QyxtQkFBbUIsQ0FBQ1UsWUFBWSxDQUFDK0IsS0FBSyxjQUN0Q3pDLG1CQUFtQixDQUFDVSxZQUFZLENBQUM5QixJQUFJLENBQUU7SUFDL0MsQ0FBQyxNQUFNLElBQUlvQixtQkFBbUIsQ0FBQ1UsWUFBWSxJQUFJVixtQkFBbUIsQ0FBQ1UsWUFBWSxDQUFDVSxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUU7TUFDdkdmLElBQUksR0FBRzJCLGdCQUFnQixDQUFDM0IsSUFBSSxDQUFDO01BQzdCQSxJQUFJLGVBQVFMLG1CQUFtQixDQUFDVSxZQUFZLENBQUN1QixJQUFJLENBQUU7TUFDbkQsSUFBSWpDLG1CQUFtQixDQUFDVSxZQUFZLENBQUNVLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUNwQixtQkFBbUIsQ0FBQ1UsWUFBWSxDQUFDd0IsU0FBUyxFQUFFO1FBQ2pIN0IsSUFBSSxlQUFRTCxtQkFBbUIsQ0FBQ1UsWUFBWSxDQUFDd0IsU0FBUyxDQUFFO01BQ3pEO0lBQ0QsQ0FBQyxNQUFNLElBQUksQ0FBQ2xDLG1CQUFtQixDQUFDVSxZQUFZLEVBQUU7TUFDN0MsT0FBT2EsU0FBUztJQUNqQjtJQUNBLE9BQU9sQixJQUFJO0VBQ1osQ0FBQztFQUVNLElBQU1xQyxlQUFlLEdBQUcsVUFDOUIxQyxtQkFBb0QsRUFDcEQyQywwQkFBdUQsRUFDbkI7SUFDcEMsT0FBT0MsV0FBVyxDQUNqQjVDLG1CQUFtQixFQUNuQixVQUFDNkMsZ0JBQW1GLEVBQUs7TUFBQTtNQUN4RixPQUFPQSxnQkFBZ0IsYUFBaEJBLGdCQUFnQixnREFBaEJBLGdCQUFnQixDQUFFQyxrQkFBa0IsMERBQXBDLHNCQUFzQ0MsU0FBUztJQUN2RCxDQUFDLEVBQ0RKLDBCQUEwQixDQUMxQjtFQUNGLENBQUM7RUFBQztFQUVLLElBQU1LLGdCQUFnQixHQUFHLFVBQy9CaEQsbUJBQW9ELEVBQ3BEMkMsMEJBQXVELEVBQ25CO0lBQ3BDLE9BQU9DLFdBQVcsQ0FDakI1QyxtQkFBbUIsRUFDbkIsVUFBQzZDLGdCQUFtRixFQUFLO01BQUE7TUFDeEYsT0FBT0EsZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsZ0RBQWhCQSxnQkFBZ0IsQ0FBRUksa0JBQWtCLDBEQUFwQyxzQkFBc0NDLFVBQVU7SUFDeEQsQ0FBQyxFQUNEUCwwQkFBMEIsQ0FDMUI7RUFDRixDQUFDO0VBQUM7RUFFSyxJQUFNUSxlQUFlLEdBQUcsVUFDOUJuRCxtQkFBb0QsRUFDcEQyQywwQkFBdUQsRUFDbkI7SUFDcEMsT0FBT0MsV0FBVyxDQUNqQjVDLG1CQUFtQixFQUNuQixVQUFDNkMsZ0JBQW1GLEVBQUs7TUFBQTtNQUN4RixPQUFPQSxnQkFBZ0IsYUFBaEJBLGdCQUFnQixnREFBaEJBLGdCQUFnQixDQUFFTyxrQkFBa0IsMERBQXBDLHNCQUFzQ0MsU0FBUztJQUN2RCxDQUFDLEVBQ0RWLDBCQUEwQixDQUMxQjtFQUNGLENBQUM7RUFBQztFQUVLLElBQU1XLGdCQUFnQixHQUFHLFVBQy9CdEQsbUJBQW9ELEVBQ3BEMkMsMEJBQXVELEVBQ25CO0lBQ3BDLE9BQU9DLFdBQVcsQ0FDakI1QyxtQkFBbUIsRUFDbkIsVUFBQzZDLGdCQUFtRixFQUFLO01BQUE7TUFDeEYsT0FBT0EsZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsZ0RBQWhCQSxnQkFBZ0IsQ0FBRVUsa0JBQWtCLDBEQUFwQyxzQkFBc0NDLFVBQVU7SUFDeEQsQ0FBQyxFQUNEYiwwQkFBMEIsQ0FDMUI7RUFDRixDQUFDO0VBQUM7RUFFSyxJQUFNYyxpQ0FBaUMsR0FBRyxVQUNoRHpELG1CQUF3QyxFQUN4QzBELGlCQUF5QyxFQUNMO0lBQ3BDLE9BQU9kLFdBQVcsQ0FDakI1QyxtQkFBbUIsRUFDbkIsVUFBQzZDLGdCQUF3SCxFQUFLO01BQzdILElBQUlBLGdCQUFnQixJQUFJLG9CQUFvQixJQUFJQSxnQkFBZ0IsRUFBRTtRQUFBO1FBQ2pFLElBQU1jLDRCQUFvRSxHQUN6RSxDQUFDZCxnQkFBZ0IsYUFBaEJBLGdCQUFnQixnREFBaEJBLGdCQUFnQixDQUFFZSxrQkFBa0IsMERBQXBDLHNCQUFzQ0MsNEJBQTRCLEtBQStDLEVBQUU7UUFDckgsSUFBTUMsd0JBQXdCLEdBQUdILDRCQUE0QixDQUFDN0QsSUFBSSxDQUFDLFVBQUNpRSxXQUFXLEVBQUs7VUFDbkYsT0FBUUEsV0FBVyxDQUFDQyxRQUFRLENBQWtCekQsT0FBTyxLQUFLUCxtQkFBbUIsQ0FBQ1UsWUFBWTtRQUMzRixDQUFDLENBQUM7UUFDRixJQUFJb0Qsd0JBQXdCLEVBQUU7VUFBQTtVQUM3QixPQUFPSixpQkFBaUIsQ0FBQ08sT0FBTyxDQUFDSCx3QkFBd0IsYUFBeEJBLHdCQUF3QixnREFBeEJBLHdCQUF3QixDQUFFSSxrQkFBa0IsMERBQTVDLHNCQUE4Q0MsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEcsQ0FBQyxNQUFNO1VBQ04sT0FBTyxLQUFLO1FBQ2I7TUFDRCxDQUFDLE1BQU07UUFDTixPQUFPLEtBQUs7TUFDYjtJQUNELENBQUMsQ0FDRDtFQUNGLENBQUM7RUFBQztFQUVLLElBQU12QixXQUFXLEdBQUcsVUFDMUI1QyxtQkFBb0QsRUFDcERvRSxhQUF1QixFQUN2QnpCLDBCQUF1RCxFQUNuQjtJQUNwQyxJQUFJLENBQUMzQyxtQkFBbUIsSUFBSSxDQUFDQSxtQkFBbUIsQ0FBQ3dCLGlCQUFpQixFQUFFO01BQ25FLE9BQU82QyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ3RCO0lBRUFyRSxtQkFBbUIsR0FBR0Qsb0JBQW9CLENBQUNDLG1CQUFtQixFQUFFMkMsMEJBQTBCLGFBQTFCQSwwQkFBMEIsdUJBQTFCQSwwQkFBMEIsQ0FBRTFDLFlBQVksQ0FBQztJQUV6RyxJQUFJWSxnQkFBOEMsR0FBR2IsbUJBQW1CLENBQUN3QixpQkFBaUI7SUFDMUYsSUFBSThDLGVBQTZDLEdBQUcsSUFBSTtJQUN4RCxJQUFJQywwQkFBb0MsR0FBRyxFQUFFO0lBQzdDLElBQU1DLHlCQUE0RCxHQUFHLEVBQUU7SUFDdkUsSUFBSTFELGVBQTZDLEdBQUdELGdCQUFnQjtJQUNwRSxJQUFNTCxnQkFBbUMsR0FBR1IsbUJBQW1CLENBQUNRLGdCQUFnQjtJQUNoRixJQUFJaUUsb0JBQW9CLEdBQUcsS0FBSztJQUVoQ3pFLG1CQUFtQixDQUFDdkIsb0JBQW9CLENBQUNPLE9BQU8sQ0FBQyxVQUFDMEYsa0JBQWtCLEVBQUs7TUFDeEUsSUFBSUQsb0JBQW9CLEVBQUU7UUFDekJGLDBCQUEwQixHQUFHLEVBQUU7TUFDaEM7TUFDQUEsMEJBQTBCLENBQUNwRixJQUFJLENBQUN1RixrQkFBa0IsQ0FBQzlGLElBQUksQ0FBQztNQUN4RDRGLHlCQUF5QixDQUFDckYsSUFBSSxDQUFDdUYsa0JBQWtCLENBQUM7TUFDbEQsSUFBSUEsa0JBQWtCLENBQUNqRixLQUFLLEtBQUssVUFBVSxJQUFJLENBQUNpRixrQkFBa0IsQ0FBQ0MsY0FBYyxFQUFFO1FBQ2xGO1FBQ0EsSUFBTUMsbUJBQWtCLEdBQUdMLDBCQUEwQixDQUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUMvRCxJQUFJaEIsZ0JBQWdCLElBQUlBLGdCQUFnQixDQUFDTSx5QkFBeUIsQ0FBQ0MsY0FBYyxDQUFDd0QsbUJBQWtCLENBQUMsRUFBRTtVQUN0R04sZUFBZSxHQUFHekQsZ0JBQWdCO1VBQ2xDQSxnQkFBZ0IsR0FBR0EsZ0JBQWdCLENBQUNNLHlCQUF5QixDQUFDeUQsbUJBQWtCLENBQUM7VUFDakY5RCxlQUFlLEdBQUdELGdCQUFnQjtVQUNsQztVQUNBNEQsb0JBQW9CLEdBQUcsSUFBSTtRQUM1QixDQUFDLE1BQU07VUFDTjtVQUNBSCxlQUFlLEdBQUd6RCxnQkFBZ0I7VUFDbENBLGdCQUFnQixHQUFHLElBQUk7VUFDdkI0RCxvQkFBb0IsR0FBRyxJQUFJO1FBQzVCO01BQ0QsQ0FBQyxNQUFNO1FBQ05ILGVBQWUsR0FBR3pELGdCQUFnQjtRQUNsQ0MsZUFBZSxHQUFHLElBQUk7TUFDdkI7SUFDRCxDQUFDLENBQUM7O0lBRUY7SUFDQTtJQUNBO0lBQ0E7O0lBRUE7SUFDQSxJQUFNOEQsa0JBQWtCLEdBQUdMLDBCQUEwQixDQUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvRCxJQUFJZ0QsWUFBWSxFQUFFaEcsZUFBZTtJQUNqQyxJQUFJeUYsZUFBZSxLQUFLLElBQUksRUFBRTtNQUFBO01BQzdCLElBQU1RLGdCQUEyQixHQUFHUixlQUFlO01BQ25ELHlCQUFBUSxnQkFBZ0IsQ0FBQ0MsV0FBVyxvRkFBNUIsc0JBQThCQyxZQUFZLHFGQUExQyx1QkFBNENDLHNCQUFzQiwyREFBbEUsdUJBQW9FQyxvQkFBb0IsQ0FBQ2xHLE9BQU8sQ0FDL0YsVUFBQ21HLGlCQUFxRCxFQUFLO1FBQUE7UUFDMUQsSUFBSSwwQkFBQUEsaUJBQWlCLENBQUNDLGtCQUFrQiwwREFBcEMsc0JBQXNDNUMsSUFBSSxNQUFLLHdCQUF3QixFQUFFO1VBQzVFLElBQU02QyxxQkFBcUIsR0FBR2pCLGFBQWEsQ0FBQ2UsaUJBQWlCLENBQUM7VUFDOUQsSUFBSVAsa0JBQWtCLEtBQUtPLGlCQUFpQixDQUFDQyxrQkFBa0IsQ0FBQzNDLEtBQUssSUFBSTRDLHFCQUFxQixLQUFLOUQsU0FBUyxFQUFFO1lBQUE7WUFDN0csSUFBTStELDBCQUEwQixHQUFHZCx5QkFBeUIsQ0FBQ25GLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekVSLGVBQWUsR0FBR3lHLDBCQUEwQjtZQUM1QyxJQUFNQyxvQkFBb0IsR0FBR2hILHVCQUF1Qix5QkFBQ3lCLG1CQUFtQix5REFBbkIscUJBQXFCeEIsZUFBZSxFQUFFSyxlQUFlLENBQUMsQ0FBQ0gsR0FBRyxDQUM5RyxVQUFDQyxFQUFFO2NBQUEsT0FBS0EsRUFBRSxDQUFDQyxJQUFJO1lBQUEsRUFDZjtZQUNELElBQU00RyxtQkFBbUIsR0FBRzdDLDBCQUEwQixhQUExQkEsMEJBQTBCLGVBQTFCQSwwQkFBMEIsQ0FBRThDLFdBQVcsR0FDaEVDLDBCQUEwQixDQUFDL0MsMEJBQTBCLENBQUM4QyxXQUFXLEVBQUVGLG9CQUFvQixDQUFDLEdBQ3hGaEUsU0FBUyxDQUFDLENBQUM7WUFDZHNELFlBQVksR0FBR2MsS0FBSyxDQUNuQkMsMkJBQTJCLENBQUNQLHFCQUFxQixFQUFFRSxvQkFBb0IsRUFBRWhFLFNBQVMsRUFBRWlFLG1CQUFtQixDQUFDLEVBQ3hHLElBQUksQ0FDSjtVQUNGO1FBQ0Q7TUFDRCxDQUFDLENBQ0Q7SUFDRjtJQUNBLElBQUlLLGtCQUFrQjtJQUN0QixJQUFJLEVBQUNsRCwwQkFBMEIsYUFBMUJBLDBCQUEwQixlQUExQkEsMEJBQTBCLENBQUVtRCxzQkFBc0IsR0FBRTtNQUFBO01BQ3hELElBQUlULHFCQUFxQixHQUFHakIsYUFBYSxxQkFBQ3RELGVBQWUsOEVBQWYsaUJBQWlCaUUsV0FBVywwREFBNUIsc0JBQThCQyxZQUFZLENBQUM7TUFDckYsSUFBSWxFLGVBQWUsS0FBSyxJQUFJLElBQUl1RSxxQkFBcUIsS0FBSzlELFNBQVMsRUFBRTtRQUFBO1FBQ3BFOEQscUJBQXFCLEdBQUdqQixhQUFhLENBQUM1RCxnQkFBZ0IsYUFBaEJBLGdCQUFnQixnREFBaEJBLGdCQUFnQixDQUFFdUUsV0FBVywwREFBN0Isc0JBQStCQyxZQUFZLENBQUM7TUFDbkY7TUFDQSxJQUFJSyxxQkFBcUIsS0FBSzlELFNBQVMsRUFBRTtRQUN4QyxJQUFNZ0Usb0JBQW9CLEdBQUdoSCx1QkFBdUIsQ0FBQ3lCLG1CQUFtQixDQUFDeEIsZUFBZSxFQUFFZ0cseUJBQXlCLENBQUMsQ0FBQzlGLEdBQUcsQ0FDdkgsVUFBQ0MsRUFBRTtVQUFBLE9BQUtBLEVBQUUsQ0FBQ0MsSUFBSTtRQUFBLEVBQ2Y7UUFDRCxJQUFNNEcsbUJBQW1CLEdBQUc3QywwQkFBMEIsYUFBMUJBLDBCQUEwQixlQUExQkEsMEJBQTBCLENBQUU4QyxXQUFXLEdBQ2hFQywwQkFBMEIsQ0FBQy9DLDBCQUEwQixDQUFDOEMsV0FBVyxFQUFFRixvQkFBb0IsQ0FBQyxHQUN4RmhFLFNBQVM7UUFDWnNFLGtCQUFrQixHQUFHRixLQUFLLENBQ3pCQywyQkFBMkIsQ0FBQ1AscUJBQXFCLEVBQUVFLG9CQUFvQixFQUFFaEUsU0FBUyxFQUFFaUUsbUJBQW1CLENBQUMsRUFDeEcsSUFBSSxDQUNKO01BQ0Y7SUFDRDtJQUVBLE9BQ0NYLFlBQVksSUFBSWdCLGtCQUFrQixLQUFLbEQsMEJBQTBCLGFBQTFCQSwwQkFBMEIsZUFBMUJBLDBCQUEwQixDQUFFb0QscUJBQXFCLEdBQUdDLHVCQUF1QixHQUFHM0IsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0VBRXRJLENBQUM7O0VBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEE7RUFNQSxJQUFNckMsZ0JBQWdCLEdBQUcsVUFBVTNCLElBQVksRUFBRTtJQUNoRCxJQUFJQSxJQUFJLENBQUN2QixNQUFNLElBQUksQ0FBQ3VCLElBQUksQ0FBQzRGLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtNQUN2QyxpQkFBVTVGLElBQUk7SUFDZjtJQUNBLE9BQU9BLElBQUk7RUFDWixDQUFDOztFQUVEO0VBQ0E7RUFDQTtFQUNBLElBQU1xRiwwQkFBMEIsR0FBRyxVQUFVRCxXQUFxQixFQUFFRixvQkFBOEIsRUFBRTtJQUNuRyxPQUFPLFVBQVVsRixJQUFZLEVBQUU7TUFDOUIsT0FBT29GLFdBQVcsQ0FBQ3BGLElBQUksRUFBRWtGLG9CQUFvQixDQUFDO0lBQy9DLENBQUM7RUFDRixDQUFDO0VBQUM7QUFBQSJ9
5
+ sap.ui.define(["sap/fe/core/helpers/BindingToolkit","sap/fe/core/templating/PropertyHelper"],function(t,e){"use strict";var n={};var i=e.isPathExpression;var r=e.isAnnotationPathExpression;var a=t.unresolvableExpression;var o=t.getExpressionFromAnnotation;var l=t.equal;var s=t.constant;const c=function(t){return g(t===null||t===void 0?void 0:t.contextLocation,t===null||t===void 0?void 0:t.navigationProperties).map(t=>t.name)};n.getRelativePaths=c;const g=function(t){let e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];if(!t){return e}else if(e.length>=t.navigationProperties.length){let n=[];t.navigationProperties.forEach((t,i)=>{if(e[i]!==t){n.push(e[i])}});n=n.concat(e.slice(t.navigationProperties.length));let i=0;while(n.length>1&&i!=n.length-1){const t=n[i];const e=n[i+1];if(t._type==="NavigationProperty"&&t.partner===e.name){n.splice(0,2)}else{i++}}return n}else{let n=[];e.forEach((i,r)=>{if(t.navigationProperties[r]!==i){n.push(e[r])}});n=n.concat(t.navigationProperties.slice(e.length));let i=0;while(n.length>1&&i!=n.length-1){const t=n[i];const e=n[i+1];if(t._type==="NavigationProperty"&&t.partner===e.name){n.splice(0,2)}else{i++}}n=n.map(t=>t._type==="NavigationProperty"?t.targetType.navigationProperties.find(e=>e.name===t.partner):t);return n}};n.getPathRelativeLocation=g;const u=function(t,e){let n="";if((i(e)||r(e))&&e.path){n=e.path}else if(typeof e==="string"){n=e}let a;if(i(e)||r(e)){a=e.$target}else if(t.targetEntityType){a=t.targetEntityType.resolvePath(n)}else{a=t.targetObject}const o=n.split("/");let l=t.targetEntitySet;let s=t.targetEntityType;const c=t.navigationProperties.concat();let g=t.targetEntityType;o.forEach(t=>{if(!g){return}const e=g.navigationProperties.find(e=>e.name===t);if(e){c.push(e);s=e.targetType;if(l&&l.navigationPropertyBinding.hasOwnProperty(t)){l=l.navigationPropertyBinding[t]}g=s}else{const e=g.entityProperties.find(e=>e.name===t);if(e!==null&&e!==void 0&&e.targetType){c.push(e);g=s}else{g=undefined}}});return{startingEntitySet:t.startingEntitySet,navigationProperties:c,contextLocation:t.contextLocation,targetEntitySet:l,targetEntityType:s,targetObject:a,convertedTypes:t.convertedTypes}};n.enhanceDataModelPath=u;const p=function(t){let e=`/${t.startingEntitySet.name}`;let n=t.startingEntitySet;let i=[];t.navigationProperties.forEach(t=>{i.push(t.name);if(n&&n.navigationPropertyBinding.hasOwnProperty(i.join("/"))){e+=`/$NavigationPropertyBinding/${i.join("/")}/$`;n=n.navigationPropertyBinding[i.join("/")];i=[]}});return e};n.getTargetEntitySetPath=p;const v=function(t){var e;let n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let i="";if(!t.startingEntitySet){return"/"}if(!n){i+=`/${t.startingEntitySet.name}`}if(t.navigationProperties.length>0){i=E(i);i+=t.navigationProperties.map(t=>t.name).join("/")}if((e=t.targetObject)!==null&&e!==void 0&&e.name&&t.targetObject._type!=="NavigationProperty"&&t.targetObject._type!=="EntityType"&&t.targetObject._type!=="EntitySet"&&t.targetObject!==t.startingEntitySet){i=E(i);i+=`${t.targetObject.name}`}else if(t.targetObject&&t.targetObject.hasOwnProperty("term")){i=E(i);i+=`@${t.targetObject.term}`;if(t.targetObject.hasOwnProperty("qualifier")&&!!t.targetObject.qualifier){i+=`#${t.targetObject.qualifier}`}}return i};n.getTargetObjectPath=v;const d=function(t){var e;let n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(((e=t.contextLocation)===null||e===void 0?void 0:e.startingEntitySet)!==t.startingEntitySet){return v(t)}return f(t,n,i)};n.getContextRelativeTargetObjectPath=d;const f=function(t){let e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let n=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;const i=g(t.contextLocation,t.navigationProperties);if(e){if(i.find(t=>t._type==="NavigationProperty"&&t.isCollection)){return undefined}}let r=n?i.map(t=>{const e=t._type==="NavigationProperty"&&t.isCollection;return e?`${t.name}*`:t.name}).join("/"):i.map(t=>t.name).join("/");if(t.targetObject&&(t.targetObject.name||t.targetObject.type==="PropertyPath"&&t.targetObject.value)&&t.targetObject._type!=="NavigationProperty"&&t.targetObject._type!=="EntityType"&&t.targetObject._type!=="EntitySet"&&t.targetObject!==t.startingEntitySet){r=E(r);r+=t.targetObject.type==="PropertyPath"?`${t.targetObject.value}`:`${t.targetObject.name}`}else if(t.targetObject&&t.targetObject.hasOwnProperty("term")){r=E(r);r+=`@${t.targetObject.term}`;if(t.targetObject.hasOwnProperty("qualifier")&&!!t.targetObject.qualifier){r+=`#${t.targetObject.qualifier}`}}else if(!t.targetObject){return undefined}return r};const y=function(t,e){return j(t,t=>{var e;return t===null||t===void 0?void 0:(e=t.UpdateRestrictions)===null||e===void 0?void 0:e.Updatable},e)};n.isPathUpdatable=y;const h=function(t,e){return j(t,t=>{var e;return t===null||t===void 0?void 0:(e=t.SearchRestrictions)===null||e===void 0?void 0:e.Searchable},e)};n.isPathSearchable=h;const P=function(t,e){return j(t,t=>{var e;return t===null||t===void 0?void 0:(e=t.DeleteRestrictions)===null||e===void 0?void 0:e.Deletable},e)};n.isPathDeletable=P;const b=function(t,e){return j(t,t=>{var e;return t===null||t===void 0?void 0:(e=t.InsertRestrictions)===null||e===void 0?void 0:e.Insertable},e)};n.isPathInsertable=b;const O=function(t,e){return j(t,n=>{if(n&&"FilterRestrictions"in n){var i;const a=(n===null||n===void 0?void 0:(i=n.FilterRestrictions)===null||i===void 0?void 0:i.FilterExpressionRestrictions)||[];const o=a.find(e=>e.Property.$target===t.targetObject);if(o){var r;return e.indexOf(o===null||o===void 0?void 0:(r=o.AllowedExpressions)===null||r===void 0?void 0:r.toString())!==-1}else{return false}}else{return false}})};n.checkFilterExpressionRestrictions=O;const j=function(t,e,n){if(!t||!t.startingEntitySet){return s(true)}t=u(t,n===null||n===void 0?void 0:n.propertyPath);let i=t.startingEntitySet;let r=null;let c=[];const p=[];let v=i;const d=t.targetEntityType;let f=false;t.navigationProperties.forEach(t=>{if(f){c=[]}c.push(t.name);p.push(t);if(t._type==="Property"||!t.containsTarget){const t=c.join("/");if(i&&i.navigationPropertyBinding.hasOwnProperty(t)){r=i;i=i.navigationPropertyBinding[t];v=i;f=true}else{r=i;i=null;f=true}}else{r=i;v=null}});const y=c.join("/");let h,P;if(r!==null){var b,O,j;const i=r;(b=i.annotations)===null||b===void 0?void 0:(O=b.Capabilities)===null||O===void 0?void 0:(j=O.NavigationRestrictions)===null||j===void 0?void 0:j.RestrictedProperties.forEach(i=>{var r;if(((r=i.NavigationProperty)===null||r===void 0?void 0:r.type)==="NavigationPropertyPath"){const r=e(i);if(y===i.NavigationProperty.value&&r!==undefined){var a;const e=p.slice(0,-1);P=e;const i=g((a=t)===null||a===void 0?void 0:a.contextLocation,P).map(t=>t.name);const s=n!==null&&n!==void 0&&n.pathVisitor?m(n.pathVisitor,i):undefined;h=l(o(r,i,undefined,s),true)}}})}let E;if(!(n!==null&&n!==void 0&&n.ignoreTargetCollection)){var S,T;let i=e((S=v)===null||S===void 0?void 0:(T=S.annotations)===null||T===void 0?void 0:T.Capabilities);if(v===null&&i===undefined){var x;i=e(d===null||d===void 0?void 0:(x=d.annotations)===null||x===void 0?void 0:x.Capabilities)}if(i!==undefined){const e=g(t.contextLocation,p).map(t=>t.name);const r=n!==null&&n!==void 0&&n.pathVisitor?m(n.pathVisitor,e):undefined;E=l(o(i,e,undefined,r),true)}}return h||E||(n!==null&&n!==void 0&&n.authorizeUnresolvable?a:s(true))};n.checkOnPath=j;const E=function(t){if(t.length&&!t.endsWith("/")){return`${t}/`}return t};const m=function(t,e){return function(n){return t(n,e)}};return n},false);
6
+ //# sourceMappingURL=DataModelPathHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataModelPathHelper.js","names":["sap","ui","define","BindingToolkit","PropertyHelper","_exports","isPathExpression","isAnnotationPathExpression","unresolvableExpression","getExpressionFromAnnotation","equal","constant","getRelativePaths","contextPath","getPathRelativeLocation","contextLocation","navigationProperties","map","np","name","visitedNavProps","arguments","length","undefined","remainingNavProps","forEach","navProp","navIndex","push","concat","slice","currentIdx","currentNav","nextNavProp","_type","partner","splice","extraNavProp","targetType","find","enhanceDataModelPath","dataModelObjectPath","propertyPath","sPropertyPath","path","oTarget","$target","targetEntityType","resolvePath","targetObject","aPathSplit","split","currentEntitySet","targetEntitySet","currentEntityType","reducedEntityType","pathPart","potentialNavProp","navigationPropertyBinding","hasOwnProperty","potentialComplexType","entityProperties","startingEntitySet","convertedTypes","getTargetEntitySetPath","targetEntitySetPath","navigatedPaths","join","getTargetObjectPath","_dataModelObjectPath$","bRelative","setTrailingSlash","term","qualifier","getContextRelativeTargetObjectPath","_dataModelObjectPath$2","forBindingExpression","forFilterConditionPath","_getContextRelativeTargetObjectPath","navProperties","isCollection","type","value","isPathUpdatable","extractionParametersOnPath","checkOnPath","annotationObject","_annotationObject$Upd","UpdateRestrictions","Updatable","isPathSearchable","_annotationObject$Sea","SearchRestrictions","Searchable","isPathDeletable","_annotationObject$Del","DeleteRestrictions","Deletable","isPathInsertable","_annotationObject$Ins","InsertRestrictions","Insertable","checkFilterExpressionRestrictions","allowedExpression","_annotationObject$Fil","filterExpressionRestrictions","FilterRestrictions","FilterExpressionRestrictions","currentObjectRestriction","restriction","Property","_currentObjectRestric","indexOf","AllowedExpressions","toString","checkFunction","parentEntitySet","visitedNavigationPropsName","allVisitedNavigationProps","resetVisitedNavProps","navigationProperty","containsTarget","fullNavigationPath","restrictions","_parentEntitySet$anno","_parentEntitySet$anno2","_parentEntitySet$anno3","_parentEntitySet","annotations","Capabilities","NavigationRestrictions","RestrictedProperties","restrictedNavProp","_restrictedNavProp$Na","NavigationProperty","restrictionDefinition","_dataModelObjectPath","_allVisitedNavigationProps","pathRelativeLocation","pathVisitorFunction","pathVisitor","getPathVisitorForSingleton","targetRestrictions","ignoreTargetCollection","_targetEntitySet","_targetEntitySet$anno","_targetEntityType$ann","authorizeUnresolvable","endsWith"],"sources":["DataModelPathHelper-dbg.js"],"mappings":"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"}
@@ -17,7 +17,7 @@ import type {
17
17
  EntityTypeAnnotations_Capabilities
18
18
  } from "@sap-ux/vocabularies-types/vocabularies/Capabilities_Edm";
19
19
  import type { BindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
20
- import { constant, equal, getExpressionFromAnnotation, unresolveableExpression } from "sap/fe/core/helpers/BindingToolkit";
20
+ import { constant, equal, getExpressionFromAnnotation, unresolvableExpression } from "sap/fe/core/helpers/BindingToolkit";
21
21
  import type { PropertyOrPath } from "sap/fe/core/templating/DisplayModeFormatter";
22
22
  import { isAnnotationPathExpression, isPathExpression } from "sap/fe/core/templating/PropertyHelper";
23
23
 
@@ -190,8 +190,7 @@ export const getTargetObjectPath = function (dataModelObjectPath: DataModelObjec
190
190
  }
191
191
 
192
192
  if (
193
- dataModelObjectPath.targetObject &&
194
- dataModelObjectPath.targetObject.name &&
193
+ dataModelObjectPath.targetObject?.name &&
195
194
  dataModelObjectPath.targetObject._type !== "NavigationProperty" &&
196
195
  dataModelObjectPath.targetObject._type !== "EntityType" &&
197
196
  dataModelObjectPath.targetObject._type !== "EntitySet" &&
@@ -211,17 +210,19 @@ export const getTargetObjectPath = function (dataModelObjectPath: DataModelObjec
211
210
 
212
211
  export const getContextRelativeTargetObjectPath = function (
213
212
  dataModelObjectPath: DataModelObjectPath,
214
- forBindingExpression: boolean = false
213
+ forBindingExpression: boolean = false,
214
+ forFilterConditionPath: boolean = false
215
215
  ): string | undefined {
216
216
  if (dataModelObjectPath.contextLocation?.startingEntitySet !== dataModelObjectPath.startingEntitySet) {
217
217
  return getTargetObjectPath(dataModelObjectPath);
218
218
  }
219
- return _getContextRelativeTargetObjectPath(dataModelObjectPath, forBindingExpression);
219
+ return _getContextRelativeTargetObjectPath(dataModelObjectPath, forBindingExpression, forFilterConditionPath);
220
220
  };
221
221
 
222
222
  const _getContextRelativeTargetObjectPath = function (
223
223
  dataModelObjectPath: DataModelObjectPath,
224
- forBindingExpression: boolean = false
224
+ forBindingExpression: boolean = false,
225
+ forFilterConditionPath: boolean = false
225
226
  ): string | undefined {
226
227
  const navProperties = getPathRelativeLocation(dataModelObjectPath.contextLocation, dataModelObjectPath.navigationProperties);
227
228
  if (forBindingExpression) {
@@ -229,7 +230,15 @@ const _getContextRelativeTargetObjectPath = function (
229
230
  return undefined;
230
231
  }
231
232
  }
232
- let path = navProperties.map((np) => np.name).join("/");
233
+ let path = forFilterConditionPath
234
+ ? navProperties
235
+ .map((navProp) => {
236
+ const isCollection = navProp._type === "NavigationProperty" && navProp.isCollection;
237
+ return isCollection ? `${navProp.name}*` : navProp.name;
238
+ })
239
+ .join("/")
240
+ : navProperties.map((navProp) => navProp.name).join("/");
241
+
233
242
  if (
234
243
  dataModelObjectPath.targetObject &&
235
244
  (dataModelObjectPath.targetObject.name ||
@@ -432,7 +441,7 @@ export const checkOnPath = function (
432
441
  }
433
442
 
434
443
  return (
435
- restrictions || targetRestrictions || (extractionParametersOnPath?.authorizeUnresolvable ? unresolveableExpression : constant(true))
444
+ restrictions || targetRestrictions || (extractionParametersOnPath?.authorizeUnresolvable ? unresolvableExpression : constant(true))
436
445
  );
437
446
  };
438
447