@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
@@ -0,0 +1,250 @@
1
+ import BaseObject from "sap/ui/base/Object";
2
+ import CommonUtils from "sap/fe/core/CommonUtils";
3
+ import Log from "sap/base/Log";
4
+ import Element from "sap/ui/core/Element";
5
+ import Component from "sap/ui/core/Component";
6
+ import JSONModel from "sap/ui/model/json/JSONModel";
7
+ import Metadata from "sap/ui/base/Metadata";
8
+ import { Property, UI5Class } from "./helpers/ClassSupport";
9
+ import EditFlow from "sap/fe/core/controllerextensions/EditFlow";
10
+ import Routing from "sap/fe/core/controllerextensions/Routing";
11
+ import View from "sap/ui/core/mvc/View";
12
+ import PageController from "sap/fe/core/PageController";
13
+ import InternalRouting from "sap/fe/core/controllerextensions/InternalRouting";
14
+ import Control from "sap/ui/core/Control";
15
+ import Context from "sap/ui/model/Context";
16
+ import Model from "sap/ui/model/Model";
17
+ import TemplateComponent from "sap/fe/core/TemplateComponent";
18
+ import IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedNavigation";
19
+
20
+ /**
21
+ * Common Extension API for all pages of SAP Fiori elements for OData V4.
22
+ * @alias sap.fe.core.ExtensionAPI
23
+ * @public
24
+ * @hideconstructor
25
+ * @extends sap.ui.base.Object
26
+ * @since 1.79.0
27
+ */
28
+ @UI5Class("sap.fe.core.ExtensionAPI", Metadata)
29
+ class ExtensionAPI extends BaseObject {
30
+ /**
31
+ * A controller extension offering hooks into the edit flow of the application.
32
+ * @public
33
+ */
34
+ @Property({ type: "sap/fe/core/controllerextensions/EditFlow" })
35
+ editFlow: EditFlow;
36
+ /**
37
+ * A controller extension offering hooks into the routing flow of the application.
38
+ * @public
39
+ */
40
+ @Property({ type: "sap/fe/core/controllerextensions/Routing" })
41
+ routing: Routing;
42
+ /**
43
+ * ExtensionAPI for intent-based navigation
44
+ * @public
45
+ */
46
+ @Property({ type: "sap/fe/core/controllerextensions/IntentBasedNavigation" })
47
+ intentBasedNavigation: IntentBasedNavigation;
48
+
49
+ private _controller: PageController;
50
+ private _view: View;
51
+ private _routing: InternalRouting;
52
+ private _prefix?: string;
53
+ private extension: any;
54
+
55
+ constructor(oController: PageController, sId?: string) {
56
+ super();
57
+ this._controller = oController;
58
+ this._view = oController.getView();
59
+ this.extension = (this._controller as any).extension;
60
+ this.editFlow = this._controller.editFlow;
61
+ this.routing = this._controller.routing;
62
+ this._routing = this._controller._routing;
63
+ this.intentBasedNavigation = this._controller.intentBasedNavigation;
64
+ this._prefix = sId;
65
+ }
66
+ destroy() {
67
+ // delete this._controller;
68
+ // delete this._view;
69
+ // delete this.editFlow._controller;
70
+ // delete this.intentBasedNavigation._controller;
71
+ }
72
+
73
+ /**
74
+ * Access any control by ID.
75
+ *
76
+ * @alias sap.fe.core.ExtensionAPI#byId
77
+ * @param {string} sId ID of the control without the view prefix. Either the ID prefixed by SAP Fiori elements
78
+ * (for example with the section) or the control ID only. The latter works only for an extension running in
79
+ * the same context (like in the same section). You can use the prefix for SAP Fiori elements to also access other controls located in different sections.
80
+ * @returns {sap.ui.core.Control} The requested control, if found in the view.
81
+ *
82
+ * @private
83
+ */
84
+ byId(sId: string) {
85
+ let oControl = this._view.byId(sId);
86
+
87
+ if (!oControl && this._prefix) {
88
+ // give it a try with the prefix
89
+ oControl = this._view.byId(this._prefix + "--" + sId);
90
+ }
91
+
92
+ if (oControl) {
93
+ return oControl;
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Get access to models managed by SAP Fiori elements.<br>
99
+ * The following models can be accessed:
100
+ * <ul>
101
+ * <li>undefined: the undefined model returns the SAPUI5 OData V4 model bound to this page</li>
102
+ * <li>i18n / further data models defined in the manifest</li>
103
+ * <li>ui: returns a SAPUI5 JSON model containing UI information.
104
+ * Only the following properties are public and supported:
105
+ * <ul>
106
+ * <li>editMode: contains either 'Editable' or 'Display'</li>
107
+ * </ul>
108
+ * </li>
109
+ * </ul>.
110
+ *
111
+ * @alias sap.fe.core.ExtensionAPI#getModel
112
+ * @param {string} sModelName Name of the model
113
+ * @returns {sap.ui.model.Model} The required model
114
+ *
115
+ * @public
116
+ */
117
+ getModel(sModelName?: string): Model | undefined {
118
+ let oAppComponent;
119
+
120
+ if (sModelName && sModelName !== "ui") {
121
+ oAppComponent = CommonUtils.getAppComponent(this._view);
122
+ if (!oAppComponent.getManifestEntry("sap.ui5").models[sModelName]) {
123
+ // don't allow access to our internal models
124
+ return undefined;
125
+ }
126
+ }
127
+
128
+ return this._view.getModel(sModelName);
129
+ }
130
+
131
+ /**
132
+ * Add any control as a dependent control to this SAP Fiori elements page.
133
+ *
134
+ * @alias sap.fe.core.ExtensionAPI#addDependent
135
+ * @param {sap.ui.core.Control} oControl Control to be added as a dependent control
136
+ *
137
+ * @public
138
+ */
139
+ addDependent(oControl: Control) {
140
+ this._view.addDependent(oControl);
141
+ }
142
+
143
+ /**
144
+ * Remove a dependent control from this SAP Fiori elements page.
145
+ *
146
+ * @alias sap.fe.core.ExtensionAPI#removeDependent
147
+ * @param {sap.ui.core.Control} oControl Control to be added as a dependent control
148
+ *
149
+ * @public
150
+ */
151
+ removeDependent(oControl: Control) {
152
+ this._view.removeDependent(oControl);
153
+ }
154
+
155
+ /**
156
+ * Navigate to another target.
157
+ *
158
+ * @alias sap.fe.core.ExtensionAPI#navigateToTarget
159
+ * @param {string} sTarget Name of the target route
160
+ * @param {sap.ui.model.Context} [oContext] Context instance
161
+ * @returns {void}
162
+ * @public
163
+ */
164
+ navigateToTarget(sTarget: string, oContext: Context): void {
165
+ return this._controller._routing.navigateToTarget(oContext, sTarget);
166
+ }
167
+
168
+ /**
169
+ * Load a fragment and go through the template preprocessor with the current page context.
170
+ *
171
+ * @alias sap.fe.core.ExtensionAPI#loadFragment
172
+ * @param {object} mSettings The settings object
173
+ * @param {string} mSettings.id The ID of the fragment itself
174
+ * @param {string} mSettings.name The name of the fragment to be loaded
175
+ * @param {object} mSettings.controller The controller to be attached to the fragment
176
+ * @param {string} mSettings.contextPath The contextPath to be used for the templating process
177
+ * @param {sap.ui.model.Context} mSettings.initialBindingContext The initial binding context
178
+ * @returns {Promise<Element[]|sap.ui.core.Element[]>} The fragment definition
179
+ *
180
+ * @public
181
+ */
182
+ loadFragment(mSettings: {
183
+ id: string;
184
+ name: string;
185
+ controller: object;
186
+ contextPath: string;
187
+ initialBindingContext: Context;
188
+ }): Promise<Element | Element[]> {
189
+ const oTemplateComponent = Component.getOwnerComponentFor(this._view) as typeof TemplateComponent;
190
+ const oPageModel = this._view.getModel("_pageModel");
191
+ const oMetaModel = this.getModel()?.getMetaModel();
192
+ const mViewData = oTemplateComponent.getViewData();
193
+ const oViewDataModel = new JSONModel(mViewData),
194
+ oPreprocessorSettings = {
195
+ bindingContexts: {
196
+ "contextPath": oMetaModel?.createBindingContext(mSettings.contextPath || "/" + oTemplateComponent.getEntitySet()),
197
+ converterContext: oPageModel.createBindingContext("/", undefined, { noResolve: true }),
198
+ viewData: mViewData ? oViewDataModel.createBindingContext("/") : null
199
+ },
200
+ models: {
201
+ "contextPath": oMetaModel,
202
+ converterContext: oPageModel,
203
+ metaModel: oMetaModel,
204
+ viewData: oViewDataModel
205
+ },
206
+ appComponent: CommonUtils.getAppComponent(this._view)
207
+ };
208
+ const oTemplatePromise = CommonUtils.templateControlFragment(mSettings.name, oPreprocessorSettings, {
209
+ controller: mSettings.controller || this,
210
+ isXML: false,
211
+ id: mSettings.id
212
+ });
213
+ oTemplatePromise
214
+ .then((oFragment: any) => {
215
+ if (mSettings.initialBindingContext !== undefined) {
216
+ oFragment.setBindingContext(mSettings.initialBindingContext);
217
+ }
218
+ this.addDependent(oFragment);
219
+ })
220
+ .catch(function(oError: any) {
221
+ Log.error(oError);
222
+ });
223
+ return oTemplatePromise;
224
+ }
225
+
226
+ /**
227
+ * Triggers an update of the app state.
228
+ * Should be called if the state of a control, or any other state-relevant information, was changed.
229
+ *
230
+ * @alias sap.fe.core.ExtensionAPI#updateAppState
231
+ * @returns {Promise} A promise that resolves with the new app state object.
232
+ *
233
+ * @public
234
+ */
235
+ updateAppState(): Promise<void> | undefined {
236
+ if (
237
+ !this._controller
238
+ .getAppComponent()
239
+ .getModel("internal")
240
+ .getProperty("/uiAdaptation")
241
+ ) {
242
+ return this._controller
243
+ .getAppComponent()
244
+ .getAppStateHandler()
245
+ .createAppState();
246
+ }
247
+ }
248
+ }
249
+
250
+ export default ExtensionAPI;
@@ -1,127 +1,220 @@
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
- [
7
- "sap/fe/core/BaseController",
8
- "sap/fe/core/ExtensionAPI",
9
- "sap/fe/core/controllerextensions/InternalRouting",
10
- "sap/fe/core/controllerextensions/Routing",
11
- "sap/fe/core/controllerextensions/EditFlow",
12
- "sap/fe/core/controllerextensions/InternalEditFlow",
13
- "sap/fe/core/controllerextensions/PageReady",
14
- "sap/fe/core/controllerextensions/MessageHandler",
15
- "sap/fe/core/controllerextensions/IntentBasedNavigation",
16
- "sap/fe/core/controllerextensions/InternalIntentBasedNavigation",
17
- "sap/fe/core/controllerextensions/Share",
18
- "sap/fe/core/controllerextensions/ViewState",
19
- "sap/fe/core/controllerextensions/Paginator",
20
- "sap/fe/core/controllerextensions/Placeholder"
21
- ],
22
- function(
23
- Controller,
24
- ExtensionAPI,
25
- InternalRouting,
26
- Routing,
27
- EditFlow,
28
- InternalEditFlow,
29
- PageReady,
30
- MessageHandler,
31
- IntentBasedNavigation,
32
- InternalIntentBasedNavigation,
33
- Share,
34
- ViewState,
35
- Paginator,
36
- Placeholder
37
- ) {
38
- "use strict";
39
-
40
- /**
41
- * @class Base controller class for your custom page used inside an SAP Fiori elements application.
42
- *
43
- * This controller provides preconfigured extensions that will ensure you have the basic functionalities required to use the building blocks.
44
- *
45
- * @hideconstructor
46
- * @public
47
- * @name sap.fe.core.PageController
48
- * @since 1.88.0
49
- */
50
- return Controller.extend("sap.fe.core.PageController", {
51
- routing: Routing,
52
- _routing: InternalRouting,
53
- editFlow: EditFlow,
54
- _editFlow: InternalEditFlow,
55
- intentBasedNavigation: IntentBasedNavigation,
56
- _intentBasedNavigation: InternalIntentBasedNavigation,
57
- pageReady: PageReady,
58
- messageHandler: MessageHandler,
59
- share: Share,
60
- paginator: Paginator,
61
- viewState: ViewState,
62
- placeholder: Placeholder,
63
- /**
64
- * @private
65
- * @name sap.fe.core.PageController.getMetadata
66
- * @function
67
- */
68
- /**
69
- * @private
70
- * @name sap.fe.core.PageController.extend
71
- * @function
72
- */
73
-
74
- onInit: function() {
75
- var oUIModel = this.getAppComponent().getModel("ui"),
76
- oInternalModel = this.getAppComponent().getModel("internal"),
77
- sPath = "/pages/" + this.getView().getId();
78
-
79
- oUIModel.setProperty(sPath, {
80
- controls: {}
81
- });
82
- oInternalModel.setProperty(sPath, {
83
- controls: {}
84
- });
85
- this.getView().bindElement({
86
- path: sPath,
87
- model: "ui"
88
- });
89
- this.getView().bindElement({
90
- path: sPath,
91
- model: "internal"
92
- });
93
-
94
- // for the time being provide it also pageInternal as some macros access it - to be removed
95
- this.getView().bindElement({
96
- path: sPath,
97
- model: "pageInternal"
98
- });
99
- this.getView().setModel(oInternalModel, "pageInternal");
100
-
101
- // as the model propagation happens after init but we actually want to access the binding context in the
102
- // init phase already setting the model here
103
- this.getView().setModel(oUIModel, "ui");
104
- this.getView().setModel(oInternalModel, "internal");
105
- },
106
-
107
- onBeforeRendering: function() {
108
- if (this.placeholder.attachHideCallback) {
109
- this.placeholder.attachHideCallback();
110
- }
111
- },
112
- getExtensionAPI: function() {
113
- if (!this.extensionAPI) {
114
- this.extensionAPI = new ExtensionAPI(this);
115
- }
116
- return this.extensionAPI;
117
- },
118
-
119
- onPageReady: function(mParameters) {
120
- // Apply app state only after the page is ready with the first section selected
121
- this.getAppComponent()
122
- .getAppStateHandler()
123
- .applyAppState();
124
- }
125
- });
126
- }
127
- );
5
+ sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/ExtensionAPI", "sap/fe/core/controllerextensions/Routing", "sap/fe/core/controllerextensions/EditFlow", "sap/fe/core/controllerextensions/PageReady", "sap/fe/core/controllerextensions/MessageHandler", "sap/fe/core/controllerextensions/IntentBasedNavigation", "sap/fe/core/controllerextensions/Share", "sap/fe/core/controllerextensions/ViewState", "sap/fe/core/controllerextensions/Paginator", "sap/fe/core/controllerextensions/SideEffects", "sap/fe/core/controllerextensions/InternalRouting", "sap/fe/core/controllerextensions/InternalEditFlow", "sap/fe/core/controllerextensions/InternalIntentBasedNavigation", "sap/fe/core/controllerextensions/Placeholder", "sap/fe/core/controllerextensions/MassEdit", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/mvc/ControllerMetadata"], function (BaseController, ExtensionAPI, Routing, EditFlow, PageReady, MessageHandler, IntentBasedNavigation, Share, ViewState, Paginator, SideEffects, InternalRouting, InternalEditFlow, InternalIntentBasedNavigation, Placeholder, MassEdit, ClassSupport, ControllerMetadata) {
6
+ "use strict";
7
+
8
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14;
9
+
10
+ var UsingExtension = ClassSupport.UsingExtension;
11
+ var UI5Class = ClassSupport.UI5Class;
12
+ var Public = ClassSupport.Public;
13
+
14
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
15
+
16
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
17
+
18
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
19
+
20
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
21
+
22
+ function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
23
+
24
+ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
25
+
26
+ /**
27
+ * Base controller class for your custom page used inside an SAP Fiori elements application.
28
+ *
29
+ * This controller provides preconfigured extensions that will ensure you have the basic functionalities required to use the building blocks.
30
+ *
31
+ * @hideconstructor
32
+ * @public
33
+ * @since 1.88.0
34
+ */
35
+ var PageController = (_dec = UI5Class("sap.fe.core.PageController", ControllerMetadata, {}), _dec2 = UsingExtension(Routing), _dec3 = UsingExtension(InternalRouting), _dec4 = UsingExtension(EditFlow), _dec5 = UsingExtension(InternalEditFlow), _dec6 = UsingExtension(IntentBasedNavigation), _dec7 = UsingExtension(InternalIntentBasedNavigation), _dec8 = UsingExtension(PageReady), _dec9 = UsingExtension(MessageHandler), _dec10 = UsingExtension(Share), _dec11 = UsingExtension(Paginator), _dec12 = UsingExtension(ViewState), _dec13 = UsingExtension(Placeholder), _dec14 = UsingExtension(SideEffects), _dec15 = UsingExtension(MassEdit), _dec(_class = (_class2 = /*#__PURE__*/function (_BaseController) {
36
+ _inherits(PageController, _BaseController);
37
+
38
+ function PageController() {
39
+ var _this;
40
+
41
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42
+ args[_key] = arguments[_key];
43
+ }
44
+
45
+ _this = _BaseController.call.apply(_BaseController, [this].concat(args)) || this;
46
+
47
+ _initializerDefineProperty(_this, "routing", _descriptor, _assertThisInitialized(_this));
48
+
49
+ _initializerDefineProperty(_this, "_routing", _descriptor2, _assertThisInitialized(_this));
50
+
51
+ _initializerDefineProperty(_this, "editFlow", _descriptor3, _assertThisInitialized(_this));
52
+
53
+ _initializerDefineProperty(_this, "_editFlow", _descriptor4, _assertThisInitialized(_this));
54
+
55
+ _initializerDefineProperty(_this, "intentBasedNavigation", _descriptor5, _assertThisInitialized(_this));
56
+
57
+ _initializerDefineProperty(_this, "_intentBasedNavigation", _descriptor6, _assertThisInitialized(_this));
58
+
59
+ _initializerDefineProperty(_this, "pageReady", _descriptor7, _assertThisInitialized(_this));
60
+
61
+ _initializerDefineProperty(_this, "messageHandler", _descriptor8, _assertThisInitialized(_this));
62
+
63
+ _initializerDefineProperty(_this, "share", _descriptor9, _assertThisInitialized(_this));
64
+
65
+ _initializerDefineProperty(_this, "paginator", _descriptor10, _assertThisInitialized(_this));
66
+
67
+ _initializerDefineProperty(_this, "viewState", _descriptor11, _assertThisInitialized(_this));
68
+
69
+ _initializerDefineProperty(_this, "placeholder", _descriptor12, _assertThisInitialized(_this));
70
+
71
+ _initializerDefineProperty(_this, "_sideEffects", _descriptor13, _assertThisInitialized(_this));
72
+
73
+ _initializerDefineProperty(_this, "massEdit", _descriptor14, _assertThisInitialized(_this));
74
+
75
+ return _this;
76
+ }
77
+
78
+ var _proto = PageController.prototype;
79
+
80
+ // @Public
81
+ // getView(): { getController(): PageController } & View {
82
+ // return super.getView() as any;
83
+ // }
84
+
85
+ /**
86
+ * @private
87
+ * @name sap.fe.core.PageController.getMetadata
88
+ * @function
89
+ */
90
+
91
+ /**
92
+ * @private
93
+ * @name sap.fe.core.PageController.extend
94
+ * @function
95
+ */
96
+ _proto.onInit = function onInit() {
97
+ var oUIModel = this.getAppComponent().getModel("ui"),
98
+ oInternalModel = this.getAppComponent().getModel("internal"),
99
+ sPath = "/pages/" + this.getView().getId();
100
+ oUIModel.setProperty(sPath, {
101
+ controls: {}
102
+ });
103
+ oInternalModel.setProperty(sPath, {
104
+ controls: {},
105
+ collaboration: {}
106
+ });
107
+ this.getView().bindElement({
108
+ path: sPath,
109
+ model: "ui"
110
+ });
111
+ this.getView().bindElement({
112
+ path: sPath,
113
+ model: "internal"
114
+ }); // for the time being provide it also pageInternal as some macros access it - to be removed
115
+
116
+ this.getView().bindElement({
117
+ path: sPath,
118
+ model: "pageInternal"
119
+ });
120
+ this.getView().setModel(oInternalModel, "pageInternal"); // as the model propagation happens after init but we actually want to access the binding context in the
121
+ // init phase already setting the model here
122
+
123
+ this.getView().setModel(oUIModel, "ui");
124
+ this.getView().setModel(oInternalModel, "internal");
125
+ };
126
+
127
+ _proto.onBeforeRendering = function onBeforeRendering() {
128
+ if (this.placeholder.attachHideCallback) {
129
+ this.placeholder.attachHideCallback();
130
+ }
131
+ };
132
+
133
+ _proto.getExtensionAPI = function getExtensionAPI() {
134
+ if (!this.extensionAPI) {
135
+ this.extensionAPI = new ExtensionAPI(this);
136
+ }
137
+
138
+ return this.extensionAPI;
139
+ };
140
+
141
+ _proto.onPageReady = function onPageReady() {
142
+ // Apply app state only after the page is ready with the first section selected
143
+ this.getAppComponent().getAppStateHandler().applyAppState();
144
+ };
145
+
146
+ return PageController;
147
+ }(BaseController), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "routing", [_dec2], {
148
+ configurable: true,
149
+ enumerable: true,
150
+ writable: true,
151
+ initializer: null
152
+ }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "_routing", [_dec3], {
153
+ configurable: true,
154
+ enumerable: true,
155
+ writable: true,
156
+ initializer: null
157
+ }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "editFlow", [_dec4], {
158
+ configurable: true,
159
+ enumerable: true,
160
+ writable: true,
161
+ initializer: null
162
+ }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "_editFlow", [_dec5], {
163
+ configurable: true,
164
+ enumerable: true,
165
+ writable: true,
166
+ initializer: null
167
+ }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "intentBasedNavigation", [_dec6], {
168
+ configurable: true,
169
+ enumerable: true,
170
+ writable: true,
171
+ initializer: null
172
+ }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "_intentBasedNavigation", [_dec7], {
173
+ configurable: true,
174
+ enumerable: true,
175
+ writable: true,
176
+ initializer: null
177
+ }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "pageReady", [_dec8], {
178
+ configurable: true,
179
+ enumerable: true,
180
+ writable: true,
181
+ initializer: null
182
+ }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "messageHandler", [_dec9], {
183
+ configurable: true,
184
+ enumerable: true,
185
+ writable: true,
186
+ initializer: null
187
+ }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "share", [_dec10], {
188
+ configurable: true,
189
+ enumerable: true,
190
+ writable: true,
191
+ initializer: null
192
+ }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "paginator", [_dec11], {
193
+ configurable: true,
194
+ enumerable: true,
195
+ writable: true,
196
+ initializer: null
197
+ }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "viewState", [_dec12], {
198
+ configurable: true,
199
+ enumerable: true,
200
+ writable: true,
201
+ initializer: null
202
+ }), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "placeholder", [_dec13], {
203
+ configurable: true,
204
+ enumerable: true,
205
+ writable: true,
206
+ initializer: null
207
+ }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "_sideEffects", [_dec14], {
208
+ configurable: true,
209
+ enumerable: true,
210
+ writable: true,
211
+ initializer: null
212
+ }), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, "massEdit", [_dec15], {
213
+ configurable: true,
214
+ enumerable: true,
215
+ writable: true,
216
+ initializer: null
217
+ }), _applyDecoratedDescriptor(_class2.prototype, "onInit", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "onInit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onBeforeRendering", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeRendering"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "getExtensionAPI", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "getExtensionAPI"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onPageReady", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "onPageReady"), _class2.prototype)), _class2)) || _class);
218
+ return PageController;
219
+ }, false);
220
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlBhZ2VDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIlBhZ2VDb250cm9sbGVyIiwiVUk1Q2xhc3MiLCJDb250cm9sbGVyTWV0YWRhdGEiLCJVc2luZ0V4dGVuc2lvbiIsIlJvdXRpbmciLCJJbnRlcm5hbFJvdXRpbmciLCJFZGl0RmxvdyIsIkludGVybmFsRWRpdEZsb3ciLCJJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJJbnRlcm5hbEludGVudEJhc2VkTmF2aWdhdGlvbiIsIlBhZ2VSZWFkeSIsIk1lc3NhZ2VIYW5kbGVyIiwiU2hhcmUiLCJQYWdpbmF0b3IiLCJWaWV3U3RhdGUiLCJQbGFjZWhvbGRlciIsIlNpZGVFZmZlY3RzIiwiTWFzc0VkaXQiLCJvbkluaXQiLCJvVUlNb2RlbCIsImdldEFwcENvbXBvbmVudCIsImdldE1vZGVsIiwib0ludGVybmFsTW9kZWwiLCJzUGF0aCIsImdldFZpZXciLCJnZXRJZCIsInNldFByb3BlcnR5IiwiY29udHJvbHMiLCJjb2xsYWJvcmF0aW9uIiwiYmluZEVsZW1lbnQiLCJwYXRoIiwibW9kZWwiLCJzZXRNb2RlbCIsIm9uQmVmb3JlUmVuZGVyaW5nIiwicGxhY2Vob2xkZXIiLCJhdHRhY2hIaWRlQ2FsbGJhY2siLCJnZXRFeHRlbnNpb25BUEkiLCJleHRlbnNpb25BUEkiLCJFeHRlbnNpb25BUEkiLCJvblBhZ2VSZWFkeSIsImdldEFwcFN0YXRlSGFuZGxlciIsImFwcGx5QXBwU3RhdGUiLCJCYXNlQ29udHJvbGxlciIsIlB1YmxpYyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsYyxXQURMQyxRQUFRLENBQUMsNEJBQUQsRUFBK0JDLGtCQUEvQixFQUFtRCxFQUFuRCxDLFVBRVBDLGNBQWMsQ0FBQ0MsT0FBRCxDLFVBRWRELGNBQWMsQ0FBQ0UsZUFBRCxDLFVBRWRGLGNBQWMs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c2FwL2ZlL2NvcmUvQmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IEV4dGVuc2lvbkFQSSBmcm9tIFwic2FwL2ZlL2NvcmUvRXh0ZW5zaW9uQVBJXCI7XG5pbXBvcnQgUm91dGluZyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUm91dGluZ1wiO1xuaW1wb3J0IEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9FZGl0Rmxvd1wiO1xuaW1wb3J0IFBhZ2VSZWFkeSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUGFnZVJlYWR5XCI7XG5pbXBvcnQgTWVzc2FnZUhhbmRsZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL01lc3NhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgSW50ZW50QmFzZWROYXZpZ2F0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCBTaGFyZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBWaWV3U3RhdGUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IFBhZ2luYXRvciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUGFnaW5hdG9yXCI7XG5pbXBvcnQgU2lkZUVmZmVjdHMgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NpZGVFZmZlY3RzXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBJbnRlcm5hbFJvdXRpbmcgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVybmFsUm91dGluZ1wiO1xuaW1wb3J0IEludGVybmFsRWRpdEZsb3cgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVybmFsRWRpdEZsb3dcIjtcbmltcG9ydCBJbnRlcm5hbEludGVudEJhc2VkTmF2aWdhdGlvbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCBQbGFjZWhvbGRlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUGxhY2Vob2xkZXJcIjtcbmltcG9ydCBNYXNzRWRpdCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvTWFzc0VkaXRcIjtcbmltcG9ydCB7IFB1YmxpYywgVUk1Q2xhc3MsIFVzaW5nRXh0ZW5zaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29udHJvbGxlck1ldGFkYXRhIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlck1ldGFkYXRhXCI7XG5cbi8qKlxuICogQmFzZSBjb250cm9sbGVyIGNsYXNzIGZvciB5b3VyIGN1c3RvbSBwYWdlIHVzZWQgaW5zaWRlIGFuIFNBUCBGaW9yaSBlbGVtZW50cyBhcHBsaWNhdGlvbi5cbiAqXG4gKiBUaGlzIGNvbnRyb2xsZXIgcHJvdmlkZXMgcHJlY29uZmlndXJlZCBleHRlbnNpb25zIHRoYXQgd2lsbCBlbnN1cmUgeW91IGhhdmUgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdGllcyByZXF1aXJlZCB0byB1c2UgdGhlIGJ1aWxkaW5nIGJsb2Nrcy5cbiAqXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAc2luY2UgMS44OC4wXG4gKi9cbkBVSTVDbGFzcyhcInNhcC5mZS5jb3JlLlBhZ2VDb250cm9sbGVyXCIsIENvbnRyb2xsZXJNZXRhZGF0YSwge30pXG5jbGFzcyBQYWdlQ29udHJvbGxlciBleHRlbmRzIEJhc2VDb250cm9sbGVyIHtcblx0QFVzaW5nRXh0ZW5zaW9uKFJvdXRpbmcpXG5cdHJvdXRpbmchOiBSb3V0aW5nO1xuXHRAVXNpbmdFeHRlbnNpb24oSW50ZXJuYWxSb3V0aW5nKVxuXHRfcm91dGluZyE6IEludGVybmFsUm91dGluZztcblx0QFVzaW5nRXh0ZW5zaW9uKEVkaXRGbG93KVxuXHRlZGl0RmxvdyE6IEVkaXRGbG93O1xuXHRAVXNpbmdFeHRlbnNpb24oSW50ZXJuYWxFZGl0Rmxvdylcblx0X2VkaXRGbG93ITogSW50ZXJuYWxFZGl0Rmxvdztcblx0QFVzaW5nRXh0ZW5zaW9uKEludGVudEJhc2VkTmF2aWdhdGlvbilcblx0aW50ZW50QmFzZWROYXZpZ2F0aW9uITogSW50ZW50QmFzZWROYXZpZ2F0aW9uO1xuXHRAVXNpbmdFeHRlbnNpb24oSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb24pXG5cdF9pbnRlbnRCYXNlZE5hdmlnYXRpb24hOiBJbnRlcm5hbEludGVudEJhc2VkTmF2aWdhdGlvbjtcblx0QFVzaW5nRXh0ZW5zaW9uKFBhZ2VSZWFkeSlcblx0cGFnZVJlYWR5ITogUGFnZVJlYWR5O1xuXHRAVXNpbmdFeHRlbnNpb24oTWVzc2FnZUhhbmRsZXIpXG5cdG1lc3NhZ2VIYW5kbGVyITogTWVzc2FnZUhhbmRsZXI7XG5cdEBVc2luZ0V4dGVuc2lvbihTaGFyZSlcblx0c2hhcmUhOiBTaGFyZTtcblx0QFVzaW5nRXh0ZW5zaW9uKFBhZ2luYXRvcilcblx0cGFnaW5hdG9yITogUGFnaW5hdG9yO1xuXHRAVXNpbmdFeHRlbnNpb24oVmlld1N0YXRlKVxuXHR2aWV3U3RhdGUhOiBWaWV3U3RhdGU7XG5cdEBVc2luZ0V4dGVuc2lvbihQbGFjZWhvbGRlcilcblx0cGxhY2Vob2xkZXIhOiBQbGFjZWhvbGRlcjtcblx0QFVzaW5nRXh0ZW5zaW9uKFNpZGVFZmZlY3RzKVxuXHRfc2lkZUVmZmVjdHMhOiBTaWRlRWZmZWN0cztcblx0QFVzaW5nRXh0ZW5zaW9uKE1hc3NFZGl0KVxuXHRtYXNzRWRpdCE6IE1hc3NFZGl0O1xuXHQvLyBAUHVibGljXG5cdC8vIGdldFZpZXcoKTogeyBnZXRDb250cm9sbGVyKCk6IFBhZ2VDb250cm9sbGVyIH0gJiBWaWV3IHtcblx0Ly8gXHRyZXR1cm4gc3VwZXIuZ2V0VmlldygpIGFzIGFueTtcblx0Ly8gfVxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIuZ2V0TWV0YWRhdGFcblx0ICogQGZ1bmN0aW9uXG5cdCAqL1xuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIuZXh0ZW5kXG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblxuXHRAUHVibGljXG5cdG9uSW5pdCgpIHtcblx0XHRjb25zdCBvVUlNb2RlbCA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TW9kZWwoXCJ1aVwiKSBhcyBKU09OTW9kZWwsXG5cdFx0XHRvSW50ZXJuYWxNb2RlbCA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWwsXG5cdFx0XHRzUGF0aCA9IFwiL3BhZ2VzL1wiICsgdGhpcy5nZXRWaWV3KCkuZ2V0SWQoKTtcblxuXHRcdG9VSU1vZGVsLnNldFByb3BlcnR5KHNQYXRoLCB7XG5cdFx0XHRjb250cm9sczoge31cblx0XHR9KTtcblx0XHRvSW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShzUGF0aCwge1xuXHRcdFx0Y29udHJvbHM6IHt9LFxuXHRcdFx0Y29sbGFib3JhdGlvbjoge31cblx0XHR9KTtcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcInVpXCJcblx0XHR9KTtcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcImludGVybmFsXCJcblx0XHR9KTtcblxuXHRcdC8vIGZvciB0aGUgdGltZSBiZWluZyBwcm92aWRlIGl0IGFsc28gcGFnZUludGVybmFsIGFzIHNvbWUgbWFjcm9zIGFjY2VzcyBpdCAtIHRvIGJlIHJlbW92ZWRcblx0XHR0aGlzLmdldFZpZXcoKS5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdG1vZGVsOiBcInBhZ2VJbnRlcm5hbFwiXG5cdFx0fSk7XG5cdFx0dGhpcy5nZXRWaWV3KCkuc2V0TW9kZWwob0ludGVybmFsTW9kZWwsIFwicGFnZUludGVybmFsXCIpO1xuXG5cdFx0Ly8gYXMgdGhlIG1vZGVsIHByb3BhZ2F0aW9uIGhhcHBlbnMgYWZ0ZXIgaW5pdCBidXQgd2UgYWN0dWFsbHkgd2FudCB0byBhY2Nlc3MgdGhlIGJpbmRpbmcgY29udGV4dCBpbiB0aGVcblx0XHQvLyBpbml0IHBoYXNlIGFscmVhZHkgc2V0dGluZyB0aGUgbW9kZWwgaGVyZVxuXHRcdHRoaXMuZ2V0VmlldygpLnNldE1vZGVsKG9VSU1vZGVsLCBcInVpXCIpO1xuXHRcdHRoaXMuZ2V0VmlldygpLnNldE1vZGVsKG9JbnRlcm5hbE1vZGVsLCBcImludGVybmFsXCIpO1xuXHR9XG5cdEBQdWJsaWNcblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0aWYgKHRoaXMucGxhY2Vob2xkZXIuYXR0YWNoSGlkZUNhbGxiYWNrKSB7XG5cdFx0XHR0aGlzLnBsYWNlaG9sZGVyLmF0dGFjaEhpZGVDYWxsYmFjaygpO1xuXHRcdH1cblx0fVxuXHRAUHVibGljXG5cdGdldEV4dGVuc2lvbkFQSSh0aGlzOiBhbnkpOiBFeHRlbnNpb25BUEkge1xuXHRcdGlmICghdGhpcy5leHRlbnNpb25BUEkpIHtcblx0XHRcdHRoaXMuZXh0ZW5zaW9uQVBJID0gbmV3IEV4dGVuc2lvbkFQSSh0aGlzKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZXh0ZW5zaW9uQVBJO1xuXHR9XG5cdEBQdWJsaWNcblx0b25QYWdlUmVhZHkoKSB7XG5cdFx0Ly8gQXBwbHkgYXBwIHN0YXRlIG9ubHkgYWZ0ZXIgdGhlIHBhZ2UgaXMgcmVhZHkgd2l0aCB0aGUgZmlyc3Qgc2VjdGlvbiBzZWxlY3RlZFxuXHRcdCh0aGlzLmdldEFwcENvbXBvbmVudCgpIGFzIEFwcENvbXBvbmVudCkuZ2V0QXBwU3RhdGVIYW5kbGVyKCkuYXBwbHlBcHBTdGF0ZSgpO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBQYWdlQ29udHJvbGxlcjtcbiJdfQ==