@sapui5/sap.suite.ui.generic.template 1.152.1 → 1.154.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/suite/ui/generic/template/.library +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +31 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n.properties +7 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ar.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_bg.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ca.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cnr.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cs.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cy.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_de.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_el.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_GB.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_US_sappsd.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_US_saprigi.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es_MX.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_et.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fi.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr_CA.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hi.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hr.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hu.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_id.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_it.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_iw.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ja.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_kk.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ko.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lt.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lv.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_mk.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ms.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_nl.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_no.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pl.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt_PT.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ro.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ru.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sh.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sk.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sl.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sr.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sv.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_th.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_tr.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_uk.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_vi.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_CN.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_TW.properties +3 -0
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +8 -3
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/view/fragments/FilterContainer.fragment.xml +2 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/view/fragments/HeaderCommands.fragment.xml +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/view/fragments/SmartFilterBar.fragment.xml +1 -1
- package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/Component.js +25 -1
- package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +121 -25
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +6 -3
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ar.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_bg.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ca.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cnr.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cs.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cy.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_da.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_de.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_el.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en.properties +3 -1
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_GB.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_US_sappsd.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_US_saprigi.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_es.properties +3 -1
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_es_MX.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_et.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fi.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr_CA.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hi.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hr.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hu.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_id.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_it.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_iw.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ja.properties +4 -2
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_kk.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ko.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_lt.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_lv.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_mk.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ms.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_nl.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_no.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pl.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pt.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pt_PT.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ro.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ru.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sh.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sk.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sl.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sr.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sv.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_th.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_tr.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_uk.properties +3 -1
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_vi.properties +2 -0
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_zh_CN.properties +4 -2
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_zh_TW.properties +5 -3
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +7 -2
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/HeaderCommands.fragment.xml +21 -15
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartFilterBar.fragment.xml +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +96 -14
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +6 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ar.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_bg.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ca.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cs.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cy.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_da.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_de.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_el.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_GB.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_sappsd.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es.properties +5 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es_MX.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_et.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr_CA.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hu.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_id.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_it.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_iw.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ja.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_kk.properties +30 -26
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ko.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lt.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lv.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ms.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_nl.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_no.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pl.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt_PT.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ro.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ru.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sk.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sv.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_th.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_tr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_uk.properties +8 -4
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_vi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_CN.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_TW.properties +8 -4
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +13 -5
- package/src/sap/suite/ui/generic/template/ObjectPage/templateSpecificPreparationHelper.js +2 -2
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/PageLevelCommands.fragment.xml +2 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTableUiTableCommons.fragment.xml +1 -1
- package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/designtime/controls/DynamicPage.designtime.js +39 -3
- package/src/sap/suite/ui/generic/template/designtime/controls/ObjectPageLayout.designtime.js +39 -5
- package/src/sap/suite/ui/generic/template/designtime/controls/SmartTable.designtime.js +17 -0
- package/src/sap/suite/ui/generic/template/detailTemplates/detailUtils.js +3 -2
- package/src/sap/suite/ui/generic/template/detailTemplates/i18n/i18n_es.properties +1 -1
- package/src/sap/suite/ui/generic/template/fragments/EasyFilter.fragment.xml +1 -0
- package/src/sap/suite/ui/generic/template/fragments/SmartTableUiTableCommons.fragment.xml +1 -0
- package/src/sap/suite/ui/generic/template/fragments/TableColumnListItem.fragment.xml +3 -0
- package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +3 -0
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +8 -3
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartTableChartCommon.js +7 -0
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartVariantManagementWrapper.js +35 -43
- package/src/sap/suite/ui/generic/template/genericUtilities/designtime/messagebundle.properties +0 -0
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +28 -7
- package/src/sap/suite/ui/generic/template/lib/Application.js +13 -0
- package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +88 -4
- package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +36 -5
- package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +45 -2
- package/src/sap/suite/ui/generic/template/lib/MessageUtils.js +1 -0
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillAIOrchestrator.js +142 -8
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillApplyHandler.js +21 -6
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController.js +234 -13
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFileHandler.js +218 -0
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFormRenderer.js +83 -18
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +165 -6
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillTableRenderer.js +106 -6
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +193 -30
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +610 -27
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +71 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +48 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_sappsd.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saptrc.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +49 -3
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +50 -4
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +49 -3
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +47 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +48 -2
- package/src/sap/suite/ui/generic/template/lib/insights/InsightsCardHelper.js +24 -4
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +27 -7
- package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +4 -0
- package/src/sap/suite/ui/generic/template/library.js +1 -1
- package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +3 -0
- package/src/sap/suite/ui/generic/template/listTemplates/fragments/TableCommands.fragment.xml +23 -19
- package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +271 -0
- package/src/sap/suite/ui/generic/template/themes/sap_belize_base/ObjectPage.less +9 -0
- package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +9 -0
- package/src/sap/suite/ui/generic/template/themes/sap_hcb/base_ObjectPage.less +9 -0
|
@@ -835,10 +835,10 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
835
835
|
|
|
836
836
|
setComponentRefreshBehaviour(oOutbound);
|
|
837
837
|
|
|
838
|
-
// We now
|
|
839
|
-
//
|
|
840
|
-
if (oOutbound.parameters
|
|
841
|
-
oNavigationHandler.navigate(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, null, null,
|
|
838
|
+
// We now skip setting the app to busy mode when opening a new tab and bypass the re-entry guard (fnNavigateExternal) for explace navigations:
|
|
839
|
+
// the source app stays alive when a new tab is opened, so without the bypass AppComponent.restore() is never called and the guard is never reset.
|
|
840
|
+
if (oServices.oApplication.isExplaceNavigation(oOutbound.parameters)) {
|
|
841
|
+
oNavigationHandler.navigate(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, null, null, "explace");
|
|
842
842
|
} else {
|
|
843
843
|
oServices.oApplication.navigateExternal(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, fnHandleError);
|
|
844
844
|
//null object has to be passed to the NavigationHandler as an
|
|
@@ -1791,6 +1791,36 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
1791
1791
|
var fnRemovePropertiesFromNavigationContext = testableHelper.testable(fnRemovePropertiesFromNavigationContext, "removePropertiesFromNavigationContext");
|
|
1792
1792
|
/* eslint-enable */
|
|
1793
1793
|
|
|
1794
|
+
/**
|
|
1795
|
+
* Returns the first visible, enabled custom Emphasized button in the view, or null.
|
|
1796
|
+
* Skips excluded controls and their children, framework buttons (template:: IDs),
|
|
1797
|
+
* buttons inside dialogs or popovers (including closed ones), buttons in hidden containers,
|
|
1798
|
+
* and the internal buttons of a sap.m.PDFViewer.
|
|
1799
|
+
* Used by Ctrl+Enter on LR (live mode or worklist), ALP (live mode) and OP.
|
|
1800
|
+
* @param {sap.ui.core.mvc.View} oView The view to scan
|
|
1801
|
+
* @param {sap.ui.core.Control[]} aExcludedControls Controls to skip together with their children
|
|
1802
|
+
* @returns {sap.m.Button|null} The button, or null
|
|
1803
|
+
*/
|
|
1804
|
+
function fnFindCustomEmphasizedButton(oView, aExcludedControls) {
|
|
1805
|
+
var aButtons = oView.findAggregatedObjects(true, function(oControl) {
|
|
1806
|
+
if (!oControl.isA("sap.m.Button") || oControl.getType() !== "Emphasized" ||
|
|
1807
|
+
!oControl.getVisible() || !oControl.getEnabled() ||
|
|
1808
|
+
aExcludedControls.indexOf(oControl) >= 0 || oControl.getId().indexOf("template::") !== -1) {
|
|
1809
|
+
return false;
|
|
1810
|
+
}
|
|
1811
|
+
for (var oParent = oControl.getParent(); oParent && oParent !== oView; oParent = oParent.getParent()) {
|
|
1812
|
+
if (aExcludedControls.indexOf(oParent) >= 0 ||
|
|
1813
|
+
oParent.isA("sap.m.Dialog") || oParent.isA("sap.m.Popover") ||
|
|
1814
|
+
oParent.isA("sap.m.PDFViewer") ||
|
|
1815
|
+
(oParent.getVisible && !oParent.getVisible())) {
|
|
1816
|
+
return false;
|
|
1817
|
+
}
|
|
1818
|
+
}
|
|
1819
|
+
return true;
|
|
1820
|
+
});
|
|
1821
|
+
return aButtons[0] || null;
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1794
1824
|
return {
|
|
1795
1825
|
getPositionableControlId: getPositionableControlId,
|
|
1796
1826
|
getMetaModelEntityType: getMetaModelEntityType,
|
|
@@ -2101,7 +2131,8 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
2101
2131
|
transformTechnicalPropsOnExportedFile: fnTransformTechnicalPropsOnExportedFile,
|
|
2102
2132
|
includeEntitySetParametersToExportedFile: fnIncludeEntitySetParametersToExportedFile,
|
|
2103
2133
|
openContextInNewTabFromListItem: fnOpenContextInNewTabFromListItem,
|
|
2104
|
-
getCustomizedTextFromApp: getCustomizedTextFromApp
|
|
2134
|
+
getCustomizedTextFromApp: getCustomizedTextFromApp,
|
|
2135
|
+
findCustomEmphasizedButton: fnFindCustomEmphasizedButton
|
|
2105
2136
|
};
|
|
2106
2137
|
}
|
|
2107
2138
|
|
|
@@ -228,7 +228,7 @@ sap.ui.define([
|
|
|
228
228
|
|
|
229
229
|
function fnAddToolbarButtonToContextMenu(sPathToItems, oFocusInfo, oToolbarControlsData, aItems, oButton, bStartsNewSection){
|
|
230
230
|
// Case 1: If button has the stable id, use it to find local id.
|
|
231
|
-
// Case 2: If the button was created using design time adaption, use the custom data "originalButtonId" to find local id.
|
|
231
|
+
// Case 2: If the button was created using design time adaption, use the custom data "originalButtonId" to find local id.
|
|
232
232
|
var sButtonLocalId = oView.getLocalId(oButton.getId()) || oView.getLocalId(oButton.data("originalButtonId"));
|
|
233
233
|
|
|
234
234
|
var oHandlePromise = null;
|
|
@@ -254,6 +254,45 @@ sap.ui.define([
|
|
|
254
254
|
return false;
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
+
// Returns a raw entry object for a toolbar button child without writing to the model.
|
|
258
|
+
// Generates a key and registers the handler in mHandlers so clicks on sub-menu items
|
|
259
|
+
// resolve correctly via onContextMenu. The parent fnAddMenuItem Promise.all owns all
|
|
260
|
+
// child enabled-flag writes; no setProperty call is made here.
|
|
261
|
+
function fnGetToolbarButtonContextMenuEntry(oFocusInfo, oToolbarControlsData, oButton, bStartsSection) {
|
|
262
|
+
var sButtonLocalId = oView.getLocalId(oButton.getId()) || oView.getLocalId(oButton.data("originalButtonId"));
|
|
263
|
+
|
|
264
|
+
var oStandardControlData = oToolbarControlsData.standardActions.find(function(oControlData){
|
|
265
|
+
return oControlData.ID === sButtonLocalId;
|
|
266
|
+
});
|
|
267
|
+
var oBreakoutControlData = oConfiguration.findBreakoutActionByLocalId(oToolbarControlsData.breakoutActions, sButtonLocalId);
|
|
268
|
+
|
|
269
|
+
var oHandlePromise = null;
|
|
270
|
+
if (oStandardControlData) {
|
|
271
|
+
oHandlePromise = getHandlePromiseForStandardAction(oFocusInfo, oStandardControlData, oButton);
|
|
272
|
+
} else if (oBreakoutControlData) {
|
|
273
|
+
oHandlePromise = getHandlePromiseForBreakoutAction(oFocusInfo, oBreakoutControlData, oButton);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
if (!oHandlePromise) {
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
iCreatedMenuItemsCounter++;
|
|
280
|
+
var sKey = "ContextMenuKey" + iCreatedMenuItemsCounter;
|
|
281
|
+
oHandlePromise.then(function(fnHandler) {
|
|
282
|
+
if (fnHandler) {
|
|
283
|
+
mHandlers[sKey] = fnHandler;
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
return {
|
|
287
|
+
text: oButton.getText(),
|
|
288
|
+
icon: oButton.getIcon(),
|
|
289
|
+
key: sKey,
|
|
290
|
+
enabled: false,
|
|
291
|
+
startsSection: bStartsSection,
|
|
292
|
+
handlerPromise: oHandlePromise
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
|
|
257
296
|
/**
|
|
258
297
|
*
|
|
259
298
|
* Evaluates the menu items in a menu button and adds them to the context menu based on the following rules:
|
|
@@ -271,7 +310,11 @@ sap.ui.define([
|
|
|
271
310
|
var aChildContextMenuEntries = [];
|
|
272
311
|
aMenuItems.forEach(function (oMenuItem) {
|
|
273
312
|
var bStartsSectionOnSubMenu = oMenuItem.getStartsSection();
|
|
274
|
-
|
|
313
|
+
var oEntry = fnGetToolbarButtonContextMenuEntry(oFocusInfo, oToolbarControlsData, oMenuItem, bStartsSectionOnSubMenu);
|
|
314
|
+
if (oEntry) {
|
|
315
|
+
oEntry.startsSection = oEntry.startsSection && aChildContextMenuEntries.length > 0;
|
|
316
|
+
aChildContextMenuEntries.push(oEntry);
|
|
317
|
+
}
|
|
275
318
|
});
|
|
276
319
|
|
|
277
320
|
if (aChildContextMenuEntries.length === 1) {
|
|
@@ -169,6 +169,7 @@ sap.ui.define([
|
|
|
169
169
|
sMessageDescription = oResourceBundle.getText("ST_GENERIC_ERROR_SYSTEM_UNAVAILABLE_DESC");
|
|
170
170
|
break;
|
|
171
171
|
case 0:
|
|
172
|
+
case undefined:
|
|
172
173
|
// case when server being offline
|
|
173
174
|
/*adapted to have a reasonable processing for the Apply-Button -
|
|
174
175
|
* workaround to not leave the page in case of apply */
|
|
@@ -73,12 +73,30 @@ sap.ui.define([
|
|
|
73
73
|
fnGetLabel
|
|
74
74
|
);
|
|
75
75
|
|
|
76
|
+
// Seed current field values so the LLM can compute relative changes
|
|
77
|
+
// (e.g. "increase Delivery Date by 10 days", "increase Price by 20%").
|
|
78
|
+
if (oObjectPageContext) {
|
|
79
|
+
Object.keys(mFieldMapping).forEach(function(sPropertyName) {
|
|
80
|
+
var oEntry = mFieldMapping[sPropertyName];
|
|
81
|
+
if (!oEntry || oEntry.isCollection === true) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
var vCurrentValue = oObjectPageContext.getProperty(sPropertyName);
|
|
85
|
+
if (vCurrentValue !== undefined && vCurrentValue !== null) {
|
|
86
|
+
oEntry.currentValue = vCurrentValue;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
76
91
|
return mFieldMapping;
|
|
77
92
|
},
|
|
78
93
|
|
|
79
94
|
/**
|
|
80
|
-
* Sends the user's free-text input to the AI service
|
|
81
|
-
*
|
|
95
|
+
* Sends the user's free-text input to the AI service using a two-prompt flow.
|
|
96
|
+
*
|
|
97
|
+
* First prompt sends field metadata without table row data. If the AI returns
|
|
98
|
+
* 'scnd_cll' (second-call flag), a second prompt is made with the current table
|
|
99
|
+
* row data (ISLM_Collection_Data) so the AI can reference existing rows.
|
|
82
100
|
*
|
|
83
101
|
* @param {string} sInputText - the user's free-text input from the EasyFill textarea
|
|
84
102
|
* @param {object} mFieldMapping - the complete field mapping built by buildFieldMapping()
|
|
@@ -86,19 +104,135 @@ sap.ui.define([
|
|
|
86
104
|
* @returns {Promise<object>} AI service result: { success: boolean, data: object }
|
|
87
105
|
*/
|
|
88
106
|
submitToAI: async function(sInputText, mFieldMapping, oTemplateUtils) {
|
|
89
|
-
oLogger.debug("submitToAI:
|
|
107
|
+
oLogger.debug("submitToAI: starting two-prompt AI extraction flow");
|
|
90
108
|
try {
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
);
|
|
95
|
-
|
|
109
|
+
var oEasyFill = oTemplateUtils.oServices.oFioriAIHandler.fioriaiLib.EasyFill;
|
|
110
|
+
|
|
111
|
+
// First prompt: send field metadata without table row data
|
|
112
|
+
var mFieldMappingWithoutTableRows = this.buildFieldMappingWithoutTableRows(mFieldMapping);
|
|
113
|
+
var oFirstResult = await oEasyFill.extractFieldValuesFromText(sInputText, mFieldMappingWithoutTableRows);
|
|
114
|
+
if (!oFirstResult.success) {
|
|
115
|
+
return oFirstResult;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// If the AI signals that table row context is needed, run a second prompt
|
|
119
|
+
if ("scnd_cll" in oFirstResult.data) {
|
|
120
|
+
oLogger.debug("submitToAI: second prompt required for table row edits");
|
|
121
|
+
var oTableData = this.buildTableDataForSecondPrompt(oFirstResult.data, mFieldMapping);
|
|
122
|
+
var mFilteredMetadata = this.filterFieldMetadataByFirstPromptResponse(oFirstResult.data, mFieldMapping);
|
|
123
|
+
var oSecondResult = await oEasyFill.extractFieldValuesWithTableData(sInputText, mFilteredMetadata, oTableData);
|
|
124
|
+
if (!oSecondResult.success) {
|
|
125
|
+
return oSecondResult;
|
|
126
|
+
}
|
|
127
|
+
return { success: true, data: this.stripSecondPromptFlag(oSecondResult.data) };
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// No second prompt needed: first prompt returned all field values
|
|
131
|
+
return { success: true, data: this.stripSecondPromptFlag(oFirstResult.data) };
|
|
96
132
|
} catch (e) {
|
|
97
133
|
oLogger.error("submitToAI: AI call failed: " + (e && e.message));
|
|
98
134
|
return { success: false, data: {} };
|
|
99
135
|
}
|
|
100
136
|
},
|
|
101
137
|
|
|
138
|
+
/**
|
|
139
|
+
* Returns a copy of mFieldMapping where collection entries contain only
|
|
140
|
+
* { description, dataType, itemProperties, isCollection: true }, with
|
|
141
|
+
* currentItems removed. Used for the first AI prompt to avoid sending large
|
|
142
|
+
* table row payloads before it is known whether the AI needs them.
|
|
143
|
+
* itemProperties is preserved so the LLM knows the schema of each collection.
|
|
144
|
+
*
|
|
145
|
+
* @param {object} mFieldMapping - the complete field mapping
|
|
146
|
+
* @returns {object} field mapping with currentItems stripped from collection entries
|
|
147
|
+
*/
|
|
148
|
+
buildFieldMappingWithoutTableRows: function(mFieldMapping) {
|
|
149
|
+
var mResult = {};
|
|
150
|
+
Object.keys(mFieldMapping).forEach(function(sFieldName) {
|
|
151
|
+
var oEntry = mFieldMapping[sFieldName];
|
|
152
|
+
if (oEntry && oEntry.isCollection === true) {
|
|
153
|
+
mResult[sFieldName] = {
|
|
154
|
+
description: oEntry.description,
|
|
155
|
+
dataType: oEntry.dataType,
|
|
156
|
+
itemProperties: oEntry.itemProperties,
|
|
157
|
+
isCollection: true
|
|
158
|
+
};
|
|
159
|
+
} else {
|
|
160
|
+
mResult[sFieldName] = oEntry;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return mResult;
|
|
164
|
+
},
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Builds the table data structure passed to the second AI prompt (ISLM_Collection_Data).
|
|
168
|
+
* Only includes tables that were mentioned in the first prompt response and have
|
|
169
|
+
* existing row data.
|
|
170
|
+
*
|
|
171
|
+
* @param {object} oFirstPromptData - the first prompt response data (may contain scnd_cll)
|
|
172
|
+
* @param {object} mFieldMapping - the complete field mapping (contains currentItems per table)
|
|
173
|
+
* @returns {object} table data: { [navProp]: { currentItems: array } }
|
|
174
|
+
*/
|
|
175
|
+
buildTableDataForSecondPrompt: function(oFirstPromptData, mFieldMapping) {
|
|
176
|
+
var oTableData = {};
|
|
177
|
+
Object.keys(oFirstPromptData).forEach(function(sFieldName) {
|
|
178
|
+
if (sFieldName === "scnd_cll") { return; }
|
|
179
|
+
var oFieldMeta = mFieldMapping[sFieldName];
|
|
180
|
+
if (!oFieldMeta || oFieldMeta.isCollection !== true) { return; }
|
|
181
|
+
var aCurrentItems = oFieldMeta.currentItems;
|
|
182
|
+
if (Array.isArray(aCurrentItems) && aCurrentItems.length > 0) {
|
|
183
|
+
oTableData[sFieldName] = { currentItems: aCurrentItems };
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
return oTableData;
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Filters the field mapping to only include fields mentioned in the first prompt
|
|
191
|
+
* response. For collection fields, currentItems is excluded because table data is
|
|
192
|
+
* passed separately via ISLM_Collection_Data in the second prompt.
|
|
193
|
+
*
|
|
194
|
+
* @param {object} oFirstPromptData - the first prompt response data
|
|
195
|
+
* @param {object} mFieldMapping - the complete field mapping
|
|
196
|
+
* @returns {object} filtered field metadata for the second prompt
|
|
197
|
+
*/
|
|
198
|
+
filterFieldMetadataByFirstPromptResponse: function(oFirstPromptData, mFieldMapping) {
|
|
199
|
+
var mResult = {};
|
|
200
|
+
Object.keys(oFirstPromptData).forEach(function(sFieldName) {
|
|
201
|
+
if (sFieldName === "scnd_cll") { return; }
|
|
202
|
+
var oFieldMeta = mFieldMapping[sFieldName];
|
|
203
|
+
if (oFieldMeta === undefined) { return; }
|
|
204
|
+
if (oFieldMeta.isCollection === true) {
|
|
205
|
+
// Include collection metadata without currentItems
|
|
206
|
+
var oWithoutCurrentItems = {};
|
|
207
|
+
Object.keys(oFieldMeta).forEach(function(sKey) {
|
|
208
|
+
if (sKey !== "currentItems") {
|
|
209
|
+
oWithoutCurrentItems[sKey] = oFieldMeta[sKey];
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
mResult[sFieldName] = oWithoutCurrentItems;
|
|
213
|
+
} else {
|
|
214
|
+
mResult[sFieldName] = oFieldMeta;
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
return mResult;
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Returns a copy of oData with the internal 'scnd_cll' flag key removed.
|
|
222
|
+
*
|
|
223
|
+
* @param {object} oData - field values that may contain the scnd_cll flag
|
|
224
|
+
* @returns {object} field values without the internal flag
|
|
225
|
+
*/
|
|
226
|
+
stripSecondPromptFlag: function(oData) {
|
|
227
|
+
var oResult = {};
|
|
228
|
+
Object.keys(oData).forEach(function(sKey) {
|
|
229
|
+
if (sKey !== "scnd_cll") {
|
|
230
|
+
oResult[sKey] = oData[sKey];
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
return oResult;
|
|
234
|
+
},
|
|
235
|
+
|
|
102
236
|
/**
|
|
103
237
|
* Converts date-like string values in the AI response to JavaScript Date objects,
|
|
104
238
|
* based on the OData data type declared in the field mapping.
|
|
@@ -8,6 +8,11 @@ sap.ui.define([
|
|
|
8
8
|
var sClassName = "lib.ai.EasyFill.EasyFillApplyHandler";
|
|
9
9
|
var oLogger = new FeLogger(sClassName).getLogger();
|
|
10
10
|
|
|
11
|
+
// Maximum number of characters accepted as AI input.
|
|
12
|
+
// Keep in sync with EasyFillDialogController.MAX_INPUT_LENGTH and the TextArea maxLength in
|
|
13
|
+
// EasyFillDialog.fragment.xml.
|
|
14
|
+
var MAX_INPUT_LENGTH = 50000;
|
|
15
|
+
|
|
11
16
|
/**
|
|
12
17
|
* EasyFillApplyHandler
|
|
13
18
|
*
|
|
@@ -98,8 +103,11 @@ sap.ui.define([
|
|
|
98
103
|
var mCollectionPropertyMap = (mCollectionState && mCollectionState.mCollectionProperties &&
|
|
99
104
|
mCollectionState.mCollectionProperties[sCollectionName]) || Object.create(null);
|
|
100
105
|
|
|
101
|
-
// Extract scalar values for ALL new row contexts
|
|
102
|
-
var
|
|
106
|
+
// Extract scalar values for ALL non-excluded new row contexts
|
|
107
|
+
var oExcludedNew = oTableStagingState.mExcludedNewRows && oTableStagingState.mExcludedNewRows[sCollectionName];
|
|
108
|
+
var aRowValues = aNewContexts.filter(function(_, i) {
|
|
109
|
+
return !oExcludedNew || !oExcludedNew[i];
|
|
110
|
+
}).map(function(oNewContext) {
|
|
103
111
|
var oValues = Object.create(null);
|
|
104
112
|
Object.keys(mCollectionPropertyMap).forEach(function(sPropName) {
|
|
105
113
|
var vValue = oNewContext.getProperty && oNewContext.getProperty(sPropName);
|
|
@@ -132,7 +140,9 @@ sap.ui.define([
|
|
|
132
140
|
var aStagedRows = mStagedRowsByCollection[sCollectionName] || [];
|
|
133
141
|
var mCollectionPropertyMap = mCollectionState.mCollectionProperties[sCollectionName] || Object.create(null);
|
|
134
142
|
|
|
135
|
-
|
|
143
|
+
var oExcludedRows = oTableStagingState.mExcludedRows && oTableStagingState.mExcludedRows[sCollectionName];
|
|
144
|
+
aStagedRows.forEach(function(oStagedRow, iIndex) {
|
|
145
|
+
if (oExcludedRows && oExcludedRows[iIndex]) { return; }
|
|
136
146
|
var oRealContext = oStagedRow.realContext;
|
|
137
147
|
var oTransientContext = oStagedRow.transientContext;
|
|
138
148
|
if (!oRealContext || !oTransientContext) {
|
|
@@ -192,9 +202,11 @@ sap.ui.define([
|
|
|
192
202
|
if (bHasUpdates) {
|
|
193
203
|
return true;
|
|
194
204
|
}
|
|
195
|
-
// Also return true if there are pending new row contexts
|
|
205
|
+
// Also return true if there are pending new row contexts that are not excluded
|
|
196
206
|
return Object.keys((oTableStagingState && oTableStagingState.mPendingNewRowContexts) || {}).some(function(sCollectionName) {
|
|
197
|
-
|
|
207
|
+
var aContexts = (oTableStagingState.mPendingNewRowContexts[sCollectionName]) || [];
|
|
208
|
+
var oExcludedNew = oTableStagingState.mExcludedNewRows && oTableStagingState.mExcludedNewRows[sCollectionName];
|
|
209
|
+
return aContexts.some(function(_, i) { return !oExcludedNew || !oExcludedNew[i]; });
|
|
198
210
|
});
|
|
199
211
|
},
|
|
200
212
|
|
|
@@ -203,7 +215,7 @@ sap.ui.define([
|
|
|
203
215
|
* Clears the dialog model properties, destroys table preview items,
|
|
204
216
|
* and optionally clears the text area value.
|
|
205
217
|
*
|
|
206
|
-
* @param {boolean} bRemoveTextAreaValue - if true, also clears the user input text area
|
|
218
|
+
* @param {boolean} bRemoveTextAreaValue - if true, also clears the user input text area and resets all file import state (sImportedFileText, file model properties)
|
|
207
219
|
* @param {object} oDialogModel - the easyFillDialogModel JSONModel
|
|
208
220
|
* @param {object} oController - MVC controller (used to byId controls)
|
|
209
221
|
* @param {object} mCollectionUpdates - mutable collection updates map (cleared in place)
|
|
@@ -253,6 +265,9 @@ sap.ui.define([
|
|
|
253
265
|
var oTextArea = oController.byId("EasyFillInputTextArea");
|
|
254
266
|
if (oTextArea) { oTextArea.setValue(""); }
|
|
255
267
|
oDialogModel.setProperty("/isEasyFillButtonEnabled", false);
|
|
268
|
+
oDialogModel.setProperty("/hasEnteredText", false);
|
|
269
|
+
var oRb = oController.getView().getModel("i18n").getResourceBundle();
|
|
270
|
+
oDialogModel.setProperty("/remainingCharactersText", oRb.getText("EASYFILL_REMAINING_CHARACTERS", [MAX_INPUT_LENGTH]));
|
|
256
271
|
}
|
|
257
272
|
|
|
258
273
|
oLogger.debug("resetEasyFill: dialog state reset" + (bRemoveTextAreaValue ? " (including text area)" : ""));
|