@sapui5/sap.fe.core 1.97.0 → 1.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/package.json +7 -4
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AnnotationHelper.js +309 -405
  4. package/src/sap/fe/core/AnnotationHelper.ts +315 -0
  5. package/src/sap/fe/core/AppComponent.js +389 -397
  6. package/src/sap/fe/core/AppComponent.ts +403 -0
  7. package/src/sap/fe/core/AppStateHandler.js +198 -181
  8. package/src/sap/fe/core/AppStateHandler.ts +171 -0
  9. package/src/sap/fe/core/BaseController.js +83 -58
  10. package/src/sap/fe/core/BaseController.ts +68 -0
  11. package/src/sap/fe/core/BusyLocker.js +105 -121
  12. package/src/sap/fe/core/BusyLocker.ts +98 -0
  13. package/src/sap/fe/core/CommonUtils.js +2164 -2379
  14. package/src/sap/fe/core/CommonUtils.ts +2177 -0
  15. package/src/sap/fe/core/ExtensionAPI.js +279 -266
  16. package/src/sap/fe/core/ExtensionAPI.ts +250 -0
  17. package/src/sap/fe/core/PageController.js +218 -125
  18. package/src/sap/fe/core/PageController.ts +129 -0
  19. package/src/sap/fe/core/RouterProxy.js +924 -807
  20. package/src/sap/fe/core/RouterProxy.ts +840 -0
  21. package/src/sap/fe/core/Synchronization.js +41 -35
  22. package/src/sap/fe/core/Synchronization.ts +29 -0
  23. package/src/sap/fe/core/TemplateComponent.js +173 -155
  24. package/src/sap/fe/core/TemplateComponent.ts +173 -0
  25. package/src/sap/fe/core/TemplateModel.js +79 -54
  26. package/src/sap/fe/core/TemplateModel.ts +63 -0
  27. package/src/sap/fe/core/TransactionHelper.js +1560 -1579
  28. package/src/sap/fe/core/TransactionHelper.ts +1717 -0
  29. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
  30. package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
  31. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
  32. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
  33. package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
  34. package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
  35. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
  36. package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  37. package/src/sap/fe/core/actions/draft.js +521 -581
  38. package/src/sap/fe/core/actions/draft.ts +566 -0
  39. package/src/sap/fe/core/actions/messageHandling.js +564 -511
  40. package/src/sap/fe/core/actions/messageHandling.ts +552 -0
  41. package/src/sap/fe/core/actions/nonDraft.js +17 -19
  42. package/src/sap/fe/core/actions/nonDraft.ts +12 -0
  43. package/src/sap/fe/core/actions/operations.js +1093 -1211
  44. package/src/sap/fe/core/actions/operations.ts +1192 -0
  45. package/src/sap/fe/core/actions/sticky.js +114 -104
  46. package/src/sap/fe/core/actions/sticky.ts +119 -0
  47. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +70 -66
  48. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
  49. package/src/sap/fe/core/controllerextensions/EditFlow.js +1594 -1701
  50. package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
  51. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +80 -54
  52. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
  53. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +719 -505
  54. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
  55. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +797 -813
  56. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
  57. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1005 -973
  58. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
  59. package/src/sap/fe/core/controllerextensions/KPIManagement.js +530 -476
  60. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +137 -46
  61. package/src/sap/fe/core/controllerextensions/MassEdit.js +144 -0
  62. package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
  63. package/src/sap/fe/core/controllerextensions/MessageHandler.js +234 -232
  64. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
  65. package/src/sap/fe/core/controllerextensions/PageReady.js +302 -337
  66. package/src/sap/fe/core/controllerextensions/PageReady.ts +23 -17
  67. package/src/sap/fe/core/controllerextensions/Paginator.js +189 -148
  68. package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
  69. package/src/sap/fe/core/controllerextensions/Placeholder.js +158 -146
  70. package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
  71. package/src/sap/fe/core/controllerextensions/Routing.js +145 -106
  72. package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
  73. package/src/sap/fe/core/controllerextensions/RoutingListener.js +8 -6
  74. package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  75. package/src/sap/fe/core/controllerextensions/Share.js +220 -244
  76. package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  77. package/src/sap/fe/core/controllerextensions/SideEffects.js +593 -634
  78. package/src/sap/fe/core/controllerextensions/SideEffects.ts +29 -27
  79. package/src/sap/fe/core/controllerextensions/ViewState.js +789 -806
  80. package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
  81. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -3
  82. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  83. package/src/sap/fe/core/controls/CommandExecution.js +68 -66
  84. package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  85. package/src/sap/fe/core/controls/ConditionalWrapper.js +91 -75
  86. package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
  87. package/src/sap/fe/core/controls/CustomQuickViewPage.js +131 -125
  88. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
  89. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +105 -110
  90. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
  91. package/src/sap/fe/core/controls/FieldWrapper.js +122 -140
  92. package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
  93. package/src/sap/fe/core/controls/FilterBar.js +163 -159
  94. package/src/sap/fe/core/controls/FilterBar.ts +143 -0
  95. package/src/sap/fe/core/controls/FormElementWrapper.js +46 -44
  96. package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
  97. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +38 -42
  98. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  99. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +2 -1
  100. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +127 -116
  101. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
  102. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -255
  103. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
  104. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +151 -141
  105. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  106. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +336 -322
  107. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  108. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +106 -0
  109. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +79 -0
  110. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
  111. package/src/sap/fe/core/converters/ConverterContext.js +348 -367
  112. package/src/sap/fe/core/converters/ConverterContext.ts +33 -19
  113. package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
  114. package/src/sap/fe/core/converters/ManifestSettings.ts +16 -1
  115. package/src/sap/fe/core/converters/ManifestWrapper.js +354 -354
  116. package/src/sap/fe/core/converters/ManifestWrapper.ts +34 -6
  117. package/src/sap/fe/core/converters/MetaModelConverter.js +72 -9
  118. package/src/sap/fe/core/converters/MetaModelConverter.ts +75 -16
  119. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  120. package/src/sap/fe/core/converters/TemplateConverter.ts +4 -3
  121. package/src/sap/fe/core/converters/annotations/DataField.js +28 -14
  122. package/src/sap/fe/core/converters/annotations/DataField.ts +38 -14
  123. package/src/sap/fe/core/converters/common/AnnotationConverter.js +33 -21
  124. package/src/sap/fe/core/converters/controls/Common/Action.js +11 -2
  125. package/src/sap/fe/core/converters/controls/Common/Action.ts +8 -2
  126. package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
  127. package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
  128. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
  129. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
  130. package/src/sap/fe/core/converters/controls/Common/Form.js +21 -11
  131. package/src/sap/fe/core/converters/controls/Common/Form.ts +28 -6
  132. package/src/sap/fe/core/converters/controls/Common/KPI.js +69 -4
  133. package/src/sap/fe/core/converters/controls/Common/KPI.ts +75 -2
  134. package/src/sap/fe/core/converters/controls/Common/Table.js +507 -408
  135. package/src/sap/fe/core/converters/controls/Common/Table.ts +618 -500
  136. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +592 -0
  137. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +718 -0
  138. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +465 -59
  139. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +462 -72
  140. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +2 -2
  141. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
  142. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -9
  143. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +24 -9
  144. package/src/sap/fe/core/converters/helpers/Aggregation.js +118 -121
  145. package/src/sap/fe/core/converters/helpers/Aggregation.ts +28 -5
  146. package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
  147. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  148. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
  149. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  150. package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -1
  151. package/src/sap/fe/core/converters/helpers/IssueManager.ts +6 -0
  152. package/src/sap/fe/core/converters/helpers/Key.js +42 -57
  153. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  154. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +28 -7
  155. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +23 -6
  156. package/src/sap/fe/core/converters/templates/ListReportConverter.js +20 -7
  157. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +36 -14
  158. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
  159. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
  160. package/src/sap/fe/core/designtime/AppComponent.designtime.js +93 -90
  161. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  162. package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
  163. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  164. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  165. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
  166. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  167. package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
  168. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  169. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
  170. package/src/sap/fe/core/formatters/TableFormatter.js +91 -29
  171. package/src/sap/fe/core/formatters/TableFormatter.ts +94 -28
  172. package/src/sap/fe/core/formatters/ValueFormatter.js +30 -5
  173. package/src/sap/fe/core/formatters/ValueFormatter.ts +30 -7
  174. package/src/sap/fe/core/fpm/Component.js +51 -54
  175. package/src/sap/fe/core/fpm/Component.ts +48 -0
  176. package/src/sap/fe/core/helpers/AppStartupHelper.js +373 -0
  177. package/src/sap/fe/core/helpers/AppStartupHelper.ts +417 -0
  178. package/src/sap/fe/core/helpers/BindingExpression.js +489 -442
  179. package/src/sap/fe/core/helpers/BindingExpression.ts +486 -469
  180. package/src/sap/fe/core/helpers/ClassSupport.js +212 -76
  181. package/src/sap/fe/core/helpers/ClassSupport.ts +198 -71
  182. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +64 -59
  183. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +52 -0
  184. package/src/sap/fe/core/helpers/EditState.js +81 -84
  185. package/src/sap/fe/core/helpers/EditState.ts +81 -0
  186. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
  187. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
  188. package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
  189. package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
  190. package/src/sap/fe/core/helpers/KeepAliveHelper.js +4 -5
  191. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +10 -10
  192. package/src/sap/fe/core/helpers/MassEditHelper.js +604 -0
  193. package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
  194. package/src/sap/fe/core/helpers/ModelHelper.js +253 -225
  195. package/src/sap/fe/core/helpers/ModelHelper.ts +250 -0
  196. package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
  197. package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
  198. package/src/sap/fe/core/helpers/SemanticDateOperators.js +336 -313
  199. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +334 -0
  200. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
  201. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
  202. package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
  203. package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
  204. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  205. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
  206. package/src/sap/fe/core/library.js +427 -425
  207. package/src/sap/fe/core/library.support.js +23 -27
  208. package/src/sap/fe/core/library.support.ts +23 -0
  209. package/src/sap/fe/core/library.ts +420 -0
  210. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +64 -0
  211. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +69 -0
  212. package/src/sap/fe/core/messagebundle.properties +78 -13
  213. package/src/sap/fe/core/messagebundle_ar.properties +58 -7
  214. package/src/sap/fe/core/messagebundle_bg.properties +58 -7
  215. package/src/sap/fe/core/messagebundle_ca.properties +58 -7
  216. package/src/sap/fe/core/messagebundle_cs.properties +59 -8
  217. package/src/sap/fe/core/messagebundle_cy.properties +58 -7
  218. package/src/sap/fe/core/messagebundle_da.properties +58 -7
  219. package/src/sap/fe/core/messagebundle_de.properties +58 -7
  220. package/src/sap/fe/core/messagebundle_el.properties +58 -7
  221. package/src/sap/fe/core/messagebundle_en.properties +57 -6
  222. package/src/sap/fe/core/messagebundle_en_GB.properties +57 -6
  223. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +61 -6
  224. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +58 -7
  225. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +58 -7
  226. package/src/sap/fe/core/messagebundle_es.properties +58 -7
  227. package/src/sap/fe/core/messagebundle_es_MX.properties +58 -7
  228. package/src/sap/fe/core/messagebundle_et.properties +58 -7
  229. package/src/sap/fe/core/messagebundle_fi.properties +60 -9
  230. package/src/sap/fe/core/messagebundle_fr.properties +64 -13
  231. package/src/sap/fe/core/messagebundle_fr_CA.properties +59 -8
  232. package/src/sap/fe/core/messagebundle_hi.properties +58 -7
  233. package/src/sap/fe/core/messagebundle_hr.properties +58 -7
  234. package/src/sap/fe/core/messagebundle_hu.properties +59 -8
  235. package/src/sap/fe/core/messagebundle_id.properties +61 -10
  236. package/src/sap/fe/core/messagebundle_it.properties +58 -7
  237. package/src/sap/fe/core/messagebundle_iw.properties +58 -7
  238. package/src/sap/fe/core/messagebundle_ja.properties +58 -7
  239. package/src/sap/fe/core/messagebundle_kk.properties +58 -7
  240. package/src/sap/fe/core/messagebundle_ko.properties +58 -7
  241. package/src/sap/fe/core/messagebundle_lt.properties +58 -7
  242. package/src/sap/fe/core/messagebundle_lv.properties +59 -8
  243. package/src/sap/fe/core/messagebundle_ms.properties +58 -7
  244. package/src/sap/fe/core/messagebundle_nl.properties +58 -7
  245. package/src/sap/fe/core/messagebundle_no.properties +58 -7
  246. package/src/sap/fe/core/messagebundle_pl.properties +58 -7
  247. package/src/sap/fe/core/messagebundle_pt.properties +59 -8
  248. package/src/sap/fe/core/messagebundle_pt_PT.properties +58 -7
  249. package/src/sap/fe/core/messagebundle_ro.properties +58 -7
  250. package/src/sap/fe/core/messagebundle_ru.properties +58 -7
  251. package/src/sap/fe/core/messagebundle_sh.properties +58 -7
  252. package/src/sap/fe/core/messagebundle_sk.properties +58 -7
  253. package/src/sap/fe/core/messagebundle_sl.properties +58 -7
  254. package/src/sap/fe/core/messagebundle_sv.properties +59 -8
  255. package/src/sap/fe/core/messagebundle_th.properties +58 -7
  256. package/src/sap/fe/core/messagebundle_tr.properties +60 -9
  257. package/src/sap/fe/core/messagebundle_uk.properties +58 -7
  258. package/src/sap/fe/core/messagebundle_vi.properties +58 -7
  259. package/src/sap/fe/core/messagebundle_zh_CN.properties +58 -7
  260. package/src/sap/fe/core/messagebundle_zh_TW.properties +58 -7
  261. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
  262. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  263. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +231 -202
  264. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
  265. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +67 -92
  266. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +10 -6
  267. package/src/sap/fe/core/services/NavigationServiceFactory.js +351 -300
  268. package/src/sap/fe/core/services/NavigationServiceFactory.ts +313 -0
  269. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +114 -81
  270. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +83 -0
  271. package/src/sap/fe/core/services/RoutingServiceFactory.js +927 -1152
  272. package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
  273. package/src/sap/fe/core/services/ShellServicesFactory.js +649 -707
  274. package/src/sap/fe/core/services/ShellServicesFactory.ts +52 -15
  275. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +569 -637
  276. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +78 -102
  277. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +429 -478
  278. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +460 -0
  279. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
  280. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
  281. package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
  282. package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
  283. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
  284. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
  285. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  286. package/src/sap/fe/core/support/CommonHelper.ts +1 -1
  287. package/src/sap/fe/core/support/Diagnostics.js +36 -48
  288. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
  289. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
  290. package/src/sap/fe/core/templating/DataModelPathHelper.js +97 -127
  291. package/src/sap/fe/core/templating/DataModelPathHelper.ts +112 -135
  292. package/src/sap/fe/core/templating/DisplayModeFormatter.js +114 -0
  293. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
  294. package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
  295. package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
  296. package/src/sap/fe/core/templating/FilterHelper.js +140 -78
  297. package/src/sap/fe/core/templating/FilterHelper.ts +149 -78
  298. package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
  299. package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
  300. package/src/sap/fe/core/templating/UIFormatters.js +76 -135
  301. package/src/sap/fe/core/templating/UIFormatters.ts +76 -99
  302. package/src/sap/fe/core/type/Email.js +1 -1
  303. package/src/sap/fe/core/type/Email.ts +4 -6
  304. package/ui5.yaml +0 -3
  305. package/src/sap/fe/core/controls/filterbar.d.js +0 -8
  306. package/src/sap/fe/core/controls/filterbar.d.ts +0 -0
@@ -1,6 +1,5 @@
1
- import { ManagedObject } from "sap/ui/base";
1
+ import ManagedObject from "sap/ui/base/ManagedObject";
2
2
  import { MessageType } from "sap/fe/core/formatters/TableFormatterTypes";
3
-
4
3
  const getMessagetypeOrder = function(messageType: string): number {
5
4
  switch (messageType) {
6
5
  case "Error":
@@ -16,6 +15,55 @@ const getMessagetypeOrder = function(messageType: string): number {
16
15
  }
17
16
  };
18
17
 
18
+ /**
19
+ * Gets the validity of creation row fields.
20
+ *
21
+ * @function
22
+ * @name validateCreationRowFields
23
+ * @param {object} fieldValidityObject Object holding the fields
24
+ * @returns {boolean} `true` if all the fields in the creation row are valid, `false` otherwise
25
+ */
26
+ const validateCreationRowFields = function(fieldValidityObject?: any) {
27
+ if (!fieldValidityObject) {
28
+ return false;
29
+ }
30
+ const fieldKeys = Object.keys(fieldValidityObject);
31
+ return (
32
+ fieldKeys.length > 0 &&
33
+ fieldKeys.every(function(key) {
34
+ return fieldValidityObject[key]["validity"];
35
+ })
36
+ );
37
+ };
38
+ validateCreationRowFields.__functionName = "sap.fe.core.formatters.TableFormatter#validateCreationRowFields";
39
+
40
+ /**
41
+ * @param {object} this The context.
42
+ * @param {string} semanticKeyHasDraftIndicator The draft indicator property name.
43
+ * @param {Array} aFilteredMessages Array of messages.
44
+ * @returns {boolean} The value for Object Status visibility property.
45
+ */
46
+ const getErrorStatusTextVisibilityFormatter = function(
47
+ this: ManagedObject | any,
48
+ semanticKeyHasDraftIndicator: string,
49
+ aFilteredMessages: any
50
+ ) {
51
+ let bStatusVisibility = false;
52
+ const aSemanticKeyColumns = this.getParent().getAggregation("items");
53
+ const sColumnProperty = aSemanticKeyColumns[0]!.getBinding("title")?.getPath();
54
+ if (aFilteredMessages && aFilteredMessages.length > 0 && sColumnProperty === semanticKeyHasDraftIndicator) {
55
+ const sCurrentContextPath = this.getBindingContext() ? this.getBindingContext().getPath() : undefined;
56
+ aFilteredMessages.forEach((oMessage: any) => {
57
+ if (oMessage.type === "Error" && oMessage.aTargets[0].indexOf(sCurrentContextPath) === 0) {
58
+ bStatusVisibility = true;
59
+ return bStatusVisibility;
60
+ }
61
+ });
62
+ }
63
+ return bStatusVisibility;
64
+ };
65
+ getErrorStatusTextVisibilityFormatter.__functionName = "sap.fe.core.formatters.TableFormatter#getErrorStatusTextVisibilityFormatter";
66
+
19
67
  /**
20
68
  * rowHighlighting
21
69
  *
@@ -26,10 +74,20 @@ const getMessagetypeOrder = function(messageType: string): number {
26
74
  * @returns {object} The value from the inner function
27
75
  */
28
76
 
29
- const rowHighlighting = function(this: ManagedObject, criticalityValue: string | number, aFilteredMessages: any[]): MessageType {
77
+ const rowHighlighting = function(
78
+ this: ManagedObject,
79
+ criticalityValue: string | number,
80
+ aFilteredMessages: any[],
81
+ hasActiveEntity: boolean,
82
+ isActiveEntity: boolean,
83
+ isDraftRoot: string,
84
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
85
+ ...args: any[]
86
+ ): MessageType {
87
+ const isNewObject = !hasActiveEntity && !isActiveEntity;
30
88
  let iHighestCriticalityValue: number = -1;
31
- if (aFilteredMessages) {
32
- const sCurrentContextPath = this.getBindingContext() ? this.getBindingContext().getPath() : undefined;
89
+ if (aFilteredMessages && aFilteredMessages.length > 0) {
90
+ const sCurrentContextPath = this.getBindingContext()?.getPath();
33
91
  aFilteredMessages.forEach((oMessage: any) => {
34
92
  if (oMessage.aTargets[0].indexOf(sCurrentContextPath) === 0 && iHighestCriticalityValue < getMessagetypeOrder(oMessage.type)) {
35
93
  iHighestCriticalityValue = getMessagetypeOrder(oMessage.type);
@@ -37,35 +95,41 @@ const rowHighlighting = function(this: ManagedObject, criticalityValue: string |
37
95
  }
38
96
  });
39
97
  }
40
-
41
- let criticalityProperty;
42
- if (typeof criticalityValue === "string") {
43
- return (criticalityValue as unknown) as MessageType;
44
- }
45
- switch (criticalityValue) {
46
- case 1:
47
- criticalityProperty = MessageType.Error;
48
- break;
49
- case 2:
50
- criticalityProperty = MessageType.Warning;
51
- break;
52
- case 3:
53
- criticalityProperty = MessageType.Success;
54
- break;
55
- case 5:
56
- criticalityProperty = MessageType.Information;
57
- break;
58
- default:
59
- criticalityProperty = MessageType.None;
98
+ if (typeof criticalityValue !== "string") {
99
+ switch (criticalityValue) {
100
+ case 1:
101
+ criticalityValue = MessageType.Error;
102
+ break;
103
+ case 2:
104
+ criticalityValue = MessageType.Warning;
105
+ break;
106
+ case 3:
107
+ criticalityValue = MessageType.Success;
108
+ break;
109
+ case 5:
110
+ criticalityValue = MessageType.Information;
111
+ break;
112
+ default:
113
+ criticalityValue = MessageType.None;
114
+ }
60
115
  }
61
116
 
62
- return criticalityProperty;
117
+ if (criticalityValue === MessageType.None) {
118
+ if (isDraftRoot === "true" && isNewObject) {
119
+ return MessageType.Information;
120
+ } else {
121
+ return MessageType.None;
122
+ }
123
+ } else {
124
+ return criticalityValue as MessageType;
125
+ }
63
126
  };
64
127
  rowHighlighting.__functionName = "sap.fe.core.formatters.TableFormatter#rowHighlighting";
65
128
 
66
129
  const navigatedRow = function(this: ManagedObject, sDeepestPath: string) {
67
- if (this.getBindingContext() && sDeepestPath) {
68
- return sDeepestPath.indexOf(this.getBindingContext().getPath()) === 0;
130
+ const sPath = this.getBindingContext()?.getPath();
131
+ if (sPath && sDeepestPath) {
132
+ return sDeepestPath.indexOf(sPath) === 0;
69
133
  } else {
70
134
  return false;
71
135
  }
@@ -89,8 +153,10 @@ const tableFormatters = function(this: object, sName: string, ...oArgs: any[]):
89
153
  }
90
154
  };
91
155
 
156
+ tableFormatters.validateCreationRowFields = validateCreationRowFields;
92
157
  tableFormatters.rowHighlighting = rowHighlighting;
93
158
  tableFormatters.navigatedRow = navigatedRow;
159
+ tableFormatters.getErrorStatusTextVisibilityFormatter = getErrorStatusTextVisibilityFormatter;
94
160
  /**
95
161
  * @global
96
162
  */
@@ -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([], function () {
5
+ sap.ui.define(["sap/ui/core/format/DateFormat"], function (DateFormat) {
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
@@ -51,17 +51,17 @@ sap.ui.define([], function () {
51
51
  if (sUnit === "%") {
52
52
  if (iValue > 100) {
53
53
  sPercentString = "100";
54
- } else if (iValue < 0) {
54
+ } else if (iValue <= 0) {
55
55
  sPercentString = "0";
56
56
  } else {
57
57
  sPercentString = typeof value === "string" ? value : value === null || value === void 0 ? void 0 : value.toString();
58
58
  }
59
59
  } else if (iValue > iTarget) {
60
60
  sPercentString = "100";
61
- } else if (iValue < 0) {
61
+ } else if (iValue <= 0) {
62
62
  sPercentString = "0";
63
63
  } else {
64
- sPercentString = iValue && iTarget ? (iValue / iTarget * 100).toString() : "";
64
+ sPercentString = iValue && iTarget ? (iValue / iTarget * 100).toString() : "0";
65
65
  }
66
66
 
67
67
  return sPercentString;
@@ -146,6 +146,30 @@ sap.ui.define([], function () {
146
146
 
147
147
  formatCriticalityColorMicroChart.__functionName = "sap.fe.core.formatters.ValueFormatter#formatCriticalityColorMicroChart";
148
148
  _exports.formatCriticalityColorMicroChart = formatCriticalityColorMicroChart;
149
+
150
+ var formatProgressIndicatorText = function (value, target, unit) {
151
+ if (value && target && unit) {
152
+ var _localeData$dateField, _localeData$units, _localeData$units$sho;
153
+
154
+ var unitSplit = unit.split("-");
155
+ var searchUnit = (unitSplit[1] === undefined ? unit : unitSplit[1]) + "-narrow";
156
+ var dateFormat = DateFormat.getDateInstance();
157
+ var localeData = dateFormat.oLocaleData.mData;
158
+ var oResourceModel = sap.ui.getCore().getLibraryResourceBundle("sap.fe.macros");
159
+ var unitDisplayed = unit;
160
+
161
+ if (localeData !== null && localeData !== void 0 && (_localeData$dateField = localeData.dateFields[searchUnit]) !== null && _localeData$dateField !== void 0 && _localeData$dateField.displayName) {
162
+ unitDisplayed = localeData.dateFields[searchUnit].displayName;
163
+ } else if (localeData !== null && localeData !== void 0 && (_localeData$units = localeData.units) !== null && _localeData$units !== void 0 && (_localeData$units$sho = _localeData$units.short[unit]) !== null && _localeData$units$sho !== void 0 && _localeData$units$sho.displayName) {
164
+ unitDisplayed = localeData.units.short[unit].displayName;
165
+ }
166
+
167
+ return oResourceModel.getText("T_COMMON_PROGRESS_INDICATOR_DISPLAY_VALUE_WITH_UOM", [value, target, unitDisplayed]);
168
+ }
169
+ };
170
+
171
+ formatProgressIndicatorText.__functionName = "sap.fe.core.formatters.ValueFormatter#formatProgressIndicatorText";
172
+ _exports.formatProgressIndicatorText = formatProgressIndicatorText;
149
173
  valueFormatters.formatWithBrackets = formatWithBrackets;
150
174
  valueFormatters.formatWithPercentage = formatWithPercentage;
151
175
  valueFormatters.computePercentage = computePercentage;
@@ -153,10 +177,11 @@ sap.ui.define([], function () {
153
177
  valueFormatters.formatCriticalityValueState = formatCriticalityValueState;
154
178
  valueFormatters.formatCriticalityButtonType = formatCriticalityButtonType;
155
179
  valueFormatters.formatCriticalityColorMicroChart = formatCriticalityColorMicroChart;
180
+ valueFormatters.formatProgressIndicatorText = formatProgressIndicatorText;
156
181
  /**
157
182
  * @global
158
183
  */
159
184
 
160
185
  return valueFormatters;
161
186
  }, true);
162
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZhbHVlRm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbInZhbHVlRm9ybWF0dGVycyIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5IiwiZm9ybWF0V2l0aEJyYWNrZXRzIiwiZmlyc3RQYXJ0Iiwic2Vjb25kUGFydCIsInNhcCIsInVpIiwiZ2V0Q29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsImdldFRleHQiLCJfX2Z1bmN0aW9uTmFtZSIsImZvcm1hdFdpdGhQZXJjZW50YWdlIiwic1ZhbHVlIiwidW5kZWZpbmVkIiwiY29tcHV0ZVBlcmNlbnRhZ2UiLCJ2YWx1ZSIsInRhcmdldCIsInNVbml0Iiwic1BlcmNlbnRTdHJpbmciLCJpVmFsdWUiLCJwYXJzZUZsb2F0IiwiaVRhcmdldCIsInRvU3RyaW5nIiwiZm9ybWF0Q3JpdGljYWxpdHlJY29uIiwidmFsIiwic0ljb24iLCJmb3JtYXRDcml0aWNhbGl0eVZhbHVlU3RhdGUiLCJzVmFsdWVTdGF0ZSIsImZvcm1hdENyaXRpY2FsaXR5QnV0dG9uVHlwZSIsInNUeXBlIiwiZm9ybWF0Q3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQiLCJzQ29sb3IiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxlQUFlLEdBQUcsVUFBdUJDLEtBQXZCLEVBQTREO0FBQ25GLFFBQUlELGVBQWUsQ0FBQ0UsY0FBaEIsQ0FBK0JELEtBQS9CLENBQUosRUFBMkM7QUFBQSx3Q0FEcUJFLEtBQ3JCO0FBRHFCQSxRQUFBQSxLQUNyQjtBQUFBOztBQUMxQyxhQUFRSCxlQUFELENBQXlCQyxLQUF6QixFQUFnQ0csS0FBaEMsQ0FBc0MsSUFBdEMsRUFBNENELEtBQTVDLENBQVA7QUFDQSxLQUZELE1BRU87QUFDTixhQUFPLEVBQVA7QUFDQTtBQUNELEdBTkQ7O0FBUUEsTUFBTUUsa0JBQWtCLEdBQUcsVUFBQ0MsU0FBRCxFQUFxQkMsVUFBckIsRUFBcUQ7QUFDL0UsUUFBSUQsU0FBUyxJQUFJQyxVQUFqQixFQUE2QjtBQUM1QixhQUFPQyxHQUFHLENBQUNDLEVBQUosQ0FDTEMsT0FESyxHQUVMQyx3QkFGSyxDQUVvQixhQUZwQixFQUdMQyxPQUhLLENBR0csK0JBSEgsRUFHb0MsQ0FBQ04sU0FBRCxFQUFZQyxVQUFaLENBSHBDLENBQVA7QUFJQSxLQUxELE1BS087QUFDTixhQUFPRCxTQUFTLElBQUlDLFVBQWIsSUFBMkIsRUFBbEM7QUFDQTtBQUNELEdBVEQ7O0FBVUFGLEVBQUFBLGtCQUFrQixDQUFDUSxjQUFuQixHQUFvQywwREFBcEM7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsVUFBQ0MsTUFBRCxFQUE2QjtBQUN6RCxXQUFPQSxNQUFNLEtBQUssSUFBWCxJQUFtQkEsTUFBTSxLQUFLQyxTQUE5QixHQUEwQ0QsTUFBTSxHQUFHLElBQW5ELEdBQTBELEVBQWpFO0FBQ0EsR0FGRDs7QUFHQUQsRUFBQUEsb0JBQW9CLENBQUNELGNBQXJCLEdBQXNDLDREQUF0Qzs7QUFFQSxNQUFNSSxpQkFBaUIsR0FBRyxVQUFDQyxLQUFELEVBQXlCQyxNQUF6QixFQUFrREMsS0FBbEQsRUFBeUY7QUFDbEgsUUFBSUMsY0FBSjtBQUNBLFFBQU1DLE1BQWMsR0FBRyxPQUFPSixLQUFQLEtBQWlCLFFBQWpCLEdBQTRCSyxVQUFVLENBQUNMLEtBQUQsQ0FBdEMsR0FBZ0RBLEtBQXZFO0FBQ0EsUUFBTU0sT0FBZSxHQUFHLE9BQU9MLE1BQVAsS0FBa0IsUUFBbEIsR0FBNkJJLFVBQVUsQ0FBQ0osTUFBRCxDQUF2QyxHQUFrREEsTUFBMUU7O0FBRUEsUUFBSUMsS0FBSyxLQUFLLEdBQWQsRUFBbUI7QUFDbEIsVUFBSUUsTUFBTSxHQUFHLEdBQWIsRUFBa0I7QUFDakJELFFBQUFBLGNBQWMsR0FBRyxLQUFqQjtBQUNBLE9BRkQsTUFFTyxJQUFJQyxNQUFNLEdBQUcsQ0FBYixFQUFnQjtBQUN0QkQsUUFBQUEsY0FBYyxHQUFHLEdBQWpCO0FBQ0EsT0FGTSxNQUVBO0FBQ05BLFFBQUFBLGNBQWMsR0FBRyxPQUFPSCxLQUFQLEtBQWlCLFFBQWpCLEdBQTRCQSxLQUE1QixHQUFvQ0EsS0FBcEMsYUFBb0NBLEtBQXBDLHVCQUFvQ0EsS0FBSyxDQUFFTyxRQUFQLEVBQXJEO0FBQ0E7QUFDRCxLQVJELE1BUU8sSUFBSUgsTUFBTSxHQUFHRSxPQUFiLEVBQXNCO0FBQzVCSCxNQUFBQSxjQUFjLEdBQUcsS0FBakI7QUFDQSxLQUZNLE1BRUEsSUFBSUMsTUFBTSxHQUFHLENBQWIsRUFBZ0I7QUFDdEJELE1BQUFBLGNBQWMsR0FBRyxHQUFqQjtBQUNBLEtBRk0sTUFFQTtBQUNOQSxNQUFBQSxjQUFjLEdBQUdDLE1BQU0sSUFBSUUsT0FBVixHQUFvQixDQUFFRixNQUFNLEdBQUdFLE9BQVYsR0FBcUIsR0FBdEIsRUFBMkJDLFFBQTNCLEVBQXBCLEdBQTRELEVBQTdFO0FBQ0E7O0FBQ0QsV0FBT0osY0FBUDtBQUNBLEdBckJEOztBQXNCQUosRUFBQUEsaUJBQWlCLENBQUNKLGNBQWxCLEdBQW1DLHlEQUFuQzs7QUFFTyxNQUFNYSxxQkFBcUIsR0FBRyxVQUFDQyxHQUFELEVBQStDO0FBQ25GLFFBQUlDLEtBQUo7O0FBQ0EsUUFBSUQsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUN0RUMsTUFBQUEsS0FBSyxHQUFHLDBCQUFSO0FBQ0EsS0FGRCxNQUVPLElBQUlELEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7QUFDN0VDLE1BQUFBLEtBQUssR0FBRyw0QkFBUjtBQUNBLEtBRk0sTUFFQSxJQUFJRCxHQUFHLEtBQUssNkJBQVIsSUFBeUNBLEdBQUcsS0FBSyxHQUFqRCxJQUF3REEsR0FBRyxLQUFLLENBQXBFLEVBQXVFO0FBQzdFQyxNQUFBQSxLQUFLLEdBQUcsNEJBQVI7QUFDQSxLQUZNLE1BRUEsSUFBSUQsR0FBRyxLQUFLLGdDQUFSLElBQTRDQSxHQUFHLEtBQUssR0FBcEQsSUFBMkRBLEdBQUcsS0FBSyxDQUF2RSxFQUEwRTtBQUNoRkMsTUFBQUEsS0FBSyxHQUFHLGdDQUFSO0FBQ0EsS0FGTSxNQUVBO0FBQ05BLE1BQUFBLEtBQUssR0FBRyxFQUFSO0FBQ0E7O0FBQ0QsV0FBT0EsS0FBUDtBQUNBLEdBZE07O0FBZVBGLEVBQUFBLHFCQUFxQixDQUFDYixjQUF0QixHQUF1Qyw2REFBdkM7OztBQUVPLE1BQU1nQiwyQkFBMkIsR0FBRyxVQUFDRixHQUFELEVBQStDO0FBQ3pGLFFBQUlHLFdBQUo7O0FBQ0EsUUFBSUgsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUN0RUcsTUFBQUEsV0FBVyxHQUFHLE9BQWQ7QUFDQSxLQUZELE1BRU8sSUFBSUgsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RUcsTUFBQUEsV0FBVyxHQUFHLFNBQWQ7QUFDQSxLQUZNLE1BRUEsSUFBSUgsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RUcsTUFBQUEsV0FBVyxHQUFHLFNBQWQ7QUFDQSxLQUZNLE1BRUEsSUFBSUgsR0FBRyxLQUFLLGdDQUFSLElBQTRDQSxHQUFHLEtBQUssR0FBcEQsSUFBMkRBLEdBQUcsS0FBSyxDQUF2RSxFQUEwRTtBQUNoRkcsTUFBQUEsV0FBVyxHQUFHLGNBQWQ7QUFDQSxLQUZNLE1BRUE7QUFDTkEsTUFBQUEsV0FBVyxHQUFHLE1BQWQ7QUFDQTs7QUFDRCxXQUFPQSxXQUFQO0FBQ0EsR0FkTTs7QUFlUEQsRUFBQUEsMkJBQTJCLENBQUNoQixjQUE1QixHQUE2QyxtRUFBN0M7OztBQUVPLE1BQU1rQiwyQkFBMkIsR0FBRyxVQUFDSixHQUFELEVBQStDO0FBQ3pGLFFBQUlLLEtBQUo7O0FBQ0EsUUFBSUwsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUN0RUssTUFBQUEsS0FBSyxHQUFHLFFBQVI7QUFDQSxLQUZELE1BRU8sSUFBSUwsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RUssTUFBQUEsS0FBSyxHQUFHLFFBQVI7QUFDQSxLQUZNLE1BRUE7QUFDTkEsTUFBQUEsS0FBSyxHQUFHLFNBQVI7QUFDQTs7QUFDRCxXQUFPQSxLQUFQO0FBQ0EsR0FWTTs7QUFXUEQsRUFBQUEsMkJBQTJCLENBQUNsQixjQUE1QixHQUE2QyxtRUFBN0M7OztBQUVPLE1BQU1vQixnQ0FBZ0MsR0FBRyxVQUFDTixHQUFELEVBQStDO0FBQzlGLFFBQUlPLE1BQUo7O0FBQ0EsUUFBSVAsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUN0RU8sTUFBQUEsTUFBTSxHQUFHLE9BQVQ7QUFDQSxLQUZELE1BRU8sSUFBSVAsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RU8sTUFBQUEsTUFBTSxHQUFHLFVBQVQ7QUFDQSxLQUZNLE1BRUEsSUFBSVAsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RU8sTUFBQUEsTUFBTSxHQUFHLE1BQVQ7QUFDQSxLQUZNLE1BRUE7QUFDTkEsTUFBQUEsTUFBTSxHQUFHLFNBQVQ7QUFDQTs7QUFDRCxXQUFPQSxNQUFQO0FBQ0EsR0FaTTs7QUFhUEQsRUFBQUEsZ0NBQWdDLENBQUNwQixjQUFqQyxHQUFrRCx3RUFBbEQ7O0FBRUFiLEVBQUFBLGVBQWUsQ0FBQ0ssa0JBQWhCLEdBQXFDQSxrQkFBckM7QUFDQUwsRUFBQUEsZUFBZSxDQUFDYyxvQkFBaEIsR0FBdUNBLG9CQUF2QztBQUNBZCxFQUFBQSxlQUFlLENBQUNpQixpQkFBaEIsR0FBb0NBLGlCQUFwQztBQUNBakIsRUFBQUEsZUFBZSxDQUFDMEIscUJBQWhCLEdBQXdDQSxxQkFBeEM7QUFDQTFCLEVBQUFBLGVBQWUsQ0FBQzZCLDJCQUFoQixHQUE4Q0EsMkJBQTlDO0FBQ0E3QixFQUFBQSxlQUFlLENBQUMrQiwyQkFBaEIsR0FBOENBLDJCQUE5QztBQUNBL0IsRUFBQUEsZUFBZSxDQUFDaUMsZ0NBQWhCLEdBQW1EQSxnQ0FBbkQ7QUFDQTtBQUNBO0FBQ0E7O1NBQ2VqQyxlIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbGxlY3Rpb24gb2YgdGFibGUgZm9ybWF0dGVycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0ge29iamVjdFtdfSBvQXJncyBUaGUgaW5uZXIgZnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHJldHVybnMge29iamVjdH0gVGhlIHZhbHVlIGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uXG4gKi9cbmNvbnN0IHZhbHVlRm9ybWF0dGVycyA9IGZ1bmN0aW9uKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKHZhbHVlRm9ybWF0dGVycy5oYXNPd25Qcm9wZXJ0eShzTmFtZSkpIHtcblx0XHRyZXR1cm4gKHZhbHVlRm9ybWF0dGVycyBhcyBhbnkpW3NOYW1lXS5hcHBseSh0aGlzLCBvQXJncyk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cbn07XG5cbmNvbnN0IGZvcm1hdFdpdGhCcmFja2V0cyA9IChmaXJzdFBhcnQ/OiBzdHJpbmcsIHNlY29uZFBhcnQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRpZiAoZmlyc3RQYXJ0ICYmIHNlY29uZFBhcnQpIHtcblx0XHRyZXR1cm4gc2FwLnVpXG5cdFx0XHQuZ2V0Q29yZSgpXG5cdFx0XHQuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIilcblx0XHRcdC5nZXRUZXh0KFwiQ19GT1JNQVRfRk9SX1RFWFRfQVJSQU5HRU1FTlRcIiwgW2ZpcnN0UGFydCwgc2Vjb25kUGFydF0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBmaXJzdFBhcnQgfHwgc2Vjb25kUGFydCB8fCBcIlwiO1xuXHR9XG59O1xuZm9ybWF0V2l0aEJyYWNrZXRzLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdFdpdGhCcmFja2V0c1wiO1xuXG5jb25zdCBmb3JtYXRXaXRoUGVyY2VudGFnZSA9IChzVmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRyZXR1cm4gc1ZhbHVlICE9PSBudWxsICYmIHNWYWx1ZSAhPT0gdW5kZWZpbmVkID8gc1ZhbHVlICsgXCIgJVwiIDogXCJcIjtcbn07XG5mb3JtYXRXaXRoUGVyY2VudGFnZS5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRXaXRoUGVyY2VudGFnZVwiO1xuXG5jb25zdCBjb21wdXRlUGVyY2VudGFnZSA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCB0YXJnZXQ6IHN0cmluZyB8IG51bWJlciwgc1VuaXQ/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRsZXQgc1BlcmNlbnRTdHJpbmc6IHN0cmluZztcblx0Y29uc3QgaVZhbHVlOiBudW1iZXIgPSB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IHZhbHVlO1xuXHRjb25zdCBpVGFyZ2V0OiBudW1iZXIgPSB0eXBlb2YgdGFyZ2V0ID09PSBcInN0cmluZ1wiID8gcGFyc2VGbG9hdCh0YXJnZXQpIDogdGFyZ2V0O1xuXG5cdGlmIChzVW5pdCA9PT0gXCIlXCIpIHtcblx0XHRpZiAoaVZhbHVlID4gMTAwKSB7XG5cdFx0XHRzUGVyY2VudFN0cmluZyA9IFwiMTAwXCI7XG5cdFx0fSBlbHNlIGlmIChpVmFsdWUgPCAwKSB7XG5cdFx0XHRzUGVyY2VudFN0cmluZyA9IFwiMFwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzUGVyY2VudFN0cmluZyA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWU/LnRvU3RyaW5nKCk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKGlWYWx1ZSA+IGlUYXJnZXQpIHtcblx0XHRzUGVyY2VudFN0cmluZyA9IFwiMTAwXCI7XG5cdH0gZWxzZSBpZiAoaVZhbHVlIDwgMCkge1xuXHRcdHNQZXJjZW50U3RyaW5nID0gXCIwXCI7XG5cdH0gZWxzZSB7XG5cdFx0c1BlcmNlbnRTdHJpbmcgPSBpVmFsdWUgJiYgaVRhcmdldCA/ICgoaVZhbHVlIC8gaVRhcmdldCkgKiAxMDApLnRvU3RyaW5nKCkgOiBcIlwiO1xuXHR9XG5cdHJldHVybiBzUGVyY2VudFN0cmluZztcbn07XG5jb21wdXRlUGVyY2VudGFnZS5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNjb21wdXRlUGVyY2VudGFnZVwiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q3JpdGljYWxpdHlJY29uID0gKHZhbD86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzSWNvbjogc3RyaW5nO1xuXHRpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9OZWdhdGl2ZVwiIHx8IHZhbCA9PT0gXCIxXCIgfHwgdmFsID09PSAxKSB7XG5cdFx0c0ljb24gPSBcInNhcC1pY29uOi8vbWVzc2FnZS1lcnJvclwiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvQ3JpdGljYWxcIiB8fCB2YWwgPT09IFwiMlwiIHx8IHZhbCA9PT0gMikge1xuXHRcdHNJY29uID0gXCJzYXAtaWNvbjovL21lc3NhZ2Utd2FybmluZ1wiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIiB8fCB2YWwgPT09IFwiM1wiIHx8IHZhbCA9PT0gMykge1xuXHRcdHNJY29uID0gXCJzYXAtaWNvbjovL21lc3NhZ2Utc3VjY2Vzc1wiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvSW5mb3JtYXRpb25cIiB8fCB2YWwgPT09IFwiNVwiIHx8IHZhbCA9PT0gNSkge1xuXHRcdHNJY29uID0gXCJzYXAtaWNvbjovL21lc3NhZ2UtaW5mb3JtYXRpb25cIjtcblx0fSBlbHNlIHtcblx0XHRzSWNvbiA9IFwiXCI7XG5cdH1cblx0cmV0dXJuIHNJY29uO1xufTtcbmZvcm1hdENyaXRpY2FsaXR5SWNvbi5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRDcml0aWNhbGl0eUljb25cIjtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZSA9ICh2YWw/OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRsZXQgc1ZhbHVlU3RhdGU6IHN0cmluZztcblx0aWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIiB8fCB2YWwgPT09IFwiMVwiIHx8IHZhbCA9PT0gMSkge1xuXHRcdHNWYWx1ZVN0YXRlID0gXCJFcnJvclwiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvQ3JpdGljYWxcIiB8fCB2YWwgPT09IFwiMlwiIHx8IHZhbCA9PT0gMikge1xuXHRcdHNWYWx1ZVN0YXRlID0gXCJXYXJuaW5nXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiIHx8IHZhbCA9PT0gXCIzXCIgfHwgdmFsID09PSAzKSB7XG5cdFx0c1ZhbHVlU3RhdGUgPSBcIlN1Y2Nlc3NcIjtcblx0fSBlbHNlIGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL0luZm9ybWF0aW9uXCIgfHwgdmFsID09PSBcIjVcIiB8fCB2YWwgPT09IDUpIHtcblx0XHRzVmFsdWVTdGF0ZSA9IFwiSW5kaWNhdGlvbjA1XCI7XG5cdH0gZWxzZSB7XG5cdFx0c1ZhbHVlU3RhdGUgPSBcIk5vbmVcIjtcblx0fVxuXHRyZXR1cm4gc1ZhbHVlU3RhdGU7XG59O1xuZm9ybWF0Q3JpdGljYWxpdHlWYWx1ZVN0YXRlLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZVwiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q3JpdGljYWxpdHlCdXR0b25UeXBlID0gKHZhbD86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzVHlwZTogc3RyaW5nO1xuXHRpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9OZWdhdGl2ZVwiIHx8IHZhbCA9PT0gXCIxXCIgfHwgdmFsID09PSAxKSB7XG5cdFx0c1R5cGUgPSBcIlJlamVjdFwiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIiB8fCB2YWwgPT09IFwiM1wiIHx8IHZhbCA9PT0gMykge1xuXHRcdHNUeXBlID0gXCJBY2NlcHRcIjtcblx0fSBlbHNlIHtcblx0XHRzVHlwZSA9IFwiRGVmYXVsdFwiO1xuXHR9XG5cdHJldHVybiBzVHlwZTtcbn07XG5mb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGUuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVmFsdWVGb3JtYXR0ZXIjZm9ybWF0Q3JpdGljYWxpdHlCdXR0b25UeXBlXCI7XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydCA9ICh2YWw/OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRsZXQgc0NvbG9yOiBzdHJpbmc7XG5cdGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIgfHwgdmFsID09PSBcIjFcIiB8fCB2YWwgPT09IDEpIHtcblx0XHRzQ29sb3IgPSBcIkVycm9yXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Dcml0aWNhbFwiIHx8IHZhbCA9PT0gXCIyXCIgfHwgdmFsID09PSAyKSB7XG5cdFx0c0NvbG9yID0gXCJDcml0aWNhbFwiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIiB8fCB2YWwgPT09IFwiM1wiIHx8IHZhbCA9PT0gMykge1xuXHRcdHNDb2xvciA9IFwiR29vZFwiO1xuXHR9IGVsc2Uge1xuXHRcdHNDb2xvciA9IFwiTmV1dHJhbFwiO1xuXHR9XG5cdHJldHVybiBzQ29sb3I7XG59O1xuZm9ybWF0Q3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVmFsdWVGb3JtYXR0ZXIjZm9ybWF0Q3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnRcIjtcblxudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFdpdGhCcmFja2V0cyA9IGZvcm1hdFdpdGhCcmFja2V0cztcbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRXaXRoUGVyY2VudGFnZSA9IGZvcm1hdFdpdGhQZXJjZW50YWdlO1xudmFsdWVGb3JtYXR0ZXJzLmNvbXB1dGVQZXJjZW50YWdlID0gY29tcHV0ZVBlcmNlbnRhZ2U7XG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0Q3JpdGljYWxpdHlJY29uID0gZm9ybWF0Q3JpdGljYWxpdHlJY29uO1xudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZSA9IGZvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZTtcbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGUgPSBmb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGU7XG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0Q3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQgPSBmb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydDtcbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCB2YWx1ZUZvcm1hdHRlcnM7XG4iXX0=
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZhbHVlRm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbInZhbHVlRm9ybWF0dGVycyIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5IiwiZm9ybWF0V2l0aEJyYWNrZXRzIiwiZmlyc3RQYXJ0Iiwic2Vjb25kUGFydCIsInNhcCIsInVpIiwiZ2V0Q29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsImdldFRleHQiLCJfX2Z1bmN0aW9uTmFtZSIsImZvcm1hdFdpdGhQZXJjZW50YWdlIiwic1ZhbHVlIiwidW5kZWZpbmVkIiwiY29tcHV0ZVBlcmNlbnRhZ2UiLCJ2YWx1ZSIsInRhcmdldCIsInNVbml0Iiwic1BlcmNlbnRTdHJpbmciLCJpVmFsdWUiLCJwYXJzZUZsb2F0IiwiaVRhcmdldCIsInRvU3RyaW5nIiwiZm9ybWF0Q3JpdGljYWxpdHlJY29uIiwidmFsIiwic0ljb24iLCJmb3JtYXRDcml0aWNhbGl0eVZhbHVlU3RhdGUiLCJzVmFsdWVTdGF0ZSIsImZvcm1hdENyaXRpY2FsaXR5QnV0dG9uVHlwZSIsInNUeXBlIiwiZm9ybWF0Q3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQiLCJzQ29sb3IiLCJmb3JtYXRQcm9ncmVzc0luZGljYXRvclRleHQiLCJ1bml0IiwidW5pdFNwbGl0Iiwic3BsaXQiLCJzZWFyY2hVbml0IiwiZGF0ZUZvcm1hdCIsIkRhdGVGb3JtYXQiLCJnZXREYXRlSW5zdGFuY2UiLCJsb2NhbGVEYXRhIiwib0xvY2FsZURhdGEiLCJtRGF0YSIsIm9SZXNvdXJjZU1vZGVsIiwidW5pdERpc3BsYXllZCIsImRhdGVGaWVsZHMiLCJkaXNwbGF5TmFtZSIsInVuaXRzIiwic2hvcnQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxlQUFlLEdBQUcsVUFBdUJDLEtBQXZCLEVBQTREO0FBQ25GLFFBQUlELGVBQWUsQ0FBQ0UsY0FBaEIsQ0FBK0JELEtBQS9CLENBQUosRUFBMkM7QUFBQSx3Q0FEcUJFLEtBQ3JCO0FBRHFCQSxRQUFBQSxLQUNyQjtBQUFBOztBQUMxQyxhQUFRSCxlQUFELENBQXlCQyxLQUF6QixFQUFnQ0csS0FBaEMsQ0FBc0MsSUFBdEMsRUFBNENELEtBQTVDLENBQVA7QUFDQSxLQUZELE1BRU87QUFDTixhQUFPLEVBQVA7QUFDQTtBQUNELEdBTkQ7O0FBUUEsTUFBTUUsa0JBQWtCLEdBQUcsVUFBQ0MsU0FBRCxFQUFxQkMsVUFBckIsRUFBcUQ7QUFDL0UsUUFBSUQsU0FBUyxJQUFJQyxVQUFqQixFQUE2QjtBQUM1QixhQUFRQyxHQUFHLENBQUNDLEVBQUosQ0FBT0MsT0FBUCxHQUFpQkMsd0JBQWpCLENBQTBDLGFBQTFDLENBQUQsQ0FBNkVDLE9BQTdFLENBQXFGLCtCQUFyRixFQUFzSCxDQUM1SE4sU0FENEgsRUFFNUhDLFVBRjRILENBQXRILENBQVA7QUFJQSxLQUxELE1BS087QUFDTixhQUFPRCxTQUFTLElBQUlDLFVBQWIsSUFBMkIsRUFBbEM7QUFDQTtBQUNELEdBVEQ7O0FBVUFGLEVBQUFBLGtCQUFrQixDQUFDUSxjQUFuQixHQUFvQywwREFBcEM7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsVUFBQ0MsTUFBRCxFQUE2QjtBQUN6RCxXQUFPQSxNQUFNLEtBQUssSUFBWCxJQUFtQkEsTUFBTSxLQUFLQyxTQUE5QixHQUEwQ0QsTUFBTSxHQUFHLElBQW5ELEdBQTBELEVBQWpFO0FBQ0EsR0FGRDs7QUFHQUQsRUFBQUEsb0JBQW9CLENBQUNELGNBQXJCLEdBQXNDLDREQUF0Qzs7QUFFQSxNQUFNSSxpQkFBaUIsR0FBRyxVQUFDQyxLQUFELEVBQXlCQyxNQUF6QixFQUFrREMsS0FBbEQsRUFBeUY7QUFDbEgsUUFBSUMsY0FBSjtBQUNBLFFBQU1DLE1BQWMsR0FBRyxPQUFPSixLQUFQLEtBQWlCLFFBQWpCLEdBQTRCSyxVQUFVLENBQUNMLEtBQUQsQ0FBdEMsR0FBZ0RBLEtBQXZFO0FBQ0EsUUFBTU0sT0FBZSxHQUFHLE9BQU9MLE1BQVAsS0FBa0IsUUFBbEIsR0FBNkJJLFVBQVUsQ0FBQ0osTUFBRCxDQUF2QyxHQUFrREEsTUFBMUU7O0FBRUEsUUFBSUMsS0FBSyxLQUFLLEdBQWQsRUFBbUI7QUFDbEIsVUFBSUUsTUFBTSxHQUFHLEdBQWIsRUFBa0I7QUFDakJELFFBQUFBLGNBQWMsR0FBRyxLQUFqQjtBQUNBLE9BRkQsTUFFTyxJQUFJQyxNQUFNLElBQUksQ0FBZCxFQUFpQjtBQUN2QkQsUUFBQUEsY0FBYyxHQUFHLEdBQWpCO0FBQ0EsT0FGTSxNQUVBO0FBQ05BLFFBQUFBLGNBQWMsR0FBRyxPQUFPSCxLQUFQLEtBQWlCLFFBQWpCLEdBQTRCQSxLQUE1QixHQUFvQ0EsS0FBcEMsYUFBb0NBLEtBQXBDLHVCQUFvQ0EsS0FBSyxDQUFFTyxRQUFQLEVBQXJEO0FBQ0E7QUFDRCxLQVJELE1BUU8sSUFBSUgsTUFBTSxHQUFHRSxPQUFiLEVBQXNCO0FBQzVCSCxNQUFBQSxjQUFjLEdBQUcsS0FBakI7QUFDQSxLQUZNLE1BRUEsSUFBSUMsTUFBTSxJQUFJLENBQWQsRUFBaUI7QUFDdkJELE1BQUFBLGNBQWMsR0FBRyxHQUFqQjtBQUNBLEtBRk0sTUFFQTtBQUNOQSxNQUFBQSxjQUFjLEdBQUdDLE1BQU0sSUFBSUUsT0FBVixHQUFvQixDQUFFRixNQUFNLEdBQUdFLE9BQVYsR0FBcUIsR0FBdEIsRUFBMkJDLFFBQTNCLEVBQXBCLEdBQTRELEdBQTdFO0FBQ0E7O0FBQ0QsV0FBT0osY0FBUDtBQUNBLEdBckJEOztBQXNCQUosRUFBQUEsaUJBQWlCLENBQUNKLGNBQWxCLEdBQW1DLHlEQUFuQzs7QUFFTyxNQUFNYSxxQkFBcUIsR0FBRyxVQUFDQyxHQUFELEVBQStDO0FBQ25GLFFBQUlDLEtBQUo7O0FBQ0EsUUFBSUQsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUN0RUMsTUFBQUEsS0FBSyxHQUFHLDBCQUFSO0FBQ0EsS0FGRCxNQUVPLElBQUlELEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7QUFDN0VDLE1BQUFBLEtBQUssR0FBRyw0QkFBUjtBQUNBLEtBRk0sTUFFQSxJQUFJRCxHQUFHLEtBQUssNkJBQVIsSUFBeUNBLEdBQUcsS0FBSyxHQUFqRCxJQUF3REEsR0FBRyxLQUFLLENBQXBFLEVBQXVFO0FBQzdFQyxNQUFBQSxLQUFLLEdBQUcsNEJBQVI7QUFDQSxLQUZNLE1BRUEsSUFBSUQsR0FBRyxLQUFLLGdDQUFSLElBQTRDQSxHQUFHLEtBQUssR0FBcEQsSUFBMkRBLEdBQUcsS0FBSyxDQUF2RSxFQUEwRTtBQUNoRkMsTUFBQUEsS0FBSyxHQUFHLGdDQUFSO0FBQ0EsS0FGTSxNQUVBO0FBQ05BLE1BQUFBLEtBQUssR0FBRyxFQUFSO0FBQ0E7O0FBQ0QsV0FBT0EsS0FBUDtBQUNBLEdBZE07O0FBZVBGLEVBQUFBLHFCQUFxQixDQUFDYixjQUF0QixHQUF1Qyw2REFBdkM7OztBQUVPLE1BQU1nQiwyQkFBMkIsR0FBRyxVQUFDRixHQUFELEVBQStDO0FBQ3pGLFFBQUlHLFdBQUo7O0FBQ0EsUUFBSUgsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUN0RUcsTUFBQUEsV0FBVyxHQUFHLE9BQWQ7QUFDQSxLQUZELE1BRU8sSUFBSUgsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RUcsTUFBQUEsV0FBVyxHQUFHLFNBQWQ7QUFDQSxLQUZNLE1BRUEsSUFBSUgsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RUcsTUFBQUEsV0FBVyxHQUFHLFNBQWQ7QUFDQSxLQUZNLE1BRUEsSUFBSUgsR0FBRyxLQUFLLGdDQUFSLElBQTRDQSxHQUFHLEtBQUssR0FBcEQsSUFBMkRBLEdBQUcsS0FBSyxDQUF2RSxFQUEwRTtBQUNoRkcsTUFBQUEsV0FBVyxHQUFHLGNBQWQ7QUFDQSxLQUZNLE1BRUE7QUFDTkEsTUFBQUEsV0FBVyxHQUFHLE1BQWQ7QUFDQTs7QUFDRCxXQUFPQSxXQUFQO0FBQ0EsR0FkTTs7QUFlUEQsRUFBQUEsMkJBQTJCLENBQUNoQixjQUE1QixHQUE2QyxtRUFBN0M7OztBQUVPLE1BQU1rQiwyQkFBMkIsR0FBRyxVQUFDSixHQUFELEVBQStDO0FBQ3pGLFFBQUlLLEtBQUo7O0FBQ0EsUUFBSUwsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUN0RUssTUFBQUEsS0FBSyxHQUFHLFFBQVI7QUFDQSxLQUZELE1BRU8sSUFBSUwsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RUssTUFBQUEsS0FBSyxHQUFHLFFBQVI7QUFDQSxLQUZNLE1BRUE7QUFDTkEsTUFBQUEsS0FBSyxHQUFHLFNBQVI7QUFDQTs7QUFDRCxXQUFPQSxLQUFQO0FBQ0EsR0FWTTs7QUFXUEQsRUFBQUEsMkJBQTJCLENBQUNsQixjQUE1QixHQUE2QyxtRUFBN0M7OztBQUVPLE1BQU1vQixnQ0FBZ0MsR0FBRyxVQUFDTixHQUFELEVBQStDO0FBQzlGLFFBQUlPLE1BQUo7O0FBQ0EsUUFBSVAsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUN0RU8sTUFBQUEsTUFBTSxHQUFHLE9BQVQ7QUFDQSxLQUZELE1BRU8sSUFBSVAsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RU8sTUFBQUEsTUFBTSxHQUFHLFVBQVQ7QUFDQSxLQUZNLE1BRUEsSUFBSVAsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtBQUM3RU8sTUFBQUEsTUFBTSxHQUFHLE1BQVQ7QUFDQSxLQUZNLE1BRUE7QUFDTkEsTUFBQUEsTUFBTSxHQUFHLFNBQVQ7QUFDQTs7QUFDRCxXQUFPQSxNQUFQO0FBQ0EsR0FaTTs7QUFhUEQsRUFBQUEsZ0NBQWdDLENBQUNwQixjQUFqQyxHQUFrRCx3RUFBbEQ7OztBQUVPLE1BQU1zQiwyQkFBMkIsR0FBRyxVQUFDakIsS0FBRCxFQUFhQyxNQUFiLEVBQTBCaUIsSUFBMUIsRUFBNEQ7QUFDdEcsUUFBSWxCLEtBQUssSUFBSUMsTUFBVCxJQUFtQmlCLElBQXZCLEVBQTZCO0FBQUE7O0FBQzVCLFVBQU1DLFNBQVMsR0FBR0QsSUFBSSxDQUFDRSxLQUFMLENBQVcsR0FBWCxDQUFsQjtBQUNBLFVBQU1DLFVBQVUsR0FBRyxDQUFDRixTQUFTLENBQUMsQ0FBRCxDQUFULEtBQWlCckIsU0FBakIsR0FBNkJvQixJQUE3QixHQUFvQ0MsU0FBUyxDQUFDLENBQUQsQ0FBOUMsSUFBcUQsU0FBeEU7QUFDQSxVQUFNRyxVQUFVLEdBQUdDLFVBQVUsQ0FBQ0MsZUFBWCxFQUFuQjtBQUNBLFVBQU1DLFVBQVUsR0FBR0gsVUFBVSxDQUFDSSxXQUFYLENBQXVCQyxLQUExQztBQUNBLFVBQU1DLGNBQWMsR0FBR3RDLEdBQUcsQ0FBQ0MsRUFBSixDQUFPQyxPQUFQLEdBQWlCQyx3QkFBakIsQ0FBMEMsZUFBMUMsQ0FBdkI7QUFDQSxVQUFJb0MsYUFBYSxHQUFHWCxJQUFwQjs7QUFDQSxVQUFJTyxVQUFKLGFBQUlBLFVBQUosd0NBQUlBLFVBQVUsQ0FBRUssVUFBWixDQUF1QlQsVUFBdkIsQ0FBSixrREFBSSxzQkFBb0NVLFdBQXhDLEVBQXFEO0FBQ3BERixRQUFBQSxhQUFhLEdBQUdKLFVBQVUsQ0FBQ0ssVUFBWCxDQUFzQlQsVUFBdEIsRUFBa0NVLFdBQWxEO0FBQ0EsT0FGRCxNQUVPLElBQUlOLFVBQUosYUFBSUEsVUFBSixvQ0FBSUEsVUFBVSxDQUFFTyxLQUFoQix1RUFBSSxrQkFBbUJDLEtBQW5CLENBQXlCZixJQUF6QixDQUFKLGtEQUFJLHNCQUFnQ2EsV0FBcEMsRUFBaUQ7QUFDdkRGLFFBQUFBLGFBQWEsR0FBR0osVUFBVSxDQUFDTyxLQUFYLENBQWlCQyxLQUFqQixDQUF1QmYsSUFBdkIsRUFBNkJhLFdBQTdDO0FBQ0E7O0FBRUQsYUFBT0gsY0FBYyxDQUFDbEMsT0FBZixDQUF1QixvREFBdkIsRUFBNkUsQ0FBQ00sS0FBRCxFQUFRQyxNQUFSLEVBQWdCNEIsYUFBaEIsQ0FBN0UsQ0FBUDtBQUNBO0FBQ0QsR0FoQk07O0FBaUJQWixFQUFBQSwyQkFBMkIsQ0FBQ3RCLGNBQTVCLEdBQTZDLG1FQUE3Qzs7QUFFQWIsRUFBQUEsZUFBZSxDQUFDSyxrQkFBaEIsR0FBcUNBLGtCQUFyQztBQUNBTCxFQUFBQSxlQUFlLENBQUNjLG9CQUFoQixHQUF1Q0Esb0JBQXZDO0FBQ0FkLEVBQUFBLGVBQWUsQ0FBQ2lCLGlCQUFoQixHQUFvQ0EsaUJBQXBDO0FBQ0FqQixFQUFBQSxlQUFlLENBQUMwQixxQkFBaEIsR0FBd0NBLHFCQUF4QztBQUNBMUIsRUFBQUEsZUFBZSxDQUFDNkIsMkJBQWhCLEdBQThDQSwyQkFBOUM7QUFDQTdCLEVBQUFBLGVBQWUsQ0FBQytCLDJCQUFoQixHQUE4Q0EsMkJBQTlDO0FBQ0EvQixFQUFBQSxlQUFlLENBQUNpQyxnQ0FBaEIsR0FBbURBLGdDQUFuRDtBQUNBakMsRUFBQUEsZUFBZSxDQUFDbUMsMkJBQWhCLEdBQThDQSwyQkFBOUM7QUFDQTtBQUNBO0FBQ0E7O1NBQ2VuQyxlIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBEYXRlRm9ybWF0IGZyb20gXCJzYXAvdWkvY29yZS9mb3JtYXQvRGF0ZUZvcm1hdFwiO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdGFibGUgZm9ybWF0dGVycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0ge29iamVjdFtdfSBvQXJncyBUaGUgaW5uZXIgZnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHJldHVybnMge29iamVjdH0gVGhlIHZhbHVlIGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uXG4gKi9cbmNvbnN0IHZhbHVlRm9ybWF0dGVycyA9IGZ1bmN0aW9uKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKHZhbHVlRm9ybWF0dGVycy5oYXNPd25Qcm9wZXJ0eShzTmFtZSkpIHtcblx0XHRyZXR1cm4gKHZhbHVlRm9ybWF0dGVycyBhcyBhbnkpW3NOYW1lXS5hcHBseSh0aGlzLCBvQXJncyk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cbn07XG5cbmNvbnN0IGZvcm1hdFdpdGhCcmFja2V0cyA9IChmaXJzdFBhcnQ/OiBzdHJpbmcsIHNlY29uZFBhcnQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRpZiAoZmlyc3RQYXJ0ICYmIHNlY29uZFBhcnQpIHtcblx0XHRyZXR1cm4gKHNhcC51aS5nZXRDb3JlKCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIikgYXMgUmVzb3VyY2VCdW5kbGUpLmdldFRleHQoXCJDX0ZPUk1BVF9GT1JfVEVYVF9BUlJBTkdFTUVOVFwiLCBbXG5cdFx0XHRmaXJzdFBhcnQsXG5cdFx0XHRzZWNvbmRQYXJ0XG5cdFx0XSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGZpcnN0UGFydCB8fCBzZWNvbmRQYXJ0IHx8IFwiXCI7XG5cdH1cbn07XG5mb3JtYXRXaXRoQnJhY2tldHMuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVmFsdWVGb3JtYXR0ZXIjZm9ybWF0V2l0aEJyYWNrZXRzXCI7XG5cbmNvbnN0IGZvcm1hdFdpdGhQZXJjZW50YWdlID0gKHNWYWx1ZT86IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdHJldHVybiBzVmFsdWUgIT09IG51bGwgJiYgc1ZhbHVlICE9PSB1bmRlZmluZWQgPyBzVmFsdWUgKyBcIiAlXCIgOiBcIlwiO1xufTtcbmZvcm1hdFdpdGhQZXJjZW50YWdlLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdFdpdGhQZXJjZW50YWdlXCI7XG5cbmNvbnN0IGNvbXB1dGVQZXJjZW50YWdlID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsIHRhcmdldDogc3RyaW5nIHwgbnVtYmVyLCBzVW5pdD86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzUGVyY2VudFN0cmluZzogc3RyaW5nO1xuXHRjb25zdCBpVmFsdWU6IG51bWJlciA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHBhcnNlRmxvYXQodmFsdWUpIDogdmFsdWU7XG5cdGNvbnN0IGlUYXJnZXQ6IG51bWJlciA9IHR5cGVvZiB0YXJnZXQgPT09IFwic3RyaW5nXCIgPyBwYXJzZUZsb2F0KHRhcmdldCkgOiB0YXJnZXQ7XG5cblx0aWYgKHNVbml0ID09PSBcIiVcIikge1xuXHRcdGlmIChpVmFsdWUgPiAxMDApIHtcblx0XHRcdHNQZXJjZW50U3RyaW5nID0gXCIxMDBcIjtcblx0XHR9IGVsc2UgaWYgKGlWYWx1ZSA8PSAwKSB7XG5cdFx0XHRzUGVyY2VudFN0cmluZyA9IFwiMFwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzUGVyY2VudFN0cmluZyA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWU/LnRvU3RyaW5nKCk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKGlWYWx1ZSA+IGlUYXJnZXQpIHtcblx0XHRzUGVyY2VudFN0cmluZyA9IFwiMTAwXCI7XG5cdH0gZWxzZSBpZiAoaVZhbHVlIDw9IDApIHtcblx0XHRzUGVyY2VudFN0cmluZyA9IFwiMFwiO1xuXHR9IGVsc2Uge1xuXHRcdHNQZXJjZW50U3RyaW5nID0gaVZhbHVlICYmIGlUYXJnZXQgPyAoKGlWYWx1ZSAvIGlUYXJnZXQpICogMTAwKS50b1N0cmluZygpIDogXCIwXCI7XG5cdH1cblx0cmV0dXJuIHNQZXJjZW50U3RyaW5nO1xufTtcbmNvbXB1dGVQZXJjZW50YWdlLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2NvbXB1dGVQZXJjZW50YWdlXCI7XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDcml0aWNhbGl0eUljb24gPSAodmFsPzogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcblx0bGV0IHNJY29uOiBzdHJpbmc7XG5cdGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIgfHwgdmFsID09PSBcIjFcIiB8fCB2YWwgPT09IDEpIHtcblx0XHRzSWNvbiA9IFwic2FwLWljb246Ly9tZXNzYWdlLWVycm9yXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Dcml0aWNhbFwiIHx8IHZhbCA9PT0gXCIyXCIgfHwgdmFsID09PSAyKSB7XG5cdFx0c0ljb24gPSBcInNhcC1pY29uOi8vbWVzc2FnZS13YXJuaW5nXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiIHx8IHZhbCA9PT0gXCIzXCIgfHwgdmFsID09PSAzKSB7XG5cdFx0c0ljb24gPSBcInNhcC1pY29uOi8vbWVzc2FnZS1zdWNjZXNzXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9JbmZvcm1hdGlvblwiIHx8IHZhbCA9PT0gXCI1XCIgfHwgdmFsID09PSA1KSB7XG5cdFx0c0ljb24gPSBcInNhcC1pY29uOi8vbWVzc2FnZS1pbmZvcm1hdGlvblwiO1xuXHR9IGVsc2Uge1xuXHRcdHNJY29uID0gXCJcIjtcblx0fVxuXHRyZXR1cm4gc0ljb247XG59O1xuZm9ybWF0Q3JpdGljYWxpdHlJY29uLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdENyaXRpY2FsaXR5SWNvblwiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q3JpdGljYWxpdHlWYWx1ZVN0YXRlID0gKHZhbD86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzVmFsdWVTdGF0ZTogc3RyaW5nO1xuXHRpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9OZWdhdGl2ZVwiIHx8IHZhbCA9PT0gXCIxXCIgfHwgdmFsID09PSAxKSB7XG5cdFx0c1ZhbHVlU3RhdGUgPSBcIkVycm9yXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Dcml0aWNhbFwiIHx8IHZhbCA9PT0gXCIyXCIgfHwgdmFsID09PSAyKSB7XG5cdFx0c1ZhbHVlU3RhdGUgPSBcIldhcm5pbmdcIjtcblx0fSBlbHNlIGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIgfHwgdmFsID09PSBcIjNcIiB8fCB2YWwgPT09IDMpIHtcblx0XHRzVmFsdWVTdGF0ZSA9IFwiU3VjY2Vzc1wiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvSW5mb3JtYXRpb25cIiB8fCB2YWwgPT09IFwiNVwiIHx8IHZhbCA9PT0gNSkge1xuXHRcdHNWYWx1ZVN0YXRlID0gXCJJbmRpY2F0aW9uMDVcIjtcblx0fSBlbHNlIHtcblx0XHRzVmFsdWVTdGF0ZSA9IFwiTm9uZVwiO1xuXHR9XG5cdHJldHVybiBzVmFsdWVTdGF0ZTtcbn07XG5mb3JtYXRDcml0aWNhbGl0eVZhbHVlU3RhdGUuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVmFsdWVGb3JtYXR0ZXIjZm9ybWF0Q3JpdGljYWxpdHlWYWx1ZVN0YXRlXCI7XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGUgPSAodmFsPzogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcblx0bGV0IHNUeXBlOiBzdHJpbmc7XG5cdGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIgfHwgdmFsID09PSBcIjFcIiB8fCB2YWwgPT09IDEpIHtcblx0XHRzVHlwZSA9IFwiUmVqZWN0XCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiIHx8IHZhbCA9PT0gXCIzXCIgfHwgdmFsID09PSAzKSB7XG5cdFx0c1R5cGUgPSBcIkFjY2VwdFwiO1xuXHR9IGVsc2Uge1xuXHRcdHNUeXBlID0gXCJEZWZhdWx0XCI7XG5cdH1cblx0cmV0dXJuIHNUeXBlO1xufTtcbmZvcm1hdENyaXRpY2FsaXR5QnV0dG9uVHlwZS5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGVcIjtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdENyaXRpY2FsaXR5Q29sb3JNaWNyb0NoYXJ0ID0gKHZhbD86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzQ29sb3I6IHN0cmluZztcblx0aWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIiB8fCB2YWwgPT09IFwiMVwiIHx8IHZhbCA9PT0gMSkge1xuXHRcdHNDb2xvciA9IFwiRXJyb3JcIjtcblx0fSBlbHNlIGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL0NyaXRpY2FsXCIgfHwgdmFsID09PSBcIjJcIiB8fCB2YWwgPT09IDIpIHtcblx0XHRzQ29sb3IgPSBcIkNyaXRpY2FsXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiIHx8IHZhbCA9PT0gXCIzXCIgfHwgdmFsID09PSAzKSB7XG5cdFx0c0NvbG9yID0gXCJHb29kXCI7XG5cdH0gZWxzZSB7XG5cdFx0c0NvbG9yID0gXCJOZXV0cmFsXCI7XG5cdH1cblx0cmV0dXJuIHNDb2xvcjtcbn07XG5mb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydC5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydFwiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0UHJvZ3Jlc3NJbmRpY2F0b3JUZXh0ID0gKHZhbHVlOiBhbnksIHRhcmdldDogYW55LCB1bml0OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRpZiAodmFsdWUgJiYgdGFyZ2V0ICYmIHVuaXQpIHtcblx0XHRjb25zdCB1bml0U3BsaXQgPSB1bml0LnNwbGl0KFwiLVwiKTtcblx0XHRjb25zdCBzZWFyY2hVbml0ID0gKHVuaXRTcGxpdFsxXSA9PT0gdW5kZWZpbmVkID8gdW5pdCA6IHVuaXRTcGxpdFsxXSkgKyBcIi1uYXJyb3dcIjtcblx0XHRjb25zdCBkYXRlRm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKSBhcyBhbnk7XG5cdFx0Y29uc3QgbG9jYWxlRGF0YSA9IGRhdGVGb3JtYXQub0xvY2FsZURhdGEubURhdGE7XG5cdFx0Y29uc3Qgb1Jlc291cmNlTW9kZWwgPSBzYXAudWkuZ2V0Q29yZSgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5tYWNyb3NcIikgYXMgUmVzb3VyY2VCdW5kbGU7XG5cdFx0bGV0IHVuaXREaXNwbGF5ZWQgPSB1bml0O1xuXHRcdGlmIChsb2NhbGVEYXRhPy5kYXRlRmllbGRzW3NlYXJjaFVuaXRdPy5kaXNwbGF5TmFtZSkge1xuXHRcdFx0dW5pdERpc3BsYXllZCA9IGxvY2FsZURhdGEuZGF0ZUZpZWxkc1tzZWFyY2hVbml0XS5kaXNwbGF5TmFtZTtcblx0XHR9IGVsc2UgaWYgKGxvY2FsZURhdGE/LnVuaXRzPy5zaG9ydFt1bml0XT8uZGlzcGxheU5hbWUpIHtcblx0XHRcdHVuaXREaXNwbGF5ZWQgPSBsb2NhbGVEYXRhLnVuaXRzLnNob3J0W3VuaXRdLmRpc3BsYXlOYW1lO1xuXHRcdH1cblxuXHRcdHJldHVybiBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9DT01NT05fUFJPR1JFU1NfSU5ESUNBVE9SX0RJU1BMQVlfVkFMVUVfV0lUSF9VT01cIiwgW3ZhbHVlLCB0YXJnZXQsIHVuaXREaXNwbGF5ZWRdKTtcblx0fVxufTtcbmZvcm1hdFByb2dyZXNzSW5kaWNhdG9yVGV4dC5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRQcm9ncmVzc0luZGljYXRvclRleHRcIjtcblxudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFdpdGhCcmFja2V0cyA9IGZvcm1hdFdpdGhCcmFja2V0cztcbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRXaXRoUGVyY2VudGFnZSA9IGZvcm1hdFdpdGhQZXJjZW50YWdlO1xudmFsdWVGb3JtYXR0ZXJzLmNvbXB1dGVQZXJjZW50YWdlID0gY29tcHV0ZVBlcmNlbnRhZ2U7XG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0Q3JpdGljYWxpdHlJY29uID0gZm9ybWF0Q3JpdGljYWxpdHlJY29uO1xudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZSA9IGZvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZTtcbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGUgPSBmb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGU7XG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0Q3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQgPSBmb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydDtcbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRQcm9ncmVzc0luZGljYXRvclRleHQgPSBmb3JtYXRQcm9ncmVzc0luZGljYXRvclRleHQ7XG4vKipcbiAqIEBnbG9iYWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgdmFsdWVGb3JtYXR0ZXJzO1xuIl19
@@ -1,3 +1,6 @@
1
+ import ResourceBundle from "sap/base/i18n/ResourceBundle";
2
+ import DateFormat from "sap/ui/core/format/DateFormat";
3
+
1
4
  /**
2
5
  * Collection of table formatters.
3
6
  *
@@ -16,10 +19,10 @@ const valueFormatters = function(this: object, sName: string, ...oArgs: any[]):
16
19
 
17
20
  const formatWithBrackets = (firstPart?: string, secondPart?: string): string => {
18
21
  if (firstPart && secondPart) {
19
- return sap.ui
20
- .getCore()
21
- .getLibraryResourceBundle("sap.fe.core")
22
- .getText("C_FORMAT_FOR_TEXT_ARRANGEMENT", [firstPart, secondPart]);
22
+ return (sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle).getText("C_FORMAT_FOR_TEXT_ARRANGEMENT", [
23
+ firstPart,
24
+ secondPart
25
+ ]);
23
26
  } else {
24
27
  return firstPart || secondPart || "";
25
28
  }
@@ -39,17 +42,17 @@ const computePercentage = (value: string | number, target: string | number, sUni
39
42
  if (sUnit === "%") {
40
43
  if (iValue > 100) {
41
44
  sPercentString = "100";
42
- } else if (iValue < 0) {
45
+ } else if (iValue <= 0) {
43
46
  sPercentString = "0";
44
47
  } else {
45
48
  sPercentString = typeof value === "string" ? value : value?.toString();
46
49
  }
47
50
  } else if (iValue > iTarget) {
48
51
  sPercentString = "100";
49
- } else if (iValue < 0) {
52
+ } else if (iValue <= 0) {
50
53
  sPercentString = "0";
51
54
  } else {
52
- sPercentString = iValue && iTarget ? ((iValue / iTarget) * 100).toString() : "";
55
+ sPercentString = iValue && iTarget ? ((iValue / iTarget) * 100).toString() : "0";
53
56
  }
54
57
  return sPercentString;
55
58
  };
@@ -117,6 +120,25 @@ export const formatCriticalityColorMicroChart = (val?: string | number): string
117
120
  };
118
121
  formatCriticalityColorMicroChart.__functionName = "sap.fe.core.formatters.ValueFormatter#formatCriticalityColorMicroChart";
119
122
 
123
+ export const formatProgressIndicatorText = (value: any, target: any, unit: any): string | undefined => {
124
+ if (value && target && unit) {
125
+ const unitSplit = unit.split("-");
126
+ const searchUnit = (unitSplit[1] === undefined ? unit : unitSplit[1]) + "-narrow";
127
+ const dateFormat = DateFormat.getDateInstance() as any;
128
+ const localeData = dateFormat.oLocaleData.mData;
129
+ const oResourceModel = sap.ui.getCore().getLibraryResourceBundle("sap.fe.macros") as ResourceBundle;
130
+ let unitDisplayed = unit;
131
+ if (localeData?.dateFields[searchUnit]?.displayName) {
132
+ unitDisplayed = localeData.dateFields[searchUnit].displayName;
133
+ } else if (localeData?.units?.short[unit]?.displayName) {
134
+ unitDisplayed = localeData.units.short[unit].displayName;
135
+ }
136
+
137
+ return oResourceModel.getText("T_COMMON_PROGRESS_INDICATOR_DISPLAY_VALUE_WITH_UOM", [value, target, unitDisplayed]);
138
+ }
139
+ };
140
+ formatProgressIndicatorText.__functionName = "sap.fe.core.formatters.ValueFormatter#formatProgressIndicatorText";
141
+
120
142
  valueFormatters.formatWithBrackets = formatWithBrackets;
121
143
  valueFormatters.formatWithPercentage = formatWithPercentage;
122
144
  valueFormatters.computePercentage = computePercentage;
@@ -124,6 +146,7 @@ valueFormatters.formatCriticalityIcon = formatCriticalityIcon;
124
146
  valueFormatters.formatCriticalityValueState = formatCriticalityValueState;
125
147
  valueFormatters.formatCriticalityButtonType = formatCriticalityButtonType;
126
148
  valueFormatters.formatCriticalityColorMicroChart = formatCriticalityColorMicroChart;
149
+ valueFormatters.formatProgressIndicatorText = formatProgressIndicatorText;
127
150
  /**
128
151
  * @global
129
152
  */
@@ -1,57 +1,54 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(
6
- ["sap/fe/core/TemplateComponent"],
7
- function(TemplateComponent) {
8
- "use strict";
5
+ sap.ui.define(["sap/fe/core/TemplateComponent"], function (TemplateComponent) {
6
+ "use strict";
9
7
 
10
- /**
11
- * @class Component that can be used as a wrapper component for custom pages.
12
- *
13
- * The component can be used in case you want to use SAP Fiori elements Building Blocks or XML template
14
- * constructions. You can either extend the component and set the viewName and contextPath within your code
15
- * or you can use it to wrap your custom XML view directly the manifest when you define your custom page
16
- * under sapui5/routing/targets:
17
- *
18
- * <pre>
19
- * "myCustomPage": {
20
- * "type": "Component",
21
- * "id": "myCustomPage",
22
- * "name": "sap.fe.core.fpm",
23
- * "title": "My Custom Page",
24
- * "options": {
25
- * "settings": {
26
- * "viewName": "myNamespace.myView",
27
- * "contextPath": "/MyEntitySet"
28
- * }
29
- * }
30
- * }
31
- * </pre>
32
- *
33
- * @name sap.fe.core.fpm.Component
34
- * @hideconstructor
35
- * @public
36
- * @experimental As of version 1.92.0
37
- * @since 1.92.0
38
- */
39
-
40
- var FPMComponent = TemplateComponent.extend("sap.fe.core.fpm.Component", {
41
- metadata: {
42
- properties: {
43
- /**
44
- * Name of the XML view which is used for this page. The XML view can contain SAP Fiori elements
45
- * Building Blocks and XML template constructions.
46
- */
47
- viewName: {
48
- type: "string"
49
- }
50
- },
51
- manifest: "json"
52
- }
53
- });
54
- return FPMComponent;
55
- },
56
- /* bExport= */ true
57
- );
8
+ /**
9
+ * @class
10
+ * Component that can be used as a wrapper component for custom pages.
11
+ *
12
+ * The component can be used in case you want to use SAP Fiori elements Building Blocks or XML template
13
+ * constructions. You can either extend the component and set the viewName and contextPath within your code
14
+ * or you can use it to wrap your custom XML view directly the manifest when you define your custom page
15
+ * under sapui5/routing/targets:
16
+ *
17
+ * <pre>
18
+ * "myCustomPage": {
19
+ * "type": "Component",
20
+ * "id": "myCustomPage",
21
+ * "name": "sap.fe.core.fpm",
22
+ * "title": "My Custom Page",
23
+ * "options": {
24
+ * "settings": {
25
+ * "viewName": "myNamespace.myView",
26
+ * "contextPath": "/MyEntitySet"
27
+ * }
28
+ * }
29
+ * }
30
+ * </pre>
31
+ *
32
+ * @name sap.fe.core.fpm.Component
33
+ * @hideconstructor
34
+ * @public
35
+ * @experimental As of version 1.92.0
36
+ * @since 1.92.0
37
+ */
38
+ var FPMComponent = TemplateComponent.extend("sap.fe.core.fpm.Component", {
39
+ metadata: {
40
+ properties: {
41
+ /**
42
+ * Name of the XML view which is used for this page. The XML view can contain SAP Fiori elements
43
+ * Building Blocks and XML template constructions.
44
+ */
45
+ viewName: {
46
+ type: "string"
47
+ }
48
+ },
49
+ manifest: "json"
50
+ }
51
+ });
52
+ return FPMComponent;
53
+ }, false);
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbXBvbmVudC50cyJdLCJuYW1lcyI6WyJGUE1Db21wb25lbnQiLCJUZW1wbGF0ZUNvbXBvbmVudCIsImV4dGVuZCIsIm1ldGFkYXRhIiwicHJvcGVydGllcyIsInZpZXdOYW1lIiwidHlwZSIsIm1hbmlmZXN0Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsWUFBWSxHQUFHQyxpQkFBaUIsQ0FBQ0MsTUFBbEIsQ0FBeUIsMkJBQXpCLEVBQXNEO0FBQzFFQyxJQUFBQSxRQUFRLEVBQUU7QUFDVEMsTUFBQUEsVUFBVSxFQUFFO0FBQ1g7QUFDSDtBQUNBO0FBQ0E7QUFDR0MsUUFBQUEsUUFBUSxFQUFFO0FBQ1RDLFVBQUFBLElBQUksRUFBRTtBQURHO0FBTEMsT0FESDtBQVVUQyxNQUFBQSxRQUFRLEVBQUU7QUFWRDtBQURnRSxHQUF0RCxDQUFyQjtTQWVlUCxZIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5cbi8qKlxuICogQGNsYXNzXG4gKiBDb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIHdyYXBwZXIgY29tcG9uZW50IGZvciBjdXN0b20gcGFnZXMuXG4gKlxuICogVGhlIGNvbXBvbmVudCBjYW4gYmUgdXNlZCBpbiBjYXNlIHlvdSB3YW50IHRvIHVzZSBTQVAgRmlvcmkgZWxlbWVudHMgQnVpbGRpbmcgQmxvY2tzIG9yIFhNTCB0ZW1wbGF0ZVxuICogY29uc3RydWN0aW9ucy4gWW91IGNhbiBlaXRoZXIgZXh0ZW5kIHRoZSBjb21wb25lbnQgYW5kIHNldCB0aGUgdmlld05hbWUgYW5kIGNvbnRleHRQYXRoIHdpdGhpbiB5b3VyIGNvZGVcbiAqIG9yIHlvdSBjYW4gdXNlIGl0IHRvIHdyYXAgeW91ciBjdXN0b20gWE1MIHZpZXcgZGlyZWN0bHkgdGhlIG1hbmlmZXN0IHdoZW4geW91IGRlZmluZSB5b3VyIGN1c3RvbSBwYWdlXG4gKiB1bmRlciBzYXB1aTUvcm91dGluZy90YXJnZXRzOlxuICpcbiAqIDxwcmU+XG4gKiBcIm15Q3VzdG9tUGFnZVwiOiB7XG4gKlx0XCJ0eXBlXCI6IFwiQ29tcG9uZW50XCIsXG4gKlx0XCJpZFwiOiBcIm15Q3VzdG9tUGFnZVwiLFxuICpcdFwibmFtZVwiOiBcInNhcC5mZS5jb3JlLmZwbVwiLFxuICpcdFwidGl0bGVcIjogXCJNeSBDdXN0b20gUGFnZVwiLFxuICpcdFwib3B0aW9uc1wiOiB7XG4gKlx0XHRcInNldHRpbmdzXCI6IHtcbiAqXHRcdFx0XCJ2aWV3TmFtZVwiOiBcIm15TmFtZXNwYWNlLm15Vmlld1wiLFxuICpcdFx0XHRcImNvbnRleHRQYXRoXCI6IFwiL015RW50aXR5U2V0XCJcbiAqXHRcdFx0fVxuICpcdFx0fVxuICpcdH1cbiAqIDwvcHJlPlxuICpcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLmZwbS5Db21wb25lbnRcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBleHBlcmltZW50YWwgQXMgb2YgdmVyc2lvbiAxLjkyLjBcbiAqIEBzaW5jZSAxLjkyLjBcbiAqL1xuY29uc3QgRlBNQ29tcG9uZW50ID0gVGVtcGxhdGVDb21wb25lbnQuZXh0ZW5kKFwic2FwLmZlLmNvcmUuZnBtLkNvbXBvbmVudFwiLCB7XG5cdG1ldGFkYXRhOiB7XG5cdFx0cHJvcGVydGllczoge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBOYW1lIG9mIHRoZSBYTUwgdmlldyB3aGljaCBpcyB1c2VkIGZvciB0aGlzIHBhZ2UuIFRoZSBYTUwgdmlldyBjYW4gY29udGFpbiBTQVAgRmlvcmkgZWxlbWVudHNcblx0XHRcdCAqIEJ1aWxkaW5nIEJsb2NrcyBhbmQgWE1MIHRlbXBsYXRlIGNvbnN0cnVjdGlvbnMuXG5cdFx0XHQgKi9cblx0XHRcdHZpZXdOYW1lOiB7XG5cdFx0XHRcdHR5cGU6IFwic3RyaW5nXCJcblx0XHRcdH1cblx0XHR9LFxuXHRcdG1hbmlmZXN0OiBcImpzb25cIlxuXHR9XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgRlBNQ29tcG9uZW50O1xuIl19
@@ -0,0 +1,48 @@
1
+ import TemplateComponent from "sap/fe/core/TemplateComponent";
2
+
3
+ /**
4
+ * @class
5
+ * Component that can be used as a wrapper component for custom pages.
6
+ *
7
+ * The component can be used in case you want to use SAP Fiori elements Building Blocks or XML template
8
+ * constructions. You can either extend the component and set the viewName and contextPath within your code
9
+ * or you can use it to wrap your custom XML view directly the manifest when you define your custom page
10
+ * under sapui5/routing/targets:
11
+ *
12
+ * <pre>
13
+ * "myCustomPage": {
14
+ * "type": "Component",
15
+ * "id": "myCustomPage",
16
+ * "name": "sap.fe.core.fpm",
17
+ * "title": "My Custom Page",
18
+ * "options": {
19
+ * "settings": {
20
+ * "viewName": "myNamespace.myView",
21
+ * "contextPath": "/MyEntitySet"
22
+ * }
23
+ * }
24
+ * }
25
+ * </pre>
26
+ *
27
+ * @name sap.fe.core.fpm.Component
28
+ * @hideconstructor
29
+ * @public
30
+ * @experimental As of version 1.92.0
31
+ * @since 1.92.0
32
+ */
33
+ const FPMComponent = TemplateComponent.extend("sap.fe.core.fpm.Component", {
34
+ metadata: {
35
+ properties: {
36
+ /**
37
+ * Name of the XML view which is used for this page. The XML view can contain SAP Fiori elements
38
+ * Building Blocks and XML template constructions.
39
+ */
40
+ viewName: {
41
+ type: "string"
42
+ }
43
+ },
44
+ manifest: "json"
45
+ }
46
+ });
47
+
48
+ export default FPMComponent;