@sapui5/sap.cux.home 1.130.0 → 1.131.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 (171) hide show
  1. package/package.json +1 -1
  2. package/src/sap/cux/home/BaseAppPersPanel-dbg.js +11 -6
  3. package/src/sap/cux/home/BaseAppPersPanel-dbg.js.map +1 -1
  4. package/src/sap/cux/home/BaseAppPersPanel.d.ts +1 -1
  5. package/src/sap/cux/home/BaseAppPersPanel.d.ts.map +1 -1
  6. package/src/sap/cux/home/BaseAppPersPanel.js +1 -1
  7. package/src/sap/cux/home/BaseAppPersPanel.js.map +1 -1
  8. package/src/sap/cux/home/BaseAppPersPanel.ts +6 -4
  9. package/src/sap/cux/home/BaseLayoutRenderer-dbg.js +9 -2
  10. package/src/sap/cux/home/BaseLayoutRenderer-dbg.js.map +1 -1
  11. package/src/sap/cux/home/BaseLayoutRenderer.d.ts.map +1 -1
  12. package/src/sap/cux/home/BaseLayoutRenderer.js +1 -1
  13. package/src/sap/cux/home/BaseLayoutRenderer.js.map +1 -1
  14. package/src/sap/cux/home/BaseLayoutRenderer.ts +11 -2
  15. package/src/sap/cux/home/FavAppPanel-dbg.js +14 -13
  16. package/src/sap/cux/home/FavAppPanel-dbg.js.map +1 -1
  17. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  18. package/src/sap/cux/home/FavAppPanel.js +1 -1
  19. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  20. package/src/sap/cux/home/FavAppPanel.ts +13 -14
  21. package/src/sap/cux/home/KeyUserLayoutSettingsPanel-dbg.js +1 -2
  22. package/src/sap/cux/home/KeyUserLayoutSettingsPanel-dbg.js.map +1 -1
  23. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  24. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +1 -1
  25. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  26. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +1 -2
  27. package/src/sap/cux/home/KeyUserNewsSettingsPanel-dbg.js +2 -2
  28. package/src/sap/cux/home/KeyUserNewsSettingsPanel-dbg.js.map +1 -1
  29. package/src/sap/cux/home/KeyUserNewsSettingsPanel.d.ts.map +1 -1
  30. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +1 -1
  31. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  32. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +1 -4
  33. package/src/sap/cux/home/KeyUserPagesSettingsPanel-dbg.js +7 -3
  34. package/src/sap/cux/home/KeyUserPagesSettingsPanel-dbg.js.map +1 -1
  35. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js +1 -1
  36. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  37. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +3 -3
  38. package/src/sap/cux/home/LayoutSettingsPanel-dbg.js +1 -2
  39. package/src/sap/cux/home/LayoutSettingsPanel-dbg.js.map +1 -1
  40. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  41. package/src/sap/cux/home/LayoutSettingsPanel.js +1 -1
  42. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  43. package/src/sap/cux/home/LayoutSettingsPanel.ts +1 -2
  44. package/src/sap/cux/home/TilesPanel-dbg.js +29 -14
  45. package/src/sap/cux/home/TilesPanel-dbg.js.map +1 -1
  46. package/src/sap/cux/home/TilesPanel.d.ts +7 -0
  47. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  48. package/src/sap/cux/home/TilesPanel.js +1 -1
  49. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  50. package/src/sap/cux/home/TilesPanel.ts +33 -14
  51. package/src/sap/cux/home/i18n/messagebundle.properties +7 -4
  52. package/src/sap/cux/home/i18n/messagebundle_ar.properties +21 -5
  53. package/src/sap/cux/home/i18n/messagebundle_bg.properties +20 -4
  54. package/src/sap/cux/home/i18n/messagebundle_ca.properties +20 -4
  55. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +20 -4
  56. package/src/sap/cux/home/i18n/messagebundle_cs.properties +18 -2
  57. package/src/sap/cux/home/i18n/messagebundle_cy.properties +21 -5
  58. package/src/sap/cux/home/i18n/messagebundle_da.properties +20 -4
  59. package/src/sap/cux/home/i18n/messagebundle_de.properties +20 -4
  60. package/src/sap/cux/home/i18n/messagebundle_el.properties +21 -5
  61. package/src/sap/cux/home/i18n/messagebundle_en.properties +21 -5
  62. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +21 -5
  63. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +21 -5
  64. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +21 -5
  65. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +21 -5
  66. package/src/sap/cux/home/i18n/messagebundle_es.properties +21 -5
  67. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +21 -5
  68. package/src/sap/cux/home/i18n/messagebundle_et.properties +20 -4
  69. package/src/sap/cux/home/i18n/messagebundle_fi.properties +19 -3
  70. package/src/sap/cux/home/i18n/messagebundle_fr.properties +20 -4
  71. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +19 -3
  72. package/src/sap/cux/home/i18n/messagebundle_hi.properties +19 -3
  73. package/src/sap/cux/home/i18n/messagebundle_hr.properties +32 -16
  74. package/src/sap/cux/home/i18n/messagebundle_hu.properties +19 -3
  75. package/src/sap/cux/home/i18n/messagebundle_id.properties +21 -5
  76. package/src/sap/cux/home/i18n/messagebundle_it.properties +20 -4
  77. package/src/sap/cux/home/i18n/messagebundle_iw.properties +19 -3
  78. package/src/sap/cux/home/i18n/messagebundle_ja.properties +20 -4
  79. package/src/sap/cux/home/i18n/messagebundle_kk.properties +21 -5
  80. package/src/sap/cux/home/i18n/messagebundle_ko.properties +18 -2
  81. package/src/sap/cux/home/i18n/messagebundle_lt.properties +18 -2
  82. package/src/sap/cux/home/i18n/messagebundle_lv.properties +20 -4
  83. package/src/sap/cux/home/i18n/messagebundle_mk.properties +21 -5
  84. package/src/sap/cux/home/i18n/messagebundle_ms.properties +21 -5
  85. package/src/sap/cux/home/i18n/messagebundle_nl.properties +22 -6
  86. package/src/sap/cux/home/i18n/messagebundle_no.properties +21 -5
  87. package/src/sap/cux/home/i18n/messagebundle_pl.properties +21 -5
  88. package/src/sap/cux/home/i18n/messagebundle_pt.properties +20 -4
  89. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +20 -4
  90. package/src/sap/cux/home/i18n/messagebundle_ro.properties +25 -9
  91. package/src/sap/cux/home/i18n/messagebundle_ru.properties +19 -3
  92. package/src/sap/cux/home/i18n/messagebundle_sh.properties +20 -4
  93. package/src/sap/cux/home/i18n/messagebundle_sk.properties +19 -3
  94. package/src/sap/cux/home/i18n/messagebundle_sl.properties +21 -5
  95. package/src/sap/cux/home/i18n/messagebundle_sr.properties +20 -4
  96. package/src/sap/cux/home/i18n/messagebundle_sv.properties +25 -9
  97. package/src/sap/cux/home/i18n/messagebundle_th.properties +31 -15
  98. package/src/sap/cux/home/i18n/messagebundle_tr.properties +18 -2
  99. package/src/sap/cux/home/i18n/messagebundle_uk.properties +24 -8
  100. package/src/sap/cux/home/i18n/messagebundle_vi.properties +21 -5
  101. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +19 -3
  102. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +19 -3
  103. package/src/sap/cux/home/interface/AppsInterface-dbg.js.map +1 -1
  104. package/src/sap/cux/home/interface/AppsInterface.d.ts +1 -0
  105. package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
  106. package/src/sap/cux/home/interface/AppsInterface.ts +1 -0
  107. package/src/sap/cux/home/library-dbg.js +1 -0
  108. package/src/sap/cux/home/library-dbg.js.map +1 -1
  109. package/src/sap/cux/home/library-preload.js +11 -11
  110. package/src/sap/cux/home/library-preload.js.map +1 -1
  111. package/src/sap/cux/home/library.d.ts.map +1 -1
  112. package/src/sap/cux/home/library.js +1 -1
  113. package/src/sap/cux/home/library.js.map +1 -1
  114. package/src/sap/cux/home/library.ts +1 -0
  115. package/src/sap/cux/home/manifest.json +4 -9
  116. package/src/sap/cux/home/themes/base/AppsContainer.less +11 -5
  117. package/src/sap/cux/home/themes/base/library-RTL.css +1 -1
  118. package/src/sap/cux/home/themes/base/library.css +1 -1
  119. package/src/sap/cux/home/themes/sap_fiori_3/library-RTL.css +1 -1
  120. package/src/sap/cux/home/themes/sap_fiori_3/library.css +1 -1
  121. package/src/sap/cux/home/themes/sap_fiori_3_dark/library-RTL.css +1 -1
  122. package/src/sap/cux/home/themes/sap_fiori_3_dark/library.css +1 -1
  123. package/src/sap/cux/home/themes/sap_fiori_3_hcb/library-RTL.css +1 -1
  124. package/src/sap/cux/home/themes/sap_fiori_3_hcb/library.css +1 -1
  125. package/src/sap/cux/home/themes/sap_fiori_3_hcw/library-RTL.css +1 -1
  126. package/src/sap/cux/home/themes/sap_fiori_3_hcw/library.css +1 -1
  127. package/src/sap/cux/home/themes/sap_horizon/library-RTL.css +1 -1
  128. package/src/sap/cux/home/themes/sap_horizon/library.css +1 -1
  129. package/src/sap/cux/home/themes/sap_horizon_dark/library-RTL.css +1 -1
  130. package/src/sap/cux/home/themes/sap_horizon_dark/library.css +1 -1
  131. package/src/sap/cux/home/themes/sap_horizon_hcb/library-RTL.css +1 -1
  132. package/src/sap/cux/home/themes/sap_horizon_hcb/library.css +1 -1
  133. package/src/sap/cux/home/themes/sap_horizon_hcw/library-RTL.css +1 -1
  134. package/src/sap/cux/home/themes/sap_horizon_hcw/library.css +1 -1
  135. package/src/sap/cux/home/utils/AppManager-dbg.js +2 -2
  136. package/src/sap/cux/home/utils/AppManager-dbg.js.map +1 -1
  137. package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
  138. package/src/sap/cux/home/utils/AppManager.js +1 -1
  139. package/src/sap/cux/home/utils/AppManager.js.map +1 -1
  140. package/src/sap/cux/home/utils/AppManager.ts +3 -3
  141. package/src/sap/cux/home/utils/FESRUtil.d.ts +1 -1
  142. package/ui5.yaml +0 -2
  143. package/src/sap/cux/home/themes/sap_belize/library-RTL.css +0 -4
  144. package/src/sap/cux/home/themes/sap_belize/library-parameters.json +0 -1
  145. package/src/sap/cux/home/themes/sap_belize/library.css +0 -4
  146. package/src/sap/cux/home/themes/sap_belize/library.source.less +0 -11
  147. package/src/sap/cux/home/themes/sap_belize_base/AppsContainer.less +0 -23
  148. package/src/sap/cux/home/themes/sap_belize_base/BaseContainer.less +0 -31
  149. package/src/sap/cux/home/themes/sap_belize_base/BaseLayout.less +0 -57
  150. package/src/sap/cux/home/themes/sap_belize_base/InsightsContainer.less +0 -9
  151. package/src/sap/cux/home/themes/sap_belize_base/KeyUserSettingsDialog.less +0 -39
  152. package/src/sap/cux/home/themes/sap_belize_base/Layout.less +0 -7
  153. package/src/sap/cux/home/themes/sap_belize_base/NewsAndPagesContainer.less +0 -69
  154. package/src/sap/cux/home/themes/sap_belize_base/SettingsDialog.less +0 -3
  155. package/src/sap/cux/home/themes/sap_belize_base/ToDosContainer.less +0 -74
  156. package/src/sap/cux/home/themes/sap_belize_base/library-RTL.css +0 -3
  157. package/src/sap/cux/home/themes/sap_belize_base/library-parameters.json +0 -1
  158. package/src/sap/cux/home/themes/sap_belize_base/library.css +0 -3
  159. package/src/sap/cux/home/themes/sap_belize_base/library.source.less +0 -12
  160. package/src/sap/cux/home/themes/sap_belize_hcb/library-RTL.css +0 -3
  161. package/src/sap/cux/home/themes/sap_belize_hcb/library-parameters.json +0 -1
  162. package/src/sap/cux/home/themes/sap_belize_hcb/library.css +0 -3
  163. package/src/sap/cux/home/themes/sap_belize_hcb/library.source.less +0 -11
  164. package/src/sap/cux/home/themes/sap_belize_hcw/library-RTL.css +0 -3
  165. package/src/sap/cux/home/themes/sap_belize_hcw/library-parameters.json +0 -1
  166. package/src/sap/cux/home/themes/sap_belize_hcw/library.css +0 -3
  167. package/src/sap/cux/home/themes/sap_belize_hcw/library.source.less +0 -11
  168. package/src/sap/cux/home/themes/sap_belize_plus/library-RTL.css +0 -4
  169. package/src/sap/cux/home/themes/sap_belize_plus/library-parameters.json +0 -1
  170. package/src/sap/cux/home/themes/sap_belize_plus/library.css +0 -4
  171. package/src/sap/cux/home/themes/sap_belize_plus/library.source.less +0 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.cux.home",
3
- "version": "1.130.0",
3
+ "version": "1.131.0",
4
4
  "description": "SAPUI5 Library sap.cux.home",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -140,7 +140,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus", "sap/ushell/Container", "
140
140
  },
141
141
  /**
142
142
  * Sets the personalization data.
143
- * @param {Array} appsPersonalization - Personalization data for favorite apps.
143
+ * @param {IAppPersonalization[]} appsPersonalization - Personalization data for favorite apps.
144
144
  * @returns {Promise<void>} A promise that resolves when the personalization data is set.
145
145
  * @private
146
146
  */
@@ -148,8 +148,13 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus", "sap/ushell/Container", "
148
148
  try {
149
149
  const _this5 = this;
150
150
  return Promise.resolve(_this5.getPersonalization()).then(function (personalization) {
151
- personalization.favoriteApps = appsPersonalization;
152
- return Promise.resolve(_this5.setPersonalization(personalization)).then(function () {});
151
+ const _temp = function () {
152
+ if (personalization) {
153
+ personalization.favoriteApps = appsPersonalization;
154
+ return Promise.resolve(_this5.setPersonalization(personalization)).then(function () {});
155
+ }
156
+ }();
157
+ if (_temp && _temp.then) return _temp.then(function () {});
153
158
  });
154
159
  } catch (e) {
155
160
  return Promise.reject(e);
@@ -293,10 +298,10 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus", "sap/ushell/Container", "
293
298
  let _exit = false;
294
299
  const _this9 = this;
295
300
  return Promise.resolve(_catch(function () {
296
- function _temp2(_result) {
301
+ function _temp3(_result) {
297
302
  return _exit ? _result : [];
298
303
  }
299
- const _temp = function () {
304
+ const _temp2 = function () {
300
305
  if (pages) {
301
306
  _this9._favPageVisualizations = _this9._favPageVisualizations || [];
302
307
  //Check to ensure that missing visualization data is loaded, if any
@@ -322,7 +327,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus", "sap/ushell/Container", "
322
327
  }
323
328
  }
324
329
  }();
325
- return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
330
+ return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
326
331
  }, function (error) {
327
332
  Log.error(error);
328
333
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAppPersPanel-dbg.js","names":["sap","ui","define","Log","EventBus","Container","__BaseAppPanel","___utils_Constants","__DataFormatUtils","__PageManager","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BaseAppPanel","DEFAULT_APP_ICON","DEFAULT_BG_COLOR","FALLBACK_ICON","MYHOME_PAGE_ID","DataFormatUtils","PageManager","PersonalisationUtils","UshellPersonalizer","BaseAppPersPanel","extend","metadata","library","properties","persContainerId","type","group","defaultValue","visibility","constructor","_constructor","id","settings","BaseAppPanel.prototype.constructor.call","_favPageVisualizations","init","_init","BaseAppPanel.prototype.init.call","setProperty","getPersContainerId","_pageManagerInstance","getInstance","getOwnerComponent","_eventBus","subscribe","applyPersonalization","_getPersonalizer","_this","getProperty","Error","Promise","resolve","reject","getPersonalization","_getPersonalization","_this2","personalizer","read","setPersonalization","_setPersonalization","persData","_this3","write","_getAppPersonalization","_this4","personalization","favoriteApps","setFavAppsPersonalization","_setFavAppsPersonalization","appsPersonalization","_this5","_applyPersonalization","_this6","tiles","fetchTileVisualization","_applyTilesPersonalization","groupId","shouldReload","arguments","length","undefined","_this7","all","_getFavPages","_ref","personalizations","favPages","_getAllFavPageApps","favPageVisualizations","groups","getAggregation","apps","_getGroup","getApps","tile","item","_getItem","color","icon","_getItemPersonalization","setBackgroundColor","setTileIcon","tileGroupId","data","find","oGroup","getGroupId","oApp","getLeanURL","getUrl","isA","isSection","sectionId","BGColor","app","appIds","oldAppId","push","vizId","getVizId","appId","includes","oPersonalization","isRecentlyAddedApp","favPageVisualization","oVisualization","key","_getFavAppIcon","getAppIcon","_this8","getFavoritePages","aFavPages","concat","pageId","pages","_exit","_this9","_temp2","_result","_temp","loadedPages","reduce","pageIDs","visualization","pageIds","map","page","shouldLoadMissingApps","every","_this9$_favPageVisual","_loadAllPageVisualizations","_this9$_loadAllPageVi","_this9$_favPageVisual2","error","shouldFetchDistinctApps","getBgColor","getServiceAsync","spaceContentService","getPages","oPage","pageData","aPages","Object","values","sections","section","visualizations","targetURL","some","oVizApp","_getAppIcon","favPageIcon","getIcon"],"sources":["BaseAppPersPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2024 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport Component from \"sap/ui/core/Component\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Container from \"sap/ushell/Container\";\nimport SpaceContent from \"sap/ushell/services/SpaceContent\";\nimport App from \"./App\";\nimport BaseAppPanel from \"./BaseAppPanel\";\nimport { $BaseAppPersPanelSettings } from \"./BaseAppPersPanel\";\nimport Group from \"./Group\";\nimport { IAppPersonalization, ICustomVisualization, IItemPersonalization } from \"./interface/AppsInterface\";\nimport { IPage } from \"./interface/PageSpaceInterface\";\nimport { DEFAULT_APP_ICON, DEFAULT_BG_COLOR, FALLBACK_ICON, MYHOME_PAGE_ID } from \"./utils/Constants\";\nimport DataFormatUtils from \"./utils/DataFormatUtils\";\nimport PageManager from \"./utils/PageManager\";\nimport PersonalisationUtils from \"./utils/PersonalisationUtils\";\nimport UshellPersonalizer, { IPersonalizationData } from \"./utils/UshellPersonalizer\";\n\n/**\n *\n * Provides the BaseAppPersPanel Class which is BaseAppPanel with personalisation.\n *\n * @extends sap.cux.home.BaseAppPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @abstract\n * @internal\n * @experimental Since 1.121\n * @private\n *\n * @alias sap.cux.home.BaseAppPersPanel\n */\nexport default abstract class BaseAppPersPanel extends BaseAppPanel {\n\tprivate _pageManagerInstance!: PageManager;\n\tprivate _favPageVisualizations: ICustomVisualization[] = [];\n\tprivate _eventBus!: EventBus;\n\n\tconstructor(idOrSettings?: string | $BaseAppPersPanelSettings);\n\tconstructor(id?: string, settings?: $BaseAppPersPanelSettings);\n\tconstructor(id?: string, settings?: $BaseAppPersPanelSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\tpersContainerId: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"persContainerId\", PersonalisationUtils.getPersContainerId(this));\n\t\tthis._pageManagerInstance = PageManager.getInstance(\n\t\t\tPersonalisationUtils.getPersContainerId(this),\n\t\t\tPersonalisationUtils.getOwnerComponent(this) as Component\n\t\t);\n\t\tthis._eventBus = EventBus.getInstance();\n\n\t\t//apply personalization on page update\n\t\tthis._eventBus.subscribe(\n\t\t\t\"pageChannel\",\n\t\t\t\"pageUpdated\",\n\t\t\t() => {\n\t\t\t\tvoid this.applyPersonalization();\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t}\n\n\t/**\n\t * Retrieves the personalizer instance.\n\t * @returns {Promise<sap.cux.home.UshellPersonalizer>} A promise resolving to the personalizer instance.\n\t * @throws {Error} Throws an error if no container ID is provided for personalization.\n\t * @private\n\t */\n\tprivate async _getPersonalizer() {\n\t\tconst persContainerId = this.getProperty(\"persContainerId\") as string;\n\t\tif (!persContainerId) {\n\t\t\tthrow new Error(\"No Container ID Provided for personalisation!\");\n\t\t}\n\t\tconst personalizer = await UshellPersonalizer?.getInstance(\n\t\t\tpersContainerId,\n\t\t\tPersonalisationUtils.getOwnerComponent(this) as Component\n\t\t);\n\t\treturn personalizer;\n\t}\n\n\t/**\n\t * Retrieves personalization data.\n\t * @returns {Promise<IPersonalizationData>} A promise that resolves with the personalization data.\n\t * @private\n\t */\n\tprotected async getPersonalization() {\n\t\tconst personalizer = await this._getPersonalizer();\n\t\tconst persData = await personalizer?.read();\n\t\treturn persData;\n\t}\n\n\t/**\n\t * Sets the personalization data.\n\t * @param {IPersonalizationData} persData - The personalization data to set.\n\t * @returns {Promise<void>} A promise that resolves when the personalization data is set.\n\t * @private\n\t */\n\tprotected async setPersonalization(persData: IPersonalizationData) {\n\t\tconst personalizer = await this._getPersonalizer();\n\t\tawait personalizer.write(persData);\n\t}\n\n\t/**\n\t * Returns array of personalized favorite apps\n\t *\n\t * @returns {Promise} resolves to return array of personalized favorite apps\n\t */\n\tprotected async _getAppPersonalization() {\n\t\tconst personalization = await this.getPersonalization();\n\t\treturn personalization?.favoriteApps || ([] as IAppPersonalization[]);\n\t}\n\n\t/**\n\t * Sets the personalization data.\n\t * @param {Array} appsPersonalization - Personalization data for favorite apps.\n\t * @returns {Promise<void>} A promise that resolves when the personalization data is set.\n\t * @private\n\t */\n\tprotected async setFavAppsPersonalization(appsPersonalization: IAppPersonalization[]) {\n\t\tlet personalization = await this.getPersonalization();\n\t\tpersonalization.favoriteApps = appsPersonalization;\n\t\tawait this.setPersonalization(personalization);\n\t}\n\n\t/**\n\t * Applies personalization settings to the tiles.\n\t * Retrieves tiles from the generated apps wrapper and applies personalization settings to each tile.\n\t * Personalization settings include background color and icon customization.\n\t * @private\n\t * @async\n\t */\n\tpublic async applyPersonalization() {\n\t\tlet tiles: GenericTile[] = [];\n\t\ttiles = this.fetchTileVisualization(tiles);\n\t\treturn await this._applyTilesPersonalization(tiles);\n\t}\n\n\t/**\n\t * Applies personalization settings to the provided tiles.\n\t * @param {Array} tiles - An array of tiles to apply personalization settings to.\n\t * @param {string} [groupId] - Optional group ID for filtering personalization settings.\n\t * @param {boolean} [shouldReload=true] - A flag indicating whether to reload page visualizations.\n\t * @returns {Promise<void>} A promise that resolves when personalization settings are applied to the tiles.\n\t * @private\n\t */\n\tprotected async _applyTilesPersonalization(tiles: GenericTile[], groupId?: string, shouldReload = true) {\n\t\tconst [personalizations, favPages] = await Promise.all([this._getAppPersonalization(), this._getFavPages()]);\n\t\tconst favPageVisualizations = await this._getAllFavPageApps(favPages, shouldReload);\n\t\tconst groups = (this.getAggregation(\"groups\") || []) as Group[];\n\t\tconst apps = groupId ? this._getGroup(groupId)?.getApps() || [] : this.getApps() || [];\n\t\tfor (const tile of tiles) {\n\t\t\tconst item = this._getItem(tile, groups, apps);\n\t\t\tconst { color, icon } = this._getItemPersonalization(item, personalizations, favPageVisualizations, groupId);\n\n\t\t\tif (color) {\n\t\t\t\titem?.setProperty(\"bgColor\", color, true);\n\t\t\t\ttile.setBackgroundColor(color);\n\t\t\t}\n\n\t\t\tif (icon) {\n\t\t\t\titem?.setProperty(\"icon\", icon, true);\n\t\t\t\ttile.setTileIcon(icon);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the corresponding App or Group object associated with the given tile.\n\t * @param {GenericTile} tile - The tile for which to retrieve the corresponding item.\n\t * @param {Group[]} groups - An array of Group objects.\n\t * @param {App[]} apps - An array of App objects.\n\t * @returns {App | Group | undefined} The corresponding App or Group object, or undefined if not found.\n\t * @private\n\t */\n\tprivate _getItem(tile: GenericTile, groups: Group[], apps: App[]): App | Group | undefined {\n\t\tconst tileGroupId = tile.data(\"groupId\") as string | undefined;\n\t\tif (tileGroupId) {\n\t\t\treturn groups.find((oGroup) => oGroup.getGroupId() === tileGroupId);\n\t\t} else {\n\t\t\treturn apps.find((oApp) => DataFormatUtils.getLeanURL(oApp.getUrl()) === tile.getUrl());\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the color and icon associated with the specified item based on personalizations.\n\t * @param {App | Group | undefined} item - The App or Group object for which to retrieve personalization data.\n\t * @param {IAppPersonalization[] | undefined} personalizations - An array of personalization objects.\n\t * @param {ICustomVisualization[]} favPageVisualizations - An array of favorite page visualizations.\n\t * @param {string | undefined} groupId - The ID of the group to which the item belongs.\n\t * @returns {IItemPersonalization} An object containing the color and icon associated with the item.\n\t * @private\n\t */\n\tprivate _getItemPersonalization(\n\t\titem: App | Group | undefined,\n\t\tpersonalizations: IAppPersonalization[] | undefined,\n\t\tfavPageVisualizations: ICustomVisualization[],\n\t\tgroupId?: string\n\t): IItemPersonalization {\n\t\tlet color: string = \"\";\n\t\tlet icon: string = \"\";\n\n\t\tif (!item) return { color, icon };\n\n\t\tif (item.isA(\"sap.cux.home.Group\")) {\n\t\t\tconst personalization = personalizations?.find(\n\t\t\t\t(personalization) => personalization.isSection && personalization.sectionId === (item as Group).getGroupId()\n\t\t\t);\n\t\t\tcolor = personalization?.BGColor as string;\n\t\t} else {\n\t\t\tconst app = item as App;\n\t\t\tconst appIds = [app.getUrl()];\n\t\t\tconst oldAppId = app.data(\"oldAppId\") as string | undefined;\n\t\t\tif (oldAppId) {\n\t\t\t\tappIds.push(oldAppId);\n\t\t\t}\n\t\t\tconst vizId = app.getVizId();\n\t\t\tconst personalization = groupId\n\t\t\t\t? personalizations?.find(\n\t\t\t\t\t\t(personalization) =>\n\t\t\t\t\t\t\t!personalization.isSection &&\n\t\t\t\t\t\t\tpersonalization.sectionId === groupId &&\n\t\t\t\t\t\t\tpersonalization.appId &&\n\t\t\t\t\t\t\tappIds.includes(personalization.appId)\n\t\t\t\t\t)\n\t\t\t\t: personalizations?.find(\n\t\t\t\t\t\t(oPersonalization) =>\n\t\t\t\t\t\t\toPersonalization.isRecentlyAddedApp && oPersonalization.appId && appIds.includes(oPersonalization.appId)\n\t\t\t\t\t);\n\t\t\tconst favPageVisualization = favPageVisualizations.find(\n\t\t\t\t(oVisualization) => oVisualization.vizId === vizId || (oVisualization.appId && appIds.includes(oVisualization.appId))\n\t\t\t);\n\t\t\tcolor = personalization?.BGColor || favPageVisualization?.BGColor || DEFAULT_BG_COLOR().key;\n\t\t\ticon = this?.isA(\"sap.cux.home.FavAppPanel\") ? this._getFavAppIcon(app, favPageVisualization?.icon) : this.getAppIcon();\n\t\t}\n\n\t\treturn { color, icon };\n\t}\n\n\t/**\n\t * Retrieves favorite pages.\n\t * @returns {Promise<Array>} A promise that resolves with an array of favorite pages.\n\t * @private\n\t */\n\tprivate async _getFavPages() {\n\t\tconst aFavPages = await this._pageManagerInstance.getFavoritePages();\n\t\treturn aFavPages.concat({\n\t\t\tpageId: MYHOME_PAGE_ID,\n\t\t\tBGColor: DEFAULT_BG_COLOR().key\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves visualizations for all favorite pages based on the provided parameters.\n\t * @param {Array} pages - An array of favorite pages.\n\t * @param {boolean} shouldReload - A flag indicating whether to reload page visualizations.\n\t * @returns {Promise<Array>} A promise that resolves with an array of favorite page visualizations.\n\t * @private\n\t */\n\tprivate async _getAllFavPageApps(pages: IPage[], shouldReload?: boolean) {\n\t\ttry {\n\t\t\tif (pages) {\n\t\t\t\tthis._favPageVisualizations = this._favPageVisualizations || [];\n\t\t\t\t//Check to ensure that missing visualization data is loaded, if any\n\t\t\t\tconst loadedPages = this._favPageVisualizations.reduce((pageIDs: string[], visualization) => {\n\t\t\t\t\tif (visualization.pageId && !pageIDs.includes(visualization.pageId)) {\n\t\t\t\t\t\tpageIDs.push(visualization.pageId);\n\t\t\t\t\t}\n\t\t\t\t\treturn pageIDs;\n\t\t\t\t}, []);\n\t\t\t\tconst pageIds = pages.map((page) => page.pageId);\n\t\t\t\tconst shouldLoadMissingApps = loadedPages.length === 0 || !loadedPages.every((pageId) => pageIds.includes(pageId));\n\t\t\t\tif (!shouldReload && !shouldLoadMissingApps) {\n\t\t\t\t\treturn this._favPageVisualizations;\n\t\t\t\t} else {\n\t\t\t\t\tthis._favPageVisualizations = await this._loadAllPageVisualizations(pages);\n\t\t\t\t\treturn this._favPageVisualizations;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn [];\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Loads visualizations for all specified pages.\n\t * @param {Array} pages - An array of pages.\n\t * @param {boolean} [shouldFetchDistinctApps=false] - A flag indicating whether to fetch distinct pages.\n\t * @returns {Promise<Array>} A promise that resolves with an array of page visualizations.\n\t * @private\n\t */\n\tprivate async _loadAllPageVisualizations(pages: IPage[], shouldFetchDistinctApps = false) {\n\t\tconst getBgColor = (pageId: string | undefined) => {\n\t\t\treturn pages.find((page) => page.pageId === pageId)?.BGColor ?? DEFAULT_BG_COLOR().key;\n\t\t};\n\n\t\ttry {\n\t\t\tconst favPageVisualizations: ICustomVisualization[] = [];\n\t\t\tconst spaceContentService = await Container.getServiceAsync<SpaceContent>(\"SpaceContent\");\n\t\t\tconst pageData = await spaceContentService.getPages(pages.map((oPage) => oPage.pageId) as string[]);\n\t\t\tconst aPages = Object.values(pageData);\n\n\t\t\tfor (const page of aPages) {\n\t\t\t\tconst sections = page.sections || [];\n\t\t\t\tfor (const section of sections) {\n\t\t\t\t\tconst visualizations = section.visualizations || [];\n\t\t\t\t\tfor (const visualization of visualizations) {\n\t\t\t\t\t\tconst app = {\n\t\t\t\t\t\t\tappId: visualization.targetURL,\n\t\t\t\t\t\t\tvizId: visualization.vizId,\n\t\t\t\t\t\t\ticon: visualization.icon,\n\t\t\t\t\t\t\tBGColor: getBgColor(page.id) as string,\n\t\t\t\t\t\t\tpageId: page.id\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (!shouldFetchDistinctApps || !favPageVisualizations.some((oVizApp) => oVizApp.appId === app.appId)) {\n\t\t\t\t\t\t\tfavPageVisualizations.push(app);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn favPageVisualizations;\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns default app icon.\n\t * @returns {string} The icon URL for the app.\n\t * @private\n\t */\n\tprotected getAppIcon(): string {\n\t\treturn DEFAULT_APP_ICON;\n\t}\n\n\t/**\n\t * Retrieves the icon for the specified app, prioritizing the favorite page icon if available.\n\t * @param {sap.cux.home.App} app - The app object.\n\t * @param {string} favPageIcon - The icon for the app from the favorite page.\n\t * @returns {string} The icon URL for the app.\n\t * @private\n\t */\n\tprivate _getFavAppIcon(app?: App, favPageIcon?: string): string {\n\t\treturn favPageIcon || app?.getIcon() || FALLBACK_ICON;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseAppPersPanel-dbg.js","names":["sap","ui","define","Log","EventBus","Container","__BaseAppPanel","___utils_Constants","__DataFormatUtils","__PageManager","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BaseAppPanel","DEFAULT_APP_ICON","DEFAULT_BG_COLOR","FALLBACK_ICON","MYHOME_PAGE_ID","DataFormatUtils","PageManager","PersonalisationUtils","UshellPersonalizer","BaseAppPersPanel","extend","metadata","library","properties","persContainerId","type","group","defaultValue","visibility","constructor","_constructor","id","settings","BaseAppPanel.prototype.constructor.call","_favPageVisualizations","init","_init","BaseAppPanel.prototype.init.call","setProperty","getPersContainerId","_pageManagerInstance","getInstance","getOwnerComponent","_eventBus","subscribe","applyPersonalization","_getPersonalizer","_this","getProperty","Error","Promise","resolve","reject","getPersonalization","_getPersonalization","_this2","personalizer","read","setPersonalization","_setPersonalization","persData","_this3","write","_getAppPersonalization","_this4","personalization","favoriteApps","setFavAppsPersonalization","_setFavAppsPersonalization","appsPersonalization","_this5","_temp","_applyPersonalization","_this6","tiles","fetchTileVisualization","_applyTilesPersonalization","groupId","shouldReload","arguments","length","undefined","_this7","all","_getFavPages","_ref","personalizations","favPages","_getAllFavPageApps","favPageVisualizations","groups","getAggregation","apps","_getGroup","getApps","tile","item","_getItem","color","icon","_getItemPersonalization","setBackgroundColor","setTileIcon","tileGroupId","data","find","oGroup","getGroupId","oApp","getLeanURL","getUrl","isA","isSection","sectionId","BGColor","app","appIds","oldAppId","push","vizId","getVizId","appId","includes","oPersonalization","isRecentlyAddedApp","favPageVisualization","oVisualization","key","_getFavAppIcon","getAppIcon","_this8","getFavoritePages","aFavPages","concat","pageId","pages","_exit","_this9","_temp3","_result","_temp2","loadedPages","reduce","pageIDs","visualization","pageIds","map","page","shouldLoadMissingApps","every","_this9$_favPageVisual","_loadAllPageVisualizations","_this9$_loadAllPageVi","_this9$_favPageVisual2","error","shouldFetchDistinctApps","getBgColor","getServiceAsync","spaceContentService","getPages","oPage","pageData","aPages","Object","values","sections","section","visualizations","targetURL","some","oVizApp","_getAppIcon","favPageIcon","getIcon"],"sources":["BaseAppPersPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2024 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport Component from \"sap/ui/core/Component\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Container from \"sap/ushell/Container\";\nimport SpaceContent from \"sap/ushell/services/SpaceContent\";\nimport App from \"./App\";\nimport BaseAppPanel from \"./BaseAppPanel\";\nimport { $BaseAppPersPanelSettings } from \"./BaseAppPersPanel\";\nimport Group from \"./Group\";\nimport { IAppPersonalization, ICustomVisualization, IItemPersonalization } from \"./interface/AppsInterface\";\nimport { IPage } from \"./interface/PageSpaceInterface\";\nimport { DEFAULT_APP_ICON, DEFAULT_BG_COLOR, FALLBACK_ICON, MYHOME_PAGE_ID } from \"./utils/Constants\";\nimport DataFormatUtils from \"./utils/DataFormatUtils\";\nimport PageManager from \"./utils/PageManager\";\nimport PersonalisationUtils from \"./utils/PersonalisationUtils\";\nimport UshellPersonalizer, { IPersonalizationData } from \"./utils/UshellPersonalizer\";\n\n/**\n *\n * Provides the BaseAppPersPanel Class which is BaseAppPanel with personalisation.\n *\n * @extends sap.cux.home.BaseAppPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @abstract\n * @internal\n * @experimental Since 1.121\n * @private\n *\n * @alias sap.cux.home.BaseAppPersPanel\n */\nexport default abstract class BaseAppPersPanel extends BaseAppPanel {\n\tprivate _pageManagerInstance!: PageManager;\n\tprivate _favPageVisualizations: ICustomVisualization[] = [];\n\tprivate _eventBus!: EventBus;\n\n\tconstructor(idOrSettings?: string | $BaseAppPersPanelSettings);\n\tconstructor(id?: string, settings?: $BaseAppPersPanelSettings);\n\tconstructor(id?: string, settings?: $BaseAppPersPanelSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\tpersContainerId: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"persContainerId\", PersonalisationUtils.getPersContainerId(this));\n\t\tthis._pageManagerInstance = PageManager.getInstance(\n\t\t\tPersonalisationUtils.getPersContainerId(this),\n\t\t\tPersonalisationUtils.getOwnerComponent(this) as Component\n\t\t);\n\t\tthis._eventBus = EventBus.getInstance();\n\n\t\t//apply personalization on page update\n\t\tthis._eventBus.subscribe(\n\t\t\t\"pageChannel\",\n\t\t\t\"pageUpdated\",\n\t\t\t() => {\n\t\t\t\tvoid this.applyPersonalization();\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t}\n\n\t/**\n\t * Retrieves the personalizer instance.\n\t * @returns {Promise<sap.cux.home.UshellPersonalizer>} A promise resolving to the personalizer instance.\n\t * @throws {Error} Throws an error if no container ID is provided for personalization.\n\t * @private\n\t */\n\tprivate async _getPersonalizer() {\n\t\tconst persContainerId = this.getProperty(\"persContainerId\") as string;\n\t\tif (!persContainerId) {\n\t\t\tthrow new Error(\"No Container ID Provided for personalisation!\");\n\t\t}\n\t\tconst personalizer = await UshellPersonalizer?.getInstance(\n\t\t\tpersContainerId,\n\t\t\tPersonalisationUtils.getOwnerComponent(this) as Component\n\t\t);\n\t\treturn personalizer;\n\t}\n\n\t/**\n\t * Retrieves personalization data.\n\t * @returns {Promise<IPersonalizationData>} A promise that resolves with the personalization data.\n\t * @private\n\t */\n\tprotected async getPersonalization() {\n\t\tconst personalizer = await this._getPersonalizer();\n\t\tconst persData = await personalizer?.read();\n\t\treturn persData;\n\t}\n\n\t/**\n\t * Sets the personalization data.\n\t * @param {IPersonalizationData} persData - The personalization data to set.\n\t * @returns {Promise<void>} A promise that resolves when the personalization data is set.\n\t * @private\n\t */\n\tprotected async setPersonalization(persData: IPersonalizationData) {\n\t\tconst personalizer = await this._getPersonalizer();\n\t\tawait personalizer.write(persData);\n\t}\n\n\t/**\n\t * Returns array of personalized favorite apps\n\t *\n\t * @returns {Promise} resolves to return array of personalized favorite apps\n\t */\n\tprotected async _getAppPersonalization() {\n\t\tconst personalization = await this.getPersonalization();\n\t\treturn personalization?.favoriteApps || ([] as IAppPersonalization[]);\n\t}\n\n\t/**\n\t * Sets the personalization data.\n\t * @param {IAppPersonalization[]} appsPersonalization - Personalization data for favorite apps.\n\t * @returns {Promise<void>} A promise that resolves when the personalization data is set.\n\t * @private\n\t */\n\tprotected async setFavAppsPersonalization(appsPersonalization: IAppPersonalization[]): Promise<void> {\n\t\tlet personalization = await this.getPersonalization();\n\t\tif (personalization) {\n\t\t\tpersonalization.favoriteApps = appsPersonalization;\n\t\t\tawait this.setPersonalization(personalization);\n\t\t}\n\t}\n\n\t/**\n\t * Applies personalization settings to the tiles.\n\t * Retrieves tiles from the generated apps wrapper and applies personalization settings to each tile.\n\t * Personalization settings include background color and icon customization.\n\t * @private\n\t * @async\n\t */\n\tpublic async applyPersonalization() {\n\t\tlet tiles: GenericTile[] = [];\n\t\ttiles = this.fetchTileVisualization(tiles);\n\t\treturn await this._applyTilesPersonalization(tiles);\n\t}\n\n\t/**\n\t * Applies personalization settings to the provided tiles.\n\t * @param {Array} tiles - An array of tiles to apply personalization settings to.\n\t * @param {string} [groupId] - Optional group ID for filtering personalization settings.\n\t * @param {boolean} [shouldReload=true] - A flag indicating whether to reload page visualizations.\n\t * @returns {Promise<void>} A promise that resolves when personalization settings are applied to the tiles.\n\t * @private\n\t */\n\tprotected async _applyTilesPersonalization(tiles: GenericTile[], groupId?: string, shouldReload = true) {\n\t\tconst [personalizations, favPages] = await Promise.all([this._getAppPersonalization(), this._getFavPages()]);\n\t\tconst favPageVisualizations = await this._getAllFavPageApps(favPages, shouldReload);\n\t\tconst groups = (this.getAggregation(\"groups\") || []) as Group[];\n\t\tconst apps = groupId ? this._getGroup(groupId)?.getApps() || [] : this.getApps() || [];\n\t\tfor (const tile of tiles) {\n\t\t\tconst item = this._getItem(tile, groups, apps);\n\t\t\tconst { color, icon } = this._getItemPersonalization(item, personalizations, favPageVisualizations, groupId);\n\n\t\t\tif (color) {\n\t\t\t\titem?.setProperty(\"bgColor\", color, true);\n\t\t\t\ttile.setBackgroundColor(color);\n\t\t\t}\n\n\t\t\tif (icon) {\n\t\t\t\titem?.setProperty(\"icon\", icon, true);\n\t\t\t\ttile.setTileIcon(icon);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the corresponding App or Group object associated with the given tile.\n\t * @param {GenericTile} tile - The tile for which to retrieve the corresponding item.\n\t * @param {Group[]} groups - An array of Group objects.\n\t * @param {App[]} apps - An array of App objects.\n\t * @returns {App | Group | undefined} The corresponding App or Group object, or undefined if not found.\n\t * @private\n\t */\n\tprivate _getItem(tile: GenericTile, groups: Group[], apps: App[]): App | Group | undefined {\n\t\tconst tileGroupId = tile.data(\"groupId\") as string | undefined;\n\t\tif (tileGroupId) {\n\t\t\treturn groups.find((oGroup) => oGroup.getGroupId() === tileGroupId);\n\t\t} else {\n\t\t\treturn apps.find((oApp) => DataFormatUtils.getLeanURL(oApp.getUrl()) === tile.getUrl());\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the color and icon associated with the specified item based on personalizations.\n\t * @param {App | Group | undefined} item - The App or Group object for which to retrieve personalization data.\n\t * @param {IAppPersonalization[] | undefined} personalizations - An array of personalization objects.\n\t * @param {ICustomVisualization[]} favPageVisualizations - An array of favorite page visualizations.\n\t * @param {string | undefined} groupId - The ID of the group to which the item belongs.\n\t * @returns {IItemPersonalization} An object containing the color and icon associated with the item.\n\t * @private\n\t */\n\tprivate _getItemPersonalization(\n\t\titem: App | Group | undefined,\n\t\tpersonalizations: IAppPersonalization[] | undefined,\n\t\tfavPageVisualizations: ICustomVisualization[],\n\t\tgroupId?: string\n\t): IItemPersonalization {\n\t\tlet color: string = \"\";\n\t\tlet icon: string = \"\";\n\n\t\tif (!item) return { color, icon };\n\n\t\tif (item.isA(\"sap.cux.home.Group\")) {\n\t\t\tconst personalization = personalizations?.find(\n\t\t\t\t(personalization) => personalization.isSection && personalization.sectionId === (item as Group).getGroupId()\n\t\t\t);\n\t\t\tcolor = personalization?.BGColor as string;\n\t\t} else {\n\t\t\tconst app = item as App;\n\t\t\tconst appIds = [app.getUrl()];\n\t\t\tconst oldAppId = app.data(\"oldAppId\") as string | undefined;\n\t\t\tif (oldAppId) {\n\t\t\t\tappIds.push(oldAppId);\n\t\t\t}\n\t\t\tconst vizId = app.getVizId();\n\t\t\tconst personalization = groupId\n\t\t\t\t? personalizations?.find(\n\t\t\t\t\t\t(personalization) =>\n\t\t\t\t\t\t\t!personalization.isSection &&\n\t\t\t\t\t\t\tpersonalization.sectionId === groupId &&\n\t\t\t\t\t\t\tpersonalization.appId &&\n\t\t\t\t\t\t\tappIds.includes(personalization.appId)\n\t\t\t\t\t)\n\t\t\t\t: personalizations?.find(\n\t\t\t\t\t\t(oPersonalization) =>\n\t\t\t\t\t\t\toPersonalization.isRecentlyAddedApp && oPersonalization.appId && appIds.includes(oPersonalization.appId)\n\t\t\t\t\t);\n\t\t\tconst favPageVisualization = favPageVisualizations.find(\n\t\t\t\t(oVisualization) => oVisualization.vizId === vizId || (oVisualization.appId && appIds.includes(oVisualization.appId))\n\t\t\t);\n\t\t\tcolor = personalization?.BGColor || favPageVisualization?.BGColor || DEFAULT_BG_COLOR().key;\n\t\t\ticon = this?.isA(\"sap.cux.home.FavAppPanel\") ? this._getFavAppIcon(app, favPageVisualization?.icon) : this.getAppIcon();\n\t\t}\n\n\t\treturn { color, icon };\n\t}\n\n\t/**\n\t * Retrieves favorite pages.\n\t * @returns {Promise<Array>} A promise that resolves with an array of favorite pages.\n\t * @private\n\t */\n\tprivate async _getFavPages() {\n\t\tconst aFavPages = await this._pageManagerInstance.getFavoritePages();\n\t\treturn aFavPages.concat({\n\t\t\tpageId: MYHOME_PAGE_ID,\n\t\t\tBGColor: DEFAULT_BG_COLOR().key\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves visualizations for all favorite pages based on the provided parameters.\n\t * @param {Array} pages - An array of favorite pages.\n\t * @param {boolean} shouldReload - A flag indicating whether to reload page visualizations.\n\t * @returns {Promise<Array>} A promise that resolves with an array of favorite page visualizations.\n\t * @private\n\t */\n\tprivate async _getAllFavPageApps(pages: IPage[], shouldReload?: boolean) {\n\t\ttry {\n\t\t\tif (pages) {\n\t\t\t\tthis._favPageVisualizations = this._favPageVisualizations || [];\n\t\t\t\t//Check to ensure that missing visualization data is loaded, if any\n\t\t\t\tconst loadedPages = this._favPageVisualizations.reduce((pageIDs: string[], visualization) => {\n\t\t\t\t\tif (visualization.pageId && !pageIDs.includes(visualization.pageId)) {\n\t\t\t\t\t\tpageIDs.push(visualization.pageId);\n\t\t\t\t\t}\n\t\t\t\t\treturn pageIDs;\n\t\t\t\t}, []);\n\t\t\t\tconst pageIds = pages.map((page) => page.pageId);\n\t\t\t\tconst shouldLoadMissingApps = loadedPages.length === 0 || !loadedPages.every((pageId) => pageIds.includes(pageId));\n\t\t\t\tif (!shouldReload && !shouldLoadMissingApps) {\n\t\t\t\t\treturn this._favPageVisualizations;\n\t\t\t\t} else {\n\t\t\t\t\tthis._favPageVisualizations = await this._loadAllPageVisualizations(pages);\n\t\t\t\t\treturn this._favPageVisualizations;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn [];\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Loads visualizations for all specified pages.\n\t * @param {Array} pages - An array of pages.\n\t * @param {boolean} [shouldFetchDistinctApps=false] - A flag indicating whether to fetch distinct pages.\n\t * @returns {Promise<Array>} A promise that resolves with an array of page visualizations.\n\t * @private\n\t */\n\tprivate async _loadAllPageVisualizations(pages: IPage[], shouldFetchDistinctApps = false) {\n\t\tconst getBgColor = (pageId: string | undefined) => {\n\t\t\treturn pages.find((page) => page.pageId === pageId)?.BGColor ?? DEFAULT_BG_COLOR().key;\n\t\t};\n\n\t\ttry {\n\t\t\tconst favPageVisualizations: ICustomVisualization[] = [];\n\t\t\tconst spaceContentService = await Container.getServiceAsync<SpaceContent>(\"SpaceContent\");\n\t\t\tconst pageData = await spaceContentService.getPages(pages.map((oPage) => oPage.pageId) as string[]);\n\t\t\tconst aPages = Object.values(pageData);\n\n\t\t\tfor (const page of aPages) {\n\t\t\t\tconst sections = page.sections || [];\n\t\t\t\tfor (const section of sections) {\n\t\t\t\t\tconst visualizations = section.visualizations || [];\n\t\t\t\t\tfor (const visualization of visualizations) {\n\t\t\t\t\t\tconst app = {\n\t\t\t\t\t\t\tappId: visualization.targetURL,\n\t\t\t\t\t\t\tvizId: visualization.vizId,\n\t\t\t\t\t\t\ticon: visualization.icon,\n\t\t\t\t\t\t\tBGColor: getBgColor(page.id) as string,\n\t\t\t\t\t\t\tpageId: page.id\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (!shouldFetchDistinctApps || !favPageVisualizations.some((oVizApp) => oVizApp.appId === app.appId)) {\n\t\t\t\t\t\t\tfavPageVisualizations.push(app);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn favPageVisualizations;\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns default app icon.\n\t * @returns {string} The icon URL for the app.\n\t * @private\n\t */\n\tprotected getAppIcon(): string {\n\t\treturn DEFAULT_APP_ICON;\n\t}\n\n\t/**\n\t * Retrieves the icon for the specified app, prioritizing the favorite page icon if available.\n\t * @param {sap.cux.home.App} app - The app object.\n\t * @param {string} favPageIcon - The icon for the app from the favorite page.\n\t * @returns {string} The icon URL for the app.\n\t * @private\n\t */\n\tprivate _getFavAppIcon(app?: App, favPageIcon?: string): string {\n\t\treturn favPageIcon || app?.getIcon() || FALLBACK_ICON;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -58,7 +58,7 @@ declare module "sap/cux/home/BaseAppPersPanel" {
58
58
  protected _getAppPersonalization(): Promise<IAppPersonalization[]>;
59
59
  /**
60
60
  * Sets the personalization data.
61
- * @param {Array} appsPersonalization - Personalization data for favorite apps.
61
+ * @param {IAppPersonalization[]} appsPersonalization - Personalization data for favorite apps.
62
62
  * @returns {Promise<void>} A promise that resolves when the personalization data is set.
63
63
  * @private
64
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAppPersPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/BaseAppPersPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAC;IAO/C,OAAO,WAAW,MAAM,mBAAmB,CAAC;IAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAK3D,OAAO,YAAY,MAAM,2BAA2B,CAAC;IACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;IAE1E,OAAO,EAAE,mBAAmB,EAA8C,MAAM,sCAAsC,CAAC;IAMvH,OAA2B,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;IAEjG;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,gBAAiB,SAAQ,YAAY;QAClE,OAAO,CAAC,oBAAoB,CAAe;QAC3C,OAAO,CAAC,sBAAsB,CAA8B;QAC5D,OAAO,CAAC,SAAS,CAAY;oBAEjB,YAAY,CAAC,EAAE,MAAM,GAAG,yBAAyB;oBACjD,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,yBAAyB;QAK7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAKvC;QAEK,IAAI;QAoBX;;;;;WAKG;gBACW,gBAAgB;QAY9B;;;;WAIG;kBACa,kBAAkB;QAMlC;;;;;WAKG;kBACa,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB;QAKjE;;;;WAIG;kBACa,sBAAsB;QAKtC;;;;;WAKG;kBACa,yBAAyB,CAAC,mBAAmB,EAAE,mBAAmB,EAAE;QAMpF;;;;;;WAMG;QACU,oBAAoB;QAMjC;;;;;;;WAOG;kBACa,0BAA0B,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,UAAO;QAqBtG;;;;;;;WAOG;QACH,OAAO,CAAC,QAAQ;QAShB;;;;;;;;WAQG;QACH,OAAO,CAAC,uBAAuB;QA8C/B;;;;WAIG;gBACW,YAAY;QAQ1B;;;;;;WAMG;gBACW,kBAAkB;QA2BhC;;;;;;WAMG;gBACW,0BAA0B;QAoCxC;;;;WAIG;QACH,SAAS,CAAC,UAAU,IAAI,MAAM;QAI9B;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;KAGtB;CAEA"}
1
+ {"version":3,"file":"BaseAppPersPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/BaseAppPersPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAC;IAO/C,OAAO,WAAW,MAAM,mBAAmB,CAAC;IAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAK3D,OAAO,YAAY,MAAM,2BAA2B,CAAC;IACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;IAE1E,OAAO,EAAE,mBAAmB,EAA8C,MAAM,sCAAsC,CAAC;IAMvH,OAA2B,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;IAEjG;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,gBAAiB,SAAQ,YAAY;QAClE,OAAO,CAAC,oBAAoB,CAAe;QAC3C,OAAO,CAAC,sBAAsB,CAA8B;QAC5D,OAAO,CAAC,SAAS,CAAY;oBAEjB,YAAY,CAAC,EAAE,MAAM,GAAG,yBAAyB;oBACjD,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,yBAAyB;QAK7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAKvC;QAEK,IAAI;QAoBX;;;;;WAKG;gBACW,gBAAgB;QAY9B;;;;WAIG;kBACa,kBAAkB;QAMlC;;;;;WAKG;kBACa,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB;QAKjE;;;;WAIG;kBACa,sBAAsB;QAKtC;;;;;WAKG;kBACa,yBAAyB,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAQpG;;;;;;WAMG;QACU,oBAAoB;QAMjC;;;;;;;WAOG;kBACa,0BAA0B,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,UAAO;QAqBtG;;;;;;;WAOG;QACH,OAAO,CAAC,QAAQ;QAShB;;;;;;;;WAQG;QACH,OAAO,CAAC,uBAAuB;QA8C/B;;;;WAIG;gBACW,YAAY;QAQ1B;;;;;;WAMG;gBACW,kBAAkB;QA2BhC;;;;;;WAMG;gBACW,0BAA0B;QAoCxC;;;;WAIG;QACH,SAAS,CAAC,UAAU,IAAI,MAAM;QAI9B;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;KAGtB;CAEA"}
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
4
  */
5
- "use strict";sap.ui.define(["sap/base/Log","sap/ui/core/EventBus","sap/ushell/Container","./BaseAppPanel","./utils/Constants","./utils/DataFormatUtils","./utils/PageManager","./utils/PersonalisationUtils","./utils/UshellPersonalizer"],function(e,t,n,o,r,s,i,a,c){"use strict";function u(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}function l(e,t){try{var n=e()}catch(e){return t(e)}if(n&&n.then){return n.then(void 0,t)}return n}const p=u(o);const g=r["DEFAULT_APP_ICON"];const f=r["DEFAULT_BG_COLOR"];const d=r["FALLBACK_ICON"];const P=r["MYHOME_PAGE_ID"];const h=u(s);const I=u(i);const v=u(a);const m=u(c);const _=p.extend("sap.cux.home.BaseAppPersPanel",{metadata:{library:"sap.cux.home",properties:{persContainerId:{type:"string",group:"Misc",defaultValue:"",visibility:"hidden"}}},constructor:function e(t,n){p.prototype.constructor.call(this,t,n);this._favPageVisualizations=[]},init:function e(){p.prototype.init.call(this);this.setProperty("persContainerId",v.getPersContainerId(this));this._pageManagerInstance=I.getInstance(v.getPersContainerId(this),v.getOwnerComponent(this));this._eventBus=t.getInstance();this._eventBus.subscribe("pageChannel","pageUpdated",()=>{void this.applyPersonalization()},this)},_getPersonalizer:function e(){try{const e=this;const t=e.getProperty("persContainerId");if(!t){throw new Error("No Container ID Provided for personalisation!")}return Promise.resolve(m?.getInstance(t,v.getOwnerComponent(e)))}catch(e){return Promise.reject(e)}},getPersonalization:function e(){try{const e=this;return Promise.resolve(e._getPersonalizer()).then(function(e){return Promise.resolve(e?.read())})}catch(e){return Promise.reject(e)}},setPersonalization:function e(t){try{const e=this;return Promise.resolve(e._getPersonalizer()).then(function(e){return Promise.resolve(e.write(t)).then(function(){})})}catch(e){return Promise.reject(e)}},_getAppPersonalization:function e(){try{const e=this;return Promise.resolve(e.getPersonalization()).then(function(e){return e?.favoriteApps||[]})}catch(e){return Promise.reject(e)}},setFavAppsPersonalization:function e(t){try{const e=this;return Promise.resolve(e.getPersonalization()).then(function(n){n.favoriteApps=t;return Promise.resolve(e.setPersonalization(n)).then(function(){})})}catch(e){return Promise.reject(e)}},applyPersonalization:function e(){try{const e=this;let t=[];t=e.fetchTileVisualization(t);return Promise.resolve(e._applyTilesPersonalization(t))}catch(e){return Promise.reject(e)}},_applyTilesPersonalization:function e(t,n){let o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;try{const e=this;return Promise.resolve(Promise.all([e._getAppPersonalization(),e._getFavPages()])).then(function(r){let[s,i]=r;return Promise.resolve(e._getAllFavPageApps(i,o)).then(function(o){const r=e.getAggregation("groups")||[];const i=n?e._getGroup(n)?.getApps()||[]:e.getApps()||[];for(const a of t){const t=e._getItem(a,r,i);const{color:c,icon:u}=e._getItemPersonalization(t,s,o,n);if(c){t?.setProperty("bgColor",c,true);a.setBackgroundColor(c)}if(u){t?.setProperty("icon",u,true);a.setTileIcon(u)}}})})}catch(e){return Promise.reject(e)}},_getItem:function e(t,n,o){const r=t.data("groupId");if(r){return n.find(e=>e.getGroupId()===r)}else{return o.find(e=>h.getLeanURL(e.getUrl())===t.getUrl())}},_getItemPersonalization:function e(t,n,o,r){let s="";let i="";if(!t)return{color:s,icon:i};if(t.isA("sap.cux.home.Group")){const e=n?.find(e=>e.isSection&&e.sectionId===t.getGroupId());s=e?.BGColor}else{const e=t;const a=[e.getUrl()];const c=e.data("oldAppId");if(c){a.push(c)}const u=e.getVizId();const l=r?n?.find(e=>!e.isSection&&e.sectionId===r&&e.appId&&a.includes(e.appId)):n?.find(e=>e.isRecentlyAddedApp&&e.appId&&a.includes(e.appId));const p=o.find(e=>e.vizId===u||e.appId&&a.includes(e.appId));s=l?.BGColor||p?.BGColor||f().key;i=this?.isA("sap.cux.home.FavAppPanel")?this._getFavAppIcon(e,p?.icon):this.getAppIcon()}return{color:s,icon:i}},_getFavPages:function e(){try{const e=this;return Promise.resolve(e._pageManagerInstance.getFavoritePages()).then(function(e){return e.concat({pageId:P,BGColor:f().key})})}catch(e){return Promise.reject(e)}},_getAllFavPageApps:function t(n,o){try{let t=false;const r=this;return Promise.resolve(l(function(){function e(e){return t?e:[]}const s=function(){if(n){r._favPageVisualizations=r._favPageVisualizations||[];const e=r._favPageVisualizations.reduce((e,t)=>{if(t.pageId&&!e.includes(t.pageId)){e.push(t.pageId)}return e},[]);const s=n.map(e=>e.pageId);const i=e.length===0||!e.every(e=>s.includes(e));if(!o&&!i){const e=r._favPageVisualizations;t=true;return e}else{return Promise.resolve(r._loadAllPageVisualizations(n)).then(function(e){r._favPageVisualizations=e;const n=r._favPageVisualizations;t=true;return n})}}}();return s&&s.then?s.then(e):e(s)},function(t){e.error(t);return[]}))}catch(e){return Promise.reject(e)}},_loadAllPageVisualizations:function t(o){let r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;try{const t=e=>o.find(t=>t.pageId===e)?.BGColor??f().key;return Promise.resolve(l(function(){const e=[];return Promise.resolve(n.getServiceAsync("SpaceContent")).then(function(n){return Promise.resolve(n.getPages(o.map(e=>e.pageId))).then(function(n){const o=Object.values(n);for(const n of o){const o=n.sections||[];for(const s of o){const o=s.visualizations||[];for(const s of o){const o={appId:s.targetURL,vizId:s.vizId,icon:s.icon,BGColor:t(n.id),pageId:n.id};if(!r||!e.some(e=>e.appId===o.appId)){e.push(o)}}}}return e})})},function(t){e.error(t);return[]}))}catch(e){return Promise.reject(e)}},getAppIcon:function e(){return g},_getFavAppIcon:function e(t,n){return n||t?.getIcon()||d}});return _});
5
+ "use strict";sap.ui.define(["sap/base/Log","sap/ui/core/EventBus","sap/ushell/Container","./BaseAppPanel","./utils/Constants","./utils/DataFormatUtils","./utils/PageManager","./utils/PersonalisationUtils","./utils/UshellPersonalizer"],function(e,t,n,o,r,i,s,a,c){"use strict";function u(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}function l(e,t){try{var n=e()}catch(e){return t(e)}if(n&&n.then){return n.then(void 0,t)}return n}const p=u(o);const f=r["DEFAULT_APP_ICON"];const g=r["DEFAULT_BG_COLOR"];const d=r["FALLBACK_ICON"];const P=r["MYHOME_PAGE_ID"];const h=u(i);const I=u(s);const v=u(a);const m=u(c);const _=p.extend("sap.cux.home.BaseAppPersPanel",{metadata:{library:"sap.cux.home",properties:{persContainerId:{type:"string",group:"Misc",defaultValue:"",visibility:"hidden"}}},constructor:function e(t,n){p.prototype.constructor.call(this,t,n);this._favPageVisualizations=[]},init:function e(){p.prototype.init.call(this);this.setProperty("persContainerId",v.getPersContainerId(this));this._pageManagerInstance=I.getInstance(v.getPersContainerId(this),v.getOwnerComponent(this));this._eventBus=t.getInstance();this._eventBus.subscribe("pageChannel","pageUpdated",()=>{void this.applyPersonalization()},this)},_getPersonalizer:function e(){try{const e=this;const t=e.getProperty("persContainerId");if(!t){throw new Error("No Container ID Provided for personalisation!")}return Promise.resolve(m?.getInstance(t,v.getOwnerComponent(e)))}catch(e){return Promise.reject(e)}},getPersonalization:function e(){try{const e=this;return Promise.resolve(e._getPersonalizer()).then(function(e){return Promise.resolve(e?.read())})}catch(e){return Promise.reject(e)}},setPersonalization:function e(t){try{const e=this;return Promise.resolve(e._getPersonalizer()).then(function(e){return Promise.resolve(e.write(t)).then(function(){})})}catch(e){return Promise.reject(e)}},_getAppPersonalization:function e(){try{const e=this;return Promise.resolve(e.getPersonalization()).then(function(e){return e?.favoriteApps||[]})}catch(e){return Promise.reject(e)}},setFavAppsPersonalization:function e(t){try{const e=this;return Promise.resolve(e.getPersonalization()).then(function(n){const o=function(){if(n){n.favoriteApps=t;return Promise.resolve(e.setPersonalization(n)).then(function(){})}}();if(o&&o.then)return o.then(function(){})})}catch(e){return Promise.reject(e)}},applyPersonalization:function e(){try{const e=this;let t=[];t=e.fetchTileVisualization(t);return Promise.resolve(e._applyTilesPersonalization(t))}catch(e){return Promise.reject(e)}},_applyTilesPersonalization:function e(t,n){let o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;try{const e=this;return Promise.resolve(Promise.all([e._getAppPersonalization(),e._getFavPages()])).then(function(r){let[i,s]=r;return Promise.resolve(e._getAllFavPageApps(s,o)).then(function(o){const r=e.getAggregation("groups")||[];const s=n?e._getGroup(n)?.getApps()||[]:e.getApps()||[];for(const a of t){const t=e._getItem(a,r,s);const{color:c,icon:u}=e._getItemPersonalization(t,i,o,n);if(c){t?.setProperty("bgColor",c,true);a.setBackgroundColor(c)}if(u){t?.setProperty("icon",u,true);a.setTileIcon(u)}}})})}catch(e){return Promise.reject(e)}},_getItem:function e(t,n,o){const r=t.data("groupId");if(r){return n.find(e=>e.getGroupId()===r)}else{return o.find(e=>h.getLeanURL(e.getUrl())===t.getUrl())}},_getItemPersonalization:function e(t,n,o,r){let i="";let s="";if(!t)return{color:i,icon:s};if(t.isA("sap.cux.home.Group")){const e=n?.find(e=>e.isSection&&e.sectionId===t.getGroupId());i=e?.BGColor}else{const e=t;const a=[e.getUrl()];const c=e.data("oldAppId");if(c){a.push(c)}const u=e.getVizId();const l=r?n?.find(e=>!e.isSection&&e.sectionId===r&&e.appId&&a.includes(e.appId)):n?.find(e=>e.isRecentlyAddedApp&&e.appId&&a.includes(e.appId));const p=o.find(e=>e.vizId===u||e.appId&&a.includes(e.appId));i=l?.BGColor||p?.BGColor||g().key;s=this?.isA("sap.cux.home.FavAppPanel")?this._getFavAppIcon(e,p?.icon):this.getAppIcon()}return{color:i,icon:s}},_getFavPages:function e(){try{const e=this;return Promise.resolve(e._pageManagerInstance.getFavoritePages()).then(function(e){return e.concat({pageId:P,BGColor:g().key})})}catch(e){return Promise.reject(e)}},_getAllFavPageApps:function t(n,o){try{let t=false;const r=this;return Promise.resolve(l(function(){function e(e){return t?e:[]}const i=function(){if(n){r._favPageVisualizations=r._favPageVisualizations||[];const e=r._favPageVisualizations.reduce((e,t)=>{if(t.pageId&&!e.includes(t.pageId)){e.push(t.pageId)}return e},[]);const i=n.map(e=>e.pageId);const s=e.length===0||!e.every(e=>i.includes(e));if(!o&&!s){const e=r._favPageVisualizations;t=true;return e}else{return Promise.resolve(r._loadAllPageVisualizations(n)).then(function(e){r._favPageVisualizations=e;const n=r._favPageVisualizations;t=true;return n})}}}();return i&&i.then?i.then(e):e(i)},function(t){e.error(t);return[]}))}catch(e){return Promise.reject(e)}},_loadAllPageVisualizations:function t(o){let r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;try{const t=e=>o.find(t=>t.pageId===e)?.BGColor??g().key;return Promise.resolve(l(function(){const e=[];return Promise.resolve(n.getServiceAsync("SpaceContent")).then(function(n){return Promise.resolve(n.getPages(o.map(e=>e.pageId))).then(function(n){const o=Object.values(n);for(const n of o){const o=n.sections||[];for(const i of o){const o=i.visualizations||[];for(const i of o){const o={appId:i.targetURL,vizId:i.vizId,icon:i.icon,BGColor:t(n.id),pageId:n.id};if(!r||!e.some(e=>e.appId===o.appId)){e.push(o)}}}}return e})})},function(t){e.error(t);return[]}))}catch(e){return Promise.reject(e)}},getAppIcon:function e(){return f},_getFavAppIcon:function e(t,n){return n||t?.getIcon()||d}});return _});
6
6
  //# sourceMappingURL=BaseAppPersPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAppPersPanel.js","names":["sap","ui","define","Log","EventBus","Container","__BaseAppPanel","___utils_Constants","__DataFormatUtils","__PageManager","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BaseAppPanel","DEFAULT_APP_ICON","DEFAULT_BG_COLOR","FALLBACK_ICON","MYHOME_PAGE_ID","DataFormatUtils","PageManager","PersonalisationUtils","UshellPersonalizer","BaseAppPersPanel","extend","metadata","library","properties","persContainerId","type","group","defaultValue","visibility","constructor","_constructor","id","settings","BaseAppPanel.prototype.constructor.call","this","_favPageVisualizations","init","_init","BaseAppPanel.prototype.init.call","setProperty","getPersContainerId","_pageManagerInstance","getInstance","getOwnerComponent","_eventBus","subscribe","applyPersonalization","_getPersonalizer","_this","getProperty","Error","Promise","resolve","reject","getPersonalization","_getPersonalization","_this2","personalizer","read","setPersonalization","_setPersonalization","persData","_this3","write","_getAppPersonalization","_this4","personalization","favoriteApps","setFavAppsPersonalization","_setFavAppsPersonalization","appsPersonalization","_this5","_applyPersonalization","_this6","tiles","fetchTileVisualization","_applyTilesPersonalization","groupId","shouldReload","arguments","length","undefined","_this7","all","_getFavPages","_ref","personalizations","favPages","_getAllFavPageApps","favPageVisualizations","groups","getAggregation","apps","_getGroup","getApps","tile","item","_getItem","color","icon","_getItemPersonalization","setBackgroundColor","setTileIcon","tileGroupId","data","find","oGroup","getGroupId","oApp","getLeanURL","getUrl","isA","isSection","sectionId","BGColor","app","appIds","oldAppId","push","vizId","getVizId","appId","includes","oPersonalization","isRecentlyAddedApp","favPageVisualization","oVisualization","key","_getFavAppIcon","getAppIcon","_this8","getFavoritePages","aFavPages","concat","pageId","pages","_exit","_this9","_temp2","_result","_temp","loadedPages","reduce","pageIDs","visualization","pageIds","map","page","shouldLoadMissingApps","every","_this9$_favPageVisual","_loadAllPageVisualizations","_this9$_loadAllPageVi","_this9$_favPageVisual2","error","shouldFetchDistinctApps","getBgColor","getServiceAsync","spaceContentService","getPages","oPage","pageData","aPages","Object","values","sections","section","visualizations","targetURL","some","oVizApp","_getAppIcon","favPageIcon","getIcon"],"sources":["BaseAppPersPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2024 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport Component from \"sap/ui/core/Component\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Container from \"sap/ushell/Container\";\nimport SpaceContent from \"sap/ushell/services/SpaceContent\";\nimport App from \"./App\";\nimport BaseAppPanel from \"./BaseAppPanel\";\nimport { $BaseAppPersPanelSettings } from \"./BaseAppPersPanel\";\nimport Group from \"./Group\";\nimport { IAppPersonalization, ICustomVisualization, IItemPersonalization } from \"./interface/AppsInterface\";\nimport { IPage } from \"./interface/PageSpaceInterface\";\nimport { DEFAULT_APP_ICON, DEFAULT_BG_COLOR, FALLBACK_ICON, MYHOME_PAGE_ID } from \"./utils/Constants\";\nimport DataFormatUtils from \"./utils/DataFormatUtils\";\nimport PageManager from \"./utils/PageManager\";\nimport PersonalisationUtils from \"./utils/PersonalisationUtils\";\nimport UshellPersonalizer, { IPersonalizationData } from \"./utils/UshellPersonalizer\";\n\n/**\n *\n * Provides the BaseAppPersPanel Class which is BaseAppPanel with personalisation.\n *\n * @extends sap.cux.home.BaseAppPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @abstract\n * @internal\n * @experimental Since 1.121\n * @private\n *\n * @alias sap.cux.home.BaseAppPersPanel\n */\nexport default abstract class BaseAppPersPanel extends BaseAppPanel {\n\tprivate _pageManagerInstance!: PageManager;\n\tprivate _favPageVisualizations: ICustomVisualization[] = [];\n\tprivate _eventBus!: EventBus;\n\n\tconstructor(idOrSettings?: string | $BaseAppPersPanelSettings);\n\tconstructor(id?: string, settings?: $BaseAppPersPanelSettings);\n\tconstructor(id?: string, settings?: $BaseAppPersPanelSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\tpersContainerId: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"persContainerId\", PersonalisationUtils.getPersContainerId(this));\n\t\tthis._pageManagerInstance = PageManager.getInstance(\n\t\t\tPersonalisationUtils.getPersContainerId(this),\n\t\t\tPersonalisationUtils.getOwnerComponent(this) as Component\n\t\t);\n\t\tthis._eventBus = EventBus.getInstance();\n\n\t\t//apply personalization on page update\n\t\tthis._eventBus.subscribe(\n\t\t\t\"pageChannel\",\n\t\t\t\"pageUpdated\",\n\t\t\t() => {\n\t\t\t\tvoid this.applyPersonalization();\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t}\n\n\t/**\n\t * Retrieves the personalizer instance.\n\t * @returns {Promise<sap.cux.home.UshellPersonalizer>} A promise resolving to the personalizer instance.\n\t * @throws {Error} Throws an error if no container ID is provided for personalization.\n\t * @private\n\t */\n\tprivate async _getPersonalizer() {\n\t\tconst persContainerId = this.getProperty(\"persContainerId\") as string;\n\t\tif (!persContainerId) {\n\t\t\tthrow new Error(\"No Container ID Provided for personalisation!\");\n\t\t}\n\t\tconst personalizer = await UshellPersonalizer?.getInstance(\n\t\t\tpersContainerId,\n\t\t\tPersonalisationUtils.getOwnerComponent(this) as Component\n\t\t);\n\t\treturn personalizer;\n\t}\n\n\t/**\n\t * Retrieves personalization data.\n\t * @returns {Promise<IPersonalizationData>} A promise that resolves with the personalization data.\n\t * @private\n\t */\n\tprotected async getPersonalization() {\n\t\tconst personalizer = await this._getPersonalizer();\n\t\tconst persData = await personalizer?.read();\n\t\treturn persData;\n\t}\n\n\t/**\n\t * Sets the personalization data.\n\t * @param {IPersonalizationData} persData - The personalization data to set.\n\t * @returns {Promise<void>} A promise that resolves when the personalization data is set.\n\t * @private\n\t */\n\tprotected async setPersonalization(persData: IPersonalizationData) {\n\t\tconst personalizer = await this._getPersonalizer();\n\t\tawait personalizer.write(persData);\n\t}\n\n\t/**\n\t * Returns array of personalized favorite apps\n\t *\n\t * @returns {Promise} resolves to return array of personalized favorite apps\n\t */\n\tprotected async _getAppPersonalization() {\n\t\tconst personalization = await this.getPersonalization();\n\t\treturn personalization?.favoriteApps || ([] as IAppPersonalization[]);\n\t}\n\n\t/**\n\t * Sets the personalization data.\n\t * @param {Array} appsPersonalization - Personalization data for favorite apps.\n\t * @returns {Promise<void>} A promise that resolves when the personalization data is set.\n\t * @private\n\t */\n\tprotected async setFavAppsPersonalization(appsPersonalization: IAppPersonalization[]) {\n\t\tlet personalization = await this.getPersonalization();\n\t\tpersonalization.favoriteApps = appsPersonalization;\n\t\tawait this.setPersonalization(personalization);\n\t}\n\n\t/**\n\t * Applies personalization settings to the tiles.\n\t * Retrieves tiles from the generated apps wrapper and applies personalization settings to each tile.\n\t * Personalization settings include background color and icon customization.\n\t * @private\n\t * @async\n\t */\n\tpublic async applyPersonalization() {\n\t\tlet tiles: GenericTile[] = [];\n\t\ttiles = this.fetchTileVisualization(tiles);\n\t\treturn await this._applyTilesPersonalization(tiles);\n\t}\n\n\t/**\n\t * Applies personalization settings to the provided tiles.\n\t * @param {Array} tiles - An array of tiles to apply personalization settings to.\n\t * @param {string} [groupId] - Optional group ID for filtering personalization settings.\n\t * @param {boolean} [shouldReload=true] - A flag indicating whether to reload page visualizations.\n\t * @returns {Promise<void>} A promise that resolves when personalization settings are applied to the tiles.\n\t * @private\n\t */\n\tprotected async _applyTilesPersonalization(tiles: GenericTile[], groupId?: string, shouldReload = true) {\n\t\tconst [personalizations, favPages] = await Promise.all([this._getAppPersonalization(), this._getFavPages()]);\n\t\tconst favPageVisualizations = await this._getAllFavPageApps(favPages, shouldReload);\n\t\tconst groups = (this.getAggregation(\"groups\") || []) as Group[];\n\t\tconst apps = groupId ? this._getGroup(groupId)?.getApps() || [] : this.getApps() || [];\n\t\tfor (const tile of tiles) {\n\t\t\tconst item = this._getItem(tile, groups, apps);\n\t\t\tconst { color, icon } = this._getItemPersonalization(item, personalizations, favPageVisualizations, groupId);\n\n\t\t\tif (color) {\n\t\t\t\titem?.setProperty(\"bgColor\", color, true);\n\t\t\t\ttile.setBackgroundColor(color);\n\t\t\t}\n\n\t\t\tif (icon) {\n\t\t\t\titem?.setProperty(\"icon\", icon, true);\n\t\t\t\ttile.setTileIcon(icon);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the corresponding App or Group object associated with the given tile.\n\t * @param {GenericTile} tile - The tile for which to retrieve the corresponding item.\n\t * @param {Group[]} groups - An array of Group objects.\n\t * @param {App[]} apps - An array of App objects.\n\t * @returns {App | Group | undefined} The corresponding App or Group object, or undefined if not found.\n\t * @private\n\t */\n\tprivate _getItem(tile: GenericTile, groups: Group[], apps: App[]): App | Group | undefined {\n\t\tconst tileGroupId = tile.data(\"groupId\") as string | undefined;\n\t\tif (tileGroupId) {\n\t\t\treturn groups.find((oGroup) => oGroup.getGroupId() === tileGroupId);\n\t\t} else {\n\t\t\treturn apps.find((oApp) => DataFormatUtils.getLeanURL(oApp.getUrl()) === tile.getUrl());\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the color and icon associated with the specified item based on personalizations.\n\t * @param {App | Group | undefined} item - The App or Group object for which to retrieve personalization data.\n\t * @param {IAppPersonalization[] | undefined} personalizations - An array of personalization objects.\n\t * @param {ICustomVisualization[]} favPageVisualizations - An array of favorite page visualizations.\n\t * @param {string | undefined} groupId - The ID of the group to which the item belongs.\n\t * @returns {IItemPersonalization} An object containing the color and icon associated with the item.\n\t * @private\n\t */\n\tprivate _getItemPersonalization(\n\t\titem: App | Group | undefined,\n\t\tpersonalizations: IAppPersonalization[] | undefined,\n\t\tfavPageVisualizations: ICustomVisualization[],\n\t\tgroupId?: string\n\t): IItemPersonalization {\n\t\tlet color: string = \"\";\n\t\tlet icon: string = \"\";\n\n\t\tif (!item) return { color, icon };\n\n\t\tif (item.isA(\"sap.cux.home.Group\")) {\n\t\t\tconst personalization = personalizations?.find(\n\t\t\t\t(personalization) => personalization.isSection && personalization.sectionId === (item as Group).getGroupId()\n\t\t\t);\n\t\t\tcolor = personalization?.BGColor as string;\n\t\t} else {\n\t\t\tconst app = item as App;\n\t\t\tconst appIds = [app.getUrl()];\n\t\t\tconst oldAppId = app.data(\"oldAppId\") as string | undefined;\n\t\t\tif (oldAppId) {\n\t\t\t\tappIds.push(oldAppId);\n\t\t\t}\n\t\t\tconst vizId = app.getVizId();\n\t\t\tconst personalization = groupId\n\t\t\t\t? personalizations?.find(\n\t\t\t\t\t\t(personalization) =>\n\t\t\t\t\t\t\t!personalization.isSection &&\n\t\t\t\t\t\t\tpersonalization.sectionId === groupId &&\n\t\t\t\t\t\t\tpersonalization.appId &&\n\t\t\t\t\t\t\tappIds.includes(personalization.appId)\n\t\t\t\t\t)\n\t\t\t\t: personalizations?.find(\n\t\t\t\t\t\t(oPersonalization) =>\n\t\t\t\t\t\t\toPersonalization.isRecentlyAddedApp && oPersonalization.appId && appIds.includes(oPersonalization.appId)\n\t\t\t\t\t);\n\t\t\tconst favPageVisualization = favPageVisualizations.find(\n\t\t\t\t(oVisualization) => oVisualization.vizId === vizId || (oVisualization.appId && appIds.includes(oVisualization.appId))\n\t\t\t);\n\t\t\tcolor = personalization?.BGColor || favPageVisualization?.BGColor || DEFAULT_BG_COLOR().key;\n\t\t\ticon = this?.isA(\"sap.cux.home.FavAppPanel\") ? this._getFavAppIcon(app, favPageVisualization?.icon) : this.getAppIcon();\n\t\t}\n\n\t\treturn { color, icon };\n\t}\n\n\t/**\n\t * Retrieves favorite pages.\n\t * @returns {Promise<Array>} A promise that resolves with an array of favorite pages.\n\t * @private\n\t */\n\tprivate async _getFavPages() {\n\t\tconst aFavPages = await this._pageManagerInstance.getFavoritePages();\n\t\treturn aFavPages.concat({\n\t\t\tpageId: MYHOME_PAGE_ID,\n\t\t\tBGColor: DEFAULT_BG_COLOR().key\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves visualizations for all favorite pages based on the provided parameters.\n\t * @param {Array} pages - An array of favorite pages.\n\t * @param {boolean} shouldReload - A flag indicating whether to reload page visualizations.\n\t * @returns {Promise<Array>} A promise that resolves with an array of favorite page visualizations.\n\t * @private\n\t */\n\tprivate async _getAllFavPageApps(pages: IPage[], shouldReload?: boolean) {\n\t\ttry {\n\t\t\tif (pages) {\n\t\t\t\tthis._favPageVisualizations = this._favPageVisualizations || [];\n\t\t\t\t//Check to ensure that missing visualization data is loaded, if any\n\t\t\t\tconst loadedPages = this._favPageVisualizations.reduce((pageIDs: string[], visualization) => {\n\t\t\t\t\tif (visualization.pageId && !pageIDs.includes(visualization.pageId)) {\n\t\t\t\t\t\tpageIDs.push(visualization.pageId);\n\t\t\t\t\t}\n\t\t\t\t\treturn pageIDs;\n\t\t\t\t}, []);\n\t\t\t\tconst pageIds = pages.map((page) => page.pageId);\n\t\t\t\tconst shouldLoadMissingApps = loadedPages.length === 0 || !loadedPages.every((pageId) => pageIds.includes(pageId));\n\t\t\t\tif (!shouldReload && !shouldLoadMissingApps) {\n\t\t\t\t\treturn this._favPageVisualizations;\n\t\t\t\t} else {\n\t\t\t\t\tthis._favPageVisualizations = await this._loadAllPageVisualizations(pages);\n\t\t\t\t\treturn this._favPageVisualizations;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn [];\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Loads visualizations for all specified pages.\n\t * @param {Array} pages - An array of pages.\n\t * @param {boolean} [shouldFetchDistinctApps=false] - A flag indicating whether to fetch distinct pages.\n\t * @returns {Promise<Array>} A promise that resolves with an array of page visualizations.\n\t * @private\n\t */\n\tprivate async _loadAllPageVisualizations(pages: IPage[], shouldFetchDistinctApps = false) {\n\t\tconst getBgColor = (pageId: string | undefined) => {\n\t\t\treturn pages.find((page) => page.pageId === pageId)?.BGColor ?? DEFAULT_BG_COLOR().key;\n\t\t};\n\n\t\ttry {\n\t\t\tconst favPageVisualizations: ICustomVisualization[] = [];\n\t\t\tconst spaceContentService = await Container.getServiceAsync<SpaceContent>(\"SpaceContent\");\n\t\t\tconst pageData = await spaceContentService.getPages(pages.map((oPage) => oPage.pageId) as string[]);\n\t\t\tconst aPages = Object.values(pageData);\n\n\t\t\tfor (const page of aPages) {\n\t\t\t\tconst sections = page.sections || [];\n\t\t\t\tfor (const section of sections) {\n\t\t\t\t\tconst visualizations = section.visualizations || [];\n\t\t\t\t\tfor (const visualization of visualizations) {\n\t\t\t\t\t\tconst app = {\n\t\t\t\t\t\t\tappId: visualization.targetURL,\n\t\t\t\t\t\t\tvizId: visualization.vizId,\n\t\t\t\t\t\t\ticon: visualization.icon,\n\t\t\t\t\t\t\tBGColor: getBgColor(page.id) as string,\n\t\t\t\t\t\t\tpageId: page.id\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (!shouldFetchDistinctApps || !favPageVisualizations.some((oVizApp) => oVizApp.appId === app.appId)) {\n\t\t\t\t\t\t\tfavPageVisualizations.push(app);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn favPageVisualizations;\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns default app icon.\n\t * @returns {string} The icon URL for the app.\n\t * @private\n\t */\n\tprotected getAppIcon(): string {\n\t\treturn DEFAULT_APP_ICON;\n\t}\n\n\t/**\n\t * Retrieves the icon for the specified app, prioritizing the favorite page icon if available.\n\t * @param {sap.cux.home.App} app - The app object.\n\t * @param {string} favPageIcon - The icon for the app from the favorite page.\n\t * @returns {string} The icon URL for the app.\n\t * @private\n\t */\n\tprivate _getFavAppIcon(app?: App, favPageIcon?: string): string {\n\t\treturn favPageIcon || app?.getIcon() || FALLBACK_ICON;\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseAppPersPanel.js","names":["sap","ui","define","Log","EventBus","Container","__BaseAppPanel","___utils_Constants","__DataFormatUtils","__PageManager","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BaseAppPanel","DEFAULT_APP_ICON","DEFAULT_BG_COLOR","FALLBACK_ICON","MYHOME_PAGE_ID","DataFormatUtils","PageManager","PersonalisationUtils","UshellPersonalizer","BaseAppPersPanel","extend","metadata","library","properties","persContainerId","type","group","defaultValue","visibility","constructor","_constructor","id","settings","BaseAppPanel.prototype.constructor.call","this","_favPageVisualizations","init","_init","BaseAppPanel.prototype.init.call","setProperty","getPersContainerId","_pageManagerInstance","getInstance","getOwnerComponent","_eventBus","subscribe","applyPersonalization","_getPersonalizer","_this","getProperty","Error","Promise","resolve","reject","getPersonalization","_getPersonalization","_this2","personalizer","read","setPersonalization","_setPersonalization","persData","_this3","write","_getAppPersonalization","_this4","personalization","favoriteApps","setFavAppsPersonalization","_setFavAppsPersonalization","appsPersonalization","_this5","_temp","_applyPersonalization","_this6","tiles","fetchTileVisualization","_applyTilesPersonalization","groupId","shouldReload","arguments","length","undefined","_this7","all","_getFavPages","_ref","personalizations","favPages","_getAllFavPageApps","favPageVisualizations","groups","getAggregation","apps","_getGroup","getApps","tile","item","_getItem","color","icon","_getItemPersonalization","setBackgroundColor","setTileIcon","tileGroupId","data","find","oGroup","getGroupId","oApp","getLeanURL","getUrl","isA","isSection","sectionId","BGColor","app","appIds","oldAppId","push","vizId","getVizId","appId","includes","oPersonalization","isRecentlyAddedApp","favPageVisualization","oVisualization","key","_getFavAppIcon","getAppIcon","_this8","getFavoritePages","aFavPages","concat","pageId","pages","_exit","_this9","_temp3","_result","_temp2","loadedPages","reduce","pageIDs","visualization","pageIds","map","page","shouldLoadMissingApps","every","_this9$_favPageVisual","_loadAllPageVisualizations","_this9$_loadAllPageVi","_this9$_favPageVisual2","error","shouldFetchDistinctApps","getBgColor","getServiceAsync","spaceContentService","getPages","oPage","pageData","aPages","Object","values","sections","section","visualizations","targetURL","some","oVizApp","_getAppIcon","favPageIcon","getIcon"],"sources":["BaseAppPersPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2024 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport Component from \"sap/ui/core/Component\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Container from \"sap/ushell/Container\";\nimport SpaceContent from \"sap/ushell/services/SpaceContent\";\nimport App from \"./App\";\nimport BaseAppPanel from \"./BaseAppPanel\";\nimport { $BaseAppPersPanelSettings } from \"./BaseAppPersPanel\";\nimport Group from \"./Group\";\nimport { IAppPersonalization, ICustomVisualization, IItemPersonalization } from \"./interface/AppsInterface\";\nimport { IPage } from \"./interface/PageSpaceInterface\";\nimport { DEFAULT_APP_ICON, DEFAULT_BG_COLOR, FALLBACK_ICON, MYHOME_PAGE_ID } from \"./utils/Constants\";\nimport DataFormatUtils from \"./utils/DataFormatUtils\";\nimport PageManager from \"./utils/PageManager\";\nimport PersonalisationUtils from \"./utils/PersonalisationUtils\";\nimport UshellPersonalizer, { IPersonalizationData } from \"./utils/UshellPersonalizer\";\n\n/**\n *\n * Provides the BaseAppPersPanel Class which is BaseAppPanel with personalisation.\n *\n * @extends sap.cux.home.BaseAppPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @abstract\n * @internal\n * @experimental Since 1.121\n * @private\n *\n * @alias sap.cux.home.BaseAppPersPanel\n */\nexport default abstract class BaseAppPersPanel extends BaseAppPanel {\n\tprivate _pageManagerInstance!: PageManager;\n\tprivate _favPageVisualizations: ICustomVisualization[] = [];\n\tprivate _eventBus!: EventBus;\n\n\tconstructor(idOrSettings?: string | $BaseAppPersPanelSettings);\n\tconstructor(id?: string, settings?: $BaseAppPersPanelSettings);\n\tconstructor(id?: string, settings?: $BaseAppPersPanelSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\tpersContainerId: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"persContainerId\", PersonalisationUtils.getPersContainerId(this));\n\t\tthis._pageManagerInstance = PageManager.getInstance(\n\t\t\tPersonalisationUtils.getPersContainerId(this),\n\t\t\tPersonalisationUtils.getOwnerComponent(this) as Component\n\t\t);\n\t\tthis._eventBus = EventBus.getInstance();\n\n\t\t//apply personalization on page update\n\t\tthis._eventBus.subscribe(\n\t\t\t\"pageChannel\",\n\t\t\t\"pageUpdated\",\n\t\t\t() => {\n\t\t\t\tvoid this.applyPersonalization();\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t}\n\n\t/**\n\t * Retrieves the personalizer instance.\n\t * @returns {Promise<sap.cux.home.UshellPersonalizer>} A promise resolving to the personalizer instance.\n\t * @throws {Error} Throws an error if no container ID is provided for personalization.\n\t * @private\n\t */\n\tprivate async _getPersonalizer() {\n\t\tconst persContainerId = this.getProperty(\"persContainerId\") as string;\n\t\tif (!persContainerId) {\n\t\t\tthrow new Error(\"No Container ID Provided for personalisation!\");\n\t\t}\n\t\tconst personalizer = await UshellPersonalizer?.getInstance(\n\t\t\tpersContainerId,\n\t\t\tPersonalisationUtils.getOwnerComponent(this) as Component\n\t\t);\n\t\treturn personalizer;\n\t}\n\n\t/**\n\t * Retrieves personalization data.\n\t * @returns {Promise<IPersonalizationData>} A promise that resolves with the personalization data.\n\t * @private\n\t */\n\tprotected async getPersonalization() {\n\t\tconst personalizer = await this._getPersonalizer();\n\t\tconst persData = await personalizer?.read();\n\t\treturn persData;\n\t}\n\n\t/**\n\t * Sets the personalization data.\n\t * @param {IPersonalizationData} persData - The personalization data to set.\n\t * @returns {Promise<void>} A promise that resolves when the personalization data is set.\n\t * @private\n\t */\n\tprotected async setPersonalization(persData: IPersonalizationData) {\n\t\tconst personalizer = await this._getPersonalizer();\n\t\tawait personalizer.write(persData);\n\t}\n\n\t/**\n\t * Returns array of personalized favorite apps\n\t *\n\t * @returns {Promise} resolves to return array of personalized favorite apps\n\t */\n\tprotected async _getAppPersonalization() {\n\t\tconst personalization = await this.getPersonalization();\n\t\treturn personalization?.favoriteApps || ([] as IAppPersonalization[]);\n\t}\n\n\t/**\n\t * Sets the personalization data.\n\t * @param {IAppPersonalization[]} appsPersonalization - Personalization data for favorite apps.\n\t * @returns {Promise<void>} A promise that resolves when the personalization data is set.\n\t * @private\n\t */\n\tprotected async setFavAppsPersonalization(appsPersonalization: IAppPersonalization[]): Promise<void> {\n\t\tlet personalization = await this.getPersonalization();\n\t\tif (personalization) {\n\t\t\tpersonalization.favoriteApps = appsPersonalization;\n\t\t\tawait this.setPersonalization(personalization);\n\t\t}\n\t}\n\n\t/**\n\t * Applies personalization settings to the tiles.\n\t * Retrieves tiles from the generated apps wrapper and applies personalization settings to each tile.\n\t * Personalization settings include background color and icon customization.\n\t * @private\n\t * @async\n\t */\n\tpublic async applyPersonalization() {\n\t\tlet tiles: GenericTile[] = [];\n\t\ttiles = this.fetchTileVisualization(tiles);\n\t\treturn await this._applyTilesPersonalization(tiles);\n\t}\n\n\t/**\n\t * Applies personalization settings to the provided tiles.\n\t * @param {Array} tiles - An array of tiles to apply personalization settings to.\n\t * @param {string} [groupId] - Optional group ID for filtering personalization settings.\n\t * @param {boolean} [shouldReload=true] - A flag indicating whether to reload page visualizations.\n\t * @returns {Promise<void>} A promise that resolves when personalization settings are applied to the tiles.\n\t * @private\n\t */\n\tprotected async _applyTilesPersonalization(tiles: GenericTile[], groupId?: string, shouldReload = true) {\n\t\tconst [personalizations, favPages] = await Promise.all([this._getAppPersonalization(), this._getFavPages()]);\n\t\tconst favPageVisualizations = await this._getAllFavPageApps(favPages, shouldReload);\n\t\tconst groups = (this.getAggregation(\"groups\") || []) as Group[];\n\t\tconst apps = groupId ? this._getGroup(groupId)?.getApps() || [] : this.getApps() || [];\n\t\tfor (const tile of tiles) {\n\t\t\tconst item = this._getItem(tile, groups, apps);\n\t\t\tconst { color, icon } = this._getItemPersonalization(item, personalizations, favPageVisualizations, groupId);\n\n\t\t\tif (color) {\n\t\t\t\titem?.setProperty(\"bgColor\", color, true);\n\t\t\t\ttile.setBackgroundColor(color);\n\t\t\t}\n\n\t\t\tif (icon) {\n\t\t\t\titem?.setProperty(\"icon\", icon, true);\n\t\t\t\ttile.setTileIcon(icon);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the corresponding App or Group object associated with the given tile.\n\t * @param {GenericTile} tile - The tile for which to retrieve the corresponding item.\n\t * @param {Group[]} groups - An array of Group objects.\n\t * @param {App[]} apps - An array of App objects.\n\t * @returns {App | Group | undefined} The corresponding App or Group object, or undefined if not found.\n\t * @private\n\t */\n\tprivate _getItem(tile: GenericTile, groups: Group[], apps: App[]): App | Group | undefined {\n\t\tconst tileGroupId = tile.data(\"groupId\") as string | undefined;\n\t\tif (tileGroupId) {\n\t\t\treturn groups.find((oGroup) => oGroup.getGroupId() === tileGroupId);\n\t\t} else {\n\t\t\treturn apps.find((oApp) => DataFormatUtils.getLeanURL(oApp.getUrl()) === tile.getUrl());\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the color and icon associated with the specified item based on personalizations.\n\t * @param {App | Group | undefined} item - The App or Group object for which to retrieve personalization data.\n\t * @param {IAppPersonalization[] | undefined} personalizations - An array of personalization objects.\n\t * @param {ICustomVisualization[]} favPageVisualizations - An array of favorite page visualizations.\n\t * @param {string | undefined} groupId - The ID of the group to which the item belongs.\n\t * @returns {IItemPersonalization} An object containing the color and icon associated with the item.\n\t * @private\n\t */\n\tprivate _getItemPersonalization(\n\t\titem: App | Group | undefined,\n\t\tpersonalizations: IAppPersonalization[] | undefined,\n\t\tfavPageVisualizations: ICustomVisualization[],\n\t\tgroupId?: string\n\t): IItemPersonalization {\n\t\tlet color: string = \"\";\n\t\tlet icon: string = \"\";\n\n\t\tif (!item) return { color, icon };\n\n\t\tif (item.isA(\"sap.cux.home.Group\")) {\n\t\t\tconst personalization = personalizations?.find(\n\t\t\t\t(personalization) => personalization.isSection && personalization.sectionId === (item as Group).getGroupId()\n\t\t\t);\n\t\t\tcolor = personalization?.BGColor as string;\n\t\t} else {\n\t\t\tconst app = item as App;\n\t\t\tconst appIds = [app.getUrl()];\n\t\t\tconst oldAppId = app.data(\"oldAppId\") as string | undefined;\n\t\t\tif (oldAppId) {\n\t\t\t\tappIds.push(oldAppId);\n\t\t\t}\n\t\t\tconst vizId = app.getVizId();\n\t\t\tconst personalization = groupId\n\t\t\t\t? personalizations?.find(\n\t\t\t\t\t\t(personalization) =>\n\t\t\t\t\t\t\t!personalization.isSection &&\n\t\t\t\t\t\t\tpersonalization.sectionId === groupId &&\n\t\t\t\t\t\t\tpersonalization.appId &&\n\t\t\t\t\t\t\tappIds.includes(personalization.appId)\n\t\t\t\t\t)\n\t\t\t\t: personalizations?.find(\n\t\t\t\t\t\t(oPersonalization) =>\n\t\t\t\t\t\t\toPersonalization.isRecentlyAddedApp && oPersonalization.appId && appIds.includes(oPersonalization.appId)\n\t\t\t\t\t);\n\t\t\tconst favPageVisualization = favPageVisualizations.find(\n\t\t\t\t(oVisualization) => oVisualization.vizId === vizId || (oVisualization.appId && appIds.includes(oVisualization.appId))\n\t\t\t);\n\t\t\tcolor = personalization?.BGColor || favPageVisualization?.BGColor || DEFAULT_BG_COLOR().key;\n\t\t\ticon = this?.isA(\"sap.cux.home.FavAppPanel\") ? this._getFavAppIcon(app, favPageVisualization?.icon) : this.getAppIcon();\n\t\t}\n\n\t\treturn { color, icon };\n\t}\n\n\t/**\n\t * Retrieves favorite pages.\n\t * @returns {Promise<Array>} A promise that resolves with an array of favorite pages.\n\t * @private\n\t */\n\tprivate async _getFavPages() {\n\t\tconst aFavPages = await this._pageManagerInstance.getFavoritePages();\n\t\treturn aFavPages.concat({\n\t\t\tpageId: MYHOME_PAGE_ID,\n\t\t\tBGColor: DEFAULT_BG_COLOR().key\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves visualizations for all favorite pages based on the provided parameters.\n\t * @param {Array} pages - An array of favorite pages.\n\t * @param {boolean} shouldReload - A flag indicating whether to reload page visualizations.\n\t * @returns {Promise<Array>} A promise that resolves with an array of favorite page visualizations.\n\t * @private\n\t */\n\tprivate async _getAllFavPageApps(pages: IPage[], shouldReload?: boolean) {\n\t\ttry {\n\t\t\tif (pages) {\n\t\t\t\tthis._favPageVisualizations = this._favPageVisualizations || [];\n\t\t\t\t//Check to ensure that missing visualization data is loaded, if any\n\t\t\t\tconst loadedPages = this._favPageVisualizations.reduce((pageIDs: string[], visualization) => {\n\t\t\t\t\tif (visualization.pageId && !pageIDs.includes(visualization.pageId)) {\n\t\t\t\t\t\tpageIDs.push(visualization.pageId);\n\t\t\t\t\t}\n\t\t\t\t\treturn pageIDs;\n\t\t\t\t}, []);\n\t\t\t\tconst pageIds = pages.map((page) => page.pageId);\n\t\t\t\tconst shouldLoadMissingApps = loadedPages.length === 0 || !loadedPages.every((pageId) => pageIds.includes(pageId));\n\t\t\t\tif (!shouldReload && !shouldLoadMissingApps) {\n\t\t\t\t\treturn this._favPageVisualizations;\n\t\t\t\t} else {\n\t\t\t\t\tthis._favPageVisualizations = await this._loadAllPageVisualizations(pages);\n\t\t\t\t\treturn this._favPageVisualizations;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn [];\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Loads visualizations for all specified pages.\n\t * @param {Array} pages - An array of pages.\n\t * @param {boolean} [shouldFetchDistinctApps=false] - A flag indicating whether to fetch distinct pages.\n\t * @returns {Promise<Array>} A promise that resolves with an array of page visualizations.\n\t * @private\n\t */\n\tprivate async _loadAllPageVisualizations(pages: IPage[], shouldFetchDistinctApps = false) {\n\t\tconst getBgColor = (pageId: string | undefined) => {\n\t\t\treturn pages.find((page) => page.pageId === pageId)?.BGColor ?? DEFAULT_BG_COLOR().key;\n\t\t};\n\n\t\ttry {\n\t\t\tconst favPageVisualizations: ICustomVisualization[] = [];\n\t\t\tconst spaceContentService = await Container.getServiceAsync<SpaceContent>(\"SpaceContent\");\n\t\t\tconst pageData = await spaceContentService.getPages(pages.map((oPage) => oPage.pageId) as string[]);\n\t\t\tconst aPages = Object.values(pageData);\n\n\t\t\tfor (const page of aPages) {\n\t\t\t\tconst sections = page.sections || [];\n\t\t\t\tfor (const section of sections) {\n\t\t\t\t\tconst visualizations = section.visualizations || [];\n\t\t\t\t\tfor (const visualization of visualizations) {\n\t\t\t\t\t\tconst app = {\n\t\t\t\t\t\t\tappId: visualization.targetURL,\n\t\t\t\t\t\t\tvizId: visualization.vizId,\n\t\t\t\t\t\t\ticon: visualization.icon,\n\t\t\t\t\t\t\tBGColor: getBgColor(page.id) as string,\n\t\t\t\t\t\t\tpageId: page.id\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (!shouldFetchDistinctApps || !favPageVisualizations.some((oVizApp) => oVizApp.appId === app.appId)) {\n\t\t\t\t\t\t\tfavPageVisualizations.push(app);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn favPageVisualizations;\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns default app icon.\n\t * @returns {string} The icon URL for the app.\n\t * @private\n\t */\n\tprotected getAppIcon(): string {\n\t\treturn DEFAULT_APP_ICON;\n\t}\n\n\t/**\n\t * Retrieves the icon for the specified app, prioritizing the favorite page icon if available.\n\t * @param {sap.cux.home.App} app - The app object.\n\t * @param {string} favPageIcon - The icon for the app from the favorite page.\n\t * @returns {string} The icon URL for the app.\n\t * @private\n\t */\n\tprivate _getFavAppIcon(app?: App, favPageIcon?: string): string {\n\t\treturn favPageIcon || app?.getIcon() || FALLBACK_ICON;\n\t}\n}\n"],"mappings":";;;;AAAA,aAAAA,IAAAC,GAAAC,OAAA,yNAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,sBAAAC,EAAAC,GAAA,OAAAA,KAAAC,mBAAAD,EAAAE,UAAA,YAAAF,EAAAE,QAAAF,CAAA,CAkjBO,SAAAG,EAAgBC,EAAMC,GAC5B,IACC,IAAIC,EAASF,GACd,CAAE,MAAMG,GACP,OAAOF,EAAQE,EAChB,CACA,GAAID,GAAUA,EAAOE,KAAM,CAC1B,OAAOF,EAAOE,UAAU,EAAGH,EAC5B,CACA,OAAOC,CACR,CAAC,MA/iBMG,EAAYV,EAAAN,GAAA,MAKViB,EAAgBhB,EAAA,0BAAEiB,EAAgBjB,EAAA,0BAAEkB,EAAalB,EAAA,uBAAEmB,EAAcnB,EAAA,wBACnEoB,EAAef,EAAAJ,GAAA,MACfoB,EAAWhB,EAAAH,GAAA,MACXoB,EAAoBjB,EAAAF,GAAA,MACpBoB,EAAkBlB,EAAAD,GAEzB,MAiB8BoB,EAAyBT,EAAYU,OAAA,iCAWlDC,SAA4B,CAC3CC,QAAS,eACTC,WAAY,CACXC,gBAAiB,CAAEC,KAAM,SAAUC,MAAO,OAAQC,aAAc,GAAIC,WAAY,YAPlFC,YAAW,SAAAC,EAACC,EAAaC,GACxBC,6BAAAC,KAAMH,EAAIC,GAAUE,KANbC,uBAAiD,EAOzD,EASOC,KAAI,SAAAC,IACVC,sBAAAJ,MACAA,KAAKK,YAAY,kBAAmBtB,EAAqBuB,mBAAmBN,OAC5EA,KAAKO,qBAAuBzB,EAAY0B,YACvCzB,EAAqBuB,mBAAmBN,MACxCjB,EAAqB0B,kBAAkBT,OAExCA,KAAKU,UAAYpD,EAASkD,cAG1BR,KAAKU,UAAUC,UACd,cACA,cACA,UACMX,KAAKY,sBAAsB,EAEjCZ,KAEF,EAQca,iBAAgB,SAAAA,IAAA,IAAG,MAAAC,EACRd,KAAxB,MAAMV,EAAkBwB,EAAKC,YAAY,mBACzC,IAAKzB,EAAiB,CACrB,MAAM,IAAI0B,MAAM,gDACjB,CAAC,OAAAC,QAAAC,QAC0BlC,GAAoBwB,YAC9ClB,EACAP,EAAqB0B,kBAAiBK,IAGxC,CAAC,MAAAxC,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GAOe8C,mBAAkB,SAAAC,IAAA,IAAG,MAAAC,EACTtB,KAAI,OAAAiB,QAAAC,QAAJI,EAAKT,oBAAkBtC,KAAA,SAA5CgD,GAAY,OAAAN,QAAAC,QACKK,GAAcC,OAAM,EAE5C,CAAC,MAAAlD,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GAQemD,mBAAkB,SAAAC,EAACC,GAA8B,IAAE,MAAAC,EACvC5B,KAAI,OAAAiB,QAAAC,QAAJU,EAAKf,oBAAkBtC,KAAA,SAA5CgD,GAAY,OAAAN,QAAAC,QACZK,EAAaM,MAAMF,IAASpD,KAAA,eACnC,CAAC,MAAAD,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GAOewD,uBAAsB,SAAAA,IAAA,IAAG,MAAAC,EACV/B,KAAI,OAAAiB,QAAAC,QAAJa,EAAKX,sBAAoB7C,KAAA,SAAjDyD,GACN,OAAOA,GAAiBC,cAAiB,EAA6B,EACvE,CAAC,MAAA3D,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GAQe4D,0BAAyB,SAAAC,EAACC,GAA0C,IAAiB,MAAAC,EACxErC,KAAI,OAAAiB,QAAAC,QAAJmB,EAAKjB,sBAAoB7C,KAAA,SAAjDyD,GAAe,MAAAM,EAAA,cACfN,EAAe,CAClBA,EAAgBC,aAAeG,EAAoB,OAAAnB,QAAAC,QAC7CmB,EAAKZ,mBAAmBO,IAAgBzD,KAAA,eAH5B,GAG4B,GAAA+D,KAAA/D,KAAA,OAAA+D,EAAA/D,KAAA,eAEhD,CAAC,MAAAD,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GASYsC,qBAAoB,SAAA2B,IAAA,IAAG,MAAAC,EAE3BxC,KADR,IAAIyC,EAAuB,GAC3BA,EAAQD,EAAKE,uBAAuBD,GAAO,OAAAxB,QAAAC,QAC9BsB,EAAKG,2BAA2BF,GAC9C,CAAC,MAAAnE,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GAUeqE,2BAA0B,SAAAA,EAACF,EAAsBG,GAAgB,IAAEC,EAAYC,UAAAC,OAAA,GAAAD,UAAA,KAAAE,UAAAF,UAAA,GAAG,KAAI,IAAE,MAAAG,EAC/CjD,KAAI,OAAAiB,QAAAC,QAAjBD,QAAQiC,IAAI,CAACD,EAAKnB,yBAA0BmB,EAAKE,kBAAgB5E,KAAA,SAAA6E,GAAA,IAArGC,EAAkBC,GAASF,EAAA,OAAAnC,QAAAC,QACE+B,EAAKM,mBAAmBD,EAAUT,IAAatE,KAAA,SAA7EiF,GACN,MAAMC,EAAUR,EAAKS,eAAe,WAAa,GACjD,MAAMC,EAAOf,EAAUK,EAAKW,UAAUhB,IAAUiB,WAAa,GAAKZ,EAAKY,WAAa,GACpF,IAAK,MAAMC,KAAQrB,EAAO,CACzB,MAAMsB,EAAOd,EAAKe,SAASF,EAAML,EAAQE,GACzC,MAAMM,MAAEA,EAAKC,KAAEA,GAASjB,EAAKkB,wBAAwBJ,EAAMV,EAAkBG,EAAuBZ,GAEpG,GAAIqB,EAAO,CACVF,GAAM1D,YAAY,UAAW4D,EAAO,MACpCH,EAAKM,mBAAmBH,EACzB,CAEA,GAAIC,EAAM,CACTH,GAAM1D,YAAY,OAAQ6D,EAAM,MAChCJ,EAAKO,YAAYH,EAClB,CACD,CAAC,IACF,CAAC,MAAA5F,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GAUO0F,SAAQ,SAAAA,EAACF,EAAmBL,EAAiBE,GACpD,MAAMW,EAAcR,EAAKS,KAAK,WAC9B,GAAID,EAAa,CAChB,OAAOb,EAAOe,KAAMC,GAAWA,EAAOC,eAAiBJ,EACxD,KAAO,CACN,OAAOX,EAAKa,KAAMG,GAAS9F,EAAgB+F,WAAWD,EAAKE,YAAcf,EAAKe,SAC/E,CACD,EAWQV,wBAAuB,SAAAA,EAC9BJ,EACAV,EACAG,EACAZ,GAEA,IAAIqB,EAAgB,GACpB,IAAIC,EAAe,GAEnB,IAAKH,EAAM,MAAO,CAAEE,QAAOC,QAE3B,GAAIH,EAAKe,IAAI,sBAAuB,CACnC,MAAM9C,EAAkBqB,GAAkBmB,KACxCxC,GAAoBA,EAAgB+C,WAAa/C,EAAgBgD,YAAejB,EAAeW,cAEjGT,EAAQjC,GAAiBiD,OAC1B,KAAO,CACN,MAAMC,EAAMnB,EACZ,MAAMoB,EAAS,CAACD,EAAIL,UACpB,MAAMO,EAAWF,EAAIX,KAAK,YAC1B,GAAIa,EAAU,CACbD,EAAOE,KAAKD,EACb,CACA,MAAME,EAAQJ,EAAIK,WAClB,MAAMvD,EAAkBY,EACrBS,GAAkBmB,KACjBxC,IACCA,EAAgB+C,WACjB/C,EAAgBgD,YAAcpC,GAC9BZ,EAAgBwD,OAChBL,EAAOM,SAASzD,EAAgBwD,QAEjCnC,GAAkBmB,KACjBkB,GACAA,EAAiBC,oBAAsBD,EAAiBF,OAASL,EAAOM,SAASC,EAAiBF,QAEtG,MAAMI,EAAuBpC,EAAsBgB,KACjDqB,GAAmBA,EAAeP,QAAUA,GAAUO,EAAeL,OAASL,EAAOM,SAASI,EAAeL,QAE/GvB,EAAQjC,GAAiBiD,SAAWW,GAAsBX,SAAWvG,IAAmBoH,IACxF5B,EAAOlE,MAAM8E,IAAI,4BAA8B9E,KAAK+F,eAAeb,EAAKU,GAAsB1B,MAAQlE,KAAKgG,YAC5G,CAEA,MAAO,CAAE/B,QAAOC,OACjB,EAOcf,aAAY,SAAAA,IAAA,IAAG,MAAA8C,EACJjG,KAAI,OAAAiB,QAAAC,QAAJ+E,EAAK1F,qBAAqB2F,oBAAkB3H,KAAA,SAA9D4H,GACN,OAAOA,EAAUC,OAAO,CACvBC,OAAQzH,EACRqG,QAASvG,IAAmBoH,KAC1B,EACJ,CAAC,MAAAxH,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GASaiF,mBAAkB,SAAAA,EAAC+C,EAAgBzD,GAAsB,IAAE,IAAA0D,EAAA,YAAAC,EAGtExG,KAAI,OAAAiB,QAAAC,QAAAhD,EAAA,WAFF,SAAAuI,EAAAC,GAAA,OAAAH,EAAAG,EAmBI,EAAE,OAAAC,EAAA,cAlBLL,EAAK,CACRE,EAAKvG,uBAAyBuG,EAAKvG,wBAA0B,GAE7D,MAAM2G,EAAcJ,EAAKvG,uBAAuB4G,OAAO,CAACC,EAAmBC,KAC1E,GAAIA,EAAcV,SAAWS,EAAQrB,SAASsB,EAAcV,QAAS,CACpES,EAAQzB,KAAK0B,EAAcV,OAC5B,CACA,OAAOS,CAAO,EACZ,IACH,MAAME,EAAUV,EAAMW,IAAKC,GAASA,EAAKb,QACzC,MAAMc,EAAwBP,EAAY7D,SAAW,IAAM6D,EAAYQ,MAAOf,GAAWW,EAAQvB,SAASY,IAAS,IAC9GxD,IAAiBsE,EAAqB,OAAAE,EACnCb,EAAKvG,uBAAsBsG,EAAA,YAAAc,CAAA,aAAApG,QAAAC,QAEEsF,EAAKc,2BAA2BhB,IAAM/H,KAAA,SAAAgJ,GAA1Ef,EAAKvG,uBAAsBsH,EAAgD,MAAAC,EACpEhB,EAAKvG,uBAAsBsG,EAAA,YAAAiB,CAAA,KAG3B,GAH2B,OAAAb,KAAApI,KAAAoI,EAAApI,KAAAkI,KAAAE,EAIrC,EAAC,SAAQc,GACRpK,EAAIoK,MAAMA,GACV,MAAO,EACR,GACD,CAAC,MAAAnJ,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GASagJ,2BAA0B,SAAAA,EAAChB,GAAc,IAAEoB,EAAuB5E,UAAAC,OAAA,GAAAD,UAAA,KAAAE,UAAAF,UAAA,GAAG,MAAK,IACvF,MAAM6E,EAActB,GACZC,EAAM9B,KAAM0C,GAASA,EAAKb,SAAWA,IAASpB,SAAWvG,IAAmBoH,IAClF,OAAA7E,QAAAC,QAAAhD,EAAA,WAGD,MAAMsF,EAAgD,GAAG,OAAAvC,QAAAC,QACvB3D,EAAUqK,gBAA8B,iBAAerJ,KAAA,SAAnFsJ,GAAmB,OAAA5G,QAAAC,QACF2G,EAAoBC,SAASxB,EAAMW,IAAKc,GAAUA,EAAM1B,UAAoB9H,KAAA,SAA7FyJ,GACN,MAAMC,EAASC,OAAOC,OAAOH,GAE7B,IAAK,MAAMd,KAAQe,EAAQ,CAC1B,MAAMG,EAAWlB,EAAKkB,UAAY,GAClC,IAAK,MAAMC,KAAWD,EAAU,CAC/B,MAAME,EAAiBD,EAAQC,gBAAkB,GACjD,IAAK,MAAMvB,KAAiBuB,EAAgB,CAC3C,MAAMpD,EAAM,CACXM,MAAOuB,EAAcwB,UACrBjD,MAAOyB,EAAczB,MACrBpB,KAAM6C,EAAc7C,KACpBe,QAAS0C,EAAWT,EAAKrH,IACzBwG,OAAQa,EAAKrH,IAEd,IAAK6H,IAA4BlE,EAAsBgF,KAAMC,GAAYA,EAAQjD,QAAUN,EAAIM,OAAQ,CACtGhC,EAAsB6B,KAAKH,EAC5B,CACD,CACD,CACD,CACA,OAAO1B,CAAsB,IAC9B,EAAC,SAAQiE,GACRpK,EAAIoK,MAAMA,GACV,MAAO,EACR,GACD,CAAC,MAAAnJ,GAAA,OAAA2C,QAAAE,OAAA7C,EAAA,GAOS0H,WAAU,SAAA0C,IACnB,OAAOjK,CACR,EASQsH,eAAc,SAAAA,EAACb,EAAWyD,GACjC,OAAOA,GAAezD,GAAK0D,WAAajK,CACzC,IAAC,OApU4BM,CAAgB"}
@@ -129,14 +129,16 @@ export default abstract class BaseAppPersPanel extends BaseAppPanel {
129
129
 
130
130
  /**
131
131
  * Sets the personalization data.
132
- * @param {Array} appsPersonalization - Personalization data for favorite apps.
132
+ * @param {IAppPersonalization[]} appsPersonalization - Personalization data for favorite apps.
133
133
  * @returns {Promise<void>} A promise that resolves when the personalization data is set.
134
134
  * @private
135
135
  */
136
- protected async setFavAppsPersonalization(appsPersonalization: IAppPersonalization[]) {
136
+ protected async setFavAppsPersonalization(appsPersonalization: IAppPersonalization[]): Promise<void> {
137
137
  let personalization = await this.getPersonalization();
138
- personalization.favoriteApps = appsPersonalization;
139
- await this.setPersonalization(personalization);
138
+ if (personalization) {
139
+ personalization.favoriteApps = appsPersonalization;
140
+ await this.setPersonalization(personalization);
141
+ }
140
142
  }
141
143
 
142
144
  /**
@@ -24,13 +24,20 @@ sap.ui.define(["sap/m/PageRenderer"], function (PageRenderer) {
24
24
  * we render a simple div container and manage the transition from
25
25
  * one page to another using CSS.
26
26
  */
27
- rm.openStart("div", `${control.getId()}-layout-container`).openEnd();
27
+ const containerId = `${control.getId()}-layout-container`;
28
+ const isContainerRenderedOnce = document.getElementById(containerId);
29
+ if (!isContainerRenderedOnce) {
30
+ rm.openStart("div", containerId).openEnd();
31
+ }
32
+
28
33
  //render main container
29
34
  PageRenderer.render(rm, control);
30
35
 
31
36
  //render full-screen container
32
37
  rm.renderControl(control.getAggregation("fullScreenContainer"));
33
- rm.close("div");
38
+ if (!isContainerRenderedOnce) {
39
+ rm.close("div");
40
+ }
34
41
  }
35
42
  };
36
43
  return __exports;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayoutRenderer-dbg.js","names":["sap","ui","define","PageRenderer","__exports","apiVersion","render","rm","control","openStart","getId","openEnd","renderControl","getAggregation","close"],"sources":["BaseLayoutRenderer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2024 SAP SE. All rights reserved\n */\n\nimport Page from \"sap/m/Page\";\nimport PageRenderer from \"sap/m/PageRenderer\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseLayout from \"./BaseLayout\";\n\nexport default {\n\tapiVersion: 2,\n\n\t/**\n\t * Renders the control.\n\t *\n\t * @public\n\t * @override\n\t * @param {RenderManager} rm - The RenderManager object.\n\t * @param {BaseLayout} control - The BaseLayout control to be rendered.\n\t */\n\trender: function (rm: RenderManager, control: BaseLayout) {\n\t\t/*\n\t\t * Existing controls like NavContainer will not allow for control\n\t\t * over the duration of the transition. To overcome this limitation,\n\t\t * we render a simple div container and manage the transition from\n\t\t * one page to another using CSS.\n\t\t */\n\t\trm.openStart(\"div\", `${control.getId()}-layout-container`).openEnd();\n\t\t//render main container\n\t\tPageRenderer.render(rm, control);\n\n\t\t//render full-screen container\n\t\trm.renderControl(control.getAggregation(\"fullScreenContainer\") as Page);\n\t\trm.close(\"div\");\n\t}\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHA;;AAAAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,mCAAAC,YAAA;EAAA;;EAAA,IAAAC,SAAA,GAUe;IACdC,UAAU,EAAE,CAAC;IAEb;AACD;AACA;AACA;AACA;AACA;AACA;AACA;IACCC,MAAM,EAAE,SAAAA,CAAUC,EAAiB,EAAEC,OAAmB,EAAE;MACzD;AACF;AACA;AACA;AACA;AACA;MACED,EAAE,CAACE,SAAS,CAAC,KAAK,EAAE,GAAGD,OAAO,CAACE,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAACC,OAAO,CAAC,CAAC;MACpE;MACAR,YAAY,CAACG,MAAM,CAACC,EAAE,EAAEC,OAAO,CAAC;;MAEhC;MACAD,EAAE,CAACK,aAAa,CAACJ,OAAO,CAACK,cAAc,CAAC,qBAAqB,CAAS,CAAC;MACvEN,EAAE,CAACO,KAAK,CAAC,KAAK,CAAC;IAChB;EACD,CAAC;EAAA,OAAAV,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"BaseLayoutRenderer-dbg.js","names":["sap","ui","define","PageRenderer","__exports","apiVersion","render","rm","control","containerId","getId","isContainerRenderedOnce","document","getElementById","openStart","openEnd","renderControl","getAggregation","close"],"sources":["BaseLayoutRenderer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2024 SAP SE. All rights reserved\n */\n\nimport Page from \"sap/m/Page\";\nimport PageRenderer from \"sap/m/PageRenderer\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseLayout from \"./BaseLayout\";\n\nexport default {\n\tapiVersion: 2,\n\n\t/**\n\t * Renders the control.\n\t *\n\t * @public\n\t * @override\n\t * @param {RenderManager} rm - The RenderManager object.\n\t * @param {BaseLayout} control - The BaseLayout control to be rendered.\n\t */\n\trender: function (rm: RenderManager, control: BaseLayout) {\n\t\t/*\n\t\t * Existing controls like NavContainer will not allow for control\n\t\t * over the duration of the transition. To overcome this limitation,\n\t\t * we render a simple div container and manage the transition from\n\t\t * one page to another using CSS.\n\t\t */\n\t\tconst containerId = `${control.getId()}-layout-container`;\n\t\tconst isContainerRenderedOnce = document.getElementById(containerId);\n\n\t\tif (!isContainerRenderedOnce) {\n\t\t\trm.openStart(\"div\", containerId).openEnd();\n\t\t}\n\n\t\t//render main container\n\t\tPageRenderer.render(rm, control);\n\n\t\t//render full-screen container\n\t\trm.renderControl(control.getAggregation(\"fullScreenContainer\") as Page);\n\n\t\tif (!isContainerRenderedOnce) {\n\t\t\trm.close(\"div\");\n\t\t}\n\t}\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHA;;AAAAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,mCAAAC,YAAA;EAAA;;EAAA,IAAAC,SAAA,GAUe;IACdC,UAAU,EAAE,CAAC;IAEb;AACD;AACA;AACA;AACA;AACA;AACA;AACA;IACCC,MAAM,EAAE,SAAAA,CAAUC,EAAiB,EAAEC,OAAmB,EAAE;MACzD;AACF;AACA;AACA;AACA;AACA;MACE,MAAMC,WAAW,GAAG,GAAGD,OAAO,CAACE,KAAK,CAAC,CAAC,mBAAmB;MACzD,MAAMC,uBAAuB,GAAGC,QAAQ,CAACC,cAAc,CAACJ,WAAW,CAAC;MAEpE,IAAI,CAACE,uBAAuB,EAAE;QAC7BJ,EAAE,CAACO,SAAS,CAAC,KAAK,EAAEL,WAAW,CAAC,CAACM,OAAO,CAAC,CAAC;MAC3C;;MAEA;MACAZ,YAAY,CAACG,MAAM,CAACC,EAAE,EAAEC,OAAO,CAAC;;MAEhC;MACAD,EAAE,CAACS,aAAa,CAACR,OAAO,CAACS,cAAc,CAAC,qBAAqB,CAAS,CAAC;MAEvE,IAAI,CAACN,uBAAuB,EAAE;QAC7BJ,EAAE,CAACW,KAAK,CAAC,KAAK,CAAC;MAChB;IACD;EACD,CAAC;EAAA,OAAAd,SAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayoutRenderer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/BaseLayoutRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iCAAiC,CAAC;IAQjD,OAAO,aAAa,MAAM,2BAA2B,CAAC;IACtD,OAAO,UAAU,MAAM,yBAAyB,CAAC;;;QAKhD;;;;;;;WAOG;qBACmB,aAAa,WAAW,UAAU;;IAXzD,wBA0BE;CAED"}
1
+ {"version":3,"file":"BaseLayoutRenderer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/BaseLayoutRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iCAAiC,CAAC;IAQjD,OAAO,aAAa,MAAM,2BAA2B,CAAC;IACtD,OAAO,UAAU,MAAM,yBAAyB,CAAC;;;QAKhD;;;;;;;WAOG;qBACmB,aAAa,WAAW,UAAU;;IAXzD,wBAmCE;CAED"}
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * * (c) Copyright 2009-2024 SAP SE. All rights reserved
4
4
  */
5
- "use strict";sap.ui.define(["sap/m/PageRenderer"],function(e){"use strict";var n={apiVersion:2,render:function(n,r){n.openStart("div",`${r.getId()}-layout-container`).openEnd();e.render(n,r);n.renderControl(r.getAggregation("fullScreenContainer"));n.close("div")}};return n});
5
+ "use strict";sap.ui.define(["sap/m/PageRenderer"],function(e){"use strict";var n={apiVersion:2,render:function(n,t){const r=`${t.getId()}-layout-container`;const i=document.getElementById(r);if(!i){n.openStart("div",r).openEnd()}e.render(n,t);n.renderControl(t.getAggregation("fullScreenContainer"));if(!i){n.close("div")}}};return n});
6
6
  //# sourceMappingURL=BaseLayoutRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayoutRenderer.js","names":["sap","ui","define","PageRenderer","__exports","apiVersion","render","rm","control","openStart","getId","openEnd","renderControl","getAggregation","close"],"sources":["BaseLayoutRenderer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2024 SAP SE. All rights reserved\n */\n\nimport Page from \"sap/m/Page\";\nimport PageRenderer from \"sap/m/PageRenderer\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseLayout from \"./BaseLayout\";\n\nexport default {\n\tapiVersion: 2,\n\n\t/**\n\t * Renders the control.\n\t *\n\t * @public\n\t * @override\n\t * @param {RenderManager} rm - The RenderManager object.\n\t * @param {BaseLayout} control - The BaseLayout control to be rendered.\n\t */\n\trender: function (rm: RenderManager, control: BaseLayout) {\n\t\t/*\n\t\t * Existing controls like NavContainer will not allow for control\n\t\t * over the duration of the transition. To overcome this limitation,\n\t\t * we render a simple div container and manage the transition from\n\t\t * one page to another using CSS.\n\t\t */\n\t\trm.openStart(\"div\", `${control.getId()}-layout-container`).openEnd();\n\t\t//render main container\n\t\tPageRenderer.render(rm, control);\n\n\t\t//render full-screen container\n\t\trm.renderControl(control.getAggregation(\"fullScreenContainer\") as Page);\n\t\trm.close(\"div\");\n\t}\n};\n"],"mappings":";;;;AAAA,aAAAA,IAAAC,GAAAC,OAAA,gCAAAC,GAAA,iBAAAC,EAUe,CACdC,WAAY,EAUZC,OAAQ,SAAUC,EAAmBC,GAOpCD,EAAGE,UAAU,MAAO,GAAGD,EAAQE,4BAA4BC,UAE3DR,EAAaG,OAAOC,EAAIC,GAGxBD,EAAGK,cAAcJ,EAAQK,eAAe,wBACxCN,EAAGO,MAAM,MACV,GACA,OAAAV,CAAA"}
1
+ {"version":3,"file":"BaseLayoutRenderer.js","names":["sap","ui","define","PageRenderer","__exports","apiVersion","render","rm","control","containerId","getId","isContainerRenderedOnce","document","getElementById","openStart","openEnd","renderControl","getAggregation","close"],"sources":["BaseLayoutRenderer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2024 SAP SE. All rights reserved\n */\n\nimport Page from \"sap/m/Page\";\nimport PageRenderer from \"sap/m/PageRenderer\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseLayout from \"./BaseLayout\";\n\nexport default {\n\tapiVersion: 2,\n\n\t/**\n\t * Renders the control.\n\t *\n\t * @public\n\t * @override\n\t * @param {RenderManager} rm - The RenderManager object.\n\t * @param {BaseLayout} control - The BaseLayout control to be rendered.\n\t */\n\trender: function (rm: RenderManager, control: BaseLayout) {\n\t\t/*\n\t\t * Existing controls like NavContainer will not allow for control\n\t\t * over the duration of the transition. To overcome this limitation,\n\t\t * we render a simple div container and manage the transition from\n\t\t * one page to another using CSS.\n\t\t */\n\t\tconst containerId = `${control.getId()}-layout-container`;\n\t\tconst isContainerRenderedOnce = document.getElementById(containerId);\n\n\t\tif (!isContainerRenderedOnce) {\n\t\t\trm.openStart(\"div\", containerId).openEnd();\n\t\t}\n\n\t\t//render main container\n\t\tPageRenderer.render(rm, control);\n\n\t\t//render full-screen container\n\t\trm.renderControl(control.getAggregation(\"fullScreenContainer\") as Page);\n\n\t\tif (!isContainerRenderedOnce) {\n\t\t\trm.close(\"div\");\n\t\t}\n\t}\n};\n"],"mappings":";;;;AAAA,aAAAA,IAAAC,GAAAC,OAAA,gCAAAC,GAAA,iBAAAC,EAUe,CACdC,WAAY,EAUZC,OAAQ,SAAUC,EAAmBC,GAOpC,MAAMC,EAAc,GAAGD,EAAQE,2BAC/B,MAAMC,EAA0BC,SAASC,eAAeJ,GAExD,IAAKE,EAAyB,CAC7BJ,EAAGO,UAAU,MAAOL,GAAaM,SAClC,CAGAZ,EAAaG,OAAOC,EAAIC,GAGxBD,EAAGS,cAAcR,EAAQS,eAAe,wBAExC,IAAKN,EAAyB,CAC7BJ,EAAGW,MAAM,MACV,CACD,GACA,OAAAd,CAAA"}
@@ -26,12 +26,21 @@ export default {
26
26
  * we render a simple div container and manage the transition from
27
27
  * one page to another using CSS.
28
28
  */
29
- rm.openStart("div", `${control.getId()}-layout-container`).openEnd();
29
+ const containerId = `${control.getId()}-layout-container`;
30
+ const isContainerRenderedOnce = document.getElementById(containerId);
31
+
32
+ if (!isContainerRenderedOnce) {
33
+ rm.openStart("div", containerId).openEnd();
34
+ }
35
+
30
36
  //render main container
31
37
  PageRenderer.render(rm, control);
32
38
 
33
39
  //render full-screen container
34
40
  rm.renderControl(control.getAggregation("fullScreenContainer") as Page);
35
- rm.close("div");
41
+
42
+ if (!isContainerRenderedOnce) {
43
+ rm.close("div");
44
+ }
36
45
  }
37
46
  };
@@ -490,25 +490,25 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
490
490
  * @returns {sap.cux.home.MenuItem[]} - An array of menu items representing available actions for the group.
491
491
  */
492
492
  _getGroupActions: function _getGroupActions(group) {
493
- const renameGroupMenuItem = new MenuItem(`${group.id}-renameGroup`, {
493
+ const renameGroupMenuItem = new MenuItem(`id-${group.id}-renameGroup`, {
494
494
  title: this._i18nBundle.getText("renameGroup"),
495
495
  press: this._onRenameGroup.bind(this)
496
496
  });
497
497
  addFESRId(renameGroupMenuItem, "renameGroup");
498
- const selectColorMenuItem = new MenuItem(`${group.id}-selectColor`, {
498
+ const selectColorMenuItem = new MenuItem(`id-${group.id}-selectColor`, {
499
499
  title: this._i18nBundle.getText("selectColor"),
500
500
  type: ListType.Navigation,
501
501
  press: this._openColorPopover.bind(this)
502
502
  });
503
503
  addFESRId(selectColorMenuItem, "changeColor");
504
- const removeAllAppsMenuItem = new MenuItem(`${group.id}-removeAllApps`, {
504
+ const removeAllAppsMenuItem = new MenuItem(`id-${group.id}-removeAllApps`, {
505
505
  title: this._i18nBundle.getText("removeAllApps"),
506
506
  press: this._handleUngroupApps.bind(this, group)
507
507
  });
508
508
  addFESRId(removeAllAppsMenuItem, "removeAllApps");
509
509
  const groupActions = [renameGroupMenuItem, selectColorMenuItem, removeAllAppsMenuItem];
510
510
  if (!group.isPresetSection) {
511
- const deleteGroupMenuItem = new MenuItem(`${group.id}-delete`, {
511
+ const deleteGroupMenuItem = new MenuItem(`id-${group.id}-delete`, {
512
512
  title: this._i18nBundle.getText("delete"),
513
513
  press: this._onDeleteGroup.bind(this)
514
514
  });
@@ -2022,7 +2022,9 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
2022
2022
  const dialog = _this22._generateGroupDetailDialog();
2023
2023
  //set group icon
2024
2024
  const groupIconControl = _this22._controlMap.get(`${_this22.getId()}-detailDialog-toolbar-color`);
2025
- groupIconControl.setColor(Parameters.get(group.getBgColor()));
2025
+ groupIconControl.setColor(Parameters.get({
2026
+ name: group.getBgColor()
2027
+ }));
2026
2028
  //set group apps
2027
2029
  return Promise.resolve(_this22._setGroupDetailDialogApps(groupId)).then(function () {
2028
2030
  dialog.open();
@@ -2294,7 +2296,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
2294
2296
  this._controlMap.set(`${id}-list`, new List({
2295
2297
  id: `${id}-list`,
2296
2298
  mode: "MultiSelect",
2297
- select: setAddBtnEnabled
2299
+ selectionChange: setAddBtnEnabled
2298
2300
  }));
2299
2301
  this._controlMap.set(`${id}-addBtn`, new Button({
2300
2302
  id: `${id}-addBtn`,
@@ -2312,8 +2314,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
2312
2314
  illustrationSize: "Spot",
2313
2315
  illustrationType: "sapIllus-AddColumn",
2314
2316
  title: this._i18nBundle.getText("noAppsTitle"),
2315
- description: this._i18nBundle.getText("noFavAppsDescription"),
2316
- additionalContent: [getAppFinderBtn(`${id}-errorMessage-addAppsBtn`, ButtonType.Emphasized)],
2317
+ description: this._i18nBundle.getText("noDataMsgInsightTiles"),
2317
2318
  visible: true
2318
2319
  }).addStyleClass("sapUiLargeMarginTop"));
2319
2320
  this._controlMap.set(id, new Dialog(id, {
@@ -2329,8 +2330,8 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
2329
2330
  items: [new Title({
2330
2331
  id: `${id}-text`,
2331
2332
  text: this._i18nBundle.getText("addFromInsightsDialogTitle")
2332
- }).addStyleClass("sapUiSmallMarginBegin"), getAppFinderBtn(`${id}-addAppsBtn`).addStyleClass("sapUiSmallMarginEnd")]
2333
- }).addStyleClass("sapUiTinyMarginTop dialogHeader"), this._controlMap.get(`${id}-list`), this._controlMap.get(`${id}-errorMessage`)],
2333
+ }), getAppFinderBtn(`${id}-addAppsBtn`, ButtonType.Transparent)]
2334
+ }).addStyleClass("sapUiTinyMarginTop dialogHeader sapUiSmallMarginBeginEnd"), this._controlMap.get(`${id}-list`), this._controlMap.get(`${id}-errorMessage`)],
2334
2335
  contentWidth: "42.75rem",
2335
2336
  contentHeight: "32.5rem",
2336
2337
  endButton: new Button({
@@ -2339,11 +2340,11 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
2339
2340
  }),
2340
2341
  escapeHandler: this._closeAddFromInsightsDialog.bind(this),
2341
2342
  buttons: [this._controlMap.get(`${id}-addBtn`), new Button({
2342
- id: `${id}-closeBtn`,
2343
- text: this._i18nBundle.getText("closeBtn"),
2343
+ id: `${id}-cancelBtn`,
2344
+ text: this._i18nBundle.getText("cancelBtn"),
2344
2345
  press: this._closeAddFromInsightsDialog.bind(this)
2345
2346
  })]
2346
- }).addStyleClass("sapContrastPlus"));
2347
+ }).addStyleClass("sapContrastPlus sapCuxAddFromInsightsDialog"));
2347
2348
  }
2348
2349
  setAddBtnEnabled();
2349
2350
  return this._controlMap.get(id);