@sapui5/sap.fe.core 1.111.0 → 1.112.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 (524) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime-dbg.js +4 -4
  4. package/src/sap/fe/core/ActionRuntime.js +1 -1
  5. package/src/sap/fe/core/ActionRuntime.js.map +1 -1
  6. package/src/sap/fe/core/ActionRuntime.ts +11 -11
  7. package/src/sap/fe/core/AppComponent-dbg.js +27 -5
  8. package/src/sap/fe/core/AppComponent.js +1 -1
  9. package/src/sap/fe/core/AppComponent.js.map +1 -1
  10. package/src/sap/fe/core/AppComponent.ts +58 -3
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +5 -2
  12. package/src/sap/fe/core/AppStateHandler.js +1 -1
  13. package/src/sap/fe/core/AppStateHandler.js.map +1 -1
  14. package/src/sap/fe/core/AppStateHandler.ts +10 -1
  15. package/src/sap/fe/core/BaseController-dbg.js +1 -1
  16. package/src/sap/fe/core/BaseController.ts +2 -1
  17. package/src/sap/fe/core/CommonUtils-dbg.js +152 -365
  18. package/src/sap/fe/core/CommonUtils.js +1 -1
  19. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  20. package/src/sap/fe/core/CommonUtils.ts +201 -478
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +2 -1
  22. package/src/sap/fe/core/ExtensionAPI.js +1 -1
  23. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  24. package/src/sap/fe/core/ExtensionAPI.ts +9 -1
  25. package/src/sap/fe/core/PageController-dbg.js +26 -31
  26. package/src/sap/fe/core/PageController.js +1 -1
  27. package/src/sap/fe/core/PageController.js.map +1 -1
  28. package/src/sap/fe/core/PageController.ts +17 -3
  29. package/src/sap/fe/core/ResourceModel-dbg.js +71 -0
  30. package/src/sap/fe/core/ResourceModel.js +6 -0
  31. package/src/sap/fe/core/ResourceModel.js.map +1 -0
  32. package/src/sap/fe/core/ResourceModel.ts +67 -0
  33. package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  34. package/src/sap/fe/core/TemplateComponent.ts +1 -0
  35. package/src/sap/fe/core/TemplateModel-dbg.js +1 -1
  36. package/src/sap/fe/core/TemplateModel.ts +6 -1
  37. package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +5 -7
  38. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  39. package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -1
  40. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +6 -5
  41. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +163 -0
  42. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +6 -0
  43. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +169 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +88 -0
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +6 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -0
  48. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +147 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +905 -0
  50. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +21 -0
  51. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -0
  52. package/src/sap/fe/core/buildingBlocks/{BuildingBlockRuntime.ts → BuildingBlockTemplateProcessor.ts} +279 -335
  53. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +79 -0
  54. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +15 -0
  55. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -0
  56. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +68 -0
  57. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +162 -0
  58. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +6 -0
  59. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -0
  60. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +181 -0
  61. package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +4 -2
  62. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
  63. package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -1
  64. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -3
  65. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +890 -220
  66. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  67. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  68. package/src/sap/fe/core/controllerextensions/EditFlow.ts +974 -239
  69. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +24 -34
  70. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  71. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  72. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +71 -61
  73. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +14 -17
  74. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  75. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  76. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +23 -17
  77. package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1 -1
  78. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -0
  79. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +3 -3
  80. package/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
  81. package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -1
  82. package/src/sap/fe/core/controllerextensions/MassEdit.ts +2 -2
  83. package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +2 -1
  84. package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -1
  85. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +2 -0
  86. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
  87. package/src/sap/fe/core/controllerextensions/PageReady.ts +24 -0
  88. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
  89. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
  90. package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
  91. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
  92. package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
  93. package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
  94. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  95. package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
  96. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
  97. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  98. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  99. package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
  100. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
  101. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  102. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  103. package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
  104. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
  105. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
  106. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
  107. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
  108. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
  109. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  110. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  111. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
  112. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
  113. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  114. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  115. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
  116. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +1 -1
  117. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  118. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -3
  119. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
  120. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
  121. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
  122. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
  123. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
  124. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +45 -31
  125. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  126. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  127. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +52 -42
  128. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +44 -49
  129. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  130. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  131. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +43 -63
  132. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  133. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +77 -0
  134. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
  135. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
  136. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +114 -0
  137. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1505 -0
  138. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
  139. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
  140. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1985 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
  142. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  143. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
  144. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
  145. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -11
  146. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  147. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  148. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -13
  149. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +43 -41
  150. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  151. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  152. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +44 -47
  153. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
  154. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
  155. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
  156. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +12 -13
  157. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  158. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  159. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +32 -13
  160. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
  161. package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
  162. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  163. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  164. package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
  165. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
  166. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  167. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
  168. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
  169. package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
  170. package/src/sap/fe/core/controls/FilterBar.ts +5 -0
  171. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
  172. package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
  173. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
  174. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
  175. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
  176. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
  177. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
  178. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
  179. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
  180. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  181. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  182. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
  183. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
  184. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
  185. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
  186. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
  187. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
  188. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
  189. package/src/sap/fe/core/converters/ConverterContext-dbg.js +1 -1
  190. package/src/sap/fe/core/converters/ConverterContext.ts +2 -1
  191. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
  192. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  193. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
  194. package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
  195. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +17 -1
  196. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  197. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  198. package/src/sap/fe/core/converters/ManifestWrapper.ts +16 -0
  199. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +61 -49
  200. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  201. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  202. package/src/sap/fe/core/converters/MetaModelConverter.ts +65 -51
  203. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
  204. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  205. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  206. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +65 -16
  207. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  208. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  209. package/src/sap/fe/core/converters/annotations/DataField.ts +62 -18
  210. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1010 -957
  211. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  212. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  213. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +8 -8
  214. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  215. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  216. package/src/sap/fe/core/converters/controls/Common/Action.ts +28 -26
  217. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
  218. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  219. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  220. package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
  221. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
  222. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  223. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  224. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
  225. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +1 -1
  226. package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -3
  227. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +6 -6
  228. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  229. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  230. package/src/sap/fe/core/converters/controls/Common/KPI.ts +15 -15
  231. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +97 -69
  232. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  233. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  234. package/src/sap/fe/core/converters/controls/Common/Table.ts +161 -137
  235. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +3 -3
  236. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  237. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  238. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +10 -9
  239. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +48 -44
  240. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  241. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  242. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +130 -86
  243. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +34 -26
  244. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  245. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  246. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +62 -45
  247. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
  248. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
  249. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
  250. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  251. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
  252. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
  253. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +34 -13
  254. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  255. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  256. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +54 -20
  257. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +3 -1
  258. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  259. package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -0
  260. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
  261. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  262. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
  263. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
  264. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
  265. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
  266. package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
  267. package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
  268. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +9 -8
  269. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  270. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  271. package/src/sap/fe/core/converters/helpers/IssueManager.ts +8 -7
  272. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +8 -7
  273. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  274. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  275. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +9 -6
  276. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +25 -33
  277. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  278. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  279. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +35 -35
  280. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +11 -4
  281. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  282. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  283. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +7 -1
  284. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
  285. package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
  286. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
  287. package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
  288. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -2
  289. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  290. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  291. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
  292. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -5
  293. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  294. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  295. package/src/sap/fe/core/formatters/ValueFormatter.ts +6 -4
  296. package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
  297. package/src/sap/fe/core/fpm/Component.ts +1 -0
  298. package/src/sap/fe/core/fpm/manifest.json +1 -1
  299. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
  300. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  301. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
  302. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  303. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +6 -6
  304. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  305. package/src/sap/fe/core/helpers/BindingToolkit.ts +8 -8
  306. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
  307. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
  308. package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
  309. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
  310. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  311. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  312. package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
  313. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +20 -18
  314. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  315. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  316. package/src/sap/fe/core/helpers/MassEditHelper.ts +22 -23
  317. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +4 -5
  318. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  319. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  320. package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
  321. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +354 -0
  322. package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
  323. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
  324. package/src/sap/fe/core/helpers/MetaModelFunction.ts +408 -0
  325. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +13 -13
  326. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  327. package/src/sap/fe/core/helpers/ModelHelper.ts +13 -13
  328. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
  329. package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
  330. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
  331. package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
  332. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +26 -0
  333. package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
  334. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
  335. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +19 -0
  336. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +93 -18
  337. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  338. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  339. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +70 -17
  340. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
  341. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  342. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
  343. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  344. package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
  345. package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
  346. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +5 -1
  347. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  348. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  349. package/src/sap/fe/core/helpers/TypeGuards.ts +12 -1
  350. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
  351. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  352. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
  353. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
  354. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
  355. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
  356. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  357. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  358. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  359. package/src/sap/fe/core/library-dbg.js +2 -2
  360. package/src/sap/fe/core/library-preload.js +127 -125
  361. package/src/sap/fe/core/library-preload.js.map +1 -1
  362. package/src/sap/fe/core/library.js +1 -1
  363. package/src/sap/fe/core/library.ts +7 -0
  364. package/src/sap/fe/core/manifest.json +1 -1
  365. package/src/sap/fe/core/messagebundle.properties +33 -0
  366. package/src/sap/fe/core/messagebundle_ar.properties +12 -10
  367. package/src/sap/fe/core/messagebundle_bg.properties +11 -9
  368. package/src/sap/fe/core/messagebundle_ca.properties +11 -9
  369. package/src/sap/fe/core/messagebundle_cs.properties +11 -9
  370. package/src/sap/fe/core/messagebundle_cy.properties +11 -9
  371. package/src/sap/fe/core/messagebundle_da.properties +11 -9
  372. package/src/sap/fe/core/messagebundle_de.properties +3 -1
  373. package/src/sap/fe/core/messagebundle_el.properties +11 -9
  374. package/src/sap/fe/core/messagebundle_en.properties +3 -1
  375. package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
  376. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
  377. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -0
  378. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -3
  379. package/src/sap/fe/core/messagebundle_es.properties +11 -9
  380. package/src/sap/fe/core/messagebundle_es_MX.properties +11 -9
  381. package/src/sap/fe/core/messagebundle_et.properties +11 -9
  382. package/src/sap/fe/core/messagebundle_fi.properties +11 -9
  383. package/src/sap/fe/core/messagebundle_fr.properties +11 -9
  384. package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
  385. package/src/sap/fe/core/messagebundle_hi.properties +2 -0
  386. package/src/sap/fe/core/messagebundle_hr.properties +11 -9
  387. package/src/sap/fe/core/messagebundle_hu.properties +11 -9
  388. package/src/sap/fe/core/messagebundle_id.properties +3 -1
  389. package/src/sap/fe/core/messagebundle_it.properties +11 -9
  390. package/src/sap/fe/core/messagebundle_iw.properties +11 -9
  391. package/src/sap/fe/core/messagebundle_ja.properties +11 -9
  392. package/src/sap/fe/core/messagebundle_kk.properties +11 -9
  393. package/src/sap/fe/core/messagebundle_ko.properties +2 -0
  394. package/src/sap/fe/core/messagebundle_lt.properties +11 -9
  395. package/src/sap/fe/core/messagebundle_lv.properties +2 -0
  396. package/src/sap/fe/core/messagebundle_ms.properties +12 -10
  397. package/src/sap/fe/core/messagebundle_nl.properties +12 -10
  398. package/src/sap/fe/core/messagebundle_no.properties +11 -9
  399. package/src/sap/fe/core/messagebundle_pl.properties +2 -0
  400. package/src/sap/fe/core/messagebundle_pt.properties +11 -9
  401. package/src/sap/fe/core/messagebundle_pt_PT.properties +11 -9
  402. package/src/sap/fe/core/messagebundle_ro.properties +3 -1
  403. package/src/sap/fe/core/messagebundle_ru.properties +3 -1
  404. package/src/sap/fe/core/messagebundle_sh.properties +11 -9
  405. package/src/sap/fe/core/messagebundle_sk.properties +11 -9
  406. package/src/sap/fe/core/messagebundle_sl.properties +11 -9
  407. package/src/sap/fe/core/messagebundle_sv.properties +2 -0
  408. package/src/sap/fe/core/messagebundle_th.properties +11 -9
  409. package/src/sap/fe/core/messagebundle_tr.properties +11 -9
  410. package/src/sap/fe/core/messagebundle_uk.properties +11 -9
  411. package/src/sap/fe/core/messagebundle_vi.properties +12 -10
  412. package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
  413. package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
  414. package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
  415. package/src/sap/fe/core/operationsHelper.js +1 -1
  416. package/src/sap/fe/core/operationsHelper.js.map +1 -1
  417. package/src/sap/fe/core/operationsHelper.ts +88 -63
  418. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
  419. package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
  420. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
  421. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  422. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  423. package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
  424. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +4 -3
  425. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  426. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  427. package/src/sap/fe/core/rootView/RootViewBaseController.ts +15 -5
  428. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  429. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  430. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
  431. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
  432. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
  433. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
  434. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  435. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
  436. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
  437. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  438. package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
  439. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
  440. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  441. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
  442. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
  443. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +3 -3
  444. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  445. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  446. package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -3
  447. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
  448. package/src/sap/fe/core/services/ShellServicesFactory.ts +14 -2
  449. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
  450. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  451. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  452. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +502 -333
  453. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +18 -5
  454. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  455. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  456. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +41 -12
  457. package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
  458. package/src/sap/fe/core/support/Diagnostics.ts +5 -0
  459. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +185 -86
  460. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  461. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  462. package/src/sap/fe/core/templating/DataModelPathHelper.ts +190 -82
  463. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +1 -1
  464. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
  465. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +2 -3
  466. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  467. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  468. package/src/sap/fe/core/templating/EntitySetHelper.ts +1 -3
  469. package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
  470. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  471. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  472. package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
  473. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
  474. package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
  475. package/src/sap/fe/core/templating/UIFormatters-dbg.js +1 -1
  476. package/src/sap/fe/core/templating/UIFormatters.ts +4 -0
  477. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
  478. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
  479. package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
  480. package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
  481. package/src/sap/fe/core/type/FiscalDate.ts +2 -1
  482. package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
  483. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  484. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  485. package/src/sap/fe/core/type/TypeUtil.ts +3 -6
  486. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
  487. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
  488. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
  489. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
  490. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
  491. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
  492. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
  493. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
  494. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -932
  495. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
  496. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
  497. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
  498. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
  499. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
  500. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
  501. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
  502. package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
  503. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
  504. package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
  505. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
  506. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
  507. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
  508. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
  509. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
  510. package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
  511. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
  512. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
  513. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
  514. package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
  515. package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
  516. package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
  517. package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
  518. package/src/sap/fe/core/controls/FileWrapper.js +0 -6
  519. package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
  520. package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
  521. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
  522. package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
  523. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
  524. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
@@ -5,18 +5,20 @@ import type {
5
5
  PresentationVariant,
6
6
  PresentationVariantType,
7
7
  SelectionPresentationVariant,
8
- SelectionVariant
8
+ SelectionVariant,
9
+ SelectionVariantType
9
10
  } from "@sap-ux/vocabularies-types/vocabularies/UI";
10
11
  import { UIAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/UI";
11
12
  import { IssueCategory, IssueSeverity, IssueType } from "sap/fe/core/converters/helpers/IssueManager";
13
+ import * as MetaModelConverter from "sap/fe/core/converters/MetaModelConverter";
12
14
  import CommonHelper from "sap/fe/macros/CommonHelper";
13
15
  import type Context from "sap/ui/model/Context";
14
- import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
16
+ import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
15
17
  import type ConverterContext from "../../ConverterContext";
16
18
  import type { ViewPathConfiguration } from "../../ManifestSettings";
17
19
  import { TemplateType } from "../../ManifestSettings";
18
20
  import type { ChartVisualization } from "./Chart";
19
- import { createChartVisualization } from "./Chart";
21
+ import { createBlankChartVisualization, createChartVisualization } from "./Chart";
20
22
  import type { TableVisualization } from "./Table";
21
23
  import Table from "./Table";
22
24
 
@@ -24,6 +26,8 @@ export type DataVisualizationAnnotations = LineItem | Chart | PresentationVarian
24
26
 
25
27
  export type ActualVisualizationAnnotations = LineItem | Chart;
26
28
 
29
+ export type PresentationVisualizationAnnotations = UIAnnotationTerms.LineItem | UIAnnotationTerms.Chart;
30
+
27
31
  export type VisualizationAndPath = {
28
32
  visualization: ActualVisualizationAnnotations;
29
33
  annotationPath: string;
@@ -44,26 +48,31 @@ export const getVisualizationsFromPresentationVariant = function (
44
48
  ): VisualizationAndPath[] {
45
49
  const visualizationAnnotations: VisualizationAndPath[] = [];
46
50
 
47
- const bIsALP =
48
- converterContext.getManifestWrapper().hasMultipleVisualizations() ||
49
- converterContext.getTemplateType() === TemplateType.AnalyticalListPage;
51
+ const isALP = isAlpAnnotation(converterContext);
50
52
 
51
53
  const baseVisualizationPath = visualizationPath.split("@")[0];
52
54
 
53
- if (isMacroOrMultipleView && !isPresentationCompliant(presentationVariantAnnotation, bIsALP)) {
54
- const entityType = converterContext.getEntityType();
55
- const defaultLineItemAnnotation = getDefaultLineItem(entityType);
56
- if (defaultLineItemAnnotation) {
57
- visualizationAnnotations.push({
58
- visualization: defaultLineItemAnnotation,
59
- annotationPath: `${baseVisualizationPath}${converterContext.getRelativeAnnotationPath(
60
- defaultLineItemAnnotation.fullyQualifiedName,
61
- entityType
62
- )}`,
63
- converterContext: converterContext
64
- });
55
+ if ((isMacroOrMultipleView === true || isALP) && !isPresentationCompliant(presentationVariantAnnotation, isALP)) {
56
+ if (!annotationExistsInPresentationVariant(presentationVariantAnnotation, UIAnnotationTerms.LineItem)) {
57
+ const defaultLineItemAnnotation = prepareDefaultVisualization(
58
+ UIAnnotationTerms.LineItem,
59
+ baseVisualizationPath,
60
+ converterContext
61
+ );
62
+
63
+ if (defaultLineItemAnnotation) {
64
+ visualizationAnnotations.push(defaultLineItemAnnotation);
65
+ }
66
+ }
67
+ if (!annotationExistsInPresentationVariant(presentationVariantAnnotation, UIAnnotationTerms.Chart)) {
68
+ const defaultChartAnnotation = prepareDefaultVisualization(UIAnnotationTerms.Chart, baseVisualizationPath, converterContext);
69
+
70
+ if (defaultChartAnnotation) {
71
+ visualizationAnnotations.push(defaultChartAnnotation);
72
+ }
65
73
  }
66
74
  }
75
+
67
76
  const visualizations = presentationVariantAnnotation.Visualizations;
68
77
 
69
78
  const pushFirstVizOfType = function (allowedTerms: string[]) {
@@ -80,7 +89,7 @@ export const getVisualizationsFromPresentationVariant = function (
80
89
  }
81
90
  };
82
91
 
83
- if (bIsALP) {
92
+ if (isALP) {
84
93
  // In case of ALP, we use the first LineItem and the first Chart
85
94
  pushFirstVizOfType([UIAnnotationTerms.LineItem]);
86
95
  pushFirstVizOfType([UIAnnotationTerms.Chart]);
@@ -95,7 +104,7 @@ export function getSelectionPresentationVariant(
95
104
  entityType: EntityType,
96
105
  annotationPath: string | undefined,
97
106
  converterContext: ConverterContext
98
- ): any {
107
+ ): SelectionPresentationVariant | undefined {
99
108
  if (annotationPath) {
100
109
  const resolvedTarget = converterContext.getEntityTypeAnnotation(annotationPath);
101
110
  const selectionPresentationVariant = resolvedTarget.annotation as SelectionPresentationVariant;
@@ -112,33 +121,33 @@ export function getSelectionPresentationVariant(
112
121
  }
113
122
 
114
123
  export function isSelectionPresentationCompliant(
115
- SelectionPresentationVariant: SelectionPresentationVariant,
116
- bIsALP: boolean
124
+ selectionPresentationVariant: SelectionPresentationVariant,
125
+ isALP: boolean
117
126
  ): boolean | undefined {
118
- const presentationVariant = SelectionPresentationVariant && SelectionPresentationVariant.PresentationVariant;
127
+ const presentationVariant = selectionPresentationVariant && selectionPresentationVariant.PresentationVariant;
119
128
  if (presentationVariant) {
120
- return isPresentationCompliant(presentationVariant, bIsALP);
129
+ return isPresentationCompliant(presentationVariant, isALP);
121
130
  } else {
122
131
  throw new Error("Presentation Variant is not present in the SPV annotation");
123
132
  }
124
133
  }
125
134
 
126
- export function isPresentationCompliant(presentationVariant: PresentationVariantType, bIsALP = false): boolean {
127
- let bHasTable = false,
128
- bHasChart = false;
129
- if (bIsALP) {
135
+ export function isPresentationCompliant(presentationVariant: PresentationVariantType, isALP = false): boolean {
136
+ let hasTable = false,
137
+ hasChart = false;
138
+ if (isALP) {
130
139
  if (presentationVariant?.Visualizations) {
131
- const aVisualizations = presentationVariant.Visualizations;
132
- aVisualizations.forEach((oVisualization) => {
133
- if (oVisualization.$target?.term === UIAnnotationTerms.LineItem) {
134
- bHasTable = true;
140
+ const visualizations = presentationVariant.Visualizations;
141
+ visualizations.forEach((visualization) => {
142
+ if (visualization.$target?.term === UIAnnotationTerms.LineItem) {
143
+ hasTable = true;
135
144
  }
136
- if (oVisualization.$target?.term === UIAnnotationTerms.Chart) {
137
- bHasChart = true;
145
+ if (visualization.$target?.term === UIAnnotationTerms.Chart) {
146
+ hasChart = true;
138
147
  }
139
148
  });
140
149
  }
141
- return bHasChart && bHasTable;
150
+ return hasChart && hasTable;
142
151
  } else {
143
152
  return (
144
153
  presentationVariant?.Visualizations &&
@@ -165,12 +174,12 @@ export function getDefaultSelectionVariant(entityType: EntityType): SelectionVar
165
174
  return entityType.annotations?.UI?.SelectionVariant;
166
175
  }
167
176
 
168
- export function getSelectionVariant(entityType: EntityType, converterContext: ConverterContext): SelectionVariant | undefined {
177
+ export function getSelectionVariant(entityType: EntityType, converterContext: ConverterContext): SelectionVariantType | undefined {
169
178
  const annotationPath = converterContext.getManifestWrapper().getDefaultTemplateAnnotationPath();
170
179
  const selectionPresentationVariant = getSelectionPresentationVariant(entityType, annotationPath, converterContext);
171
180
  let selectionVariant;
172
181
  if (selectionPresentationVariant) {
173
- selectionVariant = selectionPresentationVariant.SelectionVariant;
182
+ selectionVariant = selectionPresentationVariant.SelectionVariant as SelectionVariant;
174
183
  if (selectionVariant) {
175
184
  return selectionVariant;
176
185
  }
@@ -182,10 +191,10 @@ export function getSelectionVariant(entityType: EntityType, converterContext: Co
182
191
 
183
192
  export function getDataVisualizationConfiguration(
184
193
  visualizationPath: string,
185
- isCondensedTableLayoutCompliant: boolean,
194
+ isCondensedTableLayoutCompliant: boolean | undefined,
186
195
  inConverterContext: ConverterContext,
187
196
  viewConfiguration?: ViewPathConfiguration,
188
- doNotCheckApplySupported?: boolean,
197
+ doNotCheckApplySupported?: boolean | undefined,
189
198
  associatedPresentationVariantPath?: string,
190
199
  isMacroOrMultipleView?: boolean
191
200
  ): DataVisualizationDefinition {
@@ -200,11 +209,11 @@ export function getDataVisualizationConfiguration(
200
209
  inConverterContext = resolvedTarget.converterContext;
201
210
  let visualizationAnnotations: VisualizationAndPath[] = [];
202
211
  let presentationVariantAnnotation: PresentationVariantType;
203
- let presentationPath: string = "";
212
+ let presentationPath = "";
204
213
  let chartVisualization, tableVisualization;
205
- const sTerm = resolvedVisualization?.term;
206
- if (sTerm) {
207
- switch (sTerm) {
214
+ const term = resolvedVisualization?.term;
215
+ if (term) {
216
+ switch (term) {
208
217
  case UIAnnotationTerms.LineItem:
209
218
  case UIAnnotationTerms.Chart:
210
219
  presentationVariantAnnotation = resolvedAssociatedPresentationVariant?.annotation;
@@ -250,7 +259,8 @@ export function getDataVisualizationConfiguration(
250
259
  visualization,
251
260
  annotationPath,
252
261
  converterContext,
253
- doNotCheckApplySupported
262
+ doNotCheckApplySupported,
263
+ viewConfiguration
254
264
  );
255
265
  break;
256
266
  case UIAnnotationTerms.LineItem:
@@ -266,55 +276,110 @@ export function getDataVisualizationConfiguration(
266
276
  break;
267
277
  }
268
278
  });
269
- } else {
270
- tableVisualization = Table.createDefaultTableVisualization(inConverterContext, !isMacroOrMultipleView);
279
+ }
280
+
281
+ const visualizations: any = [];
282
+ let path = term === UIAnnotationTerms.SelectionPresentationVariant ? presentationPath : resolvedVisualization?.fullyQualifiedName;
283
+ if (path === undefined) {
284
+ path = "/";
285
+ }
286
+ const isALP = isAlpAnnotation(inConverterContext);
287
+
288
+ if (!term || (isALP && tableVisualization === undefined)) {
289
+ tableVisualization = Table.createDefaultTableVisualization(inConverterContext, isMacroOrMultipleView !== true);
271
290
  inConverterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.Medium, IssueType.MISSING_LINEITEM);
272
291
  }
273
- const aVisualizations: any = [];
274
- let sPath =
275
- sTerm === UIAnnotationTerms.SelectionPresentationVariant
276
- ? presentationPath
277
- : resolvedVisualization && resolvedVisualization.fullyQualifiedName;
278
- if (sPath === undefined) {
279
- sPath = "/";
292
+ if (isALP && chartVisualization === undefined) {
293
+ chartVisualization = createBlankChartVisualization(inConverterContext);
294
+ inConverterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.Medium, IssueType.MISSING_CHART);
280
295
  }
296
+
281
297
  if (chartVisualization) {
282
- aVisualizations.push(chartVisualization);
298
+ visualizations.push(chartVisualization);
283
299
  }
284
300
  if (tableVisualization) {
285
- aVisualizations.push(tableVisualization);
301
+ visualizations.push(tableVisualization);
286
302
  }
287
303
  return {
288
- visualizations: aVisualizations,
289
- annotationPath: inConverterContext.getEntitySetBasedAnnotationPath(sPath)
304
+ visualizations: visualizations,
305
+ annotationPath: inConverterContext.getEntitySetBasedAnnotationPath(path)
290
306
  };
291
307
  }
292
308
 
293
309
  /**
294
- * Return UI Control (LineItem/Chart) Context.
310
+ * Returns the context of the UI controls (either a UI.LineItem, or a UI.Chart).
295
311
  *
296
312
  * @function
297
313
  * @name getUiControl
298
- * @param oPresentationContext Presentation context object (Presentation variant or UI.LineItem/Chart)
299
- * @param sControlPath Control path
300
- * @returns The Control (LineItem/Chart) context
314
+ * @param presentationContext Object of the presentation context (either a presentation variant, or a UI.LineItem, or a UI.Chart)
315
+ * @param controlPath Control path
316
+ * @returns The context of the control (either a UI.LineItem, or a UI.Chart)
301
317
  */
302
- export function getUiControl(oPresentationContext: Context, sControlPath: String) {
303
- const oPresentation = oPresentationContext.getObject(oPresentationContext.getPath()),
304
- oPresentationVariantPath = CommonHelper.createPresentationPathContext(oPresentationContext),
305
- oModel = oPresentationContext.getModel() as ODataModel;
306
- if (CommonHelper._isPresentationVariantAnnotation(oPresentationVariantPath.getPath())) {
307
- // Uncomplete PresentationVariant can be passed to macro via SelectionPresentationVariant
308
- const aVisualizations = oPresentation.Visualizations;
309
- if (Array.isArray(aVisualizations)) {
310
- for (let i = 0; i < aVisualizations.length; i++) {
311
- if (aVisualizations[i].$AnnotationPath.indexOf(sControlPath) !== -1) {
312
- sControlPath = aVisualizations[i].$AnnotationPath;
313
- break;
318
+ export function getUiControl(presentationContext: Context, controlPath: string): Context {
319
+ CommonHelper.validatePresentationMetaPath(presentationContext.getPath(), controlPath);
320
+
321
+ const presentation = MetaModelConverter.convertMetaModelContext(presentationContext),
322
+ presentationVariantPath = CommonHelper.createPresentationPathContext(presentationContext),
323
+ model = presentationContext.getModel() as ODataMetaModel;
324
+ if (presentation) {
325
+ if (CommonHelper._isPresentationVariantAnnotation(presentationVariantPath.getPath())) {
326
+ const visualizations = presentation.PresentationVariant
327
+ ? presentation.PresentationVariant.Visualizations
328
+ : presentation.Visualizations;
329
+ if (Array.isArray(visualizations)) {
330
+ for (const visualization of visualizations) {
331
+ if (
332
+ visualization.type == "AnnotationPath" &&
333
+ visualization.value.indexOf(controlPath) !== -1 &&
334
+ // check if object exists for PresentationVariant visualization
335
+ !!model.getMetaContext(presentationContext.getPath().split("@")[0] + visualization.value).getObject()
336
+ ) {
337
+ controlPath = visualization.value;
338
+ break;
339
+ }
314
340
  }
315
341
  }
342
+ } else {
343
+ return presentationContext;
316
344
  }
317
- return (oModel as any).getMetaContext(oPresentationContext.getPath().split("@")[0] + sControlPath);
318
345
  }
319
- return oPresentationContext;
346
+
347
+ return model.getMetaContext(presentationContext.getPath().split("@")[0] + controlPath);
320
348
  }
349
+
350
+ export const annotationExistsInPresentationVariant = function (
351
+ presentationVariantAnnotation: PresentationVariantType,
352
+ annotationTerm: PresentationVisualizationAnnotations
353
+ ): boolean {
354
+ return presentationVariantAnnotation.Visualizations?.some((visualization) => visualization.value.indexOf(annotationTerm) > -1) ?? false;
355
+ };
356
+
357
+ export const prepareDefaultVisualization = function (
358
+ visualizationType: PresentationVisualizationAnnotations,
359
+ baseVisualizationPath: string,
360
+ converterContext: ConverterContext
361
+ ): VisualizationAndPath | undefined {
362
+ const entityType = converterContext.getEntityType();
363
+ const defaultAnnotation =
364
+ visualizationType === UIAnnotationTerms.LineItem ? getDefaultLineItem(entityType) : getDefaultChart(entityType);
365
+
366
+ if (defaultAnnotation) {
367
+ return {
368
+ visualization: defaultAnnotation,
369
+ annotationPath: `${baseVisualizationPath}${converterContext.getRelativeAnnotationPath(
370
+ defaultAnnotation.fullyQualifiedName,
371
+ entityType
372
+ )}`,
373
+ converterContext: converterContext
374
+ };
375
+ }
376
+
377
+ return undefined;
378
+ };
379
+
380
+ export const isAlpAnnotation = function (converterContext: ConverterContext): boolean {
381
+ return (
382
+ converterContext.getManifestWrapper().hasMultipleVisualizations() ||
383
+ converterContext.getTemplateType() === TemplateType.AnalyticalListPage
384
+ );
385
+ };
@@ -226,4 +226,4 @@ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/help
226
226
  _exports.createFormDefinition = createFormDefinition;
227
227
  return _exports;
228
228
  }, false);
229
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtRWxlbWVudFR5cGUiLCJnZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0iLCJ0ZXh0TGluZXNFZGl0IiwiaXNGaWVsZFBhcnRPZlByZXZpZXciLCJmaWVsZCIsImZvcm1QYXJ0T2ZQcmV2aWV3IiwidmFsdWVPZiIsImFubm90YXRpb25zIiwiVUkiLCJQYXJ0T2ZQcmV2aWV3IiwidW5kZWZpbmVkIiwiZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zIiwiZmFjZXREZWZpbml0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImZvcm1FbGVtZW50cyIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJUYXJnZXQiLCJ2YWx1ZSIsImZvcm1Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbiIsImdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsIkhpZGRlbiIsImZvcm1FbGVtZW50Iiwia2V5IiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwidHlwZSIsIkFubm90YXRpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJzZW1hbnRpY09iamVjdFBhdGgiLCJmb3JtYXRPcHRpb25zIiwiaXNQYXJ0T2ZQcmV2aWV3IiwiJHRhcmdldCIsImNvbm5lY3RlZEZpZWxkcyIsIk9iamVjdCIsInZhbHVlcyIsIkRhdGEiLCJmaWx0ZXIiLCJjb25uZWN0ZWRGaWVsZCIsImhhc093blByb3BlcnR5IiwibWFwIiwiY29ubm5lY3RlZEZpZWxkRWxlbWVudCIsInB1c2giLCJ0ZXJtIiwiZm9yRWFjaCIsInF1YWxpZmllciIsImdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsIm1hbmlmZXN0Rm9ybUNvbnRhaW5lciIsImdldEZvcm1Db250YWluZXIiLCJmaWVsZHMiLCJrZXlzIiwiZmllbGRJZCIsImlkIiwiRGVmYXVsdCIsInRlbXBsYXRlIiwibGFiZWwiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiYWN0aW9ucyIsInNGb3JtQ29udGFpbmVySWQiLCJjcmVhdGVJZEZvckFubm90YXRpb24iLCJzQW5ub3RhdGlvblBhdGgiLCJpc1Zpc2libGUiLCJjb21waWxlRXhwcmVzc2lvbiIsIm5vdCIsImVxdWFsIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJnZXRUYXJnZXRFbnRpdHlTZXRQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRhaW5zVGFyZ2V0IiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsIk1vZGVsSGVscGVyIiwiaXNTaW5nbGV0b24iLCJhRm9ybUVsZW1lbnRzIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJPdmVycmlkZVR5cGUiLCJvdmVyd3JpdGUiLCJhY3Rpb24iLCJmYWNldE5hbWUiLCJsZW5ndGgiLCJvQWN0aW9uU2hvd0RldGFpbHMiLCJnZXRGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRCIsInRleHQiLCJpZkVsc2UiLCJwYXRoSW5Nb2RlbCIsIkFjdGlvblR5cGUiLCJTaG93Rm9ybURldGFpbHMiLCJwcmVzcyIsInNvbWUiLCJvRm9ybUVsZW1lbnQiLCJlbnRpdHlTZXQiLCJnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24iLCJmb3JtQ29udGFpbmVycyIsIkZhY2V0cyIsImZhY2V0IiwiaXNSZWZlcmVuY2VGYWNldCIsImNyZWF0ZUZvcm1EZWZpbml0aW9uIiwiZ2V0Rm9ybUlEIiwidXNlRm9ybUNvbnRhaW5lckxhYmVscyIsImhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXciLCJjaGlsZEZhY2V0IiwiRXJyb3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb250YWN0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgeyBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbGxlY3Rpb25GYWNldFR5cGVzLFxuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhUG9pbnQsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXAsXG5cdElkZW50aWZpY2F0aW9uLFxuXHRQYXJ0T2ZQcmV2aWV3LFxuXHRSZWZlcmVuY2VGYWNldFR5cGVzXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IGdldFNlbWFudGljT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2Fubm90YXRpb25zL0RhdGFGaWVsZFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlQWN0aW9uLCBDb252ZXJ0ZXJBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBlcXVhbCwgZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uLCBpZkVsc2UsIG5vdCwgcGF0aEluTW9kZWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgY3JlYXRlSWRGb3JBbm5vdGF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJhYmxlT2JqZWN0LCBDdXN0b21FbGVtZW50IH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBpbnNlcnRDdXN0b21FbGVtZW50cywgT3ZlcnJpZGVUeXBlLCBQbGFjZW1lbnQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvRGF0YUZpZWxkSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRGb3JtSUQsIGdldEZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHR5cGUgeyBGb3JtYXRPcHRpb25zVHlwZSwgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcblxuZXhwb3J0IHR5cGUgRm9ybURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGJvb2xlYW47XG5cdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGJvb2xlYW47XG5cdGZvcm1Db250YWluZXJzOiBGb3JtQ29udGFpbmVyW107XG5cdGlzVmlzaWJsZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG59O1xuXG5leHBvcnQgZW51bSBGb3JtRWxlbWVudFR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdFNsb3QgPSBcIlNsb3RcIixcblx0QW5ub3RhdGlvbiA9IFwiQW5ub3RhdGlvblwiXG59XG5cbmV4cG9ydCB0eXBlIEJhc2VGb3JtRWxlbWVudCA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0aWQ/OiBzdHJpbmc7XG5cdHR5cGU6IEZvcm1FbGVtZW50VHlwZTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkZvcm1FbGVtZW50ID0gQmFzZUZvcm1FbGVtZW50ICYge1xuXHRpZFByZWZpeD86IHN0cmluZztcblx0YW5ub3RhdGlvblBhdGg/OiBzdHJpbmc7XG5cdGlzVmFsdWVNdWx0aWxpbmVUZXh0PzogYm9vbGVhbjtcblx0c2VtYW50aWNPYmplY3RQYXRoPzogc3RyaW5nO1xuXHRjb25uZWN0ZWRGaWVsZHM/OiB7IHNlbWFudGljT2JqZWN0UGF0aD86IHN0cmluZyB9W107XG5cdGlzUGFydE9mUHJldmlldz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21Gb3JtRWxlbWVudCA9IEN1c3RvbUVsZW1lbnQ8XG5cdEJhc2VGb3JtRWxlbWVudCAmIHtcblx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdFx0dGVtcGxhdGU6IHN0cmluZztcblx0fVxuPjtcblxuZXhwb3J0IHR5cGUgRm9ybUVsZW1lbnQgPSBDdXN0b21Gb3JtRWxlbWVudCB8IEFubm90YXRpb25Gb3JtRWxlbWVudDtcblxuZXhwb3J0IHR5cGUgRm9ybUNvbnRhaW5lciA9IHtcblx0aWQ/OiBzdHJpbmc7XG5cdGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0aXNWaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhY3Rpb25zPzogQ29udmVydGVyQWN0aW9uW10gfCBCYXNlQWN0aW9uW107XG59O1xuXG4vKipcbiAqIFJldHVybnMgZGVmYXVsdCBmb3JtYXQgb3B0aW9ucyBmb3IgdGV4dCBmaWVsZHMgb24gYSBmb3JtLlxuICpcbiAqIEByZXR1cm5zIENvbGxlY3Rpb24gb2YgZm9ybWF0IG9wdGlvbnMgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICovXG5mdW5jdGlvbiBnZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKTogRm9ybWF0T3B0aW9uc1R5cGUge1xuXHRyZXR1cm4ge1xuXHRcdHRleHRMaW5lc0VkaXQ6IDRcblx0fTtcbn1cblxuZnVuY3Rpb24gaXNGaWVsZFBhcnRPZlByZXZpZXcoZmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMsIGZvcm1QYXJ0T2ZQcmV2aWV3PzogUGFydE9mUHJldmlldyk6IGJvb2xlYW4ge1xuXHQvLyBCb3RoIGVhY2ggZm9ybSBhbmQgZmllbGQgY2FuIGhhdmUgdGhlIFBhcnRPZlByZXZpZXcgYW5ub3RhdGlvbi4gT25seSBpZiB0aGUgZm9ybSBpcyBub3QgaGlkZGVuIChub3QgcGFydE9mUHJldmlldykgd2UgYWxsb3cgdG9nZ2xpbmcgb24gZmllbGQgbGV2ZWxcblx0cmV0dXJuIChcblx0XHRmb3JtUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZSB8fFxuXHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldyA9PT0gdW5kZWZpbmVkIHx8XG5cdFx0ZmllbGQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3LnZhbHVlT2YoKSA9PT0gdHJ1ZVxuXHQpO1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMoZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10ge1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdID0gW107XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUFubm90YXRpb246IElkZW50aWZpY2F0aW9uIHwgRmllbGRHcm91cCB8IENvbnRhY3QgfCBEYXRhUG9pbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uO1xuXHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblxuXHRmdW5jdGlvbiBnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBmb3JtUGFydE9mUHJldmlldzogUGFydE9mUHJldmlldyB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGggPSBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgZmllbGQpO1xuXHRcdGlmIChcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24gJiZcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gJiZcblx0XHRcdCFpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbihmaWVsZCkgJiZcblx0XHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWVcblx0XHQpIHtcblx0XHRcdGNvbnN0IGZvcm1FbGVtZW50ID0ge1xuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZmllbGQpLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpfS9gLFxuXHRcdFx0XHRzZW1hbnRpY09iamVjdFBhdGg6IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpLFxuXHRcdFx0XHRpc1BhcnRPZlByZXZpZXc6IGlzRmllbGRQYXJ0T2ZQcmV2aWV3KGZpZWxkLCBmb3JtUGFydE9mUHJldmlldylcblx0XHRcdH07XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGZpZWxkLiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFubm90YXRpb25cIiAmJlxuXHRcdFx0XHRmaWVsZC5UYXJnZXQuJHRhcmdldC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Db25uZWN0ZWRGaWVsZHNUeXBlXCJcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCBjb25uZWN0ZWRGaWVsZHMgPSBPYmplY3QudmFsdWVzKGZpZWxkLlRhcmdldC4kdGFyZ2V0LkRhdGEpLmZpbHRlcigoY29ubmVjdGVkRmllbGQ6IE9iamVjdCkgPT5cblx0XHRcdFx0XHRjb25uZWN0ZWRGaWVsZD8uaGFzT3duUHJvcGVydHkoXCJWYWx1ZVwiKVxuXHRcdFx0XHQpO1xuXHRcdFx0XHQoZm9ybUVsZW1lbnQgYXMgQW5ub3RhdGlvbkZvcm1FbGVtZW50KS5jb25uZWN0ZWRGaWVsZHMgPSBjb25uZWN0ZWRGaWVsZHMubWFwKChjb25ubmVjdGVkRmllbGRFbGVtZW50KSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIHsgc2VtYW50aWNPYmplY3RQYXRoOiBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgY29ubm5lY3RlZEZpZWxkRWxlbWVudCkgfTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaChmb3JtRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0c3dpdGNoIChmb3JtQW5ub3RhdGlvbj8udGVybSkge1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRmllbGRHcm91cDpcblx0XHRcdGZvcm1Bbm5vdGF0aW9uLkRhdGEuZm9yRWFjaCgoZmllbGQpID0+IGdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMoZmllbGQsIGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXcpKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuSWRlbnRpZmljYXRpb246XG5cdFx0XHRmb3JtQW5ub3RhdGlvbi5mb3JFYWNoKChmaWVsZCkgPT4gZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZCwgZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldykpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogYERhdGFQb2ludDo6JHtmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwifWAsXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7Y29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZvcm1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSl9L2Bcblx0XHRcdH0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zLkNvbnRhY3Q6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogYENvbnRhY3Q6OiR7Zm9ybUFubm90YXRpb24ucXVhbGlmaWVyID8gZm9ybUFubm90YXRpb24ucXVhbGlmaWVyIDogXCJcIn1gLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmb3JtQW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpfS9gXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRicmVhaztcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGNvbnN0IG1hbmlmZXN0Rm9ybUNvbnRhaW5lcjogRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IG1hbmlmZXN0V3JhcHBlci5nZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiA9IHt9O1xuXHRpZiAobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpIHtcblx0XHRPYmplY3Qua2V5cyhtYW5pZmVzdEZvcm1Db250YWluZXI/LmZpZWxkcykuZm9yRWFjaCgoZmllbGRJZCkgPT4ge1xuXHRcdFx0Zm9ybUVsZW1lbnRzW2ZpZWxkSWRdID0ge1xuXHRcdFx0XHRrZXk6IGZpZWxkSWQsXG5cdFx0XHRcdGlkOiBgQ3VzdG9tRm9ybUVsZW1lbnQ6OiR7ZmllbGRJZH1gLFxuXHRcdFx0XHR0eXBlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnR5cGUgfHwgRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQsXG5cdFx0XHRcdHRlbXBsYXRlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnRlbXBsYXRlLFxuXHRcdFx0XHRsYWJlbDogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5sYWJlbCxcblx0XHRcdFx0cG9zaXRpb246IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0ucG9zaXRpb24gfHwge1xuXHRcdFx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IHtcblx0XHRcdFx0XHQuLi5nZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKSxcblx0XHRcdFx0XHQuLi5tYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUNvbnRhaW5lcihcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zPzogQmFzZUFjdGlvbltdIHwgQ29udmVydGVyQWN0aW9uW11cbik6IEZvcm1Db250YWluZXIge1xuXHRjb25zdCBzRm9ybUNvbnRhaW5lcklkID0gY3JlYXRlSWRGb3JBbm5vdGF0aW9uKGZhY2V0RGVmaW5pdGlvbikgYXMgc3RyaW5nO1xuXHRjb25zdCBzQW5ub3RhdGlvblBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSk7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgaXNWaXNpYmxlID0gY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKHRydWUsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pKSkpO1xuXHRsZXQgc0VudGl0eVNldFBhdGghOiBzdHJpbmc7XG5cdC8vIHJlc29sdmVkVGFyZ2V0IGRvZXNuJ3QgaGF2ZSBhIGVudGl0eVNldCBpbiBjYXNlIENvbnRhaW5tZW50cyBhbmQgUGFyYW10ZXJpemVkIHNlcnZpY2VzLlxuXHRpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkgIT09IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KClcblx0KSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0fSBlbHNlIGlmIChyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRPYmplY3Q/LmNvbnRhaW5zVGFyZ2V0ID09PSB0cnVlKSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLCBmYWxzZSk7XG5cdH0gZWxzZSBpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdCFzRW50aXR5U2V0UGF0aCAmJlxuXHRcdE1vZGVsSGVscGVyLmlzU2luZ2xldG9uKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkpXG5cdCkge1xuXHRcdHNFbnRpdHlTZXRQYXRoID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKT8uZnVsbHlRdWFsaWZpZWROYW1lIGFzIHN0cmluZztcblx0fVxuXHRjb25zdCBhRm9ybUVsZW1lbnRzID0gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0eyBmb3JtYXRPcHRpb25zOiBPdmVycmlkZVR5cGUub3ZlcndyaXRlIH1cblx0KTtcblxuXHRhY3Rpb25zID0gYWN0aW9ucyAhPT0gdW5kZWZpbmVkID8gYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLmZhY2V0TmFtZSA9PSBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSA6IFtdO1xuXHRpZiAoYWN0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRhY3Rpb25zID0gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3Qgb0FjdGlvblNob3dEZXRhaWxzOiBCYXNlQWN0aW9uID0ge1xuXHRcdGlkOiBnZXRGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRChzRm9ybUNvbnRhaW5lcklkLCBcIlNob3dIaWRlRGV0YWlsc1wiKSxcblx0XHRrZXk6IFwiU3RhbmRhcmRBY3Rpb246OlNob3dIaWRlRGV0YWlsc1wiLFxuXHRcdHRleHQ6IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInNob3dEZXRhaWxzXCIsIFwiaW50ZXJuYWxcIiksIHRydWUpLFxuXHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQ09NTU9OX09CSkVDVF9QQUdFX0hJREVfRk9STV9DT05UQUlORVJfREVUQUlMU1wiLCBcInNhcC5mZS5pMThuXCIpLFxuXHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQ09NTU9OX09CSkVDVF9QQUdFX1NIT1dfRk9STV9DT05UQUlORVJfREVUQUlMU1wiLCBcInNhcC5mZS5pMThuXCIpXG5cdFx0XHQpXG5cdFx0KSxcblx0XHR0eXBlOiBBY3Rpb25UeXBlLlNob3dGb3JtRGV0YWlscyxcblx0XHRwcmVzczogXCJGb3JtQ29udGFpbmVyUnVudGltZS50b2dnbGVEZXRhaWxzXCJcblx0fTtcblxuXHRpZiAoXG5cdFx0ZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpICE9PSBmYWxzZSAmJlxuXHRcdGFGb3JtRWxlbWVudHMuc29tZSgob0Zvcm1FbGVtZW50KSA9PiBvRm9ybUVsZW1lbnQuaXNQYXJ0T2ZQcmV2aWV3ID09PSBmYWxzZSlcblx0KSB7XG5cdFx0aWYgKGFjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YWN0aW9ucy5wdXNoKG9BY3Rpb25TaG93RGV0YWlscyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFjdGlvbnMgPSBbb0FjdGlvblNob3dEZXRhaWxzXTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGlkOiBzRm9ybUNvbnRhaW5lcklkLFxuXHRcdGZvcm1FbGVtZW50czogYUZvcm1FbGVtZW50cyxcblx0XHRhbm5vdGF0aW9uUGF0aDogc0Fubm90YXRpb25QYXRoLFxuXHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlLFxuXHRcdGVudGl0eVNldDogc0VudGl0eVNldFBhdGgsXG5cdFx0YWN0aW9uczogYWN0aW9uc1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogQ29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM/OiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXVxuKTogRm9ybUNvbnRhaW5lcltdIHtcblx0Y29uc3QgZm9ybUNvbnRhaW5lcnM6IEZvcm1Db250YWluZXJbXSA9IFtdO1xuXHRmYWNldERlZmluaXRpb24uRmFjZXRzPy5mb3JFYWNoKChmYWNldCkgPT4ge1xuXHRcdC8vIElnbm9yZSBsZXZlbCAzIGNvbGxlY3Rpb24gZmFjZXRcblx0XHRpZiAoZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRmb3JtQ29udGFpbmVycy5wdXNoKGdldEZvcm1Db250YWluZXIoZmFjZXQgYXMgUmVmZXJlbmNlRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucykpO1xuXHR9KTtcblx0cmV0dXJuIGZvcm1Db250YWluZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VGYWNldChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMpOiBmYWNldERlZmluaXRpb24gaXMgUmVmZXJlbmNlRmFjZXRUeXBlcyB7XG5cdHJldHVybiBmYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybURlZmluaXRpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0aXNWaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YWN0aW9ucz86IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtRGVmaW5pdGlvbiB7XG5cdHN3aXRjaCAoZmFjZXREZWZpbml0aW9uLiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHQvLyBLZWVwIG9ubHkgdmFsaWQgY2hpbGRyZW5cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlkOiBnZXRGb3JtSUQoZmFjZXREZWZpbml0aW9uKSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogdHJ1ZSxcblx0XHRcdFx0aGFzRmFjZXRzTm90UGFydE9mUHJldmlldzogZmFjZXREZWZpbml0aW9uLkZhY2V0cy5zb21lKFxuXHRcdFx0XHRcdChjaGlsZEZhY2V0KSA9PiBjaGlsZEZhY2V0LmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRmb3JtQ29udGFpbmVyczogZ2V0Rm9ybUNvbnRhaW5lcnNGb3JDb2xsZWN0aW9uKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucyksXG5cdFx0XHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlXG5cdFx0XHR9O1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQ6XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRpZDogZ2V0Rm9ybUlEKGZhY2V0RGVmaW5pdGlvbiksXG5cdFx0XHRcdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGZhbHNlLFxuXHRcdFx0XHRoYXNGYWNldHNOb3RQYXJ0T2ZQcmV2aWV3OiBmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3Py52YWx1ZU9mKCkgPT09IGZhbHNlLFxuXHRcdFx0XHRmb3JtQ29udGFpbmVyczogW2dldEZvcm1Db250YWluZXIoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0LCBhY3Rpb25zKV0sXG5cdFx0XHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlXG5cdFx0XHR9O1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY3JlYXRlIGZvcm0gYmFzZWQgb24gUmVmZXJlbmNlVVJMRmFjZXRcIik7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFxQ1lBLGVBQWU7RUFBQSxXQUFmQSxlQUFlO0lBQWZBLGVBQWU7SUFBZkEsZUFBZTtJQUFmQSxlQUFlO0VBQUEsR0FBZkEsZUFBZSxLQUFmQSxlQUFlO0VBQUE7RUF5QzNCO0FBQ0E7QUFDQTtBQUNB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
229
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtRWxlbWVudFR5cGUiLCJnZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0iLCJ0ZXh0TGluZXNFZGl0IiwiaXNGaWVsZFBhcnRPZlByZXZpZXciLCJmaWVsZCIsImZvcm1QYXJ0T2ZQcmV2aWV3IiwidmFsdWVPZiIsImFubm90YXRpb25zIiwiVUkiLCJQYXJ0T2ZQcmV2aWV3IiwidW5kZWZpbmVkIiwiZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zIiwiZmFjZXREZWZpbml0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImZvcm1FbGVtZW50cyIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJUYXJnZXQiLCJ2YWx1ZSIsImZvcm1Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbiIsImdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsIkhpZGRlbiIsImZvcm1FbGVtZW50Iiwia2V5IiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwidHlwZSIsIkFubm90YXRpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJzZW1hbnRpY09iamVjdFBhdGgiLCJmb3JtYXRPcHRpb25zIiwiaXNQYXJ0T2ZQcmV2aWV3IiwiJHRhcmdldCIsImNvbm5lY3RlZEZpZWxkcyIsIk9iamVjdCIsInZhbHVlcyIsIkRhdGEiLCJmaWx0ZXIiLCJjb25uZWN0ZWRGaWVsZCIsImhhc093blByb3BlcnR5IiwibWFwIiwiY29ubm5lY3RlZEZpZWxkRWxlbWVudCIsInB1c2giLCJ0ZXJtIiwiZm9yRWFjaCIsInF1YWxpZmllciIsImdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsIm1hbmlmZXN0Rm9ybUNvbnRhaW5lciIsImdldEZvcm1Db250YWluZXIiLCJmaWVsZHMiLCJrZXlzIiwiZmllbGRJZCIsImlkIiwiRGVmYXVsdCIsInRlbXBsYXRlIiwibGFiZWwiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiYWN0aW9ucyIsInNGb3JtQ29udGFpbmVySWQiLCJjcmVhdGVJZEZvckFubm90YXRpb24iLCJzQW5ub3RhdGlvblBhdGgiLCJpc1Zpc2libGUiLCJjb21waWxlRXhwcmVzc2lvbiIsIm5vdCIsImVxdWFsIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJnZXRUYXJnZXRFbnRpdHlTZXRQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRhaW5zVGFyZ2V0IiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsIk1vZGVsSGVscGVyIiwiaXNTaW5nbGV0b24iLCJhRm9ybUVsZW1lbnRzIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJPdmVycmlkZVR5cGUiLCJvdmVyd3JpdGUiLCJhY3Rpb24iLCJmYWNldE5hbWUiLCJsZW5ndGgiLCJvQWN0aW9uU2hvd0RldGFpbHMiLCJnZXRGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRCIsInRleHQiLCJpZkVsc2UiLCJwYXRoSW5Nb2RlbCIsIkFjdGlvblR5cGUiLCJTaG93Rm9ybURldGFpbHMiLCJwcmVzcyIsInNvbWUiLCJvRm9ybUVsZW1lbnQiLCJlbnRpdHlTZXQiLCJnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24iLCJmb3JtQ29udGFpbmVycyIsIkZhY2V0cyIsImZhY2V0IiwiaXNSZWZlcmVuY2VGYWNldCIsImNyZWF0ZUZvcm1EZWZpbml0aW9uIiwiZ2V0Rm9ybUlEIiwidXNlRm9ybUNvbnRhaW5lckxhYmVscyIsImhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXciLCJjaGlsZEZhY2V0IiwiRXJyb3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb250YWN0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgeyBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbGxlY3Rpb25GYWNldFR5cGVzLFxuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhUG9pbnQsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXAsXG5cdElkZW50aWZpY2F0aW9uLFxuXHRQYXJ0T2ZQcmV2aWV3LFxuXHRSZWZlcmVuY2VGYWNldFR5cGVzXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IGdldFNlbWFudGljT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2Fubm90YXRpb25zL0RhdGFGaWVsZFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlQWN0aW9uLCBDb252ZXJ0ZXJBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBlcXVhbCwgZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uLCBpZkVsc2UsIG5vdCwgcGF0aEluTW9kZWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgY3JlYXRlSWRGb3JBbm5vdGF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJhYmxlT2JqZWN0LCBDdXN0b21FbGVtZW50IH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBpbnNlcnRDdXN0b21FbGVtZW50cywgT3ZlcnJpZGVUeXBlLCBQbGFjZW1lbnQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvRGF0YUZpZWxkSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRGb3JtSUQsIGdldEZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHR5cGUgeyBGb3JtYXRPcHRpb25zVHlwZSwgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcblxuZXhwb3J0IHR5cGUgRm9ybURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGJvb2xlYW47XG5cdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGJvb2xlYW47XG5cdGZvcm1Db250YWluZXJzOiBGb3JtQ29udGFpbmVyW107XG5cdGlzVmlzaWJsZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG59O1xuXG5leHBvcnQgZW51bSBGb3JtRWxlbWVudFR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdFNsb3QgPSBcIlNsb3RcIixcblx0QW5ub3RhdGlvbiA9IFwiQW5ub3RhdGlvblwiXG59XG5cbmV4cG9ydCB0eXBlIEJhc2VGb3JtRWxlbWVudCA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0aWQ/OiBzdHJpbmc7XG5cdHR5cGU6IEZvcm1FbGVtZW50VHlwZTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkZvcm1FbGVtZW50ID0gQmFzZUZvcm1FbGVtZW50ICYge1xuXHRpZFByZWZpeD86IHN0cmluZztcblx0YW5ub3RhdGlvblBhdGg/OiBzdHJpbmc7XG5cdGlzVmFsdWVNdWx0aWxpbmVUZXh0PzogYm9vbGVhbjtcblx0c2VtYW50aWNPYmplY3RQYXRoPzogc3RyaW5nO1xuXHRjb25uZWN0ZWRGaWVsZHM/OiB7IHNlbWFudGljT2JqZWN0UGF0aD86IHN0cmluZyB9W107XG5cdGlzUGFydE9mUHJldmlldz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21Gb3JtRWxlbWVudCA9IEN1c3RvbUVsZW1lbnQ8XG5cdEJhc2VGb3JtRWxlbWVudCAmIHtcblx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdFx0dGVtcGxhdGU6IHN0cmluZztcblx0fVxuPjtcblxuZXhwb3J0IHR5cGUgRm9ybUVsZW1lbnQgPSBDdXN0b21Gb3JtRWxlbWVudCB8IEFubm90YXRpb25Gb3JtRWxlbWVudDtcblxuZXhwb3J0IHR5cGUgRm9ybUNvbnRhaW5lciA9IHtcblx0aWQ/OiBzdHJpbmc7XG5cdGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0aXNWaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhY3Rpb25zPzogQ29udmVydGVyQWN0aW9uW10gfCBCYXNlQWN0aW9uW107XG59O1xuXG4vKipcbiAqIFJldHVybnMgZGVmYXVsdCBmb3JtYXQgb3B0aW9ucyBmb3IgdGV4dCBmaWVsZHMgb24gYSBmb3JtLlxuICpcbiAqIEByZXR1cm5zIENvbGxlY3Rpb24gb2YgZm9ybWF0IG9wdGlvbnMgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICovXG5mdW5jdGlvbiBnZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKTogRm9ybWF0T3B0aW9uc1R5cGUge1xuXHRyZXR1cm4ge1xuXHRcdHRleHRMaW5lc0VkaXQ6IDRcblx0fTtcbn1cblxuZnVuY3Rpb24gaXNGaWVsZFBhcnRPZlByZXZpZXcoZmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMsIGZvcm1QYXJ0T2ZQcmV2aWV3PzogUGFydE9mUHJldmlldyk6IGJvb2xlYW4ge1xuXHQvLyBCb3RoIGVhY2ggZm9ybSBhbmQgZmllbGQgY2FuIGhhdmUgdGhlIFBhcnRPZlByZXZpZXcgYW5ub3RhdGlvbi4gT25seSBpZiB0aGUgZm9ybSBpcyBub3QgaGlkZGVuIChub3QgcGFydE9mUHJldmlldykgd2UgYWxsb3cgdG9nZ2xpbmcgb24gZmllbGQgbGV2ZWxcblx0cmV0dXJuIChcblx0XHRmb3JtUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZSB8fFxuXHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldyA9PT0gdW5kZWZpbmVkIHx8XG5cdFx0ZmllbGQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3LnZhbHVlT2YoKSA9PT0gdHJ1ZVxuXHQpO1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMoZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10ge1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdID0gW107XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUFubm90YXRpb246IElkZW50aWZpY2F0aW9uIHwgRmllbGRHcm91cCB8IENvbnRhY3QgfCBEYXRhUG9pbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uO1xuXHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblxuXHRmdW5jdGlvbiBnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBmb3JtUGFydE9mUHJldmlldzogUGFydE9mUHJldmlldyB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGggPSBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgZmllbGQpO1xuXHRcdGlmIChcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24gJiZcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gJiZcblx0XHRcdCFpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbihmaWVsZCkgJiZcblx0XHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWVcblx0XHQpIHtcblx0XHRcdGNvbnN0IGZvcm1FbGVtZW50ID0ge1xuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZmllbGQpLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpfS9gLFxuXHRcdFx0XHRzZW1hbnRpY09iamVjdFBhdGg6IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpLFxuXHRcdFx0XHRpc1BhcnRPZlByZXZpZXc6IGlzRmllbGRQYXJ0T2ZQcmV2aWV3KGZpZWxkLCBmb3JtUGFydE9mUHJldmlldylcblx0XHRcdH07XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGZpZWxkLiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFubm90YXRpb25cIiAmJlxuXHRcdFx0XHRmaWVsZC5UYXJnZXQuJHRhcmdldC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Db25uZWN0ZWRGaWVsZHNUeXBlXCJcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCBjb25uZWN0ZWRGaWVsZHMgPSBPYmplY3QudmFsdWVzKGZpZWxkLlRhcmdldC4kdGFyZ2V0LkRhdGEpLmZpbHRlcigoY29ubmVjdGVkRmllbGQ6IHVua25vd24pID0+XG5cdFx0XHRcdFx0KGNvbm5lY3RlZEZpZWxkIGFzIERhdGFGaWVsZEFic3RyYWN0VHlwZXMpPy5oYXNPd25Qcm9wZXJ0eShcIlZhbHVlXCIpXG5cdFx0XHRcdCkgYXMgRGF0YUZpZWxkQWJzdHJhY3RUeXBlc1tdO1xuXHRcdFx0XHQoZm9ybUVsZW1lbnQgYXMgQW5ub3RhdGlvbkZvcm1FbGVtZW50KS5jb25uZWN0ZWRGaWVsZHMgPSBjb25uZWN0ZWRGaWVsZHMubWFwKChjb25ubmVjdGVkRmllbGRFbGVtZW50KSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIHsgc2VtYW50aWNPYmplY3RQYXRoOiBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgY29ubm5lY3RlZEZpZWxkRWxlbWVudCkgfTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaChmb3JtRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0c3dpdGNoIChmb3JtQW5ub3RhdGlvbj8udGVybSkge1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRmllbGRHcm91cDpcblx0XHRcdGZvcm1Bbm5vdGF0aW9uLkRhdGEuZm9yRWFjaCgoZmllbGQpID0+IGdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMoZmllbGQsIGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXcpKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuSWRlbnRpZmljYXRpb246XG5cdFx0XHRmb3JtQW5ub3RhdGlvbi5mb3JFYWNoKChmaWVsZCkgPT4gZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZCwgZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldykpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogYERhdGFQb2ludDo6JHtmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwifWAsXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7Y29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZvcm1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSl9L2Bcblx0XHRcdH0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zLkNvbnRhY3Q6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogYENvbnRhY3Q6OiR7Zm9ybUFubm90YXRpb24ucXVhbGlmaWVyID8gZm9ybUFubm90YXRpb24ucXVhbGlmaWVyIDogXCJcIn1gLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmb3JtQW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpfS9gXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRicmVhaztcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGNvbnN0IG1hbmlmZXN0Rm9ybUNvbnRhaW5lcjogRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IG1hbmlmZXN0V3JhcHBlci5nZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiA9IHt9O1xuXHRpZiAobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpIHtcblx0XHRPYmplY3Qua2V5cyhtYW5pZmVzdEZvcm1Db250YWluZXI/LmZpZWxkcykuZm9yRWFjaCgoZmllbGRJZCkgPT4ge1xuXHRcdFx0Zm9ybUVsZW1lbnRzW2ZpZWxkSWRdID0ge1xuXHRcdFx0XHRrZXk6IGZpZWxkSWQsXG5cdFx0XHRcdGlkOiBgQ3VzdG9tRm9ybUVsZW1lbnQ6OiR7ZmllbGRJZH1gLFxuXHRcdFx0XHR0eXBlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnR5cGUgfHwgRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQsXG5cdFx0XHRcdHRlbXBsYXRlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnRlbXBsYXRlLFxuXHRcdFx0XHRsYWJlbDogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5sYWJlbCxcblx0XHRcdFx0cG9zaXRpb246IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0ucG9zaXRpb24gfHwge1xuXHRcdFx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IHtcblx0XHRcdFx0XHQuLi5nZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKSxcblx0XHRcdFx0XHQuLi5tYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUNvbnRhaW5lcihcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zPzogQmFzZUFjdGlvbltdIHwgQ29udmVydGVyQWN0aW9uW11cbik6IEZvcm1Db250YWluZXIge1xuXHRjb25zdCBzRm9ybUNvbnRhaW5lcklkID0gY3JlYXRlSWRGb3JBbm5vdGF0aW9uKGZhY2V0RGVmaW5pdGlvbikgYXMgc3RyaW5nO1xuXHRjb25zdCBzQW5ub3RhdGlvblBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSk7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgaXNWaXNpYmxlID0gY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKHRydWUsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pKSkpO1xuXHRsZXQgc0VudGl0eVNldFBhdGghOiBzdHJpbmc7XG5cdC8vIHJlc29sdmVkVGFyZ2V0IGRvZXNuJ3QgaGF2ZSBhIGVudGl0eVNldCBpbiBjYXNlIENvbnRhaW5tZW50cyBhbmQgUGFyYW10ZXJpemVkIHNlcnZpY2VzLlxuXHRpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkgIT09IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KClcblx0KSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0fSBlbHNlIGlmIChyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRPYmplY3Q/LmNvbnRhaW5zVGFyZ2V0ID09PSB0cnVlKSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLCBmYWxzZSk7XG5cdH0gZWxzZSBpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdCFzRW50aXR5U2V0UGF0aCAmJlxuXHRcdE1vZGVsSGVscGVyLmlzU2luZ2xldG9uKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkpXG5cdCkge1xuXHRcdHNFbnRpdHlTZXRQYXRoID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKT8uZnVsbHlRdWFsaWZpZWROYW1lIGFzIHN0cmluZztcblx0fVxuXHRjb25zdCBhRm9ybUVsZW1lbnRzID0gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0eyBmb3JtYXRPcHRpb25zOiBPdmVycmlkZVR5cGUub3ZlcndyaXRlIH1cblx0KTtcblxuXHRhY3Rpb25zID0gYWN0aW9ucyAhPT0gdW5kZWZpbmVkID8gYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLmZhY2V0TmFtZSA9PSBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSA6IFtdO1xuXHRpZiAoYWN0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRhY3Rpb25zID0gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3Qgb0FjdGlvblNob3dEZXRhaWxzOiBCYXNlQWN0aW9uID0ge1xuXHRcdGlkOiBnZXRGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRChzRm9ybUNvbnRhaW5lcklkLCBcIlNob3dIaWRlRGV0YWlsc1wiKSxcblx0XHRrZXk6IFwiU3RhbmRhcmRBY3Rpb246OlNob3dIaWRlRGV0YWlsc1wiLFxuXHRcdHRleHQ6IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInNob3dEZXRhaWxzXCIsIFwiaW50ZXJuYWxcIiksIHRydWUpLFxuXHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQ09NTU9OX09CSkVDVF9QQUdFX0hJREVfRk9STV9DT05UQUlORVJfREVUQUlMU1wiLCBcInNhcC5mZS5pMThuXCIpLFxuXHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQ09NTU9OX09CSkVDVF9QQUdFX1NIT1dfRk9STV9DT05UQUlORVJfREVUQUlMU1wiLCBcInNhcC5mZS5pMThuXCIpXG5cdFx0XHQpXG5cdFx0KSxcblx0XHR0eXBlOiBBY3Rpb25UeXBlLlNob3dGb3JtRGV0YWlscyxcblx0XHRwcmVzczogXCJGb3JtQ29udGFpbmVyUnVudGltZS50b2dnbGVEZXRhaWxzXCJcblx0fTtcblxuXHRpZiAoXG5cdFx0ZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpICE9PSBmYWxzZSAmJlxuXHRcdGFGb3JtRWxlbWVudHMuc29tZSgob0Zvcm1FbGVtZW50KSA9PiBvRm9ybUVsZW1lbnQuaXNQYXJ0T2ZQcmV2aWV3ID09PSBmYWxzZSlcblx0KSB7XG5cdFx0aWYgKGFjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YWN0aW9ucy5wdXNoKG9BY3Rpb25TaG93RGV0YWlscyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFjdGlvbnMgPSBbb0FjdGlvblNob3dEZXRhaWxzXTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGlkOiBzRm9ybUNvbnRhaW5lcklkLFxuXHRcdGZvcm1FbGVtZW50czogYUZvcm1FbGVtZW50cyxcblx0XHRhbm5vdGF0aW9uUGF0aDogc0Fubm90YXRpb25QYXRoLFxuXHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlLFxuXHRcdGVudGl0eVNldDogc0VudGl0eVNldFBhdGgsXG5cdFx0YWN0aW9uczogYWN0aW9uc1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogQ29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM/OiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXVxuKTogRm9ybUNvbnRhaW5lcltdIHtcblx0Y29uc3QgZm9ybUNvbnRhaW5lcnM6IEZvcm1Db250YWluZXJbXSA9IFtdO1xuXHRmYWNldERlZmluaXRpb24uRmFjZXRzPy5mb3JFYWNoKChmYWNldCkgPT4ge1xuXHRcdC8vIElnbm9yZSBsZXZlbCAzIGNvbGxlY3Rpb24gZmFjZXRcblx0XHRpZiAoZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRmb3JtQ29udGFpbmVycy5wdXNoKGdldEZvcm1Db250YWluZXIoZmFjZXQgYXMgUmVmZXJlbmNlRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucykpO1xuXHR9KTtcblx0cmV0dXJuIGZvcm1Db250YWluZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VGYWNldChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMpOiBmYWNldERlZmluaXRpb24gaXMgUmVmZXJlbmNlRmFjZXRUeXBlcyB7XG5cdHJldHVybiBmYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybURlZmluaXRpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0aXNWaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YWN0aW9ucz86IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtRGVmaW5pdGlvbiB7XG5cdHN3aXRjaCAoZmFjZXREZWZpbml0aW9uLiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHQvLyBLZWVwIG9ubHkgdmFsaWQgY2hpbGRyZW5cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlkOiBnZXRGb3JtSUQoZmFjZXREZWZpbml0aW9uKSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogdHJ1ZSxcblx0XHRcdFx0aGFzRmFjZXRzTm90UGFydE9mUHJldmlldzogZmFjZXREZWZpbml0aW9uLkZhY2V0cy5zb21lKFxuXHRcdFx0XHRcdChjaGlsZEZhY2V0KSA9PiBjaGlsZEZhY2V0LmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRmb3JtQ29udGFpbmVyczogZ2V0Rm9ybUNvbnRhaW5lcnNGb3JDb2xsZWN0aW9uKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucyksXG5cdFx0XHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlXG5cdFx0XHR9O1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQ6XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRpZDogZ2V0Rm9ybUlEKGZhY2V0RGVmaW5pdGlvbiksXG5cdFx0XHRcdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGZhbHNlLFxuXHRcdFx0XHRoYXNGYWNldHNOb3RQYXJ0T2ZQcmV2aWV3OiBmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3Py52YWx1ZU9mKCkgPT09IGZhbHNlLFxuXHRcdFx0XHRmb3JtQ29udGFpbmVyczogW2dldEZvcm1Db250YWluZXIoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0LCBhY3Rpb25zKV0sXG5cdFx0XHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlXG5cdFx0XHR9O1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY3JlYXRlIGZvcm0gYmFzZWQgb24gUmVmZXJlbmNlVVJMRmFjZXRcIik7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFxQ1lBLGVBQWU7RUFBQSxXQUFmQSxlQUFlO0lBQWZBLGVBQWU7SUFBZkEsZUFBZTtJQUFmQSxl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
@@ -122,9 +122,9 @@ function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, co
122
122
  field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" &&
123
123
  field.Target.$target.$Type === "com.sap.vocabularies.UI.v1.ConnectedFieldsType"
124
124
  ) {
125
- const connectedFields = Object.values(field.Target.$target.Data).filter((connectedField: Object) =>
126
- connectedField?.hasOwnProperty("Value")
127
- );
125
+ const connectedFields = Object.values(field.Target.$target.Data).filter((connectedField: unknown) =>
126
+ (connectedField as DataFieldAbstractTypes)?.hasOwnProperty("Value")
127
+ ) as DataFieldAbstractTypes[];
128
128
  (formElement as AnnotationFormElement).connectedFields = connectedFields.map((connnectedFieldElement) => {
129
129
  return { semanticObjectPath: getSemanticObjectPath(converterContext, connnectedFieldElement) };
130
130
  });