@sap/open.fe 1.97.0 → 1.98.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 (873) 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 +275 -62
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
  6. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +1 -0
  7. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +1 -1
  8. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
  9. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +3 -3
  10. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +51 -46
  11. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
  13. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  14. package/packages/sap.fe.common/src/sap/fe/common/resources.json +16 -8
  15. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  16. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  17. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  18. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.98.json +18 -0
  19. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  20. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  21. package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +3 -1
  22. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +1 -1
  23. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +1 -1
  24. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +1 -1
  25. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +35 -15
  26. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  27. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +13 -5
  28. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +1 -1
  29. package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +8 -2
  30. package/packages/sap.fe.core/src/sap/fe/core/PageController.js +1 -1
  31. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +26 -10
  32. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  33. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +13 -4
  34. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
  35. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +124 -39
  36. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  37. package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +49 -22
  38. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +1 -1
  39. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +11 -8
  40. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  41. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +12 -8
  42. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  43. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +196 -70
  44. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  45. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +9 -2
  46. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +1 -1
  47. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +19 -17
  48. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  49. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +39 -8
  50. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  51. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +114 -25
  52. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +112 -24
  54. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +80 -0
  55. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +6 -0
  56. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +5 -1
  57. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
  59. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +34 -7
  61. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +1 -1
  62. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +5 -2
  63. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +1 -1
  64. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +16 -1
  65. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +1 -1
  66. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +19 -6
  67. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +1 -1
  68. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +7 -7
  69. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  70. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +6 -5
  71. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -1
  72. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +6 -3
  73. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +9 -3
  75. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +1 -1
  76. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +0 -5
  77. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  78. package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -1
  79. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit → sap.fe.core/src/sap/fe/core/controls/massEdit}/MassEditDialog.fragment.xml +6 -6
  80. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js → sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js} +2 -2
  81. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js → sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.js} +0 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +13 -1
  83. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
  84. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +10 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  86. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +3 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +18 -7
  88. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  89. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +15 -6
  90. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +62 -4
  91. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  92. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +60 -4
  93. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +3 -3
  94. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  95. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
  96. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +18 -10
  97. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  98. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +10 -1
  99. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  100. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +17 -9
  102. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  103. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +9 -3
  104. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +69 -4
  105. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  106. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +72 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +172 -284
  108. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  109. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +228 -348
  110. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +468 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +609 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +30 -13
  114. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  115. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +31 -12
  116. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +2 -2
  117. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  118. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
  119. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +14 -6
  120. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  121. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +26 -5
  122. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +8 -1
  123. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  124. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +9 -1
  125. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +4 -1
  126. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  127. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +8 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  130. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
  131. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +3 -3
  132. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +30 -5
  133. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  134. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +25 -3
  135. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  136. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +359 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +5 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +388 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +199 -111
  140. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
  141. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +193 -102
  142. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +2 -2
  143. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
  144. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +1 -1
  145. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +679 -0
  146. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +6 -0
  147. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +27 -1
  148. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +23 -14
  149. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +2 -2
  150. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +477 -411
  151. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  152. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +47 -3
  153. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +3 -3
  154. package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
  155. package/packages/sap.fe.core/src/sap/fe/core/library.support.js +9 -3
  156. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  157. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +62 -0
  158. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -0
  159. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +68 -0
  160. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +40 -5
  161. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +24 -2
  162. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +24 -2
  163. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +24 -2
  164. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +25 -3
  165. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +24 -2
  166. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +24 -2
  167. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +24 -2
  168. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +24 -2
  169. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +23 -1
  170. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +23 -1
  171. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -1
  172. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +24 -2
  173. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +24 -2
  174. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +24 -2
  175. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +24 -2
  176. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +24 -2
  177. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +25 -3
  178. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +25 -3
  179. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +24 -2
  180. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +24 -2
  181. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +24 -2
  182. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +25 -3
  183. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +26 -4
  184. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +24 -2
  185. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +24 -2
  186. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +24 -2
  187. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +24 -2
  188. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +24 -2
  189. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +24 -2
  190. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +24 -2
  191. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +24 -2
  192. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +24 -2
  193. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +24 -2
  194. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +24 -2
  195. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +25 -3
  196. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +24 -2
  197. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +24 -2
  198. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +24 -2
  199. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +24 -2
  200. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +24 -2
  201. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +24 -2
  202. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +25 -3
  203. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +24 -2
  204. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +24 -2
  205. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +24 -2
  206. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +24 -2
  207. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +24 -2
  208. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +24 -2
  209. package/packages/sap.fe.core/src/sap/fe/core/resources.json +483 -235
  210. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  211. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  212. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +4 -3
  213. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  214. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -0
  215. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +93 -346
  216. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  217. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +31 -2
  218. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  219. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +30 -1
  220. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +8 -5
  221. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  222. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +11 -6
  223. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +12 -3
  224. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  225. package/packages/sap.fe.core/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
  226. package/packages/sap.fe.core/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
  227. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +10 -48
  228. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  229. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +14 -46
  230. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +114 -0
  231. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter.js +5 -0
  232. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
  233. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +10 -7
  234. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
  235. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +8 -6
  236. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +2 -2
  237. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
  238. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +15 -110
  239. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
  240. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +6 -73
  241. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
  242. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  243. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
  244. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
  245. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  246. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ControllerExtensionNavigationModel.js +5 -0
  247. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/CustomElementNavigationModel.js +105 -7
  248. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +176 -0
  249. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.controller.js +2 -2
  250. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.controller.js +2 -2
  251. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +0 -1
  252. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.controller.js +2 -2
  253. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.controller.js +2 -2
  254. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.controller.js +3 -2
  255. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.controller.js +3 -2
  256. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.controller.js +3 -2
  257. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.controller.js +3 -2
  258. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/Component.js +36 -0
  259. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/FilterBarAnnotationDefaults.controller.js +35 -0
  260. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/FilterBarAnnotationDefaults.view.xml +58 -0
  261. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/RootEntity.json +102 -0
  262. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/ValueHelpEntity.js +11 -0
  263. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/service.cds +97 -0
  264. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/manifest.json +72 -0
  265. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/Component.js +36 -0
  266. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomFilter.js +36 -0
  267. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingFilter.fragment.xml +8 -0
  268. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingFilterOperator.fragment.xml +17 -0
  269. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingRangeFilter.fragment.xml +8 -0
  270. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/FilterBarCustoms.controller.js +42 -0
  271. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/FilterBarCustoms.view.xml +70 -0
  272. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/RootEntity.json +107 -0
  273. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/ValueHelpEntity.js +11 -0
  274. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/service.cds +152 -0
  275. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/manifest.json +72 -0
  276. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.controller.js +13 -6
  277. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.view.xml +1 -1
  278. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ChildEntity.json +15 -674
  279. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/MultiChildEntity.json +92 -0
  280. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/RootEntity.json +10 -5
  281. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +72 -19
  282. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/Component.js +36 -0
  283. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.controller.js +35 -0
  284. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.view.xml +58 -0
  285. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/RootEntity.json +102 -0
  286. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/ValueHelpEntity.js +11 -0
  287. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/service.cds +115 -0
  288. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/manifest.json +72 -0
  289. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarAnnotationDefaults.html +37 -0
  290. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarCustoms.html +37 -0
  291. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarSVandAnnotationDefaults.html +37 -0
  292. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/Component.js +35 -0
  293. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/DetailPage.controller.js +5 -0
  294. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/DetailPage.view.xml +15 -0
  295. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.js +43 -0
  296. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.view.xml +79 -0
  297. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ChildEntity.json +23 -0
  298. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/RootEntity.json +41 -0
  299. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ValueHelpCurrencyEntity.json +5 -0
  300. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ValueHelpEntity.js +11 -0
  301. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/service.cds +144 -0
  302. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/manifest.json +96 -0
  303. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/Component.js +9 -0
  304. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/EntryPage.controller.js +5 -0
  305. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/EntryPage.view.xml +14 -0
  306. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidanceFreestyle.html +69 -0
  307. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/i18n/i18n.properties +3 -0
  308. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.controller.js +2 -2
  309. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.controller.js +2 -2
  310. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.controller.js +2 -2
  311. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.controller.js +2 -2
  312. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +4 -3
  313. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +36 -30
  314. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.controller.js +2 -2
  315. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.controller.js +3 -2
  316. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.view.xml +30 -24
  317. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/Component.js +3 -0
  318. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/OPExtend.controller.js +17 -2
  319. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/ChildEntity.json +9 -0
  320. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/service.cds +46 -0
  321. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/manifest.json +24 -1
  322. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility.html +2 -2
  323. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +1 -1
  324. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnBuildingBlockField.fragment.xml +3 -0
  325. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +2 -2
  326. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +2 -2
  327. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +7 -0
  328. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.md +4 -0
  329. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/Component.js +35 -0
  330. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/CustomFormElement1.fragment.xml +3 -0
  331. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/CustomFormElement2.fragment.xml +3 -0
  332. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/localService/RootEntity.json +9 -0
  333. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/localService/service.cds +136 -0
  334. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/manifest.json +90 -0
  335. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElementContent.html +36 -0
  336. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/{CustomHeaderFacetFormElement.fragment.xml → CustomHeaderFacetBuildingBlockFormElement.fragment.xml} +0 -0
  337. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/{CustomHeaderFacetFormElementEdit.fragment.xml → CustomHeaderFacetBuildingBlockFormElementEdit.fragment.xml} +1 -1
  338. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetBuildingBlockMicroChart.fragment.xml +10 -0
  339. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetBuildingBlockMicroChartEdit.fragment.xml +5 -0
  340. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetDataPointEdit.fragment.xml +2 -2
  341. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetMicroChartEdit.fragment.xml +2 -2
  342. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/RootEntity.json +6 -1
  343. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/service.cds +30 -2
  344. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/manifest.json +13 -3
  345. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.view.xml +1 -2
  346. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSection.fragment.xml +1 -7
  347. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionFormElementAndTable.fragment.xml +0 -1
  348. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.fragment.xml +1 -7
  349. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSectionContent.html +60 -27
  350. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/Component.js +35 -0
  351. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection1.fragment.xml +3 -0
  352. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection2.fragment.xml +3 -0
  353. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection3.fragment.xml +11 -0
  354. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/ChildEntity.json +42 -0
  355. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/RootEntity.json +9 -0
  356. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/service.cds +139 -0
  357. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/manifest.json +104 -0
  358. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSectionContent.html +36 -0
  359. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/i18n/i18n.properties +3 -0
  360. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +20 -6
  361. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +22 -6
  362. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +71 -23
  363. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +97 -24
  364. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +624 -0
  365. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +449 -140
  366. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +435 -0
  367. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +385 -0
  368. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +229 -2
  369. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +227 -0
  370. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +235 -63
  371. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +162 -40
  372. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.js +115 -0
  373. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.ts +95 -0
  374. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -2
  375. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +0 -1
  376. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +2 -2
  377. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +2 -2
  378. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +11 -1
  379. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +9 -0
  380. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +18 -1
  381. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +25 -1
  382. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPI.spec.js +64 -1
  383. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPI.spec.ts +66 -0
  384. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +261 -20
  385. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +329 -19
  386. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +79 -8
  387. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +128 -8
  388. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.js +7 -7
  389. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.ts +6 -6
  390. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.js +22 -1
  391. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.ts +26 -1
  392. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +136 -244
  393. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +156 -376
  394. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +1267 -0
  395. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +2150 -0
  396. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/KPI.spec.ts.snap +306 -0
  397. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +57 -0
  398. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +1 -1
  399. package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +137 -5
  400. package/packages/sap.fe.core/test/sap/fe/core/jest/data/BindingExpression-AnnotationExpression.xml +13 -0
  401. package/packages/sap.fe.core/test/sap/fe/core/jest/data/HeaderFacets.cds +28 -0
  402. package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPI.cds +191 -0
  403. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverterContext.cds +20 -0
  404. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ObjectPageConverter.cds +69 -1
  405. package/packages/sap.fe.core/test/sap/fe/core/jest/data/RoutingServiceFactory.cds +35 -0
  406. package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +26 -1
  407. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +98 -0
  408. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableSticky.cds +22 -0
  409. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableTooltips.cds +43 -0
  410. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.js +10 -1
  411. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.ts +20 -0
  412. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +912 -0
  413. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +981 -0
  414. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/AppStartupHelper.spec.ts.snap +358 -0
  415. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.js +242 -0
  416. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.ts +297 -0
  417. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/__snapshots__/ChangePageConfiguration.spec.ts.snap +289 -0
  418. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +292 -366
  419. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.ts +247 -0
  420. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +14 -1
  421. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +19 -0
  422. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -12
  423. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.98.json +363 -0
  424. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  425. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  426. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.fragment.xml +5 -5
  427. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +0 -2
  428. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
  429. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +1 -1
  430. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
  431. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +4 -4
  432. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  433. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +26 -24
  434. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
  435. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +1 -1
  436. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  437. package/packages/sap.fe.macros/src/sap/fe/macros/FieldBaseDelegate-dbg.js +90 -0
  438. package/packages/sap.fe.macros/src/sap/fe/macros/FieldBaseDelegate.js +6 -0
  439. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +7 -6
  440. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +63 -8
  441. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
  442. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +42 -4
  443. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +1 -1
  444. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +76 -1
  445. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +49 -6
  446. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  447. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField-dbg.designtime.js +1 -1
  448. package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +21 -17
  449. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +8 -0
  450. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
  451. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +2 -2
  452. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
  453. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +2 -2
  454. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +1 -1
  455. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +8 -3
  456. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  457. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata-dbg.js +2 -1
  458. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata.js +1 -1
  459. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata-dbg.js +11 -8
  460. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata.js +1 -1
  461. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper-dbg.js +168 -35
  462. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper.js +1 -1
  463. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +107 -109
  464. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +51 -65
  465. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  466. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +9 -4
  467. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  468. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +5 -2
  469. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
  470. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
  471. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils-dbg.js +2 -1
  472. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils.js +1 -1
  473. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +101 -16
  474. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  475. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +273 -71
  476. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  477. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +128 -32
  478. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  479. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +110 -16
  480. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +11 -4
  481. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +65 -84
  482. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  483. package/packages/sap.fe.macros/src/sap/fe/macros/filter/CustomFilter.fragment.xml +5 -0
  484. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +2 -2
  485. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
  486. package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +2 -2
  487. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFormElement.fragment.xml +5 -1
  488. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +72 -12
  489. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
  490. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +43 -14
  491. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +13 -2
  492. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +55 -8
  493. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
  494. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -3
  495. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +38 -65
  496. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +1 -1
  497. package/packages/sap.fe.macros/src/sap/fe/macros/{FilterField.fragment.xml → internal/FilterField.fragment.xml} +2 -2
  498. package/packages/sap.fe.macros/src/sap/fe/macros/{FilterField.metadata-dbg.js → internal/FilterField.metadata-dbg.js} +5 -5
  499. package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.metadata.js +6 -0
  500. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +96 -0
  501. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.js +5 -0
  502. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +116 -0
  503. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate-dbg.js +7 -15
  504. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate.js +1 -1
  505. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +4 -5
  506. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/AmountWithCurrency.fragment.xml +5 -1
  507. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +5 -1
  508. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +1 -0
  509. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/File.fragment.xml +2 -2
  510. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +5 -3
  511. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +11 -3
  512. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +1 -0
  513. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +5 -4
  514. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/MdcFieldWithValueHelp.fragment.xml +48 -0
  515. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +140 -18
  516. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +1 -0
  517. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +1 -1
  518. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +6 -3
  519. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/CheckBox.fragment.xml +1 -1
  520. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +1 -1
  521. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +1 -1
  522. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +14 -4
  523. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +1 -1
  524. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +3 -3
  525. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +2 -2
  526. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +1 -1
  527. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +1 -1
  528. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +25 -9
  529. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  530. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +30 -16
  531. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter-dbg.js +154 -0
  532. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.js +5 -0
  533. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.ts +146 -0
  534. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +204 -0
  535. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +5 -0
  536. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +215 -0
  537. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +29 -8
  538. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  539. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp-dbg.designtime.js +1 -1
  540. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +0 -10
  541. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +2 -2
  542. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +151 -131
  543. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  544. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  545. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +24 -23
  546. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
  547. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +209 -188
  548. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  549. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  550. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary-dbg.js +7 -4
  551. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary.js +1 -1
  552. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  553. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +36 -10
  554. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +12 -0
  555. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +12 -0
  556. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +12 -0
  557. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +12 -0
  558. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +12 -0
  559. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +12 -0
  560. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +12 -0
  561. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +13 -1
  562. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +12 -0
  563. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +12 -0
  564. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +12 -0
  565. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +12 -0
  566. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +12 -0
  567. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +12 -0
  568. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +12 -0
  569. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +12 -0
  570. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +12 -0
  571. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +12 -0
  572. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -0
  573. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +12 -0
  574. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +12 -0
  575. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +12 -0
  576. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +14 -2
  577. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +12 -0
  578. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +12 -0
  579. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +12 -0
  580. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +12 -0
  581. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +12 -0
  582. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +12 -0
  583. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +12 -0
  584. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +12 -0
  585. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +12 -0
  586. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +12 -0
  587. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +12 -0
  588. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +13 -1
  589. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -0
  590. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +12 -0
  591. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +12 -0
  592. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +12 -0
  593. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +12 -0
  594. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +12 -0
  595. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +13 -1
  596. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +12 -0
  597. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +12 -0
  598. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +12 -0
  599. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +12 -0
  600. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +13 -1
  601. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -0
  602. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +496 -354
  603. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +53 -57
  604. package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +1 -0
  605. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +38 -32
  606. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer-dbg.js +12 -3
  607. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer.js +1 -1
  608. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +17 -91
  609. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  610. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +4 -1
  611. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +1 -1
  612. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +9 -4
  613. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
  614. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin-dbg.js +3 -3
  615. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin.js +1 -1
  616. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +198 -71
  617. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  618. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.fragment.xml +4 -4
  619. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +58 -15
  620. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  621. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
  622. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  623. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -1
  624. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +1 -2
  625. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +1 -1
  626. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +0 -2
  627. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.js +1 -1
  628. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.ts +0 -2
  629. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +1 -1
  630. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +0 -2
  631. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +21 -1
  632. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +20 -0
  633. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +1 -1
  634. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +1 -1
  635. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +19 -1
  636. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +12 -0
  637. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +2 -2
  638. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldBaseDelegate.spec.js +111 -0
  639. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +67 -3
  640. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +81 -1
  641. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarDelegate.spec.js +4 -6
  642. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.js +52 -6
  643. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.ts +64 -7
  644. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +34 -4
  645. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +46 -3
  646. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +43 -4
  647. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +62 -3
  648. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +31 -5
  649. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +25 -3
  650. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +11 -1
  651. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +9 -0
  652. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +40 -0
  653. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +35 -0
  654. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartMacro.spec.ts.snap +42 -42
  655. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/CollectionField.spec.ts.snap +49 -7
  656. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +27 -11
  657. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +50 -44
  658. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithSemanticKey.spec.ts.snap +146 -56
  659. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithValueHelp.spec.ts.snap +16 -16
  660. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +774 -11
  661. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +70 -2
  662. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MicroChart.spec.ts.snap +1 -1
  663. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/PhantomUtil.spec.ts.snap +70 -165
  664. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +39 -0
  665. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +287 -170
  666. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +369 -213
  667. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/CollectionField.cds +11 -3
  668. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +5 -0
  669. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithSemanticKey.cds +17 -12
  670. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacro.cds +18 -1
  671. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacroWithDefaultAnnotation.cds +155 -0
  672. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacroWithSVandAnnotation.cds +155 -0
  673. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterFieldMacro.cds +13 -1
  674. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +36 -11
  675. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +22 -1
  676. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +8 -3
  677. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +252 -61
  678. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +277 -67
  679. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.cds +93 -1
  680. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +118 -16
  681. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +143 -16
  682. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/__snapshots__/FieldTemplating.spec.ts.snap +31 -0
  683. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragment.xml +3 -0
  684. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestSubFragment.xml +10 -0
  685. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +14 -2
  686. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +13 -1
  687. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +131 -0
  688. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +264 -0
  689. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +244 -0
  690. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +238 -0
  691. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +33 -6
  692. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +40 -2
  693. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/ValueHelpTableDelegate.spec.js +61 -0
  694. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/ValueHelpTableDelegate.spec.ts +64 -0
  695. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1287 -32
  696. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/data/tabledelegate.cds +1 -1
  697. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  698. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/CommonHelper.qunit.js +284 -159
  699. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +9 -9
  700. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +2 -2
  701. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +1 -0
  702. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  703. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +10 -5
  704. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +2 -2
  705. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +5 -5
  706. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartContainer.qunit.js +29 -0
  707. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +6 -26
  708. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelperTemplate.qunit.js +3 -8
  709. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +402 -18
  710. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacro.fragment.xml +1 -1
  711. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacroMissingID.fragment.xml +1 -1
  712. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/TableMacro.fragment.xml +0 -2
  713. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.98.json +210 -0
  714. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  715. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  716. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler-dbg.js +70 -29
  717. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +1 -1
  718. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  719. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  720. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +6 -5
  721. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +3 -3
  722. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  723. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  724. package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +5 -5
  725. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  726. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  727. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  728. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/NavigationHandlerTest.qunit.js +4 -12
  729. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  730. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  731. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  732. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  733. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
  734. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  735. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  736. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  737. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  738. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  739. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  740. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate-dbg.js +2 -2
  741. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -1
  742. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  743. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +2 -2
  744. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  745. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  746. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +1 -1
  747. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
  748. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -1
  749. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +85 -85
  750. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  751. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  752. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +6 -2
  753. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  754. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit-dbg.js +96 -0
  755. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit.js +6 -0
  756. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +36 -21
  757. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +1 -1
  758. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +53 -31
  759. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  760. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +20 -11
  761. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +20 -0
  762. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  763. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +16 -14
  764. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  765. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +15 -0
  766. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
  767. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +103 -88
  768. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +99 -72
  769. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  770. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  771. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Paginator-dbg.js +12 -0
  772. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  773. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +47 -43
  774. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share.js +1 -1
  775. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +0 -20
  776. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  777. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +24 -24
  778. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +1 -1
  779. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +24 -5
  780. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +1 -4
  781. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +181 -0
  782. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
  783. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
  784. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +133 -123
  785. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
  786. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +1 -1
  787. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  788. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -7
  789. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
  790. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +34 -32
  791. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  792. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  793. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
  794. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle.properties +24 -1
  795. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +1 -1
  796. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
  797. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +1 -1
  798. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +8 -8
  799. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +1 -1
  800. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +1 -1
  801. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +1 -1
  802. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +126 -66
  803. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  804. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
  805. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  806. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -1
  807. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  808. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +262 -0
  809. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +2 -1
  810. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +1 -0
  811. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Sections.spec.js +132 -0
  812. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Sections.spec.ts +131 -0
  813. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +1 -0
  814. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Sections.spec.ts.snap +52 -0
  815. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +229 -0
  816. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +157 -0
  817. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/__snapshots__/RootContainerBaseController.spec.ts.snap +218 -0
  818. package/packages/sap.fe.templates/test/sap/fe/templates/jest/data/RootContainerBaseController.cds +64 -0
  819. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.98.json +201 -0
  820. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  821. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  822. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner-dbg.js +8 -3
  823. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner.js +1 -1
  824. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +8 -3
  825. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
  826. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +19 -11
  827. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
  828. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils-dbg.js +1 -1
  829. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils.js +1 -1
  830. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +211 -45
  831. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  832. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +103 -8
  833. package/packages/sap.fe.test/src/sap/fe/test/Utils-dbg.js +0 -12
  834. package/packages/sap.fe.test/src/sap/fe/test/Utils.js +1 -1
  835. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +1 -7
  836. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI.js +1 -1
  837. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions-dbg.js +4 -4
  838. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions.js +1 -1
  839. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardActions-dbg.js +43 -0
  840. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardActions.js +6 -0
  841. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardAssertions-dbg.js +19 -15
  842. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardAssertions.js +1 -1
  843. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +11 -0
  844. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +1 -1
  845. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder-dbg.js +11 -2
  846. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder.js +1 -1
  847. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +22 -0
  848. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +1 -1
  849. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  850. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +5 -4
  851. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +1 -1
  852. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +37 -23
  853. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +4 -4
  854. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  855. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  856. package/packages/sap.fe.test/src/sap/fe/test/resources.json +59 -34
  857. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  858. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  859. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  860. package/packages/sap.fe.test/test/sap/fe/test/mockserver/MockServer.js +98965 -71474
  861. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +0 -8
  862. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +0 -5
  863. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
  864. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/CreditLimitDetails.json +0 -154
  865. package/packages/sap.fe.core/test/sap/fe/core/qunit/TransactionHelper.qunit.js +0 -77
  866. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper-dbg.js +0 -48
  867. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper.js +0 -6
  868. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata.js +0 -6
  869. package/packages/sap.fe.macros/src/sap/fe/macros/FormWrapper.fragment.xml +0 -26
  870. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler-dbg.js +0 -718
  871. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler.js +0 -6
  872. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarHelper.qunit.js +0 -223
  873. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderImage.fragment.xml +0 -24
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/BindingExpression", "sap/fe/core/converters/helpers/BindingHelper", "sap/fe/core/templating/PropertyHelper", "sap/fe/core/templating/DataModelPathHelper", "sap/fe/core/templating/FieldControlHelper", "sap/fe/core/formatters/ValueFormatter"], function (MetaModelConverter, BindingExpression, BindingHelper, PropertyHelper, DataModelPathHelper, FieldControlHelper, valueFormatters) {
5
+ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/BindingExpression", "sap/fe/core/converters/helpers/BindingHelper", "sap/fe/core/templating/PropertyHelper", "sap/fe/core/templating/DataModelPathHelper", "sap/fe/core/templating/FieldControlHelper", "sap/fe/core/formatters/ValueFormatter", "sap/fe/core/templating/DisplayModeFormatter"], function (MetaModelConverter, BindingExpression, BindingHelper, PropertyHelper, DataModelPathHelper, FieldControlHelper, valueFormatters, DisplayModeFormatter) {
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
@@ -36,72 +36,11 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
36
36
  var getInvolvedDataModelObjects = MetaModelConverter.getInvolvedDataModelObjects;
37
37
  var convertMetaModelContext = MetaModelConverter.convertMetaModelContext;
38
38
 
39
- var EDM_TYPE_MAPPING = {
40
- "Edm.Boolean": {
41
- type: "sap.ui.model.odata.type.Boolean"
42
- },
43
- "Edm.Byte": {
44
- type: "sap.ui.model.odata.type.Byte"
45
- },
46
- "Edm.Date": {
47
- type: "sap.ui.model.odata.type.Date"
48
- },
49
- "Edm.DateTimeOffset": {
50
- constraints: {
51
- "$Precision": "precision"
52
- },
53
- type: "sap.ui.model.odata.type.DateTimeOffset"
54
- },
55
- "Edm.Decimal": {
56
- constraints: {
57
- "@Org.OData.Validation.V1.Minimum/$Decimal": "minimum",
58
- "@Org.OData.Validation.V1.Minimum@Org.OData.Validation.V1.Exclusive": "minimumExclusive",
59
- "@Org.OData.Validation.V1.Maximum/$Decimal": "maximum",
60
- "@Org.OData.Validation.V1.Maximum@Org.OData.Validation.V1.Exclusive": "maximumExclusive",
61
- "$Precision": "precision",
62
- "$Scale": "scale"
63
- },
64
- type: "sap.ui.model.odata.type.Decimal"
65
- },
66
- "Edm.Double": {
67
- type: "sap.ui.model.odata.type.Double"
68
- },
69
- "Edm.Guid": {
70
- type: "sap.ui.model.odata.type.Guid"
71
- },
72
- "Edm.Int16": {
73
- type: "sap.ui.model.odata.type.Int16"
74
- },
75
- "Edm.Int32": {
76
- type: "sap.ui.model.odata.type.Int32"
77
- },
78
- "Edm.Int64": {
79
- type: "sap.ui.model.odata.type.Int64"
80
- },
81
- "Edm.SByte": {
82
- type: "sap.ui.model.odata.type.SByte"
83
- },
84
- "Edm.Single": {
85
- type: "sap.ui.model.odata.type.Single"
86
- },
87
- "Edm.Stream": {
88
- type: "sap.ui.model.odata.type.Stream"
89
- },
90
- "Edm.String": {
91
- constraints: {
92
- "@com.sap.vocabularies.Common.v1.IsDigitSequence": "isDigitSequence",
93
- "$MaxLength": "maxLength",
94
- "$Nullable": "nullable"
95
- },
96
- type: "sap.ui.model.odata.type.String"
97
- },
98
- "Edm.TimeOfDay": {
99
- constraints: {
100
- "$Precision": "precision"
101
- },
102
- type: "sap.ui.model.odata.type.TimeOfDay"
103
- }
104
- };
39
+ var getDisplayMode = DisplayModeFormatter.getDisplayMode;
40
+ _exports.getDisplayMode = getDisplayMode;
41
+ var EDM_TYPE_MAPPING = DisplayModeFormatter.EDM_TYPE_MAPPING;
42
+ _exports.EDM_TYPE_MAPPING = EDM_TYPE_MAPPING;
43
+
105
44
  /**
106
45
  * Create the expression to generate an "editable" boolean value.
107
46
  *
@@ -111,9 +50,6 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
111
50
  * @param {boolean} bAsObject Whether or not this should be returned as an object or a binding string
112
51
  * @returns {string} The binding expression used to determine if a property is editable or not
113
52
  */
114
-
115
- _exports.EDM_TYPE_MAPPING = EDM_TYPE_MAPPING;
116
-
117
53
  var getEditableExpression = function (oPropertyPath) {
118
54
  var oDataFieldConverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
119
55
  var oDataModelObjectPath = arguments.length > 2 ? arguments[2] : undefined;
@@ -268,37 +204,6 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
268
204
 
269
205
  _exports.ifUnitEditable = ifUnitEditable;
270
206
 
271
- var getDisplayMode = function (oPropertyPath, oDataModelObjectPath) {
272
- var _oProperty$annotation, _oProperty$annotation2, _oTextAnnotation$anno, _oTextAnnotation$anno2, _oTextAnnotation$anno3, _oEntityType$annotati, _oEntityType$annotati2, _oEntityType$annotati3, _oEntityType$annotati4, _oEntityType$annotati5, _oEntityType$annotati6;
273
-
274
- if (!oPropertyPath || typeof oPropertyPath === "string") {
275
- return "Value";
276
- }
277
-
278
- var oProperty = isPathExpression(oPropertyPath) && oPropertyPath.$target || oPropertyPath;
279
- var oEntityType = oDataModelObjectPath && oDataModelObjectPath.targetEntityType;
280
- var oTextAnnotation = (_oProperty$annotation = oProperty.annotations) === null || _oProperty$annotation === void 0 ? void 0 : (_oProperty$annotation2 = _oProperty$annotation.Common) === null || _oProperty$annotation2 === void 0 ? void 0 : _oProperty$annotation2.Text;
281
- var oTextArrangementAnnotation = typeof oTextAnnotation !== "string" && (oTextAnnotation === null || oTextAnnotation === void 0 ? void 0 : (_oTextAnnotation$anno = oTextAnnotation.annotations) === null || _oTextAnnotation$anno === void 0 ? void 0 : (_oTextAnnotation$anno2 = _oTextAnnotation$anno.UI) === null || _oTextAnnotation$anno2 === void 0 ? void 0 : (_oTextAnnotation$anno3 = _oTextAnnotation$anno2.TextArrangement) === null || _oTextAnnotation$anno3 === void 0 ? void 0 : _oTextAnnotation$anno3.toString()) || (oEntityType === null || oEntityType === void 0 ? void 0 : (_oEntityType$annotati = oEntityType.annotations) === null || _oEntityType$annotati === void 0 ? void 0 : (_oEntityType$annotati2 = _oEntityType$annotati.UI) === null || _oEntityType$annotati2 === void 0 ? void 0 : (_oEntityType$annotati3 = _oEntityType$annotati2.TextArrangement) === null || _oEntityType$annotati3 === void 0 ? void 0 : _oEntityType$annotati3.toString());
282
- var sDisplayValue = oTextAnnotation ? "DescriptionValue" : "Value";
283
-
284
- if (oTextAnnotation && oTextArrangementAnnotation || oEntityType !== null && oEntityType !== void 0 && (_oEntityType$annotati4 = oEntityType.annotations) !== null && _oEntityType$annotati4 !== void 0 && (_oEntityType$annotati5 = _oEntityType$annotati4.UI) !== null && _oEntityType$annotati5 !== void 0 && (_oEntityType$annotati6 = _oEntityType$annotati5.TextArrangement) !== null && _oEntityType$annotati6 !== void 0 && _oEntityType$annotati6.toString()) {
285
- if (oTextArrangementAnnotation === "UI.TextArrangementType/TextOnly") {
286
- sDisplayValue = "Description";
287
- } else if (oTextArrangementAnnotation === "UI.TextArrangementType/TextLast") {
288
- sDisplayValue = "ValueDescription";
289
- } else if (oTextArrangementAnnotation === "UI.TextArrangementType/TextSeparate") {
290
- sDisplayValue = "Value";
291
- } else {
292
- //Default should be TextFirst if there is a Text annotation and neither TextOnly nor TextLast are set
293
- sDisplayValue = "DescriptionValue";
294
- }
295
- }
296
-
297
- return sDisplayValue;
298
- };
299
-
300
- _exports.getDisplayMode = getDisplayMode;
301
-
302
207
  var getFieldDisplay = function (oPropertyPath, sTargetDisplayMode, oComputedEditMode) {
303
208
  var oProperty = isPathExpression(oPropertyPath) && oPropertyPath.$target || oPropertyPath;
304
209
  return hasValueHelp(oProperty) ? compileBinding(sTargetDisplayMode) : compileBinding(ifElse(equal(oComputedEditMode, "Editable"), "Value", sTargetDisplayMode));
@@ -318,7 +223,7 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
318
223
  outExpression.type = oTargetMapping.type;
319
224
 
320
225
  if (oTargetMapping.constraints) {
321
- var _oProperty$annotation3, _oProperty$annotation4, _oProperty$annotation5, _oProperty$annotation6;
226
+ var _oProperty$annotation, _oProperty$annotation2, _oProperty$annotation3, _oProperty$annotation4;
322
227
 
323
228
  outExpression.constraints = {};
324
229
 
@@ -338,11 +243,11 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
338
243
  outExpression.constraints.nullable = oProperty.nullable;
339
244
  }
340
245
 
341
- if (oTargetMapping.constraints["@Org.OData.Validation.V1.Minimum/$Decimal"] && ((_oProperty$annotation3 = oProperty.annotations) === null || _oProperty$annotation3 === void 0 ? void 0 : (_oProperty$annotation4 = _oProperty$annotation3.Validation) === null || _oProperty$annotation4 === void 0 ? void 0 : _oProperty$annotation4.Minimum) !== undefined && !isNaN(oProperty.annotations.Validation.Minimum)) {
246
+ if (oTargetMapping.constraints["@Org.OData.Validation.V1.Minimum/$Decimal"] && ((_oProperty$annotation = oProperty.annotations) === null || _oProperty$annotation === void 0 ? void 0 : (_oProperty$annotation2 = _oProperty$annotation.Validation) === null || _oProperty$annotation2 === void 0 ? void 0 : _oProperty$annotation2.Minimum) !== undefined && !isNaN(oProperty.annotations.Validation.Minimum)) {
342
247
  outExpression.constraints.minimum = "".concat(oProperty.annotations.Validation.Minimum);
343
248
  }
344
249
 
345
- if (oTargetMapping.constraints["@Org.OData.Validation.V1.Maximum/$Decimal"] && ((_oProperty$annotation5 = oProperty.annotations) === null || _oProperty$annotation5 === void 0 ? void 0 : (_oProperty$annotation6 = _oProperty$annotation5.Validation) === null || _oProperty$annotation6 === void 0 ? void 0 : _oProperty$annotation6.Maximum) !== undefined && !isNaN(oProperty.annotations.Validation.Maximum)) {
250
+ if (oTargetMapping.constraints["@Org.OData.Validation.V1.Maximum/$Decimal"] && ((_oProperty$annotation3 = oProperty.annotations) === null || _oProperty$annotation3 === void 0 ? void 0 : (_oProperty$annotation4 = _oProperty$annotation3.Validation) === null || _oProperty$annotation4 === void 0 ? void 0 : _oProperty$annotation4.Maximum) !== undefined && !isNaN(oProperty.annotations.Validation.Maximum)) {
346
251
  outExpression.constraints.maximum = "".concat(oProperty.annotations.Validation.Maximum);
347
252
  }
348
253
  }
@@ -359,7 +264,7 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
359
264
  }
360
265
 
361
266
  if (outExpression.type === "sap.ui.model.odata.type.String") {
362
- var _oTargetMapping$const, _oProperty$annotation7, _oProperty$annotation8;
267
+ var _oTargetMapping$const, _oProperty$annotation5, _oProperty$annotation6;
363
268
 
364
269
  if (!outExpression.formatOptions) {
365
270
  outExpression.formatOptions = {};
@@ -367,7 +272,7 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
367
272
 
368
273
  outExpression.formatOptions.parseKeepsEmptyString = true;
369
274
 
370
- if ((_oTargetMapping$const = oTargetMapping.constraints) !== null && _oTargetMapping$const !== void 0 && _oTargetMapping$const["@com.sap.vocabularies.Common.v1.IsDigitSequence"] && (_oProperty$annotation7 = oProperty.annotations) !== null && _oProperty$annotation7 !== void 0 && (_oProperty$annotation8 = _oProperty$annotation7.Common) !== null && _oProperty$annotation8 !== void 0 && _oProperty$annotation8.IsDigitSequence) {
275
+ if ((_oTargetMapping$const = oTargetMapping.constraints) !== null && _oTargetMapping$const !== void 0 && _oTargetMapping$const["@com.sap.vocabularies.Common.v1.IsDigitSequence"] && (_oProperty$annotation5 = oProperty.annotations) !== null && _oProperty$annotation5 !== void 0 && (_oProperty$annotation6 = _oProperty$annotation5.Common) !== null && _oProperty$annotation6 !== void 0 && _oProperty$annotation6.IsDigitSequence) {
371
276
  outExpression.constraints.isDigitSequence = true;
372
277
  }
373
278
  }
@@ -401,15 +306,15 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
401
306
  };
402
307
 
403
308
  if (isProperty(oProperty)) {
404
- var _oTargetMapping$const2, _oTargetMapping$const3, _oTargetMapping$const4, _oTargetMapping$const5, _oTargetMapping$const6, _oProperty$annotation9, _oProperty$annotation10, _oProperty$annotation11, _oProperty$annotation12, _oTargetMapping$const7, _oProperty$annotation13, _oProperty$annotation14, _oProperty$annotation15, _oProperty$annotation16, _oTargetMapping$const8, _annotations, _annotations$Common;
309
+ var _oTargetMapping$const2, _oTargetMapping$const3, _oTargetMapping$const4, _oTargetMapping$const5, _oTargetMapping$const6, _oProperty$annotation7, _oProperty$annotation8, _oProperty$annotation9, _oProperty$annotation10, _oTargetMapping$const7, _oProperty$annotation11, _oProperty$annotation12, _oProperty$annotation13, _oProperty$annotation14, _oTargetMapping$const8, _annotations, _annotations$Common;
405
310
 
406
311
  propertyTypeConfig.constraints = {
407
312
  scale: (_oTargetMapping$const2 = oTargetMapping.constraints) !== null && _oTargetMapping$const2 !== void 0 && _oTargetMapping$const2.$Scale ? oProperty.scale : undefined,
408
313
  precision: (_oTargetMapping$const3 = oTargetMapping.constraints) !== null && _oTargetMapping$const3 !== void 0 && _oTargetMapping$const3.$Precision ? oProperty.precision : undefined,
409
314
  maxLength: (_oTargetMapping$const4 = oTargetMapping.constraints) !== null && _oTargetMapping$const4 !== void 0 && _oTargetMapping$const4.$MaxLength ? oProperty.maxLength : undefined,
410
315
  nullable: (_oTargetMapping$const5 = oTargetMapping.constraints) !== null && _oTargetMapping$const5 !== void 0 && _oTargetMapping$const5.$Nullable ? oProperty.nullable : undefined,
411
- minimum: (_oTargetMapping$const6 = oTargetMapping.constraints) !== null && _oTargetMapping$const6 !== void 0 && _oTargetMapping$const6["@Org.OData.Validation.V1.Minimum/$Decimal"] && !isNaN((_oProperty$annotation9 = oProperty.annotations) === null || _oProperty$annotation9 === void 0 ? void 0 : (_oProperty$annotation10 = _oProperty$annotation9.Validation) === null || _oProperty$annotation10 === void 0 ? void 0 : _oProperty$annotation10.Minimum) ? "".concat((_oProperty$annotation11 = oProperty.annotations) === null || _oProperty$annotation11 === void 0 ? void 0 : (_oProperty$annotation12 = _oProperty$annotation11.Validation) === null || _oProperty$annotation12 === void 0 ? void 0 : _oProperty$annotation12.Minimum) : undefined,
412
- maximum: (_oTargetMapping$const7 = oTargetMapping.constraints) !== null && _oTargetMapping$const7 !== void 0 && _oTargetMapping$const7["@Org.OData.Validation.V1.Maximum/$Decimal"] && !isNaN((_oProperty$annotation13 = oProperty.annotations) === null || _oProperty$annotation13 === void 0 ? void 0 : (_oProperty$annotation14 = _oProperty$annotation13.Validation) === null || _oProperty$annotation14 === void 0 ? void 0 : _oProperty$annotation14.Maximum) ? "".concat((_oProperty$annotation15 = oProperty.annotations) === null || _oProperty$annotation15 === void 0 ? void 0 : (_oProperty$annotation16 = _oProperty$annotation15.Validation) === null || _oProperty$annotation16 === void 0 ? void 0 : _oProperty$annotation16.Maximum) : undefined,
316
+ minimum: (_oTargetMapping$const6 = oTargetMapping.constraints) !== null && _oTargetMapping$const6 !== void 0 && _oTargetMapping$const6["@Org.OData.Validation.V1.Minimum/$Decimal"] && !isNaN((_oProperty$annotation7 = oProperty.annotations) === null || _oProperty$annotation7 === void 0 ? void 0 : (_oProperty$annotation8 = _oProperty$annotation7.Validation) === null || _oProperty$annotation8 === void 0 ? void 0 : _oProperty$annotation8.Minimum) ? "".concat((_oProperty$annotation9 = oProperty.annotations) === null || _oProperty$annotation9 === void 0 ? void 0 : (_oProperty$annotation10 = _oProperty$annotation9.Validation) === null || _oProperty$annotation10 === void 0 ? void 0 : _oProperty$annotation10.Minimum) : undefined,
317
+ maximum: (_oTargetMapping$const7 = oTargetMapping.constraints) !== null && _oTargetMapping$const7 !== void 0 && _oTargetMapping$const7["@Org.OData.Validation.V1.Maximum/$Decimal"] && !isNaN((_oProperty$annotation11 = oProperty.annotations) === null || _oProperty$annotation11 === void 0 ? void 0 : (_oProperty$annotation12 = _oProperty$annotation11.Validation) === null || _oProperty$annotation12 === void 0 ? void 0 : _oProperty$annotation12.Maximum) ? "".concat((_oProperty$annotation13 = oProperty.annotations) === null || _oProperty$annotation13 === void 0 ? void 0 : (_oProperty$annotation14 = _oProperty$annotation13.Validation) === null || _oProperty$annotation14 === void 0 ? void 0 : _oProperty$annotation14.Maximum) : undefined,
413
318
  isDigitSequence: propertyTypeConfig.type === "sap.ui.model.odata.type.String" && (_oTargetMapping$const8 = oTargetMapping.constraints) !== null && _oTargetMapping$const8 !== void 0 && _oTargetMapping$const8["@com.sap.vocabularies.Common.v1.IsDigitSequence"] && (_annotations = oProperty.annotations) !== null && _annotations !== void 0 && (_annotations$Common = _annotations.Common) !== null && _annotations$Common !== void 0 && _annotations$Common.IsDigitSequence ? true : undefined
414
319
  };
415
320
  }
@@ -557,4 +462,4 @@ sap.ui.define(["sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers
557
462
  _exports.isCollectionField = isCollectionField;
558
463
  return _exports;
559
464
  }, false);
560
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVJRm9ybWF0dGVycy50cyJdLCJuYW1lcyI6WyJFRE1fVFlQRV9NQVBQSU5HIiwidHlwZSIsImNvbnN0cmFpbnRzIiwiZ2V0RWRpdGFibGVFeHByZXNzaW9uIiwib1Byb3BlcnR5UGF0aCIsIm9EYXRhRmllbGRDb252ZXJ0ZWQiLCJvRGF0YU1vZGVsT2JqZWN0UGF0aCIsImJBc09iamVjdCIsImNvbXBpbGVCaW5kaW5nIiwiZGF0YUZpZWxkRWRpdGFibGVFeHByZXNzaW9uIiwiaWZFbHNlIiwiaXNOb25FZGl0YWJsZUV4cHJlc3Npb24iLCJVSSIsIklzRWRpdGFibGUiLCJvUHJvcGVydHkiLCJpc1BhdGhFeHByZXNzaW9uIiwiJHRhcmdldCIsImlzUGF0aFVwZGF0YWJsZUV4cHJlc3Npb24iLCJpc1BhdGhVcGRhdGFibGUiLCJlZGl0YWJsZUV4cHJlc3Npb24iLCJvciIsIm5vdCIsImlzQ29tcHV0ZWQiLCJpc0tleSIsImlzSW1tdXRhYmxlIiwiSXNUcmFuc2llbnRCaW5kaW5nIiwiYW5kIiwiZ2V0RW5hYmxlZEV4cHJlc3Npb24iLCJkYXRhRmllbGRFbmFibGVkRXhwcmVzc2lvbiIsImlzRGlzYWJsZWRFeHByZXNzaW9uIiwiZW5hYmxlZEV4cHJlc3Npb24iLCJnZXRFZGl0TW9kZSIsImJNZWFzdXJlUmVhZE9ubHkiLCJhc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSIsImdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5IiwidW5pdFByb3BlcnR5IiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eSIsInJlc3VsdEV4cHJlc3Npb24iLCJpc1JlYWRPbmx5RXhwcmVzc2lvbiIsInJlYWRPbmx5RXhwcmVzc2lvbiIsImVkaXRNb2RlRXhwcmVzc2lvbiIsImlzQ29uc3RhbnQiLCJoYXNWYWxpZEFuYWx5dGljYWxDdXJyZW5jeU9yVW5pdCIsIm9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgiLCJvUHJvcGVydHlEZWZpbml0aW9uIiwidGFyZ2V0T2JqZWN0IiwiY3VycmVuY3kiLCJhbm5vdGF0aW9ucyIsIk1lYXN1cmVzIiwiSVNPQ3VycmVuY3kiLCJtZWFzdXJlIiwiVW5pdCIsImlzVHJ1dGh5IiwiYW5ub3RhdGlvbkV4cHJlc3Npb24iLCJJc1RvdGFsIiwiY29uc3RhbnQiLCJpZlVuaXRFZGl0YWJsZSIsInNFZGl0YWJsZVZhbHVlIiwic05vbkVkaXRhYmxlVmFsdWUiLCJnZXREaXNwbGF5TW9kZSIsIm9FbnRpdHlUeXBlIiwidGFyZ2V0RW50aXR5VHlwZSIsIm9UZXh0QW5ub3RhdGlvbiIsIkNvbW1vbiIsIlRleHQiLCJvVGV4dEFycmFuZ2VtZW50QW5ub3RhdGlvbiIsIlRleHRBcnJhbmdlbWVudCIsInRvU3RyaW5nIiwic0Rpc3BsYXlWYWx1ZSIsImdldEZpZWxkRGlzcGxheSIsInNUYXJnZXREaXNwbGF5TW9kZSIsIm9Db21wdXRlZEVkaXRNb2RlIiwiaGFzVmFsdWVIZWxwIiwiZXF1YWwiLCJmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uIiwicHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiIsIm91dEV4cHJlc3Npb24iLCJfdHlwZSIsIm9UYXJnZXRNYXBwaW5nIiwiJFNjYWxlIiwic2NhbGUiLCJ1bmRlZmluZWQiLCIkUHJlY2lzaW9uIiwicHJlY2lzaW9uIiwiJE1heExlbmd0aCIsIm1heExlbmd0aCIsIiROdWxsYWJsZSIsIm51bGxhYmxlIiwiVmFsaWRhdGlvbiIsIk1pbmltdW0iLCJpc05hTiIsIm1pbmltdW0iLCJNYXhpbXVtIiwibWF4aW11bSIsImluZGV4T2YiLCJmb3JtYXRPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwicGFyc2VBc1N0cmluZyIsImVtcHR5U3RyaW5nIiwicGFyc2VLZWVwc0VtcHR5U3RyaW5nIiwiSXNEaWdpdFNlcXVlbmNlIiwiaXNEaWdpdFNlcXVlbmNlIiwiZ2V0VHlwZUNvbmZpZyIsImRhdGFUeXBlIiwicHJvcGVydHlUeXBlQ29uZmlnIiwiaXNQcm9wZXJ0eSIsImdldEJpbmRpbmdXaXRoVW5pdE9yQ3VycmVuY3kiLCJvUHJvcGVydHlEYXRhTW9kZWxQYXRoIiwidW5pdCIsInJlbGF0aXZlTG9jYXRpb24iLCJnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbiIsImNvbnRleHRMb2NhdGlvbiIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwibWFwIiwibnAiLCJuYW1lIiwiZm9ybWF0UmVzdWx0IiwidmFsdWVGb3JtYXR0ZXJzIiwiZm9ybWF0V2l0aFBlcmNlbnRhZ2UiLCJjb21wbGV4VHlwZSIsInVuaXRCaW5kaW5nRXhwcmVzc2lvbiIsImFkZFR5cGVJbmZvcm1hdGlvbiIsImdldEFsaWdubWVudEV4cHJlc3Npb24iLCJzQWxpZ25EaXNwbGF5Iiwic0FsaWduRWRpdCIsImdldENvbnZlcnRlckNvbnRleHQiLCJvQ29udGV4dCIsIm9JbnRlcmZhY2UiLCJjb250ZXh0IiwiY29udmVydE1ldGFNb2RlbENvbnRleHQiLCJyZXF1aXJlc0lDb250ZXh0IiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsImdldEV4cHJlc3Npb25CaW5kaW5nIiwiZXhwcmVzc2lvbiIsImdldFRhcmdldEVudGl0eVNldCIsIm9EYXRhTW9kZWxQYXRoIiwiZ2V0VGFyZ2V0RW50aXR5U2V0UGF0aCIsImlzQ29sbGVjdGlvbkZpZWxkIiwibGVuZ3RoIiwiaGFzT25lVG9NYW55TmF2aWdhdGlvbiIsImZpbmRJbmRleCIsIm9OYXYiLCJpc0NvbGxlY3Rpb24iLCJvQ29udGV4dE5hdiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5RU8sTUFBTUEsZ0JBQXFDLEdBQUc7QUFDcEQsbUJBQWU7QUFBRUMsTUFBQUEsSUFBSSxFQUFFO0FBQVIsS0FEcUM7QUFFcEQsZ0JBQVk7QUFBRUEsTUFBQUEsSUFBSSxFQUFFO0FBQVIsS0FGd0M7QUFHcEQsZ0JBQVk7QUFBRUEsTUFBQUEsSUFBSSxFQUFFO0FBQVIsS0FId0M7QUFJcEQsMEJBQXNC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bXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NFwiO1xuaW1wb3J0IHsgY29udmVydE1ldGFNb2RlbENvbnRleHQsIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHtcblx0YWRkVHlwZUluZm9ybWF0aW9uLFxuXHRhbmQsXG5cdGFubm90YXRpb25FeHByZXNzaW9uLFxuXHRCaW5kaW5nRXhwcmVzc2lvbixcblx0QmluZGluZ0V4cHJlc3Npb25FeHByZXNzaW9uLFxuXHRjb21waWxlQmluZGluZyxcblx0Y29uc3RhbnQsXG5cdGVxdWFsLFxuXHRFeHByZXNzaW9uLFxuXHRFeHByZXNzaW9uT3JQcmltaXRpdmUsXG5cdGZvcm1hdFJlc3VsdCxcblx0aWZFbHNlLFxuXHRpc0NvbnN0YW50LFxuXHRpc1RydXRoeSxcblx0bm90LFxuXHRvclxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgVUkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB7XG5cdGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHksXG5cdGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5LFxuXHRoYXNWYWx1ZUhlbHAsXG5cdGlzQ29tcHV0ZWQsXG5cdGlzSW1tdXRhYmxlLFxuXHRpc0tleSxcblx0aXNQYXRoRXhwcmVzc2lvbixcblx0aXNQcm9wZXJ0eVxufSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvblByb3BlcnR5LCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L2Fubm90YXRpb24tY29udmVydGVyXCI7XG5pbXBvcnQgeyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdHlwZXMvRWRtXCI7XG5pbXBvcnQge1xuXHREYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRnZXRUYXJnZXRFbnRpdHlTZXRQYXRoLFxuXHRpc1BhdGhVcGRhdGFibGUsXG5cdGdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uXG59IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGlzUmVhZE9ubHlFeHByZXNzaW9uLCBpc05vbkVkaXRhYmxlRXhwcmVzc2lvbiwgaXNEaXNhYmxlZEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9GaWVsZENvbnRyb2xIZWxwZXJcIjtcbmltcG9ydCB2YWx1ZUZvcm1hdHRlcnMgZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvVmFsdWVGb3JtYXR0ZXJcIjtcbmltcG9ydCB7IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlPclBhdGg8UD4gPSBzdHJpbmcgfCBQIHwgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFA+O1xuZXhwb3J0IHR5cGUgTWV0YU1vZGVsQ29udGV4dCA9IHtcblx0JGtpbmQ6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2UgPSB7XG5cdGNvbnRleHQ6IENvbnRleHQ7XG5cdGFyZ3VtZW50czogYW55W107XG5cdCQkdmFsdWVBc1Byb21pc2U6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBjb25maWdUeXBlQ29uc3RyYWludHMgPSB7XG5cdHNjYWxlPzogbnVtYmVyO1xuXHRwcmVjaXNpb24/OiBudW1iZXI7XG5cdG1heExlbmd0aD86IG51bWJlcjtcblx0bnVsbGFibGU/OiBib29sZWFuO1xuXHRtaW5pbXVtPzogc3RyaW5nO1xuXHRtYXhpbXVtPzogc3RyaW5nO1xuXHRpc0RpZ2l0U2VxdWVuY2U/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgY29uZmlnVHlwZWZvcm1hdE9wdGlvbnMgPSB7XG5cdHBhcnNlQXNTdHJpbmc/OiBib29sZWFuO1xuXHRlbXB0eVN0cmluZz86IHN0cmluZztcblx0cGFyc2VLZWVwc0VtcHR5U3RyaW5nPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIGNvbmZpZ1R5cGUgPSB7XG5cdHR5cGU6IHN0cmluZztcblx0Y29uc3RyYWludHM6IGNvbmZpZ1R5cGVDb25zdHJhaW50cztcblx0Zm9ybWF0T3B0aW9uczogY29uZmlnVHlwZWZvcm1hdE9wdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgRURNX1RZUEVfTUFQUElORzogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcblx0XCJFZG0uQm9vbGVhblwiOiB7IHR5cGU6IFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuQm9vbGVhblwiIH0sXG5cdFwiRWRtLkJ5dGVcIjogeyB0eXBlOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkJ5dGVcIiB9LFxuXHRcIkVkbS5EYXRlXCI6IHsgdHlwZTogXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5EYXRlXCIgfSxcblx0XCJFZG0uRGF0ZVRpbWVPZmZzZXRcIjoge1xuXHRcdGNvbnN0cmFpbnRzOiB7XG5cdFx0XHRcIiRQcmVjaXNpb25cIjogXCJwcmVjaXNpb25cIlxuXHRcdH0sXG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5EYXRlVGltZU9mZnNldFwiXG5cdH0sXG5cdFwiRWRtLkRlY2ltYWxcIjoge1xuXHRcdGNvbnN0cmFpbnRzOiB7XG5cdFx0XHRcIkBPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5NaW5pbXVtLyREZWNpbWFsXCI6IFwibWluaW11bVwiLFxuXHRcdFx0XCJAT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuTWluaW11bUBPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5FeGNsdXNpdmVcIjogXCJtaW5pbXVtRXhjbHVzaXZlXCIsXG5cdFx0XHRcIkBPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5NYXhpbXVtLyREZWNpbWFsXCI6IFwibWF4aW11bVwiLFxuXHRcdFx0XCJAT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuTWF4aW11bUBPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5FeGNsdXNpdmVcIjogXCJtYXhpbXVtRXhjbHVzaXZlXCIsXG5cdFx0XHRcIiRQcmVjaXNpb25cIjogXCJwcmVjaXNpb25cIixcblx0XHRcdFwiJFNjYWxlXCI6IFwic2NhbGVcIlxuXHRcdH0sXG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5EZWNpbWFsXCJcblx0fSxcblx0XCJFZG0uRG91YmxlXCI6IHsgdHlwZTogXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Eb3VibGVcIiB9LFxuXHRcIkVkbS5HdWlkXCI6IHsgdHlwZTogXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5HdWlkXCIgfSxcblx0XCJFZG0uSW50MTZcIjogeyB0eXBlOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDE2XCIgfSxcblx0XCJFZG0uSW50MzJcIjogeyB0eXBlOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDMyXCIgfSxcblx0XCJFZG0uSW50NjRcIjogeyB0eXBlOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDY0XCIgfSxcblx0XCJFZG0uU0J5dGVcIjogeyB0eXBlOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlNCeXRlXCIgfSxcblx0XCJFZG0uU2luZ2xlXCI6IHsgdHlwZTogXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TaW5nbGVcIiB9LFxuXHRcIkVkbS5TdHJlYW1cIjogeyB0eXBlOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmVhbVwiIH0sXG5cdFwiRWRtLlN0cmluZ1wiOiB7XG5cdFx0Y29uc3RyYWludHM6IHtcblx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0RpZ2l0U2VxdWVuY2VcIjogXCJpc0RpZ2l0U2VxdWVuY2VcIixcblx0XHRcdFwiJE1heExlbmd0aFwiOiBcIm1heExlbmd0aFwiLFxuXHRcdFx0XCIkTnVsbGFibGVcIjogXCJudWxsYWJsZVwiXG5cdFx0fSxcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZ1wiXG5cdH0sXG5cdFwiRWRtLlRpbWVPZkRheVwiOiB7XG5cdFx0Y29uc3RyYWludHM6IHtcblx0XHRcdFwiJFByZWNpc2lvblwiOiBcInByZWNpc2lvblwiXG5cdFx0fSxcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlRpbWVPZkRheVwiXG5cdH1cbn07XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBleHByZXNzaW9uIHRvIGdlbmVyYXRlIGFuIFwiZWRpdGFibGVcIiBib29sZWFuIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHlQYXRofSBvUHJvcGVydHlQYXRoIFRoZSBpbnB1dCBwcm9wZXJ0eVxuICogQHBhcmFtIHtvYmplY3R9IG9EYXRhRmllbGRDb252ZXJ0ZWQgVGhlIERhdGFGaWVsZENvbnZlcnRlZCBvYmplY3QgdG8gcmVhZCB0aGUgZmllbGRDb250cm9sIGFubm90YXRpb25cbiAqIEBwYXJhbSB7RGF0YU1vZGVsT2JqZWN0UGF0aH0gb0RhdGFNb2RlbE9iamVjdFBhdGggVGhlIHBhdGggdG8gdGhpcyBwcm9wZXJ0eSBvYmplY3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYkFzT2JqZWN0IFdoZXRoZXIgb3Igbm90IHRoaXMgc2hvdWxkIGJlIHJldHVybmVkIGFzIGFuIG9iamVjdCBvciBhIGJpbmRpbmcgc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYmluZGluZyBleHByZXNzaW9uIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgcHJvcGVydHkgaXMgZWRpdGFibGUgb3Igbm90XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFZGl0YWJsZUV4cHJlc3Npb24gPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+LFxuXHRvRGF0YUZpZWxkQ29udmVydGVkOiBhbnkgPSBudWxsLFxuXHRvRGF0YU1vZGVsT2JqZWN0UGF0aD86IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGJBc09iamVjdDogYm9vbGVhbiA9IGZhbHNlXG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPiB8IEV4cHJlc3Npb25PclByaW1pdGl2ZTxib29sZWFuPiB7XG5cdGlmICghb1Byb3BlcnR5UGF0aCB8fCB0eXBlb2Ygb1Byb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybiBjb21waWxlQmluZGluZyhmYWxzZSk7XG5cdH1cblx0bGV0IGRhdGFGaWVsZEVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj4gfCBFeHByZXNzaW9uT3JQcmltaXRpdmU8Ym9vbGVhbj4gPSB0cnVlO1xuXHRpZiAob0RhdGFGaWVsZENvbnZlcnRlZCAhPT0gbnVsbCkge1xuXHRcdGRhdGFGaWVsZEVkaXRhYmxlRXhwcmVzc2lvbiA9IGlmRWxzZShpc05vbkVkaXRhYmxlRXhwcmVzc2lvbihvRGF0YUZpZWxkQ29udmVydGVkKSwgZmFsc2UsIFVJLklzRWRpdGFibGUpO1xuXHR9XG5cblx0Y29uc3Qgb1Byb3BlcnR5OiBQcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHQvLyBFZGl0YWJpbGl0eSBkZXBlbmRzIG9uIHRoZSBmaWVsZCBjb250cm9sIGV4cHJlc3Npb25cblx0Ly8gSWYgdGhlIEZpZWxkIGNvbnRyb2wgaXMgc3RhdGljYWxseSBpbiBSZWFkT25seSBvciBJbmFwcGxpY2FibGUgKGRpc2FibGVkKSAtPiBub3QgZWRpdGFibGVcblx0Ly8gSWYgdGhlIHByb3BlcnR5IGlzIGEga2V5IC0+IG5vdCBlZGl0YWJsZSBleGNlcHQgaW4gY3JlYXRpb24gaWYgbm90IGNvbXB1dGVkXG5cdC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBjb21wdXRlZCAtPiBub3QgZWRpdGFibGVcblx0Ly8gSWYgdGhlIHByb3BlcnR5IGlzIG5vdCB1cGRhdGFibGUgLT4gbm90IGVkaXRhYmxlXG5cdC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBpbW11dGFibGUgLT4gbm90IGVkaXRhYmxlIGV4Y2VwdCBpbiBjcmVhdGlvblxuXHQvLyBJZiB0aGUgRmllbGQgY29udHJvbCBpcyBhIHBhdGggcmVzb2x2aW5nIHRvIFJlYWRPbmx5IG9yIEluYXBwbGljYWJsZSAoZGlzYWJsZWQpICg8PSAxKSAtPiBub3QgZWRpdGFibGVcblx0Ly8gRWxzZSwgdG8gYmUgZWRpdGFibGUgeW91IG5lZWRcblx0Ly8gaW1tdXRhYmxlIGFuZCBrZXkgd2hpbGUgaW4gdGhlIGNyZWF0aW9uIHJvd1xuXHQvLyB1aS9pc0VkaXRhYmxlXG5cdGNvbnN0IGlzUGF0aFVwZGF0YWJsZUV4cHJlc3Npb24gPSBpc1BhdGhVcGRhdGFibGUob0RhdGFNb2RlbE9iamVjdFBhdGgsIG9Qcm9wZXJ0eVBhdGgpO1xuXHRjb25zdCBlZGl0YWJsZUV4cHJlc3Npb24gPSBpZkVsc2UoXG5cdFx0b3IoXG5cdFx0XHRub3QoaXNQYXRoVXBkYXRhYmxlRXhwcmVzc2lvbiksXG5cdFx0XHRpc0NvbXB1dGVkKG9Qcm9wZXJ0eSksXG5cdFx0XHRpc0tleShvUHJvcGVydHkpLFxuXHRcdFx0aXNJbW11dGFibGUob1Byb3BlcnR5KSxcblx0XHRcdGlzTm9uRWRpdGFibGVFeHByZXNzaW9uKG9Qcm9wZXJ0eSlcblx0XHQpLFxuXHRcdGlmRWxzZShvcihpc0NvbXB1dGVkKG9Qcm9wZXJ0eSksIGlzTm9uRWRpdGFibGVFeHByZXNzaW9uKG9Qcm9wZXJ0eSkpLCBmYWxzZSwgVUkuSXNUcmFuc2llbnRCaW5kaW5nKSxcblx0XHRVSS5Jc0VkaXRhYmxlXG5cdCk7XG5cdGlmIChiQXNPYmplY3QpIHtcblx0XHRyZXR1cm4gYW5kKGVkaXRhYmxlRXhwcmVzc2lvbiwgZGF0YUZpZWxkRWRpdGFibGVFeHByZXNzaW9uKTtcblx0fVxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoYW5kKGVkaXRhYmxlRXhwcmVzc2lvbiwgZGF0YUZpZWxkRWRpdGFibGVFeHByZXNzaW9uKSk7XG59O1xuXG4vKipcbiAqIENyZWF0ZSB0aGUgZXhwcmVzc2lvbiB0byBnZW5lcmF0ZSBhbiBcImVuYWJsZWRcIiBib29sZWFuIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHlQYXRofSBvUHJvcGVydHlQYXRoIFRoZSBpbnB1dCBwcm9wZXJ0eVxuICogQHBhcmFtIHthbnl9IG9EYXRhRmllbGRDb252ZXJ0ZWQgVGhlIERhdGFGaWVsZENvbnZlcnRlZCBPYmplY3QgdG8gcmVhZCB0aGUgZmllbGRDb250cm9sIGFubm90YXRpb25cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYkFzT2JqZWN0IFdoZXRoZXIgb3Igbm90IHRoaXMgc2hvdWxkIGJlIHJldHVybmVkIGFzIGFuIG9iamVjdCBvciBhIGJpbmRpbmcgc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYmluZGluZyBleHByZXNzaW9uIHRvIGRldGVybWluZSBpZiBhIHByb3BlcnR5IGlzIGVuYWJsZWQgb3Igbm90XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFbmFibGVkRXhwcmVzc2lvbiA9IGZ1bmN0aW9uKFxuXHRvUHJvcGVydHlQYXRoOiBQcm9wZXJ0eU9yUGF0aDxQcm9wZXJ0eT4sXG5cdG9EYXRhRmllbGRDb252ZXJ0ZWQ/OiBhbnksXG5cdGJBc09iamVjdDogYm9vbGVhbiA9IGZhbHNlXG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPiB8IEV4cHJlc3Npb25PclByaW1pdGl2ZTxib29sZWFuPiB7XG5cdGlmICghb1Byb3BlcnR5UGF0aCB8fCB0eXBlb2Ygb1Byb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybiBjb21waWxlQmluZGluZyh0cnVlKTtcblx0fVxuXHRsZXQgZGF0YUZpZWxkRW5hYmxlZEV4cHJlc3Npb246IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+IHwgRXhwcmVzc2lvbk9yUHJpbWl0aXZlPGJvb2xlYW4+ID0gdHJ1ZTtcblx0aWYgKG9EYXRhRmllbGRDb252ZXJ0ZWQgIT09IG51bGwpIHtcblx0XHRkYXRhRmllbGRFbmFibGVkRXhwcmVzc2lvbiA9IGlmRWxzZShpc0Rpc2FibGVkRXhwcmVzc2lvbihvRGF0YUZpZWxkQ29udmVydGVkKSwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0Y29uc3Qgb1Byb3BlcnR5OiBQcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHQvLyBFbmFibGVtZW50IGRlcGVuZHMgb24gdGhlIGZpZWxkIGNvbnRyb2wgZXhwcmVzc2lvblxuXHQvLyBJZiB0aGUgRmllbGQgY29udHJvbCBpcyBzdGF0aWNhbGx5IGluIEluYXBwbGljYWJsZSAoZGlzYWJsZWQpIC0+IG5vdCBlbmFibGVkXG5cdGNvbnN0IGVuYWJsZWRFeHByZXNzaW9uID0gaWZFbHNlKGlzRGlzYWJsZWRFeHByZXNzaW9uKG9Qcm9wZXJ0eSksIGZhbHNlLCB0cnVlKTtcblx0aWYgKGJBc09iamVjdCkge1xuXHRcdHJldHVybiBhbmQoZW5hYmxlZEV4cHJlc3Npb24sIGRhdGFGaWVsZEVuYWJsZWRFeHByZXNzaW9uKTtcblx0fVxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoYW5kKGVuYWJsZWRFeHByZXNzaW9uLCBkYXRhRmllbGRFbmFibGVkRXhwcmVzc2lvbikpO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgdGhlIGV4cHJlc3Npb24gdG8gZ2VuZXJhdGUgYW4gXCJlZGl0TW9kZVwiIGVudW0gdmFsdWUuXG4gKiBAcGFyYW0ge1Byb3BlcnR5UGF0aH0gb1Byb3BlcnR5UGF0aCBUaGUgaW5wdXQgcHJvcGVydHlcbiAqIEBwYXJhbSB7RGF0YU1vZGVsT2JqZWN0UGF0aH0gb0RhdGFNb2RlbE9iamVjdFBhdGggVGhlIGxpc3Qgb2YgZGF0YSBtb2RlbCBvYmplY3RzIHRoYXQgYXJlIGludm9sdmVkIHRvIHJlYWNoIHRoYXQgcHJvcGVydHlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYk1lYXN1cmVSZWFkT25seSBXaGV0aGVyIHdlIHNob3VsZCBzZXQgVW9NIC8gY3VycmVuY3kgZmllbGQgbW9kZSB0byByZWFkIG9ubHlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYkFzT2JqZWN0IFdoZXRoZXIgd2Ugc2hvdWxkIHJldHVybiB0aGlzIGFzIGFuIGV4cHJlc3Npb24gb3IgYXMgYSBzdHJpbmdcbiAqIEBwYXJhbSB7b2JqZWN0fSBvRGF0YUZpZWxkQ29udmVydGVkIFRoZSBkYXRhRmllbGQgb2JqZWN0XG4gKiBAcmV0dXJucyB7QmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB8IEV4cHJlc3Npb25PclByaW1pdGl2ZTxzdHJpbmc+fSBUaGUgYmluZGluZyBleHByZXNzaW9uIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBwcm9wZXJ0eSBlZGl0IG1vZGUsIGNvbXBsaWFudCB3aXRoIHRoZSBNREMgRmllbGQgZGVmaW5pdGlvbiBvZiBlZGl0TW9kZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEVkaXRNb2RlID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eVBhdGg6IFByb3BlcnR5T3JQYXRoPFByb3BlcnR5Pixcblx0b0RhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGJNZWFzdXJlUmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZSxcblx0YkFzT2JqZWN0OiBib29sZWFuID0gZmFsc2UsXG5cdG9EYXRhRmllbGRDb252ZXJ0ZWQ6IGFueSA9IG51bGxcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4gfCBFeHByZXNzaW9uT3JQcmltaXRpdmU8c3RyaW5nPiB7XG5cdGlmICghb1Byb3BlcnR5UGF0aCB8fCB0eXBlb2Ygb1Byb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybiBcIkRpc3BsYXlcIjtcblx0fVxuXHRjb25zdCBvUHJvcGVydHk6IFByb3BlcnR5ID0gKGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5UGF0aCkgJiYgb1Byb3BlcnR5UGF0aC4kdGFyZ2V0KSB8fCAob1Byb3BlcnR5UGF0aCBhcyBQcm9wZXJ0eSk7XG5cdC8vIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3QgZW5hYmxlZCA9PiBEaXNhYmxlZFxuXHQvLyBpZiB0aGUgcHJvcGVydHkgaXMgZW5hYmxlZCAmJiBub3QgZWRpdGFibGUgPT4gUmVhZE9ubHlcblx0Ly8gaWYgdGhlIHByb3BlcnR5IGlzIGVuYWJsZWQgJiYgZWRpdGFibGUgPT4gRWRpdGFibGVcblx0Ly8gSWYgdGhlcmUgaXMgYW4gYXNzb2NpYXRlZCB1bml0LCBhbmQgaXQgaGFzIGEgZmllbGQgY29udHJvbCBhbHNvIHVzZSBjb25zaWRlciB0aGUgZm9sbG93aW5nXG5cdC8vIGlmIHRoZSB1bml0IGZpZWxkIGNvbnRyb2wgaXMgcmVhZG9ubHkgLT4gRWRpdGFibGVSZWFkT25seVxuXHQvLyBvdGhlcndpc2UgLT4gRWRpdGFibGVcblx0Y29uc3QgZWRpdGFibGVFeHByZXNzaW9uID0gZ2V0RWRpdGFibGVFeHByZXNzaW9uKFxuXHRcdG9Qcm9wZXJ0eVBhdGgsXG5cdFx0b0RhdGFGaWVsZENvbnZlcnRlZCxcblx0XHRvRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0XHR0cnVlXG5cdCkgYXMgRXhwcmVzc2lvbk9yUHJpbWl0aXZlPGJvb2xlYW4+O1xuXG5cdGNvbnN0IGVuYWJsZWRFeHByZXNzaW9uID0gZ2V0RW5hYmxlZEV4cHJlc3Npb24ob1Byb3BlcnR5UGF0aCwgb0RhdGFGaWVsZENvbnZlcnRlZCwgdHJ1ZSkgYXMgRXhwcmVzc2lvbk9yUHJpbWl0aXZlPGJvb2xlYW4+O1xuXHRjb25zdCBhc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSA9IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5KG9Qcm9wZXJ0eSk7XG5cdGNvbnN0IHVuaXRQcm9wZXJ0eSA9IGFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5IHx8IGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkob1Byb3BlcnR5KTtcblx0bGV0IHJlc3VsdEV4cHJlc3Npb246IEV4cHJlc3Npb25PclByaW1pdGl2ZTxzdHJpbmc+ID0gXCJFZGl0YWJsZVwiO1xuXHRpZiAodW5pdFByb3BlcnR5KSB7XG5cdFx0cmVzdWx0RXhwcmVzc2lvbiA9IGlmRWxzZShcblx0XHRcdG9yKGlzUmVhZE9ubHlFeHByZXNzaW9uKHVuaXRQcm9wZXJ0eSksIGlzQ29tcHV0ZWQodW5pdFByb3BlcnR5KSwgYk1lYXN1cmVSZWFkT25seSksXG5cdFx0XHRcIkVkaXRhYmxlUmVhZE9ubHlcIixcblx0XHRcdFwiRWRpdGFibGVcIlxuXHRcdCk7XG5cdH1cblx0Y29uc3QgcmVhZE9ubHlFeHByZXNzaW9uID0gb3IoaXNSZWFkT25seUV4cHJlc3Npb24ob1Byb3BlcnR5KSwgaXNSZWFkT25seUV4cHJlc3Npb24ob0RhdGFGaWVsZENvbnZlcnRlZCkpO1xuXG5cdC8vIGlmIHRoZSBwcm9wZXJ0eSBpcyBmcm9tIGEgbm9uLXVwZGF0YWJsZSBlbnRpdHkgPT4gUmVhZCBvbmx5IG1vZGUsIHByZXZpb3VzbHkgY2FsY3VsYXRlZCBlZGl0IE1vZGUgaXMgaWdub3JlZFxuXHQvLyBpZiB0aGUgcHJvcGVydHkgaXMgZnJvbSBhbiB1cGRhdGFibGUgZW50aXR5ID0+IHByZXZpb3VzbHkgY2FsY3VsYXRlZCBlZGl0IE1vZGUgZXhwcmVzc2lvblxuXHRjb25zdCBlZGl0TW9kZUV4cHJlc3Npb24gPSBpZkVsc2UoXG5cdFx0ZW5hYmxlZEV4cHJlc3Npb24sXG5cdFx0aWZFbHNlKFxuXHRcdFx0ZWRpdGFibGVFeHByZXNzaW9uLFxuXHRcdFx0cmVzdWx0RXhwcmVzc2lvbixcblx0XHRcdGlmRWxzZShhbmQoIWlzQ29uc3RhbnQocmVhZE9ubHlFeHByZXNzaW9uKSAmJiByZWFkT25seUV4cHJlc3Npb24sIFVJLklzRWRpdGFibGUpLCBcIlJlYWRPbmx5XCIsIFwiRGlzcGxheVwiKVxuXHRcdCksXG5cdFx0aWZFbHNlKFVJLklzRWRpdGFibGUsIFwiRGlzYWJsZWRcIiwgXCJEaXNwbGF5XCIpXG5cdCk7XG5cdGlmIChiQXNPYmplY3QpIHtcblx0XHRyZXR1cm4gZWRpdE1vZGVFeHByZXNzaW9uO1xuXHR9XG5cdHJldHVybiBjb21waWxlQmluZGluZyhlZGl0TW9kZUV4cHJlc3Npb24pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhc1ZhbGlkQW5hbHl0aWNhbEN1cnJlbmN5T3JVbml0ID0gZnVuY3Rpb24ob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCk6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCBvUHJvcGVydHlEZWZpbml0aW9uID0gb1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgYXMgUHJvcGVydHk7XG5cdGNvbnN0IGN1cnJlbmN5ID0gb1Byb3BlcnR5RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5O1xuXHRjb25zdCBtZWFzdXJlID0gY3VycmVuY3kgPyBjdXJyZW5jeSA6IG9Qcm9wZXJ0eURlZmluaXRpb24uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0O1xuXHRpZiAobWVhc3VyZSkge1xuXHRcdHJldHVybiBjb21waWxlQmluZGluZyhvcihpc1RydXRoeShhbm5vdGF0aW9uRXhwcmVzc2lvbihtZWFzdXJlKSBhcyBFeHByZXNzaW9uPHN0cmluZz4pLCBub3QoVUkuSXNUb3RhbCkpKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoY29uc3RhbnQodHJ1ZSkpO1xuXHR9XG59O1xuXG5leHBvcnQgY29uc3QgaWZVbml0RWRpdGFibGUgPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+LFxuXHRzRWRpdGFibGVWYWx1ZTogRXhwcmVzc2lvbk9yUHJpbWl0aXZlPHN0cmluZz4sXG5cdHNOb25FZGl0YWJsZVZhbHVlOiBFeHByZXNzaW9uT3JQcmltaXRpdmU8c3RyaW5nPlxuKTogQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB7XG5cdGNvbnN0IG9Qcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHRjb25zdCB1bml0UHJvcGVydHkgPSBnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eShvUHJvcGVydHkpIHx8IGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkob1Byb3BlcnR5KTtcblx0aWYgKCF1bml0UHJvcGVydHkpIHtcblx0XHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoc05vbkVkaXRhYmxlVmFsdWUpO1xuXHR9XG5cdGNvbnN0IGVkaXRhYmxlRXhwcmVzc2lvbiA9IGFuZChub3QoaXNSZWFkT25seUV4cHJlc3Npb24odW5pdFByb3BlcnR5KSksIG5vdChpc0NvbXB1dGVkKHVuaXRQcm9wZXJ0eSkpKTtcblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlZGl0YWJsZUV4cHJlc3Npb24sIHNFZGl0YWJsZVZhbHVlLCBzTm9uRWRpdGFibGVWYWx1ZSkpO1xufTtcblxuZXhwb3J0IHR5cGUgRGlzcGxheU1vZGUgPSBcIlZhbHVlXCIgfCBcIkRlc2NyaXB0aW9uXCIgfCBcIkRlc2NyaXB0aW9uVmFsdWVcIiB8IFwiVmFsdWVEZXNjcmlwdGlvblwiO1xuZXhwb3J0IGNvbnN0IGdldERpc3BsYXlNb2RlID0gZnVuY3Rpb24ob1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+LCBvRGF0YU1vZGVsT2JqZWN0UGF0aD86IERhdGFNb2RlbE9iamVjdFBhdGgpOiBEaXNwbGF5TW9kZSB7XG5cdGlmICghb1Byb3BlcnR5UGF0aCB8fCB0eXBlb2Ygb1Byb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybiBcIlZhbHVlXCI7XG5cdH1cblx0Y29uc3Qgb1Byb3BlcnR5ID0gKGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5UGF0aCkgJiYgb1Byb3BlcnR5UGF0aC4kdGFyZ2V0KSB8fCAob1Byb3BlcnR5UGF0aCBhcyBQcm9wZXJ0eSk7XG5cdGNvbnN0IG9FbnRpdHlUeXBlID0gb0RhdGFNb2RlbE9iamVjdFBhdGggJiYgb0RhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0Y29uc3Qgb1RleHRBbm5vdGF0aW9uID0gb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlRleHQ7XG5cdGNvbnN0IG9UZXh0QXJyYW5nZW1lbnRBbm5vdGF0aW9uID1cblx0XHQodHlwZW9mIG9UZXh0QW5ub3RhdGlvbiAhPT0gXCJzdHJpbmdcIiAmJiBvVGV4dEFubm90YXRpb24/LmFubm90YXRpb25zPy5VST8uVGV4dEFycmFuZ2VtZW50Py50b1N0cmluZygpKSB8fFxuXHRcdG9FbnRpdHlUeXBlPy5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudD8udG9TdHJpbmcoKTtcblxuXHRsZXQgc0Rpc3BsYXlWYWx1ZSA9IG9UZXh0QW5ub3RhdGlvbiA/IFwiRGVzY3JpcHRpb25WYWx1ZVwiIDogXCJWYWx1ZVwiO1xuXHRpZiAoKG9UZXh0QW5ub3RhdGlvbiAmJiBvVGV4dEFycmFuZ2VtZW50QW5ub3RhdGlvbikgfHwgb0VudGl0eVR5cGU/LmFubm90YXRpb25zPy5VST8uVGV4dEFycmFuZ2VtZW50Py50b1N0cmluZygpKSB7XG5cdFx0aWYgKG9UZXh0QXJyYW5nZW1lbnRBbm5vdGF0aW9uID09PSBcIlVJLlRleHRBcnJhbmdlbWVudFR5cGUvVGV4dE9ubHlcIikge1xuXHRcdFx0c0Rpc3BsYXlWYWx1ZSA9IFwiRGVzY3JpcHRpb25cIjtcblx0XHR9IGVsc2UgaWYgKG9UZXh0QXJyYW5nZW1lbnRBbm5vdGF0aW9uID09PSBcIlVJLlRleHRBcnJhbmdlbWVudFR5cGUvVGV4dExhc3RcIikge1xuXHRcdFx0c0Rpc3BsYXlWYWx1ZSA9IFwiVmFsdWVEZXNjcmlwdGlvblwiO1xuXHRcdH0gZWxzZSBpZiAob1RleHRBcnJhbmdlbWVudEFubm90YXRpb24gPT09IFwiVUkuVGV4dEFycmFuZ2VtZW50VHlwZS9UZXh0U2VwYXJhdGVcIikge1xuXHRcdFx0c0Rpc3BsYXlWYWx1ZSA9IFwiVmFsdWVcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly9EZWZhdWx0IHNob3VsZCBiZSBUZXh0Rmlyc3QgaWYgdGhlcmUgaXMgYSBUZXh0IGFubm90YXRpb24gYW5kIG5laXRoZXIgVGV4dE9ubHkgbm9yIFRleHRMYXN0IGFyZSBzZXRcblx0XHRcdHNEaXNwbGF5VmFsdWUgPSBcIkRlc2NyaXB0aW9uVmFsdWVcIjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHNEaXNwbGF5VmFsdWUgYXMgRGlzcGxheU1vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmllbGREaXNwbGF5ID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eVBhdGg6IFByb3BlcnR5T3JQYXRoPFByb3BlcnR5Pixcblx0c1RhcmdldERpc3BsYXlNb2RlOiBzdHJpbmcsXG5cdG9Db21wdXRlZEVkaXRNb2RlOiBFeHByZXNzaW9uT3JQcmltaXRpdmU8c3RyaW5nPlxuKTogQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB7XG5cdGNvbnN0IG9Qcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXG5cdHJldHVybiBoYXNWYWx1ZUhlbHAob1Byb3BlcnR5KVxuXHRcdD8gY29tcGlsZUJpbmRpbmcoc1RhcmdldERpc3BsYXlNb2RlKVxuXHRcdDogY29tcGlsZUJpbmRpbmcoaWZFbHNlKGVxdWFsKG9Db21wdXRlZEVkaXRNb2RlLCBcIkVkaXRhYmxlXCIpLCBcIlZhbHVlXCIsIHNUYXJnZXREaXNwbGF5TW9kZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24gPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5LCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uOiBFeHByZXNzaW9uPHN0cmluZz4pOiBFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCBvdXRFeHByZXNzaW9uOiBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55PiA9IHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24gYXMgQmluZGluZ0V4cHJlc3Npb25FeHByZXNzaW9uPGFueT47XG5cdGlmIChvUHJvcGVydHkuX3R5cGUgPT09IFwiUHJvcGVydHlcIikge1xuXHRcdGNvbnN0IG9UYXJnZXRNYXBwaW5nID0gRURNX1RZUEVfTUFQUElOR1sob1Byb3BlcnR5IGFzIFByb3BlcnR5KS50eXBlXTtcblx0XHRpZiAob1RhcmdldE1hcHBpbmcpIHtcblx0XHRcdG91dEV4cHJlc3Npb24udHlwZSA9IG9UYXJnZXRNYXBwaW5nLnR5cGU7XG5cdFx0XHRpZiAob1RhcmdldE1hcHBpbmcuY29uc3RyYWludHMpIHtcblx0XHRcdFx0b3V0RXhwcmVzc2lvbi5jb25zdHJhaW50cyA9IHt9O1xuXHRcdFx0XHRpZiAob1RhcmdldE1hcHBpbmcuY29uc3RyYWludHMuJFNjYWxlICYmIG9Qcm9wZXJ0eS5zY2FsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0b3V0RXhwcmVzc2lvbi5jb25zdHJhaW50cy5zY2FsZSA9IG9Qcm9wZXJ0eS5zY2FsZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1RhcmdldE1hcHBpbmcuY29uc3RyYWludHMuJFByZWNpc2lvbiAmJiBvUHJvcGVydHkucHJlY2lzaW9uICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmNvbnN0cmFpbnRzLnByZWNpc2lvbiA9IG9Qcm9wZXJ0eS5wcmVjaXNpb247XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzLiRNYXhMZW5ndGggJiYgb1Byb3BlcnR5Lm1heExlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0b3V0RXhwcmVzc2lvbi5jb25zdHJhaW50cy5tYXhMZW5ndGggPSBvUHJvcGVydHkubWF4TGVuZ3RoO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvVGFyZ2V0TWFwcGluZy5jb25zdHJhaW50cy4kTnVsbGFibGUgJiYgb1Byb3BlcnR5Lm51bGxhYmxlID09PSBmYWxzZSkge1xuXHRcdFx0XHRcdG91dEV4cHJlc3Npb24uY29uc3RyYWludHMubnVsbGFibGUgPSBvUHJvcGVydHkubnVsbGFibGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzW1wiQE9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLk1pbmltdW0vJERlY2ltYWxcIl0gJiZcblx0XHRcdFx0XHRvUHJvcGVydHkuYW5ub3RhdGlvbnM/LlZhbGlkYXRpb24/Lk1pbmltdW0gIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0XHRcdCFpc05hTihvUHJvcGVydHkuYW5ub3RhdGlvbnMuVmFsaWRhdGlvbi5NaW5pbXVtKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmNvbnN0cmFpbnRzLm1pbmltdW0gPSBgJHtvUHJvcGVydHkuYW5ub3RhdGlvbnMuVmFsaWRhdGlvbi5NaW5pbXVtfWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzW1wiQE9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLk1heGltdW0vJERlY2ltYWxcIl0gJiZcblx0XHRcdFx0XHRvUHJvcGVydHkuYW5ub3RhdGlvbnM/LlZhbGlkYXRpb24/Lk1heGltdW0gIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0XHRcdCFpc05hTihvUHJvcGVydHkuYW5ub3RhdGlvbnMuVmFsaWRhdGlvbi5NYXhpbXVtKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmNvbnN0cmFpbnRzLm1heGltdW0gPSBgJHtvUHJvcGVydHkuYW5ub3RhdGlvbnMuVmFsaWRhdGlvbi5NYXhpbXVtfWA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChvdXRFeHByZXNzaW9uPy50eXBlPy5pbmRleE9mKFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50XCIpID09PSAwKSB7XG5cdFx0XHRcdGlmICghb3V0RXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zKSB7XG5cdFx0XHRcdFx0b3V0RXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zID0ge307XG5cdFx0XHRcdH1cblx0XHRcdFx0b3V0RXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zID0gT2JqZWN0LmFzc2lnbihvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMsIHtcblx0XHRcdFx0XHRwYXJzZUFzU3RyaW5nOiBmYWxzZSxcblx0XHRcdFx0XHRlbXB0eVN0cmluZzogXCJcIlxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdGlmIChvdXRFeHByZXNzaW9uLnR5cGUgPT09IFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nXCIpIHtcblx0XHRcdFx0aWYgKCFvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMgPSB7fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMucGFyc2VLZWVwc0VtcHR5U3RyaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0b1RhcmdldE1hcHBpbmcuY29uc3RyYWludHM/LltcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNEaWdpdFNlcXVlbmNlXCJdICYmXG5cdFx0XHRcdFx0b1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LklzRGlnaXRTZXF1ZW5jZVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmNvbnN0cmFpbnRzLmlzRGlnaXRTZXF1ZW5jZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChvdXRFeHByZXNzaW9uPy50eXBlPy5pbmRleE9mKFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuRG91YmxlXCIpID09PSAwKSB7XG5cdFx0XHRcdGlmICghb3V0RXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zKSB7XG5cdFx0XHRcdFx0b3V0RXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zID0ge307XG5cdFx0XHRcdH1cblx0XHRcdFx0b3V0RXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zID0gT2JqZWN0LmFzc2lnbihvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMsIHtcblx0XHRcdFx0XHRwYXJzZUFzU3RyaW5nOiBmYWxzZSxcblx0XHRcdFx0XHRlbXB0eVN0cmluZzogXCJcIlxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0cmV0dXJuIG91dEV4cHJlc3Npb247XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VHlwZUNvbmZpZyA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkgfCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBkYXRhVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogYW55IHtcblx0Y29uc3Qgb1RhcmdldE1hcHBpbmcgPSBFRE1fVFlQRV9NQVBQSU5HWyhvUHJvcGVydHkgYXMgUHJvcGVydHkpPy50eXBlXSB8fCAoZGF0YVR5cGUgPyBFRE1fVFlQRV9NQVBQSU5HW2RhdGFUeXBlXSA6IHVuZGVmaW5lZCk7XG5cdGNvbnN0IHByb3BlcnR5VHlwZUNvbmZpZzogY29uZmlnVHlwZSA9IHtcblx0XHR0eXBlOiBvVGFyZ2V0TWFwcGluZy50eXBlLFxuXHRcdGNvbnN0cmFpbnRzOiB7fSxcblx0XHRmb3JtYXRPcHRpb25zOiB7fVxuXHR9O1xuXHRpZiAoaXNQcm9wZXJ0eShvUHJvcGVydHkpKSB7XG5cdFx0cHJvcGVydHlUeXBlQ29uZmlnLmNvbnN0cmFpbnRzID0ge1xuXHRcdFx0c2NhbGU6IG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzPy4kU2NhbGUgPyBvUHJvcGVydHkuc2NhbGUgOiB1bmRlZmluZWQsXG5cdFx0XHRwcmVjaXNpb246IG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzPy4kUHJlY2lzaW9uID8gb1Byb3BlcnR5LnByZWNpc2lvbiA6IHVuZGVmaW5lZCxcblx0XHRcdG1heExlbmd0aDogb1RhcmdldE1hcHBpbmcuY29uc3RyYWludHM/LiRNYXhMZW5ndGggPyBvUHJvcGVydHkubWF4TGVuZ3RoIDogdW5kZWZpbmVkLFxuXHRcdFx0bnVsbGFibGU6IG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzPy4kTnVsbGFibGUgPyBvUHJvcGVydHkubnVsbGFibGUgOiB1bmRlZmluZWQsXG5cdFx0XHRtaW5pbXVtOlxuXHRcdFx0XHRvVGFyZ2V0TWFwcGluZy5jb25zdHJhaW50cz8uW1wiQE9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLk1pbmltdW0vJERlY2ltYWxcIl0gJiZcblx0XHRcdFx0IWlzTmFOKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVmFsaWRhdGlvbj8uTWluaW11bSlcblx0XHRcdFx0XHQ/IGAke29Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVmFsaWRhdGlvbj8uTWluaW11bX1gXG5cdFx0XHRcdFx0OiB1bmRlZmluZWQsXG5cdFx0XHRtYXhpbXVtOlxuXHRcdFx0XHRvVGFyZ2V0TWFwcGluZy5jb25zdHJhaW50cz8uW1wiQE9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLk1heGltdW0vJERlY2ltYWxcIl0gJiZcblx0XHRcdFx0IWlzTmFOKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVmFsaWRhdGlvbj8uTWF4aW11bSlcblx0XHRcdFx0XHQ/IGAke29Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVmFsaWRhdGlvbj8uTWF4aW11bX1gXG5cdFx0XHRcdFx0OiB1bmRlZmluZWQsXG5cdFx0XHRpc0RpZ2l0U2VxdWVuY2U6XG5cdFx0XHRcdHByb3BlcnR5VHlwZUNvbmZpZy50eXBlID09PSBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZ1wiICYmXG5cdFx0XHRcdG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzPy5bXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzRGlnaXRTZXF1ZW5jZVwiXSAmJlxuXHRcdFx0XHQob1Byb3BlcnR5IGFzIFByb3BlcnR5KS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5Jc0RpZ2l0U2VxdWVuY2Vcblx0XHRcdFx0XHQ/IHRydWVcblx0XHRcdFx0XHQ6IHVuZGVmaW5lZFxuXHRcdH07XG5cdH1cblx0cHJvcGVydHlUeXBlQ29uZmlnLmZvcm1hdE9wdGlvbnMgPSB7XG5cdFx0cGFyc2VBc1N0cmluZzpcblx0XHRcdHByb3BlcnR5VHlwZUNvbmZpZz8udHlwZT8uaW5kZXhPZihcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludFwiKSA9PT0gMCB8fFxuXHRcdFx0cHJvcGVydHlUeXBlQ29uZmlnPy50eXBlPy5pbmRleE9mKFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuRG91YmxlXCIpID09PSAwXG5cdFx0XHRcdD8gZmFsc2Vcblx0XHRcdFx0OiB1bmRlZmluZWQsXG5cdFx0ZW1wdHlTdHJpbmc6XG5cdFx0XHRwcm9wZXJ0eVR5cGVDb25maWc/LnR5cGU/LmluZGV4T2YoXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnRcIikgPT09IDAgfHxcblx0XHRcdHByb3BlcnR5VHlwZUNvbmZpZz8udHlwZT8uaW5kZXhPZihcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkRvdWJsZVwiKSA9PT0gMFxuXHRcdFx0XHQ/IFwiXCJcblx0XHRcdFx0OiB1bmRlZmluZWQsXG5cdFx0cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiBwcm9wZXJ0eVR5cGVDb25maWcudHlwZSA9PT0gXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmdcIiA/IHRydWUgOiB1bmRlZmluZWRcblx0fTtcblx0cmV0dXJuIHByb3BlcnR5VHlwZUNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCaW5kaW5nV2l0aFVuaXRPckN1cnJlbmN5ID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb246IEV4cHJlc3Npb248c3RyaW5nPlxuKTogRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0Y29uc3Qgb1Byb3BlcnR5RGVmaW5pdGlvbiA9IG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0IGFzIFByb3BlcnR5O1xuXHRsZXQgdW5pdCA9IG9Qcm9wZXJ0eURlZmluaXRpb24uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0O1xuXHRjb25zdCByZWxhdGl2ZUxvY2F0aW9uID0gZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24oXG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsUGF0aC5jb250ZXh0TG9jYXRpb24sXG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsUGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllc1xuXHQpLm1hcChucCA9PiBucC5uYW1lKTtcblx0cHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiA9IGZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24ob1Byb3BlcnR5RGVmaW5pdGlvbiwgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbik7XG5cdGlmICh1bml0Py50b1N0cmluZygpID09PSBcIiVcIikge1xuXHRcdHJldHVybiBmb3JtYXRSZXN1bHQoW3Byb3BlcnR5QmluZGluZ0V4cHJlc3Npb25dLCB2YWx1ZUZvcm1hdHRlcnMuZm9ybWF0V2l0aFBlcmNlbnRhZ2UpO1xuXHR9XG5cdGNvbnN0IGNvbXBsZXhUeXBlID0gdW5pdCA/IFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiIDogXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5DdXJyZW5jeVwiO1xuXHR1bml0ID0gdW5pdCA/IHVuaXQgOiBvUHJvcGVydHlEZWZpbml0aW9uLmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3k7XG5cdGNvbnN0IHVuaXRCaW5kaW5nRXhwcmVzc2lvbiA9ICh1bml0IGFzIGFueSkuJHRhcmdldFxuXHRcdD8gZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbigodW5pdCBhcyBhbnkpLiR0YXJnZXQsIGFubm90YXRpb25FeHByZXNzaW9uKHVuaXQsIHJlbGF0aXZlTG9jYXRpb24pIGFzIEV4cHJlc3Npb248c3RyaW5nPilcblx0XHQ6IChhbm5vdGF0aW9uRXhwcmVzc2lvbih1bml0LCByZWxhdGl2ZUxvY2F0aW9uKSBhcyBFeHByZXNzaW9uPHN0cmluZz4pO1xuXHRyZXR1cm4gYWRkVHlwZUluZm9ybWF0aW9uKFtwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uLCB1bml0QmluZGluZ0V4cHJlc3Npb25dLCBjb21wbGV4VHlwZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWxpZ25tZW50RXhwcmVzc2lvbiA9IGZ1bmN0aW9uKFxuXHRvQ29tcHV0ZWRFZGl0TW9kZTogRXhwcmVzc2lvbjxzdHJpbmc+LFxuXHRzQWxpZ25EaXNwbGF5OiBzdHJpbmcgPSBcIkJlZ2luXCIsXG5cdHNBbGlnbkVkaXQ6IHN0cmluZyA9IFwiQmVnaW5cIlxuKTogQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB8IEV4cHJlc3Npb248c3RyaW5nPiB7XG5cdHJldHVybiBjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwob0NvbXB1dGVkRWRpdE1vZGUsIFwiRGlzcGxheVwiKSwgc0FsaWduRGlzcGxheSwgc0FsaWduRWRpdCkpO1xufTtcblxuLyoqXG4gKiBGb3JtYXR0ZXIgaGVscGVyIHRvIHJldHJpZXZlIHRoZSBjb252ZXJ0ZXJDb250ZXh0IGZyb20gdGhlIG1ldGFtb2RlbCBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSB7Q29udGV4dH0gb0NvbnRleHQgVGhlIG9yaWdpbmFsIG1ldGFtb2RlbCBjb250ZXh0XG4gKiBAcGFyYW0ge0NvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZX0gb0ludGVyZmFjZSBUaGUgY3VycmVudCB0ZW1wbGF0aW5nIGNvbnRleHRcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSBDb252ZXJ0ZXJDb250ZXh0IHJlcHJlc2VudGluZyB0aGF0IG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgZ2V0Q29udmVydGVyQ29udGV4dCA9IGZ1bmN0aW9uKG9Db250ZXh0OiBNZXRhTW9kZWxDb250ZXh0LCBvSW50ZXJmYWNlOiBDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2UpOiBvYmplY3QgfCBudWxsIHtcblx0aWYgKG9JbnRlcmZhY2UgJiYgb0ludGVyZmFjZS5jb250ZXh0KSB7XG5cdFx0cmV0dXJuIGNvbnZlcnRNZXRhTW9kZWxDb250ZXh0KG9JbnRlcmZhY2UuY29udGV4dCk7XG5cdH1cblx0cmV0dXJuIG51bGw7XG59O1xuZ2V0Q29udmVydGVyQ29udGV4dC5yZXF1aXJlc0lDb250ZXh0ID0gdHJ1ZTtcblxuLyoqXG4gKiBGb3JtYXR0ZXIgaGVscGVyIHRvIHJldHJpZXZlIHRoZSBkYXRhIG1vZGVsIG9iamVjdHMgdGhhdCBhcmUgaW52b2x2ZWQgZnJvbSB0aGUgbWV0YW1vZGVsIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIHtDb250ZXh0fSBvQ29udGV4dCBUaGUgb3JpZ2luYWwgT0RhdGFNZXRhTW9kZWwgY29udGV4dFxuICogQHBhcmFtIHtDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2V9IG9JbnRlcmZhY2UgVGhlIGN1cnJlbnQgdGVtcGxhdGluZyBjb250ZXh0XG4gKiBAcmV0dXJucyB7b2JqZWN0W119IEFuIGFycmF5IG9mIGVudGl0eXNldHMgYW5kIG5hdnByb3BlcnRpZXMgdGhhdCBhcmUgaW52b2x2ZWQgdG8gZ2V0IHRvIGEgc3BlY2lmaWMgb2JqZWN0IGluIHRoZSBtZXRhbW9kZWxcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERhdGFNb2RlbE9iamVjdFBhdGggPSBmdW5jdGlvbihcblx0b0NvbnRleHQ6IE1ldGFNb2RlbENvbnRleHQsXG5cdG9JbnRlcmZhY2U6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZVxuKTogRGF0YU1vZGVsT2JqZWN0UGF0aCB8IG51bGwge1xuXHRpZiAob0ludGVyZmFjZSAmJiBvSW50ZXJmYWNlLmNvbnRleHQpIHtcblx0XHRyZXR1cm4gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKG9JbnRlcmZhY2UuY29udGV4dCk7XG5cdH1cblx0cmV0dXJuIG51bGw7XG59O1xuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aC5yZXF1aXJlc0lDb250ZXh0ID0gdHJ1ZTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGV4cHJlc3Npb25CaW5kaW5nIGNyZWF0ZWQgb3V0IG9mIGEgYmluZGluZyBleHByZXNzaW9uLlxuICpcbiAqIEBwYXJhbSB7RXhwcmVzc2lvbjxhbnk+fSBleHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHdoaWNoIG5lZWRzIHRvIGJlIGNvbXBpbGVkXG4gKiBAcmV0dXJucyB7QmluZGluZ0V4cHJlc3Npb248c3RyaW5nPn0gVGhlIGV4cHJlc3Npb24tYmluZGluZyBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEV4cHJlc3Npb25CaW5kaW5nID0gZnVuY3Rpb24oZXhwcmVzc2lvbjogRXhwcmVzc2lvbjxhbnk+KTogQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB7XG5cdHJldHVybiBjb21waWxlQmluZGluZyhleHByZXNzaW9uKTtcbn07XG5cbi8qKlxuICogUmV0cmlldmUgdGhlIHRhcmdldCBlbnRpdHlzZXQgZm9yIGEgY29udGV4dCBwYXRoIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0gb0NvbnRleHRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUYXJnZXRFbnRpdHlTZXQgPSBmdW5jdGlvbihvQ29udGV4dDogQ29udGV4dCk6IHN0cmluZyB8IG51bGwge1xuXHRpZiAob0NvbnRleHQpIHtcblx0XHRjb25zdCBvRGF0YU1vZGVsUGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyhvQ29udGV4dCk7XG5cdFx0cmV0dXJuIGdldFRhcmdldEVudGl0eVNldFBhdGgob0RhdGFNb2RlbFBhdGgpO1xuXHR9XG5cblx0cmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDb2xsZWN0aW9uRmllbGQgPSBmdW5jdGlvbihvRGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCk6IGJvb2xlYW4ge1xuXHRpZiAob0RhdGFNb2RlbFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXM/Lmxlbmd0aCkge1xuXHRcdGNvbnN0IGhhc09uZVRvTWFueU5hdmlnYXRpb24gPVxuXHRcdFx0b0RhdGFNb2RlbFBhdGg/Lm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZpbmRJbmRleCgob05hdjogTmF2aWdhdGlvblByb3BlcnR5KSA9PiB7XG5cdFx0XHRcdGlmIChvTmF2LmlzQ29sbGVjdGlvbikge1xuXHRcdFx0XHRcdGlmIChvRGF0YU1vZGVsUGF0aC5jb250ZXh0TG9jYXRpb24/Lm5hdmlnYXRpb25Qcm9wZXJ0aWVzPy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdC8vd2UgY2hlY2sgdGhlIG9uZSB0byBtYW55IG5hdiBpcyBub3QgYWxyZWFkeSBwYXJ0IG9mIHRoZSBjb250ZXh0XG5cdFx0XHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdFx0XHRvRGF0YU1vZGVsUGF0aC5jb250ZXh0TG9jYXRpb24/Lm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZpbmRJbmRleChcblx0XHRcdFx0XHRcdFx0XHQob0NvbnRleHROYXY6IE5hdmlnYXRpb25Qcm9wZXJ0eSkgPT4gb0NvbnRleHROYXYubmFtZSA9PT0gb05hdi5uYW1lXG5cdFx0XHRcdFx0XHRcdCkgPT09IC0xXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9KSA+IC0xO1xuXHRcdGlmIChoYXNPbmVUb01hbnlOYXZpZ2F0aW9uKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
465
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVJRm9ybWF0dGVycy50cyJdLCJuYW1lcyI6WyJnZXREaXNwbGF5TW9kZSIsIkRpc3BsYXlNb2RlRm9ybWF0dGVyIiwiRURNX1RZUEVfTUFQUElORyIsImdldEVkaXRhYmxlRXhwcmVzc2lvbiIsIm9Qcm9wZXJ0eVBhdGgiLCJvRGF0YUZpZWxkQ29udmVydGVkIiwib0RhdGFNb2RlbE9iamVjdFBhdGgiLCJiQXNPYmplY3QiLCJjb21waWxlQmluZGluZyIsImRhdGFGaWVsZEVkaXRhYmxlRXhwcmVzc2lvbiIsImlmRWxzZSIsImlzTm9uRWRpdGFibGVFeHByZXNzaW9uIiwiVUkiLCJJc0VkaXRhYmxlIiwib1Byb3BlcnR5IiwiaXNQYXRoRXhwcmVzc2lvbiIsIiR0YXJnZXQiLCJpc1BhdGhVcGRhdGFibGVFeHByZXNzaW9uIiwiaXNQYXRoVXBkYXRhYmxlIiwiZWRpdGFibGVFeHByZXNzaW9uIiwib3IiLCJub3QiLCJpc0NvbXB1dGVkIiwiaXNLZXkiLCJpc0ltbXV0YWJsZSIsIklzVHJhbnNpZW50QmluZGluZyIsImFuZCIsImdldEVuYWJsZWRFeHByZXNzaW9uIiwiZGF0YUZpZWxkRW5hYmxlZEV4cHJlc3Npb24iLCJpc0Rpc2FibGVkRXhwcmVzc2lvbiIsImVuYWJsZWRFeHByZXNzaW9uIiwiZ2V0RWRpdE1vZGUiLCJiTWVhc3VyZVJlYWRPbmx5IiwiYXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkiLCJnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSIsInVuaXRQcm9wZXJ0eSIsImdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkiLCJyZXN1bHRFeHByZXNzaW9uIiwiaXNSZWFkT25seUV4cHJlc3Npb24iLCJyZWFkT25seUV4cHJlc3Npb24iLCJlZGl0TW9kZUV4cHJlc3Npb24iLCJpc0NvbnN0YW50IiwiaGFzVmFsaWRBbmFseXRpY2FsQ3VycmVuY3lPclVuaXQiLCJvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoIiwib1Byb3BlcnR5RGVmaW5pdGlvbiIsInRhcmdldE9iamVjdCIsImN1cnJlbmN5IiwiYW5ub3RhdGlvbnMiLCJNZWFzdXJlcyIsIklTT0N1cnJlbmN5IiwibWVhc3VyZSIsIlVuaXQiLCJpc1RydXRoeSIsImFubm90YXRpb25FeHByZXNzaW9uIiwiSXNUb3RhbCIsImNvbnN0YW50IiwiaWZVbml0RWRpdGFibGUiLCJzRWRpdGFibGVWYWx1ZSIsInNOb25FZGl0YWJsZVZhbHVlIiwiZ2V0RmllbGREaXNwbGF5Iiwic1RhcmdldERpc3BsYXlNb2RlIiwib0NvbXB1dGVkRWRpdE1vZGUiLCJoYXNWYWx1ZUhlbHAiLCJlcXVhbCIsImZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24iLCJwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uIiwib3V0RXhwcmVzc2lvbiIsIl90eXBlIiwib1RhcmdldE1hcHBpbmciLCJ0eXBlIiwiY29uc3RyYWludHMiLCIkU2NhbGUiLCJzY2FsZSIsInVuZGVmaW5lZCIsIiRQcmVjaXNpb24iLCJwcmVjaXNpb24iLCIkTWF4TGVuZ3RoIiwibWF4TGVuZ3RoIiwiJE51bGxhYmxlIiwibnVsbGFibGUiLCJWYWxpZGF0aW9uIiwiTWluaW11bSIsImlzTmFOIiwibWluaW11bSIsIk1heGltdW0iLCJtYXhpbXVtIiwiaW5kZXhPZiIsImZvcm1hdE9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJwYXJzZUFzU3RyaW5nIiwiZW1wdHlTdHJpbmciLCJwYXJzZUtlZXBzRW1wdHlTdHJpbmciLCJDb21tb24iLCJJc0RpZ2l0U2VxdWVuY2UiLCJpc0RpZ2l0U2VxdWVuY2UiLCJnZXRUeXBlQ29uZmlnIiwiZGF0YVR5cGUiLCJwcm9wZXJ0eVR5cGVDb25maWciLCJpc1Byb3BlcnR5IiwiZ2V0QmluZGluZ1dpdGhVbml0T3JDdXJyZW5jeSIsIm9Qcm9wZXJ0eURhdGFNb2RlbFBhdGgiLCJ1bml0IiwicmVsYXRpdmVMb2NhdGlvbiIsImdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uIiwiY29udGV4dExvY2F0aW9uIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJucCIsIm5hbWUiLCJ0b1N0cmluZyIsImZvcm1hdFJlc3VsdCIsInZhbHVlRm9ybWF0dGVycyIsImZvcm1hdFdpdGhQZXJjZW50YWdlIiwiY29tcGxleFR5cGUiLCJ1bml0QmluZGluZ0V4cHJlc3Npb24iLCJhZGRUeXBlSW5mb3JtYXRpb24iLCJnZXRBbGlnbm1lbnRFeHByZXNzaW9uIiwic0FsaWduRGlzcGxheSIsInNBbGlnbkVkaXQiLCJnZXRDb252ZXJ0ZXJDb250ZXh0Iiwib0NvbnRleHQiLCJvSW50ZXJmYWNlIiwiY29udGV4dCIsImNvbnZlcnRNZXRhTW9kZWxDb250ZXh0IiwicmVxdWlyZXNJQ29udGV4dCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJnZXRFeHByZXNzaW9uQmluZGluZyIsImV4cHJlc3Npb24iLCJnZXRUYXJnZXRFbnRpdHlTZXQiLCJvRGF0YU1vZGVsUGF0aCIsImdldFRhcmdldEVudGl0eVNldFBhdGgiLCJpc0NvbGxlY3Rpb25GaWVsZCIsImxlbmd0aCIsImhhc09uZVRvTWFueU5hdmlnYXRpb24iLCJmaW5kSW5kZXgiLCJvTmF2IiwiaXNDb2xsZWN0aW9uIiwib0NvbnRleHROYXYiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNENPLE1BQU1BLGNBQWMsR0FBR0Msb0JBQW9CLENBQUNELGNBQTVDOztBQUNBLE1BQU1FLGdCQUFnQixHQUFHRCxvQkFBb0IsQ0FBQ0MsZ0JBQTlDOzs7QUFrQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUMscUJBQXFCLEdBQUcsVUFDcENDLGFBRG9DLEVBSzBCO0FBQUEsUUFIOURDLG1CQUc4RCx1RUFIbkMsSUFHbUM7QUFBQSxRQUY5REMsb0JBRThEO0FBQUEsUUFEOURDLFNBQzhELHVFQUR6QyxLQUN5Qzs7QUFDOUQsUUFB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QUE7O0FBQ3RCLHVDQUFJUCxjQUFjLENBQUMxQixlQUFuQiw0RUFBSSxzQkFBZ0NDLG9CQUFwQyxtREFBSSx1QkFBc0Q0QixNQUExRCxFQUFrRTtBQUFBOztBQUNqRTtBQUNBLG1CQUNDLDJCQUFBSCxjQUFjLENBQUMxQixlQUFmLGtGQUFnQ0Msb0JBQWhDLENBQXFEOEIsU0FBckQsQ0FDQyxVQUFDRyxXQUFEO0FBQUEscUJBQXFDQSxXQUFXLENBQUM5QixJQUFaLEtBQXFCNEIsSUFBSSxDQUFDNUIsSUFBL0Q7QUFBQSxhQURELE9BRU0sQ0FBQyxDQUhSO0FBS0E7O0FBQ0QsaUJBQU8sSUFBUDtBQUNBOztBQUNELGVBQU8sS0FBUDtBQUNBLE9BYkQsS0FhSyxDQUFDLENBZFA7O0FBZUEsVUFBSTBCLHNCQUFKLEVBQTRCO0FBQzNCLGVBQU8sSUFBUDtBQUNBO0FBQ0Q7O0FBQ0QsV0FBTyxLQUFQO0FBQ0EsR0F0Qk0iLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0XCI7XG5pbXBvcnQgeyBjb252ZXJ0TWV0YU1vZGVsQ29udGV4dCwgZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQge1xuXHRhZGRUeXBlSW5mb3JtYXRpb24sXG5cdGFuZCxcblx0YW5ub3RhdGlvbkV4cHJlc3Npb24sXG5cdEJpbmRpbmdFeHByZXNzaW9uLFxuXHRCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb24sXG5cdGNvbXBpbGVCaW5kaW5nLFxuXHRjb25zdGFudCxcblx0ZXF1YWwsXG5cdEV4cHJlc3Npb24sXG5cdEV4cHJlc3Npb25PclByaW1pdGl2ZSxcblx0Zm9ybWF0UmVzdWx0LFxuXHRpZkVsc2UsXG5cdGlzQ29uc3RhbnQsXG5cdGlzVHJ1dGh5LFxuXHRub3QsXG5cdG9yXG59IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBVSSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHtcblx0Z2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eSxcblx0Z2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHksXG5cdGhhc1ZhbHVlSGVscCxcblx0aXNDb21wdXRlZCxcblx0aXNJbW11dGFibGUsXG5cdGlzS2V5LFxuXHRpc1BhdGhFeHByZXNzaW9uLFxuXHRpc1Byb3BlcnR5XG59IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uUHJvcGVydHksIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy90eXBlcy9FZG1cIjtcbmltcG9ydCB7XG5cdERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGdldFRhcmdldEVudGl0eVNldFBhdGgsXG5cdGlzUGF0aFVwZGF0YWJsZSxcblx0Z2V0UGF0aFJlbGF0aXZlTG9jYXRpb25cbn0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgaXNSZWFkT25seUV4cHJlc3Npb24sIGlzTm9uRWRpdGFibGVFeHByZXNzaW9uLCBpc0Rpc2FibGVkRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0ZpZWxkQ29udHJvbEhlbHBlclwiO1xuaW1wb3J0IHZhbHVlRm9ybWF0dGVycyBmcm9tIFwic2FwL2ZlL2NvcmUvZm9ybWF0dGVycy9WYWx1ZUZvcm1hdHRlclwiO1xuaW1wb3J0IHsgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0ICogYXMgRGlzcGxheU1vZGVGb3JtYXR0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGlzcGxheU1vZGVGb3JtYXR0ZXJcIjtcblxuLy8gSW1wb3J0LWV4cG9ydCBtZXRob2QgdXNlZCBieSB0aGUgY29udmVydGVyIHRvIHVzZSB0aGVtIGluIHRoZSB0ZW1wbGF0aW5nIHRocm91Z2ggdGhlIFVJRm9ybWF0dGVycy5cbmV4cG9ydCB0eXBlIERpc3BsYXlNb2RlID0gRGlzcGxheU1vZGVGb3JtYXR0ZXIuRGlzcGxheU1vZGU7XG5leHBvcnQgY29uc3QgZ2V0RGlzcGxheU1vZGUgPSBEaXNwbGF5TW9kZUZvcm1hdHRlci5nZXREaXNwbGF5TW9kZTtcbmV4cG9ydCBjb25zdCBFRE1fVFlQRV9NQVBQSU5HID0gRGlzcGxheU1vZGVGb3JtYXR0ZXIuRURNX1RZUEVfTUFQUElORztcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlPclBhdGg8UD4gPSBzdHJpbmcgfCBQIHwgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFA+O1xuZXhwb3J0IHR5cGUgTWV0YU1vZGVsQ29udGV4dCA9IHtcblx0JGtpbmQ6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2UgPSB7XG5cdGNvbnRleHQ6IENvbnRleHQ7XG5cdGFyZ3VtZW50czogYW55W107XG5cdCQkdmFsdWVBc1Byb21pc2U6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBjb25maWdUeXBlQ29uc3RyYWludHMgPSB7XG5cdHNjYWxlPzogbnVtYmVyO1xuXHRwcmVjaXNpb24/OiBudW1iZXI7XG5cdG1heExlbmd0aD86IG51bWJlcjtcblx0bnVsbGFibGU/OiBib29sZWFuO1xuXHRtaW5pbXVtPzogc3RyaW5nO1xuXHRtYXhpbXVtPzogc3RyaW5nO1xuXHRpc0RpZ2l0U2VxdWVuY2U/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgY29uZmlnVHlwZWZvcm1hdE9wdGlvbnMgPSB7XG5cdHBhcnNlQXNTdHJpbmc/OiBib29sZWFuO1xuXHRlbXB0eVN0cmluZz86IHN0cmluZztcblx0cGFyc2VLZWVwc0VtcHR5U3RyaW5nPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIGNvbmZpZ1R5cGUgPSB7XG5cdHR5cGU6IHN0cmluZztcblx0Y29uc3RyYWludHM6IGNvbmZpZ1R5cGVDb25zdHJhaW50cztcblx0Zm9ybWF0T3B0aW9uczogY29uZmlnVHlwZWZvcm1hdE9wdGlvbnM7XG59O1xuXG4vKipcbiAqIENyZWF0ZSB0aGUgZXhwcmVzc2lvbiB0byBnZW5lcmF0ZSBhbiBcImVkaXRhYmxlXCIgYm9vbGVhbiB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5UGF0aH0gb1Byb3BlcnR5UGF0aCBUaGUgaW5wdXQgcHJvcGVydHlcbiAqIEBwYXJhbSB7b2JqZWN0fSBvRGF0YUZpZWxkQ29udmVydGVkIFRoZSBEYXRhRmllbGRDb252ZXJ0ZWQgb2JqZWN0IHRvIHJlYWQgdGhlIGZpZWxkQ29udHJvbCBhbm5vdGF0aW9uXG4gKiBAcGFyYW0ge0RhdGFNb2RlbE9iamVjdFBhdGh9IG9EYXRhTW9kZWxPYmplY3RQYXRoIFRoZSBwYXRoIHRvIHRoaXMgcHJvcGVydHkgb2JqZWN0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJBc09iamVjdCBXaGV0aGVyIG9yIG5vdCB0aGlzIHNob3VsZCBiZSByZXR1cm5lZCBhcyBhbiBvYmplY3Qgb3IgYSBiaW5kaW5nIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB1c2VkIHRvIGRldGVybWluZSBpZiBhIHByb3BlcnR5IGlzIGVkaXRhYmxlIG9yIG5vdFxuICovXG5leHBvcnQgY29uc3QgZ2V0RWRpdGFibGVFeHByZXNzaW9uID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eVBhdGg6IFByb3BlcnR5T3JQYXRoPFByb3BlcnR5Pixcblx0b0RhdGFGaWVsZENvbnZlcnRlZDogYW55ID0gbnVsbCxcblx0b0RhdGFNb2RlbE9iamVjdFBhdGg/OiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRiQXNPYmplY3Q6IGJvb2xlYW4gPSBmYWxzZVxuKTogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj4gfCBFeHByZXNzaW9uT3JQcmltaXRpdmU8Ym9vbGVhbj4ge1xuXHRpZiAoIW9Qcm9wZXJ0eVBhdGggfHwgdHlwZW9mIG9Qcm9wZXJ0eVBhdGggPT09IFwic3RyaW5nXCIpIHtcblx0XHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoZmFsc2UpO1xuXHR9XG5cdGxldCBkYXRhRmllbGRFZGl0YWJsZUV4cHJlc3Npb246IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+IHwgRXhwcmVzc2lvbk9yUHJpbWl0aXZlPGJvb2xlYW4+ID0gdHJ1ZTtcblx0aWYgKG9EYXRhRmllbGRDb252ZXJ0ZWQgIT09IG51bGwpIHtcblx0XHRkYXRhRmllbGRFZGl0YWJsZUV4cHJlc3Npb24gPSBpZkVsc2UoaXNOb25FZGl0YWJsZUV4cHJlc3Npb24ob0RhdGFGaWVsZENvbnZlcnRlZCksIGZhbHNlLCBVSS5Jc0VkaXRhYmxlKTtcblx0fVxuXG5cdGNvbnN0IG9Qcm9wZXJ0eTogUHJvcGVydHkgPSAoaXNQYXRoRXhwcmVzc2lvbihvUHJvcGVydHlQYXRoKSAmJiBvUHJvcGVydHlQYXRoLiR0YXJnZXQpIHx8IChvUHJvcGVydHlQYXRoIGFzIFByb3BlcnR5KTtcblx0Ly8gRWRpdGFiaWxpdHkgZGVwZW5kcyBvbiB0aGUgZmllbGQgY29udHJvbCBleHByZXNzaW9uXG5cdC8vIElmIHRoZSBGaWVsZCBjb250cm9sIGlzIHN0YXRpY2FsbHkgaW4gUmVhZE9ubHkgb3IgSW5hcHBsaWNhYmxlIChkaXNhYmxlZCkgLT4gbm90IGVkaXRhYmxlXG5cdC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBhIGtleSAtPiBub3QgZWRpdGFibGUgZXhjZXB0IGluIGNyZWF0aW9uIGlmIG5vdCBjb21wdXRlZFxuXHQvLyBJZiB0aGUgcHJvcGVydHkgaXMgY29tcHV0ZWQgLT4gbm90IGVkaXRhYmxlXG5cdC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBub3QgdXBkYXRhYmxlIC0+IG5vdCBlZGl0YWJsZVxuXHQvLyBJZiB0aGUgcHJvcGVydHkgaXMgaW1tdXRhYmxlIC0+IG5vdCBlZGl0YWJsZSBleGNlcHQgaW4gY3JlYXRpb25cblx0Ly8gSWYgdGhlIEZpZWxkIGNvbnRyb2wgaXMgYSBwYXRoIHJlc29sdmluZyB0byBSZWFkT25seSBvciBJbmFwcGxpY2FibGUgKGRpc2FibGVkKSAoPD0gMSkgLT4gbm90IGVkaXRhYmxlXG5cdC8vIEVsc2UsIHRvIGJlIGVkaXRhYmxlIHlvdSBuZWVkXG5cdC8vIGltbXV0YWJsZSBhbmQga2V5IHdoaWxlIGluIHRoZSBjcmVhdGlvbiByb3dcblx0Ly8gdWkvaXNFZGl0YWJsZVxuXHRjb25zdCBpc1BhdGhVcGRhdGFibGVFeHByZXNzaW9uID0gaXNQYXRoVXBkYXRhYmxlKG9EYXRhTW9kZWxPYmplY3RQYXRoLCBvUHJvcGVydHlQYXRoKTtcblx0Y29uc3QgZWRpdGFibGVFeHByZXNzaW9uID0gaWZFbHNlKFxuXHRcdG9yKFxuXHRcdFx0bm90KGlzUGF0aFVwZGF0YWJsZUV4cHJlc3Npb24pLFxuXHRcdFx0aXNDb21wdXRlZChvUHJvcGVydHkpLFxuXHRcdFx0aXNLZXkob1Byb3BlcnR5KSxcblx0XHRcdGlzSW1tdXRhYmxlKG9Qcm9wZXJ0eSksXG5cdFx0XHRpc05vbkVkaXRhYmxlRXhwcmVzc2lvbihvUHJvcGVydHkpXG5cdFx0KSxcblx0XHRpZkVsc2Uob3IoaXNDb21wdXRlZChvUHJvcGVydHkpLCBpc05vbkVkaXRhYmxlRXhwcmVzc2lvbihvUHJvcGVydHkpKSwgZmFsc2UsIFVJLklzVHJhbnNpZW50QmluZGluZyksXG5cdFx0VUkuSXNFZGl0YWJsZVxuXHQpO1xuXHRpZiAoYkFzT2JqZWN0KSB7XG5cdFx0cmV0dXJuIGFuZChlZGl0YWJsZUV4cHJlc3Npb24sIGRhdGFGaWVsZEVkaXRhYmxlRXhwcmVzc2lvbik7XG5cdH1cblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGFuZChlZGl0YWJsZUV4cHJlc3Npb24sIGRhdGFGaWVsZEVkaXRhYmxlRXhwcmVzc2lvbikpO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgdGhlIGV4cHJlc3Npb24gdG8gZ2VuZXJhdGUgYW4gXCJlbmFibGVkXCIgYm9vbGVhbiB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5UGF0aH0gb1Byb3BlcnR5UGF0aCBUaGUgaW5wdXQgcHJvcGVydHlcbiAqIEBwYXJhbSB7YW55fSBvRGF0YUZpZWxkQ29udmVydGVkIFRoZSBEYXRhRmllbGRDb252ZXJ0ZWQgT2JqZWN0IHRvIHJlYWQgdGhlIGZpZWxkQ29udHJvbCBhbm5vdGF0aW9uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJBc09iamVjdCBXaGV0aGVyIG9yIG5vdCB0aGlzIHNob3VsZCBiZSByZXR1cm5lZCBhcyBhbiBvYmplY3Qgb3IgYSBiaW5kaW5nIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0byBkZXRlcm1pbmUgaWYgYSBwcm9wZXJ0eSBpcyBlbmFibGVkIG9yIG5vdFxuICovXG5leHBvcnQgY29uc3QgZ2V0RW5hYmxlZEV4cHJlc3Npb24gPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+LFxuXHRvRGF0YUZpZWxkQ29udmVydGVkPzogYW55LFxuXHRiQXNPYmplY3Q6IGJvb2xlYW4gPSBmYWxzZVxuKTogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj4gfCBFeHByZXNzaW9uT3JQcmltaXRpdmU8Ym9vbGVhbj4ge1xuXHRpZiAoIW9Qcm9wZXJ0eVBhdGggfHwgdHlwZW9mIG9Qcm9wZXJ0eVBhdGggPT09IFwic3RyaW5nXCIpIHtcblx0XHRyZXR1cm4gY29tcGlsZUJpbmRpbmcodHJ1ZSk7XG5cdH1cblx0bGV0IGRhdGFGaWVsZEVuYWJsZWRFeHByZXNzaW9uOiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPiB8IEV4cHJlc3Npb25PclByaW1pdGl2ZTxib29sZWFuPiA9IHRydWU7XG5cdGlmIChvRGF0YUZpZWxkQ29udmVydGVkICE9PSBudWxsKSB7XG5cdFx0ZGF0YUZpZWxkRW5hYmxlZEV4cHJlc3Npb24gPSBpZkVsc2UoaXNEaXNhYmxlZEV4cHJlc3Npb24ob0RhdGFGaWVsZENvbnZlcnRlZCksIGZhbHNlLCB0cnVlKTtcblx0fVxuXG5cdGNvbnN0IG9Qcm9wZXJ0eTogUHJvcGVydHkgPSAoaXNQYXRoRXhwcmVzc2lvbihvUHJvcGVydHlQYXRoKSAmJiBvUHJvcGVydHlQYXRoLiR0YXJnZXQpIHx8IChvUHJvcGVydHlQYXRoIGFzIFByb3BlcnR5KTtcblx0Ly8gRW5hYmxlbWVudCBkZXBlbmRzIG9uIHRoZSBmaWVsZCBjb250cm9sIGV4cHJlc3Npb25cblx0Ly8gSWYgdGhlIEZpZWxkIGNvbnRyb2wgaXMgc3RhdGljYWxseSBpbiBJbmFwcGxpY2FibGUgKGRpc2FibGVkKSAtPiBub3QgZW5hYmxlZFxuXHRjb25zdCBlbmFibGVkRXhwcmVzc2lvbiA9IGlmRWxzZShpc0Rpc2FibGVkRXhwcmVzc2lvbihvUHJvcGVydHkpLCBmYWxzZSwgdHJ1ZSk7XG5cdGlmIChiQXNPYmplY3QpIHtcblx0XHRyZXR1cm4gYW5kKGVuYWJsZWRFeHByZXNzaW9uLCBkYXRhRmllbGRFbmFibGVkRXhwcmVzc2lvbik7XG5cdH1cblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGFuZChlbmFibGVkRXhwcmVzc2lvbiwgZGF0YUZpZWxkRW5hYmxlZEV4cHJlc3Npb24pKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBleHByZXNzaW9uIHRvIGdlbmVyYXRlIGFuIFwiZWRpdE1vZGVcIiBlbnVtIHZhbHVlLlxuICogQHBhcmFtIHtQcm9wZXJ0eVBhdGh9IG9Qcm9wZXJ0eVBhdGggVGhlIGlucHV0IHByb3BlcnR5XG4gKiBAcGFyYW0ge0RhdGFNb2RlbE9iamVjdFBhdGh9IG9EYXRhTW9kZWxPYmplY3RQYXRoIFRoZSBsaXN0IG9mIGRhdGEgbW9kZWwgb2JqZWN0cyB0aGF0IGFyZSBpbnZvbHZlZCB0byByZWFjaCB0aGF0IHByb3BlcnR5XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJNZWFzdXJlUmVhZE9ubHkgV2hldGhlciB3ZSBzaG91bGQgc2V0IFVvTSAvIGN1cnJlbmN5IGZpZWxkIG1vZGUgdG8gcmVhZCBvbmx5XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJBc09iamVjdCBXaGV0aGVyIHdlIHNob3VsZCByZXR1cm4gdGhpcyBhcyBhbiBleHByZXNzaW9uIG9yIGFzIGEgc3RyaW5nXG4gKiBAcGFyYW0ge29iamVjdH0gb0RhdGFGaWVsZENvbnZlcnRlZCBUaGUgZGF0YUZpZWxkIG9iamVjdFxuICogQHJldHVybnMge0JpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4gfCBFeHByZXNzaW9uT3JQcmltaXRpdmU8c3RyaW5nPn0gVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgcHJvcGVydHkgZWRpdCBtb2RlLCBjb21wbGlhbnQgd2l0aCB0aGUgTURDIEZpZWxkIGRlZmluaXRpb24gb2YgZWRpdE1vZGUuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFZGl0TW9kZSA9IGZ1bmN0aW9uKFxuXHRvUHJvcGVydHlQYXRoOiBQcm9wZXJ0eU9yUGF0aDxQcm9wZXJ0eT4sXG5cdG9EYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRiTWVhc3VyZVJlYWRPbmx5OiBib29sZWFuID0gZmFsc2UsXG5cdGJBc09iamVjdDogYm9vbGVhbiA9IGZhbHNlLFxuXHRvRGF0YUZpZWxkQ29udmVydGVkOiBhbnkgPSBudWxsXG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHwgRXhwcmVzc2lvbk9yUHJpbWl0aXZlPHN0cmluZz4ge1xuXHRpZiAoIW9Qcm9wZXJ0eVBhdGggfHwgdHlwZW9mIG9Qcm9wZXJ0eVBhdGggPT09IFwic3RyaW5nXCIpIHtcblx0XHRyZXR1cm4gXCJEaXNwbGF5XCI7XG5cdH1cblx0Y29uc3Qgb1Byb3BlcnR5OiBQcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHQvLyBpZiB0aGUgcHJvcGVydHkgaXMgbm90IGVuYWJsZWQgPT4gRGlzYWJsZWRcblx0Ly8gaWYgdGhlIHByb3BlcnR5IGlzIGVuYWJsZWQgJiYgbm90IGVkaXRhYmxlID0+IFJlYWRPbmx5XG5cdC8vIGlmIHRoZSBwcm9wZXJ0eSBpcyBlbmFibGVkICYmIGVkaXRhYmxlID0+IEVkaXRhYmxlXG5cdC8vIElmIHRoZXJlIGlzIGFuIGFzc29jaWF0ZWQgdW5pdCwgYW5kIGl0IGhhcyBhIGZpZWxkIGNvbnRyb2wgYWxzbyB1c2UgY29uc2lkZXIgdGhlIGZvbGxvd2luZ1xuXHQvLyBpZiB0aGUgdW5pdCBmaWVsZCBjb250cm9sIGlzIHJlYWRvbmx5IC0+IEVkaXRhYmxlUmVhZE9ubHlcblx0Ly8gb3RoZXJ3aXNlIC0+IEVkaXRhYmxlXG5cdGNvbnN0IGVkaXRhYmxlRXhwcmVzc2lvbiA9IGdldEVkaXRhYmxlRXhwcmVzc2lvbihcblx0XHRvUHJvcGVydHlQYXRoLFxuXHRcdG9EYXRhRmllbGRDb252ZXJ0ZWQsXG5cdFx0b0RhdGFNb2RlbE9iamVjdFBhdGgsXG5cdFx0dHJ1ZVxuXHQpIGFzIEV4cHJlc3Npb25PclByaW1pdGl2ZTxib29sZWFuPjtcblxuXHRjb25zdCBlbmFibGVkRXhwcmVzc2lvbiA9IGdldEVuYWJsZWRFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgsIG9EYXRhRmllbGRDb252ZXJ0ZWQsIHRydWUpIGFzIEV4cHJlc3Npb25PclByaW1pdGl2ZTxib29sZWFuPjtcblx0Y29uc3QgYXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkgPSBnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eShvUHJvcGVydHkpO1xuXHRjb25zdCB1bml0UHJvcGVydHkgPSBhc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSB8fCBnZXRBc3NvY2lhdGVkVW5pdFByb3BlcnR5KG9Qcm9wZXJ0eSk7XG5cdGxldCByZXN1bHRFeHByZXNzaW9uOiBFeHByZXNzaW9uT3JQcmltaXRpdmU8c3RyaW5nPiA9IFwiRWRpdGFibGVcIjtcblx0aWYgKHVuaXRQcm9wZXJ0eSkge1xuXHRcdHJlc3VsdEV4cHJlc3Npb24gPSBpZkVsc2UoXG5cdFx0XHRvcihpc1JlYWRPbmx5RXhwcmVzc2lvbih1bml0UHJvcGVydHkpLCBpc0NvbXB1dGVkKHVuaXRQcm9wZXJ0eSksIGJNZWFzdXJlUmVhZE9ubHkpLFxuXHRcdFx0XCJFZGl0YWJsZVJlYWRPbmx5XCIsXG5cdFx0XHRcIkVkaXRhYmxlXCJcblx0XHQpO1xuXHR9XG5cdGNvbnN0IHJlYWRPbmx5RXhwcmVzc2lvbiA9IG9yKGlzUmVhZE9ubHlFeHByZXNzaW9uKG9Qcm9wZXJ0eSksIGlzUmVhZE9ubHlFeHByZXNzaW9uKG9EYXRhRmllbGRDb252ZXJ0ZWQpKTtcblxuXHQvLyBpZiB0aGUgcHJvcGVydHkgaXMgZnJvbSBhIG5vbi11cGRhdGFibGUgZW50aXR5ID0+IFJlYWQgb25seSBtb2RlLCBwcmV2aW91c2x5IGNhbGN1bGF0ZWQgZWRpdCBNb2RlIGlzIGlnbm9yZWRcblx0Ly8gaWYgdGhlIHByb3BlcnR5IGlzIGZyb20gYW4gdXBkYXRhYmxlIGVudGl0eSA9PiBwcmV2aW91c2x5IGNhbGN1bGF0ZWQgZWRpdCBNb2RlIGV4cHJlc3Npb25cblx0Y29uc3QgZWRpdE1vZGVFeHByZXNzaW9uID0gaWZFbHNlKFxuXHRcdGVuYWJsZWRFeHByZXNzaW9uLFxuXHRcdGlmRWxzZShcblx0XHRcdGVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdHJlc3VsdEV4cHJlc3Npb24sXG5cdFx0XHRpZkVsc2UoYW5kKCFpc0NvbnN0YW50KHJlYWRPbmx5RXhwcmVzc2lvbikgJiYgcmVhZE9ubHlFeHByZXNzaW9uLCBVSS5Jc0VkaXRhYmxlKSwgXCJSZWFkT25seVwiLCBcIkRpc3BsYXlcIilcblx0XHQpLFxuXHRcdGlmRWxzZShVSS5Jc0VkaXRhYmxlLCBcIkRpc2FibGVkXCIsIFwiRGlzcGxheVwiKVxuXHQpO1xuXHRpZiAoYkFzT2JqZWN0KSB7XG5cdFx0cmV0dXJuIGVkaXRNb2RlRXhwcmVzc2lvbjtcblx0fVxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoZWRpdE1vZGVFeHByZXNzaW9uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNWYWxpZEFuYWx5dGljYWxDdXJyZW5jeU9yVW5pdCA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0Y29uc3Qgb1Byb3BlcnR5RGVmaW5pdGlvbiA9IG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0IGFzIFByb3BlcnR5O1xuXHRjb25zdCBjdXJyZW5jeSA9IG9Qcm9wZXJ0eURlZmluaXRpb24uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5JU09DdXJyZW5jeTtcblx0Y29uc3QgbWVhc3VyZSA9IGN1cnJlbmN5ID8gY3VycmVuY3kgOiBvUHJvcGVydHlEZWZpbml0aW9uLmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdDtcblx0aWYgKG1lYXN1cmUpIHtcblx0XHRyZXR1cm4gY29tcGlsZUJpbmRpbmcob3IoaXNUcnV0aHkoYW5ub3RhdGlvbkV4cHJlc3Npb24obWVhc3VyZSkgYXMgRXhwcmVzc2lvbjxzdHJpbmc+KSwgbm90KFVJLklzVG90YWwpKSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGNvbnN0YW50KHRydWUpKTtcblx0fVxufTtcblxuZXhwb3J0IGNvbnN0IGlmVW5pdEVkaXRhYmxlID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eVBhdGg6IFByb3BlcnR5T3JQYXRoPFByb3BlcnR5Pixcblx0c0VkaXRhYmxlVmFsdWU6IEV4cHJlc3Npb25PclByaW1pdGl2ZTxzdHJpbmc+LFxuXHRzTm9uRWRpdGFibGVWYWx1ZTogRXhwcmVzc2lvbk9yUHJpbWl0aXZlPHN0cmluZz5cbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCBvUHJvcGVydHkgPSAoaXNQYXRoRXhwcmVzc2lvbihvUHJvcGVydHlQYXRoKSAmJiBvUHJvcGVydHlQYXRoLiR0YXJnZXQpIHx8IChvUHJvcGVydHlQYXRoIGFzIFByb3BlcnR5KTtcblx0Y29uc3QgdW5pdFByb3BlcnR5ID0gZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkob1Byb3BlcnR5KSB8fCBnZXRBc3NvY2lhdGVkVW5pdFByb3BlcnR5KG9Qcm9wZXJ0eSk7XG5cdGlmICghdW5pdFByb3BlcnR5KSB7XG5cdFx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKHNOb25FZGl0YWJsZVZhbHVlKTtcblx0fVxuXHRjb25zdCBlZGl0YWJsZUV4cHJlc3Npb24gPSBhbmQobm90KGlzUmVhZE9ubHlFeHByZXNzaW9uKHVuaXRQcm9wZXJ0eSkpLCBub3QoaXNDb21wdXRlZCh1bml0UHJvcGVydHkpKSk7XG5cdHJldHVybiBjb21waWxlQmluZGluZyhpZkVsc2UoZWRpdGFibGVFeHByZXNzaW9uLCBzRWRpdGFibGVWYWx1ZSwgc05vbkVkaXRhYmxlVmFsdWUpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWVsZERpc3BsYXkgPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+LFxuXHRzVGFyZ2V0RGlzcGxheU1vZGU6IHN0cmluZyxcblx0b0NvbXB1dGVkRWRpdE1vZGU6IEV4cHJlc3Npb25PclByaW1pdGl2ZTxzdHJpbmc+XG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0Y29uc3Qgb1Byb3BlcnR5ID0gKGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5UGF0aCkgJiYgb1Byb3BlcnR5UGF0aC4kdGFyZ2V0KSB8fCAob1Byb3BlcnR5UGF0aCBhcyBQcm9wZXJ0eSk7XG5cblx0cmV0dXJuIGhhc1ZhbHVlSGVscChvUHJvcGVydHkpXG5cdFx0PyBjb21waWxlQmluZGluZyhzVGFyZ2V0RGlzcGxheU1vZGUpXG5cdFx0OiBjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwob0NvbXB1dGVkRWRpdE1vZGUsIFwiRWRpdGFibGVcIiksIFwiVmFsdWVcIiwgc1RhcmdldERpc3BsYXlNb2RlKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbiA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHksIHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb246IEV4cHJlc3Npb248c3RyaW5nPik6IEV4cHJlc3Npb248c3RyaW5nPiB7XG5cdGNvbnN0IG91dEV4cHJlc3Npb246IEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbjxhbnk+ID0gcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiBhcyBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55Pjtcblx0aWYgKG9Qcm9wZXJ0eS5fdHlwZSA9PT0gXCJQcm9wZXJ0eVwiKSB7XG5cdFx0Y29uc3Qgb1RhcmdldE1hcHBpbmcgPSBFRE1fVFlQRV9NQVBQSU5HWyhvUHJvcGVydHkgYXMgUHJvcGVydHkpLnR5cGVdO1xuXHRcdGlmIChvVGFyZ2V0TWFwcGluZykge1xuXHRcdFx0b3V0RXhwcmVzc2lvbi50eXBlID0gb1RhcmdldE1hcHBpbmcudHlwZTtcblx0XHRcdGlmIChvVGFyZ2V0TWFwcGluZy5jb25zdHJhaW50cykge1xuXHRcdFx0XHRvdXRFeHByZXNzaW9uLmNvbnN0cmFpbnRzID0ge307XG5cdFx0XHRcdGlmIChvVGFyZ2V0TWFwcGluZy5jb25zdHJhaW50cy4kU2NhbGUgJiYgb1Byb3BlcnR5LnNjYWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmNvbnN0cmFpbnRzLnNjYWxlID0gb1Byb3BlcnR5LnNjYWxlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvVGFyZ2V0TWFwcGluZy5jb25zdHJhaW50cy4kUHJlY2lzaW9uICYmIG9Qcm9wZXJ0eS5wcmVjaXNpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdG91dEV4cHJlc3Npb24uY29uc3RyYWludHMucHJlY2lzaW9uID0gb1Byb3BlcnR5LnByZWNpc2lvbjtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1RhcmdldE1hcHBpbmcuY29uc3RyYWludHMuJE1heExlbmd0aCAmJiBvUHJvcGVydHkubWF4TGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmNvbnN0cmFpbnRzLm1heExlbmd0aCA9IG9Qcm9wZXJ0eS5tYXhMZW5ndGg7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzLiROdWxsYWJsZSAmJiBvUHJvcGVydHkubnVsbGFibGUgPT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0b3V0RXhwcmVzc2lvbi5jb25zdHJhaW50cy5udWxsYWJsZSA9IG9Qcm9wZXJ0eS5udWxsYWJsZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0b1RhcmdldE1hcHBpbmcuY29uc3RyYWludHNbXCJAT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuTWluaW11bS8kRGVjaW1hbFwiXSAmJlxuXHRcdFx0XHRcdG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVmFsaWRhdGlvbj8uTWluaW11bSAhPT0gdW5kZWZpbmVkICYmXG5cdFx0XHRcdFx0IWlzTmFOKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucy5WYWxpZGF0aW9uLk1pbmltdW0pXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdG91dEV4cHJlc3Npb24uY29uc3RyYWludHMubWluaW11bSA9IGAke29Qcm9wZXJ0eS5hbm5vdGF0aW9ucy5WYWxpZGF0aW9uLk1pbmltdW19YDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0b1RhcmdldE1hcHBpbmcuY29uc3RyYWludHNbXCJAT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuTWF4aW11bS8kRGVjaW1hbFwiXSAmJlxuXHRcdFx0XHRcdG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVmFsaWRhdGlvbj8uTWF4aW11bSAhPT0gdW5kZWZpbmVkICYmXG5cdFx0XHRcdFx0IWlzTmFOKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucy5WYWxpZGF0aW9uLk1heGltdW0pXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdG91dEV4cHJlc3Npb24uY29uc3RyYWludHMubWF4aW11bSA9IGAke29Qcm9wZXJ0eS5hbm5vdGF0aW9ucy5WYWxpZGF0aW9uLk1heGltdW19YDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKG91dEV4cHJlc3Npb24/LnR5cGU/LmluZGV4T2YoXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnRcIikgPT09IDApIHtcblx0XHRcdFx0aWYgKCFvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMgPSB7fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKG91dEV4cHJlc3Npb24uZm9ybWF0T3B0aW9ucywge1xuXHRcdFx0XHRcdHBhcnNlQXNTdHJpbmc6IGZhbHNlLFxuXHRcdFx0XHRcdGVtcHR5U3RyaW5nOiBcIlwiXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKG91dEV4cHJlc3Npb24udHlwZSA9PT0gXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmdcIikge1xuXHRcdFx0XHRpZiAoIW91dEV4cHJlc3Npb24uZm9ybWF0T3B0aW9ucykge1xuXHRcdFx0XHRcdG91dEV4cHJlc3Npb24uZm9ybWF0T3B0aW9ucyA9IHt9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdG91dEV4cHJlc3Npb24uZm9ybWF0T3B0aW9ucy5wYXJzZUtlZXBzRW1wdHlTdHJpbmcgPSB0cnVlO1xuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRvVGFyZ2V0TWFwcGluZy5jb25zdHJhaW50cz8uW1wiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0RpZ2l0U2VxdWVuY2VcIl0gJiZcblx0XHRcdFx0XHRvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uSXNEaWdpdFNlcXVlbmNlXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdG91dEV4cHJlc3Npb24uY29uc3RyYWludHMuaXNEaWdpdFNlcXVlbmNlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKG91dEV4cHJlc3Npb24/LnR5cGU/LmluZGV4T2YoXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Eb3VibGVcIikgPT09IDApIHtcblx0XHRcdFx0aWYgKCFvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMpIHtcblx0XHRcdFx0XHRvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMgPSB7fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRvdXRFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKG91dEV4cHJlc3Npb24uZm9ybWF0T3B0aW9ucywge1xuXHRcdFx0XHRcdHBhcnNlQXNTdHJpbmc6IGZhbHNlLFxuXHRcdFx0XHRcdGVtcHR5U3RyaW5nOiBcIlwiXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gb3V0RXhwcmVzc2lvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUeXBlQ29uZmlnID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSB8IERhdGFGaWVsZEFic3RyYWN0VHlwZXMsIGRhdGFUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBhbnkge1xuXHRjb25zdCBvVGFyZ2V0TWFwcGluZyA9IEVETV9UWVBFX01BUFBJTkdbKG9Qcm9wZXJ0eSBhcyBQcm9wZXJ0eSk/LnR5cGVdIHx8IChkYXRhVHlwZSA/IEVETV9UWVBFX01BUFBJTkdbZGF0YVR5cGVdIDogdW5kZWZpbmVkKTtcblx0Y29uc3QgcHJvcGVydHlUeXBlQ29uZmlnOiBjb25maWdUeXBlID0ge1xuXHRcdHR5cGU6IG9UYXJnZXRNYXBwaW5nLnR5cGUsXG5cdFx0Y29uc3RyYWludHM6IHt9LFxuXHRcdGZvcm1hdE9wdGlvbnM6IHt9XG5cdH07XG5cdGlmIChpc1Byb3BlcnR5KG9Qcm9wZXJ0eSkpIHtcblx0XHRwcm9wZXJ0eVR5cGVDb25maWcuY29uc3RyYWludHMgPSB7XG5cdFx0XHRzY2FsZTogb1RhcmdldE1hcHBpbmcuY29uc3RyYWludHM/LiRTY2FsZSA/IG9Qcm9wZXJ0eS5zY2FsZSA6IHVuZGVmaW5lZCxcblx0XHRcdHByZWNpc2lvbjogb1RhcmdldE1hcHBpbmcuY29uc3RyYWludHM/LiRQcmVjaXNpb24gPyBvUHJvcGVydHkucHJlY2lzaW9uIDogdW5kZWZpbmVkLFxuXHRcdFx0bWF4TGVuZ3RoOiBvVGFyZ2V0TWFwcGluZy5jb25zdHJhaW50cz8uJE1heExlbmd0aCA/IG9Qcm9wZXJ0eS5tYXhMZW5ndGggOiB1bmRlZmluZWQsXG5cdFx0XHRudWxsYWJsZTogb1RhcmdldE1hcHBpbmcuY29uc3RyYWludHM/LiROdWxsYWJsZSA/IG9Qcm9wZXJ0eS5udWxsYWJsZSA6IHVuZGVmaW5lZCxcblx0XHRcdG1pbmltdW06XG5cdFx0XHRcdG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzPy5bXCJAT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuTWluaW11bS8kRGVjaW1hbFwiXSAmJlxuXHRcdFx0XHQhaXNOYU4ob1Byb3BlcnR5LmFubm90YXRpb25zPy5WYWxpZGF0aW9uPy5NaW5pbXVtKVxuXHRcdFx0XHRcdD8gYCR7b1Byb3BlcnR5LmFubm90YXRpb25zPy5WYWxpZGF0aW9uPy5NaW5pbXVtfWBcblx0XHRcdFx0XHQ6IHVuZGVmaW5lZCxcblx0XHRcdG1heGltdW06XG5cdFx0XHRcdG9UYXJnZXRNYXBwaW5nLmNvbnN0cmFpbnRzPy5bXCJAT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuTWF4aW11bS8kRGVjaW1hbFwiXSAmJlxuXHRcdFx0XHQhaXNOYU4ob1Byb3BlcnR5LmFubm90YXRpb25zPy5WYWxpZGF0aW9uPy5NYXhpbXVtKVxuXHRcdFx0XHRcdD8gYCR7b1Byb3BlcnR5LmFubm90YXRpb25zPy5WYWxpZGF0aW9uPy5NYXhpbXVtfWBcblx0XHRcdFx0XHQ6IHVuZGVmaW5lZCxcblx0XHRcdGlzRGlnaXRTZXF1ZW5jZTpcblx0XHRcdFx0cHJvcGVydHlUeXBlQ29uZmlnLnR5cGUgPT09IFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nXCIgJiZcblx0XHRcdFx0b1RhcmdldE1hcHBpbmcuY29uc3RyYWludHM/LltcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNEaWdpdFNlcXVlbmNlXCJdICYmXG5cdFx0XHRcdChvUHJvcGVydHkgYXMgUHJvcGVydHkpLmFubm90YXRpb25zPy5Db21tb24/LklzRGlnaXRTZXF1ZW5jZVxuXHRcdFx0XHRcdD8gdHJ1ZVxuXHRcdFx0XHRcdDogdW5kZWZpbmVkXG5cdFx0fTtcblx0fVxuXHRwcm9wZXJ0eVR5cGVDb25maWcuZm9ybWF0T3B0aW9ucyA9IHtcblx0XHRwYXJzZUFzU3RyaW5nOlxuXHRcdFx0cHJvcGVydHlUeXBlQ29uZmlnPy50eXBlPy5pbmRleE9mKFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50XCIpID09PSAwIHx8XG5cdFx0XHRwcm9wZXJ0eVR5cGVDb25maWc/LnR5cGU/LmluZGV4T2YoXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Eb3VibGVcIikgPT09IDBcblx0XHRcdFx0PyBmYWxzZVxuXHRcdFx0XHQ6IHVuZGVmaW5lZCxcblx0XHRlbXB0eVN0cmluZzpcblx0XHRcdHByb3BlcnR5VHlwZUNvbmZpZz8udHlwZT8uaW5kZXhPZihcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludFwiKSA9PT0gMCB8fFxuXHRcdFx0cHJvcGVydHlUeXBlQ29uZmlnPy50eXBlPy5pbmRleE9mKFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuRG91YmxlXCIpID09PSAwXG5cdFx0XHRcdD8gXCJcIlxuXHRcdFx0XHQ6IHVuZGVmaW5lZCxcblx0XHRwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHByb3BlcnR5VHlwZUNvbmZpZy50eXBlID09PSBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZ1wiID8gdHJ1ZSA6IHVuZGVmaW5lZFxuXHR9O1xuXHRyZXR1cm4gcHJvcGVydHlUeXBlQ29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJpbmRpbmdXaXRoVW5pdE9yQ3VycmVuY3kgPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5RGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0cHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbjogRXhwcmVzc2lvbjxzdHJpbmc+XG4pOiBFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCBvUHJvcGVydHlEZWZpbml0aW9uID0gb1Byb3BlcnR5RGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QgYXMgUHJvcGVydHk7XG5cdGxldCB1bml0ID0gb1Byb3BlcnR5RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LlVuaXQ7XG5cdGNvbnN0IHJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzXG5cdCkubWFwKG5wID0+IG5wLm5hbWUpO1xuXHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihvUHJvcGVydHlEZWZpbml0aW9uLCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uKTtcblx0aWYgKHVuaXQ/LnRvU3RyaW5nKCkgPT09IFwiJVwiKSB7XG5cdFx0cmV0dXJuIGZvcm1hdFJlc3VsdChbcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbl0sIHZhbHVlRm9ybWF0dGVycy5mb3JtYXRXaXRoUGVyY2VudGFnZSk7XG5cdH1cblx0Y29uc3QgY29tcGxleFR5cGUgPSB1bml0ID8gXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIgOiBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkN1cnJlbmN5XCI7XG5cdHVuaXQgPSB1bml0ID8gdW5pdCA6IG9Qcm9wZXJ0eURlZmluaXRpb24uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5JU09DdXJyZW5jeTtcblx0Y29uc3QgdW5pdEJpbmRpbmdFeHByZXNzaW9uID0gKHVuaXQgYXMgYW55KS4kdGFyZ2V0XG5cdFx0PyBmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uKCh1bml0IGFzIGFueSkuJHRhcmdldCwgYW5ub3RhdGlvbkV4cHJlc3Npb24odW5pdCwgcmVsYXRpdmVMb2NhdGlvbikgYXMgRXhwcmVzc2lvbjxzdHJpbmc+KVxuXHRcdDogKGFubm90YXRpb25FeHByZXNzaW9uKHVuaXQsIHJlbGF0aXZlTG9jYXRpb24pIGFzIEV4cHJlc3Npb248c3RyaW5nPik7XG5cdHJldHVybiBhZGRUeXBlSW5mb3JtYXRpb24oW3Byb3BlcnR5QmluZGluZ0V4cHJlc3Npb24sIHVuaXRCaW5kaW5nRXhwcmVzc2lvbl0sIGNvbXBsZXhUeXBlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBbGlnbm1lbnRFeHByZXNzaW9uID0gZnVuY3Rpb24oXG5cdG9Db21wdXRlZEVkaXRNb2RlOiBFeHByZXNzaW9uPHN0cmluZz4sXG5cdHNBbGlnbkRpc3BsYXk6IHN0cmluZyA9IFwiQmVnaW5cIixcblx0c0FsaWduRWRpdDogc3RyaW5nID0gXCJCZWdpblwiXG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHwgRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlcXVhbChvQ29tcHV0ZWRFZGl0TW9kZSwgXCJEaXNwbGF5XCIpLCBzQWxpZ25EaXNwbGF5LCBzQWxpZ25FZGl0KSk7XG59O1xuXG4vKipcbiAqIEZvcm1hdHRlciBoZWxwZXIgdG8gcmV0cmlldmUgdGhlIGNvbnZlcnRlckNvbnRleHQgZnJvbSB0aGUgbWV0YW1vZGVsIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIHtDb250ZXh0fSBvQ29udGV4dCBUaGUgb3JpZ2luYWwgbWV0YW1vZGVsIGNvbnRleHRcbiAqIEBwYXJhbSB7Q29tcHV0ZWRBbm5vdGF0aW9uSW50ZXJmYWNlfSBvSW50ZXJmYWNlIFRoZSBjdXJyZW50IHRlbXBsYXRpbmcgY29udGV4dFxuICogQHJldHVybnMge29iamVjdH0gVGhlIENvbnZlcnRlckNvbnRleHQgcmVwcmVzZW50aW5nIHRoYXQgb2JqZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDb252ZXJ0ZXJDb250ZXh0ID0gZnVuY3Rpb24ob0NvbnRleHQ6IE1ldGFNb2RlbENvbnRleHQsIG9JbnRlcmZhY2U6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IG9iamVjdCB8IG51bGwge1xuXHRpZiAob0ludGVyZmFjZSAmJiBvSW50ZXJmYWNlLmNvbnRleHQpIHtcblx0XHRyZXR1cm4gY29udmVydE1ldGFNb2RlbENvbnRleHQob0ludGVyZmFjZS5jb250ZXh0KTtcblx0fVxuXHRyZXR1cm4gbnVsbDtcbn07XG5nZXRDb252ZXJ0ZXJDb250ZXh0LnJlcXVpcmVzSUNvbnRleHQgPSB0cnVlO1xuXG4vKipcbiAqIEZvcm1hdHRlciBoZWxwZXIgdG8gcmV0cmlldmUgdGhlIGRhdGEgbW9kZWwgb2JqZWN0cyB0aGF0IGFyZSBpbnZvbHZlZCBmcm9tIHRoZSBtZXRhbW9kZWwgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0ge0NvbnRleHR9IG9Db250ZXh0IFRoZSBvcmlnaW5hbCBPRGF0YU1ldGFNb2RlbCBjb250ZXh0XG4gKiBAcGFyYW0ge0NvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZX0gb0ludGVyZmFjZSBUaGUgY3VycmVudCB0ZW1wbGF0aW5nIGNvbnRleHRcbiAqIEByZXR1cm5zIHtvYmplY3RbXX0gQW4gYXJyYXkgb2YgZW50aXR5c2V0cyBhbmQgbmF2cHJvcGVydGllcyB0aGF0IGFyZSBpbnZvbHZlZCB0byBnZXQgdG8gYSBzcGVjaWZpYyBvYmplY3QgaW4gdGhlIG1ldGFtb2RlbFxuICovXG5leHBvcnQgY29uc3QgZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCA9IGZ1bmN0aW9uKFxuXHRvQ29udGV4dDogTWV0YU1vZGVsQ29udGV4dCxcblx0b0ludGVyZmFjZTogQ29tcHV0ZWRBbm5vdGF0aW9uSW50ZXJmYWNlXG4pOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgbnVsbCB7XG5cdGlmIChvSW50ZXJmYWNlICYmIG9JbnRlcmZhY2UuY29udGV4dCkge1xuXHRcdHJldHVybiBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob0ludGVyZmFjZS5jb250ZXh0KTtcblx0fVxuXHRyZXR1cm4gbnVsbDtcbn07XG5nZXREYXRhTW9kZWxPYmplY3RQYXRoLnJlcXVpcmVzSUNvbnRleHQgPSB0cnVlO1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgZXhwcmVzc2lvbkJpbmRpbmcgY3JlYXRlZCBvdXQgb2YgYSBiaW5kaW5nIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIHtFeHByZXNzaW9uPGFueT59IGV4cHJlc3Npb24gVGhlIGV4cHJlc3Npb24gd2hpY2ggbmVlZHMgdG8gYmUgY29tcGlsZWRcbiAqIEByZXR1cm5zIHtCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+fSBUaGUgZXhwcmVzc2lvbi1iaW5kaW5nIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgZ2V0RXhwcmVzc2lvbkJpbmRpbmcgPSBmdW5jdGlvbihleHByZXNzaW9uOiBFeHByZXNzaW9uPGFueT4pOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGV4cHJlc3Npb24pO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgdGFyZ2V0IGVudGl0eXNldCBmb3IgYSBjb250ZXh0IHBhdGggaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSBvQ29udGV4dFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRhcmdldEVudGl0eVNldCA9IGZ1bmN0aW9uKG9Db250ZXh0OiBDb250ZXh0KTogc3RyaW5nIHwgbnVsbCB7XG5cdGlmIChvQ29udGV4dCkge1xuXHRcdGNvbnN0IG9EYXRhTW9kZWxQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKG9Db250ZXh0KTtcblx0XHRyZXR1cm4gZ2V0VGFyZ2V0RW50aXR5U2V0UGF0aChvRGF0YU1vZGVsUGF0aCk7XG5cdH1cblxuXHRyZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxlY3Rpb25GaWVsZCA9IGZ1bmN0aW9uKG9EYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoKTogYm9vbGVhbiB7XG5cdGlmIChvRGF0YU1vZGVsUGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcz8ubGVuZ3RoKSB7XG5cdFx0Y29uc3QgaGFzT25lVG9NYW55TmF2aWdhdGlvbiA9XG5cdFx0XHRvRGF0YU1vZGVsUGF0aD8ubmF2aWdhdGlvblByb3BlcnRpZXMuZmluZEluZGV4KChvTmF2OiBOYXZpZ2F0aW9uUHJvcGVydHkpID0+IHtcblx0XHRcdFx0aWYgKG9OYXYuaXNDb2xsZWN0aW9uKSB7XG5cdFx0XHRcdFx0aWYgKG9EYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbj8ubmF2aWdhdGlvblByb3BlcnRpZXM/Lmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0Ly93ZSBjaGVjayB0aGUgb25lIHRvIG1hbnkgbmF2IGlzIG5vdCBhbHJlYWR5IHBhcnQgb2YgdGhlIGNvbnRleHRcblx0XHRcdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0XHRcdG9EYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbj8ubmF2aWdhdGlvblByb3BlcnRpZXMuZmluZEluZGV4KFxuXHRcdFx0XHRcdFx0XHRcdChvQ29udGV4dE5hdjogTmF2aWdhdGlvblByb3BlcnR5KSA9PiBvQ29udGV4dE5hdi5uYW1lID09PSBvTmF2Lm5hbWVcblx0XHRcdFx0XHRcdFx0KSA9PT0gLTFcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0pID4gLTE7XG5cdFx0aWYgKGhhc09uZVRvTWFueU5hdmlnYXRpb24pIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gZmFsc2U7XG59O1xuIl19
@@ -2,4 +2,4 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/MetaModelConverter","sap/fe/core/helpers/BindingExpression","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/templating/PropertyHelper","sap/fe/core/templating/DataModelPathHelper","sap/fe/core/templating/FieldControlHelper","sap/fe/core/formatters/ValueFormatter"],function(M,B,a,P,D,F,v){"use strict";var _={};var i=F.isDisabledExpression;var b=F.isNonEditableExpression;var c=F.isReadOnlyExpression;var g=D.getPathRelativeLocation;var d=D.isPathUpdatable;var e=D.getTargetEntitySetPath;var f=P.isProperty;var h=P.isPathExpression;var j=P.isKey;var k=P.isImmutable;var l=P.isComputed;var m=P.hasValueHelp;var n=P.getAssociatedCurrencyProperty;var o=P.getAssociatedUnitProperty;var U=a.UI;var p=B.or;var q=B.not;var r=B.isTruthy;var s=B.isConstant;var t=B.ifElse;var u=B.formatResult;var w=B.equal;var x=B.constant;var y=B.compileBinding;var z=B.annotationExpression;var A=B.and;var C=B.addTypeInformation;var E=M.getInvolvedDataModelObjects;var G=M.convertMetaModelContext;var H={"Edm.Boolean":{type:"sap.ui.model.odata.type.Boolean"},"Edm.Byte":{type:"sap.ui.model.odata.type.Byte"},"Edm.Date":{type:"sap.ui.model.odata.type.Date"},"Edm.DateTimeOffset":{constraints:{"$Precision":"precision"},type:"sap.ui.model.odata.type.DateTimeOffset"},"Edm.Decimal":{constraints:{"@Org.OData.Validation.V1.Minimum/$Decimal":"minimum","@Org.OData.Validation.V1.Minimum@Org.OData.Validation.V1.Exclusive":"minimumExclusive","@Org.OData.Validation.V1.Maximum/$Decimal":"maximum","@Org.OData.Validation.V1.Maximum@Org.OData.Validation.V1.Exclusive":"maximumExclusive","$Precision":"precision","$Scale":"scale"},type:"sap.ui.model.odata.type.Decimal"},"Edm.Double":{type:"sap.ui.model.odata.type.Double"},"Edm.Guid":{type:"sap.ui.model.odata.type.Guid"},"Edm.Int16":{type:"sap.ui.model.odata.type.Int16"},"Edm.Int32":{type:"sap.ui.model.odata.type.Int32"},"Edm.Int64":{type:"sap.ui.model.odata.type.Int64"},"Edm.SByte":{type:"sap.ui.model.odata.type.SByte"},"Edm.Single":{type:"sap.ui.model.odata.type.Single"},"Edm.Stream":{type:"sap.ui.model.odata.type.Stream"},"Edm.String":{constraints:{"@com.sap.vocabularies.Common.v1.IsDigitSequence":"isDigitSequence","$MaxLength":"maxLength","$Nullable":"nullable"},type:"sap.ui.model.odata.type.String"},"Edm.TimeOfDay":{constraints:{"$Precision":"precision"},type:"sap.ui.model.odata.type.TimeOfDay"}};_.EDM_TYPE_MAPPING=H;var I=function(a1){var b1=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var c1=arguments.length>2?arguments[2]:undefined;var d1=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(!a1||typeof a1==="string"){return y(false);}var e1=true;if(b1!==null){e1=t(b(b1),false,U.IsEditable);}var f1=h(a1)&&a1.$target||a1;var g1=d(c1,a1);var h1=t(p(q(g1),l(f1),j(f1),k(f1),b(f1)),t(p(l(f1),b(f1)),false,U.IsTransientBinding),U.IsEditable);if(d1){return A(h1,e1);}return y(A(h1,e1));};_.getEditableExpression=I;var J=function(a1,b1){var c1=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(!a1||typeof a1==="string"){return y(true);}var d1=true;if(b1!==null){d1=t(i(b1),false,true);}var e1=h(a1)&&a1.$target||a1;var f1=t(i(e1),false,true);if(c1){return A(f1,d1);}return y(A(f1,d1));};_.getEnabledExpression=J;var K=function(a1,b1){var c1=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var d1=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var e1=arguments.length>4&&arguments[4]!==undefined?arguments[4]:null;if(!a1||typeof a1==="string"){return"Display";}var f1=h(a1)&&a1.$target||a1;var g1=I(a1,e1,b1,true);var h1=J(a1,e1,true);var i1=n(f1);var j1=i1||o(f1);var k1="Editable";if(j1){k1=t(p(c(j1),l(j1),c1),"EditableReadOnly","Editable");}var l1=p(c(f1),c(e1));var m1=t(h1,t(g1,k1,t(A(!s(l1)&&l1,U.IsEditable),"ReadOnly","Display")),t(U.IsEditable,"Disabled","Display"));if(d1){return m1;}return y(m1);};_.getEditMode=K;var L=function(a1){var b1,c1,d1,e1;var f1=a1.targetObject;var g1=(b1=f1.annotations)===null||b1===void 0?void 0:(c1=b1.Measures)===null||c1===void 0?void 0:c1.ISOCurrency;var h1=g1?g1:(d1=f1.annotations)===null||d1===void 0?void 0:(e1=d1.Measures)===null||e1===void 0?void 0:e1.Unit;if(h1){return y(p(r(z(h1)),q(U.IsTotal)));}else{return y(x(true));}};_.hasValidAnalyticalCurrencyOrUnit=L;var N=function(a1,b1,c1){var d1=h(a1)&&a1.$target||a1;var e1=n(d1)||o(d1);if(!e1){return y(c1);}var f1=A(q(c(e1)),q(l(e1)));return y(t(f1,b1,c1));};_.ifUnitEditable=N;var O=function(a1,b1){var c1,d1,e1,f1,g1,h1,i1,j1,k1,l1,m1;if(!a1||typeof a1==="string"){return"Value";}var n1=h(a1)&&a1.$target||a1;var o1=b1&&b1.targetEntityType;var p1=(c1=n1.annotations)===null||c1===void 0?void 0:(d1=c1.Common)===null||d1===void 0?void 0:d1.Text;var q1=typeof p1!=="string"&&(p1===null||p1===void 0?void 0:(e1=p1.annotations)===null||e1===void 0?void 0:(f1=e1.UI)===null||f1===void 0?void 0:(g1=f1.TextArrangement)===null||g1===void 0?void 0:g1.toString())||(o1===null||o1===void 0?void 0:(h1=o1.annotations)===null||h1===void 0?void 0:(i1=h1.UI)===null||i1===void 0?void 0:(j1=i1.TextArrangement)===null||j1===void 0?void 0:j1.toString());var r1=p1?"DescriptionValue":"Value";if(p1&&q1||o1!==null&&o1!==void 0&&(k1=o1.annotations)!==null&&k1!==void 0&&(l1=k1.UI)!==null&&l1!==void 0&&(m1=l1.TextArrangement)!==null&&m1!==void 0&&m1.toString()){if(q1==="UI.TextArrangementType/TextOnly"){r1="Description";}else if(q1==="UI.TextArrangementType/TextLast"){r1="ValueDescription";}else if(q1==="UI.TextArrangementType/TextSeparate"){r1="Value";}else{r1="DescriptionValue";}}return r1;};_.getDisplayMode=O;var Q=function(a1,b1,c1){var d1=h(a1)&&a1.$target||a1;return m(d1)?y(b1):y(t(w(c1,"Editable"),"Value",b1));};_.getFieldDisplay=Q;var R=function(a1,b1){var c1=b1;if(a1._type==="Property"){var d1=H[a1.type];if(d1){var e1,f1;c1.type=d1.type;if(d1.constraints){var g1,h1,i1,j1;c1.constraints={};if(d1.constraints.$Scale&&a1.scale!==undefined){c1.constraints.scale=a1.scale;}if(d1.constraints.$Precision&&a1.precision!==undefined){c1.constraints.precision=a1.precision;}if(d1.constraints.$MaxLength&&a1.maxLength!==undefined){c1.constraints.maxLength=a1.maxLength;}if(d1.constraints.$Nullable&&a1.nullable===false){c1.constraints.nullable=a1.nullable;}if(d1.constraints["@Org.OData.Validation.V1.Minimum/$Decimal"]&&((g1=a1.annotations)===null||g1===void 0?void 0:(h1=g1.Validation)===null||h1===void 0?void 0:h1.Minimum)!==undefined&&!isNaN(a1.annotations.Validation.Minimum)){c1.constraints.minimum="".concat(a1.annotations.Validation.Minimum);}if(d1.constraints["@Org.OData.Validation.V1.Maximum/$Decimal"]&&((i1=a1.annotations)===null||i1===void 0?void 0:(j1=i1.Validation)===null||j1===void 0?void 0:j1.Maximum)!==undefined&&!isNaN(a1.annotations.Validation.Maximum)){c1.constraints.maximum="".concat(a1.annotations.Validation.Maximum);}}if((c1===null||c1===void 0?void 0:(e1=c1.type)===null||e1===void 0?void 0:e1.indexOf("sap.ui.model.odata.type.Int"))===0){if(!c1.formatOptions){c1.formatOptions={};}c1.formatOptions=Object.assign(c1.formatOptions,{parseAsString:false,emptyString:""});}if(c1.type==="sap.ui.model.odata.type.String"){var k1,l1,m1;if(!c1.formatOptions){c1.formatOptions={};}c1.formatOptions.parseKeepsEmptyString=true;if((k1=d1.constraints)!==null&&k1!==void 0&&k1["@com.sap.vocabularies.Common.v1.IsDigitSequence"]&&(l1=a1.annotations)!==null&&l1!==void 0&&(m1=l1.Common)!==null&&m1!==void 0&&m1.IsDigitSequence){c1.constraints.isDigitSequence=true;}}if((c1===null||c1===void 0?void 0:(f1=c1.type)===null||f1===void 0?void 0:f1.indexOf("sap.ui.model.odata.type.Double"))===0){if(!c1.formatOptions){c1.formatOptions={};}c1.formatOptions=Object.assign(c1.formatOptions,{parseAsString:false,emptyString:""});}}}return c1;};_.formatWithTypeInformation=R;var S=function(a1,b1){var c1,d1,e1,f1;var g1=H[a1===null||a1===void 0?void 0:a1.type]||(b1?H[b1]:undefined);var h1={type:g1.type,constraints:{},formatOptions:{}};if(f(a1)){var i1,j1,k1,l1,m1,n1,o1,p1,q1,r1,s1,t1,u1,v1,w1,x1,y1;h1.constraints={scale:(i1=g1.constraints)!==null&&i1!==void 0&&i1.$Scale?a1.scale:undefined,precision:(j1=g1.constraints)!==null&&j1!==void 0&&j1.$Precision?a1.precision:undefined,maxLength:(k1=g1.constraints)!==null&&k1!==void 0&&k1.$MaxLength?a1.maxLength:undefined,nullable:(l1=g1.constraints)!==null&&l1!==void 0&&l1.$Nullable?a1.nullable:undefined,minimum:(m1=g1.constraints)!==null&&m1!==void 0&&m1["@Org.OData.Validation.V1.Minimum/$Decimal"]&&!isNaN((n1=a1.annotations)===null||n1===void 0?void 0:(o1=n1.Validation)===null||o1===void 0?void 0:o1.Minimum)?"".concat((p1=a1.annotations)===null||p1===void 0?void 0:(q1=p1.Validation)===null||q1===void 0?void 0:q1.Minimum):undefined,maximum:(r1=g1.constraints)!==null&&r1!==void 0&&r1["@Org.OData.Validation.V1.Maximum/$Decimal"]&&!isNaN((s1=a1.annotations)===null||s1===void 0?void 0:(t1=s1.Validation)===null||t1===void 0?void 0:t1.Maximum)?"".concat((u1=a1.annotations)===null||u1===void 0?void 0:(v1=u1.Validation)===null||v1===void 0?void 0:v1.Maximum):undefined,isDigitSequence:h1.type==="sap.ui.model.odata.type.String"&&(w1=g1.constraints)!==null&&w1!==void 0&&w1["@com.sap.vocabularies.Common.v1.IsDigitSequence"]&&(x1=a1.annotations)!==null&&x1!==void 0&&(y1=x1.Common)!==null&&y1!==void 0&&y1.IsDigitSequence?true:undefined};}h1.formatOptions={parseAsString:(h1===null||h1===void 0?void 0:(c1=h1.type)===null||c1===void 0?void 0:c1.indexOf("sap.ui.model.odata.type.Int"))===0||(h1===null||h1===void 0?void 0:(d1=h1.type)===null||d1===void 0?void 0:d1.indexOf("sap.ui.model.odata.type.Double"))===0?false:undefined,emptyString:(h1===null||h1===void 0?void 0:(e1=h1.type)===null||e1===void 0?void 0:e1.indexOf("sap.ui.model.odata.type.Int"))===0||(h1===null||h1===void 0?void 0:(f1=h1.type)===null||f1===void 0?void 0:f1.indexOf("sap.ui.model.odata.type.Double"))===0?"":undefined,parseKeepsEmptyString:h1.type==="sap.ui.model.odata.type.String"?true:undefined};return h1;};_.getTypeConfig=S;var T=function(a1,b1){var c1,d1,e1,f1,g1;var h1=a1.targetObject;var i1=(c1=h1.annotations)===null||c1===void 0?void 0:(d1=c1.Measures)===null||d1===void 0?void 0:d1.Unit;var j1=g(a1.contextLocation,a1.navigationProperties).map(function(np){return np.name;});b1=R(h1,b1);if(((e1=i1)===null||e1===void 0?void 0:e1.toString())==="%"){return u([b1],v.formatWithPercentage);}var k1=i1?"sap.ui.model.odata.type.Unit":"sap.ui.model.odata.type.Currency";i1=i1?i1:(f1=h1.annotations)===null||f1===void 0?void 0:(g1=f1.Measures)===null||g1===void 0?void 0:g1.ISOCurrency;var l1=i1.$target?R(i1.$target,z(i1,j1)):z(i1,j1);return C([b1,l1],k1);};_.getBindingWithUnitOrCurrency=T;var V=function(a1){var b1=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Begin";var c1=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Begin";return y(t(w(a1,"Display"),b1,c1));};_.getAlignmentExpression=V;var W=function(a1,b1){if(b1&&b1.context){return G(b1.context);}return null;};W.requiresIContext=true;_.getConverterContext=W;var X=function(a1,b1){if(b1&&b1.context){return E(b1.context);}return null;};X.requiresIContext=true;_.getDataModelObjectPath=X;var Y=function(a1){return y(a1);};_.getExpressionBinding=Y;var Z=function(a1){if(a1){var b1=E(a1);return e(b1);}return null;};_.getTargetEntitySet=Z;var $=function(a1){var b1;if((b1=a1.navigationProperties)!==null&&b1!==void 0&&b1.length){var c1=(a1===null||a1===void 0?void 0:a1.navigationProperties.findIndex(function(d1){if(d1.isCollection){var e1,f1;if((e1=a1.contextLocation)!==null&&e1!==void 0&&(f1=e1.navigationProperties)!==null&&f1!==void 0&&f1.length){var g1;return((g1=a1.contextLocation)===null||g1===void 0?void 0:g1.navigationProperties.findIndex(function(h1){return h1.name===d1.name;}))===-1;}return true;}return false;}))>-1;if(c1){return true;}}return false;};_.isCollectionField=$;return _;},false);
5
+ sap.ui.define(["sap/fe/core/converters/MetaModelConverter","sap/fe/core/helpers/BindingExpression","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/templating/PropertyHelper","sap/fe/core/templating/DataModelPathHelper","sap/fe/core/templating/FieldControlHelper","sap/fe/core/formatters/ValueFormatter","sap/fe/core/templating/DisplayModeFormatter"],function(M,B,a,P,D,F,v,b){"use strict";var _={};var i=F.isDisabledExpression;var c=F.isNonEditableExpression;var d=F.isReadOnlyExpression;var g=D.getPathRelativeLocation;var e=D.isPathUpdatable;var f=D.getTargetEntitySetPath;var h=P.isProperty;var j=P.isPathExpression;var k=P.isKey;var l=P.isImmutable;var m=P.isComputed;var n=P.hasValueHelp;var o=P.getAssociatedCurrencyProperty;var p=P.getAssociatedUnitProperty;var U=a.UI;var q=B.or;var r=B.not;var s=B.isTruthy;var t=B.isConstant;var u=B.ifElse;var w=B.formatResult;var x=B.equal;var y=B.constant;var z=B.compileBinding;var A=B.annotationExpression;var C=B.and;var E=B.addTypeInformation;var G=M.getInvolvedDataModelObjects;var H=M.convertMetaModelContext;var I=b.getDisplayMode;_.getDisplayMode=I;var J=b.EDM_TYPE_MAPPING;_.EDM_TYPE_MAPPING=J;var K=function(b1){var c1=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var d1=arguments.length>2?arguments[2]:undefined;var e1=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(!b1||typeof b1==="string"){return z(false);}var f1=true;if(c1!==null){f1=u(c(c1),false,U.IsEditable);}var g1=j(b1)&&b1.$target||b1;var h1=e(d1,b1);var i1=u(q(r(h1),m(g1),k(g1),l(g1),c(g1)),u(q(m(g1),c(g1)),false,U.IsTransientBinding),U.IsEditable);if(e1){return C(i1,f1);}return z(C(i1,f1));};_.getEditableExpression=K;var L=function(b1,c1){var d1=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(!b1||typeof b1==="string"){return z(true);}var e1=true;if(c1!==null){e1=u(i(c1),false,true);}var f1=j(b1)&&b1.$target||b1;var g1=u(i(f1),false,true);if(d1){return C(g1,e1);}return z(C(g1,e1));};_.getEnabledExpression=L;var N=function(b1,c1){var d1=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var e1=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var f1=arguments.length>4&&arguments[4]!==undefined?arguments[4]:null;if(!b1||typeof b1==="string"){return"Display";}var g1=j(b1)&&b1.$target||b1;var h1=K(b1,f1,c1,true);var i1=L(b1,f1,true);var j1=o(g1);var k1=j1||p(g1);var l1="Editable";if(k1){l1=u(q(d(k1),m(k1),d1),"EditableReadOnly","Editable");}var m1=q(d(g1),d(f1));var n1=u(i1,u(h1,l1,u(C(!t(m1)&&m1,U.IsEditable),"ReadOnly","Display")),u(U.IsEditable,"Disabled","Display"));if(e1){return n1;}return z(n1);};_.getEditMode=N;var O=function(b1){var c1,d1,e1,f1;var g1=b1.targetObject;var h1=(c1=g1.annotations)===null||c1===void 0?void 0:(d1=c1.Measures)===null||d1===void 0?void 0:d1.ISOCurrency;var i1=h1?h1:(e1=g1.annotations)===null||e1===void 0?void 0:(f1=e1.Measures)===null||f1===void 0?void 0:f1.Unit;if(i1){return z(q(s(A(i1)),r(U.IsTotal)));}else{return z(y(true));}};_.hasValidAnalyticalCurrencyOrUnit=O;var Q=function(b1,c1,d1){var e1=j(b1)&&b1.$target||b1;var f1=o(e1)||p(e1);if(!f1){return z(d1);}var g1=C(r(d(f1)),r(m(f1)));return z(u(g1,c1,d1));};_.ifUnitEditable=Q;var R=function(b1,c1,d1){var e1=j(b1)&&b1.$target||b1;return n(e1)?z(c1):z(u(x(d1,"Editable"),"Value",c1));};_.getFieldDisplay=R;var S=function(b1,c1){var d1=c1;if(b1._type==="Property"){var e1=J[b1.type];if(e1){var f1,g1;d1.type=e1.type;if(e1.constraints){var h1,i1,j1,k1;d1.constraints={};if(e1.constraints.$Scale&&b1.scale!==undefined){d1.constraints.scale=b1.scale;}if(e1.constraints.$Precision&&b1.precision!==undefined){d1.constraints.precision=b1.precision;}if(e1.constraints.$MaxLength&&b1.maxLength!==undefined){d1.constraints.maxLength=b1.maxLength;}if(e1.constraints.$Nullable&&b1.nullable===false){d1.constraints.nullable=b1.nullable;}if(e1.constraints["@Org.OData.Validation.V1.Minimum/$Decimal"]&&((h1=b1.annotations)===null||h1===void 0?void 0:(i1=h1.Validation)===null||i1===void 0?void 0:i1.Minimum)!==undefined&&!isNaN(b1.annotations.Validation.Minimum)){d1.constraints.minimum="".concat(b1.annotations.Validation.Minimum);}if(e1.constraints["@Org.OData.Validation.V1.Maximum/$Decimal"]&&((j1=b1.annotations)===null||j1===void 0?void 0:(k1=j1.Validation)===null||k1===void 0?void 0:k1.Maximum)!==undefined&&!isNaN(b1.annotations.Validation.Maximum)){d1.constraints.maximum="".concat(b1.annotations.Validation.Maximum);}}if((d1===null||d1===void 0?void 0:(f1=d1.type)===null||f1===void 0?void 0:f1.indexOf("sap.ui.model.odata.type.Int"))===0){if(!d1.formatOptions){d1.formatOptions={};}d1.formatOptions=Object.assign(d1.formatOptions,{parseAsString:false,emptyString:""});}if(d1.type==="sap.ui.model.odata.type.String"){var l1,m1,n1;if(!d1.formatOptions){d1.formatOptions={};}d1.formatOptions.parseKeepsEmptyString=true;if((l1=e1.constraints)!==null&&l1!==void 0&&l1["@com.sap.vocabularies.Common.v1.IsDigitSequence"]&&(m1=b1.annotations)!==null&&m1!==void 0&&(n1=m1.Common)!==null&&n1!==void 0&&n1.IsDigitSequence){d1.constraints.isDigitSequence=true;}}if((d1===null||d1===void 0?void 0:(g1=d1.type)===null||g1===void 0?void 0:g1.indexOf("sap.ui.model.odata.type.Double"))===0){if(!d1.formatOptions){d1.formatOptions={};}d1.formatOptions=Object.assign(d1.formatOptions,{parseAsString:false,emptyString:""});}}}return d1;};_.formatWithTypeInformation=S;var T=function(b1,c1){var d1,e1,f1,g1;var h1=J[b1===null||b1===void 0?void 0:b1.type]||(c1?J[c1]:undefined);var i1={type:h1.type,constraints:{},formatOptions:{}};if(h(b1)){var j1,k1,l1,m1,n1,o1,p1,q1,r1,s1,t1,u1,v1,w1,x1,y1,z1;i1.constraints={scale:(j1=h1.constraints)!==null&&j1!==void 0&&j1.$Scale?b1.scale:undefined,precision:(k1=h1.constraints)!==null&&k1!==void 0&&k1.$Precision?b1.precision:undefined,maxLength:(l1=h1.constraints)!==null&&l1!==void 0&&l1.$MaxLength?b1.maxLength:undefined,nullable:(m1=h1.constraints)!==null&&m1!==void 0&&m1.$Nullable?b1.nullable:undefined,minimum:(n1=h1.constraints)!==null&&n1!==void 0&&n1["@Org.OData.Validation.V1.Minimum/$Decimal"]&&!isNaN((o1=b1.annotations)===null||o1===void 0?void 0:(p1=o1.Validation)===null||p1===void 0?void 0:p1.Minimum)?"".concat((q1=b1.annotations)===null||q1===void 0?void 0:(r1=q1.Validation)===null||r1===void 0?void 0:r1.Minimum):undefined,maximum:(s1=h1.constraints)!==null&&s1!==void 0&&s1["@Org.OData.Validation.V1.Maximum/$Decimal"]&&!isNaN((t1=b1.annotations)===null||t1===void 0?void 0:(u1=t1.Validation)===null||u1===void 0?void 0:u1.Maximum)?"".concat((v1=b1.annotations)===null||v1===void 0?void 0:(w1=v1.Validation)===null||w1===void 0?void 0:w1.Maximum):undefined,isDigitSequence:i1.type==="sap.ui.model.odata.type.String"&&(x1=h1.constraints)!==null&&x1!==void 0&&x1["@com.sap.vocabularies.Common.v1.IsDigitSequence"]&&(y1=b1.annotations)!==null&&y1!==void 0&&(z1=y1.Common)!==null&&z1!==void 0&&z1.IsDigitSequence?true:undefined};}i1.formatOptions={parseAsString:(i1===null||i1===void 0?void 0:(d1=i1.type)===null||d1===void 0?void 0:d1.indexOf("sap.ui.model.odata.type.Int"))===0||(i1===null||i1===void 0?void 0:(e1=i1.type)===null||e1===void 0?void 0:e1.indexOf("sap.ui.model.odata.type.Double"))===0?false:undefined,emptyString:(i1===null||i1===void 0?void 0:(f1=i1.type)===null||f1===void 0?void 0:f1.indexOf("sap.ui.model.odata.type.Int"))===0||(i1===null||i1===void 0?void 0:(g1=i1.type)===null||g1===void 0?void 0:g1.indexOf("sap.ui.model.odata.type.Double"))===0?"":undefined,parseKeepsEmptyString:i1.type==="sap.ui.model.odata.type.String"?true:undefined};return i1;};_.getTypeConfig=T;var V=function(b1,c1){var d1,e1,f1,g1,h1;var i1=b1.targetObject;var j1=(d1=i1.annotations)===null||d1===void 0?void 0:(e1=d1.Measures)===null||e1===void 0?void 0:e1.Unit;var k1=g(b1.contextLocation,b1.navigationProperties).map(function(np){return np.name;});c1=S(i1,c1);if(((f1=j1)===null||f1===void 0?void 0:f1.toString())==="%"){return w([c1],v.formatWithPercentage);}var l1=j1?"sap.ui.model.odata.type.Unit":"sap.ui.model.odata.type.Currency";j1=j1?j1:(g1=i1.annotations)===null||g1===void 0?void 0:(h1=g1.Measures)===null||h1===void 0?void 0:h1.ISOCurrency;var m1=j1.$target?S(j1.$target,A(j1,k1)):A(j1,k1);return E([c1,m1],l1);};_.getBindingWithUnitOrCurrency=V;var W=function(b1){var c1=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"Begin";var d1=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Begin";return z(u(x(b1,"Display"),c1,d1));};_.getAlignmentExpression=W;var X=function(b1,c1){if(c1&&c1.context){return H(c1.context);}return null;};X.requiresIContext=true;_.getConverterContext=X;var Y=function(b1,c1){if(c1&&c1.context){return G(c1.context);}return null;};Y.requiresIContext=true;_.getDataModelObjectPath=Y;var Z=function(b1){return z(b1);};_.getExpressionBinding=Z;var $=function(b1){if(b1){var c1=G(b1);return f(c1);}return null;};_.getTargetEntitySet=$;var a1=function(b1){var c1;if((c1=b1.navigationProperties)!==null&&c1!==void 0&&c1.length){var d1=(b1===null||b1===void 0?void 0:b1.navigationProperties.findIndex(function(e1){if(e1.isCollection){var f1,g1;if((f1=b1.contextLocation)!==null&&f1!==void 0&&(g1=f1.navigationProperties)!==null&&g1!==void 0&&g1.length){var h1;return((h1=b1.contextLocation)===null||h1===void 0?void 0:h1.navigationProperties.findIndex(function(i1){return i1.name===e1.name;}))===-1;}return true;}return false;}))>-1;if(d1){return true;}}return false;};_.isCollectionField=a1;return _;},false);
@@ -40,6 +40,12 @@ import {
40
40
  import { isReadOnlyExpression, isNonEditableExpression, isDisabledExpression } from "sap/fe/core/templating/FieldControlHelper";
41
41
  import valueFormatters from "sap/fe/core/formatters/ValueFormatter";
42
42
  import { DataFieldAbstractTypes } from "@sap-ux/vocabularies-types";
43
+ import * as DisplayModeFormatter from "sap/fe/core/templating/DisplayModeFormatter";
44
+
45
+ // Import-export method used by the converter to use them in the templating through the UIFormatters.
46
+ export type DisplayMode = DisplayModeFormatter.DisplayMode;
47
+ export const getDisplayMode = DisplayModeFormatter.getDisplayMode;
48
+ export const EDM_TYPE_MAPPING = DisplayModeFormatter.EDM_TYPE_MAPPING;
43
49
 
44
50
  export type PropertyOrPath<P> = string | P | PathAnnotationExpression<P>;
45
51
  export type MetaModelContext = {
@@ -73,51 +79,6 @@ export type configType = {
73
79
  formatOptions: configTypeformatOptions;
74
80
  };
75
81
 
76
- export const EDM_TYPE_MAPPING: Record<string, any> = {
77
- "Edm.Boolean": { type: "sap.ui.model.odata.type.Boolean" },
78
- "Edm.Byte": { type: "sap.ui.model.odata.type.Byte" },
79
- "Edm.Date": { type: "sap.ui.model.odata.type.Date" },
80
- "Edm.DateTimeOffset": {
81
- constraints: {
82
- "$Precision": "precision"
83
- },
84
- type: "sap.ui.model.odata.type.DateTimeOffset"
85
- },
86
- "Edm.Decimal": {
87
- constraints: {
88
- "@Org.OData.Validation.V1.Minimum/$Decimal": "minimum",
89
- "@Org.OData.Validation.V1.Minimum@Org.OData.Validation.V1.Exclusive": "minimumExclusive",
90
- "@Org.OData.Validation.V1.Maximum/$Decimal": "maximum",
91
- "@Org.OData.Validation.V1.Maximum@Org.OData.Validation.V1.Exclusive": "maximumExclusive",
92
- "$Precision": "precision",
93
- "$Scale": "scale"
94
- },
95
- type: "sap.ui.model.odata.type.Decimal"
96
- },
97
- "Edm.Double": { type: "sap.ui.model.odata.type.Double" },
98
- "Edm.Guid": { type: "sap.ui.model.odata.type.Guid" },
99
- "Edm.Int16": { type: "sap.ui.model.odata.type.Int16" },
100
- "Edm.Int32": { type: "sap.ui.model.odata.type.Int32" },
101
- "Edm.Int64": { type: "sap.ui.model.odata.type.Int64" },
102
- "Edm.SByte": { type: "sap.ui.model.odata.type.SByte" },
103
- "Edm.Single": { type: "sap.ui.model.odata.type.Single" },
104
- "Edm.Stream": { type: "sap.ui.model.odata.type.Stream" },
105
- "Edm.String": {
106
- constraints: {
107
- "@com.sap.vocabularies.Common.v1.IsDigitSequence": "isDigitSequence",
108
- "$MaxLength": "maxLength",
109
- "$Nullable": "nullable"
110
- },
111
- type: "sap.ui.model.odata.type.String"
112
- },
113
- "Edm.TimeOfDay": {
114
- constraints: {
115
- "$Precision": "precision"
116
- },
117
- type: "sap.ui.model.odata.type.TimeOfDay"
118
- }
119
- };
120
-
121
82
  /**
122
83
  * Create the expression to generate an "editable" boolean value.
123
84
  *
@@ -289,34 +250,6 @@ export const ifUnitEditable = function(
289
250
  return compileBinding(ifElse(editableExpression, sEditableValue, sNonEditableValue));
290
251
  };
291
252
 
292
- export type DisplayMode = "Value" | "Description" | "DescriptionValue" | "ValueDescription";
293
- export const getDisplayMode = function(oPropertyPath: PropertyOrPath<Property>, oDataModelObjectPath?: DataModelObjectPath): DisplayMode {
294
- if (!oPropertyPath || typeof oPropertyPath === "string") {
295
- return "Value";
296
- }
297
- const oProperty = (isPathExpression(oPropertyPath) && oPropertyPath.$target) || (oPropertyPath as Property);
298
- const oEntityType = oDataModelObjectPath && oDataModelObjectPath.targetEntityType;
299
- const oTextAnnotation = oProperty.annotations?.Common?.Text;
300
- const oTextArrangementAnnotation =
301
- (typeof oTextAnnotation !== "string" && oTextAnnotation?.annotations?.UI?.TextArrangement?.toString()) ||
302
- oEntityType?.annotations?.UI?.TextArrangement?.toString();
303
-
304
- let sDisplayValue = oTextAnnotation ? "DescriptionValue" : "Value";
305
- if ((oTextAnnotation && oTextArrangementAnnotation) || oEntityType?.annotations?.UI?.TextArrangement?.toString()) {
306
- if (oTextArrangementAnnotation === "UI.TextArrangementType/TextOnly") {
307
- sDisplayValue = "Description";
308
- } else if (oTextArrangementAnnotation === "UI.TextArrangementType/TextLast") {
309
- sDisplayValue = "ValueDescription";
310
- } else if (oTextArrangementAnnotation === "UI.TextArrangementType/TextSeparate") {
311
- sDisplayValue = "Value";
312
- } else {
313
- //Default should be TextFirst if there is a Text annotation and neither TextOnly nor TextLast are set
314
- sDisplayValue = "DescriptionValue";
315
- }
316
- }
317
- return sDisplayValue as DisplayMode;
318
- };
319
-
320
253
  export const getFieldDisplay = function(
321
254
  oPropertyPath: PropertyOrPath<Property>,
322
255
  sTargetDisplayMode: string,