@sapui5/sap.cux.home 1.140.0 → 1.142.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/cux/home/.library +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js +3 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +3 -1
- package/src/sap/cux/home/App.d.ts.map +1 -1
- package/src/sap/cux/home/App.js +6 -1
- package/src/sap/cux/home/App.js.map +1 -1
- package/src/sap/cux/home/App.ts +7 -1
- package/src/sap/cux/home/AppsAdditionPanel.d.ts +1 -0
- package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.js +64 -59
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.ts +44 -34
- package/src/sap/cux/home/AppsContainer.d.ts +5 -1
- package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/AppsContainer.js +44 -37
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +43 -33
- package/src/sap/cux/home/BaseAppPanel.d.ts +2 -1
- package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.js +3 -1
- package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.ts +5 -2
- package/src/sap/cux/home/BaseContainer.d.ts +8 -0
- package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainer.js +26 -4
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +26 -3
- package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.ts +1 -1
- package/src/sap/cux/home/BaseNewsPanel.js +1 -1
- package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseNewsPanel.ts +2 -2
- package/src/sap/cux/home/BasePanel.d.ts +7 -0
- package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
- package/src/sap/cux/home/BasePanel.js +20 -0
- package/src/sap/cux/home/BasePanel.js.map +1 -1
- package/src/sap/cux/home/BasePanel.ts +16 -0
- package/src/sap/cux/home/BaseSettingsPanel.d.ts +9 -0
- package/src/sap/cux/home/BaseSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.js +13 -0
- package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.ts +15 -0
- package/src/sap/cux/home/CardsPanel.d.ts +7 -0
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.js +132 -113
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +19 -8
- package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.js +6 -2
- package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.ts +5 -1
- package/src/sap/cux/home/ErrorPanel.js +2 -2
- package/src/sap/cux/home/ErrorPanel.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.ts +2 -2
- package/src/sap/cux/home/FavAppPanel.d.ts +4 -10
- package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FavAppPanel.js +432 -446
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +56 -84
- package/src/sap/cux/home/FrequentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.js +5 -1
- package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.ts +4 -0
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.js +3 -1
- package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.ts +2 -0
- package/src/sap/cux/home/InsightsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsContainer.js +2 -2
- package/src/sap/cux/home/InsightsContainer.js.map +1 -1
- package/src/sap/cux/home/InsightsContainer.ts +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts +0 -4
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.js +2 -2
- package/src/sap/cux/home/NewsAndPagesContainer.js.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.ts +4 -4
- package/src/sap/cux/home/NewsPanel.d.ts +17 -0
- package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsPanel.js +100 -68
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +60 -33
- package/src/sap/cux/home/NewsSettingsPanel.d.ts +42 -6
- package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.js +219 -81
- package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.ts +215 -80
- package/src/sap/cux/home/Page.d.ts.map +1 -1
- package/src/sap/cux/home/Page.js +4 -1
- package/src/sap/cux/home/Page.js.map +1 -1
- package/src/sap/cux/home/Page.ts +2 -0
- package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
- package/src/sap/cux/home/PagePanel.js +5 -2
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +8 -8
- package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.js +6 -3
- package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.ts +2 -2
- package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.js +6 -0
- package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.ts +5 -1
- package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.js +7 -0
- package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.ts +6 -1
- package/src/sap/cux/home/SettingsDialog.d.ts +1 -0
- package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/SettingsDialog.js +13 -6
- package/src/sap/cux/home/SettingsDialog.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.ts +14 -6
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +10 -0
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js +12 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.ts +13 -1
- package/src/sap/cux/home/SituationPanel.d.ts.map +1 -1
- package/src/sap/cux/home/SituationPanel.js +7 -2
- package/src/sap/cux/home/SituationPanel.js.map +1 -1
- package/src/sap/cux/home/SituationPanel.ts +2 -0
- package/src/sap/cux/home/SpaceInsightsPanel.js +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.ts +1 -1
- package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TaskPanel.js +3 -0
- package/src/sap/cux/home/TaskPanel.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.ts +2 -1
- package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TilesPanel.js +10 -3
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +7 -3
- package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ToDoPanel.js +29 -8
- package/src/sap/cux/home/ToDoPanel.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.ts +19 -8
- package/src/sap/cux/home/ToDosContainer.js +3 -3
- package/src/sap/cux/home/ToDosContainer.js.map +1 -1
- package/src/sap/cux/home/ToDosContainer.ts +1 -1
- package/src/sap/cux/home/i18n/messagebundle.properties +13 -7
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_da.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_de.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_el.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_en.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +1 -3
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +1 -3
- package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_es.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_et.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_id.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_it.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_no.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +1 -3
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +1 -3
- package/src/sap/cux/home/i18n/messagebundle_th.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +0 -2
- package/src/sap/cux/home/interface/AppsInterface.d.ts +5 -0
- package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.ts +6 -0
- package/src/sap/cux/home/library.d.ts.map +1 -1
- package/src/sap/cux/home/library.js +1 -0
- package/src/sap/cux/home/library.js.map +1 -1
- package/src/sap/cux/home/library.ts +1 -0
- package/src/sap/cux/home/themes/base/AppsContainer.less +12 -1
- package/src/sap/cux/home/themes/base/BaseLayout.less +11 -0
- package/src/sap/cux/home/themes/base/InsightsContainer.less +4 -0
- package/src/sap/cux/home/themes/base/ToDosContainer.less +4 -0
- package/src/sap/cux/home/utils/AppManager.d.ts +7 -6
- package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/AppManager.js +1 -1
- package/src/sap/cux/home/utils/AppManager.js.map +1 -1
- package/src/sap/cux/home/utils/AppManager.ts +9 -10
- package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.js +1 -1
- package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.ts +4 -1
- package/src/sap/cux/home/utils/FESRUtil.d.ts +30 -0
- package/src/sap/cux/home/utils/FESRUtil.d.ts.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.js +36 -1
- package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.ts +36 -0
- package/src/sap/cux/home/utils/PXFeedback.d.ts +4 -0
- package/src/sap/cux/home/utils/PXFeedback.d.ts.map +1 -0
- package/src/sap/cux/home/utils/PXFeedback.js +28 -0
- package/src/sap/cux/home/utils/PXFeedback.js.map +1 -0
- package/src/sap/cux/home/utils/PXFeedback.ts +19 -0
- package/src/sap/cux/home/utils/PageManager.d.ts +0 -4
- package/src/sap/cux/home/utils/PageManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/PageManager.js +6 -6
- package/src/sap/cux/home/utils/PageManager.js.map +1 -1
- package/src/sap/cux/home/utils/PageManager.ts +6 -5
- package/src/sap/cux/home/utils/UshellPersonalizer.js +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.ts +1 -1
- package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +1 -1
|
@@ -194,6 +194,8 @@ sap.ui.define(["sap/base/Log", "sap/f/Card", "sap/f/GridContainer", "sap/f/GridC
|
|
|
194
194
|
const DeviceType = ___utils_Device["DeviceType"];
|
|
195
195
|
const fetchElementProperties = ___utils_Device["fetchElementProperties"];
|
|
196
196
|
const addFESRId = ___utils_FESRUtil["addFESRId"];
|
|
197
|
+
const addFESRNavigationSource = ___utils_FESRUtil["addFESRNavigationSource"];
|
|
198
|
+
const FESRNavigationSource = ___utils_FESRUtil["FESRNavigationSource"];
|
|
197
199
|
const HttpHelper = _interopRequireDefault(__HttpHelper);
|
|
198
200
|
const Constants = {
|
|
199
201
|
SITUATION_ICON: "sap-icon://message-warning",
|
|
@@ -304,6 +306,17 @@ sap.ui.define(["sap/base/Log", "sap/f/Card", "sap/f/GridContainer", "sap/f/GridC
|
|
|
304
306
|
group: "Misc",
|
|
305
307
|
defaultValue: true,
|
|
306
308
|
visibility: "hidden"
|
|
309
|
+
},
|
|
310
|
+
/**
|
|
311
|
+
* Specifies whether the panel data should be preloaded.
|
|
312
|
+
*
|
|
313
|
+
* @private
|
|
314
|
+
*/
|
|
315
|
+
preload: {
|
|
316
|
+
type: "boolean",
|
|
317
|
+
group: "Data",
|
|
318
|
+
defaultValue: false,
|
|
319
|
+
visibility: "hidden"
|
|
307
320
|
}
|
|
308
321
|
},
|
|
309
322
|
aggregations: {
|
|
@@ -436,7 +449,7 @@ sap.ui.define(["sap/base/Log", "sap/f/Card", "sap/f/GridContainer", "sap/f/GridC
|
|
|
436
449
|
// Create a HeaderContainer for mobile devices
|
|
437
450
|
if (!this._mobileCardContainer) {
|
|
438
451
|
this._mobileCardContainer = new HeaderContainer(`${this.getId()}-headerContainer`, {
|
|
439
|
-
visible: "{/isPhone}",
|
|
452
|
+
visible: "{= ${/isPhone} && !${/hasError} && (!${/isLoaded} || ${/length} > 0) }",
|
|
440
453
|
scrollStep: 0,
|
|
441
454
|
gridLayout: true,
|
|
442
455
|
scrollTime: 1000,
|
|
@@ -506,14 +519,14 @@ sap.ui.define(["sap/base/Log", "sap/f/Card", "sap/f/GridContainer", "sap/f/GridC
|
|
|
506
519
|
// Add Initial Batch Requests
|
|
507
520
|
requests.push(_this2._generateRequestObject({
|
|
508
521
|
type: selectedKey,
|
|
509
|
-
onlyCount: selectedKey !== _this2.getProperty("key")
|
|
522
|
+
onlyCount: !_this2.getProperty("preload") && selectedKey !== _this2.getProperty("key")
|
|
510
523
|
}));
|
|
511
524
|
_this2.requests = _this2.requests.concat(requests);
|
|
512
525
|
|
|
513
526
|
//Submit Batch Requests
|
|
514
527
|
_this2._submitBatch().then(function () {
|
|
515
528
|
try {
|
|
516
|
-
_this2._oData.isLoaded = selectedKey === _this2.getProperty("key");
|
|
529
|
+
_this2._oData.isLoaded = _this2.getProperty("preload") || selectedKey === _this2.getProperty("key");
|
|
517
530
|
_this2.fireEvent("loaded");
|
|
518
531
|
_this2._oData.isCountCalledOnce = true;
|
|
519
532
|
_this2._setCount(_this2._oData.length);
|
|
@@ -559,7 +572,9 @@ sap.ui.define(["sap/base/Log", "sap/f/Card", "sap/f/GridContainer", "sap/f/GridC
|
|
|
559
572
|
*/
|
|
560
573
|
_updateHeaderIfExclusive: function _updateHeaderIfExclusive() {
|
|
561
574
|
if (this._isExclusivePanel()) {
|
|
562
|
-
this.getParent().
|
|
575
|
+
const title = this.getParent().getTitle();
|
|
576
|
+
const displayTitle = title?.trim() || this._i18nBundle.getText("toDosTitle");
|
|
577
|
+
this.getParent()._setTitle(`${displayTitle} (${String(this._oData.length)})`);
|
|
563
578
|
}
|
|
564
579
|
},
|
|
565
580
|
/**
|
|
@@ -812,7 +827,7 @@ sap.ui.define(["sap/base/Log", "sap/f/Card", "sap/f/GridContainer", "sap/f/GridC
|
|
|
812
827
|
}
|
|
813
828
|
let dataUrl = this.getDataUrl();
|
|
814
829
|
if (this.getProperty("useBatch")) {
|
|
815
|
-
const queryString = `$skip=0&$top=${cardCount}`;
|
|
830
|
+
const queryString = this.getProperty("preload") ? "" : `$skip=0&$top=${cardCount}`;
|
|
816
831
|
dataUrl = dataUrl.includes("?") ? `${dataUrl}&${queryString}` : `${dataUrl}?${queryString}`;
|
|
817
832
|
}
|
|
818
833
|
urls.push(dataUrl);
|
|
@@ -1168,6 +1183,7 @@ sap.ui.define(["sap/base/Log", "sap/f/Card", "sap/f/GridContainer", "sap/f/GridC
|
|
|
1168
1183
|
*/
|
|
1169
1184
|
_onPressViewAll: function _onPressViewAll() {
|
|
1170
1185
|
URLHelper.redirect(this.getTargetAppUrl(), false);
|
|
1186
|
+
addFESRNavigationSource(FESRNavigationSource.Task);
|
|
1171
1187
|
},
|
|
1172
1188
|
/**
|
|
1173
1189
|
* Retrieves the count of cards in the panel.
|
|
@@ -1187,13 +1203,18 @@ sap.ui.define(["sap/base/Log", "sap/f/Card", "sap/f/GridContainer", "sap/f/GridC
|
|
|
1187
1203
|
_beforePanelExpand: function _beforePanelExpand() {
|
|
1188
1204
|
try {
|
|
1189
1205
|
const _this7 = this;
|
|
1190
|
-
const
|
|
1206
|
+
const _temp7 = function () {
|
|
1191
1207
|
if (!_this7._oData.isExpandedOnce) {
|
|
1192
1208
|
_this7._oData.isExpandedOnce = true;
|
|
1193
|
-
|
|
1209
|
+
const _temp6 = function () {
|
|
1210
|
+
if (!_this7.getProperty("preload")) {
|
|
1211
|
+
return Promise.resolve(_this7._loadCards(true)).then(function () {});
|
|
1212
|
+
}
|
|
1213
|
+
}();
|
|
1214
|
+
if (_temp6 && _temp6.then) return _temp6.then(function () {});
|
|
1194
1215
|
}
|
|
1195
1216
|
}();
|
|
1196
|
-
return Promise.resolve(
|
|
1217
|
+
return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function () {}) : void 0);
|
|
1197
1218
|
} catch (e) {
|
|
1198
1219
|
return Promise.reject(e);
|
|
1199
1220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToDoPanel.js","names":["sap","ui","define","Log","Card","GridContainer","GridContainerSettings","Button","GenericTile","HeaderContainer","IllustratedMessage","IllustratedMessageSize","Text","TileContent","VBox","sap_m_library","Device","UI5Element","InvisibleText","DateFormat","JSONModel","__BasePanel","__MenuItem","__ToDosContainer","__BatchHelper","___utils_Device","___utils_FESRUtil","__HttpHelper","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","Priority","_finallyRethrows","finalizer","bind","URLHelper","_iteratorSymbol","Symbol","iterator","_settle","pact","state","value","s","_Pact","v","o","observer","prototype","onFulfilled","onRejected","callback","_this","_isSettledPact","thenable","_forTo","array","check","i","reject","_cycle","length","BasePanel","_forOf","target","step","next","done","return","_fixup","TypeError","values","push","MenuItem","ToDosContainer","BatchHelper","calculateCardWidth","DeviceType","fetchElementProperties","addFESRId","HttpHelper","Constants","SITUATION_ICON","PLACEHOLDER_ITEMS_COUNT","TODO_CARDS_LIMIT","TODO_SECTION_LIMIT","TODOS_REFRESH_INTERVAL","MOBILE_DEVICE_MAX_WIDTH","DEFAULT_TITLE_HEIGHT","DEFAULT_CARD_HEIGHT","DEFAULT_TAB_HEADER_HEIGHT","GAP","ToDoPanel","extend","metadata","library","properties","baseUrl","type","group","defaultValue","visibility","countUrl","dataUrl","targetAppUrl","minCardWidth","maxCardWidth","useBatch","aggregations","content","multiple","singularName","constructor","_constructor","id","settings","BasePanel.prototype.constructor.call","batchHelper","init","_init","BasePanel.prototype.init.call","_oData","isLoaded","hasError","cardWidth","getSupported","isExpandedOnce","isCountCalledOnce","illustrationType","refreshInfo","_toRelativeDateTime","Date","fullRefreshInfo","_toFullRelativeDateTime","horizontalCardCount","illustrationTitle","_i18nBundle","getText","illustrationDescription","isPhone","resize","width","system","phone","tiles","Array","fill","loadState","displayTiles","_controlModel","requests","_toDoWrapper","getId","renderType","items","_generateCardContainer","_generateMobileCardContainer","_generateErrorMessage","setModel","addContent","menuItem","title","icon","press","_onPressRefresh","addAggregation","_accRefreshLabel","text","addDependent","_refreshBtn","addAriaLabelledBy","setProperty","attachEvent","Promise","resolve","_beforePanelExpand","_cardContainer","inlineBlockLayout","snapToRow","visible","layout","columns","columnSize","gap","addStyleClass","_mobileCardContainer","scrollStep","gridLayout","scrollTime","showDividers","_errorCard","_errorMessage","illustrationSize","Base","description","getParent","_getSelectedPanel","_loadCards","forceRefresh","_this2","_loadToDos","undefined","_bindInnerControls","selectedKey","getProperty","_isElementExpanded","_setCount","_getSupported","setTimeout","_generatePlaceHolderTiles","_generateRequestObject","onlyCount","concat","_submitBatch","fireEvent","_setSectionRefreshInterval","lastRefreshedTime","_updateRefreshInformation","_switchTabIfRequired","_updateHeaderIfExclusive","catch","error","Error","message","finally","refresh","_adjustLayout","_handleError","getTargetAppUrl","removeContent","_isExclusivePanel","_setTitle","String","_innerControlsBound","bindAggregation","path","factory","context","generateCardTemplate","bindProperty","_generateCardTemplate","mode","frameType","pressEnabled","header","tileContent","priority","priorityText","_toPriorityText","footer","key","VeryHigh","High","Medium","Low","_cardCount","_getVisibleCardCount","isPlaceholder","calculationProperties","_getLayout","isElementExpanded","targetDomRef","getDomRef","isHeaderVisible","containerDomRef","_getFullScreenContainer","sectionNodeIndex","childNodes","isMobileDevice","cardCount","getHorizontalCardCount","getVerticalCardCount","toDosContainer","_getCurrentExpandedElementName","_getHorizontalCardCount","domRef","domProperties","availableWidth","Object","slice","reduce","propertyValue","actualCardCount","minWidth","maxWidth","cardLayoutConfig","containerWidth","totalCards","Math","max","floor","_getVerticalCardCount","sectionDomProperties","parentDomProperties","parentElement","titleHeight","calculateTitleHeight","availableHeight","height","margin","cardHeight","verticalCardCount","_calculateTitleHeight","container","containerHeaderRef","getElementById","iconTabBarHeaderRef","_getInnerControl","defaultHeight","clientHeight","options","_this3","getCountUrl","urls","generateRequestUrls","splice","baseURL","getBaseUrl","requestURLs","success","args","onDataReceived","Number","_handleEmptyCards","_generateRequestUrls","getDataUrl","queryString","includes","_onDataReceived","results","_this4","getNoDataText","allPanels","getContent","supportedPanels","filter","panel","clearInterval","refreshFn","setInterval","setAggregation","_updateContainerHeader","displayCards","getDeviceType","Mobile","toggleFullScreenElements","date","inputDate","isNaN","relativeDateFormatter","format","fullRelativeDateFormatter","_getNoDataText","_parseResponse","response","d","numericD","numericResponse","_this5","all","map","request","createMultipartRequest","GetMultipleRequests","responses","processedResponses","JSON","parse","_temp","_wasThrown","_result","_clearRequests","_isLoaded","parentContainer","isContainerExpanded","_setLoaded","_setSupported","isSupported","_getAppIntent","pattern","match","semanticObject","action","params","paramsArray","split","param","_this6","_interrupt","_temp5","_temp3","nextAvailablePanel","panels","getAggregation","_temp4","_temp2","_getCardCount","_onPressViewAll","redirect","_this7","_temp6","exit","_exit","getDateTimeInstance","style","relative","relativeStyle"],"sources":["ToDoPanel.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 Card from \"sap/f/Card\";\nimport GridContainer from \"sap/f/GridContainer\";\nimport GridContainerSettings from \"sap/f/GridContainerSettings\";\nimport Button from \"sap/m/Button\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport HeaderContainer from \"sap/m/HeaderContainer\";\nimport IllustratedMessage from \"sap/m/IllustratedMessage\";\nimport IllustratedMessageSize from \"sap/m/IllustratedMessageSize\";\nimport Text from \"sap/m/Text\";\nimport TileContent from \"sap/m/TileContent\";\nimport VBox from \"sap/m/VBox\";\nimport { LoadState, Priority, URLHelper } from \"sap/m/library\";\nimport Device from \"sap/ui/Device\";\nimport ManagedObject from \"sap/ui/base/ManagedObject\";\nimport Control from \"sap/ui/core/Control\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport UI5Element from \"sap/ui/core/Element\";\nimport InvisibleText from \"sap/ui/core/InvisibleText\";\nimport DateFormat from \"sap/ui/core/format/DateFormat\";\nimport Context from \"sap/ui/model/Context\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport BaseContainer from \"./BaseContainer\";\nimport BasePanel from \"./BasePanel\";\nimport IToDoPanel from \"./IToDoPanel\";\nimport MenuItem from \"./MenuItem\";\nimport { $ToDoPanelSettings } from \"./ToDoPanel\";\nimport ToDosContainer from \"./ToDosContainer\";\nimport BatchHelper from \"./utils/BatchHelper\";\nimport { calculateCardWidth, DeviceType, fetchElementProperties } from \"./utils/Device\";\nimport { addFESRId } from \"./utils/FESRUtil\";\nimport HttpHelper from \"./utils/HttpHelper\";\n\ninterface Request {\n\tbaseURL: string;\n\trequestURLs: string[];\n\tsuccess(args: unknown[]): Promise<void>;\n}\n\nexport interface CalculationProperties {\n\tisPlaceholder?: boolean;\n}\n\nexport interface Intent {\n\ttarget: {\n\t\tsemanticObject: string;\n\t\taction: string;\n\t};\n\tparams: {\n\t\t[key: string]: string;\n\t};\n}\n\nexport interface RequestOptions {\n\ttype: string;\n\tonlyCount?: boolean;\n}\n\nexport interface Response {\n\td?: {\n\t\tresults?: unknown[];\n\t};\n\tresults?: unknown[];\n\tvalue?: unknown[];\n}\n\nconst Constants = {\n\tSITUATION_ICON: \"sap-icon://message-warning\",\n\tPLACEHOLDER_ITEMS_COUNT: 5,\n\tTODO_CARDS_LIMIT: 100,\n\tTODO_SECTION_LIMIT: 6,\n\tTODOS_REFRESH_INTERVAL: 65000,\n\tMOBILE_DEVICE_MAX_WIDTH: 600,\n\tDEFAULT_TITLE_HEIGHT: 33,\n\tDEFAULT_CARD_HEIGHT: 168,\n\tDEFAULT_TAB_HEADER_HEIGHT: 44,\n\tGAP: 16\n};\n\n/**\n *\n * Abstract Panel class for managing and storing To-Do cards.\n *\n * @extends BasePanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.ToDoPanel\n */\nexport default abstract class ToDoPanel extends BasePanel implements IToDoPanel {\n\tprotected _oData!: Record<string, unknown>;\n\tprotected requests!: Request[];\n\tprivate _controlModel!: JSONModel;\n\tprivate _toDoWrapper!: VBox;\n\tprivate _cardContainer!: GridContainer;\n\tprivate _mobileCardContainer!: HeaderContainer;\n\tprivate _errorCard!: Card;\n\tprivate _errorMessage!: IllustratedMessage;\n\tprivate _refreshBtn!: Button;\n\tprivate _loadToDos!: Promise<void> | undefined;\n\tprivate _innerControlsBound!: boolean;\n\tprivate _cardCount!: number;\n\tprivate batchHelper!: BatchHelper;\n\tprivate _accRefreshLabel!: InvisibleText;\n\n\tconstructor(id?: string | $ToDoPanelSettings);\n\tconstructor(id?: string, settings?: $ToDoPanelSettings);\n\t/**\n\t * Constructor for a new To-Dos Panel.\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?: $ToDoPanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.batchHelper = new BatchHelper();\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Specifies the base URL for batching requests sent from the panel.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\tbaseUrl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Specifies the URL for fetching the count of requested to-do cards.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\tcountUrl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Specifies the URL from where the to-do cards should be fetched.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\tdataUrl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Specifies the URL of the target application associated with the to-do cards.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\ttargetAppUrl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Specifies the minimum width of the card in pixels.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tminCardWidth: { type: \"int\", group: \"Misc\", defaultValue: 304, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Specifies the maximum width of the card in pixels.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tmaxCardWidth: { type: \"int\", group: \"Misc\", defaultValue: 583, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Specifies whether the panel should batch requests.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tuseBatch: { type: \"boolean\", group: \"Misc\", defaultValue: true, visibility: \"hidden\" }\n\t\t},\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Specifies the content aggregation of the panel.\n\t\t\t */\n\t\t\tcontent: { multiple: true, singularName: \"content\", visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tstatic fullRelativeDateFormatter = DateFormat.getDateTimeInstance({\n\t\tstyle: \"long\",\n\t\trelative: true,\n\t\trelativeStyle: \"wide\"\n\t});\n\n\tstatic relativeDateFormatter = DateFormat.getDateTimeInstance({\n\t\tstyle: \"medium\",\n\t\trelative: true,\n\t\trelativeStyle: \"short\"\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\n\t\t//Initialise ToDos Model\n\t\tthis._oData = {\n\t\t\tlength: 0,\n\t\t\tisLoaded: false,\n\t\t\thasError: false,\n\t\t\tcardWidth: \"20rem\",\n\t\t\tgetSupported: false,\n\t\t\tisExpandedOnce: false,\n\t\t\tisCountCalledOnce: false,\n\t\t\tillustrationType: \"sapIllus-NoTasks\",\n\t\t\trefreshInfo: this._toRelativeDateTime(new Date()),\n\t\t\tfullRefreshInfo: this._toFullRelativeDateTime(new Date()),\n\t\t\thorizontalCardCount: Constants.PLACEHOLDER_ITEMS_COUNT,\n\t\t\tillustrationTitle: this._i18nBundle.getText(\"noToDoTitle\"),\n\t\t\tillustrationDescription: this._i18nBundle.getText(\"noToDoDesc\"),\n\t\t\tisPhone: Device.resize.width < Constants.MOBILE_DEVICE_MAX_WIDTH || Device.system.phone,\n\t\t\ttiles: new Array(Constants.PLACEHOLDER_ITEMS_COUNT).fill({ loadState: \"Loading\" }),\n\t\t\tdisplayTiles: new Array(Constants.PLACEHOLDER_ITEMS_COUNT).fill({ loadState: \"Loading\" })\n\t\t};\n\t\tthis._controlModel = new JSONModel(this._oData);\n\n\t\t//Initialize Request Queue\n\t\tthis.requests = [];\n\n\t\t//Add Wrapper Container to Panel\n\t\tthis._toDoWrapper = new VBox(`${this.getId()}-toDosWrapper`, {\n\t\t\trenderType: \"Bare\",\n\t\t\titems: [this._generateCardContainer(), this._generateMobileCardContainer(), this._generateErrorMessage()]\n\t\t});\n\t\tthis._toDoWrapper.setModel(this._controlModel);\n\t\tthis.addContent(this._toDoWrapper);\n\n\t\t//Setup Common Menu Items\n\t\tconst menuItem = new MenuItem(`${this.getId()}-refresh`, {\n\t\t\ttitle: this._i18nBundle.getText(\"refresh\"),\n\t\t\ticon: \"sap-icon://refresh\",\n\t\t\tpress: () => this._onPressRefresh()\n\t\t});\n\t\tthis.addAggregation(\"menuItems\", menuItem);\n\t\taddFESRId(menuItem, \"todosRefresh\");\n\n\t\tthis._accRefreshLabel = new InvisibleText(`${this.getId()}-refreshAccText`, {\n\t\t\ttext: this._toFullRelativeDateTime(new Date())\n\t\t});\n\t\tthis.addDependent(this._accRefreshLabel);\n\t\tthis._refreshBtn = new Button(`${this.getId()}-refreshBtn`, {\n\t\t\ticon: \"sap-icon://refresh\",\n\t\t\ttext: this._toRelativeDateTime(new Date()),\n\t\t\tpress: () => this._onPressRefresh()\n\t\t});\n\t\tthis._refreshBtn.addAriaLabelledBy(this._accRefreshLabel);\n\t\taddFESRId(this._refreshBtn, \"manualTodoRefresh\");\n\t\tthis.addAggregation(\"actionButtons\", this._refreshBtn);\n\n\t\t//Configure Full Screen and Expand Event handlers\n\t\tthis.setProperty(\"enableFullScreen\", true);\n\t\tthis.attachEvent(\"onExpand\", async () => {\n\t\t\tawait this._beforePanelExpand();\n\t\t});\n\t}\n\n\t/**\n\t * Generates the card container (GridContainer) for displaying cards.\n\t *\n\t * @private\n\t * @returns {GridContainer} The generated card container.\n\t */\n\tprivate _generateCardContainer(): GridContainer {\n\t\t//create container\n\t\tif (!this._cardContainer) {\n\t\t\tthis._cardContainer = new GridContainer(`${this.getId()}-flexContainer`, {\n\t\t\t\tinlineBlockLayout: true,\n\t\t\t\tsnapToRow: true,\n\t\t\t\tvisible: \"{= !${/isPhone} && !${/hasError} && (!${/isLoaded} || ${/length} > 0) }\",\n\t\t\t\tlayout: new GridContainerSettings(`${this.getId()}-layout`, {\n\t\t\t\t\tcolumns: \"{/horizontalCardCount}\",\n\t\t\t\t\tcolumnSize: \"{/cardWidth}\",\n\t\t\t\t\tgap: \"1rem\"\n\t\t\t\t})\n\t\t\t}).addStyleClass(\"sapCuxToDoCardsContainer\");\n\t\t}\n\n\t\treturn this._cardContainer;\n\t}\n\n\t/**\n\t * Generates the mobile card container (HeaderContainer) for displaying cards on mobile devices.\n\t *\n\t * @private\n\t * @returns {HeaderContainer} The generated mobile card container.\n\t */\n\tprivate _generateMobileCardContainer(): HeaderContainer {\n\t\t// Create a HeaderContainer for mobile devices\n\t\tif (!this._mobileCardContainer) {\n\t\t\tthis._mobileCardContainer = new HeaderContainer(`${this.getId()}-headerContainer`, {\n\t\t\t\tvisible: \"{/isPhone}\",\n\t\t\t\tscrollStep: 0,\n\t\t\t\tgridLayout: true,\n\t\t\t\tscrollTime: 1000,\n\t\t\t\tshowDividers: false,\n\t\t\t\tsnapToRow: true\n\t\t\t}).addStyleClass(\"sapCuxToDoMobileCardsContainer\");\n\t\t}\n\n\t\treturn this._mobileCardContainer;\n\t}\n\n\t/**\n\t * Generates the error message card for displaying error messages.\n\t *\n\t * @private\n\t * @returns {Card} The generated error message card.\n\t */\n\tprivate _generateErrorMessage(): Card {\n\t\tif (!this._errorCard) {\n\t\t\tthis._errorMessage = new IllustratedMessage(`${this.getId()}-errorMessage`, {\n\t\t\t\tillustrationSize: IllustratedMessageSize.Base,\n\t\t\t\ttitle: \"{/illustrationTitle}\",\n\t\t\t\tdescription: \"{/illustrationDescription}\",\n\t\t\t\tillustrationType: \"{/illustrationType}\"\n\t\t\t});\n\t\t\tthis._errorCard = new Card(`${this.getId()}-errorCard`, {\n\t\t\t\tcontent: this._errorMessage,\n\t\t\t\tvisible: \"{= ${/tiles/length} === 0 || ${/hasError} === true }\"\n\t\t\t});\n\t\t}\n\n\t\treturn this._errorCard;\n\t}\n\n\t/**\n\t * Handler for the Refresh button for each panel.\n\t * Reloads the selected panel\n\t *\n\t * @async\n\t * @private\n\t */\n\tprivate _onPressRefresh(): void {\n\t\tvoid ((this.getParent() as ToDosContainer)?._getSelectedPanel() as ToDoPanel)?._loadCards(true);\n\t}\n\n\t/**\n\t * Loads the To-Do cards for the panel.\n\t *\n\t * @private\n\t * @param {boolean} forceRefresh - force refresh cards\n\t * @returns {Promise<void>} A promise that resolves when the cards are loaded.\n\t */\n\tpublic async _loadCards(forceRefresh?: boolean): Promise<void> {\n\t\tif (this._loadToDos !== undefined && !forceRefresh) {\n\t\t\treturn this._loadToDos;\n\t\t} else {\n\t\t\tthis._bindInnerControls();\n\t\t\tthis._loadToDos = new Promise((resolve) => {\n\t\t\t\tconst selectedKey = (this.getParent() as BaseContainer)?._getSelectedPanel()?.getProperty(\"key\") as string;\n\t\t\t\tconst requests: Request[] = [];\n\n\t\t\t\tthis._oData.isLoaded = false;\n\t\t\t\tthis._oData.isCountCalledOnce = false;\n\t\t\t\tthis._oData.isExpandedOnce = this._isElementExpanded();\n\t\t\t\tthis._setCount();\n\n\t\t\t\tif (this._getSupported()) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t// Load Placeholder Cards\n\t\t\t\t\t\tthis._generatePlaceHolderTiles();\n\n\t\t\t\t\t\t// Add Initial Batch Requests\n\t\t\t\t\t\trequests.push(\n\t\t\t\t\t\t\tthis._generateRequestObject({ type: selectedKey, onlyCount: selectedKey !== this.getProperty(\"key\") })\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.requests = this.requests.concat(requests);\n\n\t\t\t\t\t\t//Submit Batch Requests\n\t\t\t\t\t\tthis._submitBatch()\n\t\t\t\t\t\t\t.then(async () => {\n\t\t\t\t\t\t\t\tthis._oData.isLoaded = selectedKey === this.getProperty(\"key\");\n\t\t\t\t\t\t\t\tthis.fireEvent(\"loaded\");\n\n\t\t\t\t\t\t\t\tthis._oData.isCountCalledOnce = true;\n\t\t\t\t\t\t\t\tthis._setCount(this._oData.length as string);\n\n\t\t\t\t\t\t\t\tthis._setSectionRefreshInterval();\n\t\t\t\t\t\t\t\tthis._oData.refreshInfo = this._toRelativeDateTime(new Date());\n\t\t\t\t\t\t\t\tthis._oData.fullRefreshInfo = this._toFullRelativeDateTime(new Date());\n\t\t\t\t\t\t\t\tthis._oData.lastRefreshedTime = new Date();\n\t\t\t\t\t\t\t\tthis._updateRefreshInformation();\n\n\t\t\t\t\t\t\t\tawait this._switchTabIfRequired();\n\t\t\t\t\t\t\t\tthis._updateHeaderIfExclusive();\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\t\t\t\tLog.error(error instanceof Error ? error.message : \"\");\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\t\t\tthis._controlModel.refresh();\n\t\t\t\t\t\t\t\tthis._adjustLayout();\n\t\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis._handleError(`User not authorized to access: + ${this.getTargetAppUrl()}`);\n\n\t\t\t\t\t// Remove Item from IconTabBar\n\t\t\t\t\t(this.getParent() as ToDosContainer)?.removeContent(this);\n\n\t\t\t\t\t//resolve the promise\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn this._loadToDos;\n\t}\n\n\t/**\n\t * Update Container Header if the panel is exclusive\n\t *\n\t * @private\n\t */\n\tprivate _updateHeaderIfExclusive() {\n\t\tif (this._isExclusivePanel()) {\n\t\t\t(this.getParent() as ToDosContainer)._setTitle(`${this._i18nBundle.getText(\"toDosTitle\")} (${String(this._oData.length)})`);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a one-time binding of inner controls for the ToDoPanel.\n\t * @private\n\t */\n\tprivate _bindInnerControls(): void {\n\t\tif (!this._innerControlsBound) {\n\t\t\t//bind card container\n\t\t\tthis._cardContainer.bindAggregation(\"items\", {\n\t\t\t\tpath: \"/displayTiles\",\n\t\t\t\tlength: Constants.TODO_CARDS_LIMIT,\n\t\t\t\tfactory: (id, context) => this.generateCardTemplate(id, context)?.bindProperty?.(\"width\", { path: \"/cardWidth\" })\n\t\t\t});\n\n\t\t\t//bind mobile card container\n\t\t\tthis._mobileCardContainer.bindAggregation(\"content\", {\n\t\t\t\tpath: \"/displayTiles\",\n\t\t\t\tlength: Constants.TODO_CARDS_LIMIT,\n\t\t\t\tfactory: (id, context) => this.generateCardTemplate(id, context)?.bindProperty?.(\"width\", { path: \"/cardWidth\" })\n\t\t\t});\n\n\t\t\tthis._innerControlsBound = true;\n\t\t}\n\t}\n\n\t/**\n\t * Generates the card template for the Current Panel.\n\t *\n\t * @public\n\t * @param {string} id The ID for the template.\n\t * @param {object} context The context for the template.\n\t * @returns {object} The generated card template.\n\t */\n\tpublic generateCardTemplate(id: string, context: Context): Control {\n\t\treturn new GenericTile(`${id}-tile`, {\n\t\t\tmode: \"ActionMode\",\n\t\t\tframeType: \"TwoByOne\",\n\t\t\tpressEnabled: true,\n\t\t\theader: context.getProperty(\"title\") as string,\n\t\t\twidth: context.getProperty(\"/cardWidth\") as string,\n\t\t\tstate: context.getProperty(\"loadState\") as LoadState,\n\t\t\ttileContent: [\n\t\t\t\tnew TileContent(`${id}-tileContent`, {\n\t\t\t\t\tpriority: context.getProperty(\"priority\") as Priority,\n\t\t\t\t\tpriorityText: this._toPriorityText(context.getProperty(\"priority\") as Priority),\n\t\t\t\t\tfooter: context.getProperty(\"footerText\") as string,\n\t\t\t\t\tcontent: new Text(`${id}-situationContent`, {\n\t\t\t\t\t\ttext: context.getProperty(\"message\") as string\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\t}\n\n\t/**\n\t * Convert a priority string to a corresponding priority text.\n\t *\n\t * @private\n\t * @param {Priority} priority - The priority string.\n\t * @returns {string} The corresponding priority text.\n\t */\n\tpublic _toPriorityText(priority: Priority): string {\n\t\tlet key;\n\t\tif (priority === Priority.VeryHigh) {\n\t\t\tkey = \"veryHighPriority\";\n\t\t} else if (priority === Priority.High) {\n\t\t\tkey = \"highPriority\";\n\t\t} else if (priority === Priority.Medium) {\n\t\t\tkey = \"mediumPriority\";\n\t\t} else if (priority === Priority.Low) {\n\t\t\tkey = \"lowPriority\";\n\t\t} else {\n\t\t\tkey = \"nonePriority\";\n\t\t}\n\n\t\treturn this._i18nBundle.getText(key) as string;\n\t}\n\n\t/**\n\t * Generates placeholder tiles for the panel.\n\t *\n\t * @private\n\t */\n\tprivate _generatePlaceHolderTiles(): void {\n\t\tthis._cardCount = this._getVisibleCardCount({ isPlaceholder: true });\n\t\tthis._oData.displayTiles = this._oData.tiles = new Array(this._cardCount).fill({ loadState: \"Loading\" });\n\t\tthis._oData.isLoaded = this._oData.hasError = false;\n\t\tthis._controlModel.refresh();\n\t}\n\n\t/**\n\t * Calculates the number of visible cards that can fit within the available space of the To-Dos panel.\n\t *\n\t * @private\n\t * @param {CalculationProperties} [calculationProperties] - Optional properties to assist in the calculation.\n\t * @returns {number} - The number of visible cards.\n\t */\n\tprivate _getVisibleCardCount(calculationProperties?: CalculationProperties): number {\n\t\tconst layout = (this.getParent() as ToDosContainer)?._getLayout();\n\t\tlet isElementExpanded = false;\n\t\tlet targetDomRef = this._toDoWrapper?.getDomRef();\n\n\t\tif (layout) {\n\t\t\tisElementExpanded = this._isElementExpanded();\n\t\t\tconst isHeaderVisible = layout.getProperty(\"showHeader\") as boolean;\n\t\t\tconst containerDomRef = (isElementExpanded ? layout._getFullScreenContainer() : layout).getDomRef();\n\t\t\tconst sectionNodeIndex = isHeaderVisible && !isElementExpanded ? 1 : 0;\n\t\t\ttargetDomRef = containerDomRef?.childNodes[sectionNodeIndex] as Element;\n\t\t}\n\n\t\tconst isMobileDevice = this._controlModel.getProperty(\"/isPhone\") as boolean;\n\t\tlet cardCount = isMobileDevice ? Constants.TODO_SECTION_LIMIT : 1;\n\n\t\tif (targetDomRef) {\n\t\t\t// @ts-expect-error Calculate Horizontal Card Count\n\t\t\tcardCount = this.getHorizontalCardCount(targetDomRef, calculationProperties);\n\n\t\t\tif (isElementExpanded) {\n\t\t\t\t// @ts-expect-error Calculate Vertical Card Count\n\t\t\t\tcardCount *= this.getVerticalCardCount(targetDomRef, calculationProperties);\n\t\t\t}\n\n\t\t\t//Restrict cards to the maximum limit\n\t\t\tcardCount = cardCount > Constants.TODO_CARDS_LIMIT ? Constants.TODO_CARDS_LIMIT : cardCount;\n\t\t}\n\n\t\treturn cardCount;\n\t}\n\n\t/**\n\t * Checks if the current element is expanded to full screen.\n\t *\n\t * @private\n\t * @returns {boolean} - True if the element is expanded, otherwise false.\n\t */\n\tprivate _isElementExpanded(): boolean {\n\t\tconst toDosContainer = this.getParent() as ToDosContainer;\n\t\tconst layout = toDosContainer._getLayout();\n\t\treturn layout?._getCurrentExpandedElementName() === toDosContainer.getProperty(\"fullScreenName\");\n\t}\n\n\t/**\n\t * Calculates the number of horizontal cards that can fit within the available width of the given DOM element.\n\t *\n\t * @private\n\t * @param {Element} domRef - The DOM element to calculate the horizontal card count for.\n\t * @returns {number} - The number of horizontal cards that can fit within the available width.\n\t */\n\tprotected getHorizontalCardCount(domRef: Element): number {\n\t\tconst domProperties = fetchElementProperties(domRef, [\"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\t\tconst actualCardCount = this._oData.length as number;\n\t\tconst isMobileDevice = this._controlModel.getProperty(\"/isPhone\") as boolean;\n\t\tlet horizontalCardCount;\n\t\tconst minWidth = this.getProperty(\"minCardWidth\") as number;\n\t\tconst maxWidth = this.getProperty(\"maxCardWidth\") as number;\n\t\tconst cardLayoutConfig = {\n\t\t\tcontainerWidth: availableWidth,\n\t\t\ttotalCards: actualCardCount,\n\t\t\tminWidth: minWidth,\n\t\t\tmaxWidth: maxWidth,\n\t\t\tgap: Constants.GAP\n\t\t};\n\t\tconst cardWidth = calculateCardWidth(cardLayoutConfig);\n\t\tif (isMobileDevice) {\n\t\t\thorizontalCardCount = Constants.TODO_SECTION_LIMIT;\n\t\t} else {\n\t\t\thorizontalCardCount = Math.max(Math.floor(availableWidth / cardWidth), 1);\n\t\t}\n\n\t\t// Calculate Horizontal Card Count\n\t\tthis._controlModel.setProperty(\"/cardWidth\", `${cardWidth / 16}rem`);\n\t\tthis._controlModel.setProperty(\"/horizontalCardCount\", horizontalCardCount);\n\n\t\treturn horizontalCardCount;\n\t}\n\n\t/**\n\t * Calculates the number of vertical cards that can fit within the available height of the given DOM element.\n\t *\n\t * @private\n\t * @param {Element} domRef - The DOM element to calculate the vertical card count for.\n\t * @returns {number} - The number of vertical cards that can fit within the available height.\n\t */\n\tprotected getVerticalCardCount(domRef: Element): number {\n\t\tconst sectionDomProperties = fetchElementProperties(domRef, [\"padding-top\"]);\n\t\tconst parentDomProperties = fetchElementProperties(domRef.parentElement as Element, [\"height\"]);\n\t\tconst titleHeight = this.calculateTitleHeight();\n\t\tconst availableHeight = parentDomProperties.height - sectionDomProperties[\"padding-top\"] * 2 - titleHeight;\n\t\tconst margin = 14;\n\t\tconst cardHeight = Constants.DEFAULT_CARD_HEIGHT + margin;\n\t\tconst verticalCardCount = Math.max(Math.floor(availableHeight / cardHeight), 2); //minimum of 2 rows should be displayed\n\n\t\treturn verticalCardCount;\n\t}\n\n\t/**\n\t * Calculates the combined height of the title and tab header for the To-Dos panel.\n\t *\n\t * @private\n\t * @returns {number} - The combined height of the title and tab header.\n\t */\n\tprotected calculateTitleHeight(): number {\n\t\tconst container = this.getParent() as ToDosContainer;\n\t\tconst containerHeaderRef = UI5Element.getElementById(`${container.getId()}-header`)?.getDomRef();\n\t\tconst iconTabBarHeaderRef = UI5Element.getElementById(`${container._getInnerControl().getId()}--header`)?.getDomRef();\n\t\tconst defaultHeight = Constants.DEFAULT_TITLE_HEIGHT + Constants.DEFAULT_TAB_HEADER_HEIGHT;\n\t\tlet titleHeight = 0;\n\n\t\tif (containerHeaderRef && iconTabBarHeaderRef) {\n\t\t\ttitleHeight = containerHeaderRef.clientHeight + iconTabBarHeaderRef.clientHeight;\n\t\t}\n\n\t\treturn Math.max(titleHeight, defaultHeight);\n\t}\n\n\t/**\n\t * Generates a request object for batch requests.\n\t *\n\t * @private\n\t * @param {RequestOptions} options - Additional properties for generating the request object.\n\t * @param {boolean} [options.onlyCount] - Whether to include only the count in the request.\n\t * @returns {Object} The generated request object.\n\t */\n\tprivate _generateRequestObject(options: RequestOptions): Request {\n\t\tconst cardCount = this._getVisibleCardCount();\n\t\tconst countUrl = this.getCountUrl();\n\t\tconst urls = this.generateRequestUrls?.(cardCount);\n\n\t\tif (countUrl && options?.onlyCount) {\n\t\t\turls.splice(1);\n\t\t}\n\n\t\treturn {\n\t\t\tbaseURL: this.getBaseUrl(),\n\t\t\trequestURLs: urls,\n\t\t\tsuccess: async (args: unknown[]): Promise<void> => {\n\t\t\t\t//data process extension for panels\n\t\t\t\tawait this.onDataReceived(countUrl ? args.splice(1) : args, options);\n\n\t\t\t\t//set card count and handle empty cards\n\t\t\t\tthis._oData.length = countUrl ? Number(args[0]) : (this._oData.tiles as object[]).length;\n\t\t\t\tthis._handleEmptyCards();\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Generates request URLs for fetching data based on the specified card count.\n\t *\n\t * @public\n\t * @param {number} cardCount - The number of cards to retrieve.\n\t * @returns {string[]} An array of request URLs.\n\t */\n\tpublic generateRequestUrls(cardCount: number): string[] {\n\t\tconst urls = [];\n\t\tconst countUrl = this.getCountUrl();\n\n\t\tif (countUrl) {\n\t\t\turls.push(countUrl);\n\t\t}\n\n\t\tlet dataUrl = this.getDataUrl();\n\t\tif (this.getProperty(\"useBatch\")) {\n\t\t\tconst queryString = `$skip=0&$top=${cardCount}`;\n\t\t\tdataUrl = dataUrl.includes(\"?\") ? `${dataUrl}&${queryString}` : `${dataUrl}?${queryString}`;\n\t\t}\n\t\turls.push(dataUrl);\n\n\t\treturn urls;\n\t}\n\n\t/**\n\t * A promise that resolves when the data has been processed.\n\t * This method can be overridden to perform additional data processing operations.\n\t *\n\t * @public\n\t * @async\n\t * @param {unknown[]} results - Data retrieved from the batch call.\n\t * @param {RequestOptions} options - Additional options for parsing the data.\n\t * Structure may vary based on the backend service.\n\t */\n\tpublic async onDataReceived(results: unknown[] = [], options?: RequestOptions): Promise<void> {\n\t\tif (!options || (options && !options.onlyCount)) {\n\t\t\tthis._oData.displayTiles = this._oData.tiles = results[0] || [];\n\t\t}\n\n\t\tawait Promise.resolve();\n\t}\n\n\t/**\n\t * Handles the scenario when there are no cards to display.\n\t * Updates the illustration and description based on the selected panel and card count.\n\t *\n\t * @private\n\t */\n\tprivate _handleEmptyCards() {\n\t\tif (Number(this._oData.length) === 0) {\n\t\t\tthis._oData.illustrationType = \"sapIllus-EmptyPlanningCalendar\";\n\t\t\tthis._oData.illustrationTitle = this._isExclusivePanel() ? this._i18nBundle.getText(\"noToDoTitle\") : this.getNoDataText();\n\t\t\tthis._oData.illustrationDescription = this._isExclusivePanel()\n\t\t\t\t? this._i18nBundle.getText(\"noToDoDesc\")\n\t\t\t\t: this._i18nBundle.getText(\"emptyToDoDesc\");\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the panel is exclusive based on support and the number of panels.\n\t *\n\t * @private\n\t * @returns {boolean} True if the panel is exclusive, otherwise false.\n\t */\n\tprivate _isExclusivePanel(): boolean {\n\t\tconst allPanels = (this.getParent() as ToDosContainer).getContent() as ToDoPanel[];\n\t\tconst supportedPanels = allPanels.filter((panel) => panel._getSupported());\n\n\t\treturn supportedPanels.length === 1 || (allPanels.length === 1 && this._getSupported());\n\t}\n\n\t/**\n\t * Sets the interval for refreshing the section.\n\t *\n\t * @private\n\t */\n\tprivate _setSectionRefreshInterval(): void {\n\t\tclearInterval(this._oData.refreshFn as number);\n\t\tthis._oData.refreshFn = setInterval(() => {\n\t\t\tthis._oData.lastRefreshedTime = this._oData.lastRefreshedTime || new Date();\n\t\t\tthis._oData.refreshInfo = this._toRelativeDateTime(this._oData.lastRefreshedTime as Date);\n\t\t\tthis._oData.fullRefreshInfo = this._toFullRelativeDateTime(this._oData.lastRefreshedTime as Date);\n\t\t\tthis._updateRefreshInformation();\n\t\t}, Constants.TODOS_REFRESH_INTERVAL);\n\t}\n\n\t/**\n\t * Updates the refresh information and adjusts the layout.\n\t *\n\t * @private\n\t */\n\tpublic _updateRefreshInformation(): void {\n\t\tconst container = this.getParent() as ToDosContainer;\n\t\tif (container.getProperty(\"selectedKey\") === this.getProperty(\"key\")) {\n\t\t\tthis._refreshBtn.setProperty(\"text\", this._oData.refreshInfo, true);\n\t\t\tthis._accRefreshLabel.setProperty(\"text\", this._oData.fullRefreshInfo, true);\n\t\t\tthis._refreshBtn.setAggregation(\"tooltip\", this._oData.fullRefreshInfo as ManagedObject, true);\n\t\t\tcontainer._updateContainerHeader(this);\n\t\t}\n\n\t\tthis._adjustLayout();\n\t}\n\n\t/**\n\t * Adjusts the layout based on card count and device type.\n\t *\n\t * @private\n\t */\n\tpublic _adjustLayout() {\n\t\t// Update visible cards\n\t\tconst cardCount = this._getVisibleCardCount();\n\t\tif ((this._oData.tiles as object[]).length && !this._oData.hasError) {\n\t\t\tconst displayCards = (this._oData.tiles as object[]).slice(0, cardCount);\n\t\t\tthis._controlModel.setProperty(\"/displayTiles\", displayCards);\n\t\t}\n\n\t\t// Update if device type is phone\n\t\tthis._controlModel.setProperty(\"/isPhone\", this.getDeviceType() === DeviceType.Mobile);\n\n\t\t// Show/Hide Full Screen Button if available\n\t\t(this.getParent() as ToDosContainer)?.toggleFullScreenElements(\n\t\t\tthis,\n\t\t\tthis._isElementExpanded() || Number(this._oData.length) > cardCount\n\t\t);\n\t}\n\n\t/**\n\t * Formats the given date to a relative date.\n\t *\n\t * @private\n\t * @param {Date} date Date object or Date String\n\t * @returns {string} Formatted Date\n\t */\n\tpublic _toRelativeDateTime(date: Date): string {\n\t\tconst inputDate = new Date(date);\n\t\treturn isNaN(Number(inputDate)) ? \"\" : ToDoPanel.relativeDateFormatter.format(inputDate);\n\t}\n\n\t/**\n\t * Formats the given date to a relative date string with full units (e.g., \"2 minutes ago\").\n\t * Intended for accessibility use such as screen readers.\n\t *\n\t * @private\n\t * @param {Date} date Date object or date string\n\t * @returns {string} Fully formatted relative date string\n\t */\n\tprivate _toFullRelativeDateTime(date: Date): string {\n\t\tconst inputDate = new Date(date);\n\t\treturn isNaN(Number(inputDate)) ? \"\" : ToDoPanel.fullRelativeDateFormatter.format(inputDate);\n\t}\n\n\t/**\n\t * Get the text for the \"No Data\" message.\n\t *\n\t * @public\n\t * @returns {string} The text for the \"No Data\" message.\n\t */\n\tpublic getNoDataText(): string {\n\t\treturn this._i18nBundle.getText(\"noData\") as string;\n\t}\n\n\t/**\n\t * Parses the response object and returns the appropriate value.\n\t *\n\t * @private\n\t * @param {Object} response - The response object.\n\t * @param {Object} [response.d] - The 'd' property of the response object.\n\t * @param {Array} [response.d.results] - The results array.\n\t * @param {string|number} [response.d] - The 'd' property of the response object which may contain a numeric value.\n\t * @param {string|number} [response] - The response object which may contain a numeric value.\n\t * @param {string|number} [response.value] - The 'value' property of the response object which may contain a numeric value.\n\t * @returns {Response} - The parsed value extracted from the response object.\n\t */\n\tprivate _parseResponse(response: Response): Response {\n\t\tconst { d = {}, value } = response || {};\n\t\tconst results = d?.results;\n\t\tconst numericD = !isNaN(+d) && +d;\n\t\tconst numericResponse = !isNaN(+response) && +response;\n\n\t\treturn (results || numericD || numericResponse || value || response || 0) as Response;\n\t}\n\n\t/**\n\t * Submits a batch request for multiple URLs and processes the responses.\n\t *\n\t * @private\n\t * @returns {Promise} A Promise that resolves when all batch requests are completed.\n\t */\n\tprotected _submitBatch(): Promise<unknown[]> {\n\t\treturn Promise.all(\n\t\t\tthis.requests.map(async (request: Request) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst useBatch = this.getProperty(\"useBatch\") as boolean;\n\t\t\t\t\tlet responses = useBatch\n\t\t\t\t\t\t? await this.batchHelper.createMultipartRequest(request.baseURL, request.requestURLs)\n\t\t\t\t\t\t: await HttpHelper.GetMultipleRequests(request.requestURLs);\n\n\t\t\t\t\tif (responses.length) {\n\t\t\t\t\t\tconst processedResponses = responses.map((response: string | Response) => {\n\t\t\t\t\t\t\tif (typeof response === \"string\") {\n\t\t\t\t\t\t\t\tresponse = JSON.parse(response) as Response;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn this._parseResponse(response);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// Call success callback, if any\n\t\t\t\t\t\tif (request.success && typeof request.success === \"function\") {\n\t\t\t\t\t\t\tawait request.success(processedResponses);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn processedResponses;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Error(\"Invalid response\");\n\t\t\t\t\t}\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tthis._handleError(error);\n\t\t\t\t} finally {\n\t\t\t\t\tthis._clearRequests();\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\t/**\n\t * Handles errors by updating the data and logging the error.\n\t *\n\t * @private\n\t * @param {Error} error - The error object to handle.\n\t */\n\tprivate _handleError(error: unknown) {\n\t\tthis._oData.displayTiles = this._oData.tiles = [];\n\t\tthis._oData.getSupported = this._oData.isLoaded = this._oData.hasError = true;\n\t\tthis._oData.illustrationType = \"sapIllus-UnableToLoad\";\n\t\tthis._oData.illustrationTitle = this._oData.illustrationDescription = \"\";\n\n\t\tLog.error(error as string);\n\t\tthis._controlModel.refresh();\n\t}\n\n\t/**\n\t * Clears the list of requests.\n\t *\n\t * @private\n\t */\n\tprotected _clearRequests() {\n\t\tthis.requests = [];\n\t}\n\n\t/**\n\t * Checks if the panel is loaded.\n\t *\n\t * @private\n\t * @returns {boolean} true if the panel is loaded, false otherwise.\n\t */\n\tpublic _isLoaded(): boolean {\n\t\tconst parentContainer = this.getParent() as ToDosContainer;\n\t\tconst isContainerExpanded = parentContainer?._getLayout()?.getProperty(\"expanded\") as boolean;\n\n\t\tconst { isLoaded, isExpandedOnce } = this._oData;\n\n\t\tif (!isContainerExpanded) {\n\t\t\treturn isLoaded as boolean;\n\t\t}\n\n\t\treturn (isExpandedOnce && isLoaded) as boolean;\n\t}\n\n\t/**\n\t * Set the loaded status of the ToDoPanel.\n\t *\n\t * @private\n\t * @param {boolean} isLoaded - The new loaded status to set for the ToDoPanel.\n\t */\n\tpublic _setLoaded(isLoaded: boolean): void {\n\t\tthis._oData.isLoaded = isLoaded;\n\t}\n\n\t/**\n\t * Gets the supported status of the panel.\n\t *\n\t * @private\n\t * @returns {boolean} The supported status of the panel.\n\t */\n\tpublic _getSupported(): boolean {\n\t\treturn this._oData.getSupported as boolean;\n\t}\n\n\t/**\n\t * Sets the supported status of the panel.\n\t *\n\t * @private\n\t * @param {boolean} value - The value to set for supported status.\n\t */\n\tpublic _setSupported(isSupported: boolean): void {\n\t\tthis._oData.getSupported = isSupported;\n\t}\n\n\t/**\n\t * Extracts the app intent from the target app URL.\n\t *\n\t * @private\n\t * @returns {Intent | null} The app intent object with target and parameters, or null if not found.\n\t */\n\tpublic _getAppIntent(): Intent | null {\n\t\tconst pattern = /#([^?-]+)-([^?#]+)(?:\\?([^#]+))?(?:#.*)?/;\n\t\tconst match = this.getTargetAppUrl().match(pattern);\n\n\t\tif (match) {\n\t\t\tconst target = {\n\t\t\t\tsemanticObject: match[1],\n\t\t\t\taction: match[2]\n\t\t\t};\n\t\t\tconst params = {} as Record<string, string>;\n\n\t\t\tif (match[3]) {\n\t\t\t\tconst paramsArray = match[3].split(\"&\");\n\t\t\t\tfor (const param of paramsArray) {\n\t\t\t\t\tconst [key, value] = param.split(\"=\");\n\t\t\t\t\tparams[key] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttarget,\n\t\t\t\tparams\n\t\t\t};\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * Switch to available tab if current panel has empty cards or has error\n\t *\n\t * @private\n\t * @async\n\t */\n\tprivate async _switchTabIfRequired() {\n\t\tconst container = this.getParent() as ToDosContainer;\n\t\tconst selectedKey = container?.getProperty(\"selectedKey\") as string;\n\n\t\tif (selectedKey === this.getProperty(\"key\") && (this._oData.length === 0 || this._oData.hasError)) {\n\t\t\tlet nextAvailablePanel;\n\t\t\tconst panels = container?.getAggregation(\"content\") as ToDoPanel[];\n\n\t\t\tfor (const panel of panels) {\n\t\t\t\tif (panel !== this) {\n\t\t\t\t\t//ensure that panel is loaded first\n\t\t\t\t\tawait panel._loadCards();\n\n\t\t\t\t\tif (panel._getSupported() && !panel._isLoaded() && panel._getCardCount() > 0) {\n\t\t\t\t\t\tnextAvailablePanel = panel;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (nextAvailablePanel) {\n\t\t\t\tcontainer?.setProperty(\"selectedKey\", nextAvailablePanel.getProperty(\"key\"));\n\t\t\t\tToDosContainer.cardCount = this._cardCount;\n\t\t\t\tawait nextAvailablePanel._loadCards(true);\n\t\t\t\tToDosContainer.cardCount = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handles the press event to view all items.\n\t *\n\t * @private\n\t */\n\tpublic _onPressViewAll() {\n\t\tURLHelper.redirect(this.getTargetAppUrl(), false);\n\t}\n\n\t/**\n\t * Retrieves the count of cards in the panel.\n\t *\n\t * @private\n\t * @returns {number} The number of cards.\n\t */\n\tpublic _getCardCount(): number {\n\t\treturn Number(this._oData.length);\n\t}\n\n\t/**\n\t * Handles actions to be performed before the To-Dos panel is expanded.\n\t * If the panel has not been expanded before in full screen, the cards will be loaded once.\n\t *\n\t * @private\n\t */\n\tprivate async _beforePanelExpand() {\n\t\tif (!this._oData.isExpandedOnce) {\n\t\t\tthis._oData.isExpandedOnce = true;\n\t\t\tawait this._loadCards(true);\n\t\t}\n\t}\n\n\t/**\n\t * Exit lifecycle method.\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic exit() {\n\t\tclearInterval(this._oData.refreshFn as number);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ToDoPanel.js","names":["sap","ui","define","Log","Card","GridContainer","GridContainerSettings","Button","GenericTile","HeaderContainer","IllustratedMessage","IllustratedMessageSize","Text","TileContent","VBox","sap_m_library","Device","UI5Element","InvisibleText","DateFormat","JSONModel","__BasePanel","__MenuItem","__ToDosContainer","__BatchHelper","___utils_Device","___utils_FESRUtil","__HttpHelper","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","Priority","_finallyRethrows","finalizer","bind","URLHelper","_iteratorSymbol","Symbol","iterator","_settle","pact","state","value","s","_Pact","v","o","observer","prototype","onFulfilled","onRejected","callback","_this","_isSettledPact","thenable","_forTo","array","check","i","reject","_cycle","length","BasePanel","_forOf","target","step","next","done","return","_fixup","TypeError","values","push","MenuItem","ToDosContainer","BatchHelper","calculateCardWidth","DeviceType","fetchElementProperties","addFESRId","addFESRNavigationSource","FESRNavigationSource","HttpHelper","Constants","SITUATION_ICON","PLACEHOLDER_ITEMS_COUNT","TODO_CARDS_LIMIT","TODO_SECTION_LIMIT","TODOS_REFRESH_INTERVAL","MOBILE_DEVICE_MAX_WIDTH","DEFAULT_TITLE_HEIGHT","DEFAULT_CARD_HEIGHT","DEFAULT_TAB_HEADER_HEIGHT","GAP","ToDoPanel","extend","metadata","library","properties","baseUrl","type","group","defaultValue","visibility","countUrl","dataUrl","targetAppUrl","minCardWidth","maxCardWidth","useBatch","preload","aggregations","content","multiple","singularName","constructor","_constructor","id","settings","BasePanel.prototype.constructor.call","batchHelper","init","_init","BasePanel.prototype.init.call","_oData","isLoaded","hasError","cardWidth","getSupported","isExpandedOnce","isCountCalledOnce","illustrationType","refreshInfo","_toRelativeDateTime","Date","fullRefreshInfo","_toFullRelativeDateTime","horizontalCardCount","illustrationTitle","_i18nBundle","getText","illustrationDescription","isPhone","resize","width","system","phone","tiles","Array","fill","loadState","displayTiles","_controlModel","requests","_toDoWrapper","getId","renderType","items","_generateCardContainer","_generateMobileCardContainer","_generateErrorMessage","setModel","addContent","menuItem","title","icon","press","_onPressRefresh","addAggregation","_accRefreshLabel","text","addDependent","_refreshBtn","addAriaLabelledBy","setProperty","attachEvent","Promise","resolve","_beforePanelExpand","_cardContainer","inlineBlockLayout","snapToRow","visible","layout","columns","columnSize","gap","addStyleClass","_mobileCardContainer","scrollStep","gridLayout","scrollTime","showDividers","_errorCard","_errorMessage","illustrationSize","Base","description","getParent","_getSelectedPanel","_loadCards","forceRefresh","_this2","_loadToDos","undefined","_bindInnerControls","selectedKey","getProperty","_isElementExpanded","_setCount","_getSupported","setTimeout","_generatePlaceHolderTiles","_generateRequestObject","onlyCount","concat","_submitBatch","fireEvent","_setSectionRefreshInterval","lastRefreshedTime","_updateRefreshInformation","_switchTabIfRequired","_updateHeaderIfExclusive","catch","error","Error","message","finally","refresh","_adjustLayout","_handleError","getTargetAppUrl","removeContent","_isExclusivePanel","getTitle","displayTitle","trim","_setTitle","String","_innerControlsBound","bindAggregation","path","factory","context","generateCardTemplate","bindProperty","_generateCardTemplate","mode","frameType","pressEnabled","header","tileContent","priority","priorityText","_toPriorityText","footer","key","VeryHigh","High","Medium","Low","_cardCount","_getVisibleCardCount","isPlaceholder","calculationProperties","_getLayout","isElementExpanded","targetDomRef","getDomRef","isHeaderVisible","containerDomRef","_getFullScreenContainer","sectionNodeIndex","childNodes","isMobileDevice","cardCount","getHorizontalCardCount","getVerticalCardCount","toDosContainer","_getCurrentExpandedElementName","_getHorizontalCardCount","domRef","domProperties","availableWidth","Object","slice","reduce","propertyValue","actualCardCount","minWidth","maxWidth","cardLayoutConfig","containerWidth","totalCards","Math","max","floor","_getVerticalCardCount","sectionDomProperties","parentDomProperties","parentElement","titleHeight","calculateTitleHeight","availableHeight","height","margin","cardHeight","verticalCardCount","_calculateTitleHeight","container","containerHeaderRef","getElementById","iconTabBarHeaderRef","_getInnerControl","defaultHeight","clientHeight","options","_this3","getCountUrl","urls","generateRequestUrls","splice","baseURL","getBaseUrl","requestURLs","success","args","onDataReceived","Number","_handleEmptyCards","_generateRequestUrls","getDataUrl","queryString","includes","_onDataReceived","results","_this4","getNoDataText","allPanels","getContent","supportedPanels","filter","panel","clearInterval","refreshFn","setInterval","setAggregation","_updateContainerHeader","displayCards","getDeviceType","Mobile","toggleFullScreenElements","date","inputDate","isNaN","relativeDateFormatter","format","fullRelativeDateFormatter","_getNoDataText","_parseResponse","response","d","numericD","numericResponse","_this5","all","map","request","createMultipartRequest","GetMultipleRequests","responses","processedResponses","JSON","parse","_temp","_wasThrown","_result","_clearRequests","_isLoaded","parentContainer","isContainerExpanded","_setLoaded","_setSupported","isSupported","_getAppIntent","pattern","match","semanticObject","action","params","paramsArray","split","param","_this6","_interrupt","_temp5","_temp3","nextAvailablePanel","panels","getAggregation","_temp4","_temp2","_getCardCount","_onPressViewAll","redirect","Task","_this7","_temp7","_temp6","exit","_exit","getDateTimeInstance","style","relative","relativeStyle"],"sources":["ToDoPanel.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 Card from \"sap/f/Card\";\nimport GridContainer from \"sap/f/GridContainer\";\nimport GridContainerSettings from \"sap/f/GridContainerSettings\";\nimport Button from \"sap/m/Button\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport HeaderContainer from \"sap/m/HeaderContainer\";\nimport IllustratedMessage from \"sap/m/IllustratedMessage\";\nimport IllustratedMessageSize from \"sap/m/IllustratedMessageSize\";\nimport Text from \"sap/m/Text\";\nimport TileContent from \"sap/m/TileContent\";\nimport VBox from \"sap/m/VBox\";\nimport { LoadState, Priority, URLHelper } from \"sap/m/library\";\nimport Device from \"sap/ui/Device\";\nimport ManagedObject from \"sap/ui/base/ManagedObject\";\nimport Control from \"sap/ui/core/Control\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport UI5Element from \"sap/ui/core/Element\";\nimport InvisibleText from \"sap/ui/core/InvisibleText\";\nimport DateFormat from \"sap/ui/core/format/DateFormat\";\nimport Context from \"sap/ui/model/Context\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport BaseContainer from \"./BaseContainer\";\nimport BasePanel from \"./BasePanel\";\nimport IToDoPanel from \"./IToDoPanel\";\nimport MenuItem from \"./MenuItem\";\nimport { $ToDoPanelSettings } from \"./ToDoPanel\";\nimport ToDosContainer from \"./ToDosContainer\";\nimport BatchHelper from \"./utils/BatchHelper\";\nimport { calculateCardWidth, DeviceType, fetchElementProperties } from \"./utils/Device\";\nimport { addFESRId, addFESRNavigationSource, FESRNavigationSource } from \"./utils/FESRUtil\";\nimport HttpHelper from \"./utils/HttpHelper\";\n\ninterface Request {\n\tbaseURL: string;\n\trequestURLs: string[];\n\tsuccess(args: unknown[]): Promise<void>;\n}\n\nexport interface CalculationProperties {\n\tisPlaceholder?: boolean;\n}\n\nexport interface Intent {\n\ttarget: {\n\t\tsemanticObject: string;\n\t\taction: string;\n\t};\n\tparams: {\n\t\t[key: string]: string;\n\t};\n}\n\nexport interface RequestOptions {\n\ttype: string;\n\tonlyCount?: boolean;\n}\n\nexport interface Response {\n\td?: {\n\t\tresults?: unknown[];\n\t};\n\tresults?: unknown[];\n\tvalue?: unknown[];\n}\n\nconst Constants = {\n\tSITUATION_ICON: \"sap-icon://message-warning\",\n\tPLACEHOLDER_ITEMS_COUNT: 5,\n\tTODO_CARDS_LIMIT: 100,\n\tTODO_SECTION_LIMIT: 6,\n\tTODOS_REFRESH_INTERVAL: 65000,\n\tMOBILE_DEVICE_MAX_WIDTH: 600,\n\tDEFAULT_TITLE_HEIGHT: 33,\n\tDEFAULT_CARD_HEIGHT: 168,\n\tDEFAULT_TAB_HEADER_HEIGHT: 44,\n\tGAP: 16\n};\n\n/**\n *\n * Abstract Panel class for managing and storing To-Do cards.\n *\n * @extends BasePanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.ToDoPanel\n */\nexport default abstract class ToDoPanel extends BasePanel implements IToDoPanel {\n\tprotected _oData!: Record<string, unknown>;\n\tprotected requests!: Request[];\n\tprivate _controlModel!: JSONModel;\n\tprivate _toDoWrapper!: VBox;\n\tprivate _cardContainer!: GridContainer;\n\tprivate _mobileCardContainer!: HeaderContainer;\n\tprivate _errorCard!: Card;\n\tprivate _errorMessage!: IllustratedMessage;\n\tprivate _refreshBtn!: Button;\n\tprivate _loadToDos!: Promise<void> | undefined;\n\tprivate _innerControlsBound!: boolean;\n\tprivate _cardCount!: number;\n\tprivate batchHelper!: BatchHelper;\n\tprivate _accRefreshLabel!: InvisibleText;\n\n\tconstructor(id?: string | $ToDoPanelSettings);\n\tconstructor(id?: string, settings?: $ToDoPanelSettings);\n\t/**\n\t * Constructor for a new To-Dos Panel.\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?: $ToDoPanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.batchHelper = new BatchHelper();\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Specifies the base URL for batching requests sent from the panel.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\tbaseUrl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Specifies the URL for fetching the count of requested to-do cards.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\tcountUrl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Specifies the URL from where the to-do cards should be fetched.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\tdataUrl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Specifies the URL of the target application associated with the to-do cards.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\ttargetAppUrl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Specifies the minimum width of the card in pixels.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tminCardWidth: { type: \"int\", group: \"Misc\", defaultValue: 304, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Specifies the maximum width of the card in pixels.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tmaxCardWidth: { type: \"int\", group: \"Misc\", defaultValue: 583, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Specifies whether the panel should batch requests.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tuseBatch: { type: \"boolean\", group: \"Misc\", defaultValue: true, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Specifies whether the panel data should be preloaded.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tpreload: { type: \"boolean\", group: \"Data\", defaultValue: false, visibility: \"hidden\" },\n\t\t},\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Specifies the content aggregation of the panel.\n\t\t\t */\n\t\t\tcontent: { multiple: true, singularName: \"content\", visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tstatic fullRelativeDateFormatter = DateFormat.getDateTimeInstance({\n\t\tstyle: \"long\",\n\t\trelative: true,\n\t\trelativeStyle: \"wide\"\n\t});\n\n\tstatic relativeDateFormatter = DateFormat.getDateTimeInstance({\n\t\tstyle: \"medium\",\n\t\trelative: true,\n\t\trelativeStyle: \"short\"\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\n\t\t//Initialise ToDos Model\n\t\tthis._oData = {\n\t\t\tlength: 0,\n\t\t\tisLoaded: false,\n\t\t\thasError: false,\n\t\t\tcardWidth: \"20rem\",\n\t\t\tgetSupported: false,\n\t\t\tisExpandedOnce: false,\n\t\t\tisCountCalledOnce: false,\n\t\t\tillustrationType: \"sapIllus-NoTasks\",\n\t\t\trefreshInfo: this._toRelativeDateTime(new Date()),\n\t\t\tfullRefreshInfo: this._toFullRelativeDateTime(new Date()),\n\t\t\thorizontalCardCount: Constants.PLACEHOLDER_ITEMS_COUNT,\n\t\t\tillustrationTitle: this._i18nBundle.getText(\"noToDoTitle\"),\n\t\t\tillustrationDescription: this._i18nBundle.getText(\"noToDoDesc\"),\n\t\t\tisPhone: Device.resize.width < Constants.MOBILE_DEVICE_MAX_WIDTH || Device.system.phone,\n\t\t\ttiles: new Array(Constants.PLACEHOLDER_ITEMS_COUNT).fill({ loadState: \"Loading\" }),\n\t\t\tdisplayTiles: new Array(Constants.PLACEHOLDER_ITEMS_COUNT).fill({ loadState: \"Loading\" })\n\t\t};\n\t\tthis._controlModel = new JSONModel(this._oData);\n\n\t\t//Initialize Request Queue\n\t\tthis.requests = [];\n\n\t\t//Add Wrapper Container to Panel\n\t\tthis._toDoWrapper = new VBox(`${this.getId()}-toDosWrapper`, {\n\t\t\trenderType: \"Bare\",\n\t\t\titems: [this._generateCardContainer(), this._generateMobileCardContainer(), this._generateErrorMessage()]\n\t\t});\n\t\tthis._toDoWrapper.setModel(this._controlModel);\n\t\tthis.addContent(this._toDoWrapper);\n\n\t\t//Setup Common Menu Items\n\t\tconst menuItem = new MenuItem(`${this.getId()}-refresh`, {\n\t\t\ttitle: this._i18nBundle.getText(\"refresh\"),\n\t\t\ticon: \"sap-icon://refresh\",\n\t\t\tpress: () => this._onPressRefresh()\n\t\t});\n\t\tthis.addAggregation(\"menuItems\", menuItem);\n\t\taddFESRId(menuItem, \"todosRefresh\");\n\n\t\tthis._accRefreshLabel = new InvisibleText(`${this.getId()}-refreshAccText`, {\n\t\t\ttext: this._toFullRelativeDateTime(new Date())\n\t\t});\n\t\tthis.addDependent(this._accRefreshLabel);\n\t\tthis._refreshBtn = new Button(`${this.getId()}-refreshBtn`, {\n\t\t\ticon: \"sap-icon://refresh\",\n\t\t\ttext: this._toRelativeDateTime(new Date()),\n\t\t\tpress: () => this._onPressRefresh()\n\t\t});\n\t\tthis._refreshBtn.addAriaLabelledBy(this._accRefreshLabel);\n\t\taddFESRId(this._refreshBtn, \"manualTodoRefresh\");\n\t\tthis.addAggregation(\"actionButtons\", this._refreshBtn);\n\n\t\t//Configure Full Screen and Expand Event handlers\n\t\tthis.setProperty(\"enableFullScreen\", true);\n\t\tthis.attachEvent(\"onExpand\", async () => {\n\t\t\tawait this._beforePanelExpand();\n\t\t});\n\t}\n\n\t/**\n\t * Generates the card container (GridContainer) for displaying cards.\n\t *\n\t * @private\n\t * @returns {GridContainer} The generated card container.\n\t */\n\tprivate _generateCardContainer(): GridContainer {\n\t\t//create container\n\t\tif (!this._cardContainer) {\n\t\t\tthis._cardContainer = new GridContainer(`${this.getId()}-flexContainer`, {\n\t\t\t\tinlineBlockLayout: true,\n\t\t\t\tsnapToRow: true,\n\t\t\t\tvisible: \"{= !${/isPhone} && !${/hasError} && (!${/isLoaded} || ${/length} > 0) }\",\n\t\t\t\tlayout: new GridContainerSettings(`${this.getId()}-layout`, {\n\t\t\t\t\tcolumns: \"{/horizontalCardCount}\",\n\t\t\t\t\tcolumnSize: \"{/cardWidth}\",\n\t\t\t\t\tgap: \"1rem\"\n\t\t\t\t})\n\t\t\t}).addStyleClass(\"sapCuxToDoCardsContainer\");\n\t\t}\n\n\t\treturn this._cardContainer;\n\t}\n\n\t/**\n\t * Generates the mobile card container (HeaderContainer) for displaying cards on mobile devices.\n\t *\n\t * @private\n\t * @returns {HeaderContainer} The generated mobile card container.\n\t */\n\tprivate _generateMobileCardContainer(): HeaderContainer {\n\t\t// Create a HeaderContainer for mobile devices\n\t\tif (!this._mobileCardContainer) {\n\t\t\tthis._mobileCardContainer = new HeaderContainer(`${this.getId()}-headerContainer`, {\n\t\t\t\tvisible: \"{= ${/isPhone} && !${/hasError} && (!${/isLoaded} || ${/length} > 0) }\",\n\t\t\t\tscrollStep: 0,\n\t\t\t\tgridLayout: true,\n\t\t\t\tscrollTime: 1000,\n\t\t\t\tshowDividers: false,\n\t\t\t\tsnapToRow: true\n\t\t\t}).addStyleClass(\"sapCuxToDoMobileCardsContainer\");\n\t\t}\n\n\t\treturn this._mobileCardContainer;\n\t}\n\n\t/**\n\t * Generates the error message card for displaying error messages.\n\t *\n\t * @private\n\t * @returns {Card} The generated error message card.\n\t */\n\tprivate _generateErrorMessage(): Card {\n\t\tif (!this._errorCard) {\n\t\t\tthis._errorMessage = new IllustratedMessage(`${this.getId()}-errorMessage`, {\n\t\t\t\tillustrationSize: IllustratedMessageSize.Base,\n\t\t\t\ttitle: \"{/illustrationTitle}\",\n\t\t\t\tdescription: \"{/illustrationDescription}\",\n\t\t\t\tillustrationType: \"{/illustrationType}\"\n\t\t\t});\n\t\t\tthis._errorCard = new Card(`${this.getId()}-errorCard`, {\n\t\t\t\tcontent: this._errorMessage,\n\t\t\t\tvisible: \"{= ${/tiles/length} === 0 || ${/hasError} === true }\"\n\t\t\t});\n\t\t}\n\n\t\treturn this._errorCard;\n\t}\n\n\t/**\n\t * Handler for the Refresh button for each panel.\n\t * Reloads the selected panel\n\t *\n\t * @async\n\t * @private\n\t */\n\tprivate _onPressRefresh(): void {\n\t\tvoid ((this.getParent() as ToDosContainer)?._getSelectedPanel() as ToDoPanel)?._loadCards(true);\n\t}\n\n\t/**\n\t * Loads the To-Do cards for the panel.\n\t *\n\t * @private\n\t * @param {boolean} forceRefresh - force refresh cards\n\t * @returns {Promise<void>} A promise that resolves when the cards are loaded.\n\t */\n\tpublic async _loadCards(forceRefresh?: boolean): Promise<void> {\n\t\tif (this._loadToDos !== undefined && !forceRefresh) {\n\t\t\treturn this._loadToDos;\n\t\t} else {\n\t\t\tthis._bindInnerControls();\n\t\t\tthis._loadToDos = new Promise((resolve) => {\n\t\t\t\tconst selectedKey = (this.getParent() as BaseContainer)?._getSelectedPanel()?.getProperty(\"key\") as string;\n\t\t\t\tconst requests: Request[] = [];\n\n\t\t\t\tthis._oData.isLoaded = false;\n\t\t\t\tthis._oData.isCountCalledOnce = false;\n\t\t\t\tthis._oData.isExpandedOnce = this._isElementExpanded();\n\t\t\t\tthis._setCount();\n\n\t\t\t\tif (this._getSupported()) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t// Load Placeholder Cards\n\t\t\t\t\t\tthis._generatePlaceHolderTiles();\n\n\t\t\t\t\t\t// Add Initial Batch Requests\n\t\t\t\t\t\trequests.push(\n\t\t\t\t\t\t\tthis._generateRequestObject({ type: selectedKey, onlyCount: !this.getProperty(\"preload\") && selectedKey !== this.getProperty(\"key\") })\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.requests = this.requests.concat(requests);\n\n\t\t\t\t\t\t//Submit Batch Requests\n\t\t\t\t\t\tthis._submitBatch()\n\t\t\t\t\t\t\t.then(async () => {\n\t\t\t\t\t\t\t\tthis._oData.isLoaded = this.getProperty(\"preload\") || selectedKey === this.getProperty(\"key\");\n\t\t\t\t\t\t\t\tthis.fireEvent(\"loaded\");\n\n\t\t\t\t\t\t\t\tthis._oData.isCountCalledOnce = true;\n\t\t\t\t\t\t\t\tthis._setCount(this._oData.length as string);\n\n\t\t\t\t\t\t\t\tthis._setSectionRefreshInterval();\n\t\t\t\t\t\t\t\tthis._oData.refreshInfo = this._toRelativeDateTime(new Date());\n\t\t\t\t\t\t\t\tthis._oData.fullRefreshInfo = this._toFullRelativeDateTime(new Date());\n\t\t\t\t\t\t\t\tthis._oData.lastRefreshedTime = new Date();\n\t\t\t\t\t\t\t\tthis._updateRefreshInformation();\n\n\t\t\t\t\t\t\t\tawait this._switchTabIfRequired();\n\t\t\t\t\t\t\t\tthis._updateHeaderIfExclusive();\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\t\t\t\tLog.error(error instanceof Error ? error.message : \"\");\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\t\t\tthis._controlModel.refresh();\n\t\t\t\t\t\t\t\tthis._adjustLayout();\n\t\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis._handleError(`User not authorized to access: + ${this.getTargetAppUrl()}`);\n\n\t\t\t\t\t// Remove Item from IconTabBar\n\t\t\t\t\t(this.getParent() as ToDosContainer)?.removeContent(this);\n\n\t\t\t\t\t//resolve the promise\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn this._loadToDos;\n\t}\n\n\t/**\n\t * Update Container Header if the panel is exclusive\n\t *\n\t * @private\n\t */\n\tprivate _updateHeaderIfExclusive() {\n\t\tif (this._isExclusivePanel()) {\n\t\t\tconst title = (this.getParent() as ToDosContainer).getTitle();\n\t\t\tconst displayTitle = title?.trim() || this._i18nBundle.getText(\"toDosTitle\");\n\t\t\t(this.getParent() as ToDosContainer)._setTitle(`${displayTitle} (${String(this._oData.length)})`);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a one-time binding of inner controls for the ToDoPanel.\n\t * @private\n\t */\n\tprivate _bindInnerControls(): void {\n\t\tif (!this._innerControlsBound) {\n\t\t\t//bind card container\n\t\t\tthis._cardContainer.bindAggregation(\"items\", {\n\t\t\t\tpath: \"/displayTiles\",\n\t\t\t\tlength: Constants.TODO_CARDS_LIMIT,\n\t\t\t\tfactory: (id, context) => this.generateCardTemplate(id, context)?.bindProperty?.(\"width\", { path: \"/cardWidth\" })\n\t\t\t});\n\n\t\t\t//bind mobile card container\n\t\t\tthis._mobileCardContainer.bindAggregation(\"content\", {\n\t\t\t\tpath: \"/displayTiles\",\n\t\t\t\tlength: Constants.TODO_CARDS_LIMIT,\n\t\t\t\tfactory: (id, context) => this.generateCardTemplate(id, context)?.bindProperty?.(\"width\", { path: \"/cardWidth\" })\n\t\t\t});\n\n\t\t\tthis._innerControlsBound = true;\n\t\t}\n\t}\n\n\t/**\n\t * Generates the card template for the Current Panel.\n\t *\n\t * @public\n\t * @param {string} id The ID for the template.\n\t * @param {object} context The context for the template.\n\t * @returns {object} The generated card template.\n\t */\n\tpublic generateCardTemplate(id: string, context: Context): Control {\n\t\treturn new GenericTile(`${id}-tile`, {\n\t\t\tmode: \"ActionMode\",\n\t\t\tframeType: \"TwoByOne\",\n\t\t\tpressEnabled: true,\n\t\t\theader: context.getProperty(\"title\") as string,\n\t\t\twidth: context.getProperty(\"/cardWidth\") as string,\n\t\t\tstate: context.getProperty(\"loadState\") as LoadState,\n\t\t\ttileContent: [\n\t\t\t\tnew TileContent(`${id}-tileContent`, {\n\t\t\t\t\tpriority: context.getProperty(\"priority\") as Priority,\n\t\t\t\t\tpriorityText: this._toPriorityText(context.getProperty(\"priority\") as Priority),\n\t\t\t\t\tfooter: context.getProperty(\"footerText\") as string,\n\t\t\t\t\tcontent: new Text(`${id}-situationContent`, {\n\t\t\t\t\t\ttext: context.getProperty(\"message\") as string\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\t}\n\n\t/**\n\t * Convert a priority string to a corresponding priority text.\n\t *\n\t * @private\n\t * @param {Priority} priority - The priority string.\n\t * @returns {string} The corresponding priority text.\n\t */\n\tpublic _toPriorityText(priority: Priority): string {\n\t\tlet key;\n\t\tif (priority === Priority.VeryHigh) {\n\t\t\tkey = \"veryHighPriority\";\n\t\t} else if (priority === Priority.High) {\n\t\t\tkey = \"highPriority\";\n\t\t} else if (priority === Priority.Medium) {\n\t\t\tkey = \"mediumPriority\";\n\t\t} else if (priority === Priority.Low) {\n\t\t\tkey = \"lowPriority\";\n\t\t} else {\n\t\t\tkey = \"nonePriority\";\n\t\t}\n\n\t\treturn this._i18nBundle.getText(key) as string;\n\t}\n\n\t/**\n\t * Generates placeholder tiles for the panel.\n\t *\n\t * @private\n\t */\n\tprivate _generatePlaceHolderTiles(): void {\n\t\tthis._cardCount = this._getVisibleCardCount({ isPlaceholder: true });\n\t\tthis._oData.displayTiles = this._oData.tiles = new Array(this._cardCount).fill({ loadState: \"Loading\" });\n\t\tthis._oData.isLoaded = this._oData.hasError = false;\n\t\tthis._controlModel.refresh();\n\t}\n\n\t/**\n\t * Calculates the number of visible cards that can fit within the available space of the To-Dos panel.\n\t *\n\t * @private\n\t * @param {CalculationProperties} [calculationProperties] - Optional properties to assist in the calculation.\n\t * @returns {number} - The number of visible cards.\n\t */\n\tprivate _getVisibleCardCount(calculationProperties?: CalculationProperties): number {\n\t\tconst layout = (this.getParent() as ToDosContainer)?._getLayout();\n\t\tlet isElementExpanded = false;\n\t\tlet targetDomRef = this._toDoWrapper?.getDomRef();\n\n\t\tif (layout) {\n\t\t\tisElementExpanded = this._isElementExpanded();\n\t\t\tconst isHeaderVisible = layout.getProperty(\"showHeader\") as boolean;\n\t\t\tconst containerDomRef = (isElementExpanded ? layout._getFullScreenContainer() : layout).getDomRef();\n\t\t\tconst sectionNodeIndex = isHeaderVisible && !isElementExpanded ? 1 : 0;\n\t\t\ttargetDomRef = containerDomRef?.childNodes[sectionNodeIndex] as Element;\n\t\t}\n\n\t\tconst isMobileDevice = this._controlModel.getProperty(\"/isPhone\") as boolean;\n\t\tlet cardCount = isMobileDevice ? Constants.TODO_SECTION_LIMIT : 1;\n\n\t\tif (targetDomRef) {\n\t\t\t// @ts-expect-error Calculate Horizontal Card Count\n\t\t\tcardCount = this.getHorizontalCardCount(targetDomRef, calculationProperties);\n\n\t\t\tif (isElementExpanded) {\n\t\t\t\t// @ts-expect-error Calculate Vertical Card Count\n\t\t\t\tcardCount *= this.getVerticalCardCount(targetDomRef, calculationProperties);\n\t\t\t}\n\n\t\t\t//Restrict cards to the maximum limit\n\t\t\tcardCount = cardCount > Constants.TODO_CARDS_LIMIT ? Constants.TODO_CARDS_LIMIT : cardCount;\n\t\t}\n\n\t\treturn cardCount;\n\t}\n\n\t/**\n\t * Checks if the current element is expanded to full screen.\n\t *\n\t * @private\n\t * @returns {boolean} - True if the element is expanded, otherwise false.\n\t */\n\tprivate _isElementExpanded(): boolean {\n\t\tconst toDosContainer = this.getParent() as ToDosContainer;\n\t\tconst layout = toDosContainer._getLayout();\n\t\treturn layout?._getCurrentExpandedElementName() === toDosContainer.getProperty(\"fullScreenName\");\n\t}\n\n\t/**\n\t * Calculates the number of horizontal cards that can fit within the available width of the given DOM element.\n\t *\n\t * @private\n\t * @param {Element} domRef - The DOM element to calculate the horizontal card count for.\n\t * @returns {number} - The number of horizontal cards that can fit within the available width.\n\t */\n\tprotected getHorizontalCardCount(domRef: Element): number {\n\t\tconst domProperties = fetchElementProperties(domRef, [\"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\t\tconst actualCardCount = this._oData.length as number;\n\t\tconst isMobileDevice = this._controlModel.getProperty(\"/isPhone\") as boolean;\n\t\tlet horizontalCardCount;\n\t\tconst minWidth = this.getProperty(\"minCardWidth\") as number;\n\t\tconst maxWidth = this.getProperty(\"maxCardWidth\") as number;\n\t\tconst cardLayoutConfig = {\n\t\t\tcontainerWidth: availableWidth,\n\t\t\ttotalCards: actualCardCount,\n\t\t\tminWidth: minWidth,\n\t\t\tmaxWidth: maxWidth,\n\t\t\tgap: Constants.GAP\n\t\t};\n\t\tconst cardWidth = calculateCardWidth(cardLayoutConfig);\n\t\tif (isMobileDevice) {\n\t\t\thorizontalCardCount = Constants.TODO_SECTION_LIMIT;\n\t\t} else {\n\t\t\thorizontalCardCount = Math.max(Math.floor(availableWidth / cardWidth), 1);\n\t\t}\n\n\t\t// Calculate Horizontal Card Count\n\t\tthis._controlModel.setProperty(\"/cardWidth\", `${cardWidth / 16}rem`);\n\t\tthis._controlModel.setProperty(\"/horizontalCardCount\", horizontalCardCount);\n\n\t\treturn horizontalCardCount;\n\t}\n\n\t/**\n\t * Calculates the number of vertical cards that can fit within the available height of the given DOM element.\n\t *\n\t * @private\n\t * @param {Element} domRef - The DOM element to calculate the vertical card count for.\n\t * @returns {number} - The number of vertical cards that can fit within the available height.\n\t */\n\tprotected getVerticalCardCount(domRef: Element): number {\n\t\tconst sectionDomProperties = fetchElementProperties(domRef, [\"padding-top\"]);\n\t\tconst parentDomProperties = fetchElementProperties(domRef.parentElement as Element, [\"height\"]);\n\t\tconst titleHeight = this.calculateTitleHeight();\n\t\tconst availableHeight = parentDomProperties.height - sectionDomProperties[\"padding-top\"] * 2 - titleHeight;\n\t\tconst margin = 14;\n\t\tconst cardHeight = Constants.DEFAULT_CARD_HEIGHT + margin;\n\t\tconst verticalCardCount = Math.max(Math.floor(availableHeight / cardHeight), 2); //minimum of 2 rows should be displayed\n\n\t\treturn verticalCardCount;\n\t}\n\n\t/**\n\t * Calculates the combined height of the title and tab header for the To-Dos panel.\n\t *\n\t * @private\n\t * @returns {number} - The combined height of the title and tab header.\n\t */\n\tprotected calculateTitleHeight(): number {\n\t\tconst container = this.getParent() as ToDosContainer;\n\t\tconst containerHeaderRef = UI5Element.getElementById(`${container.getId()}-header`)?.getDomRef();\n\t\tconst iconTabBarHeaderRef = UI5Element.getElementById(`${container._getInnerControl().getId()}--header`)?.getDomRef();\n\t\tconst defaultHeight = Constants.DEFAULT_TITLE_HEIGHT + Constants.DEFAULT_TAB_HEADER_HEIGHT;\n\t\tlet titleHeight = 0;\n\n\t\tif (containerHeaderRef && iconTabBarHeaderRef) {\n\t\t\ttitleHeight = containerHeaderRef.clientHeight + iconTabBarHeaderRef.clientHeight;\n\t\t}\n\n\t\treturn Math.max(titleHeight, defaultHeight);\n\t}\n\n\t/**\n\t * Generates a request object for batch requests.\n\t *\n\t * @private\n\t * @param {RequestOptions} options - Additional properties for generating the request object.\n\t * @param {boolean} [options.onlyCount] - Whether to include only the count in the request.\n\t * @returns {Object} The generated request object.\n\t */\n\tprivate _generateRequestObject(options: RequestOptions): Request {\n\t\tconst cardCount = this._getVisibleCardCount();\n\t\tconst countUrl = this.getCountUrl();\n\t\tconst urls = this.generateRequestUrls?.(cardCount);\n\n\t\tif (countUrl && options?.onlyCount) {\n\t\t\turls.splice(1);\n\t\t}\n\n\t\treturn {\n\t\t\tbaseURL: this.getBaseUrl(),\n\t\t\trequestURLs: urls,\n\t\t\tsuccess: async (args: unknown[]): Promise<void> => {\n\t\t\t\t//data process extension for panels\n\t\t\t\tawait this.onDataReceived(countUrl ? args.splice(1) : args, options);\n\n\t\t\t\t//set card count and handle empty cards\n\t\t\t\tthis._oData.length = countUrl ? Number(args[0]) : (this._oData.tiles as object[]).length;\n\t\t\t\tthis._handleEmptyCards();\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Generates request URLs for fetching data based on the specified card count.\n\t *\n\t * @public\n\t * @param {number} cardCount - The number of cards to retrieve.\n\t * @returns {string[]} An array of request URLs.\n\t */\n\tpublic generateRequestUrls(cardCount: number): string[] {\n\t\tconst urls = [];\n\t\tconst countUrl = this.getCountUrl();\n\n\t\tif (countUrl) {\n\t\t\turls.push(countUrl);\n\t\t}\n\n\t\tlet dataUrl = this.getDataUrl();\n\t\tif (this.getProperty(\"useBatch\")) {\n\t\t\tconst queryString = this.getProperty(\"preload\") ? \"\" : `$skip=0&$top=${cardCount}`;\n\t\t\tdataUrl = dataUrl.includes(\"?\") ? `${dataUrl}&${queryString}` : `${dataUrl}?${queryString}`;\n\t\t}\n\t\turls.push(dataUrl);\n\n\t\treturn urls;\n\t}\n\n\t/**\n\t * A promise that resolves when the data has been processed.\n\t * This method can be overridden to perform additional data processing operations.\n\t *\n\t * @public\n\t * @async\n\t * @param {unknown[]} results - Data retrieved from the batch call.\n\t * @param {RequestOptions} options - Additional options for parsing the data.\n\t * Structure may vary based on the backend service.\n\t */\n\tpublic async onDataReceived(results: unknown[] = [], options?: RequestOptions): Promise<void> {\n\t\tif (!options || (options && !options.onlyCount)) {\n\t\t\tthis._oData.displayTiles = this._oData.tiles = results[0] || [];\n\t\t}\n\n\t\tawait Promise.resolve();\n\t}\n\n\t/**\n\t * Handles the scenario when there are no cards to display.\n\t * Updates the illustration and description based on the selected panel and card count.\n\t *\n\t * @private\n\t */\n\tprivate _handleEmptyCards() {\n\t\tif (Number(this._oData.length) === 0) {\n\t\t\tthis._oData.illustrationType = \"sapIllus-EmptyPlanningCalendar\";\n\t\t\tthis._oData.illustrationTitle = this._isExclusivePanel() ? this._i18nBundle.getText(\"noToDoTitle\") : this.getNoDataText();\n\t\t\tthis._oData.illustrationDescription = this._isExclusivePanel()\n\t\t\t\t? this._i18nBundle.getText(\"noToDoDesc\")\n\t\t\t\t: this._i18nBundle.getText(\"emptyToDoDesc\");\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the panel is exclusive based on support and the number of panels.\n\t *\n\t * @private\n\t * @returns {boolean} True if the panel is exclusive, otherwise false.\n\t */\n\tprivate _isExclusivePanel(): boolean {\n\t\tconst allPanels = (this.getParent() as ToDosContainer).getContent() as ToDoPanel[];\n\t\tconst supportedPanels = allPanels.filter((panel) => panel._getSupported());\n\n\t\treturn supportedPanels.length === 1 || (allPanels.length === 1 && this._getSupported());\n\t}\n\n\t/**\n\t * Sets the interval for refreshing the section.\n\t *\n\t * @private\n\t */\n\tprivate _setSectionRefreshInterval(): void {\n\t\tclearInterval(this._oData.refreshFn as number);\n\t\tthis._oData.refreshFn = setInterval(() => {\n\t\t\tthis._oData.lastRefreshedTime = this._oData.lastRefreshedTime || new Date();\n\t\t\tthis._oData.refreshInfo = this._toRelativeDateTime(this._oData.lastRefreshedTime as Date);\n\t\t\tthis._oData.fullRefreshInfo = this._toFullRelativeDateTime(this._oData.lastRefreshedTime as Date);\n\t\t\tthis._updateRefreshInformation();\n\t\t}, Constants.TODOS_REFRESH_INTERVAL);\n\t}\n\n\t/**\n\t * Updates the refresh information and adjusts the layout.\n\t *\n\t * @private\n\t */\n\tpublic _updateRefreshInformation(): void {\n\t\tconst container = this.getParent() as ToDosContainer;\n\t\tif (container.getProperty(\"selectedKey\") === this.getProperty(\"key\")) {\n\t\t\tthis._refreshBtn.setProperty(\"text\", this._oData.refreshInfo, true);\n\t\t\tthis._accRefreshLabel.setProperty(\"text\", this._oData.fullRefreshInfo, true);\n\t\t\tthis._refreshBtn.setAggregation(\"tooltip\", this._oData.fullRefreshInfo as ManagedObject, true);\n\t\t\tcontainer._updateContainerHeader(this);\n\t\t}\n\n\t\tthis._adjustLayout();\n\t}\n\n\t/**\n\t * Adjusts the layout based on card count and device type.\n\t *\n\t * @private\n\t */\n\tpublic _adjustLayout() {\n\t\t// Update visible cards\n\t\tconst cardCount = this._getVisibleCardCount();\n\t\tif ((this._oData.tiles as object[]).length && !this._oData.hasError) {\n\t\t\tconst displayCards = (this._oData.tiles as object[]).slice(0, cardCount);\n\t\t\tthis._controlModel.setProperty(\"/displayTiles\", displayCards);\n\t\t}\n\n\t\t// Update if device type is phone\n\t\tthis._controlModel.setProperty(\"/isPhone\", this.getDeviceType() === DeviceType.Mobile);\n\n\t\t// Show/Hide Full Screen Button if available\n\t\t(this.getParent() as ToDosContainer)?.toggleFullScreenElements(\n\t\t\tthis,\n\t\t\tthis._isElementExpanded() || Number(this._oData.length) > cardCount\n\t\t);\n\t}\n\n\t/**\n\t * Formats the given date to a relative date.\n\t *\n\t * @private\n\t * @param {Date} date Date object or Date String\n\t * @returns {string} Formatted Date\n\t */\n\tpublic _toRelativeDateTime(date: Date): string {\n\t\tconst inputDate = new Date(date);\n\t\treturn isNaN(Number(inputDate)) ? \"\" : ToDoPanel.relativeDateFormatter.format(inputDate);\n\t}\n\n\t/**\n\t * Formats the given date to a relative date string with full units (e.g., \"2 minutes ago\").\n\t * Intended for accessibility use such as screen readers.\n\t *\n\t * @private\n\t * @param {Date} date Date object or date string\n\t * @returns {string} Fully formatted relative date string\n\t */\n\tprivate _toFullRelativeDateTime(date: Date): string {\n\t\tconst inputDate = new Date(date);\n\t\treturn isNaN(Number(inputDate)) ? \"\" : ToDoPanel.fullRelativeDateFormatter.format(inputDate);\n\t}\n\n\t/**\n\t * Get the text for the \"No Data\" message.\n\t *\n\t * @public\n\t * @returns {string} The text for the \"No Data\" message.\n\t */\n\tpublic getNoDataText(): string {\n\t\treturn this._i18nBundle.getText(\"noData\") as string;\n\t}\n\n\t/**\n\t * Parses the response object and returns the appropriate value.\n\t *\n\t * @private\n\t * @param {Object} response - The response object.\n\t * @param {Object} [response.d] - The 'd' property of the response object.\n\t * @param {Array} [response.d.results] - The results array.\n\t * @param {string|number} [response.d] - The 'd' property of the response object which may contain a numeric value.\n\t * @param {string|number} [response] - The response object which may contain a numeric value.\n\t * @param {string|number} [response.value] - The 'value' property of the response object which may contain a numeric value.\n\t * @returns {Response} - The parsed value extracted from the response object.\n\t */\n\tprivate _parseResponse(response: Response): Response {\n\t\tconst { d = {}, value } = response || {};\n\t\tconst results = d?.results;\n\t\tconst numericD = !isNaN(+d) && +d;\n\t\tconst numericResponse = !isNaN(+response) && +response;\n\n\t\treturn (results || numericD || numericResponse || value || response || 0) as Response;\n\t}\n\n\t/**\n\t * Submits a batch request for multiple URLs and processes the responses.\n\t *\n\t * @private\n\t * @returns {Promise} A Promise that resolves when all batch requests are completed.\n\t */\n\tprotected _submitBatch(): Promise<unknown[]> {\n\t\treturn Promise.all(\n\t\t\tthis.requests.map(async (request: Request) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst useBatch = this.getProperty(\"useBatch\") as boolean;\n\t\t\t\t\tlet responses = useBatch\n\t\t\t\t\t\t? await this.batchHelper.createMultipartRequest(request.baseURL, request.requestURLs)\n\t\t\t\t\t\t: await HttpHelper.GetMultipleRequests(request.requestURLs);\n\n\t\t\t\t\tif (responses.length) {\n\t\t\t\t\t\tconst processedResponses = responses.map((response: string | Response) => {\n\t\t\t\t\t\t\tif (typeof response === \"string\") {\n\t\t\t\t\t\t\t\tresponse = JSON.parse(response) as Response;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn this._parseResponse(response);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// Call success callback, if any\n\t\t\t\t\t\tif (request.success && typeof request.success === \"function\") {\n\t\t\t\t\t\t\tawait request.success(processedResponses);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn processedResponses;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Error(\"Invalid response\");\n\t\t\t\t\t}\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tthis._handleError(error);\n\t\t\t\t} finally {\n\t\t\t\t\tthis._clearRequests();\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\t/**\n\t * Handles errors by updating the data and logging the error.\n\t *\n\t * @private\n\t * @param {Error} error - The error object to handle.\n\t */\n\tprivate _handleError(error: unknown) {\n\t\tthis._oData.displayTiles = this._oData.tiles = [];\n\t\tthis._oData.getSupported = this._oData.isLoaded = this._oData.hasError = true;\n\t\tthis._oData.illustrationType = \"sapIllus-UnableToLoad\";\n\t\tthis._oData.illustrationTitle = this._oData.illustrationDescription = \"\";\n\n\t\tLog.error(error as string);\n\t\tthis._controlModel.refresh();\n\t}\n\n\t/**\n\t * Clears the list of requests.\n\t *\n\t * @private\n\t */\n\tprotected _clearRequests() {\n\t\tthis.requests = [];\n\t}\n\n\t/**\n\t * Checks if the panel is loaded.\n\t *\n\t * @private\n\t * @returns {boolean} true if the panel is loaded, false otherwise.\n\t */\n\tpublic _isLoaded(): boolean {\n\t\tconst parentContainer = this.getParent() as ToDosContainer;\n\t\tconst isContainerExpanded = parentContainer?._getLayout()?.getProperty(\"expanded\") as boolean;\n\n\t\tconst { isLoaded, isExpandedOnce } = this._oData;\n\n\t\tif (!isContainerExpanded) {\n\t\t\treturn isLoaded as boolean;\n\t\t}\n\n\t\treturn (isExpandedOnce && isLoaded) as boolean;\n\t}\n\n\t/**\n\t * Set the loaded status of the ToDoPanel.\n\t *\n\t * @private\n\t * @param {boolean} isLoaded - The new loaded status to set for the ToDoPanel.\n\t */\n\tpublic _setLoaded(isLoaded: boolean): void {\n\t\tthis._oData.isLoaded = isLoaded;\n\t}\n\n\t/**\n\t * Gets the supported status of the panel.\n\t *\n\t * @private\n\t * @returns {boolean} The supported status of the panel.\n\t */\n\tpublic _getSupported(): boolean {\n\t\treturn this._oData.getSupported as boolean;\n\t}\n\n\t/**\n\t * Sets the supported status of the panel.\n\t *\n\t * @private\n\t * @param {boolean} value - The value to set for supported status.\n\t */\n\tpublic _setSupported(isSupported: boolean): void {\n\t\tthis._oData.getSupported = isSupported;\n\t}\n\n\t/**\n\t * Extracts the app intent from the target app URL.\n\t *\n\t * @private\n\t * @returns {Intent | null} The app intent object with target and parameters, or null if not found.\n\t */\n\tpublic _getAppIntent(): Intent | null {\n\t\tconst pattern = /#([^?-]+)-([^?#]+)(?:\\?([^#]+))?(?:#.*)?/;\n\t\tconst match = this.getTargetAppUrl().match(pattern);\n\n\t\tif (match) {\n\t\t\tconst target = {\n\t\t\t\tsemanticObject: match[1],\n\t\t\t\taction: match[2]\n\t\t\t};\n\t\t\tconst params = {} as Record<string, string>;\n\n\t\t\tif (match[3]) {\n\t\t\t\tconst paramsArray = match[3].split(\"&\");\n\t\t\t\tfor (const param of paramsArray) {\n\t\t\t\t\tconst [key, value] = param.split(\"=\");\n\t\t\t\t\tparams[key] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttarget,\n\t\t\t\tparams\n\t\t\t};\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * Switch to available tab if current panel has empty cards or has error\n\t *\n\t * @private\n\t * @async\n\t */\n\tprivate async _switchTabIfRequired() {\n\t\tconst container = this.getParent() as ToDosContainer;\n\t\tconst selectedKey = container?.getProperty(\"selectedKey\") as string;\n\n\t\tif (selectedKey === this.getProperty(\"key\") && (this._oData.length === 0 || this._oData.hasError)) {\n\t\t\tlet nextAvailablePanel;\n\t\t\tconst panels = container?.getAggregation(\"content\") as ToDoPanel[];\n\n\t\t\tfor (const panel of panels) {\n\t\t\t\tif (panel !== this) {\n\t\t\t\t\t//ensure that panel is loaded first\n\t\t\t\t\tawait panel._loadCards();\n\n\t\t\t\t\tif (panel._getSupported() && !panel._isLoaded() && panel._getCardCount() > 0) {\n\t\t\t\t\t\tnextAvailablePanel = panel;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (nextAvailablePanel) {\n\t\t\t\tcontainer?.setProperty(\"selectedKey\", nextAvailablePanel.getProperty(\"key\"));\n\t\t\t\tToDosContainer.cardCount = this._cardCount;\n\t\t\t\tawait nextAvailablePanel._loadCards(true);\n\t\t\t\tToDosContainer.cardCount = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handles the press event to view all items.\n\t *\n\t * @private\n\t */\n\tpublic _onPressViewAll() {\n\t\tURLHelper.redirect(this.getTargetAppUrl(), false);\n\t\taddFESRNavigationSource(FESRNavigationSource.Task);\n\t}\n\n\t/**\n\t * Retrieves the count of cards in the panel.\n\t *\n\t * @private\n\t * @returns {number} The number of cards.\n\t */\n\tpublic _getCardCount(): number {\n\t\treturn Number(this._oData.length);\n\t}\n\n\t/**\n\t * Handles actions to be performed before the To-Dos panel is expanded.\n\t * If the panel has not been expanded before in full screen, the cards will be loaded once.\n\t *\n\t * @private\n\t */\n\tprivate async _beforePanelExpand() {\n\t\tif (!this._oData.isExpandedOnce) {\n\t\t\tthis._oData.isExpandedOnce = true;\n\t\t\tif (!this.getProperty(\"preload\")) {\n\t\t\t\tawait this._loadCards(true);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Exit lifecycle method.\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic exit() {\n\t\tclearInterval(this._oData.refreshFn as number);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,7 +33,7 @@ import { $ToDoPanelSettings } from "./ToDoPanel";
|
|
|
33
33
|
import ToDosContainer from "./ToDosContainer";
|
|
34
34
|
import BatchHelper from "./utils/BatchHelper";
|
|
35
35
|
import { calculateCardWidth, DeviceType, fetchElementProperties } from "./utils/Device";
|
|
36
|
-
import { addFESRId } from "./utils/FESRUtil";
|
|
36
|
+
import { addFESRId, addFESRNavigationSource, FESRNavigationSource } from "./utils/FESRUtil";
|
|
37
37
|
import HttpHelper from "./utils/HttpHelper";
|
|
38
38
|
|
|
39
39
|
interface Request {
|
|
@@ -171,7 +171,13 @@ export default abstract class ToDoPanel extends BasePanel implements IToDoPanel
|
|
|
171
171
|
*
|
|
172
172
|
* @private
|
|
173
173
|
*/
|
|
174
|
-
useBatch: { type: "boolean", group: "Misc", defaultValue: true, visibility: "hidden" }
|
|
174
|
+
useBatch: { type: "boolean", group: "Misc", defaultValue: true, visibility: "hidden" },
|
|
175
|
+
/**
|
|
176
|
+
* Specifies whether the panel data should be preloaded.
|
|
177
|
+
*
|
|
178
|
+
* @private
|
|
179
|
+
*/
|
|
180
|
+
preload: { type: "boolean", group: "Data", defaultValue: false, visibility: "hidden" },
|
|
175
181
|
},
|
|
176
182
|
aggregations: {
|
|
177
183
|
/**
|
|
@@ -297,7 +303,7 @@ export default abstract class ToDoPanel extends BasePanel implements IToDoPanel
|
|
|
297
303
|
// Create a HeaderContainer for mobile devices
|
|
298
304
|
if (!this._mobileCardContainer) {
|
|
299
305
|
this._mobileCardContainer = new HeaderContainer(`${this.getId()}-headerContainer`, {
|
|
300
|
-
visible: "{/isPhone}",
|
|
306
|
+
visible: "{= ${/isPhone} && !${/hasError} && (!${/isLoaded} || ${/length} > 0) }",
|
|
301
307
|
scrollStep: 0,
|
|
302
308
|
gridLayout: true,
|
|
303
309
|
scrollTime: 1000,
|
|
@@ -371,14 +377,14 @@ export default abstract class ToDoPanel extends BasePanel implements IToDoPanel
|
|
|
371
377
|
|
|
372
378
|
// Add Initial Batch Requests
|
|
373
379
|
requests.push(
|
|
374
|
-
this._generateRequestObject({ type: selectedKey, onlyCount: selectedKey !== this.getProperty("key") })
|
|
380
|
+
this._generateRequestObject({ type: selectedKey, onlyCount: !this.getProperty("preload") && selectedKey !== this.getProperty("key") })
|
|
375
381
|
);
|
|
376
382
|
this.requests = this.requests.concat(requests);
|
|
377
383
|
|
|
378
384
|
//Submit Batch Requests
|
|
379
385
|
this._submitBatch()
|
|
380
386
|
.then(async () => {
|
|
381
|
-
this._oData.isLoaded = selectedKey === this.getProperty("key");
|
|
387
|
+
this._oData.isLoaded = this.getProperty("preload") || selectedKey === this.getProperty("key");
|
|
382
388
|
this.fireEvent("loaded");
|
|
383
389
|
|
|
384
390
|
this._oData.isCountCalledOnce = true;
|
|
@@ -424,7 +430,9 @@ export default abstract class ToDoPanel extends BasePanel implements IToDoPanel
|
|
|
424
430
|
*/
|
|
425
431
|
private _updateHeaderIfExclusive() {
|
|
426
432
|
if (this._isExclusivePanel()) {
|
|
427
|
-
(this.getParent() as ToDosContainer).
|
|
433
|
+
const title = (this.getParent() as ToDosContainer).getTitle();
|
|
434
|
+
const displayTitle = title?.trim() || this._i18nBundle.getText("toDosTitle");
|
|
435
|
+
(this.getParent() as ToDosContainer)._setTitle(`${displayTitle} (${String(this._oData.length)})`);
|
|
428
436
|
}
|
|
429
437
|
}
|
|
430
438
|
|
|
@@ -693,7 +701,7 @@ export default abstract class ToDoPanel extends BasePanel implements IToDoPanel
|
|
|
693
701
|
|
|
694
702
|
let dataUrl = this.getDataUrl();
|
|
695
703
|
if (this.getProperty("useBatch")) {
|
|
696
|
-
const queryString = `$skip=0&$top=${cardCount}`;
|
|
704
|
+
const queryString = this.getProperty("preload") ? "" : `$skip=0&$top=${cardCount}`;
|
|
697
705
|
dataUrl = dataUrl.includes("?") ? `${dataUrl}&${queryString}` : `${dataUrl}?${queryString}`;
|
|
698
706
|
}
|
|
699
707
|
urls.push(dataUrl);
|
|
@@ -1050,6 +1058,7 @@ export default abstract class ToDoPanel extends BasePanel implements IToDoPanel
|
|
|
1050
1058
|
*/
|
|
1051
1059
|
public _onPressViewAll() {
|
|
1052
1060
|
URLHelper.redirect(this.getTargetAppUrl(), false);
|
|
1061
|
+
addFESRNavigationSource(FESRNavigationSource.Task);
|
|
1053
1062
|
}
|
|
1054
1063
|
|
|
1055
1064
|
/**
|
|
@@ -1071,7 +1080,9 @@ export default abstract class ToDoPanel extends BasePanel implements IToDoPanel
|
|
|
1071
1080
|
private async _beforePanelExpand() {
|
|
1072
1081
|
if (!this._oData.isExpandedOnce) {
|
|
1073
1082
|
this._oData.isExpandedOnce = true;
|
|
1074
|
-
|
|
1083
|
+
if (!this.getProperty("preload")) {
|
|
1084
|
+
await this._loadCards(true);
|
|
1085
|
+
}
|
|
1075
1086
|
}
|
|
1076
1087
|
}
|
|
1077
1088
|
|
|
@@ -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/ushell/Container", "./BaseContainer", "./utils/
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/ushell/Container", "./BaseContainer", "./utils/Device", "./utils/placeholder/ToDosPlaceholder"], function (Log, Container, __BaseContainer, ___utils_Device, ___utils_placeholder_ToDosPlaceholder) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -114,7 +114,7 @@ sap.ui.define(["sap/base/Log", "sap/ushell/Container", "./BaseContainer", "./uti
|
|
|
114
114
|
_cycle();
|
|
115
115
|
return pact;
|
|
116
116
|
}
|
|
117
|
-
const
|
|
117
|
+
const DeviceType = ___utils_Device["DeviceType"];
|
|
118
118
|
function _forOf(target, body, check) {
|
|
119
119
|
if (typeof target[_iteratorSymbol] === "function") {
|
|
120
120
|
var iterator = target[_iteratorSymbol](),
|
|
@@ -175,7 +175,7 @@ sap.ui.define(["sap/base/Log", "sap/ushell/Container", "./BaseContainer", "./uti
|
|
|
175
175
|
return body(values[i]);
|
|
176
176
|
}, check);
|
|
177
177
|
}
|
|
178
|
-
const
|
|
178
|
+
const getTodosPlaceholder = ___utils_placeholder_ToDosPlaceholder["getTodosPlaceholder"];
|
|
179
179
|
/**
|
|
180
180
|
*
|
|
181
181
|
* Container class for managing and storing To-Do cards.
|