@sapui5/sap.fe.core 1.111.1 → 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} +290 -362
  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 -948
  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
@@ -2,28 +2,32 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/macros/CommonHelper", "../../ManifestSettings", "./Chart", "./Table"], function (IssueManager, CommonHelper, ManifestSettings, Chart, Table) {
5
+ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/converters/MetaModelConverter", "sap/fe/macros/CommonHelper", "../../ManifestSettings", "./Chart", "./Table"], function (IssueManager, MetaModelConverter, CommonHelper, ManifestSettings, Chart, Table) {
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
9
9
  var createChartVisualization = Chart.createChartVisualization;
10
+ var createBlankChartVisualization = Chart.createBlankChartVisualization;
10
11
  var TemplateType = ManifestSettings.TemplateType;
11
12
  var IssueType = IssueManager.IssueType;
12
13
  var IssueSeverity = IssueManager.IssueSeverity;
13
14
  var IssueCategory = IssueManager.IssueCategory;
14
15
  const getVisualizationsFromPresentationVariant = function (presentationVariantAnnotation, visualizationPath, converterContext, isMacroOrMultipleView) {
15
16
  const visualizationAnnotations = [];
16
- const bIsALP = converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === TemplateType.AnalyticalListPage;
17
+ const isALP = isAlpAnnotation(converterContext);
17
18
  const baseVisualizationPath = visualizationPath.split("@")[0];
18
- if (isMacroOrMultipleView && !isPresentationCompliant(presentationVariantAnnotation, bIsALP)) {
19
- const entityType = converterContext.getEntityType();
20
- const defaultLineItemAnnotation = getDefaultLineItem(entityType);
21
- if (defaultLineItemAnnotation) {
22
- visualizationAnnotations.push({
23
- visualization: defaultLineItemAnnotation,
24
- annotationPath: `${baseVisualizationPath}${converterContext.getRelativeAnnotationPath(defaultLineItemAnnotation.fullyQualifiedName, entityType)}`,
25
- converterContext: converterContext
26
- });
19
+ if ((isMacroOrMultipleView === true || isALP) && !isPresentationCompliant(presentationVariantAnnotation, isALP)) {
20
+ if (!annotationExistsInPresentationVariant(presentationVariantAnnotation, "com.sap.vocabularies.UI.v1.LineItem")) {
21
+ const defaultLineItemAnnotation = prepareDefaultVisualization("com.sap.vocabularies.UI.v1.LineItem", baseVisualizationPath, converterContext);
22
+ if (defaultLineItemAnnotation) {
23
+ visualizationAnnotations.push(defaultLineItemAnnotation);
24
+ }
25
+ }
26
+ if (!annotationExistsInPresentationVariant(presentationVariantAnnotation, "com.sap.vocabularies.UI.v1.Chart")) {
27
+ const defaultChartAnnotation = prepareDefaultVisualization("com.sap.vocabularies.UI.v1.Chart", baseVisualizationPath, converterContext);
28
+ if (defaultChartAnnotation) {
29
+ visualizationAnnotations.push(defaultChartAnnotation);
30
+ }
27
31
  }
28
32
  }
29
33
  const visualizations = presentationVariantAnnotation.Visualizations;
@@ -40,7 +44,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/macros/Com
40
44
  });
41
45
  }
42
46
  };
43
- if (bIsALP) {
47
+ if (isALP) {
44
48
  // In case of ALP, we use the first LineItem and the first Chart
45
49
  pushFirstVizOfType(["com.sap.vocabularies.UI.v1.LineItem"]);
46
50
  pushFirstVizOfType(["com.sap.vocabularies.UI.v1.Chart"]);
@@ -68,37 +72,37 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/macros/Com
68
72
  }
69
73
  }
70
74
  _exports.getSelectionPresentationVariant = getSelectionPresentationVariant;
71
- function isSelectionPresentationCompliant(SelectionPresentationVariant, bIsALP) {
72
- const presentationVariant = SelectionPresentationVariant && SelectionPresentationVariant.PresentationVariant;
75
+ function isSelectionPresentationCompliant(selectionPresentationVariant, isALP) {
76
+ const presentationVariant = selectionPresentationVariant && selectionPresentationVariant.PresentationVariant;
73
77
  if (presentationVariant) {
74
- return isPresentationCompliant(presentationVariant, bIsALP);
78
+ return isPresentationCompliant(presentationVariant, isALP);
75
79
  } else {
76
80
  throw new Error("Presentation Variant is not present in the SPV annotation");
77
81
  }
78
82
  }
79
83
  _exports.isSelectionPresentationCompliant = isSelectionPresentationCompliant;
80
84
  function isPresentationCompliant(presentationVariant) {
81
- let bIsALP = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
82
- let bHasTable = false,
83
- bHasChart = false;
84
- if (bIsALP) {
85
+ let isALP = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
86
+ let hasTable = false,
87
+ hasChart = false;
88
+ if (isALP) {
85
89
  if (presentationVariant !== null && presentationVariant !== void 0 && presentationVariant.Visualizations) {
86
- const aVisualizations = presentationVariant.Visualizations;
87
- aVisualizations.forEach(oVisualization => {
88
- var _oVisualization$$targ, _oVisualization$$targ2;
89
- if (((_oVisualization$$targ = oVisualization.$target) === null || _oVisualization$$targ === void 0 ? void 0 : _oVisualization$$targ.term) === "com.sap.vocabularies.UI.v1.LineItem") {
90
- bHasTable = true;
90
+ const visualizations = presentationVariant.Visualizations;
91
+ visualizations.forEach(visualization => {
92
+ var _visualization$$targe, _visualization$$targe2;
93
+ if (((_visualization$$targe = visualization.$target) === null || _visualization$$targe === void 0 ? void 0 : _visualization$$targe.term) === "com.sap.vocabularies.UI.v1.LineItem") {
94
+ hasTable = true;
91
95
  }
92
- if (((_oVisualization$$targ2 = oVisualization.$target) === null || _oVisualization$$targ2 === void 0 ? void 0 : _oVisualization$$targ2.term) === "com.sap.vocabularies.UI.v1.Chart") {
93
- bHasChart = true;
96
+ if (((_visualization$$targe2 = visualization.$target) === null || _visualization$$targe2 === void 0 ? void 0 : _visualization$$targe2.term) === "com.sap.vocabularies.UI.v1.Chart") {
97
+ hasChart = true;
94
98
  }
95
99
  });
96
100
  }
97
- return bHasChart && bHasTable;
101
+ return hasChart && hasTable;
98
102
  } else {
99
103
  return (presentationVariant === null || presentationVariant === void 0 ? void 0 : presentationVariant.Visualizations) && !!presentationVariant.Visualizations.find(visualization => {
100
- var _visualization$$targe, _visualization$$targe2;
101
- return ((_visualization$$targe = visualization.$target) === null || _visualization$$targe === void 0 ? void 0 : _visualization$$targe.term) === "com.sap.vocabularies.UI.v1.LineItem" || ((_visualization$$targe2 = visualization.$target) === null || _visualization$$targe2 === void 0 ? void 0 : _visualization$$targe2.term) === "com.sap.vocabularies.UI.v1.Chart";
104
+ var _visualization$$targe3, _visualization$$targe4;
105
+ return ((_visualization$$targe3 = visualization.$target) === null || _visualization$$targe3 === void 0 ? void 0 : _visualization$$targe3.term) === "com.sap.vocabularies.UI.v1.LineItem" || ((_visualization$$targe4 = visualization.$target) === null || _visualization$$targe4 === void 0 ? void 0 : _visualization$$targe4.term) === "com.sap.vocabularies.UI.v1.Chart";
102
106
  });
103
107
  }
104
108
  }
@@ -150,9 +154,9 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/macros/Com
150
154
  let presentationVariantAnnotation;
151
155
  let presentationPath = "";
152
156
  let chartVisualization, tableVisualization;
153
- const sTerm = resolvedVisualization === null || resolvedVisualization === void 0 ? void 0 : resolvedVisualization.term;
154
- if (sTerm) {
155
- switch (sTerm) {
157
+ const term = resolvedVisualization === null || resolvedVisualization === void 0 ? void 0 : resolvedVisualization.term;
158
+ if (term) {
159
+ switch (term) {
156
160
  case "com.sap.vocabularies.UI.v1.LineItem":
157
161
  case "com.sap.vocabularies.UI.v1.Chart":
158
162
  presentationVariantAnnotation = resolvedAssociatedPresentationVariant === null || resolvedAssociatedPresentationVariant === void 0 ? void 0 : resolvedAssociatedPresentationVariant.annotation;
@@ -183,7 +187,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/macros/Com
183
187
  } = visualizationAnnotation;
184
188
  switch (visualization.term) {
185
189
  case "com.sap.vocabularies.UI.v1.Chart":
186
- chartVisualization = createChartVisualization(visualization, annotationPath, converterContext, doNotCheckApplySupported);
190
+ chartVisualization = createChartVisualization(visualization, annotationPath, converterContext, doNotCheckApplySupported, viewConfiguration);
187
191
  break;
188
192
  case "com.sap.vocabularies.UI.v1.LineItem":
189
193
  default:
@@ -191,57 +195,90 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/macros/Com
191
195
  break;
192
196
  }
193
197
  });
194
- } else {
195
- tableVisualization = Table.createDefaultTableVisualization(inConverterContext, !isMacroOrMultipleView);
198
+ }
199
+ const visualizations = [];
200
+ let path = term === "com.sap.vocabularies.UI.v1.SelectionPresentationVariant" ? presentationPath : resolvedVisualization === null || resolvedVisualization === void 0 ? void 0 : resolvedVisualization.fullyQualifiedName;
201
+ if (path === undefined) {
202
+ path = "/";
203
+ }
204
+ const isALP = isAlpAnnotation(inConverterContext);
205
+ if (!term || isALP && tableVisualization === undefined) {
206
+ tableVisualization = Table.createDefaultTableVisualization(inConverterContext, isMacroOrMultipleView !== true);
196
207
  inConverterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.Medium, IssueType.MISSING_LINEITEM);
197
208
  }
198
- const aVisualizations = [];
199
- let sPath = sTerm === "com.sap.vocabularies.UI.v1.SelectionPresentationVariant" ? presentationPath : resolvedVisualization && resolvedVisualization.fullyQualifiedName;
200
- if (sPath === undefined) {
201
- sPath = "/";
209
+ if (isALP && chartVisualization === undefined) {
210
+ chartVisualization = createBlankChartVisualization(inConverterContext);
211
+ inConverterContext.getDiagnostics().addIssue(IssueCategory.Annotation, IssueSeverity.Medium, IssueType.MISSING_CHART);
202
212
  }
203
213
  if (chartVisualization) {
204
- aVisualizations.push(chartVisualization);
214
+ visualizations.push(chartVisualization);
205
215
  }
206
216
  if (tableVisualization) {
207
- aVisualizations.push(tableVisualization);
217
+ visualizations.push(tableVisualization);
208
218
  }
209
219
  return {
210
- visualizations: aVisualizations,
211
- annotationPath: inConverterContext.getEntitySetBasedAnnotationPath(sPath)
220
+ visualizations: visualizations,
221
+ annotationPath: inConverterContext.getEntitySetBasedAnnotationPath(path)
212
222
  };
213
223
  }
214
224
 
215
225
  /**
216
- * Return UI Control (LineItem/Chart) Context.
226
+ * Returns the context of the UI controls (either a UI.LineItem, or a UI.Chart).
217
227
  *
218
228
  * @function
219
229
  * @name getUiControl
220
- * @param oPresentationContext Presentation context object (Presentation variant or UI.LineItem/Chart)
221
- * @param sControlPath Control path
222
- * @returns The Control (LineItem/Chart) context
230
+ * @param presentationContext Object of the presentation context (either a presentation variant, or a UI.LineItem, or a UI.Chart)
231
+ * @param controlPath Control path
232
+ * @returns The context of the control (either a UI.LineItem, or a UI.Chart)
223
233
  */
224
234
  _exports.getDataVisualizationConfiguration = getDataVisualizationConfiguration;
225
- function getUiControl(oPresentationContext, sControlPath) {
226
- const oPresentation = oPresentationContext.getObject(oPresentationContext.getPath()),
227
- oPresentationVariantPath = CommonHelper.createPresentationPathContext(oPresentationContext),
228
- oModel = oPresentationContext.getModel();
229
- if (CommonHelper._isPresentationVariantAnnotation(oPresentationVariantPath.getPath())) {
230
- // Uncomplete PresentationVariant can be passed to macro via SelectionPresentationVariant
231
- const aVisualizations = oPresentation.Visualizations;
232
- if (Array.isArray(aVisualizations)) {
233
- for (let i = 0; i < aVisualizations.length; i++) {
234
- if (aVisualizations[i].$AnnotationPath.indexOf(sControlPath) !== -1) {
235
- sControlPath = aVisualizations[i].$AnnotationPath;
236
- break;
235
+ function getUiControl(presentationContext, controlPath) {
236
+ CommonHelper.validatePresentationMetaPath(presentationContext.getPath(), controlPath);
237
+ const presentation = MetaModelConverter.convertMetaModelContext(presentationContext),
238
+ presentationVariantPath = CommonHelper.createPresentationPathContext(presentationContext),
239
+ model = presentationContext.getModel();
240
+ if (presentation) {
241
+ if (CommonHelper._isPresentationVariantAnnotation(presentationVariantPath.getPath())) {
242
+ const visualizations = presentation.PresentationVariant ? presentation.PresentationVariant.Visualizations : presentation.Visualizations;
243
+ if (Array.isArray(visualizations)) {
244
+ for (const visualization of visualizations) {
245
+ if (visualization.type == "AnnotationPath" && visualization.value.indexOf(controlPath) !== -1 &&
246
+ // check if object exists for PresentationVariant visualization
247
+ !!model.getMetaContext(presentationContext.getPath().split("@")[0] + visualization.value).getObject()) {
248
+ controlPath = visualization.value;
249
+ break;
250
+ }
237
251
  }
238
252
  }
253
+ } else {
254
+ return presentationContext;
239
255
  }
240
- return oModel.getMetaContext(oPresentationContext.getPath().split("@")[0] + sControlPath);
241
256
  }
242
- return oPresentationContext;
257
+ return model.getMetaContext(presentationContext.getPath().split("@")[0] + controlPath);
243
258
  }
244
259
  _exports.getUiControl = getUiControl;
260
+ const annotationExistsInPresentationVariant = function (presentationVariantAnnotation, annotationTerm) {
261
+ var _presentationVariantA;
262
+ return ((_presentationVariantA = presentationVariantAnnotation.Visualizations) === null || _presentationVariantA === void 0 ? void 0 : _presentationVariantA.some(visualization => visualization.value.indexOf(annotationTerm) > -1)) ?? false;
263
+ };
264
+ _exports.annotationExistsInPresentationVariant = annotationExistsInPresentationVariant;
265
+ const prepareDefaultVisualization = function (visualizationType, baseVisualizationPath, converterContext) {
266
+ const entityType = converterContext.getEntityType();
267
+ const defaultAnnotation = visualizationType === "com.sap.vocabularies.UI.v1.LineItem" ? getDefaultLineItem(entityType) : getDefaultChart(entityType);
268
+ if (defaultAnnotation) {
269
+ return {
270
+ visualization: defaultAnnotation,
271
+ annotationPath: `${baseVisualizationPath}${converterContext.getRelativeAnnotationPath(defaultAnnotation.fullyQualifiedName, entityType)}`,
272
+ converterContext: converterContext
273
+ };
274
+ }
275
+ return undefined;
276
+ };
277
+ _exports.prepareDefaultVisualization = prepareDefaultVisualization;
278
+ const isAlpAnnotation = function (converterContext) {
279
+ return converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === TemplateType.AnalyticalListPage;
280
+ };
281
+ _exports.isAlpAnnotation = isAlpAnnotation;
245
282
  return _exports;
246
283
  }, false);
247
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24iLCJ2aXN1YWxpemF0aW9uUGF0aCIsImNvbnZlcnRlckNvbnRleHQiLCJpc01hY3JvT3JNdWx0aXBsZVZpZXciLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMiLCJiSXNBTFAiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJoYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zIiwiZ2V0VGVtcGxhdGVUeXBlIiwiVGVtcGxhdGVUeXBlIiwiQW5hbHl0aWNhbExpc3RQYWdlIiwiYmFzZVZpc3VhbGl6YXRpb25QYXRoIiwic3BsaXQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImVudGl0eVR5cGUiLCJnZXRFbnRpdHlUeXBlIiwiZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiIsImdldERlZmF1bHRMaW5lSXRlbSIsInB1c2giLCJ2aXN1YWxpemF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwidmlzdWFsaXphdGlvbnMiLCJWaXN1YWxpemF0aW9ucyIsInB1c2hGaXJzdFZpek9mVHlwZSIsImFsbG93ZWRUZXJtcyIsImZpcnN0Vml6IiwiZmluZCIsInZpeiIsImluZGV4T2YiLCIkdGFyZ2V0IiwidGVybSIsInZhbHVlIiwiZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50IiwiYW5ub3RhdGlvbiIsIkVycm9yIiwiYW5ub3RhdGlvbnMiLCJVSSIsIlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1NlbGVjdGlvblByZXNlbnRhdGlvbkNvbXBsaWFudCIsInByZXNlbnRhdGlvblZhcmlhbnQiLCJQcmVzZW50YXRpb25WYXJpYW50IiwiYkhhc1RhYmxlIiwiYkhhc0NoYXJ0IiwiYVZpc3VhbGl6YXRpb25zIiwiZm9yRWFjaCIsIm9WaXN1YWxpemF0aW9uIiwiTGluZUl0ZW0iLCJnZXREZWZhdWx0Q2hhcnQiLCJDaGFydCIsImdldERlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50IiwiZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQiLCJTZWxlY3Rpb25WYXJpYW50IiwiZ2V0U2VsZWN0aW9uVmFyaWFudCIsImdldERlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoIiwic2VsZWN0aW9uVmFyaWFudCIsImdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbiIsImlzQ29uZGVuc2VkVGFibGVMYXlvdXRDb21wbGlhbnQiLCJpbkNvbnZlcnRlckNvbnRleHQiLCJ2aWV3Q29uZmlndXJhdGlvbiIsImRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCIsImFzc29jaWF0ZWRQcmVzZW50YXRpb25WYXJpYW50UGF0aCIsInVuZGVmaW5lZCIsInJlc29sdmVkQXNzb2NpYXRlZFByZXNlbnRhdGlvblZhcmlhbnQiLCJyZXNvbHZlZFZpc3VhbGl6YXRpb24iLCJwcmVzZW50YXRpb25QYXRoIiwiY2hhcnRWaXN1YWxpemF0aW9uIiwidGFibGVWaXN1YWxpemF0aW9uIiwic1Rlcm0iLCJjb25jYXQiLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiIsIlRhYmxlIiwiY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uIiwiY3JlYXRlRGVmYXVsdFRhYmxlVmlzdWFsaXphdGlvbiIsImdldERpYWdub3N0aWNzIiwiYWRkSXNzdWUiLCJJc3N1ZUNhdGVnb3J5IiwiQW5ub3RhdGlvbiIsIklzc3VlU2V2ZXJpdHkiLCJNZWRpdW0iLCJJc3N1ZVR5cGUiLCJNSVNTSU5HX0xJTkVJVEVNIiwic1BhdGgiLCJnZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoIiwiZ2V0VWlDb250cm9sIiwib1ByZXNlbnRhdGlvbkNvbnRleHQiLCJzQ29udHJvbFBhdGgiLCJvUHJlc2VudGF0aW9uIiwiZ2V0T2JqZWN0IiwiZ2V0UGF0aCIsIm9QcmVzZW50YXRpb25WYXJpYW50UGF0aCIsIkNvbW1vbkhlbHBlciIsImNyZWF0ZVByZXNlbnRhdGlvblBhdGhDb250ZXh0Iiwib01vZGVsIiwiZ2V0TW9kZWwiLCJfaXNQcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsImkiLCJsZW5ndGgiLCIkQW5ub3RhdGlvblBhdGgiLCJnZXRNZXRhQ29udGV4dCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0YVZpc3VhbGl6YXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENoYXJ0LFxuXHRMaW5lSXRlbSxcblx0UHJlc2VudGF0aW9uVmFyaWFudCxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQsXG5cdFNlbGVjdGlvblZhcmlhbnRcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5LCBJc3N1ZVR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lzc3VlTWFuYWdlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBWaWV3UGF0aENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgVGVtcGxhdGVUeXBlIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB0eXBlIHsgQ2hhcnRWaXN1YWxpemF0aW9uIH0gZnJvbSBcIi4vQ2hhcnRcIjtcbmltcG9ydCB7IGNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiB9IGZyb20gXCIuL0NoYXJ0XCI7XG5pbXBvcnQgdHlwZSB7IFRhYmxlVmlzdWFsaXphdGlvbiB9IGZyb20gXCIuL1RhYmxlXCI7XG5pbXBvcnQgVGFibGUgZnJvbSBcIi4vVGFibGVcIjtcblxuZXhwb3J0IHR5cGUgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IExpbmVJdGVtIHwgQ2hhcnQgfCBQcmVzZW50YXRpb25WYXJpYW50IHwgU2VsZWN0aW9uVmFyaWFudCB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cbmV4cG9ydCB0eXBlIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IExpbmVJdGVtIHwgQ2hhcnQ7XG5cbmV4cG9ydCB0eXBlIFZpc3VhbGl6YXRpb25BbmRQYXRoID0ge1xuXHR2aXN1YWxpemF0aW9uOiBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdHNlbGVjdGlvblZhcmlhbnRQYXRoPzogc3RyaW5nO1xuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0ge1xuXHR2aXN1YWxpemF0aW9uczogKFRhYmxlVmlzdWFsaXphdGlvbiB8IENoYXJ0VmlzdWFsaXphdGlvbilbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50ID0gZnVuY3Rpb24gKFxuXHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGlzTWFjcm9Pck11bHRpcGxlVmlldz86IGJvb2xlYW5cbik6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10ge1xuXHRjb25zdCB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10gPSBbXTtcblxuXHRjb25zdCBiSXNBTFAgPVxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucygpIHx8XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZTtcblxuXHRjb25zdCBiYXNlVmlzdWFsaXphdGlvblBhdGggPSB2aXN1YWxpemF0aW9uUGF0aC5zcGxpdChcIkBcIilbMF07XG5cblx0aWYgKGlzTWFjcm9Pck11bHRpcGxlVmlldyAmJiAhaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24sIGJJc0FMUCkpIHtcblx0XHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0Y29uc3QgZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiA9IGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlKTtcblx0XHRpZiAoZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbikge1xuXHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHR2aXN1YWxpemF0aW9uOiBkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7YmFzZVZpc3VhbGl6YXRpb25QYXRofSR7Y29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRcdGVudGl0eVR5cGVcblx0XHRcdFx0KX1gLFxuXHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblx0Y29uc3QgdmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5WaXN1YWxpemF0aW9ucztcblxuXHRjb25zdCBwdXNoRmlyc3RWaXpPZlR5cGUgPSBmdW5jdGlvbiAoYWxsb3dlZFRlcm1zOiBzdHJpbmdbXSkge1xuXHRcdGNvbnN0IGZpcnN0Vml6ID0gdmlzdWFsaXphdGlvbnM/LmZpbmQoKHZpeikgPT4ge1xuXHRcdFx0cmV0dXJuIGFsbG93ZWRUZXJtcy5pbmRleE9mKHZpei4kdGFyZ2V0Py50ZXJtKSA+PSAwO1xuXHRcdH0pO1xuXG5cdFx0aWYgKGZpcnN0Vml6KSB7XG5cdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb246IGZpcnN0Vml6LiR0YXJnZXQgYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7YmFzZVZpc3VhbGl6YXRpb25QYXRofSR7Zmlyc3RWaXoudmFsdWV9YCxcblx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9O1xuXG5cdGlmIChiSXNBTFApIHtcblx0XHQvLyBJbiBjYXNlIG9mIEFMUCwgd2UgdXNlIHRoZSBmaXJzdCBMaW5lSXRlbSBhbmQgdGhlIGZpcnN0IENoYXJ0XG5cdFx0cHVzaEZpcnN0Vml6T2ZUeXBlKFtVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbV0pO1xuXHRcdHB1c2hGaXJzdFZpek9mVHlwZShbVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnRdKTtcblx0fSBlbHNlIHtcblx0XHQvLyBPdGhlcndpc2UsIHdlIHVzZSB0aGUgZmlyc3Qgdml6IG9ubHkgKENoYXJ0IG9yIExpbmVJdGVtKVxuXHRcdHB1c2hGaXJzdFZpek9mVHlwZShbVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW0sIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0XSk7XG5cdH1cblx0cmV0dXJuIHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBhbnkge1xuXHRpZiAoYW5ub3RhdGlvblBhdGgpIHtcblx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oYW5ub3RhdGlvblBhdGgpO1xuXHRcdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkFubm90YXRpb24gUGF0aCBmb3IgdGhlIFNQViBtZW50aW9uZWQgaW4gdGhlIG1hbmlmZXN0IGlzIG5vdCBmb3VuZCwgUGxlYXNlIGFkZCB0aGUgU1BWIGluIHRoZSBhbm5vdGF0aW9uXCIpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50KFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50OiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LFxuXHRiSXNBTFA6IGJvb2xlYW5cbik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRjb25zdCBwcmVzZW50YXRpb25WYXJpYW50ID0gU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCAmJiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdGlmIChwcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0cmV0dXJuIGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQsIGJJc0FMUCk7XG5cdH0gZWxzZSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiUHJlc2VudGF0aW9uIFZhcmlhbnQgaXMgbm90IHByZXNlbnQgaW4gdGhlIFNQViBhbm5vdGF0aW9uXCIpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50OiBQcmVzZW50YXRpb25WYXJpYW50VHlwZSwgYklzQUxQID0gZmFsc2UpOiBib29sZWFuIHtcblx0bGV0IGJIYXNUYWJsZSA9IGZhbHNlLFxuXHRcdGJIYXNDaGFydCA9IGZhbHNlO1xuXHRpZiAoYklzQUxQKSB7XG5cdFx0aWYgKHByZXNlbnRhdGlvblZhcmlhbnQ/LlZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRjb25zdCBhVmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zO1xuXHRcdFx0YVZpc3VhbGl6YXRpb25zLmZvckVhY2goKG9WaXN1YWxpemF0aW9uKSA9PiB7XG5cdFx0XHRcdGlmIChvVmlzdWFsaXphdGlvbi4kdGFyZ2V0Py50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSkge1xuXHRcdFx0XHRcdGJIYXNUYWJsZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9WaXN1YWxpemF0aW9uLiR0YXJnZXQ/LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0KSB7XG5cdFx0XHRcdFx0Ykhhc0NoYXJ0ID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBiSGFzQ2hhcnQgJiYgYkhhc1RhYmxlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Py5WaXN1YWxpemF0aW9ucyAmJlxuXHRcdFx0ISFwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zLmZpbmQoKHZpc3VhbGl6YXRpb24pID0+IHtcblx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uLiR0YXJnZXQ/LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtIHx8IHZpc3VhbGl6YXRpb24uJHRhcmdldD8udGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnRcblx0XHRcdFx0KTtcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdExpbmVJdGVtKGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5MaW5lSXRlbTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q2hhcnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IENoYXJ0IHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkNoYXJ0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBQcmVzZW50YXRpb25WYXJpYW50IHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5QcmVzZW50YXRpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IFNlbGVjdGlvblZhcmlhbnQgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblZhcmlhbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBTZWxlY3Rpb25WYXJpYW50IHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgYW5ub3RhdGlvblBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldERlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoKCk7XG5cdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KGVudGl0eVR5cGUsIGFubm90YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0bGV0IHNlbGVjdGlvblZhcmlhbnQ7XG5cdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0c2VsZWN0aW9uVmFyaWFudCA9IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRpZiAoc2VsZWN0aW9uVmFyaWFudCkge1xuXHRcdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHNlbGVjdGlvblZhcmlhbnQgPSBnZXREZWZhdWx0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlKTtcblx0XHRyZXR1cm4gc2VsZWN0aW9uVmFyaWFudDtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uKFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50OiBib29sZWFuLFxuXHRpbkNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHZpZXdDb25maWd1cmF0aW9uPzogVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQ/OiBib29sZWFuLFxuXHRhc3NvY2lhdGVkUHJlc2VudGF0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmcsXG5cdGlzTWFjcm9Pck11bHRpcGxlVmlldz86IGJvb2xlYW5cbik6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID1cblx0XHR2aXN1YWxpemF0aW9uUGF0aCAhPT0gXCJcIlxuXHRcdFx0PyBpbkNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24odmlzdWFsaXphdGlvblBhdGgpXG5cdFx0XHQ6IHsgYW5ub3RhdGlvbjogdW5kZWZpbmVkLCBjb252ZXJ0ZXJDb250ZXh0OiBpbkNvbnZlcnRlckNvbnRleHQgfTtcblx0Y29uc3QgcmVzb2x2ZWRBc3NvY2lhdGVkUHJlc2VudGF0aW9uVmFyaWFudCA9IGFzc29jaWF0ZWRQcmVzZW50YXRpb25WYXJpYW50UGF0aFxuXHRcdD8gaW5Db252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGFzc29jaWF0ZWRQcmVzZW50YXRpb25WYXJpYW50UGF0aClcblx0XHQ6IG51bGw7XG5cdGNvbnN0IHJlc29sdmVkVmlzdWFsaXphdGlvbiA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0aW5Db252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblx0bGV0IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uczogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSA9IFtdO1xuXHRsZXQgcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlO1xuXHRsZXQgcHJlc2VudGF0aW9uUGF0aDogc3RyaW5nID0gXCJcIjtcblx0bGV0IGNoYXJ0VmlzdWFsaXphdGlvbiwgdGFibGVWaXN1YWxpemF0aW9uO1xuXHRjb25zdCBzVGVybSA9IHJlc29sdmVkVmlzdWFsaXphdGlvbj8udGVybTtcblx0aWYgKHNUZXJtKSB7XG5cdFx0c3dpdGNoIChzVGVybSkge1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gcmVzb2x2ZWRBc3NvY2lhdGVkUHJlc2VudGF0aW9uVmFyaWFudD8uYW5ub3RhdGlvbjtcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHJlc29sdmVkVmlzdWFsaXphdGlvbiBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGluQ29udmVydGVyQ29udGV4dFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLlByZXNlbnRhdGlvblZhcmlhbnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gcmVzb2x2ZWRWaXN1YWxpemF0aW9uO1xuXHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMuY29uY2F0KFxuXHRcdFx0XHRcdGdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQoXG5cdFx0XHRcdFx0XHRyZXNvbHZlZFZpc3VhbGl6YXRpb24sXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRcdGluQ29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGlzTWFjcm9Pck11bHRpcGxlVmlld1xuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gcmVzb2x2ZWRWaXN1YWxpemF0aW9uLlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHRcdC8vIFByZXNlbnRhdGlvbiBjYW4gYmUgaW5saW5lIG9yIG91dHNpZGUgdGhlIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRcblx0XHRcdFx0cHJlc2VudGF0aW9uUGF0aCA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gdmlzdWFsaXphdGlvbkFubm90YXRpb25zLmNvbmNhdChcblx0XHRcdFx0XHRnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50KFxuXHRcdFx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRcdGluQ29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGlzTWFjcm9Pck11bHRpcGxlVmlld1xuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMuZm9yRWFjaCgodmlzdWFsaXphdGlvbkFubm90YXRpb24pID0+IHtcblx0XHRcdGNvbnN0IHsgdmlzdWFsaXphdGlvbiwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQgfSA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uLnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uLFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0ZG9Ob3RDaGVja0FwcGx5U3VwcG9ydGVkXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBUYWJsZS5jcmVhdGVUYWJsZVZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uLFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRcdFx0XHRpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50LFxuXHRcdFx0XHRcdFx0dmlld0NvbmZpZ3VyYXRpb25cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHRhYmxlVmlzdWFsaXphdGlvbiA9IFRhYmxlLmNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24oaW5Db252ZXJ0ZXJDb250ZXh0LCAhaXNNYWNyb09yTXVsdGlwbGVWaWV3KTtcblx0XHRpbkNvbnZlcnRlckNvbnRleHQuZ2V0RGlhZ25vc3RpY3MoKS5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuTUlTU0lOR19MSU5FSVRFTSk7XG5cdH1cblx0Y29uc3QgYVZpc3VhbGl6YXRpb25zOiBhbnkgPSBbXTtcblx0bGV0IHNQYXRoID1cblx0XHRzVGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFxuXHRcdFx0PyBwcmVzZW50YXRpb25QYXRoXG5cdFx0XHQ6IHJlc29sdmVkVmlzdWFsaXphdGlvbiAmJiByZXNvbHZlZFZpc3VhbGl6YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRpZiAoc1BhdGggPT09IHVuZGVmaW5lZCkge1xuXHRcdHNQYXRoID0gXCIvXCI7XG5cdH1cblx0aWYgKGNoYXJ0VmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKHRhYmxlVmlzdWFsaXphdGlvbik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHR2aXN1YWxpemF0aW9uczogYVZpc3VhbGl6YXRpb25zLFxuXHRcdGFubm90YXRpb25QYXRoOiBpbkNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChzUGF0aClcblx0fTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gVUkgQ29udHJvbCAoTGluZUl0ZW0vQ2hhcnQpIENvbnRleHQuXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAbmFtZSBnZXRVaUNvbnRyb2xcbiAqIEBwYXJhbSBvUHJlc2VudGF0aW9uQ29udGV4dCBQcmVzZW50YXRpb24gY29udGV4dCBvYmplY3QgKFByZXNlbnRhdGlvbiB2YXJpYW50IG9yIFVJLkxpbmVJdGVtL0NoYXJ0KVxuICogQHBhcmFtIHNDb250cm9sUGF0aCBDb250cm9sIHBhdGhcbiAqIEByZXR1cm5zIFRoZSBDb250cm9sIChMaW5lSXRlbS9DaGFydCkgY29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VWlDb250cm9sKG9QcmVzZW50YXRpb25Db250ZXh0OiBDb250ZXh0LCBzQ29udHJvbFBhdGg6IFN0cmluZykge1xuXHRjb25zdCBvUHJlc2VudGF0aW9uID0gb1ByZXNlbnRhdGlvbkNvbnRleHQuZ2V0T2JqZWN0KG9QcmVzZW50YXRpb25Db250ZXh0LmdldFBhdGgoKSksXG5cdFx0b1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoID0gQ29tbW9uSGVscGVyLmNyZWF0ZVByZXNlbnRhdGlvblBhdGhDb250ZXh0KG9QcmVzZW50YXRpb25Db250ZXh0KSxcblx0XHRvTW9kZWwgPSBvUHJlc2VudGF0aW9uQ29udGV4dC5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWw7XG5cdGlmIChDb21tb25IZWxwZXIuX2lzUHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24ob1ByZXNlbnRhdGlvblZhcmlhbnRQYXRoLmdldFBhdGgoKSkpIHtcblx0XHQvLyBVbmNvbXBsZXRlIFByZXNlbnRhdGlvblZhcmlhbnQgY2FuIGJlIHBhc3NlZCB0byBtYWNybyB2aWEgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFxuXHRcdGNvbnN0IGFWaXN1YWxpemF0aW9ucyA9IG9QcmVzZW50YXRpb24uVmlzdWFsaXphdGlvbnM7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkoYVZpc3VhbGl6YXRpb25zKSkge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhVmlzdWFsaXphdGlvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKGFWaXN1YWxpemF0aW9uc1tpXS4kQW5ub3RhdGlvblBhdGguaW5kZXhPZihzQ29udHJvbFBhdGgpICE9PSAtMSkge1xuXHRcdFx0XHRcdHNDb250cm9sUGF0aCA9IGFWaXN1YWxpemF0aW9uc1tpXS4kQW5ub3RhdGlvblBhdGg7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIChvTW9kZWwgYXMgYW55KS5nZXRNZXRhQ29udGV4dChvUHJlc2VudGF0aW9uQ29udGV4dC5nZXRQYXRoKCkuc3BsaXQoXCJAXCIpWzBdICsgc0NvbnRyb2xQYXRoKTtcblx0fVxuXHRyZXR1cm4gb1ByZXNlbnRhdGlvbkNvbnRleHQ7XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7RUFzQ08sTUFBTUEsd0NBQXdDLEdBQUcsVUFDdkRDLDZCQUFzRCxFQUN0REMsaUJBQXlCLEVBQ3pCQyxnQkFBa0MsRUFDbENDLHFCQUErQixFQUNOO0lBQ3pCLE1BQU1DLHdCQUFnRCxHQUFHLEVBQUU7SUFFM0QsTUFBTUMsTUFBTSxHQUNYSCxnQkFBZ0IsQ0FBQ0ksa0JBQWtCLEVBQUUsQ0FBQ0MseUJBQXlCLEVBQUUsSUFDakVMLGdCQUFnQixDQUFDTSxlQUFlLEVBQUUsS0FBS0MsWUFBWSxDQUFDQyxrQkFBa0I7SUFFdkUsTUFBTUMscUJBQXFCLEdBQUdWLGlCQUFpQixDQUFDVyxLQUFLLENBQUMsR0FBRyxDQUFD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
284
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24iLCJ2aXN1YWxpemF0aW9uUGF0aCIsImNvbnZlcnRlckNvbnRleHQiLCJpc01hY3JvT3JNdWx0aXBsZVZpZXciLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMiLCJpc0FMUCIsImlzQWxwQW5ub3RhdGlvbiIsImJhc2VWaXN1YWxpemF0aW9uUGF0aCIsInNwbGl0IiwiaXNQcmVzZW50YXRpb25Db21wbGlhbnQiLCJhbm5vdGF0aW9uRXhpc3RzSW5QcmVzZW50YXRpb25WYXJpYW50IiwiZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiIsInByZXBhcmVEZWZhdWx0VmlzdWFsaXphdGlvbiIsInB1c2giLCJkZWZhdWx0Q2hhcnRBbm5vdGF0aW9uIiwidmlzdWFsaXphdGlvbnMiLCJWaXN1YWxpemF0aW9ucyIsInB1c2hGaXJzdFZpek9mVHlwZSIsImFsbG93ZWRUZXJtcyIsImZpcnN0Vml6IiwiZmluZCIsInZpeiIsImluZGV4T2YiLCIkdGFyZ2V0IiwidGVybSIsInZpc3VhbGl6YXRpb24iLCJhbm5vdGF0aW9uUGF0aCIsInZhbHVlIiwiZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImVudGl0eVR5cGUiLCJyZXNvbHZlZFRhcmdldCIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwic2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImFubm90YXRpb24iLCJFcnJvciIsImFubm90YXRpb25zIiwiVUkiLCJTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50IiwiaXNTZWxlY3Rpb25QcmVzZW50YXRpb25Db21wbGlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50IiwiUHJlc2VudGF0aW9uVmFyaWFudCIsImhhc1RhYmxlIiwiaGFzQ2hhcnQiLCJmb3JFYWNoIiwiZ2V0RGVmYXVsdExpbmVJdGVtIiwiTGluZUl0ZW0iLCJnZXREZWZhdWx0Q2hhcnQiLCJDaGFydCIsImdldERlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50IiwiZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQiLCJTZWxlY3Rpb25WYXJpYW50IiwiZ2V0U2VsZWN0aW9uVmFyaWFudCIsImdldE1hbmlmZXN0V3JhcHBlciIsImdldERlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoIiwic2VsZWN0aW9uVmFyaWFudCIsImdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbiIsImlzQ29uZGVuc2VkVGFibGVMYXlvdXRDb21wbGlhbnQiLCJpbkNvbnZlcnRlckNvbnRleHQiLCJ2aWV3Q29uZmlndXJhdGlvbiIsImRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCIsImFzc29jaWF0ZWRQcmVzZW50YXRpb25WYXJpYW50UGF0aCIsInVuZGVmaW5lZCIsInJlc29sdmVkQXNzb2NpYXRlZFByZXNlbnRhdGlvblZhcmlhbnQiLCJyZXNvbHZlZFZpc3VhbGl6YXRpb24iLCJwcmVzZW50YXRpb25QYXRoIiwiY2hhcnRWaXN1YWxpemF0aW9uIiwidGFibGVWaXN1YWxpemF0aW9uIiwiY29uY2F0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwidmlzdWFsaXphdGlvbkFubm90YXRpb24iLCJjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24iLCJUYWJsZSIsImNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiIsInBhdGgiLCJjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uIiwiZ2V0RGlhZ25vc3RpY3MiLCJhZGRJc3N1ZSIsIklzc3VlQ2F0ZWdvcnkiLCJBbm5vdGF0aW9uIiwiSXNzdWVTZXZlcml0eSIsIk1lZGl1bSIsIklzc3VlVHlwZSIsIk1JU1NJTkdfTElORUlURU0iLCJjcmVhdGVCbGFua0NoYXJ0VmlzdWFsaXphdGlvbiIsIk1JU1NJTkdfQ0hBUlQiLCJnZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoIiwiZ2V0VWlDb250cm9sIiwicHJlc2VudGF0aW9uQ29udGV4dCIsImNvbnRyb2xQYXRoIiwiQ29tbW9uSGVscGVyIiwidmFsaWRhdGVQcmVzZW50YXRpb25NZXRhUGF0aCIsImdldFBhdGgiLCJwcmVzZW50YXRpb24iLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJjb252ZXJ0TWV0YU1vZGVsQ29udGV4dCIsInByZXNlbnRhdGlvblZhcmlhbnRQYXRoIiwiY3JlYXRlUHJlc2VudGF0aW9uUGF0aENvbnRleHQiLCJtb2RlbCIsImdldE1vZGVsIiwiX2lzUHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24iLCJBcnJheSIsImlzQXJyYXkiLCJ0eXBlIiwiZ2V0TWV0YUNvbnRleHQiLCJnZXRPYmplY3QiLCJhbm5vdGF0aW9uVGVybSIsInNvbWUiLCJ2aXN1YWxpemF0aW9uVHlwZSIsImdldEVudGl0eVR5cGUiLCJkZWZhdWx0QW5ub3RhdGlvbiIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJoYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zIiwiZ2V0VGVtcGxhdGVUeXBlIiwiVGVtcGxhdGVUeXBlIiwiQW5hbHl0aWNhbExpc3RQYWdlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJEYXRhVmlzdWFsaXphdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHtcblx0Q2hhcnQsXG5cdExpbmVJdGVtLFxuXHRQcmVzZW50YXRpb25WYXJpYW50LFxuXHRQcmVzZW50YXRpb25WYXJpYW50VHlwZSxcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCxcblx0U2VsZWN0aW9uVmFyaWFudCxcblx0U2VsZWN0aW9uVmFyaWFudFR5cGVcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5LCBJc3N1ZVR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lzc3VlTWFuYWdlclwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFZpZXdQYXRoQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUgfSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHR5cGUgeyBDaGFydFZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9DaGFydFwiO1xuaW1wb3J0IHsgY3JlYXRlQmxhbmtDaGFydFZpc3VhbGl6YXRpb24sIGNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiB9IGZyb20gXCIuL0NoYXJ0XCI7XG5pbXBvcnQgdHlwZSB7IFRhYmxlVmlzdWFsaXphdGlvbiB9IGZyb20gXCIuL1RhYmxlXCI7XG5pbXBvcnQgVGFibGUgZnJvbSBcIi4vVGFibGVcIjtcblxuZXhwb3J0IHR5cGUgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IExpbmVJdGVtIHwgQ2hhcnQgfCBQcmVzZW50YXRpb25WYXJpYW50IHwgU2VsZWN0aW9uVmFyaWFudCB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cbmV4cG9ydCB0eXBlIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IExpbmVJdGVtIHwgQ2hhcnQ7XG5cbmV4cG9ydCB0eXBlIFByZXNlbnRhdGlvblZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtIHwgVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ7XG5cbmV4cG9ydCB0eXBlIFZpc3VhbGl6YXRpb25BbmRQYXRoID0ge1xuXHR2aXN1YWxpemF0aW9uOiBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdHNlbGVjdGlvblZhcmlhbnRQYXRoPzogc3RyaW5nO1xuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0ge1xuXHR2aXN1YWxpemF0aW9uczogKFRhYmxlVmlzdWFsaXphdGlvbiB8IENoYXJ0VmlzdWFsaXphdGlvbilbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50ID0gZnVuY3Rpb24gKFxuXHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGlzTWFjcm9Pck11bHRpcGxlVmlldz86IGJvb2xlYW5cbik6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10ge1xuXHRjb25zdCB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10gPSBbXTtcblxuXHRjb25zdCBpc0FMUCA9IGlzQWxwQW5ub3RhdGlvbihjb252ZXJ0ZXJDb250ZXh0KTtcblxuXHRjb25zdCBiYXNlVmlzdWFsaXphdGlvblBhdGggPSB2aXN1YWxpemF0aW9uUGF0aC5zcGxpdChcIkBcIilbMF07XG5cblx0aWYgKChpc01hY3JvT3JNdWx0aXBsZVZpZXcgPT09IHRydWUgfHwgaXNBTFApICYmICFpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiwgaXNBTFApKSB7XG5cdFx0aWYgKCFhbm5vdGF0aW9uRXhpc3RzSW5QcmVzZW50YXRpb25WYXJpYW50KHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLCBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSkpIHtcblx0XHRcdGNvbnN0IGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24gPSBwcmVwYXJlRGVmYXVsdFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtLFxuXHRcdFx0XHRiYXNlVmlzdWFsaXphdGlvblBhdGgsXG5cdFx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdCk7XG5cblx0XHRcdGlmIChkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uKSB7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIWFubm90YXRpb25FeGlzdHNJblByZXNlbnRhdGlvblZhcmlhbnQocHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24sIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0KSkge1xuXHRcdFx0Y29uc3QgZGVmYXVsdENoYXJ0QW5ub3RhdGlvbiA9IHByZXBhcmVEZWZhdWx0VmlzdWFsaXphdGlvbihVSUFubm90YXRpb25UZXJtcy5DaGFydCwgYmFzZVZpc3VhbGl6YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblxuXHRcdFx0aWYgKGRlZmF1bHRDaGFydEFubm90YXRpb24pIHtcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goZGVmYXVsdENoYXJ0QW5ub3RhdGlvbik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Y29uc3QgdmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5WaXN1YWxpemF0aW9ucztcblxuXHRjb25zdCBwdXNoRmlyc3RWaXpPZlR5cGUgPSBmdW5jdGlvbiAoYWxsb3dlZFRlcm1zOiBzdHJpbmdbXSkge1xuXHRcdGNvbnN0IGZpcnN0Vml6ID0gdmlzdWFsaXphdGlvbnM/LmZpbmQoKHZpeikgPT4ge1xuXHRcdFx0cmV0dXJuIGFsbG93ZWRUZXJtcy5pbmRleE9mKHZpei4kdGFyZ2V0Py50ZXJtKSA+PSAwO1xuXHRcdH0pO1xuXG5cdFx0aWYgKGZpcnN0Vml6KSB7XG5cdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb246IGZpcnN0Vml6LiR0YXJnZXQgYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7YmFzZVZpc3VhbGl6YXRpb25QYXRofSR7Zmlyc3RWaXoudmFsdWV9YCxcblx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9O1xuXG5cdGlmIChpc0FMUCkge1xuXHRcdC8vIEluIGNhc2Ugb2YgQUxQLCB3ZSB1c2UgdGhlIGZpcnN0IExpbmVJdGVtIGFuZCB0aGUgZmlyc3QgQ2hhcnRcblx0XHRwdXNoRmlyc3RWaXpPZlR5cGUoW1VJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtXSk7XG5cdFx0cHVzaEZpcnN0Vml6T2ZUeXBlKFtVSUFubm90YXRpb25UZXJtcy5DaGFydF0pO1xuXHR9IGVsc2Uge1xuXHRcdC8vIE90aGVyd2lzZSwgd2UgdXNlIHRoZSBmaXJzdCB2aXogb25seSAoQ2hhcnQgb3IgTGluZUl0ZW0pXG5cdFx0cHVzaEZpcnN0Vml6T2ZUeXBlKFtVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSwgVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnRdKTtcblx0fVxuXHRyZXR1cm4gdmlzdWFsaXphdGlvbkFubm90YXRpb25zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQoXG5cdGVudGl0eVR5cGU6IEVudGl0eVR5cGUsXG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgfCB1bmRlZmluZWQge1xuXHRpZiAoYW5ub3RhdGlvblBhdGgpIHtcblx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oYW5ub3RhdGlvblBhdGgpO1xuXHRcdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkFubm90YXRpb24gUGF0aCBmb3IgdGhlIFNQViBtZW50aW9uZWQgaW4gdGhlIG1hbmlmZXN0IGlzIG5vdCBmb3VuZCwgUGxlYXNlIGFkZCB0aGUgU1BWIGluIHRoZSBhbm5vdGF0aW9uXCIpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50KFxuXHRzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50OiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LFxuXHRpc0FMUDogYm9vbGVhblxuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHByZXNlbnRhdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ICYmIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0aWYgKHByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRyZXR1cm4gaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudCwgaXNBTFApO1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIlByZXNlbnRhdGlvbiBWYXJpYW50IGlzIG5vdCBwcmVzZW50IGluIHRoZSBTUFYgYW5ub3RhdGlvblwiKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudDogUHJlc2VudGF0aW9uVmFyaWFudFR5cGUsIGlzQUxQID0gZmFsc2UpOiBib29sZWFuIHtcblx0bGV0IGhhc1RhYmxlID0gZmFsc2UsXG5cdFx0aGFzQ2hhcnQgPSBmYWxzZTtcblx0aWYgKGlzQUxQKSB7XG5cdFx0aWYgKHByZXNlbnRhdGlvblZhcmlhbnQ/LlZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRjb25zdCB2aXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnM7XG5cdFx0XHR2aXN1YWxpemF0aW9ucy5mb3JFYWNoKCh2aXN1YWxpemF0aW9uKSA9PiB7XG5cdFx0XHRcdGlmICh2aXN1YWxpemF0aW9uLiR0YXJnZXQ/LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtKSB7XG5cdFx0XHRcdFx0aGFzVGFibGUgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh2aXN1YWxpemF0aW9uLiR0YXJnZXQ/LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0KSB7XG5cdFx0XHRcdFx0aGFzQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGhhc0NoYXJ0ICYmIGhhc1RhYmxlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Py5WaXN1YWxpemF0aW9ucyAmJlxuXHRcdFx0ISFwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zLmZpbmQoKHZpc3VhbGl6YXRpb24pID0+IHtcblx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uLiR0YXJnZXQ/LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtIHx8IHZpc3VhbGl6YXRpb24uJHRhcmdldD8udGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnRcblx0XHRcdFx0KTtcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdExpbmVJdGVtKGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5MaW5lSXRlbTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q2hhcnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IENoYXJ0IHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkNoYXJ0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBQcmVzZW50YXRpb25WYXJpYW50IHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5QcmVzZW50YXRpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IFNlbGVjdGlvblZhcmlhbnQgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblZhcmlhbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBTZWxlY3Rpb25WYXJpYW50VHlwZSB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCgpO1xuXHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlLCBhbm5vdGF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cdGxldCBzZWxlY3Rpb25WYXJpYW50O1xuXHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdHNlbGVjdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlNlbGVjdGlvblZhcmlhbnQgYXMgU2VsZWN0aW9uVmFyaWFudDtcblx0XHRpZiAoc2VsZWN0aW9uVmFyaWFudCkge1xuXHRcdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHNlbGVjdGlvblZhcmlhbnQgPSBnZXREZWZhdWx0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlKTtcblx0XHRyZXR1cm4gc2VsZWN0aW9uVmFyaWFudDtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uKFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50OiBib29sZWFuIHwgdW5kZWZpbmVkLFxuXHRpbkNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHZpZXdDb25maWd1cmF0aW9uPzogVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkLFxuXHRhc3NvY2lhdGVkUHJlc2VudGF0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmcsXG5cdGlzTWFjcm9Pck11bHRpcGxlVmlldz86IGJvb2xlYW5cbik6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID1cblx0XHR2aXN1YWxpemF0aW9uUGF0aCAhPT0gXCJcIlxuXHRcdFx0PyBpbkNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24odmlzdWFsaXphdGlvblBhdGgpXG5cdFx0XHQ6IHsgYW5ub3RhdGlvbjogdW5kZWZpbmVkLCBjb252ZXJ0ZXJDb250ZXh0OiBpbkNvbnZlcnRlckNvbnRleHQgfTtcblx0Y29uc3QgcmVzb2x2ZWRBc3NvY2lhdGVkUHJlc2VudGF0aW9uVmFyaWFudCA9IGFzc29jaWF0ZWRQcmVzZW50YXRpb25WYXJpYW50UGF0aFxuXHRcdD8gaW5Db252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGFzc29jaWF0ZWRQcmVzZW50YXRpb25WYXJpYW50UGF0aClcblx0XHQ6IG51bGw7XG5cdGNvbnN0IHJlc29sdmVkVmlzdWFsaXphdGlvbiA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0aW5Db252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblx0bGV0IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uczogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSA9IFtdO1xuXHRsZXQgcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlO1xuXHRsZXQgcHJlc2VudGF0aW9uUGF0aCA9IFwiXCI7XG5cdGxldCBjaGFydFZpc3VhbGl6YXRpb24sIHRhYmxlVmlzdWFsaXphdGlvbjtcblx0Y29uc3QgdGVybSA9IHJlc29sdmVkVmlzdWFsaXphdGlvbj8udGVybTtcblx0aWYgKHRlcm0pIHtcblx0XHRzd2l0Y2ggKHRlcm0pIHtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiA9IHJlc29sdmVkQXNzb2NpYXRlZFByZXNlbnRhdGlvblZhcmlhbnQ/LmFubm90YXRpb247XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uOiByZXNvbHZlZFZpc3VhbGl6YXRpb24gYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiB2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBpbkNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5QcmVzZW50YXRpb25WYXJpYW50OlxuXHRcdFx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiA9IHJlc29sdmVkVmlzdWFsaXphdGlvbjtcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gdmlzdWFsaXphdGlvbkFubm90YXRpb25zLmNvbmNhdChcblx0XHRcdFx0XHRnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50KFxuXHRcdFx0XHRcdFx0cmVzb2x2ZWRWaXN1YWxpemF0aW9uLFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRpbkNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRpc01hY3JvT3JNdWx0aXBsZVZpZXdcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50OlxuXHRcdFx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiA9IHJlc29sdmVkVmlzdWFsaXphdGlvbi5QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdFx0XHQvLyBQcmVzZW50YXRpb24gY2FuIGJlIGlubGluZSBvciBvdXRzaWRlIHRoZSBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0XHRcdHByZXNlbnRhdGlvblBhdGggPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWU7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChcblx0XHRcdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRpbkNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRpc01hY3JvT3JNdWx0aXBsZVZpZXdcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLmZvckVhY2goKHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uKSA9PiB7XG5cdFx0XHRjb25zdCB7IHZpc3VhbGl6YXRpb24sIGFubm90YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0IH0gPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbjtcblx0XHRcdHN3aXRjaCAodmlzdWFsaXphdGlvbi50ZXJtKSB7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ6XG5cdFx0XHRcdFx0Y2hhcnRWaXN1YWxpemF0aW9uID0gY3JlYXRlQ2hhcnRWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbixcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBUYWJsZS5jcmVhdGVUYWJsZVZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uLFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRcdFx0XHRpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50LFxuXHRcdFx0XHRcdFx0dmlld0NvbmZpZ3VyYXRpb25cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Y29uc3QgdmlzdWFsaXphdGlvbnM6IGFueSA9IFtdO1xuXHRsZXQgcGF0aCA9IHRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPyBwcmVzZW50YXRpb25QYXRoIDogcmVzb2x2ZWRWaXN1YWxpemF0aW9uPy5mdWxseVF1YWxpZmllZE5hbWU7XG5cdGlmIChwYXRoID09PSB1bmRlZmluZWQpIHtcblx0XHRwYXRoID0gXCIvXCI7XG5cdH1cblx0Y29uc3QgaXNBTFAgPSBpc0FscEFubm90YXRpb24oaW5Db252ZXJ0ZXJDb250ZXh0KTtcblxuXHRpZiAoIXRlcm0gfHwgKGlzQUxQICYmIHRhYmxlVmlzdWFsaXphdGlvbiA9PT0gdW5kZWZpbmVkKSkge1xuXHRcdHRhYmxlVmlzdWFsaXphdGlvbiA9IFRhYmxlLmNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24oaW5Db252ZXJ0ZXJDb250ZXh0LCBpc01hY3JvT3JNdWx0aXBsZVZpZXcgIT09IHRydWUpO1xuXHRcdGluQ29udmVydGVyQ29udGV4dC5nZXREaWFnbm9zdGljcygpLmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5NZWRpdW0sIElzc3VlVHlwZS5NSVNTSU5HX0xJTkVJVEVNKTtcblx0fVxuXHRpZiAoaXNBTFAgJiYgY2hhcnRWaXN1YWxpemF0aW9uID09PSB1bmRlZmluZWQpIHtcblx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVCbGFua0NoYXJ0VmlzdWFsaXphdGlvbihpbkNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGluQ29udmVydGVyQ29udGV4dC5nZXREaWFnbm9zdGljcygpLmFkZElzc3VlKElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgSXNzdWVTZXZlcml0eS5NZWRpdW0sIElzc3VlVHlwZS5NSVNTSU5HX0NIQVJUKTtcblx0fVxuXG5cdGlmIChjaGFydFZpc3VhbGl6YXRpb24pIHtcblx0XHR2aXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdHZpc3VhbGl6YXRpb25zLnB1c2godGFibGVWaXN1YWxpemF0aW9uKTtcblx0fVxuXHRyZXR1cm4ge1xuXHRcdHZpc3VhbGl6YXRpb25zOiB2aXN1YWxpemF0aW9ucyxcblx0XHRhbm5vdGF0aW9uUGF0aDogaW5Db252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgocGF0aClcblx0fTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjb250ZXh0IG9mIHRoZSBVSSBjb250cm9scyAoZWl0aGVyIGEgVUkuTGluZUl0ZW0sIG9yIGEgVUkuQ2hhcnQpLlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgZ2V0VWlDb250cm9sXG4gKiBAcGFyYW0gcHJlc2VudGF0aW9uQ29udGV4dCBPYmplY3Qgb2YgdGhlIHByZXNlbnRhdGlvbiBjb250ZXh0IChlaXRoZXIgYSBwcmVzZW50YXRpb24gdmFyaWFudCwgb3IgYSBVSS5MaW5lSXRlbSwgb3IgYSBVSS5DaGFydClcbiAqIEBwYXJhbSBjb250cm9sUGF0aCBDb250cm9sIHBhdGhcbiAqIEByZXR1cm5zIFRoZSBjb250ZXh0IG9mIHRoZSBjb250cm9sIChlaXRoZXIgYSBVSS5MaW5lSXRlbSwgb3IgYSBVSS5DaGFydClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVpQ29udHJvbChwcmVzZW50YXRpb25Db250ZXh0OiBDb250ZXh0LCBjb250cm9sUGF0aDogc3RyaW5nKTogQ29udGV4dCB7XG5cdENvbW1vbkhlbHBlci52YWxpZGF0ZVByZXNlbnRhdGlvbk1ldGFQYXRoKHByZXNlbnRhdGlvbkNvbnRleHQuZ2V0UGF0aCgpLCBjb250cm9sUGF0aCk7XG5cblx0Y29uc3QgcHJlc2VudGF0aW9uID0gTWV0YU1vZGVsQ29udmVydGVyLmNvbnZlcnRNZXRhTW9kZWxDb250ZXh0KHByZXNlbnRhdGlvbkNvbnRleHQpLFxuXHRcdHByZXNlbnRhdGlvblZhcmlhbnRQYXRoID0gQ29tbW9uSGVscGVyLmNyZWF0ZVByZXNlbnRhdGlvblBhdGhDb250ZXh0KHByZXNlbnRhdGlvbkNvbnRleHQpLFxuXHRcdG1vZGVsID0gcHJlc2VudGF0aW9uQ29udGV4dC5nZXRNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRpZiAocHJlc2VudGF0aW9uKSB7XG5cdFx0aWYgKENvbW1vbkhlbHBlci5faXNQcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbihwcmVzZW50YXRpb25WYXJpYW50UGF0aC5nZXRQYXRoKCkpKSB7XG5cdFx0XHRjb25zdCB2aXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvbi5QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0XHRcdD8gcHJlc2VudGF0aW9uLlByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnNcblx0XHRcdFx0OiBwcmVzZW50YXRpb24uVmlzdWFsaXphdGlvbnM7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheSh2aXN1YWxpemF0aW9ucykpIHtcblx0XHRcdFx0Zm9yIChjb25zdCB2aXN1YWxpemF0aW9uIG9mIHZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbi50eXBlID09IFwiQW5ub3RhdGlvblBhdGhcIiAmJlxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbi52YWx1ZS5pbmRleE9mKGNvbnRyb2xQYXRoKSAhPT0gLTEgJiZcblx0XHRcdFx0XHRcdC8vIGNoZWNrIGlmIG9iamVjdCBleGlzdHMgZm9yIFByZXNlbnRhdGlvblZhcmlhbnQgdmlzdWFsaXphdGlvblxuXHRcdFx0XHRcdFx0ISFtb2RlbC5nZXRNZXRhQ29udGV4dChwcmVzZW50YXRpb25Db250ZXh0LmdldFBhdGgoKS5zcGxpdChcIkBcIilbMF0gKyB2aXN1YWxpemF0aW9uLnZhbHVlKS5nZXRPYmplY3QoKVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0Y29udHJvbFBhdGggPSB2aXN1YWxpemF0aW9uLnZhbHVlO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBwcmVzZW50YXRpb25Db250ZXh0O1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBtb2RlbC5nZXRNZXRhQ29udGV4dChwcmVzZW50YXRpb25Db250ZXh0LmdldFBhdGgoKS5zcGxpdChcIkBcIilbMF0gKyBjb250cm9sUGF0aCk7XG59XG5cbmV4cG9ydCBjb25zdCBhbm5vdGF0aW9uRXhpc3RzSW5QcmVzZW50YXRpb25WYXJpYW50ID0gZnVuY3Rpb24gKFxuXHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdGFubm90YXRpb25UZXJtOiBQcmVzZW50YXRpb25WaXN1YWxpemF0aW9uQW5ub3RhdGlvbnNcbik6IGJvb2xlYW4ge1xuXHRyZXR1cm4gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24uVmlzdWFsaXphdGlvbnM/LnNvbWUoKHZpc3VhbGl6YXRpb24pID0+IHZpc3VhbGl6YXRpb24udmFsdWUuaW5kZXhPZihhbm5vdGF0aW9uVGVybSkgPiAtMSkgPz8gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgcHJlcGFyZURlZmF1bHRWaXN1YWxpemF0aW9uID0gZnVuY3Rpb24gKFxuXHR2aXN1YWxpemF0aW9uVHlwZTogUHJlc2VudGF0aW9uVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRiYXNlVmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogVmlzdWFsaXphdGlvbkFuZFBhdGggfCB1bmRlZmluZWQge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IGRlZmF1bHRBbm5vdGF0aW9uID1cblx0XHR2aXN1YWxpemF0aW9uVHlwZSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW0gPyBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSkgOiBnZXREZWZhdWx0Q2hhcnQoZW50aXR5VHlwZSk7XG5cblx0aWYgKGRlZmF1bHRBbm5vdGF0aW9uKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHZpc3VhbGl6YXRpb246IGRlZmF1bHRBbm5vdGF0aW9uLFxuXHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2Jhc2VWaXN1YWxpemF0aW9uUGF0aH0ke2NvbnZlcnRlckNvbnRleHQuZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0ZGVmYXVsdEFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRlbnRpdHlUeXBlXG5cdFx0XHQpfWAsXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0fTtcblx0fVxuXG5cdHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNBbHBBbm5vdGF0aW9uID0gZnVuY3Rpb24gKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBib29sZWFuIHtcblx0cmV0dXJuIChcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMoKSB8fFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2Vcblx0KTtcbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0VBMENPLE1BQU1BLHdDQUF3QyxHQUFHLFVBQ3ZEQyw2QkFBc0QsRUFDdERDLGlCQUF5QixFQUN6QkMs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
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/helpers/IssueManager","sap/fe/macros/CommonHelper","../../ManifestSettings","./Chart","./Table"],function(t,n,e,a,i){"use strict";var o={};var r=a.createChartVisualization;var s=e.TemplateType;var l=t.IssueType;var u=t.IssueSeverity;var c=t.IssueCategory;const v=function(t,n,e,a){const i=[];const o=e.getManifestWrapper().hasMultipleVisualizations()||e.getTemplateType()===s.AnalyticalListPage;const r=n.split("@")[0];if(a&&!m(t,o)){const t=e.getEntityType();const n=p(t);if(n){i.push({visualization:n,annotationPath:`${r}${e.getRelativeAnnotationPath(n.fullyQualifiedName,t)}`,converterContext:e})}}const l=t.Visualizations;const u=function(t){const n=l===null||l===void 0?void 0:l.find(n=>{var e;return t.indexOf((e=n.$target)===null||e===void 0?void 0:e.term)>=0});if(n){i.push({visualization:n.$target,annotationPath:`${r}${n.value}`,converterContext:e})}};if(o){u(["com.sap.vocabularies.UI.v1.LineItem"]);u(["com.sap.vocabularies.UI.v1.Chart"])}else{u(["com.sap.vocabularies.UI.v1.LineItem","com.sap.vocabularies.UI.v1.Chart"])}return i};o.getVisualizationsFromPresentationVariant=v;function f(t,n,e){if(n){const t=e.getEntityTypeAnnotation(n);const a=t.annotation;if(a){if(a.term==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"){return a}}else{throw new Error("Annotation Path for the SPV mentioned in the manifest is not found, Please add the SPV in the annotation")}}else{var a,i;return(a=t.annotations)===null||a===void 0?void 0:(i=a.UI)===null||i===void 0?void 0:i.SelectionPresentationVariant}}o.getSelectionPresentationVariant=f;function d(t,n){const e=t&&t.PresentationVariant;if(e){return m(e,n)}else{throw new Error("Presentation Variant is not present in the SPV annotation")}}o.isSelectionPresentationCompliant=d;function m(t){let n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let e=false,a=false;if(n){if(t!==null&&t!==void 0&&t.Visualizations){const n=t.Visualizations;n.forEach(t=>{var n,i;if(((n=t.$target)===null||n===void 0?void 0:n.term)==="com.sap.vocabularies.UI.v1.LineItem"){e=true}if(((i=t.$target)===null||i===void 0?void 0:i.term)==="com.sap.vocabularies.UI.v1.Chart"){a=true}})}return a&&e}else{return(t===null||t===void 0?void 0:t.Visualizations)&&!!t.Visualizations.find(t=>{var n,e;return((n=t.$target)===null||n===void 0?void 0:n.term)==="com.sap.vocabularies.UI.v1.LineItem"||((e=t.$target)===null||e===void 0?void 0:e.term)==="com.sap.vocabularies.UI.v1.Chart"})}}o.isPresentationCompliant=m;function p(t){var n;return(n=t.annotations.UI)===null||n===void 0?void 0:n.LineItem}o.getDefaultLineItem=p;function h(t){var n;return(n=t.annotations.UI)===null||n===void 0?void 0:n.Chart}o.getDefaultChart=h;function g(t){var n,e;return(n=t.annotations)===null||n===void 0?void 0:(e=n.UI)===null||e===void 0?void 0:e.PresentationVariant}o.getDefaultPresentationVariant=g;function I(t){var n,e;return(n=t.annotations)===null||n===void 0?void 0:(e=n.UI)===null||e===void 0?void 0:e.SelectionVariant}o.getDefaultSelectionVariant=I;function P(t,n){const e=n.getManifestWrapper().getDefaultTemplateAnnotationPath();const a=f(t,e,n);let i;if(a){i=a.SelectionVariant;if(i){return i}}else{i=I(t);return i}}o.getSelectionVariant=P;function V(t,n,e,a,o,s,f){const d=t!==""?e.getEntityTypeAnnotation(t):{annotation:undefined,converterContext:e};const m=s?e.getEntityTypeAnnotation(s):null;const p=d.annotation;e=d.converterContext;let h=[];let g;let I="";let P,V;const b=p===null||p===void 0?void 0:p.term;if(b){switch(b){case"com.sap.vocabularies.UI.v1.LineItem":case"com.sap.vocabularies.UI.v1.Chart":g=m===null||m===void 0?void 0:m.annotation;h.push({visualization:p,annotationPath:t,converterContext:e});break;case"com.sap.vocabularies.UI.v1.PresentationVariant":g=p;h=h.concat(v(p,t,e,f));break;case"com.sap.vocabularies.UI.v1.SelectionPresentationVariant":g=p.PresentationVariant;I=g.fullyQualifiedName;h=h.concat(v(g,t,e,f));break;default:break}h.forEach(t=>{const{visualization:e,annotationPath:s,converterContext:l}=t;switch(e.term){case"com.sap.vocabularies.UI.v1.Chart":P=r(e,s,l,o);break;case"com.sap.vocabularies.UI.v1.LineItem":default:V=i.createTableVisualization(e,s,l,g,n,a);break}})}else{V=i.createDefaultTableVisualization(e,!f);e.getDiagnostics().addIssue(c.Annotation,u.Medium,l.MISSING_LINEITEM)}const C=[];let U=b==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"?I:p&&p.fullyQualifiedName;if(U===undefined){U="/"}if(P){C.push(P)}if(V){C.push(V)}return{visualizations:C,annotationPath:e.getEntitySetBasedAnnotationPath(U)}}o.getDataVisualizationConfiguration=V;function b(t,e){const a=t.getObject(t.getPath()),i=n.createPresentationPathContext(t),o=t.getModel();if(n._isPresentationVariantAnnotation(i.getPath())){const n=a.Visualizations;if(Array.isArray(n)){for(let t=0;t<n.length;t++){if(n[t].$AnnotationPath.indexOf(e)!==-1){e=n[t].$AnnotationPath;break}}}return o.getMetaContext(t.getPath().split("@")[0]+e)}return t}o.getUiControl=b;return o},false);
5
+ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager","sap/fe/core/converters/MetaModelConverter","sap/fe/macros/CommonHelper","../../ManifestSettings","./Chart","./Table"],function(t,n,e,a,i,o){"use strict";var r={};var s=i.createChartVisualization;var l=i.createBlankChartVisualization;var u=a.TemplateType;var c=t.IssueType;var v=t.IssueSeverity;var f=t.IssueCategory;const d=function(t,n,e,a){const i=[];const o=S(e);const r=n.split("@")[0];if((a===true||o)&&!I(t,o)){if(!y(t,"com.sap.vocabularies.UI.v1.LineItem")){const t=z("com.sap.vocabularies.UI.v1.LineItem",r,e);if(t){i.push(t)}}if(!y(t,"com.sap.vocabularies.UI.v1.Chart")){const t=z("com.sap.vocabularies.UI.v1.Chart",r,e);if(t){i.push(t)}}}const s=t.Visualizations;const l=function(t){const n=s===null||s===void 0?void 0:s.find(n=>{var e;return t.indexOf((e=n.$target)===null||e===void 0?void 0:e.term)>=0});if(n){i.push({visualization:n.$target,annotationPath:`${r}${n.value}`,converterContext:e})}};if(o){l(["com.sap.vocabularies.UI.v1.LineItem"]);l(["com.sap.vocabularies.UI.v1.Chart"])}else{l(["com.sap.vocabularies.UI.v1.LineItem","com.sap.vocabularies.UI.v1.Chart"])}return i};r.getVisualizationsFromPresentationVariant=d;function p(t,n,e){if(n){const t=e.getEntityTypeAnnotation(n);const a=t.annotation;if(a){if(a.term==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"){return a}}else{throw new Error("Annotation Path for the SPV mentioned in the manifest is not found, Please add the SPV in the annotation")}}else{var a,i;return(a=t.annotations)===null||a===void 0?void 0:(i=a.UI)===null||i===void 0?void 0:i.SelectionPresentationVariant}}r.getSelectionPresentationVariant=p;function m(t,n){const e=t&&t.PresentationVariant;if(e){return I(e,n)}else{throw new Error("Presentation Variant is not present in the SPV annotation")}}r.isSelectionPresentationCompliant=m;function I(t){let n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let e=false,a=false;if(n){if(t!==null&&t!==void 0&&t.Visualizations){const n=t.Visualizations;n.forEach(t=>{var n,i;if(((n=t.$target)===null||n===void 0?void 0:n.term)==="com.sap.vocabularies.UI.v1.LineItem"){e=true}if(((i=t.$target)===null||i===void 0?void 0:i.term)==="com.sap.vocabularies.UI.v1.Chart"){a=true}})}return a&&e}else{return(t===null||t===void 0?void 0:t.Visualizations)&&!!t.Visualizations.find(t=>{var n,e;return((n=t.$target)===null||n===void 0?void 0:n.term)==="com.sap.vocabularies.UI.v1.LineItem"||((e=t.$target)===null||e===void 0?void 0:e.term)==="com.sap.vocabularies.UI.v1.Chart"})}}r.isPresentationCompliant=I;function h(t){var n;return(n=t.annotations.UI)===null||n===void 0?void 0:n.LineItem}r.getDefaultLineItem=h;function g(t){var n;return(n=t.annotations.UI)===null||n===void 0?void 0:n.Chart}r.getDefaultChart=g;function P(t){var n,e;return(n=t.annotations)===null||n===void 0?void 0:(e=n.UI)===null||e===void 0?void 0:e.PresentationVariant}r.getDefaultPresentationVariant=P;function V(t){var n,e;return(n=t.annotations)===null||n===void 0?void 0:(e=n.UI)===null||e===void 0?void 0:e.SelectionVariant}r.getDefaultSelectionVariant=V;function b(t,n){const e=n.getManifestWrapper().getDefaultTemplateAnnotationPath();const a=p(t,e,n);let i;if(a){i=a.SelectionVariant;if(i){return i}}else{i=V(t);return i}}r.getSelectionVariant=b;function C(t,n,e,a,i,r,u){const p=t!==""?e.getEntityTypeAnnotation(t):{annotation:undefined,converterContext:e};const m=r?e.getEntityTypeAnnotation(r):null;const I=p.annotation;e=p.converterContext;let h=[];let g;let P="";let V,b;const C=I===null||I===void 0?void 0:I.term;if(C){switch(C){case"com.sap.vocabularies.UI.v1.LineItem":case"com.sap.vocabularies.UI.v1.Chart":g=m===null||m===void 0?void 0:m.annotation;h.push({visualization:I,annotationPath:t,converterContext:e});break;case"com.sap.vocabularies.UI.v1.PresentationVariant":g=I;h=h.concat(d(I,t,e,u));break;case"com.sap.vocabularies.UI.v1.SelectionPresentationVariant":g=I.PresentationVariant;P=g.fullyQualifiedName;h=h.concat(d(g,t,e,u));break;default:break}h.forEach(t=>{const{visualization:e,annotationPath:r,converterContext:l}=t;switch(e.term){case"com.sap.vocabularies.UI.v1.Chart":V=s(e,r,l,i,a);break;case"com.sap.vocabularies.UI.v1.LineItem":default:b=o.createTableVisualization(e,r,l,g,n,a);break}})}const U=[];let y=C==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"?P:I===null||I===void 0?void 0:I.fullyQualifiedName;if(y===undefined){y="/"}const z=S(e);if(!C||z&&b===undefined){b=o.createDefaultTableVisualization(e,u!==true);e.getDiagnostics().addIssue(f.Annotation,v.Medium,c.MISSING_LINEITEM)}if(z&&V===undefined){V=l(e);e.getDiagnostics().addIssue(f.Annotation,v.Medium,c.MISSING_CHART)}if(V){U.push(V)}if(b){U.push(b)}return{visualizations:U,annotationPath:e.getEntitySetBasedAnnotationPath(y)}}r.getDataVisualizationConfiguration=C;function U(t,a){e.validatePresentationMetaPath(t.getPath(),a);const i=n.convertMetaModelContext(t),o=e.createPresentationPathContext(t),r=t.getModel();if(i){if(e._isPresentationVariantAnnotation(o.getPath())){const n=i.PresentationVariant?i.PresentationVariant.Visualizations:i.Visualizations;if(Array.isArray(n)){for(const e of n){if(e.type=="AnnotationPath"&&e.value.indexOf(a)!==-1&&!!r.getMetaContext(t.getPath().split("@")[0]+e.value).getObject()){a=e.value;break}}}}else{return t}}return r.getMetaContext(t.getPath().split("@")[0]+a)}r.getUiControl=U;const y=function(t,n){var e;return((e=t.Visualizations)===null||e===void 0?void 0:e.some(t=>t.value.indexOf(n)>-1))??false};r.annotationExistsInPresentationVariant=y;const z=function(t,n,e){const a=e.getEntityType();const i=t==="com.sap.vocabularies.UI.v1.LineItem"?h(a):g(a);if(i){return{visualization:i,annotationPath:`${n}${e.getRelativeAnnotationPath(i.fullyQualifiedName,a)}`,converterContext:e}}return undefined};r.prepareDefaultVisualization=z;const S=function(t){return t.getManifestWrapper().hasMultipleVisualizations()||t.getTemplateType()===u.AnalyticalListPage};r.isAlpAnnotation=S;return r},false);
6
6
  //# sourceMappingURL=DataVisualization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataVisualization.js","names":["sap","ui","define","IssueManager","CommonHelper","ManifestSettings","Chart","Table","_exports","createChartVisualization","TemplateType","IssueType","IssueSeverity","IssueCategory","getVisualizationsFromPresentationVariant","presentationVariantAnnotation","visualizationPath","converterContext","isMacroOrMultipleView","visualizationAnnotations","bIsALP","getManifestWrapper","hasMultipleVisualizations","getTemplateType","AnalyticalListPage","baseVisualizationPath","split","isPresentationCompliant","entityType","getEntityType","defaultLineItemAnnotation","getDefaultLineItem","push","visualization","annotationPath","getRelativeAnnotationPath","fullyQualifiedName","visualizations","Visualizations","pushFirstVizOfType","allowedTerms","firstViz","find","viz","_viz$$target","indexOf","$target","term","value","getSelectionPresentationVariant","resolvedTarget","getEntityTypeAnnotation","selectionPresentationVariant","annotation","Error","_entityType$annotatio","_entityType$annotatio2","annotations","UI","SelectionPresentationVariant","isSelectionPresentationCompliant","presentationVariant","PresentationVariant","arguments","length","undefined","bHasTable","bHasChart","aVisualizations","forEach","oVisualization","_oVisualization$$targ","_oVisualization$$targ2","_visualization$$targe","_visualization$$targe2","_entityType$annotatio3","LineItem","getDefaultChart","_entityType$annotatio4","getDefaultPresentationVariant","_entityType$annotatio5","_entityType$annotatio6","getDefaultSelectionVariant","_entityType$annotatio7","_entityType$annotatio8","SelectionVariant","getSelectionVariant","getDefaultTemplateAnnotationPath","selectionVariant","getDataVisualizationConfiguration","isCondensedTableLayoutCompliant","inConverterContext","viewConfiguration","doNotCheckApplySupported","associatedPresentationVariantPath","resolvedAssociatedPresentationVariant","resolvedVisualization","presentationPath","chartVisualization","tableVisualization","sTerm","concat","visualizationAnnotation","createTableVisualization","createDefaultTableVisualization","getDiagnostics","addIssue","Annotation","Medium","MISSING_LINEITEM","sPath","getEntitySetBasedAnnotationPath","getUiControl","oPresentationContext","sControlPath","oPresentation","getObject","getPath","oPresentationVariantPath","createPresentationPathContext","oModel","getModel","_isPresentationVariantAnnotation","Array","isArray","i","$AnnotationPath","getMetaContext"],"sources":["DataVisualization-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"DataVisualization.js","names":["sap","ui","define","IssueManager","MetaModelConverter","CommonHelper","ManifestSettings","Chart","Table","_exports","createChartVisualization","createBlankChartVisualization","TemplateType","IssueType","IssueSeverity","IssueCategory","getVisualizationsFromPresentationVariant","presentationVariantAnnotation","visualizationPath","converterContext","isMacroOrMultipleView","visualizationAnnotations","isALP","isAlpAnnotation","baseVisualizationPath","split","isPresentationCompliant","annotationExistsInPresentationVariant","defaultLineItemAnnotation","prepareDefaultVisualization","push","defaultChartAnnotation","visualizations","Visualizations","pushFirstVizOfType","allowedTerms","firstViz","find","viz","_viz$$target","indexOf","$target","term","visualization","annotationPath","value","getSelectionPresentationVariant","entityType","resolvedTarget","getEntityTypeAnnotation","selectionPresentationVariant","annotation","Error","_entityType$annotatio","_entityType$annotatio2","annotations","UI","SelectionPresentationVariant","isSelectionPresentationCompliant","presentationVariant","PresentationVariant","arguments","length","undefined","hasTable","hasChart","forEach","_visualization$$targe","_visualization$$targe2","_visualization$$targe3","_visualization$$targe4","getDefaultLineItem","_entityType$annotatio3","LineItem","getDefaultChart","_entityType$annotatio4","getDefaultPresentationVariant","_entityType$annotatio5","_entityType$annotatio6","getDefaultSelectionVariant","_entityType$annotatio7","_entityType$annotatio8","SelectionVariant","getSelectionVariant","getManifestWrapper","getDefaultTemplateAnnotationPath","selectionVariant","getDataVisualizationConfiguration","isCondensedTableLayoutCompliant","inConverterContext","viewConfiguration","doNotCheckApplySupported","associatedPresentationVariantPath","resolvedAssociatedPresentationVariant","resolvedVisualization","presentationPath","chartVisualization","tableVisualization","concat","fullyQualifiedName","visualizationAnnotation","createTableVisualization","path","createDefaultTableVisualization","getDiagnostics","addIssue","Annotation","Medium","MISSING_LINEITEM","MISSING_CHART","getEntitySetBasedAnnotationPath","getUiControl","presentationContext","controlPath","validatePresentationMetaPath","getPath","presentation","convertMetaModelContext","presentationVariantPath","createPresentationPathContext","model","getModel","_isPresentationVariantAnnotation","Array","isArray","type","getMetaContext","getObject","annotationTerm","_presentationVariantA","some","visualizationType","getEntityType","defaultAnnotation","getRelativeAnnotationPath","hasMultipleVisualizations","getTemplateType","AnalyticalListPage"],"sources":["DataVisualization-dbg.js"],"mappings":"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"}