@sapui5/sap.cux.home 1.136.1 → 1.136.2
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.
- package/package.json +1 -1
- package/src/sap/cux/home/.library +1 -1
- package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/AppsContainer.js +20 -23
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +3 -2
- package/src/sap/cux/home/BaseAppPersPanel.d.ts +3 -1
- package/src/sap/cux/home/BaseAppPersPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.js +10 -3
- package/src/sap/cux/home/BaseAppPersPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.ts +9 -4
- package/src/sap/cux/home/BaseContainer.js +1 -1
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +1 -1
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.js +3 -1
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +3 -1
- package/src/sap/cux/home/FavAppPanel.js +3 -3
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +3 -3
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.d.ts +8 -5
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +127 -47
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +118 -46
- package/src/sap/cux/home/KeyUserSettingsDialog.js +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.js.map +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.ts +1 -1
- package/src/sap/cux/home/Layout.js +4 -4
- package/src/sap/cux/home/Layout.js.map +1 -1
- package/src/sap/cux/home/Layout.ts +3 -3
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.js +6 -4
- package/src/sap/cux/home/NewsAndPagesContainer.js.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.ts +8 -5
- package/src/sap/cux/home/NewsGroup.js +1 -1
- package/src/sap/cux/home/NewsGroup.js.map +1 -1
- package/src/sap/cux/home/NewsGroup.ts +1 -1
- package/src/sap/cux/home/NewsPanel.d.ts +1 -1
- package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsPanel.gen.d.ts +30 -0
- package/src/sap/cux/home/NewsPanel.js +75 -64
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +63 -52
- package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
- package/src/sap/cux/home/PagePanel.js +4 -5
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +4 -5
- package/src/sap/cux/home/SettingsDialog.js +1 -1
- package/src/sap/cux/home/SettingsDialog.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.ts +1 -1
- package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TilesPanel.js +2 -1
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +2 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +1 -0
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +1 -0
- package/src/sap/cux/home/i18n/messagebundle.properties +3 -3
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +56 -13
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_da.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_de.properties +54 -11
- package/src/sap/cux/home/i18n/messagebundle_el.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_en.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +43 -8
- package/src/sap/cux/home/i18n/messagebundle_es.properties +59 -16
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_et.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +51 -8
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +53 -10
- package/src/sap/cux/home/i18n/messagebundle_id.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_it.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +53 -10
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +55 -12
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_no.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +53 -10
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_th.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +54 -11
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +52 -9
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +53 -10
- package/src/sap/cux/home/interface/KeyUserInterface.d.ts +2 -0
- package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
- package/src/sap/cux/home/interface/KeyUserInterface.ts +2 -0
- package/src/sap/cux/home/utils/AppManager.d.ts +8 -0
- package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/AppManager.js +41 -25
- package/src/sap/cux/home/utils/AppManager.js.map +1 -1
- package/src/sap/cux/home/utils/AppManager.ts +22 -10
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
8
8
|
(c) Copyright 2009-${currentYear} SAP SE. All rights reserved
|
|
9
9
|
</copyright>
|
|
10
|
-
<version>1.136.
|
|
10
|
+
<version>1.136.2</version>
|
|
11
11
|
|
|
12
12
|
<documentation>UI5 library: sap.cux.home</documentation>
|
|
13
13
|
<dependencies>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppsContainer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/AppsContainer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4BAA4B,CAAC;IAQ5C,OAAO,WAAW,MAAM,mBAAmB,CAAC;IAE5C,OAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;IAMtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAI3D,OAAO,GAAG,MAAM,kBAAkB,CAAC;IACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;IAGpE,OAAO,YAA6C,MAAM,2BAA2B,CAAC;IAEtF,OAAO,aAAa,MAAM,4BAA4B,CAAC;IASvD,MAAM,kBAAkB;;;;KASvB,CAAC;IAEF,MAAM,SAAS;;;;KAId,CAAC;IAEF;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;QACvD,OAAO,CAAC,gBAAgB,CAAQ;QAChC,OAAO,CAAC,YAAY,CAAW;QAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;UAGtB;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAYvC;oBAEU,YAAY,CAAC,EAAE,MAAM,GAAG,sBAAsB;oBAC9C,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,sBAAsB;QAW1D;;;;;WAKG;QACI,IAAI,IAAI,IAAI;QAuBnB;;;;;WAKG;QAEH,OAAO,CAAC,uBAAuB;QAsB/B;;;;;WAKG;QACI,iBAAiB;QAWxB;;;;;WAKG;QACU,gBAAgB;QAM7B;;;;;;;WAOG;QACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QAKlC;;;;;WAKG;QAEH,OAAO,CAAC,SAAS;QAKjB;;;;;WAKG;QAEH,OAAO,CAAC,mBAAmB;QAO3B;;;WAGG;QACH,OAAO,CAAC,eAAe;QAQvB;;;;WAIG;QACH,OAAO,CAAC,oBAAoB;QAW5B;;;;;WAKG;gBACW,QAAQ;
|
|
1
|
+
{"version":3,"file":"AppsContainer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/AppsContainer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4BAA4B,CAAC;IAQ5C,OAAO,WAAW,MAAM,mBAAmB,CAAC;IAE5C,OAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;IAMtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAI3D,OAAO,GAAG,MAAM,kBAAkB,CAAC;IACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;IAGpE,OAAO,YAA6C,MAAM,2BAA2B,CAAC;IAEtF,OAAO,aAAa,MAAM,4BAA4B,CAAC;IASvD,MAAM,kBAAkB;;;;KASvB,CAAC;IAEF,MAAM,SAAS;;;;KAId,CAAC;IAEF;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;QACvD,OAAO,CAAC,gBAAgB,CAAQ;QAChC,OAAO,CAAC,YAAY,CAAW;QAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;;UAGtB;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAYvC;oBAEU,YAAY,CAAC,EAAE,MAAM,GAAG,sBAAsB;oBAC9C,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,sBAAsB;QAW1D;;;;;WAKG;QACI,IAAI,IAAI,IAAI;QAuBnB;;;;;WAKG;QAEH,OAAO,CAAC,uBAAuB;QAsB/B;;;;;WAKG;QACI,iBAAiB;QAWxB;;;;;WAKG;QACU,gBAAgB;QAM7B;;;;;;;WAOG;QACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QAKlC;;;;;WAKG;QAEH,OAAO,CAAC,SAAS;QAKjB;;;;;WAKG;QAEH,OAAO,CAAC,mBAAmB;QAO3B;;;WAGG;QACH,OAAO,CAAC,eAAe;QAQvB;;;;WAIG;QACH,OAAO,CAAC,oBAAoB;QAW5B;;;;;WAKG;gBACW,QAAQ;QAgCtB;;;;;;;WAOG;QACH,OAAO,CAAC,mBAAmB;QAY3B;;;;;;;;WAQG;QACH,OAAO,CAAC,6BAA6B;QAcrC;;;;;WAKG;QACI,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;QAsBzC;;;;;WAKG;QACH,OAAO,CAAC,aAAa;QAuBrB;;;;;WAKG;kBACa,cAAc,CAAC,KAAK,EAAE,sBAAsB;QAM5D;;;;WAIG;QACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;QAO/C;;;;;WAKG;QACU,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;QAM7D;;;WAGG;QACH,OAAO,CAAC,cAAc;QAStB;;;;;;WAMG;QACH,OAAO,CAAC,iBAAiB;QAOzB;;;;;WAKG;QACH,OAAO,CAAC,sBAAsB;QAY9B;;;WAGG;QACH,OAAO,CAAC,wBAAwB;QAShC;;;WAGG;QACH,OAAO,CAAC,0BAA0B;QASlC;;;;WAIG;gBACW,+BAA+B;QAStC,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;QAoC9C;;;;;;;;;WASG;QACI,YAAY,IAAI,IAAI;QAgC3B;;;;;;;WAOG;QACH,OAAO,CAAC,oBAAoB;QAe5B;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;QAItB;;;;;;WAMG;QACH,OAAO,CAAC,kBAAkB;QAO1B;;;;WAIG;QACH,OAAO,CAAC,aAAa;QASrB;;;;WAIG;QACH,SAAS,CAAC,4BAA4B,IAAI,MAAM;KAGhD;CAEA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/Panel", "sap/m/library", "sap/ui/core/EventBus", "sap/ui/core/theming/Parameters", "sap/ushell/api/S4MyHome", "./AppsContainerGenericPlaceholder", "./BaseContainer", "./RecommendedAppPanel", "./library", "./utils/DataFormatUtils", "./utils/Device"], function (Log, GenericTile, Panel, sap_m_library, EventBus, Parameters, S4MyHome, ___AppsContainerGenericPlaceholder, __BaseContainer, __RecommendedAppPanel, ___library, ___utils_DataFormatUtils, ___utils_Device) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/Panel", "sap/m/library", "sap/ui/core/EventBus", "sap/ui/core/theming/Parameters", "sap/ushell/api/S4MyHome", "./AppsContainerGenericPlaceholder", "./BaseAppPersPanel", "./BaseContainer", "./RecommendedAppPanel", "./library", "./utils/DataFormatUtils", "./utils/Device"], function (Log, GenericTile, Panel, sap_m_library, EventBus, Parameters, S4MyHome, ___AppsContainerGenericPlaceholder, __BaseAppPersPanel, __BaseContainer, __RecommendedAppPanel, ___library, ___utils_DataFormatUtils, ___utils_Device) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -25,6 +25,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/Panel", "sap/m/librar
|
|
|
25
25
|
const GenericTileScope = sap_m_library["GenericTileScope"];
|
|
26
26
|
const TileSizeBehavior = sap_m_library["TileSizeBehavior"];
|
|
27
27
|
const getAppsPlaceholder = ___AppsContainerGenericPlaceholder["getAppsPlaceholder"];
|
|
28
|
+
const BaseAppPersPanel = _interopRequireDefault(__BaseAppPersPanel);
|
|
28
29
|
const BaseContainer = _interopRequireDefault(__BaseContainer);
|
|
29
30
|
const RecommendedAppPanel = _interopRequireDefault(__RecommendedAppPanel);
|
|
30
31
|
const OrientationType = ___library["OrientationType"];
|
|
@@ -266,24 +267,15 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/Panel", "sap/m/librar
|
|
|
266
267
|
_setApps: function _setApps(panel) {
|
|
267
268
|
try {
|
|
268
269
|
const _this4 = this;
|
|
269
|
-
const
|
|
270
|
-
function
|
|
270
|
+
const _temp5 = _catch(function () {
|
|
271
|
+
function _temp4() {
|
|
271
272
|
// fire panel loaded event
|
|
272
273
|
panel.fireEvent("loaded");
|
|
273
274
|
}
|
|
274
|
-
const
|
|
275
|
+
const _temp3 = function () {
|
|
275
276
|
if (panel.isDirty() && panel.isMobileDirty()) {
|
|
276
277
|
_this4._generatePlaceholder(panel);
|
|
277
278
|
return Promise.resolve(panel.loadApps?.()).then(function () {
|
|
278
|
-
function _temp4() {
|
|
279
|
-
let tiles = [];
|
|
280
|
-
let apps = panel.getApps();
|
|
281
|
-
tiles = panel.fetchTileVisualization(tiles);
|
|
282
|
-
_this4.fireEvent("appsLoaded", {
|
|
283
|
-
apps,
|
|
284
|
-
tiles
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
279
|
if (_this4.getDeviceType() === DeviceType.Mobile) {
|
|
288
280
|
panel.setMobileViewDirty(false);
|
|
289
281
|
} else {
|
|
@@ -291,22 +283,27 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/Panel", "sap/m/librar
|
|
|
291
283
|
}
|
|
292
284
|
panel.setLoaded(true);
|
|
293
285
|
_this4._updatePanelContent(panel);
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
286
|
+
if (panel instanceof BaseAppPersPanel) {
|
|
287
|
+
// don't wait for personalization to complete
|
|
288
|
+
void panel.applyPersonalization(true);
|
|
289
|
+
}
|
|
290
|
+
let tiles = [];
|
|
291
|
+
let apps = panel.getApps();
|
|
292
|
+
tiles = panel.fetchTileVisualization(tiles);
|
|
293
|
+
_this4.fireEvent("appsLoaded", {
|
|
294
|
+
apps,
|
|
295
|
+
tiles
|
|
296
|
+
});
|
|
300
297
|
});
|
|
301
298
|
}
|
|
302
299
|
}();
|
|
303
300
|
// only load the apps if panel is in dirty state
|
|
304
|
-
return
|
|
301
|
+
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
305
302
|
}, function (error) {
|
|
306
303
|
_this4.showErrorCard(panel);
|
|
307
304
|
Log.error(`Error setting apps for panel: ${panel.getTitle()}`, error instanceof Error ? error.message : String(error));
|
|
308
305
|
});
|
|
309
|
-
return Promise.resolve(
|
|
306
|
+
return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(function () {}) : void 0);
|
|
310
307
|
} catch (e) {
|
|
311
308
|
return Promise.reject(e);
|
|
312
309
|
}
|
|
@@ -530,12 +527,12 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/Panel", "sap/m/librar
|
|
|
530
527
|
const panels = _this8.getContent();
|
|
531
528
|
const isPhone = _this8.getDeviceType() === DeviceType.Mobile;
|
|
532
529
|
const recommendedPanel = panels ? panels.find(panel => panel instanceof RecommendedAppPanel) : null;
|
|
533
|
-
const
|
|
530
|
+
const _temp6 = function () {
|
|
534
531
|
if (recommendedPanel instanceof RecommendedAppPanel && !isPhone) {
|
|
535
532
|
return Promise.resolve(recommendedPanel._enableRecommendationTab()).then(function () {});
|
|
536
533
|
}
|
|
537
534
|
}();
|
|
538
|
-
return Promise.resolve(
|
|
535
|
+
return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
|
|
539
536
|
} catch (e) {
|
|
540
537
|
return Promise.reject(e);
|
|
541
538
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppsContainer.js","names":["sap","ui","define","Log","GenericTile","Panel","sap_m_library","EventBus","Parameters","S4MyHome","___AppsContainerGenericPlaceholder","__BaseContainer","__RecommendedAppPanel","___library","___utils_DataFormatUtils","___utils_Device","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BackgroundDesign","FrameType","GenericTileMode","GenericTileScope","TileSizeBehavior","getAppsPlaceholder","BaseContainer","RecommendedAppPanel","OrientationType","getLeanURL","calculateCardWidth","DeviceType","fetchElementProperties","getDefaultAppColor","sLegendName","key","value","get","name","assigned","CONSTANTS","PLACEHOLDER_ITEMS_COUNT","MIN_TILE_WIDTH","MAX_TILE_WIDTH","AppsContainer","extend","metadata","events","appsLoaded","parameters","apps","type","tiles","renderer","apiVersion","constructor","_constructor","id","settings","BaseContainer.prototype.constructor.call","_isInitialRender","init","_init","BaseContainer.prototype.init.call","setProperty","_i18nBundle","getText","getDeviceType","Mobile","Vertical","eventBus","getInstance","subscribe","channelId","eventId","data","showRecommendation","firstAppsPanel","getContent","getProperty","addStyleClass","addCustomSetting","_attachRouteChangeEvent","_this","handleRouteChange","event","show","getParameter","_temp2","_temp","_appSwitched","showPersistedDialog","Promise","resolve","load","_setPanelsDirty","reject","attachRouteMatched","error","warning","Error","message","String","onBeforeRendering","_onBeforeRendering","_attachPanelSupportedEvent","_removeUnsupportedPanels","adjustLayout","BaseContainer.prototype.onBeforeRendering.call","onAfterRendering","_onAfterRendering","_this2","BaseContainer.prototype.onAfterRendering.call","_activateRecommendationTabPanel","_load","_this3","selectedPanels","getPanels","all","map","selectedPanel","_setApps","_getPanels","isPhone","_getSelectedPanel","_showPersistedDialog","firePersistDialog","panels","panel","setDesktopViewDirty","setMobileViewDirty","_generatePlaceholder","isLoaded","destroyAggregation","placeholderApps","generateApps","Array","fill","status","setApps","_updatePanelContent","_this4","_temp7","_temp6","fireEvent","_temp5","isDirty","isMobileDirty","loadApps","_temp4","getApps","fetchTileVisualization","setLoaded","_temp3","isA","applyPersonalization","showErrorCard","getTitle","groups","getAggregation","wrapper","_generateMobileAppsWrapper","_generateAppsWrapper","aggregationName","items","_generateMobileCards","getId","_generateTiles","_addWrapperContent","_updatePanelContentVisibility","appsWrapper","_generateDesktopAppsWrapper","mobileAppsWrapper","errorCard","_generateErrorMessage","hasApps","length","setVisible","getParent","setWidth","_getAppTile","app","actions","tileId","scope","ActionMore","Display","state","getStatus","mode","IconMode","sizeBehavior","Small","header","backgroundColor","getBgColor","tileIcon","getIcon","url","getUrl","frameType","TwoByHalf","renderOnThemeChange","dropAreaOffset","subheader","getSubTitle","press","_onPress","width","_getGroupTile","group","tileBadge","getNumber","getGroupId","_onPanelSelect","_this5","BaseContainer.prototype._onPanelSelect.call","_refreshAllPanels","_this6","refreshPanel","_refreshPanel","_this7","_toggleTabView","supportedPanels","filter","isSupported","iconTabBarControl","_getInnerControl","toggleStyleClass","_onPanelSupported","currentPanel","setSupported","_togglePanelVisibility","isVisible","panelWrapper","_getPanelContentWrapper","iconTabBar","tabs","getItems","selectedTab","find","tab","getKey","unSupportedPanels","hasListeners","attachSupported","bind","_this8","recommendedPanel","_temp8","_enableRecommendationTab","setTileWidth","_setTileWidth","minWidth","maxWidth","getDomRef","domProperties","availableWidth","Object","values","slice","reduce","propertyValue","tileCount","cardLayoutConfig","containerWidth","totalCards","gap","skipDeviceCheck","clampedWidth","getLayout","_adjustLayout","currentLayout","newLayout","SideBySide","shouldAdjustLayout","toggleActionButtons","forEach","currentPanelId","i","panelItems","backgroundDesign","Solid","height","content","push","item","addAggregation","_showErrorCard","getGenericPlaceholderContent","_getGenericPlaceholderContent"],"sources":["AppsContainer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GridContainer from \"sap/f/GridContainer\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport HeaderContainer from \"sap/m/HeaderContainer\";\nimport IconTabBar, { IconTabBar$SelectEvent } from \"sap/m/IconTabBar\";\nimport IconTabFilter from \"sap/m/IconTabFilter\";\nimport Panel from \"sap/m/Panel\";\nimport VBox from \"sap/m/VBox\";\nimport { BackgroundDesign, FrameType, GenericTileMode, GenericTileScope, LoadState, TileSizeBehavior } from \"sap/m/library\";\nimport Event from \"sap/ui/base/Event\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Parameters from \"sap/ui/core/theming/Parameters\";\nimport S4MyHome from \"sap/ushell/api/S4MyHome\";\nimport App from \"./App\";\nimport { $AppsContainerSettings } from \"./AppsContainer\";\nimport { getAppsPlaceholder } from \"./AppsContainerGenericPlaceholder\";\nimport BaseApp from \"./BaseApp\";\nimport BaseAppPanel, { BaseAppPanel$SupportedEvent } from \"./BaseAppPanel\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport BaseContainer from \"./BaseContainer\";\nimport Group from \"./Group\";\nimport MenuItem from \"./MenuItem\";\nimport RecommendedAppPanel from \"./RecommendedAppPanel\";\nimport { ICustomVisualization } from \"./interface/AppsInterface\";\nimport { OrientationType } from \"./library\";\nimport { getLeanURL } from \"./utils/DataFormatUtils\";\nimport { calculateCardWidth, DeviceType, fetchElementProperties } from \"./utils/Device\";\n\nconst getDefaultAppColor = () => {\n\tconst sLegendName = \"sapLegendColor9\";\n\treturn {\n\t\tkey: sLegendName,\n\t\tvalue: Parameters.get({\n\t\t\tname: sLegendName\n\t\t}),\n\t\tassigned: false\n\t};\n};\n\nconst CONSTANTS = {\n\tPLACEHOLDER_ITEMS_COUNT: 5,\n\tMIN_TILE_WIDTH: 304,\n\tMAX_TILE_WIDTH: 456\n};\n\n/**\n *\n * Container class for managing and storing apps.\n *\n * @extends BaseContainer\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @internal\n * @experimental Since 1.121\n * @public\n *\n * @alias sap.cux.home.AppsContainer\n */\nexport default class AppsContainer extends BaseContainer {\n\tprivate _isInitialRender = true;\n\tprivate _appSwitched!: boolean;\n\tstatic readonly renderer = {\n\t\t...BaseContainer.renderer,\n\t\tapiVersion: 2\n\t};\n\tstatic readonly metadata: MetadataOptions = {\n\t\tevents: {\n\t\t\t/**\n\t\t\t * Event is fired when apps are loaded.\n\t\t\t */\n\t\t\tappsLoaded: {\n\t\t\t\tparameters: {\n\t\t\t\t\tapps: { type: \"sap.cux.home.App[]\" },\n\t\t\t\t\ttiles: { type: \"sap.m.GenericTile[]\" }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconstructor(idOrSettings?: string | $AppsContainerSettings);\n\tconstructor(id?: string, settings?: $AppsContainerSettings);\n\t/**\n\t * Constructor for a new app container.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $AppsContainerSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis.setProperty(\"title\", this._i18nBundle?.getText(\"appsTitle\"));\n\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\tthis.setProperty(\"orientation\", OrientationType.Vertical);\n\t\t}\n\t\t// Subscribe to recommendation setting change event\n\t\tconst eventBus = EventBus.getInstance();\n\t\teventBus.subscribe(\"importChannel\", \"recommendationSettingChanged\", (channelId?: string, eventId?: string, data?: object) => {\n\t\t\tconst showRecommendation = (data as { showRecommendation: boolean }).showRecommendation;\n\t\t\tif (!showRecommendation) {\n\t\t\t\tconst firstAppsPanel = this.getContent()?.[0];\n\t\t\t\tthis.setProperty(\"selectedKey\", firstAppsPanel?.getProperty(\"key\"));\n\t\t\t}\n\t\t});\n\n\t\t// disable lazy load for apps container as it's the hero element\n\t\tthis.setProperty(\"enableLazyLoad\", false);\n\t\tthis.addStyleClass(\"sapCuxAppsContainer\");\n\t\tthis.addCustomSetting(\"text\", this._i18nBundle.getText(\"myAppMsg\") as string);\n\t\tthis._attachRouteChangeEvent();\n\t}\n\n\t/**\n\t * Attaches an event handler to monitor route changes and manage application state accordingly.\n\t * @private\n\t *\n\t * @returns {void}\n\t */\n\n\tprivate _attachRouteChangeEvent(): void {\n\t\tconst handleRouteChange = async (event: Event<{ isMyHomeRoute: boolean }>) => {\n\t\t\tconst show = event.getParameter(\"isMyHomeRoute\");\n\t\t\tif (show) {\n\t\t\t\tif (this._appSwitched) {\n\t\t\t\t\tthis._appSwitched = false;\n\t\t\t\t\tthis.showPersistedDialog();\n\t\t\t\t\tawait this.load();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._setPanelsDirty();\n\t\t\t\tthis._appSwitched = true;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\tS4MyHome.attachRouteMatched({}, handleRouteChange, this);\n\t\t} catch (error) {\n\t\t\tLog.warning(\"Unable to attach route change handler\", error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\n\t/**\n\t * onBeforeRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic onBeforeRendering() {\n\t\tif (this._isInitialRender) {\n\t\t\tthis._isInitialRender = false;\n\t\t\tthis._attachPanelSupportedEvent();\n\t\t\tthis._removeUnsupportedPanels();\n\t\t}\n\n\t\tthis.adjustLayout();\n\t\tsuper.onBeforeRendering();\n\t}\n\n\t/**\n\t * onAfterRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic async onAfterRendering() {\n\t\tsuper.onAfterRendering();\n\t\t// activating the recommendation tab from appsContainer as personalization data in not available on init of panel.\n\t\tawait this._activateRecommendationTabPanel();\n\t}\n\n\t/**\n\t * Loads the AppsContainer section.\n\t * Overrides the load method of the BaseContainer.\n\t *\n\t * @private\n\t * @async\n\t * @override\n\t */\n\tpublic async load(): Promise<void> {\n\t\tconst selectedPanels = this.getPanels();\n\t\tawait Promise.all(selectedPanels.map((selectedPanel) => this._setApps(selectedPanel)));\n\t}\n\n\t/**\n\t * Retrieves the relevant panels based on the device type.\n\t *\n\t * @private\n\t * @returns {BaseAppPanel[]} An array of panels based on the device type.\n\t */\n\n\tprivate getPanels(): BaseAppPanel[] {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\treturn (isPhone ? this.getContent() : [this._getSelectedPanel()]) as BaseAppPanel[];\n\t}\n\n\t/**\n\t * Triggers navigation actions for the currently relevant panels.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\n\tprivate showPersistedDialog(): void {\n\t\tconst selectedPanels = this.getPanels();\n\t\tfor (const selectedPanel of selectedPanels) {\n\t\t\tselectedPanel.firePersistDialog();\n\t\t}\n\t}\n\n\t/**\n\t * Set all panels dirty state to true, to refresh all panels\n\t * @private\n\t */\n\tprivate _setPanelsDirty(): void {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tfor (const panel of panels) {\n\t\t\tpanel.setDesktopViewDirty(true);\n\t\t\tpanel.setMobileViewDirty(true);\n\t\t}\n\t}\n\n\t/**\n\t * Generate placeholer for the panel.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel for which placeholders has to be generated.\n\t */\n\tprivate _generatePlaceholder(panel: BaseAppPanel): void {\n\t\tif (!panel.isLoaded()) {\n\t\t\tpanel.destroyAggregation(\"apps\", true);\n\t\t\tconst placeholderApps = panel.generateApps(\n\t\t\t\tnew Array(CONSTANTS.PLACEHOLDER_ITEMS_COUNT).fill({ status: \"Loading\" }) as ICustomVisualization[]\n\t\t\t);\n\t\t\tpanel.setApps(placeholderApps);\n\t\t\tthis._updatePanelContent(panel);\n\t\t}\n\t}\n\n\t/**\n\t * Loads and sets the apps.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel for which apps has to be loaded.\n\t * @returns {Promise<void>} resolves when apps are loaded.\n\t */\n\tprivate async _setApps(panel: BaseAppPanel): Promise<void> {\n\t\ttry {\n\t\t\t// only load the apps if panel is in dirty state\n\t\t\tif (panel.isDirty() && panel.isMobileDirty()) {\n\t\t\t\tthis._generatePlaceholder(panel);\n\t\t\t\tawait panel.loadApps?.();\n\t\t\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\t\t\tpanel.setMobileViewDirty(false);\n\t\t\t\t} else {\n\t\t\t\t\tpanel.setDesktopViewDirty(false);\n\t\t\t\t}\n\t\t\t\tpanel.setLoaded(true);\n\t\t\t\tthis._updatePanelContent(panel);\n\n\t\t\t\tif (panel.isA(\"sap.cux.home.BaseAppPersPanel\")) {\n\t\t\t\t\tawait (panel as BaseAppPersPanel).applyPersonalization();\n\t\t\t\t}\n\t\t\t\tlet tiles: GenericTile[] = [];\n\t\t\t\tlet apps = panel.getApps();\n\t\t\t\ttiles = panel.fetchTileVisualization(tiles);\n\t\t\t\tthis.fireEvent(\"appsLoaded\", { apps, tiles });\n\t\t\t}\n\n\t\t\t// fire panel loaded event\n\t\t\tpanel.fireEvent(\"loaded\");\n\t\t} catch (error: unknown) {\n\t\t\tthis.showErrorCard(panel);\n\t\t\tLog.error(`Error setting apps for panel: ${panel.getTitle()}`, error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\n\t/**\n\t * Updates the content of the panel by replacing existing items with new apps and groups.\n\t * This method selects the appropriate wrapper based on the device type, and add apps/group or mobile cards to the wrapper.\n\t *\n\t * @param {BaseAppPanel} panel - The panel whose content needs to be updated.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _updatePanelContent(panel: BaseAppPanel): void {\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst wrapper = isPhone ? panel._generateMobileAppsWrapper() : panel._generateAppsWrapper();\n\t\tconst aggregationName = isPhone ? \"content\" : \"items\";\n\t\twrapper.destroyAggregation(aggregationName);\n\t\tlet items = isPhone ? this._generateMobileCards([...groups, ...apps], panel.getId()) : this._generateTiles([...groups, ...apps]);\n\t\tthis._addWrapperContent(wrapper, items, aggregationName);\n\t\tthis._updatePanelContentVisibility(panel);\n\t}\n\n\t/**\n\t * Updates the visibility of the panel's content based on the current state and device type.\n\t * This method determines whether to display the apps or an error message based on the presence of apps and groups.\n\t * It also adjusts the visibility of different containers depending on whether the device is a phone or not.\n\t *\n\t * @param {BaseAppPanel} panel - The panel whose content visibility needs to be updated.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _updatePanelContentVisibility(panel: BaseAppPanel): void {\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst appsWrapper = panel._generateDesktopAppsWrapper();\n\t\tconst mobileAppsWrapper = panel._generateMobileAppsWrapper();\n\t\tconst errorCard = panel._generateErrorMessage();\n\t\tconst hasApps = [...apps, ...groups].length !== 0;\n\t\tappsWrapper.setVisible(hasApps && !isPhone);\n\t\tmobileAppsWrapper.setVisible(hasApps && isPhone);\n\t\t(mobileAppsWrapper.getParent() as VBox).setWidth(isPhone && hasApps ? \"100%\" : \"auto\");\n\t\terrorCard.setVisible(!hasApps);\n\t}\n\n\t/**\n\t * Generates generic tile based on app.\n\t * @private\n\t * @param {sap.cux.home.App} app - App.\n\t * @returns {sap.m.GenericTile}.\n\t */\n\tpublic _getAppTile(app: App): GenericTile {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst actions = (app.getAggregation(\"menuItems\") || []) as MenuItem[];\n\t\tconst tileId = isPhone ? `${app.getId()}-mobile-tile` : `${app.getId()}-tile`;\n\t\treturn new GenericTile(tileId, {\n\t\t\tscope: actions.length && !isPhone ? GenericTileScope.ActionMore : GenericTileScope.Display,\n\t\t\tstate: app.getStatus() as LoadState,\n\t\t\tmode: GenericTileMode.IconMode,\n\t\t\tsizeBehavior: TileSizeBehavior.Small,\n\t\t\theader: app.getTitle(),\n\t\t\tbackgroundColor: app.getBgColor() || getDefaultAppColor()?.key,\n\t\t\ttileIcon: app.getIcon(),\n\t\t\turl: getLeanURL(app.getUrl()),\n\t\t\tframeType: FrameType.TwoByHalf,\n\t\t\trenderOnThemeChange: true,\n\t\t\tdropAreaOffset: 4,\n\t\t\tsubheader: app.getSubTitle(),\n\t\t\tpress: (e) => app._onPress(e),\n\t\t\twidth: isPhone ? \"15rem\" : \"100%\"\n\t\t}).addStyleClass(\"tileLayout sapMGTTwoByHalf\");\n\t}\n\n\t/**\n\t * Generates generic tile based on group.\n\t * @private\n\t * @param {sap.cux.home.Group} group - Group.\n\t * @returns {sap.m.GenericTile}.\n\t */\n\tprivate _getGroupTile(group: Group): GenericTile {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst actions = (group.getAggregation(\"menuItems\") || []) as MenuItem[];\n\t\tconst tileId = isPhone ? `${group.getId()}-mobile-tile` : `${group.getId()}-tile`;\n\t\treturn new GenericTile(tileId, {\n\t\t\tscope: actions.length && !isPhone ? GenericTileScope.ActionMore : GenericTileScope.Display,\n\t\t\tstate: group.getStatus() as LoadState,\n\t\t\tmode: GenericTileMode.IconMode,\n\t\t\tsizeBehavior: TileSizeBehavior.Small,\n\t\t\theader: group.getTitle(),\n\t\t\tbackgroundColor: group.getBgColor() || getDefaultAppColor()?.key,\n\t\t\ttileIcon: group.getIcon(),\n\t\t\tframeType: FrameType.TwoByHalf,\n\t\t\trenderOnThemeChange: true,\n\t\t\tdropAreaOffset: 4,\n\t\t\ttileBadge: group.getNumber(),\n\t\t\tpress: (e) => group._onPress(e),\n\t\t\twidth: isPhone ? \"15rem\" : \"100%\"\n\t\t})\n\t\t\t.addStyleClass(\"tileLayout sapMGTTwoByHalf\")\n\t\t\t.data(\"groupId\", group.getGroupId()) as GenericTile;\n\t}\n\n\t/**\n\t * Overridden method for selection of panel in the IconTabBar.\n\t * Loads the apps in selected panel\n\t * @private\n\t * @returns {Promise<void>} resolves when apps are loaded on panel selection.\n\t */\n\tprotected async _onPanelSelect(event: IconTabBar$SelectEvent) {\n\t\tsuper._onPanelSelect(event);\n\t\tconst selectedPanel = this._getSelectedPanel() as BaseAppPanel;\n\t\tawait this._setApps(selectedPanel);\n\t}\n\n\t/**\n\t * Refresh apps for all the panels.\n\t * @private\n\t * @returns {Promise<void>} resolves when all panels are set to dirty and apps for current panel are refreshed.\n\t */\n\tpublic async _refreshAllPanels(): Promise<void> {\n\t\t//set all panels to dirty\n\t\tthis._setPanelsDirty();\n\t\t//set apps for current section\n\t\tawait this._setApps(this._getSelectedPanel() as BaseAppPanel);\n\t}\n\n\t/**\n\t * Refresh apps for selected panel.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel that has be refreshed.\n\t * @returns {Promise<void>} resolves when apps are refreshed.\n\t */\n\tpublic async refreshPanel(panel: BaseAppPanel): Promise<void> {\n\t\tpanel.setMobileViewDirty(true);\n\t\tpanel.setDesktopViewDirty(true);\n\t\tawait this._setApps(panel);\n\t}\n\n\t/**\n\t * Toggles the visibility of the tab view based on the supported panels.\n\t * @private\n\t */\n\tprivate _toggleTabView() {\n\t\tif (this.getDeviceType() !== DeviceType.Mobile) {\n\t\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\t\tconst supportedPanels = panels.filter((panel) => panel.isSupported());\n\t\t\tconst iconTabBarControl = this._getInnerControl() as IconTabBar;\n\t\t\ticonTabBarControl?.toggleStyleClass(\"sapUiITBHide\", supportedPanels.length === 1);\n\t\t}\n\t}\n\n\t/**\n\t * Handles the supported state of the current panel.\n\t * If the panel is supported, it adds the panel to the content.\n\t * If the panel is not supported, it removes the panel from the content.\n\t * @param {BaseAppPanel} currentPanel - The panel to handle the supported state for.\n\t * @private\n\t */\n\tprivate _onPanelSupported(currentPanel: BaseAppPanel, event: BaseAppPanel$SupportedEvent) {\n\t\tconst isSupported = event.getParameter(\"isSupported\") as boolean;\n\t\tcurrentPanel.setSupported(isSupported);\n\t\tthis._togglePanelVisibility(currentPanel, isSupported);\n\t\tthis._toggleTabView();\n\t}\n\n\t/**\n\t * Toggles the visibility of the panel.\n\t * @param {BaseAppPanel} panel - The panel to toggle the visibility for.\n\t * @param {boolean} isVisible - The visibility state of the panel.\n\t * @private\n\t */\n\tprivate _togglePanelVisibility(panel: BaseAppPanel, isVisible: boolean) {\n\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\tconst panelWrapper = this._getPanelContentWrapper(panel);\n\t\t\tpanelWrapper.setVisible(isVisible);\n\t\t} else {\n\t\t\tconst iconTabBar = this._getInnerControl() as IconTabBar;\n\t\t\tconst tabs = (iconTabBar?.getItems() as IconTabFilter[]) || [];\n\t\t\tconst selectedTab = tabs.find((tab) => tab.getKey() === panel.getKey());\n\t\t\tselectedTab?.setVisible(isVisible);\n\t\t}\n\t}\n\n\t/**\n\t * Removes unsupported panels from the container.\n\t * @private\n\t */\n\tprivate _removeUnsupportedPanels() {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tconst unSupportedPanels = panels.filter((panel) => !panel.isSupported());\n\t\tfor (const panel of unSupportedPanels) {\n\t\t\tthis._togglePanelVisibility(panel, false);\n\t\t}\n\t\tthis._toggleTabView();\n\t}\n\n\t/**\n\t * Attaches an event handler to the \"supported\" event for each panel in the container.\n\t * @private\n\t */\n\tprivate _attachPanelSupportedEvent() {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tfor (const panel of panels) {\n\t\t\tif (!panel.hasListeners(\"supported\")) {\n\t\t\t\tpanel.attachSupported(this._onPanelSupported.bind(this, panel));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls the enable function to activate the recommendation tab for `RecommendedAppPanel`, unless the device is a mobile phone.\n\t *\n\t * @private\n\t */\n\tprivate async _activateRecommendationTabPanel(): Promise<void> {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst recommendedPanel = panels ? panels.find((panel) => panel instanceof RecommendedAppPanel) : null;\n\t\tif (recommendedPanel instanceof RecommendedAppPanel && !isPhone) {\n\t\t\tawait recommendedPanel._enableRecommendationTab();\n\t\t}\n\t}\n\n\tpublic setTileWidth(panel: BaseAppPanel): void {\n\t\tconst minWidth = CONSTANTS.MIN_TILE_WIDTH; // in px\n\t\tconst maxWidth = CONSTANTS.MAX_TILE_WIDTH; // in px\n\n\t\tconst wrapper = panel._generateAppsWrapper()?.getDomRef() as Element;\n\t\tif (!wrapper) return;\n\n\t\tconst domProperties = fetchElementProperties(wrapper, [\"width\", \"padding-left\", \"padding-right\", \"margin-left\", \"margin-right\"]);\n\t\tconst availableWidth = Object.values(domProperties)\n\t\t\t.slice(1)\n\t\t\t.reduce((width, propertyValue) => width - propertyValue, domProperties[\"width\"]);\n\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst tileCount = apps.length + groups.length;\n\n\t\tif (tileCount === 0 || availableWidth <= 0) return;\n\n\t\tconst cardLayoutConfig = {\n\t\t\tcontainerWidth: availableWidth,\n\t\t\ttotalCards: tileCount,\n\t\t\tminWidth: minWidth,\n\t\t\tmaxWidth: maxWidth,\n\t\t\tgap: 8,\n\t\t\tskipDeviceCheck: true\n\t\t};\n\n\t\tconst clampedWidth = calculateCardWidth(cardLayoutConfig);\n\n\t\tpanel.setProperty(\"tileWidth\", clampedWidth);\n\t\tpanel\n\t\t\t._generateAppsWrapper()\n\t\t\t.getLayout()\n\t\t\t.setProperty(\"columnSize\", `${clampedWidth / 16}rem`);\n\t}\n\n\t/**\n\t * Adjusts the layout and visibility based on the device type.\n\t *\n\t * This method adjusts the layout type and visibility of containers based on whether the device is a phone\n\t * or not. It sets the container's layout property, toggles visibility of panels and their containers, and\n\t * adjusts background design accordingly.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\tpublic adjustLayout(): void {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst currentLayout = this.getProperty(\"orientation\") as OrientationType;\n\t\tconst newLayout = isPhone ? OrientationType.Vertical : OrientationType.SideBySide;\n\t\tconst shouldAdjustLayout = currentLayout !== newLayout;\n\t\tconst selectedPanel = this._getSelectedPanel() as BaseAppPanel;\n\t\tthis.setTileWidth(selectedPanel);\n\n\t\t//hide actions if the device is a phone\n\t\tthis.toggleActionButtons(!isPhone);\n\t\tif (!shouldAdjustLayout) {\n\t\t\treturn;\n\t\t}\n\t\tthis.setProperty(\"orientation\", newLayout);\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tpanels.forEach((panel) => {\n\t\t\t//if both the panels are dirty, then updated data will be loaded from onBeforeRendering, as layout change will trigger re-rendering\n\t\t\t//if both the panels are not dirty, i.e. doen't have any changes, then just toggle the visibility\n\t\t\tif (!panel.isDirty() && !panel.isMobileDirty()) {\n\t\t\t\tthis._updatePanelContentVisibility(panel);\n\t\t\t} else if (panel.isDirty() !== panel.isMobileDirty()) {\n\t\t\t\t//if one of the panels is dirty i.e. have updated data and other is not, then re-create the inner controls\n\t\t\t\tpanel.setDesktopViewDirty(false);\n\t\t\t\tpanel.setMobileViewDirty(false);\n\t\t\t\tthis._updatePanelContent(panel);\n\t\t\t}\n\t\t});\n\n\t\t//this is to handle scenario when unsupported propert is changed and then layout is changed.\n\t\tthis._removeUnsupportedPanels();\n\t}\n\n\t/**\n\t * Generates mobile card panel and add given apps/groups in the panel.\n\t *\n\t * @private\n\t * @param {BaseApp[]} items - Apps/Groups for which card panels has to be generated.\n\t * @param {string} currentPanelId - ID of the current panel.\n\t * @returns {sap.m.Panel} The newly created mobile card panel.\n\t */\n\tprivate _generateMobileCards(items: BaseApp[], currentPanelId?: string): Panel[] {\n\t\tconst panels: Panel[] = [];\n\t\tfor (let i = 0; i < items.length; i += 7) {\n\t\t\tconst panelItems = items.slice(i, i + 7);\n\t\t\tconst panel = new Panel(`${currentPanelId}--${i}`, {\n\t\t\t\tbackgroundDesign: BackgroundDesign.Solid,\n\t\t\t\theight: \"23.5rem\",\n\t\t\t\twidth: \"17rem\",\n\t\t\t\tcontent: this._generateTiles(panelItems)\n\t\t\t}).addStyleClass(\"sapUiMobileAppsCard appPanelBorder myAppMFBContent\");\n\t\t\tpanels.push(panel);\n\t\t}\n\t\treturn panels;\n\t}\n\n\t/**\n\t * Generates group/app generic tiles for given apps/groups.\n\t *\n\t * @private\n\t * @param {BaseApp[]} items - Apps/Groups for which tiles has to be generated.\n\t * @returns {sap.m.GenericTile[]} The generated tiles.\n\t */\n\tprivate _generateTiles(items: BaseApp[]): GenericTile[] {\n\t\treturn items.map((item) => (item.isA(\"sap.cux.home.Group\") ? this._getGroupTile(item as Group) : this._getAppTile(item as App)));\n\t}\n\n\t/**\n\t * Adds given items into the wrapper.\n\t * @param {HeaderContainer | GridContainer} wrapper - wrapper for which items has to be added.\n\t * @param {Panel[] | GenericTile[]} items - items to be added.\n\t * @param {string} aggregationName - aggregation name to which items has to be added.\n\t * @private\n\t */\n\tprivate _addWrapperContent(wrapper: HeaderContainer | GridContainer, items: Panel[] | GenericTile[], aggregationName: string) {\n\t\twrapper.destroyAggregation(aggregationName);\n\t\titems.forEach((item) => {\n\t\t\twrapper.addAggregation(aggregationName, item);\n\t\t});\n\t}\n\n\t/**\n\t * Displays an error card in the provided panel.\n\t *\n\t * @param panel - The panel in which the error card should be displayed.\n\t */\n\tprivate showErrorCard(panel: BaseAppPanel): void {\n\t\tconst errorCard = panel._generateErrorMessage();\n\t\tconst appsWrapper = panel._generateDesktopAppsWrapper();\n\t\tconst mobileAppsWrapper = panel._generateMobileAppsWrapper();\n\t\tappsWrapper?.setVisible(false);\n\t\tmobileAppsWrapper?.setVisible(false);\n\t\terrorCard?.setVisible(true);\n\t}\n\n\t/**\n\t * Retrieves the generic placeholder content for the Apps container.\n\t *\n\t * @returns {string} The HTML string representing the Apps container's placeholder content.\n\t */\n\tprotected getGenericPlaceholderContent(): string {\n\t\treturn getAppsPlaceholder();\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AppsContainer.js","names":["sap","ui","define","Log","GenericTile","Panel","sap_m_library","EventBus","Parameters","S4MyHome","___AppsContainerGenericPlaceholder","__BaseAppPersPanel","__BaseContainer","__RecommendedAppPanel","___library","___utils_DataFormatUtils","___utils_Device","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BackgroundDesign","FrameType","GenericTileMode","GenericTileScope","TileSizeBehavior","getAppsPlaceholder","BaseAppPersPanel","BaseContainer","RecommendedAppPanel","OrientationType","getLeanURL","calculateCardWidth","DeviceType","fetchElementProperties","getDefaultAppColor","sLegendName","key","value","get","name","assigned","CONSTANTS","PLACEHOLDER_ITEMS_COUNT","MIN_TILE_WIDTH","MAX_TILE_WIDTH","AppsContainer","extend","metadata","events","appsLoaded","parameters","apps","type","tiles","renderer","apiVersion","constructor","_constructor","id","settings","BaseContainer.prototype.constructor.call","_isInitialRender","init","_init","BaseContainer.prototype.init.call","setProperty","_i18nBundle","getText","getDeviceType","Mobile","Vertical","eventBus","getInstance","subscribe","channelId","eventId","data","showRecommendation","firstAppsPanel","getContent","getProperty","addStyleClass","addCustomSetting","_attachRouteChangeEvent","_this","handleRouteChange","event","show","getParameter","_temp2","_temp","_appSwitched","showPersistedDialog","Promise","resolve","load","_setPanelsDirty","reject","attachRouteMatched","error","warning","Error","message","String","onBeforeRendering","_onBeforeRendering","_attachPanelSupportedEvent","_removeUnsupportedPanels","adjustLayout","BaseContainer.prototype.onBeforeRendering.call","onAfterRendering","_onAfterRendering","_this2","BaseContainer.prototype.onAfterRendering.call","_activateRecommendationTabPanel","_load","_this3","selectedPanels","getPanels","all","map","selectedPanel","_setApps","_getPanels","isPhone","_getSelectedPanel","_showPersistedDialog","firePersistDialog","panels","panel","setDesktopViewDirty","setMobileViewDirty","_generatePlaceholder","isLoaded","destroyAggregation","placeholderApps","generateApps","Array","fill","status","setApps","_updatePanelContent","_this4","_temp5","_temp4","fireEvent","_temp3","isDirty","isMobileDirty","loadApps","setLoaded","applyPersonalization","getApps","fetchTileVisualization","showErrorCard","getTitle","groups","getAggregation","wrapper","_generateMobileAppsWrapper","_generateAppsWrapper","aggregationName","items","_generateMobileCards","getId","_generateTiles","_addWrapperContent","_updatePanelContentVisibility","appsWrapper","_generateDesktopAppsWrapper","mobileAppsWrapper","errorCard","_generateErrorMessage","hasApps","length","setVisible","getParent","setWidth","_getAppTile","app","actions","tileId","scope","ActionMore","Display","state","getStatus","mode","IconMode","sizeBehavior","Small","header","backgroundColor","getBgColor","tileIcon","getIcon","url","getUrl","frameType","TwoByHalf","renderOnThemeChange","dropAreaOffset","subheader","getSubTitle","press","_onPress","width","_getGroupTile","group","tileBadge","getNumber","getGroupId","_onPanelSelect","_this5","BaseContainer.prototype._onPanelSelect.call","_refreshAllPanels","_this6","refreshPanel","_refreshPanel","_this7","_toggleTabView","supportedPanels","filter","isSupported","iconTabBarControl","_getInnerControl","toggleStyleClass","_onPanelSupported","currentPanel","setSupported","_togglePanelVisibility","isVisible","panelWrapper","_getPanelContentWrapper","iconTabBar","tabs","getItems","selectedTab","find","tab","getKey","unSupportedPanels","hasListeners","attachSupported","bind","_this8","recommendedPanel","_temp6","_enableRecommendationTab","setTileWidth","_setTileWidth","minWidth","maxWidth","getDomRef","domProperties","availableWidth","Object","values","slice","reduce","propertyValue","tileCount","cardLayoutConfig","containerWidth","totalCards","gap","skipDeviceCheck","clampedWidth","getLayout","_adjustLayout","currentLayout","newLayout","SideBySide","shouldAdjustLayout","toggleActionButtons","forEach","currentPanelId","i","panelItems","backgroundDesign","Solid","height","content","push","item","isA","addAggregation","_showErrorCard","getGenericPlaceholderContent","_getGenericPlaceholderContent"],"sources":["AppsContainer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GridContainer from \"sap/f/GridContainer\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport HeaderContainer from \"sap/m/HeaderContainer\";\nimport IconTabBar, { IconTabBar$SelectEvent } from \"sap/m/IconTabBar\";\nimport IconTabFilter from \"sap/m/IconTabFilter\";\nimport Panel from \"sap/m/Panel\";\nimport VBox from \"sap/m/VBox\";\nimport { BackgroundDesign, FrameType, GenericTileMode, GenericTileScope, LoadState, TileSizeBehavior } from \"sap/m/library\";\nimport Event from \"sap/ui/base/Event\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Parameters from \"sap/ui/core/theming/Parameters\";\nimport S4MyHome from \"sap/ushell/api/S4MyHome\";\nimport App from \"./App\";\nimport { $AppsContainerSettings } from \"./AppsContainer\";\nimport { getAppsPlaceholder } from \"./AppsContainerGenericPlaceholder\";\nimport BaseApp from \"./BaseApp\";\nimport BaseAppPanel, { BaseAppPanel$SupportedEvent } from \"./BaseAppPanel\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport BaseContainer from \"./BaseContainer\";\nimport Group from \"./Group\";\nimport MenuItem from \"./MenuItem\";\nimport RecommendedAppPanel from \"./RecommendedAppPanel\";\nimport { ICustomVisualization } from \"./interface/AppsInterface\";\nimport { OrientationType } from \"./library\";\nimport { getLeanURL } from \"./utils/DataFormatUtils\";\nimport { calculateCardWidth, DeviceType, fetchElementProperties } from \"./utils/Device\";\n\nconst getDefaultAppColor = () => {\n\tconst sLegendName = \"sapLegendColor9\";\n\treturn {\n\t\tkey: sLegendName,\n\t\tvalue: Parameters.get({\n\t\t\tname: sLegendName\n\t\t}),\n\t\tassigned: false\n\t};\n};\n\nconst CONSTANTS = {\n\tPLACEHOLDER_ITEMS_COUNT: 5,\n\tMIN_TILE_WIDTH: 304,\n\tMAX_TILE_WIDTH: 456\n};\n\n/**\n *\n * Container class for managing and storing apps.\n *\n * @extends BaseContainer\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @internal\n * @experimental Since 1.121\n * @public\n *\n * @alias sap.cux.home.AppsContainer\n */\nexport default class AppsContainer extends BaseContainer {\n\tprivate _isInitialRender = true;\n\tprivate _appSwitched!: boolean;\n\tstatic readonly renderer = {\n\t\t...BaseContainer.renderer,\n\t\tapiVersion: 2\n\t};\n\tstatic readonly metadata: MetadataOptions = {\n\t\tevents: {\n\t\t\t/**\n\t\t\t * Event is fired when apps are loaded.\n\t\t\t */\n\t\t\tappsLoaded: {\n\t\t\t\tparameters: {\n\t\t\t\t\tapps: { type: \"sap.cux.home.App[]\" },\n\t\t\t\t\ttiles: { type: \"sap.m.GenericTile[]\" }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconstructor(idOrSettings?: string | $AppsContainerSettings);\n\tconstructor(id?: string, settings?: $AppsContainerSettings);\n\t/**\n\t * Constructor for a new app container.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $AppsContainerSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis.setProperty(\"title\", this._i18nBundle?.getText(\"appsTitle\"));\n\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\tthis.setProperty(\"orientation\", OrientationType.Vertical);\n\t\t}\n\t\t// Subscribe to recommendation setting change event\n\t\tconst eventBus = EventBus.getInstance();\n\t\teventBus.subscribe(\"importChannel\", \"recommendationSettingChanged\", (channelId?: string, eventId?: string, data?: object) => {\n\t\t\tconst showRecommendation = (data as { showRecommendation: boolean }).showRecommendation;\n\t\t\tif (!showRecommendation) {\n\t\t\t\tconst firstAppsPanel = this.getContent()?.[0];\n\t\t\t\tthis.setProperty(\"selectedKey\", firstAppsPanel?.getProperty(\"key\"));\n\t\t\t}\n\t\t});\n\n\t\t// disable lazy load for apps container as it's the hero element\n\t\tthis.setProperty(\"enableLazyLoad\", false);\n\t\tthis.addStyleClass(\"sapCuxAppsContainer\");\n\t\tthis.addCustomSetting(\"text\", this._i18nBundle.getText(\"myAppMsg\") as string);\n\t\tthis._attachRouteChangeEvent();\n\t}\n\n\t/**\n\t * Attaches an event handler to monitor route changes and manage application state accordingly.\n\t * @private\n\t *\n\t * @returns {void}\n\t */\n\n\tprivate _attachRouteChangeEvent(): void {\n\t\tconst handleRouteChange = async (event: Event<{ isMyHomeRoute: boolean }>) => {\n\t\t\tconst show = event.getParameter(\"isMyHomeRoute\");\n\t\t\tif (show) {\n\t\t\t\tif (this._appSwitched) {\n\t\t\t\t\tthis._appSwitched = false;\n\t\t\t\t\tthis.showPersistedDialog();\n\t\t\t\t\tawait this.load();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._setPanelsDirty();\n\t\t\t\tthis._appSwitched = true;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\tS4MyHome.attachRouteMatched({}, handleRouteChange, this);\n\t\t} catch (error) {\n\t\t\tLog.warning(\"Unable to attach route change handler\", error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\n\t/**\n\t * onBeforeRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic onBeforeRendering() {\n\t\tif (this._isInitialRender) {\n\t\t\tthis._isInitialRender = false;\n\t\t\tthis._attachPanelSupportedEvent();\n\t\t\tthis._removeUnsupportedPanels();\n\t\t}\n\n\t\tthis.adjustLayout();\n\t\tsuper.onBeforeRendering();\n\t}\n\n\t/**\n\t * onAfterRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic async onAfterRendering() {\n\t\tsuper.onAfterRendering();\n\t\t// activating the recommendation tab from appsContainer as personalization data in not available on init of panel.\n\t\tawait this._activateRecommendationTabPanel();\n\t}\n\n\t/**\n\t * Loads the AppsContainer section.\n\t * Overrides the load method of the BaseContainer.\n\t *\n\t * @private\n\t * @async\n\t * @override\n\t */\n\tpublic async load(): Promise<void> {\n\t\tconst selectedPanels = this.getPanels();\n\t\tawait Promise.all(selectedPanels.map((selectedPanel) => this._setApps(selectedPanel)));\n\t}\n\n\t/**\n\t * Retrieves the relevant panels based on the device type.\n\t *\n\t * @private\n\t * @returns {BaseAppPanel[]} An array of panels based on the device type.\n\t */\n\n\tprivate getPanels(): BaseAppPanel[] {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\treturn (isPhone ? this.getContent() : [this._getSelectedPanel()]) as BaseAppPanel[];\n\t}\n\n\t/**\n\t * Triggers navigation actions for the currently relevant panels.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\n\tprivate showPersistedDialog(): void {\n\t\tconst selectedPanels = this.getPanels();\n\t\tfor (const selectedPanel of selectedPanels) {\n\t\t\tselectedPanel.firePersistDialog();\n\t\t}\n\t}\n\n\t/**\n\t * Set all panels dirty state to true, to refresh all panels\n\t * @private\n\t */\n\tprivate _setPanelsDirty(): void {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tfor (const panel of panels) {\n\t\t\tpanel.setDesktopViewDirty(true);\n\t\t\tpanel.setMobileViewDirty(true);\n\t\t}\n\t}\n\n\t/**\n\t * Generate placeholer for the panel.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel for which placeholders has to be generated.\n\t */\n\tprivate _generatePlaceholder(panel: BaseAppPanel): void {\n\t\tif (!panel.isLoaded()) {\n\t\t\tpanel.destroyAggregation(\"apps\", true);\n\t\t\tconst placeholderApps = panel.generateApps(\n\t\t\t\tnew Array(CONSTANTS.PLACEHOLDER_ITEMS_COUNT).fill({ status: \"Loading\" }) as ICustomVisualization[]\n\t\t\t);\n\t\t\tpanel.setApps(placeholderApps);\n\t\t\tthis._updatePanelContent(panel);\n\t\t}\n\t}\n\n\t/**\n\t * Loads and sets the apps.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel for which apps has to be loaded.\n\t * @returns {Promise<void>} resolves when apps are loaded.\n\t */\n\tprivate async _setApps(panel: BaseAppPanel): Promise<void> {\n\t\ttry {\n\t\t\t// only load the apps if panel is in dirty state\n\t\t\tif (panel.isDirty() && panel.isMobileDirty()) {\n\t\t\t\tthis._generatePlaceholder(panel);\n\t\t\t\tawait panel.loadApps?.();\n\t\t\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\t\t\tpanel.setMobileViewDirty(false);\n\t\t\t\t} else {\n\t\t\t\t\tpanel.setDesktopViewDirty(false);\n\t\t\t\t}\n\t\t\t\tpanel.setLoaded(true);\n\t\t\t\tthis._updatePanelContent(panel);\n\n\t\t\t\tif (panel instanceof BaseAppPersPanel) {\n\t\t\t\t\t// don't wait for personalization to complete\n\t\t\t\t\tvoid panel.applyPersonalization(true);\n\t\t\t\t}\n\t\t\t\tlet tiles: GenericTile[] = [];\n\t\t\t\tlet apps = panel.getApps();\n\t\t\t\ttiles = panel.fetchTileVisualization(tiles);\n\t\t\t\tthis.fireEvent(\"appsLoaded\", { apps, tiles });\n\t\t\t}\n\n\t\t\t// fire panel loaded event\n\t\t\tpanel.fireEvent(\"loaded\");\n\t\t} catch (error: unknown) {\n\t\t\tthis.showErrorCard(panel);\n\t\t\tLog.error(`Error setting apps for panel: ${panel.getTitle()}`, error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\n\t/**\n\t * Updates the content of the panel by replacing existing items with new apps and groups.\n\t * This method selects the appropriate wrapper based on the device type, and add apps/group or mobile cards to the wrapper.\n\t *\n\t * @param {BaseAppPanel} panel - The panel whose content needs to be updated.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _updatePanelContent(panel: BaseAppPanel): void {\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst wrapper = isPhone ? panel._generateMobileAppsWrapper() : panel._generateAppsWrapper();\n\t\tconst aggregationName = isPhone ? \"content\" : \"items\";\n\t\twrapper.destroyAggregation(aggregationName);\n\t\tlet items = isPhone ? this._generateMobileCards([...groups, ...apps], panel.getId()) : this._generateTiles([...groups, ...apps]);\n\t\tthis._addWrapperContent(wrapper, items, aggregationName);\n\t\tthis._updatePanelContentVisibility(panel);\n\t}\n\n\t/**\n\t * Updates the visibility of the panel's content based on the current state and device type.\n\t * This method determines whether to display the apps or an error message based on the presence of apps and groups.\n\t * It also adjusts the visibility of different containers depending on whether the device is a phone or not.\n\t *\n\t * @param {BaseAppPanel} panel - The panel whose content visibility needs to be updated.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _updatePanelContentVisibility(panel: BaseAppPanel): void {\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst appsWrapper = panel._generateDesktopAppsWrapper();\n\t\tconst mobileAppsWrapper = panel._generateMobileAppsWrapper();\n\t\tconst errorCard = panel._generateErrorMessage();\n\t\tconst hasApps = [...apps, ...groups].length !== 0;\n\t\tappsWrapper.setVisible(hasApps && !isPhone);\n\t\tmobileAppsWrapper.setVisible(hasApps && isPhone);\n\t\t(mobileAppsWrapper.getParent() as VBox).setWidth(isPhone && hasApps ? \"100%\" : \"auto\");\n\t\terrorCard.setVisible(!hasApps);\n\t}\n\n\t/**\n\t * Generates generic tile based on app.\n\t * @private\n\t * @param {sap.cux.home.App} app - App.\n\t * @returns {sap.m.GenericTile}.\n\t */\n\tpublic _getAppTile(app: App): GenericTile {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst actions = (app.getAggregation(\"menuItems\") || []) as MenuItem[];\n\t\tconst tileId = isPhone ? `${app.getId()}-mobile-tile` : `${app.getId()}-tile`;\n\t\treturn new GenericTile(tileId, {\n\t\t\tscope: actions.length && !isPhone ? GenericTileScope.ActionMore : GenericTileScope.Display,\n\t\t\tstate: app.getStatus() as LoadState,\n\t\t\tmode: GenericTileMode.IconMode,\n\t\t\tsizeBehavior: TileSizeBehavior.Small,\n\t\t\theader: app.getTitle(),\n\t\t\tbackgroundColor: app.getBgColor() || getDefaultAppColor()?.key,\n\t\t\ttileIcon: app.getIcon(),\n\t\t\turl: getLeanURL(app.getUrl()),\n\t\t\tframeType: FrameType.TwoByHalf,\n\t\t\trenderOnThemeChange: true,\n\t\t\tdropAreaOffset: 4,\n\t\t\tsubheader: app.getSubTitle(),\n\t\t\tpress: (e) => app._onPress(e),\n\t\t\twidth: isPhone ? \"15rem\" : \"100%\"\n\t\t}).addStyleClass(\"tileLayout sapMGTTwoByHalf\");\n\t}\n\n\t/**\n\t * Generates generic tile based on group.\n\t * @private\n\t * @param {sap.cux.home.Group} group - Group.\n\t * @returns {sap.m.GenericTile}.\n\t */\n\tprivate _getGroupTile(group: Group): GenericTile {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst actions = (group.getAggregation(\"menuItems\") || []) as MenuItem[];\n\t\tconst tileId = isPhone ? `${group.getId()}-mobile-tile` : `${group.getId()}-tile`;\n\t\treturn new GenericTile(tileId, {\n\t\t\tscope: actions.length && !isPhone ? GenericTileScope.ActionMore : GenericTileScope.Display,\n\t\t\tstate: group.getStatus() as LoadState,\n\t\t\tmode: GenericTileMode.IconMode,\n\t\t\tsizeBehavior: TileSizeBehavior.Small,\n\t\t\theader: group.getTitle(),\n\t\t\tbackgroundColor: group.getBgColor() || getDefaultAppColor()?.key,\n\t\t\ttileIcon: group.getIcon(),\n\t\t\tframeType: FrameType.TwoByHalf,\n\t\t\trenderOnThemeChange: true,\n\t\t\tdropAreaOffset: 4,\n\t\t\ttileBadge: group.getNumber(),\n\t\t\tpress: (e) => group._onPress(e),\n\t\t\twidth: isPhone ? \"15rem\" : \"100%\"\n\t\t})\n\t\t\t.addStyleClass(\"tileLayout sapMGTTwoByHalf\")\n\t\t\t.data(\"groupId\", group.getGroupId()) as GenericTile;\n\t}\n\n\t/**\n\t * Overridden method for selection of panel in the IconTabBar.\n\t * Loads the apps in selected panel\n\t * @private\n\t * @returns {Promise<void>} resolves when apps are loaded on panel selection.\n\t */\n\tprotected async _onPanelSelect(event: IconTabBar$SelectEvent) {\n\t\tsuper._onPanelSelect(event);\n\t\tconst selectedPanel = this._getSelectedPanel() as BaseAppPanel;\n\t\tawait this._setApps(selectedPanel);\n\t}\n\n\t/**\n\t * Refresh apps for all the panels.\n\t * @private\n\t * @returns {Promise<void>} resolves when all panels are set to dirty and apps for current panel are refreshed.\n\t */\n\tpublic async _refreshAllPanels(): Promise<void> {\n\t\t//set all panels to dirty\n\t\tthis._setPanelsDirty();\n\t\t//set apps for current section\n\t\tawait this._setApps(this._getSelectedPanel() as BaseAppPanel);\n\t}\n\n\t/**\n\t * Refresh apps for selected panel.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel that has be refreshed.\n\t * @returns {Promise<void>} resolves when apps are refreshed.\n\t */\n\tpublic async refreshPanel(panel: BaseAppPanel): Promise<void> {\n\t\tpanel.setMobileViewDirty(true);\n\t\tpanel.setDesktopViewDirty(true);\n\t\tawait this._setApps(panel);\n\t}\n\n\t/**\n\t * Toggles the visibility of the tab view based on the supported panels.\n\t * @private\n\t */\n\tprivate _toggleTabView() {\n\t\tif (this.getDeviceType() !== DeviceType.Mobile) {\n\t\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\t\tconst supportedPanels = panels.filter((panel) => panel.isSupported());\n\t\t\tconst iconTabBarControl = this._getInnerControl() as IconTabBar;\n\t\t\ticonTabBarControl?.toggleStyleClass(\"sapUiITBHide\", supportedPanels.length === 1);\n\t\t}\n\t}\n\n\t/**\n\t * Handles the supported state of the current panel.\n\t * If the panel is supported, it adds the panel to the content.\n\t * If the panel is not supported, it removes the panel from the content.\n\t * @param {BaseAppPanel} currentPanel - The panel to handle the supported state for.\n\t * @private\n\t */\n\tprivate _onPanelSupported(currentPanel: BaseAppPanel, event: BaseAppPanel$SupportedEvent) {\n\t\tconst isSupported = event.getParameter(\"isSupported\") as boolean;\n\t\tcurrentPanel.setSupported(isSupported);\n\t\tthis._togglePanelVisibility(currentPanel, isSupported);\n\t\tthis._toggleTabView();\n\t}\n\n\t/**\n\t * Toggles the visibility of the panel.\n\t * @param {BaseAppPanel} panel - The panel to toggle the visibility for.\n\t * @param {boolean} isVisible - The visibility state of the panel.\n\t * @private\n\t */\n\tprivate _togglePanelVisibility(panel: BaseAppPanel, isVisible: boolean) {\n\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\tconst panelWrapper = this._getPanelContentWrapper(panel);\n\t\t\tpanelWrapper.setVisible(isVisible);\n\t\t} else {\n\t\t\tconst iconTabBar = this._getInnerControl() as IconTabBar;\n\t\t\tconst tabs = (iconTabBar?.getItems() as IconTabFilter[]) || [];\n\t\t\tconst selectedTab = tabs.find((tab) => tab.getKey() === panel.getKey());\n\t\t\tselectedTab?.setVisible(isVisible);\n\t\t}\n\t}\n\n\t/**\n\t * Removes unsupported panels from the container.\n\t * @private\n\t */\n\tprivate _removeUnsupportedPanels() {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tconst unSupportedPanels = panels.filter((panel) => !panel.isSupported());\n\t\tfor (const panel of unSupportedPanels) {\n\t\t\tthis._togglePanelVisibility(panel, false);\n\t\t}\n\t\tthis._toggleTabView();\n\t}\n\n\t/**\n\t * Attaches an event handler to the \"supported\" event for each panel in the container.\n\t * @private\n\t */\n\tprivate _attachPanelSupportedEvent() {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tfor (const panel of panels) {\n\t\t\tif (!panel.hasListeners(\"supported\")) {\n\t\t\t\tpanel.attachSupported(this._onPanelSupported.bind(this, panel));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls the enable function to activate the recommendation tab for `RecommendedAppPanel`, unless the device is a mobile phone.\n\t *\n\t * @private\n\t */\n\tprivate async _activateRecommendationTabPanel(): Promise<void> {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst recommendedPanel = panels ? panels.find((panel) => panel instanceof RecommendedAppPanel) : null;\n\t\tif (recommendedPanel instanceof RecommendedAppPanel && !isPhone) {\n\t\t\tawait recommendedPanel._enableRecommendationTab();\n\t\t}\n\t}\n\n\tpublic setTileWidth(panel: BaseAppPanel): void {\n\t\tconst minWidth = CONSTANTS.MIN_TILE_WIDTH; // in px\n\t\tconst maxWidth = CONSTANTS.MAX_TILE_WIDTH; // in px\n\n\t\tconst wrapper = panel._generateAppsWrapper()?.getDomRef() as Element;\n\t\tif (!wrapper) return;\n\n\t\tconst domProperties = fetchElementProperties(wrapper, [\"width\", \"padding-left\", \"padding-right\", \"margin-left\", \"margin-right\"]);\n\t\tconst availableWidth = Object.values(domProperties)\n\t\t\t.slice(1)\n\t\t\t.reduce((width, propertyValue) => width - propertyValue, domProperties[\"width\"]);\n\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst tileCount = apps.length + groups.length;\n\n\t\tif (tileCount === 0 || availableWidth <= 0) return;\n\n\t\tconst cardLayoutConfig = {\n\t\t\tcontainerWidth: availableWidth,\n\t\t\ttotalCards: tileCount,\n\t\t\tminWidth: minWidth,\n\t\t\tmaxWidth: maxWidth,\n\t\t\tgap: 8,\n\t\t\tskipDeviceCheck: true\n\t\t};\n\n\t\tconst clampedWidth = calculateCardWidth(cardLayoutConfig);\n\n\t\tpanel.setProperty(\"tileWidth\", clampedWidth);\n\t\tpanel\n\t\t\t._generateAppsWrapper()\n\t\t\t.getLayout()\n\t\t\t.setProperty(\"columnSize\", `${clampedWidth / 16}rem`);\n\t}\n\n\t/**\n\t * Adjusts the layout and visibility based on the device type.\n\t *\n\t * This method adjusts the layout type and visibility of containers based on whether the device is a phone\n\t * or not. It sets the container's layout property, toggles visibility of panels and their containers, and\n\t * adjusts background design accordingly.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\tpublic adjustLayout(): void {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst currentLayout = this.getProperty(\"orientation\") as OrientationType;\n\t\tconst newLayout = isPhone ? OrientationType.Vertical : OrientationType.SideBySide;\n\t\tconst shouldAdjustLayout = currentLayout !== newLayout;\n\t\tconst selectedPanel = this._getSelectedPanel() as BaseAppPanel;\n\t\tthis.setTileWidth(selectedPanel);\n\n\t\t//hide actions if the device is a phone\n\t\tthis.toggleActionButtons(!isPhone);\n\t\tif (!shouldAdjustLayout) {\n\t\t\treturn;\n\t\t}\n\t\tthis.setProperty(\"orientation\", newLayout);\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tpanels.forEach((panel) => {\n\t\t\t//if both the panels are dirty, then updated data will be loaded from onBeforeRendering, as layout change will trigger re-rendering\n\t\t\t//if both the panels are not dirty, i.e. doen't have any changes, then just toggle the visibility\n\t\t\tif (!panel.isDirty() && !panel.isMobileDirty()) {\n\t\t\t\tthis._updatePanelContentVisibility(panel);\n\t\t\t} else if (panel.isDirty() !== panel.isMobileDirty()) {\n\t\t\t\t//if one of the panels is dirty i.e. have updated data and other is not, then re-create the inner controls\n\t\t\t\tpanel.setDesktopViewDirty(false);\n\t\t\t\tpanel.setMobileViewDirty(false);\n\t\t\t\tthis._updatePanelContent(panel);\n\t\t\t}\n\t\t});\n\n\t\t//this is to handle scenario when unsupported propert is changed and then layout is changed.\n\t\tthis._removeUnsupportedPanels();\n\t}\n\n\t/**\n\t * Generates mobile card panel and add given apps/groups in the panel.\n\t *\n\t * @private\n\t * @param {BaseApp[]} items - Apps/Groups for which card panels has to be generated.\n\t * @param {string} currentPanelId - ID of the current panel.\n\t * @returns {sap.m.Panel} The newly created mobile card panel.\n\t */\n\tprivate _generateMobileCards(items: BaseApp[], currentPanelId?: string): Panel[] {\n\t\tconst panels: Panel[] = [];\n\t\tfor (let i = 0; i < items.length; i += 7) {\n\t\t\tconst panelItems = items.slice(i, i + 7);\n\t\t\tconst panel = new Panel(`${currentPanelId}--${i}`, {\n\t\t\t\tbackgroundDesign: BackgroundDesign.Solid,\n\t\t\t\theight: \"23.5rem\",\n\t\t\t\twidth: \"17rem\",\n\t\t\t\tcontent: this._generateTiles(panelItems)\n\t\t\t}).addStyleClass(\"sapUiMobileAppsCard appPanelBorder myAppMFBContent\");\n\t\t\tpanels.push(panel);\n\t\t}\n\t\treturn panels;\n\t}\n\n\t/**\n\t * Generates group/app generic tiles for given apps/groups.\n\t *\n\t * @private\n\t * @param {BaseApp[]} items - Apps/Groups for which tiles has to be generated.\n\t * @returns {sap.m.GenericTile[]} The generated tiles.\n\t */\n\tprivate _generateTiles(items: BaseApp[]): GenericTile[] {\n\t\treturn items.map((item) => (item.isA(\"sap.cux.home.Group\") ? this._getGroupTile(item as Group) : this._getAppTile(item as App)));\n\t}\n\n\t/**\n\t * Adds given items into the wrapper.\n\t * @param {HeaderContainer | GridContainer} wrapper - wrapper for which items has to be added.\n\t * @param {Panel[] | GenericTile[]} items - items to be added.\n\t * @param {string} aggregationName - aggregation name to which items has to be added.\n\t * @private\n\t */\n\tprivate _addWrapperContent(wrapper: HeaderContainer | GridContainer, items: Panel[] | GenericTile[], aggregationName: string) {\n\t\twrapper.destroyAggregation(aggregationName);\n\t\titems.forEach((item) => {\n\t\t\twrapper.addAggregation(aggregationName, item);\n\t\t});\n\t}\n\n\t/**\n\t * Displays an error card in the provided panel.\n\t *\n\t * @param panel - The panel in which the error card should be displayed.\n\t */\n\tprivate showErrorCard(panel: BaseAppPanel): void {\n\t\tconst errorCard = panel._generateErrorMessage();\n\t\tconst appsWrapper = panel._generateDesktopAppsWrapper();\n\t\tconst mobileAppsWrapper = panel._generateMobileAppsWrapper();\n\t\tappsWrapper?.setVisible(false);\n\t\tmobileAppsWrapper?.setVisible(false);\n\t\terrorCard?.setVisible(true);\n\t}\n\n\t/**\n\t * Retrieves the generic placeholder content for the Apps container.\n\t *\n\t * @returns {string} The HTML string representing the Apps container's placeholder content.\n\t */\n\tprotected getGenericPlaceholderContent(): string {\n\t\treturn getAppsPlaceholder();\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -272,8 +272,9 @@ export default class AppsContainer extends BaseContainer {
|
|
|
272
272
|
panel.setLoaded(true);
|
|
273
273
|
this._updatePanelContent(panel);
|
|
274
274
|
|
|
275
|
-
if (panel
|
|
276
|
-
|
|
275
|
+
if (panel instanceof BaseAppPersPanel) {
|
|
276
|
+
// don't wait for personalization to complete
|
|
277
|
+
void panel.applyPersonalization(true);
|
|
277
278
|
}
|
|
278
279
|
let tiles: GenericTile[] = [];
|
|
279
280
|
let apps = panel.getApps();
|
|
@@ -29,6 +29,7 @@ declare module "sap/cux/home/BaseAppPersPanel" {
|
|
|
29
29
|
export default abstract class BaseAppPersPanel extends BaseAppPanel {
|
|
30
30
|
private _pageManagerInstance;
|
|
31
31
|
private _eventBus;
|
|
32
|
+
private firstLoad;
|
|
32
33
|
constructor(idOrSettings?: string | $BaseAppPersPanelSettings);
|
|
33
34
|
constructor(id?: string, settings?: $BaseAppPersPanelSettings);
|
|
34
35
|
static readonly metadata: MetadataOptions;
|
|
@@ -70,10 +71,11 @@ declare module "sap/cux/home/BaseAppPersPanel" {
|
|
|
70
71
|
* Applies personalization settings to the tiles.
|
|
71
72
|
* Retrieves tiles from the generated apps wrapper and applies personalization settings to each tile.
|
|
72
73
|
* Personalization settings include background color and icon customization.
|
|
74
|
+
* @param {boolean} [shouldReload=true] - A flag indicating whether to reload page visualizations.
|
|
73
75
|
* @private
|
|
74
76
|
* @async
|
|
75
77
|
*/
|
|
76
|
-
applyPersonalization(): Promise<void>;
|
|
78
|
+
applyPersonalization(shouldReload?: boolean): Promise<void>;
|
|
77
79
|
/**
|
|
78
80
|
* Applies personalization settings to the provided tiles.
|
|
79
81
|
* @param {Array} tiles - An array of tiles to apply personalization settings to.
|
|
@@ -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;IAC/C;;;OAGG;IAEH,OAAO,WAAW,MAAM,mBAAmB,CAAC;IAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAG3D,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,SAAS,CAAY;
|
|
1
|
+
{"version":3,"file":"BaseAppPersPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/BaseAppPersPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAC;IAC/C;;;OAGG;IAEH,OAAO,WAAW,MAAM,mBAAmB,CAAC;IAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAG3D,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,SAAS,CAAY;QAC7B,OAAO,CAAC,SAAS,CAAQ;oBAEb,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;QAcX;;;;;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;;;;;;;WAOG;QACU,oBAAoB,CAAC,YAAY,GAAE,OAAe;QAQ/D;;;;;;;WAOG;kBACa,0BAA0B,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,UAAQ;QAqBvG;;;;;;;WAOG;QACH,OAAO,CAAC,QAAQ;QAShB;;;;;;;;WAQG;QACH,OAAO,CAAC,uBAAuB;QAgD/B;;;;WAIG;gBACW,YAAY;QAQ1B;;;;WAIG;QACH,SAAS,CAAC,UAAU,IAAI,MAAM;QAI9B;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;QAItB,OAAO,CAAC,uBAAuB;QAK/B,OAAO,CAAC,mBAAmB;KAO3B;CAEA"}
|
|
@@ -48,13 +48,14 @@ sap.ui.define(["sap/ui/core/EventBus", "./BaseAppPanel", "./utils/CommonUtils",
|
|
|
48
48
|
},
|
|
49
49
|
constructor: function _constructor(id, settings) {
|
|
50
50
|
BaseAppPanel.prototype.constructor.call(this, id, settings);
|
|
51
|
+
this.firstLoad = true;
|
|
51
52
|
},
|
|
52
53
|
init: function _init() {
|
|
53
54
|
BaseAppPanel.prototype.init.call(this);
|
|
54
55
|
this._eventBus = EventBus.getInstance();
|
|
55
56
|
//apply personalization on page update
|
|
56
57
|
this._eventBus.subscribe("pageChannel", "pageUpdated", () => {
|
|
57
|
-
void this.applyPersonalization();
|
|
58
|
+
void this.applyPersonalization(!this.firstLoad);
|
|
58
59
|
}, this);
|
|
59
60
|
},
|
|
60
61
|
/**
|
|
@@ -149,14 +150,20 @@ sap.ui.define(["sap/ui/core/EventBus", "./BaseAppPanel", "./utils/CommonUtils",
|
|
|
149
150
|
* Applies personalization settings to the tiles.
|
|
150
151
|
* Retrieves tiles from the generated apps wrapper and applies personalization settings to each tile.
|
|
151
152
|
* Personalization settings include background color and icon customization.
|
|
153
|
+
* @param {boolean} [shouldReload=true] - A flag indicating whether to reload page visualizations.
|
|
152
154
|
* @private
|
|
153
155
|
* @async
|
|
154
156
|
*/
|
|
155
157
|
applyPersonalization: function _applyPersonalization() {
|
|
158
|
+
let shouldReload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
156
159
|
try {
|
|
157
160
|
const _this6 = this;
|
|
158
161
|
let tiles = _this6.fetchTileVisualization();
|
|
159
|
-
return Promise.resolve(_this6._applyTilesPersonalization(tiles))
|
|
162
|
+
return Promise.resolve(_this6._applyTilesPersonalization(tiles, undefined, shouldReload)).then(function () {
|
|
163
|
+
if (_this6.firstLoad) {
|
|
164
|
+
_this6.firstLoad = false;
|
|
165
|
+
}
|
|
166
|
+
});
|
|
160
167
|
} catch (e) {
|
|
161
168
|
return Promise.reject(e);
|
|
162
169
|
}
|
|
@@ -170,7 +177,7 @@ sap.ui.define(["sap/ui/core/EventBus", "./BaseAppPanel", "./utils/CommonUtils",
|
|
|
170
177
|
* @private
|
|
171
178
|
*/
|
|
172
179
|
_applyTilesPersonalization: function _applyTilesPersonalization(tiles, groupId) {
|
|
173
|
-
let shouldReload = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] :
|
|
180
|
+
let shouldReload = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
174
181
|
try {
|
|
175
182
|
const _this7 = this;
|
|
176
183
|
return Promise.resolve(Promise.all([_this7._getAppPersonalization(), _this7._getFavPages()])).then(function (_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAppPersPanel.js","names":["sap","ui","define","EventBus","__BaseAppPanel","___utils_CommonUtils","___utils_Constants","___utils_DataFormatUtils","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","BaseAppPanel","getPageManagerInstance","DEFAULT_APP_ICON","DEFAULT_BG_COLOR","FALLBACK_ICON","MYHOME_PAGE_ID","getLeanURL","PersonalisationUtils","UshellPersonalizer","BaseAppPersPanel","extend","metadata","library","properties","persContainerId","type","group","defaultValue","visibility","constructor","_constructor","id","settings","BaseAppPanel.prototype.constructor.call","init","_init","BaseAppPanel.prototype.init.call","_eventBus","getInstance","subscribe","applyPersonalization","_getPersonalizer","_this","_getPersContainerId","Error","Promise","resolve","getOwnerComponent","e","reject","getPersonalization","_getPersonalization","_this2","then","personalizer","read","persData","setPersonalization","_setPersonalization","_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","appManagerInstance","_getAllFavPageApps","favPageVisualizations","groups","getAggregation","apps","_getGroup","getApps","tile","item","_getItem","color","icon","_getItemPersonalization","setProperty","setBackgroundColor","setTileIcon","tileGroupId","data","find","oGroup","getGroupId","oApp","getUrl","isA","isSection","sectionId","BGColor","app","appIds","oldAppId","push","vizId","getVizId","appId","includes","oPersonalization","isRecentlyAddedApp","favPageVisualization","oVisualization","colorInfo","key","_getFavAppIcon","getAppIcon","_this8","_getPageManagerInstance","getFavoritePages","aFavPages","concat","pageId","_getAppIcon","favPageIcon","getIcon","_pageManagerInstance","getProperty","getPersContainerId"],"sources":["BaseAppPersPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\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 App from \"./App\";\nimport BaseAppPanel from \"./BaseAppPanel\";\nimport { $BaseAppPersPanelSettings } from \"./BaseAppPersPanel\";\nimport Group from \"./Group\";\nimport { IAppPersonalization, ICustomVisualization, IItemPersonalization } from \"./interface/AppsInterface\";\nimport { getPageManagerInstance } from \"./utils/CommonUtils\";\nimport { DEFAULT_APP_ICON, DEFAULT_BG_COLOR, FALLBACK_ICON, MYHOME_PAGE_ID } from \"./utils/Constants\";\nimport { getLeanURL } 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 _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._eventBus = EventBus.getInstance();\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._getPersContainerId();\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 = this.fetchTileVisualization();\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.appManagerInstance._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) => 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((oPersonalization) =>\n\t\t\t\t\t\tthis?.isA(\"sap.cux.home.FavAppPanel\")\n\t\t\t\t\t\t\t? oPersonalization.isRecentlyAddedApp && oPersonalization.appId && appIds.includes(oPersonalization.appId)\n\t\t\t\t\t\t\t: 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\tconst colorInfo = personalization?.BGColor || favPageVisualization?.BGColor || DEFAULT_BG_COLOR().key;\n\t\t\tcolor = typeof colorInfo === \"object\" ? colorInfo.key : colorInfo;\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._getPageManagerInstance().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 * 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\tprivate _getPageManagerInstance() {\n\t\tthis._pageManagerInstance = this._pageManagerInstance || getPageManagerInstance(this);\n\t\treturn this._pageManagerInstance;\n\t}\n\n\tprivate _getPersContainerId(): string {\n\t\tlet persContainerId = this.getProperty(\"persContainerId\") as string;\n\t\tif (!persContainerId) {\n\t\t\tpersContainerId = PersonalisationUtils.getPersContainerId(this);\n\t\t}\n\t\treturn persContainerId;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BaseAppPersPanel.js","names":["sap","ui","define","EventBus","__BaseAppPanel","___utils_CommonUtils","___utils_Constants","___utils_DataFormatUtils","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","BaseAppPanel","getPageManagerInstance","DEFAULT_APP_ICON","DEFAULT_BG_COLOR","FALLBACK_ICON","MYHOME_PAGE_ID","getLeanURL","PersonalisationUtils","UshellPersonalizer","BaseAppPersPanel","extend","metadata","library","properties","persContainerId","type","group","defaultValue","visibility","constructor","_constructor","id","settings","BaseAppPanel.prototype.constructor.call","firstLoad","init","_init","BaseAppPanel.prototype.init.call","_eventBus","getInstance","subscribe","applyPersonalization","_getPersonalizer","_this","_getPersContainerId","Error","Promise","resolve","getOwnerComponent","e","reject","getPersonalization","_getPersonalization","_this2","then","personalizer","read","persData","setPersonalization","_setPersonalization","_this3","write","_getAppPersonalization","_this4","personalization","favoriteApps","setFavAppsPersonalization","_setFavAppsPersonalization","appsPersonalization","_this5","_temp","_applyPersonalization","shouldReload","arguments","length","undefined","_this6","tiles","fetchTileVisualization","_applyTilesPersonalization","groupId","_this7","all","_getFavPages","_ref","personalizations","favPages","appManagerInstance","_getAllFavPageApps","favPageVisualizations","groups","getAggregation","apps","_getGroup","getApps","tile","item","_getItem","color","icon","_getItemPersonalization","setProperty","setBackgroundColor","setTileIcon","tileGroupId","data","find","oGroup","getGroupId","oApp","getUrl","isA","isSection","sectionId","BGColor","app","appIds","oldAppId","push","vizId","getVizId","appId","includes","oPersonalization","isRecentlyAddedApp","favPageVisualization","oVisualization","colorInfo","key","_getFavAppIcon","getAppIcon","_this8","_getPageManagerInstance","getFavoritePages","aFavPages","concat","pageId","_getAppIcon","favPageIcon","getIcon","_pageManagerInstance","getProperty","getPersContainerId"],"sources":["BaseAppPersPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\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 App from \"./App\";\nimport BaseAppPanel from \"./BaseAppPanel\";\nimport { $BaseAppPersPanelSettings } from \"./BaseAppPersPanel\";\nimport Group from \"./Group\";\nimport { IAppPersonalization, ICustomVisualization, IItemPersonalization } from \"./interface/AppsInterface\";\nimport { getPageManagerInstance } from \"./utils/CommonUtils\";\nimport { DEFAULT_APP_ICON, DEFAULT_BG_COLOR, FALLBACK_ICON, MYHOME_PAGE_ID } from \"./utils/Constants\";\nimport { getLeanURL } 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 _eventBus!: EventBus;\n\tprivate firstLoad = true;\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._eventBus = EventBus.getInstance();\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(!this.firstLoad);\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._getPersContainerId();\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 * @param {boolean} [shouldReload=true] - A flag indicating whether to reload page visualizations.\n\t * @private\n\t * @async\n\t */\n\tpublic async applyPersonalization(shouldReload: boolean = false) {\n\t\tlet tiles = this.fetchTileVisualization();\n\t\tawait this._applyTilesPersonalization(tiles, undefined, shouldReload);\n\t\tif (this.firstLoad) {\n\t\t\tthis.firstLoad = false;\n\t\t}\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 = false) {\n\t\tconst [personalizations, favPages] = await Promise.all([this._getAppPersonalization(), this._getFavPages()]);\n\t\tconst favPageVisualizations = await this.appManagerInstance._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) => 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((oPersonalization) =>\n\t\t\t\t\t\tthis?.isA(\"sap.cux.home.FavAppPanel\")\n\t\t\t\t\t\t\t? oPersonalization.isRecentlyAddedApp && oPersonalization.appId && appIds.includes(oPersonalization.appId)\n\t\t\t\t\t\t\t: 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\tconst colorInfo = personalization?.BGColor || favPageVisualization?.BGColor || DEFAULT_BG_COLOR().key;\n\t\t\tcolor = typeof colorInfo === \"object\" ? colorInfo.key : colorInfo;\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._getPageManagerInstance().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 * 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\tprivate _getPageManagerInstance() {\n\t\tthis._pageManagerInstance = this._pageManagerInstance || getPageManagerInstance(this);\n\t\treturn this._pageManagerInstance;\n\t}\n\n\tprivate _getPersContainerId(): string {\n\t\tlet persContainerId = this.getProperty(\"persContainerId\") as string;\n\t\tif (!persContainerId) {\n\t\t\tpersContainerId = PersonalisationUtils.getPersContainerId(this);\n\t\t}\n\t\treturn persContainerId;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|