@openui5/sap.ui.integration 1.98.0 → 1.101.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 (311) hide show
  1. package/.eslintrc.json +18 -0
  2. package/THIRDPARTY.txt +6 -6
  3. package/package.json +3 -3
  4. package/src/sap/ui/integration/.library +1 -1
  5. package/src/sap/ui/integration/ActionDefinition.js +1 -1
  6. package/src/sap/ui/integration/Designtime.js +1 -1
  7. package/src/sap/ui/integration/Extension.js +1 -1
  8. package/src/sap/ui/integration/Host.js +17 -3
  9. package/src/sap/ui/integration/cards/AdaptiveContent.js +5 -25
  10. package/src/sap/ui/integration/cards/AnalyticalContent.js +15 -2
  11. package/src/sap/ui/integration/cards/AnalyticsCloudContent.js +1 -1
  12. package/src/sap/ui/integration/cards/BaseContent.js +78 -7
  13. package/src/sap/ui/integration/cards/BaseContentRenderer.js +8 -3
  14. package/src/sap/ui/integration/cards/BaseListContent.js +49 -6
  15. package/src/sap/ui/integration/cards/CalendarContent.js +8 -4
  16. package/src/sap/ui/integration/cards/ComponentContent.js +1 -1
  17. package/src/sap/ui/integration/cards/Footer.js +25 -8
  18. package/src/sap/ui/integration/cards/Header.js +4 -2
  19. package/src/sap/ui/integration/cards/ListContent.js +3 -2
  20. package/src/sap/ui/integration/cards/ListContentRenderer.js +9 -5
  21. package/src/sap/ui/integration/cards/NumericHeader.js +5 -2
  22. package/src/sap/ui/integration/cards/ObjectContent.js +130 -7
  23. package/src/sap/ui/integration/cards/TableContent.js +3 -2
  24. package/src/sap/ui/integration/cards/TableContentRenderer.js +5 -4
  25. package/src/sap/ui/integration/cards/TimelineContent.js +3 -2
  26. package/src/sap/ui/integration/cards/TimelineContentRenderer.js +4 -7
  27. package/src/sap/ui/integration/cards/WebPageContent.js +1 -1
  28. package/src/sap/ui/integration/cards/actions/CardActions.js +15 -7
  29. package/src/sap/ui/integration/cards/actions/HideCardAction.js +45 -0
  30. package/src/sap/ui/integration/cards/actions/ShowCardAction.js +106 -0
  31. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputChoiceSet.js +44 -2
  32. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputDate.js +38 -3
  33. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputNumber.js +36 -3
  34. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputText.js +41 -4
  35. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputTime.js +26 -115
  36. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputToggle.js +36 -2
  37. package/src/sap/ui/integration/cards/adaptivecards/overwrites/ActionRender.js +6 -0
  38. package/src/sap/ui/integration/cards/adaptivecards/overwrites/inputsGeneralOverwrites.js +115 -0
  39. package/src/sap/ui/integration/cards/filters/BaseFilter.js +19 -2
  40. package/src/sap/ui/integration/cards/filters/DateRangeFilter.js +8 -2
  41. package/src/sap/ui/integration/cards/filters/FilterBar.js +1 -1
  42. package/src/sap/ui/integration/cards/filters/FilterBarFactory.js +1 -1
  43. package/src/sap/ui/integration/cards/filters/SearchFilter.js +11 -2
  44. package/src/sap/ui/integration/cards/filters/SelectFilter.js +7 -2
  45. package/src/sap/ui/integration/controls/ActionsStrip.js +61 -24
  46. package/src/sap/ui/integration/controls/ActionsToolbar.js +4 -3
  47. package/src/sap/ui/integration/controls/ActionsToolbarRenderer.js +1 -1
  48. package/src/sap/ui/integration/controls/LinkWithIcon.js +77 -0
  49. package/src/sap/ui/integration/controls/LinkWithIconRenderer.js +38 -0
  50. package/src/sap/ui/integration/controls/ListContentItem.js +1 -1
  51. package/src/sap/ui/integration/controls/ListContentItemRenderer.js +1 -1
  52. package/src/sap/ui/integration/controls/Microchart.js +1 -1
  53. package/src/sap/ui/integration/controls/MicrochartLegend.js +1 -1
  54. package/src/sap/ui/integration/controls/Paginator.js +373 -0
  55. package/src/sap/ui/integration/controls/PaginatorRenderer.js +115 -0
  56. package/src/sap/ui/integration/designtime/baseEditor/BaseEditor.js +6 -4
  57. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditor.js +1 -1
  58. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditors.js +1 -1
  59. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n.properties +11 -2
  60. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ar.properties +7 -1
  61. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_bg.properties +7 -1
  62. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ca.properties +7 -1
  63. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_cs.properties +7 -1
  64. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_cy.properties +7 -1
  65. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_da.properties +7 -1
  66. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_de.properties +7 -1
  67. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_el.properties +7 -1
  68. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en.properties +7 -1
  69. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_GB.properties +7 -1
  70. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_US_sappsd.properties +7 -1
  71. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_US_saprigi.properties +25 -13
  72. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_US_saptrc.properties +7 -1
  73. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_es.properties +7 -1
  74. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_es_MX.properties +7 -1
  75. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_et.properties +7 -1
  76. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_fi.properties +7 -1
  77. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_fr.properties +7 -1
  78. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_fr_CA.properties +7 -1
  79. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_hi.properties +7 -1
  80. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_hr.properties +7 -1
  81. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_hu.properties +7 -1
  82. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_id.properties +7 -1
  83. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_it.properties +7 -1
  84. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_iw.properties +7 -1
  85. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ja.properties +7 -1
  86. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_kk.properties +7 -1
  87. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ko.properties +7 -1
  88. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_lt.properties +7 -1
  89. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_lv.properties +7 -1
  90. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ms.properties +7 -1
  91. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_nl.properties +7 -1
  92. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_no.properties +7 -1
  93. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_pl.properties +7 -1
  94. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_pt.properties +7 -1
  95. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_pt_PT.properties +7 -1
  96. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ro.properties +7 -1
  97. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ru.properties +7 -1
  98. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_sh.properties +7 -1
  99. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_sk.properties +7 -1
  100. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_sl.properties +7 -1
  101. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_sv.properties +7 -1
  102. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_th.properties +7 -1
  103. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_tr.properties +7 -1
  104. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_uk.properties +7 -1
  105. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_vi.properties +7 -1
  106. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_zh_CN.properties +7 -1
  107. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_zh_TW.properties +7 -1
  108. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/BasePropertyEditor.js +1 -1
  109. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/PropertyEditorFactory.js +1 -1
  110. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/arrayEditor/ArrayEditor.js +1 -1
  111. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  112. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateEditor/DateEditor.js +1 -1
  113. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateTimeEditor/DateTimeEditor.js +1 -1
  114. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/enumStringEditor/EnumStringEditor.js +1 -1
  115. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/groupEditor/GroupEditor.js +1 -1
  116. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  117. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IsInIconPool.validator.js +1 -1
  118. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/integerEditor/IntegerEditor.js +1 -1
  119. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/jsonEditor/JsonEditor.js +1 -1
  120. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/listEditor/ListEditor.js +1 -1
  121. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/mapEditor/MapEditor.js +11 -3
  122. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/multiSelectEditor/MultiSelectEditor.js +1 -1
  123. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/numberEditor/NumberEditor.js +1 -1
  124. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/objectArrayEditor/ObjectArrayEditor.fragment.xml +14 -0
  125. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/objectArrayEditor/ObjectArrayEditor.js +102 -0
  126. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/selectEditor/SelectEditor.js +1 -1
  127. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/separatorEditor/SeparatorEditor.js +1 -1
  128. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/stringEditor/StringEditor.js +1 -1
  129. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/textAreaEditor/TextAreaEditor.js +5 -2
  130. package/src/sap/ui/integration/designtime/baseEditor/util/StylesheetManager.js +1 -1
  131. package/src/sap/ui/integration/designtime/baseEditor/util/binding/ObjectBinding.js +1 -1
  132. package/src/sap/ui/integration/designtime/baseEditor/util/createPromise.js +1 -1
  133. package/src/sap/ui/integration/designtime/baseEditor/util/unset.js +1 -1
  134. package/src/sap/ui/integration/designtime/baseEditor/validator/IsBoolean.js +1 -1
  135. package/src/sap/ui/integration/designtime/baseEditor/validator/IsDate.js +1 -1
  136. package/src/sap/ui/integration/designtime/baseEditor/validator/IsInteger.js +1 -1
  137. package/src/sap/ui/integration/designtime/baseEditor/validator/IsNumber.js +1 -1
  138. package/src/sap/ui/integration/designtime/baseEditor/validator/IsSelectedKey.js +1 -1
  139. package/src/sap/ui/integration/designtime/baseEditor/validator/IsStringList.js +1 -1
  140. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueKey.js +1 -1
  141. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueList.js +1 -1
  142. package/src/sap/ui/integration/designtime/baseEditor/validator/IsValidBinding.js +1 -1
  143. package/src/sap/ui/integration/designtime/baseEditor/validator/MaxLength.js +1 -1
  144. package/src/sap/ui/integration/designtime/baseEditor/validator/NotABinding.js +1 -1
  145. package/src/sap/ui/integration/designtime/baseEditor/validator/ValidatorRegistry.js +2 -2
  146. package/src/sap/ui/integration/designtime/cardEditor/BASEditor.js +22 -21
  147. package/src/sap/ui/integration/designtime/cardEditor/CardEditor.js +4 -4
  148. package/src/sap/ui/integration/designtime/cardEditor/config/index.js +3 -1
  149. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n.properties +9 -0
  150. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ar.properties +5 -1
  151. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_bg.properties +5 -1
  152. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ca.properties +5 -1
  153. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_cs.properties +5 -1
  154. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_cy.properties +5 -1
  155. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_da.properties +5 -1
  156. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_de.properties +5 -1
  157. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_el.properties +5 -1
  158. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en.properties +4 -0
  159. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en_GB.properties +4 -0
  160. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en_US_sappsd.properties +4 -0
  161. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en_US_saprigi.properties +48 -0
  162. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_en_US_saptrc.properties +4 -0
  163. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_es.properties +5 -1
  164. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_es_MX.properties +5 -1
  165. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_et.properties +5 -1
  166. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_fi.properties +5 -1
  167. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_fr.properties +5 -1
  168. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_fr_CA.properties +5 -1
  169. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_hi.properties +5 -1
  170. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_hr.properties +5 -1
  171. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_hu.properties +5 -1
  172. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_id.properties +5 -1
  173. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_it.properties +5 -1
  174. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_iw.properties +5 -1
  175. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ja.properties +5 -1
  176. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_kk.properties +5 -1
  177. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ko.properties +5 -1
  178. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_lt.properties +5 -1
  179. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_lv.properties +5 -1
  180. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ms.properties +5 -1
  181. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_nl.properties +5 -1
  182. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_no.properties +5 -1
  183. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_pl.properties +5 -1
  184. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_pt.properties +5 -1
  185. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_pt_PT.properties +5 -1
  186. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ro.properties +5 -1
  187. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_ru.properties +5 -1
  188. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_sh.properties +5 -1
  189. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_sk.properties +5 -1
  190. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_sl.properties +5 -1
  191. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_sv.properties +5 -1
  192. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_th.properties +5 -1
  193. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_tr.properties +5 -1
  194. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_uk.properties +5 -1
  195. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_vi.properties +5 -1
  196. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_zh_CN.properties +5 -1
  197. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_zh_TW.properties +5 -1
  198. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/complexMapEditor/ComplexMapEditor.js +1 -1
  199. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/destinationsEditor/DestinationsEditor.js +1 -1
  200. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/filtersEditor/FiltersEditor.js +1 -1
  201. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  202. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/parametersEditor/ParametersEditor.js +34 -3
  203. package/src/sap/ui/integration/designtime/editor/CardEditor.js +88 -8
  204. package/src/sap/ui/integration/designtime/editor/CardPreview.js +1 -1
  205. package/src/sap/ui/integration/editor/Editor.js +823 -150
  206. package/src/sap/ui/integration/editor/EditorResourceBundles.js +1 -1
  207. package/src/sap/ui/integration/editor/Extension.js +1 -1
  208. package/src/sap/ui/integration/editor/Manifest.js +1 -1
  209. package/src/sap/ui/integration/editor/Settings.js +1 -1
  210. package/src/sap/ui/integration/editor/css/Editor.css +134 -11
  211. package/src/sap/ui/integration/editor/fields/BaseField.js +20 -11
  212. package/src/sap/ui/integration/editor/fields/BooleanField.js +1 -1
  213. package/src/sap/ui/integration/editor/fields/DateField.js +1 -1
  214. package/src/sap/ui/integration/editor/fields/DateTimeField.js +1 -1
  215. package/src/sap/ui/integration/editor/fields/DestinationField.js +1 -1
  216. package/src/sap/ui/integration/editor/fields/IntegerField.js +16 -2
  217. package/src/sap/ui/integration/editor/fields/NumberField.js +1 -1
  218. package/src/sap/ui/integration/editor/fields/ObjectField.js +1263 -0
  219. package/src/sap/ui/integration/editor/fields/ObjectListField.js +360 -0
  220. package/src/sap/ui/integration/editor/fields/StringField.js +6 -4
  221. package/src/sap/ui/integration/editor/fields/{ListField.js → StringListField.js} +93 -107
  222. package/src/sap/ui/integration/editor/fields/viz/ColorSelect.js +1 -1
  223. package/src/sap/ui/integration/editor/fields/viz/IconSelect.js +1 -1
  224. package/src/sap/ui/integration/editor/fields/viz/ShapeSelect.js +1 -1
  225. package/src/sap/ui/integration/formatters/InitialsFormatter.js +38 -0
  226. package/src/sap/ui/integration/library.js +28 -17
  227. package/src/sap/ui/integration/messagebundle.properties +93 -0
  228. package/src/sap/ui/integration/messagebundle_ar.properties +60 -2
  229. package/src/sap/ui/integration/messagebundle_bg.properties +62 -4
  230. package/src/sap/ui/integration/messagebundle_ca.properties +60 -2
  231. package/src/sap/ui/integration/messagebundle_cs.properties +60 -2
  232. package/src/sap/ui/integration/messagebundle_cy.properties +60 -2
  233. package/src/sap/ui/integration/messagebundle_da.properties +60 -2
  234. package/src/sap/ui/integration/messagebundle_de.properties +60 -2
  235. package/src/sap/ui/integration/messagebundle_el.properties +60 -2
  236. package/src/sap/ui/integration/messagebundle_en.properties +60 -2
  237. package/src/sap/ui/integration/messagebundle_en_GB.properties +60 -2
  238. package/src/sap/ui/integration/messagebundle_en_US_sappsd.properties +58 -0
  239. package/src/sap/ui/integration/messagebundle_en_US_saprigi.properties +143 -55
  240. package/src/sap/ui/integration/messagebundle_en_US_saptrc.properties +58 -0
  241. package/src/sap/ui/integration/messagebundle_es.properties +60 -2
  242. package/src/sap/ui/integration/messagebundle_es_MX.properties +60 -2
  243. package/src/sap/ui/integration/messagebundle_et.properties +60 -2
  244. package/src/sap/ui/integration/messagebundle_fi.properties +61 -3
  245. package/src/sap/ui/integration/messagebundle_fr.properties +60 -2
  246. package/src/sap/ui/integration/messagebundle_fr_CA.properties +60 -2
  247. package/src/sap/ui/integration/messagebundle_hi.properties +60 -2
  248. package/src/sap/ui/integration/messagebundle_hr.properties +60 -2
  249. package/src/sap/ui/integration/messagebundle_hu.properties +60 -2
  250. package/src/sap/ui/integration/messagebundle_id.properties +60 -2
  251. package/src/sap/ui/integration/messagebundle_it.properties +60 -2
  252. package/src/sap/ui/integration/messagebundle_iw.properties +60 -2
  253. package/src/sap/ui/integration/messagebundle_ja.properties +60 -2
  254. package/src/sap/ui/integration/messagebundle_kk.properties +60 -2
  255. package/src/sap/ui/integration/messagebundle_ko.properties +60 -2
  256. package/src/sap/ui/integration/messagebundle_lt.properties +60 -2
  257. package/src/sap/ui/integration/messagebundle_lv.properties +60 -2
  258. package/src/sap/ui/integration/messagebundle_ms.properties +60 -2
  259. package/src/sap/ui/integration/messagebundle_nl.properties +60 -2
  260. package/src/sap/ui/integration/messagebundle_no.properties +60 -2
  261. package/src/sap/ui/integration/messagebundle_pl.properties +60 -2
  262. package/src/sap/ui/integration/messagebundle_pt.properties +60 -2
  263. package/src/sap/ui/integration/messagebundle_pt_PT.properties +60 -2
  264. package/src/sap/ui/integration/messagebundle_ro.properties +60 -2
  265. package/src/sap/ui/integration/messagebundle_ru.properties +60 -2
  266. package/src/sap/ui/integration/messagebundle_sh.properties +60 -2
  267. package/src/sap/ui/integration/messagebundle_sk.properties +60 -2
  268. package/src/sap/ui/integration/messagebundle_sl.properties +60 -2
  269. package/src/sap/ui/integration/messagebundle_sv.properties +60 -2
  270. package/src/sap/ui/integration/messagebundle_th.properties +60 -2
  271. package/src/sap/ui/integration/messagebundle_tr.properties +60 -2
  272. package/src/sap/ui/integration/messagebundle_uk.properties +63 -5
  273. package/src/sap/ui/integration/messagebundle_vi.properties +60 -2
  274. package/src/sap/ui/integration/messagebundle_zh_CN.properties +60 -2
  275. package/src/sap/ui/integration/messagebundle_zh_TW.properties +60 -2
  276. package/src/sap/ui/integration/model/ContextModel.js +1 -1
  277. package/src/sap/ui/integration/model/ObservableModel.js +14 -5
  278. package/src/sap/ui/integration/model/PagingModelListBinding.js +40 -0
  279. package/src/sap/ui/integration/sap-ui-integration-define-nojQuery.js +2 -1
  280. package/src/sap/ui/integration/schemas/sap-card.json +134 -26
  281. package/src/sap/ui/integration/themes/base/ActionsStrip.less +15 -0
  282. package/src/sap/ui/integration/themes/base/CalendarContent.less +2 -2
  283. package/src/sap/ui/integration/themes/base/Card.less +24 -0
  284. package/src/sap/ui/integration/themes/base/Footer.less +10 -0
  285. package/src/sap/ui/integration/themes/base/LinkWithIcon.less +11 -0
  286. package/src/sap/ui/integration/themes/base/ListContentItem.less +11 -0
  287. package/src/sap/ui/integration/themes/base/ObjectContent.less +16 -0
  288. package/src/sap/ui/integration/themes/base/Paginator.less +144 -0
  289. package/src/sap/ui/integration/themes/base/library.source.less +4 -0
  290. package/src/sap/ui/integration/util/BaseFactory.js +1 -1
  291. package/src/sap/ui/integration/util/BindingHelper.js +13 -6
  292. package/src/sap/ui/integration/util/BindingResolver.js +1 -1
  293. package/src/sap/ui/integration/util/CacheAndRequestDataProvider.js +4 -30
  294. package/src/sap/ui/integration/util/CardObserver.js +1 -1
  295. package/src/sap/ui/integration/util/ContentFactory.js +1 -1
  296. package/src/sap/ui/integration/util/CsrfTokenHandler.js +1 -1
  297. package/src/sap/ui/integration/util/DataProvider.js +1 -1
  298. package/src/sap/ui/integration/util/DataProviderFactory.js +8 -1
  299. package/src/sap/ui/integration/util/Destinations.js +4 -2
  300. package/src/sap/ui/integration/util/ExtensionDataProvider.js +1 -1
  301. package/src/sap/ui/integration/util/HeaderFactory.js +39 -3
  302. package/src/sap/ui/integration/util/JSONBindingHelper.js +1 -1
  303. package/src/sap/ui/integration/util/LoadingProvider.js +17 -7
  304. package/src/sap/ui/integration/util/Manifest.js +7 -3
  305. package/src/sap/ui/integration/util/ManifestResolver.js +2 -1
  306. package/src/sap/ui/integration/util/RequestDataProvider.js +31 -5
  307. package/src/sap/ui/integration/util/ServiceDataProvider.js +1 -1
  308. package/src/sap/ui/integration/util/ServiceManager.js +1 -1
  309. package/src/sap/ui/integration/util/SkeletonCard.js +14 -2
  310. package/src/sap/ui/integration/util/Utils.js +16 -4
  311. package/src/sap/ui/integration/widgets/Card.js +358 -88
@@ -15,10 +15,8 @@ sap.ui.define([
15
15
  "sap/base/Log",
16
16
  "sap/base/util/merge",
17
17
  "sap/base/util/deepEqual",
18
+ "sap/base/util/each",
18
19
  "sap/ui/integration/util/DataProviderFactory",
19
- "sap/m/HBox",
20
- "sap/ui/core/Icon",
21
- "sap/m/Text",
22
20
  "sap/ui/model/json/JSONModel",
23
21
  "sap/ui/integration/model/ObservableModel",
24
22
  "sap/ui/model/resource/ResourceModel",
@@ -35,7 +33,13 @@ sap.ui.define([
35
33
  "sap/ui/integration/formatters/IconFormatter",
36
34
  "sap/ui/integration/cards/filters/FilterBarFactory",
37
35
  "sap/ui/integration/cards/actions/CardActions",
38
- "sap/ui/integration/util/CardObserver"
36
+ "sap/ui/integration/util/CardObserver",
37
+ "sap/m/IllustratedMessage",
38
+ "sap/m/IllustratedMessageType",
39
+ "sap/m/IllustratedMessageSize",
40
+ "sap/ui/integration/util/Utils",
41
+ "sap/m/HBox",
42
+ "sap/m/library"
39
43
  ], function (
40
44
  CardRenderer,
41
45
  Footer,
@@ -48,10 +52,8 @@ sap.ui.define([
48
52
  Log,
49
53
  merge,
50
54
  deepEqual,
55
+ each,
51
56
  DataProviderFactory,
52
- HBox,
53
- Icon,
54
- Text,
55
57
  JSONModel,
56
58
  ObservableModel,
57
59
  ResourceModel,
@@ -68,7 +70,13 @@ sap.ui.define([
68
70
  IconFormatter,
69
71
  FilterBarFactory,
70
72
  CardActions,
71
- CardObserver
73
+ CardObserver,
74
+ IllustratedMessage,
75
+ IllustratedMessageType,
76
+ IllustratedMessageSize,
77
+ Utils,
78
+ HBox,
79
+ mLibrary
72
80
  ) {
73
81
  "use strict";
74
82
 
@@ -84,23 +92,33 @@ sap.ui.define([
84
92
  PARAMS: "/sap.card/configuration/parameters",
85
93
  DESTINATIONS: "/sap.card/configuration/destinations",
86
94
  CSRF_TOKENS: "/sap.card/configuration/csrfTokens",
87
- FILTERS: "/sap.card/configuration/filters"
95
+ FILTERS: "/sap.card/configuration/filters",
96
+ ERROR_MESSAGES: "/sap.card/configuration/messages"
88
97
  };
89
98
 
90
99
  /**
91
100
  * @const A list of model names which are used internally by the card.
92
101
  */
93
- var RESERVED_MODEL_NAMES = ["parameters", "filters", "form", "context", "i18n"];
102
+ var RESERVED_MODEL_NAMES = ["parameters", "filters", "paginator", "form", "context", "i18n"];
94
103
 
95
104
  var RESERVED_PARAMETER_NAMES = ["visibleItems", "allItems"];
96
105
 
97
106
  var HeaderPosition = fLibrary.cards.HeaderPosition;
98
107
 
108
+ var CardArea = library.CardArea;
109
+
99
110
  var CardDataMode = library.CardDataMode;
100
111
 
101
112
  var CARD_DESTROYED_ERROR = "Card is destroyed!";
102
113
 
103
- var CardArea = library.CardArea;
114
+ var FlexRendertype = mLibrary.FlexRendertype;
115
+
116
+ var FlexJustifyContent = mLibrary.FlexJustifyContent;
117
+
118
+ var FlexAlignItems = mLibrary.FlexAlignItems;
119
+
120
+ var MODULE_PREFIX = "module:";
121
+
104
122
 
105
123
  /**
106
124
  * Constructor for a new <code>Card</code>.
@@ -159,7 +177,7 @@ sap.ui.define([
159
177
  * @extends sap.f.CardBase
160
178
  *
161
179
  * @author SAP SE
162
- * @version 1.98.0
180
+ * @version 1.101.0
163
181
  * @public
164
182
  * @constructor
165
183
  * @see {@link topic:5b46b03f024542ba802d99d67bc1a3f4 Cards}
@@ -392,7 +410,14 @@ sap.ui.define([
392
410
  /**
393
411
  * The host.
394
412
  */
395
- host: {}
413
+ host: {},
414
+
415
+ /**
416
+ * The opener card.
417
+ * @private
418
+ * @ui5-restricted
419
+ */
420
+ openerReference: { visibility: "hidden" }
396
421
  }
397
422
  },
398
423
  renderer: CardRenderer
@@ -410,6 +435,7 @@ sap.ui.define([
410
435
  this.setModel(new JSONModel()); // always create a default model to isolate the card from a propagated default model
411
436
  this.setModel(new JSONModel(), "parameters");
412
437
  this.setModel(new JSONModel(), "filters");
438
+ this.setModel(new JSONModel(), "paginator");
413
439
  this.setModel(new JSONModel(), "form");
414
440
  // this.setModel(new JSONModel(), "csrfTokens");
415
441
  this.setModel(new ContextModel(), "context");
@@ -428,7 +454,7 @@ sap.ui.define([
428
454
  * @experimental since 1.79
429
455
  * @public
430
456
  * @author SAP SE
431
- * @version 1.98.0
457
+ * @version 1.101.0
432
458
  * @borrows sap.ui.integration.widgets.Card#getDomRef as getDomRef
433
459
  * @borrows sap.ui.integration.widgets.Card#setVisible as setVisible
434
460
  * @borrows sap.ui.integration.widgets.Card#getParameters as getParameters
@@ -452,6 +478,9 @@ sap.ui.define([
452
478
  * @borrows sap.ui.integration.widgets.Card#destroyActionDefinition as destroyActionDefinition
453
479
  * @borrows sap.ui.integration.widgets.Card#showLoadingPlaceholders as showLoadingPlaceholders
454
480
  * @borrows sap.ui.integration.widgets.Card#hideLoadingPlaceholders as hideLoadingPlaceholders
481
+ * @borrows sap.ui.integration.widgets.Card#showCard as showCard
482
+ * @borrows sap.ui.integration.widgets.Card#hide as hide
483
+ * @borrows sap.ui.integration.widgets.Card#getOpener as getOpener
455
484
  */
456
485
  this._oLimitedInterface = new Interface(this, [
457
486
  "getDomRef",
@@ -476,7 +505,10 @@ sap.ui.define([
476
505
  "indexOfActionDefinition",
477
506
  "destroyActionDefinition",
478
507
  "showLoadingPlaceholders",
479
- "hideLoadingPlaceholders"
508
+ "hideLoadingPlaceholders",
509
+ "showCard",
510
+ "hide",
511
+ "getOpener"
480
512
  ]);
481
513
  };
482
514
 
@@ -522,7 +554,6 @@ sap.ui.define([
522
554
  this.startManifestProcessing();
523
555
  };
524
556
 
525
-
526
557
  /**
527
558
  * Called after rendering of the control.
528
559
  * @private
@@ -545,20 +576,23 @@ sap.ui.define([
545
576
  * @ui5-restricted
546
577
  */
547
578
  Card.prototype.startManifestProcessing = function () {
579
+ if (!Utils.isBindingSyntaxComplex()) {
580
+ this._logFundamentalError(
581
+ "Cannot parse manifest. Complex binding syntax is not enabled - " +
582
+ "To enable it, set the 'compatVersion' configuration option to 'edge', e.g.: data-sap-ui-compatVersion='edge' - " +
583
+ "sap.ui.integration.widgets.Card"
584
+ );
585
+ }
586
+
548
587
  if (this._bApplyManifest || this._bApplyParameters) {
549
588
  this._clearReadyState();
550
589
  this._initReadyState();
551
590
  }
552
591
 
553
- if (this._bApplyManifest) {
554
- var vManifest = this.getManifest();
555
-
556
- if (!vManifest) {
557
- // Destroy the manifest when null/undefined/empty string are passed
558
- this.destroyManifest();
559
- } else {
560
- this.createManifest(vManifest, this.getBaseUrl());
561
- }
592
+ var vManifest = this.getManifest();
593
+ if (vManifest && this._bApplyManifest) {
594
+ this._cleanupOldManifest();
595
+ this.createManifest(vManifest, this.getBaseUrl());
562
596
  }
563
597
 
564
598
  if (!this._bApplyManifest && this._bApplyParameters) {
@@ -573,9 +607,17 @@ sap.ui.define([
573
607
  };
574
608
 
575
609
  Card.prototype.setManifest = function (vValue) {
576
- this.setProperty("manifest", vValue);
577
- this.destroyActionDefinitions();
610
+ if (!deepEqual(this.getProperty("manifest"), vValue)) {
611
+ this.destroyActionDefinitions();
612
+ }
613
+
614
+ if (!vValue) {
615
+ // Destroy the manifest when null/undefined/empty string is passed
616
+ this._destroyManifest();
617
+ }
618
+
578
619
  this._bApplyManifest = true;
620
+ this.setProperty("manifest", vValue);
579
621
  return this;
580
622
  };
581
623
 
@@ -658,7 +700,6 @@ sap.ui.define([
658
700
  if (this._oCardManifest) {
659
701
  this._oCardManifest.destroy();
660
702
  }
661
- this.destroyAggregation("_extension");
662
703
 
663
704
  this._oCardManifest = new CardManifest("sap.card", vManifest, sBaseUrl, this.getManifestChanges());
664
705
 
@@ -691,13 +732,18 @@ sap.ui.define([
691
732
  * @returns {Promise|null} Null if there is no need to load extension, else a promise.
692
733
  */
693
734
  Card.prototype._loadExtension = function () {
694
- var sExtensionPath = this._oCardManifest.get("/sap.card/extension");
735
+ var sExtensionPath = this._oCardManifest.get("/sap.card/extension"),
736
+ sFullExtensionPath;
695
737
 
696
738
  if (!sExtensionPath) {
697
739
  return null;
698
740
  }
699
741
 
700
- var sFullExtensionPath = this._oCardManifest.get("/sap.app/id").replace(/\./g, "/") + "/" + sExtensionPath;
742
+ if (sExtensionPath.startsWith(MODULE_PREFIX)) {
743
+ sFullExtensionPath = sExtensionPath.replace(MODULE_PREFIX, "");
744
+ } else {
745
+ sFullExtensionPath = this._oCardManifest.get("/sap.app/id").replace(/\./g, "/") + "/" + sExtensionPath;
746
+ }
701
747
 
702
748
  return new Promise(function (resolve, reject) {
703
749
  sap.ui.require([sFullExtensionPath], function (ExtensionSubclass) {
@@ -707,9 +753,9 @@ sap.ui.define([
707
753
 
708
754
  resolve();
709
755
  }.bind(this), function (vErr) {
710
- this._logFundamentalError("Failed to load " + sExtensionPath + ". Check if the path is correct. Reason: " + vErr);
756
+ this._logFundamentalError("Failed to load " + sFullExtensionPath + ". Check if the path is correct. Reason: " + vErr);
711
757
  reject(vErr);
712
- });
758
+ }.bind(this));
713
759
  }.bind(this));
714
760
  };
715
761
 
@@ -921,6 +967,10 @@ sap.ui.define([
921
967
  * @since 1.95
922
968
  */
923
969
  Card.prototype.refreshData = function () {
970
+ if (!this.isReady()) {
971
+ return;
972
+ }
973
+
924
974
  var oHeader = this.getCardHeader(),
925
975
  oContent = this.getCardContent(),
926
976
  oFilterBar = this.getAggregation("_filterBar");
@@ -937,6 +987,7 @@ sap.ui.define([
937
987
  oContent.refreshData();
938
988
  } else {
939
989
  this.destroyAggregation("_content");
990
+ this._destroyTemporaryContent();
940
991
  this._applyContentManifestSettings();
941
992
  }
942
993
 
@@ -979,7 +1030,7 @@ sap.ui.define([
979
1030
 
980
1031
  CardBase.prototype.exit.call(this);
981
1032
 
982
- this.destroyManifest();
1033
+ this._destroyManifest();
983
1034
  this._oCardObserver.destroy();
984
1035
  this._oCardObserver = null;
985
1036
  this._oContentFactory = null;
@@ -994,7 +1045,7 @@ sap.ui.define([
994
1045
  /**
995
1046
  * Destroys everything configured by the manifest.
996
1047
  */
997
- Card.prototype.destroyManifest = function () {
1048
+ Card.prototype._destroyManifest = function () {
998
1049
  if (this._oCardManifest) {
999
1050
  this._oCardManifest.destroy();
1000
1051
  this._oCardManifest = null;
@@ -1004,18 +1055,6 @@ sap.ui.define([
1004
1055
  this._oServiceManager = null;
1005
1056
  }
1006
1057
 
1007
- // destroying the factory would also destroy the data provider
1008
- if (this._oDataProviderFactory) {
1009
- this._oDataProviderFactory.destroy();
1010
- this._oDataProviderFactory = null;
1011
- this._oDataProvider = null;
1012
- }
1013
-
1014
- if (this._oTemporaryContent) {
1015
- this._oTemporaryContent.destroy();
1016
- this._oTemporaryContent = null;
1017
- }
1018
-
1019
1058
  if (this._oDestinations) {
1020
1059
  this._oDestinations.destroy();
1021
1060
  this._oDestinations = null;
@@ -1036,15 +1075,35 @@ sap.ui.define([
1036
1075
  this.destroyAggregation("_content");
1037
1076
  this.destroyAggregation("_footer");
1038
1077
 
1078
+ this._cleanupOldManifest();
1079
+ };
1080
+
1081
+ /**
1082
+ * Cleans up internal models and other before new manifest processing.
1083
+ */
1084
+ Card.prototype._cleanupOldManifest = function() {
1039
1085
  this._aReadyPromises = null;
1040
1086
 
1041
1087
  this.getModel("filters").setData({});
1042
1088
  this.getModel("parameters").setData({});
1043
- // this.getModel("csrfTokens").setData({});
1089
+ this.getModel("paginator").setData({});
1090
+
1091
+ this.setModel(null, "i18n");
1044
1092
 
1045
1093
  this._oContextParameters = null;
1046
1094
 
1047
1095
  this._deregisterCustomModels();
1096
+
1097
+ this.destroyAggregation("_extension");
1098
+
1099
+ this._destroyTemporaryContent();
1100
+
1101
+ // destroying the factory would also destroy the data provider
1102
+ if (this._oDataProviderFactory) {
1103
+ this._oDataProviderFactory.destroy();
1104
+ this._oDataProviderFactory = null;
1105
+ this._oDataProvider = null;
1106
+ }
1048
1107
  };
1049
1108
 
1050
1109
  /**
@@ -1179,24 +1238,23 @@ sap.ui.define([
1179
1238
  };
1180
1239
 
1181
1240
  /**
1182
- * Displays a message strip on top of the content with the given text.
1183
- *
1184
- * <b>Note</b> Currently only available for an Adaptive Card.
1241
+ * Displays a message strip above the content with the given text.
1242
+ * There can be only 1 message displayed. If there is a previous message, it is removed.
1243
+ * Can be used only after the <code>manifestApplied</code> event is fired.
1185
1244
  *
1186
1245
  * @public
1187
1246
  * @experimental As of version 1.81
1188
1247
  * @param {string} sMessage The message.
1189
1248
  * @param {sap.ui.core.MessageType} sType Type of the message.
1190
1249
  */
1191
- Card.prototype.showMessage = function (sMessage, sType) {
1192
- var oContent = this.getCardContent();
1193
-
1194
- if (!oContent || !oContent.showMessage) {
1195
- Log.error("The experimental feature 'showMessage' is currently available only for an Adaptive Card.");
1196
- return;
1250
+ Card.prototype.showMessage = function (sMessage, sType) {
1251
+ if (this._createContentPromise) {
1252
+ this._createContentPromise.then(function (oContent) {
1253
+ oContent.showMessage(sMessage, sType);
1254
+ });
1255
+ } else {
1256
+ Log.error("'showMessage' cannot be used before the card instance is ready. Consider using the event 'manifestApplied' event.", "sap.ui.integration.widgets.Card");
1197
1257
  }
1198
-
1199
- oContent.showMessage(sMessage, sType);
1200
1258
  };
1201
1259
 
1202
1260
  /**
@@ -1393,6 +1451,13 @@ sap.ui.define([
1393
1451
  }
1394
1452
 
1395
1453
  oModel.attachEvent("change", function () {
1454
+ var oCardContent = this.getAggregation("_content");
1455
+ if (oCardContent && !oCardContent.isA("sap.ui.integration.cards.BaseContent")) {
1456
+ this.destroyAggregation("_content");
1457
+ this._destroyTemporaryContent();
1458
+ this._applyContentManifestSettings();
1459
+ }
1460
+
1396
1461
  if (this._createContentPromise) {
1397
1462
  this._createContentPromise.then(function (oContent) {
1398
1463
  oContent.onDataChanged();
@@ -1671,7 +1736,7 @@ sap.ui.define([
1671
1736
  }
1672
1737
 
1673
1738
  oContent.attachEvent("_error", function (oEvent) {
1674
- this._handleError(oEvent.getParameter("logMessage"), oEvent.getParameter("displayMessage"));
1739
+ this._handleError(oEvent.getParameter("logMessage"));
1675
1740
  }.bind(this));
1676
1741
 
1677
1742
  var oPreviousContent = this.getAggregation("_content");
@@ -1727,7 +1792,7 @@ sap.ui.define([
1727
1792
  return;
1728
1793
  }
1729
1794
 
1730
- sHeight = ContentClass.getMetadata().getRenderer().getMinHeight(oContentManifest, oError);
1795
+ sHeight = ContentClass.getMetadata().getRenderer().getMinHeight(oContentManifest, oError, this);
1731
1796
 
1732
1797
  if (this.getHeight() === "auto") { // if there is no height specified the default value is "auto"
1733
1798
  oError.$().css({"min-height": sHeight});
@@ -1753,22 +1818,11 @@ sap.ui.define([
1753
1818
  }
1754
1819
  };
1755
1820
 
1756
- /**
1757
- * Creates a control representation of an error.
1758
- *
1759
- * @param {string} sErrorMessage Error message
1760
- * @private
1761
- * @returns {sap.ui.core.Control} control instance
1762
- */
1763
- Card.prototype._createError = function (sErrorMessage) {
1764
- return new HBox({
1765
- justifyContent: "Center",
1766
- alignItems: "Center",
1767
- items: [
1768
- new Icon({ src: "sap-icon://message-error", size: "1rem" }).addStyleClass("sapUiTinyMargin"),
1769
- new Text({ text: sErrorMessage })
1770
- ]
1771
- }).addStyleClass("sapFCardErrorContent");
1821
+ Card.prototype._destroyTemporaryContent = function () {
1822
+ if (this._oTemporaryContent) {
1823
+ this._oTemporaryContent.destroy();
1824
+ this._oTemporaryContent = null;
1825
+ }
1772
1826
  };
1773
1827
 
1774
1828
  /**
@@ -1777,20 +1831,24 @@ sap.ui.define([
1777
1831
  * If a message is not provided, a default message will be displayed.
1778
1832
  *
1779
1833
  * @param {string} sLogMessage Message that will be logged.
1780
- * @param {string} [sDisplayMessage] Message that will be displayed as an error in the card.
1834
+ * @param {boolean} bNoItems No items are available after request.
1781
1835
  * @private
1782
1836
  */
1783
- Card.prototype._handleError = function (sLogMessage, sDisplayMessage) {
1837
+ Card.prototype._handleError = function (sLogMessage, bNoItems) {
1784
1838
  this._loadDefaultTranslations();
1785
- Log.error(sLogMessage, null, "sap.ui.integration.widgets.Card");
1839
+ if (!bNoItems) {
1840
+ Log.error(sLogMessage, null, "sap.ui.integration.widgets.Card");
1841
+ }
1786
1842
 
1787
1843
  this.fireEvent("_error", { message: sLogMessage });
1788
1844
 
1789
- var sErrorMessage = sDisplayMessage || this._oIntegrationRb.getText("CARD_DATA_LOAD_ERROR"),
1790
- oError = this._createError(sErrorMessage),
1791
- oContentSection = this._oCardManifest.get(MANIFEST_PATHS.CONTENT);
1845
+ var oErrorConfiguration = this._oCardManifest.get(MANIFEST_PATHS.ERROR_MESSAGES),
1846
+ oError = this._getIllustratedMessage(oErrorConfiguration, bNoItems),
1847
+ oContentSection = this._oCardManifest.get(MANIFEST_PATHS.CONTENT),
1848
+ oCardContent = merge({}, this.getCardContent());
1792
1849
 
1793
1850
  if (oContentSection) {
1851
+ this._handleNoDataItems(oCardContent, oError, bNoItems);
1794
1852
  this._destroyPreviousContent(this.getCardContent());
1795
1853
  this._preserveMinHeightInContent(oError);
1796
1854
  this.setAggregation("_content", oError);
@@ -1801,11 +1859,83 @@ sap.ui.define([
1801
1859
 
1802
1860
  };
1803
1861
 
1862
+ /**
1863
+ * Get Illustrated message.
1864
+ *
1865
+ * @param {object} oErrorConfiguration Error settings from manifest.
1866
+ * @param {boolean} bNoItems No items are available after request.
1867
+ * @private
1868
+ */
1869
+ Card.prototype._getIllustratedMessage = function (oErrorConfiguration, bNoItems) {
1870
+ var sIllustratedMessageType = IllustratedMessageType.UnableToLoad,
1871
+ sIllustratedMessageSize = IllustratedMessageSize.Spot,
1872
+ sTitle,
1873
+ sDescription;
1874
+
1875
+ //no item from request default messages, for some card types
1876
+ if (bNoItems && !oErrorConfiguration) {
1877
+ switch (this._oCardManifest.get(MANIFEST_PATHS.TYPE)) {
1878
+ case "List":
1879
+ case "Timeline":
1880
+ sIllustratedMessageType = IllustratedMessageType.NoData;
1881
+ sTitle = this._oIntegrationRb.getText("CARD_NO_ITEMS_ERROR_LISTS");
1882
+ break;
1883
+ case "Table":
1884
+ sIllustratedMessageType = IllustratedMessageType.NoEntries;
1885
+ sTitle = this._oIntegrationRb.getText("CARD_NO_ITEMS_ERROR_LISTS");
1886
+ break;
1887
+ case "Analytical":
1888
+ sIllustratedMessageType = IllustratedMessageType.NoEntries;
1889
+ sTitle = this._oIntegrationRb.getText("CARD_NO_ITEMS_ERROR_CHART");
1890
+ }
1891
+ }
1892
+
1893
+ //custom no data message
1894
+ if (oErrorConfiguration && oErrorConfiguration.noData && bNoItems) {
1895
+ var oErrorData = oErrorConfiguration.noData;
1896
+ sIllustratedMessageType = IllustratedMessageType[oErrorData.type];
1897
+ sIllustratedMessageSize = IllustratedMessageSize[oErrorData.size];
1898
+ sTitle = oErrorData.title;
1899
+ sDescription = oErrorData.description;
1900
+ }
1901
+
1902
+
1903
+ var oIllustratedMessage = new IllustratedMessage({
1904
+ illustrationType: sIllustratedMessageType,
1905
+ illustrationSize: sIllustratedMessageSize,
1906
+ title: sTitle,
1907
+ description: sDescription ? sDescription : " "
1908
+ });
1909
+
1910
+ var oFlexBox = new HBox({
1911
+ renderType: FlexRendertype.Bare,
1912
+ justifyContent: FlexJustifyContent.Center,
1913
+ alignItems: FlexAlignItems.Center,
1914
+ width: "100%",
1915
+ items: [oIllustratedMessage]
1916
+ }).addStyleClass("sapFCardErrorContent");
1917
+ return oFlexBox;
1918
+ };
1919
+
1920
+ /**
1921
+ * Handle when there is no data in error cases for manifest resolver.
1922
+ *
1923
+ * @param {object} oCardContent clone of the original card content before it is destroyed.
1924
+ * @param {object} oError IllustratedMessage used for the error content.
1925
+ * @param {boolean} bNoItems No items are available after request.
1926
+ * @private
1927
+ */
1928
+ Card.prototype._handleNoDataItems = function (oCardContent, oError, bNoItems) {
1929
+ if (bNoItems && this._oCardManifest.get(MANIFEST_PATHS.TYPE) === "List") {
1930
+ oError._oCardOriginalContent = oCardContent;
1931
+ }
1932
+ };
1933
+
1804
1934
  Card.prototype._getTemporaryContent = function (sCardType, oContentManifest) {
1805
1935
  var oLoadingProvider = this.getAggregation("_loadingProvider");
1806
1936
 
1807
1937
  if (!this._oTemporaryContent && oLoadingProvider) {
1808
- this._oTemporaryContent = oLoadingProvider.createContentPlaceholder(oContentManifest, sCardType);
1938
+ this._oTemporaryContent = oLoadingProvider.createContentPlaceholder(oContentManifest, sCardType, this);
1809
1939
 
1810
1940
  this._oTemporaryContent.addEventDelegate({
1811
1941
  onAfterRendering: function () {
@@ -1813,7 +1943,7 @@ sap.ui.define([
1813
1943
  return;
1814
1944
  }
1815
1945
 
1816
- var sHeight = this._oContentFactory.getClass(sCardType).getMetadata().getRenderer().getMinHeight(oContentManifest, this._oTemporaryContent);
1946
+ var sHeight = this._oContentFactory.getClass(sCardType).getMetadata().getRenderer().getMinHeight(oContentManifest, this._oTemporaryContent, this);
1817
1947
 
1818
1948
  if (this.getHeight() === "auto") { // if there is no height specified the default value is "auto"
1819
1949
  this._oTemporaryContent.$().css({ "min-height": sHeight });
@@ -2017,7 +2147,7 @@ sap.ui.define([
2017
2147
  /**
2018
2148
  * Decides if the card needs a loading placeholder based on card level data provider
2019
2149
  *
2020
- * @returns {Boolean} Should card has a loading placeholder based on card level data provider.
2150
+ * @returns {boolean} Should card has a loading placeholder based on card level data provider.
2021
2151
  */
2022
2152
  Card.prototype.isLoading = function () {
2023
2153
  var oLoadingProvider = this.getAggregation("_loadingProvider");
@@ -2046,7 +2176,8 @@ sap.ui.define([
2046
2176
  };
2047
2177
 
2048
2178
  Card.prototype.onDataRequestComplete = function () {
2049
- var oContent = this.getCardContent();
2179
+ var oContent = this.getCardContent(),
2180
+ oLoadingProvider = this.getAggregation("_loadingProvider");
2050
2181
 
2051
2182
  this.fireEvent("_cardReady");
2052
2183
  this.hideLoadingPlaceholders(CardArea.Header);
@@ -2056,7 +2187,11 @@ sap.ui.define([
2056
2187
  this.hideLoadingPlaceholders(CardArea.Content);
2057
2188
  }
2058
2189
 
2059
- this.getAggregation("_loadingProvider").setLoading(false);
2190
+ if (oLoadingProvider) {
2191
+ oLoadingProvider.setLoading(false);
2192
+ }
2193
+
2194
+ this._fireContentDataChange();
2060
2195
  };
2061
2196
 
2062
2197
  /**
@@ -2069,7 +2204,7 @@ sap.ui.define([
2069
2204
  * @param {string} [oConfiguration.mode="cors"] The mode of the request. Possible values are "cors", "no-cors", "same-origin".
2070
2205
  * @param {string} [oConfiguration.method="GET"] The HTTP method. Possible values are "GET", "POST".
2071
2206
  * @param {Object} [oConfiguration.parameters] The request parameters. If the method is "POST" the parameters will be put as key/value pairs into the body of the request.
2072
- * @param {Object} [oConfiguration.dataType="json"] The expected Content-Type of the response. Possible values are "xml", "json", "text", "script", "html", "jsonp". Note: Complex Binding is not supported when a dataType is provided. Serialization of the response to an object is up to the developer.
2207
+ * @param {string} [oConfiguration.dataType="json"] The expected Content-Type of the response. Possible values are "xml", "json", "text", "script", "html", "jsonp". Note: Complex Binding is not supported when a dataType is provided. Serialization of the response to an object is up to the developer.
2073
2208
  * @param {Object} [oConfiguration.headers] The HTTP headers of the request.
2074
2209
  * @param {boolean} [oConfiguration.withCredentials=false] Indicates whether cross-site requests should be made using credentials.
2075
2210
  * @returns {Promise} Resolves when the request is successful, rejects otherwise.
@@ -2226,6 +2361,10 @@ sap.ui.define([
2226
2361
  }
2227
2362
  };
2228
2363
 
2364
+ Card.prototype._fireContentDataChange = function () {
2365
+ this.fireEvent("_contentDataChange");
2366
+ };
2367
+
2229
2368
  /**
2230
2369
  * @private
2231
2370
  */
@@ -2233,5 +2372,136 @@ sap.ui.define([
2233
2372
  return false;
2234
2373
  };
2235
2374
 
2375
+ /**
2376
+ * @private
2377
+ */
2378
+ Card.prototype.getContentPageSize = function (oContentConfig) {
2379
+ var iMaxItems = parseInt(BindingResolver.resolveValue(oContentConfig, this).maxItems) || 0,
2380
+ oFooter = this.getAggregation("_footer"),
2381
+ oPaginator;
2382
+
2383
+ if (!oFooter) {
2384
+ return iMaxItems;
2385
+ }
2386
+
2387
+ oPaginator = oFooter.getAggregation("paginator");
2388
+ if (!oPaginator) {
2389
+ return iMaxItems;
2390
+ }
2391
+
2392
+ if (oPaginator.getPageSize()) {
2393
+ return oPaginator.getPageSize();
2394
+ }
2395
+
2396
+ return iMaxItems;
2397
+ };
2398
+
2399
+ Card.prototype.hasPaginator = function () {
2400
+ var oManifestFooter = this._oCardManifest.get(MANIFEST_PATHS.FOOTER);
2401
+ return oManifestFooter && oManifestFooter.paginator;
2402
+ };
2403
+
2404
+ /**
2405
+ * Shows a child card. By default opens in a dialog.
2406
+ * @private
2407
+ * @ui5-restricted
2408
+ * @param {Object} oParameters The settings for showing the card.
2409
+ * @param {String|Object} oParameters.manifest Url to a manifest or the manifest itself.
2410
+ * @param {String} oParameters.baseUrl If manifest is an object - specify the base url to the card.
2411
+ * @param {Object} oParameters.parameters Parameters to be passed to the new card.
2412
+ * @param {Object} oParameters.data Data to be passed to the new card.
2413
+ * @returns {Promise} Promise which resolves with the created card.
2414
+ */
2415
+ Card.prototype.showCard = function (oParameters) {
2416
+ var oChildCard = this._createChildCard(oParameters);
2417
+
2418
+ oParameters._cardId = oChildCard.getId();
2419
+
2420
+ this.triggerAction({
2421
+ type: "ShowCard",
2422
+ parameters: oParameters
2423
+ });
2424
+
2425
+ return Promise.resolve(oChildCard);
2426
+ };
2427
+
2428
+ /**
2429
+ * Hides the card.
2430
+ * @private
2431
+ * @ui5-restricted
2432
+ */
2433
+ Card.prototype.hide = function () {
2434
+ this.triggerAction({
2435
+ type: "HideCard"
2436
+ });
2437
+ };
2438
+
2439
+ /**
2440
+ * Gets the card which has opened this one if any.
2441
+ * @private
2442
+ * @ui5-restricted
2443
+ * @returns {sap.ui.integration.widgets.Card} The card which opened the current one.
2444
+ */
2445
+ Card.prototype.getOpener = function () {
2446
+ var oOpener = Core.byId(this.getAssociation("openerReference"));
2447
+
2448
+ if (!oOpener) {
2449
+ return null;
2450
+ }
2451
+
2452
+ return oOpener._oLimitedInterface;
2453
+ };
2454
+
2455
+ /**
2456
+ * Creates the child card.
2457
+ *
2458
+ * @private
2459
+ * @ui5-restricted
2460
+ * @param {Object} oParameters The parameters for the card.
2461
+ * @returns {sap.ui.integration.widgets.Card} The result card.
2462
+ */
2463
+ Card.prototype._createChildCard = function (oParameters) {
2464
+ var vManifest = oParameters.manifest,
2465
+ sBaseUrl = oParameters.baseUrl,
2466
+ oData = oParameters.data,
2467
+ oChildCard = this._createCard({
2468
+ width: oParameters.width,
2469
+ host: this.getHostInstance(),
2470
+ parameters: oParameters.parameters
2471
+ });
2472
+
2473
+ oChildCard.setAssociation("openerReference", this);
2474
+
2475
+ if (oData) {
2476
+ each(oData, function (sModelName, oModelData) {
2477
+ var oModel = new JSONModel(oModelData);
2478
+ oChildCard.setModel(oModel, sModelName);
2479
+ });
2480
+ }
2481
+
2482
+ if (typeof vManifest === "string") {
2483
+ oChildCard.setManifest(this.getRuntimeUrl(vManifest));
2484
+ if (sBaseUrl) {
2485
+ oChildCard.setBaseUrl(sBaseUrl);
2486
+ }
2487
+ } else {
2488
+ oChildCard.setManifest(vManifest);
2489
+ oChildCard.setBaseUrl(sBaseUrl || this.getRuntimeUrl("/"));
2490
+ }
2491
+
2492
+ return oChildCard;
2493
+ };
2494
+
2495
+ /**
2496
+ * Creates a card with the given settings.
2497
+ *
2498
+ * @private
2499
+ * @param {Object} oSettings The settings for the card.
2500
+ * @returns {sap.ui.integration.widgets.Card} The result card.
2501
+ */
2502
+ Card.prototype._createCard = function (oSettings) {
2503
+ return new Card(oSettings);
2504
+ };
2505
+
2236
2506
  return Card;
2237
2507
  });