@sapui5/sap.cux.home 1.140.0 → 1.142.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/cux/home/.library +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js +3 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +3 -1
- package/src/sap/cux/home/App.d.ts.map +1 -1
- package/src/sap/cux/home/App.js +6 -1
- package/src/sap/cux/home/App.js.map +1 -1
- package/src/sap/cux/home/App.ts +7 -1
- package/src/sap/cux/home/AppsAdditionPanel.d.ts +1 -0
- package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.js +64 -59
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.ts +44 -34
- package/src/sap/cux/home/AppsContainer.d.ts +5 -1
- package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/AppsContainer.js +44 -37
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +43 -33
- package/src/sap/cux/home/BaseAppPanel.d.ts +2 -1
- package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.js +3 -1
- package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.ts +5 -2
- package/src/sap/cux/home/BaseContainer.d.ts +8 -0
- package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainer.js +26 -4
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +26 -3
- package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.ts +1 -1
- package/src/sap/cux/home/BaseNewsPanel.js +1 -1
- package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseNewsPanel.ts +2 -2
- package/src/sap/cux/home/BasePanel.d.ts +7 -0
- package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
- package/src/sap/cux/home/BasePanel.js +20 -0
- package/src/sap/cux/home/BasePanel.js.map +1 -1
- package/src/sap/cux/home/BasePanel.ts +16 -0
- package/src/sap/cux/home/BaseSettingsPanel.d.ts +9 -0
- package/src/sap/cux/home/BaseSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.js +13 -0
- package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.ts +15 -0
- package/src/sap/cux/home/CardsPanel.d.ts +7 -0
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.js +132 -113
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +19 -8
- package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.js +6 -2
- package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.ts +5 -1
- package/src/sap/cux/home/ErrorPanel.js +2 -2
- package/src/sap/cux/home/ErrorPanel.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.ts +2 -2
- package/src/sap/cux/home/FavAppPanel.d.ts +4 -10
- package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FavAppPanel.js +432 -446
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +56 -84
- package/src/sap/cux/home/FrequentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.js +5 -1
- package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.ts +4 -0
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.js +3 -1
- package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.ts +2 -0
- package/src/sap/cux/home/InsightsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsContainer.js +2 -2
- package/src/sap/cux/home/InsightsContainer.js.map +1 -1
- package/src/sap/cux/home/InsightsContainer.ts +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts +0 -4
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.js +2 -2
- package/src/sap/cux/home/NewsAndPagesContainer.js.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.ts +4 -4
- package/src/sap/cux/home/NewsPanel.d.ts +17 -0
- package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsPanel.js +100 -68
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +60 -33
- package/src/sap/cux/home/NewsSettingsPanel.d.ts +42 -6
- package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.js +219 -81
- package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.ts +215 -80
- package/src/sap/cux/home/Page.d.ts.map +1 -1
- package/src/sap/cux/home/Page.js +4 -1
- package/src/sap/cux/home/Page.js.map +1 -1
- package/src/sap/cux/home/Page.ts +2 -0
- package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
- package/src/sap/cux/home/PagePanel.js +5 -2
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +8 -8
- package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.js +6 -3
- package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.ts +2 -2
- package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.js +6 -0
- package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.ts +5 -1
- package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.js +7 -0
- package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.ts +6 -1
- package/src/sap/cux/home/SettingsDialog.d.ts +1 -0
- package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/SettingsDialog.js +13 -6
- package/src/sap/cux/home/SettingsDialog.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.ts +14 -6
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +10 -0
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js +12 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.ts +13 -1
- package/src/sap/cux/home/SituationPanel.d.ts.map +1 -1
- package/src/sap/cux/home/SituationPanel.js +7 -2
- package/src/sap/cux/home/SituationPanel.js.map +1 -1
- package/src/sap/cux/home/SituationPanel.ts +2 -0
- package/src/sap/cux/home/SpaceInsightsPanel.js +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.ts +1 -1
- package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TaskPanel.js +3 -0
- package/src/sap/cux/home/TaskPanel.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.ts +2 -1
- package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TilesPanel.js +10 -3
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +7 -3
- package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ToDoPanel.js +29 -8
- package/src/sap/cux/home/ToDoPanel.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.ts +19 -8
- package/src/sap/cux/home/ToDosContainer.js +3 -3
- package/src/sap/cux/home/ToDosContainer.js.map +1 -1
- package/src/sap/cux/home/ToDosContainer.ts +1 -1
- package/src/sap/cux/home/i18n/messagebundle.properties +13 -7
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_da.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_de.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_el.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_en.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +1 -3
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +1 -3
- package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_es.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_et.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_id.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_it.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_no.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +1 -3
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +1 -3
- package/src/sap/cux/home/i18n/messagebundle_th.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +0 -2
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +0 -2
- package/src/sap/cux/home/interface/AppsInterface.d.ts +5 -0
- package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.ts +6 -0
- package/src/sap/cux/home/library.d.ts.map +1 -1
- package/src/sap/cux/home/library.js +1 -0
- package/src/sap/cux/home/library.js.map +1 -1
- package/src/sap/cux/home/library.ts +1 -0
- package/src/sap/cux/home/themes/base/AppsContainer.less +12 -1
- package/src/sap/cux/home/themes/base/BaseLayout.less +11 -0
- package/src/sap/cux/home/themes/base/InsightsContainer.less +4 -0
- package/src/sap/cux/home/themes/base/ToDosContainer.less +4 -0
- package/src/sap/cux/home/utils/AppManager.d.ts +7 -6
- package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/AppManager.js +1 -1
- package/src/sap/cux/home/utils/AppManager.js.map +1 -1
- package/src/sap/cux/home/utils/AppManager.ts +9 -10
- package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.js +1 -1
- package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.ts +4 -1
- package/src/sap/cux/home/utils/FESRUtil.d.ts +30 -0
- package/src/sap/cux/home/utils/FESRUtil.d.ts.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.js +36 -1
- package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.ts +36 -0
- package/src/sap/cux/home/utils/PXFeedback.d.ts +4 -0
- package/src/sap/cux/home/utils/PXFeedback.d.ts.map +1 -0
- package/src/sap/cux/home/utils/PXFeedback.js +28 -0
- package/src/sap/cux/home/utils/PXFeedback.js.map +1 -0
- package/src/sap/cux/home/utils/PXFeedback.ts +19 -0
- package/src/sap/cux/home/utils/PageManager.d.ts +0 -4
- package/src/sap/cux/home/utils/PageManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/PageManager.js +6 -6
- package/src/sap/cux/home/utils/PageManager.js.map +1 -1
- package/src/sap/cux/home/utils/PageManager.ts +6 -5
- package/src/sap/cux/home/utils/UshellPersonalizer.js +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.ts +1 -1
- package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +1 -1
|
@@ -68,6 +68,13 @@ interface IValidManifest {
|
|
|
68
68
|
manifest: IAppManifest;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
export interface IMoveConfig {
|
|
72
|
+
sourceSectionIndex: number;
|
|
73
|
+
sourceVisualizationIndex: number;
|
|
74
|
+
targetSectionIndex: number;
|
|
75
|
+
targetVisualizationIndex: number;
|
|
76
|
+
}
|
|
77
|
+
|
|
71
78
|
const _parseSBParameters = (oParam: object | string | undefined): IParseSBParameters | undefined => {
|
|
72
79
|
let oParsedParams: IParseSBParameters | undefined = {};
|
|
73
80
|
if (oParam) {
|
|
@@ -274,7 +281,7 @@ export default class AppManager extends BaseObject {
|
|
|
274
281
|
const aSections = (oPage && oPage.sections) || [],
|
|
275
282
|
iRecentAppSectionIndex: number = aSections.findIndex((oSection) => oSection.default);
|
|
276
283
|
if (iRecentAppSectionIndex > 0) {
|
|
277
|
-
if (this._oMoveAppsPromise
|
|
284
|
+
if (this._oMoveAppsPromise === undefined) {
|
|
278
285
|
this._oMoveAppsPromise = this.moveSection(iRecentAppSectionIndex, 0);
|
|
279
286
|
await this._oMoveAppsPromise;
|
|
280
287
|
}
|
|
@@ -563,15 +570,7 @@ export default class AppManager extends BaseObject {
|
|
|
563
570
|
* @param {Object} bookmark - The bookmark data object.
|
|
564
571
|
* @returns {Promise<void>} - A Promise that resolves once the bookmark is added.
|
|
565
572
|
*/
|
|
566
|
-
public async addBookMark(
|
|
567
|
-
bookmark: IVisualization,
|
|
568
|
-
moveConfig?: {
|
|
569
|
-
sourceSectionIndex: number;
|
|
570
|
-
sourceVisualizationIndex: number;
|
|
571
|
-
targetSectionIndex: number;
|
|
572
|
-
targetVisualizationIndex: number;
|
|
573
|
-
}
|
|
574
|
-
) {
|
|
573
|
+
public async addBookMark(bookmark: IVisualization, moveConfig?: IMoveConfig) {
|
|
575
574
|
const oBookmarkService: Bookmark = await Container.getServiceAsync("BookmarkV2");
|
|
576
575
|
const aContentNodes = await oBookmarkService.getContentNodes();
|
|
577
576
|
const oMyHomeSpace = aContentNodes.find((contentNode) => contentNode.id === MYHOME_SPACE_ID);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchHelper.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/BatchHelper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gCAAgC,CAAC;IAChD;;;OAGG;IAEH,OAAO,UAAU,MAAM,oBAAoB,CAAC;IAE5C,KAAK,OAAO;QACX,GAAG,QAAQ;QACX,IAAI,SAAS;QACb,GAAG,QAAQ;QACX,KAAK,UAAU;QACf,MAAM,WAAW;QACjB,IAAI,SAAS;KACb;IAED,UAAU,OAAO;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACd;IAED,MAAM,SAAS,GAAI,KAAK,MAAM,YAE7B,CAAC;IAEF;;OAEG;IACH,MAAM,gBAAgB;QACrB,OAAO,CAAC,GAAG,CAAS;QACpB,OAAO,CAAC,aAAa,CAA0B;QAC/C,OAAO,CAAC,QAAQ,CAAS;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAEzB;;;;;WAKG;oBACS,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM;QAiBnE;;;;;WAKG;QACI,cAAc,IAAI,MAAM;QAkB/B;;;;;WAKG;QACI,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;QAIlD;;;;;WAKG;QACI,wBAAwB,IAAI,MAAM;KAuBzC;IAED;;;;;;OAMG;IACH,MAAM,mBAAmB,GAAa,OAAO,MAAM,KAAG,CAAC,MAAM,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"BatchHelper.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/BatchHelper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gCAAgC,CAAC;IAChD;;;OAGG;IAEH,OAAO,UAAU,MAAM,oBAAoB,CAAC;IAE5C,KAAK,OAAO;QACX,GAAG,QAAQ;QACX,IAAI,SAAS;QACb,GAAG,QAAQ;QACX,KAAK,UAAU;QACf,MAAM,WAAW;QACjB,IAAI,SAAS;KACb;IAED,UAAU,OAAO;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACd;IAED,MAAM,SAAS,GAAI,KAAK,MAAM,YAE7B,CAAC;IAEF;;OAEG;IACH,MAAM,gBAAgB;QACrB,OAAO,CAAC,GAAG,CAAS;QACpB,OAAO,CAAC,aAAa,CAA0B;QAC/C,OAAO,CAAC,QAAQ,CAAS;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAEzB;;;;;WAKG;oBACS,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM;QAiBnE;;;;;WAKG;QACI,cAAc,IAAI,MAAM;QAkB/B;;;;;WAKG;QACI,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;QAIlD;;;;;WAKG;QACI,wBAAwB,IAAI,MAAM;KAuBzC;IAED;;;;;;OAMG;IACH,MAAM,mBAAmB,GAAa,OAAO,MAAM,KAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAsBtE,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,cAAc,GAAmB,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAoBtE,CAAC;IAEF;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,UAAU;QAClD,OAAO,CAAC,GAAG,CAAU;QAErB;;;;;;WAMG;gBACW,SAAS;QAkBvB;;;;;;;WAOG;QACU,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QAOrG;;;;;;;;WAQG;QACU,iCAAiC,CAC7C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,EAAE,EAC1C,aAAa,EAAE,OAAO,GACpB,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QAOlC;;;;;;WAMG;QACH,OAAO,CAAC,qBAAqB;QAY7B;;;;;;;WAOG;QACH,OAAO,CAAC,gCAAgC;KAexC;CAEA"}
|
|
@@ -127,7 +127,7 @@ sap.ui.define(["sap/ui/base/Object"], function (BaseObject) {
|
|
|
127
127
|
* @returns {Object[]} - An array of values in the multipart request.
|
|
128
128
|
*/
|
|
129
129
|
const getDataFromRawValue = function (value) {
|
|
130
|
-
const parsedValue = value.split("\
|
|
130
|
+
const parsedValue = value.replace(/\r\n/g, "\n").split("\n").filter(data => data !== "");
|
|
131
131
|
const finalData = [];
|
|
132
132
|
let contentTypeValue = "";
|
|
133
133
|
for (let index = 1; index < parsedValue.length - 1; index++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchHelper.js","names":["sap","ui","define","BaseObject","_catch","body","recover","result","e","then","methods","isEncoded","url","test","MultiPartRequest","batchRequests","constructor","requestMethod","csrfToken","encodeURI","boundary","Date","now","options","headers","method","_constructBody","BOUNDARY","REQUEST_HEADERS","REQUEST_BODY","index","length","request","boundaryEnd","addRequest","push","constructBodyWithPayload","changeSet","CHANGESET_BOUNDARY","CHANGESET_HEADER","JSON","stringify","payload","getDataFromRawValue","value","parsedValue","split","filter","data","finalData","contentTypeValue","includes","parse","fetchCSRFToken","baseURL","Promise","resolve","fetch","HEAD","response","ok","token","get","Error","error","message","reject","BatchHelper","extend","fetchData","_fetchData","multiPartRequest","_this","GET","POST","text","createMultipartRequest","_createMultipartRequest","urls","_this2","buildMultipartRequest","createMultipartRequestWithPayload","_createMultipartRequestWithPayload","payloads","_this3","buildMultipartRequestWithPayload","_buildMultipartRequest","forEach","_buildMultipartRequestWithPayload","multipartRequest"],"sources":["BatchHelper.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport BaseObject from \"sap/ui/base/Object\";\n\nenum methods {\n\tGET = \"GET\",\n\tPOST = \"POST\",\n\tPUT = \"PUT\",\n\tPATCH = \"PATCH\",\n\tDELETE = \"DELETE\",\n\tHEAD = \"HEAD\"\n}\n\ninterface Options {\n\theaders: Record<string, string>;\n\tmethod: methods;\n\tbody?: string;\n}\n\nconst isEncoded = (url: string) => {\n\treturn /%[0-9A-F]{2}/i.test(url);\n};\n\n/**\n * Represents a multipart request.\n */\nclass MultiPartRequest {\n\tprivate url: string;\n\tprivate batchRequests: MultiPartRequest[] = [];\n\tprivate boundary: string;\n\tpublic options: Options;\n\tpublic payload?: unknown;\n\n\t/**\n\t * Creates a MultiPartRequest object.\n\t *\n\t * @param {string} url - The URL for the multipart request.\n\t * @constructor\n\t */\n\tconstructor(url: string, requestMethod: methods, csrfToken?: string) {\n\t\t//encode the URL if it is not already encoded\n\t\tthis.url = isEncoded(url) ? url : encodeURI(url);\n\t\tthis.boundary = `batch_id_${Date.now()}_01`;\n\t\tthis.options = {\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": `multipart/mixed;boundary=${this.boundary}`\n\t\t\t},\n\t\t\tmethod: requestMethod\n\t\t};\n\n\t\t// Add CSRF token to headers if available\n\t\tif (csrfToken) {\n\t\t\tthis.options.headers[\"X-CSRF-Token\"] = csrfToken;\n\t\t}\n\t}\n\n\t/**\n\t * Constructs the body for the multipart request.\n\t *\n\t * @returns {string} - The constructed body.\n\t * @private\n\t */\n\tpublic _constructBody(): string {\n\t\tconst BOUNDARY = `--${this.boundary}`;\n\t\tconst REQUEST_HEADERS = `Content-Type: application/http\\r\\nContent-Transfer-Encoding: binary\\r\\n`;\n\t\tconst REQUEST_BODY = `Accept: application/json\\r\\n\\r\\n\\r\\n`;\n\n\t\tlet body = `${BOUNDARY}\\r\\n`;\n\n\t\tfor (let index = 0; index < this.batchRequests.length; index++) {\n\t\t\tconst request = this.batchRequests[index];\n\t\t\tconst boundaryEnd = index === this.batchRequests.length - 1 ? \"--\\r\\n\" : \"\\r\\n\";\n\t\t\tbody += `${REQUEST_HEADERS}\\r\\n`;\n\t\t\tbody += `${request.options.method} ${request.url} HTTP/1.1\\r\\n${REQUEST_BODY}`;\n\t\t\tbody += `${BOUNDARY}${boundaryEnd}`;\n\t\t}\n\n\t\treturn body;\n\t}\n\n\t/**\n\t * Adds a request to the MultiPartRequest batch.\n\t *\n\t * @public\n\t * @param {Object} request - The request to add to the batch.\n\t */\n\tpublic addRequest(request: MultiPartRequest): void {\n\t\tthis.batchRequests.push(request);\n\t}\n\n\t/**\n\t * Constructs the body for the multipart request with payload\n\t *\n\t * @returns {string} - The constructed body.\n\t * @private\n\t */\n\tpublic constructBodyWithPayload(): string {\n\t\tconst BOUNDARY = `--${this.boundary}`;\n\t\tconst REQUEST_HEADERS = \"Content-Type:application/http\\r\\nContent-Transfer-Encoding:binary\\r\\n\";\n\t\tlet body = `${BOUNDARY}\\r\\n`;\n\t\tconst changeSet = \"changeset_001\";\n\t\tconst CHANGESET_BOUNDARY = `--${changeSet}`;\n\t\tconst CHANGESET_HEADER = `Content-Type: multipart/mixed; boundary=${changeSet}\\r\\n`;\n\t\tbody += `${CHANGESET_HEADER}\\r\\n${CHANGESET_BOUNDARY}\\r\\n`;\n\t\tfor (let index = 0; index < this.batchRequests.length; index++) {\n\t\t\tconst request = this.batchRequests[index];\n\t\t\tbody += `\\r\\n${REQUEST_HEADERS}`;\n\t\t\tbody += `Content-ID: ${index + 1}\\r\\n\\r\\n`;\n\t\t\tbody += `${request.options.method} ${request.url} HTTP/1.1\\r\\n`;\n\t\t\tbody += \"sap-context-accept: header\\r\\nContent-Type:application/json\\r\\n\\r\\n\";\n\t\t\tbody += `${JSON.stringify(request.payload)}\\r\\n\\r\\n`;\n\t\t\tbody += CHANGESET_BOUNDARY;\n\t\t\tif (index === this.batchRequests.length - 1) {\n\t\t\t\tbody += \"--\\r\\n\";\n\t\t\t\tbody += `${BOUNDARY}--`;\n\t\t\t}\n\t\t}\n\t\treturn body;\n\t}\n}\n\n/**\n * Parses multipart body response and returns an array of values called in the batch request.\n *\n * @param {string} value - Multipart body response.\n * @returns {Object[]} - Array of values in the multipart request.\n * @returns {Object[]} - An array of values in the multipart request.\n */\nconst getDataFromRawValue = function (value: string): (string | object)[] {\n\tconst parsedValue = value.split(\"\\r\\n\").filter((data) => data !== \"\");\n\n\tconst finalData: (string | object)[] = [];\n\tlet contentTypeValue = \"\";\n\n\tfor (let index = 1; index < parsedValue.length - 1; index++) {\n\t\tcontentTypeValue = parsedValue[index].includes(\"Content-Type: \") ? parsedValue[index].split(\"Content-Type: \")[1] : contentTypeValue;\n\n\t\tif (parsedValue[index + 1].includes(parsedValue[0])) {\n\t\t\tif (contentTypeValue === \"application/json\") {\n\t\t\t\tfinalData.push(JSON.parse(parsedValue[index]) as string);\n\t\t\t} else {\n\t\t\t\tfinalData.push(parsedValue[index]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn finalData;\n};\n\n/**\n * Fetches the CSRF token from the specified base URL.\n *\n * @async\n * @param {string} baseURL - The base URL to fetch the CSRF token from.\n * @returns {Promise<string>} A Promise that resolves when all batch requests are completed. A promise that resolves to the CSRF token.\n * @throws {Error} An error if the CSRF token cannot be fetched.\n */\nconst fetchCSRFToken = async function (baseURL: string): Promise<string> {\n\ttry {\n\t\tconst response = await fetch(baseURL, {\n\t\t\tmethod: methods.HEAD,\n\t\t\theaders: {\n\t\t\t\t\"X-CSRF-Token\": \"Fetch\"\n\t\t\t}\n\t\t});\n\n\t\tif (response.ok) {\n\t\t\tconst token = response.headers.get(\"X-CSRF-Token\");\n\t\t\tif (token) {\n\t\t\t\treturn token;\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Cannot fetch X-CSRF-Token.\");\n\t} catch (error: unknown) {\n\t\tthrow new Error((error as Error).message);\n\t}\n};\n\n/**\n *\n * Helper class for managing batch requests.\n *\n * @extends BaseObject\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n * @private\n *\n * @alias sap.cux.home.utils.BatchHelper\n */\nexport default class BatchHelper extends BaseObject {\n\tprivate url!: string;\n\n\t/**\n\t * Fetches data from a multipart request.\n\t *\n\t * @private\n\t * @param {MultiPartRequest} multiPartRequest - The multipart request object.\n\t * @returns {Promise<Array<string | object>>} - A promise that resolves to the data from the request.\n\t */\n\tprivate async fetchData(multiPartRequest: MultiPartRequest): Promise<Array<string | object>> {\n\t\tmultiPartRequest.options.body =\n\t\t\tmultiPartRequest.options.method === methods.GET\n\t\t\t\t? multiPartRequest._constructBody()\n\t\t\t\t: multiPartRequest.constructBodyWithPayload();\n\n\t\tmultiPartRequest.options.method = methods.POST;\n\n\t\tconst response = await fetch(this.url, multiPartRequest.options);\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(\"Failed to fetch data from the server.\");\n\t\t}\n\n\t\tconst text = await response.text();\n\t\treturn getDataFromRawValue(text);\n\t}\n\n\t/**\n\t * Creates a multipart batch request with multiple URLs.\n\t *\n\t * @public\n\t * @param {string} baseURL - The base URL for creating the batch request.\n\t * @param {string[]} urls - An array of URLs for individual requests.\n\t * @returns {Promise<Array<string | object>>} - A promise that resolves to the data from the batch request.\n\t */\n\tpublic async createMultipartRequest(baseURL: string, urls: string[]): Promise<Array<string | object>> {\n\t\tthis.url = `${baseURL}$batch`;\n\t\tconst csrfToken = await fetchCSRFToken(baseURL);\n\t\tconst request = this.buildMultipartRequest(urls, csrfToken);\n\t\treturn await this.fetchData(request);\n\t}\n\n\t/**\n\t * Creates a multipart batch request with given payloads and sends it to the specified base URL.\n\t *\n\t * @public\n\t * @param {string} baseURL - The base URL for creating the batch request.\n\t * @param payloads - An array of objects containing the URL and data for each part of the multipart request.\n\t * @param requestMethod - The HTTP method to be used for the request (e.g., POST).\n\t * @returns {Promise<Array<string | object>>} A promise that resolves to the data from the batch request.\n\t */\n\tpublic async createMultipartRequestWithPayload(\n\t\tbaseURL: string,\n\t\tpayloads: { url: string; data: unknown }[],\n\t\trequestMethod: methods\n\t): Promise<Array<string | object>> {\n\t\tthis.url = `${baseURL}$batch`;\n\t\tconst csrfToken = await fetchCSRFToken(baseURL);\n\t\tconst request = this.buildMultipartRequestWithPayload(payloads, csrfToken, requestMethod);\n\t\treturn await this.fetchData(request);\n\t}\n\n\t/**\n\t * Builds a multipart request from an array of URLs.\n\t *\n\t * @private\n\t * @param {string[]} urls - An array of URLs for individual requests.\n\t * @returns {MultiPartRequest} - The multipart request object.\n\t */\n\tprivate buildMultipartRequest(urls: string[], csrfToken: string, requestMethod: methods = methods.GET): MultiPartRequest {\n\t\t// create base request from first URL\n\t\tconst request = new MultiPartRequest(urls[0], requestMethod, csrfToken);\n\n\t\t// Add all URLs as sub-requests\n\t\turls.forEach((url) => {\n\t\t\trequest.addRequest(new MultiPartRequest(url, requestMethod, csrfToken));\n\t\t});\n\n\t\treturn request;\n\t}\n\n\t/**\n\t * Builds a multipart request with the given payloads, CSRF token, and request method.\n\t *\n\t * @param payloads - An array of objects containing the URL and data for each part of the request.\n\t * @param csrfToken - The CSRF token to be included in the request headers.\n\t * @param requestMethod - The HTTP method to be used for the request.\n\t * @returns {MultiPartRequest} A `MultiPartRequest` object containing the constructed multipart request.\n\t */\n\tprivate buildMultipartRequestWithPayload(\n\t\tpayloads: { url: string; data: unknown }[],\n\t\tcsrfToken: string,\n\t\trequestMethod: methods\n\t): MultiPartRequest {\n\t\tconst request = new MultiPartRequest(payloads[0].url, requestMethod, csrfToken);\n\t\trequest.payload = payloads[0].data;\n\t\tpayloads.forEach(({ url, data }) => {\n\t\t\tconst multipartRequest = new MultiPartRequest(url, requestMethod, csrfToken);\n\t\t\tmultipartRequest.payload = data;\n\t\t\trequest.addRequest(multipartRequest);\n\t\t});\n\n\t\treturn request;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BatchHelper.js","names":["sap","ui","define","BaseObject","_catch","body","recover","result","e","then","methods","isEncoded","url","test","MultiPartRequest","batchRequests","constructor","requestMethod","csrfToken","encodeURI","boundary","Date","now","options","headers","method","_constructBody","BOUNDARY","REQUEST_HEADERS","REQUEST_BODY","index","length","request","boundaryEnd","addRequest","push","constructBodyWithPayload","changeSet","CHANGESET_BOUNDARY","CHANGESET_HEADER","JSON","stringify","payload","getDataFromRawValue","value","parsedValue","replace","split","filter","data","finalData","contentTypeValue","includes","parse","fetchCSRFToken","baseURL","Promise","resolve","fetch","HEAD","response","ok","token","get","Error","error","message","reject","BatchHelper","extend","fetchData","_fetchData","multiPartRequest","_this","GET","POST","text","createMultipartRequest","_createMultipartRequest","urls","_this2","buildMultipartRequest","createMultipartRequestWithPayload","_createMultipartRequestWithPayload","payloads","_this3","buildMultipartRequestWithPayload","_buildMultipartRequest","forEach","_buildMultipartRequestWithPayload","multipartRequest"],"sources":["BatchHelper.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport BaseObject from \"sap/ui/base/Object\";\n\nenum methods {\n\tGET = \"GET\",\n\tPOST = \"POST\",\n\tPUT = \"PUT\",\n\tPATCH = \"PATCH\",\n\tDELETE = \"DELETE\",\n\tHEAD = \"HEAD\"\n}\n\ninterface Options {\n\theaders: Record<string, string>;\n\tmethod: methods;\n\tbody?: string;\n}\n\nconst isEncoded = (url: string) => {\n\treturn /%[0-9A-F]{2}/i.test(url);\n};\n\n/**\n * Represents a multipart request.\n */\nclass MultiPartRequest {\n\tprivate url: string;\n\tprivate batchRequests: MultiPartRequest[] = [];\n\tprivate boundary: string;\n\tpublic options: Options;\n\tpublic payload?: unknown;\n\n\t/**\n\t * Creates a MultiPartRequest object.\n\t *\n\t * @param {string} url - The URL for the multipart request.\n\t * @constructor\n\t */\n\tconstructor(url: string, requestMethod: methods, csrfToken?: string) {\n\t\t//encode the URL if it is not already encoded\n\t\tthis.url = isEncoded(url) ? url : encodeURI(url);\n\t\tthis.boundary = `batch_id_${Date.now()}_01`;\n\t\tthis.options = {\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": `multipart/mixed;boundary=${this.boundary}`\n\t\t\t},\n\t\t\tmethod: requestMethod\n\t\t};\n\n\t\t// Add CSRF token to headers if available\n\t\tif (csrfToken) {\n\t\t\tthis.options.headers[\"X-CSRF-Token\"] = csrfToken;\n\t\t}\n\t}\n\n\t/**\n\t * Constructs the body for the multipart request.\n\t *\n\t * @returns {string} - The constructed body.\n\t * @private\n\t */\n\tpublic _constructBody(): string {\n\t\tconst BOUNDARY = `--${this.boundary}`;\n\t\tconst REQUEST_HEADERS = `Content-Type: application/http\\r\\nContent-Transfer-Encoding: binary\\r\\n`;\n\t\tconst REQUEST_BODY = `Accept: application/json\\r\\n\\r\\n\\r\\n`;\n\n\t\tlet body = `${BOUNDARY}\\r\\n`;\n\n\t\tfor (let index = 0; index < this.batchRequests.length; index++) {\n\t\t\tconst request = this.batchRequests[index];\n\t\t\tconst boundaryEnd = index === this.batchRequests.length - 1 ? \"--\\r\\n\" : \"\\r\\n\";\n\t\t\tbody += `${REQUEST_HEADERS}\\r\\n`;\n\t\t\tbody += `${request.options.method} ${request.url} HTTP/1.1\\r\\n${REQUEST_BODY}`;\n\t\t\tbody += `${BOUNDARY}${boundaryEnd}`;\n\t\t}\n\n\t\treturn body;\n\t}\n\n\t/**\n\t * Adds a request to the MultiPartRequest batch.\n\t *\n\t * @public\n\t * @param {Object} request - The request to add to the batch.\n\t */\n\tpublic addRequest(request: MultiPartRequest): void {\n\t\tthis.batchRequests.push(request);\n\t}\n\n\t/**\n\t * Constructs the body for the multipart request with payload\n\t *\n\t * @returns {string} - The constructed body.\n\t * @private\n\t */\n\tpublic constructBodyWithPayload(): string {\n\t\tconst BOUNDARY = `--${this.boundary}`;\n\t\tconst REQUEST_HEADERS = \"Content-Type:application/http\\r\\nContent-Transfer-Encoding:binary\\r\\n\";\n\t\tlet body = `${BOUNDARY}\\r\\n`;\n\t\tconst changeSet = \"changeset_001\";\n\t\tconst CHANGESET_BOUNDARY = `--${changeSet}`;\n\t\tconst CHANGESET_HEADER = `Content-Type: multipart/mixed; boundary=${changeSet}\\r\\n`;\n\t\tbody += `${CHANGESET_HEADER}\\r\\n${CHANGESET_BOUNDARY}\\r\\n`;\n\t\tfor (let index = 0; index < this.batchRequests.length; index++) {\n\t\t\tconst request = this.batchRequests[index];\n\t\t\tbody += `\\r\\n${REQUEST_HEADERS}`;\n\t\t\tbody += `Content-ID: ${index + 1}\\r\\n\\r\\n`;\n\t\t\tbody += `${request.options.method} ${request.url} HTTP/1.1\\r\\n`;\n\t\t\tbody += \"sap-context-accept: header\\r\\nContent-Type:application/json\\r\\n\\r\\n\";\n\t\t\tbody += `${JSON.stringify(request.payload)}\\r\\n\\r\\n`;\n\t\t\tbody += CHANGESET_BOUNDARY;\n\t\t\tif (index === this.batchRequests.length - 1) {\n\t\t\t\tbody += \"--\\r\\n\";\n\t\t\t\tbody += `${BOUNDARY}--`;\n\t\t\t}\n\t\t}\n\t\treturn body;\n\t}\n}\n\n/**\n * Parses multipart body response and returns an array of values called in the batch request.\n *\n * @param {string} value - Multipart body response.\n * @returns {Object[]} - Array of values in the multipart request.\n * @returns {Object[]} - An array of values in the multipart request.\n */\nconst getDataFromRawValue = function (value: string): (string | object)[] {\n\tconst parsedValue = value\n\t\t.replace(/\\r\\n/g, \"\\n\")\n\t\t.split(\"\\n\")\n\t\t.filter((data) => data !== \"\");\n\n\tconst finalData: (string | object)[] = [];\n\tlet contentTypeValue = \"\";\n\n\tfor (let index = 1; index < parsedValue.length - 1; index++) {\n\t\tcontentTypeValue = parsedValue[index].includes(\"Content-Type: \") ? parsedValue[index].split(\"Content-Type: \")[1] : contentTypeValue;\n\n\t\tif (parsedValue[index + 1].includes(parsedValue[0])) {\n\t\t\tif (contentTypeValue === \"application/json\") {\n\t\t\t\tfinalData.push(JSON.parse(parsedValue[index]) as string);\n\t\t\t} else {\n\t\t\t\tfinalData.push(parsedValue[index]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn finalData;\n};\n\n/**\n * Fetches the CSRF token from the specified base URL.\n *\n * @async\n * @param {string} baseURL - The base URL to fetch the CSRF token from.\n * @returns {Promise<string>} A Promise that resolves when all batch requests are completed. A promise that resolves to the CSRF token.\n * @throws {Error} An error if the CSRF token cannot be fetched.\n */\nconst fetchCSRFToken = async function (baseURL: string): Promise<string> {\n\ttry {\n\t\tconst response = await fetch(baseURL, {\n\t\t\tmethod: methods.HEAD,\n\t\t\theaders: {\n\t\t\t\t\"X-CSRF-Token\": \"Fetch\"\n\t\t\t}\n\t\t});\n\n\t\tif (response.ok) {\n\t\t\tconst token = response.headers.get(\"X-CSRF-Token\");\n\t\t\tif (token) {\n\t\t\t\treturn token;\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Cannot fetch X-CSRF-Token.\");\n\t} catch (error: unknown) {\n\t\tthrow new Error((error as Error).message);\n\t}\n};\n\n/**\n *\n * Helper class for managing batch requests.\n *\n * @extends BaseObject\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n * @private\n *\n * @alias sap.cux.home.utils.BatchHelper\n */\nexport default class BatchHelper extends BaseObject {\n\tprivate url!: string;\n\n\t/**\n\t * Fetches data from a multipart request.\n\t *\n\t * @private\n\t * @param {MultiPartRequest} multiPartRequest - The multipart request object.\n\t * @returns {Promise<Array<string | object>>} - A promise that resolves to the data from the request.\n\t */\n\tprivate async fetchData(multiPartRequest: MultiPartRequest): Promise<Array<string | object>> {\n\t\tmultiPartRequest.options.body =\n\t\t\tmultiPartRequest.options.method === methods.GET\n\t\t\t\t? multiPartRequest._constructBody()\n\t\t\t\t: multiPartRequest.constructBodyWithPayload();\n\n\t\tmultiPartRequest.options.method = methods.POST;\n\n\t\tconst response = await fetch(this.url, multiPartRequest.options);\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(\"Failed to fetch data from the server.\");\n\t\t}\n\n\t\tconst text = await response.text();\n\t\treturn getDataFromRawValue(text);\n\t}\n\n\t/**\n\t * Creates a multipart batch request with multiple URLs.\n\t *\n\t * @public\n\t * @param {string} baseURL - The base URL for creating the batch request.\n\t * @param {string[]} urls - An array of URLs for individual requests.\n\t * @returns {Promise<Array<string | object>>} - A promise that resolves to the data from the batch request.\n\t */\n\tpublic async createMultipartRequest(baseURL: string, urls: string[]): Promise<Array<string | object>> {\n\t\tthis.url = `${baseURL}$batch`;\n\t\tconst csrfToken = await fetchCSRFToken(baseURL);\n\t\tconst request = this.buildMultipartRequest(urls, csrfToken);\n\t\treturn await this.fetchData(request);\n\t}\n\n\t/**\n\t * Creates a multipart batch request with given payloads and sends it to the specified base URL.\n\t *\n\t * @public\n\t * @param {string} baseURL - The base URL for creating the batch request.\n\t * @param payloads - An array of objects containing the URL and data for each part of the multipart request.\n\t * @param requestMethod - The HTTP method to be used for the request (e.g., POST).\n\t * @returns {Promise<Array<string | object>>} A promise that resolves to the data from the batch request.\n\t */\n\tpublic async createMultipartRequestWithPayload(\n\t\tbaseURL: string,\n\t\tpayloads: { url: string; data: unknown }[],\n\t\trequestMethod: methods\n\t): Promise<Array<string | object>> {\n\t\tthis.url = `${baseURL}$batch`;\n\t\tconst csrfToken = await fetchCSRFToken(baseURL);\n\t\tconst request = this.buildMultipartRequestWithPayload(payloads, csrfToken, requestMethod);\n\t\treturn await this.fetchData(request);\n\t}\n\n\t/**\n\t * Builds a multipart request from an array of URLs.\n\t *\n\t * @private\n\t * @param {string[]} urls - An array of URLs for individual requests.\n\t * @returns {MultiPartRequest} - The multipart request object.\n\t */\n\tprivate buildMultipartRequest(urls: string[], csrfToken: string, requestMethod: methods = methods.GET): MultiPartRequest {\n\t\t// create base request from first URL\n\t\tconst request = new MultiPartRequest(urls[0], requestMethod, csrfToken);\n\n\t\t// Add all URLs as sub-requests\n\t\turls.forEach((url) => {\n\t\t\trequest.addRequest(new MultiPartRequest(url, requestMethod, csrfToken));\n\t\t});\n\n\t\treturn request;\n\t}\n\n\t/**\n\t * Builds a multipart request with the given payloads, CSRF token, and request method.\n\t *\n\t * @param payloads - An array of objects containing the URL and data for each part of the request.\n\t * @param csrfToken - The CSRF token to be included in the request headers.\n\t * @param requestMethod - The HTTP method to be used for the request.\n\t * @returns {MultiPartRequest} A `MultiPartRequest` object containing the constructed multipart request.\n\t */\n\tprivate buildMultipartRequestWithPayload(\n\t\tpayloads: { url: string; data: unknown }[],\n\t\tcsrfToken: string,\n\t\trequestMethod: methods\n\t): MultiPartRequest {\n\t\tconst request = new MultiPartRequest(payloads[0].url, requestMethod, csrfToken);\n\t\trequest.payload = payloads[0].data;\n\t\tpayloads.forEach(({ url, data }) => {\n\t\t\tconst multipartRequest = new MultiPartRequest(url, requestMethod, csrfToken);\n\t\t\tmultipartRequest.payload = data;\n\t\t\trequest.addRequest(multipartRequest);\n\t\t});\n\n\t\treturn request;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -130,7 +130,10 @@ class MultiPartRequest {
|
|
|
130
130
|
* @returns {Object[]} - An array of values in the multipart request.
|
|
131
131
|
*/
|
|
132
132
|
const getDataFromRawValue = function (value: string): (string | object)[] {
|
|
133
|
-
const parsedValue = value
|
|
133
|
+
const parsedValue = value
|
|
134
|
+
.replace(/\r\n/g, "\n")
|
|
135
|
+
.split("\n")
|
|
136
|
+
.filter((data) => data !== "");
|
|
134
137
|
|
|
135
138
|
const finalData: (string | object)[] = [];
|
|
136
139
|
let contentTypeValue = "";
|
|
@@ -10,6 +10,36 @@ declare module "sap/cux/home/utils/FESRUtil" {
|
|
|
10
10
|
CHANGE = "change",
|
|
11
11
|
SELECT = "select"
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Enum for FESR (Frontend Subrecord) navigation source identifiers.
|
|
15
|
+
* Used to track the source of navigation events for performance monitoring.
|
|
16
|
+
*/
|
|
17
|
+
enum FESRNavigationSource {
|
|
18
|
+
/** Situation-based navigation source */
|
|
19
|
+
Situation = "situ",
|
|
20
|
+
/** Task-based navigation source */
|
|
21
|
+
Task = "task",
|
|
22
|
+
/** Page navigation source */
|
|
23
|
+
Page = "page",
|
|
24
|
+
/** App Finder navigation source */
|
|
25
|
+
AppFinder = "apFi",
|
|
26
|
+
/** Resume AppA ctivity navigation source */
|
|
27
|
+
ResumeAppActivity = "reAc",
|
|
28
|
+
/** Frequently Used apps navigation source */
|
|
29
|
+
FrequentlyUsed = "frUs",
|
|
30
|
+
/** Recently Used apps navigation source */
|
|
31
|
+
RecentlyUsed = "reUs",
|
|
32
|
+
/** Favorite apps navigation source */
|
|
33
|
+
Favorite = "faAp",
|
|
34
|
+
/** Recommended apps navigation source */
|
|
35
|
+
Recommended = "rcAp",
|
|
36
|
+
/** Insights tiles navigation source */
|
|
37
|
+
Tiles = "tile",
|
|
38
|
+
/** Insights cards navigation source */
|
|
39
|
+
Cards = "card"
|
|
40
|
+
}
|
|
41
|
+
let oExtensionInstance: any;
|
|
42
|
+
const addFESRNavigationSource: (source: FESRNavigationSource) => void;
|
|
13
43
|
const addFESRId: (control: Control | UI5Element, fesrId: string) => void;
|
|
14
44
|
const getFESRId: (control: Control | UI5Element) => string;
|
|
15
45
|
const addFESRSemanticStepName: (element: UI5Element, eventName: string, stepName: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FESRUtil.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/FESRUtil.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,6BAA6B,CAAC;IAC7C;;;OAGG;IAEH,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,UAAU,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FESRUtil.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/FESRUtil.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,6BAA6B,CAAC;IAC7C;;;OAGG;IAEH,OAAO,OAAO,MAAM,qBAAqB,CAAC;IAC1C,OAAO,UAAU,MAAM,qBAAqB,CAAC;IAI7C,KAAY,WAAW;QACtB,KAAK,UAAU;QACf,MAAM,WAAW;QACjB,MAAM,WAAW;KACjB;IAED;;;OAGG;IACH,KAAY,oBAAoB;QAC/B,wCAAwC;QACxC,SAAS,SAAS;QAClB,mCAAmC;QACnC,IAAI,SAAS;QACb,6BAA6B;QAC7B,IAAI,SAAS;QACb,mCAAmC;QACnC,SAAS,SAAS;QAClB,4CAA4C;QAC5C,iBAAiB,SAAS;QAC1B,6CAA6C;QAC7C,cAAc,SAAS;QACvB,2CAA2C;QAC3C,YAAY,SAAS;QACrB,sCAAsC;QACtC,QAAQ,SAAS;QACjB,yCAAyC;QACzC,WAAW,SAAS;QACpB,uCAAuC;QACvC,KAAK,SAAS;QACd,uCAAuC;QACvC,KAAK,SAAS;KACd;IAED,IAAI,kBAAkB,KAAkB,CAAC;IAElC,MAAM,uBAAuB,GAAI,QAAQ,oBAAoB,SAEnE,CAAC;IAEK,MAAM,SAAS,GAAI,SAAS,OAAO,GAAG,UAAU,EAAE,QAAQ,MAAM,SAEtE,CAAC;IAEK,MAAM,SAAS,GAAI,SAAS,OAAO,GAAG,UAAU,KACpB,MAClC,CAAC;IAEK,MAAM,uBAAuB,GAAI,SAAS,UAAU,EAAE,WAAW,MAAM,EAAE,UAAU,MAAM,SAI/F,CAAC;CAED"}
|
|
@@ -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/ui/performance/trace/FESRHelper"], function (FESRHelper) {
|
|
5
|
+
sap.ui.define(["sap/ui/performance/trace/FESRHelper", "sap/ushell/api/performance/Extension"], function (FESRHelper, Extension) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var FESR_EVENTS = /*#__PURE__*/function (FESR_EVENTS) {
|
|
@@ -11,6 +11,39 @@ sap.ui.define(["sap/ui/performance/trace/FESRHelper"], function (FESRHelper) {
|
|
|
11
11
|
FESR_EVENTS["SELECT"] = "select";
|
|
12
12
|
return FESR_EVENTS;
|
|
13
13
|
}(FESR_EVENTS || {});
|
|
14
|
+
/**
|
|
15
|
+
* Enum for FESR (Frontend Subrecord) navigation source identifiers.
|
|
16
|
+
* Used to track the source of navigation events for performance monitoring.
|
|
17
|
+
*/
|
|
18
|
+
var FESRNavigationSource = /*#__PURE__*/function (FESRNavigationSource) {
|
|
19
|
+
/** Situation-based navigation source */
|
|
20
|
+
FESRNavigationSource["Situation"] = "situ";
|
|
21
|
+
/** Task-based navigation source */
|
|
22
|
+
FESRNavigationSource["Task"] = "task";
|
|
23
|
+
/** Page navigation source */
|
|
24
|
+
FESRNavigationSource["Page"] = "page";
|
|
25
|
+
/** App Finder navigation source */
|
|
26
|
+
FESRNavigationSource["AppFinder"] = "apFi";
|
|
27
|
+
/** Resume AppA ctivity navigation source */
|
|
28
|
+
FESRNavigationSource["ResumeAppActivity"] = "reAc";
|
|
29
|
+
/** Frequently Used apps navigation source */
|
|
30
|
+
FESRNavigationSource["FrequentlyUsed"] = "frUs";
|
|
31
|
+
/** Recently Used apps navigation source */
|
|
32
|
+
FESRNavigationSource["RecentlyUsed"] = "reUs";
|
|
33
|
+
/** Favorite apps navigation source */
|
|
34
|
+
FESRNavigationSource["Favorite"] = "faAp";
|
|
35
|
+
/** Recommended apps navigation source */
|
|
36
|
+
FESRNavigationSource["Recommended"] = "rcAp";
|
|
37
|
+
/** Insights tiles navigation source */
|
|
38
|
+
FESRNavigationSource["Tiles"] = "tile";
|
|
39
|
+
/** Insights cards navigation source */
|
|
40
|
+
FESRNavigationSource["Cards"] = "card";
|
|
41
|
+
return FESRNavigationSource;
|
|
42
|
+
}(FESRNavigationSource || {});
|
|
43
|
+
let oExtensionInstance = new Extension();
|
|
44
|
+
const addFESRNavigationSource = source => {
|
|
45
|
+
oExtensionInstance.addNavigationSource(source);
|
|
46
|
+
};
|
|
14
47
|
const addFESRId = (control, fesrId) => {
|
|
15
48
|
control?.data("fesr-id", fesrId);
|
|
16
49
|
};
|
|
@@ -26,6 +59,8 @@ sap.ui.define(["sap/ui/performance/trace/FESRHelper"], function (FESRHelper) {
|
|
|
26
59
|
__esModule: true
|
|
27
60
|
};
|
|
28
61
|
__exports.FESR_EVENTS = FESR_EVENTS;
|
|
62
|
+
__exports.FESRNavigationSource = FESRNavigationSource;
|
|
63
|
+
__exports.addFESRNavigationSource = addFESRNavigationSource;
|
|
29
64
|
__exports.addFESRId = addFESRId;
|
|
30
65
|
__exports.getFESRId = getFESRId;
|
|
31
66
|
__exports.addFESRSemanticStepName = addFESRSemanticStepName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FESRUtil.js","names":["sap","ui","define","FESRHelper","FESR_EVENTS","addFESRId","control","fesrId","data","getFESRId","addFESRSemanticStepName","element","eventName","stepName","setSemanticStepname","__exports","__esModule"],"sources":["FESRUtil.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Control from \"sap/ui/core/Control\";\nimport UI5Element from \"sap/ui/core/Element\";\nimport FESRHelper from \"sap/ui/performance/trace/FESRHelper\";\n\nexport enum FESR_EVENTS {\n\tPRESS = \"press\",\n\tCHANGE = \"change\",\n\tSELECT = \"select\"\n}\n\nexport const addFESRId = (control: Control | UI5Element, fesrId: string) => {\n\tcontrol?.data(\"fesr-id\", fesrId);\n};\n\nexport const getFESRId = (control: Control | UI5Element) => {\n\treturn control.data(\"fesr-id\") as string;\n};\n\nexport const addFESRSemanticStepName = (element: UI5Element, eventName: string, stepName: string) => {\n\tif (stepName) {\n\t\tFESRHelper.setSemanticStepname(element, eventName, stepName);\n\t}\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,
|
|
1
|
+
{"version":3,"file":"FESRUtil.js","names":["sap","ui","define","FESRHelper","Extension","FESR_EVENTS","FESRNavigationSource","oExtensionInstance","addFESRNavigationSource","source","addNavigationSource","addFESRId","control","fesrId","data","getFESRId","addFESRSemanticStepName","element","eventName","stepName","setSemanticStepname","__exports","__esModule"],"sources":["FESRUtil.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Control from \"sap/ui/core/Control\";\nimport UI5Element from \"sap/ui/core/Element\";\nimport FESRHelper from \"sap/ui/performance/trace/FESRHelper\";\nimport Extension from \"sap/ushell/api/performance/Extension\";\n\nexport enum FESR_EVENTS {\n\tPRESS = \"press\",\n\tCHANGE = \"change\",\n\tSELECT = \"select\"\n}\n\n/**\n * Enum for FESR (Frontend Subrecord) navigation source identifiers.\n * Used to track the source of navigation events for performance monitoring.\n */\nexport enum FESRNavigationSource {\n\t/** Situation-based navigation source */\n\tSituation = \"situ\",\n\t/** Task-based navigation source */\n\tTask = \"task\",\n\t/** Page navigation source */\n\tPage = \"page\",\n\t/** App Finder navigation source */\n\tAppFinder = \"apFi\",\n\t/** Resume AppA ctivity navigation source */\n\tResumeAppActivity = \"reAc\",\n\t/** Frequently Used apps navigation source */\n\tFrequentlyUsed = \"frUs\",\n\t/** Recently Used apps navigation source */\n\tRecentlyUsed = \"reUs\",\n\t/** Favorite apps navigation source */\n\tFavorite = \"faAp\",\n\t/** Recommended apps navigation source */\n\tRecommended = \"rcAp\",\n\t/** Insights tiles navigation source */\n\tTiles = \"tile\",\n\t/** Insights cards navigation source */\n\tCards = \"card\"\n}\n\nlet oExtensionInstance = new Extension();\n\nexport const addFESRNavigationSource = (source: FESRNavigationSource) => {\n\toExtensionInstance.addNavigationSource(source);\n};\n\nexport const addFESRId = (control: Control | UI5Element, fesrId: string) => {\n\tcontrol?.data(\"fesr-id\", fesrId);\n};\n\nexport const getFESRId = (control: Control | UI5Element) => {\n\treturn control.data(\"fesr-id\") as string;\n};\n\nexport const addFESRSemanticStepName = (element: UI5Element, eventName: string, stepName: string) => {\n\tif (stepName) {\n\t\tFESRHelper.setSemanticStepname(element, eventName, stepName);\n\t}\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,4FAAAC,UAAA,EAAAC,SAAA;EAAA;;EAAA,IAUYC,WAAW,0BAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAA,OAAXA,WAAW;EAAA,EAAXA,WAAW;EAMvB;AACA;AACA;AACA;EAHA,IAIYC,oBAAoB,0BAApBA,oBAAoB;IAC/B;IADWA,oBAAoB;IAG/B;IAHWA,oBAAoB;IAK/B;IALWA,oBAAoB;IAO/B;IAPWA,oBAAoB;IAS/B;IATWA,oBAAoB;IAW/B;IAXWA,oBAAoB;IAa/B;IAbWA,oBAAoB;IAe/B;IAfWA,oBAAoB;IAiB/B;IAjBWA,oBAAoB;IAmB/B;IAnBWA,oBAAoB;IAqB/B;IArBWA,oBAAoB;IAAA,OAApBA,oBAAoB;EAAA,EAApBA,oBAAoB;EAyBhC,IAAIC,kBAAkB,GAAG,IAAIH,SAAS,CAAC,CAAC;EAEjC,MAAMI,uBAAuB,GAAIC,MAA4B,IAAK;IACxEF,kBAAkB,CAACG,mBAAmB,CAACD,MAAM,CAAC;EAC/C,CAAC;EAEM,MAAME,SAAS,GAAGA,CAACC,OAA6B,EAAEC,MAAc,KAAK;IAC3ED,OAAO,EAAEE,IAAI,CAAC,SAAS,EAAED,MAAM,CAAC;EACjC,CAAC;EAEM,MAAME,SAAS,GAAIH,OAA6B,IAAK;IAC3D,OAAOA,OAAO,CAACE,IAAI,CAAC,SAAS,CAAC;EAC/B,CAAC;EAEM,MAAME,uBAAuB,GAAGA,CAACC,OAAmB,EAAEC,SAAiB,EAAEC,QAAgB,KAAK;IACpG,IAAIA,QAAQ,EAAE;MACbhB,UAAU,CAACiB,mBAAmB,CAACH,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC;IAC7D;EACD,CAAC;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAhB,WAAA,GAAAA,WAAA;EAAAgB,SAAA,CAAAf,oBAAA,GAAAA,oBAAA;EAAAe,SAAA,CAAAb,uBAAA,GAAAA,uBAAA;EAAAa,SAAA,CAAAV,SAAA,GAAAA,SAAA;EAAAU,SAAA,CAAAN,SAAA,GAAAA,SAAA;EAAAM,SAAA,CAAAL,uBAAA,GAAAA,uBAAA;EAAA,OAAAK,SAAA;AAAA","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import Control from "sap/ui/core/Control";
|
|
7
7
|
import UI5Element from "sap/ui/core/Element";
|
|
8
8
|
import FESRHelper from "sap/ui/performance/trace/FESRHelper";
|
|
9
|
+
import Extension from "sap/ushell/api/performance/Extension";
|
|
9
10
|
|
|
10
11
|
export enum FESR_EVENTS {
|
|
11
12
|
PRESS = "press",
|
|
@@ -13,6 +14,41 @@ export enum FESR_EVENTS {
|
|
|
13
14
|
SELECT = "select"
|
|
14
15
|
}
|
|
15
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Enum for FESR (Frontend Subrecord) navigation source identifiers.
|
|
19
|
+
* Used to track the source of navigation events for performance monitoring.
|
|
20
|
+
*/
|
|
21
|
+
export enum FESRNavigationSource {
|
|
22
|
+
/** Situation-based navigation source */
|
|
23
|
+
Situation = "situ",
|
|
24
|
+
/** Task-based navigation source */
|
|
25
|
+
Task = "task",
|
|
26
|
+
/** Page navigation source */
|
|
27
|
+
Page = "page",
|
|
28
|
+
/** App Finder navigation source */
|
|
29
|
+
AppFinder = "apFi",
|
|
30
|
+
/** Resume AppA ctivity navigation source */
|
|
31
|
+
ResumeAppActivity = "reAc",
|
|
32
|
+
/** Frequently Used apps navigation source */
|
|
33
|
+
FrequentlyUsed = "frUs",
|
|
34
|
+
/** Recently Used apps navigation source */
|
|
35
|
+
RecentlyUsed = "reUs",
|
|
36
|
+
/** Favorite apps navigation source */
|
|
37
|
+
Favorite = "faAp",
|
|
38
|
+
/** Recommended apps navigation source */
|
|
39
|
+
Recommended = "rcAp",
|
|
40
|
+
/** Insights tiles navigation source */
|
|
41
|
+
Tiles = "tile",
|
|
42
|
+
/** Insights cards navigation source */
|
|
43
|
+
Cards = "card"
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
let oExtensionInstance = new Extension();
|
|
47
|
+
|
|
48
|
+
export const addFESRNavigationSource = (source: FESRNavigationSource) => {
|
|
49
|
+
oExtensionInstance.addNavigationSource(source);
|
|
50
|
+
};
|
|
51
|
+
|
|
16
52
|
export const addFESRId = (control: Control | UI5Element, fesrId: string) => {
|
|
17
53
|
control?.data("fesr-id", fesrId);
|
|
18
54
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PXFeedback.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/PXFeedback.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAC;IAQ/C,SAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAW/D;CAEA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/ui/core/EventBus"], function (Log, EventBus) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
function triggerPXIntegration(triggerEvent) {
|
|
9
|
+
try {
|
|
10
|
+
const eventBus = EventBus.getInstance();
|
|
11
|
+
eventBus.publish("sap.feedback", "inapp.feature", {
|
|
12
|
+
areaId: "EmbeddedAI",
|
|
13
|
+
triggerName: "J91",
|
|
14
|
+
payload: {
|
|
15
|
+
event: triggerEvent
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
} catch (e) {
|
|
19
|
+
Log.error("Error publishing feedback event", e);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
var __exports = {
|
|
23
|
+
__esModule: true
|
|
24
|
+
};
|
|
25
|
+
__exports.triggerPXIntegration = triggerPXIntegration;
|
|
26
|
+
return __exports;
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=PXFeedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PXFeedback.js","names":["sap","ui","define","Log","EventBus","triggerPXIntegration","triggerEvent","eventBus","getInstance","publish","areaId","triggerName","payload","event","e","error","__exports","__esModule"],"sources":["PXFeedback.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\nimport Log from \"sap/base/Log\";\nimport EventBus from \"sap/ui/core/EventBus\";\n\nexport function triggerPXIntegration(triggerEvent: string): void {\n\ttry {\n\t\tconst eventBus = EventBus.getInstance();\n\t\teventBus.publish(\"sap.feedback\", \"inapp.feature\", {\n\t\t\tareaId: \"EmbeddedAI\",\n\t\t\ttriggerName: \"J91\",\n\t\t\tpayload: { event: triggerEvent }\n\t\t});\n\t} catch (e) {\n\t\tLog.error(\"Error publishing feedback event\", e as Error);\n\t}\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,qDAAAC,GAAA,EAAAC,QAAA;EAAA;;EAOO,SAASC,oBAAoBA,CAACC,YAAoB,EAAQ;IAChE,IAAI;MACH,MAAMC,QAAQ,GAAGH,QAAQ,CAACI,WAAW,CAAC,CAAC;MACvCD,QAAQ,CAACE,OAAO,CAAC,cAAc,EAAE,eAAe,EAAE;QACjDC,MAAM,EAAE,YAAY;QACpBC,WAAW,EAAE,KAAK;QAClBC,OAAO,EAAE;UAAEC,KAAK,EAAEP;QAAa;MAChC,CAAC,CAAC;IACH,CAAC,CAAC,OAAOQ,CAAC,EAAE;MACXX,GAAG,CAACY,KAAK,CAAC,iCAAiC,EAAED,CAAU,CAAC;IACzD;EACD;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAX,oBAAA,GAAAA,oBAAA;EAAA,OAAAW,SAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
import Log from "sap/base/Log";
|
|
6
|
+
import EventBus from "sap/ui/core/EventBus";
|
|
7
|
+
|
|
8
|
+
export function triggerPXIntegration(triggerEvent: string): void {
|
|
9
|
+
try {
|
|
10
|
+
const eventBus = EventBus.getInstance();
|
|
11
|
+
eventBus.publish("sap.feedback", "inapp.feature", {
|
|
12
|
+
areaId: "EmbeddedAI",
|
|
13
|
+
triggerName: "J91",
|
|
14
|
+
payload: { event: triggerEvent }
|
|
15
|
+
});
|
|
16
|
+
} catch (e) {
|
|
17
|
+
Log.error("Error publishing feedback event", e as Error);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
declare module "sap/cux/home/utils/PageManager" {
|
|
2
|
-
/*!
|
|
3
|
-
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
4
|
-
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
5
|
-
*/
|
|
6
2
|
import BaseObject from "sap/ui/base/Object";
|
|
7
3
|
import Component from "sap/ui/core/Component";
|
|
8
4
|
import { ISpacePagePersonalization } from "sap/cux/home/interface/KeyUserInterface";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageManager.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/PageManager.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"PageManager.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/PageManager.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gCAAgC,CAAC;IAOhD,OAAO,UAAU,MAAM,oBAAoB,CAAC;IAC5C,OAAO,SAAS,MAAM,uBAAuB,CAAC;IAK9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;IACpF,OAAO,EAAU,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;IAClF,OAAO,UAAU,MAAM,+BAA+B,CAAC;IAGvD,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;IAEvE;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,UAAU;QAClD,UAAU,EAAE,OAAO,UAAU,CAAc;QAC3C,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,SAAS,CAAC;QAC3B,QAAQ,EAAG,MAAM,EAAE,CAAC;QACpB,OAAO,EAAG,KAAK,EAAE,CAAC;QAClB,SAAS,EAAG,KAAK,EAAE,CAAC;QACpB,aAAa,EAAG,kBAAkB,CAAC;QACnC,mBAAmB,EAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,eAAe,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;SAAE,CAAM;QAC5D,OAAO,CAAC,SAAS,CAAW;QAC5B,OAAO;QAOP,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS;QAStE,OAAO,CAAC,mBAAmB;QAId,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAiB5C,sBAAsB,CAAC,mBAAmB,GAAE,OAAe,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QA4B9E,cAAc;QAG3B,OAAO,CAAC,gBAAgB;QAKxB,OAAO,CAAC,eAAe;QAYvB,OAAO,CAAC,sBAAsB;QAMjB,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,sBAAsB,GAAE,OAAe;QA4B7E,gBAAgB,CAAC,YAAY,GAAE,OAAe;gBAevC,YAAY;QAkCb,0BAA0B,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,EAAE;QA2EzE,yBAAyB,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,EAAE;KA+CrF;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/ui/base/Object", "sap/ui/core/EventBus", "sap/ushell/Config", "sap/ushell/Container", "./ColorUtils", "./Constants", "./PagesIconsConstants", "./UshellPersonalizer"], function (BaseObject, EventBus, Config, Container, __ColorUtils, ___Constants, ___PagesIconsConstants, __UShellPersonalizer) {
|
|
5
|
+
sap.ui.define(["sap/base/util/deepEqual", "sap/ui/base/Object", "sap/ui/core/EventBus", "sap/ushell/Config", "sap/ushell/Container", "./ColorUtils", "./Constants", "./PagesIconsConstants", "./UshellPersonalizer"], function (deepEqual, BaseObject, EventBus, Config, Container, __ColorUtils, ___Constants, ___PagesIconsConstants, __UShellPersonalizer) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -185,12 +185,12 @@ sap.ui.define(["sap/ui/base/Object", "sap/ui/core/EventBus", "sap/ushell/Config"
|
|
|
185
185
|
if (this.aFavPages && !bForceUpdate) {
|
|
186
186
|
return Promise.resolve(this.aFavPages);
|
|
187
187
|
}
|
|
188
|
-
if (this.oGetFavPagesPromise === undefined) {
|
|
189
|
-
this.oGetFavPagesPromise = this._getFavPages(
|
|
188
|
+
if (this.oGetFavPagesPromise === undefined || bForceUpdate) {
|
|
189
|
+
this.oGetFavPagesPromise = this._getFavPages();
|
|
190
190
|
}
|
|
191
191
|
return this.oGetFavPagesPromise;
|
|
192
192
|
},
|
|
193
|
-
_getFavPages: function _getFavPages2(
|
|
193
|
+
_getFavPages: function _getFavPages2() {
|
|
194
194
|
try {
|
|
195
195
|
const _this5 = this;
|
|
196
196
|
return Promise.resolve(_this5._getPersonalization()).then(function (_this5$_getPersonaliz) {
|
|
@@ -222,7 +222,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/ui/core/EventBus", "sap/ushell/Config"
|
|
|
222
222
|
aPages = aPages.slice(0, PAGE_SELECTION_LIMIT);
|
|
223
223
|
const _temp6 = function () {
|
|
224
224
|
if (aPages.length || !aFavoritePages?.length) {
|
|
225
|
-
return Promise.resolve(_this5.getFavPages(aPages, aPages
|
|
225
|
+
return Promise.resolve(_this5.getFavPages(aPages, deepEqual(aPages, aFavoritePages))).then(function (_this5$getFavPages) {
|
|
226
226
|
_this5.aFavPages = _this5$getFavPages;
|
|
227
227
|
});
|
|
228
228
|
} else {
|
|
@@ -381,7 +381,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/ui/core/EventBus", "sap/ushell/Config"
|
|
|
381
381
|
}
|
|
382
382
|
const _temp1 = function () {
|
|
383
383
|
if (!_this7.aFavPages) {
|
|
384
|
-
return Promise.resolve(_this7._getFavPages(
|
|
384
|
+
return Promise.resolve(_this7._getFavPages()).then(function () {});
|
|
385
385
|
}
|
|
386
386
|
}();
|
|
387
387
|
return Promise.resolve(_temp1 && _temp1.then ? _temp1.then(_temp10) : _temp10(_temp1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageManager.js","names":["sap","ui","define","BaseObject","EventBus","Config","Container","__ColorUtils","___Constants","___PagesIconsConstants","__UShellPersonalizer","_interopRequireDefault","obj","__esModule","default","ColorUtils","CUSTOM_SPACEID","DEFAULT_BG_COLOR","FALLBACK_ICON","fnFetchLegendColor","MYHOME_SPACE_ID","PAGE_SELECTION_LIMIT","PAGES","SPACES","UShellPersonalizer","PageManager","extend","constructor","_constructor","persContainerId","oOwnerComponent","BaseObject.prototype.constructor.call","colorUtils","_eventBus","getInstance","_getPersonalization","fetchAllAvailableSpaces","_fetchAllAvailableSpaces","_this","_aSpaces","Promise","resolve","getServiceAsync","then","oBookmarkService","getContentNodes","_oBookmarkService$get","aSpaces","filter","oSpace","id","forEach","BGColor","applyColorToAllPages","e","reject","fetchAllAvailablePages","_fetchAllAvailablePages","bFetchDistinctPages","_this2","_aPages","Array","isArray","children","oPage","find","oExistingPage","push","title","label","icon","isIconLoaded","pageId","spaceId","spaceTitle","url","hasCustomSpace","_hasCustomSpace","_this3","_this3$fetchAllAvaila","some","_getDefaultPages","aAvailablePages","aFavoritePages","slice","getFavPages","_getIconForPage","oFavPage","oIcon","includes","_applyIconsForFavPages","aFavPages","aPageWithoutIcon","_getFavPages","bUpdatePersonalisation","_this4","_temp4","length","selected","getFreeColor","addColor","_temp3","_temp2","oPersonalizer","read","oPersData","favouritePages","write","publish","_temp","_this4$_getPersonaliz","getFavoritePages","_getFavoritePages","bForceUpdate","bSpaceEnabled","encodeURIComponent","last","oGetFavPagesPromise","undefined","_getFavPages2","_this5","_this5$_getPersonaliz","_temp8","_temp7","_this5$_getDefaultPag","aPages","oAvailablePage","_temp6","_this5$getFavPages","_temp5","_this5$_getDefaultPag2","applyColorPersonalizations","_applyColorPersonalizations","personalizations","_this6","_temp0","allSpaces","personalization","isPagePersonalization","spaceObj","space","pageObj","page","availablePageObj","colorObj","isSpacePersonalization","favPageObj","favPage","favpageBGColor","oldColor","pageBackgroundColor","_temp9","applyIconPersonalizations","_applyIconPersonalizations","_this7","_temp10","isSpaceIconPersonalization","isPageIconPersonalization","oldIcon","_temp1","oCacheInstances","pageManagerInstance"],"sources":["PageManager.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport BaseObject from \"sap/ui/base/Object\";\nimport Component from \"sap/ui/core/Component\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Config from \"sap/ushell/Config\";\nimport Container from \"sap/ushell/Container\";\nimport Bookmark from \"sap/ushell/services/BookmarkV2\";\nimport { ISpacePagePersonalization } from \"../interface/KeyUserInterface\";\nimport { IColor, IPage, ISpace } from \"../interface/PageSpaceInterface\";\nimport ColorUtils from \"./ColorUtils\";\nimport { CUSTOM_SPACEID, DEFAULT_BG_COLOR, FALLBACK_ICON, fnFetchLegendColor, MYHOME_SPACE_ID, PAGE_SELECTION_LIMIT } from \"./Constants\";\nimport { PAGES, SPACES } from \"./PagesIconsConstants\";\nimport UShellPersonalizer from \"./UshellPersonalizer\";\n\n/**\n *\n * Provides the PageManager Class used for fetch and process user pages.\n *\n * @extends sap.ui.BaseObject\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n * @private\n *\n * @alias sap.cux.home.utils.PageManager\n */\n\nexport default class PageManager extends BaseObject {\n\tcolorUtils: typeof ColorUtils = ColorUtils;\n\tpersContainerId: string;\n\toOwnerComponent: Component;\n\t_aSpaces!: ISpace[];\n\t_aPages!: IPage[];\n\taFavPages!: IPage[];\n\toPersonalizer!: UShellPersonalizer;\n\toGetFavPagesPromise!: Promise<IPage[]>;\n\tstatic oCacheInstances: { [key: string]: PageManager } = {};\n\tprivate _eventBus: EventBus;\n\tprivate constructor(persContainerId: string, oOwnerComponent: Component) {\n\t\tsuper();\n\t\tthis.persContainerId = persContainerId;\n\t\tthis.oOwnerComponent = oOwnerComponent;\n\t\tthis._eventBus = EventBus.getInstance();\n\t}\n\n\tstatic getInstance(persContainerId: string, oOwnerComponent: Component) {\n\t\tif (PageManager.oCacheInstances[persContainerId]) {\n\t\t\treturn PageManager.oCacheInstances[persContainerId];\n\t\t}\n\t\tconst pageManagerInstance = new PageManager(persContainerId, oOwnerComponent);\n\t\tPageManager.oCacheInstances[persContainerId] = pageManagerInstance;\n\t\treturn pageManagerInstance;\n\t}\n\n\tprivate _getPersonalization() {\n\t\treturn UShellPersonalizer.getInstance(this.persContainerId, this.oOwnerComponent);\n\t}\n\n\tpublic async fetchAllAvailableSpaces(): Promise<ISpace[]> {\n\t\tif (this._aSpaces) {\n\t\t\treturn Promise.resolve(this._aSpaces);\n\t\t}\n\t\tconst oBookmarkService: Bookmark = await Container.getServiceAsync(\"BookmarkV2\");\n\t\tconst aSpaces = (await oBookmarkService.getContentNodes()) as ISpace[];\n\t\t// Filter MyHome Space from Spaces\n\t\tthis._aSpaces = aSpaces.filter((oSpace) => oSpace.id !== MYHOME_SPACE_ID);\n\n\t\t// Add Initial Default Color for Spaces\n\t\tthis._aSpaces.forEach(function (oSpace) {\n\t\t\toSpace.BGColor = DEFAULT_BG_COLOR();\n\t\t\toSpace.applyColorToAllPages = false;\n\t\t});\n\n\t\treturn this._aSpaces;\n\t}\n\tpublic async fetchAllAvailablePages(bFetchDistinctPages: boolean = false): Promise<IPage[]> {\n\t\tif (this._aPages) {\n\t\t\treturn Promise.resolve(this._aPages);\n\t\t}\n\t\tconst aSpaces = await this.fetchAllAvailableSpaces();\n\t\tthis._aPages = [];\n\t\taSpaces.forEach((oSpace: ISpace) => {\n\t\t\tif (Array.isArray(oSpace.children)) {\n\t\t\t\toSpace.children.forEach((oPage: IPage) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!bFetchDistinctPages ||\n\t\t\t\t\t\t(bFetchDistinctPages && !this._aPages.find((oExistingPage) => oExistingPage.id === oPage.id))\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis._aPages.push({\n\t\t\t\t\t\t\ttitle: oPage.label,\n\t\t\t\t\t\t\ticon: FALLBACK_ICON,\n\t\t\t\t\t\t\tisIconLoaded: false,\n\t\t\t\t\t\t\tpageId: oPage.id,\n\t\t\t\t\t\t\tspaceId: oSpace.id,\n\t\t\t\t\t\t\tspaceTitle: oSpace.label,\n\t\t\t\t\t\t\turl: \"#Launchpad-openFLPPage?pageId=\" + oPage.id + \"&spaceId=\" + oSpace.id\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn this._aPages;\n\t}\n\tpublic async hasCustomSpace() {\n\t\treturn (await this.fetchAllAvailableSpaces()).some((oSpace) => oSpace.id === CUSTOM_SPACEID);\n\t}\n\tprivate _getDefaultPages(aAvailablePages: IPage[]): Promise<IPage[]> {\n\t\tconst aFavoritePages = aAvailablePages.slice(0, PAGE_SELECTION_LIMIT) || [];\n\t\treturn this.getFavPages(aFavoritePages);\n\t}\n\t// Get icons from icon constants file\n\tprivate _getIconForPage(oFavPage: IPage) {\n\t\t// Check for icon in page icon constants file\n\t\tlet oIcon = PAGES.find((oPage) => oFavPage.pageId?.includes(oPage.id));\n\n\t\tif (!oIcon) {\n\t\t\t// Check for icon in space icon constants file\n\t\t\toIcon = SPACES.find((oSpace) => oFavPage.spaceId?.includes(oSpace.id));\n\t\t}\n\n\t\toFavPage.icon = oIcon?.icon || FALLBACK_ICON;\n\t\toFavPage.isIconLoaded = true;\n\t}\n\tprivate _applyIconsForFavPages(aFavPages: IPage[]) {\n\t\tconst aPageWithoutIcon = aFavPages.filter((oPage) => !oPage.isIconLoaded);\n\t\taPageWithoutIcon.forEach((oPage: IPage) => {\n\t\t\tthis._getIconForPage(oPage);\n\t\t});\n\t}\n\tpublic async getFavPages(aFavPages: IPage[], bUpdatePersonalisation: boolean = false) {\n\t\taFavPages.forEach((oPage: IPage) => {\n\t\t\toPage.selected = true;\n\t\t\tif (!oPage.BGColor) {\n\t\t\t\toPage.BGColor = this.colorUtils.getFreeColor();\n\t\t\t} else {\n\t\t\t\tthis.colorUtils.addColor(oPage.BGColor as string);\n\t\t\t}\n\t\t});\n\n\t\t// Update the Personalisation model\n\t\tif (bUpdatePersonalisation) {\n\t\t\tif (!this.oPersonalizer) {\n\t\t\t\tthis.oPersonalizer = await this._getPersonalization();\n\t\t\t}\n\t\t\tlet oPersData = await this.oPersonalizer.read();\n\t\t\tif (!oPersData) oPersData = { favouritePages: [] };\n\t\t\toPersData.favouritePages = aFavPages;\n\t\t\tawait this.oPersonalizer.write(oPersData);\n\t\t\tthis._eventBus.publish(\"pageChannel\", \"pageUpdated\");\n\t\t}\n\n\t\t// Fetch and apply Icons for Favorite Pages\n\t\tif (aFavPages.length) {\n\t\t\tthis._applyIconsForFavPages(aFavPages);\n\t\t}\n\t\treturn aFavPages;\n\t}\n\tpublic getFavoritePages(bForceUpdate: boolean = false) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tconst bSpaceEnabled = encodeURIComponent(Config.last(\"/core/spaces/enabled\"));\n\t\tif (!bSpaceEnabled) {\n\t\t\treturn Promise.resolve([]);\n\t\t}\n\t\tif (this.aFavPages && !bForceUpdate) {\n\t\t\treturn Promise.resolve(this.aFavPages);\n\t\t}\n\t\tif (this.oGetFavPagesPromise === undefined) {\n\t\t\tthis.oGetFavPagesPromise = this._getFavPages(bForceUpdate);\n\t\t}\n\t\treturn this.oGetFavPagesPromise;\n\t}\n\n\tprivate async _getFavPages(bForceUpdate: boolean) {\n\t\tthis.oPersonalizer = await this._getPersonalization();\n\t\tconst oPersData = await this.oPersonalizer.read();\n\t\tconst aFavoritePages: IPage[] | undefined = oPersData?.favouritePages;\n\t\tconst aAvailablePages = await this.fetchAllAvailablePages(true);\n\t\t// Set first 8 available pages are favorite if no favorite page data is present\n\t\tif (!aFavoritePages) {\n\t\t\tthis.aFavPages = await this._getDefaultPages(aAvailablePages);\n\t\t} else {\n\t\t\tlet aPages: IPage[] = [],\n\t\t\t\toExistingPage;\n\t\t\taFavoritePages?.forEach((oPage: IPage) => {\n\t\t\t\toExistingPage = aAvailablePages.find(function (oAvailablePage) {\n\t\t\t\t\treturn oAvailablePage.pageId === oPage.pageId;\n\t\t\t\t});\n\t\t\t\tif (oExistingPage) {\n\t\t\t\t\toExistingPage.BGColor = oPage.BGColor;\n\t\t\t\t\taPages.push(oExistingPage);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// To send Maximum of 8 Pages (BCP incident: 2270169293)\n\t\t\taPages = aPages.slice(0, PAGE_SELECTION_LIMIT);\n\t\t\tif (aPages.length || !aFavoritePages?.length) {\n\t\t\t\tthis.aFavPages = await this.getFavPages(aPages, aPages.length !== aFavoritePages?.length || bForceUpdate);\n\t\t\t} else if (!aPages.length && aFavoritePages.length) {\n\t\t\t\t//Clean unaccessible page data\n\t\t\t\toPersData.favouritePages = [];\n\t\t\t\tawait this.oPersonalizer.write(oPersData);\n\t\t\t\tthis.aFavPages = await this._getDefaultPages(aAvailablePages);\n\t\t\t}\n\t\t}\n\t\treturn this.aFavPages;\n\t}\n\n\tpublic async applyColorPersonalizations(personalizations?: ISpacePagePersonalization[]) {\n\t\tif (!personalizations?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.aFavPages) {\n\t\t\tawait this.getFavoritePages();\n\t\t}\n\n\t\tconst allSpaces = await this.fetchAllAvailableSpaces();\n\n\t\tpersonalizations.forEach((personalization) => {\n\t\t\tconst isPagePersonalization = !!personalization.pageId;\n\t\t\t//corresponding space obj of the master list of all spaces\n\t\t\tconst spaceObj = allSpaces?.find((space) => space.id === personalization.spaceId);\n\t\t\tconst pageObj = spaceObj?.children.find((page) => page.id === personalization.pageId);\n\t\t\t//corresponding page obj of the list of favorite/visible pages\n\t\t\tconst oPage = this.aFavPages.find((oPage) => oPage.pageId === personalization.pageId);\n\t\t\t//corresponding page obj of the master list of all pages\n\t\t\tconst availablePageObj = this._aPages?.find((page) => page.pageId === personalization.pageId);\n\t\t\t// Update the Personalisation model for space\n\t\t\tif (!isPagePersonalization && spaceObj) {\n\t\t\t\tconst colorObj = fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\tspaceObj.BGColor = colorObj;\n\t\t\t\tspaceObj.applyColorToAllPages = personalization.applyColorToAllPages;\n\t\t\t\tspaceObj.isSpacePersonalization = true;\n\n\t\t\t\t// Update the color for all pages in the space if applied\n\t\t\t\tspaceObj.children.forEach((oPage) => {\n\t\t\t\t\tconst favPageObj = this.aFavPages.find((favPage) => favPage.pageId === oPage.id);\n\t\t\t\t\tif (favPageObj) {\n\t\t\t\t\t\tconst favpageBGColor = favPageObj.isPagePersonalization ? favPageObj.oldColor : DEFAULT_BG_COLOR();\n\t\t\t\t\t\tfavPageObj.BGColor = spaceObj.applyColorToAllPages ? personalization.BGColor : favpageBGColor;\n\t\t\t\t\t\toPage.BGColor = favPageObj.BGColor;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * setting personalization color for unchecked pages\n\t\t\t\t\t\t * updating color for the children of master list of spaces\n\t\t\t\t\t\t * updating color for the available pages corresponding to the space id\n\t\t\t\t\t\t */\n\t\t\t\t\t\toPage.BGColor = spaceObj.applyColorToAllPages ? personalization.BGColor : DEFAULT_BG_COLOR();\n\t\t\t\t\t\tthis._aPages.forEach((page) => {\n\t\t\t\t\t\t\tif (page.spaceId === spaceObj.id) {\n\t\t\t\t\t\t\t\tpage.BGColor = oPage.BGColor;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (pageObj) {\n\t\t\t\t// Update the Personalisation model for page\n\t\t\t\tconst pageBackgroundColor = spaceObj?.applyColorToAllPages\n\t\t\t\t\t? ({ ...spaceObj.BGColor } as IColor)\n\t\t\t\t\t: fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\t//updating color for the favourite page\n\t\t\t\tif (oPage) {\n\t\t\t\t\toPage.isPagePersonalization = true;\n\t\t\t\t\toPage.BGColor = pageBackgroundColor;\n\t\t\t\t\toPage.oldColor = fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\t}\n\t\t\t\t//updating color for the children of master list of spaces\n\t\t\t\tpageObj.isPagePersonalization = true;\n\t\t\t\tpageObj.BGColor = pageBackgroundColor;\n\t\t\t\tpageObj.oldColor = fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\t//updating color for the page of master list of pages/available page\n\t\t\t\tif (availablePageObj) {\n\t\t\t\t\tavailablePageObj.isPagePersonalization = true;\n\t\t\t\t\tavailablePageObj.BGColor = pageBackgroundColor;\n\t\t\t\t\tavailablePageObj.oldColor = fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._eventBus.publish(\"pageChannel\", \"pageUpdated\");\n\t}\n\n\tpublic async applyIconPersonalizations(personalizations?: ISpacePagePersonalization[]) {\n\t\tif (!personalizations?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.aFavPages) {\n\t\t\tawait this._getFavPages(false);\n\t\t}\n\t\tconst allSpaces = await this.fetchAllAvailableSpaces();\n\n\t\tpersonalizations.forEach((personalization) => {\n\t\t\tconst isPagePersonalization = !!personalization.pageId;\n\t\t\tconst spaceObj = allSpaces?.find((space) => space.id === personalization.spaceId);\n\n\t\t\t// Update the Personalisation model for space\n\t\t\tif (!isPagePersonalization) {\n\t\t\t\tif (spaceObj) {\n\t\t\t\t\tspaceObj.icon = personalization.icon;\n\t\t\t\t\tspaceObj.isSpaceIconPersonalization = true;\n\n\t\t\t\t\t// Update the icon for all pages in the space if applied\n\t\t\t\t\tspaceObj.children.forEach((oPage) => {\n\t\t\t\t\t\tif (!oPage.isPageIconPersonalization) {\n\t\t\t\t\t\t\tconst favPageObj = this.aFavPages.find((favPage) => favPage.pageId === oPage.id);\n\t\t\t\t\t\t\tif (favPageObj) {\n\t\t\t\t\t\t\t\tfavPageObj.icon = spaceObj.icon || FALLBACK_ICON;\n\t\t\t\t\t\t\t\toPage.icon = spaceObj.icon || FALLBACK_ICON;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Update the Personalisation model for page\n\t\t\t\tconst pageObj = spaceObj?.children.find((page) => page.id === personalization.pageId);\n\t\t\t\tconst oPage = this.aFavPages.find((oPage) => oPage.pageId === personalization.pageId);\n\t\t\t\tif (pageObj && oPage) {\n\t\t\t\t\toPage.isPageIconPersonalization = true;\n\t\t\t\t\tpageObj.isPageIconPersonalization = true;\n\t\t\t\t\toPage.icon = personalization.icon;\n\t\t\t\t\tpageObj.icon = personalization.icon;\n\t\t\t\t\toPage.oldIcon = personalization.oldIcon;\n\t\t\t\t\tpageObj.oldIcon = personalization.oldIcon;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._eventBus.publish(\"pageChannel\", \"pageUpdated\");\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PageManager.js","names":["sap","ui","define","deepEqual","BaseObject","EventBus","Config","Container","__ColorUtils","___Constants","___PagesIconsConstants","__UShellPersonalizer","_interopRequireDefault","obj","__esModule","default","ColorUtils","CUSTOM_SPACEID","DEFAULT_BG_COLOR","FALLBACK_ICON","fnFetchLegendColor","MYHOME_SPACE_ID","PAGE_SELECTION_LIMIT","PAGES","SPACES","UShellPersonalizer","PageManager","extend","constructor","_constructor","persContainerId","oOwnerComponent","BaseObject.prototype.constructor.call","colorUtils","_eventBus","getInstance","_getPersonalization","fetchAllAvailableSpaces","_fetchAllAvailableSpaces","_this","_aSpaces","Promise","resolve","getServiceAsync","then","oBookmarkService","getContentNodes","_oBookmarkService$get","aSpaces","filter","oSpace","id","forEach","BGColor","applyColorToAllPages","e","reject","fetchAllAvailablePages","_fetchAllAvailablePages","bFetchDistinctPages","_this2","_aPages","Array","isArray","children","oPage","find","oExistingPage","push","title","label","icon","isIconLoaded","pageId","spaceId","spaceTitle","url","hasCustomSpace","_hasCustomSpace","_this3","_this3$fetchAllAvaila","some","_getDefaultPages","aAvailablePages","aFavoritePages","slice","getFavPages","_getIconForPage","oFavPage","oIcon","includes","_applyIconsForFavPages","aFavPages","aPageWithoutIcon","_getFavPages","bUpdatePersonalisation","_this4","_temp4","length","selected","getFreeColor","addColor","_temp3","_temp2","oPersonalizer","read","oPersData","favouritePages","write","publish","_temp","_this4$_getPersonaliz","getFavoritePages","_getFavoritePages","bForceUpdate","bSpaceEnabled","encodeURIComponent","last","oGetFavPagesPromise","undefined","_getFavPages2","_this5","_this5$_getPersonaliz","_temp8","_temp7","_this5$_getDefaultPag","aPages","oAvailablePage","_temp6","_this5$getFavPages","_temp5","_this5$_getDefaultPag2","applyColorPersonalizations","_applyColorPersonalizations","personalizations","_this6","_temp0","allSpaces","personalization","isPagePersonalization","spaceObj","space","pageObj","page","availablePageObj","colorObj","isSpacePersonalization","favPageObj","favPage","favpageBGColor","oldColor","pageBackgroundColor","_temp9","applyIconPersonalizations","_applyIconPersonalizations","_this7","_temp10","isSpaceIconPersonalization","isPageIconPersonalization","oldIcon","_temp1","oCacheInstances","pageManagerInstance"],"sources":["PageManager.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport deepEqual from \"sap/base/util/deepEqual\";\nimport BaseObject from \"sap/ui/base/Object\";\nimport Component from \"sap/ui/core/Component\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Config from \"sap/ushell/Config\";\nimport Container from \"sap/ushell/Container\";\nimport Bookmark from \"sap/ushell/services/BookmarkV2\";\nimport { ISpacePagePersonalization } from \"../interface/KeyUserInterface\";\nimport { IColor, IPage, ISpace } from \"../interface/PageSpaceInterface\";\nimport ColorUtils from \"./ColorUtils\";\nimport { CUSTOM_SPACEID, DEFAULT_BG_COLOR, FALLBACK_ICON, fnFetchLegendColor, MYHOME_SPACE_ID, PAGE_SELECTION_LIMIT } from \"./Constants\";\nimport { PAGES, SPACES } from \"./PagesIconsConstants\";\nimport UShellPersonalizer from \"./UshellPersonalizer\";\n\n/**\n *\n * Provides the PageManager Class used for fetch and process user pages.\n *\n * @extends sap.ui.BaseObject\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n * @private\n *\n * @alias sap.cux.home.utils.PageManager\n */\n\nexport default class PageManager extends BaseObject {\n\tcolorUtils: typeof ColorUtils = ColorUtils;\n\tpersContainerId: string;\n\toOwnerComponent: Component;\n\t_aSpaces!: ISpace[];\n\t_aPages!: IPage[];\n\taFavPages!: IPage[];\n\toPersonalizer!: UShellPersonalizer;\n\toGetFavPagesPromise!: Promise<IPage[]>;\n\tstatic oCacheInstances: { [key: string]: PageManager } = {};\n\tprivate _eventBus: EventBus;\n\tprivate constructor(persContainerId: string, oOwnerComponent: Component) {\n\t\tsuper();\n\t\tthis.persContainerId = persContainerId;\n\t\tthis.oOwnerComponent = oOwnerComponent;\n\t\tthis._eventBus = EventBus.getInstance();\n\t}\n\n\tstatic getInstance(persContainerId: string, oOwnerComponent: Component) {\n\t\tif (PageManager.oCacheInstances[persContainerId]) {\n\t\t\treturn PageManager.oCacheInstances[persContainerId];\n\t\t}\n\t\tconst pageManagerInstance = new PageManager(persContainerId, oOwnerComponent);\n\t\tPageManager.oCacheInstances[persContainerId] = pageManagerInstance;\n\t\treturn pageManagerInstance;\n\t}\n\n\tprivate _getPersonalization() {\n\t\treturn UShellPersonalizer.getInstance(this.persContainerId, this.oOwnerComponent);\n\t}\n\n\tpublic async fetchAllAvailableSpaces(): Promise<ISpace[]> {\n\t\tif (this._aSpaces) {\n\t\t\treturn Promise.resolve(this._aSpaces);\n\t\t}\n\t\tconst oBookmarkService: Bookmark = await Container.getServiceAsync(\"BookmarkV2\");\n\t\tconst aSpaces = (await oBookmarkService.getContentNodes()) as ISpace[];\n\t\t// Filter MyHome Space from Spaces\n\t\tthis._aSpaces = aSpaces.filter((oSpace) => oSpace.id !== MYHOME_SPACE_ID);\n\n\t\t// Add Initial Default Color for Spaces\n\t\tthis._aSpaces.forEach(function (oSpace) {\n\t\t\toSpace.BGColor = DEFAULT_BG_COLOR();\n\t\t\toSpace.applyColorToAllPages = false;\n\t\t});\n\n\t\treturn this._aSpaces;\n\t}\n\tpublic async fetchAllAvailablePages(bFetchDistinctPages: boolean = false): Promise<IPage[]> {\n\t\tif (this._aPages) {\n\t\t\treturn Promise.resolve(this._aPages);\n\t\t}\n\t\tconst aSpaces = await this.fetchAllAvailableSpaces();\n\t\tthis._aPages = [];\n\t\taSpaces.forEach((oSpace: ISpace) => {\n\t\t\tif (Array.isArray(oSpace.children)) {\n\t\t\t\toSpace.children.forEach((oPage: IPage) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!bFetchDistinctPages ||\n\t\t\t\t\t\t(bFetchDistinctPages && !this._aPages.find((oExistingPage) => oExistingPage.id === oPage.id))\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis._aPages.push({\n\t\t\t\t\t\t\ttitle: oPage.label,\n\t\t\t\t\t\t\ticon: FALLBACK_ICON,\n\t\t\t\t\t\t\tisIconLoaded: false,\n\t\t\t\t\t\t\tpageId: oPage.id,\n\t\t\t\t\t\t\tspaceId: oSpace.id,\n\t\t\t\t\t\t\tspaceTitle: oSpace.label,\n\t\t\t\t\t\t\turl: \"#Launchpad-openFLPPage?pageId=\" + oPage.id + \"&spaceId=\" + oSpace.id\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn this._aPages;\n\t}\n\tpublic async hasCustomSpace() {\n\t\treturn (await this.fetchAllAvailableSpaces()).some((oSpace) => oSpace.id === CUSTOM_SPACEID);\n\t}\n\tprivate _getDefaultPages(aAvailablePages: IPage[]): Promise<IPage[]> {\n\t\tconst aFavoritePages = aAvailablePages.slice(0, PAGE_SELECTION_LIMIT) || [];\n\t\treturn this.getFavPages(aFavoritePages);\n\t}\n\t// Get icons from icon constants file\n\tprivate _getIconForPage(oFavPage: IPage) {\n\t\t// Check for icon in page icon constants file\n\t\tlet oIcon = PAGES.find((oPage) => oFavPage.pageId?.includes(oPage.id));\n\n\t\tif (!oIcon) {\n\t\t\t// Check for icon in space icon constants file\n\t\t\toIcon = SPACES.find((oSpace) => oFavPage.spaceId?.includes(oSpace.id));\n\t\t}\n\n\t\toFavPage.icon = oIcon?.icon || FALLBACK_ICON;\n\t\toFavPage.isIconLoaded = true;\n\t}\n\tprivate _applyIconsForFavPages(aFavPages: IPage[]) {\n\t\tconst aPageWithoutIcon = aFavPages.filter((oPage) => !oPage.isIconLoaded);\n\t\taPageWithoutIcon.forEach((oPage: IPage) => {\n\t\t\tthis._getIconForPage(oPage);\n\t\t});\n\t}\n\tpublic async getFavPages(aFavPages: IPage[], bUpdatePersonalisation: boolean = false) {\n\t\taFavPages.forEach((oPage: IPage) => {\n\t\t\toPage.selected = true;\n\t\t\tif (!oPage.BGColor) {\n\t\t\t\toPage.BGColor = this.colorUtils.getFreeColor();\n\t\t\t} else {\n\t\t\t\tthis.colorUtils.addColor(oPage.BGColor as string);\n\t\t\t}\n\t\t});\n\n\t\t// Update the Personalisation model\n\t\tif (bUpdatePersonalisation) {\n\t\t\tif (!this.oPersonalizer) {\n\t\t\t\tthis.oPersonalizer = await this._getPersonalization();\n\t\t\t}\n\t\t\tlet oPersData = await this.oPersonalizer.read();\n\t\t\tif (!oPersData) oPersData = { favouritePages: [] };\n\t\t\toPersData.favouritePages = aFavPages;\n\t\t\tawait this.oPersonalizer.write(oPersData);\n\t\t\tthis._eventBus.publish(\"pageChannel\", \"pageUpdated\");\n\t\t}\n\n\t\t// Fetch and apply Icons for Favorite Pages\n\t\tif (aFavPages.length) {\n\t\t\tthis._applyIconsForFavPages(aFavPages);\n\t\t}\n\t\treturn aFavPages;\n\t}\n\tpublic getFavoritePages(bForceUpdate: boolean = false) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tconst bSpaceEnabled = encodeURIComponent(Config.last(\"/core/spaces/enabled\"));\n\t\tif (!bSpaceEnabled) {\n\t\t\treturn Promise.resolve([]);\n\t\t}\n\t\tif (this.aFavPages && !bForceUpdate) {\n\t\t\treturn Promise.resolve(this.aFavPages);\n\t\t}\n\t\tif (this.oGetFavPagesPromise === undefined || bForceUpdate) {\n\t\t\tthis.oGetFavPagesPromise = this._getFavPages();\n\t\t}\n\t\treturn this.oGetFavPagesPromise;\n\t}\n\n\tprivate async _getFavPages() {\n\t\tthis.oPersonalizer = await this._getPersonalization();\n\t\tconst oPersData = await this.oPersonalizer.read();\n\t\tconst aFavoritePages: IPage[] | undefined = oPersData?.favouritePages;\n\t\tconst aAvailablePages = await this.fetchAllAvailablePages(true);\n\t\t// Set first 8 available pages are favorite if no favorite page data is present\n\t\tif (!aFavoritePages) {\n\t\t\tthis.aFavPages = await this._getDefaultPages(aAvailablePages);\n\t\t} else {\n\t\t\tlet aPages: IPage[] = [],\n\t\t\t\toExistingPage;\n\t\t\taFavoritePages?.forEach((oPage: IPage) => {\n\t\t\t\toExistingPage = aAvailablePages.find(function (oAvailablePage) {\n\t\t\t\t\treturn oAvailablePage.pageId === oPage.pageId;\n\t\t\t\t});\n\t\t\t\tif (oExistingPage) {\n\t\t\t\t\toExistingPage.BGColor = oPage.BGColor;\n\t\t\t\t\taPages.push(oExistingPage);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// To send Maximum of 8 Pages (BCP incident: 2270169293)\n\t\t\taPages = aPages.slice(0, PAGE_SELECTION_LIMIT);\n\t\t\tif (aPages.length || !aFavoritePages?.length) {\n\t\t\t\tthis.aFavPages = await this.getFavPages(aPages, deepEqual(aPages, aFavoritePages));\n\t\t\t} else if (!aPages.length && aFavoritePages.length) {\n\t\t\t\t//Clean unaccessible page data\n\t\t\t\toPersData.favouritePages = [];\n\t\t\t\tawait this.oPersonalizer.write(oPersData);\n\t\t\t\tthis.aFavPages = await this._getDefaultPages(aAvailablePages);\n\t\t\t}\n\t\t}\n\t\treturn this.aFavPages;\n\t}\n\n\tpublic async applyColorPersonalizations(personalizations?: ISpacePagePersonalization[]) {\n\t\tif (!personalizations?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.aFavPages) {\n\t\t\tawait this.getFavoritePages();\n\t\t}\n\n\t\tconst allSpaces = await this.fetchAllAvailableSpaces();\n\n\t\tpersonalizations.forEach((personalization) => {\n\t\t\tconst isPagePersonalization = !!personalization.pageId;\n\t\t\t//corresponding space obj of the master list of all spaces\n\t\t\tconst spaceObj = allSpaces?.find((space) => space.id === personalization.spaceId);\n\t\t\tconst pageObj = spaceObj?.children.find((page) => page.id === personalization.pageId);\n\t\t\t//corresponding page obj of the list of favorite/visible pages\n\t\t\tconst oPage = this.aFavPages.find((oPage) => oPage.pageId === personalization.pageId);\n\t\t\t//corresponding page obj of the master list of all pages\n\t\t\tconst availablePageObj = this._aPages?.find((page) => page.pageId === personalization.pageId);\n\t\t\t// Update the Personalisation model for space\n\t\t\tif (!isPagePersonalization && spaceObj) {\n\t\t\t\tconst colorObj = fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\tspaceObj.BGColor = colorObj;\n\t\t\t\tspaceObj.applyColorToAllPages = personalization.applyColorToAllPages;\n\t\t\t\tspaceObj.isSpacePersonalization = true;\n\n\t\t\t\t// Update the color for all pages in the space if applied\n\t\t\t\tspaceObj.children.forEach((oPage) => {\n\t\t\t\t\tconst favPageObj = this.aFavPages.find((favPage) => favPage.pageId === oPage.id);\n\t\t\t\t\tif (favPageObj) {\n\t\t\t\t\t\tconst favpageBGColor = favPageObj.isPagePersonalization ? favPageObj.oldColor : DEFAULT_BG_COLOR();\n\t\t\t\t\t\tfavPageObj.BGColor = spaceObj.applyColorToAllPages ? personalization.BGColor : favpageBGColor;\n\t\t\t\t\t\toPage.BGColor = favPageObj.BGColor;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * setting personalization color for unchecked pages\n\t\t\t\t\t\t * updating color for the children of master list of spaces\n\t\t\t\t\t\t * updating color for the available pages corresponding to the space id\n\t\t\t\t\t\t */\n\t\t\t\t\t\toPage.BGColor = spaceObj.applyColorToAllPages ? personalization.BGColor : DEFAULT_BG_COLOR();\n\t\t\t\t\t\tthis._aPages.forEach((page) => {\n\t\t\t\t\t\t\tif (page.spaceId === spaceObj.id) {\n\t\t\t\t\t\t\t\tpage.BGColor = oPage.BGColor;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (pageObj) {\n\t\t\t\t// Update the Personalisation model for page\n\t\t\t\tconst pageBackgroundColor = spaceObj?.applyColorToAllPages\n\t\t\t\t\t? ({ ...spaceObj.BGColor } as IColor)\n\t\t\t\t\t: fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\t//updating color for the favourite page\n\t\t\t\tif (oPage) {\n\t\t\t\t\toPage.isPagePersonalization = true;\n\t\t\t\t\toPage.BGColor = pageBackgroundColor;\n\t\t\t\t\toPage.oldColor = fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\t}\n\t\t\t\t//updating color for the children of master list of spaces\n\t\t\t\tpageObj.isPagePersonalization = true;\n\t\t\t\tpageObj.BGColor = pageBackgroundColor;\n\t\t\t\tpageObj.oldColor = fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\t//updating color for the page of master list of pages/available page\n\t\t\t\tif (availablePageObj) {\n\t\t\t\t\tavailablePageObj.isPagePersonalization = true;\n\t\t\t\t\tavailablePageObj.BGColor = pageBackgroundColor;\n\t\t\t\t\tavailablePageObj.oldColor = fnFetchLegendColor(personalization.BGColor as string);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._eventBus.publish(\"pageChannel\", \"pageUpdated\");\n\t}\n\n\tpublic async applyIconPersonalizations(personalizations?: ISpacePagePersonalization[]) {\n\t\tif (!personalizations?.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.aFavPages) {\n\t\t\tawait this._getFavPages();\n\t\t}\n\t\tconst allSpaces = await this.fetchAllAvailableSpaces();\n\n\t\tpersonalizations.forEach((personalization) => {\n\t\t\tconst isPagePersonalization = !!personalization.pageId;\n\t\t\tconst spaceObj = allSpaces?.find((space) => space.id === personalization.spaceId);\n\n\t\t\t// Update the Personalisation model for space\n\t\t\tif (!isPagePersonalization) {\n\t\t\t\tif (spaceObj) {\n\t\t\t\t\tspaceObj.icon = personalization.icon;\n\t\t\t\t\tspaceObj.isSpaceIconPersonalization = true;\n\n\t\t\t\t\t// Update the icon for all pages in the space if applied\n\t\t\t\t\tspaceObj.children.forEach((oPage) => {\n\t\t\t\t\t\tif (!oPage.isPageIconPersonalization) {\n\t\t\t\t\t\t\tconst favPageObj = this.aFavPages.find((favPage) => favPage.pageId === oPage.id);\n\t\t\t\t\t\t\tif (favPageObj) {\n\t\t\t\t\t\t\t\tfavPageObj.icon = spaceObj.icon || FALLBACK_ICON;\n\t\t\t\t\t\t\t\toPage.icon = spaceObj.icon || FALLBACK_ICON;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Update the Personalisation model for page\n\t\t\t\tconst pageObj = spaceObj?.children.find((page) => page.id === personalization.pageId);\n\t\t\t\tconst oPage = this.aFavPages.find((oPage) => oPage.pageId === personalization.pageId);\n\t\t\t\tif (pageObj && oPage) {\n\t\t\t\t\toPage.isPageIconPersonalization = true;\n\t\t\t\t\tpageObj.isPageIconPersonalization = true;\n\t\t\t\t\toPage.icon = personalization.icon;\n\t\t\t\t\tpageObj.icon = personalization.icon;\n\t\t\t\t\toPage.oldIcon = personalization.oldIcon;\n\t\t\t\t\tpageObj.oldIcon = personalization.oldIcon;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._eventBus.publish(\"pageChannel\", \"pageUpdated\");\n\t}\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,mNAAAC,SAAA,EAAAC,UAAA,EAAAC,QAAA,EAAAC,MAAA,EAAAC,SAAA,EAAAC,YAAA,EAAAC,YAAA,EAAAC,sBAAA,EAAAC,oBAAA;EAAA;;EAAA,SAAAC,uBAAAC,GAAA;IAAA,OAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,CAAAE,OAAA,mBAAAF,GAAA,CAAAE,OAAA,GAAAF,GAAA;EAAA;EAAA,MAcOG,UAAU,GAAAJ,sBAAA,CAAAJ,YAAA;EAAA,MACRS,cAAc,GAAAR,YAAA;EAAA,MAAES,gBAAgB,GAAAT,YAAA;EAAA,MAAEU,aAAa,GAAAV,YAAA;EAAA,MAAEW,kBAAkB,GAAAX,YAAA;EAAA,MAAEY,eAAe,GAAAZ,YAAA;EAAA,MAAEa,oBAAoB,GAAAb,YAAA;EAAA,MAC1Gc,KAAK,GAAAb,sBAAA;EAAA,MAAEc,MAAM,GAAAd,sBAAA;EAAA,MACfe,kBAAkB,GAAAb,sBAAA,CAAAD,oBAAA;EAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAZA,MAcqBe,WAAW,GAAStB,UAAU,CAAAuB,MAAA;IAW1CC,WAAW,WAAAC,aAACC,eAAuB,EAAEC,eAA0B,EAAE;MACxEC,qCAAA;MAAQ,KAXTC,UAAU,GAAsBjB,UAAU;MAYzC,IAAI,CAACc,eAAe,GAAGA,eAAe;MACtC,IAAI,CAACC,eAAe,GAAGA,eAAe;MACtC,IAAI,CAACG,SAAS,GAAG7B,QAAQ,CAAC8B,WAAW,CAAC,CAAC;IACxC,CAAC;IAWOC,mBAAmB,WAAAA,oBAAA,EAAG;MAC7B,OAAOX,kBAAkB,CAACU,WAAW,CAAC,IAAI,CAACL,eAAe,EAAE,IAAI,CAACC,eAAe,CAAC;IAClF,CAAC;IAEYM,uBAAuB,WAAAC,yBAAA;MAAA,IAAsB;QAAA,MAAAC,KAAA,GACrD,IAAI;QAAR,IAAIA,KAAA,CAAKC,QAAQ,EAAE;UAClB,OAAOC,OAAO,CAACC,OAAO,CAACH,KAAA,CAAKC,QAAQ,CAAC;QACtC;QAAC,OAAAC,OAAA,CAAAC,OAAA,CACwCnC,SAAS,CAACoC,eAAe,CAAC,YAAY,CAAC,EAAAC,IAAA,WAA1EC,gBAA0B;UAAA,OAAAJ,OAAA,CAAAC,OAAA,CACTG,gBAAgB,CAACC,eAAe,CAAC,CAAC,EAAAF,IAAA,WAAAG,qBAAA;YAAzD,MAAMC,OAAO,GAAAD,qBAAyD;YACtE;YACAR,KAAA,CAAKC,QAAQ,GAAGQ,OAAO,CAACC,MAAM,CAAEC,MAAM,IAAKA,MAAM,CAACC,EAAE,KAAK9B,eAAe,CAAC;;YAEzE;YACAkB,KAAA,CAAKC,QAAQ,CAACY,OAAO,CAAC,UAAUF,MAAM,EAAE;cACvCA,MAAM,CAACG,OAAO,GAAGnC,gBAAgB,CAAC,CAAC;cACnCgC,MAAM,CAACI,oBAAoB,GAAG,KAAK;YACpC,CAAC,CAAC;YAEF,OAAOf,KAAA,CAAKC,QAAQ;UAAC;QAAA;MACtB,CAAC,QAAAe,CAAA;QAAA,OAAAd,OAAA,CAAAe,MAAA,CAAAD,CAAA;MAAA;IAAA;IACYE,sBAAsB,WAAAC,wBAACC,mBAA4B,GAAG,KAAK;MAAA,IAAoB;QAAA,MAAAC,MAAA,GACvF,IAAI;QAAR,IAAIA,MAAA,CAAKC,OAAO,EAAE;UACjB,OAAOpB,OAAO,CAACC,OAAO,CAACkB,MAAA,CAAKC,OAAO,CAAC;QACrC;QAAC,OAAApB,OAAA,CAAAC,OAAA,CACqBkB,MAAA,CAAKvB,uBAAuB,CAAC,CAAC,EAAAO,IAAA,WAA9CI,OAAO;UACbY,MAAA,CAAKC,OAAO,GAAG,EAAE;UACjBb,OAAO,CAACI,OAAO,CAAEF,MAAc,IAAK;YACnC,IAAIY,KAAK,CAACC,OAAO,CAACb,MAAM,CAACc,QAAQ,CAAC,EAAE;cACnCd,MAAM,CAACc,QAAQ,CAACZ,OAAO,CAAEa,KAAY,IAAK;gBACzC,IACC,CAACN,mBAAmB,IACnBA,mBAAmB,IAAI,CAACC,MAAA,CAAKC,OAAO,CAACK,IAAI,CAAEC,aAAa,IAAKA,aAAa,CAAChB,EAAE,KAAKc,KAAK,CAACd,EAAE,CAAE,EAC5F;kBACDS,MAAA,CAAKC,OAAO,CAACO,IAAI,CAAC;oBACjBC,KAAK,EAAEJ,KAAK,CAACK,KAAK;oBAClBC,IAAI,EAAEpD,aAAa;oBACnBqD,YAAY,EAAE,KAAK;oBACnBC,MAAM,EAAER,KAAK,CAACd,EAAE;oBAChBuB,OAAO,EAAExB,MAAM,CAACC,EAAE;oBAClBwB,UAAU,EAAEzB,MAAM,CAACoB,KAAK;oBACxBM,GAAG,EAAE,gCAAgC,GAAGX,KAAK,CAACd,EAAE,GAAG,WAAW,GAAGD,MAAM,CAACC;kBACzE,CAAC,CAAC;gBACH;cACD,CAAC,CAAC;YACH;UACD,CAAC,CAAC;UACF,OAAOS,MAAA,CAAKC,OAAO;QAAC;MACrB,CAAC,QAAAN,CAAA;QAAA,OAAAd,OAAA,CAAAe,MAAA,CAAAD,CAAA;MAAA;IAAA;IACYsB,cAAc,WAAAC,gBAAA;MAAA,IAAG;QAAA,MAAAC,MAAA,GACf,IAAI;QAAA,OAAAtC,OAAA,CAAAC,OAAA,CAAJqC,MAAA,CAAK1C,uBAAuB,CAAC,CAAC,EAAAO,IAAA,WAAAoC,qBAAA;UAA5C,OAAOA,qBAAA,CAAuCC,IAAI,CAAE/B,MAAM,IAAKA,MAAM,CAACC,EAAE,KAAKlC,cAAc,CAAC;QAAC;MAC9F,CAAC,QAAAsC,CAAA;QAAA,OAAAd,OAAA,CAAAe,MAAA,CAAAD,CAAA;MAAA;IAAA;IACO2B,gBAAgB,WAAAA,iBAACC,eAAwB,EAAoB;MACpE,MAAMC,cAAc,GAAGD,eAAe,CAACE,KAAK,CAAC,CAAC,EAAE/D,oBAAoB,CAAC,IAAI,EAAE;MAC3E,OAAO,IAAI,CAACgE,WAAW,CAACF,cAAc,CAAC;IACxC,CAAC;IACD;IACQG,eAAe,WAAAA,gBAACC,QAAe,EAAE;MACxC;MACA,IAAIC,KAAK,GAAGlE,KAAK,CAAC2C,IAAI,CAAED,KAAK,IAAKuB,QAAQ,CAACf,MAAM,EAAEiB,QAAQ,CAACzB,KAAK,CAACd,EAAE,CAAC,CAAC;MAEtE,IAAI,CAACsC,KAAK,EAAE;QACX;QACAA,KAAK,GAAGjE,MAAM,CAAC0C,IAAI,CAAEhB,MAAM,IAAKsC,QAAQ,CAACd,OAAO,EAAEgB,QAAQ,CAACxC,MAAM,CAACC,EAAE,CAAC,CAAC;MACvE;MAEAqC,QAAQ,CAACjB,IAAI,GAAGkB,KAAK,EAAElB,IAAI,IAAIpD,aAAa;MAC5CqE,QAAQ,CAAChB,YAAY,GAAG,IAAI;IAC7B,CAAC;IACOmB,sBAAsB,WAAAA,uBAACC,SAAkB,EAAE;MAClD,MAAMC,gBAAgB,GAAGD,SAAS,CAAC3C,MAAM,CAAEgB,KAAK,IAAK,CAACA,KAAK,CAACO,YAAY,CAAC;MACzEqB,gBAAgB,CAACzC,OAAO,CAAEa,KAAY,IAAK;QAC1C,IAAI,CAACsB,eAAe,CAACtB,KAAK,CAAC;MAC5B,CAAC,CAAC;IACH,CAAC;IACYqB,WAAW,WAAAQ,aAACF,SAAkB,EAAEG,sBAA+B,GAAG,KAAK;MAAA,IAAE;QAAA,MAAAC,MAAA,GAInE,IAAI;QAAA,SAAAC,OAAA;UAkBtB;UACA,IAAIL,SAAS,CAACM,MAAM,EAAE;YACrBF,MAAA,CAAKL,sBAAsB,CAACC,SAAS,CAAC;UACvC;UACA,OAAOA,SAAS;QAAC;QAzBjBA,SAAS,CAACxC,OAAO,CAAEa,KAAY,IAAK;UACnCA,KAAK,CAACkC,QAAQ,GAAG,IAAI;UACrB,IAAI,CAAClC,KAAK,CAACZ,OAAO,EAAE;YACnBY,KAAK,CAACZ,OAAO,GAAG2C,MAAA,CAAK/D,UAAU,CAACmE,YAAY,CAAC,CAAC;UAC/C,CAAC,MAAM;YACNJ,MAAA,CAAK/D,UAAU,CAACoE,QAAQ,CAACpC,KAAK,CAACZ,OAAiB,CAAC;UAClD;QACD,CAAC,CAAC;;QAEF;QAAA,MAAAiD,MAAA;UAAA,IACIP,sBAAsB;YAAA,SAAAQ,OAAA;cAAA,OAAA9D,OAAA,CAAAC,OAAA,CAIHsD,MAAA,CAAKQ,aAAa,CAACC,IAAI,CAAC,CAAC,EAAA7D,IAAA,WAA3C8D,SAAS;gBACb,IAAI,CAACA,SAAS,EAAEA,SAAS,GAAG;kBAAEC,cAAc,EAAE;gBAAG,CAAC;gBAClDD,SAAS,CAACC,cAAc,GAAGf,SAAS;gBAAC,OAAAnD,OAAA,CAAAC,OAAA,CAC/BsD,MAAA,CAAKQ,aAAa,CAACI,KAAK,CAACF,SAAS,CAAC,EAAA9D,IAAA;kBACzCoD,MAAA,CAAK9D,SAAS,CAAC2E,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;gBAAC;cAAA;YAAA;YAAA,MAAAC,KAAA;cAAA,IAPjD,CAACd,MAAA,CAAKQ,aAAa;gBAAA,OAAA/D,OAAA,CAAAC,OAAA,CACKsD,MAAA,CAAK5D,mBAAmB,CAAC,CAAC,EAAAQ,IAAA,WAAAmE,qBAAA;kBAArDf,MAAA,CAAKQ,aAAa,GAAAO,qBAAmC;gBAAC;cAAA;YAAA;YAAA,OAAAD,KAAA,IAAAA,KAAA,CAAAlE,IAAA,GAAAkE,KAAA,CAAAlE,IAAA,CAAA2D,MAAA,IAAAA,MAAA,CAAAO,KAAA;UAAA;QAAA;QAAA,OAAArE,OAAA,CAAAC,OAAA,CAAA4D,MAAA,IAAAA,MAAA,CAAA1D,IAAA,GAAA0D,MAAA,CAAA1D,IAAA,CAAAqD,MAAA,IAAAA,MAAA,CAAAK,MAAA;MAczD,CAAC,QAAA/C,CAAA;QAAA,OAAAd,OAAA,CAAAe,MAAA,CAAAD,CAAA;MAAA;IAAA;IACMyD,gBAAgB,WAAAC,kBAACC,YAAqB,GAAG,KAAK,EAAE;MACtD;MACA,MAAMC,aAAa,GAAGC,kBAAkB,CAAC9G,MAAM,CAAC+G,IAAI,CAAC,sBAAsB,CAAC,CAAC;MAC7E,IAAI,CAACF,aAAa,EAAE;QACnB,OAAO1E,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC;MAC3B;MACA,IAAI,IAAI,CAACkD,SAAS,IAAI,CAACsB,YAAY,EAAE;QACpC,OAAOzE,OAAO,CAACC,OAAO,CAAC,IAAI,CAACkD,SAAS,CAAC;MACvC;MACA,IAAI,IAAI,CAAC0B,mBAAmB,KAAKC,SAAS,IAAIL,YAAY,EAAE;QAC3D,IAAI,CAACI,mBAAmB,GAAG,IAAI,CAACxB,YAAY,CAAC,CAAC;MAC/C;MACA,OAAO,IAAI,CAACwB,mBAAmB;IAChC,CAAC;IAEaxB,YAAY,WAAA0B,cAAA;MAAA,IAAG;QAAA,MAAAC,MAAA,GAC5B,IAAI;QAAA,OAAAhF,OAAA,CAAAC,OAAA,CAAuB+E,MAAA,CAAKrF,mBAAmB,CAAC,CAAC,EAAAQ,IAAA,WAAA8E,qBAAA;UAArDD,MAAA,CAAKjB,aAAa,GAAAkB,qBAAmC;UAAC,OAAAjF,OAAA,CAAAC,OAAA,CAC9B+E,MAAA,CAAKjB,aAAa,CAACC,IAAI,CAAC,CAAC,EAAA7D,IAAA,WAA3C8D,SAAS;YACf,MAAMtB,cAAmC,GAAGsB,SAAS,EAAEC,cAAc;YAAC,OAAAlE,OAAA,CAAAC,OAAA,CACxC+E,MAAA,CAAKhE,sBAAsB,CAAC,IAAI,CAAC,EAAAb,IAAA,WAAzDuC,eAAe;cAAA,SAAAwC,OAAA;gBA2BrB,OAAOF,MAAA,CAAK7B,SAAS;cAAC;cAAA,MAAAgC,MAAA;gBAAA,IAzBlB,CAACxC,cAAc;kBAAA,OAAA3C,OAAA,CAAAC,OAAA,CACK+E,MAAA,CAAKvC,gBAAgB,CAACC,eAAe,CAAC,EAAAvC,IAAA,WAAAiF,qBAAA;oBAA7DJ,MAAA,CAAK7B,SAAS,GAAAiC,qBAA+C;kBAAC;gBAAA;kBAE9D,IAAIC,MAAe,GAAG,EAAE;oBACvB3D,aAAa;kBACdiB,cAAc,EAAEhC,OAAO,CAAEa,KAAY,IAAK;oBACzCE,aAAa,GAAGgB,eAAe,CAACjB,IAAI,CAAC,UAAU6D,cAAc,EAAE;sBAC9D,OAAOA,cAAc,CAACtD,MAAM,KAAKR,KAAK,CAACQ,MAAM;oBAC9C,CAAC,CAAC;oBACF,IAAIN,aAAa,EAAE;sBAClBA,aAAa,CAACd,OAAO,GAAGY,KAAK,CAACZ,OAAO;sBACrCyE,MAAM,CAAC1D,IAAI,CAACD,aAAa,CAAC;oBAC3B;kBACD,CAAC,CAAC;kBACF;kBACA2D,MAAM,GAAGA,MAAM,CAACzC,KAAK,CAAC,CAAC,EAAE/D,oBAAoB,CAAC;kBAAC,MAAA0G,MAAA;oBAAA,IAC3CF,MAAM,CAAC5B,MAAM,IAAI,CAACd,cAAc,EAAEc,MAAM;sBAAA,OAAAzD,OAAA,CAAAC,OAAA,CACpB+E,MAAA,CAAKnC,WAAW,CAACwC,MAAM,EAAE3H,SAAS,CAAC2H,MAAM,EAAE1C,cAAc,CAAC,CAAC,EAAAxC,IAAA,WAAAqF,kBAAA;wBAAlFR,MAAA,CAAK7B,SAAS,GAAAqC,kBAAoE;sBAAC;oBAAA;sBAAA,MAAAC,MAAA;wBAAA,IACzE,CAACJ,MAAM,CAAC5B,MAAM,IAAId,cAAc,CAACc,MAAM;0BACjD;0BACAQ,SAAS,CAACC,cAAc,GAAG,EAAE;0BAAC,OAAAlE,OAAA,CAAAC,OAAA,CACxB+E,MAAA,CAAKjB,aAAa,CAACI,KAAK,CAACF,SAAS,CAAC,EAAA9D,IAAA;4BAAA,OAAAH,OAAA,CAAAC,OAAA,CAClB+E,MAAA,CAAKvC,gBAAgB,CAACC,eAAe,CAAC,EAAAvC,IAAA,WAAAuF,sBAAA;8BAA7DV,MAAA,CAAK7B,SAAS,GAAAuC,sBAA+C;4BAAC;0BAAA;wBAAA;sBAAA;sBAAA,IAAAD,MAAA,IAAAA,MAAA,CAAAtF,IAAA,SAAAsF,MAAA,CAAAtF,IAAA;oBAAA;kBAAA;kBAAA,IAAAoF,MAAA,IAAAA,MAAA,CAAApF,IAAA,SAAAoF,MAAA,CAAApF,IAAA;gBAAA;cAAA;cAvBhE;cAAA,OAAAgF,MAAA,IAAAA,MAAA,CAAAhF,IAAA,GAAAgF,MAAA,CAAAhF,IAAA,CAAA+E,MAAA,IAAAA,MAAA,CAAAC,MAAA;YAAA;UAAA;QAAA;MA2BD,CAAC,QAAArE,CAAA;QAAA,OAAAd,OAAA,CAAAe,MAAA,CAAAD,CAAA;MAAA;IAAA;IAEY6E,0BAA0B,WAAAC,4BAACC,gBAA8C;MAAA,IAAE;QAAA,MAAAC,MAAA,GAKlF,IAAI;QAAA,SAAAC,OAAA;UAAA,OAAA/F,OAAA,CAAAC,OAAA,CAIe6F,MAAA,CAAKlG,uBAAuB,CAAC,CAAC,EAAAO,IAAA,WAAhD6F,SAAS;YAEfH,gBAAgB,CAAClF,OAAO,CAAEsF,eAAe,IAAK;cAC7C,MAAMC,qBAAqB,GAAG,CAAC,CAACD,eAAe,CAACjE,MAAM;cACtD;cACA,MAAMmE,QAAQ,GAAGH,SAAS,EAAEvE,IAAI,CAAE2E,KAAK,IAAKA,KAAK,CAAC1F,EAAE,KAAKuF,eAAe,CAAChE,OAAO,CAAC;cACjF,MAAMoE,OAAO,GAAGF,QAAQ,EAAE5E,QAAQ,CAACE,IAAI,CAAE6E,IAAI,IAAKA,IAAI,CAAC5F,EAAE,KAAKuF,eAAe,CAACjE,MAAM,CAAC;cACrF;cACA,MAAMR,KAAK,GAAGsE,MAAA,CAAK3C,SAAS,CAAC1B,IAAI,CAAED,KAAK,IAAKA,KAAK,CAACQ,MAAM,KAAKiE,eAAe,CAACjE,MAAM,CAAC;cACrF;cACA,MAAMuE,gBAAgB,GAAGT,MAAA,CAAK1E,OAAO,EAAEK,IAAI,CAAE6E,IAAI,IAAKA,IAAI,CAACtE,MAAM,KAAKiE,eAAe,CAACjE,MAAM,CAAC;cAC7F;cACA,IAAI,CAACkE,qBAAqB,IAAIC,QAAQ,EAAE;gBACvC,MAAMK,QAAQ,GAAG7H,kBAAkB,CAACsH,eAAe,CAACrF,OAAiB,CAAC;gBACtEuF,QAAQ,CAACvF,OAAO,GAAG4F,QAAQ;gBAC3BL,QAAQ,CAACtF,oBAAoB,GAAGoF,eAAe,CAACpF,oBAAoB;gBACpEsF,QAAQ,CAACM,sBAAsB,GAAG,IAAI;;gBAEtC;gBACAN,QAAQ,CAAC5E,QAAQ,CAACZ,OAAO,CAAEa,KAAK,IAAK;kBACpC,MAAMkF,UAAU,GAAGZ,MAAA,CAAK3C,SAAS,CAAC1B,IAAI,CAAEkF,OAAO,IAAKA,OAAO,CAAC3E,MAAM,KAAKR,KAAK,CAACd,EAAE,CAAC;kBAChF,IAAIgG,UAAU,EAAE;oBACf,MAAME,cAAc,GAAGF,UAAU,CAACR,qBAAqB,GAAGQ,UAAU,CAACG,QAAQ,GAAGpI,gBAAgB,CAAC,CAAC;oBAClGiI,UAAU,CAAC9F,OAAO,GAAGuF,QAAQ,CAACtF,oBAAoB,GAAGoF,eAAe,CAACrF,OAAO,GAAGgG,cAAc;oBAC7FpF,KAAK,CAACZ,OAAO,GAAG8F,UAAU,CAAC9F,OAAO;kBACnC,CAAC,MAAM;oBACN;AACN;AACA;AACA;AACA;oBACMY,KAAK,CAACZ,OAAO,GAAGuF,QAAQ,CAACtF,oBAAoB,GAAGoF,eAAe,CAACrF,OAAO,GAAGnC,gBAAgB,CAAC,CAAC;oBAC5FqH,MAAA,CAAK1E,OAAO,CAACT,OAAO,CAAE2F,IAAI,IAAK;sBAC9B,IAAIA,IAAI,CAACrE,OAAO,KAAKkE,QAAQ,CAACzF,EAAE,EAAE;wBACjC4F,IAAI,CAAC1F,OAAO,GAAGY,KAAK,CAACZ,OAAO;sBAC7B;oBACD,CAAC,CAAC;kBACH;gBACD,CAAC,CAAC;cACH,CAAC,MAAM,IAAIyF,OAAO,EAAE;gBACnB;gBACA,MAAMS,mBAAmB,GAAGX,QAAQ,EAAEtF,oBAAoB,GACtD;kBAAE,GAAGsF,QAAQ,CAACvF;gBAAQ,CAAC,GACxBjC,kBAAkB,CAACsH,eAAe,CAACrF,OAAiB,CAAC;gBACxD;gBACA,IAAIY,KAAK,EAAE;kBACVA,KAAK,CAAC0E,qBAAqB,GAAG,IAAI;kBAClC1E,KAAK,CAACZ,OAAO,GAAGkG,mBAAmB;kBACnCtF,KAAK,CAACqF,QAAQ,GAAGlI,kBAAkB,CAACsH,eAAe,CAACrF,OAAiB,CAAC;gBACvE;gBACA;gBACAyF,OAAO,CAACH,qBAAqB,GAAG,IAAI;gBACpCG,OAAO,CAACzF,OAAO,GAAGkG,mBAAmB;gBACrCT,OAAO,CAACQ,QAAQ,GAAGlI,kBAAkB,CAACsH,eAAe,CAACrF,OAAiB,CAAC;gBACxE;gBACA,IAAI2F,gBAAgB,EAAE;kBACrBA,gBAAgB,CAACL,qBAAqB,GAAG,IAAI;kBAC7CK,gBAAgB,CAAC3F,OAAO,GAAGkG,mBAAmB;kBAC9CP,gBAAgB,CAACM,QAAQ,GAAGlI,kBAAkB,CAACsH,eAAe,CAACrF,OAAiB,CAAC;gBAClF;cACD;YACD,CAAC,CAAC;YAEFkF,MAAA,CAAKrG,SAAS,CAAC2E,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;UAAC;QAAA;QAvErD,IAAI,CAACyB,gBAAgB,EAAEpC,MAAM,EAAE;UAC9B,OAAAzD,OAAA,CAAAC,OAAA;QACD;QAAC,MAAA8G,MAAA;UAAA,IAEG,CAACjB,MAAA,CAAK3C,SAAS;YAAA,OAAAnD,OAAA,CAAAC,OAAA,CACZ6F,MAAA,CAAKvB,gBAAgB,CAAC,CAAC,EAAApE,IAAA;UAAA;QAAA;QAAA,OAAAH,OAAA,CAAAC,OAAA,CAAA8G,MAAA,IAAAA,MAAA,CAAA5G,IAAA,GAAA4G,MAAA,CAAA5G,IAAA,CAAA4F,MAAA,IAAAA,MAAA,CAAAgB,MAAA;MAmE/B,CAAC,QAAAjG,CAAA;QAAA,OAAAd,OAAA,CAAAe,MAAA,CAAAD,CAAA;MAAA;IAAA;IAEYkG,yBAAyB,WAAAC,2BAACpB,gBAA8C;MAAA,IAAE;QAAA,MAAAqB,MAAA,GAKjF,IAAI;QAAA,SAAAC,QAAA;UAAA,OAAAnH,OAAA,CAAAC,OAAA,CAGeiH,MAAA,CAAKtH,uBAAuB,CAAC,CAAC,EAAAO,IAAA,WAAhD6F,SAAS;YAEfH,gBAAgB,CAAClF,OAAO,CAAEsF,eAAe,IAAK;cAC7C,MAAMC,qBAAqB,GAAG,CAAC,CAACD,eAAe,CAACjE,MAAM;cACtD,MAAMmE,QAAQ,GAAGH,SAAS,EAAEvE,IAAI,CAAE2E,KAAK,IAAKA,KAAK,CAAC1F,EAAE,KAAKuF,eAAe,CAAChE,OAAO,CAAC;;cAEjF;cACA,IAAI,CAACiE,qBAAqB,EAAE;gBAC3B,IAAIC,QAAQ,EAAE;kBACbA,QAAQ,CAACrE,IAAI,GAAGmE,eAAe,CAACnE,IAAI;kBACpCqE,QAAQ,CAACiB,0BAA0B,GAAG,IAAI;;kBAE1C;kBACAjB,QAAQ,CAAC5E,QAAQ,CAACZ,OAAO,CAAEa,KAAK,IAAK;oBACpC,IAAI,CAACA,KAAK,CAAC6F,yBAAyB,EAAE;sBACrC,MAAMX,UAAU,GAAGQ,MAAA,CAAK/D,SAAS,CAAC1B,IAAI,CAAEkF,OAAO,IAAKA,OAAO,CAAC3E,MAAM,KAAKR,KAAK,CAACd,EAAE,CAAC;sBAChF,IAAIgG,UAAU,EAAE;wBACfA,UAAU,CAAC5E,IAAI,GAAGqE,QAAQ,CAACrE,IAAI,IAAIpD,aAAa;wBAChD8C,KAAK,CAACM,IAAI,GAAGqE,QAAQ,CAACrE,IAAI,IAAIpD,aAAa;sBAC5C;oBACD;kBACD,CAAC,CAAC;gBACH;cACD,CAAC,MAAM;gBACN;gBACA,MAAM2H,OAAO,GAAGF,QAAQ,EAAE5E,QAAQ,CAACE,IAAI,CAAE6E,IAAI,IAAKA,IAAI,CAAC5F,EAAE,KAAKuF,eAAe,CAACjE,MAAM,CAAC;gBACrF,MAAMR,KAAK,GAAG0F,MAAA,CAAK/D,SAAS,CAAC1B,IAAI,CAAED,KAAK,IAAKA,KAAK,CAACQ,MAAM,KAAKiE,eAAe,CAACjE,MAAM,CAAC;gBACrF,IAAIqE,OAAO,IAAI7E,KAAK,EAAE;kBACrBA,KAAK,CAAC6F,yBAAyB,GAAG,IAAI;kBACtChB,OAAO,CAACgB,yBAAyB,GAAG,IAAI;kBACxC7F,KAAK,CAACM,IAAI,GAAGmE,eAAe,CAACnE,IAAI;kBACjCuE,OAAO,CAACvE,IAAI,GAAGmE,eAAe,CAACnE,IAAI;kBACnCN,KAAK,CAAC8F,OAAO,GAAGrB,eAAe,CAACqB,OAAO;kBACvCjB,OAAO,CAACiB,OAAO,GAAGrB,eAAe,CAACqB,OAAO;gBAC1C;cACD;YACD,CAAC,CAAC;YACFJ,MAAA,CAAKzH,SAAS,CAAC2E,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;UAAC;QAAA;QA5CrD,IAAI,CAACyB,gBAAgB,EAAEpC,MAAM,EAAE;UAC9B,OAAAzD,OAAA,CAAAC,OAAA;QACD;QAAC,MAAAsH,MAAA;UAAA,IAEG,CAACL,MAAA,CAAK/D,SAAS;YAAA,OAAAnD,OAAA,CAAAC,OAAA,CACZiH,MAAA,CAAK7D,YAAY,CAAC,CAAC,EAAAlD,IAAA;UAAA;QAAA;QAAA,OAAAH,OAAA,CAAAC,OAAA,CAAAsH,MAAA,IAAAA,MAAA,CAAApH,IAAA,GAAAoH,MAAA,CAAApH,IAAA,CAAAgH,OAAA,IAAAA,OAAA,CAAAI,MAAA;MAwC3B,CAAC,QAAAzG,CAAA;QAAA,OAAAd,OAAA,CAAAe,MAAA,CAAAD,CAAA;MAAA;IAAA;EAAA;EA5SmB7B,WAAW,CASxBuI,eAAe,GAAmC,CAAC,CAAC;EATvCvI,WAAW,CAkBxBS,WAAW,YAAXA,WAAWA,CAACL,eAAuB,EAAEC,eAA0B,EAAE;IACvE,IAAIL,WAAW,CAACuI,eAAe,CAACnI,eAAe,CAAC,EAAE;MACjD,OAAOJ,WAAW,CAACuI,eAAe,CAACnI,eAAe,CAAC;IACpD;IACA,MAAMoI,mBAAmB,GAAG,IAAIxI,WAAW,CAACI,eAAe,EAAEC,eAAe,CAAC;IAC7EL,WAAW,CAACuI,eAAe,CAACnI,eAAe,CAAC,GAAGoI,mBAAmB;IAClE,OAAOA,mBAAmB;EAC3B,CAAC;EAAA,OAzBmBxI,WAAW;AAAA","ignoreList":[]}
|