@sap/open.fe 1.99.0 → 1.100.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 (969) hide show
  1. package/package.json +1 -1
  2. package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
  3. package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
  4. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +1748 -1813
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +2 -3
  6. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.ts +1801 -0
  7. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter-dbg.js +77 -32
  8. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.js +2 -3
  9. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.ts +26 -0
  10. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +43 -53
  11. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +2 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.ts +39 -0
  13. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +31 -38
  14. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +8 -9
  15. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js.map +3 -3
  16. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +23 -71
  17. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +4 -4
  18. package/packages/sap.fe.common/src/sap/fe/common/library.js +4 -5
  19. package/packages/sap.fe.common/src/sap/fe/common/library.ts +35 -0
  20. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  21. package/packages/sap.fe.common/src/sap/fe/common/resources.json +54 -32
  22. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  23. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  24. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jsmeta.json +1 -1
  25. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  26. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  27. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  28. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +1 -69
  29. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
  30. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.ts +0 -70
  31. package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +388 -399
  32. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +2 -3
  33. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.ts +403 -0
  34. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +127 -158
  35. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +1 -1
  36. package/packages/sap.fe.core/src/sap/fe/core/BaseController-dbg.js +82 -58
  37. package/packages/sap.fe.core/src/sap/fe/core/BaseController.js +2 -3
  38. package/packages/sap.fe.core/src/sap/fe/core/BaseController.ts +68 -0
  39. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +111 -20
  40. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  41. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.ts +131 -32
  42. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +278 -274
  43. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +2 -3
  44. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.ts +250 -0
  45. package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +157 -29
  46. package/packages/sap.fe.core/src/sap/fe/core/PageController.js +1 -1
  47. package/packages/sap.fe.core/src/sap/fe/core/PageController.ts +60 -32
  48. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +694 -756
  49. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  50. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.ts +11 -9
  51. package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +21 -31
  52. package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +1 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  54. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.ts +10 -3
  55. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +20 -38
  56. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +1 -1
  57. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.ts +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1354 -1370
  59. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.ts +33 -22
  61. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync-dbg.js +392 -0
  62. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync.js +5 -0
  63. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
  64. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon-dbg.js +136 -0
  65. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +5 -0
  66. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
  67. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage-dbg.js +262 -0
  68. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage.js +5 -0
  69. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
  70. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
  71. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  72. package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +30 -68
  73. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +1 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.ts +44 -71
  75. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +55 -36
  76. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  77. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.ts +66 -46
  78. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +34 -15
  79. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  80. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.ts +48 -18
  81. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +17 -4
  82. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +1 -1
  83. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.ts +21 -4
  84. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata-dbg.js +69 -66
  85. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +2 -3
  86. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1593 -1669
  88. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +2 -3
  89. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
  90. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +79 -54
  91. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -3
  92. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
  93. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +718 -779
  94. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +2 -3
  95. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
  96. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +796 -816
  97. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +2 -3
  98. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
  99. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +1004 -1005
  100. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +2 -3
  101. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
  102. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +487 -521
  103. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
  104. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
  105. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +141 -169
  106. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +2 -3
  107. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
  108. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +233 -244
  109. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -3
  110. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +301 -336
  112. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  113. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
  114. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +188 -175
  115. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +2 -3
  116. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
  117. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +157 -149
  118. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +2 -3
  119. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
  120. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +144 -125
  121. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +2 -3
  122. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
  123. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +7 -6
  124. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.js +2 -3
  125. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  126. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +230 -268
  127. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +2 -3
  128. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +592 -633
  130. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  131. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
  132. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +788 -806
  133. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +2 -3
  134. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
  135. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
  136. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  137. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution-dbg.js +67 -66
  138. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.js +2 -3
  139. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  140. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +90 -75
  141. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.js +2 -3
  142. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
  143. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +130 -125
  144. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -3
  145. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
  146. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +103 -112
  147. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +2 -3
  148. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
  149. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +122 -135
  150. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +2 -3
  151. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
  152. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar-dbg.js +162 -159
  153. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.js +2 -3
  154. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.ts +143 -0
  155. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +45 -39
  156. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +2 -3
  157. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
  158. package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -42
  159. package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -2
  160. package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  161. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +126 -116
  162. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -3
  163. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
  164. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +241 -255
  165. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -3
  166. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
  167. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -141
  168. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -3
  169. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  170. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +335 -322
  171. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -3
  172. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  173. package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +74 -74
  174. package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -3
  175. package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
  176. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +348 -379
  177. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
  178. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +19 -16
  179. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +12 -1
  180. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  181. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
  182. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +354 -378
  183. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  184. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
  185. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +6 -4
  186. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  187. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
  188. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +1 -1
  189. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  190. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +26 -12
  191. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  192. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
  193. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +2 -2
  194. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  195. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
  196. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +1 -1
  197. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
  198. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -23
  199. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  200. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
  201. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +118 -53
  202. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  203. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
  204. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +161 -207
  205. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  206. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
  207. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +115 -133
  208. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  209. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +20 -6
  210. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
  211. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  212. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +12 -1
  213. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  214. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key-dbg.js +42 -57
  215. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.js +1 -1
  216. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  217. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +25 -4
  218. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  219. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
  220. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +10 -4
  221. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  222. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
  223. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +7 -5
  224. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  225. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
  226. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +92 -98
  227. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +2 -3
  228. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  229. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +2 -3
  230. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +3 -3
  231. package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +104 -0
  232. package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter.js +5 -0
  233. package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  234. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +53 -2
  235. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  236. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
  237. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component-dbg.js +50 -54
  238. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.js +2 -3
  239. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.ts +48 -0
  240. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  241. package/packages/sap.fe.core/src/sap/fe/core/fpm/resources.json +7 -3
  242. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +323 -309
  243. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  244. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
  245. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +7 -7
  246. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
  247. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
  248. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +186 -62
  249. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +1 -1
  250. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
  251. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +5 -4
  252. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
  253. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
  254. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +1 -1
  255. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
  256. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +601 -684
  257. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +2 -3
  258. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
  259. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +25 -1
  260. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  261. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
  262. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +5 -1
  263. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  264. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
  265. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +426 -451
  266. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +36 -32
  267. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +3 -3
  268. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +644 -738
  269. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  270. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +24 -35
  271. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +2 -2
  272. package/packages/sap.fe.core/src/sap/fe/core/library.js +2 -3
  273. package/packages/sap.fe.core/src/sap/fe/core/library.support.js +22 -33
  274. package/packages/sap.fe.core/src/sap/fe/core/library.support.ts +23 -0
  275. package/packages/sap.fe.core/src/sap/fe/core/library.ts +420 -0
  276. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  277. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +5 -3
  278. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  279. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
  280. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +22 -5
  281. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +27 -7
  282. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +27 -7
  283. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +27 -7
  284. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +27 -7
  285. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +27 -7
  286. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +27 -7
  287. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +27 -7
  288. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +27 -7
  289. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +27 -7
  290. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
  291. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
  292. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
  293. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
  294. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +27 -7
  295. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
  296. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +27 -7
  297. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +28 -8
  298. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +28 -8
  299. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
  300. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +27 -7
  301. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +27 -7
  302. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +27 -7
  303. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +27 -7
  304. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +27 -7
  305. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +27 -7
  306. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +26 -6
  307. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +27 -7
  308. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +27 -7
  309. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +27 -7
  310. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +28 -8
  311. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +27 -7
  312. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +27 -7
  313. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +27 -7
  314. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +27 -7
  315. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +28 -8
  316. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
  317. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +27 -7
  318. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +27 -7
  319. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +27 -7
  320. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +27 -7
  321. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +27 -7
  322. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +27 -7
  323. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +26 -6
  324. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +30 -10
  325. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +27 -7
  326. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +27 -7
  327. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
  328. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
  329. package/packages/sap.fe.core/src/sap/fe/core/resources.json +745 -384
  330. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +45 -71
  331. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  332. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +154 -192
  333. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
  334. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
  335. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +66 -92
  336. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  337. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
  338. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +284 -339
  339. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  340. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
  341. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +67 -102
  342. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  343. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
  344. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +754 -814
  345. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  346. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
  347. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +649 -736
  348. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  349. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
  350. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +567 -592
  351. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  352. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
  353. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +354 -386
  354. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  355. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
  356. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +1 -1
  357. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  358. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper-dbg.js +1 -1
  359. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.ts +1 -1
  360. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics-dbg.js +36 -48
  361. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.js +1 -1
  362. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +93 -85
  363. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  364. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
  365. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +25 -32
  366. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
  367. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +36 -35
  368. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +2 -2
  369. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  370. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
  371. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
  372. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
  373. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +37 -24
  374. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1664 -1
  375. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  376. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
  377. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
  378. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  379. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +59 -0
  380. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/RootEntity.json +1 -1
  381. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/Component.js +33 -0
  382. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/FieldMessages.controller.js +34 -0
  383. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/FieldMessages.view.xml +18 -0
  384. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/localService/Entities.json +6 -0
  385. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/localService/service.cds +6 -0
  386. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/manifest.json +68 -0
  387. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldMessages.html +37 -0
  388. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.controller.js +1 -0
  389. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +7 -2
  390. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +9 -3
  391. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.js +23 -0
  392. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.ts +11 -0
  393. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/service.cds +11 -23
  394. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/Component.js +40 -0
  395. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/TableMessages.controller.js +35 -0
  396. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/TableMessages.view.xml +21 -0
  397. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/localService/RootEntity.json +82 -0
  398. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/localService/service.cds +82 -0
  399. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/manifest.json +78 -0
  400. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableMessages.html +37 -0
  401. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/ChildEntity.json +5 -4
  402. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +3 -0
  403. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/App.view.xml +1 -1
  404. package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.js +1 -169
  405. package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.ts +0 -212
  406. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +2305 -119
  407. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.ts +2206 -67
  408. package/packages/sap.fe.core/test/sap/fe/core/jest/FilterUtils.spec.js +40 -0
  409. package/packages/sap.fe.core/test/sap/fe/core/jest/FilterUtils.spec.ts +34 -0
  410. package/packages/sap.fe.core/test/sap/fe/core/jest/FlexibleColumnLayout.spec.js +114 -0
  411. package/packages/sap.fe.core/test/sap/fe/core/jest/FlexibleColumnLayout.spec.ts +114 -0
  412. package/packages/sap.fe.core/test/sap/fe/core/jest/Paginators.spec.js +113 -0
  413. package/packages/sap.fe.core/test/sap/fe/core/jest/Paginators.spec.ts +78 -0
  414. package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.js +599 -1
  415. package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.ts +614 -0
  416. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +23 -5
  417. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +26 -14
  418. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +87 -1
  419. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.ts +82 -1
  420. package/packages/sap.fe.core/test/sap/fe/core/jest/VisualFilterUtils.spec.js +124 -0
  421. package/packages/sap.fe.core/test/sap/fe/core/jest/VisualFilterUtils.spec.ts +141 -0
  422. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +34768 -67
  423. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/ActivitySync.spec.js +170 -0
  424. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/ActivitySync.spec.ts +155 -0
  425. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/CollaborationCommon.spec.js +101 -0
  426. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/CollaborationCommon.spec.ts +94 -0
  427. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/Manage.spec.js +82 -0
  428. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/Manage.spec.ts +77 -0
  429. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.js +2 -2
  430. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.ts +1 -1
  431. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.js +7 -2
  432. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.ts +7 -0
  433. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.js +104 -2
  434. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.ts +96 -1
  435. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/sticky.spec.js +83 -0
  436. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/sticky.spec.ts +79 -0
  437. package/packages/sap.fe.core/test/sap/fe/core/jest/appcomponent.spec.js +72 -0
  438. package/packages/sap.fe.core/test/sap/fe/core/jest/appcomponent.spec.ts +64 -0
  439. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +619 -3
  440. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +668 -5
  441. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.js +297 -1
  442. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.ts +276 -6
  443. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalIntentBasedNavigation.spec.js +149 -0
  444. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalIntentBasedNavigation.spec.ts +142 -0
  445. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.js +776 -182
  446. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.ts +181 -3
  447. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +19 -43
  448. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.js +2 -18
  449. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.ts +8 -6
  450. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +5 -27
  451. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +1 -1
  452. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.js +1 -1
  453. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.ts +1 -1
  454. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Share.spec.js +86 -0
  455. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Share.spec.ts +80 -0
  456. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -1
  457. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +1 -1
  458. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +2 -18
  459. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +1 -1
  460. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/DataLossOrDraftDiscardHandler.spec.js +45 -0
  461. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/DataLossOrDraftDiscardHandler.spec.ts +29 -0
  462. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.js +51 -1
  463. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.ts +47 -1
  464. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/__snapshots__/FilterBar.spec.ts.snap +3 -0
  465. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +2 -2
  466. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +1 -1
  467. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.js +25 -36
  468. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.ts +26 -36
  469. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +3 -3
  470. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +2 -2
  471. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +1 -1
  472. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +6 -5
  473. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +133 -9
  474. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +171 -8
  475. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +174 -210
  476. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +294 -230
  477. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Filter.spec.ts.snap +3 -1
  478. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Chart.spec.js +237 -0
  479. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Chart.spec.ts +246 -0
  480. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/DataVisualization.spec.js +9993 -0
  481. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/DataVisualization.spec.ts +11352 -0
  482. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Table.spec.js +460 -0
  483. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Table.spec.ts +543 -0
  484. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/TableAnalytics.spec.js +616 -0
  485. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/TableAnalytics.spec.ts +711 -0
  486. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/manifest.json +887 -0
  487. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/objectPage/HeaderAndFooterAction.spec.js +393 -0
  488. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/objectPage/HeaderAndFooterAction.spec.ts +434 -0
  489. package/packages/sap.fe.core/test/sap/fe/core/jest/data/DataConverter.js +31 -0
  490. package/packages/sap.fe.core/test/sap/fe/core/jest/data/DataConverter.ts +12 -0
  491. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Filter.cds +27 -0
  492. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MassEditHelper.cds +12 -0
  493. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/manifest.json +150 -0
  494. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata.xml +365 -0
  495. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_groupable_options.xml +96 -0
  496. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_textArrangement.xml +102 -0
  497. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_withPV.xml +359 -0
  498. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +89 -27
  499. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TemplatingTestData.js +421 -0
  500. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TemplatingTestData.ts +413 -0
  501. package/packages/sap.fe.core/test/sap/fe/core/jest/data/aggregatedSD/metadata.xml +3767 -0
  502. package/packages/sap.fe.core/test/sap/fe/core/jest/data/dsr/manifest.json +185 -0
  503. package/packages/sap.fe.core/test/sap/fe/core/jest/data/dsr/metadata.xml +1534 -0
  504. package/packages/sap.fe.core/test/sap/fe/core/jest/data/manifest.json +887 -0
  505. package/packages/sap.fe.core/test/sap/fe/core/jest/data/salesOrderMetadata_qunit.xml +4995 -0
  506. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/CollaborationFormatters.spec.js +48 -0
  507. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/CollaborationFormatters.spec.ts +48 -0
  508. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +131 -51
  509. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +81 -31
  510. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +13 -7
  511. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +12 -6
  512. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.js +17 -3
  513. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.ts +24 -7
  514. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +61 -1
  515. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.ts +59 -0
  516. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.js +3 -3
  517. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.ts +1 -2
  518. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.js +4 -4
  519. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.ts +6 -3
  520. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.js +1 -1
  521. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.ts +1 -1
  522. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/AppStartupHelper.spec.ts.snap +19 -0
  523. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/MassEditHelper.spec.ts.snap +0 -73
  524. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.js +11 -1
  525. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.ts +15 -0
  526. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/__snapshots__/ChangePageConfiguration.spec.ts.snap +30 -0
  527. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +49 -5
  528. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +60 -5
  529. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/DataModelPathHelper.spec.js +384 -0
  530. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/DataModelPathHelper.spec.ts +427 -0
  531. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +132 -2
  532. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +156 -2
  533. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/UIFormatters.spec.js +273 -0
  534. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/UIFormatters.spec.ts +402 -0
  535. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/ValueHelpTemplating.spec.js +45 -0
  536. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/ValueHelpTemplating.spec.ts +40 -0
  537. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +2 -1
  538. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -102
  539. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.100.json +326 -0
  540. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.99.json +0 -22
  541. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  542. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  543. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +2 -2
  544. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
  545. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +22 -43
  546. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
  547. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.ts +3 -3
  548. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +14 -24
  549. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  550. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +1 -1
  551. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.fragment.xml +3 -2
  552. package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +16 -18
  553. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +162 -100
  554. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  555. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +93 -16
  556. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +2 -1
  557. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +16 -8
  558. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
  559. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +58 -83
  560. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +1 -1
  561. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +16 -2
  562. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +112 -192
  563. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  564. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +1 -1
  565. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
  566. package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI-dbg.js +4 -20
  567. package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.js +1 -1
  568. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +1 -1
  569. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI-dbg.js +10 -31
  570. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.js +1 -1
  571. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +147 -162
  572. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
  573. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +32 -8
  574. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +5 -0
  575. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +1 -1
  576. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +56 -74
  577. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  578. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +1 -1
  579. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +90 -39
  580. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  581. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +284 -251
  582. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  583. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +126 -14
  584. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +38 -101
  585. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  586. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +68 -6
  587. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  588. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +72 -12
  589. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  590. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +67 -10
  591. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -12
  592. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  593. package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.fragment.xml +1 -1
  594. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +1 -3
  595. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
  596. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +62 -39
  597. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
  598. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue-dbg.js +104 -50
  599. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.js +2 -3
  600. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.ts +68 -0
  601. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range-dbg.js +83 -35
  602. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.js +2 -3
  603. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.ts +66 -0
  604. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value-dbg.js +327 -216
  605. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.js +2 -3
  606. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.ts +303 -0
  607. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollaborationAvatar.fragment.xml +15 -0
  608. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +14 -2
  609. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
  610. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +18 -2
  611. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +12 -29
  612. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +9 -0
  613. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
  614. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -0
  615. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +529 -533
  616. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +2 -3
  617. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.ts +568 -0
  618. package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.fragment.xml +0 -1
  619. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +3 -3
  620. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.js +1 -1
  621. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +3 -2
  622. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldContent.fragment.xml +3 -1
  623. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +13 -3
  624. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +4 -1
  625. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +1 -0
  626. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +1 -0
  627. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +38 -4
  628. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +2 -2
  629. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +3 -3
  630. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/MdcFieldWithValueHelp.fragment.xml +1 -2
  631. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +55 -11
  632. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +1 -1
  633. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +3 -3
  634. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +9 -2
  635. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +9 -2
  636. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +12 -3
  637. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +26 -5
  638. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +10 -2
  639. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/RatingIndicator.fragment.xml +9 -2
  640. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +9 -2
  641. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/fragments/ObjectIdentifierContent.fragment.xml +4 -0
  642. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +31 -2
  643. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  644. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +20 -0
  645. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +2 -2
  646. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +1 -1
  647. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +7 -9
  648. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +90 -118
  649. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  650. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  651. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +13 -12
  652. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +2 -2
  653. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +185 -214
  654. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  655. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  656. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  657. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +4 -1
  658. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +3 -1
  659. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +3 -1
  660. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +3 -1
  661. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +3 -1
  662. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +3 -1
  663. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +3 -1
  664. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +4 -2
  665. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +3 -1
  666. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +3 -1
  667. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +3 -1
  668. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -1
  669. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +3 -1
  670. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +3 -1
  671. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +3 -1
  672. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +3 -1
  673. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +3 -1
  674. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +3 -1
  675. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +3 -1
  676. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +3 -1
  677. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +3 -1
  678. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +3 -1
  679. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +4 -2
  680. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +4 -2
  681. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +3 -1
  682. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +3 -1
  683. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -1
  684. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +3 -1
  685. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +3 -1
  686. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +3 -1
  687. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +3 -1
  688. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +3 -1
  689. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +3 -1
  690. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +3 -1
  691. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +3 -1
  692. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +3 -1
  693. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +3 -1
  694. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +3 -1
  695. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +3 -1
  696. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +3 -1
  697. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +3 -1
  698. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +3 -1
  699. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +3 -1
  700. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +3 -1
  701. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +3 -1
  702. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +3 -1
  703. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +3 -1
  704. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +3 -1
  705. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +3 -1
  706. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +273 -199
  707. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +1 -1
  708. package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +1 -1
  709. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +2 -0
  710. package/packages/sap.fe.macros/src/sap/fe/macros/table/CreationRow.fragment.xml +13 -20
  711. package/packages/sap.fe.macros/src/sap/fe/macros/table/CustomColumn.fragment.xml +1 -0
  712. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +5 -110
  713. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  714. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +98 -78
  715. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  716. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata-dbg.js +1 -1
  717. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +1 -1
  718. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +211 -10
  719. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  720. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
  721. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  722. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -45
  723. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +0 -60
  724. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldAPI.spec.js +78 -0
  725. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldAPI.spec.ts +71 -0
  726. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +35 -1
  727. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +44 -0
  728. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarDelegate.spec.js +0 -76
  729. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.js +27 -1
  730. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.ts +28 -0
  731. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.js +10 -12
  732. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.ts +10 -10
  733. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterUtils.spec.js +129 -15
  734. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.js +13 -39
  735. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.ts +2 -2
  736. package/packages/sap.fe.macros/test/sap/fe/macros/jest/RetrieveTextFromValueList.spec.js +119 -0
  737. package/packages/sap.fe.macros/test/sap/fe/macros/jest/RetrieveTextFromValueList.spec.ts +113 -0
  738. package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.js +166 -2
  739. package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.ts +190 -3
  740. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +457 -389
  741. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +504 -425
  742. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +104 -2
  743. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +158 -1
  744. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +0 -6
  745. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +5 -5
  746. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +114 -25
  747. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithSemanticKey.spec.ts.snap +40 -40
  748. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithValueHelp.spec.ts.snap +4 -8
  749. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +19 -19
  750. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +3 -5
  751. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +12 -0
  752. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +89 -90
  753. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/Table.spec.ts.snap +1314 -58
  754. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableMacro.spec.ts.snap +459 -0
  755. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +18 -2
  756. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +6 -1
  757. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +107 -106
  758. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableAPI.cds +197 -0
  759. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +33 -4
  760. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +30 -4
  761. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +72 -29
  762. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +86 -18
  763. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +51 -27
  764. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +55 -9
  765. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +46 -6
  766. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +28 -1
  767. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +170 -43
  768. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +131 -15
  769. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +90 -53
  770. package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/TestTSX.spec.tsx +2 -1
  771. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  772. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +1 -99
  773. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  774. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +4 -4
  775. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +4 -4
  776. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueHelpTemplating.qunit.js +15 -0
  777. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +265 -106
  778. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/metadata/simpleMetadata.js +38 -0
  779. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.100.json +372 -0
  780. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.99.json +0 -11
  781. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  782. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  783. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  784. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  785. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js.map +2 -2
  786. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
  787. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +2 -2
  788. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  789. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  790. package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +8 -8
  791. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  792. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  793. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  794. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  795. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  796. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  797. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  798. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js.map +2 -2
  799. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
  800. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +2 -2
  801. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  802. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  803. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +27 -27
  804. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.source.less +316 -15
  805. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/resources.json +1 -1
  806. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.less +315 -14
  807. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.source.less +315 -14
  808. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/resources.json +2 -2
  809. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.less +316 -15
  810. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.source.less +316 -15
  811. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/resources.json +2 -2
  812. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.less +316 -15
  813. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.source.less +316 -15
  814. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/resources.json +2 -2
  815. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.less +315 -14
  816. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.source.less +315 -14
  817. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/resources.json +2 -2
  818. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.less +317 -16
  819. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.source.less +317 -16
  820. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/resources.json +2 -2
  821. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.less +317 -16
  822. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.source.less +317 -16
  823. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/resources.json +2 -2
  824. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.less +316 -15
  825. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.source.less +316 -15
  826. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/resources.json +2 -2
  827. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.less +316 -15
  828. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.source.less +316 -15
  829. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/resources.json +2 -2
  830. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/css_variables.less +400 -99
  831. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/css_variables.source.less +400 -99
  832. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/resources.json +2 -2
  833. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  834. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  835. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  836. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  837. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  838. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +1 -1
  839. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  840. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  841. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +7 -1
  842. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +1 -1
  843. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +22 -21
  844. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +13 -18
  845. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  846. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  847. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +7 -7
  848. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.xml +3 -3
  849. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +50 -9
  850. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  851. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +1 -12
  852. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  853. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +5 -1
  854. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +50 -17
  855. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  856. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +7 -1
  857. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
  858. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox-dbg.designtime.js +3 -0
  859. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
  860. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  861. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +19 -15
  862. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/CollaborationDraft.fragment.xml +36 -0
  863. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +1 -1
  864. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -0
  865. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +1 -0
  866. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +3 -1
  867. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
  868. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +3 -1
  869. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
  870. package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js +1 -1
  871. package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js.map +2 -2
  872. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  873. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +4 -3
  874. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +2 -2
  875. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +22 -21
  876. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  877. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  878. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +14 -14
  879. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +0 -15
  880. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +0 -15
  881. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +0 -15
  882. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +0 -15
  883. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +0 -15
  884. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +0 -15
  885. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +0 -15
  886. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +0 -15
  887. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +0 -15
  888. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +0 -15
  889. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +0 -15
  890. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +0 -15
  891. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +0 -15
  892. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +0 -15
  893. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +0 -15
  894. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +0 -15
  895. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +0 -15
  896. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +0 -15
  897. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +0 -15
  898. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +0 -15
  899. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +0 -15
  900. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +0 -15
  901. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +0 -15
  902. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +0 -15
  903. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +0 -15
  904. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +0 -15
  905. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +0 -15
  906. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +0 -15
  907. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +0 -15
  908. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +0 -15
  909. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +0 -15
  910. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +0 -15
  911. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +0 -15
  912. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +0 -15
  913. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +0 -15
  914. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +0 -15
  915. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +0 -15
  916. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +0 -15
  917. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +0 -15
  918. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +0 -15
  919. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +0 -15
  920. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +0 -15
  921. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +0 -15
  922. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +0 -15
  923. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +0 -15
  924. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +0 -15
  925. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -15
  926. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +0 -15
  927. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +115 -89
  928. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  929. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +353 -1
  930. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  931. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -1
  932. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  933. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.js +1 -1
  934. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.ts +3 -3
  935. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.js +1 -1
  936. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.ts +4 -4
  937. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +1 -1
  938. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.ts +2 -2
  939. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +2 -1
  940. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +2 -1
  941. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +7 -7
  942. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +30 -61
  943. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +1 -1
  944. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.100.json +192 -0
  945. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.99.json +0 -11
  946. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  947. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  948. package/packages/sap.fe.test/src/sap/fe/test/FeMocks-dbg.js +1 -1
  949. package/packages/sap.fe.test/src/sap/fe/test/FeMocks.ts +8 -8
  950. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +6 -4
  951. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
  952. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +10 -6
  953. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +126 -203
  954. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  955. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +17 -2
  956. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI-dbg.js +9 -1
  957. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI.js +1 -1
  958. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  959. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +2 -2
  960. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +2 -2
  961. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +9 -18
  962. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
  963. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  964. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  965. package/packages/sap.fe.test/src/sap/fe/test/resources.json +18 -18
  966. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  967. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  968. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  969. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +0 -271
@@ -14,404 +14,369 @@ sap.ui.define(["sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideE
14
14
  var Override = ClassSupport.Override;
15
15
  var UI5Class = ClassSupport.UI5Class;
16
16
 
17
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18
-
19
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
20
-
21
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
22
-
23
17
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
24
18
 
25
19
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
26
20
 
27
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
28
-
29
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
30
-
31
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
32
-
33
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
34
-
35
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
36
-
37
21
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
38
22
 
39
23
  var PageReadyControllerExtension = (_dec = UI5Class("sap.fe.core.controllerextensions.PageReady", ControllerExtensionMetadata), _dec2 = Override(), _dec3 = Override(), _dec4 = Override("_routing"), _dec5 = Override("_routing"), _dec6 = Override("_routing"), _dec7 = Extensible(OverrideExecution.Instead), _dec(_class = (_class2 = /*#__PURE__*/function (_ControllerExtension) {
40
24
  _inherits(PageReadyControllerExtension, _ControllerExtension);
41
25
 
42
- var _super = _createSuper(PageReadyControllerExtension);
43
-
44
26
  function PageReadyControllerExtension() {
45
- _classCallCheck(this, PageReadyControllerExtension);
46
-
47
- return _super.apply(this, arguments);
27
+ return _ControllerExtension.apply(this, arguments) || this;
48
28
  }
49
29
 
50
- _createClass(PageReadyControllerExtension, [{
51
- key: "onInit",
52
- value: function onInit() {
53
- var _this = this;
54
-
55
- this._nbWaits = 0;
56
- this._bSeachTriggered = false;
57
- this._oEventProvider = this._oEventProvider ? this._oEventProvider : new EventProvider();
58
- this._oView = this.base.getView();
59
- this._oAppComponent = CommonUtils.getAppComponent(this._oView);
60
- this._oPageComponent = Component.getOwnerComponentFor(this._oView);
61
-
62
- if (this._oPageComponent && this._oPageComponent.attachContainerDefined) {
63
- this._oPageComponent.attachContainerDefined(function (oEvent) {
64
- return _this.registerContainer(oEvent.getParameter("container"));
65
- });
66
- } else {
67
- this.registerContainer(this._oView);
68
- }
30
+ var _proto = PageReadyControllerExtension.prototype;
69
31
 
70
- var oPlaceholder = this._oAppComponent.getRootControl().getController().getPlaceholder();
32
+ _proto.onInit = function onInit() {
33
+ var _this = this;
71
34
 
72
- if (oPlaceholder.isPlaceholderDebugEnabled()) {
73
- this.attachEvent("pageReady", null, function () {
74
- oPlaceholder.getPlaceholderDebugStats().iPageReadyEventTimestamp = Date.now();
75
- }, this);
76
- this.attachEvent("heroesBatchReceived", null, function () {
77
- oPlaceholder.getPlaceholderDebugStats().iHeroesBatchReceivedEventTimestamp = Date.now();
78
- }, this);
79
- }
80
- }
81
- }, {
82
- key: "onExit",
83
- value: function onExit() {
84
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
85
- // @ts-ignore
86
- delete this._oAppComponent;
87
- this._oContainer && this._oContainer.removeEventDelegate(this._fnContainerDelegate);
88
- }
89
- }, {
90
- key: "waitFor",
91
- value: function waitFor(oPromise) {
92
- var _this2 = this;
35
+ this._nbWaits = 0;
36
+ this._bSeachTriggered = false;
37
+ this._oEventProvider = this._oEventProvider ? this._oEventProvider : new EventProvider();
38
+ this._oView = this.base.getView();
39
+ this._oAppComponent = CommonUtils.getAppComponent(this._oView);
40
+ this._oPageComponent = Component.getOwnerComponentFor(this._oView);
93
41
 
94
- this._nbWaits++;
95
- oPromise.finally(function () {
96
- setTimeout(function () {
97
- _this2._nbWaits--;
98
- }, 0);
99
- }).catch(null);
100
- }
101
- }, {
102
- key: "onRouteMatched",
103
- value: function onRouteMatched() {
104
- this._bIsPageReady = false;
105
- }
106
- }, {
107
- key: "onRouteMatchedFinished",
108
- value: function onRouteMatchedFinished() {
109
- this.checkPageReadyDebounced();
42
+ if (this._oPageComponent && this._oPageComponent.attachContainerDefined) {
43
+ this._oPageComponent.attachContainerDefined(function (oEvent) {
44
+ return _this.registerContainer(oEvent.getParameter("container"));
45
+ });
46
+ } else {
47
+ this.registerContainer(this._oView);
110
48
  }
111
- }, {
112
- key: "onAfterBinding",
113
- value: function onAfterBinding(oBindingContext) {
114
- var _this3 = this;
115
-
116
- if (!this._bAfterBindingAlreadyApplied) {
117
- this._bAfterBindingAlreadyApplied = true;
118
- var aBoundElements = [];
119
- var aNotBoundMDCTables = [];
120
- var iRequested = 0;
121
- var iReceived = 0;
122
49
 
123
- var fnRequested = function (oEvent) {
124
- oEvent.getSource().detachDataRequested(fnRequested);
125
- iRequested++;
126
- _this3.bDataReceived = false;
127
- };
50
+ var oPlaceholder = this._oAppComponent.getRootControl().getController().getPlaceholder();
128
51
 
129
- var fnReceived = function (oEvent) {
130
- switch (oEvent.getSource().sGroupId) {
131
- case "$auto.Workers":
132
- _this3._oEventProvider.fireEvent("workersBatchReceived");
133
-
134
- break;
52
+ if (oPlaceholder.isPlaceholderDebugEnabled()) {
53
+ this.attachEvent("pageReady", null, function () {
54
+ oPlaceholder.getPlaceholderDebugStats().iPageReadyEventTimestamp = Date.now();
55
+ }, this);
56
+ this.attachEvent("heroesBatchReceived", null, function () {
57
+ oPlaceholder.getPlaceholderDebugStats().iHeroesBatchReceivedEventTimestamp = Date.now();
58
+ }, this);
59
+ }
60
+ };
61
+
62
+ _proto.onExit = function onExit() {
63
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
64
+ // @ts-ignore
65
+ delete this._oAppComponent;
66
+ this._oContainer && this._oContainer.removeEventDelegate(this._fnContainerDelegate);
67
+ };
68
+
69
+ _proto.waitFor = function waitFor(oPromise) {
70
+ var _this2 = this;
71
+
72
+ this._nbWaits++;
73
+ oPromise.finally(function () {
74
+ setTimeout(function () {
75
+ _this2._nbWaits--;
76
+ }, 0);
77
+ }).catch(null);
78
+ };
79
+
80
+ _proto.onRouteMatched = function onRouteMatched() {
81
+ this._bIsPageReady = false;
82
+ };
83
+
84
+ _proto.onRouteMatchedFinished = function onRouteMatchedFinished() {
85
+ this.checkPageReadyDebounced();
86
+ };
87
+
88
+ _proto.onAfterBinding = function onAfterBinding(oBindingContext) {
89
+ var _this3 = this;
90
+
91
+ if (!this._bAfterBindingAlreadyApplied) {
92
+ this._bAfterBindingAlreadyApplied = true;
93
+ var aBoundElements = [];
94
+ var aNotBoundMDCTables = [];
95
+ var iRequested = 0;
96
+ var iReceived = 0;
97
+
98
+ var fnRequested = function (oEvent) {
99
+ oEvent.getSource().detachDataRequested(fnRequested);
100
+ iRequested++;
101
+ _this3.bDataReceived = false;
102
+ };
135
103
 
136
- case "$auto.Heroes":
137
- _this3._oEventProvider.fireEvent("heroesBatchReceived");
104
+ var fnReceived = function (oEvent) {
105
+ switch (oEvent.getSource().sGroupId) {
106
+ case "$auto.Workers":
107
+ _this3._oEventProvider.fireEvent("workersBatchReceived");
138
108
 
139
- break;
109
+ break;
140
110
 
141
- default:
142
- }
111
+ case "$auto.Heroes":
112
+ _this3._oEventProvider.fireEvent("heroesBatchReceived");
143
113
 
144
- oEvent.getSource().detachDataReceived(fnReceived);
145
- iReceived++;
114
+ break;
146
115
 
147
- if (iReceived >= iRequested && iRequested !== 0) {
148
- iRequested = 0;
149
- iReceived = 0;
150
- _this3.bDataReceived = true;
116
+ default:
117
+ }
151
118
 
152
- _this3.checkPageReadyDebounced();
153
- }
154
- };
119
+ oEvent.getSource().detachDataReceived(fnReceived);
120
+ iReceived++;
155
121
 
156
- var fnSearch = function (oEvent) {
157
- var aMDCTables = aNotBoundMDCTables.filter(function (oElem) {
158
- if (oEvent.getSource().sId === oElem.getFilter() && oElem.getVisible()) {
159
- return true;
160
- }
122
+ if (iReceived >= iRequested && iRequested !== 0) {
123
+ iRequested = 0;
124
+ iReceived = 0;
125
+ _this3.bDataReceived = true;
161
126
 
162
- return false;
163
- });
127
+ _this3.checkPageReadyDebounced();
128
+ }
129
+ };
164
130
 
165
- if (aMDCTables.length > 0) {
166
- _this3._bSeachTriggered = true;
131
+ var fnSearch = function (oEvent) {
132
+ var aMDCTables = aNotBoundMDCTables.filter(function (oElem) {
133
+ if (oEvent.getSource().sId === oElem.getFilter() && oElem.getVisible()) {
134
+ return true;
167
135
  }
168
136
 
169
- aMDCTables.forEach(function (oMDCTable) {
170
- var oRowBinding = oMDCTable.getRowBinding();
137
+ return false;
138
+ });
171
139
 
172
- var fnAttachDataEvents = function () {
173
- oRowBinding.attachDataRequested(fnRequested);
174
- oRowBinding.attachDataReceived(function (oEvent) {
175
- fnReceived(oEvent);
176
- _this3._bSeachTriggered = false;
177
- });
178
- aBoundElements.push(oRowBinding);
179
- };
140
+ if (aMDCTables.length > 0) {
141
+ _this3._bSeachTriggered = true;
142
+ }
180
143
 
181
- if (oRowBinding) {
182
- fnAttachDataEvents();
183
- } else {
184
- oMDCTable.attachEventOnce("bindingUpdated", null, function () {
185
- oRowBinding = oMDCTable.getRowBinding();
186
- fnAttachDataEvents();
187
- }, null);
188
- }
189
- });
190
- };
144
+ aMDCTables.forEach(function (oMDCTable) {
145
+ var oRowBinding = oMDCTable.getRowBinding();
191
146
 
192
- if (this.isContextExpected() && oBindingContext === undefined) {
193
- // Force to mention we are expecting data
194
- this.bHasContext = false;
195
- return;
196
- } else {
197
- this.bHasContext = true;
198
- }
147
+ var fnAttachDataEvents = function () {
148
+ oRowBinding.attachDataRequested(fnRequested);
149
+ oRowBinding.attachDataReceived(function (oEvent) {
150
+ fnReceived(oEvent);
151
+ _this3._bSeachTriggered = false;
152
+ });
153
+ aBoundElements.push(oRowBinding);
154
+ };
199
155
 
200
- this.attachEventOnce("pageReady", null, function () {
201
- aBoundElements.forEach(function (oElement) {
202
- oElement.detachEvent("dataRequested", fnRequested);
203
- oElement.detachEvent("dataReceived", fnReceived);
204
- oElement.detachEvent("search", fnSearch);
205
- });
206
- _this3._bAfterBindingAlreadyApplied = false;
207
- aBoundElements = [];
208
- }, null);
209
-
210
- if (oBindingContext) {
211
- var mainObjectBinding = oBindingContext.getBinding();
212
- mainObjectBinding.attachDataRequested(fnRequested);
213
- mainObjectBinding.attachDataReceived(fnReceived);
214
- aBoundElements.push(mainObjectBinding);
215
- }
156
+ if (oRowBinding) {
157
+ fnAttachDataEvents();
158
+ } else {
159
+ oMDCTable.attachEventOnce("bindingUpdated", null, function () {
160
+ oRowBinding = oMDCTable.getRowBinding();
161
+ fnAttachDataEvents();
162
+ }, null);
163
+ }
164
+ });
165
+ };
216
166
 
217
- var aTableInitializedPromises = [];
167
+ if (this.isContextExpected() && oBindingContext === undefined) {
168
+ // Force to mention we are expecting data
169
+ this.bHasContext = false;
170
+ return;
171
+ } else {
172
+ this.bHasContext = true;
173
+ }
218
174
 
219
- this._oView.findAggregatedObjects(true, function (oElement) {
220
- var oObjectBinding = oElement.getObjectBinding();
175
+ this.attachEventOnce("pageReady", null, function () {
176
+ aBoundElements.forEach(function (oElement) {
177
+ oElement.detachEvent("dataRequested", fnRequested);
178
+ oElement.detachEvent("dataReceived", fnReceived);
179
+ oElement.detachEvent("search", fnSearch);
180
+ });
181
+ _this3._bAfterBindingAlreadyApplied = false;
182
+ aBoundElements = [];
183
+ }, null);
184
+
185
+ if (oBindingContext) {
186
+ var mainObjectBinding = oBindingContext.getBinding();
187
+ mainObjectBinding.attachDataRequested(fnRequested);
188
+ mainObjectBinding.attachDataReceived(fnReceived);
189
+ aBoundElements.push(mainObjectBinding);
190
+ }
221
191
 
222
- if (oObjectBinding) {
223
- // Register on all object binding (mostly used on object pages)
224
- oObjectBinding.attachDataRequested(fnRequested);
225
- oObjectBinding.attachDataReceived(fnReceived);
226
- aBoundElements.push(oObjectBinding);
227
- } else {
228
- var aBindingKeys = Object.keys(oElement.mBindingInfos);
229
-
230
- if (aBindingKeys.length > 0) {
231
- aBindingKeys.forEach(function (sPropertyName) {
232
- var oListBinding = oElement.mBindingInfos[sPropertyName].binding; // Register on all list binding, good for basic tables, problematic for MDC, see above
233
-
234
- if (oListBinding && oListBinding.isA("sap.ui.model.odata.v4.ODataListBinding")) {
235
- oListBinding.attachDataRequested(fnRequested);
236
- oListBinding.attachDataReceived(fnReceived);
237
- aBoundElements.push(oListBinding);
238
- }
239
- });
240
- }
241
- } // This is dirty but MDC Table has a weird loading lifecycle
192
+ var aTableInitializedPromises = [];
242
193
 
194
+ this._oView.findAggregatedObjects(true, function (oElement) {
195
+ var oObjectBinding = oElement.getObjectBinding();
243
196
 
244
- if (oElement.isA("sap.ui.mdc.Table")) {
245
- _this3.bTablesLoaded = false; // access binding only after table is bound
197
+ if (oObjectBinding) {
198
+ // Register on all object binding (mostly used on object pages)
199
+ oObjectBinding.attachDataRequested(fnRequested);
200
+ oObjectBinding.attachDataReceived(fnReceived);
201
+ aBoundElements.push(oObjectBinding);
202
+ } else {
203
+ var aBindingKeys = Object.keys(oElement.mBindingInfos);
246
204
 
247
- aTableInitializedPromises.push(oElement.initialized().then(function () {
248
- var oRowBinding = oElement.getRowBinding();
205
+ if (aBindingKeys.length > 0) {
206
+ aBindingKeys.forEach(function (sPropertyName) {
207
+ var oListBinding = oElement.mBindingInfos[sPropertyName].binding; // Register on all list binding, good for basic tables, problematic for MDC, see above
249
208
 
250
- if (oRowBinding) {
251
- oRowBinding.attachDataRequested(fnRequested);
252
- oRowBinding.attachDataReceived(fnReceived);
253
- aBoundElements.push(oRowBinding);
254
- } else {
255
- aNotBoundMDCTables.push(oElement);
209
+ if (oListBinding && oListBinding.isA("sap.ui.model.odata.v4.ODataListBinding")) {
210
+ oListBinding.attachDataRequested(fnRequested);
211
+ oListBinding.attachDataReceived(fnReceived);
212
+ aBoundElements.push(oListBinding);
256
213
  }
257
- }).catch(function (oError) {
258
- Log.error("Cannot find a bound table", oError);
259
- }));
260
- } else if (oElement.isA("sap.fe.core.controls.FilterBar")) {
261
- oElement.attachEvent("search", fnSearch);
262
- aBoundElements.push(oElement);
214
+ });
263
215
  }
264
- });
216
+ } // This is dirty but MDC Table has a weird loading lifecycle
265
217
 
266
- if (aTableInitializedPromises.length > 0) {
267
- Promise.all(aTableInitializedPromises).then(function () {
268
- _this3.bTablesLoaded = true;
269
218
 
270
- _this3.checkPageReadyDebounced();
271
- }).catch(function (oError) {
272
- Log.info("There was an error with one or multiple table", oError);
273
- _this3.bTablesLoaded = true;
219
+ if (oElement.isA("sap.ui.mdc.Table")) {
220
+ _this3.bTablesLoaded = false; // access binding only after table is bound
274
221
 
275
- _this3.checkPageReadyDebounced();
276
- });
277
- }
278
- }
279
- }
280
- }, {
281
- key: "isPageReady",
282
- value: function isPageReady() {
283
- return this._bIsPageReady;
284
- }
285
- }, {
286
- key: "waitPageReady",
287
- value: function waitPageReady() {
288
- var _this4 = this;
222
+ aTableInitializedPromises.push(oElement.initialized().then(function () {
223
+ var oRowBinding = oElement.getRowBinding();
289
224
 
290
- return new Promise(function (resolve) {
291
- if (_this4.isPageReady()) {
292
- resolve();
293
- } else {
294
- _this4.attachEventOnce("pageReady", null, function () {
295
- resolve();
296
- }, _this4);
225
+ if (oRowBinding) {
226
+ oRowBinding.attachDataRequested(fnRequested);
227
+ oRowBinding.attachDataReceived(fnReceived);
228
+ aBoundElements.push(oRowBinding);
229
+ } else {
230
+ aNotBoundMDCTables.push(oElement);
231
+ }
232
+ }).catch(function (oError) {
233
+ Log.error("Cannot find a bound table", oError);
234
+ }));
235
+ } else if (oElement.isA("sap.fe.core.controls.FilterBar")) {
236
+ oElement.attachEvent("search", fnSearch);
237
+ aBoundElements.push(oElement);
297
238
  }
298
239
  });
299
- }
300
- }, {
301
- key: "attachEventOnce",
302
- value: function attachEventOnce(sEventId, oData, fnFunction, oListener) {
303
- // eslint-disable-next-line prefer-rest-params
304
- return this._oEventProvider.attachEventOnce(sEventId, oData, fnFunction, oListener);
305
- }
306
- }, {
307
- key: "attachEvent",
308
- value: function attachEvent(sEventId, oData, fnFunction, oListener) {
309
- // eslint-disable-next-line prefer-rest-params
310
- return this._oEventProvider.attachEvent(sEventId, oData, fnFunction, oListener);
311
- }
312
- }, {
313
- key: "detachEvent",
314
- value: function detachEvent(sEventId, fnFunction) {
315
- // eslint-disable-next-line prefer-rest-params
316
- return this._oEventProvider.detachEvent(sEventId, fnFunction);
317
- }
318
- }, {
319
- key: "registerContainer",
320
- value: function registerContainer(oContainer) {
321
- var _this5 = this;
322
-
323
- this._oContainer = oContainer;
324
- this._fnContainerDelegate = {
325
- onBeforeShow: function () {
326
- _this5.bShown = false;
327
- _this5._bIsPageReady = false;
328
- },
329
- onBeforeHide: function () {
330
- _this5.bShown = false;
331
- _this5._bIsPageReady = false;
332
- },
333
- onAfterShow: function () {
334
- _this5.bShown = true;
335
-
336
- _this5._checkPageReady(true);
337
- }
338
- };
339
240
 
340
- this._oContainer.addEventDelegate(this._fnContainerDelegate);
341
- }
342
- }, {
343
- key: "isContextExpected",
344
- value: function isContextExpected() {
345
- return false;
241
+ if (aTableInitializedPromises.length > 0) {
242
+ Promise.all(aTableInitializedPromises).then(function () {
243
+ _this3.bTablesLoaded = true;
244
+
245
+ _this3.checkPageReadyDebounced();
246
+ }).catch(function (oError) {
247
+ Log.info("There was an error with one or multiple table", oError);
248
+ _this3.bTablesLoaded = true;
249
+
250
+ _this3.checkPageReadyDebounced();
251
+ });
252
+ }
346
253
  }
347
- }, {
348
- key: "checkPageReadyDebounced",
349
- value: function checkPageReadyDebounced() {
350
- var _this6 = this;
254
+ };
351
255
 
352
- if (this.pageReadyTimer) {
353
- clearTimeout(this.pageReadyTimer);
256
+ _proto.isPageReady = function isPageReady() {
257
+ return this._bIsPageReady;
258
+ };
259
+
260
+ _proto.waitPageReady = function waitPageReady() {
261
+ var _this4 = this;
262
+
263
+ return new Promise(function (resolve) {
264
+ if (_this4.isPageReady()) {
265
+ resolve();
266
+ } else {
267
+ _this4.attachEventOnce("pageReady", null, function () {
268
+ resolve();
269
+ }, _this4);
270
+ }
271
+ });
272
+ };
273
+
274
+ _proto.attachEventOnce = function attachEventOnce(sEventId, oData, fnFunction, oListener) {
275
+ // eslint-disable-next-line prefer-rest-params
276
+ return this._oEventProvider.attachEventOnce(sEventId, oData, fnFunction, oListener);
277
+ };
278
+
279
+ _proto.attachEvent = function attachEvent(sEventId, oData, fnFunction, oListener) {
280
+ // eslint-disable-next-line prefer-rest-params
281
+ return this._oEventProvider.attachEvent(sEventId, oData, fnFunction, oListener);
282
+ };
283
+
284
+ _proto.detachEvent = function detachEvent(sEventId, fnFunction) {
285
+ // eslint-disable-next-line prefer-rest-params
286
+ return this._oEventProvider.detachEvent(sEventId, fnFunction);
287
+ };
288
+
289
+ _proto.registerContainer = function registerContainer(oContainer) {
290
+ var _this5 = this;
291
+
292
+ this._oContainer = oContainer;
293
+ this._fnContainerDelegate = {
294
+ onBeforeShow: function () {
295
+ _this5.bShown = false;
296
+ _this5._bIsPageReady = false;
297
+ },
298
+ onBeforeHide: function () {
299
+ _this5.bShown = false;
300
+ _this5._bIsPageReady = false;
301
+ },
302
+ onAfterShow: function () {
303
+ _this5.bShown = true;
304
+
305
+ _this5._checkPageReady(true);
354
306
  }
307
+ };
308
+
309
+ this._oContainer.addEventDelegate(this._fnContainerDelegate);
310
+ };
355
311
 
356
- this.pageReadyTimer = setTimeout(function () {
357
- _this6._checkPageReady();
358
- }, 200);
312
+ _proto.isContextExpected = function isContextExpected() {
313
+ return false;
314
+ };
315
+
316
+ _proto.checkPageReadyDebounced = function checkPageReadyDebounced() {
317
+ var _this6 = this;
318
+
319
+ if (this.pageReadyTimer) {
320
+ clearTimeout(this.pageReadyTimer);
359
321
  }
360
- }, {
361
- key: "_checkPageReady",
362
- value: function _checkPageReady() {
363
- var _this7 = this;
364
-
365
- var bFromNav = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
366
-
367
- var fnUIUpdated = function () {
368
- // Wait until the UI is no longer dirty
369
- if (!sap.ui.getCore().getUIDirty()) {
370
- sap.ui.getCore().detachEvent("UIUpdated", fnUIUpdated);
371
- _this7._bWaitingForRefresh = false;
372
- setTimeout(function () {
373
- _this7._checkPageReady();
374
- }, 20);
375
- }
376
- }; // In case UIUpdate does not get called, check if UI is not dirty and then call _checkPageReady
377
322
 
323
+ this.pageReadyTimer = setTimeout(function () {
324
+ _this6._checkPageReady();
325
+ }, 200);
326
+ };
378
327
 
379
- var checkUIUpdated = function () {
380
- if (sap.ui.getCore().getUIDirty()) {
381
- setTimeout(checkUIUpdated, 500);
382
- } else if (_this7._bWaitingForRefresh) {
383
- _this7._bWaitingForRefresh = false;
384
- sap.ui.getCore().detachEvent("UIUpdated", fnUIUpdated);
328
+ _proto._checkPageReady = function _checkPageReady() {
329
+ var _this7 = this;
385
330
 
331
+ var bFromNav = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
332
+
333
+ var fnUIUpdated = function () {
334
+ // Wait until the UI is no longer dirty
335
+ if (!sap.ui.getCore().getUIDirty()) {
336
+ sap.ui.getCore().detachEvent("UIUpdated", fnUIUpdated);
337
+ _this7._bWaitingForRefresh = false;
338
+ setTimeout(function () {
386
339
  _this7._checkPageReady();
387
- }
388
- };
340
+ }, 20);
341
+ }
342
+ }; // In case UIUpdate does not get called, check if UI is not dirty and then call _checkPageReady
389
343
 
390
- if (this.bShown && this.bDataReceived !== false && this.bTablesLoaded !== false && (!this.isContextExpected() || this.bHasContext) // Either no context is expected or there is one
391
- ) {
392
- if (this.bDataReceived === true && !bFromNav && !this._bWaitingForRefresh && sap.ui.getCore().getUIDirty()) {
393
- // If we requested data we get notified as soon as the data arrived, so before the next rendering tick
394
- this.bDataReceived = undefined;
395
- this._bWaitingForRefresh = true;
396
- sap.ui.getCore().attachEvent("UIUpdated", fnUIUpdated);
397
- setTimeout(checkUIUpdated, 500);
398
- } else if (!this._bWaitingForRefresh && sap.ui.getCore().getUIDirty() || this._nbWaits !== 0 || TemplatedViewServiceFactory.getNumberOfViewsInCreationState() > 0 || this._bSeachTriggered) {
399
- this._bWaitingForRefresh = true;
400
- sap.ui.getCore().attachEvent("UIUpdated", fnUIUpdated);
401
- setTimeout(checkUIUpdated, 500);
402
- } else if (!this._bWaitingForRefresh) {
403
- // In the case we're not waiting for any data (navigating back to a page we already have loaded)
404
- // just wait for a frame to fire the event.
405
- this._bIsPageReady = true;
406
-
407
- this._oEventProvider.fireEvent("pageReady");
408
- }
344
+
345
+ var checkUIUpdated = function () {
346
+ if (sap.ui.getCore().getUIDirty()) {
347
+ setTimeout(checkUIUpdated, 500);
348
+ } else if (_this7._bWaitingForRefresh) {
349
+ _this7._bWaitingForRefresh = false;
350
+ sap.ui.getCore().detachEvent("UIUpdated", fnUIUpdated);
351
+
352
+ _this7._checkPageReady();
353
+ }
354
+ };
355
+
356
+ if (this.bShown && this.bDataReceived !== false && this.bTablesLoaded !== false && (!this.isContextExpected() || this.bHasContext) // Either no context is expected or there is one
357
+ ) {
358
+ if (this.bDataReceived === true && !bFromNav && !this._bWaitingForRefresh && sap.ui.getCore().getUIDirty()) {
359
+ // If we requested data we get notified as soon as the data arrived, so before the next rendering tick
360
+ this.bDataReceived = undefined;
361
+ this._bWaitingForRefresh = true;
362
+ sap.ui.getCore().attachEvent("UIUpdated", fnUIUpdated);
363
+ setTimeout(checkUIUpdated, 500);
364
+ } else if (!this._bWaitingForRefresh && sap.ui.getCore().getUIDirty() || this._nbWaits !== 0 || TemplatedViewServiceFactory.getNumberOfViewsInCreationState() > 0 || this._bSeachTriggered) {
365
+ this._bWaitingForRefresh = true;
366
+ sap.ui.getCore().attachEvent("UIUpdated", fnUIUpdated);
367
+ setTimeout(checkUIUpdated, 500);
368
+ } else if (!this._bWaitingForRefresh) {
369
+ // In the case we're not waiting for any data (navigating back to a page we already have loaded)
370
+ // just wait for a frame to fire the event.
371
+ this._bIsPageReady = true;
372
+
373
+ this._oEventProvider.fireEvent("pageReady");
409
374
  }
410
375
  }
411
- }]);
376
+ };
412
377
 
413
378
  return PageReadyControllerExtension;
414
- }(ControllerExtension), (_applyDecoratedDescriptor(_class2.prototype, "onInit", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "onInit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onExit", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "onExit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "waitFor", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "waitFor"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onRouteMatched", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "onRouteMatched"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onRouteMatchedFinished", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "onRouteMatchedFinished"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onAfterBinding", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "onAfterBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isPageReady", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "isPageReady"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "waitPageReady", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "waitPageReady"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "attachEventOnce", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "attachEventOnce"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "attachEvent", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "attachEvent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "detachEvent", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "detachEvent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isContextExpected", [Private, _dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "isContextExpected"), _class2.prototype)), _class2)) || _class);
379
+ }(ControllerExtension), (_applyDecoratedDescriptor(_class2.prototype, "onInit", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "onInit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onExit", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "onExit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "waitFor", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "waitFor"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onRouteMatched", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "onRouteMatched"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onRouteMatchedFinished", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "onRouteMatchedFinished"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onAfterBinding", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "onAfterBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isPageReady", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "isPageReady"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "waitPageReady", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "waitPageReady"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "attachEventOnce", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "attachEventOnce"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "attachEvent", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "attachEvent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "detachEvent", [Public, Final], Object.getOwnPropertyDescriptor(_class2.prototype, "detachEvent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isContextExpected", [Private, _dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "isContextExpected"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "checkPageReadyDebounced", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "checkPageReadyDebounced"), _class2.prototype)), _class2)) || _class);
415
380
  return PageReadyControllerExtension;
416
381
  }, false);
417
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlBhZ2VSZWFkeS50cyJdLCJuYW1lcyI6WyJQYWdlUmVhZHlDb250cm9sbGVyRXh0ZW5zaW9uIiwiVUk1Q2xhc3MiLCJDb250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGEiLCJPdmVycmlkZSIsIkV4dGVuc2libGUiLCJPdmVycmlkZUV4ZWN1dGlvbiIsIkluc3RlYWQiLCJfbmJXYWl0cyIsIl9iU2VhY2hUcmlnZ2VyZWQiLCJfb0V2ZW50UHJvdmlkZXIiLCJFdmVudFByb3ZpZGVyIiwiX29WaWV3IiwiYmFzZSIsImdldFZpZXciLCJfb0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiX29QYWdlQ29tcG9uZW50IiwiQ29tcG9uZW50IiwiZ2V0T3duZXJDb21wb25lbnRGb3IiLCJhdHRhY2hDb250YWluZXJEZWZpbmVkIiwib0V2ZW50IiwicmVnaXN0ZXJDb250YWluZXIiLCJnZXRQYXJhbWV0ZXIiLCJvUGxhY2Vob2xkZXIiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJnZXRQbGFjZWhvbGRlciIsImlzUGxhY2Vob2xkZXJEZWJ1Z0VuYWJsZWQiLCJhdHRhY2hFdmVudCIsImdldFBsYWNlaG9sZGVyRGVidWdTdGF0cyIsImlQYWdlUmVhZHlFdmVudFRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJpSGVyb2VzQmF0Y2hSZWNlaXZlZEV2ZW50VGltZXN0YW1wIiwiX29Db250YWluZXIiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiX2ZuQ29udGFpbmVyRGVsZWdhdGUiLCJvUHJvbWlzZSIsImZpbmFsbHkiLCJzZXRUaW1lb3V0IiwiY2F0Y2giLCJfYklzUGFnZVJlYWR5IiwiY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQiLCJvQmluZGluZ0NvbnRleHQiLCJfYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkIiwiYUJvdW5kRWxlbWVudHMiLCJhTm90Qm91bmRNRENUYWJsZXMiLCJpUmVxdWVzdGVkIiwiaVJlY2VpdmVkIiwiZm5SZXF1ZXN0ZWQiLCJnZXRTb3VyY2UiLCJkZXRhY2hEYXRhUmVxdWVzdGVkIiwiYkRhdGFSZWNlaXZlZCIsImZuUmVjZWl2ZWQiLCJzR3JvdXBJZCIsImZpcmVFdmVudCIsImRldGFjaERhdGFSZWNlaXZlZCIsImZuU2VhcmNoIiwiYU1EQ1RhYmxlcyIsImZpbHRlciIsIm9FbGVtIiwic0lkIiwiZ2V0RmlsdGVyIiwiZ2V0VmlzaWJsZSIsImxlbmd0aCIsImZvckVhY2giLCJvTURDVGFibGUiLCJvUm93QmluZGluZyIsImdldFJvd0JpbmRpbmciLCJmbkF0dGFjaERhdGFFdmVudHMiLCJhdHRhY2hEYXRhUmVxdWVzdGVkIiwiYXR0YWNoRGF0YVJlY2VpdmVkIiwicHVzaCIsImF0dGFjaEV2ZW50T25jZSIsImlzQ29udGV4dEV4cGVjdGVkIiwidW5kZWZpbmVkIiwiYkhhc0NvbnRleHQiLCJvRWxlbWVudCIsImRldGFjaEV2ZW50IiwibWFpbk9iamVjdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwiYVRhYmxlSW5pdGlhbGl6ZWRQcm9taXNlcyIsImZpbmRBZ2dyZWdhdGVkT2JqZWN0cyIsIm9PYmplY3RCaW5kaW5nIiwiZ2V0T2JqZWN0QmluZGluZyIsImFCaW5kaW5nS2V5cyIsIk9iamVjdCIsImtleXMiLCJtQmluZGluZ0luZm9zIiwic1Byb3BlcnR5TmFtZSIsIm9MaXN0QmluZGluZyIsImJpbmRpbmciLCJpc0EiLCJiVGFibGVzTG9hZGVkIiwiaW5pdGlhbGl6ZWQiLCJ0aGVuIiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJQcm9taXNlIiwiYWxsIiwiaW5mbyIsInJlc29sdmUiLCJpc1BhZ2VSZWFkeSIsInNFdmVudElkIiwib0RhdGEiLCJmbkZ1bmN0aW9uIiwib0xpc3RlbmVyIiwib0NvbnRhaW5lciIsIm9uQmVmb3JlU2hvdyIsImJTaG93biIsIm9uQmVmb3JlSGlkZSIsIm9uQWZ0ZXJTaG93IiwiX2NoZWNrUGFnZVJlYWR5IiwiYWRkRXZlbnREZWxlZ2F0ZSIsInBhZ2VSZWFkeVRpbWVyIiwiY2xlYXJUaW1lb3V0IiwiYkZyb21OYXYiLCJmblVJVXBkYXRlZCIsInNhcCIsInVpIiwiZ2V0Q29yZSIsImdldFVJRGlydHkiLCJfYldhaXRpbmdGb3JSZWZyZXNoIiwiY2hlY2tVSVVwZGF0ZWQiLCJUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkiLCJnZXROdW1iZXJPZlZpZXdzSW5DcmVhdGlvblN0YXRlIiwiQ29udHJvbGxlckV4dGVuc2lvbiIsIlB1YmxpYyIsIkZpbmFsIiwiUHJpdmF0ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFhTUEsNEIsV0FETEMsUUFBUSxDQUFDLDRDQUFELEVBQStDQywyQkFBL0MsQyxVQW1CUEMsUUFBUSxFLFVBb0NSQSxRQUFRLEUsVUFvQlJBLFFBQVEsQ0FBQyxVQUFELEMsVUFJUkEsUUFBUSxDQUFDLFVBQUQsQyxVQUtSQSxRQUFRLENBQUMsVUFBRCxDLFVBOE5SQyxVQUFVLENBQUNDLGlCQUFpQixDQUFDQyxPQUFuQixDOzs7Ozs7Ozs7Ozs7O2FBL1JYLGtCQUNnQjtBQUFBOztBQUNmLGFBQUtDLFFBQUwsR0FBZ0IsQ0FBaEI7QUFDQSxhQUFLQyxnQkFBTCxHQUF3QixLQUF4QjtBQUNBLGFBQUtDLGVBQUwsR0FBdUIsS0FBS0EsZUFBTCxHQUF1QixLQUFLQSxlQUE1QixHQUE4QyxJQUFJQyxhQUFKLEVBQXJFO0FBQ0EsYUFBS0MsTUFBTCxHQUFlLElBQUQsQ0FBY0MsSUFBZCxDQUFtQkMsT0FBbkIsRUFBZDtBQUNBLGFBQUtDLGNBQUwsR0FBc0JDLFdBQVcsQ0FBQ0MsZUFBWixDQUE0QixLQUFLTCxNQUFqQyxDQUF0QjtBQUNBLGFBQUtNLGVBQUwsR0FBdUJDLFNBQVMsQ0FBQ0Msb0JBQVYsQ0FBK0IsS0FBS1IsTUFBcEMsQ0FBdkI7O0FBRUEsWUFBSSxLQUFLTSxlQUFMLElBQXdCLEtBQUtBLGVBQUwsQ0FBcUJHLHNCQUFqRCxFQUF5RTtBQUN4RSxlQUFLSCxlQUFMLENBQXFC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QWlCN0YsV0FBakIsQ0FBNkIsV0FBN0IsRUFBMEMwRixXQUExQztBQUNBL0UsWUFBQUEsVUFBVSxDQUFDcUYsY0FBRCxFQUFpQixHQUFqQixDQUFWO0FBQ0EsV0FORCxNQU1PLElBQ0wsQ0FBQyxLQUFLRCxtQkFBTixJQUE2QkosR0FBRyxDQUFDQyxFQUFKLENBQU9DLE9BQVAsR0FBaUJDLFVBQWpCLEVBQTlCLElBQ0EsS0FBS3BILFFBQUwsS0FBa0IsQ0FEbEIsSUFFQXVILDJCQUEyQixDQUFDQywrQkFBNUIsS0FBZ0UsQ0FGaEUsSUFHQSxLQUFLdkgsZ0JBSkMsRUFLTDtBQUNELGlCQUFLb0gsbUJBQUwsR0FBMkIsSUFBM0I7QUFDQUosWUFBQUEsR0FBRyxDQUFDQyxFQUFKLENBQU9DLE9BQVAsR0FBaUI3RixXQUFqQixDQUE2QixXQUE3QixFQUEwQzBGLFdBQTFDO0FBQ0EvRSxZQUFBQSxVQUFVLENBQUNxRixjQUFELEVBQWlCLEdBQWpCLENBQVY7QUFDQSxXQVRNLE1BU0EsSUFBSSxDQUFDLEtBQUtELG1CQUFWLEVBQStCO0FBQ3JDO0FBQ0E7QUFDQSxpQkFBS2xGLGFBQUwsR0FBcUIsSUFBckI7O0FBQ0EsaUJBQUtqQyxlQUFMLENBQXFCK0MsU0FBckIsQ0FBK0IsV0FBL0I7QUFDQTtBQUNEO0FBQ0Q7Ozs7SUFsWHlDd0UsbUIsaVdBOER6Q0MsTSxFQUNBQyxLLHlvQkFtTEFELE0sRUFDQUMsSyx5SkFLQUQsTSxFQUNBQyxLLDZKQWtCQUQsTSxFQUNBQyxLLDJKQUtBRCxNLEVBQ0FDLEssdUpBS0FELE0sRUFDQUMsSyw2SkF3QkFDLE87U0FxRWFuSSw0QiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgeyBDb250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGEgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnNcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSBcInNhcC9mZS9jb3JlXCI7XG5pbXBvcnQgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IEV2ZW50UHJvdmlkZXIgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50UHJvdmlkZXJcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgeyBVSTVDbGFzcywgT3ZlcnJpZGUsIFB1YmxpYywgRmluYWwsIEV4dGVuc2libGUsIFByaXZhdGUgfSBmcm9tIFwiLi4vaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1RlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCIuLi9Db21tb25VdGlsc1wiO1xuXG5AVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy5QYWdlUmVhZHlcIiwgQ29udHJvbGxlckV4dGVuc2lvbk1ldGFkYXRhKVxuY2xhc3MgUGFnZVJlYWR5Q29udHJvbGxlckV4dGVuc2lvbiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcml2YXRlIF9vRXZlbnRQcm92aWRlciE6IEV2ZW50UHJvdmlkZXI7XG5cdHByaXZhdGUgX29WaWV3OiBhbnk7XG5cdHByaXZhdGUgX29BcHBDb21wb25lbnQhOiBBcHBDb21wb25lbnQ7XG5cdHByaXZhdGUgX29QYWdlQ29tcG9uZW50ITogYW55O1xuXHRwcml2YXRlIF9vQ29udGFpbmVyITogYW55O1xuXHRwcml2YXRlIF9iQWZ0ZXJCaW5kaW5nQWxyZWFkeUFwcGxpZWQhOiBib29sZWFuO1xuXHRwcml2YXRlIF9mbkNvbnRhaW5lckRlbGVnYXRlOiBhbnk7XG5cdHByaXZhdGUgX25iV2FpdHMhOiBudW1iZXI7XG5cdHByaXZhdGUgX2JTZWFjaFRyaWdnZXJlZCE6IGJvb2xlYW47XG5cdHByaXZhdGUgX2JJc1BhZ2VSZWFkeSE6IGJvb2xlYW47XG5cdHByaXZhdGUgX2JXYWl0aW5nRm9yUmVmcmVzaCE6IGJvb2xlYW47XG5cdHByaXZhdGUgYlNob3duITogYm9vbGVhbjtcblx0cHJpdmF0ZSBiSGFzQ29udGV4dCE6IGJvb2xlYW47XG5cdHByaXZhdGUgYkRhdGFSZWNlaXZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBiVGFibGVzTG9hZGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIHBhZ2VSZWFkeVRpbWVyOiBOb2RlSlMuVGltZW91dCB8IHVuZGVmaW5lZDtcblxuXHRAT3ZlcnJpZGUoKVxuXHRwdWJsaWMgb25Jbml0KCkge1xuXHRcdHRoaXMuX25iV2FpdHMgPSAwO1xuXHRcdHRoaXMuX2JTZWFjaFRyaWdnZXJlZCA9IGZhbHNlO1xuXHRcdHRoaXMuX29FdmVudFByb3ZpZGVyID0gdGhpcy5fb0V2ZW50UHJvdmlkZXIgPyB0aGlzLl9vRXZlbnRQcm92aWRlciA6IG5ldyBFdmVudFByb3ZpZGVyKCk7XG5cdFx0dGhpcy5fb1ZpZXcgPSAodGhpcyBhcyBhbnkpLmJhc2UuZ2V0VmlldygpO1xuXHRcdHRoaXMuX29BcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQodGhpcy5fb1ZpZXcpO1xuXHRcdHRoaXMuX29QYWdlQ29tcG9uZW50ID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKHRoaXMuX29WaWV3KTtcblxuXHRcdGlmICh0aGlzLl9vUGFnZUNvbXBvbmVudCAmJiB0aGlzLl9vUGFnZUNvbXBvbmVudC5hdHRhY2hDb250YWluZXJEZWZpbmVkKSB7XG5cdFx0XHR0aGlzLl9vUGFnZUNvbXBvbmVudC5hdHRhY2hDb250YWluZXJEZWZpbmVkKChvRXZlbnQ6IFVJNUV2ZW50KSA9PiB0aGlzLnJlZ2lzdGVyQ29udGFpbmVyKG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb250YWluZXJcIikpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5yZWdpc3RlckNvbnRhaW5lcih0aGlzLl9vVmlldyk7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb1BsYWNlaG9sZGVyID0gKCh0aGlzLl9vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkgYXMgVmlldykuZ2V0Q29udHJvbGxlcigpIGFzIGFueSkuZ2V0UGxhY2Vob2xkZXIoKTtcblx0XHRpZiAob1BsYWNlaG9sZGVyLmlzUGxhY2Vob2xkZXJEZWJ1Z0VuYWJsZWQoKSkge1xuXHRcdFx0dGhpcy5hdHRhY2hFdmVudChcblx0XHRcdFx0XCJwYWdlUmVhZHlcIixcblx0XHRcdFx0bnVsbCxcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdG9QbGFjZWhvbGRlci5nZXRQbGFjZWhvbGRlckRlYnVnU3RhdHMoKS5pUGFnZVJlYWR5RXZlbnRUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR0aGlzXG5cdFx0XHQpO1xuXHRcdFx0dGhpcy5hdHRhY2hFdmVudChcblx0XHRcdFx0XCJoZXJvZXNCYXRjaFJlY2VpdmVkXCIsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRvUGxhY2Vob2xkZXIuZ2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzKCkuaUhlcm9lc0JhdGNoUmVjZWl2ZWRFdmVudFRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoaXNcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0QE92ZXJyaWRlKClcblx0cHVibGljIG9uRXhpdCgpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGRlbGV0ZSB0aGlzLl9vQXBwQ29tcG9uZW50O1xuXHRcdHRoaXMuX29Db250YWluZXIgJiYgdGhpcy5fb0NvbnRhaW5lci5yZW1vdmVFdmVudERlbGVnYXRlKHRoaXMuX2ZuQ29udGFpbmVyRGVsZWdhdGUpO1xuXHR9XG5cblx0QFB1YmxpY1xuXHRARmluYWxcblx0cHVibGljIHdhaXRGb3Iob1Byb21pc2U6IGFueSkge1xuXHRcdHRoaXMuX25iV2FpdHMrKztcblx0XHRvUHJvbWlzZVxuXHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLl9uYldhaXRzLS07XG5cdFx0XHRcdH0sIDApO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChudWxsKTtcblx0fVxuXHRAT3ZlcnJpZGUoXCJfcm91dGluZ1wiKVxuXHRvblJvdXRlTWF0Y2hlZCgpIHtcblx0XHR0aGlzLl9iSXNQYWdlUmVhZHkgPSBmYWxzZTtcblx0fVxuXHRAT3ZlcnJpZGUoXCJfcm91dGluZ1wiKVxuXHRvblJvdXRlTWF0Y2hlZEZpbmlzaGVkKCkge1xuXHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0fVxuXG5cdEBPdmVycmlkZShcIl9yb3V0aW5nXCIpXG5cdG9uQWZ0ZXJCaW5kaW5nKG9CaW5kaW5nQ29udGV4dDogQ29udGV4dCkge1xuXHRcdGlmICghdGhpcy5fYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkKSB7XG5cdFx0XHR0aGlzLl9iQWZ0ZXJCaW5kaW5nQWxyZWFkeUFwcGxpZWQgPSB0cnVlO1xuXHRcdFx0bGV0IGFCb3VuZEVsZW1lbnRzOiBhbnlbXSA9IFtdO1xuXHRcdFx0Y29uc3QgYU5vdEJvdW5kTURDVGFibGVzOiBhbnlbXSA9IFtdO1xuXHRcdFx0bGV0IGlSZXF1ZXN0ZWQgPSAwO1xuXHRcdFx0bGV0IGlSZWNlaXZlZCA9IDA7XG5cdFx0XHRjb25zdCBmblJlcXVlc3RlZCA9IChvRXZlbnQ6IFVJNUV2ZW50KSA9PiB7XG5cdFx0XHRcdG9FdmVudC5nZXRTb3VyY2UoKS5kZXRhY2hEYXRhUmVxdWVzdGVkKGZuUmVxdWVzdGVkKTtcblx0XHRcdFx0aVJlcXVlc3RlZCsrO1xuXHRcdFx0XHR0aGlzLmJEYXRhUmVjZWl2ZWQgPSBmYWxzZTtcblx0XHRcdH07XG5cdFx0XHRjb25zdCBmblJlY2VpdmVkID0gKG9FdmVudDogVUk1RXZlbnQpID0+IHtcblx0XHRcdFx0c3dpdGNoIChvRXZlbnQuZ2V0U291cmNlKCkuc0dyb3VwSWQpIHtcblx0XHRcdFx0XHRjYXNlIFwiJGF1dG8uV29ya2Vyc1wiOlxuXHRcdFx0XHRcdFx0dGhpcy5fb0V2ZW50UHJvdmlkZXIuZmlyZUV2ZW50KFwid29ya2Vyc0JhdGNoUmVjZWl2ZWRcIik7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFwiJGF1dG8uSGVyb2VzXCI6XG5cdFx0XHRcdFx0XHR0aGlzLl9vRXZlbnRQcm92aWRlci5maXJlRXZlbnQoXCJoZXJvZXNCYXRjaFJlY2VpdmVkXCIpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0fVxuXHRcdFx0XHRvRXZlbnQuZ2V0U291cmNlKCkuZGV0YWNoRGF0YVJlY2VpdmVkKGZuUmVjZWl2ZWQpO1xuXHRcdFx0XHRpUmVjZWl2ZWQrKztcblx0XHRcdFx0aWYgKGlSZWNlaXZlZCA+PSBpUmVxdWVzdGVkICYmIGlSZXF1ZXN0ZWQgIT09IDApIHtcblx0XHRcdFx0XHRpUmVxdWVzdGVkID0gMDtcblx0XHRcdFx0XHRpUmVjZWl2ZWQgPSAwO1xuXHRcdFx0XHRcdHRoaXMuYkRhdGFSZWNlaXZlZCA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgZm5TZWFyY2ggPSAob0V2ZW50OiBVSTVFdmVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBhTURDVGFibGVzID0gYU5vdEJvdW5kTURDVGFibGVzLmZpbHRlcihvRWxlbSA9PiB7XG5cdFx0XHRcdFx0aWYgKG9FdmVudC5nZXRTb3VyY2UoKS5zSWQgPT09IG9FbGVtLmdldEZpbHRlcigpICYmIG9FbGVtLmdldFZpc2libGUoKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGlmIChhTURDVGFibGVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHR0aGlzLl9iU2VhY2hUcmlnZ2VyZWQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFNRENUYWJsZXMuZm9yRWFjaCgob01EQ1RhYmxlOiBhbnkpID0+IHtcblx0XHRcdFx0XHRsZXQgb1Jvd0JpbmRpbmcgPSBvTURDVGFibGUuZ2V0Um93QmluZGluZygpO1xuXHRcdFx0XHRcdGNvbnN0IGZuQXR0YWNoRGF0YUV2ZW50cyA9ICgpID0+IHtcblx0XHRcdFx0XHRcdG9Sb3dCaW5kaW5nLmF0dGFjaERhdGFSZXF1ZXN0ZWQoZm5SZXF1ZXN0ZWQpO1xuXHRcdFx0XHRcdFx0b1Jvd0JpbmRpbmcuYXR0YWNoRGF0YVJlY2VpdmVkKChvRXZlbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRmblJlY2VpdmVkKG9FdmVudCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2JTZWFjaFRyaWdnZXJlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRhQm91bmRFbGVtZW50cy5wdXNoKG9Sb3dCaW5kaW5nKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGlmIChvUm93QmluZGluZykge1xuXHRcdFx0XHRcdFx0Zm5BdHRhY2hEYXRhRXZlbnRzKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG9NRENUYWJsZS5hdHRhY2hFdmVudE9uY2UoXG5cdFx0XHRcdFx0XHRcdFwiYmluZGluZ1VwZGF0ZWRcIixcblx0XHRcdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdG9Sb3dCaW5kaW5nID0gb01EQ1RhYmxlLmdldFJvd0JpbmRpbmcoKTtcblx0XHRcdFx0XHRcdFx0XHRmbkF0dGFjaERhdGFFdmVudHMoKTtcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0bnVsbFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fTtcblx0XHRcdGlmICh0aGlzLmlzQ29udGV4dEV4cGVjdGVkKCkgJiYgb0JpbmRpbmdDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Ly8gRm9yY2UgdG8gbWVudGlvbiB3ZSBhcmUgZXhwZWN0aW5nIGRhdGFcblx0XHRcdFx0dGhpcy5iSGFzQ29udGV4dCA9IGZhbHNlO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmJIYXNDb250ZXh0ID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5hdHRhY2hFdmVudE9uY2UoXG5cdFx0XHRcdFwicGFnZVJlYWR5XCIsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRhQm91bmRFbGVtZW50cy5mb3JFYWNoKChvRWxlbWVudDogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRvRWxlbWVudC5kZXRhY2hFdmVudChcImRhdGFSZXF1ZXN0ZWRcIiwgZm5SZXF1ZXN0ZWQpO1xuXHRcdFx0XHRcdFx0b0VsZW1lbnQuZGV0YWNoRXZlbnQoXCJkYXRhUmVjZWl2ZWRcIiwgZm5SZWNlaXZlZCk7XG5cdFx0XHRcdFx0XHRvRWxlbWVudC5kZXRhY2hFdmVudChcInNlYXJjaFwiLCBmblNlYXJjaCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy5fYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkID0gZmFsc2U7XG5cdFx0XHRcdFx0YUJvdW5kRWxlbWVudHMgPSBbXTtcblx0XHRcdFx0fSxcblx0XHRcdFx0bnVsbFxuXHRcdFx0KTtcblx0XHRcdGlmIChvQmluZGluZ0NvbnRleHQpIHtcblx0XHRcdFx0Y29uc3QgbWFpbk9iamVjdEJpbmRpbmcgPSAob0JpbmRpbmdDb250ZXh0IGFzIGFueSkuZ2V0QmluZGluZygpO1xuXHRcdFx0XHRtYWluT2JqZWN0QmluZGluZy5hdHRhY2hEYXRhUmVxdWVzdGVkKGZuUmVxdWVzdGVkKTtcblx0XHRcdFx0bWFpbk9iamVjdEJpbmRpbmcuYXR0YWNoRGF0YVJlY2VpdmVkKGZuUmVjZWl2ZWQpO1xuXHRcdFx0XHRhQm91bmRFbGVtZW50cy5wdXNoKG1haW5PYmplY3RCaW5kaW5nKTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgYVRhYmxlSW5pdGlhbGl6ZWRQcm9taXNlczogUHJvbWlzZTxhbnk+W10gPSBbXTtcblx0XHRcdHRoaXMuX29WaWV3LmZpbmRBZ2dyZWdhdGVkT2JqZWN0cyh0cnVlLCAob0VsZW1lbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvT2JqZWN0QmluZGluZyA9IG9FbGVtZW50LmdldE9iamVjdEJpbmRpbmcoKTtcblx0XHRcdFx0aWYgKG9PYmplY3RCaW5kaW5nKSB7XG5cdFx0XHRcdFx0Ly8gUmVnaXN0ZXIgb24gYWxsIG9iamVjdCBiaW5kaW5nIChtb3N0bHkgdXNlZCBvbiBvYmplY3QgcGFnZXMpXG5cdFx0XHRcdFx0b09iamVjdEJpbmRpbmcuYXR0YWNoRGF0YVJlcXVlc3RlZChmblJlcXVlc3RlZCk7XG5cdFx0XHRcdFx0b09iamVjdEJpbmRpbmcuYXR0YWNoRGF0YVJlY2VpdmVkKGZuUmVjZWl2ZWQpO1xuXHRcdFx0XHRcdGFCb3VuZEVsZW1lbnRzLnB1c2gob09iamVjdEJpbmRpbmcpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnN0IGFCaW5kaW5nS2V5cyA9IE9iamVjdC5rZXlzKG9FbGVtZW50Lm1CaW5kaW5nSW5mb3MpO1xuXHRcdFx0XHRcdGlmIChhQmluZGluZ0tleXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YUJpbmRpbmdLZXlzLmZvckVhY2goc1Byb3BlcnR5TmFtZSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IG9MaXN0QmluZGluZyA9IG9FbGVtZW50Lm1CaW5kaW5nSW5mb3Nbc1Byb3BlcnR5TmFtZV0uYmluZGluZztcblx0XHRcdFx0XHRcdFx0Ly8gUmVnaXN0ZXIgb24gYWxsIGxpc3QgYmluZGluZywgZ29vZCBmb3IgYmFzaWMgdGFibGVzLCBwcm9ibGVtYXRpYyBmb3IgTURDLCBzZWUgYWJvdmVcblx0XHRcdFx0XHRcdFx0aWYgKG9MaXN0QmluZGluZyAmJiBvTGlzdEJpbmRpbmcuaXNBKFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0Lk9EYXRhTGlzdEJpbmRpbmdcIikpIHtcblx0XHRcdFx0XHRcdFx0XHRvTGlzdEJpbmRpbmcuYXR0YWNoRGF0YVJlcXVlc3RlZChmblJlcXVlc3RlZCk7XG5cdFx0XHRcdFx0XHRcdFx0b0xpc3RCaW5kaW5nLmF0dGFjaERhdGFSZWNlaXZlZChmblJlY2VpdmVkKTtcblx0XHRcdFx0XHRcdFx0XHRhQm91bmRFbGVtZW50cy5wdXNoKG9MaXN0QmluZGluZyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBUaGlzIGlzIGRpcnR5IGJ1dCBNREMgVGFibGUgaGFzIGEgd2VpcmQgbG9hZGluZyBsaWZlY3ljbGVcblx0XHRcdFx0aWYgKG9FbGVtZW50LmlzQShcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdFx0XHR0aGlzLmJUYWJsZXNMb2FkZWQgPSBmYWxzZTtcblx0XHRcdFx0XHQvLyBhY2Nlc3MgYmluZGluZyBvbmx5IGFmdGVyIHRhYmxlIGlzIGJvdW5kXG5cdFx0XHRcdFx0YVRhYmxlSW5pdGlhbGl6ZWRQcm9taXNlcy5wdXNoKFxuXHRcdFx0XHRcdFx0b0VsZW1lbnRcblx0XHRcdFx0XHRcdFx0LmluaXRpYWxpemVkKClcblx0XHRcdFx0XHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IG9Sb3dCaW5kaW5nID0gb0VsZW1lbnQuZ2V0Um93QmluZGluZygpO1xuXHRcdFx0XHRcdFx0XHRcdGlmIChvUm93QmluZGluZykge1xuXHRcdFx0XHRcdFx0XHRcdFx0b1Jvd0JpbmRpbmcuYXR0YWNoRGF0YVJlcXVlc3RlZChmblJlcXVlc3RlZCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRvUm93QmluZGluZy5hdHRhY2hEYXRhUmVjZWl2ZWQoZm5SZWNlaXZlZCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRhQm91bmRFbGVtZW50cy5wdXNoKG9Sb3dCaW5kaW5nKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0YU5vdEJvdW5kTURDVGFibGVzLnB1c2gob0VsZW1lbnQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uKG9FcnJvcjogRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgZmluZCBhIGJvdW5kIHRhYmxlXCIsIG9FcnJvciBhcyBhbnkpO1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAob0VsZW1lbnQuaXNBKFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCIpKSB7XG5cdFx0XHRcdFx0b0VsZW1lbnQuYXR0YWNoRXZlbnQoXCJzZWFyY2hcIiwgZm5TZWFyY2gpO1xuXHRcdFx0XHRcdGFCb3VuZEVsZW1lbnRzLnB1c2gob0VsZW1lbnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGlmIChhVGFibGVJbml0aWFsaXplZFByb21pc2VzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0UHJvbWlzZS5hbGwoYVRhYmxlSW5pdGlhbGl6ZWRQcm9taXNlcylcblx0XHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLmJUYWJsZXNMb2FkZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0dGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmNhdGNoKG9FcnJvciA9PiB7XG5cdFx0XHRcdFx0XHRMb2cuaW5mbyhcIlRoZXJlIHdhcyBhbiBlcnJvciB3aXRoIG9uZSBvciBtdWx0aXBsZSB0YWJsZVwiLCBvRXJyb3IpO1xuXHRcdFx0XHRcdFx0dGhpcy5iVGFibGVzTG9hZGVkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAUHVibGljXG5cdEBGaW5hbFxuXHRwdWJsaWMgaXNQYWdlUmVhZHkoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2JJc1BhZ2VSZWFkeTtcblx0fVxuXG5cdEBQdWJsaWNcblx0QEZpbmFsXG5cdHB1YmxpYyB3YWl0UGFnZVJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcblx0XHRcdGlmICh0aGlzLmlzUGFnZVJlYWR5KCkpIHtcblx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5hdHRhY2hFdmVudE9uY2UoXG5cdFx0XHRcdFx0XCJwYWdlUmVhZHlcIixcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRoaXNcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdEBQdWJsaWNcblx0QEZpbmFsXG5cdHB1YmxpYyBhdHRhY2hFdmVudE9uY2Uoc0V2ZW50SWQ6IHN0cmluZywgb0RhdGE6IGFueSwgZm5GdW5jdGlvbjogRnVuY3Rpb24sIG9MaXN0ZW5lcjogYW55KSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuXHRcdHJldHVybiB0aGlzLl9vRXZlbnRQcm92aWRlci5hdHRhY2hFdmVudE9uY2Uoc0V2ZW50SWQsIG9EYXRhLCBmbkZ1bmN0aW9uLCBvTGlzdGVuZXIpO1xuXHR9XG5cdEBQdWJsaWNcblx0QEZpbmFsXG5cdHB1YmxpYyBhdHRhY2hFdmVudChzRXZlbnRJZDogc3RyaW5nLCBvRGF0YTogYW55LCBmbkZ1bmN0aW9uOiBGdW5jdGlvbiwgb0xpc3RlbmVyOiBhbnkpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG5cdFx0cmV0dXJuIHRoaXMuX29FdmVudFByb3ZpZGVyLmF0dGFjaEV2ZW50KHNFdmVudElkLCBvRGF0YSwgZm5GdW5jdGlvbiwgb0xpc3RlbmVyKTtcblx0fVxuXHRAUHVibGljXG5cdEBGaW5hbFxuXHRwdWJsaWMgZGV0YWNoRXZlbnQoc0V2ZW50SWQ6IHN0cmluZywgZm5GdW5jdGlvbjogRnVuY3Rpb24pIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG5cdFx0cmV0dXJuIHRoaXMuX29FdmVudFByb3ZpZGVyLmRldGFjaEV2ZW50KHNFdmVudElkLCBmbkZ1bmN0aW9uKTtcblx0fVxuXHRwcml2YXRlIHJlZ2lzdGVyQ29udGFpbmVyKG9Db250YWluZXI6IE1hbmFnZWRPYmplY3QpIHtcblx0XHR0aGlzLl9vQ29udGFpbmVyID0gb0NvbnRhaW5lcjtcblx0XHR0aGlzLl9mbkNvbnRhaW5lckRlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVTaG93OiAoKSA9PiB7XG5cdFx0XHRcdHRoaXMuYlNob3duID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuX2JJc1BhZ2VSZWFkeSA9IGZhbHNlO1xuXHRcdFx0fSxcblx0XHRcdG9uQmVmb3JlSGlkZTogKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmJTaG93biA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLl9iSXNQYWdlUmVhZHkgPSBmYWxzZTtcblx0XHRcdH0sXG5cdFx0XHRvbkFmdGVyU2hvdzogKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmJTaG93biA9IHRydWU7XG5cdFx0XHRcdHRoaXMuX2NoZWNrUGFnZVJlYWR5KHRydWUpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0dGhpcy5fb0NvbnRhaW5lci5hZGRFdmVudERlbGVnYXRlKHRoaXMuX2ZuQ29udGFpbmVyRGVsZWdhdGUpO1xuXHR9XG5cblx0QFByaXZhdGVcblx0QEV4dGVuc2libGUoT3ZlcnJpZGVFeGVjdXRpb24uSW5zdGVhZClcblx0cHVibGljIGlzQ29udGV4dEV4cGVjdGVkKCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHB1YmxpYyBjaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpIHtcblx0XHRpZiAodGhpcy5wYWdlUmVhZHlUaW1lcikge1xuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMucGFnZVJlYWR5VGltZXIpO1xuXHRcdH1cblx0XHR0aGlzLnBhZ2VSZWFkeVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLl9jaGVja1BhZ2VSZWFkeSgpO1xuXHRcdH0sIDIwMCk7XG5cdH1cblxuXHRwdWJsaWMgX2NoZWNrUGFnZVJlYWR5KGJGcm9tTmF2OiBib29sZWFuID0gZmFsc2UpIHtcblx0XHRjb25zdCBmblVJVXBkYXRlZCA9ICgpID0+IHtcblx0XHRcdC8vIFdhaXQgdW50aWwgdGhlIFVJIGlzIG5vIGxvbmdlciBkaXJ0eVxuXHRcdFx0aWYgKCFzYXAudWkuZ2V0Q29yZSgpLmdldFVJRGlydHkoKSkge1xuXHRcdFx0XHRzYXAudWkuZ2V0Q29yZSgpLmRldGFjaEV2ZW50KFwiVUlVcGRhdGVkXCIsIGZuVUlVcGRhdGVkKTtcblx0XHRcdFx0dGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoID0gZmFsc2U7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX2NoZWNrUGFnZVJlYWR5KCk7XG5cdFx0XHRcdH0sIDIwKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0Ly8gSW4gY2FzZSBVSVVwZGF0ZSBkb2VzIG5vdCBnZXQgY2FsbGVkLCBjaGVjayBpZiBVSSBpcyBub3QgZGlydHkgYW5kIHRoZW4gY2FsbCBfY2hlY2tQYWdlUmVhZHlcblx0XHRjb25zdCBjaGVja1VJVXBkYXRlZCA9ICgpID0+IHtcblx0XHRcdGlmIChzYXAudWkuZ2V0Q29yZSgpLmdldFVJRGlydHkoKSkge1xuXHRcdFx0XHRzZXRUaW1lb3V0KGNoZWNrVUlVcGRhdGVkLCA1MDApO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2gpIHtcblx0XHRcdFx0dGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoID0gZmFsc2U7XG5cdFx0XHRcdHNhcC51aS5nZXRDb3JlKCkuZGV0YWNoRXZlbnQoXCJVSVVwZGF0ZWRcIiwgZm5VSVVwZGF0ZWQpO1xuXHRcdFx0XHR0aGlzLl9jaGVja1BhZ2VSZWFkeSgpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRpZiAoXG5cdFx0XHR0aGlzLmJTaG93biAmJlxuXHRcdFx0dGhpcy5iRGF0YVJlY2VpdmVkICE9PSBmYWxzZSAmJlxuXHRcdFx0dGhpcy5iVGFibGVzTG9hZGVkICE9PSBmYWxzZSAmJlxuXHRcdFx0KCF0aGlzLmlzQ29udGV4dEV4cGVjdGVkKCkgfHwgdGhpcy5iSGFzQ29udGV4dCkgLy8gRWl0aGVyIG5vIGNvbnRleHQgaXMgZXhwZWN0ZWQgb3IgdGhlcmUgaXMgb25lXG5cdFx0KSB7XG5cdFx0XHRpZiAodGhpcy5iRGF0YVJlY2VpdmVkID09PSB0cnVlICYmICFiRnJvbU5hdiAmJiAhdGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoICYmIHNhcC51aS5nZXRDb3JlKCkuZ2V0VUlEaXJ0eSgpKSB7XG5cdFx0XHRcdC8vIElmIHdlIHJlcXVlc3RlZCBkYXRhIHdlIGdldCBub3RpZmllZCBhcyBzb29uIGFzIHRoZSBkYXRhIGFycml2ZWQsIHNvIGJlZm9yZSB0aGUgbmV4dCByZW5kZXJpbmcgdGlja1xuXHRcdFx0XHR0aGlzLmJEYXRhUmVjZWl2ZWQgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdHRoaXMuX2JXYWl0aW5nRm9yUmVmcmVzaCA9IHRydWU7XG5cdFx0XHRcdHNhcC51aS5nZXRDb3JlKCkuYXR0YWNoRXZlbnQoXCJVSVVwZGF0ZWRcIiwgZm5VSVVwZGF0ZWQpO1xuXHRcdFx0XHRzZXRUaW1lb3V0KGNoZWNrVUlVcGRhdGVkLCA1MDApO1xuXHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0KCF0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggJiYgc2FwLnVpLmdldENvcmUoKS5nZXRVSURpcnR5KCkpIHx8XG5cdFx0XHRcdHRoaXMuX25iV2FpdHMgIT09IDAgfHxcblx0XHRcdFx0VGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5LmdldE51bWJlck9mVmlld3NJbkNyZWF0aW9uU3RhdGUoKSA+IDAgfHxcblx0XHRcdFx0dGhpcy5fYlNlYWNoVHJpZ2dlcmVkXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoID0gdHJ1ZTtcblx0XHRcdFx0c2FwLnVpLmdldENvcmUoKS5hdHRhY2hFdmVudChcIlVJVXBkYXRlZFwiLCBmblVJVXBkYXRlZCk7XG5cdFx0XHRcdHNldFRpbWVvdXQoY2hlY2tVSVVwZGF0ZWQsIDUwMCk7XG5cdFx0XHR9IGVsc2UgaWYgKCF0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2gpIHtcblx0XHRcdFx0Ly8gSW4gdGhlIGNhc2Ugd2UncmUgbm90IHdhaXRpbmcgZm9yIGFueSBkYXRhIChuYXZpZ2F0aW5nIGJhY2sgdG8gYSBwYWdlIHdlIGFscmVhZHkgaGF2ZSBsb2FkZWQpXG5cdFx0XHRcdC8vIGp1c3Qgd2FpdCBmb3IgYSBmcmFtZSB0byBmaXJlIHRoZSBldmVudC5cblx0XHRcdFx0dGhpcy5fYklzUGFnZVJlYWR5ID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy5fb0V2ZW50UHJvdmlkZXIuZmlyZUV2ZW50KFwicGFnZVJlYWR5XCIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBQYWdlUmVhZHlDb250cm9sbGVyRXh0ZW5zaW9uO1xuIl19
382
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlBhZ2VSZWFkeS50cyJdLCJuYW1lcyI6WyJQYWdlUmVhZHlDb250cm9sbGVyRXh0ZW5zaW9uIiwiVUk1Q2xhc3MiLCJDb250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGEiLCJPdmVycmlkZSIsIkV4dGVuc2libGUiLCJPdmVycmlkZUV4ZWN1dGlvbiIsIkluc3RlYWQiLCJvbkluaXQiLCJfbmJXYWl0cyIsIl9iU2VhY2hUcmlnZ2VyZWQiLCJfb0V2ZW50UHJvdmlkZXIiLCJFdmVudFByb3ZpZGVyIiwiX29WaWV3IiwiYmFzZSIsImdldFZpZXciLCJfb0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiX29QYWdlQ29tcG9uZW50IiwiQ29tcG9uZW50IiwiZ2V0T3duZXJDb21wb25lbnRGb3IiLCJhdHRhY2hDb250YWluZXJEZWZpbmVkIiwib0V2ZW50IiwicmVnaXN0ZXJDb250YWluZXIiLCJnZXRQYXJhbWV0ZXIiLCJvUGxhY2Vob2xkZXIiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJnZXRQbGFjZWhvbGRlciIsImlzUGxhY2Vob2xkZXJEZWJ1Z0VuYWJsZWQiLCJhdHRhY2hFdmVudCIsImdldFBsYWNlaG9sZGVyRGVidWdTdGF0cyIsImlQYWdlUmVhZHlFdmVudFRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJpSGVyb2VzQmF0Y2hSZWNlaXZlZEV2ZW50VGltZXN0YW1wIiwib25FeGl0IiwiX29Db250YWluZXIiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiX2ZuQ29udGFpbmVyRGVsZWdhdGUiLCJ3YWl0Rm9yIiwib1Byb21pc2UiLCJmaW5hbGx5Iiwic2V0VGltZW91dCIsImNhdGNoIiwib25Sb3V0ZU1hdGNoZWQiLCJfYklzUGFnZVJlYWR5Iiwib25Sb3V0ZU1hdGNoZWRGaW5pc2hlZCIsImNoZWNrUGFnZVJlYWR5RGVib3VuY2VkIiwib25BZnRlckJpbmRpbmciLCJvQmluZGluZ0NvbnRleHQiLCJfYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkIiwiYUJvdW5kRWxlbWVudHMiLCJhTm90Qm91bmRNRENUYWJsZXMiLCJpUmVxdWVzdGVkIiwiaVJlY2VpdmVkIiwiZm5SZXF1ZXN0ZWQiLCJnZXRTb3VyY2UiLCJkZXRhY2hEYXRhUmVxdWVzdGVkIiwiYkRhdGFSZWNlaXZlZCIsImZuUmVjZWl2ZWQiLCJzR3JvdXBJZCIsImZpcmVFdmVudCIsImRldGFjaERhdGFSZWNlaXZlZCIsImZuU2VhcmNoIiwiYU1EQ1RhYmxlcyIsImZpbHRlciIsIm9FbGVtIiwic0lkIiwiZ2V0RmlsdGVyIiwiZ2V0VmlzaWJsZSIsImxlbmd0aCIsImZvckVhY2giLCJvTURDVGFibGUiLCJvUm93QmluZGluZyIsImdldFJvd0JpbmRpbmciLCJmbkF0dGFjaERhdGFFdmVudHMiLCJhdHRhY2hEYXRhUmVxdWVzdGVkIiwiYXR0YWNoRGF0YVJlY2VpdmVkIiwicHVzaCIsImF0dGFjaEV2ZW50T25jZSIsImlzQ29udGV4dEV4cGVjdGVkIiwidW5kZWZpbmVkIiwiYkhhc0NvbnRleHQiLCJvRWxlbWVudCIsImRldGFjaEV2ZW50IiwibWFpbk9iamVjdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwiYVRhYmxlSW5pdGlhbGl6ZWRQcm9taXNlcyIsImZpbmRBZ2dyZWdhdGVkT2JqZWN0cyIsIm9PYmplY3RCaW5kaW5nIiwiZ2V0T2JqZWN0QmluZGluZyIsImFCaW5kaW5nS2V5cyIsIk9iamVjdCIsImtleXMiLCJtQmluZGluZ0luZm9zIiwic1Byb3BlcnR5TmFtZSIsIm9MaXN0QmluZGluZyIsImJpbmRpbmciLCJpc0EiLCJiVGFibGVzTG9hZGVkIiwiaW5pdGlhbGl6ZWQiLCJ0aGVuIiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJQcm9taXNlIiwiYWxsIiwiaW5mbyIsImlzUGFnZVJlYWR5Iiwid2FpdFBhZ2VSZWFkeSIsInJlc29sdmUiLCJzRXZlbnRJZCIsIm9EYXRhIiwiZm5GdW5jdGlvbiIsIm9MaXN0ZW5lciIsIm9Db250YWluZXIiLCJvbkJlZm9yZVNob3ciLCJiU2hvd24iLCJvbkJlZm9yZUhpZGUiLCJvbkFmdGVyU2hvdyIsIl9jaGVja1BhZ2VSZWFkeSIsImFkZEV2ZW50RGVsZWdhdGUiLCJwYWdlUmVhZHlUaW1lciIsImNsZWFyVGltZW91dCIsImJGcm9tTmF2IiwiZm5VSVVwZGF0ZWQiLCJzYXAiLCJ1aSIsImdldENvcmUiLCJnZXRVSURpcnR5IiwiX2JXYWl0aW5nRm9yUmVmcmVzaCIsImNoZWNrVUlVcGRhdGVkIiwiVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5IiwiZ2V0TnVtYmVyT2ZWaWV3c0luQ3JlYXRpb25TdGF0ZSIsIkNvbnRyb2xsZXJFeHRlbnNpb24iLCJQdWJsaWMiLCJGaW5hbCIsIlByaXZhdGUiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFjTUEsNEIsV0FETEMsUUFBUSxDQUFDLDRDQUFELEVBQStDQywyQkFBL0MsQyxVQW1CUEMsUUFBUSxFLFVBb0NSQSxRQUFRLEUsVUFvQlJBLFFBQVEsQ0FBQyxVQUFELEMsVUFJUkEsUUFBUSxDQUFDLFVBQUQsQyxVQUtSQSxRQUFRLENBQUMsVUFBRCxDLFVBOE5SQyxVQUFVLENBQUNDLGlCQUFpQixDQUFDQyxPQUFuQixDOzs7Ozs7Ozs7V0E5UkpDLE0sR0FEUCxrQkFDZ0I7QUFBQTs7QUFDZixXQUFLQyxRQUFMLEdBQWdCLENBQWhCO0FBQ0EsV0FBS0MsZ0JBQUwsR0FBd0IsS0FBeEI7QUFDQSxXQUFLQyxlQUFMLEdBQXVCLEtBQUtBLGVBQUwsR0FBdUIsS0FBS0EsZUFBNUIsR0FBOEMsSUFBSUMsYUFBSixFQUFyRTtBQUNBLFdBQUtDLE1BQUwsR0FBZSxJQUFELENBQWNDLElBQWQsQ0FBbUJDLE9BQW5CLEVBQWQ7QUFDQSxXQUFLQyxjQUFMLEdBQXNCQyxXQUFXLENBQUNDLGVBQVosQ0FBNEIsS0FBS0wsTUFBakMsQ0FBdEI7QUFDQSxXQUFLTSxlQUFMLEdBQXVCQyxTQUFTLENBQUNDLG9CQUFWLENBQStCLEtBQUtSLE1B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dUpBS0FELE0sRUFDQUMsSyw2SkF3QkFDLE8sZ0xBTUFGLE07U0FnRWF4SSw0QiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgQ29udHJvbGxlckV4dGVuc2lvbk1ldGFkYXRhIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9Db250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGFcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IEV2ZW50UHJvdmlkZXIgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50UHJvdmlkZXJcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgeyBVSTVDbGFzcywgT3ZlcnJpZGUsIFB1YmxpYywgRmluYWwsIEV4dGVuc2libGUsIFByaXZhdGUgfSBmcm9tIFwiLi4vaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1RlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCIuLi9Db21tb25VdGlsc1wiO1xuXG5AVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy5QYWdlUmVhZHlcIiwgQ29udHJvbGxlckV4dGVuc2lvbk1ldGFkYXRhKVxuY2xhc3MgUGFnZVJlYWR5Q29udHJvbGxlckV4dGVuc2lvbiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcml2YXRlIF9vRXZlbnRQcm92aWRlciE6IEV2ZW50UHJvdmlkZXI7XG5cdHByaXZhdGUgX29WaWV3OiBhbnk7XG5cdHByaXZhdGUgX29BcHBDb21wb25lbnQhOiBBcHBDb21wb25lbnQ7XG5cdHByaXZhdGUgX29QYWdlQ29tcG9uZW50ITogYW55O1xuXHRwcml2YXRlIF9vQ29udGFpbmVyITogYW55O1xuXHRwcml2YXRlIF9iQWZ0ZXJCaW5kaW5nQWxyZWFkeUFwcGxpZWQhOiBib29sZWFuO1xuXHRwcml2YXRlIF9mbkNvbnRhaW5lckRlbGVnYXRlOiBhbnk7XG5cdHByaXZhdGUgX25iV2FpdHMhOiBudW1iZXI7XG5cdHByaXZhdGUgX2JTZWFjaFRyaWdnZXJlZCE6IGJvb2xlYW47XG5cdHByaXZhdGUgX2JJc1BhZ2VSZWFkeSE6IGJvb2xlYW47XG5cdHByaXZhdGUgX2JXYWl0aW5nRm9yUmVmcmVzaCE6IGJvb2xlYW47XG5cdHByaXZhdGUgYlNob3duITogYm9vbGVhbjtcblx0cHJpdmF0ZSBiSGFzQ29udGV4dCE6IGJvb2xlYW47XG5cdHByaXZhdGUgYkRhdGFSZWNlaXZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBiVGFibGVzTG9hZGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIHBhZ2VSZWFkeVRpbWVyOiBOb2RlSlMuVGltZW91dCB8IHVuZGVmaW5lZDtcblxuXHRAT3ZlcnJpZGUoKVxuXHRwdWJsaWMgb25Jbml0KCkge1xuXHRcdHRoaXMuX25iV2FpdHMgPSAwO1xuXHRcdHRoaXMuX2JTZWFjaFRyaWdnZXJlZCA9IGZhbHNlO1xuXHRcdHRoaXMuX29FdmVudFByb3ZpZGVyID0gdGhpcy5fb0V2ZW50UHJvdmlkZXIgPyB0aGlzLl9vRXZlbnRQcm92aWRlciA6IG5ldyBFdmVudFByb3ZpZGVyKCk7XG5cdFx0dGhpcy5fb1ZpZXcgPSAodGhpcyBhcyBhbnkpLmJhc2UuZ2V0VmlldygpO1xuXHRcdHRoaXMuX29BcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQodGhpcy5fb1ZpZXcpO1xuXHRcdHRoaXMuX29QYWdlQ29tcG9uZW50ID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKHRoaXMuX29WaWV3KTtcblxuXHRcdGlmICh0aGlzLl9vUGFnZUNvbXBvbmVudCAmJiB0aGlzLl9vUGFnZUNvbXBvbmVudC5hdHRhY2hDb250YWluZXJEZWZpbmVkKSB7XG5cdFx0XHR0aGlzLl9vUGFnZUNvbXBvbmVudC5hdHRhY2hDb250YWluZXJEZWZpbmVkKChvRXZlbnQ6IEV2ZW50KSA9PiB0aGlzLnJlZ2lzdGVyQ29udGFpbmVyKG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb250YWluZXJcIikpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5yZWdpc3RlckNvbnRhaW5lcih0aGlzLl9vVmlldyk7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb1BsYWNlaG9sZGVyID0gKCh0aGlzLl9vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkgYXMgVmlldykuZ2V0Q29udHJvbGxlcigpIGFzIGFueSkuZ2V0UGxhY2Vob2xkZXIoKTtcblx0XHRpZiAob1BsYWNlaG9sZGVyLmlzUGxhY2Vob2xkZXJEZWJ1Z0VuYWJsZWQoKSkge1xuXHRcdFx0dGhpcy5hdHRhY2hFdmVudChcblx0XHRcdFx0XCJwYWdlUmVhZHlcIixcblx0XHRcdFx0bnVsbCxcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdG9QbGFjZWhvbGRlci5nZXRQbGFjZWhvbGRlckRlYnVnU3RhdHMoKS5pUGFnZVJlYWR5RXZlbnRUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR0aGlzXG5cdFx0XHQpO1xuXHRcdFx0dGhpcy5hdHRhY2hFdmVudChcblx0XHRcdFx0XCJoZXJvZXNCYXRjaFJlY2VpdmVkXCIsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRvUGxhY2Vob2xkZXIuZ2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzKCkuaUhlcm9lc0JhdGNoUmVjZWl2ZWRFdmVudFRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoaXNcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0QE92ZXJyaWRlKClcblx0cHVibGljIG9uRXhpdCgpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGRlbGV0ZSB0aGlzLl9vQXBwQ29tcG9uZW50O1xuXHRcdHRoaXMuX29Db250YWluZXIgJiYgdGhpcy5fb0NvbnRhaW5lci5yZW1vdmVFdmVudERlbGVnYXRlKHRoaXMuX2ZuQ29udGFpbmVyRGVsZWdhdGUpO1xuXHR9XG5cblx0QFB1YmxpY1xuXHRARmluYWxcblx0cHVibGljIHdhaXRGb3Iob1Byb21pc2U6IGFueSkge1xuXHRcdHRoaXMuX25iV2FpdHMrKztcblx0XHRvUHJvbWlzZVxuXHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLl9uYldhaXRzLS07XG5cdFx0XHRcdH0sIDApO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChudWxsKTtcblx0fVxuXHRAT3ZlcnJpZGUoXCJfcm91dGluZ1wiKVxuXHRvblJvdXRlTWF0Y2hlZCgpIHtcblx0XHR0aGlzLl9iSXNQYWdlUmVhZHkgPSBmYWxzZTtcblx0fVxuXHRAT3ZlcnJpZGUoXCJfcm91dGluZ1wiKVxuXHRvblJvdXRlTWF0Y2hlZEZpbmlzaGVkKCkge1xuXHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0fVxuXG5cdEBPdmVycmlkZShcIl9yb3V0aW5nXCIpXG5cdG9uQWZ0ZXJCaW5kaW5nKG9CaW5kaW5nQ29udGV4dDogQ29udGV4dCkge1xuXHRcdGlmICghdGhpcy5fYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkKSB7XG5cdFx0XHR0aGlzLl9iQWZ0ZXJCaW5kaW5nQWxyZWFkeUFwcGxpZWQgPSB0cnVlO1xuXHRcdFx0bGV0IGFCb3VuZEVsZW1lbnRzOiBhbnlbXSA9IFtdO1xuXHRcdFx0Y29uc3QgYU5vdEJvdW5kTURDVGFibGVzOiBhbnlbXSA9IFtdO1xuXHRcdFx0bGV0IGlSZXF1ZXN0ZWQgPSAwO1xuXHRcdFx0bGV0IGlSZWNlaXZlZCA9IDA7XG5cdFx0XHRjb25zdCBmblJlcXVlc3RlZCA9IChvRXZlbnQ6IEV2ZW50KSA9PiB7XG5cdFx0XHRcdChvRXZlbnQuZ2V0U291cmNlKCkgYXMgYW55KS5kZXRhY2hEYXRhUmVxdWVzdGVkKGZuUmVxdWVzdGVkKTtcblx0XHRcdFx0aVJlcXVlc3RlZCsrO1xuXHRcdFx0XHR0aGlzLmJEYXRhUmVjZWl2ZWQgPSBmYWxzZTtcblx0XHRcdH07XG5cdFx0XHRjb25zdCBmblJlY2VpdmVkID0gKG9FdmVudDogRXZlbnQpID0+IHtcblx0XHRcdFx0c3dpdGNoICgob0V2ZW50LmdldFNvdXJjZSgpIGFzIGFueSkuc0dyb3VwSWQpIHtcblx0XHRcdFx0XHRjYXNlIFwiJGF1dG8uV29ya2Vyc1wiOlxuXHRcdFx0XHRcdFx0dGhpcy5fb0V2ZW50UHJvdmlkZXIuZmlyZUV2ZW50KFwid29ya2Vyc0JhdGNoUmVjZWl2ZWRcIik7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFwiJGF1dG8uSGVyb2VzXCI6XG5cdFx0XHRcdFx0XHR0aGlzLl9vRXZlbnRQcm92aWRlci5maXJlRXZlbnQoXCJoZXJvZXNCYXRjaFJlY2VpdmVkXCIpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0fVxuXHRcdFx0XHQob0V2ZW50LmdldFNvdXJjZSgpIGFzIGFueSkuZGV0YWNoRGF0YVJlY2VpdmVkKGZuUmVjZWl2ZWQpO1xuXHRcdFx0XHRpUmVjZWl2ZWQrKztcblx0XHRcdFx0aWYgKGlSZWNlaXZlZCA+PSBpUmVxdWVzdGVkICYmIGlSZXF1ZXN0ZWQgIT09IDApIHtcblx0XHRcdFx0XHRpUmVxdWVzdGVkID0gMDtcblx0XHRcdFx0XHRpUmVjZWl2ZWQgPSAwO1xuXHRcdFx0XHRcdHRoaXMuYkRhdGFSZWNlaXZlZCA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgZm5TZWFyY2ggPSAob0V2ZW50OiBFdmVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBhTURDVGFibGVzID0gYU5vdEJvdW5kTURDVGFibGVzLmZpbHRlcihvRWxlbSA9PiB7XG5cdFx0XHRcdFx0aWYgKChvRXZlbnQuZ2V0U291cmNlKCkgYXMgYW55KS5zSWQgPT09IG9FbGVtLmdldEZpbHRlcigpICYmIG9FbGVtLmdldFZpc2libGUoKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGlmIChhTURDVGFibGVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHR0aGlzLl9iU2VhY2hUcmlnZ2VyZWQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFNRENUYWJsZXMuZm9yRWFjaCgob01EQ1RhYmxlOiBhbnkpID0+IHtcblx0XHRcdFx0XHRsZXQgb1Jvd0JpbmRpbmcgPSBvTURDVGFibGUuZ2V0Um93QmluZGluZygpO1xuXHRcdFx0XHRcdGNvbnN0IGZuQXR0YWNoRGF0YUV2ZW50cyA9ICgpID0+IHtcblx0XHRcdFx0XHRcdG9Sb3dCaW5kaW5nLmF0dGFjaERhdGFSZXF1ZXN0ZWQoZm5SZXF1ZXN0ZWQpO1xuXHRcdFx0XHRcdFx0b1Jvd0JpbmRpbmcuYXR0YWNoRGF0YVJlY2VpdmVkKChvRXZlbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRmblJlY2VpdmVkKG9FdmVudCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2JTZWFjaFRyaWdnZXJlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRhQm91bmRFbGVtZW50cy5wdXNoKG9Sb3dCaW5kaW5nKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGlmIChvUm93QmluZGluZykge1xuXHRcdFx0XHRcdFx0Zm5BdHRhY2hEYXRhRXZlbnRzKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG9NRENUYWJsZS5hdHRhY2hFdmVudE9uY2UoXG5cdFx0XHRcdFx0XHRcdFwiYmluZGluZ1VwZGF0ZWRcIixcblx0XHRcdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdG9Sb3dCaW5kaW5nID0gb01EQ1RhYmxlLmdldFJvd0JpbmRpbmcoKTtcblx0XHRcdFx0XHRcdFx0XHRmbkF0dGFjaERhdGFFdmVudHMoKTtcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0bnVsbFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fTtcblx0XHRcdGlmICh0aGlzLmlzQ29udGV4dEV4cGVjdGVkKCkgJiYgb0JpbmRpbmdDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Ly8gRm9yY2UgdG8gbWVudGlvbiB3ZSBhcmUgZXhwZWN0aW5nIGRhdGFcblx0XHRcdFx0dGhpcy5iSGFzQ29udGV4dCA9IGZhbHNlO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmJIYXNDb250ZXh0ID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5hdHRhY2hFdmVudE9uY2UoXG5cdFx0XHRcdFwicGFnZVJlYWR5XCIsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRhQm91bmRFbGVtZW50cy5mb3JFYWNoKChvRWxlbWVudDogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRvRWxlbWVudC5kZXRhY2hFdmVudChcImRhdGFSZXF1ZXN0ZWRcIiwgZm5SZXF1ZXN0ZWQpO1xuXHRcdFx0XHRcdFx0b0VsZW1lbnQuZGV0YWNoRXZlbnQoXCJkYXRhUmVjZWl2ZWRcIiwgZm5SZWNlaXZlZCk7XG5cdFx0XHRcdFx0XHRvRWxlbWVudC5kZXRhY2hFdmVudChcInNlYXJjaFwiLCBmblNlYXJjaCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy5fYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkID0gZmFsc2U7XG5cdFx0XHRcdFx0YUJvdW5kRWxlbWVudHMgPSBbXTtcblx0XHRcdFx0fSxcblx0XHRcdFx0bnVsbFxuXHRcdFx0KTtcblx0XHRcdGlmIChvQmluZGluZ0NvbnRleHQpIHtcblx0XHRcdFx0Y29uc3QgbWFpbk9iamVjdEJpbmRpbmcgPSAob0JpbmRpbmdDb250ZXh0IGFzIGFueSkuZ2V0QmluZGluZygpO1xuXHRcdFx0XHRtYWluT2JqZWN0QmluZGluZy5hdHRhY2hEYXRhUmVxdWVzdGVkKGZuUmVxdWVzdGVkKTtcblx0XHRcdFx0bWFpbk9iamVjdEJpbmRpbmcuYXR0YWNoRGF0YVJlY2VpdmVkKGZuUmVjZWl2ZWQpO1xuXHRcdFx0XHRhQm91bmRFbGVtZW50cy5wdXNoKG1haW5PYmplY3RCaW5kaW5nKTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgYVRhYmxlSW5pdGlhbGl6ZWRQcm9taXNlczogUHJvbWlzZTxhbnk+W10gPSBbXTtcblx0XHRcdHRoaXMuX29WaWV3LmZpbmRBZ2dyZWdhdGVkT2JqZWN0cyh0cnVlLCAob0VsZW1lbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvT2JqZWN0QmluZGluZyA9IG9FbGVtZW50LmdldE9iamVjdEJpbmRpbmcoKTtcblx0XHRcdFx0aWYgKG9PYmplY3RCaW5kaW5nKSB7XG5cdFx0XHRcdFx0Ly8gUmVnaXN0ZXIgb24gYWxsIG9iamVjdCBiaW5kaW5nIChtb3N0bHkgdXNlZCBvbiBvYmplY3QgcGFnZXMpXG5cdFx0XHRcdFx0b09iamVjdEJpbmRpbmcuYXR0YWNoRGF0YVJlcXVlc3RlZChmblJlcXVlc3RlZCk7XG5cdFx0XHRcdFx0b09iamVjdEJpbmRpbmcuYXR0YWNoRGF0YVJlY2VpdmVkKGZuUmVjZWl2ZWQpO1xuXHRcdFx0XHRcdGFCb3VuZEVsZW1lbnRzLnB1c2gob09iamVjdEJpbmRpbmcpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnN0IGFCaW5kaW5nS2V5cyA9IE9iamVjdC5rZXlzKG9FbGVtZW50Lm1CaW5kaW5nSW5mb3MpO1xuXHRcdFx0XHRcdGlmIChhQmluZGluZ0tleXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YUJpbmRpbmdLZXlzLmZvckVhY2goc1Byb3BlcnR5TmFtZSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IG9MaXN0QmluZGluZyA9IG9FbGVtZW50Lm1CaW5kaW5nSW5mb3Nbc1Byb3BlcnR5TmFtZV0uYmluZGluZztcblx0XHRcdFx0XHRcdFx0Ly8gUmVnaXN0ZXIgb24gYWxsIGxpc3QgYmluZGluZywgZ29vZCBmb3IgYmFzaWMgdGFibGVzLCBwcm9ibGVtYXRpYyBmb3IgTURDLCBzZWUgYWJvdmVcblx0XHRcdFx0XHRcdFx0aWYgKG9MaXN0QmluZGluZyAmJiBvTGlzdEJpbmRpbmcuaXNBKFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0Lk9EYXRhTGlzdEJpbmRpbmdcIikpIHtcblx0XHRcdFx0XHRcdFx0XHRvTGlzdEJpbmRpbmcuYXR0YWNoRGF0YVJlcXVlc3RlZChmblJlcXVlc3RlZCk7XG5cdFx0XHRcdFx0XHRcdFx0b0xpc3RCaW5kaW5nLmF0dGFjaERhdGFSZWNlaXZlZChmblJlY2VpdmVkKTtcblx0XHRcdFx0XHRcdFx0XHRhQm91bmRFbGVtZW50cy5wdXNoKG9MaXN0QmluZGluZyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBUaGlzIGlzIGRpcnR5IGJ1dCBNREMgVGFibGUgaGFzIGEgd2VpcmQgbG9hZGluZyBsaWZlY3ljbGVcblx0XHRcdFx0aWYgKG9FbGVtZW50LmlzQShcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdFx0XHR0aGlzLmJUYWJsZXNMb2FkZWQgPSBmYWxzZTtcblx0XHRcdFx0XHQvLyBhY2Nlc3MgYmluZGluZyBvbmx5IGFmdGVyIHRhYmxlIGlzIGJvdW5kXG5cdFx0XHRcdFx0YVRhYmxlSW5pdGlhbGl6ZWRQcm9taXNlcy5wdXNoKFxuXHRcdFx0XHRcdFx0b0VsZW1lbnRcblx0XHRcdFx0XHRcdFx0LmluaXRpYWxpemVkKClcblx0XHRcdFx0XHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IG9Sb3dCaW5kaW5nID0gb0VsZW1lbnQuZ2V0Um93QmluZGluZygpO1xuXHRcdFx0XHRcdFx0XHRcdGlmIChvUm93QmluZGluZykge1xuXHRcdFx0XHRcdFx0XHRcdFx0b1Jvd0JpbmRpbmcuYXR0YWNoRGF0YVJlcXVlc3RlZChmblJlcXVlc3RlZCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRvUm93QmluZGluZy5hdHRhY2hEYXRhUmVjZWl2ZWQoZm5SZWNlaXZlZCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRhQm91bmRFbGVtZW50cy5wdXNoKG9Sb3dCaW5kaW5nKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0YU5vdEJvdW5kTURDVGFibGVzLnB1c2gob0VsZW1lbnQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uKG9FcnJvcjogRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgZmluZCBhIGJvdW5kIHRhYmxlXCIsIG9FcnJvciBhcyBhbnkpO1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAob0VsZW1lbnQuaXNBKFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCIpKSB7XG5cdFx0XHRcdFx0b0VsZW1lbnQuYXR0YWNoRXZlbnQoXCJzZWFyY2hcIiwgZm5TZWFyY2gpO1xuXHRcdFx0XHRcdGFCb3VuZEVsZW1lbnRzLnB1c2gob0VsZW1lbnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGlmIChhVGFibGVJbml0aWFsaXplZFByb21pc2VzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0UHJvbWlzZS5hbGwoYVRhYmxlSW5pdGlhbGl6ZWRQcm9taXNlcylcblx0XHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLmJUYWJsZXNMb2FkZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0dGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmNhdGNoKG9FcnJvciA9PiB7XG5cdFx0XHRcdFx0XHRMb2cuaW5mbyhcIlRoZXJlIHdhcyBhbiBlcnJvciB3aXRoIG9uZSBvciBtdWx0aXBsZSB0YWJsZVwiLCBvRXJyb3IpO1xuXHRcdFx0XHRcdFx0dGhpcy5iVGFibGVzTG9hZGVkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAUHVibGljXG5cdEBGaW5hbFxuXHRwdWJsaWMgaXNQYWdlUmVhZHkoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2JJc1BhZ2VSZWFkeTtcblx0fVxuXG5cdEBQdWJsaWNcblx0QEZpbmFsXG5cdHB1YmxpYyB3YWl0UGFnZVJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcblx0XHRcdGlmICh0aGlzLmlzUGFnZVJlYWR5KCkpIHtcblx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5hdHRhY2hFdmVudE9uY2UoXG5cdFx0XHRcdFx0XCJwYWdlUmVhZHlcIixcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRoaXNcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdEBQdWJsaWNcblx0QEZpbmFsXG5cdHB1YmxpYyBhdHRhY2hFdmVudE9uY2Uoc0V2ZW50SWQ6IHN0cmluZywgb0RhdGE6IGFueSwgZm5GdW5jdGlvbjogRnVuY3Rpb24sIG9MaXN0ZW5lcjogYW55KSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuXHRcdHJldHVybiB0aGlzLl9vRXZlbnRQcm92aWRlci5hdHRhY2hFdmVudE9uY2Uoc0V2ZW50SWQsIG9EYXRhLCBmbkZ1bmN0aW9uLCBvTGlzdGVuZXIpO1xuXHR9XG5cdEBQdWJsaWNcblx0QEZpbmFsXG5cdHB1YmxpYyBhdHRhY2hFdmVudChzRXZlbnRJZDogc3RyaW5nLCBvRGF0YTogYW55LCBmbkZ1bmN0aW9uOiBGdW5jdGlvbiwgb0xpc3RlbmVyOiBhbnkpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG5cdFx0cmV0dXJuIHRoaXMuX29FdmVudFByb3ZpZGVyLmF0dGFjaEV2ZW50KHNFdmVudElkLCBvRGF0YSwgZm5GdW5jdGlvbiwgb0xpc3RlbmVyKTtcblx0fVxuXHRAUHVibGljXG5cdEBGaW5hbFxuXHRwdWJsaWMgZGV0YWNoRXZlbnQoc0V2ZW50SWQ6IHN0cmluZywgZm5GdW5jdGlvbjogRnVuY3Rpb24pIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG5cdFx0cmV0dXJuIHRoaXMuX29FdmVudFByb3ZpZGVyLmRldGFjaEV2ZW50KHNFdmVudElkLCBmbkZ1bmN0aW9uKTtcblx0fVxuXHRwcml2YXRlIHJlZ2lzdGVyQ29udGFpbmVyKG9Db250YWluZXI6IE1hbmFnZWRPYmplY3QpIHtcblx0XHR0aGlzLl9vQ29udGFpbmVyID0gb0NvbnRhaW5lcjtcblx0XHR0aGlzLl9mbkNvbnRhaW5lckRlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVTaG93OiAoKSA9PiB7XG5cdFx0XHRcdHRoaXMuYlNob3duID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuX2JJc1BhZ2VSZWFkeSA9IGZhbHNlO1xuXHRcdFx0fSxcblx0XHRcdG9uQmVmb3JlSGlkZTogKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmJTaG93biA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLl9iSXNQYWdlUmVhZHkgPSBmYWxzZTtcblx0XHRcdH0sXG5cdFx0XHRvbkFmdGVyU2hvdzogKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmJTaG93biA9IHRydWU7XG5cdFx0XHRcdHRoaXMuX2NoZWNrUGFnZVJlYWR5KHRydWUpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0dGhpcy5fb0NvbnRhaW5lci5hZGRFdmVudERlbGVnYXRlKHRoaXMuX2ZuQ29udGFpbmVyRGVsZWdhdGUpO1xuXHR9XG5cblx0QFByaXZhdGVcblx0QEV4dGVuc2libGUoT3ZlcnJpZGVFeGVjdXRpb24uSW5zdGVhZClcblx0cHVibGljIGlzQ29udGV4dEV4cGVjdGVkKCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdEBQdWJsaWNcblx0cHVibGljIGNoZWNrUGFnZVJlYWR5RGVib3VuY2VkKCkge1xuXHRcdGlmICh0aGlzLnBhZ2VSZWFkeVRpbWVyKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy5wYWdlUmVhZHlUaW1lcik7XG5cdFx0fVxuXHRcdHRoaXMucGFnZVJlYWR5VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuX2NoZWNrUGFnZVJlYWR5KCk7XG5cdFx0fSwgMjAwKTtcblx0fVxuXG5cdHB1YmxpYyBfY2hlY2tQYWdlUmVhZHkoYkZyb21OYXY6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdGNvbnN0IGZuVUlVcGRhdGVkID0gKCkgPT4ge1xuXHRcdFx0Ly8gV2FpdCB1bnRpbCB0aGUgVUkgaXMgbm8gbG9uZ2VyIGRpcnR5XG5cdFx0XHRpZiAoIXNhcC51aS5nZXRDb3JlKCkuZ2V0VUlEaXJ0eSgpKSB7XG5cdFx0XHRcdHNhcC51aS5nZXRDb3JlKCkuZGV0YWNoRXZlbnQoXCJVSVVwZGF0ZWRcIiwgZm5VSVVwZGF0ZWQpO1xuXHRcdFx0XHR0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggPSBmYWxzZTtcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5fY2hlY2tQYWdlUmVhZHkoKTtcblx0XHRcdFx0fSwgMjApO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHQvLyBJbiBjYXNlIFVJVXBkYXRlIGRvZXMgbm90IGdldCBjYWxsZWQsIGNoZWNrIGlmIFVJIGlzIG5vdCBkaXJ0eSBhbmQgdGhlbiBjYWxsIF9jaGVja1BhZ2VSZWFkeVxuXHRcdGNvbnN0IGNoZWNrVUlVcGRhdGVkID0gKCkgPT4ge1xuXHRcdFx0aWYgKHNhcC51aS5nZXRDb3JlKCkuZ2V0VUlEaXJ0eSgpKSB7XG5cdFx0XHRcdHNldFRpbWVvdXQoY2hlY2tVSVVwZGF0ZWQsIDUwMCk7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuX2JXYWl0aW5nRm9yUmVmcmVzaCkge1xuXHRcdFx0XHR0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggPSBmYWxzZTtcblx0XHRcdFx0c2FwLnVpLmdldENvcmUoKS5kZXRhY2hFdmVudChcIlVJVXBkYXRlZFwiLCBmblVJVXBkYXRlZCk7XG5cdFx0XHRcdHRoaXMuX2NoZWNrUGFnZVJlYWR5KCk7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdGlmIChcblx0XHRcdHRoaXMuYlNob3duICYmXG5cdFx0XHR0aGlzLmJEYXRhUmVjZWl2ZWQgIT09IGZhbHNlICYmXG5cdFx0XHR0aGlzLmJUYWJsZXNMb2FkZWQgIT09IGZhbHNlICYmXG5cdFx0XHQoIXRoaXMuaXNDb250ZXh0RXhwZWN0ZWQoKSB8fCB0aGlzLmJIYXNDb250ZXh0KSAvLyBFaXRoZXIgbm8gY29udGV4dCBpcyBleHBlY3RlZCBvciB0aGVyZSBpcyBvbmVcblx0XHQpIHtcblx0XHRcdGlmICh0aGlzLmJEYXRhUmVjZWl2ZWQgPT09IHRydWUgJiYgIWJGcm9tTmF2ICYmICF0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggJiYgc2FwLnVpLmdldENvcmUoKS5nZXRVSURpcnR5KCkpIHtcblx0XHRcdFx0Ly8gSWYgd2UgcmVxdWVzdGVkIGRhdGEgd2UgZ2V0IG5vdGlmaWVkIGFzIHNvb24gYXMgdGhlIGRhdGEgYXJyaXZlZCwgc28gYmVmb3JlIHRoZSBuZXh0IHJlbmRlcmluZyB0aWNrXG5cdFx0XHRcdHRoaXMuYkRhdGFSZWNlaXZlZCA9IHVuZGVmaW5lZDtcblx0XHRcdFx0dGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoID0gdHJ1ZTtcblx0XHRcdFx0c2FwLnVpLmdldENvcmUoKS5hdHRhY2hFdmVudChcIlVJVXBkYXRlZFwiLCBmblVJVXBkYXRlZCk7XG5cdFx0XHRcdHNldFRpbWVvdXQoY2hlY2tVSVVwZGF0ZWQsIDUwMCk7XG5cdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHQoIXRoaXMuX2JXYWl0aW5nRm9yUmVmcmVzaCAmJiBzYXAudWkuZ2V0Q29yZSgpLmdldFVJRGlydHkoKSkgfHxcblx0XHRcdFx0dGhpcy5fbmJXYWl0cyAhPT0gMCB8fFxuXHRcdFx0XHRUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkuZ2V0TnVtYmVyT2ZWaWV3c0luQ3JlYXRpb25TdGF0ZSgpID4gMCB8fFxuXHRcdFx0XHR0aGlzLl9iU2VhY2hUcmlnZ2VyZWRcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggPSB0cnVlO1xuXHRcdFx0XHRzYXAudWkuZ2V0Q29yZSgpLmF0dGFjaEV2ZW50KFwiVUlVcGRhdGVkXCIsIGZuVUlVcGRhdGVkKTtcblx0XHRcdFx0c2V0VGltZW91dChjaGVja1VJVXBkYXRlZCwgNTAwKTtcblx0XHRcdH0gZWxzZSBpZiAoIXRoaXMuX2JXYWl0aW5nRm9yUmVmcmVzaCkge1xuXHRcdFx0XHQvLyBJbiB0aGUgY2FzZSB3ZSdyZSBub3Qgd2FpdGluZyBmb3IgYW55IGRhdGEgKG5hdmlnYXRpbmcgYmFjayB0byBhIHBhZ2Ugd2UgYWxyZWFkeSBoYXZlIGxvYWRlZClcblx0XHRcdFx0Ly8ganVzdCB3YWl0IGZvciBhIGZyYW1lIHRvIGZpcmUgdGhlIGV2ZW50LlxuXHRcdFx0XHR0aGlzLl9iSXNQYWdlUmVhZHkgPSB0cnVlO1xuXHRcdFx0XHR0aGlzLl9vRXZlbnRQcm92aWRlci5maXJlRXZlbnQoXCJwYWdlUmVhZHlcIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhZ2VSZWFkeUNvbnRyb2xsZXJFeHRlbnNpb247XG4iXX0=