@sap/open.fe 1.96.0 → 1.97.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/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +57 -42
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +4 -4
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
- package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +59 -274
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +52 -64
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +18 -22
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +80 -4
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +42 -23
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +36 -21
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +9 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +20 -50
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +222 -102
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +33 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +109 -111
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +8 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +2 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +10 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +9 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +67 -40
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +57 -18
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +51 -13
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -19
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +139 -18
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +9 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +4 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +18 -7
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -12
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +2 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +27 -4
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
- package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +211 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +32 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +51 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +10 -9
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +232 -228
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +15 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +19 -9
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/resources.json +200 -121
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +30 -19
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +80 -7
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +42 -2
- package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +4 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +13 -10
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +7 -4
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +119 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +285 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +121 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +147 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +96 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +51 -18
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +109 -17
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +66 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelper.cds +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelperMainEntitySortableFalse.cds +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +8 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +38 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +483 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +376 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.js +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.ts +105 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.js +103 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.ts +106 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.js +118 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.ts +118 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.js +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.ts +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +118 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.js +89 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.ts +73 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +4 -2
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +15 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +9 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +30 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +3 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +3 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +17 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +6 -15
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +14 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +2 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +12 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +15 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +10 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +81 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +13 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +5 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +1 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +46 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +17 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +26 -16
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +4 -13
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +10 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +5 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +72 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +12 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +93 -91
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +21 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +2 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +149 -110
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +3 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +70 -29
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +53 -36
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +3 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +844 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +833 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +495 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +440 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +469 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +448 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +94 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +70 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +12 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +11 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +61 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.js +46 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.ts +30 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +13 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +11 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.js +66 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.ts +35 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +48 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +56 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +68 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +65 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +82 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +23 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldHelper.spec.ts.snap +47 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +52 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormElement.spec.ts.snap +25 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +0 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +69 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +451 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldHelper.xml +68 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +13 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +152 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +116 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +115 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.js +86 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.ts +54 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/__snapshots__/FormElement.spec.ts.snap +33 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +154 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +128 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +7 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +23 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +108 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +4 -4
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +3 -3
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +91 -60
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +31 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +5 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +18 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +114 -85
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +8 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +23 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +15 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +6 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +6 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +26 -16
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +5 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +63 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +54 -32
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +24 -21
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +2 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +2 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +23 -30
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
- package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +51 -60
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +95 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +66 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +134 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +94 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +61 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/ObjectPageHeaderForm.spec.ts.snap +53 -0
- package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +0 -6
- package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +14 -3
- package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +85 -8
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +54 -2
- package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +0 -11
- package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +0 -38
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +0 -12
- package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +22 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +14 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +21 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +9 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +18 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +25 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +9 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +38 -4
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +33 -4
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +23 -16
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/resources.json +36 -34
- package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.96.json +0 -49
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.96.json +0 -189
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldRuntime.qunit.js +0 -73
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.96.json +0 -160
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/relnote/changes-1.96.json +0 -17
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +0 -26
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +0 -6
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.96.json +0 -153
|
@@ -129,6 +129,7 @@ sap.ui.define(
|
|
|
129
129
|
this._bDisableOnHashChange = false;
|
|
130
130
|
this._bIgnoreRestore = false;
|
|
131
131
|
this._bCleanedRestore = false;
|
|
132
|
+
this._bForceFocus = true; // Trigger the focus mechanism for the first view displayed by the app
|
|
132
133
|
},
|
|
133
134
|
|
|
134
135
|
destroy: function() {
|
|
@@ -159,6 +160,14 @@ sap.ui.define(
|
|
|
159
160
|
return this._oRouter.getHashChanger().getHash();
|
|
160
161
|
},
|
|
161
162
|
|
|
163
|
+
isFocusForced: function() {
|
|
164
|
+
return this._bForceFocus;
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
setFocusForced: function(bForced) {
|
|
168
|
+
this._bForceFocus = bForced;
|
|
169
|
+
},
|
|
170
|
+
|
|
162
171
|
/**
|
|
163
172
|
* Resets the internal variable sIAppStateKey.
|
|
164
173
|
*
|
|
@@ -181,42 +190,31 @@ sap.ui.define(
|
|
|
181
190
|
* @param {string} sHash Hash to be navigated to
|
|
182
191
|
* @param {boolean} bPreserveHistory If set to true, non-ancestor entries in history will be retained
|
|
183
192
|
* @param {boolean} bDisablePreservationCache If set to true, cache preservation mechanism is disabled for the current navigation
|
|
193
|
+
* @param {boolean} bForceFocus If set to true, the logic to set the focus once the navigation is finalized will be triggered (onPageReady)
|
|
184
194
|
* @returns {Promise} Promise that is resolved when the navigation is finalized
|
|
185
195
|
* @ui5-restricted
|
|
186
196
|
*/
|
|
187
|
-
navToHash: function(sHash, bPreserveHistory, bDisablePreservationCache) {
|
|
197
|
+
navToHash: function(sHash, bPreserveHistory, bDisablePreservationCache, bForceFocus) {
|
|
188
198
|
var that = this;
|
|
189
199
|
|
|
190
200
|
if (this._oRouteMatchSynchronization) {
|
|
191
201
|
return this._oRouteMatchSynchronization.waitFor().then(function() {
|
|
192
202
|
that._oRouteMatchSynchronization = null;
|
|
193
|
-
return that._internalNavToHash(sHash, bPreserveHistory, bDisablePreservationCache);
|
|
203
|
+
return that._internalNavToHash(sHash, bPreserveHistory, bDisablePreservationCache, bForceFocus);
|
|
194
204
|
});
|
|
195
205
|
} else {
|
|
196
206
|
if (this._bActivateRouteMatchSynchro) {
|
|
197
207
|
this.waitForRouteMatchBeforeNavigation();
|
|
198
208
|
}
|
|
199
|
-
return that._internalNavToHash(sHash, bPreserveHistory, bDisablePreservationCache);
|
|
209
|
+
return that._internalNavToHash(sHash, bPreserveHistory, bDisablePreservationCache, bForceFocus);
|
|
200
210
|
}
|
|
201
211
|
},
|
|
202
212
|
|
|
203
|
-
_internalNavToHash: function(sHash, bPreserveHistory, bDisablePreservationCache) {
|
|
204
|
-
var that = this,
|
|
205
|
-
sLastFocusControlId = sap.ui.getCore().getCurrentFocusedControlId(),
|
|
206
|
-
sLastFocusInfo =
|
|
207
|
-
sLastFocusControlId && sap.ui.getCore().byId(sLastFocusControlId)
|
|
208
|
-
? sap.ui
|
|
209
|
-
.getCore()
|
|
210
|
-
.byId(sLastFocusControlId)
|
|
211
|
-
.getFocusInfo()
|
|
212
|
-
: null,
|
|
213
|
-
shashBeforeRoutechanged = this.getHash();
|
|
214
|
-
|
|
213
|
+
_internalNavToHash: function(sHash, bPreserveHistory, bDisablePreservationCache, bForceFocus) {
|
|
215
214
|
// Add the app state in the hash if needed
|
|
216
215
|
if (this.fclEnabled && this.sIAppStateKey && !findAppStateInHash(sHash)) {
|
|
217
216
|
sHash = setAppStateInHash(sHash, this.sIAppStateKey);
|
|
218
217
|
}
|
|
219
|
-
var oNewState = this._extractStateFromHash(sHash);
|
|
220
218
|
|
|
221
219
|
if (!this.checkHashWithGuard(sHash)) {
|
|
222
220
|
if (!this.oResourceBundle) {
|
|
@@ -231,11 +229,24 @@ sap.ui.define(
|
|
|
231
229
|
}
|
|
232
230
|
this.bIsGuardCrossAllowed = true;
|
|
233
231
|
}
|
|
232
|
+
|
|
233
|
+
// In case the navigation will cause a new view to be displayed, we force the focus
|
|
234
|
+
// I.e. if the keys for the hash we're navigating to is a superset of the current hash keys.
|
|
235
|
+
var oNewState = this._extractStateFromHash(sHash);
|
|
236
|
+
if (!this._bForceFocus) {
|
|
237
|
+
// If the focus was already forced, keep it
|
|
238
|
+
var aCurrentHashKeys = this._extractKeysFromHash(this.getHash());
|
|
239
|
+
this._bForceFocus =
|
|
240
|
+
bForceFocus ||
|
|
241
|
+
(aCurrentHashKeys.length < oNewState.keys.length &&
|
|
242
|
+
aCurrentHashKeys.every(function(key, index) {
|
|
243
|
+
return key === oNewState.keys[index];
|
|
244
|
+
}));
|
|
245
|
+
}
|
|
246
|
+
|
|
234
247
|
var oHistoryAction = this._pushNewState(oNewState, false, bPreserveHistory, bDisablePreservationCache);
|
|
235
248
|
|
|
236
|
-
return this._rebuildBrowserHistory(oHistoryAction, false)
|
|
237
|
-
that.storeFocusForHash(sLastFocusControlId, sLastFocusInfo, shashBeforeRoutechanged);
|
|
238
|
-
});
|
|
249
|
+
return this._rebuildBrowserHistory(oHistoryAction, false);
|
|
239
250
|
},
|
|
240
251
|
|
|
241
252
|
/**
|
|
@@ -259,34 +270,6 @@ sap.ui.define(
|
|
|
259
270
|
}
|
|
260
271
|
},
|
|
261
272
|
|
|
262
|
-
getFocusControlForCurrentHash: function() {
|
|
263
|
-
var sCurrenthash = this.getHash();
|
|
264
|
-
var oLastFocusedControl;
|
|
265
|
-
for (var i = this._oManagedHistory.length - 1; i >= 0; i--) {
|
|
266
|
-
if (sCurrenthash === this._oManagedHistory[i].hash) {
|
|
267
|
-
oLastFocusedControl = this._oManagedHistory[i].oLastFocusControl;
|
|
268
|
-
break;
|
|
269
|
-
} else {
|
|
270
|
-
this._oManagedHistory[i].oLastFocusControl = undefined;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
return oLastFocusedControl;
|
|
275
|
-
},
|
|
276
|
-
|
|
277
|
-
storeFocusForHash: function(sLastFocusControlId, sLastFocusInfo, sHash) {
|
|
278
|
-
var oManagedhistory = this._oManagedHistory;
|
|
279
|
-
for (var i = 0; i < oManagedhistory.length; i++) {
|
|
280
|
-
if (sHash === oManagedhistory[i].hash) {
|
|
281
|
-
oManagedhistory[i].oLastFocusControl = {
|
|
282
|
-
controlId: sLastFocusControlId,
|
|
283
|
-
focusInfo: sLastFocusInfo
|
|
284
|
-
};
|
|
285
|
-
break;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
},
|
|
289
|
-
|
|
290
273
|
/**
|
|
291
274
|
* Navigates back in the history.
|
|
292
275
|
*
|
|
@@ -433,6 +416,24 @@ sap.ui.define(
|
|
|
433
416
|
this._bActivateRouteMatchSynchro = false;
|
|
434
417
|
},
|
|
435
418
|
|
|
419
|
+
_extractKeysFromHash: function(sHash) {
|
|
420
|
+
if (sHash === undefined) {
|
|
421
|
+
sHash = "";
|
|
422
|
+
}
|
|
423
|
+
var sHashNoParams = sHash.split("?")[0]; // remove params
|
|
424
|
+
var aTokens = sHashNoParams.split("/");
|
|
425
|
+
var aKeys = [];
|
|
426
|
+
|
|
427
|
+
aTokens.forEach(function(sToken) {
|
|
428
|
+
var regexKey = /[^\(\)]+\([^\(\)]+\)/; // abc(def)
|
|
429
|
+
if (regexKey.test(sToken)) {
|
|
430
|
+
aKeys.push(sToken.split("(")[0]);
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
return aKeys;
|
|
435
|
+
},
|
|
436
|
+
|
|
436
437
|
/**
|
|
437
438
|
* Builds a state from a hash.
|
|
438
439
|
*
|
|
@@ -442,22 +443,13 @@ sap.ui.define(
|
|
|
442
443
|
* @ui5-restricted
|
|
443
444
|
*/
|
|
444
445
|
_extractStateFromHash: function(sHash) {
|
|
445
|
-
var oState = {
|
|
446
|
-
keys: []
|
|
447
|
-
};
|
|
448
|
-
|
|
449
|
-
// Retrieve object keys
|
|
450
446
|
if (sHash === undefined) {
|
|
451
447
|
sHash = "";
|
|
452
448
|
}
|
|
453
|
-
|
|
454
|
-
var
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
if (regexKey.test(sToken)) {
|
|
458
|
-
oState.keys.push(sToken.split("(")[0]);
|
|
459
|
-
}
|
|
460
|
-
});
|
|
449
|
+
|
|
450
|
+
var oState = {
|
|
451
|
+
keys: this._extractKeysFromHash(sHash)
|
|
452
|
+
};
|
|
461
453
|
|
|
462
454
|
// Retrieve layout (if any)
|
|
463
455
|
var aLayout = sHash.match(new RegExp("\\?.*" + enumURLParams.LAYOUTPARAM + "=([^&]*)"));
|
|
@@ -519,7 +511,6 @@ sap.ui.define(
|
|
|
519
511
|
}
|
|
520
512
|
|
|
521
513
|
// 3. Then pop all states until we find an ancestor of the new state, or we find a state that need to be preserved
|
|
522
|
-
var oLastFocusControl;
|
|
523
514
|
var oLastRemovedItem;
|
|
524
515
|
while (this._oManagedHistory.length > 0) {
|
|
525
516
|
var oTopState = this._oManagedHistory[this._oManagedHistory.length - 1];
|
|
@@ -528,13 +519,11 @@ sap.ui.define(
|
|
|
528
519
|
this._compareCacheStates(oTopState, oNewState) !== enumState.ANCESTOR
|
|
529
520
|
) {
|
|
530
521
|
// The top state is not an ancestor of oNewState and is not preserved --> we can pop it
|
|
531
|
-
oLastFocusControl = oTopState.oLastFocusControl;
|
|
532
522
|
oLastRemovedItem = this._oManagedHistory.pop();
|
|
533
523
|
iPopCount++;
|
|
534
524
|
} else if (oTopState.preserved && removeAppStateInHash(oTopState.hash) === removeAppStateInHash(oNewState.hash)) {
|
|
535
525
|
// We try to add a state that is already in cache (due to preserved flag) but with a different iapp-state
|
|
536
526
|
// --> we should delete the previous entry (it will be later replaced by the new one) and stop popping
|
|
537
|
-
oLastFocusControl = oTopState.oLastFocusControl;
|
|
538
527
|
oLastRemovedItem = this._oManagedHistory.pop();
|
|
539
528
|
iPopCount++;
|
|
540
529
|
oNewState.preserved = true;
|
|
@@ -566,7 +555,6 @@ sap.ui.define(
|
|
|
566
555
|
}
|
|
567
556
|
|
|
568
557
|
// 5. Now we can push the state at the top of the internal history
|
|
569
|
-
oNewState.oLastFocusControl = oLastFocusControl;
|
|
570
558
|
var bHasSameHash = oLastRemovedItem && oNewState.hash === oLastRemovedItem.hash;
|
|
571
559
|
if (this._oManagedHistory.length === 0 || this._oManagedHistory[this._oManagedHistory.length - 1].hash !== oNewState.hash) {
|
|
572
560
|
this._oManagedHistory.push(oNewState);
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
|
|
5
5
|
*/
|
|
6
|
-
sap.ui.define(["sap/base/Log","sap/ui/base/Object","sap/ui/base/EventProvider","sap/fe/core/Synchronization","sap/ui/thirdparty/URI"],function(L,B,E,S,U){"use strict";var e={EQUAL:0,COMPATIBLE:1,ANCESTOR:2,DIFFERENT:3};var a={LAYOUTPARAM:"layout",IAPPSTATEPARAM:"sap-iapp-state"};function c(g){return{_guardHash:g.replace(/\?[^\?]*$/,""),check:function(h){return h.indexOf(this._guardHash)===0;}};}function f(h){var A=h.match(new RegExp("\\?.*"+a.IAPPSTATEPARAM+"=([^&]*)"));return A&&A.length>1?A[1]:null;}function r(h){return h.replace(new RegExp("[&?]*"+a.IAPPSTATEPARAM+"=[^&]*"),"");}function s(h,A){var n;if(h.indexOf(a.IAPPSTATEPARAM)>=0){n=h.replace(new RegExp(a.IAPPSTATEPARAM+"=[^&]*"),a.IAPPSTATEPARAM+"="+A);}else{if(h.indexOf("?")<0){n=h+"?";}else{n=h+"&";}n+=a.IAPPSTATEPARAM+"="+A;}return n;}return B.extend("sap.fe.core.RouterProxy",{bIsRebuildHistoryRunning:false,bIsComputingTitleHierachy:false,bIsGuardCrossAllowed:false,sIAppStateKey:null,init:function(A,i){A.getService("shellServices").then(function(){this._oShellServices=A.getShellServices();this.initRaw(A.getRouter());this.waitForRouteMatchBeforeNavigation();history.replaceState(Object.assign({feLevel:0},history.state),"",window.location);this.fclEnabled=i;this._fnBlockingNavFilter=this._blockingNavigationFilter.bind(this);this._oShellServices.registerNavigationFilter(this._fnBlockingNavFilter);}.bind(this)).catch(function(o){L.error("Cannot retrieve the shell services",o);});this._fnHashGuard=this.hashGuard.bind(this);window.addEventListener("popstate",this._fnHashGuard);this._bDisableOnHashChange=false;this._bIgnoreRestore=false;this._bCleanedRestore=false;},destroy:function(){if(this._oShellServices){this._oShellServices.unregisterNavigationFilter(this._fnBlockingNavFilter);}window.removeEventListener("popstate",this._fnHashGuard);},initRaw:function(R){this._oRouter=R;this._oManagedHistory=[];this._oNavigationGuard=null;var C=this.getHash();this._oManagedHistory.push(this._extractStateFromHash(C));this.sIAppStateKey=f(C);},getHash:function(){return this._oRouter.getHashChanger().getHash();},removeIAppStateKey:function(){this.sIAppStateKey=null;},navToHash:function(h,p,d){var t=this;if(this._oRouteMatchSynchronization){return this._oRouteMatchSynchronization.waitFor().then(function(){t._oRouteMatchSynchronization=null;return t._internalNavToHash(h,p,d);});}else{if(this._bActivateRouteMatchSynchro){this.waitForRouteMatchBeforeNavigation();}return t._internalNavToHash(h,p,d);}},_internalNavToHash:function(h,p,d){var t=this,l=sap.ui.getCore().getCurrentFocusedControlId(),b=l&&sap.ui.getCore().byId(l)?sap.ui.getCore().byId(l).getFocusInfo():null,g=this.getHash();if(this.fclEnabled&&this.sIAppStateKey&&!f(h)){h=s(h,this.sIAppStateKey);}var n=this._extractStateFromHash(h);if(!this.checkHashWithGuard(h)){if(!this.oResourceBundle){this.oResourceBundle=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");}if(!confirm(this.oResourceBundle.getText("C_ROUTER_PROXY_SAPFE_EXIT_NOTSAVED_MESSAGE"))){return Promise.resolve();}this.bIsGuardCrossAllowed=true;}var H=this._pushNewState(n,false,p,d);return this._rebuildBrowserHistory(H,false).then(function(){t.storeFocusForHash(l,b,g);});},restoreHistory:function(){if(this._bApplyRestore){this._bApplyRestore=false;var t=this.getHash();t=t.replace(/(\?|&)restoreHistory=true/,"");var n=this._extractStateFromHash(t);var h=this._pushNewState(n,true,false,true);return this._rebuildBrowserHistory(h,true);}else{return Promise.resolve();}},getFocusControlForCurrentHash:function(){var C=this.getHash();var l;for(var i=this._oManagedHistory.length-1;i>=0;i--){if(C===this._oManagedHistory[i].hash){l=this._oManagedHistory[i].oLastFocusControl;break;}else{this._oManagedHistory[i].oLastFocusControl=undefined;}}return l;},storeFocusForHash:function(l,b,h){var m=this._oManagedHistory;for(var i=0;i<m.length;i++){if(h===m[i].hash){m[i].oLastFocusControl={controlId:l,focusInfo:b};break;}}},navBack:function(){var C=this.getHash(),p;for(var i=this._oManagedHistory.length-1;i>0;i--){if(this._oManagedHistory[i].hash===C){p=this._oManagedHistory[i-1].hash;break;}}if(p){return this.navToHash(p);}else{window.history.back();return Promise.resolve();}},navTo:function(R,p){var h=this._oRouter.getURL(R,p);return this.navToHash(h,false,p.noPreservationCache);},exitFromApp:function(){return this._oShellServices.backToPreviousApp();},isCurrentStateImpactedBy:function(h){if(h[0]==="/"){h=h.substring(1);}var l=c(h);return l.check(this.getHash());},isNavigationFinalized:function(){return!this.bIsRebuildHistoryRunning&&!this._bDelayedRebuild;},setNavigationGuard:function(){this._oNavigationGuard=c(this.getHash());this.bIsGuardCrossAllowed=false;},discardNavigationGuard:function(){this._oNavigationGuard=null;},hasNavigationGuard:function(){return this._oNavigationGuard!==null;},checkHashWithGuard:function(h){return this._oNavigationGuard===null||this._oNavigationGuard.check(h);},isGuardCrossAllowedByUser:function(){return this.bIsGuardCrossAllowed;},activateRouteMatchSynchronization:function(){this._bActivateRouteMatchSynchro=true;},resolveRouteMatch:function(){if(this._oRouteMatchSynchronization){this._oRouteMatchSynchronization.resolve();}},waitForRouteMatchBeforeNavigation:function(){this._oRouteMatchSynchronization=new S();this._bActivateRouteMatchSynchro=false;},_extractStateFromHash:function(h){var o={keys:[]};if(h===undefined){h="";}var H=h.split("?")[0];var t=H.split("/");t.forEach(function(T){var b=/[^\(\)]+\([^\(\)]+\)/;if(b.test(T)){o.keys.push(T.split("(")[0]);}});var l=h.match(new RegExp("\\?.*"+a.LAYOUTPARAM+"=([^&]*)"));o.sLayout=l&&l.length>1?l[1]:null;if(o.sLayout==="MidColumnFullScreen"){o.screenMode=1;}else if(o.sLayout==="EndColumnFullScreen"){o.screenMode=2;}else{o.screenMode=0;}o.hash=h;return o;},_pushNewState:function(n,R,p,d){var C=this.getHash(),l=this._oManagedHistory.length-1,P=R?1:0,t=this;if(!R){while(l>=0&&this._oManagedHistory[l].hash!==C){this._oManagedHistory.pop();l--;}if(this._oManagedHistory.length===0){this._oManagedHistory.push(this._extractStateFromHash(C));history.replaceState(Object.assign({feLevel:0},history.state),"");}}if(p&&!d){this._oManagedHistory[this._oManagedHistory.length-1].preserved=true;}var o;var b;while(this._oManagedHistory.length>0){var T=this._oManagedHistory[this._oManagedHistory.length-1];if((d||!T.preserved)&&this._compareCacheStates(T,n)!==e.ANCESTOR){o=T.oLastFocusControl;b=this._oManagedHistory.pop();P++;}else if(T.preserved&&r(T.hash)===r(n.hash)){o=T.oLastFocusControl;b=this._oManagedHistory.pop();P++;n.preserved=true;break;}else{break;}}this.sIAppStateKey=f(n.hash);if(this.fclEnabled&&this.sIAppStateKey){this._oManagedHistory.forEach(function(m){m.hash=s(m.hash,t.sIAppStateKey);});}else if(!this.fclEnabled&&b){var g=f(b.hash);var h=this._compareCacheStates(b,n);if(!this.sIAppStateKey&&g&&(h===e.EQUAL||h===e.COMPATIBLE)){n.hash=s(n.hash,g);}}n.oLastFocusControl=o;var H=b&&n.hash===b.hash;if(this._oManagedHistory.length===0||this._oManagedHistory[this._oManagedHistory.length-1].hash!==n.hash){this._oManagedHistory.push(n);}if(P===0){return{type:"append"};}else if(P===1){return H?{type:"none"}:{type:"replace"};}else{return H?{type:"back",steps:P-1}:{type:"back-replace",steps:P-1};}},_blockingNavigationFilter:function(){return this._bDisableOnHashChange?"Custom":"Continue";},_disableEventOnHashChange:function(){this._bDisableOnHashChange=true;this._oRouter.stop();},_enableEventOnHashChange:function(i){this._bDisableOnHashChange=false;this._oRouter.initialize(i);},_rebuildBrowserHistory:function(h,R){var t=this;return new Promise(function(b,d){t.bIsRebuildHistoryRunning=true;var T=t._oManagedHistory[t._oManagedHistory.length-1],n=t._oManagedHistory.length-1;function g(){if(!R){t._enableEventOnHashChange(true);}t._oRouter.getHashChanger().replaceHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");if(R){setTimeout(function(){t._enableEventOnHashChange(true);},0);}t.bIsRebuildHistoryRunning=false;b();}function i(){window.removeEventListener("popstate",i);setTimeout(function(){g();},0);}function j(){window.removeEventListener("popstate",j);t.bIsRebuildHistoryRunning=false;b();}t._bIgnoreRestore=true;switch(h.type){case"replace":t._oRouter.getHashChanger().replaceHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");t.bIsRebuildHistoryRunning=false;b();break;case"append":t._oRouter.getHashChanger().setHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");t.bIsRebuildHistoryRunning=false;b();break;case"back":window.addEventListener("popstate",j);history.go(-h.steps);break;case"back-replace":t._disableEventOnHashChange();window.addEventListener("popstate",i);history.go(-h.steps);break;default:t.bIsRebuildHistoryRunning=false;b();}});},getLastHistoryEntry:function(){return this._oManagedHistory[this._oManagedHistory.length-1];},hashGuard:function(o){if(this._bCleanedRestore){this._bCleanedRestore=false;return;}var h=window.location.hash;if(h.indexOf("restoreHistory=true")!==-1){this._bApplyRestore=true;}else if(!this.bIsRebuildHistoryRunning){var H=h.split("&/");var A=H[1]?H[1]:"";if(this.checkHashWithGuard(A)){this._bDelayedRebuild=true;var n=this._extractStateFromHash(A);this._pushNewState(n,false,false,true);var t=this;setTimeout(function(){t._bDelayedRebuild=false;},0);}}},_compareCacheStates:function(o,b){if(o.keys.length>b.keys.length){return e.DIFFERENT;}var d=true;var i;for(i=0;d&&i<o.keys.length;i++){if(o.keys[i]!==b.keys[i]){d=false;}}if(!d){return e.DIFFERENT;}if(o.keys.length<b.keys.length||o.screenMode<b.screenMode){return e.ANCESTOR;}if(o.screenMode>b.screenMode){return e.DIFFERENT;}return o.sLayout===b.sLayout?e.EQUAL:e.COMPATIBLE;},checkIfBackIsOutOfGuard:function(p){var t=this,P;if(p===undefined){var o=this._oShellServices.splitHash(window.location.hash);if(o&&o.appSpecificRoute){p=o.appSpecificRoute;if(p.indexOf("&/")===0){p=p.substring(2);}}else{p=window.location.hash.substring(1);if(p[0]==="/"){p=p.substring(1);}}}p=U.decode(p);if(t._oNavigationGuard){for(var i=t._oManagedHistory.length-1;i>0;i--){if(t._oManagedHistory[i].hash===p){P=t._oManagedHistory[i-1].hash;break;}}return!P||!t.checkHashWithGuard(P);}return false;}});});
|
|
6
|
+
sap.ui.define(["sap/base/Log","sap/ui/base/Object","sap/ui/base/EventProvider","sap/fe/core/Synchronization","sap/ui/thirdparty/URI"],function(L,B,E,S,U){"use strict";var e={EQUAL:0,COMPATIBLE:1,ANCESTOR:2,DIFFERENT:3};var a={LAYOUTPARAM:"layout",IAPPSTATEPARAM:"sap-iapp-state"};function c(g){return{_guardHash:g.replace(/\?[^\?]*$/,""),check:function(h){return h.indexOf(this._guardHash)===0;}};}function f(h){var A=h.match(new RegExp("\\?.*"+a.IAPPSTATEPARAM+"=([^&]*)"));return A&&A.length>1?A[1]:null;}function r(h){return h.replace(new RegExp("[&?]*"+a.IAPPSTATEPARAM+"=[^&]*"),"");}function s(h,A){var n;if(h.indexOf(a.IAPPSTATEPARAM)>=0){n=h.replace(new RegExp(a.IAPPSTATEPARAM+"=[^&]*"),a.IAPPSTATEPARAM+"="+A);}else{if(h.indexOf("?")<0){n=h+"?";}else{n=h+"&";}n+=a.IAPPSTATEPARAM+"="+A;}return n;}return B.extend("sap.fe.core.RouterProxy",{bIsRebuildHistoryRunning:false,bIsComputingTitleHierachy:false,bIsGuardCrossAllowed:false,sIAppStateKey:null,init:function(A,i){A.getService("shellServices").then(function(){this._oShellServices=A.getShellServices();this.initRaw(A.getRouter());this.waitForRouteMatchBeforeNavigation();history.replaceState(Object.assign({feLevel:0},history.state),"",window.location);this.fclEnabled=i;this._fnBlockingNavFilter=this._blockingNavigationFilter.bind(this);this._oShellServices.registerNavigationFilter(this._fnBlockingNavFilter);}.bind(this)).catch(function(o){L.error("Cannot retrieve the shell services",o);});this._fnHashGuard=this.hashGuard.bind(this);window.addEventListener("popstate",this._fnHashGuard);this._bDisableOnHashChange=false;this._bIgnoreRestore=false;this._bCleanedRestore=false;this._bForceFocus=true;},destroy:function(){if(this._oShellServices){this._oShellServices.unregisterNavigationFilter(this._fnBlockingNavFilter);}window.removeEventListener("popstate",this._fnHashGuard);},initRaw:function(R){this._oRouter=R;this._oManagedHistory=[];this._oNavigationGuard=null;var C=this.getHash();this._oManagedHistory.push(this._extractStateFromHash(C));this.sIAppStateKey=f(C);},getHash:function(){return this._oRouter.getHashChanger().getHash();},isFocusForced:function(){return this._bForceFocus;},setFocusForced:function(F){this._bForceFocus=F;},removeIAppStateKey:function(){this.sIAppStateKey=null;},navToHash:function(h,p,d,F){var t=this;if(this._oRouteMatchSynchronization){return this._oRouteMatchSynchronization.waitFor().then(function(){t._oRouteMatchSynchronization=null;return t._internalNavToHash(h,p,d,F);});}else{if(this._bActivateRouteMatchSynchro){this.waitForRouteMatchBeforeNavigation();}return t._internalNavToHash(h,p,d,F);}},_internalNavToHash:function(h,p,d,F){if(this.fclEnabled&&this.sIAppStateKey&&!f(h)){h=s(h,this.sIAppStateKey);}if(!this.checkHashWithGuard(h)){if(!this.oResourceBundle){this.oResourceBundle=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");}if(!confirm(this.oResourceBundle.getText("C_ROUTER_PROXY_SAPFE_EXIT_NOTSAVED_MESSAGE"))){return Promise.resolve();}this.bIsGuardCrossAllowed=true;}var n=this._extractStateFromHash(h);if(!this._bForceFocus){var C=this._extractKeysFromHash(this.getHash());this._bForceFocus=F||(C.length<n.keys.length&&C.every(function(k,i){return k===n.keys[i];}));}var H=this._pushNewState(n,false,p,d);return this._rebuildBrowserHistory(H,false);},restoreHistory:function(){if(this._bApplyRestore){this._bApplyRestore=false;var t=this.getHash();t=t.replace(/(\?|&)restoreHistory=true/,"");var n=this._extractStateFromHash(t);var h=this._pushNewState(n,true,false,true);return this._rebuildBrowserHistory(h,true);}else{return Promise.resolve();}},navBack:function(){var C=this.getHash(),p;for(var i=this._oManagedHistory.length-1;i>0;i--){if(this._oManagedHistory[i].hash===C){p=this._oManagedHistory[i-1].hash;break;}}if(p){return this.navToHash(p);}else{window.history.back();return Promise.resolve();}},navTo:function(R,p){var h=this._oRouter.getURL(R,p);return this.navToHash(h,false,p.noPreservationCache);},exitFromApp:function(){return this._oShellServices.backToPreviousApp();},isCurrentStateImpactedBy:function(h){if(h[0]==="/"){h=h.substring(1);}var l=c(h);return l.check(this.getHash());},isNavigationFinalized:function(){return!this.bIsRebuildHistoryRunning&&!this._bDelayedRebuild;},setNavigationGuard:function(){this._oNavigationGuard=c(this.getHash());this.bIsGuardCrossAllowed=false;},discardNavigationGuard:function(){this._oNavigationGuard=null;},hasNavigationGuard:function(){return this._oNavigationGuard!==null;},checkHashWithGuard:function(h){return this._oNavigationGuard===null||this._oNavigationGuard.check(h);},isGuardCrossAllowedByUser:function(){return this.bIsGuardCrossAllowed;},activateRouteMatchSynchronization:function(){this._bActivateRouteMatchSynchro=true;},resolveRouteMatch:function(){if(this._oRouteMatchSynchronization){this._oRouteMatchSynchronization.resolve();}},waitForRouteMatchBeforeNavigation:function(){this._oRouteMatchSynchronization=new S();this._bActivateRouteMatchSynchro=false;},_extractKeysFromHash:function(h){if(h===undefined){h="";}var H=h.split("?")[0];var t=H.split("/");var k=[];t.forEach(function(T){var b=/[^\(\)]+\([^\(\)]+\)/;if(b.test(T)){k.push(T.split("(")[0]);}});return k;},_extractStateFromHash:function(h){if(h===undefined){h="";}var o={keys:this._extractKeysFromHash(h)};var l=h.match(new RegExp("\\?.*"+a.LAYOUTPARAM+"=([^&]*)"));o.sLayout=l&&l.length>1?l[1]:null;if(o.sLayout==="MidColumnFullScreen"){o.screenMode=1;}else if(o.sLayout==="EndColumnFullScreen"){o.screenMode=2;}else{o.screenMode=0;}o.hash=h;return o;},_pushNewState:function(n,R,p,d){var C=this.getHash(),l=this._oManagedHistory.length-1,P=R?1:0,t=this;if(!R){while(l>=0&&this._oManagedHistory[l].hash!==C){this._oManagedHistory.pop();l--;}if(this._oManagedHistory.length===0){this._oManagedHistory.push(this._extractStateFromHash(C));history.replaceState(Object.assign({feLevel:0},history.state),"");}}if(p&&!d){this._oManagedHistory[this._oManagedHistory.length-1].preserved=true;}var o;while(this._oManagedHistory.length>0){var T=this._oManagedHistory[this._oManagedHistory.length-1];if((d||!T.preserved)&&this._compareCacheStates(T,n)!==e.ANCESTOR){o=this._oManagedHistory.pop();P++;}else if(T.preserved&&r(T.hash)===r(n.hash)){o=this._oManagedHistory.pop();P++;n.preserved=true;break;}else{break;}}this.sIAppStateKey=f(n.hash);if(this.fclEnabled&&this.sIAppStateKey){this._oManagedHistory.forEach(function(m){m.hash=s(m.hash,t.sIAppStateKey);});}else if(!this.fclEnabled&&o){var b=f(o.hash);var g=this._compareCacheStates(o,n);if(!this.sIAppStateKey&&b&&(g===e.EQUAL||g===e.COMPATIBLE)){n.hash=s(n.hash,b);}}var h=o&&n.hash===o.hash;if(this._oManagedHistory.length===0||this._oManagedHistory[this._oManagedHistory.length-1].hash!==n.hash){this._oManagedHistory.push(n);}if(P===0){return{type:"append"};}else if(P===1){return h?{type:"none"}:{type:"replace"};}else{return h?{type:"back",steps:P-1}:{type:"back-replace",steps:P-1};}},_blockingNavigationFilter:function(){return this._bDisableOnHashChange?"Custom":"Continue";},_disableEventOnHashChange:function(){this._bDisableOnHashChange=true;this._oRouter.stop();},_enableEventOnHashChange:function(i){this._bDisableOnHashChange=false;this._oRouter.initialize(i);},_rebuildBrowserHistory:function(h,R){var t=this;return new Promise(function(b,d){t.bIsRebuildHistoryRunning=true;var T=t._oManagedHistory[t._oManagedHistory.length-1],n=t._oManagedHistory.length-1;function g(){if(!R){t._enableEventOnHashChange(true);}t._oRouter.getHashChanger().replaceHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");if(R){setTimeout(function(){t._enableEventOnHashChange(true);},0);}t.bIsRebuildHistoryRunning=false;b();}function i(){window.removeEventListener("popstate",i);setTimeout(function(){g();},0);}function j(){window.removeEventListener("popstate",j);t.bIsRebuildHistoryRunning=false;b();}t._bIgnoreRestore=true;switch(h.type){case"replace":t._oRouter.getHashChanger().replaceHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");t.bIsRebuildHistoryRunning=false;b();break;case"append":t._oRouter.getHashChanger().setHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");t.bIsRebuildHistoryRunning=false;b();break;case"back":window.addEventListener("popstate",j);history.go(-h.steps);break;case"back-replace":t._disableEventOnHashChange();window.addEventListener("popstate",i);history.go(-h.steps);break;default:t.bIsRebuildHistoryRunning=false;b();}});},getLastHistoryEntry:function(){return this._oManagedHistory[this._oManagedHistory.length-1];},hashGuard:function(o){if(this._bCleanedRestore){this._bCleanedRestore=false;return;}var h=window.location.hash;if(h.indexOf("restoreHistory=true")!==-1){this._bApplyRestore=true;}else if(!this.bIsRebuildHistoryRunning){var H=h.split("&/");var A=H[1]?H[1]:"";if(this.checkHashWithGuard(A)){this._bDelayedRebuild=true;var n=this._extractStateFromHash(A);this._pushNewState(n,false,false,true);var t=this;setTimeout(function(){t._bDelayedRebuild=false;},0);}}},_compareCacheStates:function(o,b){if(o.keys.length>b.keys.length){return e.DIFFERENT;}var d=true;var i;for(i=0;d&&i<o.keys.length;i++){if(o.keys[i]!==b.keys[i]){d=false;}}if(!d){return e.DIFFERENT;}if(o.keys.length<b.keys.length||o.screenMode<b.screenMode){return e.ANCESTOR;}if(o.screenMode>b.screenMode){return e.DIFFERENT;}return o.sLayout===b.sLayout?e.EQUAL:e.COMPATIBLE;},checkIfBackIsOutOfGuard:function(p){var t=this,P;if(p===undefined){var o=this._oShellServices.splitHash(window.location.hash);if(o&&o.appSpecificRoute){p=o.appSpecificRoute;if(p.indexOf("&/")===0){p=p.substring(2);}}else{p=window.location.hash.substring(1);if(p[0]==="/"){p=p.substring(1);}}}p=U.decode(p);if(t._oNavigationGuard){for(var i=t._oManagedHistory.length-1;i>0;i--){if(t._oManagedHistory[i].hash===p){P=t._oManagedHistory[i-1].hash;break;}}return!P||!t.checkHashWithGuard(P);}return false;}});});
|
|
@@ -103,11 +103,11 @@ sap.ui.define(
|
|
|
103
103
|
return this.oAppComponent;
|
|
104
104
|
},
|
|
105
105
|
|
|
106
|
-
onPageReady: function(
|
|
106
|
+
onPageReady: function(mParameters) {
|
|
107
107
|
if (this.getRootControl() && this.getRootControl().getController() && this.getRootControl().getController().onPageReady) {
|
|
108
108
|
this.getRootControl()
|
|
109
109
|
.getController()
|
|
110
|
-
.onPageReady(
|
|
110
|
+
.onPageReady(mParameters);
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
|
|
5
5
|
*/
|
|
6
|
-
sap.ui.define(["sap/ui/core/UIComponent","sap/fe/core/CommonUtils","sap/base/Log"],function(U,C,L){"use strict";var T=U.extend("sap.fe.core.TemplateComponent",{metadata:{interfaces:["sap.ui.core.IAsyncContentCreation"],properties:{entitySet:{type:"string",defaultValue:null},contextPath:{type:"string",defaultValue:null},bindingContextPattern:{type:"string"},navigation:{type:"object"},enhanceI18n:{type:"string[]"},controlConfiguration:{type:"object"},content:{type:"object"},allowDeepLinking:{type:"boolean"},refreshStrategyOnAppRestore:{type:"object"}},events:{containerDefined:{container:{type:"sap.ui.base.ManagedObject"}},heroesBatchReceived:{element:{type:"sap.ui.base.ManagedObject"}},workersBatchReceived:{element:{type:"sap.ui.base.ManagedObject"}}},library:"sap.fe.core"},setContainer:function(c){U.prototype.setContainer.apply(this,arguments);this.fireContainerDefined({container:c});},init:function(){this.oAppComponent=C.getAppComponent(this);U.prototype.init.apply(this,arguments);},getExtensionComponent:function(){return this.oAppComponent;},onPageReady:function(
|
|
6
|
+
sap.ui.define(["sap/ui/core/UIComponent","sap/fe/core/CommonUtils","sap/base/Log"],function(U,C,L){"use strict";var T=U.extend("sap.fe.core.TemplateComponent",{metadata:{interfaces:["sap.ui.core.IAsyncContentCreation"],properties:{entitySet:{type:"string",defaultValue:null},contextPath:{type:"string",defaultValue:null},bindingContextPattern:{type:"string"},navigation:{type:"object"},enhanceI18n:{type:"string[]"},controlConfiguration:{type:"object"},content:{type:"object"},allowDeepLinking:{type:"boolean"},refreshStrategyOnAppRestore:{type:"object"}},events:{containerDefined:{container:{type:"sap.ui.base.ManagedObject"}},heroesBatchReceived:{element:{type:"sap.ui.base.ManagedObject"}},workersBatchReceived:{element:{type:"sap.ui.base.ManagedObject"}}},library:"sap.fe.core"},setContainer:function(c){U.prototype.setContainer.apply(this,arguments);this.fireContainerDefined({container:c});},init:function(){this.oAppComponent=C.getAppComponent(this);U.prototype.init.apply(this,arguments);},getExtensionComponent:function(){return this.oAppComponent;},onPageReady:function(p){if(this.getRootControl()&&this.getRootControl().getController()&&this.getRootControl().getController().onPageReady){this.getRootControl().getController().onPageReady(p);}},getNavigationConfiguration:function(t){var n=this.getNavigation();return n[t];},getViewData:function(){var p=this.getMetadata().getAllProperties();var v=Object.keys(p).reduce(function(V,P){V[P]=p[P].get(this);return V;}.bind(this),{});v.fclEnabled=this.oAppComponent._isFclEnabled();return v;},_getPageTitleInformation:function(){if(this.getRootControl()&&this.getRootControl().getController()&&this.getRootControl().getController()._getPageTitleInformation){return this.getRootControl().getController()._getPageTitleInformation();}else{return Promise.resolve({});}},getExtensionAPI:function(){return this.getRootControl().getController().getExtensionAPI();}});return T;},true);
|
|
@@ -211,8 +211,7 @@ sap.ui.define(
|
|
|
211
211
|
aNonComputedVisibleKeyFields,
|
|
212
212
|
oModel,
|
|
213
213
|
mParameters,
|
|
214
|
-
messageHandler
|
|
215
|
-
sFunctionName
|
|
214
|
+
messageHandler
|
|
216
215
|
);
|
|
217
216
|
} else {
|
|
218
217
|
oNewDocumentContext = oMainListBinding.create(mParameters.data, bSkipRefresh, mParameters.createAtEnd);
|
|
@@ -645,7 +644,7 @@ sap.ui.define(
|
|
|
645
644
|
})
|
|
646
645
|
)
|
|
647
646
|
.catch(function(oError) {
|
|
648
|
-
return messageHandler.
|
|
647
|
+
return messageHandler.showMessages().then(function() {
|
|
649
648
|
// re-throw error to enforce rejecting the general promise
|
|
650
649
|
throw oError;
|
|
651
650
|
});
|
|
@@ -769,7 +768,7 @@ sap.ui.define(
|
|
|
769
768
|
});
|
|
770
769
|
})
|
|
771
770
|
.catch(function(err) {
|
|
772
|
-
return messageHandler.
|
|
771
|
+
return messageHandler.showMessages().then(function() {
|
|
773
772
|
return Promise.reject(err);
|
|
774
773
|
});
|
|
775
774
|
})
|
|
@@ -896,12 +895,12 @@ sap.ui.define(
|
|
|
896
895
|
// remove existing bound transition messages
|
|
897
896
|
messageHandler.removeTransitionMessages();
|
|
898
897
|
// show unbound messages
|
|
899
|
-
return messageHandler.
|
|
898
|
+
return messageHandler.showMessages().then(function() {
|
|
900
899
|
return context;
|
|
901
900
|
});
|
|
902
901
|
})
|
|
903
902
|
.catch(function(err) {
|
|
904
|
-
return messageHandler.
|
|
903
|
+
return messageHandler.showMessages().then(function() {
|
|
905
904
|
return Promise.reject(err);
|
|
906
905
|
});
|
|
907
906
|
})
|
|
@@ -968,7 +967,7 @@ sap.ui.define(
|
|
|
968
967
|
}
|
|
969
968
|
});
|
|
970
969
|
}
|
|
971
|
-
return messageHandler.
|
|
970
|
+
return messageHandler.showMessages().then(function() {
|
|
972
971
|
return Promise.reject(err);
|
|
973
972
|
});
|
|
974
973
|
})
|
|
@@ -1176,7 +1175,7 @@ sap.ui.define(
|
|
|
1176
1175
|
if (aTransientMessages.length > 0 && mParameters && mParameters.internalModelContext) {
|
|
1177
1176
|
mParameters.internalModelContext.setProperty("sActionName", mParameters.label ? mParameters.label : sActionName);
|
|
1178
1177
|
}
|
|
1179
|
-
return messageHandler.
|
|
1178
|
+
return messageHandler.showMessages();
|
|
1180
1179
|
},
|
|
1181
1180
|
/**
|
|
1182
1181
|
* Handles validation errors for the 'discard' action.
|
|
@@ -1310,8 +1309,7 @@ sap.ui.define(
|
|
|
1310
1309
|
mFields,
|
|
1311
1310
|
oModel,
|
|
1312
1311
|
mParameters,
|
|
1313
|
-
messageHandler
|
|
1314
|
-
sFunctionName
|
|
1312
|
+
messageHandler
|
|
1315
1313
|
) {
|
|
1316
1314
|
var that = this,
|
|
1317
1315
|
oDialog,
|
|
@@ -1454,7 +1452,7 @@ sap.ui.define(
|
|
|
1454
1452
|
.finally(function() {
|
|
1455
1453
|
BusyLocker.unlock(oDialog);
|
|
1456
1454
|
oCreateButton.setEnabled(true);
|
|
1457
|
-
return messageHandler.
|
|
1455
|
+
return messageHandler.showMessages();
|
|
1458
1456
|
});
|
|
1459
1457
|
}
|
|
1460
1458
|
},
|
|
@@ -1464,15 +1462,6 @@ sap.ui.define(
|
|
|
1464
1462
|
oDialog.close();
|
|
1465
1463
|
}
|
|
1466
1464
|
},
|
|
1467
|
-
beforeOpen: function() {
|
|
1468
|
-
if (sFunctionName) {
|
|
1469
|
-
for (var i = 0; i < Object.keys(mParameters.data).length; i++) {
|
|
1470
|
-
if (mParameters.data && mFields.indexOf(Object.keys(mParameters.data)[i]) > -1) {
|
|
1471
|
-
oTransientContext.setProperty(mFields[i], mParameters.data[mFields[i]]);
|
|
1472
|
-
}
|
|
1473
|
-
}
|
|
1474
|
-
}
|
|
1475
|
-
},
|
|
1476
1465
|
afterClose: function() {
|
|
1477
1466
|
// show footer as per UX guidelines when dialog is not open
|
|
1478
1467
|
oDialog.getBindingContext("internal").setProperty("isCreateDialogOpen", false);
|
|
@@ -1494,7 +1483,14 @@ sap.ui.define(
|
|
|
1494
1483
|
}
|
|
1495
1484
|
oCreateButton = oDialog.getBeginButton();
|
|
1496
1485
|
oDialog.setBindingContext(oTransientContext);
|
|
1497
|
-
return CommonUtils.setUserDefaults(
|
|
1486
|
+
return CommonUtils.setUserDefaults(
|
|
1487
|
+
oAppComponent,
|
|
1488
|
+
aImmutableFields,
|
|
1489
|
+
oTransientContext,
|
|
1490
|
+
undefined,
|
|
1491
|
+
mParameters.createAction,
|
|
1492
|
+
mParameters.data
|
|
1493
|
+
)
|
|
1498
1494
|
.then(function() {
|
|
1499
1495
|
validateRequiredProperties();
|
|
1500
1496
|
// footer must not be visible when the dialog is open as per UX guidelines
|
|
@@ -1502,7 +1498,7 @@ sap.ui.define(
|
|
|
1502
1498
|
oDialog.open();
|
|
1503
1499
|
})
|
|
1504
1500
|
.catch(function(oError) {
|
|
1505
|
-
return messageHandler.
|
|
1501
|
+
return messageHandler.showMessages().then(function() {
|
|
1506
1502
|
return Promise.reject(oError);
|
|
1507
1503
|
});
|
|
1508
1504
|
});
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
|
|
5
5
|
*/
|
|
6
|
-
sap.ui.define(["sap/ui/base/Object","sap/fe/core/AnnotationHelper","sap/fe/core/actions/draft","sap/fe/core/actions/sticky","sap/fe/core/actions/operations","sap/ui/model/json/JSONModel","sap/m/Popover","sap/m/VBox","sap/m/CheckBox","sap/m/Text","sap/m/Button","sap/m/MessageToast","sap/m/Dialog","sap/ui/model/BindingMode","sap/base/Log","sap/ui/core/message/Message","sap/fe/core/CommonUtils","sap/fe/core/BusyLocker","sap/ui/core/util/XMLPreprocessor","sap/ui/core/XMLTemplateProcessor","sap/ui/core/Fragment","sap/m/MessageBox","sap/fe/core/helpers/ModelHelper","sap/fe/core/library","sap/ui/core/ValueState","sap/fe/core/actions/messageHandling"],function(B,A,d,s,o,J,P,V,C,T,a,M,D,b,L,c,e,f,X,g,F,h,j,k,l,m){"use strict";var n=k.CreationMode,p=k.ProgrammingModel;function q(i){if(i&&i.getMetadata&&i.getMetadata().getName()==="sap.ui.base.Event"){i={};}return i||{};}return B.extend("sap.fe.core.TransactionHelper",{constructor:function(i,r){this._oAppComponent=i;this.oLockObject=r;},getProgrammingModel:function(i){if(!this.sProgrammingModel&&i){if(j.isDraftSupported(i.getModel().getMetaModel(),i.getPath())){this.sProgrammingModel=p.Draft;}else if(j.isStickySessionSupported(i.getModel().getMetaModel())){this.sProgrammingModel=p.Sticky;}else{return p.NonDraft;}}return this.sProgrammingModel;},createDocument:function(i,r,R,t,u){var N,v=this,S,w=i.getModel(),x=w.getMetaModel(),y=x.getMetaPath(i.getHeaderContext().getPath()),z=this._getAppComponent().getRouterProxy().getHash(),E=this._getAppComponent().getComponentData(),G=(E&&E.startupParameters)||{},H=!i.isRelative()?this._getNewAction(G,z,x,y):undefined,I,K={"$$patchWithoutSideEffects":true},O=x.getObject(y+"/@com.sap.vocabularies.Common.v1.Messages/$Path"),Q,U="/busy",W=x.getObject(y+"@com.sap.vocabularies.Common.v1.DefaultValuesFunction")||x.getObject(j.getTargetEntitySet(x.getContext(y))+"@com.sap.vocabularies.Common.v1.DefaultValuesFunction");if(O){K["$select"]=O;}r=q(r);if(!i){return Promise.reject("Binding required for new document creation");}Q=this.getProgrammingModel(i);if(Q!==p.Draft&&Q!==p.Sticky){return Promise.reject("Create document only allowed for draft or sticky session supported services");}if(r.busyMode==="Local"){U="/busyLocal/"+i.sId;}f.lock(this.oLockObject,U);S=!r.refreshList;var Y=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");if(H){I=this.callAction(H,{contexts:i.getHeaderContext(),showActionParameterDialog:true,label:Y.getText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE"),bindingParameters:K,parentControl:r.parentControl,bIsCreateAction:true},null,t);}else{var Z=r.creationMode!==n.CreationRow&&r.creationMode!==n.Inline;var $=Z?e.getNonComputedVisibleFields(x,y):[];W=u?null:W;I=o.callFunctionImport(W,w).then(function(_){if(_){return _.getObject();}else{return undefined;}}).catch(function(_){L.error("Error while calling function Import "+W,_);throw _;}).then(function(_){r.data=_?Object.assign({},_,r.data):r.data;if(r.data){delete r.data["@odata.context"];}if($.length>0){var a1=w.bindList(i.getPath(),i.getContext(),[],[],{$$updateGroupId:"submitLater"});a1.refreshInternal=function(){};N=a1.create(r.data,S);return v._launchDialogWithKeyFields(i,a1,N,$,w,r,t,W);}else{N=i.create(r.data,S,r.createAtEnd);return v.onAfterCreateCompletion(i,N,r,Y);}}).catch(function(_){L.error("Error while creating the new document",_);throw _;});}return I.then(function(_){if(!i.isRelative()){v._bCreateMode=true;}N=N||(_&&_.response);if(_&&_.bConsiderDocumentModified){v.handleDocumentModifications();}return t.showMessageDialog().then(function(){return N;});}).catch(function(_){return t.showMessageDialog().then(function(){if(_&&_.bDeleteTransientContext&&N.isTransient()){N.delete("$direct");}return Promise.reject(_);});}).finally(function(){f.unlock(v.oLockObject,U);});},findActiveDraftRootContexts:function(i,r){if(!r){return Promise.resolve();}var t=i.reduce(function(R,u){var v=u.getModel().getMetaModel();var w=v.getMetaPath(u.getPath());if(v.getObject(w+"@com.sap.vocabularies.Common.v1.DraftRoot")){var I=u.getObject().IsActiveEntity,H=u.getObject().HasActiveEntity,x;if(!I&&H){x=u.getModel().bindContext(u.getPath()+"/SiblingEntity").getBoundContext();R.push(x);}}return R;},[]);return Promise.all(t.map(function(u){return u.requestCanonicalPath().then(function(){return u;},function(){return;});}));},afterDeleteProcess:function(i,r,t,R){var I=i.internalModelContext;if(I&&I.getProperty("deleteEnabled")!=undefined){if(r.isCheckBoxVisible===true&&r.isCheckBoxSelected===false){I.setProperty("deleteEnabled",true);var u=Object.assign(I.getObject(),{});u.selectedContexts=u.selectedContexts.filter(function(v){return u.deletableContexts.indexOf(v)===-1;});u.deletableContexts=[];u.selectedContexts=[];u.numberOfSelectedContexts=u.selectedContexts.length;I.setProperty("",u);}else{I.setProperty("deleteEnabled",false);I.setProperty("selectedContexts",[]);I.setProperty("numberOfSelectedContexts",0);}}if(t.length===1){M.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_DELETE_TOAST_SINGULAR",R,null,i.entitySetName));}else{M.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_DELETE_TOAST_PLURAL",R,null,i.entitySetName));}},deleteDocument:function(v,r,R,t){var u,w,x=[],y=false,z=false,E=false,G,H=false,I=this,K=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core"),N,O={title:K.getText("C_COMMON_OBJECT_PAGE_DELETE")};f.lock(this.oLockObject);if(!Array.isArray(v)){v=[v];}Promise.resolve(this.getProgrammingModel(v[0])).then(function(Q){if(r){if(!r.numberOfSelectedContexts){if(Q===p.Draft){for(var i=0;i<v.length;i++){var S=v[i].getObject();if(S.IsActiveEntity===true&&S.HasDraftEntity===true&&S.DraftAdministrativeData&&S.DraftAdministrativeData.InProcessByUser&&!S.DraftAdministrativeData.DraftIsCreatedByMe){h.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_SINGLE_OBJECT_LOCKED",R),{title:K.getText("C_COMMON_OBJECT_PAGE_DELETE"),onClose:u});return;}}}r=q(r);if(r.title){if(r.description){N=[r.title,r.description];O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO",R,N,r.entitySetName);}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName);}}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R);}x=v;}else{O={title:K.getText("C_COMMON_OBJECT_PAGE_DELETE")};if(r.numberOfSelectedContexts===1&&r.numberOfSelectedContexts===v.length){x=v;O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName);}else if(r.numberOfSelectedContexts===1&&r.unSavedContexts.length===1){x=r.unSavedContexts;var U=x[0].getObject()["DraftAdministrativeData"];var W="";if(U){W=U["LastChangedByUserDescription"]||U["LastChangedByUser"]||"";}N=[W];O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_CHANGES",R,N);}else if(r.numberOfSelectedContexts===r.unSavedContexts.length){x=r.unSavedContexts;O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_CHANGES_MULTIPLE_OBJECTS",R);}else if(r.numberOfSelectedContexts===v.concat(r.unSavedContexts.concat(r.lockedContexts)).length){x=v.concat(r.unSavedContexts);O.text=x.length===1?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_PLURAL",R,null,r.entitySetName);}else{x=v.concat(r.unSavedContexts);E=true;O.text=x.length===1?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR_NON_DELETABLE",R,null,r.entitySetName):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_PLURAL_NON_DELETABLE",R,null,r.entitySetName);O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length,r.numberOfSelectedContexts]);}if(r.lockedContexts.length==1){z=true;O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_ONE_OBJECT_LOCKED",R,[r.numberOfSelectedContexts]);}if(r.lockedContexts.length>1){z=true;O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_LOCKED",R,[r.lockedContexts.length,r.numberOfSelectedContexts]);}if(r.unSavedContexts.length>0&&r.unSavedContexts.length!==r.numberOfSelectedContexts){if((E||z)&&x.length===r.unSavedContexts.length){y=false;x=r.unSavedContexts;if(r.unSavedContexts.length===1){O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_AND_FEW_OBJECTS_LOCKED_SINGULAR",R);}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_AND_FEW_OBJECTS_LOCKED_PLURAL",R);}}else{if(r.unSavedContexts.length===1){O.checkBoxText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_UNSAVED_SINGULAR",R);}else{O.checkBoxText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_UNSAVED_PLURAL",R);}y=true;}}if(E&&z){if(r.unSavedContexts.length>1){O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_LOCKED_AND_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length-r.lockedContexts.length,r.lockedContexts.length,r.numberOfSelectedContexts]);}if(r.unSavedContexts.length==1){O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_ONE_OBJECT_LOCKED_AND_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length-r.lockedContexts.length,r.numberOfSelectedContexts]);}}}}var Y,Z,$=new V({items:[(Y=new T({text:O.nonDeletableText,visible:z||E})),(Z=new T({text:O.text})),new C({text:O.checkBoxText,selected:true,select:function(c1){var d1=c1.getSource().getSelected();if(d1){x=v.concat(r.unSavedContexts);G=true;}else{x=v;G=false;}},visible:y})]});var _=K.getText("C_COMMON_OBJECT_PAGE_DELETE");var a1=function(){H=true;f.lock(I.oLockObject);var c1=x;return I.findActiveDraftRootContexts(c1,r.bFindActiveContexts).then(function(d1){return Promise.all(c1.map(function(e1){return d.deleteDraft(e1);})).catch(function(e1){return t.showMessageDialog().then(function(){throw e1;});}).then(function(){var e1={"isCheckBoxVisible":y,"isCheckBoxSelected":G};if(d1&&d1.length){return Promise.all(d1.map(function(f1){return f1.delete();})).then(function(){I.afterDeleteProcess(r,e1,c1,R);return t.showMessageDialog().then(w);});}else{I.afterDeleteProcess(r,e1,c1,R);return t.showMessageDialog().then(w);}});}).catch(function(){u();}).finally(function(){f.unlock(I.oLockObject);});};var b1=new D({title:_,state:"Warning",content:[$],ariaLabelledBy:Y.getVisible()?[Y,Z]:Z,beginButton:new a({text:K.getText("C_COMMON_OBJECT_PAGE_DELETE"),type:"Emphasized",press:function(){b1.close();return a1();}}),endButton:new a({text:e.getTranslatedText("C_COMMON_OBJECT_PAGE_CANCEL",R),press:function(){b1.close();}}),afterClose:function(){b1.destroy();if(!H){u();}}});if(r.noDialog){return a1();}else{b1.addStyleClass("sapUiContentPadding");b1.open();}}).finally(function(){f.unlock(I.oLockObject);}).catch(function(){L.warning("Couldn't get Programming model");u();});return new Promise(function(i,Q){u=Q;w=i;});},editDocument:function(i,r,v,t){var u=this,w=this.getProgrammingModel(i),E;if(!i){return Promise.reject(new Error("Binding context to active document is required"));}this._bIsModified=false;f.lock(u.oLockObject);t.removeTransitionMessages();if(w===p.Draft){E=d.createDraftFromActiveDocument(i,this._getAppComponent(),{bPreserveChanges:true,bPrepareOnEdit:r,oView:v});}else if(w===p.Sticky){E=s.editDocumentInStickySession(i);}else{f.unlock(u.oLockObject);return Promise.reject(new Error("Edit is only allowed for draft or sticky session supported services"));}return E.then(function(N){u._bCreateMode=false;return t.showMessageDialog().then(function(){return N;});}).catch(function(x){return t.showMessageDialog().then(function(){return Promise.reject(x);});}).finally(function(){f.unlock(u.oLockObject);});},cancelDocument:function(i,r,R,t){var u=this,v;if(!i){return Promise.reject("No context exists. Pass a meaningful context");}f.lock(u.oLockObject);r=q(r);var w=i,x=r.cancelButton,y=w.getModel(),z;return Promise.resolve(this.getProgrammingModel(i)).then(function(E){v=E;if(E===p.Draft){var G=y.bindContext(w.getPath()+"/DraftAdministrativeData").getBoundContext();if(!u._bIsModified){return G.requestObject().then(function(H){if(H){u._bIsModified=!(H.CreationDateTime===H.LastChangeDateTime);}});}}}).then(function(){if(!r.bSkipDiscardPopover){return u._showDiscardPopover(x,u._bIsModified,R);}else{return Promise.resolve();}}).then(function(){switch(v){case p.Draft:return w.requestObject("HasActiveEntity").then(function(H){var E;if(!H){if(w&&w.hasPendingChanges()){w.getBinding().resetChanges();}E=d.deleteDraft(w);return E;}else{var G=y.bindContext(w.getPath()+"/SiblingEntity").getBoundContext();return G.requestCanonicalPath().then(function(I){z=I;if(w&&w.hasPendingChanges()){w.getBinding().resetChanges();}E=d.deleteDraft(w);return E;},function(){d.deleteDraft(w);return;}).then(function(){if(!z){return;}if(G.getPath()!==z){G=y.bindContext(z).getBoundContext();}return G;});}});case p.Sticky:return s.discardDocument(i).then(function(i){if(i){if(i.hasPendingChanges()){i.getBinding().resetChanges();}if(!u._bCreateMode){i.refresh();return i;}}return false;});default:return Promise.reject("Cancel document only allowed for draft or sticky session supported services");}}).then(function(E){u._bIsModified=false;t.removeTransitionMessages();return t.showMessageDialog().then(function(){return E;});}).catch(function(E){return t.showMessageDialog().then(function(){return Promise.reject(E);});}).finally(function(){f.unlock(u.oLockObject);});},saveDocument:function(i,r,E,t,u){var v=this,w=this.getProgrammingModel(i),S;if(!i){return Promise.reject(new Error("Binding context to draft document is required"));}u.removeTransitionMessages();f.lock(v.oLockObject);if(w===p.Draft){S=d.activateDocument(i,this._getAppComponent());}else if(w===p.Sticky){S=s.activateDocument(i);}else{f.unlock(v.oLockObject);return Promise.reject(new Error("Save is only allowed for draft or sticky session supported services"));}return S.then(function(x){var N=v.sProgrammingModel===p.Sticky?v._bCreateMode:!i.getObject().HasActiveEntity;M.show(N?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_CREATED",r):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_SAVED",r));v._bIsModified=false;return u.showMessageDialog().then(function(){return x;});}).catch(function(x){if(t&&t.length>0){t.forEach(function(y){if(!e.hasTransientContext(y)&&E){var z=v._getAppComponent();z.getSideEffectsService().requestSideEffectsForNavigationProperty(y.getPath(),i);}});}return u.showMessageDialog().then(function(){return Promise.reject(x);});}).finally(function(){f.unlock(v.oLockObject);});},callAction:function(r,t,v,u){t=q(t);var w=this,x,y,z,N,E=t.bindingParameters;if(!r){return Promise.reject("Provide name of action to be executed");}N=r.split("/")[1];r=N||r;x=N?undefined:t.contexts;if(x&&((Array.isArray(x)&&x.length)||!Array.isArray(x))){x=Array.isArray(x)?x[0]:x;y=x.getModel();}if(t.model){y=t.model;}if(!y){return Promise.reject("Pass a context for a bound action or pass the model for an unbound action");}var G=w._getAppComponent();var S=G.getSideEffectsService().getODataActionSideEffects(r,x)||{};if(x&&y){z=new Promise(function(H,I){var K;var O={onClose:function(){K.close();H();},onContinue:function(){K.close();H(t.applicableContext);}};var Q=function(){var _,a1=t.notApplicableContext.length,b1=[];for(var i=0;i<t.notApplicableContext.length;i++){_=t.notApplicableContext[i].getObject();b1.push(_);}var c1=new J(b1);var d1=new J({total:a1,label:t.label});K.setModel(c1,"notApplicable");K.setModel(d1,"totals");K.open();};if(t.notApplicableContext&&t.notApplicableContext.length>=1){var R="sap.fe.core.controls.ActionPartial";var U=g.loadTemplate(R,"fragment");var W=y.getMetaModel();var Y=t.contexts[0].getCanonicalPath();var Z=Y.substr(0,Y.indexOf("("))+"/";var $=new J({title:t.label});Promise.resolve(X.process(U,{name:R},{bindingContexts:{entityType:W.createBindingContext(Z),label:$.createBindingContext("/")},models:{entityType:W,metaModel:W,label:$}})).then(function(i){return F.load({definition:i,controller:O});}).then(function(i){K=i;t.parentControl.addDependent(i);Q();}).catch(I);}else{H(t.contexts);}}).then(function(i){if(i){return o.callBoundAction(r,i,y,G,{invocationGrouping:t.invocationGrouping,label:t.label,showActionParameterDialog:true,mBindingParameters:E,entitySetName:t.entitySetName,additionalSideEffect:S,onSubmitted:function(){u.removeTransitionMessages();f.lock(w.oLockObject);},onResponse:function(){f.unlock(w.oLockObject);},parentControl:t.parentControl,internalModelContext:t.internalModelContext,operationAvailableMap:t.operationAvailableMap,bIsCreateAction:t.bIsCreateAction,bGetBoundContext:t.bGetBoundContext,bObjectPage:t.bObjectPage,messageHandler:u,defaultValuesExtensionFunction:t.defaultValuesExtensionFunction});}else{return null;}});}else{z=o.callActionImport(r,y,G,{label:t.label,showActionParameterDialog:true,bindingParameters:E,entitySetName:t.entitySetName,onSubmitted:function(){f.lock(w.oLockObject);},onResponse:function(){f.unlock(w.oLockObject);},parentControl:t.parentControl,internalModelContext:t.internalModelContext,operationAvailableMap:t.operationAvailableMap,messageHandler:u,bObjectPage:t.bObjectPage});}return z.then(function(R){return w._handleActionResponse(u,t,r).then(function(){return R;});}).catch(function(i){return w._handleActionResponse(u,t,r).then(function(){return Promise.reject(i);});});},_handleActionResponse:function(i,r,t){var u=m.getMessages(true,true);if(u.length>0&&r&&r.internalModelContext){r.internalModelContext.setProperty("sActionName",r.label?r.label:t);}return i.showMessageDialog();},handleValidationError:function(){var i=sap.ui.getCore().getMessageManager(),r=i.getMessageModel().getData().filter(function(t){if(t.validation){return t;}});i.removeMessages(r);},_showDiscardPopover:function(i,I,r){var t=this;t._bContinueDiscard=false;return new Promise(function(u,v){if(!i){v("Cancel button not found");}if(I){var O=function(){i.setEnabled(true);if(t._bContinueDiscard){u();}else{v("Discard operation was rejected. Document has not been discarded");}t._oPopover.detachAfterClose(O);};if(!t._oPopover){var w=new T({text:e.getTranslatedText("C_TRANSACTION_HELPER_DRAFT_DISCARD_MESSAGE",r)}),x=new a({text:e.getTranslatedText("C_TRANSACTION_HELPER_DRAFT_DISCARD_BUTTON",r),width:"100%",press:function(){t.handleValidationError();t._bContinueDiscard=true;t._oPopover.close();},ariaLabelledBy:w});t._oPopover=new P({showHeader:false,placement:"Top",content:[new V({items:[w,x]})],beforeOpen:function(){i.setEnabled(false);t._oPopover.setInitialFocus(x);}});t._oPopover.addStyleClass("sapUiContentPadding");}t._oPopover.attachAfterClose(O);t._oPopover.openBy(i);}else{t.handleValidationError();u();}});},handleDocumentModifications:function(){this._bIsModified=true;},_getAppComponent:function(){return this._oAppComponent;},_launchDialogWithKeyFields:function(r,t,u,v,w,x,y,z){var E=this,G,H=x.parentControl,S=false;return new Promise(function(I,K){var N="sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog";var O=g.loadTemplate(N,"fragment"),R=H.getController().oResourceBundle,Q=w.getMetaModel(),U=[],W=E._getAppComponent(),Y=Q.createBindingContext(r.getPath()),Z=Q.getMetaPath(r.getPath());for(var i in v){U.push(Q.createBindingContext(Z+"/"+v[i]));}var $=new J(U);$=$.createBindingContext("/");return Promise.resolve(X.process(O,{name:N},{bindingContexts:{entitySet:Y,fields:$},models:{entitySet:Y.getModel(),fields:$.getModel(),metaModel:Q}})).then(function(O){var _=[],a1={},b1,c1=function(){return Promise.all(_.map(function(e1){return e1.getFields()[0];}).filter(function(e1){return e1.getRequired();}).map(function(e1){var f1=e1.getId();if(f1 in a1){return Promise.resolve(a1[f1]).then(function(g1){return g1;}).catch(function(){return undefined;});}return e1.getValueState()===l.Error?undefined:e1.getValue();})).then(function(e1){return e1.every(function(f1){return f1!==undefined&&f1!==null&&f1!=="";});}).catch(function(){return false;}).then(function(e1){b1.setEnabled(e1);});},d1={handleChange:function(e1){y.removeTransitionMessages();var f1=e1.getSource();var g1=e1.getParameter("id");var h1=e1.getParameter("promise");if(h1){a1[g1]=h1.then(function(){return f1.getValue();});}c1();},handleLiveChange:function(e1){var f1=e1.getParameter("id");var g1=e1.getParameter("value");a1[f1]=g1;c1();}};return F.load({definition:O,controller:d1}).then(function(e1){G=new D({title:e.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE",R),content:[e1],beginButton:{text:e.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE_BUTTON",R),type:"Emphasized",press:function(f1){var b1=f1.getSource();b1.setEnabled(false);f.lock(G);return Promise.all(Object.keys(a1).map(function(g1){return a1[g1];})).then(function(){var g1=E.onAfterCreateCompletion(t,u,x,R);w.submitBatch("submitLater");return g1;}).then(function(g1){G.setBindingContext(null);G.close();I(g1);}).finally(function(){f.unlock(G);b1.setEnabled(true);return y.showMessageDialog();});}},endButton:{text:e.getTranslatedText("C_COMMON_ACTION_PARAMETER_DIALOG_CANCEL",R),press:function(){G.close();}},beforeOpen:function(){if(z){for(var i=0;i<Object.keys(x.data).length;i++){if(x.data&&v.indexOf(Object.keys(x.data)[i])>-1){u.setProperty(v[i],x.data[v[i]]);}}}},afterClose:function(){G.getBindingContext("internal").setProperty("isCreateDialogOpen",false);G.destroy();if(!S){K({bDeleteTransientContext:true});}}});_=e1.getAggregation("form").getAggregation("formContainers")[0].getAggregation("formElements");if(H&&H.addDependent){H.addDependent(G);}b1=G.getBeginButton();G.setBindingContext(u);return e.setUserDefaults(W,U,u).then(function(){c1();G.getBindingContext("internal").setProperty("isCreateDialogOpen",true);G.open();}).catch(function(f1){return y.showMessageDialog().then(function(){return Promise.reject(f1);});});});});});},onAfterCreateCompletion:function(i,N,r,R){var t,u,v=new Promise(function(x,y){t=x;u=y;});var w=function(E){var x=E.getParameter("context"),S=E.getParameter("success");if(x===N){i.detachCreateCompleted(w,this);if(!S){var y={bDeleteTransientContext:false};if(!r.keepTransientContextOnFailed){y.bDeleteTransientContext=true;x.created().then(undefined,function(){L.trace("transient creation context deleted");}).catch(function(y){L.trace("transient creation context deletion error",y);});y.navigateBackFromTransientState=true;}u(y);}else{t();}}};i.attachCreateCompleted(w,this);return v;},_getNewAction:function(S,i,r,t){var N;if(S&&S.preferredMode&&i.indexOf("i-action=createWith")>-1){var u=S.preferredMode[0];N=u.indexOf("createWith:")>-1?u.substr(u.lastIndexOf(":")+1):undefined;}else{N=r&&r.getObject!==undefined?r.getObject(t+"@com.sap.vocabularies.Session.v1.StickySessionSupported/NewAction")||r.getObject(t+"@com.sap.vocabularies.Common.v1.DraftRoot/NewAction"):undefined;}return N;}});});
|
|
6
|
+
sap.ui.define(["sap/ui/base/Object","sap/fe/core/AnnotationHelper","sap/fe/core/actions/draft","sap/fe/core/actions/sticky","sap/fe/core/actions/operations","sap/ui/model/json/JSONModel","sap/m/Popover","sap/m/VBox","sap/m/CheckBox","sap/m/Text","sap/m/Button","sap/m/MessageToast","sap/m/Dialog","sap/ui/model/BindingMode","sap/base/Log","sap/ui/core/message/Message","sap/fe/core/CommonUtils","sap/fe/core/BusyLocker","sap/ui/core/util/XMLPreprocessor","sap/ui/core/XMLTemplateProcessor","sap/ui/core/Fragment","sap/m/MessageBox","sap/fe/core/helpers/ModelHelper","sap/fe/core/library","sap/ui/core/ValueState","sap/fe/core/actions/messageHandling"],function(B,A,d,s,o,J,P,V,C,T,a,M,D,b,L,c,e,f,X,g,F,h,j,k,l,m){"use strict";var n=k.CreationMode,p=k.ProgrammingModel;function q(i){if(i&&i.getMetadata&&i.getMetadata().getName()==="sap.ui.base.Event"){i={};}return i||{};}return B.extend("sap.fe.core.TransactionHelper",{constructor:function(i,r){this._oAppComponent=i;this.oLockObject=r;},getProgrammingModel:function(i){if(!this.sProgrammingModel&&i){if(j.isDraftSupported(i.getModel().getMetaModel(),i.getPath())){this.sProgrammingModel=p.Draft;}else if(j.isStickySessionSupported(i.getModel().getMetaModel())){this.sProgrammingModel=p.Sticky;}else{return p.NonDraft;}}return this.sProgrammingModel;},createDocument:function(i,r,R,t,u){var N,v=this,S,w=i.getModel(),x=w.getMetaModel(),y=x.getMetaPath(i.getHeaderContext().getPath()),z=this._getAppComponent().getRouterProxy().getHash(),E=this._getAppComponent().getComponentData(),G=(E&&E.startupParameters)||{},H=!i.isRelative()?this._getNewAction(G,z,x,y):undefined,I,K={"$$patchWithoutSideEffects":true},O=x.getObject(y+"/@com.sap.vocabularies.Common.v1.Messages/$Path"),Q,U="/busy",W=x.getObject(y+"@com.sap.vocabularies.Common.v1.DefaultValuesFunction")||x.getObject(j.getTargetEntitySet(x.getContext(y))+"@com.sap.vocabularies.Common.v1.DefaultValuesFunction");if(O){K["$select"]=O;}r=q(r);if(!i){return Promise.reject("Binding required for new document creation");}Q=this.getProgrammingModel(i);if(Q!==p.Draft&&Q!==p.Sticky){return Promise.reject("Create document only allowed for draft or sticky session supported services");}if(r.busyMode==="Local"){U="/busyLocal/"+i.sId;}f.lock(this.oLockObject,U);S=!r.refreshList;var Y=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");if(H){I=this.callAction(H,{contexts:i.getHeaderContext(),showActionParameterDialog:true,label:Y.getText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE"),bindingParameters:K,parentControl:r.parentControl,bIsCreateAction:true},null,t);}else{var Z=r.creationMode!==n.CreationRow&&r.creationMode!==n.Inline;var $=Z?e.getNonComputedVisibleFields(x,y):[];W=u?null:W;I=o.callFunctionImport(W,w).then(function(_){if(_){return _.getObject();}else{return undefined;}}).catch(function(_){L.error("Error while calling function Import "+W,_);throw _;}).then(function(_){r.data=_?Object.assign({},_,r.data):r.data;if(r.data){delete r.data["@odata.context"];}if($.length>0){var a1=w.bindList(i.getPath(),i.getContext(),[],[],{$$updateGroupId:"submitLater"});a1.refreshInternal=function(){};N=a1.create(r.data,S);return v._launchDialogWithKeyFields(i,a1,N,$,w,r,t);}else{N=i.create(r.data,S,r.createAtEnd);return v.onAfterCreateCompletion(i,N,r,Y);}}).catch(function(_){L.error("Error while creating the new document",_);throw _;});}return I.then(function(_){if(!i.isRelative()){v._bCreateMode=true;}N=N||(_&&_.response);if(_&&_.bConsiderDocumentModified){v.handleDocumentModifications();}return t.showMessageDialog().then(function(){return N;});}).catch(function(_){return t.showMessageDialog().then(function(){if(_&&_.bDeleteTransientContext&&N.isTransient()){N.delete("$direct");}return Promise.reject(_);});}).finally(function(){f.unlock(v.oLockObject,U);});},findActiveDraftRootContexts:function(i,r){if(!r){return Promise.resolve();}var t=i.reduce(function(R,u){var v=u.getModel().getMetaModel();var w=v.getMetaPath(u.getPath());if(v.getObject(w+"@com.sap.vocabularies.Common.v1.DraftRoot")){var I=u.getObject().IsActiveEntity,H=u.getObject().HasActiveEntity,x;if(!I&&H){x=u.getModel().bindContext(u.getPath()+"/SiblingEntity").getBoundContext();R.push(x);}}return R;},[]);return Promise.all(t.map(function(u){return u.requestCanonicalPath().then(function(){return u;},function(){return;});}));},afterDeleteProcess:function(i,r,t,R){var I=i.internalModelContext;if(I&&I.getProperty("deleteEnabled")!=undefined){if(r.isCheckBoxVisible===true&&r.isCheckBoxSelected===false){I.setProperty("deleteEnabled",true);var u=Object.assign(I.getObject(),{});u.selectedContexts=u.selectedContexts.filter(function(v){return u.deletableContexts.indexOf(v)===-1;});u.deletableContexts=[];u.selectedContexts=[];u.numberOfSelectedContexts=u.selectedContexts.length;I.setProperty("",u);}else{I.setProperty("deleteEnabled",false);I.setProperty("selectedContexts",[]);I.setProperty("numberOfSelectedContexts",0);}}if(t.length===1){M.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_DELETE_TOAST_SINGULAR",R,null,i.entitySetName));}else{M.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_DELETE_TOAST_PLURAL",R,null,i.entitySetName));}},deleteDocument:function(v,r,R,t){var u,w,x=[],y=false,z=false,E=false,G,H=false,I=this,K=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core"),N,O={title:K.getText("C_COMMON_OBJECT_PAGE_DELETE")};f.lock(this.oLockObject);if(!Array.isArray(v)){v=[v];}Promise.resolve(this.getProgrammingModel(v[0])).then(function(Q){if(r){if(!r.numberOfSelectedContexts){if(Q===p.Draft){for(var i=0;i<v.length;i++){var S=v[i].getObject();if(S.IsActiveEntity===true&&S.HasDraftEntity===true&&S.DraftAdministrativeData&&S.DraftAdministrativeData.InProcessByUser&&!S.DraftAdministrativeData.DraftIsCreatedByMe){h.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_SINGLE_OBJECT_LOCKED",R),{title:K.getText("C_COMMON_OBJECT_PAGE_DELETE"),onClose:u});return;}}}r=q(r);if(r.title){if(r.description){N=[r.title,r.description];O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO",R,N,r.entitySetName);}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName);}}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R);}x=v;}else{O={title:K.getText("C_COMMON_OBJECT_PAGE_DELETE")};if(r.numberOfSelectedContexts===1&&r.numberOfSelectedContexts===v.length){x=v;O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName);}else if(r.numberOfSelectedContexts===1&&r.unSavedContexts.length===1){x=r.unSavedContexts;var U=x[0].getObject()["DraftAdministrativeData"];var W="";if(U){W=U["LastChangedByUserDescription"]||U["LastChangedByUser"]||"";}N=[W];O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_CHANGES",R,N);}else if(r.numberOfSelectedContexts===r.unSavedContexts.length){x=r.unSavedContexts;O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_CHANGES_MULTIPLE_OBJECTS",R);}else if(r.numberOfSelectedContexts===v.concat(r.unSavedContexts.concat(r.lockedContexts)).length){x=v.concat(r.unSavedContexts);O.text=x.length===1?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_PLURAL",R,null,r.entitySetName);}else{x=v.concat(r.unSavedContexts);E=true;O.text=x.length===1?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR_NON_DELETABLE",R,null,r.entitySetName):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_PLURAL_NON_DELETABLE",R,null,r.entitySetName);O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length,r.numberOfSelectedContexts]);}if(r.lockedContexts.length==1){z=true;O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_ONE_OBJECT_LOCKED",R,[r.numberOfSelectedContexts]);}if(r.lockedContexts.length>1){z=true;O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_LOCKED",R,[r.lockedContexts.length,r.numberOfSelectedContexts]);}if(r.unSavedContexts.length>0&&r.unSavedContexts.length!==r.numberOfSelectedContexts){if((E||z)&&x.length===r.unSavedContexts.length){y=false;x=r.unSavedContexts;if(r.unSavedContexts.length===1){O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_AND_FEW_OBJECTS_LOCKED_SINGULAR",R);}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_AND_FEW_OBJECTS_LOCKED_PLURAL",R);}}else{if(r.unSavedContexts.length===1){O.checkBoxText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_UNSAVED_SINGULAR",R);}else{O.checkBoxText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_UNSAVED_PLURAL",R);}y=true;}}if(E&&z){if(r.unSavedContexts.length>1){O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_LOCKED_AND_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length-r.lockedContexts.length,r.lockedContexts.length,r.numberOfSelectedContexts]);}if(r.unSavedContexts.length==1){O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_ONE_OBJECT_LOCKED_AND_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length-r.lockedContexts.length,r.numberOfSelectedContexts]);}}}}var Y,Z,$=new V({items:[(Y=new T({text:O.nonDeletableText,visible:z||E})),(Z=new T({text:O.text})),new C({text:O.checkBoxText,selected:true,select:function(c1){var d1=c1.getSource().getSelected();if(d1){x=v.concat(r.unSavedContexts);G=true;}else{x=v;G=false;}},visible:y})]});var _=K.getText("C_COMMON_OBJECT_PAGE_DELETE");var a1=function(){H=true;f.lock(I.oLockObject);var c1=x;return I.findActiveDraftRootContexts(c1,r.bFindActiveContexts).then(function(d1){return Promise.all(c1.map(function(e1){return d.deleteDraft(e1);})).catch(function(e1){return t.showMessages().then(function(){throw e1;});}).then(function(){var e1={"isCheckBoxVisible":y,"isCheckBoxSelected":G};if(d1&&d1.length){return Promise.all(d1.map(function(f1){return f1.delete();})).then(function(){I.afterDeleteProcess(r,e1,c1,R);return t.showMessageDialog().then(w);});}else{I.afterDeleteProcess(r,e1,c1,R);return t.showMessageDialog().then(w);}});}).catch(function(){u();}).finally(function(){f.unlock(I.oLockObject);});};var b1=new D({title:_,state:"Warning",content:[$],ariaLabelledBy:Y.getVisible()?[Y,Z]:Z,beginButton:new a({text:K.getText("C_COMMON_OBJECT_PAGE_DELETE"),type:"Emphasized",press:function(){b1.close();return a1();}}),endButton:new a({text:e.getTranslatedText("C_COMMON_OBJECT_PAGE_CANCEL",R),press:function(){b1.close();}}),afterClose:function(){b1.destroy();if(!H){u();}}});if(r.noDialog){return a1();}else{b1.addStyleClass("sapUiContentPadding");b1.open();}}).finally(function(){f.unlock(I.oLockObject);}).catch(function(){L.warning("Couldn't get Programming model");u();});return new Promise(function(i,Q){u=Q;w=i;});},editDocument:function(i,r,v,t){var u=this,w=this.getProgrammingModel(i),E;if(!i){return Promise.reject(new Error("Binding context to active document is required"));}this._bIsModified=false;f.lock(u.oLockObject);t.removeTransitionMessages();if(w===p.Draft){E=d.createDraftFromActiveDocument(i,this._getAppComponent(),{bPreserveChanges:true,bPrepareOnEdit:r,oView:v});}else if(w===p.Sticky){E=s.editDocumentInStickySession(i);}else{f.unlock(u.oLockObject);return Promise.reject(new Error("Edit is only allowed for draft or sticky session supported services"));}return E.then(function(N){u._bCreateMode=false;return t.showMessageDialog().then(function(){return N;});}).catch(function(x){return t.showMessages().then(function(){return Promise.reject(x);});}).finally(function(){f.unlock(u.oLockObject);});},cancelDocument:function(i,r,R,t){var u=this,v;if(!i){return Promise.reject("No context exists. Pass a meaningful context");}f.lock(u.oLockObject);r=q(r);var w=i,x=r.cancelButton,y=w.getModel(),z;return Promise.resolve(this.getProgrammingModel(i)).then(function(E){v=E;if(E===p.Draft){var G=y.bindContext(w.getPath()+"/DraftAdministrativeData").getBoundContext();if(!u._bIsModified){return G.requestObject().then(function(H){if(H){u._bIsModified=!(H.CreationDateTime===H.LastChangeDateTime);}});}}}).then(function(){if(!r.bSkipDiscardPopover){return u._showDiscardPopover(x,u._bIsModified,R);}else{return Promise.resolve();}}).then(function(){switch(v){case p.Draft:return w.requestObject("HasActiveEntity").then(function(H){var E;if(!H){if(w&&w.hasPendingChanges()){w.getBinding().resetChanges();}E=d.deleteDraft(w);return E;}else{var G=y.bindContext(w.getPath()+"/SiblingEntity").getBoundContext();return G.requestCanonicalPath().then(function(I){z=I;if(w&&w.hasPendingChanges()){w.getBinding().resetChanges();}E=d.deleteDraft(w);return E;},function(){d.deleteDraft(w);return;}).then(function(){if(!z){return;}if(G.getPath()!==z){G=y.bindContext(z).getBoundContext();}return G;});}});case p.Sticky:return s.discardDocument(i).then(function(i){if(i){if(i.hasPendingChanges()){i.getBinding().resetChanges();}if(!u._bCreateMode){i.refresh();return i;}}return false;});default:return Promise.reject("Cancel document only allowed for draft or sticky session supported services");}}).then(function(E){u._bIsModified=false;t.removeTransitionMessages();return t.showMessages().then(function(){return E;});}).catch(function(E){return t.showMessages().then(function(){return Promise.reject(E);});}).finally(function(){f.unlock(u.oLockObject);});},saveDocument:function(i,r,E,t,u){var v=this,w=this.getProgrammingModel(i),S;if(!i){return Promise.reject(new Error("Binding context to draft document is required"));}u.removeTransitionMessages();f.lock(v.oLockObject);if(w===p.Draft){S=d.activateDocument(i,this._getAppComponent());}else if(w===p.Sticky){S=s.activateDocument(i);}else{f.unlock(v.oLockObject);return Promise.reject(new Error("Save is only allowed for draft or sticky session supported services"));}return S.then(function(x){var N=v.sProgrammingModel===p.Sticky?v._bCreateMode:!i.getObject().HasActiveEntity;M.show(N?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_CREATED",r):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_SAVED",r));v._bIsModified=false;return u.showMessageDialog().then(function(){return x;});}).catch(function(x){if(t&&t.length>0){t.forEach(function(y){if(!e.hasTransientContext(y)&&E){var z=v._getAppComponent();z.getSideEffectsService().requestSideEffectsForNavigationProperty(y.getPath(),i);}});}return u.showMessages().then(function(){return Promise.reject(x);});}).finally(function(){f.unlock(v.oLockObject);});},callAction:function(r,t,v,u){t=q(t);var w=this,x,y,z,N,E=t.bindingParameters;if(!r){return Promise.reject("Provide name of action to be executed");}N=r.split("/")[1];r=N||r;x=N?undefined:t.contexts;if(x&&((Array.isArray(x)&&x.length)||!Array.isArray(x))){x=Array.isArray(x)?x[0]:x;y=x.getModel();}if(t.model){y=t.model;}if(!y){return Promise.reject("Pass a context for a bound action or pass the model for an unbound action");}var G=w._getAppComponent();var S=G.getSideEffectsService().getODataActionSideEffects(r,x)||{};if(x&&y){z=new Promise(function(H,I){var K;var O={onClose:function(){K.close();H();},onContinue:function(){K.close();H(t.applicableContext);}};var Q=function(){var _,a1=t.notApplicableContext.length,b1=[];for(var i=0;i<t.notApplicableContext.length;i++){_=t.notApplicableContext[i].getObject();b1.push(_);}var c1=new J(b1);var d1=new J({total:a1,label:t.label});K.setModel(c1,"notApplicable");K.setModel(d1,"totals");K.open();};if(t.notApplicableContext&&t.notApplicableContext.length>=1){var R="sap.fe.core.controls.ActionPartial";var U=g.loadTemplate(R,"fragment");var W=y.getMetaModel();var Y=t.contexts[0].getCanonicalPath();var Z=Y.substr(0,Y.indexOf("("))+"/";var $=new J({title:t.label});Promise.resolve(X.process(U,{name:R},{bindingContexts:{entityType:W.createBindingContext(Z),label:$.createBindingContext("/")},models:{entityType:W,metaModel:W,label:$}})).then(function(i){return F.load({definition:i,controller:O});}).then(function(i){K=i;t.parentControl.addDependent(i);Q();}).catch(I);}else{H(t.contexts);}}).then(function(i){if(i){return o.callBoundAction(r,i,y,G,{invocationGrouping:t.invocationGrouping,label:t.label,showActionParameterDialog:true,mBindingParameters:E,entitySetName:t.entitySetName,additionalSideEffect:S,onSubmitted:function(){u.removeTransitionMessages();f.lock(w.oLockObject);},onResponse:function(){f.unlock(w.oLockObject);},parentControl:t.parentControl,internalModelContext:t.internalModelContext,operationAvailableMap:t.operationAvailableMap,bIsCreateAction:t.bIsCreateAction,bGetBoundContext:t.bGetBoundContext,bObjectPage:t.bObjectPage,messageHandler:u,defaultValuesExtensionFunction:t.defaultValuesExtensionFunction});}else{return null;}});}else{z=o.callActionImport(r,y,G,{label:t.label,showActionParameterDialog:true,bindingParameters:E,entitySetName:t.entitySetName,onSubmitted:function(){f.lock(w.oLockObject);},onResponse:function(){f.unlock(w.oLockObject);},parentControl:t.parentControl,internalModelContext:t.internalModelContext,operationAvailableMap:t.operationAvailableMap,messageHandler:u,bObjectPage:t.bObjectPage});}return z.then(function(R){return w._handleActionResponse(u,t,r).then(function(){return R;});}).catch(function(i){return w._handleActionResponse(u,t,r).then(function(){return Promise.reject(i);});});},_handleActionResponse:function(i,r,t){var u=m.getMessages(true,true);if(u.length>0&&r&&r.internalModelContext){r.internalModelContext.setProperty("sActionName",r.label?r.label:t);}return i.showMessages();},handleValidationError:function(){var i=sap.ui.getCore().getMessageManager(),r=i.getMessageModel().getData().filter(function(t){if(t.validation){return t;}});i.removeMessages(r);},_showDiscardPopover:function(i,I,r){var t=this;t._bContinueDiscard=false;return new Promise(function(u,v){if(!i){v("Cancel button not found");}if(I){var O=function(){i.setEnabled(true);if(t._bContinueDiscard){u();}else{v("Discard operation was rejected. Document has not been discarded");}t._oPopover.detachAfterClose(O);};if(!t._oPopover){var w=new T({text:e.getTranslatedText("C_TRANSACTION_HELPER_DRAFT_DISCARD_MESSAGE",r)}),x=new a({text:e.getTranslatedText("C_TRANSACTION_HELPER_DRAFT_DISCARD_BUTTON",r),width:"100%",press:function(){t.handleValidationError();t._bContinueDiscard=true;t._oPopover.close();},ariaLabelledBy:w});t._oPopover=new P({showHeader:false,placement:"Top",content:[new V({items:[w,x]})],beforeOpen:function(){i.setEnabled(false);t._oPopover.setInitialFocus(x);}});t._oPopover.addStyleClass("sapUiContentPadding");}t._oPopover.attachAfterClose(O);t._oPopover.openBy(i);}else{t.handleValidationError();u();}});},handleDocumentModifications:function(){this._bIsModified=true;},_getAppComponent:function(){return this._oAppComponent;},_launchDialogWithKeyFields:function(r,t,u,v,w,x,y){var z=this,E,G=x.parentControl,S=false;return new Promise(function(H,I){var K="sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog";var N=g.loadTemplate(K,"fragment"),R=G.getController().oResourceBundle,O=w.getMetaModel(),Q=[],U=z._getAppComponent(),W=O.createBindingContext(r.getPath()),Y=O.getMetaPath(r.getPath());for(var i in v){Q.push(O.createBindingContext(Y+"/"+v[i]));}var Z=new J(Q);Z=Z.createBindingContext("/");return Promise.resolve(X.process(N,{name:K},{bindingContexts:{entitySet:W,fields:Z},models:{entitySet:W.getModel(),fields:Z.getModel(),metaModel:O}})).then(function(N){var $=[],_={},a1,b1=function(){return Promise.all($.map(function(d1){return d1.getFields()[0];}).filter(function(d1){return d1.getRequired();}).map(function(d1){var e1=d1.getId();if(e1 in _){return Promise.resolve(_[e1]).then(function(f1){return f1;}).catch(function(){return undefined;});}return d1.getValueState()===l.Error?undefined:d1.getValue();})).then(function(d1){return d1.every(function(e1){return e1!==undefined&&e1!==null&&e1!=="";});}).catch(function(){return false;}).then(function(d1){a1.setEnabled(d1);});},c1={handleChange:function(d1){y.removeTransitionMessages();var e1=d1.getSource();var f1=d1.getParameter("id");var g1=d1.getParameter("promise");if(g1){_[f1]=g1.then(function(){return e1.getValue();});}b1();},handleLiveChange:function(d1){var e1=d1.getParameter("id");var f1=d1.getParameter("value");_[e1]=f1;b1();}};return F.load({definition:N,controller:c1}).then(function(d1){E=new D({title:e.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE",R),content:[d1],beginButton:{text:e.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE_BUTTON",R),type:"Emphasized",press:function(e1){var a1=e1.getSource();a1.setEnabled(false);f.lock(E);return Promise.all(Object.keys(_).map(function(f1){return _[f1];})).then(function(){var f1=z.onAfterCreateCompletion(t,u,x,R);w.submitBatch("submitLater");return f1;}).then(function(f1){E.setBindingContext(null);E.close();H(f1);}).finally(function(){f.unlock(E);a1.setEnabled(true);return y.showMessages();});}},endButton:{text:e.getTranslatedText("C_COMMON_ACTION_PARAMETER_DIALOG_CANCEL",R),press:function(){E.close();}},afterClose:function(){E.getBindingContext("internal").setProperty("isCreateDialogOpen",false);E.destroy();if(!S){I({bDeleteTransientContext:true});}}});$=d1.getAggregation("form").getAggregation("formContainers")[0].getAggregation("formElements");if(G&&G.addDependent){G.addDependent(E);}a1=E.getBeginButton();E.setBindingContext(u);return e.setUserDefaults(U,Q,u,undefined,x.createAction,x.data).then(function(){b1();E.getBindingContext("internal").setProperty("isCreateDialogOpen",true);E.open();}).catch(function(e1){return y.showMessages().then(function(){return Promise.reject(e1);});});});});});},onAfterCreateCompletion:function(i,N,r,R){var t,u,v=new Promise(function(x,y){t=x;u=y;});var w=function(E){var x=E.getParameter("context"),S=E.getParameter("success");if(x===N){i.detachCreateCompleted(w,this);if(!S){var y={bDeleteTransientContext:false};if(!r.keepTransientContextOnFailed){y.bDeleteTransientContext=true;x.created().then(undefined,function(){L.trace("transient creation context deleted");}).catch(function(y){L.trace("transient creation context deletion error",y);});y.navigateBackFromTransientState=true;}u(y);}else{t();}}};i.attachCreateCompleted(w,this);return v;},_getNewAction:function(S,i,r,t){var N;if(S&&S.preferredMode&&i.indexOf("i-action=createWith")>-1){var u=S.preferredMode[0];N=u.indexOf("createWith:")>-1?u.substr(u.lastIndexOf(":")+1):undefined;}else{N=r&&r.getObject!==undefined?r.getObject(t+"@com.sap.vocabularies.Session.v1.StickySessionSupported/NewAction")||r.getObject(t+"@com.sap.vocabularies.Common.v1.DraftRoot/NewAction"):undefined;}return N;}});});
|