@sapui5/sap.cux.home 1.142.1 → 1.142.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/cux/home/.library +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +1 -1
- package/src/sap/cux/home/App.d.ts.map +1 -1
- package/src/sap/cux/home/App.gen.d.ts +1 -1
- package/src/sap/cux/home/App.js +6 -3
- package/src/sap/cux/home/App.js.map +1 -1
- package/src/sap/cux/home/App.ts +6 -3
- package/src/sap/cux/home/AppsAdditionPanel.js +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.ts +1 -1
- package/src/sap/cux/home/AppsContainer.gen.d.ts +1 -1
- package/src/sap/cux/home/AppsContainer.js +1 -1
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +1 -1
- package/src/sap/cux/home/BaseApp.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseApp.js +1 -1
- package/src/sap/cux/home/BaseApp.js.map +1 -1
- package/src/sap/cux/home/BaseApp.ts +1 -1
- package/src/sap/cux/home/BaseAppPanel.d.ts +9 -0
- package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseAppPanel.js +15 -1
- package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.ts +17 -1
- package/src/sap/cux/home/BaseAppPersPanel.d.ts +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.js +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.ts +1 -1
- package/src/sap/cux/home/BaseContainer.d.ts +1 -1
- package/src/sap/cux/home/BaseContainer.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseContainer.js +1 -1
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.js +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/BaseLayout.d.ts +1 -1
- package/src/sap/cux/home/BaseLayout.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseLayout.js +1 -1
- package/src/sap/cux/home/BaseLayout.js.map +1 -1
- package/src/sap/cux/home/BaseLayout.ts +1 -1
- package/src/sap/cux/home/BaseLayoutRenderer.js +1 -1
- package/src/sap/cux/home/BaseLayoutRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseLayoutRenderer.ts +1 -1
- package/src/sap/cux/home/BaseNewsItem.d.ts +1 -1
- package/src/sap/cux/home/BaseNewsItem.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseNewsItem.js +1 -1
- package/src/sap/cux/home/BaseNewsItem.js.map +1 -1
- package/src/sap/cux/home/BaseNewsItem.ts +1 -1
- package/src/sap/cux/home/BaseNewsPanel.gen.d.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 +1 -1
- package/src/sap/cux/home/BasePagePanel.d.ts +1 -1
- package/src/sap/cux/home/BasePagePanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BasePagePanel.js +1 -1
- package/src/sap/cux/home/BasePagePanel.js.map +1 -1
- package/src/sap/cux/home/BasePagePanel.ts +1 -1
- package/src/sap/cux/home/BasePanel.d.ts +1 -1
- package/src/sap/cux/home/BasePanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BasePanel.js +1 -1
- package/src/sap/cux/home/BasePanel.js.map +1 -1
- package/src/sap/cux/home/BasePanel.ts +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.d.ts +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.js +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.ts +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.d.ts +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.js +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.ts +1 -1
- package/src/sap/cux/home/CardsContainer.d.ts +1 -1
- package/src/sap/cux/home/CardsContainer.js +1 -1
- package/src/sap/cux/home/CardsContainer.js.map +1 -1
- package/src/sap/cux/home/CardsContainer.ts +1 -1
- package/src/sap/cux/home/CardsPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/CardsPanel.js +1 -1
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.d.ts +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.js +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.ts +1 -1
- package/src/sap/cux/home/CustomFlexBox.gen.d.ts +1 -1
- package/src/sap/cux/home/ErrorPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/ErrorPanel.js +1 -1
- package/src/sap/cux/home/ErrorPanel.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.ts +1 -1
- package/src/sap/cux/home/FavAppPanel.js +1 -1
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +1 -1
- package/src/sap/cux/home/FrequentAppPanel.js +1 -1
- package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.ts +1 -1
- package/src/sap/cux/home/Group.d.ts +1 -1
- package/src/sap/cux/home/Group.gen.d.ts +1 -1
- package/src/sap/cux/home/Group.js +1 -1
- package/src/sap/cux/home/Group.js.map +1 -1
- package/src/sap/cux/home/Group.ts +1 -1
- package/src/sap/cux/home/IToDoPanel.d.ts +1 -1
- package/src/sap/cux/home/IToDoPanel.js +1 -1
- package/src/sap/cux/home/IToDoPanel.js.map +1 -1
- package/src/sap/cux/home/IToDoPanel.ts +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts +0 -7
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.js +1 -13
- package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.ts +1 -14
- package/src/sap/cux/home/InsightsCardsSettingsPanel.js +1 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.js +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.d.ts +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.js +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.js.map +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.ts +1 -1
- package/src/sap/cux/home/Layout.d.ts +1 -1
- package/src/sap/cux/home/Layout.js +1 -1
- package/src/sap/cux/home/Layout.js.map +1 -1
- package/src/sap/cux/home/Layout.ts +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.js +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.ts +1 -1
- package/src/sap/cux/home/MenuItem.d.ts +1 -1
- package/src/sap/cux/home/MenuItem.gen.d.ts +1 -1
- package/src/sap/cux/home/MenuItem.js +1 -1
- package/src/sap/cux/home/MenuItem.js.map +1 -1
- package/src/sap/cux/home/MenuItem.ts +1 -1
- package/src/sap/cux/home/NewsContainer.gen.d.ts +1 -1
- package/src/sap/cux/home/NewsContainer.js +1 -1
- package/src/sap/cux/home/NewsContainer.js.map +1 -1
- package/src/sap/cux/home/NewsContainer.ts +1 -1
- package/src/sap/cux/home/NewsGroup.gen.d.ts +1 -1
- package/src/sap/cux/home/NewsGroup.js +1 -1
- package/src/sap/cux/home/NewsGroup.js.map +1 -1
- package/src/sap/cux/home/NewsGroup.ts +1 -1
- package/src/sap/cux/home/NewsItem.gen.d.ts +1 -1
- package/src/sap/cux/home/NewsItem.js +1 -1
- package/src/sap/cux/home/NewsItem.js.map +1 -1
- package/src/sap/cux/home/NewsItem.ts +1 -1
- package/src/sap/cux/home/NewsPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/NewsPanel.js +1 -1
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.js +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.ts +1 -1
- package/src/sap/cux/home/NoDataContainer.js +1 -1
- package/src/sap/cux/home/NoDataContainer.js.map +1 -1
- package/src/sap/cux/home/NoDataContainer.ts +1 -1
- package/src/sap/cux/home/Page.d.ts +1 -1
- package/src/sap/cux/home/Page.gen.d.ts +1 -1
- package/src/sap/cux/home/Page.js +1 -1
- package/src/sap/cux/home/Page.js.map +1 -1
- package/src/sap/cux/home/Page.ts +1 -1
- package/src/sap/cux/home/PagePanel.js +1 -1
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +1 -1
- package/src/sap/cux/home/PageSettingsPanel.js +1 -1
- package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.ts +1 -1
- package/src/sap/cux/home/PagesContainer.gen.d.ts +1 -1
- package/src/sap/cux/home/PagesContainer.js +1 -1
- package/src/sap/cux/home/PagesContainer.js.map +1 -1
- package/src/sap/cux/home/PagesContainer.ts +1 -1
- package/src/sap/cux/home/RecentAppPanel.d.ts +18 -0
- package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.js +30 -1
- package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.ts +33 -2
- package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.js +6 -5
- package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.ts +5 -4
- package/src/sap/cux/home/SettingsDialog.d.ts +8 -1
- package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/SettingsDialog.js +185 -15
- package/src/sap/cux/home/SettingsDialog.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.ts +15 -5
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.gen.d.ts +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.ts +1 -1
- package/src/sap/cux/home/SituationPanel.js +1 -1
- package/src/sap/cux/home/SituationPanel.js.map +1 -1
- package/src/sap/cux/home/SituationPanel.ts +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.gen.d.ts +1 -1
- 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/SpacePanel.gen.d.ts +1 -1
- package/src/sap/cux/home/SpacePanel.js +1 -1
- package/src/sap/cux/home/SpacePanel.js.map +1 -1
- package/src/sap/cux/home/SpacePanel.ts +1 -1
- package/src/sap/cux/home/TaskPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/TaskPanel.js +1 -1
- package/src/sap/cux/home/TaskPanel.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.ts +1 -1
- package/src/sap/cux/home/TilesContainer.d.ts +1 -1
- package/src/sap/cux/home/TilesContainer.js +1 -1
- package/src/sap/cux/home/TilesContainer.js.map +1 -1
- package/src/sap/cux/home/TilesContainer.ts +1 -1
- package/src/sap/cux/home/TilesPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/TilesPanel.js +1 -1
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +1 -1
- package/src/sap/cux/home/ToDoPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/ToDoPanel.js +1 -1
- package/src/sap/cux/home/ToDoPanel.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.ts +1 -1
- package/src/sap/cux/home/ToDosContainer.js +1 -1
- package/src/sap/cux/home/ToDosContainer.js.map +1 -1
- package/src/sap/cux/home/ToDosContainer.ts +1 -1
- package/src/sap/cux/home/changeHandler/LayoutHandler.js +1 -1
- package/src/sap/cux/home/changeHandler/LayoutHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/LayoutHandler.ts +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +1 -1
- package/src/sap/cux/home/designtime/Layout.designtime.js +1 -1
- package/src/sap/cux/home/designtime/Layout.designtime.js.map +1 -1
- package/src/sap/cux/home/designtime/Layout.designtime.ts +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.js +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.ts +1 -1
- package/src/sap/cux/home/i18n/messagebundle.properties +1 -1
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +4 -4
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +5 -9
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +10 -14
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_da.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_de.properties +7 -11
- package/src/sap/cux/home/i18n/messagebundle_el.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_en.properties +5 -9
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +1 -5
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +1 -5
- package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_es.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_et.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_id.properties +18 -22
- package/src/sap/cux/home/i18n/messagebundle_it.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_no.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +5 -9
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +10 -14
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +5 -9
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +10 -14
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_th.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +6 -10
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +4 -8
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +4 -8
- package/src/sap/cux/home/interface/AppsInterface.d.ts +1 -1
- package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.ts +1 -1
- package/src/sap/cux/home/interface/CardsInterface.d.ts +1 -7
- package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.js +1 -1
- package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.ts +1 -7
- package/src/sap/cux/home/interface/KeyUserInterface.d.ts +1 -1
- package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
- package/src/sap/cux/home/interface/KeyUserInterface.ts +1 -1
- package/src/sap/cux/home/interface/LayoutInterface.d.ts +1 -1
- package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
- package/src/sap/cux/home/interface/LayoutInterface.ts +1 -1
- package/src/sap/cux/home/interface/PageSpaceInterface.d.ts +1 -1
- package/src/sap/cux/home/interface/PageSpaceInterface.js.map +1 -1
- package/src/sap/cux/home/interface/PageSpaceInterface.ts +1 -1
- package/src/sap/cux/home/library.js +1 -1
- package/src/sap/cux/home/library.js.map +1 -1
- package/src/sap/cux/home/library.ts +1 -1
- package/src/sap/cux/home/utils/Accessibility.d.ts +1 -1
- package/src/sap/cux/home/utils/Accessibility.js +1 -1
- package/src/sap/cux/home/utils/Accessibility.js.map +1 -1
- package/src/sap/cux/home/utils/Accessibility.ts +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.d.ts +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js.map +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.ts +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 +1 -1
- package/src/sap/cux/home/utils/BatchHelper.d.ts +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 +1 -1
- package/src/sap/cux/home/utils/ColorUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/ColorUtils.js +1 -1
- package/src/sap/cux/home/utils/ColorUtils.js.map +1 -1
- package/src/sap/cux/home/utils/ColorUtils.ts +1 -1
- package/src/sap/cux/home/utils/CommonUtils.js +1 -1
- package/src/sap/cux/home/utils/CommonUtils.js.map +1 -1
- package/src/sap/cux/home/utils/CommonUtils.ts +1 -1
- package/src/sap/cux/home/utils/Constants.js +1 -1
- package/src/sap/cux/home/utils/Constants.js.map +1 -1
- package/src/sap/cux/home/utils/Constants.ts +1 -1
- package/src/sap/cux/home/utils/DataFormatUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/DataFormatUtils.js +1 -1
- package/src/sap/cux/home/utils/DataFormatUtils.js.map +1 -1
- package/src/sap/cux/home/utils/DataFormatUtils.ts +1 -1
- package/src/sap/cux/home/utils/DecisionDialog.js +1 -1
- package/src/sap/cux/home/utils/DecisionDialog.js.map +1 -1
- package/src/sap/cux/home/utils/DecisionDialog.ts +1 -1
- package/src/sap/cux/home/utils/Device.js +1 -1
- package/src/sap/cux/home/utils/Device.js.map +1 -1
- package/src/sap/cux/home/utils/Device.ts +1 -1
- package/src/sap/cux/home/utils/DragDropUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/DragDropUtils.js +1 -1
- package/src/sap/cux/home/utils/DragDropUtils.js.map +1 -1
- package/src/sap/cux/home/utils/DragDropUtils.ts +1 -1
- package/src/sap/cux/home/utils/FESRUtil.d.ts +1 -1
- package/src/sap/cux/home/utils/FESRUtil.js +1 -1
- package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.ts +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.js +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.js.map +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.ts +1 -1
- package/src/sap/cux/home/utils/HttpHelper.js +1 -1
- package/src/sap/cux/home/utils/HttpHelper.js.map +1 -1
- package/src/sap/cux/home/utils/HttpHelper.ts +1 -1
- package/src/sap/cux/home/utils/IconList.d.ts +1 -1
- package/src/sap/cux/home/utils/IconList.js +1 -1
- package/src/sap/cux/home/utils/IconList.js.map +1 -1
- package/src/sap/cux/home/utils/IconList.ts +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.js +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.js.map +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.ts +1 -1
- package/src/sap/cux/home/utils/PXFeedback.js +1 -1
- package/src/sap/cux/home/utils/PXFeedback.js.map +1 -1
- package/src/sap/cux/home/utils/PXFeedback.ts +1 -1
- package/src/sap/cux/home/utils/PageManager.js +1 -1
- package/src/sap/cux/home/utils/PageManager.js.map +1 -1
- package/src/sap/cux/home/utils/PageManager.ts +1 -1
- package/src/sap/cux/home/utils/PagesIconsConstants.d.ts +1 -1
- package/src/sap/cux/home/utils/PagesIconsConstants.js +1 -1
- package/src/sap/cux/home/utils/PagesIconsConstants.js.map +1 -1
- package/src/sap/cux/home/utils/PagesIconsConstants.ts +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.js +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.ts +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.js +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.js.map +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.ts +1 -1
- package/src/sap/cux/home/utils/RecommendedCardUtil.js +1 -1
- package/src/sap/cux/home/utils/RecommendedCardUtil.js.map +1 -1
- package/src/sap/cux/home/utils/RecommendedCardUtil.ts +1 -1
- package/src/sap/cux/home/utils/SituationUtils.js +1 -1
- package/src/sap/cux/home/utils/SituationUtils.js.map +1 -1
- package/src/sap/cux/home/utils/SituationUtils.ts +1 -1
- package/src/sap/cux/home/utils/TaskUtils.js +1 -1
- package/src/sap/cux/home/utils/TaskUtils.js.map +1 -1
- package/src/sap/cux/home/utils/TaskUtils.ts +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.d.ts +1 -1
- 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/extension/CardExtension.js +1 -1
- package/src/sap/cux/home/utils/extension/CardExtension.js.map +1 -1
- package/src/sap/cux/home/utils/extension/CardExtension.ts +1 -1
- package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +1 -1
- package/src/sap/cux/home/utils/fragment/showDecisionDialog.fragment.xml +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.d.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js.map +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js +1 -1
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -1
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +1 -1
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -1
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js +1 -1
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -1
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +1 -1
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -1
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.d.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js +1 -1
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js.map +1 -1
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendedCardUtil.js","names":["sap","ui","define","Formatting","Log","encodeURL","formatMessage","deepExtend","BaseObject","CoreLib","___interface_CardsInterface","___Constants","___DataFormatUtils","UIAnnotations","TABLE_TYPES","sortCollectionByImportance","COLUMN_LENGTH","ValueState","FieldAnnotationsType","FieldTypes","RecommendedCardUtil","getInstance","Instance","getLineItemDetails","metaModel","originalManifest","leadingEntitySet","leadingEntitySetDetails","getODataEntitySet","variantInfo","getLineItemFromVariant","entityType","lineItemDefault","lineItem","pages","lrSettings","getSettingsForPage","quickVariantSelectionX","createDefaultLineItemDetails","oVariants","variants","firstAvailableKey","sEntitySet","oVariant","findFirstNonSmartChartVariant","isSmartChart","requestAtLeastFields","defaultTableSettings","getNormalizedTableSettings","entitySet","quickVariantInfo","annotationPath","split","presentationVariant","RequestAtLeast","length","_getRequestAtLeastFields","tableSettings","validateResponsiveTable","isResponsiveTable","undefined","lineItemDetail","quickVariant","headerInfo","sKey","Object","prototype","hasOwnProperty","call","oEntitySet","checkIfSmartChart","isResponsive","type","RESPONSIVE","error","oMetaModel","qualifier","oSelectionPresentationVariant","getAnnotation","UISelectionPresentationVariant","oPresentationVariant","PresentationVariant","getPresentationVariant","UIPresentationVariant","oDetails","getLineItem","UILineItem","qualifierPath","annotation","qualifierName","fullAnnotation","entityTypeData","getODataEntityType","selectionPresentationVariant","Path","getObject","presentationVariantData","visualizationData","Visualizations","find","oVis","AnnotationPath","includes","sQualifier","_getRelevantColumnPaths","columns","Array","isArray","selectSet","Set","expandSet","forEach","oColumnData","sPath","sAdditionalPath","sExpandPath","add","extractPathAndInsertToSet","select","from","expand","pathSet","path","extractAndExpandNavigationProperty","entitySetName","selects","expands","mNavigationProperties","iPos","lastIndexOf","sNavigation","getNavigationProperty","substring","push","navProperty","mMyNavigationProperties","oEntityType","aNavigationProperty","navigationProperty","oNavigationProperty","navName","name","_addNecessaryFields","aSelects","oInfo","aProperties","RecordType","DataFieldWithIntentBasedNavigation","DataFieldWithNavigationPath","aDataFieldsWithNavigation","getDataFieldsWithNavigation","concat","getFieldControlsPath","property","ensureSelectionProperty","sSelect","oProperty","getODataProperty","CommonFieldControl","oFieldControl","requestFields","valuePath","Value","lineItemProperty","textAnnotation","CommonText","sapTextAnnotation","SemanticObject","Action","getParameters","oSelectExpand","aExpands","alwaysSelectField","_ensureSelectionProperties","_handleMandatorySelectionFields","join","item","PropertyPath","key","propertyRef","field","sProperty","sElement","_createCardManifest","oInput","oVersionInfo","manifest","bSuppressRowNavigation","oUIManifest","oAppManifest","attributeIndex","assign","id","Date","now","title","cardTitle","subTitle","oNewManifest","createManifestSapApp","createManifestSapCard","createSapui5","oContent","content","slice","column","columnValue","_getAttributeValue","identifier","value","attributes","visible","state","showStateIcon","actions","parentAppId","cardType","versions","ui5","version","buildTimestamp","attributeData","attributeValue","startsWith","oDateFormatOptions","JSON","stringify","pattern","getDatePattern","appManifest","manifestAppData","dataSources","mainService","settings","datasource","sServiceUrl","uri","sCountPath","sText","text","oCardConfig","createManifestSapCardConfig","createManifestSapCardData","url","status","data","maxItems","attributesLayoutType","addCardActions","semanticObject","action","sapCard","semObj","semanticAction","oHeaderParams","ibnTarget","sensitiveProps","ibnParams","oHeaderParameterValue","parameters","oContentParams","parse","oContentParameterValue","configuration","headerState","contentState","header","oCardConfiguration","_relevantODataFilters","_relevantODataParameters","_entitySet","_urlSuffix","destinations","service","defaultUrl","csrfTokens","token1","request","method","headers","_version","contentDensities","compact","cozy","dependencies","libs","lazy","urlExpand","oBatch","Accept","oSapCardData","batch","_getManifestCardData","oParentApp","manifestApp","mainServiceUri","serviceUrl","replace","aColumns","map","oColumn","_getColumnDetail","filter","oItem","mParameters","urlSelectExpand","createCustomParams","finalUrl","aColumnSorted","CommonLabel","String","lineItemContext","oPropertyHidden","UIHidden","Bool","isPropertyHidden","keys","oP13NDetails","createP13N","columnDataObject","isSupportedColumn","getColumnObjectDetails","Importance","importance","propertyDetails","dataField","sColumnKeyDescription","sColumnValue","aSemKeyAnnotation","CommonSemanticKey","bIsPropertySemanticKey","some","oAnnotation","bIsCriticality","criticalityAnnotation","Criticality","MeasuresISOCurrency","MeasuresUnit","sTextArragement","UITextArrangement","_setColumnTextValue","buildExpressionForCriticalityColor","CriticalityRepresentation","EnumMember","CriticalityRepresentationTypeWithoutIcon","sFormatCriticalityExpression","None","sExpressionTemplate","oCriticalityProperty","CriticalityType","Negative","Error","Critical","Warning","Positive","Success","sCriticalitySimplePath","sCriticality","warning","TextArrangementType","sTextArrangementType","valueExpr","TextOnly","TextLast","TextSeparate","aCustomParams","entityTypeName","_isListReport","page","component","listPage","bSupressCardRowNavigation","shouldSuppressCardRowNavigation","sListKey","navigation","lRVariantSettings","tableType","gridTable","GRID","treeTable","TREE","STANDARD_LIST","OBJECT_LIST","SapSemantics","ANALYTICAL","UIHeaderInfo","tabItem","entitySetData","annotationName","variantData","sPresentationVariantPath","oPresentationVariantAnnotation","indexOf","UIChart","hasMandatoryProperties","propertiesSet","propertyDetail","_getParametersisedEntitySetParams","infoParamsRequired","oResult","navPropertyName","aNavigationProperties","oNavProperty","oNavigationEntitySet","getODataAssociationEnd","oNavigationEntityType","getODataAssociationSetEnd","navProp","aSubNavigationProperties","bBackAssociationPresent","oSubNavigationProperty","sSubNavigationEntityType","lineItemAnnotations","uiHidden","FieldControlHiddenType","contextSet","contextProp","columnDataField","p13nDetails","additionalProperties","navigationPath","recordType","dataFieldValue","DataField","DataFieldForAnnotation","DataFieldWithUrl","columnKey","createP13NColumnKey","getNavigationPrefixPath","Apply","Name","Parameters","parameterDetails","Type","processAdditionalProperties","Url","processDataFieldWithUrl","oDataFieldUrl","oParameter","dataFieldColumn","columnKeyName","fioriTemplatePrefix","seperatorNotation","dataFieldSemanticObject","dataFieldActionString","dataFieldPath","isRelevantAnnotation","buildKey","parts","DataFieldForIntentBasedNavigation","DataFieldForAction","Target","Contact","DataPoint","FieldGroup","Chart","oContextSet","_getNavigationPrefix","propertyName","expandName","propertyParts","i","associationEndData","oContextProp","oDataField","sNavigationPath","aAdditionalProperties","additionalP13N","oContextCommonText","oUnitAnnotation","dataFieldDetails","sRecordType","leadingProperty","checkMultiplicityForDataFieldAssociation","UIIsImageURL","dataFieldValuePath","associationData","navigationPropertyPath","multiplicity"],"sources":["RecommendedCardUtil.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\nimport Formatting from \"sap/base/i18n/Formatting\";\nimport Log from \"sap/base/Log\";\nimport encodeURL from \"sap/base/security/encodeURL\";\nimport formatMessage from \"sap/base/strings/formatMessage\";\nimport deepExtend from \"sap/base/util/deepExtend\";\nimport BaseObject from \"sap/ui/base/Object\";\nimport CoreLib from \"sap/ui/core/library\";\nimport ODataMetaModel, { AssociationEnd, NavigationProperty, Property } from \"sap/ui/model/odata/ODataMetaModel\";\nimport {\n\tIAppInfoData,\n\tIAppManifest,\n\tICardActionParameters,\n\tICardManifest,\n\tIColumnData,\n\tIEntitySet,\n\tIEntityType,\n\tILineItem,\n\tILineItemContext,\n\tILineItemContextValue,\n\tILineItemDetails,\n\tILrSettings,\n\tIManifestCardData,\n\tIPageType,\n\tIPresentationVariant,\n\tIRequestData,\n\tISapApp,\n\tISapCard,\n\tISapCardConfig,\n\tISapUI5App,\n\tITableSettings,\n\tIUIVisualizations,\n\tIVariantSetting,\n\tIVersionInfo,\n\tPageRecord,\n\tUIAnnotations,\n\tUIAnnotationValue\n} from \"../interface/CardsInterface\";\nimport { TABLE_TYPES } from \"./Constants\";\nimport { sortCollectionByImportance } from \"./DataFormatUtils\";\n\nconst COLUMN_LENGTH = 3;\nconst ValueState = CoreLib.ValueState;\n\ninterface VariantInfo {\n\tlineItem?: ILineItem[] | string;\n\tpresentationVariant?: IPresentationVariant;\n\tqualifierPath?: string;\n\tPresentationVariant?: IPresentationVariant;\n\tVisualizations?: IUIVisualizations[];\n}\n\ninterface NonChartDetail {\n\tfirstAvailableKey: string | null;\n\tsEntitySet: string;\n\toVariant: IVariantSetting;\n}\n\ninterface SelectExpand {\n\tselect: string[];\n\texpand: string[];\n}\n\ntype SelectExpandDetail = {\n\tselect?: string;\n\texpand?: string;\n};\n\ntype RequestAtleastFieldType = { String?: string | undefined; PropertyPath?: string | undefined };\ninterface ParameterisedEntity {\n\tentitySetName?: string | null;\n\tparameters: Array<object | string>;\n\tnavPropertyName: string | null;\n}\n\ninterface ColumnObjectData extends Partial<IColumnData> {\n\tleadingProperty?: string;\n\tadditionalProperty?: string;\n\tnavigationProperty?: string;\n\tcolumnKey?: string;\n\t[key: string]: unknown;\n}\n\ninterface NavigationPropertiesMap {\n\t[entitySetName: string]: {\n\t\t[navigationPropertyName: string]: NavigationProperty;\n\t};\n}\n\ninterface ExtendedLineItemContextValue extends ILineItemContextValue {\n\tPath: string;\n\tApply: {\n\t\tName: string;\n\t\tParameters: {\n\t\t\t[key: string]: string;\n\t\t}[];\n\t};\n}\n\nenum FieldAnnotationsType {\n\tDataField = \"com.sap.vocabularies.UI.v1.DataField\",\n\tImportance = \"com.sap.vocabularies.UI.v1.Importance\",\n\tDataFieldWithNavigationPath = \"com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath\",\n\tDataFieldWithIntentBasedNavigation = \"com.sap.vocabularies.UI.v1.DataFieldWithIntentBasedNavigation\",\n\tDataFieldForIntentBasedNavigation = \"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation\",\n\tChart = \"@com.sap.vocabularies.UI.v1.Chart\",\n\tFieldGroup = \"@com.sap.vocabularies.UI.v1.FieldGroup\",\n\tDataPoint = \"@com.sap.vocabularies.UI.v1.DataPoint\",\n\tContact = \"@com.sap.vocabularies.Communication.v1.Contact\",\n\tDataFieldForAction = \"com.sap.vocabularies.UI.v1.DataFieldForAction\",\n\tDataFieldForAnnotation = \"com.sap.vocabularies.UI.v1.DataFieldForAnnotation\",\n\tDataFieldWithUrl = \"com.sap.vocabularies.UI.v1.DataFieldWithUrl\",\n\tCriticalityRepresentationTypeWithoutIcon = \"com.sap.vocabularies.UI.v1.CriticalityRepresentationType/WithoutIcon\",\n\tFieldControlHiddenType = \"com.sap.vocabularies.Common.v1.FieldControlType/Hidden\"\n}\n\nexport enum FieldTypes {\n\tDataFieldWithNavigationPath = \"DataFieldWithNavigationPath\",\n\tDataFieldWithIntentBasedNavigation = \"DataFieldWithIntentBasedNavigation\",\n\tDataFieldForIntentBasedNavigation = \"DataFieldForIntentBasedNavigation\",\n\tDataFieldForAction = \"DataFieldForAction\",\n\tDataFieldForAnnotation = \"DataFieldForAnnotation\"\n}\n\ntype Attribute = { value: string; path: string; type: string };\ntype SelectionProperties = Array<string | { PropertyPath?: string; String?: string }>;\n\nexport default class RecommendedCardUtil extends BaseObject {\n\tstatic Instance: RecommendedCardUtil;\n\n\tstatic getInstance() {\n\t\tif (!RecommendedCardUtil.Instance) {\n\t\t\tRecommendedCardUtil.Instance = new RecommendedCardUtil();\n\t\t}\n\t\treturn RecommendedCardUtil.Instance;\n\t}\n\n\t/**\n\t * @param {object} metaModel - metamodel object\n\t * @param {object} originalManifest - manifest of original app\n\t * @param {string} leadingEntitySet - main entitySet of the application as in manifest\n\t * @returns {object} - returns the lineItem details for the application based on manifest, annotations and metadata\n\t * @private\n\t */\n\tpublic getLineItemDetails(\n\t\tmetaModel: ODataMetaModel,\n\t\toriginalManifest: IAppManifest,\n\t\tleadingEntitySet: string\n\t): ILineItemDetails | undefined {\n\t\tconst leadingEntitySetDetails = metaModel.getODataEntitySet(leadingEntitySet) as IEntitySet;\n\t\tconst variantInfo = this.getLineItemFromVariant(metaModel, leadingEntitySetDetails.entityType);\n\t\tconst lineItemDefault = variantInfo.lineItem;\n\t\tconst pages = originalManifest[\"sap.ui.generic.app\"]?.pages;\n\t\tconst lrSettings = this.getSettingsForPage(pages);\n\n\t\t//if there is no quickVariantSelectionX setting in manifest, then return default line item details\n\t\tif (!lrSettings.quickVariantSelectionX) {\n\t\t\treturn this.createDefaultLineItemDetails(metaModel, variantInfo, lrSettings, leadingEntitySet, lineItemDefault);\n\t\t}\n\n\t\t// if there is a variant settings then find the first non-smart chart variant\n\t\tconst oVariants = lrSettings.quickVariantSelectionX.variants || {};\n\t\tconst { firstAvailableKey, sEntitySet, oVariant } = this.findFirstNonSmartChartVariant(metaModel, oVariants, leadingEntitySet);\n\t\tif (oVariant.isSmartChart) {\n\t\t\treturn this.createDefaultLineItemDetails(metaModel, variantInfo, lrSettings, leadingEntitySet, lineItemDefault);\n\t\t}\n\t\tdelete lrSettings.requestAtLeastFields;\n\n\t\tconst defaultTableSettings = this.getNormalizedTableSettings(metaModel, lrSettings, leadingEntitySet);\n\t\tconst entitySet = metaModel?.getODataEntitySet(sEntitySet) as IEntitySet;\n\t\tconst quickVariantInfo = this.getLineItemFromVariant(metaModel, entitySet.entityType, oVariant.annotationPath?.split(\"#\")[1]);\n\t\tconst lineItem = quickVariantInfo.lineItem;\n\t\tconst presentationVariant = quickVariantInfo.presentationVariant;\n\n\t\tlrSettings.requestAtLeastFields = presentationVariant?.RequestAtLeast?.length\n\t\t\t? presentationVariant.RequestAtLeast\n\t\t\t: this._getRequestAtLeastFields(presentationVariant!);\n\n\t\toVariant.tableSettings = this.getNormalizedTableSettings(\n\t\t\tmetaModel,\n\t\t\t{ ...oVariant, tableSettings: oVariant.tableSettings || defaultTableSettings },\n\t\t\tsEntitySet\n\t\t);\n\n\t\tthis.validateResponsiveTable(lrSettings, oVariant, firstAvailableKey);\n\n\t\tdelete lrSettings.tableSettings;\n\t\tlrSettings.isResponsiveTable = lrSettings.isResponsiveTable === undefined || lrSettings.isResponsiveTable;\n\n\t\tconst lineItemDetail: ILineItemDetails = {\n\t\t\tquickVariant: oVariant,\n\t\t\tlrSettings: lrSettings,\n\t\t\tlineItem: lineItem,\n\t\t\tentitySet: sEntitySet,\n\t\t\theaderInfo: oVariant?.tableSettings?.headerInfo || \"\"\n\t\t};\n\t\treturn lineItem\n\t\t\t? lineItemDetail\n\t\t\t: this.createDefaultLineItemDetails(metaModel, variantInfo, lrSettings, leadingEntitySet, lineItemDefault);\n\t}\n\n\t/**\n\t * Finds the first non-smart chart variant from the provided variants.\n\t *\n\t * This method iterates through the given variants to identify the first variant that is not a smart chart.\n\t * It also determines the associated entity set and updates the variant's metadata to indicate whether it is a smart chart.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and annotations.\n\t * @param {Record<string, IVariantSetting>} oVariants - A record of variants, where each key represents a variant and its associated metadata.\n\t * @param {string} leadingEntitySet - The name of the leading entity set for the application.\n\t * @returns {NonChartDetail}\n}\n\t * An object containing:\n\t * - `firstAvailableKey`: The key of the first non-smart chart variant, or `null` if none is found.\n\t * - `sEntitySet`: The entity set associated with the first non-smart chart variant.\n\t * - `oVariant`: The metadata of the first non-smart chart variant.\n\t * @private\n\t */\n\tprivate findFirstNonSmartChartVariant(\n\t\tmetaModel: ODataMetaModel,\n\t\toVariants: Record<string, IVariantSetting>,\n\t\tleadingEntitySet: string\n\t): NonChartDetail {\n\t\tlet firstAvailableKey: string | null = null;\n\t\tlet sEntitySet = leadingEntitySet;\n\t\tlet oVariant: IVariantSetting = {};\n\n\t\tfor (const sKey in oVariants) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(oVariants, sKey)) continue;\n\n\t\t\toVariant = oVariants[sKey];\n\t\t\tsEntitySet = oVariant.entitySet || leadingEntitySet;\n\t\t\tconst oEntitySet = metaModel.getODataEntitySet(sEntitySet);\n\n\t\t\tif (oEntitySet) {\n\t\t\t\toVariant.isSmartChart = this.checkIfSmartChart(metaModel, sEntitySet, oVariant);\n\t\t\t\tif (!oVariant.isSmartChart) {\n\t\t\t\t\tfirstAvailableKey = sKey;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toVariant.isSmartChart = true;\n\t\t\t}\n\t\t}\n\t\treturn { firstAvailableKey, sEntitySet, oVariant };\n\t}\n\n\t/**\n\t * Validates the responsive table type for a given variant and updates the List Report (LR) settings.\n\t *\n\t * @param {ILrSettings} lrSettings - The settings object for the List Report, including table settings and configurations.\n\t * @param {IVariantSetting} oVariant - The variant object containing table settings and metadata.\n\t * @param {string | null} firstAvailableKey - The key of the first available variant, used for logging errors.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate validateResponsiveTable(lrSettings: ILrSettings, oVariant: IVariantSetting, firstAvailableKey: string | null): void {\n\t\tconst isResponsive = oVariant.tableSettings?.type === TABLE_TYPES.RESPONSIVE;\n\t\tif (lrSettings.isResponsiveTable === undefined) {\n\t\t\tlrSettings.isResponsiveTable = isResponsive;\n\t\t} else if (lrSettings.isResponsiveTable !== isResponsive) {\n\t\t\tLog.error(`Variant with key ${firstAvailableKey} resulted in invalid Table Type combination.`);\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * This method generates the default configuration for line item details, including table settings,\n\t * responsive table type, and request-at-least fields based on the provided metadata, variant information,\n\t * and settings.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and annotations.\n\t * @param {VariantInfo} variantInfo - The variant information containing presentation variant and line item details.\n\t * @param {ILrSettings} lrSettings - The settings object for the List Report, including table settings and other configurations.\n\t * @param {string} leadingEntitySet - The name of the leading entity set for the application.\n\t * @param {ILineItem[] | string | undefined} lineItemDefault - The default line item details, which can be an array of line items, a string, or undefined.\n\t * @returns {ILineItemDetails} The default line item details object, including quick variant, settings, line item, entity set, and header info.\n\t * @private\n\t */\n\tprivate createDefaultLineItemDetails(\n\t\tmetaModel: ODataMetaModel,\n\t\tvariantInfo: VariantInfo,\n\t\tlrSettings: ILrSettings,\n\t\tleadingEntitySet: string,\n\t\tlineItemDefault?: ILineItem[] | string\n\t): ILineItemDetails {\n\t\tlrSettings.tableSettings = this.getNormalizedTableSettings(metaModel, lrSettings, leadingEntitySet);\n\t\tlrSettings.isResponsiveTable = lrSettings.tableSettings.type === TABLE_TYPES.RESPONSIVE;\n\t\tif (variantInfo?.presentationVariant?.RequestAtLeast?.length) {\n\t\t\tlrSettings.requestAtLeastFields = variantInfo.presentationVariant.RequestAtLeast;\n\t\t}\n\t\treturn {\n\t\t\tquickVariant: {},\n\t\t\tlrSettings: lrSettings,\n\t\t\tlineItem: lineItemDefault,\n\t\t\tentitySet: leadingEntitySet,\n\t\t\theaderInfo: lrSettings?.tableSettings?.headerInfo || \"\"\n\t\t};\n\t}\n\n\t/**\n\t * @param {object} oMetaModel - metamodel object\n\t * @param {string} entityType - entity type of the application\n\t * @param {string} qualifier - qualifier of the variant\n\t * @returns {object} - returns the lineItem, presentationVariant, qualifierPath from the variant for the application based on manifest, annotations and metadata\n\t * @private\n\t */\n\tprivate getLineItemFromVariant(oMetaModel: ODataMetaModel, entityType: string, qualifier?: string): VariantInfo {\n\t\tconst oSelectionPresentationVariant = this.getAnnotation<IPresentationVariant>(\n\t\t\toMetaModel,\n\t\t\tentityType,\n\t\t\tUIAnnotations.UISelectionPresentationVariant,\n\t\t\tqualifier\n\t\t);\n\n\t\tlet oPresentationVariant;\n\t\tif (oSelectionPresentationVariant?.PresentationVariant) {\n\t\t\toPresentationVariant = this.getPresentationVariant(oMetaModel, entityType, oSelectionPresentationVariant.PresentationVariant);\n\t\t} else {\n\t\t\toPresentationVariant = this.getAnnotation<IPresentationVariant>(\n\t\t\t\toMetaModel,\n\t\t\t\tentityType,\n\t\t\t\tUIAnnotations.UIPresentationVariant,\n\t\t\t\tqualifier\n\t\t\t);\n\t\t}\n\n\t\tconst oDetails = oPresentationVariant ? this.getLineItem(oMetaModel, entityType, oPresentationVariant) : null;\n\t\tconst lineItem = oDetails?.lineItem || this.getAnnotation<ILineItem[]>(oMetaModel, entityType, UIAnnotations.UILineItem, \"\");\n\n\t\treturn {\n\t\t\tpresentationVariant: oPresentationVariant,\n\t\t\tlineItem: lineItem,\n\t\t\tqualifierPath: oDetails?.annotationPath || \"\"\n\t\t};\n\t}\n\n\t// get the annotation , sAnnotation from the entityType, sEntityType\n\tprivate getAnnotation<T extends IPresentationVariant | ILineItem[]>(\n\t\tmetaModel: ODataMetaModel,\n\t\tentityType: string,\n\t\tannotation: UIAnnotations,\n\t\tqualifierName?: string\n\t): T | undefined {\n\t\tconst fullAnnotation = `${annotation}${qualifierName ? `#${qualifierName}` : \"\"}`;\n\t\tconst entityTypeData = metaModel.getODataEntityType(entityType) as IEntityType;\n\t\treturn entityTypeData?.[fullAnnotation] as T | undefined;\n\t}\n\n\t/**\n\t * This method determines the presentation variant based on the provided selection presentation variant.\n\t * If the presentation variant is defined via a `Path`, it resolves the path to retrieve the corresponding object\n\t * from the OData meta model. If the presentation variant is defined inline (i.e., without a `Path`), it directly\n\t * returns the inline object.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and annotations.\n\t * @param {string} entityTypeData - The entity type for which the presentation variant is to be retrieved.\n\t * @param {IPresentationVariant} selectionPresentationVariant -\n\t * The selection presentation variant object, which may contain a `Path` or an inline `PresentationVariant`.\n\t * @returns {IPresentationVariant} The resolved presentation variant object.\n\t * @private\n\t */\n\tprivate getPresentationVariant(\n\t\tmetaModel: ODataMetaModel,\n\t\tentityTypeData: string,\n\t\tselectionPresentationVariant: IPresentationVariant\n\t): IPresentationVariant {\n\t\t// PresentationVariant must be defined (according to vocabulary) either via \"Path\" or inline (i.e. Path is not defined).\n\t\t// For compatibility, just ignore if not provided (leading to fallback to use LineItem without qualifier)\n\t\tconst presentationVariant = selectionPresentationVariant?.PresentationVariant;\n\n\t\tif (presentationVariant?.Path) {\n\t\t\treturn this.getObject<IPresentationVariant>(metaModel, entityTypeData, presentationVariant.Path);\n\t\t}\n\t\treturn presentationVariant!;\n\t}\n\n\t/**\n\t * Retrieves the line item annotation details for a given entity type and presentation variant.\n\t *\n\t * This method searches for the `com.sap.vocabularies.UI.v1.LineItem` annotation within the visualizations\n\t * of the provided presentation variant. If found, it returns the line item details, including the annotation path\n\t * and qualifier.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about the entity type.\n\t * @param {string} entityTypeData - The entity type for which the line item annotation is to be retrieved.\n\t * @param {IPresentationVariant} presentationVariantData - The presentation variant containing visualizations.\n\t * @returns { IUIVisualizations | IUIVisualizations[] | null}\n\t * - An object containing the line item details, annotation path, and qualifier if the annotation is found.\n\t * - An array of UI annotations if applicable.\n\t * - `null` if no valid line item annotation is found.\n\t * @private\n\t */\n\tprivate getLineItem(\n\t\tmetaModel: ODataMetaModel,\n\t\tentityTypeData: string,\n\t\tpresentationVariantData: IPresentationVariant\n\t): IUIVisualizations | null {\n\t\t// Visualizations must be defined (according to vocabulary)\n\t\t// however, this is not given at least in all demokit apps (presentationVariant consisting only of sortOrder)\n\t\tlet visualizationData = presentationVariantData.Visualizations?.find(function (oVis) {\n\t\t\treturn oVis.AnnotationPath?.includes(UIAnnotations.UILineItem);\n\t\t});\n\n\t\treturn visualizationData\n\t\t\t? {\n\t\t\t\t\tlineItem: this.getObject<ILineItem[]>(metaModel, entityTypeData, visualizationData.AnnotationPath!),\n\t\t\t\t\tannotationPath: visualizationData.AnnotationPath!,\n\t\t\t\t\tsQualifier: visualizationData.AnnotationPath?.split(\"#\")[1]\n\t\t\t\t}\n\t\t\t: null;\n\t}\n\n\t/**\n\t * Extracts relevant column paths for `$select` and `$expand` OData query options.\n\t *\n\t * This method processes the provided column definitions to extract paths for the `$select` and `$expand` query options.\n\t * It ensures that paths are unique and properly formatted for OData requests.\n\t *\n\t * @param {Array<Record<string,unknown>>} columns - An array of column definitions.\n\t * Each column definition may include properties like `leadingProperty`, `additionalProperty`, and `navigationProperty`.\n\t * @returns {SelectExpand} An object containing two arrays:\n\t * - `select`: An array of unique paths for the `$select` query option.\n\t * - `expand`: An array of unique paths for the `$expand` query option.\n\t * @private\n\t */\n\tprivate _getRelevantColumnPaths(columns: ColumnObjectData[]): SelectExpand {\n\t\tcolumns = Array.isArray(columns) ? columns : [];\n\t\tconst selectSet = new Set<string>();\n\t\tconst expandSet = new Set<string>();\n\t\tcolumns.forEach((oColumnData) => {\n\t\t\tif (oColumnData) {\n\t\t\t\tconst sPath = oColumnData[\"leadingProperty\"];\n\t\t\t\tconst sAdditionalPath = oColumnData[\"additionalProperty\"];\n\t\t\t\tconst sExpandPath = oColumnData[\"navigationProperty\"];\n\t\t\t\tif (sPath) {\n\t\t\t\t\tselectSet.add(sPath);\n\t\t\t\t}\n\t\t\t\tthis.extractPathAndInsertToSet(sAdditionalPath!, selectSet);\n\t\t\t\tthis.extractPathAndInsertToSet(sExpandPath!, expandSet);\n\t\t\t}\n\t\t});\n\t\treturn {\n\t\t\tselect: Array.from(selectSet),\n\t\t\texpand: Array.from(expandSet)\n\t\t};\n\t}\n\n\t/**\n\t * Extracts and inserts unique paths into the provided array.\n\t *\n\t * This method splits the given path string by commas, iterates through the resulting paths,\n\t * and adds each unique path to the provided array. Duplicate paths are ignored.\n\t *\n\t * @param {string} sPath - A comma-separated string of paths to be processed.\n\t * @param {Set<string>} - The array to which unique paths will be added.\n\t * @private\n\t */\n\tprivate extractPathAndInsertToSet(sPath: string, pathSet: Set<string>) {\n\t\tsPath?.split(\",\").forEach((path) => {\n\t\t\tif (path) {\n\t\t\t\tpathSet.add(path);\n\t\t\t\t// currently not doing transitive dependencies\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Expands navigation properties for the given entity set and selected properties.\n\t *\n\t * This method processes the provided `selects` array to identify navigation properties\n\t * that need to be expanded. If a navigation property is found, it is added to the `expands` array.\n\t *\n\t * @param {string} entitySetName - The name of the entity set being processed.\n\t * @param {string[]} selects - An array of selected property paths to be checked for navigation properties.\n\t * @param {string[]} expands - An array to which navigation properties requiring expansion will be added.\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and properties.\n\t * @private\n\t */\n\tprivate extractAndExpandNavigationProperty(entitySetName: string, selects: string[], expands: string[], metaModel: ODataMetaModel) {\n\t\tconst mNavigationProperties = {};\n\n\t\t// check if any expand is necessary\n\t\tfor (const sPath of selects) {\n\t\t\tlet iPos = sPath.lastIndexOf(\"/\");\n\t\t\tlet sNavigation;\n\t\t\tif (iPos < 0) {\n\t\t\t\t// sPath contains no '/' but still could be a navigationProperty\n\t\t\t\tif (!this.getNavigationProperty(entitySetName, sPath, metaModel, mNavigationProperties)) {\n\t\t\t\t\tcontinue; //not a navproperty hence continue to next iteration\n\t\t\t\t}\n\t\t\t\tsNavigation = sPath;\n\t\t\t} else {\n\t\t\t\tsNavigation = sPath.substring(0, iPos);\n\t\t\t}\n\t\t\tif (!expands.includes(sNavigation)) {\n\t\t\t\texpands.push(sNavigation);\n\t\t\t}\n\t\t}\n\t}\n\n\t//get the navigation property details for the given property from entityset, sEntitySet\n\tprivate getNavigationProperty(\n\t\tentitySetName: string,\n\t\tnavProperty: string,\n\t\tmetaModel: ODataMetaModel,\n\t\tmNavigationProperties: NavigationPropertiesMap\n\t) {\n\t\tlet mMyNavigationProperties = mNavigationProperties?.[entitySetName];\n\n\t\t// If navigation properties not already fetched, then fetch them\n\t\tif (!mMyNavigationProperties) {\n\t\t\tmMyNavigationProperties = {};\n\t\t\tmNavigationProperties[entitySetName] = mMyNavigationProperties;\n\n\t\t\tconst oEntitySet = metaModel.getODataEntitySet(entitySetName) as IEntitySet;\n\t\t\tif (oEntitySet) {\n\t\t\t\tconst oEntityType = metaModel.getODataEntityType(oEntitySet.entityType) as IEntityType;\n\t\t\t\tif (oEntityType) {\n\t\t\t\t\tconst aNavigationProperty = oEntityType.navigationProperty || [];\n\t\t\t\t\taNavigationProperty.forEach((oNavigationProperty) => {\n\t\t\t\t\t\tconst navName = oNavigationProperty.name;\n\t\t\t\t\t\tmMyNavigationProperties[navName] = oNavigationProperty;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn mMyNavigationProperties?.[navProperty] || undefined;\n\t}\n\n\t// add all necessary fields to the select array\n\tprivate _addNecessaryFields(aSelects: string[], oInfo: ILineItemDetails, oMetaModel: ODataMetaModel) {\n\t\tlet oEntitySet = oMetaModel.getODataEntitySet(oInfo.entitySet) as IEntitySet;\n\t\tlet oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType) as IEntityType;\n\t\tlet aProperties: string[] = [];\n\n\t\tif (aSelects.length > 0) {\n\t\t\tif (oInfo.lineItem && typeof oInfo.lineItem !== \"string\") {\n\t\t\t\toInfo.lineItem.forEach((lineItem) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tlineItem.RecordType === FieldAnnotationsType.DataFieldWithIntentBasedNavigation ||\n\t\t\t\t\t\tlineItem.RecordType === FieldAnnotationsType.DataFieldWithNavigationPath\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst aDataFieldsWithNavigation = this.getDataFieldsWithNavigation(lineItem, oMetaModel, oEntityType);\n\t\t\t\t\t\tif (aDataFieldsWithNavigation?.length) {\n\t\t\t\t\t\t\taProperties = aProperties.concat(aDataFieldsWithNavigation);\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\t//add the fieldcontrol path of the properties\n\t\t\tthis.getFieldControlsPath(aSelects, oMetaModel, oEntityType, aProperties);\n\t\t}\n\n\t\taProperties.forEach((property) => {\n\t\t\tthis.ensureSelectionProperty(property, aSelects);\n\t\t});\n\t}\n\n\t/**\n\t * Collects the paths for field controls based on the selected properties.\n\t * This function iterates over the given selection of properties, aSelects, retrieves the corresponding\n\t * property metadata from the OData model, and if a field control annotation exists for a property,\n\t * it adds the path of this field control to the provided array of properties.\n\t * @param {string[]} selects - An array of property names to be checked for field control paths.\n\t * @param {object} metaModel - The OData meta model instance used to retrieve property metadata.\n\t * @param {object} entityType - The entity type from the OData model that contains the properties.\n\t * @param {string[]} aProperties - An array to which the field control paths will be added.\n\t * @private\n\t */\n\tprivate getFieldControlsPath(selects: string[], metaModel: ODataMetaModel, entityType: IEntityType, aProperties: string[]) {\n\t\tselects.forEach((sSelect) => {\n\t\t\tif (sSelect) {\n\t\t\t\t//needed for activating field control for DataField Annotation & when using the setting to add new columns\n\t\t\t\tlet oProperty = (metaModel.getODataProperty(entityType, sSelect) as UIAnnotationValue) || {};\n\t\t\t\tif (UIAnnotations.CommonFieldControl in oProperty) {\n\t\t\t\t\tlet oFieldControl = oProperty[UIAnnotations.CommonFieldControl];\n\t\t\t\t\tif (oFieldControl?.Path) {\n\t\t\t\t\t\taProperties.push(oFieldControl.Path);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Handling for DataFieldWithNavigationPath and DataFieldWithIntentBasedNavigation\n\t * @param {object} lineItem - LineItem object\n\t * @param {object} metaModel - OData metamodel\n\t * @param {object} entityType - EntityType object\n\t * @returns {Array} - Array of properties to be selected in case field type is DataFieldWithNavigationPath or DataFieldWithIntentBasedNavigation\n\t * @private\n\t */\n\tprivate getDataFieldsWithNavigation(lineItem: ILineItem, metaModel: ODataMetaModel, entityType: IEntityType): string[] {\n\t\tconst requestFields = [];\n\n\t\t// Handle Value.Path\n\t\tconst valuePath = lineItem.Value?.Path;\n\t\tif (valuePath) {\n\t\t\tconst lineItemProperty = metaModel.getODataProperty(entityType, valuePath) as UIAnnotationValue;\n\t\t\tconst textAnnotation = lineItemProperty?.[UIAnnotations.CommonText]?.Path;\n\t\t\tconst sapTextAnnotation = lineItemProperty?.[\"sap:text\"];\n\n\t\t\trequestFields.push(sapTextAnnotation || textAnnotation || valuePath);\n\t\t}\n\n\t\t// Handle SemanticObject.Path\n\t\tif (lineItem.SemanticObject?.Path) {\n\t\t\trequestFields.push(lineItem.SemanticObject.Path);\n\t\t}\n\n\t\t// Handle Action.Path\n\t\tif (lineItem.Action?.Path) {\n\t\t\trequestFields.push(lineItem.Action.Path);\n\t\t}\n\n\t\treturn requestFields;\n\t}\n\n\t// Section: Parameter Handling\n\tprivate getParameters(\n\t\toInfo: ILineItemDetails,\n\t\tmetaModel: ODataMetaModel,\n\t\tentitySet: string,\n\t\toSelectExpand: SelectExpand\n\t): SelectExpandDetail {\n\t\tlet aSelects = oSelectExpand.select || [];\n\t\tlet aExpands = oSelectExpand.expand || [];\n\n\t\tlet alwaysSelectField = oInfo?.lrSettings?.requestAtLeastFields || [];\n\t\tif (alwaysSelectField.length > 0) {\n\t\t\taSelects = this._ensureSelectionProperties(aSelects, alwaysSelectField);\n\t\t}\n\n\t\tthis._handleMandatorySelectionFields(entitySet, aSelects, metaModel);\n\t\tthis._addNecessaryFields(aSelects, oInfo, metaModel);\n\t\tthis.extractAndExpandNavigationProperty(entitySet, aSelects, aExpands, metaModel);\n\n\t\treturn {\n\t\t\texpand: aExpands.join(\",\") || undefined,\n\t\t\tselect: aSelects.join(\",\") || undefined\n\t\t};\n\t}\n\n\t/**\n\t *\n\t * @param {Array} aSelects , select parameters\n\t * @param {SelectionProperties} alwaysSelectField, all the fields that are marked as requestAtLeastFields\n\t * @returns {Array} aSelects, updated select parameters\n\t * @private\n\t */\n\n\tprivate _ensureSelectionProperties(aSelects: string[], alwaysSelectField: SelectionProperties): string[] {\n\t\tfor (const item of alwaysSelectField) {\n\t\t\tif (typeof item === \"object\" && item?.PropertyPath && !aSelects.includes(item.PropertyPath)) {\n\t\t\t\taSelects.push(item.PropertyPath);\n\t\t\t}\n\t\t}\n\n\t\treturn aSelects;\n\t}\n\n\t/**\n\t * Handles the mandatory selection fields for the given entity set and properties.\n\t *\n\t * @param {object} entitySet - The entity set object.\n\t * @param {array} aSelects - The array of properties.\n\t * @returns {boolean} True if the entity set or properties have mandatory fields, false otherwise.\n\t * @private\n\t */\n\tprivate _handleMandatorySelectionFields(entitySet: string, aSelects: string[], oMetaModel: ODataMetaModel) {\n\t\tconst oEntitySet = oMetaModel.getODataEntitySet(entitySet, false) as IEntitySet;\n\t\tconst oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType, false) as IEntityType;\n\n\t\toEntityType.key.propertyRef.forEach((field) => {\n\t\t\tthis.ensureSelectionProperty(field.name, aSelects);\n\t\t});\n\t}\n\n\t// push the selection properties to the select array\n\tprivate ensureSelectionProperty(sProperty: string, aSelects: string[]) {\n\t\tsProperty?.split(\",\").forEach(function (sElement) {\n\t\t\tif (sElement && !aSelects.includes(sElement)) {\n\t\t\t\taSelects.push(sElement);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Creates a card manifest for a recommended card.\n\t *\n\t * This method generates a new card manifest based on the provided input data, version information, and app manifest.\n\t * It also processes the columns to set attributes or titles for the card content and handles row navigation suppression if required.\n\t *\n\t * @param {IManifestCardData} oInput - The input data for the card, including card title, subtitle, columns, and entity set.\n\t * @param {IVersionInfo} oVersionInfo - The version information, including the version and build timestamp.\n\t * @param {IAppManifest} manifest - The original app manifest.\n\t * @param {boolean} [bSuppressRowNavigation] - Optional flag to suppress row navigation actions in the card content.\n\t * @returns {ICardManifest} The generated card manifest object.\n\t * @private\n\t */\n\tpublic _createCardManifest(\n\t\toInput: IManifestCardData,\n\t\toVersionInfo: IVersionInfo,\n\t\tmanifest: IAppManifest,\n\t\tbSuppressRowNavigation?: boolean\n\t): ICardManifest {\n\t\tlet oUIManifest = manifest[\"sap.ui\"];\n\t\tlet oAppManifest = manifest[\"sap.app\"];\n\t\tlet attributeIndex = 0;\n\n\t\tif (oAppManifest?.[\"crossNavigation\"]) {\n\t\t\tdelete oAppManifest[\"crossNavigation\"];\n\t\t}\n\t\tif (oAppManifest) {\n\t\t\tObject.assign(oAppManifest, {\n\t\t\t\ttype: \"card\",\n\t\t\t\tid: `user.${oInput.id}.${Date.now()}`,\n\t\t\t\ttitle: oInput.cardTitle || \"\",\n\t\t\t\tsubTitle: oInput.subTitle\n\t\t\t});\n\t\t}\n\n\t\tlet oNewManifest: ICardManifest = {\n\t\t\t\"sap.ui\": oUIManifest,\n\t\t\t\"sap.app\": this.createManifestSapApp(oAppManifest!),\n\t\t\t\"sap.card\": this.createManifestSapCard(manifest, oInput),\n\t\t\t\"sap.ui5\": this.createSapui5()\n\t\t};\n\t\tconst oContent = oNewManifest?.[\"sap.card\"]?.content;\n\n\t\toInput.columns.slice(0, COLUMN_LENGTH).forEach((column) => {\n\t\t\tconst columnValue = this._getAttributeValue(column);\n\t\t\tif (column.identifier && oContent?.item) {\n\t\t\t\t// If column.identifier is true, set it as the title\n\t\t\t\toContent.item.title = { value: columnValue, identifier: true };\n\t\t\t} else if (oContent?.item?.attributes) {\n\t\t\t\t// Otherwise, add it to the attributes\n\t\t\t\toContent.item.attributes[attributeIndex] = {\n\t\t\t\t\tvalue: columnValue,\n\t\t\t\t\tvisible: true,\n\t\t\t\t\t...(column.state && { state: column.state, showStateIcon: column.showStateIcon })\n\t\t\t\t};\n\t\t\t\tattributeIndex++;\n\t\t\t}\n\t\t});\n\n\t\t// if bSuppressRowNavigation true, remove content actions\n\t\tif (bSuppressRowNavigation && oContent?.item) {\n\t\t\toContent.item.actions = [];\n\t\t}\n\n\t\treturn {\n\t\t\t...oNewManifest,\n\t\t\t\"sap.insights\": {\n\t\t\t\tparentAppId: oInput.id,\n\t\t\t\tcardType: \"RT\",\n\t\t\t\tversions: {\n\t\t\t\t\tui5: `${oVersionInfo.version}-${oVersionInfo.buildTimestamp}`\n\t\t\t\t},\n\t\t\t\tvisible: true\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Get Attribute Value\n\t *\n\t * @param {object} attributeData - column object\n\t * @returns {string} returns attribute value\n\t * @private\n\t */\n\tprivate _getAttributeValue(attributeData: Attribute): string {\n\t\tlet attributeValue = !attributeData.value.startsWith(\"{\")\n\t\t\t? \"{= extension.formatters.stringFormatter(${\" + attributeData.path + \"}) }\"\n\t\t\t: attributeData.value;\n\t\tif (attributeData.type === \"Edm.Date\" || attributeData.type === \"Edm.DateTime\") {\n\t\t\tconst oDateFormatOptions = JSON.stringify({ pattern: Formatting.getDatePattern(\"short\") });\n\t\t\tattributeValue =\n\t\t\t\t\"{=${\" + attributeData.path + \"}?format.dateTime(${\" + attributeData.path + \"}, \" + oDateFormatOptions + \") : ''}\";\n\t\t}\n\n\t\treturn attributeValue;\n\t}\n\n\t//creates sap.app object structure for the card manifest of recommended card\n\tprivate createManifestSapApp(appManifest: ISapApp) {\n\t\tconst manifestAppData = deepExtend({}, appManifest) as ISapApp;\n\t\tif (manifestAppData?.dataSources?.mainService) {\n\t\t\tmanifestAppData.dataSources[\"filterService\"] = manifestAppData.dataSources.mainService;\n\t\t\tif (manifestAppData.dataSources[\"filterService\"]?.settings) {\n\t\t\t\tmanifestAppData.dataSources[\"filterService\"].settings[\"odataVersion\"] = \"2.0\";\n\t\t\t}\n\t\t}\n\n\t\treturn manifestAppData;\n\t}\n\n\t/**\n\t * Creates the manifest's SAP card object, sap.card based on the input card details.\n\t *\n\t * @param {oIAppManifestbject} manifest - The original manifest object of the application.\n\t * @param {IManifestCardData} oInput - The input object containing card details.\n\t * @returns {ISapCard} The SAP card configuration object.\n\t */\n\tprivate createManifestSapCard(manifest: IAppManifest, oInput: IManifestCardData): ISapCard {\n\t\tconst datasource = manifest[\"sap.app\"]?.dataSources;\n\t\tconst sServiceUrl = datasource?.mainService?.uri;\n\t\tconst entitySetName = oInput.entitySet;\n\t\tconst sCountPath = \"__count\";\n\t\tconst sText = {\n\t\t\ttext: \"{= ${\" + sCountPath + \"} === '0' ? '' : ${\" + sCountPath + \"} }\"\n\t\t};\n\n\t\tlet oCardConfig: ISapCard = {\n\t\t\ttype: \"List\"\n\t\t};\n\n\t\toCardConfig[\"configuration\"] = this.createManifestSapCardConfig(sServiceUrl || \"\", entitySetName);\n\t\toCardConfig[\"data\"] = this.createManifestSapCardData(sServiceUrl || \"\", oInput.url);\n\n\t\toCardConfig[\"header\"] = {\n\t\t\ttitle: oInput.cardTitle,\n\t\t\tsubTitle: \"\",\n\t\t\tactions: [],\n\t\t\tstatus: sText,\n\t\t\tdata: {\n\t\t\t\tpath: \"/content/d\"\n\t\t\t}\n\t\t};\n\n\t\toCardConfig[\"extension\"] = \"module:sap/insights/CardExtension\";\n\t\toCardConfig[\"content\"] = {\n\t\t\tdata: {\n\t\t\t\tpath: \"/content/d/results\"\n\t\t\t},\n\t\t\tmaxItems: 5,\n\t\t\titem: {\n\t\t\t\tactions: [],\n\t\t\t\tattributesLayoutType: \"OneColumn\",\n\t\t\t\tattributes: []\n\t\t\t}\n\t\t};\n\n\t\tthis.addCardActions(oCardConfig, oInput.semanticObject, oInput.action);\n\t\treturn oCardConfig;\n\t}\n\n\t/**\n\t * Sets the card actions for the given SAP card.\n\t *\n\t * @param {object} sapCard - The SAP card object to set the actions on.\n\t * @param {string} semObj - The semantic object for the navigation target.\n\t * @param {string} semanticAction - The semantic action for the navigation target.\n\t */\n\tprivate addCardActions(sapCard: ISapCard, semObj: string, semanticAction: string) {\n\t\tlet oHeaderParams: ICardActionParameters = {\n\t\t\tibnTarget: {\n\t\t\t\tsemanticObject: semObj,\n\t\t\t\taction: semanticAction\n\t\t\t},\n\t\t\tsensitiveProps: [],\n\t\t\tibnParams: {}\n\t\t};\n\n\t\tlet oHeaderParameterValue = [\n\t\t\t{\n\t\t\t\ttype: \"Navigation\",\n\t\t\t\tparameters: \"{= extension.formatters.getNavigationContext(${parameters>/headerState/value})}\"\n\t\t\t}\n\t\t];\n\n\t\tlet oContentParams = JSON.parse(JSON.stringify(oHeaderParams)) as ICardActionParameters;\n\t\tlet oContentParameterValue = [\n\t\t\t{\n\t\t\t\ttype: \"Navigation\",\n\t\t\t\tparameters: \"{= extension.formatters.getNavigationContext(${parameters>/contentState/value}, ${})}\"\n\t\t\t}\n\t\t];\n\n\t\tif (sapCard.configuration?.parameters) {\n\t\t\tsapCard.configuration.parameters.headerState = {\n\t\t\t\tvalue: JSON.stringify(oHeaderParams)\n\t\t\t};\n\t\t\tsapCard.configuration.parameters.contentState = {\n\t\t\t\tvalue: JSON.stringify(oContentParams)\n\t\t\t};\n\t\t}\n\t\tif (sapCard.header) {\n\t\t\tsapCard.header.actions = oHeaderParameterValue;\n\t\t}\n\t\tif (sapCard?.content?.item) {\n\t\t\tsapCard.content.item.actions = oContentParameterValue;\n\t\t}\n\t}\n\n\t/**\n\t * Creates the manifest sap card configuration object.\n\t *\n\t * @param {string} sServiceUrl - The service URL to be used in the request.\n\t * @param {string} entitySetName - The name of the entity set.\n\t * @returns {object} The SAP card configuration object.\n\t */\n\tprivate createManifestSapCardConfig(sServiceUrl: string, entitySetName: string): ISapCardConfig {\n\t\tconst oCardConfiguration = {\n\t\t\tparameters: {\n\t\t\t\t_relevantODataFilters: {\n\t\t\t\t\tvalue: []\n\t\t\t\t},\n\t\t\t\t_relevantODataParameters: {\n\t\t\t\t\tvalue: []\n\t\t\t\t},\n\t\t\t\t_entitySet: {\n\t\t\t\t\tvalue: entitySetName\n\t\t\t\t},\n\t\t\t\t_urlSuffix: {\n\t\t\t\t\tvalue: \"/Results\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestinations: {\n\t\t\t\tservice: {\n\t\t\t\t\tname: \"(default)\",\n\t\t\t\t\tdefaultUrl: \"/\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tcsrfTokens: {\n\t\t\t\ttoken1: {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\turl: \"{{destinations.service}}\" + sServiceUrl,\n\t\t\t\t\t\t\tmethod: \"HEAD\",\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"X-CSRF-Token\": \"Fetch\"\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}\n\t\t};\n\n\t\treturn oCardConfiguration;\n\t}\n\n\t//create sap.ui5 object for the card manifest\n\tprivate createSapui5(): ISapUI5App {\n\t\treturn {\n\t\t\t_version: \"1.1.0\",\n\t\t\tcontentDensities: { compact: true, cozy: true },\n\t\t\tdependencies: {\n\t\t\t\tlibs: {\n\t\t\t\t\t\"sap.insights\": {\n\t\t\t\t\t\tlazy: false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Creates the manifest data for an SAP card.\n\t *\n\t * @param {string} sServiceUrl - The service URL to be used in the request.\n\t * @param {string} urlExpand - The URL to expand in the batch request.\n\t * @returns {IRequestData} The SAP card data object containing the request configuration.\n\t */\n\tprivate createManifestSapCardData(sServiceUrl: string, urlExpand: string): IRequestData {\n\t\tconst oBatch = {\n\t\t\tcontent: {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\turl: urlExpand,\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: \"application/json\"\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tconst oSapCardData: IRequestData = {\n\t\t\trequest: {\n\t\t\t\turl: \"{{destinations.service}}\" + sServiceUrl + \"/$batch\",\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"X-CSRF-Token\": \"{{csrfTokens.token1}}\"\n\t\t\t\t},\n\t\t\t\tbatch: oBatch\n\t\t\t}\n\t\t};\n\n\t\treturn oSapCardData;\n\t}\n\n\t/**\n\t * This function returns card details required for the recommended card manifest\n\t * based on app manifest and annotations\n\t * @param {object} manifest - The original app manifest\n\t * @param {object} oInfo - The object containing details of lineitem, entityset, settings etc\n\t * @param {object} oParentApp - The parent app object\n\t * @param {object} oMetaModel - The OData metamodel\n\t * @returns {object} The card data object with title, subtitle, url, semanticObject, action, id and column details\n\t * @private\n\t */\n\tpublic _getManifestCardData(\n\t\tmanifest: IAppManifest,\n\t\toInfo: ILineItemDetails,\n\t\toParentApp: IAppInfoData,\n\t\toMetaModel: ODataMetaModel\n\t): IManifestCardData {\n\t\tconst manifestApp = manifest[\"sap.app\"];\n\t\tconst dataSources = manifestApp?.dataSources;\n\n\t\tconst mainServiceUri = dataSources?.mainService?.uri || \"\";\n\n\t\tconst lineItem = oInfo.lineItem as ILineItem[];\n\t\tconst entitySet = oInfo.entitySet;\n\t\tconst oEntitySet = oMetaModel.getODataEntitySet(entitySet) as IEntitySet;\n\t\tconst oEntityType = oMetaModel.getODataEntityType(oEntitySet?.entityType) as IEntityType;\n\t\tconst serviceUrl = `${mainServiceUri.replace(/\\/$/, \"\")}/${entitySet}`; // make '{mainServiceUri}/{entitySet}' format\n\n\t\t//get the column details for each of the lineitem columns\n\t\tconst aColumns = lineItem\n\t\t\t?.map((oColumn) => this._getColumnDetail(entitySet, oMetaModel, oColumn))\n\t\t\t.filter((oItem) => oItem !== undefined);\n\n\t\tconst oSelectExpand = this._getRelevantColumnPaths(aColumns);\n\t\t//get the complete select and expand parameters for url\n\t\tconst mParameters = this.getParameters(oInfo, oMetaModel, entitySet, oSelectExpand);\n\n\t\tconst urlSelectExpand = this.createCustomParams(mParameters);\n\t\tconst finalUrl = urlSelectExpand\n\t\t\t? `${serviceUrl}?$top=5&skip=0&${urlSelectExpand}&$inlinecount=allpages`\n\t\t\t: `${serviceUrl}?$top=5&skip=0`;\n\t\t//sort the column based on their importance and then slice the first 4 columns\n\t\tconst aColumnSorted = (sortCollectionByImportance(aColumns) as IColumnData[])\n\t\t\t.map((column) => {\n\t\t\t\treturn {\n\t\t\t\t\tpath: column?.path,\n\t\t\t\t\ttype: column?.type,\n\t\t\t\t\tvalue: column?.value,\n\t\t\t\t\tidentifier: column?.identifier,\n\t\t\t\t\tstate: column?.state,\n\t\t\t\t\tshowStateIcon: column?.showStateIcon\n\t\t\t\t};\n\t\t\t})\n\t\t\t.slice(0, 4);\n\t\treturn {\n\t\t\tcardTitle: manifest?.[\"sap.app\"]?.title,\n\t\t\tsubTitle: oEntityType[UIAnnotations.CommonLabel] ? `Top 5 ${oEntityType[UIAnnotations.CommonLabel].String}` : \"\",\n\t\t\turl: finalUrl,\n\t\t\tsemanticObject: oParentApp?.semanticObject || \"\",\n\t\t\taction: oParentApp?.action || \"\",\n\t\t\tid: manifest?.[\"sap.app\"]?.id,\n\t\t\tcolumns: aColumnSorted,\n\t\t\tentitySet: entitySet\n\t\t};\n\t}\n\n\t/**\n\t * This function returns the column detail object for the given column's context\n\t * @param {string} entitySet - - The entity set name\n\t * @param {object} oMetaModel - OData metamodel\n\t * @param {object} lineItemContext - The line item column context object\n\t * @returns {object} The column detail containing value, path, importance and type\n\t * @private\n\t */\n\tprivate _getColumnDetail(entitySet: string, oMetaModel: ODataMetaModel, lineItemContext: ILineItem) {\n\t\tlet oProperty;\n\t\tlet oEntitySet = oMetaModel.getODataEntitySet(entitySet) as IEntitySet;\n\t\tlet oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType) as IEntityType;\n\n\t\tif (lineItemContext.Value?.Path) {\n\t\t\toProperty = oMetaModel.getODataProperty(oEntityType, lineItemContext.Value.Path) as UIAnnotationValue;\n\t\t\tlet oPropertyHidden = oProperty[UIAnnotations.UIHidden];\n\n\t\t\t// if oProperty not hidden and oLineitemContext not hidden then only consider the column else return undefined\n\t\t\tif (oPropertyHidden?.Bool === \"true\" || oPropertyHidden?.Bool === true) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\t//check if lineItemContext is hidden or no oProperty is found\n\t\t\tif (this.isPropertyHidden(lineItemContext) || !oProperty || Object.keys(oProperty).length === 0) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tlet oP13NDetails = this.createP13N(oEntitySet, oProperty, lineItemContext, oMetaModel);\n\t\toP13NDetails = oP13NDetails.replace(/\\\\/g, \"\"); // Remove the double backslashes\n\t\tlet columnDataObject = oP13NDetails ? (JSON.parse(oP13NDetails) as ColumnObjectData) : {};\n\n\t\tif (!this.isSupportedColumn(columnDataObject, lineItemContext, oMetaModel, oEntitySet)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (oProperty) {\n\t\t\tcolumnDataObject = this.getColumnObjectDetails(columnDataObject, oProperty, oEntityType, lineItemContext);\n\t\t\tif (lineItemContext?.[FieldAnnotationsType.Importance] !== undefined) {\n\t\t\t\tconst importance = lineItemContext[FieldAnnotationsType.Importance];\n\t\t\t\tcolumnDataObject.importance = importance;\n\t\t\t}\n\t\t}\n\n\t\treturn columnDataObject;\n\t}\n\n\t/**\n\t * Retrieves the column object details based on the provided property and entity type.\n\t *\n\t * @param {object} columnDataObject - The column information object to be populated.\n\t * @param {object} propertyDetails - The property object containing metadata about the column.\n\t * @param {object} entityType - The entity type object containing metadata about the entity.\n\t * @param {object} dataField - The data field object containing the lineitem column context object\n\t * @returns {object} The populated column information object.\n\t * @private\n\t */\n\tprivate getColumnObjectDetails(\n\t\tcolumnDataObject: ColumnObjectData,\n\t\tpropertyDetails: UIAnnotationValue,\n\t\tentityType: IEntityType,\n\t\tdataField: ILineItemContext\n\t) {\n\t\tlet sColumnKeyDescription = propertyDetails[UIAnnotations.CommonText]?.Path || \"\";\n\t\tsColumnKeyDescription = \"{\" + sColumnKeyDescription + \"}\";\n\t\tlet sColumnValue = propertyDetails.name ? \"{\" + propertyDetails.name + \"}\" : \"\";\n\t\tlet sNavigation = \"\";\n\t\tconst aSemKeyAnnotation = entityType[UIAnnotations.CommonSemanticKey];\n\t\tconst bIsPropertySemanticKey =\n\t\t\t!!aSemKeyAnnotation &&\n\t\t\taSemKeyAnnotation.some(function (oAnnotation) {\n\t\t\t\treturn oAnnotation.PropertyPath === propertyDetails.name;\n\t\t\t});\n\t\tlet bIsCriticality: boolean = false;\n\t\tlet criticalityAnnotation = undefined;\n\n\t\tif ((dataField?.Criticality && dataField?.Value?.Path) === propertyDetails.name) {\n\t\t\tcriticalityAnnotation = dataField;\n\t\t\tbIsCriticality = true;\n\t\t}\n\n\t\tif (propertyDetails[UIAnnotations.MeasuresISOCurrency]?.Path) {\n\t\t\tsColumnValue = sColumnValue.concat(\" \" + \"{\" + sNavigation + propertyDetails[UIAnnotations.MeasuresISOCurrency]?.Path + \"}\");\n\t\t}\n\t\tif (propertyDetails[UIAnnotations.MeasuresUnit]?.Path) {\n\t\t\tsColumnValue = sColumnValue.concat(\" \" + \"{\" + sNavigation + propertyDetails[UIAnnotations.MeasuresUnit]?.Path + \"}\");\n\t\t}\n\t\tif (propertyDetails[UIAnnotations.CommonText]?.Path) {\n\t\t\tlet sTextArragement = propertyDetails[UIAnnotations.CommonText]?.[UIAnnotations.UITextArrangement];\n\t\t\tif (!sTextArragement) {\n\t\t\t\tsTextArragement = entityType[UIAnnotations.UITextArrangement];\n\t\t\t}\n\t\t\tthis._setColumnTextValue(sTextArragement, columnDataObject, sColumnKeyDescription, sColumnValue);\n\t\t} else {\n\t\t\tcolumnDataObject[\"value\"] = sColumnValue;\n\t\t\tif (bIsPropertySemanticKey) {\n\t\t\t\tcolumnDataObject[\"identifier\"] = bIsPropertySemanticKey;\n\t\t\t}\n\t\t}\n\t\tif (bIsCriticality) {\n\t\t\tcolumnDataObject[\"state\"] = this.buildExpressionForCriticalityColor(criticalityAnnotation);\n\t\t\tcolumnDataObject[\"showStateIcon\"] =\n\t\t\t\tcriticalityAnnotation?.CriticalityRepresentation?.EnumMember !==\n\t\t\t\t\tFieldAnnotationsType.CriticalityRepresentationTypeWithoutIcon || true;\n\t\t}\n\t\tcolumnDataObject[\"path\"] = propertyDetails[UIAnnotations.CommonText]?.Path || propertyDetails.name;\n\t\tcolumnDataObject[\"type\"] = propertyDetails.type;\n\t\treturn columnDataObject;\n\t}\n\n\t/**\n\t * Build expression for the criticality annotation, kept same as the one used in LROP\n\t * @param {object} criticalityAnnotation - The criticality annotation object\n\t * @returns {string} The expression for the criticality color\n\t * @private\n\t */\n\tprivate buildExpressionForCriticalityColor(criticalityAnnotation?: ILineItemContext) {\n\t\tlet sFormatCriticalityExpression: CoreLib.ValueState | string = ValueState.None;\n\t\tlet sExpressionTemplate;\n\t\tlet oCriticalityProperty = criticalityAnnotation?.Criticality;\n\t\tenum CriticalityType {\n\t\t\tNegative = \"com.sap.vocabularies.UI.v1.CriticalityType/Negative\",\n\t\t\tCritical = \"com.sap.vocabularies.UI.v1.CriticalityType/Critical\",\n\t\t\tPositive = \"com.sap.vocabularies.UI.v1.CriticalityType/Positive\"\n\t\t}\n\t\tif (oCriticalityProperty) {\n\t\t\tsExpressionTemplate =\n\t\t\t\t\"'{'= ({0} === ''\" +\n\t\t\t\tCriticalityType.Negative +\n\t\t\t\t\"'') || ({0} === ''1'') || ({0} === 1) ? ''\" +\n\t\t\t\tValueState.Error +\n\t\t\t\t\"'' : \" +\n\t\t\t\t\"({0} === ''\" +\n\t\t\t\tCriticalityType.Critical +\n\t\t\t\t\"'') || ({0} === ''2'') || ({0} === 2) ? ''\" +\n\t\t\t\tValueState.Warning +\n\t\t\t\t\"'' : \" +\n\t\t\t\t\"({0} === ''\" +\n\t\t\t\tCriticalityType.Positive +\n\t\t\t\t\"'') || ({0} === ''3'') || ({0} === 3) ? ''\" +\n\t\t\t\tValueState.Success +\n\t\t\t\t\"'' : \" +\n\t\t\t\t\"''\" +\n\t\t\t\tValueState.None +\n\t\t\t\t\"'' '}'\";\n\t\t\tif (oCriticalityProperty?.Path) {\n\t\t\t\tconst sCriticalitySimplePath = \"${\" + oCriticalityProperty.Path + \"}\";\n\t\t\t\tsFormatCriticalityExpression = formatMessage(sExpressionTemplate, [sCriticalitySimplePath]);\n\t\t\t} else if (oCriticalityProperty?.EnumMember) {\n\t\t\t\tconst sCriticality = \"'\" + oCriticalityProperty.EnumMember + \"'\";\n\t\t\t\tsFormatCriticalityExpression = formatMessage(sExpressionTemplate, [sCriticality]);\n\t\t\t} else {\n\t\t\t\tLog.warning(\"Case not supported, returning the default sap.ui.core.ValueState.None\");\n\t\t\t}\n\t\t} else {\n\t\t\t// Any other cases are not valid, the default value of 'None' will be returned\n\t\t\tLog.warning(\"Case not supported, returning the default sap.ui.core.ValueState.None\");\n\t\t}\n\n\t\treturn sFormatCriticalityExpression;\n\t}\n\n\t/**\n\t * Sets display text format of column\n\t *\n\t * @private\n\t * @param {{EnumMember: string} | undefined} sTextArragement - sTextArragement object\n\t * @param { ColumnObjectData} columnDataObject - Object containing column details\n\t * @param {string} sColumnKeyDescription - Description field to include in text value\n\t * @param {string} sColumnValue - The value to include in Text value\n\t */\n\tprivate _setColumnTextValue(\n\t\tsTextArragement: { EnumMember: string } | undefined,\n\t\tcolumnDataObject: ColumnObjectData,\n\t\tsColumnKeyDescription: string,\n\t\tsColumnValue: string\n\t) {\n\t\tenum TextArrangementType {\n\t\t\tTextOnly = \"TextOnly\",\n\t\t\tTextLast = \"TextLast\",\n\t\t\tTextSeparate = \"TextSeparate\"\n\t\t}\n\t\tconst sTextArrangementType = sTextArragement?.EnumMember?.split(\"/\")[1];\n\t\tlet valueExpr;\n\n\t\tswitch (sTextArrangementType) {\n\t\t\tcase TextArrangementType.TextOnly:\n\t\t\t\tvalueExpr = `{= $${sColumnKeyDescription} === '' ? '' : $${sColumnKeyDescription} }`;\n\t\t\t\tbreak;\n\n\t\t\tcase TextArrangementType.TextLast:\n\t\t\t\tvalueExpr =\n\t\t\t\t\t`{= $${sColumnValue} === '' ? '' : $${sColumnValue} }` +\n\t\t\t\t\t`{= $${sColumnKeyDescription} === '' ? '' : ' (' + ($${sColumnKeyDescription}) + ')' }`;\n\t\t\t\tbreak;\n\n\t\t\tcase TextArrangementType.TextSeparate:\n\t\t\t\tvalueExpr = `{= $${sColumnValue} === '' ? '' : $${sColumnValue} }`;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tvalueExpr =\n\t\t\t\t\t`{= $${sColumnKeyDescription} === '' ? '' : $${sColumnKeyDescription} }` +\n\t\t\t\t\t`{= $${sColumnValue} === '' ? '' : ' (' + ($${sColumnValue}) + ')' }`;\n\t\t\t\tbreak;\n\t\t}\n\t\tcolumnDataObject[\"value\"] = valueExpr;\n\t}\n\n\t// get requestAtlLeastFields from PresentationVariant\n\tprivate _getRequestAtLeastFields(presentationVariant: IPresentationVariant): string[] | RequestAtleastFieldType[] | [] {\n\t\treturn presentationVariant && Array.isArray(presentationVariant.requestAtLeastFields)\n\t\t\t? presentationVariant.requestAtLeastFields\n\t\t\t: [];\n\t}\n\n\t/**\n\t * Creates a query string with custom parameters for OData requests.\n\t *\n\t * This method generates a query string containing `$expand` and `$select` parameters\n\t * based on the provided input object. The values are URL-encoded to ensure proper formatting.\n\t *\n\t * @param {object} mParameters - An object containing the parameters for the query string.\n\t * @param {string | undefined} mParameters.expand - The value for the `$expand` parameter, if any.\n\t * @param {string | undefined} mParameters.select - The value for the `$select` parameter, if any.\n\t * @returns {string} A query string containing the `$expand` and `$select` parameters, joined by `&`.\n\t * @private\n\t */\n\tprivate createCustomParams(mParameters: SelectExpandDetail): string {\n\t\tconst aCustomParams = [];\n\t\tif (mParameters?.expand) {\n\t\t\taCustomParams.push(\"$expand=\" + encodeURL(mParameters[\"expand\"]));\n\t\t}\n\t\tif (mParameters?.select) {\n\t\t\taCustomParams.push(\"$select=\" + encodeURL(mParameters[\"select\"]));\n\t\t}\n\t\treturn aCustomParams.join(\"&\");\n\t}\n\n\t/**\n\t * Retrieves an object from the OData meta model based on the given entity type and path.\n\t *\n\t * This method resolves the provided path to an absolute path if it is relative, using the entity type as the base.\n\t * It then retrieves the corresponding object from the meta model. Any \"@\" characters in the path are removed\n\t * to match the meta model's structure.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and annotations.\n\t * @param {string} entityTypeName - The entity type used as the base for resolving relative paths.\n\t * @param {string} path - The path to the object in the meta model. Can be relative or absolute.\n\t * @returns {IPresentationVariant | ILineItem[]} The object retrieved from the meta model, which can be a presentation variant or an array of nested objects.\n\t * @private\n\t */\n\tprivate getObject<T extends IPresentationVariant | ILineItem[]>(metaModel: ODataMetaModel, entityTypeName: string, path: string): T {\n\t\tif (path[0] !== \"/\") {\n\t\t\t// relative path - add path of annotation target, i.e. EntityType\n\t\t\tpath = (metaModel.getODataEntityType(entityTypeName, true) as string) + \"/\" + path; //*****check this */\n\t\t}\n\t\t// assumption: absolute paths in annotations are equal to corresponding paths in metaModel\n\t\t// any \"@\" are removed in the metaModel\n\t\treturn metaModel.getObject(path.replace(/@/g, \"\")) as T;\n\t}\n\n\t/**\n\t * Check If Page is List Report\n\t *\n\t * @param {object} page - page object\n\t * @returns {boolean} returns boolean\n\t * @private\n\t */\n\tpublic _isListReport(page?: IPageType): boolean {\n\t\treturn page?.component?.name === \"sap.suite.ui.generic.template.ListReport\";\n\t}\n\n\t/**\n\t * @param {IPageType[] | PageRecord} pages - pages object from manifest\n\t * @returns {ILrSettings} - returns the settings object for the ListReport\n\t */\n\tprivate getSettingsForPage(pages: IPageType[] | undefined | PageRecord): ILrSettings {\n\t\tif (!pages) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet lrSettings: ILrSettings = {};\n\n\t\t// Handling array and object structure in LR V2 manifest\n\t\tif (Array.isArray(pages) && this._isListReport(pages[0])) {\n\t\t\tconst listPage = pages[0];\n\t\t\tif (listPage?.component) {\n\t\t\t\tconst component = listPage.component;\n\t\t\t\tlrSettings = component?.settings || {};\n\t\t\t\tlrSettings.bSupressCardRowNavigation = this.shouldSuppressCardRowNavigation(listPage);\n\t\t\t}\n\t\t} else if (Object.keys(pages).length) {\n\t\t\tconst sListKey = Object.keys(pages).find((key) => this._isListReport((pages as PageRecord)[key] as IPageType));\n\t\t\tif (sListKey) {\n\t\t\t\tconst listPage = (pages as PageRecord)[sListKey] as IPageType;\n\n\t\t\t\tif (listPage?.component) {\n\t\t\t\t\tconst component = listPage.component;\n\t\t\t\t\tlrSettings = (component?.settings ?? {}) as ILrSettings;\n\t\t\t\t\tlrSettings.bSupressCardRowNavigation = this.shouldSuppressCardRowNavigation(listPage);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn lrSettings;\n\t}\n\n\t/**\n\t * Determines whether card row navigation should be suppressed for the card\n\t *\n\t * @param {IPageType} page - The ListReport page object from the manifest.\n\t * @returns {boolean} True if card row navigation should be suppressed\n\t */\n\tprivate shouldSuppressCardRowNavigation(listPage: IPageType): boolean {\n\t\t// LR only app or if external navigation from OP\n\t\tif (listPage.pages) {\n\t\t\t// If pages is an array, handle based on its length and navigation property\n\t\t\tif (Array.isArray(listPage.pages)) {\n\t\t\t\tif (listPage.pages.length === 0 || listPage.pages[0]?.navigation) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If pages is an object, check if the object keys have navigation\n\t\t\t\tconst keys = Object.keys(listPage.pages);\n\t\t\t\tif (keys.length === 0 || (keys.length && (listPage.pages[keys[0]] as IPageType)?.navigation)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t//if no list pages return true\n\t\t\treturn true;\n\t\t}\n\n\t\t// Check for Quick variant selection X in settings\n\t\tif (listPage?.component?.settings?.quickVariantSelectionX) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * @param {object} metaModel - metamodel object\n\t * @param {ILrSettings} ILrSettings - settings object from the manifest\n\t * @param {string} entitySetName - entity set of the application\n\t * @returns {object} - returns the normalized table settings\n\t * @private\n\t */\n\tprivate getNormalizedTableSettings(\n\t\tmetaModel: ODataMetaModel,\n\t\tlRVariantSettings: ILrSettings | IVariantSetting,\n\t\tentitySetName: string\n\t): ITableSettings {\n\t\tconst settings = deepExtend({}, lRVariantSettings) as ILrSettings;\n\n\t\t// 1. map boolean settings gridTable and treeTable to tableType\n\t\tif (settings && !settings.tableType) {\n\t\t\tif (settings.gridTable) {\n\t\t\t\tsettings.tableType = TABLE_TYPES.GRID;\n\t\t\t} else if (settings.treeTable) {\n\t\t\t\tsettings.tableType = TABLE_TYPES.TREE;\n\t\t\t}\n\t\t}\n\n\t\t// 2. map flat settings to structured ones\n\t\tsettings.tableSettings = settings.tableSettings || {};\n\t\tsettings.tableSettings.type = settings.tableSettings.type || settings.tableType;\n\n\t\tconst entitySet = metaModel.getODataEntitySet(entitySetName) as IEntitySet;\n\t\tconst entityTypeData = metaModel.getODataEntityType(entitySet.entityType) as IEntityType;\n\n\t\t// 3. determine type\n\t\tif (\n\t\t\tsettings.tableSettings.type !== TABLE_TYPES.STANDARD_LIST &&\n\t\t\tsettings.tableSettings.type !== TABLE_TYPES.OBJECT_LIST &&\n\t\t\tentitySetName\n\t\t) {\n\t\t\tsettings.tableSettings.type =\n\t\t\t\tsettings.tableSettings.type ||\n\t\t\t\t(entityTypeData[UIAnnotations.SapSemantics] === \"aggregate\" ? TABLE_TYPES.ANALYTICAL : TABLE_TYPES.RESPONSIVE);\n\t\t\tif (settings.tableSettings.type === TABLE_TYPES.ANALYTICAL && !(entityTypeData[UIAnnotations.SapSemantics] === \"aggregate\")) {\n\t\t\t\tsettings.tableSettings.type = TABLE_TYPES.GRID;\n\t\t\t}\n\t\t}\n\n\t\tif (entityTypeData[UIAnnotations.UIHeaderInfo]) {\n\t\t\tsettings.tableSettings.headerInfo = entityTypeData[UIAnnotations.UIHeaderInfo];\n\t\t}\n\n\t\t// 4. remove deprecated settings (to avoid new code to rely on them)\n\t\tdelete settings.gridTable;\n\t\tdelete settings.treeTable;\n\t\tdelete settings.tableType;\n\n\t\treturn settings.tableSettings;\n\t}\n\n\t/**\n\t * @param {object} metaModel - metamodel object\n\t * @param {string} entitySetName - entity set of the application\n\t * @param {object} tabItem - details of the variant tab\n\t * @returns {boolean} - returns true if the variant is a smart chart\n\t */\n\tprivate checkIfSmartChart(metaModel: ODataMetaModel, entitySetName: string, tabItem: IVariantSetting): boolean {\n\t\tlet entitySetData = metaModel.getODataEntitySet(entitySetName) as IEntitySet;\n\t\tlet entityTypeData = metaModel.getODataEntityType(entitySetData.entityType) as IEntityType;\n\t\tlet annotationName, annotationPath, variantData;\n\t\tannotationPath = tabItem.annotationPath;\n\t\t//variantData = !!annotationPath && (entityTypeData[annotationPath] as VariantInfo);\n\t\tvariantData = annotationPath ? (entityTypeData[annotationPath] as VariantInfo) : undefined;\n\n\t\tif (variantData?.PresentationVariant) {\n\t\t\t// oVariant is SelectionPresentationVariant\n\t\t\tif (variantData.PresentationVariant.Visualizations) {\n\t\t\t\tannotationName = variantData.PresentationVariant.Visualizations[0].AnnotationPath;\n\t\t\t} else if (variantData.PresentationVariant.Path) {\n\t\t\t\tlet sPresentationVariantPath = variantData.PresentationVariant.Path.split(\"@\")[1];\n\t\t\t\tlet oPresentationVariantAnnotation =\n\t\t\t\t\tsPresentationVariantPath && (entityTypeData[sPresentationVariantPath] as IPresentationVariant);\n\t\t\t\tannotationName = oPresentationVariantAnnotation ? oPresentationVariantAnnotation?.Visualizations?.[0].AnnotationPath : \"\";\n\t\t\t}\n\t\t} else if (variantData?.Visualizations) {\n\t\t\t// oVariant is PresentationVariant\n\t\t\tannotationName = variantData.Visualizations[0].AnnotationPath;\n\t\t}\n\n\t\treturn !!((annotationName ?? \"\").indexOf(UIAnnotations.UIChart) > -1);\n\t}\n\n\t/**\n\t * function returns true if the passed entityset / properties have mandatory properties\n\t *\n\t * @param {EntitySet} entitySetData - Entity set\n\t * @param {Array} propertiesSet - Additional Properties\n\t * @returns {boolean} returns boolean\n\t * @private\n\t */\n\tpublic hasMandatoryProperties(entitySetData?: IEntitySet, propertiesSet?: Property[]): boolean {\n\t\t// if entityset has required properties in filter restrictions return true\n\t\tif (entitySetData?.[\"Org.OData.Capabilities.V1.FilterRestrictions\"]?.[\"RequiredProperties\"]?.length) {\n\t\t\treturn true;\n\t\t} else if (propertiesSet?.length) {\n\t\t\t// iterate through all properties and return true if any property is mandatory or sap:rquired-in-filter is true\n\t\t\treturn propertiesSet.some((propertyDetail: Record<string, string> | Property) => {\n\t\t\t\treturn (\n\t\t\t\t\tObject.keys(propertyDetail).length &&\n\t\t\t\t\t((propertyDetail as UIAnnotationValue)[\"sap:parameter\"] === \"mandatory\" ||\n\t\t\t\t\t\t(propertyDetail as UIAnnotationValue)[\"sap:required-in-filter\"] === \"true\")\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Check if sEntitySet has association with parameterised entityset and if it has give parametersised entityset parameters\n\t * @param {object} metaModel OData MetaModel\n\t * @param {string} entitySetName of the EntitySet which has Parameter Entityset in association.\n\t * @param {boolean} infoParamsRequired If the full info of parameters is needed or only the name of params is needed.\n\t * @return {ParameterisedEntity} Contains name of Parameter EntitySet, keys of Parameter EntitySet and Name of Navigation property.\n\t * @private\n\t */\n\tpublic _getParametersisedEntitySetParams(\n\t\tmetaModel: ODataMetaModel,\n\t\tentitySetName: string,\n\t\tinfoParamsRequired: boolean\n\t): ParameterisedEntity {\n\t\tif (!metaModel) {\n\t\t\tthrow new Error(\"OData Model needs to be passed as an argument\");\n\t\t}\n\t\tconst oResult: ParameterisedEntity = { entitySetName: null, parameters: [], navPropertyName: null };\n\t\tconst entitySetData = metaModel.getODataEntitySet(entitySetName) as IEntitySet;\n\t\tconst entityTypeData = metaModel.getODataEntityType(entitySetData.entityType) as IEntityType;\n\t\tconst aNavigationProperties = entityTypeData.navigationProperty;\n\n\t\tif (!aNavigationProperties) {\n\t\t\treturn oResult;\n\t\t}\n\n\t\t// filter the parameter entityset for extracting it's key and it's entityset name\n\t\taNavigationProperties.forEach(function (oNavProperty) {\n\t\t\tconst oNavigationEntitySet = metaModel.getODataAssociationEnd(entityTypeData, oNavProperty.name);\n\t\t\tconst oNavigationEntityType = oNavigationEntitySet && (metaModel.getODataEntityType(oNavigationEntitySet.type) as IEntityType);\n\n\t\t\tif (oNavigationEntityType?.[UIAnnotations.SapSemantics] !== \"parameters\" || !oNavigationEntityType.key) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\toResult.entitySetName = metaModel.getODataAssociationSetEnd(entityTypeData, oNavProperty.name)?.entitySet;\n\t\t\tfor (let value of oNavigationEntityType.key.propertyRef) {\n\t\t\t\tif (infoParamsRequired) {\n\t\t\t\t\tconst navProp = oNavigationEntityType.property as Property[];\n\t\t\t\t\tfor (let navProperty of navProp) {\n\t\t\t\t\t\tif (navProperty.name === value.name) {\n\t\t\t\t\t\t\toResult.parameters.push(navProperty);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\toResult.parameters.push(value.name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst aSubNavigationProperties = oNavigationEntityType.navigationProperty;\n\t\t\t// Parameter entityset must have association back to main entityset.\n\t\t\tconst bBackAssociationPresent = aSubNavigationProperties?.some(function (oSubNavigationProperty) {\n\t\t\t\tconst sSubNavigationEntityType = metaModel.getODataAssociationEnd(\n\t\t\t\t\toNavigationEntityType,\n\t\t\t\t\toSubNavigationProperty?.name\n\t\t\t\t)?.type;\n\t\t\t\t//if entityset.entitytype is same as subnavigation entitytype then it's a back association\n\t\t\t\toResult.navPropertyName = sSubNavigationEntityType === entitySetData.entityType ? oSubNavigationProperty?.name : null;\n\t\t\t\treturn oResult.navPropertyName;\n\t\t\t});\n\n\t\t\treturn bBackAssociationPresent && oResult.navPropertyName && oResult.entitySetName;\n\t\t});\n\t\treturn oResult;\n\t}\n\n\t/**\n\t * This function check if a lineitem annotation column is visible or not\n\t * @param {object} lineItemAnnotations - The column details object\n\t * @returns {Boolean} The column visibility status {true/false}\n\t * @private\n\t */\n\tprivate isPropertyHidden(lineItemAnnotations: ILineItemContext): boolean {\n\t\tlet oFieldControl = lineItemAnnotations[UIAnnotations.CommonFieldControl];\n\t\tlet uiHidden = lineItemAnnotations[UIAnnotations.UIHidden];\n\n\t\t// Check for FieldControl Hidden\n\t\tif (oFieldControl?.EnumMember === FieldAnnotationsType.FieldControlHiddenType) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Check for UI Hidden\n\t\tif (uiHidden) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(uiHidden, \"Bool\")) {\n\t\t\t\treturn uiHidden?.Bool === \"true\";\n\t\t\t} else if (Object.prototype.hasOwnProperty.call(uiHidden, \"Path\")) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true; // <Annotation Term=\"UI.Hidden\"/>\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Creates a P13N string for a given entity set, property, and line item column.\n\t *\n\t * @param {Object} contextSet - The entity set object.\n\t * @param {Object} contextProp - The property details from metadata.\n\t * @param {Object} columnDataField - The line item column data field.\n\t * @param {Object} metaModel - The metadata model object.\n\t * @returns {string} The P13N string for the specified entity set and property.\n\t * @private\n\t */\n\tprivate createP13N(\n\t\tcontextSet: IEntitySet,\n\t\tcontextProp?: Property | UIAnnotationValue,\n\t\tcolumnDataField?: ILineItemContext,\n\t\tmetaModel?: ODataMetaModel\n\t): string {\n\t\tlet p13nDetails: string = \"\";\n\t\tlet additionalProperties: string[] = [];\n\t\tlet navigationPath: string = \"\";\n\t\tlet recordType = columnDataField?.RecordType;\n\t\tlet dataFieldValue = columnDataField?.Value as ExtendedLineItemContextValue;\n\t\tlet valuePath: string = dataFieldValue?.Path || \"\";\n\n\t\tif (\n\t\t\trecordType === FieldAnnotationsType.DataField ||\n\t\t\trecordType === FieldAnnotationsType.DataFieldForAnnotation ||\n\t\t\trecordType === FieldAnnotationsType.DataFieldWithUrl\n\t\t) {\n\t\t\tif (valuePath) {\n\t\t\t\tlet columnKey = this.createP13NColumnKey(columnDataField as ILineItemContext);\n\t\t\t\tp13nDetails = '\\\\{\"columnKey\":\"' + columnKey + '\", \"leadingProperty\":\"' + valuePath;\n\t\t\t\tnavigationPath = this.getNavigationPrefixPath(metaModel as ODataMetaModel, contextSet, valuePath);\n\t\t\t} else if (dataFieldValue?.Apply?.Name === \"odata.concat\") {\n\t\t\t\tdataFieldValue?.Apply?.Parameters.forEach(function (parameterDetails) {\n\t\t\t\t\tif (parameterDetails.Type === \"Path\") {\n\t\t\t\t\t\tif (!p13nDetails) {\n\t\t\t\t\t\t\tp13nDetails = '\\\\{\"columnKey\":\"' + parameterDetails?.Value + '\", \"leadingProperty\":\"' + parameterDetails?.Value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tadditionalProperties.push(parameterDetails.Value);\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\t// Append type information and additional properties\n\t\t\tp13nDetails += this.processAdditionalProperties(\n\t\t\t\tcontextProp as UIAnnotationValue,\n\t\t\t\tcolumnDataField as ILineItemContext,\n\t\t\t\tnavigationPath,\n\t\t\t\tadditionalProperties\n\t\t\t);\n\t\t\tif (recordType === FieldAnnotationsType.DataFieldWithUrl && columnDataField?.Url) {\n\t\t\t\tthis.processDataFieldWithUrl(columnDataField, additionalProperties);\n\t\t\t}\n\t\t\tif (p13nDetails && additionalProperties.length) {\n\t\t\t\tp13nDetails += '\", \"additionalProperty\":\"' + additionalProperties.join();\n\t\t\t}\n\t\t\tif (p13nDetails) {\n\t\t\t\tp13nDetails += '\"\\\\}';\n\t\t\t}\n\t\t}\n\t\treturn p13nDetails;\n\t}\n\n\t//process DataFieldUrl properties and add them to additionalProperties\n\tprivate processDataFieldWithUrl(columnDataField: ILineItemContext, additionalProperties: string[]): void {\n\t\tconst oDataFieldUrl = columnDataField.Url;\n\t\tif (oDataFieldUrl?.Apply?.Parameters) {\n\t\t\toDataFieldUrl.Apply.Parameters.forEach((oParameter) => {\n\t\t\t\tif (oParameter.Type === \"LabeledElement\" && oParameter.Value?.Path) {\n\t\t\t\t\tadditionalProperties.push(oParameter.Value.Path);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (oDataFieldUrl?.Path) {\n\t\t\tadditionalProperties.push(oDataFieldUrl.Path);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a personalized column key based on the provided data field.\n\t * @param {Object} oDataField - The data field object containing metadata for generating the column key.\n\t * @returns {string} The generated column key based on the data field.\n\t */\n\tprivate createP13NColumnKey(dataFieldColumn: ILineItemContext): string {\n\t\tlet columnKeyName = \"\",\n\t\t\tfioriTemplatePrefix = \"template\",\n\t\t\tseperatorNotation = \"::\";\n\t\tlet recordType = dataFieldColumn.RecordType;\n\t\tlet dataFieldValue = dataFieldColumn?.Value;\n\t\tlet dataFieldSemanticObject = dataFieldColumn.SemanticObject?.String || \"\";\n\t\tlet dataFieldActionString = dataFieldColumn.Action?.String || \"\";\n\t\tlet dataFieldPath = dataFieldValue?.Path || \"\";\n\t\tlet annotationPath: string | undefined = \"\",\n\t\t\tisRelevantAnnotation = null;\n\t\tlet buildKey = function (parts: string[]) {\n\t\t\treturn fioriTemplatePrefix + seperatorNotation + parts.join(seperatorNotation);\n\t\t};\n\n\t\tswitch (recordType) {\n\t\t\tcase FieldAnnotationsType.DataField:\n\t\t\t\tcolumnKeyName = dataFieldPath;\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldWithIntentBasedNavigation:\n\t\t\t\tcolumnKeyName = buildKey([\n\t\t\t\t\tFieldTypes.DataFieldWithIntentBasedNavigation,\n\t\t\t\t\tdataFieldSemanticObject,\n\t\t\t\t\tdataFieldActionString,\n\t\t\t\t\tdataFieldPath\n\t\t\t\t]);\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldWithNavigationPath:\n\t\t\t\tcolumnKeyName = buildKey([FieldTypes.DataFieldWithNavigationPath, dataFieldPath]);\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldForIntentBasedNavigation:\n\t\t\t\tcolumnKeyName = buildKey([FieldTypes.DataFieldForIntentBasedNavigation, dataFieldSemanticObject, dataFieldActionString]);\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldForAction:\n\t\t\t\tcolumnKeyName = buildKey([FieldTypes.DataFieldForAction, dataFieldActionString]);\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldForAnnotation:\n\t\t\t\tannotationPath = dataFieldColumn.Target?.AnnotationPath;\n\n\t\t\t\tisRelevantAnnotation =\n\t\t\t\t\tannotationPath &&\n\t\t\t\t\t(annotationPath.indexOf(FieldAnnotationsType.Contact) >= 0 ||\n\t\t\t\t\t\tannotationPath.indexOf(FieldAnnotationsType.DataPoint) >= 0 ||\n\t\t\t\t\t\tannotationPath.indexOf(FieldAnnotationsType.FieldGroup) >= 0 ||\n\t\t\t\t\t\tannotationPath.indexOf(FieldAnnotationsType.Chart) >= 0);\n\t\t\t\tif (isRelevantAnnotation) {\n\t\t\t\t\tcolumnKeyName = buildKey([FieldTypes.DataFieldForAnnotation, annotationPath as string]);\n\t\t\t\t\t//since DataFieldForAnnotation can contain an @ and this is not working with SmartTable.prototype._addTablePersonalisationToToolbar, it is removed\n\t\t\t\t\tcolumnKeyName = columnKeyName.replace(\"@\", \"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\t// Handle cases where the RecordType does not match any of the known types\n\t\t\t\tcolumnKeyName = \"\";\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn columnKeyName;\n\t}\n\n\t/**\n\t * Retrieves the navigation prefix path for a given entity type and value path.\n\t *\n\t * @param {object} oMetaModel - The meta model object.\n\t * @param {object} oContextSet - The context set object containing the entity type.\n\t * @param {string} sPath - The value path for which the navigation prefix is needed.\n\t * @returns {string} The navigation prefix path.\n\t */\n\tprivate getNavigationPrefixPath(oMetaModel: ODataMetaModel, oContextSet: IEntitySet, sPath: string): string {\n\t\tlet sNavigation = \"\";\n\t\tif (oMetaModel) {\n\t\t\tlet oEntityType = oMetaModel.getODataEntityType(oContextSet.entityType) as IEntityType;\n\t\t\tif (oEntityType) {\n\t\t\t\tsNavigation = this._getNavigationPrefix(oMetaModel, oEntityType, sPath);\n\t\t\t\tif (sNavigation) {\n\t\t\t\t\tsNavigation += \"/\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn sNavigation;\n\t}\n\n\t/**\n\t * Retrieves the navigation prefix for a given property within an entity type.\n\t * @param {Object} metaModel - The metadata model object.\n\t * @param {Object} entityTypeData - The entity type object.\n\t * @param {string} propertyName - The property path for which the navigation prefix is to be determined.\n\t * @returns {string} The navigation prefix for the specified property.\n\t */\n\tprivate _getNavigationPrefix(metaModel: ODataMetaModel, entityTypeData: IEntityType, propertyName: string): string {\n\t\tlet expandName = \"\";\n\t\tlet propertyParts = propertyName.split(\"/\");\n\n\t\tif (propertyParts.length > 1) {\n\t\t\tfor (let i = 0; i < propertyParts.length - 1; i++) {\n\t\t\t\tlet associationEndData = metaModel.getODataAssociationEnd(entityTypeData, propertyParts[i]);\n\t\t\t\tif (!associationEndData) {\n\t\t\t\t\treturn expandName;\n\t\t\t\t}\n\t\t\t\tif (associationEndData) {\n\t\t\t\t\tentityTypeData = metaModel.getODataEntityType(associationEndData.type) as IEntityType;\n\t\t\t\t\texpandName += (expandName ? \"/\" : \"\") + propertyParts[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn expandName;\n\t}\n\n\t/**\n\t * Processes additional properties for a given context property and data field.\n\t *\n\t * This method analyzes the provided context property and data field to extract additional properties\n\t * such as criticality, text annotations, unit annotations, and field control paths. It also determines\n\t * the type of the property (e.g., date, string) and appends this information to the P13N string.\n\t *\n\t * @param {UIAnnotationValue} oContextProp - The context property object containing metadata about the property.\n\t * @param {ILineItemContext} oDataField - The data field object containing line item metadata.\n\t * @param {string} sNavigationPath - The navigation path to be prefixed to certain properties.\n\t * @param {string[]} aAdditionalProperties - An array to which additional property paths will be added.\n\t * @returns {string} A P13N string containing additional property details such as type and unit.\n\t * @private\n\t */\n\tprivate processAdditionalProperties(\n\t\toContextProp: UIAnnotationValue,\n\t\toDataField: ILineItemContext,\n\t\tsNavigationPath: string,\n\t\taAdditionalProperties: string[]\n\t): string {\n\t\tlet additionalP13N = \"\";\n\n\t\t// Check for DateTime type with specific display format\n\t\tif (oContextProp?.type === \"Edm.DateTime\" && oContextProp?.[\"sap:display-format\"] === \"Date\") {\n\t\t\tadditionalP13N += '\", \"type\":\"date';\n\t\t} else if (oContextProp?.type === \"Edm.String\") {\n\t\t\tadditionalP13N += '\", \"type\":\"string';\n\t\t}\n\n\t\t// Add Criticality property if available\n\t\tif (oDataField?.Criticality?.Path) {\n\t\t\taAdditionalProperties.push(oDataField?.Criticality.Path);\n\t\t}\n\t\tlet oContextCommonText = oContextProp?.[UIAnnotations.CommonText];\n\n\t\t// Add Text annotation property if available\n\t\tif (oContextCommonText?.Path) {\n\t\t\taAdditionalProperties.push(sNavigationPath + oContextCommonText?.Path);\n\t\t}\n\n\t\t// Add Unit annotation property if available\n\t\tconst oUnitAnnotation = oContextProp\n\t\t\t? oContextProp[UIAnnotations.MeasuresISOCurrency] || oContextProp[UIAnnotations.MeasuresUnit]\n\t\t\t: null;\n\t\tif (oUnitAnnotation?.Path) {\n\t\t\taAdditionalProperties.push(oUnitAnnotation.Path);\n\t\t\tadditionalP13N += '\", \"unit\":\"' + oUnitAnnotation.Path;\n\t\t}\n\t\t// Add FieldControl property if available\n\t\tif (oContextProp?.[UIAnnotations.CommonFieldControl]?.Path) {\n\t\t\taAdditionalProperties.push(sNavigationPath + oContextProp[UIAnnotations.CommonFieldControl].Path);\n\t\t}\n\n\t\treturn additionalP13N;\n\t}\n\n\t/**\n\t * Determines whether a column is supported for card creation.\n\t *\n\t * This method checks conditions to determine if a column is eligible for inclusion in a card,\n\t * conditions are kept similar to RT cards restrictions in V2 LR.\n\t *\n\t * @param {Record<string, string>} columnDataObject - The column data object containing metadata about the column.\n\t * @param {ILineItemContext} dataFieldDetails - The data field object containing line item metadata.\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and properties.\n\t * @param {IEntitySet} entitySetData - The entity set to which the column belongs.\n\t * @returns {boolean} `true` if the column is supported for card creation, otherwise `false`.\n\t * @private\n\t */\n\tprivate isSupportedColumn(\n\t\tcolumnDataObject: ColumnObjectData,\n\t\tdataFieldDetails: ILineItemContext,\n\t\tmetaModel: ODataMetaModel,\n\t\tentitySetData: IEntitySet\n\t): boolean {\n\t\tlet sRecordType = dataFieldDetails.RecordType;\n\t\tif (\n\t\t\tsRecordType === FieldAnnotationsType.DataFieldForAnnotation ||\n\t\t\tsRecordType === FieldAnnotationsType.DataFieldForAction ||\n\t\t\tsRecordType === FieldAnnotationsType.DataFieldForIntentBasedNavigation ||\n\t\t\t!columnDataObject\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tlet entityType = metaModel.getODataEntityType(entitySetData.entityType) as IEntityType;\n\t\tlet propertyDetails = metaModel.getODataProperty(entityType, columnDataObject.leadingProperty!) as UIAnnotationValue;\n\t\tlet columnKeyName = columnDataObject.columnKey;\n\n\t\tif (\n\t\t\tthis.checkMultiplicityForDataFieldAssociation(metaModel, entitySetData, dataFieldDetails) ||\n\t\t\t(columnKeyName &&\n\t\t\t\t(columnKeyName.indexOf(FieldTypes.DataFieldForAnnotation) > -1 ||\n\t\t\t\t\tcolumnKeyName.indexOf(FieldTypes.DataFieldForAction) > -1 ||\n\t\t\t\t\tcolumnKeyName.indexOf(FieldTypes.DataFieldForIntentBasedNavigation) > -1 ||\n\t\t\t\t\tpropertyDetails?.[UIAnnotations.UIIsImageURL]?.Bool === \"true\"))\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks the multiplicity of a data field's association in the OData model.\n\t *\n\t * This method verifies whether the association for a given data field has a multiplicity of `*` (many).\n\t * It traverses the navigation path of the data field to determine the multiplicity of the associated entity.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing entity and association metadata.\n\t * @param {IEntitySet} entitySetData - The entity set to which the data field belongs.\n\t * @param {ILineItemContext} dataFieldValue - The data field whose association multiplicity is to be checked.\n\t * @returns {boolean} `true` if the association has a multiplicity of `*`, otherwise `false`.\n\t * @private\n\t */\n\tprivate checkMultiplicityForDataFieldAssociation(\n\t\tmetaModel: ODataMetaModel,\n\t\tentitySetData: IEntitySet,\n\t\tdataFieldValue: ILineItemContext\n\t): boolean {\n\t\tif (dataFieldValue?.Value?.Path) {\n\t\t\tlet dataFieldValuePath = dataFieldValue.Value.Path;\n\t\t\tlet entityTypeData = metaModel && (metaModel.getODataEntityType(entitySetData.entityType) as IEntityType);\n\t\t\tlet associationData: AssociationEnd | null | undefined;\n\t\t\tif (!(dataFieldValuePath.indexOf(\"/\") > -1) || !entityTypeData) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\twhile (dataFieldValuePath.indexOf(\"/\") > -1) {\n\t\t\t\t//if complex path exists then check for multiplicity\n\t\t\t\tlet navigationPropertyPath = dataFieldValuePath.split(\"/\")[0];\n\t\t\t\tdataFieldValuePath = dataFieldValuePath.split(\"/\").slice(1).join(\"/\");\n\t\t\t\tentityTypeData = (metaModel.getODataEntityType((associationData as AssociationEnd)?.type) as IEntityType) || entityTypeData;\n\t\t\t\tassociationData = metaModel.getODataAssociationEnd(entityTypeData, navigationPropertyPath) as AssociationEnd;\n\t\t\t}\n\t\t\tif (associationData && associationData.multiplicity === \"*\") {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"RecommendedCardUtil.js","names":["sap","ui","define","Formatting","Log","encodeURL","formatMessage","deepExtend","BaseObject","CoreLib","___interface_CardsInterface","___Constants","___DataFormatUtils","UIAnnotations","TABLE_TYPES","sortCollectionByImportance","COLUMN_LENGTH","ValueState","FieldAnnotationsType","FieldTypes","RecommendedCardUtil","getInstance","Instance","getLineItemDetails","metaModel","originalManifest","leadingEntitySet","leadingEntitySetDetails","getODataEntitySet","variantInfo","getLineItemFromVariant","entityType","lineItemDefault","lineItem","pages","lrSettings","getSettingsForPage","quickVariantSelectionX","createDefaultLineItemDetails","oVariants","variants","firstAvailableKey","sEntitySet","oVariant","findFirstNonSmartChartVariant","isSmartChart","requestAtLeastFields","defaultTableSettings","getNormalizedTableSettings","entitySet","quickVariantInfo","annotationPath","split","presentationVariant","RequestAtLeast","length","_getRequestAtLeastFields","tableSettings","validateResponsiveTable","isResponsiveTable","undefined","lineItemDetail","quickVariant","headerInfo","sKey","Object","prototype","hasOwnProperty","call","oEntitySet","checkIfSmartChart","isResponsive","type","RESPONSIVE","error","oMetaModel","qualifier","oSelectionPresentationVariant","getAnnotation","UISelectionPresentationVariant","oPresentationVariant","PresentationVariant","getPresentationVariant","UIPresentationVariant","oDetails","getLineItem","UILineItem","qualifierPath","annotation","qualifierName","fullAnnotation","entityTypeData","getODataEntityType","selectionPresentationVariant","Path","getObject","presentationVariantData","visualizationData","Visualizations","find","oVis","AnnotationPath","includes","sQualifier","_getRelevantColumnPaths","columns","Array","isArray","selectSet","Set","expandSet","forEach","oColumnData","sPath","sAdditionalPath","sExpandPath","add","extractPathAndInsertToSet","select","from","expand","pathSet","path","extractAndExpandNavigationProperty","entitySetName","selects","expands","mNavigationProperties","iPos","lastIndexOf","sNavigation","getNavigationProperty","substring","push","navProperty","mMyNavigationProperties","oEntityType","aNavigationProperty","navigationProperty","oNavigationProperty","navName","name","_addNecessaryFields","aSelects","oInfo","aProperties","RecordType","DataFieldWithIntentBasedNavigation","DataFieldWithNavigationPath","aDataFieldsWithNavigation","getDataFieldsWithNavigation","concat","getFieldControlsPath","property","ensureSelectionProperty","sSelect","oProperty","getODataProperty","CommonFieldControl","oFieldControl","requestFields","valuePath","Value","lineItemProperty","textAnnotation","CommonText","sapTextAnnotation","SemanticObject","Action","getParameters","oSelectExpand","aExpands","alwaysSelectField","_ensureSelectionProperties","_handleMandatorySelectionFields","join","item","PropertyPath","key","propertyRef","field","sProperty","sElement","_createCardManifest","oInput","oVersionInfo","manifest","bSuppressRowNavigation","oUIManifest","oAppManifest","attributeIndex","assign","id","Date","now","title","cardTitle","subTitle","oNewManifest","createManifestSapApp","createManifestSapCard","createSapui5","oContent","content","slice","column","columnValue","_getAttributeValue","identifier","value","attributes","visible","state","showStateIcon","actions","parentAppId","cardType","versions","ui5","version","buildTimestamp","attributeData","attributeValue","startsWith","oDateFormatOptions","JSON","stringify","pattern","getDatePattern","appManifest","manifestAppData","dataSources","mainService","settings","datasource","sServiceUrl","uri","sCountPath","sText","text","oCardConfig","createManifestSapCardConfig","createManifestSapCardData","url","status","data","maxItems","attributesLayoutType","addCardActions","semanticObject","action","sapCard","semObj","semanticAction","oHeaderParams","ibnTarget","sensitiveProps","ibnParams","oHeaderParameterValue","parameters","oContentParams","parse","oContentParameterValue","configuration","headerState","contentState","header","oCardConfiguration","_relevantODataFilters","_relevantODataParameters","_entitySet","_urlSuffix","destinations","service","defaultUrl","csrfTokens","token1","request","method","headers","_version","contentDensities","compact","cozy","dependencies","libs","lazy","urlExpand","oBatch","Accept","oSapCardData","batch","_getManifestCardData","oParentApp","manifestApp","mainServiceUri","serviceUrl","replace","aColumns","map","oColumn","_getColumnDetail","filter","oItem","mParameters","urlSelectExpand","createCustomParams","finalUrl","aColumnSorted","CommonLabel","String","lineItemContext","oPropertyHidden","UIHidden","Bool","isPropertyHidden","keys","oP13NDetails","createP13N","columnDataObject","isSupportedColumn","getColumnObjectDetails","Importance","importance","propertyDetails","dataField","sColumnKeyDescription","sColumnValue","aSemKeyAnnotation","CommonSemanticKey","bIsPropertySemanticKey","some","oAnnotation","bIsCriticality","criticalityAnnotation","Criticality","MeasuresISOCurrency","MeasuresUnit","sTextArragement","UITextArrangement","_setColumnTextValue","buildExpressionForCriticalityColor","CriticalityRepresentation","EnumMember","CriticalityRepresentationTypeWithoutIcon","sFormatCriticalityExpression","None","sExpressionTemplate","oCriticalityProperty","CriticalityType","Negative","Error","Critical","Warning","Positive","Success","sCriticalitySimplePath","sCriticality","warning","TextArrangementType","sTextArrangementType","valueExpr","TextOnly","TextLast","TextSeparate","aCustomParams","entityTypeName","_isListReport","page","component","listPage","bSupressCardRowNavigation","shouldSuppressCardRowNavigation","sListKey","navigation","lRVariantSettings","tableType","gridTable","GRID","treeTable","TREE","STANDARD_LIST","OBJECT_LIST","SapSemantics","ANALYTICAL","UIHeaderInfo","tabItem","entitySetData","annotationName","variantData","sPresentationVariantPath","oPresentationVariantAnnotation","indexOf","UIChart","hasMandatoryProperties","propertiesSet","propertyDetail","_getParametersisedEntitySetParams","infoParamsRequired","oResult","navPropertyName","aNavigationProperties","oNavProperty","oNavigationEntitySet","getODataAssociationEnd","oNavigationEntityType","getODataAssociationSetEnd","navProp","aSubNavigationProperties","bBackAssociationPresent","oSubNavigationProperty","sSubNavigationEntityType","lineItemAnnotations","uiHidden","FieldControlHiddenType","contextSet","contextProp","columnDataField","p13nDetails","additionalProperties","navigationPath","recordType","dataFieldValue","DataField","DataFieldForAnnotation","DataFieldWithUrl","columnKey","createP13NColumnKey","getNavigationPrefixPath","Apply","Name","Parameters","parameterDetails","Type","processAdditionalProperties","Url","processDataFieldWithUrl","oDataFieldUrl","oParameter","dataFieldColumn","columnKeyName","fioriTemplatePrefix","seperatorNotation","dataFieldSemanticObject","dataFieldActionString","dataFieldPath","isRelevantAnnotation","buildKey","parts","DataFieldForIntentBasedNavigation","DataFieldForAction","Target","Contact","DataPoint","FieldGroup","Chart","oContextSet","_getNavigationPrefix","propertyName","expandName","propertyParts","i","associationEndData","oContextProp","oDataField","sNavigationPath","aAdditionalProperties","additionalP13N","oContextCommonText","oUnitAnnotation","dataFieldDetails","sRecordType","leadingProperty","checkMultiplicityForDataFieldAssociation","UIIsImageURL","dataFieldValuePath","associationData","navigationPropertyPath","multiplicity"],"sources":["RecommendedCardUtil.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\nimport Formatting from \"sap/base/i18n/Formatting\";\nimport Log from \"sap/base/Log\";\nimport encodeURL from \"sap/base/security/encodeURL\";\nimport formatMessage from \"sap/base/strings/formatMessage\";\nimport deepExtend from \"sap/base/util/deepExtend\";\nimport BaseObject from \"sap/ui/base/Object\";\nimport CoreLib from \"sap/ui/core/library\";\nimport ODataMetaModel, { AssociationEnd, NavigationProperty, Property } from \"sap/ui/model/odata/ODataMetaModel\";\nimport {\n\tIAppInfoData,\n\tIAppManifest,\n\tICardActionParameters,\n\tICardManifest,\n\tIColumnData,\n\tIEntitySet,\n\tIEntityType,\n\tILineItem,\n\tILineItemContext,\n\tILineItemContextValue,\n\tILineItemDetails,\n\tILrSettings,\n\tIManifestCardData,\n\tIPageType,\n\tIPresentationVariant,\n\tIRequestData,\n\tISapApp,\n\tISapCard,\n\tISapCardConfig,\n\tISapUI5App,\n\tITableSettings,\n\tIUIVisualizations,\n\tIVariantSetting,\n\tIVersionInfo,\n\tPageRecord,\n\tUIAnnotations,\n\tUIAnnotationValue\n} from \"../interface/CardsInterface\";\nimport { TABLE_TYPES } from \"./Constants\";\nimport { sortCollectionByImportance } from \"./DataFormatUtils\";\n\nconst COLUMN_LENGTH = 3;\nconst ValueState = CoreLib.ValueState;\n\ninterface VariantInfo {\n\tlineItem?: ILineItem[] | string;\n\tpresentationVariant?: IPresentationVariant;\n\tqualifierPath?: string;\n\tPresentationVariant?: IPresentationVariant;\n\tVisualizations?: IUIVisualizations[];\n}\n\ninterface NonChartDetail {\n\tfirstAvailableKey: string | null;\n\tsEntitySet: string;\n\toVariant: IVariantSetting;\n}\n\ninterface SelectExpand {\n\tselect: string[];\n\texpand: string[];\n}\n\ntype SelectExpandDetail = {\n\tselect?: string;\n\texpand?: string;\n};\n\ntype RequestAtleastFieldType = { String?: string | undefined; PropertyPath?: string | undefined };\ninterface ParameterisedEntity {\n\tentitySetName?: string | null;\n\tparameters: Array<object | string>;\n\tnavPropertyName: string | null;\n}\n\ninterface ColumnObjectData extends Partial<IColumnData> {\n\tleadingProperty?: string;\n\tadditionalProperty?: string;\n\tnavigationProperty?: string;\n\tcolumnKey?: string;\n\t[key: string]: unknown;\n}\n\ninterface NavigationPropertiesMap {\n\t[entitySetName: string]: {\n\t\t[navigationPropertyName: string]: NavigationProperty;\n\t};\n}\n\ninterface ExtendedLineItemContextValue extends ILineItemContextValue {\n\tPath: string;\n\tApply: {\n\t\tName: string;\n\t\tParameters: {\n\t\t\t[key: string]: string;\n\t\t}[];\n\t};\n}\n\nenum FieldAnnotationsType {\n\tDataField = \"com.sap.vocabularies.UI.v1.DataField\",\n\tImportance = \"com.sap.vocabularies.UI.v1.Importance\",\n\tDataFieldWithNavigationPath = \"com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath\",\n\tDataFieldWithIntentBasedNavigation = \"com.sap.vocabularies.UI.v1.DataFieldWithIntentBasedNavigation\",\n\tDataFieldForIntentBasedNavigation = \"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation\",\n\tChart = \"@com.sap.vocabularies.UI.v1.Chart\",\n\tFieldGroup = \"@com.sap.vocabularies.UI.v1.FieldGroup\",\n\tDataPoint = \"@com.sap.vocabularies.UI.v1.DataPoint\",\n\tContact = \"@com.sap.vocabularies.Communication.v1.Contact\",\n\tDataFieldForAction = \"com.sap.vocabularies.UI.v1.DataFieldForAction\",\n\tDataFieldForAnnotation = \"com.sap.vocabularies.UI.v1.DataFieldForAnnotation\",\n\tDataFieldWithUrl = \"com.sap.vocabularies.UI.v1.DataFieldWithUrl\",\n\tCriticalityRepresentationTypeWithoutIcon = \"com.sap.vocabularies.UI.v1.CriticalityRepresentationType/WithoutIcon\",\n\tFieldControlHiddenType = \"com.sap.vocabularies.Common.v1.FieldControlType/Hidden\"\n}\n\nexport enum FieldTypes {\n\tDataFieldWithNavigationPath = \"DataFieldWithNavigationPath\",\n\tDataFieldWithIntentBasedNavigation = \"DataFieldWithIntentBasedNavigation\",\n\tDataFieldForIntentBasedNavigation = \"DataFieldForIntentBasedNavigation\",\n\tDataFieldForAction = \"DataFieldForAction\",\n\tDataFieldForAnnotation = \"DataFieldForAnnotation\"\n}\n\ntype Attribute = { value: string; path: string; type: string };\ntype SelectionProperties = Array<string | { PropertyPath?: string; String?: string }>;\n\nexport default class RecommendedCardUtil extends BaseObject {\n\tstatic Instance: RecommendedCardUtil;\n\n\tstatic getInstance() {\n\t\tif (!RecommendedCardUtil.Instance) {\n\t\t\tRecommendedCardUtil.Instance = new RecommendedCardUtil();\n\t\t}\n\t\treturn RecommendedCardUtil.Instance;\n\t}\n\n\t/**\n\t * @param {object} metaModel - metamodel object\n\t * @param {object} originalManifest - manifest of original app\n\t * @param {string} leadingEntitySet - main entitySet of the application as in manifest\n\t * @returns {object} - returns the lineItem details for the application based on manifest, annotations and metadata\n\t * @private\n\t */\n\tpublic getLineItemDetails(\n\t\tmetaModel: ODataMetaModel,\n\t\toriginalManifest: IAppManifest,\n\t\tleadingEntitySet: string\n\t): ILineItemDetails | undefined {\n\t\tconst leadingEntitySetDetails = metaModel.getODataEntitySet(leadingEntitySet) as IEntitySet;\n\t\tconst variantInfo = this.getLineItemFromVariant(metaModel, leadingEntitySetDetails.entityType);\n\t\tconst lineItemDefault = variantInfo.lineItem;\n\t\tconst pages = originalManifest[\"sap.ui.generic.app\"]?.pages;\n\t\tconst lrSettings = this.getSettingsForPage(pages);\n\n\t\t//if there is no quickVariantSelectionX setting in manifest, then return default line item details\n\t\tif (!lrSettings.quickVariantSelectionX) {\n\t\t\treturn this.createDefaultLineItemDetails(metaModel, variantInfo, lrSettings, leadingEntitySet, lineItemDefault);\n\t\t}\n\n\t\t// if there is a variant settings then find the first non-smart chart variant\n\t\tconst oVariants = lrSettings.quickVariantSelectionX.variants || {};\n\t\tconst { firstAvailableKey, sEntitySet, oVariant } = this.findFirstNonSmartChartVariant(metaModel, oVariants, leadingEntitySet);\n\t\tif (oVariant.isSmartChart) {\n\t\t\treturn this.createDefaultLineItemDetails(metaModel, variantInfo, lrSettings, leadingEntitySet, lineItemDefault);\n\t\t}\n\t\tdelete lrSettings.requestAtLeastFields;\n\n\t\tconst defaultTableSettings = this.getNormalizedTableSettings(metaModel, lrSettings, leadingEntitySet);\n\t\tconst entitySet = metaModel?.getODataEntitySet(sEntitySet) as IEntitySet;\n\t\tconst quickVariantInfo = this.getLineItemFromVariant(metaModel, entitySet.entityType, oVariant.annotationPath?.split(\"#\")[1]);\n\t\tconst lineItem = quickVariantInfo.lineItem;\n\t\tconst presentationVariant = quickVariantInfo.presentationVariant;\n\n\t\tlrSettings.requestAtLeastFields = presentationVariant?.RequestAtLeast?.length\n\t\t\t? presentationVariant.RequestAtLeast\n\t\t\t: this._getRequestAtLeastFields(presentationVariant!);\n\n\t\toVariant.tableSettings = this.getNormalizedTableSettings(\n\t\t\tmetaModel,\n\t\t\t{ ...oVariant, tableSettings: oVariant.tableSettings || defaultTableSettings },\n\t\t\tsEntitySet\n\t\t);\n\n\t\tthis.validateResponsiveTable(lrSettings, oVariant, firstAvailableKey);\n\n\t\tdelete lrSettings.tableSettings;\n\t\tlrSettings.isResponsiveTable = lrSettings.isResponsiveTable === undefined || lrSettings.isResponsiveTable;\n\n\t\tconst lineItemDetail: ILineItemDetails = {\n\t\t\tquickVariant: oVariant,\n\t\t\tlrSettings: lrSettings,\n\t\t\tlineItem: lineItem,\n\t\t\tentitySet: sEntitySet,\n\t\t\theaderInfo: oVariant?.tableSettings?.headerInfo || \"\"\n\t\t};\n\t\treturn lineItem\n\t\t\t? lineItemDetail\n\t\t\t: this.createDefaultLineItemDetails(metaModel, variantInfo, lrSettings, leadingEntitySet, lineItemDefault);\n\t}\n\n\t/**\n\t * Finds the first non-smart chart variant from the provided variants.\n\t *\n\t * This method iterates through the given variants to identify the first variant that is not a smart chart.\n\t * It also determines the associated entity set and updates the variant's metadata to indicate whether it is a smart chart.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and annotations.\n\t * @param {Record<string, IVariantSetting>} oVariants - A record of variants, where each key represents a variant and its associated metadata.\n\t * @param {string} leadingEntitySet - The name of the leading entity set for the application.\n\t * @returns {NonChartDetail}\n}\n\t * An object containing:\n\t * - `firstAvailableKey`: The key of the first non-smart chart variant, or `null` if none is found.\n\t * - `sEntitySet`: The entity set associated with the first non-smart chart variant.\n\t * - `oVariant`: The metadata of the first non-smart chart variant.\n\t * @private\n\t */\n\tprivate findFirstNonSmartChartVariant(\n\t\tmetaModel: ODataMetaModel,\n\t\toVariants: Record<string, IVariantSetting>,\n\t\tleadingEntitySet: string\n\t): NonChartDetail {\n\t\tlet firstAvailableKey: string | null = null;\n\t\tlet sEntitySet = leadingEntitySet;\n\t\tlet oVariant: IVariantSetting = {};\n\n\t\tfor (const sKey in oVariants) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(oVariants, sKey)) continue;\n\n\t\t\toVariant = oVariants[sKey];\n\t\t\tsEntitySet = oVariant.entitySet || leadingEntitySet;\n\t\t\tconst oEntitySet = metaModel.getODataEntitySet(sEntitySet);\n\n\t\t\tif (oEntitySet) {\n\t\t\t\toVariant.isSmartChart = this.checkIfSmartChart(metaModel, sEntitySet, oVariant);\n\t\t\t\tif (!oVariant.isSmartChart) {\n\t\t\t\t\tfirstAvailableKey = sKey;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toVariant.isSmartChart = true;\n\t\t\t}\n\t\t}\n\t\treturn { firstAvailableKey, sEntitySet, oVariant };\n\t}\n\n\t/**\n\t * Validates the responsive table type for a given variant and updates the List Report (LR) settings.\n\t *\n\t * @param {ILrSettings} lrSettings - The settings object for the List Report, including table settings and configurations.\n\t * @param {IVariantSetting} oVariant - The variant object containing table settings and metadata.\n\t * @param {string | null} firstAvailableKey - The key of the first available variant, used for logging errors.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate validateResponsiveTable(lrSettings: ILrSettings, oVariant: IVariantSetting, firstAvailableKey: string | null): void {\n\t\tconst isResponsive = oVariant.tableSettings?.type === TABLE_TYPES.RESPONSIVE;\n\t\tif (lrSettings.isResponsiveTable === undefined) {\n\t\t\tlrSettings.isResponsiveTable = isResponsive;\n\t\t} else if (lrSettings.isResponsiveTable !== isResponsive) {\n\t\t\tLog.error(`Variant with key ${firstAvailableKey} resulted in invalid Table Type combination.`);\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * This method generates the default configuration for line item details, including table settings,\n\t * responsive table type, and request-at-least fields based on the provided metadata, variant information,\n\t * and settings.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and annotations.\n\t * @param {VariantInfo} variantInfo - The variant information containing presentation variant and line item details.\n\t * @param {ILrSettings} lrSettings - The settings object for the List Report, including table settings and other configurations.\n\t * @param {string} leadingEntitySet - The name of the leading entity set for the application.\n\t * @param {ILineItem[] | string | undefined} lineItemDefault - The default line item details, which can be an array of line items, a string, or undefined.\n\t * @returns {ILineItemDetails} The default line item details object, including quick variant, settings, line item, entity set, and header info.\n\t * @private\n\t */\n\tprivate createDefaultLineItemDetails(\n\t\tmetaModel: ODataMetaModel,\n\t\tvariantInfo: VariantInfo,\n\t\tlrSettings: ILrSettings,\n\t\tleadingEntitySet: string,\n\t\tlineItemDefault?: ILineItem[] | string\n\t): ILineItemDetails {\n\t\tlrSettings.tableSettings = this.getNormalizedTableSettings(metaModel, lrSettings, leadingEntitySet);\n\t\tlrSettings.isResponsiveTable = lrSettings.tableSettings.type === TABLE_TYPES.RESPONSIVE;\n\t\tif (variantInfo?.presentationVariant?.RequestAtLeast?.length) {\n\t\t\tlrSettings.requestAtLeastFields = variantInfo.presentationVariant.RequestAtLeast;\n\t\t}\n\t\treturn {\n\t\t\tquickVariant: {},\n\t\t\tlrSettings: lrSettings,\n\t\t\tlineItem: lineItemDefault,\n\t\t\tentitySet: leadingEntitySet,\n\t\t\theaderInfo: lrSettings?.tableSettings?.headerInfo || \"\"\n\t\t};\n\t}\n\n\t/**\n\t * @param {object} oMetaModel - metamodel object\n\t * @param {string} entityType - entity type of the application\n\t * @param {string} qualifier - qualifier of the variant\n\t * @returns {object} - returns the lineItem, presentationVariant, qualifierPath from the variant for the application based on manifest, annotations and metadata\n\t * @private\n\t */\n\tprivate getLineItemFromVariant(oMetaModel: ODataMetaModel, entityType: string, qualifier?: string): VariantInfo {\n\t\tconst oSelectionPresentationVariant = this.getAnnotation<IPresentationVariant>(\n\t\t\toMetaModel,\n\t\t\tentityType,\n\t\t\tUIAnnotations.UISelectionPresentationVariant,\n\t\t\tqualifier\n\t\t);\n\n\t\tlet oPresentationVariant;\n\t\tif (oSelectionPresentationVariant?.PresentationVariant) {\n\t\t\toPresentationVariant = this.getPresentationVariant(oMetaModel, entityType, oSelectionPresentationVariant.PresentationVariant);\n\t\t} else {\n\t\t\toPresentationVariant = this.getAnnotation<IPresentationVariant>(\n\t\t\t\toMetaModel,\n\t\t\t\tentityType,\n\t\t\t\tUIAnnotations.UIPresentationVariant,\n\t\t\t\tqualifier\n\t\t\t);\n\t\t}\n\n\t\tconst oDetails = oPresentationVariant ? this.getLineItem(oMetaModel, entityType, oPresentationVariant) : null;\n\t\tconst lineItem = oDetails?.lineItem || this.getAnnotation<ILineItem[]>(oMetaModel, entityType, UIAnnotations.UILineItem, \"\");\n\n\t\treturn {\n\t\t\tpresentationVariant: oPresentationVariant,\n\t\t\tlineItem: lineItem,\n\t\t\tqualifierPath: oDetails?.annotationPath || \"\"\n\t\t};\n\t}\n\n\t// get the annotation , sAnnotation from the entityType, sEntityType\n\tprivate getAnnotation<T extends IPresentationVariant | ILineItem[]>(\n\t\tmetaModel: ODataMetaModel,\n\t\tentityType: string,\n\t\tannotation: UIAnnotations,\n\t\tqualifierName?: string\n\t): T | undefined {\n\t\tconst fullAnnotation = `${annotation}${qualifierName ? `#${qualifierName}` : \"\"}`;\n\t\tconst entityTypeData = metaModel.getODataEntityType(entityType) as IEntityType;\n\t\treturn entityTypeData?.[fullAnnotation] as T | undefined;\n\t}\n\n\t/**\n\t * This method determines the presentation variant based on the provided selection presentation variant.\n\t * If the presentation variant is defined via a `Path`, it resolves the path to retrieve the corresponding object\n\t * from the OData meta model. If the presentation variant is defined inline (i.e., without a `Path`), it directly\n\t * returns the inline object.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and annotations.\n\t * @param {string} entityTypeData - The entity type for which the presentation variant is to be retrieved.\n\t * @param {IPresentationVariant} selectionPresentationVariant -\n\t * The selection presentation variant object, which may contain a `Path` or an inline `PresentationVariant`.\n\t * @returns {IPresentationVariant} The resolved presentation variant object.\n\t * @private\n\t */\n\tprivate getPresentationVariant(\n\t\tmetaModel: ODataMetaModel,\n\t\tentityTypeData: string,\n\t\tselectionPresentationVariant: IPresentationVariant\n\t): IPresentationVariant {\n\t\t// PresentationVariant must be defined (according to vocabulary) either via \"Path\" or inline (i.e. Path is not defined).\n\t\t// For compatibility, just ignore if not provided (leading to fallback to use LineItem without qualifier)\n\t\tconst presentationVariant = selectionPresentationVariant?.PresentationVariant;\n\n\t\tif (presentationVariant?.Path) {\n\t\t\treturn this.getObject<IPresentationVariant>(metaModel, entityTypeData, presentationVariant.Path);\n\t\t}\n\t\treturn presentationVariant!;\n\t}\n\n\t/**\n\t * Retrieves the line item annotation details for a given entity type and presentation variant.\n\t *\n\t * This method searches for the `com.sap.vocabularies.UI.v1.LineItem` annotation within the visualizations\n\t * of the provided presentation variant. If found, it returns the line item details, including the annotation path\n\t * and qualifier.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about the entity type.\n\t * @param {string} entityTypeData - The entity type for which the line item annotation is to be retrieved.\n\t * @param {IPresentationVariant} presentationVariantData - The presentation variant containing visualizations.\n\t * @returns { IUIVisualizations | IUIVisualizations[] | null}\n\t * - An object containing the line item details, annotation path, and qualifier if the annotation is found.\n\t * - An array of UI annotations if applicable.\n\t * - `null` if no valid line item annotation is found.\n\t * @private\n\t */\n\tprivate getLineItem(\n\t\tmetaModel: ODataMetaModel,\n\t\tentityTypeData: string,\n\t\tpresentationVariantData: IPresentationVariant\n\t): IUIVisualizations | null {\n\t\t// Visualizations must be defined (according to vocabulary)\n\t\t// however, this is not given at least in all demokit apps (presentationVariant consisting only of sortOrder)\n\t\tlet visualizationData = presentationVariantData.Visualizations?.find(function (oVis) {\n\t\t\treturn oVis.AnnotationPath?.includes(UIAnnotations.UILineItem);\n\t\t});\n\n\t\treturn visualizationData\n\t\t\t? {\n\t\t\t\t\tlineItem: this.getObject<ILineItem[]>(metaModel, entityTypeData, visualizationData.AnnotationPath!),\n\t\t\t\t\tannotationPath: visualizationData.AnnotationPath!,\n\t\t\t\t\tsQualifier: visualizationData.AnnotationPath?.split(\"#\")[1]\n\t\t\t\t}\n\t\t\t: null;\n\t}\n\n\t/**\n\t * Extracts relevant column paths for `$select` and `$expand` OData query options.\n\t *\n\t * This method processes the provided column definitions to extract paths for the `$select` and `$expand` query options.\n\t * It ensures that paths are unique and properly formatted for OData requests.\n\t *\n\t * @param {Array<Record<string,unknown>>} columns - An array of column definitions.\n\t * Each column definition may include properties like `leadingProperty`, `additionalProperty`, and `navigationProperty`.\n\t * @returns {SelectExpand} An object containing two arrays:\n\t * - `select`: An array of unique paths for the `$select` query option.\n\t * - `expand`: An array of unique paths for the `$expand` query option.\n\t * @private\n\t */\n\tprivate _getRelevantColumnPaths(columns: ColumnObjectData[]): SelectExpand {\n\t\tcolumns = Array.isArray(columns) ? columns : [];\n\t\tconst selectSet = new Set<string>();\n\t\tconst expandSet = new Set<string>();\n\t\tcolumns.forEach((oColumnData) => {\n\t\t\tif (oColumnData) {\n\t\t\t\tconst sPath = oColumnData[\"leadingProperty\"];\n\t\t\t\tconst sAdditionalPath = oColumnData[\"additionalProperty\"];\n\t\t\t\tconst sExpandPath = oColumnData[\"navigationProperty\"];\n\t\t\t\tif (sPath) {\n\t\t\t\t\tselectSet.add(sPath);\n\t\t\t\t}\n\t\t\t\tthis.extractPathAndInsertToSet(sAdditionalPath!, selectSet);\n\t\t\t\tthis.extractPathAndInsertToSet(sExpandPath!, expandSet);\n\t\t\t}\n\t\t});\n\t\treturn {\n\t\t\tselect: Array.from(selectSet),\n\t\t\texpand: Array.from(expandSet)\n\t\t};\n\t}\n\n\t/**\n\t * Extracts and inserts unique paths into the provided array.\n\t *\n\t * This method splits the given path string by commas, iterates through the resulting paths,\n\t * and adds each unique path to the provided array. Duplicate paths are ignored.\n\t *\n\t * @param {string} sPath - A comma-separated string of paths to be processed.\n\t * @param {Set<string>} - The array to which unique paths will be added.\n\t * @private\n\t */\n\tprivate extractPathAndInsertToSet(sPath: string, pathSet: Set<string>) {\n\t\tsPath?.split(\",\").forEach((path) => {\n\t\t\tif (path) {\n\t\t\t\tpathSet.add(path);\n\t\t\t\t// currently not doing transitive dependencies\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Expands navigation properties for the given entity set and selected properties.\n\t *\n\t * This method processes the provided `selects` array to identify navigation properties\n\t * that need to be expanded. If a navigation property is found, it is added to the `expands` array.\n\t *\n\t * @param {string} entitySetName - The name of the entity set being processed.\n\t * @param {string[]} selects - An array of selected property paths to be checked for navigation properties.\n\t * @param {string[]} expands - An array to which navigation properties requiring expansion will be added.\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and properties.\n\t * @private\n\t */\n\tprivate extractAndExpandNavigationProperty(entitySetName: string, selects: string[], expands: string[], metaModel: ODataMetaModel) {\n\t\tconst mNavigationProperties = {};\n\n\t\t// check if any expand is necessary\n\t\tfor (const sPath of selects) {\n\t\t\tlet iPos = sPath.lastIndexOf(\"/\");\n\t\t\tlet sNavigation;\n\t\t\tif (iPos < 0) {\n\t\t\t\t// sPath contains no '/' but still could be a navigationProperty\n\t\t\t\tif (!this.getNavigationProperty(entitySetName, sPath, metaModel, mNavigationProperties)) {\n\t\t\t\t\tcontinue; //not a navproperty hence continue to next iteration\n\t\t\t\t}\n\t\t\t\tsNavigation = sPath;\n\t\t\t} else {\n\t\t\t\tsNavigation = sPath.substring(0, iPos);\n\t\t\t}\n\t\t\tif (!expands.includes(sNavigation)) {\n\t\t\t\texpands.push(sNavigation);\n\t\t\t}\n\t\t}\n\t}\n\n\t//get the navigation property details for the given property from entityset, sEntitySet\n\tprivate getNavigationProperty(\n\t\tentitySetName: string,\n\t\tnavProperty: string,\n\t\tmetaModel: ODataMetaModel,\n\t\tmNavigationProperties: NavigationPropertiesMap\n\t) {\n\t\tlet mMyNavigationProperties = mNavigationProperties?.[entitySetName];\n\n\t\t// If navigation properties not already fetched, then fetch them\n\t\tif (!mMyNavigationProperties) {\n\t\t\tmMyNavigationProperties = {};\n\t\t\tmNavigationProperties[entitySetName] = mMyNavigationProperties;\n\n\t\t\tconst oEntitySet = metaModel.getODataEntitySet(entitySetName) as IEntitySet;\n\t\t\tif (oEntitySet) {\n\t\t\t\tconst oEntityType = metaModel.getODataEntityType(oEntitySet.entityType) as IEntityType;\n\t\t\t\tif (oEntityType) {\n\t\t\t\t\tconst aNavigationProperty = oEntityType.navigationProperty || [];\n\t\t\t\t\taNavigationProperty.forEach((oNavigationProperty) => {\n\t\t\t\t\t\tconst navName = oNavigationProperty.name;\n\t\t\t\t\t\tmMyNavigationProperties[navName] = oNavigationProperty;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn mMyNavigationProperties?.[navProperty] || undefined;\n\t}\n\n\t// add all necessary fields to the select array\n\tprivate _addNecessaryFields(aSelects: string[], oInfo: ILineItemDetails, oMetaModel: ODataMetaModel) {\n\t\tlet oEntitySet = oMetaModel.getODataEntitySet(oInfo.entitySet) as IEntitySet;\n\t\tlet oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType) as IEntityType;\n\t\tlet aProperties: string[] = [];\n\n\t\tif (aSelects.length > 0) {\n\t\t\tif (oInfo.lineItem && typeof oInfo.lineItem !== \"string\") {\n\t\t\t\toInfo.lineItem.forEach((lineItem) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tlineItem.RecordType === FieldAnnotationsType.DataFieldWithIntentBasedNavigation ||\n\t\t\t\t\t\tlineItem.RecordType === FieldAnnotationsType.DataFieldWithNavigationPath\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst aDataFieldsWithNavigation = this.getDataFieldsWithNavigation(lineItem, oMetaModel, oEntityType);\n\t\t\t\t\t\tif (aDataFieldsWithNavigation?.length) {\n\t\t\t\t\t\t\taProperties = aProperties.concat(aDataFieldsWithNavigation);\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\t//add the fieldcontrol path of the properties\n\t\t\tthis.getFieldControlsPath(aSelects, oMetaModel, oEntityType, aProperties);\n\t\t}\n\n\t\taProperties.forEach((property) => {\n\t\t\tthis.ensureSelectionProperty(property, aSelects);\n\t\t});\n\t}\n\n\t/**\n\t * Collects the paths for field controls based on the selected properties.\n\t * This function iterates over the given selection of properties, aSelects, retrieves the corresponding\n\t * property metadata from the OData model, and if a field control annotation exists for a property,\n\t * it adds the path of this field control to the provided array of properties.\n\t * @param {string[]} selects - An array of property names to be checked for field control paths.\n\t * @param {object} metaModel - The OData meta model instance used to retrieve property metadata.\n\t * @param {object} entityType - The entity type from the OData model that contains the properties.\n\t * @param {string[]} aProperties - An array to which the field control paths will be added.\n\t * @private\n\t */\n\tprivate getFieldControlsPath(selects: string[], metaModel: ODataMetaModel, entityType: IEntityType, aProperties: string[]) {\n\t\tselects.forEach((sSelect) => {\n\t\t\tif (sSelect) {\n\t\t\t\t//needed for activating field control for DataField Annotation & when using the setting to add new columns\n\t\t\t\tlet oProperty = (metaModel.getODataProperty(entityType, sSelect) as UIAnnotationValue) || {};\n\t\t\t\tif (UIAnnotations.CommonFieldControl in oProperty) {\n\t\t\t\t\tlet oFieldControl = oProperty[UIAnnotations.CommonFieldControl];\n\t\t\t\t\tif (oFieldControl?.Path) {\n\t\t\t\t\t\taProperties.push(oFieldControl.Path);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Handling for DataFieldWithNavigationPath and DataFieldWithIntentBasedNavigation\n\t * @param {object} lineItem - LineItem object\n\t * @param {object} metaModel - OData metamodel\n\t * @param {object} entityType - EntityType object\n\t * @returns {Array} - Array of properties to be selected in case field type is DataFieldWithNavigationPath or DataFieldWithIntentBasedNavigation\n\t * @private\n\t */\n\tprivate getDataFieldsWithNavigation(lineItem: ILineItem, metaModel: ODataMetaModel, entityType: IEntityType): string[] {\n\t\tconst requestFields = [];\n\n\t\t// Handle Value.Path\n\t\tconst valuePath = lineItem.Value?.Path;\n\t\tif (valuePath) {\n\t\t\tconst lineItemProperty = metaModel.getODataProperty(entityType, valuePath) as UIAnnotationValue;\n\t\t\tconst textAnnotation = lineItemProperty?.[UIAnnotations.CommonText]?.Path;\n\t\t\tconst sapTextAnnotation = lineItemProperty?.[\"sap:text\"];\n\n\t\t\trequestFields.push(sapTextAnnotation || textAnnotation || valuePath);\n\t\t}\n\n\t\t// Handle SemanticObject.Path\n\t\tif (lineItem.SemanticObject?.Path) {\n\t\t\trequestFields.push(lineItem.SemanticObject.Path);\n\t\t}\n\n\t\t// Handle Action.Path\n\t\tif (lineItem.Action?.Path) {\n\t\t\trequestFields.push(lineItem.Action.Path);\n\t\t}\n\n\t\treturn requestFields;\n\t}\n\n\t// Section: Parameter Handling\n\tprivate getParameters(\n\t\toInfo: ILineItemDetails,\n\t\tmetaModel: ODataMetaModel,\n\t\tentitySet: string,\n\t\toSelectExpand: SelectExpand\n\t): SelectExpandDetail {\n\t\tlet aSelects = oSelectExpand.select || [];\n\t\tlet aExpands = oSelectExpand.expand || [];\n\n\t\tlet alwaysSelectField = oInfo?.lrSettings?.requestAtLeastFields || [];\n\t\tif (alwaysSelectField.length > 0) {\n\t\t\taSelects = this._ensureSelectionProperties(aSelects, alwaysSelectField);\n\t\t}\n\n\t\tthis._handleMandatorySelectionFields(entitySet, aSelects, metaModel);\n\t\tthis._addNecessaryFields(aSelects, oInfo, metaModel);\n\t\tthis.extractAndExpandNavigationProperty(entitySet, aSelects, aExpands, metaModel);\n\n\t\treturn {\n\t\t\texpand: aExpands.join(\",\") || undefined,\n\t\t\tselect: aSelects.join(\",\") || undefined\n\t\t};\n\t}\n\n\t/**\n\t *\n\t * @param {Array} aSelects , select parameters\n\t * @param {SelectionProperties} alwaysSelectField, all the fields that are marked as requestAtLeastFields\n\t * @returns {Array} aSelects, updated select parameters\n\t * @private\n\t */\n\n\tprivate _ensureSelectionProperties(aSelects: string[], alwaysSelectField: SelectionProperties): string[] {\n\t\tfor (const item of alwaysSelectField) {\n\t\t\tif (typeof item === \"object\" && item?.PropertyPath && !aSelects.includes(item.PropertyPath)) {\n\t\t\t\taSelects.push(item.PropertyPath);\n\t\t\t}\n\t\t}\n\n\t\treturn aSelects;\n\t}\n\n\t/**\n\t * Handles the mandatory selection fields for the given entity set and properties.\n\t *\n\t * @param {object} entitySet - The entity set object.\n\t * @param {array} aSelects - The array of properties.\n\t * @returns {boolean} True if the entity set or properties have mandatory fields, false otherwise.\n\t * @private\n\t */\n\tprivate _handleMandatorySelectionFields(entitySet: string, aSelects: string[], oMetaModel: ODataMetaModel) {\n\t\tconst oEntitySet = oMetaModel.getODataEntitySet(entitySet, false) as IEntitySet;\n\t\tconst oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType, false) as IEntityType;\n\n\t\toEntityType.key.propertyRef.forEach((field) => {\n\t\t\tthis.ensureSelectionProperty(field.name, aSelects);\n\t\t});\n\t}\n\n\t// push the selection properties to the select array\n\tprivate ensureSelectionProperty(sProperty: string, aSelects: string[]) {\n\t\tsProperty?.split(\",\").forEach(function (sElement) {\n\t\t\tif (sElement && !aSelects.includes(sElement)) {\n\t\t\t\taSelects.push(sElement);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Creates a card manifest for a recommended card.\n\t *\n\t * This method generates a new card manifest based on the provided input data, version information, and app manifest.\n\t * It also processes the columns to set attributes or titles for the card content and handles row navigation suppression if required.\n\t *\n\t * @param {IManifestCardData} oInput - The input data for the card, including card title, subtitle, columns, and entity set.\n\t * @param {IVersionInfo} oVersionInfo - The version information, including the version and build timestamp.\n\t * @param {IAppManifest} manifest - The original app manifest.\n\t * @param {boolean} [bSuppressRowNavigation] - Optional flag to suppress row navigation actions in the card content.\n\t * @returns {ICardManifest} The generated card manifest object.\n\t * @private\n\t */\n\tpublic _createCardManifest(\n\t\toInput: IManifestCardData,\n\t\toVersionInfo: IVersionInfo,\n\t\tmanifest: IAppManifest,\n\t\tbSuppressRowNavigation?: boolean\n\t): ICardManifest {\n\t\tlet oUIManifest = manifest[\"sap.ui\"];\n\t\tlet oAppManifest = manifest[\"sap.app\"];\n\t\tlet attributeIndex = 0;\n\n\t\tif (oAppManifest?.[\"crossNavigation\"]) {\n\t\t\tdelete oAppManifest[\"crossNavigation\"];\n\t\t}\n\t\tif (oAppManifest) {\n\t\t\tObject.assign(oAppManifest, {\n\t\t\t\ttype: \"card\",\n\t\t\t\tid: `user.${oInput.id}.${Date.now()}`,\n\t\t\t\ttitle: oInput.cardTitle || \"\",\n\t\t\t\tsubTitle: oInput.subTitle\n\t\t\t});\n\t\t}\n\n\t\tlet oNewManifest: ICardManifest = {\n\t\t\t\"sap.ui\": oUIManifest,\n\t\t\t\"sap.app\": this.createManifestSapApp(oAppManifest!),\n\t\t\t\"sap.card\": this.createManifestSapCard(manifest, oInput),\n\t\t\t\"sap.ui5\": this.createSapui5()\n\t\t};\n\t\tconst oContent = oNewManifest?.[\"sap.card\"]?.content;\n\n\t\toInput.columns.slice(0, COLUMN_LENGTH).forEach((column) => {\n\t\t\tconst columnValue = this._getAttributeValue(column);\n\t\t\tif (column.identifier && oContent?.item) {\n\t\t\t\t// If column.identifier is true, set it as the title\n\t\t\t\toContent.item.title = { value: columnValue, identifier: true };\n\t\t\t} else if (oContent?.item?.attributes) {\n\t\t\t\t// Otherwise, add it to the attributes\n\t\t\t\toContent.item.attributes[attributeIndex] = {\n\t\t\t\t\tvalue: columnValue,\n\t\t\t\t\tvisible: true,\n\t\t\t\t\t...(column.state && { state: column.state, showStateIcon: column.showStateIcon })\n\t\t\t\t};\n\t\t\t\tattributeIndex++;\n\t\t\t}\n\t\t});\n\n\t\t// if bSuppressRowNavigation true, remove content actions\n\t\tif (bSuppressRowNavigation && oContent?.item) {\n\t\t\toContent.item.actions = [];\n\t\t}\n\n\t\treturn {\n\t\t\t...oNewManifest,\n\t\t\t\"sap.insights\": {\n\t\t\t\tparentAppId: oInput.id,\n\t\t\t\tcardType: \"RT\",\n\t\t\t\tversions: {\n\t\t\t\t\tui5: `${oVersionInfo.version}-${oVersionInfo.buildTimestamp}`\n\t\t\t\t},\n\t\t\t\tvisible: true\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Get Attribute Value\n\t *\n\t * @param {object} attributeData - column object\n\t * @returns {string} returns attribute value\n\t * @private\n\t */\n\tprivate _getAttributeValue(attributeData: Attribute): string {\n\t\tlet attributeValue = !attributeData.value.startsWith(\"{\")\n\t\t\t? \"{= extension.formatters.stringFormatter(${\" + attributeData.path + \"}) }\"\n\t\t\t: attributeData.value;\n\t\tif (attributeData.type === \"Edm.Date\" || attributeData.type === \"Edm.DateTime\") {\n\t\t\tconst oDateFormatOptions = JSON.stringify({ pattern: Formatting.getDatePattern(\"short\") });\n\t\t\tattributeValue =\n\t\t\t\t\"{=${\" + attributeData.path + \"}?format.dateTime(${\" + attributeData.path + \"}, \" + oDateFormatOptions + \") : ''}\";\n\t\t}\n\n\t\treturn attributeValue;\n\t}\n\n\t//creates sap.app object structure for the card manifest of recommended card\n\tprivate createManifestSapApp(appManifest: ISapApp) {\n\t\tconst manifestAppData = deepExtend({}, appManifest) as ISapApp;\n\t\tif (manifestAppData?.dataSources?.mainService) {\n\t\t\tmanifestAppData.dataSources[\"filterService\"] = manifestAppData.dataSources.mainService;\n\t\t\tif (manifestAppData.dataSources[\"filterService\"]?.settings) {\n\t\t\t\tmanifestAppData.dataSources[\"filterService\"].settings[\"odataVersion\"] = \"2.0\";\n\t\t\t}\n\t\t}\n\n\t\treturn manifestAppData;\n\t}\n\n\t/**\n\t * Creates the manifest's SAP card object, sap.card based on the input card details.\n\t *\n\t * @param {oIAppManifestbject} manifest - The original manifest object of the application.\n\t * @param {IManifestCardData} oInput - The input object containing card details.\n\t * @returns {ISapCard} The SAP card configuration object.\n\t */\n\tprivate createManifestSapCard(manifest: IAppManifest, oInput: IManifestCardData): ISapCard {\n\t\tconst datasource = manifest[\"sap.app\"]?.dataSources;\n\t\tconst sServiceUrl = datasource?.mainService?.uri;\n\t\tconst entitySetName = oInput.entitySet;\n\t\tconst sCountPath = \"__count\";\n\t\tconst sText = {\n\t\t\ttext: \"{= ${\" + sCountPath + \"} === '0' ? '' : ${\" + sCountPath + \"} }\"\n\t\t};\n\n\t\tlet oCardConfig: ISapCard = {\n\t\t\ttype: \"List\"\n\t\t};\n\n\t\toCardConfig[\"configuration\"] = this.createManifestSapCardConfig(sServiceUrl || \"\", entitySetName);\n\t\toCardConfig[\"data\"] = this.createManifestSapCardData(sServiceUrl || \"\", oInput.url);\n\n\t\toCardConfig[\"header\"] = {\n\t\t\ttitle: oInput.cardTitle,\n\t\t\tsubTitle: \"\",\n\t\t\tactions: [],\n\t\t\tstatus: sText,\n\t\t\tdata: {\n\t\t\t\tpath: \"/content/d\"\n\t\t\t}\n\t\t};\n\n\t\toCardConfig[\"extension\"] = \"module:sap/insights/CardExtension\";\n\t\toCardConfig[\"content\"] = {\n\t\t\tdata: {\n\t\t\t\tpath: \"/content/d/results\"\n\t\t\t},\n\t\t\tmaxItems: 5,\n\t\t\titem: {\n\t\t\t\tactions: [],\n\t\t\t\tattributesLayoutType: \"OneColumn\",\n\t\t\t\tattributes: []\n\t\t\t}\n\t\t};\n\n\t\tthis.addCardActions(oCardConfig, oInput.semanticObject, oInput.action);\n\t\treturn oCardConfig;\n\t}\n\n\t/**\n\t * Sets the card actions for the given SAP card.\n\t *\n\t * @param {object} sapCard - The SAP card object to set the actions on.\n\t * @param {string} semObj - The semantic object for the navigation target.\n\t * @param {string} semanticAction - The semantic action for the navigation target.\n\t */\n\tprivate addCardActions(sapCard: ISapCard, semObj: string, semanticAction: string) {\n\t\tlet oHeaderParams: ICardActionParameters = {\n\t\t\tibnTarget: {\n\t\t\t\tsemanticObject: semObj,\n\t\t\t\taction: semanticAction\n\t\t\t},\n\t\t\tsensitiveProps: [],\n\t\t\tibnParams: {}\n\t\t};\n\n\t\tlet oHeaderParameterValue = [\n\t\t\t{\n\t\t\t\ttype: \"Navigation\",\n\t\t\t\tparameters: \"{= extension.formatters.getNavigationContext(${parameters>/headerState/value})}\"\n\t\t\t}\n\t\t];\n\n\t\tlet oContentParams = JSON.parse(JSON.stringify(oHeaderParams)) as ICardActionParameters;\n\t\tlet oContentParameterValue = [\n\t\t\t{\n\t\t\t\ttype: \"Navigation\",\n\t\t\t\tparameters: \"{= extension.formatters.getNavigationContext(${parameters>/contentState/value}, ${})}\"\n\t\t\t}\n\t\t];\n\n\t\tif (sapCard.configuration?.parameters) {\n\t\t\tsapCard.configuration.parameters.headerState = {\n\t\t\t\tvalue: JSON.stringify(oHeaderParams)\n\t\t\t};\n\t\t\tsapCard.configuration.parameters.contentState = {\n\t\t\t\tvalue: JSON.stringify(oContentParams)\n\t\t\t};\n\t\t}\n\t\tif (sapCard.header) {\n\t\t\tsapCard.header.actions = oHeaderParameterValue;\n\t\t}\n\t\tif (sapCard?.content?.item) {\n\t\t\tsapCard.content.item.actions = oContentParameterValue;\n\t\t}\n\t}\n\n\t/**\n\t * Creates the manifest sap card configuration object.\n\t *\n\t * @param {string} sServiceUrl - The service URL to be used in the request.\n\t * @param {string} entitySetName - The name of the entity set.\n\t * @returns {object} The SAP card configuration object.\n\t */\n\tprivate createManifestSapCardConfig(sServiceUrl: string, entitySetName: string): ISapCardConfig {\n\t\tconst oCardConfiguration = {\n\t\t\tparameters: {\n\t\t\t\t_relevantODataFilters: {\n\t\t\t\t\tvalue: []\n\t\t\t\t},\n\t\t\t\t_relevantODataParameters: {\n\t\t\t\t\tvalue: []\n\t\t\t\t},\n\t\t\t\t_entitySet: {\n\t\t\t\t\tvalue: entitySetName\n\t\t\t\t},\n\t\t\t\t_urlSuffix: {\n\t\t\t\t\tvalue: \"/Results\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestinations: {\n\t\t\t\tservice: {\n\t\t\t\t\tname: \"(default)\",\n\t\t\t\t\tdefaultUrl: \"/\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tcsrfTokens: {\n\t\t\t\ttoken1: {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\turl: \"{{destinations.service}}\" + sServiceUrl,\n\t\t\t\t\t\t\tmethod: \"HEAD\",\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"X-CSRF-Token\": \"Fetch\"\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}\n\t\t};\n\n\t\treturn oCardConfiguration;\n\t}\n\n\t//create sap.ui5 object for the card manifest\n\tprivate createSapui5(): ISapUI5App {\n\t\treturn {\n\t\t\t_version: \"1.1.0\",\n\t\t\tcontentDensities: { compact: true, cozy: true },\n\t\t\tdependencies: {\n\t\t\t\tlibs: {\n\t\t\t\t\t\"sap.insights\": {\n\t\t\t\t\t\tlazy: false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Creates the manifest data for an SAP card.\n\t *\n\t * @param {string} sServiceUrl - The service URL to be used in the request.\n\t * @param {string} urlExpand - The URL to expand in the batch request.\n\t * @returns {IRequestData} The SAP card data object containing the request configuration.\n\t */\n\tprivate createManifestSapCardData(sServiceUrl: string, urlExpand: string): IRequestData {\n\t\tconst oBatch = {\n\t\t\tcontent: {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\turl: urlExpand,\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: \"application/json\"\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tconst oSapCardData: IRequestData = {\n\t\t\trequest: {\n\t\t\t\turl: \"{{destinations.service}}\" + sServiceUrl + \"/$batch\",\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"X-CSRF-Token\": \"{{csrfTokens.token1}}\"\n\t\t\t\t},\n\t\t\t\tbatch: oBatch\n\t\t\t}\n\t\t};\n\n\t\treturn oSapCardData;\n\t}\n\n\t/**\n\t * This function returns card details required for the recommended card manifest\n\t * based on app manifest and annotations\n\t * @param {object} manifest - The original app manifest\n\t * @param {object} oInfo - The object containing details of lineitem, entityset, settings etc\n\t * @param {object} oParentApp - The parent app object\n\t * @param {object} oMetaModel - The OData metamodel\n\t * @returns {object} The card data object with title, subtitle, url, semanticObject, action, id and column details\n\t * @private\n\t */\n\tpublic _getManifestCardData(\n\t\tmanifest: IAppManifest,\n\t\toInfo: ILineItemDetails,\n\t\toParentApp: IAppInfoData,\n\t\toMetaModel: ODataMetaModel\n\t): IManifestCardData {\n\t\tconst manifestApp = manifest[\"sap.app\"];\n\t\tconst dataSources = manifestApp?.dataSources;\n\n\t\tconst mainServiceUri = dataSources?.mainService?.uri || \"\";\n\n\t\tconst lineItem = oInfo.lineItem as ILineItem[];\n\t\tconst entitySet = oInfo.entitySet;\n\t\tconst oEntitySet = oMetaModel.getODataEntitySet(entitySet) as IEntitySet;\n\t\tconst oEntityType = oMetaModel.getODataEntityType(oEntitySet?.entityType) as IEntityType;\n\t\tconst serviceUrl = `${mainServiceUri.replace(/\\/$/, \"\")}/${entitySet}`; // make '{mainServiceUri}/{entitySet}' format\n\n\t\t//get the column details for each of the lineitem columns\n\t\tconst aColumns = lineItem\n\t\t\t?.map((oColumn) => this._getColumnDetail(entitySet, oMetaModel, oColumn))\n\t\t\t.filter((oItem) => oItem !== undefined);\n\n\t\tconst oSelectExpand = this._getRelevantColumnPaths(aColumns);\n\t\t//get the complete select and expand parameters for url\n\t\tconst mParameters = this.getParameters(oInfo, oMetaModel, entitySet, oSelectExpand);\n\n\t\tconst urlSelectExpand = this.createCustomParams(mParameters);\n\t\tconst finalUrl = urlSelectExpand\n\t\t\t? `${serviceUrl}?$top=5&skip=0&${urlSelectExpand}&$inlinecount=allpages`\n\t\t\t: `${serviceUrl}?$top=5&skip=0`;\n\t\t//sort the column based on their importance and then slice the first 4 columns\n\t\tconst aColumnSorted = (sortCollectionByImportance(aColumns) as IColumnData[])\n\t\t\t.map((column) => {\n\t\t\t\treturn {\n\t\t\t\t\tpath: column?.path,\n\t\t\t\t\ttype: column?.type,\n\t\t\t\t\tvalue: column?.value,\n\t\t\t\t\tidentifier: column?.identifier,\n\t\t\t\t\tstate: column?.state,\n\t\t\t\t\tshowStateIcon: column?.showStateIcon\n\t\t\t\t};\n\t\t\t})\n\t\t\t.slice(0, 4);\n\t\treturn {\n\t\t\tcardTitle: manifest?.[\"sap.app\"]?.title,\n\t\t\tsubTitle: oEntityType[UIAnnotations.CommonLabel] ? `Top 5 ${oEntityType[UIAnnotations.CommonLabel].String}` : \"\",\n\t\t\turl: finalUrl,\n\t\t\tsemanticObject: oParentApp?.semanticObject || \"\",\n\t\t\taction: oParentApp?.action || \"\",\n\t\t\tid: manifest?.[\"sap.app\"]?.id,\n\t\t\tcolumns: aColumnSorted,\n\t\t\tentitySet: entitySet\n\t\t};\n\t}\n\n\t/**\n\t * This function returns the column detail object for the given column's context\n\t * @param {string} entitySet - - The entity set name\n\t * @param {object} oMetaModel - OData metamodel\n\t * @param {object} lineItemContext - The line item column context object\n\t * @returns {object} The column detail containing value, path, importance and type\n\t * @private\n\t */\n\tprivate _getColumnDetail(entitySet: string, oMetaModel: ODataMetaModel, lineItemContext: ILineItem) {\n\t\tlet oProperty;\n\t\tlet oEntitySet = oMetaModel.getODataEntitySet(entitySet) as IEntitySet;\n\t\tlet oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType) as IEntityType;\n\n\t\tif (lineItemContext.Value?.Path) {\n\t\t\toProperty = oMetaModel.getODataProperty(oEntityType, lineItemContext.Value.Path) as UIAnnotationValue;\n\t\t\tlet oPropertyHidden = oProperty[UIAnnotations.UIHidden];\n\n\t\t\t// if oProperty not hidden and oLineitemContext not hidden then only consider the column else return undefined\n\t\t\tif (oPropertyHidden?.Bool === \"true\" || oPropertyHidden?.Bool === true) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\t//check if lineItemContext is hidden or no oProperty is found\n\t\t\tif (this.isPropertyHidden(lineItemContext) || !oProperty || Object.keys(oProperty).length === 0) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tlet oP13NDetails = this.createP13N(oEntitySet, oProperty, lineItemContext, oMetaModel);\n\t\toP13NDetails = oP13NDetails.replace(/\\\\/g, \"\"); // Remove the double backslashes\n\t\tlet columnDataObject = oP13NDetails ? (JSON.parse(oP13NDetails) as ColumnObjectData) : {};\n\n\t\tif (!this.isSupportedColumn(columnDataObject, lineItemContext, oMetaModel, oEntitySet)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (oProperty) {\n\t\t\tcolumnDataObject = this.getColumnObjectDetails(columnDataObject, oProperty, oEntityType, lineItemContext);\n\t\t\tif (lineItemContext?.[FieldAnnotationsType.Importance] !== undefined) {\n\t\t\t\tconst importance = lineItemContext[FieldAnnotationsType.Importance];\n\t\t\t\tcolumnDataObject.importance = importance;\n\t\t\t}\n\t\t}\n\n\t\treturn columnDataObject;\n\t}\n\n\t/**\n\t * Retrieves the column object details based on the provided property and entity type.\n\t *\n\t * @param {object} columnDataObject - The column information object to be populated.\n\t * @param {object} propertyDetails - The property object containing metadata about the column.\n\t * @param {object} entityType - The entity type object containing metadata about the entity.\n\t * @param {object} dataField - The data field object containing the lineitem column context object\n\t * @returns {object} The populated column information object.\n\t * @private\n\t */\n\tprivate getColumnObjectDetails(\n\t\tcolumnDataObject: ColumnObjectData,\n\t\tpropertyDetails: UIAnnotationValue,\n\t\tentityType: IEntityType,\n\t\tdataField: ILineItemContext\n\t) {\n\t\tlet sColumnKeyDescription = propertyDetails[UIAnnotations.CommonText]?.Path || \"\";\n\t\tsColumnKeyDescription = \"{\" + sColumnKeyDescription + \"}\";\n\t\tlet sColumnValue = propertyDetails.name ? \"{\" + propertyDetails.name + \"}\" : \"\";\n\t\tlet sNavigation = \"\";\n\t\tconst aSemKeyAnnotation = entityType[UIAnnotations.CommonSemanticKey];\n\t\tconst bIsPropertySemanticKey =\n\t\t\t!!aSemKeyAnnotation &&\n\t\t\taSemKeyAnnotation.some(function (oAnnotation) {\n\t\t\t\treturn oAnnotation.PropertyPath === propertyDetails.name;\n\t\t\t});\n\t\tlet bIsCriticality: boolean = false;\n\t\tlet criticalityAnnotation = undefined;\n\n\t\tif ((dataField?.Criticality && dataField?.Value?.Path) === propertyDetails.name) {\n\t\t\tcriticalityAnnotation = dataField;\n\t\t\tbIsCriticality = true;\n\t\t}\n\n\t\tif (propertyDetails[UIAnnotations.MeasuresISOCurrency]?.Path) {\n\t\t\tsColumnValue = sColumnValue.concat(\" \" + \"{\" + sNavigation + propertyDetails[UIAnnotations.MeasuresISOCurrency]?.Path + \"}\");\n\t\t}\n\t\tif (propertyDetails[UIAnnotations.MeasuresUnit]?.Path) {\n\t\t\tsColumnValue = sColumnValue.concat(\" \" + \"{\" + sNavigation + propertyDetails[UIAnnotations.MeasuresUnit]?.Path + \"}\");\n\t\t}\n\t\tif (propertyDetails[UIAnnotations.CommonText]?.Path) {\n\t\t\tlet sTextArragement = propertyDetails[UIAnnotations.CommonText]?.[UIAnnotations.UITextArrangement];\n\t\t\tif (!sTextArragement) {\n\t\t\t\tsTextArragement = entityType[UIAnnotations.UITextArrangement];\n\t\t\t}\n\t\t\tthis._setColumnTextValue(sTextArragement, columnDataObject, sColumnKeyDescription, sColumnValue);\n\t\t} else {\n\t\t\tcolumnDataObject[\"value\"] = sColumnValue;\n\t\t\tif (bIsPropertySemanticKey) {\n\t\t\t\tcolumnDataObject[\"identifier\"] = bIsPropertySemanticKey;\n\t\t\t}\n\t\t}\n\t\tif (bIsCriticality) {\n\t\t\tcolumnDataObject[\"state\"] = this.buildExpressionForCriticalityColor(criticalityAnnotation);\n\t\t\tcolumnDataObject[\"showStateIcon\"] =\n\t\t\t\tcriticalityAnnotation?.CriticalityRepresentation?.EnumMember !==\n\t\t\t\t\tFieldAnnotationsType.CriticalityRepresentationTypeWithoutIcon || true;\n\t\t}\n\t\tcolumnDataObject[\"path\"] = propertyDetails[UIAnnotations.CommonText]?.Path || propertyDetails.name;\n\t\tcolumnDataObject[\"type\"] = propertyDetails.type;\n\t\treturn columnDataObject;\n\t}\n\n\t/**\n\t * Build expression for the criticality annotation, kept same as the one used in LROP\n\t * @param {object} criticalityAnnotation - The criticality annotation object\n\t * @returns {string} The expression for the criticality color\n\t * @private\n\t */\n\tprivate buildExpressionForCriticalityColor(criticalityAnnotation?: ILineItemContext) {\n\t\tlet sFormatCriticalityExpression: CoreLib.ValueState | string = ValueState.None;\n\t\tlet sExpressionTemplate;\n\t\tlet oCriticalityProperty = criticalityAnnotation?.Criticality;\n\t\tenum CriticalityType {\n\t\t\tNegative = \"com.sap.vocabularies.UI.v1.CriticalityType/Negative\",\n\t\t\tCritical = \"com.sap.vocabularies.UI.v1.CriticalityType/Critical\",\n\t\t\tPositive = \"com.sap.vocabularies.UI.v1.CriticalityType/Positive\"\n\t\t}\n\t\tif (oCriticalityProperty) {\n\t\t\tsExpressionTemplate =\n\t\t\t\t\"'{'= ({0} === ''\" +\n\t\t\t\tCriticalityType.Negative +\n\t\t\t\t\"'') || ({0} === ''1'') || ({0} === 1) ? ''\" +\n\t\t\t\tValueState.Error +\n\t\t\t\t\"'' : \" +\n\t\t\t\t\"({0} === ''\" +\n\t\t\t\tCriticalityType.Critical +\n\t\t\t\t\"'') || ({0} === ''2'') || ({0} === 2) ? ''\" +\n\t\t\t\tValueState.Warning +\n\t\t\t\t\"'' : \" +\n\t\t\t\t\"({0} === ''\" +\n\t\t\t\tCriticalityType.Positive +\n\t\t\t\t\"'') || ({0} === ''3'') || ({0} === 3) ? ''\" +\n\t\t\t\tValueState.Success +\n\t\t\t\t\"'' : \" +\n\t\t\t\t\"''\" +\n\t\t\t\tValueState.None +\n\t\t\t\t\"'' '}'\";\n\t\t\tif (oCriticalityProperty?.Path) {\n\t\t\t\tconst sCriticalitySimplePath = \"${\" + oCriticalityProperty.Path + \"}\";\n\t\t\t\tsFormatCriticalityExpression = formatMessage(sExpressionTemplate, [sCriticalitySimplePath]);\n\t\t\t} else if (oCriticalityProperty?.EnumMember) {\n\t\t\t\tconst sCriticality = \"'\" + oCriticalityProperty.EnumMember + \"'\";\n\t\t\t\tsFormatCriticalityExpression = formatMessage(sExpressionTemplate, [sCriticality]);\n\t\t\t} else {\n\t\t\t\tLog.warning(\"Case not supported, returning the default sap.ui.core.ValueState.None\");\n\t\t\t}\n\t\t} else {\n\t\t\t// Any other cases are not valid, the default value of 'None' will be returned\n\t\t\tLog.warning(\"Case not supported, returning the default sap.ui.core.ValueState.None\");\n\t\t}\n\n\t\treturn sFormatCriticalityExpression;\n\t}\n\n\t/**\n\t * Sets display text format of column\n\t *\n\t * @private\n\t * @param {{EnumMember: string} | undefined} sTextArragement - sTextArragement object\n\t * @param { ColumnObjectData} columnDataObject - Object containing column details\n\t * @param {string} sColumnKeyDescription - Description field to include in text value\n\t * @param {string} sColumnValue - The value to include in Text value\n\t */\n\tprivate _setColumnTextValue(\n\t\tsTextArragement: { EnumMember: string } | undefined,\n\t\tcolumnDataObject: ColumnObjectData,\n\t\tsColumnKeyDescription: string,\n\t\tsColumnValue: string\n\t) {\n\t\tenum TextArrangementType {\n\t\t\tTextOnly = \"TextOnly\",\n\t\t\tTextLast = \"TextLast\",\n\t\t\tTextSeparate = \"TextSeparate\"\n\t\t}\n\t\tconst sTextArrangementType = sTextArragement?.EnumMember?.split(\"/\")[1];\n\t\tlet valueExpr;\n\n\t\tswitch (sTextArrangementType) {\n\t\t\tcase TextArrangementType.TextOnly:\n\t\t\t\tvalueExpr = `{= $${sColumnKeyDescription} === '' ? '' : $${sColumnKeyDescription} }`;\n\t\t\t\tbreak;\n\n\t\t\tcase TextArrangementType.TextLast:\n\t\t\t\tvalueExpr =\n\t\t\t\t\t`{= $${sColumnValue} === '' ? '' : $${sColumnValue} }` +\n\t\t\t\t\t`{= $${sColumnKeyDescription} === '' ? '' : ' (' + ($${sColumnKeyDescription}) + ')' }`;\n\t\t\t\tbreak;\n\n\t\t\tcase TextArrangementType.TextSeparate:\n\t\t\t\tvalueExpr = `{= $${sColumnValue} === '' ? '' : $${sColumnValue} }`;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tvalueExpr =\n\t\t\t\t\t`{= $${sColumnKeyDescription} === '' ? '' : $${sColumnKeyDescription} }` +\n\t\t\t\t\t`{= $${sColumnValue} === '' ? '' : ' (' + ($${sColumnValue}) + ')' }`;\n\t\t\t\tbreak;\n\t\t}\n\t\tcolumnDataObject[\"value\"] = valueExpr;\n\t}\n\n\t// get requestAtlLeastFields from PresentationVariant\n\tprivate _getRequestAtLeastFields(presentationVariant: IPresentationVariant): string[] | RequestAtleastFieldType[] | [] {\n\t\treturn presentationVariant && Array.isArray(presentationVariant.requestAtLeastFields)\n\t\t\t? presentationVariant.requestAtLeastFields\n\t\t\t: [];\n\t}\n\n\t/**\n\t * Creates a query string with custom parameters for OData requests.\n\t *\n\t * This method generates a query string containing `$expand` and `$select` parameters\n\t * based on the provided input object. The values are URL-encoded to ensure proper formatting.\n\t *\n\t * @param {object} mParameters - An object containing the parameters for the query string.\n\t * @param {string | undefined} mParameters.expand - The value for the `$expand` parameter, if any.\n\t * @param {string | undefined} mParameters.select - The value for the `$select` parameter, if any.\n\t * @returns {string} A query string containing the `$expand` and `$select` parameters, joined by `&`.\n\t * @private\n\t */\n\tprivate createCustomParams(mParameters: SelectExpandDetail): string {\n\t\tconst aCustomParams = [];\n\t\tif (mParameters?.expand) {\n\t\t\taCustomParams.push(\"$expand=\" + encodeURL(mParameters[\"expand\"]));\n\t\t}\n\t\tif (mParameters?.select) {\n\t\t\taCustomParams.push(\"$select=\" + encodeURL(mParameters[\"select\"]));\n\t\t}\n\t\treturn aCustomParams.join(\"&\");\n\t}\n\n\t/**\n\t * Retrieves an object from the OData meta model based on the given entity type and path.\n\t *\n\t * This method resolves the provided path to an absolute path if it is relative, using the entity type as the base.\n\t * It then retrieves the corresponding object from the meta model. Any \"@\" characters in the path are removed\n\t * to match the meta model's structure.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and annotations.\n\t * @param {string} entityTypeName - The entity type used as the base for resolving relative paths.\n\t * @param {string} path - The path to the object in the meta model. Can be relative or absolute.\n\t * @returns {IPresentationVariant | ILineItem[]} The object retrieved from the meta model, which can be a presentation variant or an array of nested objects.\n\t * @private\n\t */\n\tprivate getObject<T extends IPresentationVariant | ILineItem[]>(metaModel: ODataMetaModel, entityTypeName: string, path: string): T {\n\t\tif (path[0] !== \"/\") {\n\t\t\t// relative path - add path of annotation target, i.e. EntityType\n\t\t\tpath = (metaModel.getODataEntityType(entityTypeName, true) as string) + \"/\" + path; //*****check this */\n\t\t}\n\t\t// assumption: absolute paths in annotations are equal to corresponding paths in metaModel\n\t\t// any \"@\" are removed in the metaModel\n\t\treturn metaModel.getObject(path.replace(/@/g, \"\")) as T;\n\t}\n\n\t/**\n\t * Check If Page is List Report\n\t *\n\t * @param {object} page - page object\n\t * @returns {boolean} returns boolean\n\t * @private\n\t */\n\tpublic _isListReport(page?: IPageType): boolean {\n\t\treturn page?.component?.name === \"sap.suite.ui.generic.template.ListReport\";\n\t}\n\n\t/**\n\t * @param {IPageType[] | PageRecord} pages - pages object from manifest\n\t * @returns {ILrSettings} - returns the settings object for the ListReport\n\t */\n\tprivate getSettingsForPage(pages: IPageType[] | undefined | PageRecord): ILrSettings {\n\t\tif (!pages) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet lrSettings: ILrSettings = {};\n\n\t\t// Handling array and object structure in LR V2 manifest\n\t\tif (Array.isArray(pages) && this._isListReport(pages[0])) {\n\t\t\tconst listPage = pages[0];\n\t\t\tif (listPage?.component) {\n\t\t\t\tconst component = listPage.component;\n\t\t\t\tlrSettings = component?.settings || {};\n\t\t\t\tlrSettings.bSupressCardRowNavigation = this.shouldSuppressCardRowNavigation(listPage);\n\t\t\t}\n\t\t} else if (Object.keys(pages).length) {\n\t\t\tconst sListKey = Object.keys(pages).find((key) => this._isListReport((pages as PageRecord)[key] as IPageType));\n\t\t\tif (sListKey) {\n\t\t\t\tconst listPage = (pages as PageRecord)[sListKey] as IPageType;\n\n\t\t\t\tif (listPage?.component) {\n\t\t\t\t\tconst component = listPage.component;\n\t\t\t\t\tlrSettings = (component?.settings ?? {}) as ILrSettings;\n\t\t\t\t\tlrSettings.bSupressCardRowNavigation = this.shouldSuppressCardRowNavigation(listPage);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn lrSettings;\n\t}\n\n\t/**\n\t * Determines whether card row navigation should be suppressed for the card\n\t *\n\t * @param {IPageType} page - The ListReport page object from the manifest.\n\t * @returns {boolean} True if card row navigation should be suppressed\n\t */\n\tprivate shouldSuppressCardRowNavigation(listPage: IPageType): boolean {\n\t\t// LR only app or if external navigation from OP\n\t\tif (listPage.pages) {\n\t\t\t// If pages is an array, handle based on its length and navigation property\n\t\t\tif (Array.isArray(listPage.pages)) {\n\t\t\t\tif (listPage.pages.length === 0 || listPage.pages[0]?.navigation) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If pages is an object, check if the object keys have navigation\n\t\t\t\tconst keys = Object.keys(listPage.pages);\n\t\t\t\tif (keys.length === 0 || (keys.length && (listPage.pages[keys[0]] as IPageType)?.navigation)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t//if no list pages return true\n\t\t\treturn true;\n\t\t}\n\n\t\t// Check for Quick variant selection X in settings\n\t\tif (listPage?.component?.settings?.quickVariantSelectionX) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * @param {object} metaModel - metamodel object\n\t * @param {ILrSettings} ILrSettings - settings object from the manifest\n\t * @param {string} entitySetName - entity set of the application\n\t * @returns {object} - returns the normalized table settings\n\t * @private\n\t */\n\tprivate getNormalizedTableSettings(\n\t\tmetaModel: ODataMetaModel,\n\t\tlRVariantSettings: ILrSettings | IVariantSetting,\n\t\tentitySetName: string\n\t): ITableSettings {\n\t\tconst settings = deepExtend({}, lRVariantSettings) as ILrSettings;\n\n\t\t// 1. map boolean settings gridTable and treeTable to tableType\n\t\tif (settings && !settings.tableType) {\n\t\t\tif (settings.gridTable) {\n\t\t\t\tsettings.tableType = TABLE_TYPES.GRID;\n\t\t\t} else if (settings.treeTable) {\n\t\t\t\tsettings.tableType = TABLE_TYPES.TREE;\n\t\t\t}\n\t\t}\n\n\t\t// 2. map flat settings to structured ones\n\t\tsettings.tableSettings = settings.tableSettings || {};\n\t\tsettings.tableSettings.type = settings.tableSettings.type || settings.tableType;\n\n\t\tconst entitySet = metaModel.getODataEntitySet(entitySetName) as IEntitySet;\n\t\tconst entityTypeData = metaModel.getODataEntityType(entitySet.entityType) as IEntityType;\n\n\t\t// 3. determine type\n\t\tif (\n\t\t\tsettings.tableSettings.type !== TABLE_TYPES.STANDARD_LIST &&\n\t\t\tsettings.tableSettings.type !== TABLE_TYPES.OBJECT_LIST &&\n\t\t\tentitySetName\n\t\t) {\n\t\t\tsettings.tableSettings.type =\n\t\t\t\tsettings.tableSettings.type ||\n\t\t\t\t(entityTypeData[UIAnnotations.SapSemantics] === \"aggregate\" ? TABLE_TYPES.ANALYTICAL : TABLE_TYPES.RESPONSIVE);\n\t\t\tif (settings.tableSettings.type === TABLE_TYPES.ANALYTICAL && !(entityTypeData[UIAnnotations.SapSemantics] === \"aggregate\")) {\n\t\t\t\tsettings.tableSettings.type = TABLE_TYPES.GRID;\n\t\t\t}\n\t\t}\n\n\t\tif (entityTypeData[UIAnnotations.UIHeaderInfo]) {\n\t\t\tsettings.tableSettings.headerInfo = entityTypeData[UIAnnotations.UIHeaderInfo];\n\t\t}\n\n\t\t// 4. remove deprecated settings (to avoid new code to rely on them)\n\t\tdelete settings.gridTable;\n\t\tdelete settings.treeTable;\n\t\tdelete settings.tableType;\n\n\t\treturn settings.tableSettings;\n\t}\n\n\t/**\n\t * @param {object} metaModel - metamodel object\n\t * @param {string} entitySetName - entity set of the application\n\t * @param {object} tabItem - details of the variant tab\n\t * @returns {boolean} - returns true if the variant is a smart chart\n\t */\n\tprivate checkIfSmartChart(metaModel: ODataMetaModel, entitySetName: string, tabItem: IVariantSetting): boolean {\n\t\tlet entitySetData = metaModel.getODataEntitySet(entitySetName) as IEntitySet;\n\t\tlet entityTypeData = metaModel.getODataEntityType(entitySetData.entityType) as IEntityType;\n\t\tlet annotationName, annotationPath, variantData;\n\t\tannotationPath = tabItem.annotationPath;\n\t\t//variantData = !!annotationPath && (entityTypeData[annotationPath] as VariantInfo);\n\t\tvariantData = annotationPath ? (entityTypeData[annotationPath] as VariantInfo) : undefined;\n\n\t\tif (variantData?.PresentationVariant) {\n\t\t\t// oVariant is SelectionPresentationVariant\n\t\t\tif (variantData.PresentationVariant.Visualizations) {\n\t\t\t\tannotationName = variantData.PresentationVariant.Visualizations[0].AnnotationPath;\n\t\t\t} else if (variantData.PresentationVariant.Path) {\n\t\t\t\tlet sPresentationVariantPath = variantData.PresentationVariant.Path.split(\"@\")[1];\n\t\t\t\tlet oPresentationVariantAnnotation =\n\t\t\t\t\tsPresentationVariantPath && (entityTypeData[sPresentationVariantPath] as IPresentationVariant);\n\t\t\t\tannotationName = oPresentationVariantAnnotation ? oPresentationVariantAnnotation?.Visualizations?.[0].AnnotationPath : \"\";\n\t\t\t}\n\t\t} else if (variantData?.Visualizations) {\n\t\t\t// oVariant is PresentationVariant\n\t\t\tannotationName = variantData.Visualizations[0].AnnotationPath;\n\t\t}\n\n\t\treturn !!((annotationName ?? \"\").indexOf(UIAnnotations.UIChart) > -1);\n\t}\n\n\t/**\n\t * function returns true if the passed entityset / properties have mandatory properties\n\t *\n\t * @param {EntitySet} entitySetData - Entity set\n\t * @param {Array} propertiesSet - Additional Properties\n\t * @returns {boolean} returns boolean\n\t * @private\n\t */\n\tpublic hasMandatoryProperties(entitySetData?: IEntitySet, propertiesSet?: Property[]): boolean {\n\t\t// if entityset has required properties in filter restrictions return true\n\t\tif (entitySetData?.[\"Org.OData.Capabilities.V1.FilterRestrictions\"]?.[\"RequiredProperties\"]?.length) {\n\t\t\treturn true;\n\t\t} else if (propertiesSet?.length) {\n\t\t\t// iterate through all properties and return true if any property is mandatory or sap:rquired-in-filter is true\n\t\t\treturn propertiesSet.some((propertyDetail: Record<string, string> | Property) => {\n\t\t\t\treturn (\n\t\t\t\t\tObject.keys(propertyDetail).length &&\n\t\t\t\t\t((propertyDetail as UIAnnotationValue)[\"sap:parameter\"] === \"mandatory\" ||\n\t\t\t\t\t\t(propertyDetail as UIAnnotationValue)[\"sap:required-in-filter\"] === \"true\")\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Check if sEntitySet has association with parameterised entityset and if it has give parametersised entityset parameters\n\t * @param {object} metaModel OData MetaModel\n\t * @param {string} entitySetName of the EntitySet which has Parameter Entityset in association.\n\t * @param {boolean} infoParamsRequired If the full info of parameters is needed or only the name of params is needed.\n\t * @return {ParameterisedEntity} Contains name of Parameter EntitySet, keys of Parameter EntitySet and Name of Navigation property.\n\t * @private\n\t */\n\tpublic _getParametersisedEntitySetParams(\n\t\tmetaModel: ODataMetaModel,\n\t\tentitySetName: string,\n\t\tinfoParamsRequired: boolean\n\t): ParameterisedEntity {\n\t\tif (!metaModel) {\n\t\t\tthrow new Error(\"OData Model needs to be passed as an argument\");\n\t\t}\n\t\tconst oResult: ParameterisedEntity = { entitySetName: null, parameters: [], navPropertyName: null };\n\t\tconst entitySetData = metaModel.getODataEntitySet(entitySetName) as IEntitySet;\n\t\tconst entityTypeData = metaModel.getODataEntityType(entitySetData.entityType) as IEntityType;\n\t\tconst aNavigationProperties = entityTypeData.navigationProperty;\n\n\t\tif (!aNavigationProperties) {\n\t\t\treturn oResult;\n\t\t}\n\n\t\t// filter the parameter entityset for extracting it's key and it's entityset name\n\t\taNavigationProperties.forEach(function (oNavProperty) {\n\t\t\tconst oNavigationEntitySet = metaModel.getODataAssociationEnd(entityTypeData, oNavProperty.name);\n\t\t\tconst oNavigationEntityType = oNavigationEntitySet && (metaModel.getODataEntityType(oNavigationEntitySet.type) as IEntityType);\n\n\t\t\tif (oNavigationEntityType?.[UIAnnotations.SapSemantics] !== \"parameters\" || !oNavigationEntityType.key) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\toResult.entitySetName = metaModel.getODataAssociationSetEnd(entityTypeData, oNavProperty.name)?.entitySet;\n\t\t\tfor (let value of oNavigationEntityType.key.propertyRef) {\n\t\t\t\tif (infoParamsRequired) {\n\t\t\t\t\tconst navProp = oNavigationEntityType.property as Property[];\n\t\t\t\t\tfor (let navProperty of navProp) {\n\t\t\t\t\t\tif (navProperty.name === value.name) {\n\t\t\t\t\t\t\toResult.parameters.push(navProperty);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\toResult.parameters.push(value.name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst aSubNavigationProperties = oNavigationEntityType.navigationProperty;\n\t\t\t// Parameter entityset must have association back to main entityset.\n\t\t\tconst bBackAssociationPresent = aSubNavigationProperties?.some(function (oSubNavigationProperty) {\n\t\t\t\tconst sSubNavigationEntityType = metaModel.getODataAssociationEnd(\n\t\t\t\t\toNavigationEntityType,\n\t\t\t\t\toSubNavigationProperty?.name\n\t\t\t\t)?.type;\n\t\t\t\t//if entityset.entitytype is same as subnavigation entitytype then it's a back association\n\t\t\t\toResult.navPropertyName = sSubNavigationEntityType === entitySetData.entityType ? oSubNavigationProperty?.name : null;\n\t\t\t\treturn oResult.navPropertyName;\n\t\t\t});\n\n\t\t\treturn bBackAssociationPresent && oResult.navPropertyName && oResult.entitySetName;\n\t\t});\n\t\treturn oResult;\n\t}\n\n\t/**\n\t * This function check if a lineitem annotation column is visible or not\n\t * @param {object} lineItemAnnotations - The column details object\n\t * @returns {Boolean} The column visibility status {true/false}\n\t * @private\n\t */\n\tprivate isPropertyHidden(lineItemAnnotations: ILineItemContext): boolean {\n\t\tlet oFieldControl = lineItemAnnotations[UIAnnotations.CommonFieldControl];\n\t\tlet uiHidden = lineItemAnnotations[UIAnnotations.UIHidden];\n\n\t\t// Check for FieldControl Hidden\n\t\tif (oFieldControl?.EnumMember === FieldAnnotationsType.FieldControlHiddenType) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Check for UI Hidden\n\t\tif (uiHidden) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(uiHidden, \"Bool\")) {\n\t\t\t\treturn uiHidden?.Bool === \"true\";\n\t\t\t} else if (Object.prototype.hasOwnProperty.call(uiHidden, \"Path\")) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true; // <Annotation Term=\"UI.Hidden\"/>\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Creates a P13N string for a given entity set, property, and line item column.\n\t *\n\t * @param {Object} contextSet - The entity set object.\n\t * @param {Object} contextProp - The property details from metadata.\n\t * @param {Object} columnDataField - The line item column data field.\n\t * @param {Object} metaModel - The metadata model object.\n\t * @returns {string} The P13N string for the specified entity set and property.\n\t * @private\n\t */\n\tprivate createP13N(\n\t\tcontextSet: IEntitySet,\n\t\tcontextProp?: Property | UIAnnotationValue,\n\t\tcolumnDataField?: ILineItemContext,\n\t\tmetaModel?: ODataMetaModel\n\t): string {\n\t\tlet p13nDetails: string = \"\";\n\t\tlet additionalProperties: string[] = [];\n\t\tlet navigationPath: string = \"\";\n\t\tlet recordType = columnDataField?.RecordType;\n\t\tlet dataFieldValue = columnDataField?.Value as ExtendedLineItemContextValue;\n\t\tlet valuePath: string = dataFieldValue?.Path || \"\";\n\n\t\tif (\n\t\t\trecordType === FieldAnnotationsType.DataField ||\n\t\t\trecordType === FieldAnnotationsType.DataFieldForAnnotation ||\n\t\t\trecordType === FieldAnnotationsType.DataFieldWithUrl\n\t\t) {\n\t\t\tif (valuePath) {\n\t\t\t\tlet columnKey = this.createP13NColumnKey(columnDataField as ILineItemContext);\n\t\t\t\tp13nDetails = '\\\\{\"columnKey\":\"' + columnKey + '\", \"leadingProperty\":\"' + valuePath;\n\t\t\t\tnavigationPath = this.getNavigationPrefixPath(metaModel as ODataMetaModel, contextSet, valuePath);\n\t\t\t} else if (dataFieldValue?.Apply?.Name === \"odata.concat\") {\n\t\t\t\tdataFieldValue?.Apply?.Parameters.forEach(function (parameterDetails) {\n\t\t\t\t\tif (parameterDetails.Type === \"Path\") {\n\t\t\t\t\t\tif (!p13nDetails) {\n\t\t\t\t\t\t\tp13nDetails = '\\\\{\"columnKey\":\"' + parameterDetails?.Value + '\", \"leadingProperty\":\"' + parameterDetails?.Value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tadditionalProperties.push(parameterDetails.Value);\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\t// Append type information and additional properties\n\t\t\tp13nDetails += this.processAdditionalProperties(\n\t\t\t\tcontextProp as UIAnnotationValue,\n\t\t\t\tcolumnDataField as ILineItemContext,\n\t\t\t\tnavigationPath,\n\t\t\t\tadditionalProperties\n\t\t\t);\n\t\t\tif (recordType === FieldAnnotationsType.DataFieldWithUrl && columnDataField?.Url) {\n\t\t\t\tthis.processDataFieldWithUrl(columnDataField, additionalProperties);\n\t\t\t}\n\t\t\tif (p13nDetails && additionalProperties.length) {\n\t\t\t\tp13nDetails += '\", \"additionalProperty\":\"' + additionalProperties.join();\n\t\t\t}\n\t\t\tif (p13nDetails) {\n\t\t\t\tp13nDetails += '\"\\\\}';\n\t\t\t}\n\t\t}\n\t\treturn p13nDetails;\n\t}\n\n\t//process DataFieldUrl properties and add them to additionalProperties\n\tprivate processDataFieldWithUrl(columnDataField: ILineItemContext, additionalProperties: string[]): void {\n\t\tconst oDataFieldUrl = columnDataField.Url;\n\t\tif (oDataFieldUrl?.Apply?.Parameters) {\n\t\t\toDataFieldUrl.Apply.Parameters.forEach((oParameter) => {\n\t\t\t\tif (oParameter.Type === \"LabeledElement\" && oParameter.Value?.Path) {\n\t\t\t\t\tadditionalProperties.push(oParameter.Value.Path);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (oDataFieldUrl?.Path) {\n\t\t\tadditionalProperties.push(oDataFieldUrl.Path);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a personalized column key based on the provided data field.\n\t * @param {Object} oDataField - The data field object containing metadata for generating the column key.\n\t * @returns {string} The generated column key based on the data field.\n\t */\n\tprivate createP13NColumnKey(dataFieldColumn: ILineItemContext): string {\n\t\tlet columnKeyName = \"\",\n\t\t\tfioriTemplatePrefix = \"template\",\n\t\t\tseperatorNotation = \"::\";\n\t\tlet recordType = dataFieldColumn.RecordType;\n\t\tlet dataFieldValue = dataFieldColumn?.Value;\n\t\tlet dataFieldSemanticObject = dataFieldColumn.SemanticObject?.String || \"\";\n\t\tlet dataFieldActionString = dataFieldColumn.Action?.String || \"\";\n\t\tlet dataFieldPath = dataFieldValue?.Path || \"\";\n\t\tlet annotationPath: string | undefined = \"\",\n\t\t\tisRelevantAnnotation = null;\n\t\tlet buildKey = function (parts: string[]) {\n\t\t\treturn fioriTemplatePrefix + seperatorNotation + parts.join(seperatorNotation);\n\t\t};\n\n\t\tswitch (recordType) {\n\t\t\tcase FieldAnnotationsType.DataField:\n\t\t\t\tcolumnKeyName = dataFieldPath;\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldWithIntentBasedNavigation:\n\t\t\t\tcolumnKeyName = buildKey([\n\t\t\t\t\tFieldTypes.DataFieldWithIntentBasedNavigation,\n\t\t\t\t\tdataFieldSemanticObject,\n\t\t\t\t\tdataFieldActionString,\n\t\t\t\t\tdataFieldPath\n\t\t\t\t]);\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldWithNavigationPath:\n\t\t\t\tcolumnKeyName = buildKey([FieldTypes.DataFieldWithNavigationPath, dataFieldPath]);\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldForIntentBasedNavigation:\n\t\t\t\tcolumnKeyName = buildKey([FieldTypes.DataFieldForIntentBasedNavigation, dataFieldSemanticObject, dataFieldActionString]);\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldForAction:\n\t\t\t\tcolumnKeyName = buildKey([FieldTypes.DataFieldForAction, dataFieldActionString]);\n\t\t\t\tbreak;\n\n\t\t\tcase FieldAnnotationsType.DataFieldForAnnotation:\n\t\t\t\tannotationPath = dataFieldColumn.Target?.AnnotationPath;\n\n\t\t\t\tisRelevantAnnotation =\n\t\t\t\t\tannotationPath &&\n\t\t\t\t\t(annotationPath.indexOf(FieldAnnotationsType.Contact) >= 0 ||\n\t\t\t\t\t\tannotationPath.indexOf(FieldAnnotationsType.DataPoint) >= 0 ||\n\t\t\t\t\t\tannotationPath.indexOf(FieldAnnotationsType.FieldGroup) >= 0 ||\n\t\t\t\t\t\tannotationPath.indexOf(FieldAnnotationsType.Chart) >= 0);\n\t\t\t\tif (isRelevantAnnotation) {\n\t\t\t\t\tcolumnKeyName = buildKey([FieldTypes.DataFieldForAnnotation, annotationPath as string]);\n\t\t\t\t\t//since DataFieldForAnnotation can contain an @ and this is not working with SmartTable.prototype._addTablePersonalisationToToolbar, it is removed\n\t\t\t\t\tcolumnKeyName = columnKeyName.replace(\"@\", \"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\t// Handle cases where the RecordType does not match any of the known types\n\t\t\t\tcolumnKeyName = \"\";\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn columnKeyName;\n\t}\n\n\t/**\n\t * Retrieves the navigation prefix path for a given entity type and value path.\n\t *\n\t * @param {object} oMetaModel - The meta model object.\n\t * @param {object} oContextSet - The context set object containing the entity type.\n\t * @param {string} sPath - The value path for which the navigation prefix is needed.\n\t * @returns {string} The navigation prefix path.\n\t */\n\tprivate getNavigationPrefixPath(oMetaModel: ODataMetaModel, oContextSet: IEntitySet, sPath: string): string {\n\t\tlet sNavigation = \"\";\n\t\tif (oMetaModel) {\n\t\t\tlet oEntityType = oMetaModel.getODataEntityType(oContextSet.entityType) as IEntityType;\n\t\t\tif (oEntityType) {\n\t\t\t\tsNavigation = this._getNavigationPrefix(oMetaModel, oEntityType, sPath);\n\t\t\t\tif (sNavigation) {\n\t\t\t\t\tsNavigation += \"/\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn sNavigation;\n\t}\n\n\t/**\n\t * Retrieves the navigation prefix for a given property within an entity type.\n\t * @param {Object} metaModel - The metadata model object.\n\t * @param {Object} entityTypeData - The entity type object.\n\t * @param {string} propertyName - The property path for which the navigation prefix is to be determined.\n\t * @returns {string} The navigation prefix for the specified property.\n\t */\n\tprivate _getNavigationPrefix(metaModel: ODataMetaModel, entityTypeData: IEntityType, propertyName: string): string {\n\t\tlet expandName = \"\";\n\t\tlet propertyParts = propertyName.split(\"/\");\n\n\t\tif (propertyParts.length > 1) {\n\t\t\tfor (let i = 0; i < propertyParts.length - 1; i++) {\n\t\t\t\tlet associationEndData = metaModel.getODataAssociationEnd(entityTypeData, propertyParts[i]);\n\t\t\t\tif (!associationEndData) {\n\t\t\t\t\treturn expandName;\n\t\t\t\t}\n\t\t\t\tif (associationEndData) {\n\t\t\t\t\tentityTypeData = metaModel.getODataEntityType(associationEndData.type) as IEntityType;\n\t\t\t\t\texpandName += (expandName ? \"/\" : \"\") + propertyParts[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn expandName;\n\t}\n\n\t/**\n\t * Processes additional properties for a given context property and data field.\n\t *\n\t * This method analyzes the provided context property and data field to extract additional properties\n\t * such as criticality, text annotations, unit annotations, and field control paths. It also determines\n\t * the type of the property (e.g., date, string) and appends this information to the P13N string.\n\t *\n\t * @param {UIAnnotationValue} oContextProp - The context property object containing metadata about the property.\n\t * @param {ILineItemContext} oDataField - The data field object containing line item metadata.\n\t * @param {string} sNavigationPath - The navigation path to be prefixed to certain properties.\n\t * @param {string[]} aAdditionalProperties - An array to which additional property paths will be added.\n\t * @returns {string} A P13N string containing additional property details such as type and unit.\n\t * @private\n\t */\n\tprivate processAdditionalProperties(\n\t\toContextProp: UIAnnotationValue,\n\t\toDataField: ILineItemContext,\n\t\tsNavigationPath: string,\n\t\taAdditionalProperties: string[]\n\t): string {\n\t\tlet additionalP13N = \"\";\n\n\t\t// Check for DateTime type with specific display format\n\t\tif (oContextProp?.type === \"Edm.DateTime\" && oContextProp?.[\"sap:display-format\"] === \"Date\") {\n\t\t\tadditionalP13N += '\", \"type\":\"date';\n\t\t} else if (oContextProp?.type === \"Edm.String\") {\n\t\t\tadditionalP13N += '\", \"type\":\"string';\n\t\t}\n\n\t\t// Add Criticality property if available\n\t\tif (oDataField?.Criticality?.Path) {\n\t\t\taAdditionalProperties.push(oDataField?.Criticality.Path);\n\t\t}\n\t\tlet oContextCommonText = oContextProp?.[UIAnnotations.CommonText];\n\n\t\t// Add Text annotation property if available\n\t\tif (oContextCommonText?.Path) {\n\t\t\taAdditionalProperties.push(sNavigationPath + oContextCommonText?.Path);\n\t\t}\n\n\t\t// Add Unit annotation property if available\n\t\tconst oUnitAnnotation = oContextProp\n\t\t\t? oContextProp[UIAnnotations.MeasuresISOCurrency] || oContextProp[UIAnnotations.MeasuresUnit]\n\t\t\t: null;\n\t\tif (oUnitAnnotation?.Path) {\n\t\t\taAdditionalProperties.push(oUnitAnnotation.Path);\n\t\t\tadditionalP13N += '\", \"unit\":\"' + oUnitAnnotation.Path;\n\t\t}\n\t\t// Add FieldControl property if available\n\t\tif (oContextProp?.[UIAnnotations.CommonFieldControl]?.Path) {\n\t\t\taAdditionalProperties.push(sNavigationPath + oContextProp[UIAnnotations.CommonFieldControl].Path);\n\t\t}\n\n\t\treturn additionalP13N;\n\t}\n\n\t/**\n\t * Determines whether a column is supported for card creation.\n\t *\n\t * This method checks conditions to determine if a column is eligible for inclusion in a card,\n\t * conditions are kept similar to RT cards restrictions in V2 LR.\n\t *\n\t * @param {Record<string, string>} columnDataObject - The column data object containing metadata about the column.\n\t * @param {ILineItemContext} dataFieldDetails - The data field object containing line item metadata.\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and properties.\n\t * @param {IEntitySet} entitySetData - The entity set to which the column belongs.\n\t * @returns {boolean} `true` if the column is supported for card creation, otherwise `false`.\n\t * @private\n\t */\n\tprivate isSupportedColumn(\n\t\tcolumnDataObject: ColumnObjectData,\n\t\tdataFieldDetails: ILineItemContext,\n\t\tmetaModel: ODataMetaModel,\n\t\tentitySetData: IEntitySet\n\t): boolean {\n\t\tlet sRecordType = dataFieldDetails.RecordType;\n\t\tif (\n\t\t\tsRecordType === FieldAnnotationsType.DataFieldForAnnotation ||\n\t\t\tsRecordType === FieldAnnotationsType.DataFieldForAction ||\n\t\t\tsRecordType === FieldAnnotationsType.DataFieldForIntentBasedNavigation ||\n\t\t\t!columnDataObject\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tlet entityType = metaModel.getODataEntityType(entitySetData.entityType) as IEntityType;\n\t\tlet propertyDetails = metaModel.getODataProperty(entityType, columnDataObject.leadingProperty!) as UIAnnotationValue;\n\t\tlet columnKeyName = columnDataObject.columnKey;\n\n\t\tif (\n\t\t\tthis.checkMultiplicityForDataFieldAssociation(metaModel, entitySetData, dataFieldDetails) ||\n\t\t\t(columnKeyName &&\n\t\t\t\t(columnKeyName.indexOf(FieldTypes.DataFieldForAnnotation) > -1 ||\n\t\t\t\t\tcolumnKeyName.indexOf(FieldTypes.DataFieldForAction) > -1 ||\n\t\t\t\t\tcolumnKeyName.indexOf(FieldTypes.DataFieldForIntentBasedNavigation) > -1 ||\n\t\t\t\t\tpropertyDetails?.[UIAnnotations.UIIsImageURL]?.Bool === \"true\"))\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Checks the multiplicity of a data field's association in the OData model.\n\t *\n\t * This method verifies whether the association for a given data field has a multiplicity of `*` (many).\n\t * It traverses the navigation path of the data field to determine the multiplicity of the associated entity.\n\t *\n\t * @param {ODataMetaModel} metaModel - The OData meta model containing entity and association metadata.\n\t * @param {IEntitySet} entitySetData - The entity set to which the data field belongs.\n\t * @param {ILineItemContext} dataFieldValue - The data field whose association multiplicity is to be checked.\n\t * @returns {boolean} `true` if the association has a multiplicity of `*`, otherwise `false`.\n\t * @private\n\t */\n\tprivate checkMultiplicityForDataFieldAssociation(\n\t\tmetaModel: ODataMetaModel,\n\t\tentitySetData: IEntitySet,\n\t\tdataFieldValue: ILineItemContext\n\t): boolean {\n\t\tif (dataFieldValue?.Value?.Path) {\n\t\t\tlet dataFieldValuePath = dataFieldValue.Value.Path;\n\t\t\tlet entityTypeData = metaModel && (metaModel.getODataEntityType(entitySetData.entityType) as IEntityType);\n\t\t\tlet associationData: AssociationEnd | null | undefined;\n\t\t\tif (!(dataFieldValuePath.indexOf(\"/\") > -1) || !entityTypeData) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\twhile (dataFieldValuePath.indexOf(\"/\") > -1) {\n\t\t\t\t//if complex path exists then check for multiplicity\n\t\t\t\tlet navigationPropertyPath = dataFieldValuePath.split(\"/\")[0];\n\t\t\t\tdataFieldValuePath = dataFieldValuePath.split(\"/\").slice(1).join(\"/\");\n\t\t\t\tentityTypeData = (metaModel.getODataEntityType((associationData as AssociationEnd)?.type) as IEntityType) || entityTypeData;\n\t\t\t\tassociationData = metaModel.getODataAssociationEnd(entityTypeData, navigationPropertyPath) as AssociationEnd;\n\t\t\t}\n\t\t\tif (associationData && associationData.multiplicity === \"*\") {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|