@sapui5/sap.fe.core 1.99.0 → 1.100.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 +4 -2
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +1 -69
- package/src/sap/fe/core/AnnotationHelper.ts +0 -70
- package/src/sap/fe/core/AppComponent.js +388 -399
- package/src/sap/fe/core/AppComponent.ts +403 -0
- package/src/sap/fe/core/AppStateHandler.js +127 -158
- package/src/sap/fe/core/BaseController.js +82 -58
- package/src/sap/fe/core/BaseController.ts +68 -0
- package/src/sap/fe/core/CommonUtils.js +111 -20
- package/src/sap/fe/core/CommonUtils.ts +131 -32
- package/src/sap/fe/core/ExtensionAPI.js +278 -274
- package/src/sap/fe/core/ExtensionAPI.ts +250 -0
- package/src/sap/fe/core/PageController.js +157 -29
- package/src/sap/fe/core/PageController.ts +60 -32
- package/src/sap/fe/core/RouterProxy.js +694 -756
- package/src/sap/fe/core/RouterProxy.ts +11 -9
- package/src/sap/fe/core/Synchronization.js +21 -31
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +10 -3
- package/src/sap/fe/core/TemplateModel.js +20 -38
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/TransactionHelper.js +1354 -1370
- package/src/sap/fe/core/TransactionHelper.ts +33 -22
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
- package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
- package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
- package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
- package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
- package/src/sap/fe/core/actions/draft.js +30 -68
- package/src/sap/fe/core/actions/draft.ts +44 -71
- package/src/sap/fe/core/actions/messageHandling.js +55 -36
- package/src/sap/fe/core/actions/messageHandling.ts +66 -46
- package/src/sap/fe/core/actions/operations.js +34 -15
- package/src/sap/fe/core/actions/operations.ts +48 -18
- package/src/sap/fe/core/actions/sticky.js +17 -4
- package/src/sap/fe/core/actions/sticky.ts +21 -4
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +69 -66
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1593 -1669
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +79 -54
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +718 -779
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +796 -816
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1004 -1005
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +487 -521
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
- package/src/sap/fe/core/controllerextensions/MassEdit.js +141 -169
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +233 -244
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
- package/src/sap/fe/core/controllerextensions/PageReady.js +301 -336
- package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
- package/src/sap/fe/core/controllerextensions/Paginator.js +188 -175
- package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +157 -149
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +144 -125
- package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +7 -6
- package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
- package/src/sap/fe/core/controllerextensions/Share.js +230 -268
- package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.js +592 -633
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
- package/src/sap/fe/core/controllerextensions/ViewState.js +788 -806
- package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
- package/src/sap/fe/core/controls/CommandExecution.js +67 -66
- package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
- package/src/sap/fe/core/controls/ConditionalWrapper.js +90 -75
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +130 -125
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +103 -112
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
- package/src/sap/fe/core/controls/FieldWrapper.js +122 -135
- package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
- package/src/sap/fe/core/controls/FilterBar.js +162 -159
- package/src/sap/fe/core/controls/FilterBar.ts +143 -0
- package/src/sap/fe/core/controls/FormElementWrapper.js +45 -39
- package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +37 -42
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +126 -116
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +241 -255
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +150 -141
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +335 -322
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +74 -74
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
- package/src/sap/fe/core/converters/ConverterContext.js +348 -379
- package/src/sap/fe/core/converters/ConverterContext.ts +19 -16
- package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +354 -378
- package/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +6 -4
- package/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +26 -12
- package/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
- package/src/sap/fe/core/converters/controls/Common/Form.js +2 -2
- package/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +130 -23
- package/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +118 -53
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +161 -207
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
- package/src/sap/fe/core/converters/helpers/Aggregation.js +115 -133
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
- package/src/sap/fe/core/converters/helpers/Key.js +42 -57
- package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +25 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +10 -4
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +92 -98
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +53 -2
- package/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
- package/src/sap/fe/core/fpm/Component.js +50 -54
- package/src/sap/fe/core/fpm/Component.ts +48 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.js +323 -309
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
- package/src/sap/fe/core/helpers/BindingExpression.js +7 -7
- package/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
- package/src/sap/fe/core/helpers/ClassSupport.js +186 -62
- package/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +5 -4
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js +601 -684
- package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +25 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +5 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
- package/src/sap/fe/core/library.js +426 -451
- package/src/sap/fe/core/library.support.js +22 -33
- package/src/sap/fe/core/library.support.ts +23 -0
- package/src/sap/fe/core/library.ts +420 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
- package/src/sap/fe/core/messagebundle.properties +22 -5
- package/src/sap/fe/core/messagebundle_ar.properties +27 -7
- package/src/sap/fe/core/messagebundle_bg.properties +27 -7
- package/src/sap/fe/core/messagebundle_ca.properties +27 -7
- package/src/sap/fe/core/messagebundle_cs.properties +27 -7
- package/src/sap/fe/core/messagebundle_cy.properties +27 -7
- package/src/sap/fe/core/messagebundle_da.properties +27 -7
- package/src/sap/fe/core/messagebundle_de.properties +27 -7
- package/src/sap/fe/core/messagebundle_el.properties +27 -7
- package/src/sap/fe/core/messagebundle_en.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
- package/src/sap/fe/core/messagebundle_es.properties +27 -7
- package/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
- package/src/sap/fe/core/messagebundle_et.properties +27 -7
- package/src/sap/fe/core/messagebundle_fi.properties +28 -8
- package/src/sap/fe/core/messagebundle_fr.properties +28 -8
- package/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
- package/src/sap/fe/core/messagebundle_hi.properties +27 -7
- package/src/sap/fe/core/messagebundle_hr.properties +27 -7
- package/src/sap/fe/core/messagebundle_hu.properties +27 -7
- package/src/sap/fe/core/messagebundle_id.properties +27 -7
- package/src/sap/fe/core/messagebundle_it.properties +27 -7
- package/src/sap/fe/core/messagebundle_iw.properties +27 -7
- package/src/sap/fe/core/messagebundle_ja.properties +26 -6
- package/src/sap/fe/core/messagebundle_kk.properties +27 -7
- package/src/sap/fe/core/messagebundle_ko.properties +27 -7
- package/src/sap/fe/core/messagebundle_lt.properties +27 -7
- package/src/sap/fe/core/messagebundle_lv.properties +28 -8
- package/src/sap/fe/core/messagebundle_ms.properties +27 -7
- package/src/sap/fe/core/messagebundle_nl.properties +27 -7
- package/src/sap/fe/core/messagebundle_no.properties +27 -7
- package/src/sap/fe/core/messagebundle_pl.properties +27 -7
- package/src/sap/fe/core/messagebundle_pt.properties +28 -8
- package/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
- package/src/sap/fe/core/messagebundle_ro.properties +27 -7
- package/src/sap/fe/core/messagebundle_ru.properties +27 -7
- package/src/sap/fe/core/messagebundle_sh.properties +27 -7
- package/src/sap/fe/core/messagebundle_sk.properties +27 -7
- package/src/sap/fe/core/messagebundle_sl.properties +27 -7
- package/src/sap/fe/core/messagebundle_sv.properties +27 -7
- package/src/sap/fe/core/messagebundle_th.properties +26 -6
- package/src/sap/fe/core/messagebundle_tr.properties +30 -10
- package/src/sap/fe/core/messagebundle_uk.properties +27 -7
- package/src/sap/fe/core/messagebundle_vi.properties +27 -7
- package/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
- package/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +154 -192
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +66 -92
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +284 -339
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +67 -102
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +754 -814
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
- package/src/sap/fe/core/services/ShellServicesFactory.js +649 -736
- package/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +567 -592
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +354 -386
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +36 -48
- package/src/sap/fe/core/templating/DataModelPathHelper.js +93 -85
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
- package/src/sap/fe/core/templating/FilterHelper.js +25 -32
- package/src/sap/fe/core/templating/FilterHelper.ts +36 -35
- package/src/sap/fe/core/templating/PropertyHelper.js +2 -2
- package/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +32 -26
- package/src/sap/fe/core/templating/UIFormatters.ts +37 -24
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import UIComponent from "sap/ui/core/UIComponent";
|
|
2
|
+
import RouterProxy from "sap/fe/core/RouterProxy";
|
|
3
|
+
import AppStateHandler from "sap/fe/core/AppStateHandler";
|
|
4
|
+
import Log from "sap/base/Log";
|
|
5
|
+
import Diagnostics from "sap/fe/core/support/Diagnostics";
|
|
6
|
+
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
7
|
+
import library from "sap/fe/core/library";
|
|
8
|
+
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
9
|
+
import ValueListHelper from "sap/fe/macros/internal/valuehelp/ValueListHelper";
|
|
10
|
+
import { UI5Class } from "sap/fe/core/helpers/ClassSupport";
|
|
11
|
+
import ComponentMetadata from "sap/ui/core/ComponentMetadata";
|
|
12
|
+
import View from "sap/ui/core/mvc/View";
|
|
13
|
+
import ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
14
|
+
import ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
15
|
+
import BaseController from "./BaseController";
|
|
16
|
+
import { deleteModelCacheData } from "./converters/MetaModelConverter";
|
|
17
|
+
import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
18
|
+
import { RoutingService } from "sap/fe/core/services/RoutingServiceFactory";
|
|
19
|
+
import { IShellServices } from "sap/fe/core/services/ShellServicesFactory";
|
|
20
|
+
import { NavigationService } from "sap/fe/core/services/NavigationServiceFactory";
|
|
21
|
+
import { SideEffectsService } from "sap/fe/core/services/SideEffectsServiceFactory";
|
|
22
|
+
import { EnvironmentCapabilitiesService } from "sap/fe/core/services/EnvironmentServiceFactory";
|
|
23
|
+
|
|
24
|
+
const NAVCONF = {
|
|
25
|
+
FCL: {
|
|
26
|
+
VIEWNAME: "sap.fe.templates.RootContainer.view.Fcl",
|
|
27
|
+
ROUTERCLASS: "sap.f.routing.Router"
|
|
28
|
+
},
|
|
29
|
+
NAVCONTAINER: {
|
|
30
|
+
VIEWNAME: "sap.fe.templates.RootContainer.view.NavContainer",
|
|
31
|
+
ROUTERCLASS: "sap.m.routing.Router"
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Main class for components used for an application in SAP Fiori elements.
|
|
37
|
+
*
|
|
38
|
+
* Application developers using the templates and building blocks provided by SAP Fiori elements should create their apps by extending this component.
|
|
39
|
+
* This ensures that all the necessary services that you need for the building blocks and templates to work properly are started.
|
|
40
|
+
*
|
|
41
|
+
* When you use sap.fe.core.AppComponent as the base component, you also need to use a rootView. SAP Fiori elements provides two options: <br/>
|
|
42
|
+
* - sap.fe.templates.RootContainer.view.NavContainer when using sap.m.routing.Router <br/>
|
|
43
|
+
* - sap.fe.templates.RootContainer.view.Fcl when using sap.f.routing.Router (FCL use case) <br/>
|
|
44
|
+
*
|
|
45
|
+
* @hideconstructor
|
|
46
|
+
* @public
|
|
47
|
+
* @name sap.fe.core.AppComponent
|
|
48
|
+
*/
|
|
49
|
+
@UI5Class("sap.fe.core.AppComponent", ComponentMetadata, {
|
|
50
|
+
interfaces: ["sap.ui.core.IAsyncContentCreation"],
|
|
51
|
+
config: {
|
|
52
|
+
fullWidth: true
|
|
53
|
+
},
|
|
54
|
+
manifest: {
|
|
55
|
+
"sap.ui5": {
|
|
56
|
+
services: {
|
|
57
|
+
resourceModel: {
|
|
58
|
+
factoryName: "sap.fe.core.services.ResourceModelService",
|
|
59
|
+
"startup": "waitFor",
|
|
60
|
+
"settings": {
|
|
61
|
+
"bundles": ["sap.fe.core.messagebundle"],
|
|
62
|
+
"modelName": "sap.fe.i18n"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
routingService: {
|
|
66
|
+
factoryName: "sap.fe.core.services.RoutingService",
|
|
67
|
+
startup: "waitFor"
|
|
68
|
+
},
|
|
69
|
+
shellServices: {
|
|
70
|
+
factoryName: "sap.fe.core.services.ShellServices",
|
|
71
|
+
startup: "waitFor"
|
|
72
|
+
},
|
|
73
|
+
ShellUIService: {
|
|
74
|
+
factoryName: "sap.ushell.ui5service.ShellUIService"
|
|
75
|
+
},
|
|
76
|
+
navigationService: {
|
|
77
|
+
factoryName: "sap.fe.core.services.NavigationService",
|
|
78
|
+
startup: "waitFor"
|
|
79
|
+
},
|
|
80
|
+
environmentCapabilities: {
|
|
81
|
+
factoryName: "sap.fe.core.services.EnvironmentService",
|
|
82
|
+
startup: "waitFor"
|
|
83
|
+
},
|
|
84
|
+
sideEffectsService: {
|
|
85
|
+
factoryName: "sap.fe.core.services.SideEffectsService",
|
|
86
|
+
startup: "waitFor"
|
|
87
|
+
},
|
|
88
|
+
asyncComponentService: {
|
|
89
|
+
factoryName: "sap.fe.core.services.AsyncComponentService",
|
|
90
|
+
startup: "waitFor"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
rootView: {
|
|
94
|
+
viewName: NAVCONF.NAVCONTAINER.VIEWNAME,
|
|
95
|
+
type: "XML",
|
|
96
|
+
async: true,
|
|
97
|
+
id: "appRootView"
|
|
98
|
+
},
|
|
99
|
+
routing: {
|
|
100
|
+
config: {
|
|
101
|
+
controlId: "appContent",
|
|
102
|
+
routerClass: NAVCONF.NAVCONTAINER.ROUTERCLASS,
|
|
103
|
+
viewType: "XML",
|
|
104
|
+
controlAggregation: "pages",
|
|
105
|
+
async: true,
|
|
106
|
+
containerOptions: {
|
|
107
|
+
propagateModel: true
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
designtime: "sap/fe/core/designtime/AppComponent.designtime",
|
|
114
|
+
|
|
115
|
+
library: "sap.fe.core"
|
|
116
|
+
})
|
|
117
|
+
class AppComponent extends UIComponent {
|
|
118
|
+
static instanceMap: Record<string, AppComponent> = {};
|
|
119
|
+
private _oRouterProxy!: RouterProxy;
|
|
120
|
+
private _oAppStateHandler!: AppStateHandler;
|
|
121
|
+
private bInitializeRouting?: boolean;
|
|
122
|
+
private _oDiagnostics!: Diagnostics;
|
|
123
|
+
private entityContainer: any;
|
|
124
|
+
/**
|
|
125
|
+
* @private
|
|
126
|
+
* @name sap.fe.core.AppComponent.getMetadata
|
|
127
|
+
* @function
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
_isFclEnabled() {
|
|
131
|
+
const oManifestUI5 = this.getMetadata().getManifestEntry("/sap.ui5", true);
|
|
132
|
+
return NAVCONF.FCL.VIEWNAME === oManifestUI5.rootView.viewName;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Get a reference to the RouterProxy.
|
|
137
|
+
*
|
|
138
|
+
* @function
|
|
139
|
+
* @name sap.fe.core.AppComponent#getRouterProxy
|
|
140
|
+
* @memberof sap.fe.core.AppComponent
|
|
141
|
+
* @returns {oObject} A Reference to the RouterProxy
|
|
142
|
+
*
|
|
143
|
+
* @ui5-restricted
|
|
144
|
+
* @final
|
|
145
|
+
*/
|
|
146
|
+
getRouterProxy(): RouterProxy {
|
|
147
|
+
return this._oRouterProxy;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Get a reference to the AppStateHandler.
|
|
152
|
+
*
|
|
153
|
+
* @function
|
|
154
|
+
* @name sap.fe.core.AppComponent#getAppStateHandler
|
|
155
|
+
* @memberof sap.fe.core.AppComponent
|
|
156
|
+
* @returns {oObject} A reference to the AppStateHandler
|
|
157
|
+
*
|
|
158
|
+
* @ui5-restricted
|
|
159
|
+
* @final
|
|
160
|
+
*/
|
|
161
|
+
getAppStateHandler() {
|
|
162
|
+
return this._oAppStateHandler;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Get a reference to the nav/FCL Controller.
|
|
167
|
+
*
|
|
168
|
+
* @function
|
|
169
|
+
* @name sap.fe.core.AppComponent#getRootViewController
|
|
170
|
+
* @memberof sap.fe.core.AppComponent
|
|
171
|
+
* @returns {oObject} A reference to the FCL Controller
|
|
172
|
+
*
|
|
173
|
+
* @ui5-restricted
|
|
174
|
+
* @final
|
|
175
|
+
*/
|
|
176
|
+
getRootViewController(): BaseController {
|
|
177
|
+
return (this.getRootControl() as View).getController() as BaseController;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Get the NavContainer control or the FCL control.
|
|
182
|
+
*
|
|
183
|
+
* @function
|
|
184
|
+
* @name sap.fe.core.AppComponent#getRootContainer
|
|
185
|
+
* @memberof sap.fe.core.AppComponent
|
|
186
|
+
* @returns {oObject} A reference to NavContainer control or the FCL control
|
|
187
|
+
*
|
|
188
|
+
* @ui5-restricted
|
|
189
|
+
* @final
|
|
190
|
+
*/
|
|
191
|
+
getRootContainer() {
|
|
192
|
+
return (this.getRootControl() as View).getContent()[0];
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
init(...args: any[]) {
|
|
196
|
+
this.setModel(
|
|
197
|
+
new JSONModel({
|
|
198
|
+
editMode: library.EditMode.Display,
|
|
199
|
+
isEditable: false,
|
|
200
|
+
draftStatus: library.DraftStatus.Clear,
|
|
201
|
+
busy: false,
|
|
202
|
+
busyLocal: {},
|
|
203
|
+
pages: {}
|
|
204
|
+
}),
|
|
205
|
+
"ui"
|
|
206
|
+
);
|
|
207
|
+
|
|
208
|
+
const oInternalModel = new JSONModel({
|
|
209
|
+
pages: {}
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
ModelHelper.enhanceInternalJSONModel(oInternalModel);
|
|
213
|
+
|
|
214
|
+
this.setModel(oInternalModel, "internal");
|
|
215
|
+
|
|
216
|
+
this.bInitializeRouting = this.bInitializeRouting !== undefined ? this.bInitializeRouting : true;
|
|
217
|
+
this._oRouterProxy = new RouterProxy();
|
|
218
|
+
this._oAppStateHandler = new AppStateHandler(this);
|
|
219
|
+
this._oDiagnostics = new Diagnostics();
|
|
220
|
+
const oModel = this.getModel() as ODataModel;
|
|
221
|
+
if (oModel) {
|
|
222
|
+
this.entityContainer = oModel.getMetaModel().requestObject("/$EntityContainer/");
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const oManifestUI5 = this.getMetadata().getManifestEntry("/sap.ui5", true);
|
|
226
|
+
if (
|
|
227
|
+
oManifestUI5.rootView.viewName === NAVCONF.FCL.VIEWNAME &&
|
|
228
|
+
oManifestUI5.routing.config.routerClass === NAVCONF.FCL.ROUTERCLASS
|
|
229
|
+
) {
|
|
230
|
+
Log.info('Rootcontainer: "' + NAVCONF.FCL.VIEWNAME + '" - Routerclass: "' + NAVCONF.FCL.ROUTERCLASS + '"');
|
|
231
|
+
} else if (
|
|
232
|
+
oManifestUI5.rootView.viewName === NAVCONF.NAVCONTAINER.VIEWNAME &&
|
|
233
|
+
oManifestUI5.routing.config.routerClass === NAVCONF.NAVCONTAINER.ROUTERCLASS
|
|
234
|
+
) {
|
|
235
|
+
Log.info('Rootcontainer: "' + NAVCONF.NAVCONTAINER.VIEWNAME + '" - Routerclass: "' + NAVCONF.NAVCONTAINER.ROUTERCLASS + '"');
|
|
236
|
+
} else if (oManifestUI5.rootView.viewName.indexOf("sap.fe") !== -1) {
|
|
237
|
+
throw Error(
|
|
238
|
+
"\nWrong configuration for the couple (rootView/routerClass) in manifest file.\n" +
|
|
239
|
+
"Current values are :(" +
|
|
240
|
+
oManifestUI5.rootView.viewName +
|
|
241
|
+
"/" +
|
|
242
|
+
oManifestUI5.routing.config.routerClass +
|
|
243
|
+
")\n" +
|
|
244
|
+
"Expected values are \n" +
|
|
245
|
+
"\t - (" +
|
|
246
|
+
NAVCONF.NAVCONTAINER.VIEWNAME +
|
|
247
|
+
"/" +
|
|
248
|
+
NAVCONF.NAVCONTAINER.ROUTERCLASS +
|
|
249
|
+
")\n" +
|
|
250
|
+
"\t - (" +
|
|
251
|
+
NAVCONF.FCL.VIEWNAME +
|
|
252
|
+
"/" +
|
|
253
|
+
NAVCONF.FCL.ROUTERCLASS +
|
|
254
|
+
")"
|
|
255
|
+
);
|
|
256
|
+
} else {
|
|
257
|
+
Log.info('Rootcontainer: "' + oManifestUI5.rootView.viewName + '" - Routerclass: "' + NAVCONF.NAVCONTAINER.ROUTERCLASS + '"');
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Adding Semantic Date Operators
|
|
261
|
+
// Commenting since it is not needed for SingleRange
|
|
262
|
+
// SemanticDateOperators.addSemanticDateOperators();
|
|
263
|
+
|
|
264
|
+
// the init function configures the routing according to the settings above
|
|
265
|
+
// it will call the createContent function to instantiate the RootView and add it to the UIComponent aggregations
|
|
266
|
+
|
|
267
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
268
|
+
// @ts-ignore
|
|
269
|
+
UIComponent.prototype.init.apply(this, args);
|
|
270
|
+
AppComponent.instanceMap[this.getId()] = this;
|
|
271
|
+
}
|
|
272
|
+
onServicesStarted() {
|
|
273
|
+
//router must be started once the rootcontainer is initialized
|
|
274
|
+
//starting of the router
|
|
275
|
+
const finalizedRoutingInitialization = () => {
|
|
276
|
+
this.entityContainer
|
|
277
|
+
.then(() => {
|
|
278
|
+
if ((this.getRootViewController() as any).attachRouteMatchers) {
|
|
279
|
+
(this.getRootViewController() as any).attachRouteMatchers();
|
|
280
|
+
}
|
|
281
|
+
this.getRouter().initialize();
|
|
282
|
+
this.getRouterProxy().init(this, this._isFclEnabled());
|
|
283
|
+
})
|
|
284
|
+
.catch((error: any) => {
|
|
285
|
+
const oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
|
|
286
|
+
|
|
287
|
+
(this.getRootViewController() as any).displayMessagePage(
|
|
288
|
+
oResourceBundle.getText("C_APP_COMPONENT_SAPFE_APPSTART_TECHNICAL_ISSUES"),
|
|
289
|
+
{
|
|
290
|
+
title: oResourceBundle.getText("C_COMMON_SAPFE_ERROR"),
|
|
291
|
+
description: error.message,
|
|
292
|
+
FCLLevel: 0
|
|
293
|
+
}
|
|
294
|
+
);
|
|
295
|
+
});
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
if (this.bInitializeRouting) {
|
|
299
|
+
return this.getRoutingService()
|
|
300
|
+
.initializeRouting()
|
|
301
|
+
.then(() => {
|
|
302
|
+
if (this.getRootViewController()) {
|
|
303
|
+
return finalizedRoutingInitialization();
|
|
304
|
+
} else {
|
|
305
|
+
(this.getRootControl() as any).attachAfterInit(function() {
|
|
306
|
+
finalizedRoutingInitialization();
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
})
|
|
310
|
+
.catch(function(err: any) {
|
|
311
|
+
Log.error("cannot cannot initialize routing: " + err);
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
exit() {
|
|
316
|
+
this._oAppStateHandler.destroy();
|
|
317
|
+
this._oRouterProxy.destroy();
|
|
318
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
319
|
+
// @ts-ignore
|
|
320
|
+
delete this._oAppStateHandler;
|
|
321
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
322
|
+
// @ts-ignore
|
|
323
|
+
delete this._oRouterProxy;
|
|
324
|
+
deleteModelCacheData(this.getMetaModel());
|
|
325
|
+
this.getModel("ui").destroy();
|
|
326
|
+
}
|
|
327
|
+
getMetaModel(): ODataMetaModel {
|
|
328
|
+
return this.getModel().getMetaModel() as ODataMetaModel;
|
|
329
|
+
}
|
|
330
|
+
getDiagnostics() {
|
|
331
|
+
return this._oDiagnostics;
|
|
332
|
+
}
|
|
333
|
+
destroy(...args: any[]) {
|
|
334
|
+
// LEAKS, with workaround for some Flex / MDC issue
|
|
335
|
+
try {
|
|
336
|
+
// // This one is only a leak if you don't go back to the same component in the long run
|
|
337
|
+
//delete sap.ui.fl.FlexControllerFactory._componentInstantiationPromises[this.getId()];
|
|
338
|
+
|
|
339
|
+
ValueListHelper.initializeCachedValueHelp();
|
|
340
|
+
|
|
341
|
+
delete AppComponent.instanceMap[this.getId()];
|
|
342
|
+
|
|
343
|
+
// var oRegistry = sap.ui.mdc.p13n.Engine.getInstance()._getRegistry();
|
|
344
|
+
// Object.keys(oRegistry).forEach(function(sKey) {
|
|
345
|
+
// Object.keys(oRegistry[sKey].controller).forEach(function(sControllerKey) {
|
|
346
|
+
// oRegistry[sKey].controller[sControllerKey].destroy();
|
|
347
|
+
// });
|
|
348
|
+
// });
|
|
349
|
+
// sap.ui.mdc.p13n.Engine.getInstance().destroy();
|
|
350
|
+
delete (window as any)._routing;
|
|
351
|
+
} catch (e) {
|
|
352
|
+
Log.info(e);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
//WORKAROUND for sticky discard request : due to async callback, request triggered by the exitApplication will be send after the UIComponent.prototype.destroy
|
|
356
|
+
//so we need to copy the Requestor headers as it will be destroy
|
|
357
|
+
|
|
358
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
359
|
+
// @ts-ignore
|
|
360
|
+
const oMainModel = (this as any).oModels[undefined];
|
|
361
|
+
const oHeaders = jQuery.extend({}, oMainModel.oRequestor.mHeaders);
|
|
362
|
+
// As we need to cleanup the application / handle the dirty object we need to call our cleanup before the models are destroyed
|
|
363
|
+
this.getRoutingService().beforeExit();
|
|
364
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
365
|
+
// @ts-ignore
|
|
366
|
+
UIComponent.prototype.destroy.apply(this, [args]);
|
|
367
|
+
oMainModel.oRequestor.mHeaders = oHeaders;
|
|
368
|
+
}
|
|
369
|
+
getComponentData(): any {
|
|
370
|
+
return super.getComponentData();
|
|
371
|
+
}
|
|
372
|
+
getRoutingService(): RoutingService {
|
|
373
|
+
return {} as RoutingService; // overriden at runtime
|
|
374
|
+
}
|
|
375
|
+
getShellServices(): IShellServices {
|
|
376
|
+
return {} as IShellServices; // overriden at runtime
|
|
377
|
+
}
|
|
378
|
+
getNavigationService(): NavigationService {
|
|
379
|
+
return {} as NavigationService; // overriden at runtime
|
|
380
|
+
}
|
|
381
|
+
getSideEffectsService(): SideEffectsService {
|
|
382
|
+
return {} as SideEffectsService;
|
|
383
|
+
}
|
|
384
|
+
getEnvironmentCapabilities(): EnvironmentCapabilitiesService {
|
|
385
|
+
return {} as EnvironmentCapabilitiesService;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
getStartupParameters() {
|
|
389
|
+
const oComponentData = this.getComponentData() as any;
|
|
390
|
+
const oStartUpParameters = (oComponentData && oComponentData.startupParameters) || {};
|
|
391
|
+
return Promise.resolve(oStartUpParameters);
|
|
392
|
+
}
|
|
393
|
+
restore() {
|
|
394
|
+
// called by FLP when app sap-keep-alive is enabled and app is restored
|
|
395
|
+
(this.getRootViewController() as any).viewState.onRestore();
|
|
396
|
+
}
|
|
397
|
+
suspend() {
|
|
398
|
+
// called by FLP when app sap-keep-alive is enabled and app is suspended
|
|
399
|
+
(this.getRootViewController() as any).viewState.onSuspend();
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
export default AppComponent;
|