@sapui5/sap.cux.home 1.141.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 +0 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +0 -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 +59 -58
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.ts +39 -33
- 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 +30 -16
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +29 -13
- 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 +2 -1
- package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.ts +4 -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/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/CardsPanel.d.ts +7 -0
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.js +130 -111
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +17 -6
- 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/FavAppPanel.d.ts +0 -10
- package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FavAppPanel.js +258 -313
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +7 -56
- 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/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 +90 -57
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +50 -22
- 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 +1 -1
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +2 -6
- 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/SideBySideIconTabFilter.d.ts +10 -0
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js +11 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.ts +11 -0
- 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 +12 -6
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +1 -1
- 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/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/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/fragment/appsAdditionContent.fragment.xml +1 -1
|
@@ -50,8 +50,6 @@ import SimpleForm from "sap/ui/layout/form/SimpleForm";
|
|
|
50
50
|
import { form } from "sap/ui/layout/library";
|
|
51
51
|
import Config from "sap/ushell/Config";
|
|
52
52
|
import Container from "sap/ushell/Container";
|
|
53
|
-
import MyHomeImport from "sap/ushell/components/pages/MyHomeImport";
|
|
54
|
-
import PageRuntime from "sap/ushell/components/pages/controller/PageRuntime.controller";
|
|
55
53
|
import Navigation from "sap/ushell/services/Navigation";
|
|
56
54
|
import Pages from "sap/ushell/services/Pages";
|
|
57
55
|
import { IExportData } from "./AdvancedSettingsPanel";
|
|
@@ -80,7 +78,7 @@ import { IMoveConfig } from "./utils/AppManager";
|
|
|
80
78
|
import { DEFAULT_BG_COLOR, END_USER_COLORS, MYAPPS_SECTION_ID, MYHOME_PAGE_ID } from "./utils/Constants";
|
|
81
79
|
import { getLeanURL, recycleId } from "./utils/DataFormatUtils";
|
|
82
80
|
import { DeviceType } from "./utils/Device";
|
|
83
|
-
import { addFESRId, addFESRSemanticStepName } from "./utils/FESRUtil";
|
|
81
|
+
import { addFESRId, addFESRNavigationSource, addFESRSemanticStepName, FESRNavigationSource } from "./utils/FESRUtil";
|
|
84
82
|
import { sortMenuItems } from "./utils/InsightsUtils";
|
|
85
83
|
const _showAddApps = () => {
|
|
86
84
|
return (Config.last("/core/shell/enablePersonalization") || Config.last("/core/catalog/enabled")) as boolean;
|
|
@@ -123,7 +121,6 @@ export default class FavAppPanel extends BaseAppPersPanel {
|
|
|
123
121
|
private _currentItem!: App | Group;
|
|
124
122
|
private _cutApp: GenericTile | undefined;
|
|
125
123
|
private oEventBus!: EventBus;
|
|
126
|
-
private _importButton!: Button;
|
|
127
124
|
private _createGroupMenuItem!: MenuItem;
|
|
128
125
|
private _isInitialLoad = true;
|
|
129
126
|
|
|
@@ -159,7 +156,7 @@ export default class FavAppPanel extends BaseAppPersPanel {
|
|
|
159
156
|
this.setProperty("title", this._i18nBundle.getText("favoritesTab"));
|
|
160
157
|
this.setProperty("tooltip", this._i18nBundle.getText("favAppsInfo"));
|
|
161
158
|
//Setup Action Buttons
|
|
162
|
-
|
|
159
|
+
this._createActionButtons();
|
|
163
160
|
//Setup Menu Items
|
|
164
161
|
this._createHeaderMenuItems();
|
|
165
162
|
//add drag and drop config
|
|
@@ -188,14 +185,6 @@ export default class FavAppPanel extends BaseAppPersPanel {
|
|
|
188
185
|
},
|
|
189
186
|
this
|
|
190
187
|
);
|
|
191
|
-
this.oEventBus.subscribe(
|
|
192
|
-
"importChannel",
|
|
193
|
-
"resetImported",
|
|
194
|
-
async () => {
|
|
195
|
-
await this.setImportButtonVisibility(true);
|
|
196
|
-
},
|
|
197
|
-
this
|
|
198
|
-
);
|
|
199
188
|
this.attachPersistDialog(() => {
|
|
200
189
|
// if while navigating to different page, a group detail dialog was open, then while navigating back group detail dialog should be in open state.
|
|
201
190
|
if (this._selectedGroupId) {
|
|
@@ -205,6 +194,9 @@ export default class FavAppPanel extends BaseAppPersPanel {
|
|
|
205
194
|
|
|
206
195
|
document.addEventListener("click", (event) => this._resetCutElement(event));
|
|
207
196
|
document.addEventListener("keydown", (event) => this._resetCutElement(event));
|
|
197
|
+
this.additionalInfo = {
|
|
198
|
+
fesrSource: FESRNavigationSource.Favorite
|
|
199
|
+
};
|
|
208
200
|
}
|
|
209
201
|
|
|
210
202
|
private _importdone() {
|
|
@@ -609,7 +601,7 @@ export default class FavAppPanel extends BaseAppPersPanel {
|
|
|
609
601
|
* Creates actions buttons for panel.
|
|
610
602
|
* @private
|
|
611
603
|
*/
|
|
612
|
-
private
|
|
604
|
+
private _createActionButtons() {
|
|
613
605
|
if (!this._actionButtons) {
|
|
614
606
|
this._actionButtons = [];
|
|
615
607
|
if (_showAddApps()) {
|
|
@@ -628,29 +620,6 @@ export default class FavAppPanel extends BaseAppPersPanel {
|
|
|
628
620
|
this._actionButtons.forEach((actionButton) => {
|
|
629
621
|
this.addAggregation("actionButtons", actionButton);
|
|
630
622
|
});
|
|
631
|
-
const isImportEnabled = await this._validateAppsMigration();
|
|
632
|
-
if (isImportEnabled) {
|
|
633
|
-
this._createImportButton();
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
private _createImportButton(): Button {
|
|
638
|
-
if (!this._importButton) {
|
|
639
|
-
this._importButton = new Button(`${this.getId()}-importAppsBtn`, {
|
|
640
|
-
tooltip: this._i18nBundle.getText("importAppsNow"),
|
|
641
|
-
text: this._i18nBundle.getText("importAppsNow"),
|
|
642
|
-
press: this._openImportAppsDialog.bind(this)
|
|
643
|
-
});
|
|
644
|
-
addFESRId(this._importButton, "importAppsDialog");
|
|
645
|
-
this._actionButtons.push(this._importButton);
|
|
646
|
-
this.insertAggregation("actionButtons", this._importButton, 0);
|
|
647
|
-
}
|
|
648
|
-
return this._importButton;
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
private async setImportButtonVisibility(bVisible: boolean): Promise<void> {
|
|
652
|
-
await MyHomeImport.setImportEnabled(bVisible);
|
|
653
|
-
this._createImportButton().setVisible(bVisible);
|
|
654
623
|
}
|
|
655
624
|
|
|
656
625
|
/**
|
|
@@ -927,25 +896,7 @@ export default class FavAppPanel extends BaseAppPersPanel {
|
|
|
927
896
|
shellHash: `Shell-appfinder?&/catalog/${JSON.stringify(navigationObject)}`
|
|
928
897
|
}
|
|
929
898
|
});
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
/**
|
|
933
|
-
* Validates if import apps is enabled
|
|
934
|
-
*
|
|
935
|
-
*@returns {Promise} - resolves to boolean value (import is enabled/disabled)
|
|
936
|
-
*/
|
|
937
|
-
private async _validateAppsMigration() {
|
|
938
|
-
try {
|
|
939
|
-
return await MyHomeImport.isImportEnabled();
|
|
940
|
-
} catch (error: unknown) {
|
|
941
|
-
Log.warning(error instanceof Error ? error.message : "Error while checking if import apps is enabled");
|
|
942
|
-
return false;
|
|
943
|
-
}
|
|
944
|
-
}
|
|
945
|
-
|
|
946
|
-
private _openImportAppsDialog() {
|
|
947
|
-
const pageRuntime = new PageRuntime();
|
|
948
|
-
pageRuntime.onImportDialogPress();
|
|
899
|
+
addFESRNavigationSource(FESRNavigationSource.AppFinder);
|
|
949
900
|
}
|
|
950
901
|
|
|
951
902
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrequentAppPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/FrequentAppPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAC;IAO/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAM3D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;IAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"FrequentAppPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/FrequentAppPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAC;IAO/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAM3D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;IAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;IAMjE;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,gBAAgB;QAC7D,OAAO,CAAC,SAAS,CAAY;QAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CASvC;QAEF;;;;;WAKG;oBACgB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB;QAKtD,IAAI;QA0BX;;;WAGG;QACU,QAAQ;QAcrB;;;;WAIG;gBACW,0BAA0B;QAaxC;;;;;WAKG;QACH,OAAO,CAAC,WAAW;QAgBnB;;;;;WAKG;QACH,SAAS,CAAC,0BAA0B;KAMpC;CAEA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus", "sap/ushell/Container", "sap/ushell/EventHub", "./BaseAppPersPanel", "./MenuItem"], function (Log, EventBus, Container, EventHub, __BaseAppPersPanel, __MenuItem) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus", "sap/ushell/Container", "sap/ushell/EventHub", "./BaseAppPersPanel", "./MenuItem", "./utils/FESRUtil"], function (Log, EventBus, Container, EventHub, __BaseAppPersPanel, __MenuItem, ___utils_FESRUtil) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -21,6 +21,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus", "sap/ushell/Container", "
|
|
|
21
21
|
}
|
|
22
22
|
const BaseAppPersPanel = _interopRequireDefault(__BaseAppPersPanel);
|
|
23
23
|
const MenuItem = _interopRequireDefault(__MenuItem);
|
|
24
|
+
const FESRNavigationSource = ___utils_FESRUtil["FESRNavigationSource"];
|
|
24
25
|
/**
|
|
25
26
|
*
|
|
26
27
|
* Provides the class for managing frequent apps.
|
|
@@ -80,6 +81,9 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus", "sap/ushell/Container", "
|
|
|
80
81
|
//update color of the app in most used apps
|
|
81
82
|
this._applyUngroupedTileColor(item, color);
|
|
82
83
|
}, this);
|
|
84
|
+
this.additionalInfo = {
|
|
85
|
+
fesrSource: FESRNavigationSource.FrequentlyUsed
|
|
86
|
+
};
|
|
83
87
|
},
|
|
84
88
|
/**
|
|
85
89
|
* Fetch frequent apps and set apps aggregation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrequentAppPanel.js","names":["sap","ui","define","Log","EventBus","Container","EventHub","__BaseAppPersPanel","__MenuItem","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BaseAppPersPanel","MenuItem","FrequentAppPanel","extend","metadata","library","defaultAggregation","aggregations","apps","type","singularName","multiple","visibility","constructor","_constructor","id","settings","BaseAppPersPanel.prototype.constructor.call","setSupported","init","_init","BaseAppPersPanel.prototype.init.call","setProperty","_i18nBundle","getText","_attachUserActivityTracking","on","do","refresh","oEventBus","getInstance","subscribe","channelId","eventId","data","item","color","_applyUngroupedTileColor","loadApps","_loadApps","_this","Promise","resolve","_getFrequentVisualizations","frequentVisualizations","destroyAggregation","map","visualization","index","menuItems","_getActions","addedInFavorites","frequentApps","generateApps","setApps","reject","_this2","getServiceAsync","UserRecentsService","getFrequentActivity","frequentActivities","convertActivitiesToVisualizations","error","isAppAddedInFavorite","action","push","getKey","title","icon","press","event","_addAppToFavorites","generateIllustratedMessage","_generateIllustratedMessage","illustratedMessage","BaseAppPersPanel.prototype.generateIllustratedMessage.call","setDescription"],"sources":["FrequentAppPanel.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 type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Container from \"sap/ushell/Container\";\nimport EventHub from \"sap/ushell/EventHub\";\nimport UserRecents from \"sap/ushell/services/UserRecents\";\nimport App from \"./App\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport type { $BasePanelSettings } from \"./BasePanel\";\nimport Group from \"./Group\";\nimport { IActivity } from \"./interface/AppsInterface\";\nimport MenuItem from \"./MenuItem\";\n\n/**\n *\n * Provides the class for managing frequent apps.\n *\n * @extends sap.cux.home.BaseAppPersPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.FrequentAppPanel\n */\n\nexport default class FrequentAppPanel extends BaseAppPersPanel {\n\tprivate oEventBus!: EventBus;\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tdefaultAggregation: \"apps\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Apps aggregation for Frequent apps\n\t\t\t */\n\t\t\tapps: { type: \"sap.cux.home.App\", singularName: \"app\", multiple: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\t/**\n\t * Constructor for a new frequent app 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?: $BasePanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.setSupported(false);\n\t}\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"key\", \"frequentApps\");\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"frequentlyUsedTab\"));\n\t\tthis.setProperty(\"tooltip\", this._i18nBundle.getText(\"frequentlyUsedTabInfo\"));\n\t\tthis._attachUserActivityTracking();\n\t\tEventHub.on(\"userRecentsCleared\").do(() => {\n\t\t\tvoid this.refresh();\n\t\t});\n\n\t\tthis.oEventBus = EventBus.getInstance();\n\t\tthis.oEventBus.subscribe(\n\t\t\t\"appsChannel\",\n\t\t\t\"favAppColorChanged\",\n\t\t\t(channelId?: string, eventId?: string, data?) => {\n\t\t\t\tconst { item, color } = data as { item: App | Group; color: string };\n\t\t\t\t//update color of the app in most used apps\n\t\t\t\tthis._applyUngroupedTileColor(item, color);\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t}\n\n\t/**\n\t * Fetch frequent apps and set apps aggregation\n\t * @private\n\t */\n\tpublic async loadApps() {\n\t\tlet frequentVisualizations = await this._getFrequentVisualizations();\n\t\tthis.destroyAggregation(\"apps\", true);\n\t\tfrequentVisualizations = frequentVisualizations.map((visualization, index) => {\n\t\t\treturn {\n\t\t\t\t...visualization,\n\t\t\t\tmenuItems: this._getActions(visualization.addedInFavorites, index)\n\t\t\t};\n\t\t});\n\t\t//convert apps objects array to apps instances\n\t\tconst frequentApps = this.generateApps(frequentVisualizations);\n\t\tthis.setApps(frequentApps);\n\t}\n\n\t/**\n\t * Returns list of frequent apps\n\t * @private\n\t * @returns {object[]} - Array of frequent apps.\n\t */\n\tprivate async _getFrequentVisualizations() {\n\t\ttry {\n\t\t\tconst UserRecentsService = await Container.getServiceAsync<UserRecents>(\"UserRecents\");\n\t\t\tconst frequentActivities: IActivity[] = (await UserRecentsService?.getFrequentActivity()) || [];\n\t\t\t//convert activity to apps\n\t\t\tconst frequentVisualizations = await this.convertActivitiesToVisualizations(frequentActivities);\n\t\t\treturn frequentVisualizations;\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns list of actions available for selected app\n\t * @private\n\t * @param {boolean} isAppAddedInFavorite - true if app is already present in favorite, false otherwise.\n\t * @returns {sap.cux.home.MenuItem[]} - Array of list items.\n\t */\n\tprivate _getActions(isAppAddedInFavorite: boolean = false, index?: number) {\n\t\tconst action = [];\n\t\tif (!isAppAddedInFavorite) {\n\t\t\taction.push(\n\t\t\t\tnew MenuItem(`${this.getKey()}--addToFavorites--${index}`, {\n\t\t\t\t\ttitle: this._i18nBundle.getText(\"addToFavorites\"),\n\t\t\t\t\ticon: \"sap-icon://add-favorite\",\n\t\t\t\t\tpress: (event) => {\n\t\t\t\t\t\tvoid this._addAppToFavorites(event);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\treturn action;\n\t}\n\n\t/**\n\t * Generates illustrated message for frequent apps panel.\n\t * @private\n\t * @override\n\t * @returns {sap.m.IllustratedMessage} Illustrated error message.\n\t */\n\tprotected generateIllustratedMessage() {\n\t\tconst illustratedMessage = super.generateIllustratedMessage();\n\t\t//override the default description\n\t\tillustratedMessage.setDescription(this._i18nBundle.getText(\"noFreqAppsDescription\"));\n\t\treturn illustratedMessage;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FrequentAppPanel.js","names":["sap","ui","define","Log","EventBus","Container","EventHub","__BaseAppPersPanel","__MenuItem","___utils_FESRUtil","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BaseAppPersPanel","MenuItem","FESRNavigationSource","FrequentAppPanel","extend","metadata","library","defaultAggregation","aggregations","apps","type","singularName","multiple","visibility","constructor","_constructor","id","settings","BaseAppPersPanel.prototype.constructor.call","setSupported","init","_init","BaseAppPersPanel.prototype.init.call","setProperty","_i18nBundle","getText","_attachUserActivityTracking","on","do","refresh","oEventBus","getInstance","subscribe","channelId","eventId","data","item","color","_applyUngroupedTileColor","additionalInfo","fesrSource","FrequentlyUsed","loadApps","_loadApps","_this","Promise","resolve","_getFrequentVisualizations","frequentVisualizations","destroyAggregation","map","visualization","index","menuItems","_getActions","addedInFavorites","frequentApps","generateApps","setApps","reject","_this2","getServiceAsync","UserRecentsService","getFrequentActivity","frequentActivities","convertActivitiesToVisualizations","error","isAppAddedInFavorite","action","push","getKey","title","icon","press","event","_addAppToFavorites","generateIllustratedMessage","_generateIllustratedMessage","illustratedMessage","BaseAppPersPanel.prototype.generateIllustratedMessage.call","setDescription"],"sources":["FrequentAppPanel.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 type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Container from \"sap/ushell/Container\";\nimport EventHub from \"sap/ushell/EventHub\";\nimport UserRecents from \"sap/ushell/services/UserRecents\";\nimport App from \"./App\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport type { $BasePanelSettings } from \"./BasePanel\";\nimport Group from \"./Group\";\nimport { IActivity } from \"./interface/AppsInterface\";\nimport MenuItem from \"./MenuItem\";\nimport { FESRNavigationSource } from \"./utils/FESRUtil\";\n\n/**\n *\n * Provides the class for managing frequent apps.\n *\n * @extends sap.cux.home.BaseAppPersPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.FrequentAppPanel\n */\n\nexport default class FrequentAppPanel extends BaseAppPersPanel {\n\tprivate oEventBus!: EventBus;\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tdefaultAggregation: \"apps\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Apps aggregation for Frequent apps\n\t\t\t */\n\t\t\tapps: { type: \"sap.cux.home.App\", singularName: \"app\", multiple: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\t/**\n\t * Constructor for a new frequent app 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?: $BasePanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.setSupported(false);\n\t}\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"key\", \"frequentApps\");\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"frequentlyUsedTab\"));\n\t\tthis.setProperty(\"tooltip\", this._i18nBundle.getText(\"frequentlyUsedTabInfo\"));\n\t\tthis._attachUserActivityTracking();\n\t\tEventHub.on(\"userRecentsCleared\").do(() => {\n\t\t\tvoid this.refresh();\n\t\t});\n\n\t\tthis.oEventBus = EventBus.getInstance();\n\t\tthis.oEventBus.subscribe(\n\t\t\t\"appsChannel\",\n\t\t\t\"favAppColorChanged\",\n\t\t\t(channelId?: string, eventId?: string, data?) => {\n\t\t\t\tconst { item, color } = data as { item: App | Group; color: string };\n\t\t\t\t//update color of the app in most used apps\n\t\t\t\tthis._applyUngroupedTileColor(item, color);\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t\tthis.additionalInfo = {\n\t\t\tfesrSource: FESRNavigationSource.FrequentlyUsed\n\t\t};\n\t}\n\n\t/**\n\t * Fetch frequent apps and set apps aggregation\n\t * @private\n\t */\n\tpublic async loadApps() {\n\t\tlet frequentVisualizations = await this._getFrequentVisualizations();\n\t\tthis.destroyAggregation(\"apps\", true);\n\t\tfrequentVisualizations = frequentVisualizations.map((visualization, index) => {\n\t\t\treturn {\n\t\t\t\t...visualization,\n\t\t\t\tmenuItems: this._getActions(visualization.addedInFavorites, index)\n\t\t\t};\n\t\t});\n\t\t//convert apps objects array to apps instances\n\t\tconst frequentApps = this.generateApps(frequentVisualizations);\n\t\tthis.setApps(frequentApps);\n\t}\n\n\t/**\n\t * Returns list of frequent apps\n\t * @private\n\t * @returns {object[]} - Array of frequent apps.\n\t */\n\tprivate async _getFrequentVisualizations() {\n\t\ttry {\n\t\t\tconst UserRecentsService = await Container.getServiceAsync<UserRecents>(\"UserRecents\");\n\t\t\tconst frequentActivities: IActivity[] = (await UserRecentsService?.getFrequentActivity()) || [];\n\t\t\t//convert activity to apps\n\t\t\tconst frequentVisualizations = await this.convertActivitiesToVisualizations(frequentActivities);\n\t\t\treturn frequentVisualizations;\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns list of actions available for selected app\n\t * @private\n\t * @param {boolean} isAppAddedInFavorite - true if app is already present in favorite, false otherwise.\n\t * @returns {sap.cux.home.MenuItem[]} - Array of list items.\n\t */\n\tprivate _getActions(isAppAddedInFavorite: boolean = false, index?: number) {\n\t\tconst action = [];\n\t\tif (!isAppAddedInFavorite) {\n\t\t\taction.push(\n\t\t\t\tnew MenuItem(`${this.getKey()}--addToFavorites--${index}`, {\n\t\t\t\t\ttitle: this._i18nBundle.getText(\"addToFavorites\"),\n\t\t\t\t\ticon: \"sap-icon://add-favorite\",\n\t\t\t\t\tpress: (event) => {\n\t\t\t\t\t\tvoid this._addAppToFavorites(event);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\treturn action;\n\t}\n\n\t/**\n\t * Generates illustrated message for frequent apps panel.\n\t * @private\n\t * @override\n\t * @returns {sap.m.IllustratedMessage} Illustrated error message.\n\t */\n\tprotected generateIllustratedMessage() {\n\t\tconst illustratedMessage = super.generateIllustratedMessage();\n\t\t//override the default description\n\t\tillustratedMessage.setDescription(this._i18nBundle.getText(\"noFreqAppsDescription\"));\n\t\treturn illustratedMessage;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@ import type { $BasePanelSettings } from "./BasePanel";
|
|
|
15
15
|
import Group from "./Group";
|
|
16
16
|
import { IActivity } from "./interface/AppsInterface";
|
|
17
17
|
import MenuItem from "./MenuItem";
|
|
18
|
+
import { FESRNavigationSource } from "./utils/FESRUtil";
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
*
|
|
@@ -77,6 +78,9 @@ export default class FrequentAppPanel extends BaseAppPersPanel {
|
|
|
77
78
|
},
|
|
78
79
|
this
|
|
79
80
|
);
|
|
81
|
+
this.additionalInfo = {
|
|
82
|
+
fesrSource: FESRNavigationSource.FrequentlyUsed
|
|
83
|
+
};
|
|
80
84
|
}
|
|
81
85
|
|
|
82
86
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InsightsAdditionPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/InsightsAdditionPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,oCAAoC,CAAC;IAgBpD,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"InsightsAdditionPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/InsightsAdditionPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,oCAAoC,CAAC;IAgBpD,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;IAU/D;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,iBAAiB;QACnE,OAAO,CAAC,cAAc,CAAU;QAChC,OAAO,CAAC,kBAAkB,CAAuB;QACjD,OAAO,CAAC,gBAAgB,CAAW;QACnC,OAAO,CAAC,wBAAwB,CAAiB;QACjD;;;;;WAKG;QACI,IAAI;QAqBX;;;;WAIG;QACH,OAAO,CAAC,eAAe;QAIvB;;;;;;;;;WASG;gBACW,aAAa;QAgB3B;;;;;;WAMG;gBACW,0BAA0B;QASxC;;;;;WAKG;QACH,OAAO,CAAC,oBAAoB;QAK5B;;;;;;WAMG;QACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;QAqB5C;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;QAMxB;;;;;;;;;;WAUG;gBACW,eAAe;QAyB7B;;;;;WAKG;QACH,OAAO,CAAC,wBAAwB;KAIhC;CAEA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/insights/CardHelper", "sap/m/Button", "sap/m/library", "sap/m/MessageBox", "sap/m/MessageToast", "sap/m/VBox", "./BaseSettingsPanel", "./CardsPanel", "./InsightsContainer", "./utils/Constants", "./utils/FeatureUtils", "./utils/FESRUtil"], function (Log, CardHelper, Button, sap_m_library, MessageBox, MessageToast, VBox, __BaseSettingsPanel, __CardsPanel, __InsightsContainer, ___utils_Constants, ___utils_FeatureUtils, ___utils_FESRUtil) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/insights/CardHelper", "sap/m/Button", "sap/m/library", "sap/m/MessageBox", "sap/m/MessageToast", "sap/m/VBox", "./BaseSettingsPanel", "./CardsPanel", "./InsightsContainer", "./utils/Constants", "./utils/FeatureUtils", "./utils/FESRUtil", "./utils/PXFeedback"], function (Log, CardHelper, Button, sap_m_library, MessageBox, MessageToast, VBox, __BaseSettingsPanel, __CardsPanel, __InsightsContainer, ___utils_Constants, ___utils_FeatureUtils, ___utils_FESRUtil, ___utils_PXFeedback) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -41,6 +41,7 @@ sap.ui.define(["sap/base/Log", "sap/insights/CardHelper", "sap/m/Button", "sap/m
|
|
|
41
41
|
const isNavigationSupportedForFeature = ___utils_FeatureUtils["isNavigationSupportedForFeature"];
|
|
42
42
|
const addFESRSemanticStepName = ___utils_FESRUtil["addFESRSemanticStepName"];
|
|
43
43
|
const FESR_EVENTS = ___utils_FESRUtil["FESR_EVENTS"];
|
|
44
|
+
const triggerPXIntegration = ___utils_PXFeedback["triggerPXIntegration"];
|
|
44
45
|
/**
|
|
45
46
|
*
|
|
46
47
|
* Class for Apps Addition Panel in MyHome.
|
|
@@ -215,6 +216,7 @@ sap.ui.define(["sap/base/Log", "sap/insights/CardHelper", "sap/m/Button", "sap/m
|
|
|
215
216
|
onPressAddCards: function _onPressAddCards() {
|
|
216
217
|
try {
|
|
217
218
|
const _this4 = this;
|
|
219
|
+
triggerPXIntegration("addCardsButton");
|
|
218
220
|
const addContentDialog = _this4.getParent();
|
|
219
221
|
const _temp4 = _finallyRethrows(function () {
|
|
220
222
|
return _catch(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InsightsAdditionPanel.js","names":["sap","ui","define","Log","CardHelper","Button","sap_m_library","MessageBox","MessageToast","VBox","__BaseSettingsPanel","__CardsPanel","__InsightsContainer","___utils_Constants","___utils_FeatureUtils","___utils_FESRUtil","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BackgroundDesign","_finallyRethrows","finalizer","bind","ButtonType","BaseSettingsPanel","CardsPanel","InsightsContainer","CONTENT_ADDITION_PANEL_TYPES","FEATURE_TOGGLES","FESR_IDS","isNavigationSupportedForFeature","addFESRSemanticStepName","FESR_EVENTS","InsightsAdditionPanel","extend","init","_init","BaseSettingsPanel.prototype.init.call","setProperty","AI_INSIGHTS_CARDS","_i18nBundle","getText","addCardsButton","getId","text","type","Emphasized","enabled","press","onPressAddCards","PRESS","ADD_AI_CARD","addActionButton","_setupContent","attachEvent","resetAddCardInnerContent","enableAddButton","_enableAddButton","action","setEnabled","_this","_temp","Promise","resolve","_fetchAddCardDialogContent","dialogContent","wrapperVBox","items","backgroundDesign","Solid","height","addAggregation","error","message","reject","_this2","getServiceAsync","_getServiceAsync","cardHelperInstance","fetchAddCardInnerContent","event","_latestGeneratedManifest","getParameters","isValidManifest","Object","keys","length","getInsightsContainer","_getInsightsContainer","layout","getParent","getContent","find","container","isSupported","_isSupported","_this3","_temp3","isPanelSupported","removeActionButton","contentAdditionDialog","removePanel","updateActionButtons","insightsCardIntent","target","semanticObject","_temp2","undefined","AI_GENERATED_CARD","_isNavigationSupporte","_fetchCardsPanel","panel","_onPressAddCards","_this4","addContentDialog","_temp4","setBusy","_createCard","createdCardResponse","cardTitle","header","title","show","close","visible","information","styleClass","cardsPanel","refreshData","_wasThrown","_result","_resetAddCardInnerContent"],"sources":["InsightsAdditionPanel.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 CardHelper from \"sap/insights/CardHelper\";\nimport Button from \"sap/m/Button\";\nimport { BackgroundDesign, ButtonType } from \"sap/m/library\";\nimport MessageBox from \"sap/m/MessageBox\";\nimport MessageToast from \"sap/m/MessageToast\";\nimport VBox from \"sap/m/VBox\";\nimport Control from \"sap/ui/core/Control\";\nimport { Target } from \"sap/ushell/services/Navigation\";\nimport BaseLayout from \"./BaseLayout\";\nimport BaseSettingsPanel from \"./BaseSettingsPanel\";\nimport CardsPanel from \"./CardsPanel\";\nimport ContentAdditionDialog from \"./ContentAdditionDialog\";\nimport InsightsContainer from \"./InsightsContainer\";\nimport { ICardHelper, ICardHelperInstance, ICardManifest } from \"./interface/CardsInterface\";\nimport { CONTENT_ADDITION_PANEL_TYPES, FEATURE_TOGGLES, FESR_IDS } from \"./utils/Constants\";\nimport { isNavigationSupportedForFeature } from \"./utils/FeatureUtils\";\nimport { addFESRSemanticStepName, FESR_EVENTS } from \"./utils/FESRUtil\";\n\n/**\n *\n * Class for Apps Addition Panel in MyHome.\n *\n * @extends BaseSettingsPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.136\n * @private\n *\n * @alias sap.cux.home.InsightsAdditionPanel\n */\nexport default class InsightsAdditionPanel extends BaseSettingsPanel {\n\tprivate addCardsButton!: Button;\n\tprivate cardHelperInstance!: ICardHelperInstance;\n\tprivate isPanelSupported!: boolean;\n\tprivate _latestGeneratedManifest!: ICardManifest;\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @public\n\t * @override\n\t */\n\tpublic init() {\n\t\tsuper.init();\n\n\t\t//setup panel\n\t\tthis.setProperty(\"key\", CONTENT_ADDITION_PANEL_TYPES.AI_INSIGHTS_CARDS);\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"insightsCards\"));\n\n\t\t//setup actions\n\t\tthis.addCardsButton = new Button(`${this.getId()}-add-cards-btn`, {\n\t\t\ttext: this._i18nBundle.getText(\"addFromInsightsDialogBtn\"),\n\t\t\ttype: ButtonType.Emphasized,\n\t\t\tenabled: false,\n\t\t\tpress: this.onPressAddCards.bind(this)\n\t\t});\n\t\taddFESRSemanticStepName(this.addCardsButton, FESR_EVENTS.PRESS, FESR_IDS.ADD_AI_CARD);\n\t\tthis.addActionButton(this.addCardsButton);\n\t\t//setup content\n\t\tvoid this._setupContent();\n\t\tthis.attachEvent(\"onDialogClose\", this.resetAddCardInnerContent.bind(this));\n\t}\n\n\t/**\n\t * Enables or disables the \"Add Cards\" button.\n\t *\n\t * @param {boolean} action - If true, the button is enabled; if false, it is disabled.\n\t */\n\tprivate enableAddButton(action: boolean) {\n\t\tthis.addCardsButton.setEnabled(action);\n\t}\n\n\t/**\n\t * It sets up the content for the \"Insights card\" dialog.\n\t * It fetches the inner dialog content for adding a card.\n\t * Adds the VBox to the panel's content aggregation.\n\t *\n\t * This also enables the \"Add\" button once content is fetched.\n\t *\n\t * @private\n\t * @returns {Promise<void>} A promise that resolves when setup is complete.\n\t */\n\tprivate async _setupContent(): Promise<void> {\n\t\ttry {\n\t\t\tconst dialogContent = await this._fetchAddCardDialogContent();\n\t\t\tif (dialogContent) {\n\t\t\t\tconst wrapperVBox = new VBox(`${this.getId()}-wrapperVBox`, {\n\t\t\t\t\titems: dialogContent,\n\t\t\t\t\tbackgroundDesign: BackgroundDesign.Solid,\n\t\t\t\t\theight: \"100%\"\n\t\t\t\t});\n\t\t\t\tthis.addAggregation(\"content\", wrapperVBox);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tLog.error((error as Error).message);\n\t\t}\n\t}\n\n\t/**\n\t * Fetches the dialog content for adding a new card and sets up the callback\n\t * to handle the card generation event, storing the generated manifest and enabling the add button.\n\t *\n\t * @private\n\t * @returns {Promise<Control[]>} A promise that resolves with an array of dialog content controls.\n\t */\n\tprivate async _fetchAddCardDialogContent(): Promise<Control[]> {\n\t\tthis.cardHelperInstance = await (CardHelper as ICardHelper).getServiceAsync();\n\t\treturn this.cardHelperInstance.fetchAddCardInnerContent((event) => {\n\t\t\tthis._latestGeneratedManifest = event.getParameters();\n\t\t\tconst isValidManifest = Object.keys(this._latestGeneratedManifest).length > 1;\n\t\t\tthis.enableAddButton(isValidManifest);\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves the InsightsContainer instance from the parent layout.\n\t *\n\t * @private\n\t * @returns {InsightsContainer | undefined} The InsightsContainer instance or undefined if not found.\n\t */\n\tprivate getInsightsContainer(): InsightsContainer | undefined {\n\t\tconst layout = this.getParent()?.getParent() as BaseLayout;\n\t\treturn layout.getContent().find((container) => container instanceof InsightsContainer);\n\t}\n\n\t/**\n\t * Checks if the Insights Addition Panel is supported.\n\t *\n\t * @public\n\t * @async\n\t * @returns {Promise<boolean>} A promise that resolves to true if supported.\n\t */\n\tpublic async isSupported(): Promise<boolean> {\n\t\tconst insightsCardIntent: Target = {\n\t\t\ttarget: {\n\t\t\t\tsemanticObject: \"IntelligentPrompt\",\n\t\t\t\taction: \"personalize\"\n\t\t\t}\n\t\t};\n\t\tif (this.isPanelSupported === undefined) {\n\t\t\tthis.isPanelSupported = false;\n\t\t\tthis.isPanelSupported = await isNavigationSupportedForFeature(FEATURE_TOGGLES.AI_GENERATED_CARD, insightsCardIntent);\n\t\t}\n\t\t//remove panel if it's not supported\n\t\tif (!this.isPanelSupported) {\n\t\t\tthis.removeActionButton(this.addCardsButton);\n\t\t\tconst contentAdditionDialog = this.getParent() as ContentAdditionDialog;\n\t\t\tcontentAdditionDialog.removePanel(this);\n\t\t\tcontentAdditionDialog.updateActionButtons();\n\t\t}\n\t\treturn this.isPanelSupported;\n\t}\n\n\t/**\n\t * Retrieves the `CardsPanel` instance from the `InsightsContainer`.\n\t *\n\t * @private\n\t * @returns {CardsPanel | undefined} The found `CardsPanel` instance, or `undefined` if not found.\n\t */\n\tprivate _fetchCardsPanel(): CardsPanel | undefined {\n\t\treturn this.getInsightsContainer()\n\t\t\t?.getContent()\n\t\t\t.find((panel): panel is CardsPanel => panel instanceof CardsPanel);\n\t}\n\n\t/**\n\t * Handles the logic for creating and adding a new insight card to cards Panel.\n\t *\n\t * - Sets the dialog to busy while the card creation is in progress.\n\t * - It adds a new card using the latest generated manifest.\n\t * - On success, shows a message toast and closes the dialog.\n\t * - Refreshes the insights cards panel data.\n\t *\n\t * @private\n\t * @returns {Promise<void>} A promise that resolves when the card creation flow completes.\n\t */\n\tprivate async onPressAddCards() {\n\t\tconst addContentDialog = this.getParent() as ContentAdditionDialog;\n\t\ttry {\n\t\t\taddContentDialog.setBusy(true);\n\n\t\t\tconst createdCardResponse = await this.cardHelperInstance._createCard(this._latestGeneratedManifest);\n\t\t\tconst cardTitle = createdCardResponse[\"sap.card\"]?.header?.title;\n\t\t\tMessageToast.show(this._i18nBundle.getText(\"Card_Created\", [cardTitle]) as string);\n\t\t\taddContentDialog.close();\n\t\t\tif (!createdCardResponse?.[\"sap.insights\"]?.visible) {\n\t\t\t\tMessageBox.information(this._i18nBundle.getText(\"INT_CARD_LIMIT_MESSAGEBOX\") as string, {\n\t\t\t\t\tstyleClass: \"msgBoxAlign\"\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst cardsPanel = this._fetchCardsPanel();\n\t\t\tawait cardsPanel?.refreshData();\n\t\t} catch (error) {\n\t\t\tLog.error((error as Error).message);\n\t\t} finally {\n\t\t\taddContentDialog.setBusy(false);\n\t\t}\n\t}\n\n\t/**\n\t * Resets the internal content related to card addition.\n\t * Disables the \"Add\" button.\n\t *\n\t * @private\n\t */\n\tprivate resetAddCardInnerContent() {\n\t\tthis.cardHelperInstance?.resetAddCardInnerContent();\n\t\tthis.enableAddButton(false);\n\t}\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,gRAAAC,GAAA,EAAAC,UAAA,EAAAC,MAAA,EAAAC,aAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,IAAA,EAAAC,mBAAA,EAAAC,YAAA,EAAAC,mBAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,iBAAA;EAAA;;EAAA,SAAAC,uBAAAC,GAAA;IAAA,OAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,CAAAE,OAAA,mBAAAF,GAAA,CAAAE,OAAA,GAAAF,GAAA;EAAA;EAkjBO,SAAAG,OAAgBC,IAAI,EAAEC,OAAO,EAAE;IACrC,IAAI;MACH,IAAIC,MAAM,GAAGF,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,OAAMG,CAAC,EAAE;MACV,OAAOF,OAAO,CAACE,CAAC,CAAC;IAClB;IACA,IAAID,MAAM,IAAIA,MAAM,CAACE,IAAI,EAAE;MAC1B,OAAOF,MAAM,CAACE,IAAI,CAAC,KAAK,CAAC,EAAEH,OAAO,CAAC;IACpC;IACA,OAAOC,MAAM;EACd;EAAC,MApjBQG,gBAAgB,GAAApB,aAAA;EAujBlB,SAASqB,gBAAgBA,CAACN,IAAI,EAAEO,SAAS,EAAE;IACjD,IAAI;MACH,IAAIL,MAAM,GAAGF,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,OAAOG,CAAC,EAAE;MACX,OAAOI,SAAS,CAAC,IAAI,EAAEJ,CAAC,CAAC;IAC1B;IACA,IAAID,MAAM,IAAIA,MAAM,CAACE,IAAI,EAAE;MAC1B,OAAOF,MAAM,CAACE,IAAI,CAACG,SAAS,CAACC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAED,SAAS,CAACC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5E;IACA,OAAOD,SAAS,CAAC,KAAK,EAAEL,MAAM,CAAC;EAChC;EAAC,MAjkB0BO,UAAU,GAAAxB,aAAA;EAAA,MAO9ByB,iBAAiB,GAAAf,sBAAA,CAAAN,mBAAA;EAAA,MACjBsB,UAAU,GAAAhB,sBAAA,CAAAL,YAAA;EAAA,MAEVsB,iBAAiB,GAAAjB,sBAAA,CAAAJ,mBAAA;EAAA,MAEfsB,4BAA4B,GAAArB,kBAAA;EAAA,MAAEsB,eAAe,GAAAtB,kBAAA;EAAA,MAAEuB,QAAQ,GAAAvB,kBAAA;EAAA,MACvDwB,+BAA+B,GAAAvB,qBAAA;EAAA,MAC/BwB,uBAAuB,GAAAvB,iBAAA;EAAA,MAAEwB,WAAW,GAAAxB,iBAAA;EAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAZA,MAaqByB,qBAAqB,GAAST,iBAAiB,CAAAU,MAAA;IAKnE;AACD;AACA;AACA;AACA;AACA;IACQC,IAAI,WAAAC,MAAA,EAAG;MACbC,qCAAA;;MAEA;MACA,IAAI,CAACC,WAAW,CAAC,KAAK,EAAEX,4BAA4B,CAACY,iBAAiB,CAAC;MACvE,IAAI,CAACD,WAAW,CAAC,OAAO,EAAE,IAAI,CAACE,WAAW,CAACC,OAAO,CAAC,eAAe,CAAC,CAAC;;MAEpE;MACA,IAAI,CAACC,cAAc,GAAG,IAAI5C,MAAM,CAAC,GAAG,IAAI,CAAC6C,KAAK,CAAC,CAAC,gBAAgB,EAAE;QACjEC,IAAI,EAAE,IAAI,CAACJ,WAAW,CAACC,OAAO,CAAC,0BAA0B,CAAC;QAC1DI,IAAI,EAAEtB,UAAU,CAACuB,UAAU;QAC3BC,OAAO,EAAE,KAAK;QACdC,KAAK,EAAE,IAAI,CAACC,eAAe,CAAC3B,IAAI,CAAC,IAAI;MACtC,CAAC,CAAC;MACFS,uBAAuB,CAAC,IAAI,CAACW,cAAc,EAAEV,WAAW,CAACkB,KAAK,EAAErB,QAAQ,CAACsB,WAAW,CAAC;MACrF,IAAI,CAACC,eAAe,CAAC,IAAI,CAACV,cAAc,CAAC;MACzC;MACA,KAAK,IAAI,CAACW,aAAa,CAAC,CAAC;MACzB,IAAI,CAACC,WAAW,CAAC,eAAe,EAAE,IAAI,CAACC,wBAAwB,CAACjC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED;AACD;AACA;AACA;AACA;IACSkC,eAAe,WAAAC,iBAACC,MAAe,EAAE;MACxC,IAAI,CAAChB,cAAc,CAACiB,UAAU,CAACD,MAAM,CAAC;IACvC,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACeL,aAAa,WAAAA,cAAA;MAAA,IAAkB;QAAA,MAAAO,KAAA,GAEf,IAAI;QAAA,MAAAC,KAAA,GAAAhD,MAAA,aAD7B;UAAA,OAAAiD,OAAA,CAAAC,OAAA,CACyBH,KAAA,CAAKI,0BAA0B,CAAC,CAAC,EAAA9C,IAAA,WAAvD+C,aAAa;YAAA,IACfA,aAAa;cAChB,MAAMC,WAAW,GAAG,IAAIhE,IAAI,CAAC,GAAG0D,KAAA,CAAKjB,KAAK,CAAC,CAAC,cAAc,EAAE;gBAC3DwB,KAAK,EAAEF,aAAa;gBACpBG,gBAAgB,EAAEjD,gBAAgB,CAACkD,KAAK;gBACxCC,MAAM,EAAE;cACT,CAAC,CAAC;cACFV,KAAA,CAAKW,cAAc,CAAC,SAAS,EAAEL,WAAW,CAAC;YAAC;UAAA;QAE9C,CAAC,YAAQM,KAAK,EAAE;UACf5E,GAAG,CAAC4E,KAAK,CAAEA,KAAK,CAAWC,OAAO,CAAC;QACpC,CAAC;QAAA,OAAAX,OAAA,CAAAC,OAAA,CAAAF,KAAA,IAAAA,KAAA,CAAA3C,IAAA,GAAA2C,KAAA,CAAA3C,IAAA;MACF,CAAC,QAAAD,CAAA;QAAA,OAAA6C,OAAA,CAAAY,MAAA,CAAAzD,CAAA;MAAA;IAAA;IAED;AACD;AACA;AACA;AACA;AACA;AACA;IACe+C,0BAA0B,WAAAA,2BAAA;MAAA,IAAuB;QAAA,MAAAW,MAAA,GAC9D,IAAI;QAAA,OAAAb,OAAA,CAAAC,OAAA,CAA6BlE,UAAU,CAAiB+E,eAAe,CAAC,CAAC,EAAA1D,IAAA,WAAA2D,gBAAA;UAA7EF,MAAA,CAAKG,kBAAkB,GAAAD,gBAAsD;UAC7E,OAAOF,MAAA,CAAKG,kBAAkB,CAACC,wBAAwB,CAAEC,KAAK,IAAK;YAClEL,MAAA,CAAKM,wBAAwB,GAAGD,KAAK,CAACE,aAAa,CAAC,CAAC;YACrD,MAAMC,eAAe,GAAGC,MAAM,CAACC,IAAI,CAACV,MAAA,CAAKM,wBAAwB,CAAC,CAACK,MAAM,GAAG,CAAC;YAC7EX,MAAA,CAAKnB,eAAe,CAAC2B,eAAe,CAAC;UACtC,CAAC,CAAC;QAAC;MACJ,CAAC,QAAAlE,CAAA;QAAA,OAAA6C,OAAA,CAAAY,MAAA,CAAAzD,CAAA;MAAA;IAAA;IAED;AACD;AACA;AACA;AACA;AACA;IACSsE,oBAAoB,WAAAC,sBAAA,EAAkC;MAC7D,MAAMC,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC,EAAEA,SAAS,CAAC,CAAe;MAC1D,OAAOD,MAAM,CAACE,UAAU,CAAC,CAAC,CAACC,IAAI,CAAEC,SAAS,IAAKA,SAAS,YAAYnE,iBAAiB,CAAC;IACvF,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;AACA;IACcoE,WAAW,WAAAC,aAAA;MAAA,IAAqB;QAAA,MAAAC,MAAA,GAOxC,IAAI;QAAA,SAAAC,OAAA;UAIR;UACA,IAAI,CAACD,MAAA,CAAKE,gBAAgB,EAAE;YAC3BF,MAAA,CAAKG,kBAAkB,CAACH,MAAA,CAAKtD,cAAc,CAAC;YAC5C,MAAM0D,qBAAqB,GAAGJ,MAAA,CAAKN,SAAS,CAAC,CAA0B;YACvEU,qBAAqB,CAACC,WAAW,CAAAL,MAAK,CAAC;YACvCI,qBAAqB,CAACE,mBAAmB,CAAC,CAAC;UAC5C;UACA,OAAON,MAAA,CAAKE,gBAAgB;QAAC;QAjB7B,MAAMK,kBAA0B,GAAG;UAClCC,MAAM,EAAE;YACPC,cAAc,EAAE,mBAAmB;YACnC/C,MAAM,EAAE;UACT;QACD,CAAC;QAAC,MAAAgD,MAAA;UAAA,IACEV,MAAA,CAAKE,gBAAgB,KAAKS,SAAS;YACtCX,MAAA,CAAKE,gBAAgB,GAAG,KAAK;YAAC,OAAApC,OAAA,CAAAC,OAAA,CACAjC,+BAA+B,CAACF,eAAe,CAACgF,iBAAiB,EAAEL,kBAAkB,CAAC,EAAArF,IAAA,WAAA2F,qBAAA;cAApHb,MAAA,CAAKE,gBAAgB,GAAAW,qBAA+F;YAAC;UAAA;QAAA;QAAA,OAAA/C,OAAA,CAAAC,OAAA,CAAA2C,MAAA,IAAAA,MAAA,CAAAxF,IAAA,GAAAwF,MAAA,CAAAxF,IAAA,CAAA+E,MAAA,IAAAA,MAAA,CAAAS,MAAA;MAUvH,CAAC,QAAAzF,CAAA;QAAA,OAAA6C,OAAA,CAAAY,MAAA,CAAAzD,CAAA;MAAA;IAAA;IAED;AACD;AACA;AACA;AACA;AACA;IACS6F,gBAAgB,WAAAA,iBAAA,EAA2B;MAClD,OAAO,IAAI,CAACvB,oBAAoB,CAAC,CAAC,EAC/BI,UAAU,CAAC,CAAC,CACbC,IAAI,CAAEmB,KAAK,IAA0BA,KAAK,YAAYtF,UAAU,CAAC;IACpE,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACewB,eAAe,WAAA+D,iBAAA;MAAA,IAAG;QAAA,MAAAC,MAAA,GACN,IAAI;QAA7B,MAAMC,gBAAgB,GAAGD,MAAA,CAAKvB,SAAS,CAAC,CAA0B;QAAC,MAAAyB,MAAA,GAAA/F,gBAAA;UAAA,OAAAP,MAAA,aAC/D;YACHqG,gBAAgB,CAACE,OAAO,CAAC,IAAI,CAAC;YAAC,OAAAtD,OAAA,CAAAC,OAAA,CAEGkD,MAAA,CAAKnC,kBAAkB,CAACuC,WAAW,CAACJ,MAAA,CAAKhC,wBAAwB,CAAC,EAAA/D,IAAA,WAA9FoG,mBAAmB;cACzB,MAAMC,SAAS,GAAGD,mBAAmB,CAAC,UAAU,CAAC,EAAEE,MAAM,EAAEC,KAAK;cAChExH,YAAY,CAACyH,IAAI,CAACT,MAAA,CAAKzE,WAAW,CAACC,OAAO,CAAC,cAAc,EAAE,CAAC8E,SAAS,CAAC,CAAW,CAAC;cAClFL,gBAAgB,CAACS,KAAK,CAAC,CAAC;cACxB,IAAI,CAACL,mBAAmB,GAAG,cAAc,CAAC,EAAEM,OAAO,EAAE;gBACpD5H,UAAU,CAAC6H,WAAW,CAACZ,MAAA,CAAKzE,WAAW,CAACC,OAAO,CAAC,2BAA2B,CAAC,EAAY;kBACvFqF,UAAU,EAAE;gBACb,CAAC,CAAC;cACH;cAEA,MAAMC,UAAU,GAAGd,MAAA,CAAKH,gBAAgB,CAAC,CAAC;cAAC,OAAAhD,OAAA,CAAAC,OAAA,CACrCgE,UAAU,EAAEC,WAAW,CAAC,CAAC,EAAA9G,IAAA;YAAA;UAChC,CAAC,YAAQsD,KAAK,EAAE;YACf5E,GAAG,CAAC4E,KAAK,CAAEA,KAAK,CAAWC,OAAO,CAAC;UACpC,CAAC;QAAA,aAAAwD,UAAA,EAAAC,OAAA;UACAhB,gBAAgB,CAACE,OAAO,CAAC,KAAK,CAAC;UAAC,IAAAa,UAAA,QAAAC,OAAA;UAAA,OAAAA,OAAA;QAAA;QAAA,OAAApE,OAAA,CAAAC,OAAA,CAAAoD,MAAA,IAAAA,MAAA,CAAAjG,IAAA,GAAAiG,MAAA,CAAAjG,IAAA;MAElC,CAAC,QAAAD,CAAA;QAAA,OAAA6C,OAAA,CAAAY,MAAA,CAAAzD,CAAA;MAAA;IAAA;IAED;AACD;AACA;AACA;AACA;AACA;IACSsC,wBAAwB,WAAA4E,0BAAA,EAAG;MAClC,IAAI,CAACrD,kBAAkB,EAAEvB,wBAAwB,CAAC,CAAC;MACnD,IAAI,CAACC,eAAe,CAAC,KAAK,CAAC;IAC5B;EAAC;EAAA,OAlLmBvB,qBAAqB;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"InsightsAdditionPanel.js","names":["sap","ui","define","Log","CardHelper","Button","sap_m_library","MessageBox","MessageToast","VBox","__BaseSettingsPanel","__CardsPanel","__InsightsContainer","___utils_Constants","___utils_FeatureUtils","___utils_FESRUtil","___utils_PXFeedback","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BackgroundDesign","_finallyRethrows","finalizer","bind","ButtonType","BaseSettingsPanel","CardsPanel","InsightsContainer","CONTENT_ADDITION_PANEL_TYPES","FEATURE_TOGGLES","FESR_IDS","isNavigationSupportedForFeature","addFESRSemanticStepName","FESR_EVENTS","triggerPXIntegration","InsightsAdditionPanel","extend","init","_init","BaseSettingsPanel.prototype.init.call","setProperty","AI_INSIGHTS_CARDS","_i18nBundle","getText","addCardsButton","getId","text","type","Emphasized","enabled","press","onPressAddCards","PRESS","ADD_AI_CARD","addActionButton","_setupContent","attachEvent","resetAddCardInnerContent","enableAddButton","_enableAddButton","action","setEnabled","_this","_temp","Promise","resolve","_fetchAddCardDialogContent","dialogContent","wrapperVBox","items","backgroundDesign","Solid","height","addAggregation","error","message","reject","_this2","getServiceAsync","_getServiceAsync","cardHelperInstance","fetchAddCardInnerContent","event","_latestGeneratedManifest","getParameters","isValidManifest","Object","keys","length","getInsightsContainer","_getInsightsContainer","layout","getParent","getContent","find","container","isSupported","_isSupported","_this3","_temp3","isPanelSupported","removeActionButton","contentAdditionDialog","removePanel","updateActionButtons","insightsCardIntent","target","semanticObject","_temp2","undefined","AI_GENERATED_CARD","_isNavigationSupporte","_fetchCardsPanel","panel","_onPressAddCards","_this4","addContentDialog","_temp4","setBusy","_createCard","createdCardResponse","cardTitle","header","title","show","close","visible","information","styleClass","cardsPanel","refreshData","_wasThrown","_result","_resetAddCardInnerContent"],"sources":["InsightsAdditionPanel.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 CardHelper from \"sap/insights/CardHelper\";\nimport Button from \"sap/m/Button\";\nimport { BackgroundDesign, ButtonType } from \"sap/m/library\";\nimport MessageBox from \"sap/m/MessageBox\";\nimport MessageToast from \"sap/m/MessageToast\";\nimport VBox from \"sap/m/VBox\";\nimport Control from \"sap/ui/core/Control\";\nimport { Target } from \"sap/ushell/services/Navigation\";\nimport BaseLayout from \"./BaseLayout\";\nimport BaseSettingsPanel from \"./BaseSettingsPanel\";\nimport CardsPanel from \"./CardsPanel\";\nimport ContentAdditionDialog from \"./ContentAdditionDialog\";\nimport InsightsContainer from \"./InsightsContainer\";\nimport { ICardHelper, ICardHelperInstance, ICardManifest } from \"./interface/CardsInterface\";\nimport { CONTENT_ADDITION_PANEL_TYPES, FEATURE_TOGGLES, FESR_IDS } from \"./utils/Constants\";\nimport { isNavigationSupportedForFeature } from \"./utils/FeatureUtils\";\nimport { addFESRSemanticStepName, FESR_EVENTS } from \"./utils/FESRUtil\";\nimport { triggerPXIntegration } from \"./utils/PXFeedback\";\n\n/**\n *\n * Class for Apps Addition Panel in MyHome.\n *\n * @extends BaseSettingsPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.136\n * @private\n *\n * @alias sap.cux.home.InsightsAdditionPanel\n */\nexport default class InsightsAdditionPanel extends BaseSettingsPanel {\n\tprivate addCardsButton!: Button;\n\tprivate cardHelperInstance!: ICardHelperInstance;\n\tprivate isPanelSupported!: boolean;\n\tprivate _latestGeneratedManifest!: ICardManifest;\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @public\n\t * @override\n\t */\n\tpublic init() {\n\t\tsuper.init();\n\n\t\t//setup panel\n\t\tthis.setProperty(\"key\", CONTENT_ADDITION_PANEL_TYPES.AI_INSIGHTS_CARDS);\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"insightsCards\"));\n\n\t\t//setup actions\n\t\tthis.addCardsButton = new Button(`${this.getId()}-add-cards-btn`, {\n\t\t\ttext: this._i18nBundle.getText(\"addFromInsightsDialogBtn\"),\n\t\t\ttype: ButtonType.Emphasized,\n\t\t\tenabled: false,\n\t\t\tpress: this.onPressAddCards.bind(this)\n\t\t});\n\t\taddFESRSemanticStepName(this.addCardsButton, FESR_EVENTS.PRESS, FESR_IDS.ADD_AI_CARD);\n\t\tthis.addActionButton(this.addCardsButton);\n\t\t//setup content\n\t\tvoid this._setupContent();\n\t\tthis.attachEvent(\"onDialogClose\", this.resetAddCardInnerContent.bind(this));\n\t}\n\n\t/**\n\t * Enables or disables the \"Add Cards\" button.\n\t *\n\t * @param {boolean} action - If true, the button is enabled; if false, it is disabled.\n\t */\n\tprivate enableAddButton(action: boolean) {\n\t\tthis.addCardsButton.setEnabled(action);\n\t}\n\n\t/**\n\t * It sets up the content for the \"Insights card\" dialog.\n\t * It fetches the inner dialog content for adding a card.\n\t * Adds the VBox to the panel's content aggregation.\n\t *\n\t * This also enables the \"Add\" button once content is fetched.\n\t *\n\t * @private\n\t * @returns {Promise<void>} A promise that resolves when setup is complete.\n\t */\n\tprivate async _setupContent(): Promise<void> {\n\t\ttry {\n\t\t\tconst dialogContent = await this._fetchAddCardDialogContent();\n\t\t\tif (dialogContent) {\n\t\t\t\tconst wrapperVBox = new VBox(`${this.getId()}-wrapperVBox`, {\n\t\t\t\t\titems: dialogContent,\n\t\t\t\t\tbackgroundDesign: BackgroundDesign.Solid,\n\t\t\t\t\theight: \"100%\"\n\t\t\t\t});\n\t\t\t\tthis.addAggregation(\"content\", wrapperVBox);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tLog.error((error as Error).message);\n\t\t}\n\t}\n\n\t/**\n\t * Fetches the dialog content for adding a new card and sets up the callback\n\t * to handle the card generation event, storing the generated manifest and enabling the add button.\n\t *\n\t * @private\n\t * @returns {Promise<Control[]>} A promise that resolves with an array of dialog content controls.\n\t */\n\tprivate async _fetchAddCardDialogContent(): Promise<Control[]> {\n\t\tthis.cardHelperInstance = await (CardHelper as ICardHelper).getServiceAsync();\n\t\treturn this.cardHelperInstance.fetchAddCardInnerContent((event) => {\n\t\t\tthis._latestGeneratedManifest = event.getParameters();\n\t\t\tconst isValidManifest = Object.keys(this._latestGeneratedManifest).length > 1;\n\t\t\tthis.enableAddButton(isValidManifest);\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves the InsightsContainer instance from the parent layout.\n\t *\n\t * @private\n\t * @returns {InsightsContainer | undefined} The InsightsContainer instance or undefined if not found.\n\t */\n\tprivate getInsightsContainer(): InsightsContainer | undefined {\n\t\tconst layout = this.getParent()?.getParent() as BaseLayout;\n\t\treturn layout.getContent().find((container) => container instanceof InsightsContainer);\n\t}\n\n\t/**\n\t * Checks if the Insights Addition Panel is supported.\n\t *\n\t * @public\n\t * @async\n\t * @returns {Promise<boolean>} A promise that resolves to true if supported.\n\t */\n\tpublic async isSupported(): Promise<boolean> {\n\t\tconst insightsCardIntent: Target = {\n\t\t\ttarget: {\n\t\t\t\tsemanticObject: \"IntelligentPrompt\",\n\t\t\t\taction: \"personalize\"\n\t\t\t}\n\t\t};\n\t\tif (this.isPanelSupported === undefined) {\n\t\t\tthis.isPanelSupported = false;\n\t\t\tthis.isPanelSupported = await isNavigationSupportedForFeature(FEATURE_TOGGLES.AI_GENERATED_CARD, insightsCardIntent);\n\t\t}\n\t\t//remove panel if it's not supported\n\t\tif (!this.isPanelSupported) {\n\t\t\tthis.removeActionButton(this.addCardsButton);\n\t\t\tconst contentAdditionDialog = this.getParent() as ContentAdditionDialog;\n\t\t\tcontentAdditionDialog.removePanel(this);\n\t\t\tcontentAdditionDialog.updateActionButtons();\n\t\t}\n\t\treturn this.isPanelSupported;\n\t}\n\n\t/**\n\t * Retrieves the `CardsPanel` instance from the `InsightsContainer`.\n\t *\n\t * @private\n\t * @returns {CardsPanel | undefined} The found `CardsPanel` instance, or `undefined` if not found.\n\t */\n\tprivate _fetchCardsPanel(): CardsPanel | undefined {\n\t\treturn this.getInsightsContainer()\n\t\t\t?.getContent()\n\t\t\t.find((panel): panel is CardsPanel => panel instanceof CardsPanel);\n\t}\n\n\t/**\n\t * Handles the logic for creating and adding a new insight card to cards Panel.\n\t *\n\t * - Sets the dialog to busy while the card creation is in progress.\n\t * - It adds a new card using the latest generated manifest.\n\t * - On success, shows a message toast and closes the dialog.\n\t * - Refreshes the insights cards panel data.\n\t *\n\t * @private\n\t * @returns {Promise<void>} A promise that resolves when the card creation flow completes.\n\t */\n\tprivate async onPressAddCards() {\n\t\ttriggerPXIntegration(\"addCardsButton\");\n\t\tconst addContentDialog = this.getParent() as ContentAdditionDialog;\n\t\ttry {\n\t\t\taddContentDialog.setBusy(true);\n\n\t\t\tconst createdCardResponse = await this.cardHelperInstance._createCard(this._latestGeneratedManifest);\n\t\t\tconst cardTitle = createdCardResponse[\"sap.card\"]?.header?.title;\n\t\t\tMessageToast.show(this._i18nBundle.getText(\"Card_Created\", [cardTitle]) as string);\n\t\t\taddContentDialog.close();\n\t\t\tif (!createdCardResponse?.[\"sap.insights\"]?.visible) {\n\t\t\t\tMessageBox.information(this._i18nBundle.getText(\"INT_CARD_LIMIT_MESSAGEBOX\") as string, {\n\t\t\t\t\tstyleClass: \"msgBoxAlign\"\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst cardsPanel = this._fetchCardsPanel();\n\t\t\tawait cardsPanel?.refreshData();\n\t\t} catch (error) {\n\t\t\tLog.error((error as Error).message);\n\t\t} finally {\n\t\t\taddContentDialog.setBusy(false);\n\t\t}\n\t}\n\n\t/**\n\t * Resets the internal content related to card addition.\n\t * Disables the \"Add\" button.\n\t *\n\t * @private\n\t */\n\tprivate resetAddCardInnerContent() {\n\t\tthis.cardHelperInstance?.resetAddCardInnerContent();\n\t\tthis.enableAddButton(false);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,6 +21,7 @@ import { ICardHelper, ICardHelperInstance, ICardManifest } from "./interface/Car
|
|
|
21
21
|
import { CONTENT_ADDITION_PANEL_TYPES, FEATURE_TOGGLES, FESR_IDS } from "./utils/Constants";
|
|
22
22
|
import { isNavigationSupportedForFeature } from "./utils/FeatureUtils";
|
|
23
23
|
import { addFESRSemanticStepName, FESR_EVENTS } from "./utils/FESRUtil";
|
|
24
|
+
import { triggerPXIntegration } from "./utils/PXFeedback";
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
*
|
|
@@ -181,6 +182,7 @@ export default class InsightsAdditionPanel extends BaseSettingsPanel {
|
|
|
181
182
|
* @returns {Promise<void>} A promise that resolves when the card creation flow completes.
|
|
182
183
|
*/
|
|
183
184
|
private async onPressAddCards() {
|
|
185
|
+
triggerPXIntegration("addCardsButton");
|
|
184
186
|
const addContentDialog = this.getParent() as ContentAdditionDialog;
|
|
185
187
|
try {
|
|
186
188
|
addContentDialog.setBusy(true);
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
declare module "sap/cux/home/NewsAndPagesContainer" {
|
|
2
|
-
/*!
|
|
3
|
-
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
4
|
-
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
5
|
-
*/
|
|
6
2
|
import type { MetadataOptions } from "sap/ui/core/Element";
|
|
7
3
|
import BaseContainer from "sap/cux/home/BaseContainer";
|
|
8
4
|
import BasePanel from "sap/cux/home/BasePanel";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsAndPagesContainer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/NewsAndPagesContainer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"NewsAndPagesContainer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/NewsAndPagesContainer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,oCAAoC,CAAC;IAOpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAC3D,OAAO,aAAa,MAAM,4BAA4B,CAAC;IACvD,OAAO,SAAS,MAAM,wBAAwB,CAAC;IAC/C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;IAGzF,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAA6B,MAAM,yCAAyC,CAAC;IAC7H,OAAO,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;IAIjE,UAAU,YAAY;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAClD;IAED,UAAU,mBAAmB;QAC5B,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,QAAQ,CAAC;KACnB;IAED;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,aAAa;QAC/D,MAAM,CAAC,QAAQ;;;;UAGb;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAevC;QAEF,OAAO,CAAC,WAAW,CAAoB;QACvC,OAAO,CAAC,SAAS,CAAa;QAC9B,OAAO,CAAC,SAAS,CAAa;QAC9B,OAAO,CAAC,aAAa,CAAkB;QACvC,OAAO,CAAC,eAAe,CAAsE;oBAEjF,EAAE,CAAC,EAAE,MAAM,GAAG,8BAA8B;oBAC5C,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,8BAA8B;QAWlE;;;;;WAKG;QACI,IAAI,IAAI,IAAI;QAgBnB;;;;;;WAMG;QACU,IAAI;QA2DjB;;;;;WAKG;QACI,mBAAmB,CAAC,QAAQ,EAAE,SAAS;QAM9C;;;;;WAKG;QACI,kBAAkB,IAAI,mBAAmB;QAIzC,2BAA2B,CAAC,eAAe,EAAE,wBAAwB;QAgBrE,mBAAmB,CAAC,gBAAgB,EAAE,aAAa;QA0CnD,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE;QAc1E,iBAAiB,CAAC,kBAAkB,EAAE,OAAO;QAqCpD;;;;;WAKG;QACI,YAAY;QAmBnB;;;;WAIG;QACH,SAAS,CAAC,4BAA4B,IAAI,MAAM;KAGhD;CAEA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["./BaseContainer", "./
|
|
5
|
+
sap.ui.define(["./BaseContainer", "./library", "./utils/Device", "./utils/placeholder/NewsAndPagesPlaceholder"], function (__BaseContainer, ___library, ___utils_Device, ___utils_placeholder_NewsAndPagesPlaceholder) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -163,10 +163,10 @@ sap.ui.define(["./BaseContainer", "./utils/placeholder/NewsAndPagesPlaceholder",
|
|
|
163
163
|
return body(values[i]);
|
|
164
164
|
}, check);
|
|
165
165
|
}
|
|
166
|
-
const getNewsPagesPlaceholder = ___utils_placeholder_NewsAndPagesPlaceholder["getNewsPagesPlaceholder"];
|
|
167
166
|
const NewsType = ___library["NewsType"];
|
|
168
167
|
const OrientationType = ___library["OrientationType"];
|
|
169
168
|
const DeviceType = ___utils_Device["DeviceType"];
|
|
169
|
+
const getNewsPagesPlaceholder = ___utils_placeholder_NewsAndPagesPlaceholder["getNewsPagesPlaceholder"];
|
|
170
170
|
/**
|
|
171
171
|
*
|
|
172
172
|
* Container class for managing and storing News and Pages.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsAndPagesContainer.js","names":["sap","ui","define","__BaseContainer","___utils_placeholder_NewsAndPagesPlaceholder","___library","___utils_Device","_interopRequireDefault","obj","__esModule","default","_iteratorSymbol","Symbol","iterator","_settle","pact","state","value","s","_Pact","v","o","bind","then","observer","prototype","onFulfilled","onRejected","result","callback","e","_this","_isSettledPact","thenable","_forTo","array","body","check","i","reject","_cycle","length","BaseContainer","_forOf","target","step","next","done","return","_fixup","TypeError","values","push","getNewsPagesPlaceholder","NewsType","OrientationType","DeviceType","NewsAndPagesContainer","extend","metadata","properties","colorPersonalizations","type","group","defaultValue","visibility","iconPersonalizations","newsFeedVisibility","renderer","apiVersion","constructor","_constructor","id","settings","BaseContainer.prototype.constructor.call","panelLoaded","keyUserChange","isEndUserChange","isEndUser","newsType","None","init","_init","BaseContainer.prototype.init.call","setProperty","getDeviceType","Desktop","LargeDesktop","XLargeDesktop","Horizontal","Vertical","addCustomSetting","_i18nBundle","getText","addStyleClass","load","_load","aContent","getContent","_temp","oContent","checkEndUserChanges","Promise","resolve","getData","getProperty","getMetadata","getName","setVisible","setColorPersonalizations","_setColorPersonalizations","personalizations","existingPers","updatedPers","concat","forEach","applyColorPersonalizations","setIconPersonalizations","_setIconPersonalizations","applyIconPersonalizations","_checkEndUserChanges","getIsEndUserChange","_getIsEndUserChange","newsVisibilityChangeHandler","_newsVisibilityChangeHandler","personalization","newsPanel","isNewsFeedVisible","newsPersonalization","_newsPersonalization","Boolean","showCustomNewsFeed","Custom","showRssNewsFeed","NewsUrl","Default","newsFeedURL","customNewsFeedKey","customNewsFeedFileName","url","customFeedKey","String","setCustomNewsFeed","showDefaultNewsFeed","setDefaultNews","setURL","panelLoadedFn","_panelLoadedFn","sPanelType","oVal","pagePanel","adjustLayout","adjustStyleLayout","_adjustStyleLayout","bIsNewsTileVisible","sDeviceType","newsContentWrapper","undefined","pagesContentWrapper","setWidth","setOrientation","Tablet","setJustifyContent","removeStyleClass","setTimeout","attachResizeHandler","getDomRef","clientWidth","_adjustLayout","getVisible","loaded","removeContent","getGenericPlaceholderContent","_getGenericPlaceholderContent"],"sources":["NewsAndPagesContainer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport BaseContainer from \"./BaseContainer\";\nimport BasePanel from \"./BasePanel\";\nimport type { $NewsAndPagesContainerSettings } from \"./NewsAndPagesContainer\";\nimport { getNewsPagesPlaceholder } from \"./utils/placeholder/NewsAndPagesPlaceholder\";\nimport NewsPanel from \"./NewsPanel\";\nimport PagePanel from \"./PagePanel\";\nimport { INewsFeedVisibiliyChange, INewsPersData, ISpacePagePersonalization } from \"./interface/KeyUserInterface\";\nimport { NewsType, OrientationType } from \"./library\";\nimport { DeviceType } from \"./utils/Device\";\nimport VBox from \"sap/m/VBox\";\n\ninterface IpanelLoaded {\n\t[key: string]: { loaded: boolean; count: number };\n}\n\ninterface EndUserChangeStatus {\n\tisEndUser: boolean;\n\tnewsType: NewsType;\n}\n\n/**\n *\n * Container class for managing and storing News and Pages.\n *\n * @extends BaseContainer\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.NewsAndPagesContainer\n */\n\nexport default class NewsAndPagesContainer extends BaseContainer {\n\tstatic renderer = {\n\t\t...BaseContainer.renderer,\n\t\tapiVersion: 2\n\t};\n\tstatic readonly metadata: MetadataOptions = {\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Color Personalizations for Spaces & Pages\n\t\t\t */\n\t\t\tcolorPersonalizations: { type: \"array\", group: \"Misc\", defaultValue: [], visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Icon Personalizations for Spaces & Pages\n\t\t\t */\n\t\t\ticonPersonalizations: { type: \"array\", group: \"Misc\", defaultValue: [], visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * News feed visibility flag\n\t\t\t */\n\t\t\tnewsFeedVisibility: { type: \"boolean\", group: \"Misc\", defaultValue: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tprivate panelLoaded: IpanelLoaded = {};\n\tprivate pagePanel!: PagePanel;\n\tprivate newsPanel!: NewsPanel;\n\tprivate keyUserChange: boolean = false;\n\tprivate isEndUserChange: EndUserChangeStatus = { isEndUser: false, newsType: NewsType.None };\n\n\tconstructor(id?: string | $NewsAndPagesContainerSettings);\n\tconstructor(id?: string, settings?: $NewsAndPagesContainerSettings);\n\t/**\n\t * Constructor for the new News and Pages container.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $NewsAndPagesContainerSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis.panelLoaded = {};\n\n\t\tthis.setProperty(\n\t\t\t\"orientation\",\n\t\t\tthis.getDeviceType() === DeviceType.Desktop ||\n\t\t\t\tthis.getDeviceType() === DeviceType.LargeDesktop ||\n\t\t\t\tthis.getDeviceType() === DeviceType.XLargeDesktop\n\t\t\t\t? OrientationType.Horizontal\n\t\t\t\t: OrientationType.Vertical\n\t\t);\n\t\tthis.addCustomSetting(\"title\", this._i18nBundle.getText(\"myInterestMsg\") as string);\n\t\tthis.addStyleClass(\"sapCuxNewsAndPagesContainer\");\n\t}\n\n\t/**\n\t * Loads the News and Pages section.\n\t * Overrides the load method of the BaseContainer.\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic async load() {\n\t\tconst aContent = this.getContent() as PagePanel[] | NewsPanel[];\n\t\tfor (const oContent of aContent) {\n\t\t\tif (!this.keyUserChange) {\n\t\t\t\tthis.checkEndUserChanges(oContent);\n\t\t\t}\n\t\t\tawait oContent.getData();\n\n\t\t\t// If the newsVisibilityChangeHandler is invoked before the data is loaded,\n\t\t\t// it may result in the news panel being incorrectly displayed if it was already set hidden by the handler.\n\t\t\t// newsFeedVisibility is set as false, then hide the news panel\n\t\t\tconst newsFeedVisibility = this.getProperty(\"newsFeedVisibility\") as boolean;\n\t\t\t// if newsFeedVisibility is false, hide the news panel\n\t\t\tif (oContent && oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\" && !newsFeedVisibility) {\n\t\t\t\toContent.setVisible(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets property value for colorPersonalization.\n\t * Overridden to update cached personalizations.\n\t *\n\t * @private\n\t * @override\n\t * @returns {NewsAndPagesContainer} the container for chaining\n\t */\n\tsetColorPersonalizations(personalizations: Array<ISpacePagePersonalization>): NewsAndPagesContainer {\n\t\tconst existingPers = (this.getProperty(\"colorPersonalizations\") as ISpacePagePersonalization[]) || [];\n\t\tconst updatedPers = existingPers.concat(personalizations);\n\t\tthis.setProperty(\"colorPersonalizations\", updatedPers);\n\t\tthis.getContent().forEach((oContent) => {\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.PagePanel\") {\n\t\t\t\t(oContent as PagePanel).applyColorPersonalizations(updatedPers);\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets property value for iconPersonalization.\n\t * Overridden to update cached personalizations.\n\t *\n\t * @private\n\t * @override\n\t * @returns {NewsAndPagesContainer} the container for chaining\n\t */\n\tsetIconPersonalizations(personalizations: Array<ISpacePagePersonalization>): NewsAndPagesContainer {\n\t\tconst existingPers = (this.getProperty(\"iconPersonalizations\") as ISpacePagePersonalization[]) || [];\n\t\tconst updatedPers = existingPers.concat(personalizations);\n\t\tthis.setProperty(\"iconPersonalizations\", updatedPers);\n\t\tthis.getContent().forEach((oContent) => {\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.PagePanel\") {\n\t\t\t\t(oContent as PagePanel).applyIconPersonalizations(updatedPers);\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t}\n\n\t/**\n\t * Marks the change as an end-user change if the content is a NewsPanel with a URL and no key user changes exist.\n\t *\n\t * @private\n\t * @param {BasePanel} oContent - The content panel to evaluate, typically of type `sap.cux.home.NewsPanel`.\n\t */\n\tpublic checkEndUserChanges(oContent: BasePanel) {\n\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\" && oContent.getProperty(\"url\") && !this.keyUserChange) {\n\t\t\tthis.isEndUserChange.isEndUser = true;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current end-user change status.\n\t *\n\t * @private\n\t * @returns {EndUserChangeStatus} An object containing the end-user change flag and the news type.\n\t */\n\tpublic getIsEndUserChange(): EndUserChangeStatus {\n\t\treturn this.isEndUserChange;\n\t}\n\n\tpublic newsVisibilityChangeHandler(personalization: INewsFeedVisibiliyChange) {\n\t\tconst aContent = this.getContent();\n\t\taContent.forEach((oContent: BasePanel) => {\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\") {\n\t\t\t\tlet newsPanel = oContent as NewsPanel;\n\t\t\t\tif (personalization.isNewsFeedVisible) {\n\t\t\t\t\tthis.setProperty(\"newsFeedVisibility\", true);\n\t\t\t\t\tnewsPanel.setVisible(true);\n\t\t\t\t} else {\n\t\t\t\t\tthis.setProperty(\"newsFeedVisibility\", false);\n\t\t\t\t\tnewsPanel.setVisible(false);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic newsPersonalization(personalizations: INewsPersData) {\n\t\tconst aContent = this.getContent();\n\t\tlet type: NewsType;\n\t\taContent.forEach((oContent: BasePanel) => {\n\t\t\tthis.checkEndUserChanges(oContent);\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\" && !this.isEndUserChange.isEndUser) {\n\t\t\t\tlet newsPanel = oContent as NewsPanel;\n\t\t\t\tconst newsFeedVisibility = Boolean(this.getProperty(\"newsFeedVisibility\"));\n\t\t\t\tthis.keyUserChange = true;\n\n\t\t\t\tif (personalizations.showCustomNewsFeed) {\n\t\t\t\t\ttype = NewsType.Custom;\n\t\t\t\t} else if (personalizations.showRssNewsFeed) {\n\t\t\t\t\ttype = NewsType.NewsUrl;\n\t\t\t\t} else {\n\t\t\t\t\ttype = NewsType.Default;\n\t\t\t\t}\n\t\t\t\tnewsPanel.setProperty(\"type\", type);\n\t\t\t\tnewsPanel.setProperty(\"url\", personalizations.newsFeedURL);\n\t\t\t\tnewsPanel.setProperty(\"customFeedKey\", personalizations.customNewsFeedKey);\n\t\t\t\tnewsPanel.setProperty(\"customFileName\", personalizations.customNewsFeedFileName);\n\n\t\t\t\tif (newsFeedVisibility) {\n\t\t\t\t\tconst url = personalizations.newsFeedURL as string;\n\t\t\t\t\tnewsPanel.setVisible(true);\n\t\t\t\t\tconst customFeedKey = String(newsPanel.getProperty(\"customFeedKey\"));\n\t\t\t\t\tif (personalizations.showCustomNewsFeed && customFeedKey) {\n\t\t\t\t\t\tnewsPanel.setProperty(\"newsAvailable\", true);\n\t\t\t\t\t\tvoid newsPanel.setCustomNewsFeed(customFeedKey);\n\t\t\t\t\t} else if (personalizations.showDefaultNewsFeed) {\n\t\t\t\t\t\tvoid newsPanel.setDefaultNews();\n\t\t\t\t\t} else if (personalizations.showRssNewsFeed && url) {\n\t\t\t\t\t\tvoid newsPanel.setURL(url);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewsPanel.setVisible(false);\n\t\t\t\t\t\tthis.setProperty(\"newsFeedVisibility\", false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic panelLoadedFn(sPanelType: string, oVal: { loaded: boolean; count: number }) {\n\t\t// same issue of panelwrapper not available at this time\n\t\tconst aContent = this.getContent();\n\t\taContent.forEach((oContent: BasePanel) => {\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.PagePanel\") {\n\t\t\t\tthis.pagePanel = oContent as PagePanel;\n\t\t\t} else if (oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\") {\n\t\t\t\tthis.newsPanel = oContent as NewsPanel;\n\t\t\t}\n\t\t});\n\t\tthis.panelLoaded[sPanelType] = oVal;\n\t\tthis.adjustLayout();\n\t}\n\n\tpublic adjustStyleLayout(bIsNewsTileVisible: boolean) {\n\t\tconst sDeviceType = this.getDeviceType();\n\t\tconst newsContentWrapper = this.newsPanel ? this.newsPanel.getContent()?.[0] as VBox : undefined;\n\t\tconst pagesContentWrapper = this.pagePanel ? this.pagePanel.getContent()?.[0] as VBox : undefined;\n\t\tif (bIsNewsTileVisible) {\n\t\t\tthis.newsPanel.adjustLayout();\n\t\t}\n\t\tif (sDeviceType === DeviceType.Desktop || sDeviceType === DeviceType.LargeDesktop || sDeviceType === DeviceType.XLargeDesktop) {\n\t\t\tif (bIsNewsTileVisible) {\n\t\t\t\tpagesContentWrapper?.setWidth(\"100%\");\n\t\t\t}\n\t\t\tthis.setOrientation(OrientationType.Horizontal);\n\t\t\tnewsContentWrapper?.setWidth(\"100%\");\n\t\t\tnewsContentWrapper?.addStyleClass(\"newsTileMaxWidth\");\n\t\t} else if (sDeviceType === DeviceType.Tablet) {\n\t\t\tthis.setOrientation(OrientationType.Vertical);\n\t\t\tpagesContentWrapper?.setWidth(\"100%\");\n\t\t\tpagesContentWrapper?.setJustifyContent(\"Start\");\n\t\t\tnewsContentWrapper?.setWidth(\"calc(100vw - 64px)\");\n\t\t\tnewsContentWrapper?.removeStyleClass(\"newsTileMaxWidth\");\n\t\t} else {\n\t\t\tthis.setOrientation(OrientationType.Vertical);\n\t\t\tnewsContentWrapper?.setWidth(\"calc(100vw - 16px)\");\n\t\t}\n\n\t\tif (pagesContentWrapper) {\n\t\t\tsetTimeout(\n\t\t\t\tthis.pagePanel.attachResizeHandler.bind(\n\t\t\t\t\tthis.pagePanel,\n\t\t\t\t\tbIsNewsTileVisible,\n\t\t\t\t\tthis.getDomRef()?.clientWidth || 0,\n\t\t\t\t\tpagesContentWrapper\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Adjusts the layout of the all panels in the container.\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic adjustLayout() {\n\t\tif (this.pagePanel && this.newsPanel && this.newsPanel.getVisible()) {\n\t\t\tlet bIsNewsTileVisible = true;\n\t\t\tif (this.panelLoaded[\"Page\"]?.loaded || this.panelLoaded[\"News\"]?.loaded) {\n\t\t\t\t// In case News Panel fails to load remove the panel and apply styles for page to take full width\n\t\t\t\tif (this.panelLoaded[\"News\"]?.loaded === false) {\n\t\t\t\t\tbIsNewsTileVisible = false;\n\t\t\t\t\tthis.removeContent(this.newsPanel);\n\t\t\t\t} else if (this.panelLoaded[\"Page\"]?.loaded === false) {\n\t\t\t\t\tthis.removeContent(this.pagePanel);\n\t\t\t\t}\n\t\t\t\tthis.adjustStyleLayout(bIsNewsTileVisible);\n\t\t\t}\n\t\t} else if (this.pagePanel && this.panelLoaded[\"Page\"]?.loaded) {\n\t\t\t// If News Panel is not present apply styles for page to take full width\n\t\t\tthis.adjustStyleLayout(false);\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the generic placeholder content for the News and Pages container.\n\t *\n\t * @returns {string} The HTML string representing the News and Pages container's placeholder content.\n\t */\n\tprotected getGenericPlaceholderContent(): string {\n\t\treturn getNewsPagesPlaceholder();\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NewsAndPagesContainer.js","names":["sap","ui","define","__BaseContainer","___library","___utils_Device","___utils_placeholder_NewsAndPagesPlaceholder","_interopRequireDefault","obj","__esModule","default","_iteratorSymbol","Symbol","iterator","_settle","pact","state","value","s","_Pact","v","o","bind","then","observer","prototype","onFulfilled","onRejected","result","callback","e","_this","_isSettledPact","thenable","_forTo","array","body","check","i","reject","_cycle","length","BaseContainer","_forOf","target","step","next","done","return","_fixup","TypeError","values","push","NewsType","OrientationType","DeviceType","getNewsPagesPlaceholder","NewsAndPagesContainer","extend","metadata","properties","colorPersonalizations","type","group","defaultValue","visibility","iconPersonalizations","newsFeedVisibility","renderer","apiVersion","constructor","_constructor","id","settings","BaseContainer.prototype.constructor.call","panelLoaded","keyUserChange","isEndUserChange","isEndUser","newsType","None","init","_init","BaseContainer.prototype.init.call","setProperty","getDeviceType","Desktop","LargeDesktop","XLargeDesktop","Horizontal","Vertical","addCustomSetting","_i18nBundle","getText","addStyleClass","load","_load","aContent","getContent","_temp","oContent","checkEndUserChanges","Promise","resolve","getData","getProperty","getMetadata","getName","setVisible","setColorPersonalizations","_setColorPersonalizations","personalizations","existingPers","updatedPers","concat","forEach","applyColorPersonalizations","setIconPersonalizations","_setIconPersonalizations","applyIconPersonalizations","_checkEndUserChanges","getIsEndUserChange","_getIsEndUserChange","newsVisibilityChangeHandler","_newsVisibilityChangeHandler","personalization","newsPanel","isNewsFeedVisible","newsPersonalization","_newsPersonalization","Boolean","showCustomNewsFeed","Custom","showRssNewsFeed","NewsUrl","Default","newsFeedURL","customNewsFeedKey","customNewsFeedFileName","url","customFeedKey","String","setCustomNewsFeed","showDefaultNewsFeed","setDefaultNews","setURL","panelLoadedFn","_panelLoadedFn","sPanelType","oVal","pagePanel","adjustLayout","adjustStyleLayout","_adjustStyleLayout","bIsNewsTileVisible","sDeviceType","newsContentWrapper","undefined","pagesContentWrapper","setWidth","setOrientation","Tablet","setJustifyContent","removeStyleClass","setTimeout","attachResizeHandler","getDomRef","clientWidth","_adjustLayout","getVisible","loaded","removeContent","getGenericPlaceholderContent","_getGenericPlaceholderContent"],"sources":["NewsAndPagesContainer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport VBox from \"sap/m/VBox\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport BaseContainer from \"./BaseContainer\";\nimport BasePanel from \"./BasePanel\";\nimport type { $NewsAndPagesContainerSettings } from \"./NewsAndPagesContainer\";\nimport NewsPanel from \"./NewsPanel\";\nimport PagePanel from \"./PagePanel\";\nimport { INewsFeedVisibiliyChange, INewsPersData, ISpacePagePersonalization } from \"./interface/KeyUserInterface\";\nimport { NewsType, OrientationType } from \"./library\";\nimport { DeviceType } from \"./utils/Device\";\nimport { getNewsPagesPlaceholder } from \"./utils/placeholder/NewsAndPagesPlaceholder\";\n\ninterface IpanelLoaded {\n\t[key: string]: { loaded: boolean; count: number };\n}\n\ninterface EndUserChangeStatus {\n\tisEndUser: boolean;\n\tnewsType: NewsType;\n}\n\n/**\n *\n * Container class for managing and storing News and Pages.\n *\n * @extends BaseContainer\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.NewsAndPagesContainer\n */\n\nexport default class NewsAndPagesContainer extends BaseContainer {\n\tstatic renderer = {\n\t\t...BaseContainer.renderer,\n\t\tapiVersion: 2\n\t};\n\tstatic readonly metadata: MetadataOptions = {\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Color Personalizations for Spaces & Pages\n\t\t\t */\n\t\t\tcolorPersonalizations: { type: \"array\", group: \"Misc\", defaultValue: [], visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Icon Personalizations for Spaces & Pages\n\t\t\t */\n\t\t\ticonPersonalizations: { type: \"array\", group: \"Misc\", defaultValue: [], visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * News feed visibility flag\n\t\t\t */\n\t\t\tnewsFeedVisibility: { type: \"boolean\", group: \"Misc\", defaultValue: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tprivate panelLoaded: IpanelLoaded = {};\n\tprivate pagePanel!: PagePanel;\n\tprivate newsPanel!: NewsPanel;\n\tprivate keyUserChange: boolean = false;\n\tprivate isEndUserChange: EndUserChangeStatus = { isEndUser: false, newsType: NewsType.None };\n\n\tconstructor(id?: string | $NewsAndPagesContainerSettings);\n\tconstructor(id?: string, settings?: $NewsAndPagesContainerSettings);\n\t/**\n\t * Constructor for the new News and Pages container.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $NewsAndPagesContainerSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis.panelLoaded = {};\n\n\t\tthis.setProperty(\n\t\t\t\"orientation\",\n\t\t\tthis.getDeviceType() === DeviceType.Desktop ||\n\t\t\t\tthis.getDeviceType() === DeviceType.LargeDesktop ||\n\t\t\t\tthis.getDeviceType() === DeviceType.XLargeDesktop\n\t\t\t\t? OrientationType.Horizontal\n\t\t\t\t: OrientationType.Vertical\n\t\t);\n\t\tthis.addCustomSetting(\"title\", this._i18nBundle.getText(\"myInterestMsg\") as string);\n\t\tthis.addStyleClass(\"sapCuxNewsAndPagesContainer\");\n\t}\n\n\t/**\n\t * Loads the News and Pages section.\n\t * Overrides the load method of the BaseContainer.\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic async load() {\n\t\tconst aContent = this.getContent() as PagePanel[] | NewsPanel[];\n\t\tfor (const oContent of aContent) {\n\t\t\tif (!this.keyUserChange) {\n\t\t\t\tthis.checkEndUserChanges(oContent);\n\t\t\t}\n\t\t\tawait oContent.getData();\n\n\t\t\t// If the newsVisibilityChangeHandler is invoked before the data is loaded,\n\t\t\t// it may result in the news panel being incorrectly displayed if it was already set hidden by the handler.\n\t\t\t// newsFeedVisibility is set as false, then hide the news panel\n\t\t\tconst newsFeedVisibility = this.getProperty(\"newsFeedVisibility\") as boolean;\n\t\t\t// if newsFeedVisibility is false, hide the news panel\n\t\t\tif (oContent && oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\" && !newsFeedVisibility) {\n\t\t\t\toContent.setVisible(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets property value for colorPersonalization.\n\t * Overridden to update cached personalizations.\n\t *\n\t * @private\n\t * @override\n\t * @returns {NewsAndPagesContainer} the container for chaining\n\t */\n\tsetColorPersonalizations(personalizations: Array<ISpacePagePersonalization>): NewsAndPagesContainer {\n\t\tconst existingPers = (this.getProperty(\"colorPersonalizations\") as ISpacePagePersonalization[]) || [];\n\t\tconst updatedPers = existingPers.concat(personalizations);\n\t\tthis.setProperty(\"colorPersonalizations\", updatedPers);\n\t\tthis.getContent().forEach((oContent) => {\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.PagePanel\") {\n\t\t\t\t(oContent as PagePanel).applyColorPersonalizations(updatedPers);\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets property value for iconPersonalization.\n\t * Overridden to update cached personalizations.\n\t *\n\t * @private\n\t * @override\n\t * @returns {NewsAndPagesContainer} the container for chaining\n\t */\n\tsetIconPersonalizations(personalizations: Array<ISpacePagePersonalization>): NewsAndPagesContainer {\n\t\tconst existingPers = (this.getProperty(\"iconPersonalizations\") as ISpacePagePersonalization[]) || [];\n\t\tconst updatedPers = existingPers.concat(personalizations);\n\t\tthis.setProperty(\"iconPersonalizations\", updatedPers);\n\t\tthis.getContent().forEach((oContent) => {\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.PagePanel\") {\n\t\t\t\t(oContent as PagePanel).applyIconPersonalizations(updatedPers);\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t}\n\n\t/**\n\t * Marks the change as an end-user change if the content is a NewsPanel with a URL and no key user changes exist.\n\t *\n\t * @private\n\t * @param {BasePanel} oContent - The content panel to evaluate, typically of type `sap.cux.home.NewsPanel`.\n\t */\n\tpublic checkEndUserChanges(oContent: BasePanel) {\n\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\" && oContent.getProperty(\"url\") && !this.keyUserChange) {\n\t\t\tthis.isEndUserChange.isEndUser = true;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current end-user change status.\n\t *\n\t * @private\n\t * @returns {EndUserChangeStatus} An object containing the end-user change flag and the news type.\n\t */\n\tpublic getIsEndUserChange(): EndUserChangeStatus {\n\t\treturn this.isEndUserChange;\n\t}\n\n\tpublic newsVisibilityChangeHandler(personalization: INewsFeedVisibiliyChange) {\n\t\tconst aContent = this.getContent();\n\t\taContent.forEach((oContent: BasePanel) => {\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\") {\n\t\t\t\tlet newsPanel = oContent as NewsPanel;\n\t\t\t\tif (personalization.isNewsFeedVisible) {\n\t\t\t\t\tthis.setProperty(\"newsFeedVisibility\", true);\n\t\t\t\t\tnewsPanel.setVisible(true);\n\t\t\t\t} else {\n\t\t\t\t\tthis.setProperty(\"newsFeedVisibility\", false);\n\t\t\t\t\tnewsPanel.setVisible(false);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic newsPersonalization(personalizations: INewsPersData) {\n\t\tconst aContent = this.getContent();\n\t\tlet type: NewsType;\n\t\taContent.forEach((oContent: BasePanel) => {\n\t\t\tthis.checkEndUserChanges(oContent);\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\" && !this.isEndUserChange.isEndUser) {\n\t\t\t\tlet newsPanel = oContent as NewsPanel;\n\t\t\t\tconst newsFeedVisibility = Boolean(this.getProperty(\"newsFeedVisibility\"));\n\t\t\t\tthis.keyUserChange = true;\n\n\t\t\t\tif (personalizations.showCustomNewsFeed) {\n\t\t\t\t\ttype = NewsType.Custom;\n\t\t\t\t} else if (personalizations.showRssNewsFeed) {\n\t\t\t\t\ttype = NewsType.NewsUrl;\n\t\t\t\t} else {\n\t\t\t\t\ttype = NewsType.Default;\n\t\t\t\t}\n\t\t\t\tnewsPanel.setProperty(\"type\", type);\n\t\t\t\tnewsPanel.setProperty(\"url\", personalizations.newsFeedURL);\n\t\t\t\tnewsPanel.setProperty(\"customFeedKey\", personalizations.customNewsFeedKey);\n\t\t\t\tnewsPanel.setProperty(\"customFileName\", personalizations.customNewsFeedFileName);\n\n\t\t\t\tif (newsFeedVisibility) {\n\t\t\t\t\tconst url = personalizations.newsFeedURL as string;\n\t\t\t\t\tnewsPanel.setVisible(true);\n\t\t\t\t\tconst customFeedKey = String(newsPanel.getProperty(\"customFeedKey\"));\n\t\t\t\t\tif (personalizations.showCustomNewsFeed && customFeedKey) {\n\t\t\t\t\t\tnewsPanel.setProperty(\"newsAvailable\", true);\n\t\t\t\t\t\tvoid newsPanel.setCustomNewsFeed(customFeedKey);\n\t\t\t\t\t} else if (personalizations.showDefaultNewsFeed) {\n\t\t\t\t\t\tvoid newsPanel.setDefaultNews();\n\t\t\t\t\t} else if (personalizations.showRssNewsFeed && url) {\n\t\t\t\t\t\tvoid newsPanel.setURL(url);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewsPanel.setVisible(false);\n\t\t\t\t\t\tthis.setProperty(\"newsFeedVisibility\", false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic panelLoadedFn(sPanelType: string, oVal: { loaded: boolean; count: number }) {\n\t\t// same issue of panelwrapper not available at this time\n\t\tconst aContent = this.getContent();\n\t\taContent.forEach((oContent: BasePanel) => {\n\t\t\tif (oContent.getMetadata().getName() === \"sap.cux.home.PagePanel\") {\n\t\t\t\tthis.pagePanel = oContent as PagePanel;\n\t\t\t} else if (oContent.getMetadata().getName() === \"sap.cux.home.NewsPanel\") {\n\t\t\t\tthis.newsPanel = oContent as NewsPanel;\n\t\t\t}\n\t\t});\n\t\tthis.panelLoaded[sPanelType] = oVal;\n\t\tthis.adjustLayout();\n\t}\n\n\tpublic adjustStyleLayout(bIsNewsTileVisible: boolean) {\n\t\tconst sDeviceType = this.getDeviceType();\n\t\tconst newsContentWrapper = this.newsPanel ? (this.newsPanel.getContent()?.[0] as VBox) : undefined;\n\t\tconst pagesContentWrapper = this.pagePanel ? (this.pagePanel.getContent()?.[0] as VBox) : undefined;\n\t\tif (bIsNewsTileVisible) {\n\t\t\tthis.newsPanel.adjustLayout();\n\t\t}\n\t\tif (sDeviceType === DeviceType.Desktop || sDeviceType === DeviceType.LargeDesktop || sDeviceType === DeviceType.XLargeDesktop) {\n\t\t\tif (bIsNewsTileVisible) {\n\t\t\t\tpagesContentWrapper?.setWidth(\"100%\");\n\t\t\t}\n\t\t\tthis.setOrientation(OrientationType.Horizontal);\n\t\t\tnewsContentWrapper?.setWidth(\"100%\");\n\t\t\tnewsContentWrapper?.addStyleClass(\"newsTileMaxWidth\");\n\t\t} else if (sDeviceType === DeviceType.Tablet) {\n\t\t\tthis.setOrientation(OrientationType.Vertical);\n\t\t\tpagesContentWrapper?.setWidth(\"100%\");\n\t\t\tpagesContentWrapper?.setJustifyContent(\"Start\");\n\t\t\tnewsContentWrapper?.setWidth(\"calc(100vw - 64px)\");\n\t\t\tnewsContentWrapper?.removeStyleClass(\"newsTileMaxWidth\");\n\t\t} else {\n\t\t\tthis.setOrientation(OrientationType.Vertical);\n\t\t\tnewsContentWrapper?.setWidth(\"calc(100vw - 16px)\");\n\t\t}\n\n\t\tif (pagesContentWrapper) {\n\t\t\tsetTimeout(\n\t\t\t\tthis.pagePanel.attachResizeHandler.bind(\n\t\t\t\t\tthis.pagePanel,\n\t\t\t\t\tbIsNewsTileVisible,\n\t\t\t\t\tthis.getDomRef()?.clientWidth || 0,\n\t\t\t\t\tpagesContentWrapper\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Adjusts the layout of the all panels in the container.\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic adjustLayout() {\n\t\tif (this.pagePanel && this.newsPanel && this.newsPanel.getVisible()) {\n\t\t\tlet bIsNewsTileVisible = true;\n\t\t\tif (this.panelLoaded[\"Page\"]?.loaded || this.panelLoaded[\"News\"]?.loaded) {\n\t\t\t\t// In case News Panel fails to load remove the panel and apply styles for page to take full width\n\t\t\t\tif (this.panelLoaded[\"News\"]?.loaded === false) {\n\t\t\t\t\tbIsNewsTileVisible = false;\n\t\t\t\t\tthis.removeContent(this.newsPanel);\n\t\t\t\t} else if (this.panelLoaded[\"Page\"]?.loaded === false) {\n\t\t\t\t\tthis.removeContent(this.pagePanel);\n\t\t\t\t}\n\t\t\t\tthis.adjustStyleLayout(bIsNewsTileVisible);\n\t\t\t}\n\t\t} else if (this.pagePanel && this.panelLoaded[\"Page\"]?.loaded) {\n\t\t\t// If News Panel is not present apply styles for page to take full width\n\t\t\tthis.adjustStyleLayout(false);\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the generic placeholder content for the News and Pages container.\n\t *\n\t * @returns {string} The HTML string representing the News and Pages container's placeholder content.\n\t */\n\tprotected getGenericPlaceholderContent(): string {\n\t\treturn getNewsPagesPlaceholder();\n\t}\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,8GAAAC,eAAA,EAAAC,UAAA,EAAAC,eAAA,EAAAC,4CAAA;EAAA;;EAAA,SAAAC,uBAAAC,GAAA;IAAA,OAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,CAAAE,OAAA,mBAAAF,GAAA,CAAAE,OAAA,GAAAF,GAAA;EAAA;EAAA,MAoKaG,eAAA,GAAkB,aAAc,OAAOC,MAAM,KAAK,WAAW,GAAIA,MAAM,CAACC,QAAQ,KAAKD,MAAM,CAACC,QAAQ,GAAGD,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAI,YAAY;EA7HvJ,SAASE,OAAOA,CAACC,IAAI,EAAEC,KAAK,EAAEC,KAAK,EAAE;IAC3C,IAAI,CAACF,IAAI,CAACG,CAAC,EAAE;MACZ,IAAID,KAAK,YAAYE,KAAK,EAAE;QAC3B,IAAIF,KAAK,CAACC,CAAC,EAAE;UACZ,IAAIF,KAAK,GAAG,CAAC,EAAE;YACdA,KAAK,GAAGC,KAAK,CAACC,CAAC;UAChB;UACAD,KAAK,GAAGA,KAAK,CAACG,CAAC;QAChB,CAAC,MAAM;UACNH,KAAK,CAACI,CAAC,GAAGP,OAAO,CAACQ,IAAI,CAAC,IAAI,EAAEP,IAAI,EAAEC,KAAK,CAAC;UACzC;QACD;MACD;MACA,IAAIC,KAAK,IAAIA,KAAK,CAACM,IAAI,EAAE;QACxBN,KAAK,CAACM,IAAI,CAACT,OAAO,CAACQ,IAAI,CAAC,IAAI,EAAEP,IAAI,EAAEC,KAAK,CAAC,EAAEF,OAAO,CAACQ,IAAI,CAAC,IAAI,EAAEP,IAAI,EAAE,CAAC,CAAC,CAAC;QACxE;MACD;MACAA,IAAI,CAACG,CAAC,GAAGF,KAAK;MACdD,IAAI,CAACK,CAAC,GAAGH,KAAK;MACd,MAAMO,QAAQ,GAAGT,IAAI,CAACM,CAAC;MACvB,IAAIG,QAAQ,EAAE;QACbA,QAAQ,CAACT,IAAI,CAAC;MACf;IACD;EACD;EAAC,MA9DYI,KAAA,GAAQ,aAAc,YAAW;IAC7C,SAAAA,MAAA,EAAiB,CAAC;IAClBA,KAAA,CAAMM,SAAS,CAACF,IAAI,GAAG,UAASG,WAAW,EAAEC,UAAU,EAAE;MACxD,MAAMC,MAAM,GAAG,IAAAT,KAAA,CAAU,CAAC;MAC1B,MAAMH,KAAK,GAAG,IAAI,CAACE,CAAC;MACpB,IAAIF,KAAK,EAAE;QACV,MAAMa,QAAQ,GAAGb,KAAK,GAAG,CAAC,GAAGU,WAAW,GAAGC,UAAU;QACrD,IAAIE,QAAQ,EAAE;UACb,IAAI;YACHf,OAAA,CAAQc,MAAM,EAAE,CAAC,EAAEC,QAAQ,CAAC,IAAI,CAACT,CAAC,CAAC,CAAC;UACrC,CAAC,CAAC,OAAOU,CAAC,EAAE;YACXhB,OAAA,CAAQc,MAAM,EAAE,CAAC,EAAEE,CAAC,CAAC;UACtB;UACA,OAAOF,MAAM;QACd,CAAC,MAAM;UACN,OAAO,IAAI;QACZ;MACD;MACA,IAAI,CAACP,CAAC,GAAG,UAASU,KAAK,EAAE;QACxB,IAAI;UACH,MAAMd,KAAK,GAAGc,KAAK,CAACX,CAAC;UACrB,IAAIW,KAAK,CAACb,CAAC,GAAG,CAAC,EAAE;YAChBJ,OAAA,CAAQc,MAAM,EAAE,CAAC,EAAEF,WAAW,GAAGA,WAAW,CAACT,KAAK,CAAC,GAAGA,KAAK,CAAC;UAC7D,CAAC,MAAM,IAAIU,UAAU,EAAE;YACtBb,OAAA,CAAQc,MAAM,EAAE,CAAC,EAAED,UAAU,CAACV,KAAK,CAAC,CAAC;UACtC,CAAC,MAAM;YACNH,OAAA,CAAQc,MAAM,EAAE,CAAC,EAAEX,KAAK,CAAC;UAC1B;QACD,CAAC,CAAC,OAAOa,CAAC,EAAE;UACXhB,OAAA,CAAQc,MAAM,EAAE,CAAC,EAAEE,CAAC,CAAC;QACtB;MACD,CAAC;MACD,OAAOF,MAAM;IACd,CAAC;IACD,OAAAT,KAAA;EACD,CAAC,CAAE,CAAC;EA6BG,SAASa,cAAcA,CAACC,QAAQ,EAAE;IACxC,OAAOA,QAAQ,YAAYd,KAAK,IAAIc,QAAQ,CAACf,CAAC,GAAG,CAAC;EACnD;EA+CO,SAASgB,MAAMA,CAACC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAE;IAC1C,IAAIC,CAAC,GAAG,CAAC,CAAC;MAAEvB,IAAI;MAAEwB,MAAM;IACxB,SAASC,MAAMA,CAACZ,MAAM,EAAE;MACvB,IAAI;QACH,OAAO,EAAEU,CAAC,GAAGH,KAAK,CAACM,MAAM,KAAK,CAACJ,KAAK,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,EAAE;UAClDT,MAAM,GAAGQ,IAAI,CAACE,CAAC,CAAC;UAChB,IAAIV,MAAM,IAAIA,MAAM,CAACL,IAAI,EAAE;YAC1B,IAAIS,cAAc,CAACJ,MAAM,CAAC,EAAE;cAC3BA,MAAM,GAAGA,MAAM,CAACR,CAAC;YAClB,CAAC,MAAM;cACNQ,MAAM,CAACL,IAAI,CAACiB,MAAM,EAAED,MAAM,KAAKA,MAAM,GAAGzB,OAAO,CAACQ,IAAI,CAAC,IAAI,EAAEP,IAAI,GAAG,IAAII,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;cACnF;YACD;UACD;QACD;QACA,IAAIJ,IAAI,EAAE;UACTD,OAAO,CAACC,IAAI,EAAE,CAAC,EAAEa,MAAM,CAAC;QACzB,CAAC,MAAM;UACNb,IAAI,GAAGa,MAAM;QACd;MACD,CAAC,CAAC,OAAOE,CAAC,EAAE;QACXhB,OAAO,CAACC,IAAI,KAAKA,IAAI,GAAG,IAAII,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAEW,CAAC,CAAC;MAC5C;IACD;IACAU,MAAM,CAAC,CAAC;IACR,OAAOzB,IAAI;EACZ;EAAC,MArIM2B,aAAa,GAAAnC,sBAAA,CAAAJ,eAAA;EAiKb,SAASwC,MAAMA,CAACC,MAAM,EAAER,IAAI,EAAEC,KAAK,EAAE;IAC3C,IAAI,OAAOO,MAAM,CAACjC,eAAe,CAAC,KAAK,UAAU,EAAE;MAClD,IAAIE,QAAQ,GAAG+B,MAAM,CAACjC,eAAe,CAAC,CAAC,CAAC;QAAEkC,IAAI;QAAE9B,IAAI;QAAEwB,MAAM;MAC5D,SAASC,MAAMA,CAACZ,MAAM,EAAE;QACvB,IAAI;UACH,OAAO,CAAC,CAACiB,IAAI,GAAGhC,QAAQ,CAACiC,IAAI,CAAC,CAAC,EAAEC,IAAI,KAAK,CAACV,KAAK,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,EAAE;YAC9DT,MAAM,GAAGQ,IAAI,CAACS,IAAI,CAAC5B,KAAK,CAAC;YACzB,IAAIW,MAAM,IAAIA,MAAM,CAACL,IAAI,EAAE;cAC1B,IAAIS,cAAc,CAACJ,MAAM,CAAC,EAAE;gBAC3BA,MAAM,GAAGA,MAAM,CAACR,CAAC;cAClB,CAAC,MAAM;gBACNQ,MAAM,CAACL,IAAI,CAACiB,MAAM,EAAED,MAAM,KAAKA,MAAM,GAAGzB,OAAO,CAACQ,IAAI,CAAC,IAAI,EAAEP,IAAI,GAAG,IAAII,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnF;cACD;YACD;UACD;UACA,IAAIJ,IAAI,EAAE;YACTD,OAAO,CAACC,IAAI,EAAE,CAAC,EAAEa,MAAM,CAAC;UACzB,CAAC,MAAM;YACNb,IAAI,GAAGa,MAAM;UACd;QACD,CAAC,CAAC,OAAOE,CAAC,EAAE;UACXhB,OAAO,CAACC,IAAI,KAAKA,IAAI,GAAG,IAAII,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAEW,CAAC,CAAC;QAC5C;MACD;MACAU,MAAM,CAAC,CAAC;MACR,IAAI3B,QAAQ,CAACmC,MAAM,EAAE;QACpB,IAAIC,MAAM,GAAG,SAAAA,CAAShC,KAAK,EAAE;UAC5B,IAAI;YACH,IAAI,CAAC4B,IAAI,CAACE,IAAI,EAAE;cACflC,QAAQ,CAACmC,MAAM,CAAC,CAAC;YAClB;UACD,CAAC,CAAC,OAAMlB,CAAC,EAAE,CACX;UACA,OAAOb,KAAK;QACb,CAAC;QACD,IAAIF,IAAI,IAAIA,IAAI,CAACQ,IAAI,EAAE;UACtB,OAAOR,IAAI,CAACQ,IAAI,CAAC0B,MAAM,EAAE,UAASnB,CAAC,EAAE;YACpC,MAAMmB,MAAM,CAACnB,CAAC,CAAC;UAChB,CAAC,CAAC;QACH;QACAmB,MAAM,CAAC,CAAC;MACT;MACA,OAAOlC,IAAI;IACZ;IACA;IACA,IAAI,EAAE,QAAQ,IAAI6B,MAAM,CAAC,EAAE;MAC1B,MAAM,IAAIM,SAAS,CAAC,wBAAwB,CAAC;IAC9C;IACA;IACA,IAAIC,MAAM,GAAG,EAAE;IACf,KAAK,IAAIb,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGM,MAAM,CAACH,MAAM,EAAEH,CAAC,EAAE,EAAE;MACvCa,MAAM,CAACC,IAAI,CAACR,MAAM,CAACN,CAAC,CAAC,CAAC;IACvB;IACA,OAAOJ,MAAM,CAACiB,MAAM,EAAE,UAASb,CAAC,EAAE;MAAE,OAAOF,IAAI,CAACe,MAAM,CAACb,CAAC,CAAC,CAAC;IAAE,CAAC,EAAED,KAAK,CAAC;EACtE;EAAC,MAlNQgB,QAAQ,GAAAjD,UAAA;EAAA,MAAEkD,eAAe,GAAAlD,UAAA;EAAA,MACzBmD,UAAU,GAAAlD,eAAA;EAAA,MACVmD,uBAAuB,GAAAlD,4CAAA;EAWhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAdA,MAgBqBmD,qBAAqB,GAASf,aAAa,CAAAgB,MAAA;IAK/CC,QAAQ,EAAoB;MAC3CC,UAAU,EAAE;QACX;AACH;AACA;QACGC,qBAAqB,EAAE;UAAEC,IAAI,EAAE,OAAO;UAAEC,KAAK,EAAE,MAAM;UAAEC,YAAY,EAAE,EAAE;UAAEC,UAAU,EAAE;QAAS,CAAC;QAC/F;AACH;AACA;QACGC,oBAAoB,EAAE;UAAEJ,IAAI,EAAE,OAAO;UAAEC,KAAK,EAAE,MAAM;UAAEC,YAAY,EAAE,EAAE;UAAEC,UAAU,EAAE;QAAS,CAAC;QAC9F;AACH;AACA;QACGE,kBAAkB,EAAE;UAAEL,IAAI,EAAE,SAAS;UAAEC,KAAK,EAAE,MAAM;UAAEC,YAAY,EAAE,IAAI;UAAEC,UAAU,EAAE;QAAS;MAChG;IACD,CAAC;IAnBMG,QAAQ,EAAG;MACjB,GAAG1B,aAAa,CAAC0B,QAAQ;MACzBC,UAAU,EAAE;IACb,CAAC;IA0BD;AACD;AACA;AACA;AACA;AACA;IACQC,WAAW,WAAAC,aAACC,EAAW,EAAEC,QAAyC,EAAE;MAC1EC,wCAAA,OAAMF,EAAE,EAAEC,QAAQ;MAAE,KAfbE,WAAW,GAAiB,CAAC,CAAC;MAAA,KAG9BC,aAAa,GAAY,KAAK;MAAA,KAC9BC,eAAe,GAAwB;QAAEC,SAAS,EAAE,KAAK;QAAEC,QAAQ,EAAE1B,QAAQ,CAAC2B;MAAK,CAAC;IAY5F,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACQC,IAAI,WAAAC,MAAA,EAAS;MACnBC,iCAAA;MACA,IAAI,CAACR,WAAW,GAAG,CAAC,CAAC;MAErB,IAAI,CAACS,WAAW,CACf,aAAa,EACb,IAAI,CAACC,aAAa,CAAC,CAAC,KAAK9B,UAAU,CAAC+B,OAAO,IAC1C,IAAI,CAACD,aAAa,CAAC,CAAC,KAAK9B,UAAU,CAACgC,YAAY,IAChD,IAAI,CAACF,aAAa,CAAC,CAAC,KAAK9B,UAAU,CAACiC,aAAa,GAC/ClC,eAAe,CAACmC,UAAU,GAC1BnC,eAAe,CAACoC,QACpB,CAAC;MACD,IAAI,CAACC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACC,WAAW,CAACC,OAAO,CAAC,eAAe,CAAW,CAAC;MACnF,IAAI,CAACC,aAAa,CAAC,6BAA6B,CAAC;IAClD,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;AACA;IACcC,IAAI,WAAAC,MAAA;MAAA,IAAG;QAAA,MAAAjE,KAAA,GACF,IAAI;QAArB,MAAMkE,QAAQ,GAAGlE,KAAA,CAAKmE,UAAU,CAAC,CAA8B;QAAC,MAAAC,KAAA,GAAAxD,MAAA,CACzCsD,QAAQ,YAApBG,QAAQ,EAAc;UAChC,IAAI,CAACrE,KAAA,CAAK6C,aAAa,EAAE;YACxB7C,KAAA,CAAKsE,mBAAmB,CAACD,QAAQ,CAAC;UACnC;UAAC,OAAAE,OAAA,CAAAC,OAAA,CACKH,QAAQ,CAACI,OAAO,CAAC,CAAC,EAAAjF,IAAA;YAExB;YACA;YACA;YACA,MAAM4C,kBAAkB,GAAGpC,KAAA,CAAK0E,WAAW,CAAC,oBAAoB,CAAY;YAC5E;YAAA,IACIL,QAAQ,IAAIA,QAAQ,CAACM,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,wBAAwB,IAAI,CAACxC,kBAAkB;cACnGiC,QAAQ,CAACQ,UAAU,CAAC,KAAK,CAAC;YAAC;UAAA;QAE7B,CAAC;QAAA,OAAAN,OAAA,CAAAC,OAAA,CAAAJ,KAAA,IAAAA,KAAA,CAAA5E,IAAA,GAAA4E,KAAA,CAAA5E,IAAA;MACF,CAAC,QAAAO,CAAA;QAAA,OAAAwE,OAAA,CAAA/D,MAAA,CAAAT,CAAA;MAAA;IAAA;IAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;IACC+E,wBAAwB,WAAAC,0BAACC,gBAAkD,EAAyB;MACnG,MAAMC,YAAY,GAAI,IAAI,CAACP,WAAW,CAAC,uBAAuB,CAAC,IAAoC,EAAE;MACrG,MAAMQ,WAAW,GAAGD,YAAY,CAACE,MAAM,CAACH,gBAAgB,CAAC;MACzD,IAAI,CAAC3B,WAAW,CAAC,uBAAuB,EAAE6B,WAAW,CAAC;MACtD,IAAI,CAACf,UAAU,CAAC,CAAC,CAACiB,OAAO,CAAEf,QAAQ,IAAK;QACvC,IAAIA,QAAQ,CAACM,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,wBAAwB,EAAE;UACjEP,QAAQ,CAAegB,0BAA0B,CAACH,WAAW,CAAC;QAChE;MACD,CAAC,CAAC;MACF,OAAO,IAAI;IACZ,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;IACCI,uBAAuB,WAAAC,yBAACP,gBAAkD,EAAyB;MAClG,MAAMC,YAAY,GAAI,IAAI,CAACP,WAAW,CAAC,sBAAsB,CAAC,IAAoC,EAAE;MACpG,MAAMQ,WAAW,GAAGD,YAAY,CAACE,MAAM,CAACH,gBAAgB,CAAC;MACzD,IAAI,CAAC3B,WAAW,CAAC,sBAAsB,EAAE6B,WAAW,CAAC;MACrD,IAAI,CAACf,UAAU,CAAC,CAAC,CAACiB,OAAO,CAAEf,QAAQ,IAAK;QACvC,IAAIA,QAAQ,CAACM,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,wBAAwB,EAAE;UACjEP,QAAQ,CAAemB,yBAAyB,CAACN,WAAW,CAAC;QAC/D;MACD,CAAC,CAAC;MACF,OAAO,IAAI;IACZ,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACQZ,mBAAmB,WAAAmB,qBAACpB,QAAmB,EAAE;MAC/C,IAAIA,QAAQ,CAACM,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,wBAAwB,IAAIP,QAAQ,CAACK,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC7B,aAAa,EAAE;QACxH,IAAI,CAACC,eAAe,CAACC,SAAS,GAAG,IAAI;MACtC;IACD,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACQ2C,kBAAkB,WAAAC,oBAAA,EAAwB;MAChD,OAAO,IAAI,CAAC7C,eAAe;IAC5B,CAAC;IAEM8C,2BAA2B,WAAAC,6BAACC,eAAyC,EAAE;MAC7E,MAAM5B,QAAQ,GAAG,IAAI,CAACC,UAAU,CAAC,CAAC;MAClCD,QAAQ,CAACkB,OAAO,CAAEf,QAAmB,IAAK;QACzC,IAAIA,QAAQ,CAACM,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,wBAAwB,EAAE;UAClE,IAAImB,SAAS,GAAG1B,QAAqB;UACrC,IAAIyB,eAAe,CAACE,iBAAiB,EAAE;YACtC,IAAI,CAAC3C,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC;YAC5C0C,SAAS,CAAClB,UAAU,CAAC,IAAI,CAAC;UAC3B,CAAC,MAAM;YACN,IAAI,CAACxB,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC;YAC7C0C,SAAS,CAAClB,UAAU,CAAC,KAAK,CAAC;UAC5B;QACD;MACD,CAAC,CAAC;IACH,CAAC;IAEMoB,mBAAmB,WAAAC,qBAAClB,gBAA+B,EAAE;MAC3D,MAAMd,QAAQ,GAAG,IAAI,CAACC,UAAU,CAAC,CAAC;MAClC,IAAIpC,IAAc;MAClBmC,QAAQ,CAACkB,OAAO,CAAEf,QAAmB,IAAK;QACzC,IAAI,CAACC,mBAAmB,CAACD,QAAQ,CAAC;QAClC,IAAIA,QAAQ,CAACM,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,wBAAwB,IAAI,CAAC,IAAI,CAAC9B,eAAe,CAACC,SAAS,EAAE;UACrG,IAAIgD,SAAS,GAAG1B,QAAqB;UACrC,MAAMjC,kBAAkB,GAAG+D,OAAO,CAAC,IAAI,CAACzB,WAAW,CAAC,oBAAoB,CAAC,CAAC;UAC1E,IAAI,CAAC7B,aAAa,GAAG,IAAI;UAEzB,IAAImC,gBAAgB,CAACoB,kBAAkB,EAAE;YACxCrE,IAAI,GAAGT,QAAQ,CAAC+E,MAAM;UACvB,CAAC,MAAM,IAAIrB,gBAAgB,CAACsB,eAAe,EAAE;YAC5CvE,IAAI,GAAGT,QAAQ,CAACiF,OAAO;UACxB,CAAC,MAAM;YACNxE,IAAI,GAAGT,QAAQ,CAACkF,OAAO;UACxB;UACAT,SAAS,CAAC1C,WAAW,CAAC,MAAM,EAAEtB,IAAI,CAAC;UACnCgE,SAAS,CAAC1C,WAAW,CAAC,KAAK,EAAE2B,gBAAgB,CAACyB,WAAW,CAAC;UAC1DV,SAAS,CAAC1C,WAAW,CAAC,eAAe,EAAE2B,gBAAgB,CAAC0B,iBAAiB,CAAC;UAC1EX,SAAS,CAAC1C,WAAW,CAAC,gBAAgB,EAAE2B,gBAAgB,CAAC2B,sBAAsB,CAAC;UAEhF,IAAIvE,kBAAkB,EAAE;YACvB,MAAMwE,GAAG,GAAG5B,gBAAgB,CAACyB,WAAqB;YAClDV,SAAS,CAAClB,UAAU,CAAC,IAAI,CAAC;YAC1B,MAAMgC,aAAa,GAAGC,MAAM,CAACf,SAAS,CAACrB,WAAW,CAAC,eAAe,CAAC,CAAC;YACpE,IAAIM,gBAAgB,CAACoB,kBAAkB,IAAIS,aAAa,EAAE;cACzDd,SAAS,CAAC1C,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC;cAC5C,KAAK0C,SAAS,CAACgB,iBAAiB,CAACF,aAAa,CAAC;YAChD,CAAC,MAAM,IAAI7B,gBAAgB,CAACgC,mBAAmB,EAAE;cAChD,KAAKjB,SAAS,CAACkB,cAAc,CAAC,CAAC;YAChC,CAAC,MAAM,IAAIjC,gBAAgB,CAACsB,eAAe,IAAIM,GAAG,EAAE;cACnD,KAAKb,SAAS,CAACmB,MAAM,CAACN,GAAG,CAAC;YAC3B,CAAC,MAAM;cACNb,SAAS,CAAClB,UAAU,CAAC,KAAK,CAAC;cAC3B,IAAI,CAACxB,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC;YAC9C;UACD;QACD;MACD,CAAC,CAAC;IACH,CAAC;IAEM8D,aAAa,WAAAC,eAACC,UAAkB,EAAEC,IAAwC,EAAE;MAClF;MACA,MAAMpD,QAAQ,GAAG,IAAI,CAACC,UAAU,CAAC,CAAC;MAClCD,QAAQ,CAACkB,OAAO,CAAEf,QAAmB,IAAK;QACzC,IAAIA,QAAQ,CAACM,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,wBAAwB,EAAE;UAClE,IAAI,CAAC2C,SAAS,GAAGlD,QAAqB;QACvC,CAAC,MAAM,IAAIA,QAAQ,CAACM,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,KAAK,wBAAwB,EAAE;UACzE,IAAI,CAACmB,SAAS,GAAG1B,QAAqB;QACvC;MACD,CAAC,CAAC;MACF,IAAI,CAACzB,WAAW,CAACyE,UAAU,CAAC,GAAGC,IAAI;MACnC,IAAI,CAACE,YAAY,CAAC,CAAC;IACpB,CAAC;IAEMC,iBAAiB,WAAAC,mBAACC,kBAA2B,EAAE;MACrD,MAAMC,WAAW,GAAG,IAAI,CAACtE,aAAa,CAAC,CAAC;MACxC,MAAMuE,kBAAkB,GAAG,IAAI,CAAC9B,SAAS,GAAI,IAAI,CAACA,SAAS,CAAC5B,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY2D,SAAS;MAClG,MAAMC,mBAAmB,GAAG,IAAI,CAACR,SAAS,GAAI,IAAI,CAACA,SAAS,CAACpD,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY2D,SAAS;MACnG,IAAIH,kBAAkB,EAAE;QACvB,IAAI,CAAC5B,SAAS,CAACyB,YAAY,CAAC,CAAC;MAC9B;MACA,IAAII,WAAW,KAAKpG,UAAU,CAAC+B,OAAO,IAAIqE,WAAW,KAAKpG,UAAU,CAACgC,YAAY,IAAIoE,WAAW,KAAKpG,UAAU,CAACiC,aAAa,EAAE;QAC9H,IAAIkE,kBAAkB,EAAE;UACvBI,mBAAmB,EAAEC,QAAQ,CAAC,MAAM,CAAC;QACtC;QACA,IAAI,CAACC,cAAc,CAAC1G,eAAe,CAACmC,UAAU,CAAC;QAC/CmE,kBAAkB,EAAEG,QAAQ,CAAC,MAAM,CAAC;QACpCH,kBAAkB,EAAE9D,aAAa,CAAC,kBAAkB,CAAC;MACtD,CAAC,MAAM,IAAI6D,WAAW,KAAKpG,UAAU,CAAC0G,MAAM,EAAE;QAC7C,IAAI,CAACD,cAAc,CAAC1G,eAAe,CAACoC,QAAQ,CAAC;QAC7CoE,mBAAmB,EAAEC,QAAQ,CAAC,MAAM,CAAC;QACrCD,mBAAmB,EAAEI,iBAAiB,CAAC,OAAO,CAAC;QAC/CN,kBAAkB,EAAEG,QAAQ,CAAC,oBAAoB,CAAC;QAClDH,kBAAkB,EAAEO,gBAAgB,CAAC,kBAAkB,CAAC;MACzD,CAAC,MAAM;QACN,IAAI,CAACH,cAAc,CAAC1G,eAAe,CAACoC,QAAQ,CAAC;QAC7CkE,kBAAkB,EAAEG,QAAQ,CAAC,oBAAoB,CAAC;MACnD;MAEA,IAAID,mBAAmB,EAAE;QACxBM,UAAU,CACT,IAAI,CAACd,SAAS,CAACe,mBAAmB,CAAC/I,IAAI,CACtC,IAAI,CAACgI,SAAS,EACdI,kBAAkB,EAClB,IAAI,CAACY,SAAS,CAAC,CAAC,EAAEC,WAAW,IAAI,CAAC,EAClCT,mBACD,CACD,CAAC;MACF;IACD,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACQP,YAAY,WAAAiB,cAAA,EAAG;MACrB,IAAI,IAAI,CAAClB,SAAS,IAAI,IAAI,CAACxB,SAAS,IAAI,IAAI,CAACA,SAAS,CAAC2C,UAAU,CAAC,CAAC,EAAE;QACpE,IAAIf,kBAAkB,GAAG,IAAI;QAC7B,IAAI,IAAI,CAAC/E,WAAW,CAAC,MAAM,CAAC,EAAE+F,MAAM,IAAI,IAAI,CAAC/F,WAAW,CAAC,MAAM,CAAC,EAAE+F,MAAM,EAAE;UACzE;UACA,IAAI,IAAI,CAAC/F,WAAW,CAAC,MAAM,CAAC,EAAE+F,MAAM,KAAK,KAAK,EAAE;YAC/ChB,kBAAkB,GAAG,KAAK;YAC1B,IAAI,CAACiB,aAAa,CAAC,IAAI,CAAC7C,SAAS,CAAC;UACnC,CAAC,MAAM,IAAI,IAAI,CAACnD,WAAW,CAAC,MAAM,CAAC,EAAE+F,MAAM,KAAK,KAAK,EAAE;YACtD,IAAI,CAACC,aAAa,CAAC,IAAI,CAACrB,SAAS,CAAC;UACnC;UACA,IAAI,CAACE,iBAAiB,CAACE,kBAAkB,CAAC;QAC3C;MACD,CAAC,MAAM,IAAI,IAAI,CAACJ,SAAS,IAAI,IAAI,CAAC3E,WAAW,CAAC,MAAM,CAAC,EAAE+F,MAAM,EAAE;QAC9D;QACA,IAAI,CAAClB,iBAAiB,CAAC,KAAK,CAAC;MAC9B;IACD,CAAC;IAED;AACD;AACA;AACA;AACA;IACWoB,4BAA4B,WAAAC,8BAAA,EAAW;MAChD,OAAOrH,uBAAuB,CAAC,CAAC;IACjC;EAAC;EAAA,OAnSmBC,qBAAqB;AAAA","ignoreList":[]}
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import VBox from "sap/m/VBox";
|
|
6
7
|
import type { MetadataOptions } from "sap/ui/core/Element";
|
|
7
8
|
import BaseContainer from "./BaseContainer";
|
|
8
9
|
import BasePanel from "./BasePanel";
|
|
9
10
|
import type { $NewsAndPagesContainerSettings } from "./NewsAndPagesContainer";
|
|
10
|
-
import { getNewsPagesPlaceholder } from "./utils/placeholder/NewsAndPagesPlaceholder";
|
|
11
11
|
import NewsPanel from "./NewsPanel";
|
|
12
12
|
import PagePanel from "./PagePanel";
|
|
13
13
|
import { INewsFeedVisibiliyChange, INewsPersData, ISpacePagePersonalization } from "./interface/KeyUserInterface";
|
|
14
14
|
import { NewsType, OrientationType } from "./library";
|
|
15
15
|
import { DeviceType } from "./utils/Device";
|
|
16
|
-
import
|
|
16
|
+
import { getNewsPagesPlaceholder } from "./utils/placeholder/NewsAndPagesPlaceholder";
|
|
17
17
|
|
|
18
18
|
interface IpanelLoaded {
|
|
19
19
|
[key: string]: { loaded: boolean; count: number };
|
|
@@ -264,8 +264,8 @@ export default class NewsAndPagesContainer extends BaseContainer {
|
|
|
264
264
|
|
|
265
265
|
public adjustStyleLayout(bIsNewsTileVisible: boolean) {
|
|
266
266
|
const sDeviceType = this.getDeviceType();
|
|
267
|
-
const newsContentWrapper = this.newsPanel ? this.newsPanel.getContent()?.[0] as VBox : undefined;
|
|
268
|
-
const pagesContentWrapper = this.pagePanel ? this.pagePanel.getContent()?.[0] as VBox : undefined;
|
|
267
|
+
const newsContentWrapper = this.newsPanel ? (this.newsPanel.getContent()?.[0] as VBox) : undefined;
|
|
268
|
+
const pagesContentWrapper = this.pagePanel ? (this.pagePanel.getContent()?.[0] as VBox) : undefined;
|
|
269
269
|
if (bIsNewsTileVisible) {
|
|
270
270
|
this.newsPanel.adjustLayout();
|
|
271
271
|
}
|