@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
|
@@ -8,7 +8,8 @@ sap.ui.define([
|
|
|
8
8
|
"sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFormRenderer",
|
|
9
9
|
"sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillTableRenderer",
|
|
10
10
|
"sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillApplyHandler",
|
|
11
|
-
"sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController"
|
|
11
|
+
"sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController",
|
|
12
|
+
"sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFileHandler"
|
|
12
13
|
], function(
|
|
13
14
|
BaseObject,
|
|
14
15
|
extend,
|
|
@@ -19,7 +20,8 @@ sap.ui.define([
|
|
|
19
20
|
EasyFillFormRenderer,
|
|
20
21
|
EasyFillTableRenderer,
|
|
21
22
|
EasyFillApplyHandler,
|
|
22
|
-
EasyFillDialogController
|
|
23
|
+
EasyFillDialogController,
|
|
24
|
+
EasyFillFileHandler
|
|
23
25
|
) {
|
|
24
26
|
"use strict";
|
|
25
27
|
|
|
@@ -60,6 +62,9 @@ sap.ui.define([
|
|
|
60
62
|
// including extension fragment fields and custom fields.
|
|
61
63
|
var oOPStructureMap = null;
|
|
62
64
|
var mLiveEditable = null;
|
|
65
|
+
// Stores the text extracted from an imported file (TXT/CSV).
|
|
66
|
+
// When non-null, this is sent to the AI instead of the textarea value.
|
|
67
|
+
var sImportedFileText = null;
|
|
63
68
|
|
|
64
69
|
// Collection state — tracks OData row contexts and property metadata for SmartTable collections
|
|
65
70
|
var mCollectionState = {
|
|
@@ -76,7 +81,9 @@ sap.ui.define([
|
|
|
76
81
|
var mLastFieldMapping = null; // retained so table sections can be re-rendered on mode switch
|
|
77
82
|
var oTableStagingState = {
|
|
78
83
|
mStagedRows: Object.create(null),
|
|
79
|
-
mPendingNewRowContexts: Object.create(null)
|
|
84
|
+
mPendingNewRowContexts: Object.create(null),
|
|
85
|
+
mExcludedRows: Object.create(null), // { navProp: { index: true } } existing rows excluded by user
|
|
86
|
+
mExcludedNewRows: Object.create(null) // { navProp: { index: true } } new rows excluded by user
|
|
80
87
|
};
|
|
81
88
|
|
|
82
89
|
// ─── Internal Helpers ────────────────────────────────────────────────────
|
|
@@ -108,6 +115,13 @@ sap.ui.define([
|
|
|
108
115
|
* @returns {object} handler/formatter map
|
|
109
116
|
*/
|
|
110
117
|
function _buildDialogHandlers() {
|
|
118
|
+
// Shared text-imported callback: sets sImportedFileText and re-renders preview.
|
|
119
|
+
// Used by both the FileUploader change handler and the drop handler.
|
|
120
|
+
function fnOnTextImported(sText) {
|
|
121
|
+
sImportedFileText = sText;
|
|
122
|
+
EasyFillDialogController.renderFilePreview(oController, EasyFillFileHandler, sImportedFileText);
|
|
123
|
+
}
|
|
124
|
+
|
|
111
125
|
return {
|
|
112
126
|
// ── Layout mode toggle (Condensed ↔ ObjectPage view) ──────────────
|
|
113
127
|
// After the sections binding is refreshed, SmartForms for the new mode
|
|
@@ -219,6 +233,145 @@ sap.ui.define([
|
|
|
219
233
|
// ── AI Notice popover ─────────────────────────────────────────────
|
|
220
234
|
onLinkPress: async function(oEvent) {
|
|
221
235
|
await EasyFillDialogController.onLinkPress(oEvent, oTemplateUtils, oAIPopoverRef);
|
|
236
|
+
},
|
|
237
|
+
|
|
238
|
+
// ── File import: FileUploader change event ────────────────────────
|
|
239
|
+
onFileUploaderChange: function(oEvent) {
|
|
240
|
+
EasyFillDialogController.onFileUploaderChange(
|
|
241
|
+
oEvent, oController, oRb, EasyFillFileHandler, fnOnTextImported
|
|
242
|
+
);
|
|
243
|
+
},
|
|
244
|
+
|
|
245
|
+
// ── File import: FileUploader rejected the chosen file by extension ──
|
|
246
|
+
onFileTypeMismatch: function() {
|
|
247
|
+
EasyFillDialogController.showFileTypeError(oRb);
|
|
248
|
+
},
|
|
249
|
+
|
|
250
|
+
// ── File discard: removes the imported file and restores the input area ──
|
|
251
|
+
onDiscardImportedFile: function() {
|
|
252
|
+
EasyFillFileHandler.confirmFileRemoval(oRb.getText("EASY_FILL_REMOVE_FILE_CONFIRM"), function() {
|
|
253
|
+
sImportedFileText = null;
|
|
254
|
+
EasyFillDialogController.resetFileState(oController);
|
|
255
|
+
var oDialogModel = oController.getView().getModel("easyFillDialogModel");
|
|
256
|
+
if (oDialogModel) {
|
|
257
|
+
oDialogModel.setProperty("/isEasyFillButtonEnabled", false);
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
},
|
|
261
|
+
|
|
262
|
+
// ── Table/text view toggle for CSV preview ───────────────────────────
|
|
263
|
+
onFilePreviewModeChange: function(oEvent) {
|
|
264
|
+
var oDialogModel = oController.getView().getModel("easyFillDialogModel");
|
|
265
|
+
var sSelectedKey = oEvent.getParameter("item").getKey();
|
|
266
|
+
oDialogModel.setProperty("/selectedFilePreviewMode", sSelectedKey);
|
|
267
|
+
EasyFillDialogController.renderFilePreview(oController, EasyFillFileHandler, sImportedFileText);
|
|
268
|
+
},
|
|
269
|
+
|
|
270
|
+
// ── Drag-and-drop: wire native drop events after dialog opens ────────
|
|
271
|
+
// Uses addEventDelegate({onAfterRendering}) on the SAPUI5 control so that
|
|
272
|
+
// drop handlers are re-attached each time the DOM element is re-created.
|
|
273
|
+
// This is necessary because EasyFillInputContainer is hidden (visible=false)
|
|
274
|
+
// when a file is uploaded and shown again on Clear All, which destroys and
|
|
275
|
+
// recreates the DOM element — exactly the V4 approach.
|
|
276
|
+
_onAfterOpen: function() {
|
|
277
|
+
var oInputContainer = oController.byId("EasyFillInputContainer");
|
|
278
|
+
if (!oInputContainer) { return; }
|
|
279
|
+
|
|
280
|
+
function attachDropHandlers() {
|
|
281
|
+
var oDomRef = oInputContainer.getDomRef();
|
|
282
|
+
if (!oDomRef || oDomRef.dataset["dropInitialized"]) { return; }
|
|
283
|
+
oDomRef.dataset["dropInitialized"] = "true";
|
|
284
|
+
|
|
285
|
+
var iDragDepth = 0;
|
|
286
|
+
|
|
287
|
+
function isFileDrag(oDragEvent) {
|
|
288
|
+
var oTransfer = oDragEvent.dataTransfer;
|
|
289
|
+
return !!(oTransfer && Array.prototype.indexOf.call(oTransfer.types, "Files") !== -1);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
function resetDragState() {
|
|
293
|
+
iDragDepth = 0;
|
|
294
|
+
oDomRef.classList.remove("sapSmartTemplatesObjectPageEasyFillInputContainerDropDisabled");
|
|
295
|
+
oController.getView().getModel("easyFillDialogModel").setProperty("/isDragging", false);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
oDomRef.addEventListener("dragenter", function(oDragEvent) {
|
|
299
|
+
if (!isFileDrag(oDragEvent)) { return; }
|
|
300
|
+
oDragEvent.preventDefault();
|
|
301
|
+
iDragDepth++;
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
oDomRef.addEventListener("dragover", function(oDragEvent) {
|
|
305
|
+
if (!isFileDrag(oDragEvent)) { return; }
|
|
306
|
+
oDragEvent.preventDefault();
|
|
307
|
+
var oDialogModel = oController.getView().getModel("easyFillDialogModel");
|
|
308
|
+
var bBlocked = !!oDialogModel.getProperty("/uploadedFileName") ||
|
|
309
|
+
!!oDialogModel.getProperty("/hasEnteredText");
|
|
310
|
+
if (oDragEvent.dataTransfer) {
|
|
311
|
+
oDragEvent.dataTransfer.dropEffect = bBlocked ? "none" : "copy";
|
|
312
|
+
}
|
|
313
|
+
if (bBlocked) {
|
|
314
|
+
oDomRef.classList.add("sapSmartTemplatesObjectPageEasyFillInputContainerDropDisabled");
|
|
315
|
+
} else {
|
|
316
|
+
oDomRef.classList.remove("sapSmartTemplatesObjectPageEasyFillInputContainerDropDisabled");
|
|
317
|
+
}
|
|
318
|
+
oDialogModel.setProperty("/isDragging", true);
|
|
319
|
+
});
|
|
320
|
+
|
|
321
|
+
oDomRef.addEventListener("dragleave", function(oDragEvent) {
|
|
322
|
+
if (!isFileDrag(oDragEvent)) { return; }
|
|
323
|
+
iDragDepth = Math.max(0, iDragDepth - 1);
|
|
324
|
+
if (iDragDepth === 0) {
|
|
325
|
+
oDomRef.classList.remove("sapSmartTemplatesObjectPageEasyFillInputContainerDropDisabled");
|
|
326
|
+
oController.getView().getModel("easyFillDialogModel").setProperty("/isDragging", false);
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
oDomRef.addEventListener("drop", function(oDragEvent) {
|
|
331
|
+
oDragEvent.preventDefault();
|
|
332
|
+
oDragEvent.stopPropagation();
|
|
333
|
+
resetDragState();
|
|
334
|
+
|
|
335
|
+
var oDialogModel = oController.getView().getModel("easyFillDialogModel");
|
|
336
|
+
if (oDialogModel.getProperty("/uploadedFileName") ||
|
|
337
|
+
oDialogModel.getProperty("/hasEnteredText")) { return; }
|
|
338
|
+
|
|
339
|
+
var oTransfer = oDragEvent.dataTransfer;
|
|
340
|
+
var aDropped = oTransfer && oTransfer.files
|
|
341
|
+
? Array.prototype.slice.call(oTransfer.files) : [];
|
|
342
|
+
if (aDropped.length === 0) { return; }
|
|
343
|
+
|
|
344
|
+
var aSupported = aDropped.filter(function(oFile) {
|
|
345
|
+
return !!EasyFillFileHandler.findHandler(oFile.name);
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
if (aSupported.length === 0) {
|
|
349
|
+
EasyFillDialogController.showFileUploadError(oRb,
|
|
350
|
+
oRb.getText("EASY_FILL_UPLOAD_UNSUPPORTED_FILE_ERROR"));
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
if (aSupported.length > 1) {
|
|
354
|
+
EasyFillDialogController.showFileUploadError(oRb,
|
|
355
|
+
oRb.getText("EASY_FILL_UPLOAD_SINGLE_FILE_ONLY_ERROR"));
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
var oFile = aSupported[0];
|
|
360
|
+
// Shared accept path: metadata-set + read + length cap + persistent error feedback.
|
|
361
|
+
EasyFillDialogController.acceptFile(oController, oRb, EasyFillFileHandler, oFile, fnOnTextImported);
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Add the onAfterRendering delegate once per container instance. The dialog is
|
|
366
|
+
// kept alive across opens (keepAlive), so a fresh delegate on every open would
|
|
367
|
+
// accumulate; the flag below ensures a single registration. attachDropHandlers()
|
|
368
|
+
// itself is idempotent via the dataset guard and re-binds after DOM re-creation.
|
|
369
|
+
if (!oInputContainer._easyFillDropDelegateAdded) {
|
|
370
|
+
oInputContainer.addEventDelegate({ onAfterRendering: attachDropHandlers });
|
|
371
|
+
oInputContainer._easyFillDropDelegateAdded = true;
|
|
372
|
+
}
|
|
373
|
+
// Attach immediately for the current render (dialog is already open)
|
|
374
|
+
attachDropHandlers();
|
|
222
375
|
}
|
|
223
376
|
};
|
|
224
377
|
}
|
|
@@ -262,9 +415,10 @@ sap.ui.define([
|
|
|
262
415
|
oObjectPageContext, EasyFillFieldCollector, mCollectionState
|
|
263
416
|
);
|
|
264
417
|
|
|
265
|
-
// Submit to AI
|
|
418
|
+
// Submit to AI — prefer imported file text over the textarea value
|
|
419
|
+
var sUserInput = sImportedFileText || oController.byId("EasyFillInputTextArea").getValue();
|
|
266
420
|
var aiCallResult = await EasyFillAIOrchestrator.submitToAI(
|
|
267
|
-
|
|
421
|
+
sUserInput,
|
|
268
422
|
mFieldMapping,
|
|
269
423
|
oTemplateUtils
|
|
270
424
|
);
|
|
@@ -517,7 +671,7 @@ sap.ui.define([
|
|
|
517
671
|
* Resets the EasyFill dialog to its initial state.
|
|
518
672
|
* Delegates to EasyFillApplyHandler.resetEasyFill with the current state references.
|
|
519
673
|
*
|
|
520
|
-
* @param {boolean} [bRemoveTextAreaValue=false] - if true, also clears the text area input
|
|
674
|
+
* @param {boolean} [bRemoveTextAreaValue=false] - if true, also clears the text area input and resets all file import state (sImportedFileText, file model properties)
|
|
521
675
|
*/
|
|
522
676
|
function _resetEasyFill(bRemoveTextAreaValue) {
|
|
523
677
|
mLastFieldMapping = null;
|
|
@@ -539,6 +693,11 @@ sap.ui.define([
|
|
|
539
693
|
oTransientContextForEasyFill = null;
|
|
540
694
|
}
|
|
541
695
|
);
|
|
696
|
+
// Clear file import state on Clear All / Cancel
|
|
697
|
+
if (bRemoveTextAreaValue) {
|
|
698
|
+
sImportedFileText = null;
|
|
699
|
+
EasyFillDialogController.resetFileState(oController);
|
|
700
|
+
}
|
|
542
701
|
}
|
|
543
702
|
|
|
544
703
|
/**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
sap.ui.define([
|
|
2
2
|
"sap/ui/comp/smartfield/SmartField",
|
|
3
|
+
"sap/m/Button",
|
|
3
4
|
"sap/m/GenericTag",
|
|
4
5
|
"sap/m/MessageStrip",
|
|
5
6
|
"sap/m/Text",
|
|
@@ -17,7 +18,7 @@ sap.ui.define([
|
|
|
17
18
|
"sap/ui/core/CustomData",
|
|
18
19
|
"sap/suite/ui/generic/template/genericUtilities/FeLogger",
|
|
19
20
|
"sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFieldCollector"
|
|
20
|
-
], function(SmartField, GenericTag, MessageStrip, Text, Title, Table, Column, ColumnListItem, VBox, HBox, ScrollContainer, SegmentedButton, SegmentedButtonItem, ObjectPageSection, ObjectPageSubSection, CustomData, FeLogger, EasyFillFieldCollector) {
|
|
21
|
+
], function(SmartField, Button, GenericTag, MessageStrip, Text, Title, Table, Column, ColumnListItem, VBox, HBox, ScrollContainer, SegmentedButton, SegmentedButtonItem, ObjectPageSection, ObjectPageSubSection, CustomData, FeLogger, EasyFillFieldCollector) {
|
|
21
22
|
"use strict";
|
|
22
23
|
|
|
23
24
|
var sClassName = "lib.ai.EasyFill.EasyFillTableRenderer";
|
|
@@ -165,7 +166,84 @@ sap.ui.define([
|
|
|
165
166
|
var oPreviousTable = that._createPreviewTable(aPropertyNames, oCollectionMeta.itemProperties, aPreviousRows);
|
|
166
167
|
oPreviousTable.setVisible(false);
|
|
167
168
|
|
|
168
|
-
var
|
|
169
|
+
var aItemMetaOut = [];
|
|
170
|
+
var oNewTable = that._createEditableNewTable(aPropertyNames, oCollectionMeta.itemProperties, aPreviewRows, aNewRows, sCollectionName, mCollectionState, fnOnTableFieldChange, aItemMetaOut);
|
|
171
|
+
|
|
172
|
+
// "Exclude Changes" button — disabled until at least 1 active (non-excluded) row is checked
|
|
173
|
+
var oExcludeButton = new Button({
|
|
174
|
+
text: oRb.getText("EASY_FILL_EXCLUDE_ROW_BUTTON"),
|
|
175
|
+
type: "Ghost",
|
|
176
|
+
enabled: false
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
// Re-evaluate button enabled state whenever a checkbox changes
|
|
180
|
+
function refreshExcludeButtonState() {
|
|
181
|
+
var bAnyActiveChecked = aItemMetaOut.some(function(oMeta) {
|
|
182
|
+
if (!oMeta.item.isSelected()) { return false; }
|
|
183
|
+
var oExcludedSet = oMeta.isNew
|
|
184
|
+
? oTableStagingState.mExcludedNewRows[sCollectionName]
|
|
185
|
+
: oTableStagingState.mExcludedRows[sCollectionName];
|
|
186
|
+
return !oExcludedSet || !oExcludedSet[oMeta.index];
|
|
187
|
+
});
|
|
188
|
+
oExcludeButton.setEnabled(bAnyActiveChecked);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Re-apply excluded row visual state after re-render (e.g. Condensed ↔ OP mode switch).
|
|
192
|
+
// mExcludedRows/mExcludedNewRows survive the mode switch but new controls are created fresh.
|
|
193
|
+
aItemMetaOut.forEach(function(oMeta) {
|
|
194
|
+
var mTarget = oMeta.isNew ? oTableStagingState.mExcludedNewRows : oTableStagingState.mExcludedRows;
|
|
195
|
+
var oExcludedSet = mTarget && mTarget[sCollectionName];
|
|
196
|
+
if (!oExcludedSet || !oExcludedSet[oMeta.index]) { return; }
|
|
197
|
+
|
|
198
|
+
oMeta.item.addStyleClass("sapEasyFillExcludedRow");
|
|
199
|
+
oMeta.item.getCells().forEach(function(oCell) {
|
|
200
|
+
if (oCell.isA && oCell.isA("sap.ui.comp.smartfield.SmartField")) {
|
|
201
|
+
oCell.setEditable(false);
|
|
202
|
+
oCell.setEnabled(false);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
var oActualTable = oNewTable.getContent && oNewTable.getContent()[0];
|
|
208
|
+
if (oActualTable) {
|
|
209
|
+
oActualTable.attachSelectionChange(function(oEvent) {
|
|
210
|
+
if (oEvent.getParameter("selectAll")) {
|
|
211
|
+
aItemMetaOut.forEach(function(oMeta) {
|
|
212
|
+
var oExcludedSet = oMeta.isNew
|
|
213
|
+
? oTableStagingState.mExcludedNewRows[sCollectionName]
|
|
214
|
+
: oTableStagingState.mExcludedRows[sCollectionName];
|
|
215
|
+
if (oExcludedSet && oExcludedSet[oMeta.index]) {
|
|
216
|
+
oMeta.item.setSelected(false);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
refreshExcludeButtonState();
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
oExcludeButton.attachPress(function() {
|
|
225
|
+
aItemMetaOut.forEach(function(oMeta) {
|
|
226
|
+
if (!oMeta.item.isSelected()) { return; }
|
|
227
|
+
var mTarget = oMeta.isNew ? oTableStagingState.mExcludedNewRows : oTableStagingState.mExcludedRows;
|
|
228
|
+
var oExcludedSet = mTarget[sCollectionName];
|
|
229
|
+
if (oExcludedSet && oExcludedSet[oMeta.index]) { return; } // already excluded
|
|
230
|
+
|
|
231
|
+
if (!mTarget[sCollectionName]) { mTarget[sCollectionName] = Object.create(null); }
|
|
232
|
+
mTarget[sCollectionName][oMeta.index] = true;
|
|
233
|
+
|
|
234
|
+
oMeta.item.addStyleClass("sapEasyFillExcludedRow");
|
|
235
|
+
oMeta.item.getCells().forEach(function(oCell) {
|
|
236
|
+
if (oCell.isA && oCell.isA("sap.ui.comp.smartfield.SmartField")) {
|
|
237
|
+
oCell.setEditable(false);
|
|
238
|
+
oCell.setEnabled(false);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
oMeta.item.setSelected(false);
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
oExcludeButton.setEnabled(false);
|
|
245
|
+
if (typeof fnOnTableFieldChange === "function") { fnOnTableFieldChange(); }
|
|
246
|
+
});
|
|
169
247
|
|
|
170
248
|
var oReadonlyTag = bHasUneditableChanges ? new GenericTag({ text: oRb.getText("EASYFILL_TABLE_READONLY_TAG"), status: "Warning" }).addStyleClass("sapUiTinyMarginBegin") : null;
|
|
171
249
|
var sLabel = oCollectionMeta.description || sCollectionName;
|
|
@@ -181,14 +259,17 @@ sap.ui.define([
|
|
|
181
259
|
var sKey = oSegmentedButton.getSelectedKey();
|
|
182
260
|
oPreviousTable.setVisible(sKey === "previous");
|
|
183
261
|
oNewTable.setVisible(sKey === "new");
|
|
262
|
+
oExcludeButton.setVisible(sKey === "new");
|
|
184
263
|
if (oReadonlyTag) { oReadonlyTag.setVisible(sKey === "new"); }
|
|
185
264
|
oTitleControl.setText(sLabel + " (" + (sKey === "previous" ? iExistingRowCount : iTotalCount) + ")");
|
|
186
265
|
}
|
|
187
266
|
});
|
|
188
267
|
|
|
268
|
+
var oLeftGroup = new HBox({ alignItems: "Center", items: oReadonlyTag ? [oTitleControl, oReadonlyTag] : [oTitleControl] });
|
|
269
|
+
var oRightGroup = new HBox({ alignItems: "Center", items: [oExcludeButton, oSegmentedButton] });
|
|
189
270
|
var oHeader = new HBox({
|
|
190
271
|
justifyContent: "SpaceBetween", alignItems: "Center", wrap: "Wrap",
|
|
191
|
-
items: [
|
|
272
|
+
items: [oLeftGroup, oRightGroup]
|
|
192
273
|
}).addStyleClass("sapUiSmallMarginTop sapUiSmallMarginBottom");
|
|
193
274
|
|
|
194
275
|
var oTableVBox = new VBox({ items: [oHeader, oPreviousTable, oNewTable] })
|
|
@@ -484,9 +565,10 @@ sap.ui.define([
|
|
|
484
565
|
* @param {string} sCollectionName - navigation property name (used to look up property metadata)
|
|
485
566
|
* @param {object} mCollectionState - collection tracking state (used to get property metadata)
|
|
486
567
|
* @param {function} fnOnTableFieldChange - callback when a cell value changes
|
|
568
|
+
* @param {Array} [aItemMetaOut] - optional collector: receives { item, isNew, index } per row
|
|
487
569
|
* @returns {sap.m.ScrollContainer} ScrollContainer wrapping the table with horizontal scrolling enabled
|
|
488
570
|
*/
|
|
489
|
-
_createEditableNewTable: function(aPropertyNames, oItemProperties, aPreviewRows, aNewRowContexts, sCollectionName, mCollectionState, fnOnTableFieldChange) {
|
|
571
|
+
_createEditableNewTable: function(aPropertyNames, oItemProperties, aPreviewRows, aNewRowContexts, sCollectionName, mCollectionState, fnOnTableFieldChange, aItemMetaOut) {
|
|
490
572
|
var aColumns = aPropertyNames.map(function(sPropName) {
|
|
491
573
|
return new Column({
|
|
492
574
|
header: new Text({
|
|
@@ -500,7 +582,7 @@ sap.ui.define([
|
|
|
500
582
|
var that = this;
|
|
501
583
|
|
|
502
584
|
// Rows for existing rows with AI-proposed updates
|
|
503
|
-
var aExistingItems = aPreviewRows.map(function(oPreviewRow) {
|
|
585
|
+
var aExistingItems = aPreviewRows.map(function(oPreviewRow, iIndex) {
|
|
504
586
|
var oContext = oPreviewRow.transientContext;
|
|
505
587
|
var oRowObject = oPreviewRow.realContext && oPreviewRow.realContext.getObject && oPreviewRow.realContext.getObject();
|
|
506
588
|
|
|
@@ -544,6 +626,11 @@ sap.ui.define([
|
|
|
544
626
|
if (oContext) {
|
|
545
627
|
oItem.setBindingContext(oContext);
|
|
546
628
|
}
|
|
629
|
+
|
|
630
|
+
if (Array.isArray(aItemMetaOut)) {
|
|
631
|
+
aItemMetaOut.push({ item: oItem, isNew: false, index: iIndex });
|
|
632
|
+
}
|
|
633
|
+
|
|
547
634
|
return oItem;
|
|
548
635
|
});
|
|
549
636
|
|
|
@@ -551,7 +638,7 @@ sap.ui.define([
|
|
|
551
638
|
// sEntitySetName is set explicitly on SmartField so it can resolve OData metadata
|
|
552
639
|
// even though it lives inside a plain sap.m.Table (not a SmartTable).
|
|
553
640
|
var sEntitySetName = (oEntitySet && oEntitySet.name) || sCollectionName;
|
|
554
|
-
var aNewItems = (aNewRowContexts || []).map(function(oNewContext) {
|
|
641
|
+
var aNewItems = (aNewRowContexts || []).map(function(oNewContext, iIndex) {
|
|
555
642
|
var aCells = aPropertyNames.map(function(sPropName) {
|
|
556
643
|
if (!oNewContext) {
|
|
557
644
|
return new Text({ text: "" });
|
|
@@ -581,17 +668,24 @@ sap.ui.define([
|
|
|
581
668
|
});
|
|
582
669
|
return oSmartField;
|
|
583
670
|
});
|
|
671
|
+
|
|
584
672
|
var oItem = new ColumnListItem({
|
|
585
673
|
cells: aCells,
|
|
586
674
|
highlight: "Information"
|
|
587
675
|
});
|
|
588
676
|
oItem.setBindingContext(oNewContext);
|
|
677
|
+
|
|
678
|
+
if (Array.isArray(aItemMetaOut)) {
|
|
679
|
+
aItemMetaOut.push({ item: oItem, isNew: true, index: iIndex });
|
|
680
|
+
}
|
|
681
|
+
|
|
589
682
|
return oItem;
|
|
590
683
|
});
|
|
591
684
|
|
|
592
685
|
var oTable = new Table({
|
|
593
686
|
columns: aColumns,
|
|
594
687
|
items: aExistingItems.concat(aNewItems),
|
|
688
|
+
mode: "MultiSelect",
|
|
595
689
|
fixedLayout: false,
|
|
596
690
|
autoPopinMode: false
|
|
597
691
|
}).addStyleClass("sapSmartTemplatesObjectPageEasyFillTablePreview");
|
|
@@ -664,6 +758,12 @@ sap.ui.define([
|
|
|
664
758
|
Object.keys((oTableStagingState && oTableStagingState.mPendingNewRowContexts) || {}).forEach(function(sCollectionName) {
|
|
665
759
|
delete oTableStagingState.mPendingNewRowContexts[sCollectionName];
|
|
666
760
|
});
|
|
761
|
+
Object.keys((oTableStagingState && oTableStagingState.mExcludedRows) || {}).forEach(function(sCollectionName) {
|
|
762
|
+
delete oTableStagingState.mExcludedRows[sCollectionName];
|
|
763
|
+
});
|
|
764
|
+
Object.keys((oTableStagingState && oTableStagingState.mExcludedNewRows) || {}).forEach(function(sCollectionName) {
|
|
765
|
+
delete oTableStagingState.mExcludedNewRows[sCollectionName];
|
|
766
|
+
});
|
|
667
767
|
},
|
|
668
768
|
|
|
669
769
|
/**
|