@sapui5/sap.fe.core 1.121.2 → 1.123.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +2 -2
- package/src/sap/fe/core/ActionRuntime.ts +1 -2
- package/src/sap/fe/core/CommonUtils.js +14 -171
- package/src/sap/fe/core/CommonUtils.ts +15 -221
- package/src/sap/fe/core/PageController.js +13 -1
- package/src/sap/fe/core/PageController.ts +16 -0
- package/src/sap/fe/core/TemplateComponent.js +6 -1
- package/src/sap/fe/core/TemplateComponent.ts +8 -0
- package/src/sap/fe/core/UIProvider.js +23 -0
- package/src/sap/fe/core/UIProvider.ts +38 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +97 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +120 -50
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +6 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +12 -18
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +2 -2
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +4 -3
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +1 -0
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +42 -1
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +40 -0
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +5 -2
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +5 -3
- package/src/sap/fe/core/controllerextensions/EditFlow.js +151 -60
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +165 -68
- package/src/sap/fe/core/controllerextensions/HookSupport.js +32 -14
- package/src/sap/fe/core/controllerextensions/HookSupport.ts +35 -14
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +5 -17
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -12
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +6 -6
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +15 -10
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +108 -287
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +117 -309
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -2
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +6 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +6 -6
- package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -4
- package/src/sap/fe/core/controllerextensions/Paginator.js +17 -110
- package/src/sap/fe/core/controllerextensions/Paginator.ts +13 -130
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -3
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +1 -2
- package/src/sap/fe/core/controllerextensions/Recommendations.js +36 -31
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +32 -37
- package/src/sap/fe/core/controllerextensions/Share.js +7 -7
- package/src/sap/fe/core/controllerextensions/Share.ts +6 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.js +52 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -4
- package/src/sap/fe/core/controllerextensions/ViewState.js +32 -46
- package/src/sap/fe/core/controllerextensions/ViewState.ts +24 -31
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +42 -31
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +168 -276
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +182 -310
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +4 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +3 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +74 -52
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +95 -55
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -17
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +10 -23
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +3 -3
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +2 -2
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +225 -0
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +241 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +69 -48
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +56 -33
- package/src/sap/fe/core/controls/FormElementWrapper.js +8 -11
- package/src/sap/fe/core/controls/FormElementWrapper.ts +9 -0
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +6 -14
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +12 -23
- package/src/sap/fe/core/converters/ConverterContext.js +17 -9
- package/src/sap/fe/core/converters/ConverterContext.ts +55 -41
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +19 -5
- package/src/sap/fe/core/converters/ManifestWrapper.js +14 -4
- package/src/sap/fe/core/converters/ManifestWrapper.ts +21 -10
- package/src/sap/fe/core/converters/MetaModelConverter.js +402 -383
- package/src/sap/fe/core/converters/MetaModelConverter.ts +538 -338
- package/src/sap/fe/core/converters/TemplateConverter.js +4 -2
- package/src/sap/fe/core/converters/TemplateConverter.ts +18 -13
- package/src/sap/fe/core/converters/annotations/DataField.js +30 -28
- package/src/sap/fe/core/converters/annotations/DataField.ts +58 -35
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +5 -4
- package/src/sap/fe/core/converters/controls/Common/Action.ts +34 -28
- package/src/sap/fe/core/converters/controls/Common/Chart.js +37 -33
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +64 -46
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -4
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +31 -15
- package/src/sap/fe/core/converters/controls/Common/Form.js +6 -4
- package/src/sap/fe/core/converters/controls/Common/Form.ts +23 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.js +5 -3
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +17 -11
- package/src/sap/fe/core/converters/controls/Common/Table.js +197 -101
- package/src/sap/fe/core/converters/controls/Common/Table.ts +393 -182
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +4 -5
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +38 -27
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +41 -11
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +112 -45
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +7 -7
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +18 -12
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +5 -4
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +19 -9
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +64 -63
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +109 -100
- package/src/sap/fe/core/converters/helpers/Aggregation.js +12 -11
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +35 -30
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +12 -9
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +1 -1
- package/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +6 -6
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +3 -3
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +11 -6
- package/src/sap/fe/core/converters/helpers/Key.js +2 -2
- package/src/sap/fe/core/converters/helpers/Key.ts +4 -4
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -2
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +21 -19
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +43 -31
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +16 -12
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +8 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +41 -21
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -3
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +24 -19
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +2 -1
- package/src/sap/fe/core/filter/DraftEditState.fragment.xml +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +4 -6
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +5 -4
- package/src/sap/fe/core/formatters/FPMFormatter.js +5 -13
- package/src/sap/fe/core/formatters/FPMFormatter.ts +11 -10
- package/src/sap/fe/core/formatters/FiscalFormat.js +1 -1
- package/src/sap/fe/core/formatters/FiscalFormat.ts +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.js +4 -7
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/StandardFormatter.js +4 -7
- package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/ValueFormatter.js +35 -6
- package/src/sap/fe/core/formatters/ValueFormatter.ts +31 -3
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +54 -33
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +62 -41
- package/src/sap/fe/core/helpers/BindingToolkit.js +17 -3
- package/src/sap/fe/core/helpers/BindingToolkit.ts +28 -6
- package/src/sap/fe/core/helpers/ClassSupport.js +32 -13
- package/src/sap/fe/core/helpers/ClassSupport.ts +35 -15
- package/src/sap/fe/core/helpers/DeleteHelper.js +71 -61
- package/src/sap/fe/core/helpers/DeleteHelper.ts +125 -103
- package/src/sap/fe/core/helpers/DraftEditState.js +5 -3
- package/src/sap/fe/core/helpers/DraftEditState.ts +3 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +43 -46
- package/src/sap/fe/core/helpers/FPMHelper.ts +50 -56
- package/src/sap/fe/core/helpers/MetaModelFunction.js +77 -53
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +78 -57
- package/src/sap/fe/core/helpers/ModelHelper.js +10 -4
- package/src/sap/fe/core/helpers/ModelHelper.ts +12 -6
- package/src/sap/fe/core/helpers/PasteHelper.js +194 -7
- package/src/sap/fe/core/helpers/PasteHelper.ts +265 -13
- package/src/sap/fe/core/helpers/PromiseKeeper.js +66 -0
- package/src/sap/fe/core/helpers/PromiseKeeper.ts +56 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +30 -19
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +34 -22
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -2
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +26 -52
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +37 -63
- package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
- package/src/sap/fe/core/helpers/TitleHelper.ts +17 -14
- package/src/sap/fe/core/helpers/TypeGuards.js +27 -3
- package/src/sap/fe/core/helpers/TypeGuards.ts +37 -7
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +48 -8
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +40 -9
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +5 -2
- package/src/sap/fe/core/messagebundle_da.properties +1 -1
- package/src/sap/fe/core/messagebundle_en.properties +267 -2
- package/src/sap/fe/core/messagebundle_sl.properties +1 -1
- package/src/sap/fe/core/operationsHelper.js +2 -1
- package/src/sap/fe/core/operationsHelper.ts +1 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +3 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +27 -14
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +27 -14
- package/src/sap/fe/core/services/ShellServicesFactory.js +49 -12
- package/src/sap/fe/core/services/ShellServicesFactory.ts +62 -13
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +156 -82
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +218 -100
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +3 -3
- package/src/sap/fe/core/services/TelemetryServiceFactory.ts +6 -6
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +3 -2
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +1 -1
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +6 -3
- package/src/sap/fe/core/templating/CommonFormatters.ts +13 -12
- package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +37 -14
- package/src/sap/fe/core/templating/DataFieldFormatters.js +12 -11
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +35 -24
- package/src/sap/fe/core/templating/DataModelPathHelper.js +22 -18
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +61 -51
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +8 -3
- package/src/sap/fe/core/templating/EntityTypeHelper.js +1 -1
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +1 -1
- package/src/sap/fe/core/templating/FieldControlHelper.js +3 -3
- package/src/sap/fe/core/templating/FieldControlHelper.ts +27 -8
- package/src/sap/fe/core/templating/FilterHelper.js +13 -10
- package/src/sap/fe/core/templating/FilterHelper.ts +80 -46
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +2 -2
- package/src/sap/fe/core/templating/PropertyFormatters.js +6 -8
- package/src/sap/fe/core/templating/PropertyFormatters.ts +11 -11
- package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
- package/src/sap/fe/core/templating/PropertyHelper.ts +4 -4
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +157 -13
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +182 -16
- package/src/sap/fe/core/templating/UIFormatters.js +23 -22
- package/src/sap/fe/core/templating/UIFormatters.ts +94 -66
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -2
- package/src/sap/fe/core/type/EDM.js +1 -1
- package/src/sap/fe/core/type/EDM.ts +2 -2
- package/src/sap/fe/core/type/Email.js +1 -1
- package/src/sap/fe/core/type/Email.ts +1 -1
- package/src/sap/fe/core/type/FiscalDate.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.ts +2 -2
|
@@ -6,46 +6,53 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/fe/core/CommonUt
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const FPMHelper = {
|
|
9
|
-
|
|
9
|
+
loadModuleAndCallMethod: async function (module, method, view) {
|
|
10
|
+
for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
|
|
11
|
+
args[_key - 3] = arguments[_key];
|
|
12
|
+
}
|
|
10
13
|
return new Promise(function (resolve) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
oView = CommonUtils.getTargetView(oSource),
|
|
15
|
-
oBindingContext = oSource.getBindingContext();
|
|
16
|
-
let oExtensionAPI;
|
|
17
|
-
let listBinding;
|
|
18
|
-
let aSelectedContexts;
|
|
19
|
-
if (oParameters !== undefined) {
|
|
20
|
-
aSelectedContexts = oParameters.contexts || [];
|
|
21
|
-
} else if (oBindingContext !== undefined) {
|
|
22
|
-
aSelectedContexts = [oBindingContext];
|
|
23
|
-
} else {
|
|
24
|
-
aSelectedContexts = [];
|
|
25
|
-
}
|
|
26
|
-
if ((_oSource$getParent = oSource.getParent()) !== null && _oSource$getParent !== void 0 && _oSource$getParent.isA("sap.ui.mdc.actiontoolbar.ActionToolbarAction") || (_oSource$getParent2 = oSource.getParent()) !== null && _oSource$getParent2 !== void 0 && _oSource$getParent2.isA("sap.m.Menu")) {
|
|
27
|
-
var _FPMHelper$getMdcTabl;
|
|
28
|
-
listBinding = (_FPMHelper$getMdcTabl = FPMHelper.getMdcTable(oSource)) === null || _FPMHelper$getMdcTabl === void 0 ? void 0 : _FPMHelper$getMdcTabl.getRowBinding();
|
|
14
|
+
let extensionAPI;
|
|
15
|
+
if (view.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" || view.getControllerName() === "sap.fe.templates.ListReport.ListReportController") {
|
|
16
|
+
extensionAPI = view.getController().getExtensionAPI();
|
|
29
17
|
}
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (sModule && sMethod) {
|
|
34
|
-
if (sModule.startsWith("/extension/")) {
|
|
35
|
-
const fnTarget = ObjectPath.get(sModule.replace(/\//g, ".").substring(1), oExtensionAPI);
|
|
36
|
-
resolve(fnTarget[sMethod](oBindingContext, aSelectedContexts, listBinding));
|
|
37
|
-
} else {
|
|
38
|
-
sap.ui.require([sModule], function (module) {
|
|
39
|
-
// - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
|
|
40
|
-
// - we provide the context as API, maybe if needed further properties
|
|
41
|
-
resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, aSelectedContexts, listBinding));
|
|
42
|
-
});
|
|
43
|
-
}
|
|
18
|
+
if (module.startsWith("/extension/")) {
|
|
19
|
+
const fnTarget = ObjectPath.get(module.replace(/\//g, ".").substring(1), extensionAPI);
|
|
20
|
+
resolve(fnTarget[method](...args));
|
|
44
21
|
} else {
|
|
45
|
-
|
|
22
|
+
sap.ui.require([module], function (loadedModule) {
|
|
23
|
+
// - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
|
|
24
|
+
// - we provide the context as API, maybe if needed further properties
|
|
25
|
+
resolve(loadedModule[method].bind(extensionAPI)(...args));
|
|
26
|
+
});
|
|
46
27
|
}
|
|
47
28
|
});
|
|
48
29
|
},
|
|
30
|
+
actionWrapper: async function (oEvent, sModule, sMethod, oParameters) {
|
|
31
|
+
var _oSource$getParent, _oSource$getParent2;
|
|
32
|
+
if (!sModule || !sMethod) {
|
|
33
|
+
Log.debug("Both the module and the method must be defined to execute a custom action");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//The source would be command execution, in case a command is defined for the action in the manifest.
|
|
38
|
+
const oSource = oEvent.getSource ? oEvent.getSource() : oEvent.oSource,
|
|
39
|
+
oView = CommonUtils.getTargetView(oSource),
|
|
40
|
+
oBindingContext = oSource.getBindingContext();
|
|
41
|
+
let listBinding;
|
|
42
|
+
let aSelectedContexts;
|
|
43
|
+
if (oParameters !== undefined) {
|
|
44
|
+
aSelectedContexts = oParameters.contexts || [];
|
|
45
|
+
} else if (oBindingContext !== undefined) {
|
|
46
|
+
aSelectedContexts = [oBindingContext];
|
|
47
|
+
} else {
|
|
48
|
+
aSelectedContexts = [];
|
|
49
|
+
}
|
|
50
|
+
if ((_oSource$getParent = oSource.getParent()) !== null && _oSource$getParent !== void 0 && _oSource$getParent.isA("sap.ui.mdc.actiontoolbar.ActionToolbarAction") || (_oSource$getParent2 = oSource.getParent()) !== null && _oSource$getParent2 !== void 0 && _oSource$getParent2.isA("sap.m.Menu")) {
|
|
51
|
+
var _FPMHelper$getMdcTabl;
|
|
52
|
+
listBinding = (_FPMHelper$getMdcTabl = FPMHelper.getMdcTable(oSource)) === null || _FPMHelper$getMdcTabl === void 0 ? void 0 : _FPMHelper$getMdcTabl.getRowBinding();
|
|
53
|
+
}
|
|
54
|
+
return FPMHelper.loadModuleAndCallMethod(sModule, sMethod, oView, oBindingContext, aSelectedContexts, listBinding);
|
|
55
|
+
},
|
|
49
56
|
getMdcTable: function (control) {
|
|
50
57
|
const parent = control.getParent();
|
|
51
58
|
if (!parent || parent.isA("sap.ui.mdc.Table")) {
|
|
@@ -54,17 +61,7 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/fe/core/CommonUt
|
|
|
54
61
|
return FPMHelper.getMdcTable(parent);
|
|
55
62
|
},
|
|
56
63
|
validationWrapper: async function (sModule, sMethod, oValidationContexts, oView, oBindingContext) {
|
|
57
|
-
return
|
|
58
|
-
let oExtensionAPI;
|
|
59
|
-
if (oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" || oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController") {
|
|
60
|
-
oExtensionAPI = oView.getController().getExtensionAPI();
|
|
61
|
-
}
|
|
62
|
-
sap.ui.require([sModule], function (module) {
|
|
63
|
-
// - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
|
|
64
|
-
// - we provide the context as API, maybe if needed further properties
|
|
65
|
-
resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, oValidationContexts));
|
|
66
|
-
});
|
|
67
|
-
});
|
|
64
|
+
return FPMHelper.loadModuleAndCallMethod(sModule, sMethod, oView, oBindingContext, oValidationContexts);
|
|
68
65
|
},
|
|
69
66
|
/**
|
|
70
67
|
* Returns an external custom function defined either in a custom controller extension or in an external module.
|
|
@@ -100,4 +97,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/fe/core/CommonUt
|
|
|
100
97
|
};
|
|
101
98
|
return FPMHelper;
|
|
102
99
|
}, false);
|
|
103
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGUE1IZWxwZXIiLCJhY3Rpb25XcmFwcGVyIiwib0V2ZW50Iiwic01vZHVsZSIsInNNZXRob2QiLCJvUGFyYW1ldGVycyIsIlByb21pc2UiLCJyZXNvbHZlIiwib1NvdXJjZSIsImdldFNvdXJjZSIsIm9WaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3Iiwib0JpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJvRXh0ZW5zaW9uQVBJIiwibGlzdEJpbmRpbmciLCJhU2VsZWN0ZWRDb250ZXh0cyIsInVuZGVmaW5lZCIsImNvbnRleHRzIiwiZ2V0UGFyZW50IiwiaXNBIiwiZ2V0TWRjVGFibGUiLCJnZXRSb3dCaW5kaW5nIiwiZ2V0Q29udHJvbGxlck5hbWUiLCJnZXRDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwic3RhcnRzV2l0aCIsImZuVGFyZ2V0IiwiT2JqZWN0UGF0aCIsImdldCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJtb2R1bGUiLCJiaW5kIiwiTG9nIiwiZGVidWciLCJjb250cm9sIiwicGFyZW50IiwidmFsaWRhdGlvbldyYXBwZXIiLCJvVmFsaWRhdGlvbkNvbnRleHRzIiwiZ2V0Q3VzdG9tRnVuY3Rpb24iLCJtb2R1bGVOYW1lIiwiZnVuY3Rpb25OYW1lIiwic291cmNlIiwidmlldyIsImV4dGVuc2lvbkFQSSIsImN1c3RvbUZ1bmN0aW9uIiwiY29udHJvbGxlckV4dCIsImVycm9yIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGUE1IZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgT2JqZWN0UGF0aCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9PYmplY3RQYXRoXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBVSTVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIEV2ZW50UHJvdmlkZXIgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSBNZGNUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5cbmNvbnN0IEZQTUhlbHBlciA9IHtcblx0YWN0aW9uV3JhcHBlcjogYXN5bmMgZnVuY3Rpb24gKFxuXHRcdG9FdmVudDogVUk1RXZlbnQsXG5cdFx0c01vZHVsZT86IHN0cmluZyxcblx0XHRzTWV0aG9kPzogc3RyaW5nLFxuXHRcdG9QYXJhbWV0ZXJzPzogeyBjb250ZXh0cz86IENvbnRleHRbXSB9XG5cdCk6IFByb21pc2U8dW5rbm93bj4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcblx0XHRcdC8vVGhlIHNvdXJjZSB3b3VsZCBiZSBjb21tYW5kIGV4ZWN1dGlvbiwgaW4gY2FzZSBhIGNvbW1hbmQgaXMgZGVmaW5lZCBmb3IgdGhlIGFjdGlvbiBpbiB0aGUgbWFuaWZlc3QuXG5cdFx0XHRjb25zdCBvU291cmNlID0gKG9FdmVudC5nZXRTb3VyY2UgPyBvRXZlbnQuZ2V0U291cmNlKCkgOiAob0V2ZW50IGFzIHsgb1NvdXJjZT86IEV2ZW50UHJvdmlkZXIgfSkub1NvdXJjZSkgYXMgQ29udHJvbCxcblx0XHRcdFx0b1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KG9Tb3VyY2UpLFxuXHRcdFx0XHRvQmluZGluZ0NvbnRleHQgPSBvU291cmNlLmdldEJpbmRpbmdDb250ZXh0KCkhO1xuXHRcdFx0bGV0IG9FeHRlbnNpb25BUEk6IEV4dGVuc2lvbkFQSSB8IHVuZGVmaW5lZDtcblx0XHRcdGxldCBsaXN0QmluZGluZzogT0RhdGFMaXN0QmluZGluZyB8IHVuZGVmaW5lZDtcblx0XHRcdGxldCBhU2VsZWN0ZWRDb250ZXh0czogQ29udGV4dFtdO1xuXG5cdFx0XHRpZiAob1BhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRhU2VsZWN0ZWRDb250ZXh0cyA9IG9QYXJhbWV0ZXJzLmNvbnRleHRzIHx8IFtdO1xuXHRcdFx0fSBlbHNlIGlmIChvQmluZGluZ0NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRhU2VsZWN0ZWRDb250ZXh0cyA9IFtvQmluZGluZ0NvbnRleHRdO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YVNlbGVjdGVkQ29udGV4dHMgPSBbXTtcblx0XHRcdH1cblx0XHRcdGlmIChvU291cmNlLmdldFBhcmVudCgpPy5pc0EoXCJzYXAudWkubWRjLmFjdGlvbnRvb2xiYXIuQWN0aW9uVG9vbGJhckFjdGlvblwiKSB8fCBvU291cmNlLmdldFBhcmVudCgpPy5pc0EoXCJzYXAubS5NZW51XCIpKSB7XG5cdFx0XHRcdGxpc3RCaW5kaW5nID0gRlBNSGVscGVyLmdldE1kY1RhYmxlKG9Tb3VyY2UpPy5nZXRSb3dCaW5kaW5nKCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoXG5cdFx0XHRcdG9WaWV3LmdldENvbnRyb2xsZXJOYW1lKCkgPT09IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VDb250cm9sbGVyXCIgfHxcblx0XHRcdFx0b1ZpZXcuZ2V0Q29udHJvbGxlck5hbWUoKSA9PT0gXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuTGlzdFJlcG9ydENvbnRyb2xsZXJcIlxuXHRcdFx0KSB7XG5cdFx0XHRcdG9FeHRlbnNpb25BUEkgPSBvVmlldy5nZXRDb250cm9sbGVyKCkuZ2V0RXh0ZW5zaW9uQVBJKCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzTW9kdWxlICYmIHNNZXRob2QpIHtcblx0XHRcdFx0aWYgKHNNb2R1bGUuc3RhcnRzV2l0aChcIi9leHRlbnNpb24vXCIpKSB7XG5cdFx0XHRcdFx0Y29uc3QgZm5UYXJnZXQgPSBPYmplY3RQYXRoLmdldChzTW9kdWxlLnJlcGxhY2UoL1xcLy9nLCBcIi5cIikuc3Vic3RyaW5nKDEpLCBvRXh0ZW5zaW9uQVBJKTtcblx0XHRcdFx0XHRyZXNvbHZlKGZuVGFyZ2V0W3NNZXRob2RdKG9CaW5kaW5nQ29udGV4dCwgYVNlbGVjdGVkQ29udGV4dHMsIGxpc3RCaW5kaW5nKSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c2FwLnVpLnJlcXVpcmUoW3NNb2R1bGVdLCBmdW5jdGlvbiAobW9kdWxlOiBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbj4pIHtcblx0XHRcdFx0XHRcdC8vIC0gd2UgYmluZCB0aGUgYWN0aW9uIHRvIHRoZSBleHRlbnNpb25BUEkgb2YgdGhlIGNvbnRyb2xsZXIgc28gaXQgaGFzIHRoZSBzYW1lIHNjb3BlIGFzIGEgY3VzdG9tIHNlY3Rpb25cblx0XHRcdFx0XHRcdC8vIC0gd2UgcHJvdmlkZSB0aGUgY29udGV4dCBhcyBBUEksIG1heWJlIGlmIG5lZWRlZCBmdXJ0aGVyIHByb3BlcnRpZXNcblx0XHRcdFx0XHRcdHJlc29sdmUobW9kdWxlW3NNZXRob2RdLmJpbmQob0V4dGVuc2lvbkFQSSkob0JpbmRpbmdDb250ZXh0LCBhU2VsZWN0ZWRDb250ZXh0cywgbGlzdEJpbmRpbmcpKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0TG9nLmRlYnVnKFwiQm90aCB0aGUgbW9kdWxlIGFuZCB0aGUgbWV0aG9kIG11c3QgYmUgZGVmaW5lZCB0byBleGVjdXRlIGEgY3VzdG9tIGFjdGlvblwiKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblx0Z2V0TWRjVGFibGU6IGZ1bmN0aW9uIChjb250cm9sOiBVSTVFbGVtZW50KTogTWRjVGFibGUgfCBudWxsIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBwYXJlbnQgPSBjb250cm9sLmdldFBhcmVudCgpO1xuXHRcdGlmICghcGFyZW50IHx8IHBhcmVudC5pc0E8TWRjVGFibGU+KFwic2FwLnVpLm1kYy5UYWJsZVwiKSkge1xuXHRcdFx0cmV0dXJuIHBhcmVudDtcblx0XHR9XG5cdFx0cmV0dXJuIEZQTUhlbHBlci5nZXRNZGNUYWJsZShwYXJlbnQgYXMgQ29udHJvbCk7XG5cdH0sXG5cdHZhbGlkYXRpb25XcmFwcGVyOiBhc3luYyBmdW5jdGlvbiAoXG5cdFx0c01vZHVsZTogc3RyaW5nLFxuXHRcdHNNZXRob2Q6IHN0cmluZyxcblx0XHRvVmFsaWRhdGlvbkNvbnRleHRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0XHRvVmlldzogVmlldyxcblx0XHRvQmluZGluZ0NvbnRleHQ6IENvbnRleHRcblx0KTogUHJvbWlzZTx7IG1lc3NhZ2VUYXJnZXQ/OiBzdHJpbmc7IG1lc3NhZ2VUZXh0OiBzdHJpbmcgfVtdPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0bGV0IG9FeHRlbnNpb25BUEk6IEV4dGVuc2lvbkFQSTtcblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRvVmlldy5nZXRDb250cm9sbGVyTmFtZSgpID09PSBcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiIHx8XG5cdFx0XHRcdG9WaWV3LmdldENvbnRyb2xsZXJOYW1lKCkgPT09IFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0Lkxpc3RSZXBvcnRDb250cm9sbGVyXCJcblx0XHRcdCkge1xuXHRcdFx0XHRvRXh0ZW5zaW9uQVBJID0gKG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBQYWdlQ29udHJvbGxlcikuZ2V0RXh0ZW5zaW9uQVBJKCk7XG5cdFx0XHR9XG5cblx0XHRcdHNhcC51aS5yZXF1aXJlKFtzTW9kdWxlXSwgZnVuY3Rpb24gKG1vZHVsZTogYW55KSB7XG5cdFx0XHRcdC8vIC0gd2UgYmluZCB0aGUgYWN0aW9uIHRvIHRoZSBleHRlbnNpb25BUEkgb2YgdGhlIGNvbnRyb2xsZXIgc28gaXQgaGFzIHRoZSBzYW1lIHNjb3BlIGFzIGEgY3VzdG9tIHNlY3Rpb25cblx0XHRcdFx0Ly8gLSB3ZSBwcm92aWRlIHRoZSBjb250ZXh0IGFzIEFQSSwgbWF5YmUgaWYgbmVlZGVkIGZ1cnRoZXIgcHJvcGVydGllc1xuXHRcdFx0XHRyZXNvbHZlKG1vZHVsZVtzTWV0aG9kXS5iaW5kKG9FeHRlbnNpb25BUEkpKG9CaW5kaW5nQ29udGV4dCwgb1ZhbGlkYXRpb25Db250ZXh0cykpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH0sXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGFuIGV4dGVybmFsIGN1c3RvbSBmdW5jdGlvbiBkZWZpbmVkIGVpdGhlciBpbiBhIGN1c3RvbSBjb250cm9sbGVyIGV4dGVuc2lvbiBvciBpbiBhbiBleHRlcm5hbCBtb2R1bGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBtb2R1bGVOYW1lIFRoZSBleHRlcm5hbCBtb2R1bGUgbmFtZSwgb3IgL2V4dGVuc2lvbi88cGF0aCB0byB0aGUgY3VzdG9tIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG1vZHVsZT5cblx0ICogQHBhcmFtIGZ1bmN0aW9uTmFtZSBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb25cblx0ICogQHBhcmFtIHNvdXJjZSBBIGNvbnRyb2wgaW4gdGhlIHZpZXcgb3IgYW4gZXZlbnQgdHJpZ2dlcmVkIGJ5IGEgY29udHJvbCBpbiB0aGUgdmlld1xuXHQgKiBAcmV0dXJucyBUaGUgZnVuY3Rpb24gKG9yIHVuZGVmaW5lZCBpZiBpdCBjb3VsZG4ndCBiZSBmb3VuZClcblx0ICovXG5cdGdldEN1c3RvbUZ1bmN0aW9uPEZ1bmN0aW9uVHlwZT4oXG5cdFx0bW9kdWxlTmFtZTogc3RyaW5nLFxuXHRcdGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuXHRcdHNvdXJjZTogQ29udHJvbCB8IFVJNUV2ZW50PHt9LCBDb250cm9sPlxuXHQpOiBGdW5jdGlvblR5cGUgfCB1bmRlZmluZWQge1xuXHRcdGxldCBjb250cm9sOiBDb250cm9sO1xuXHRcdGlmIChzb3VyY2UuaXNBPFVJNUV2ZW50PihcInNhcC51aS5iYXNlLkV2ZW50XCIpKSB7XG5cdFx0XHRjb250cm9sID0gc291cmNlLmdldFNvdXJjZSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250cm9sID0gc291cmNlO1xuXHRcdH1cblx0XHRjb25zdCB2aWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyhjb250cm9sKTtcblx0XHRjb25zdCBleHRlbnNpb25BUEkgPSB2aWV3LmdldENvbnRyb2xsZXIoKS5nZXRFeHRlbnNpb25BUEkoKTtcblxuXHRcdGxldCBjdXN0b21GdW5jdGlvbjogRnVuY3Rpb25UeXBlIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKG1vZHVsZU5hbWUuc3RhcnRzV2l0aChcIi9leHRlbnNpb24vXCIpKSB7XG5cdFx0XHRjb25zdCBjb250cm9sbGVyRXh0ID0gT2JqZWN0UGF0aC5nZXQobW9kdWxlTmFtZS5yZXBsYWNlKC9cXC8vZywgXCIuXCIpLnN1YnN0cmluZygxKSwgZXh0ZW5zaW9uQVBJKTtcblx0XHRcdGN1c3RvbUZ1bmN0aW9uID0gY29udHJvbGxlckV4dCA/IGNvbnRyb2xsZXJFeHRbZnVuY3Rpb25OYW1lXSA6IHVuZGVmaW5lZDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgbW9kdWxlID0gc2FwLnVpLnJlcXVpcmUobW9kdWxlTmFtZSk7XG5cdFx0XHRjdXN0b21GdW5jdGlvbiA9IG1vZHVsZSA/IG1vZHVsZVtmdW5jdGlvbk5hbWVdPy5iaW5kKGV4dGVuc2lvbkFQSSkgOiB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0aWYgKCFjdXN0b21GdW5jdGlvbikge1xuXHRcdFx0TG9nLmVycm9yKGBDb3VsZG4ndCBmaW5kIG1ldGhvZCAke2Z1bmN0aW9uTmFtZX0gaW4gJHttb2R1bGVOYW1lfWApO1xuXHRcdH1cblx0XHRyZXR1cm4gY3VzdG9tRnVuY3Rpb247XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZQTUhlbHBlcjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQWNBLE1BQU1BLFNBQVMsR0FBRztJQUNqQkMsYUFBYSxFQUFFLGdCQUNkQyxNQUFnQixFQUNoQkMsT0FBZ0IsRUFDaEJDLE9BQWdCLEVBQ2hCQyxXQUFzQyxFQUNuQjtNQUNuQixPQUFPLElBQUlDLE9BQU8sQ0FBQyxVQUFVQyxPQUE2QixFQUFFO1FBQUE7UUFDM0Q7UUFDQSxNQUFNQyxPQUFPLEdBQUlOLE1BQU0sQ0FBQ08sU0FBUyxHQUFHUCxNQUFNLENBQUNPLFNBQVMsRUFBRSxHQUFJUCxNQUFNLENBQWlDTSxPQUFtQjtVQUNuSEUsS0FBSyxHQUFHQyxXQUFXLENBQUNDLGFBQWEsQ0FBQ0osT0FBTyxDQUFDO1VBQzFDSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQ00saUJBQWlCLEVBQUc7UUFDL0MsSUFBSUMsYUFBdUM7UUFDM0MsSUFBSUMsV0FBeUM7UUFDN0MsSUFBSUMsaUJBQTRCO1FBRWhDLElBQUlaLFdBQVcsS0FBS2EsU0FBUyxFQUFFO1VBQzlCRCxpQkFBaUIsR0FBR1osV0FBVyxDQUFDYyxRQUFRLElBQUksRUFBRTtRQUMvQyxDQUFDLE1BQU0sSUFBSU4s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
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGUE1IZWxwZXIiLCJsb2FkTW9kdWxlQW5kQ2FsbE1ldGhvZCIsIm1vZHVsZSIsIm1ldGhvZCIsInZpZXciLCJhcmdzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleHRlbnNpb25BUEkiLCJnZXRDb250cm9sbGVyTmFtZSIsImdldENvbnRyb2xsZXIiLCJnZXRFeHRlbnNpb25BUEkiLCJzdGFydHNXaXRoIiwiZm5UYXJnZXQiLCJPYmplY3RQYXRoIiwiZ2V0IiwicmVwbGFjZSIsInN1YnN0cmluZyIsInNhcCIsInVpIiwicmVxdWlyZSIsImxvYWRlZE1vZHVsZSIsImJpbmQiLCJhY3Rpb25XcmFwcGVyIiwib0V2ZW50Iiwic01vZHVsZSIsInNNZXRob2QiLCJvUGFyYW1ldGVycyIsIkxvZyIsImRlYnVnIiwib1NvdXJjZSIsImdldFNvdXJjZSIsIm9WaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3Iiwib0JpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJsaXN0QmluZGluZyIsImFTZWxlY3RlZENvbnRleHRzIiwidW5kZWZpbmVkIiwiY29udGV4dHMiLCJnZXRQYXJlbnQiLCJpc0EiLCJnZXRNZGNUYWJsZSIsImdldFJvd0JpbmRpbmciLCJjb250cm9sIiwicGFyZW50IiwidmFsaWRhdGlvbldyYXBwZXIiLCJvVmFsaWRhdGlvbkNvbnRleHRzIiwiZ2V0Q3VzdG9tRnVuY3Rpb24iLCJtb2R1bGVOYW1lIiwiZnVuY3Rpb25OYW1lIiwic291cmNlIiwiY3VzdG9tRnVuY3Rpb24iLCJjb250cm9sbGVyRXh0IiwiZXJyb3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZQTUhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBPYmplY3RQYXRoIGZyb20gXCJzYXAvYmFzZS91dGlsL09iamVjdFBhdGhcIjtcbmltcG9ydCB0eXBlIHsgRkVWaWV3IH0gZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSBFdmVudFByb3ZpZGVyIGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgTWRjVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuXG5jb25zdCBGUE1IZWxwZXIgPSB7XG5cdGxvYWRNb2R1bGVBbmRDYWxsTWV0aG9kOiBhc3luYyBmdW5jdGlvbiAobW9kdWxlOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCB2aWV3OiBWaWV3LCAuLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPHVua25vd24+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmU6ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCkge1xuXHRcdFx0bGV0IGV4dGVuc2lvbkFQSTogRXh0ZW5zaW9uQVBJIHwgdW5kZWZpbmVkO1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR2aWV3LmdldENvbnRyb2xsZXJOYW1lKCkgPT09IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VDb250cm9sbGVyXCIgfHxcblx0XHRcdFx0dmlldy5nZXRDb250cm9sbGVyTmFtZSgpID09PSBcInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC5MaXN0UmVwb3J0Q29udHJvbGxlclwiXG5cdFx0XHQpIHtcblx0XHRcdFx0ZXh0ZW5zaW9uQVBJID0gKHZpZXcgYXMgRkVWaWV3KS5nZXRDb250cm9sbGVyKCkuZ2V0RXh0ZW5zaW9uQVBJKCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChtb2R1bGUuc3RhcnRzV2l0aChcIi9leHRlbnNpb24vXCIpKSB7XG5cdFx0XHRcdGNvbnN0IGZuVGFyZ2V0ID0gT2JqZWN0UGF0aC5nZXQobW9kdWxlLnJlcGxhY2UoL1xcLy9nLCBcIi5cIikuc3Vic3RyaW5nKDEpLCBleHRlbnNpb25BUEkpO1xuXHRcdFx0XHRyZXNvbHZlKGZuVGFyZ2V0W21ldGhvZF0oLi4uYXJncykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c2FwLnVpLnJlcXVpcmUoW21vZHVsZV0sIGZ1bmN0aW9uIChsb2FkZWRNb2R1bGU6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uPikge1xuXHRcdFx0XHRcdC8vIC0gd2UgYmluZCB0aGUgYWN0aW9uIHRvIHRoZSBleHRlbnNpb25BUEkgb2YgdGhlIGNvbnRyb2xsZXIgc28gaXQgaGFzIHRoZSBzYW1lIHNjb3BlIGFzIGEgY3VzdG9tIHNlY3Rpb25cblx0XHRcdFx0XHQvLyAtIHdlIHByb3ZpZGUgdGhlIGNvbnRleHQgYXMgQVBJLCBtYXliZSBpZiBuZWVkZWQgZnVydGhlciBwcm9wZXJ0aWVzXG5cdFx0XHRcdFx0cmVzb2x2ZShsb2FkZWRNb2R1bGVbbWV0aG9kXS5iaW5kKGV4dGVuc2lvbkFQSSkoLi4uYXJncykpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHRhY3Rpb25XcmFwcGVyOiBhc3luYyBmdW5jdGlvbiAoXG5cdFx0b0V2ZW50OiBVSTVFdmVudCxcblx0XHRzTW9kdWxlPzogc3RyaW5nLFxuXHRcdHNNZXRob2Q/OiBzdHJpbmcsXG5cdFx0b1BhcmFtZXRlcnM/OiB7IGNvbnRleHRzPzogQ29udGV4dFtdIH1cblx0KTogUHJvbWlzZTx1bmtub3duPiB7XG5cdFx0aWYgKCFzTW9kdWxlIHx8ICFzTWV0aG9kKSB7XG5cdFx0XHRMb2cuZGVidWcoXCJCb3RoIHRoZSBtb2R1bGUgYW5kIHRoZSBtZXRob2QgbXVzdCBiZSBkZWZpbmVkIHRvIGV4ZWN1dGUgYSBjdXN0b20gYWN0aW9uXCIpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vVGhlIHNvdXJjZSB3b3VsZCBiZSBjb21tYW5kIGV4ZWN1dGlvbiwgaW4gY2FzZSBhIGNvbW1hbmQgaXMgZGVmaW5lZCBmb3IgdGhlIGFjdGlvbiBpbiB0aGUgbWFuaWZlc3QuXG5cdFx0Y29uc3Qgb1NvdXJjZSA9IChvRXZlbnQuZ2V0U291cmNlID8gb0V2ZW50LmdldFNvdXJjZSgpIDogKG9FdmVudCBhcyB7IG9Tb3VyY2U/OiBFdmVudFByb3ZpZGVyIH0pLm9Tb3VyY2UpIGFzIENvbnRyb2wsXG5cdFx0XHRvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcob1NvdXJjZSksXG5cdFx0XHRvQmluZGluZ0NvbnRleHQgPSBvU291cmNlLmdldEJpbmRpbmdDb250ZXh0KCkhO1xuXG5cdFx0bGV0IGxpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGxldCBhU2VsZWN0ZWRDb250ZXh0czogQ29udGV4dFtdO1xuXG5cdFx0aWYgKG9QYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGFTZWxlY3RlZENvbnRleHRzID0gb1BhcmFtZXRlcnMuY29udGV4dHMgfHwgW107XG5cdFx0fSBlbHNlIGlmIChvQmluZGluZ0NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YVNlbGVjdGVkQ29udGV4dHMgPSBbb0JpbmRpbmdDb250ZXh0XTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YVNlbGVjdGVkQ29udGV4dHMgPSBbXTtcblx0XHR9XG5cdFx0aWYgKG9Tb3VyY2UuZ2V0UGFyZW50KCk/LmlzQShcInNhcC51aS5tZGMuYWN0aW9udG9vbGJhci5BY3Rpb25Ub29sYmFyQWN0aW9uXCIpIHx8IG9Tb3VyY2UuZ2V0UGFyZW50KCk/LmlzQShcInNhcC5tLk1lbnVcIikpIHtcblx0XHRcdGxpc3RCaW5kaW5nID0gRlBNSGVscGVyLmdldE1kY1RhYmxlKG9Tb3VyY2UpPy5nZXRSb3dCaW5kaW5nKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIEZQTUhlbHBlci5sb2FkTW9kdWxlQW5kQ2FsbE1ldGhvZChzTW9kdWxlLCBzTWV0aG9kLCBvVmlldywgb0JpbmRpbmdDb250ZXh0LCBhU2VsZWN0ZWRDb250ZXh0cywgbGlzdEJpbmRpbmcpO1xuXHR9LFxuXHRnZXRNZGNUYWJsZTogZnVuY3Rpb24gKGNvbnRyb2w6IFVJNUVsZW1lbnQpOiBNZGNUYWJsZSB8IG51bGwgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHBhcmVudCA9IGNvbnRyb2wuZ2V0UGFyZW50KCk7XG5cdFx0aWYgKCFwYXJlbnQgfHwgcGFyZW50LmlzQTxNZGNUYWJsZT4oXCJzYXAudWkubWRjLlRhYmxlXCIpKSB7XG5cdFx0XHRyZXR1cm4gcGFyZW50O1xuXHRcdH1cblx0XHRyZXR1cm4gRlBNSGVscGVyLmdldE1kY1RhYmxlKHBhcmVudCBhcyBDb250cm9sKTtcblx0fSxcblx0dmFsaWRhdGlvbldyYXBwZXI6IGFzeW5jIGZ1bmN0aW9uIChcblx0XHRzTW9kdWxlOiBzdHJpbmcsXG5cdFx0c01ldGhvZDogc3RyaW5nLFxuXHRcdG9WYWxpZGF0aW9uQ29udGV4dHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRcdG9WaWV3OiBWaWV3LFxuXHRcdG9CaW5kaW5nQ29udGV4dDogQ29udGV4dFxuXHQpOiBQcm9taXNlPHsgbWVzc2FnZVRhcmdldD86IHN0cmluZzsgbWVzc2FnZVRleHQ6IHN0cmluZyB9W10+IHtcblx0XHRyZXR1cm4gRlBNSGVscGVyLmxvYWRNb2R1bGVBbmRDYWxsTWV0aG9kKHNNb2R1bGUsIHNNZXRob2QsIG9WaWV3LCBvQmluZGluZ0NvbnRleHQsIG9WYWxpZGF0aW9uQ29udGV4dHMpIGFzIFByb21pc2U8XG5cdFx0XHR7IG1lc3NhZ2VUYXJnZXQ/OiBzdHJpbmc7IG1lc3NhZ2VUZXh0OiBzdHJpbmcgfVtdXG5cdFx0Pjtcblx0fSxcblx0LyoqXG5cdCAqIFJldHVybnMgYW4gZXh0ZXJuYWwgY3VzdG9tIGZ1bmN0aW9uIGRlZmluZWQgZWl0aGVyIGluIGEgY3VzdG9tIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG9yIGluIGFuIGV4dGVybmFsIG1vZHVsZS5cblx0ICpcblx0ICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIGV4dGVybmFsIG1vZHVsZSBuYW1lLCBvciAvZXh0ZW5zaW9uLzxwYXRoIHRvIHRoZSBjdXN0b20gY29udHJvbGxlciBleHRlbnNpb24gbW9kdWxlPlxuXHQgKiBAcGFyYW0gZnVuY3Rpb25OYW1lIFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvblxuXHQgKiBAcGFyYW0gc291cmNlIEEgY29udHJvbCBpbiB0aGUgdmlldyBvciBhbiBldmVudCB0cmlnZ2VyZWQgYnkgYSBjb250cm9sIGluIHRoZSB2aWV3XG5cdCAqIEByZXR1cm5zIFRoZSBmdW5jdGlvbiAob3IgdW5kZWZpbmVkIGlmIGl0IGNvdWxkbid0IGJlIGZvdW5kKVxuXHQgKi9cblx0Z2V0Q3VzdG9tRnVuY3Rpb248RnVuY3Rpb25UeXBlPihcblx0XHRtb2R1bGVOYW1lOiBzdHJpbmcsXG5cdFx0ZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG5cdFx0c291cmNlOiBDb250cm9sIHwgVUk1RXZlbnQ8e30sIENvbnRyb2w+XG5cdCk6IEZ1bmN0aW9uVHlwZSB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IGNvbnRyb2w6IENvbnRyb2w7XG5cdFx0aWYgKHNvdXJjZS5pc0E8VUk1RXZlbnQ+KFwic2FwLnVpLmJhc2UuRXZlbnRcIikpIHtcblx0XHRcdGNvbnRyb2wgPSBzb3VyY2UuZ2V0U291cmNlKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnRyb2wgPSBzb3VyY2U7XG5cdFx0fVxuXHRcdGNvbnN0IHZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KGNvbnRyb2wpO1xuXHRcdGNvbnN0IGV4dGVuc2lvbkFQSSA9IHZpZXcuZ2V0Q29udHJvbGxlcigpLmdldEV4dGVuc2lvbkFQSSgpO1xuXG5cdFx0bGV0IGN1c3RvbUZ1bmN0aW9uOiBGdW5jdGlvblR5cGUgfCB1bmRlZmluZWQ7XG5cblx0XHRpZiAobW9kdWxlTmFtZS5zdGFydHNXaXRoKFwiL2V4dGVuc2lvbi9cIikpIHtcblx0XHRcdGNvbnN0IGNvbnRyb2xsZXJFeHQgPSBPYmplY3RQYXRoLmdldChtb2R1bGVOYW1lLnJlcGxhY2UoL1xcLy9nLCBcIi5cIikuc3Vic3RyaW5nKDEpLCBleHRlbnNpb25BUEkpO1xuXHRcdFx0Y3VzdG9tRnVuY3Rpb24gPSBjb250cm9sbGVyRXh0ID8gY29udHJvbGxlckV4dFtmdW5jdGlvbk5hbWVdIDogdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBtb2R1bGUgPSBzYXAudWkucmVxdWlyZShtb2R1bGVOYW1lKTtcblx0XHRcdGN1c3RvbUZ1bmN0aW9uID0gbW9kdWxlID8gbW9kdWxlW2Z1bmN0aW9uTmFtZV0/LmJpbmQoZXh0ZW5zaW9uQVBJKSA6IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRpZiAoIWN1c3RvbUZ1bmN0aW9uKSB7XG5cdFx0XHRMb2cuZXJyb3IoYENvdWxkbid0IGZpbmQgbWV0aG9kICR7ZnVuY3Rpb25OYW1lfSBpbiAke21vZHVsZU5hbWV9YCk7XG5cdFx0fVxuXHRcdHJldHVybiBjdXN0b21GdW5jdGlvbjtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRlBNSGVscGVyO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBY0Es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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
2
|
import ObjectPath from "sap/base/util/ObjectPath";
|
|
3
|
+
import type { FEView } from "sap/fe/core/BaseController";
|
|
3
4
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
4
5
|
import type ExtensionAPI from "sap/fe/core/ExtensionAPI";
|
|
5
|
-
import type PageController from "sap/fe/core/PageController";
|
|
6
6
|
import type UI5Event from "sap/ui/base/Event";
|
|
7
7
|
import type EventProvider from "sap/ui/base/EventProvider";
|
|
8
8
|
import type Control from "sap/ui/core/Control";
|
|
@@ -13,53 +13,60 @@ import type Context from "sap/ui/model/Context";
|
|
|
13
13
|
import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
|
|
14
14
|
|
|
15
15
|
const FPMHelper = {
|
|
16
|
+
loadModuleAndCallMethod: async function (module: string, method: string, view: View, ...args: unknown[]): Promise<unknown> {
|
|
17
|
+
return new Promise(function (resolve: (value: unknown) => void) {
|
|
18
|
+
let extensionAPI: ExtensionAPI | undefined;
|
|
19
|
+
if (
|
|
20
|
+
view.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" ||
|
|
21
|
+
view.getControllerName() === "sap.fe.templates.ListReport.ListReportController"
|
|
22
|
+
) {
|
|
23
|
+
extensionAPI = (view as FEView).getController().getExtensionAPI();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (module.startsWith("/extension/")) {
|
|
27
|
+
const fnTarget = ObjectPath.get(module.replace(/\//g, ".").substring(1), extensionAPI);
|
|
28
|
+
resolve(fnTarget[method](...args));
|
|
29
|
+
} else {
|
|
30
|
+
sap.ui.require([module], function (loadedModule: Record<string, Function>) {
|
|
31
|
+
// - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
|
|
32
|
+
// - we provide the context as API, maybe if needed further properties
|
|
33
|
+
resolve(loadedModule[method].bind(extensionAPI)(...args));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
|
|
16
39
|
actionWrapper: async function (
|
|
17
40
|
oEvent: UI5Event,
|
|
18
41
|
sModule?: string,
|
|
19
42
|
sMethod?: string,
|
|
20
43
|
oParameters?: { contexts?: Context[] }
|
|
21
44
|
): Promise<unknown> {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
oBindingContext = oSource.getBindingContext()!;
|
|
27
|
-
let oExtensionAPI: ExtensionAPI | undefined;
|
|
28
|
-
let listBinding: ODataListBinding | undefined;
|
|
29
|
-
let aSelectedContexts: Context[];
|
|
45
|
+
if (!sModule || !sMethod) {
|
|
46
|
+
Log.debug("Both the module and the method must be defined to execute a custom action");
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
30
49
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
} else {
|
|
36
|
-
aSelectedContexts = [];
|
|
37
|
-
}
|
|
38
|
-
if (oSource.getParent()?.isA("sap.ui.mdc.actiontoolbar.ActionToolbarAction") || oSource.getParent()?.isA("sap.m.Menu")) {
|
|
39
|
-
listBinding = FPMHelper.getMdcTable(oSource)?.getRowBinding();
|
|
40
|
-
}
|
|
41
|
-
if (
|
|
42
|
-
oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" ||
|
|
43
|
-
oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController"
|
|
44
|
-
) {
|
|
45
|
-
oExtensionAPI = oView.getController().getExtensionAPI();
|
|
46
|
-
}
|
|
50
|
+
//The source would be command execution, in case a command is defined for the action in the manifest.
|
|
51
|
+
const oSource = (oEvent.getSource ? oEvent.getSource() : (oEvent as { oSource?: EventProvider }).oSource) as Control,
|
|
52
|
+
oView = CommonUtils.getTargetView(oSource),
|
|
53
|
+
oBindingContext = oSource.getBindingContext()!;
|
|
47
54
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
let listBinding: ODataListBinding | undefined;
|
|
56
|
+
let aSelectedContexts: Context[];
|
|
57
|
+
|
|
58
|
+
if (oParameters !== undefined) {
|
|
59
|
+
aSelectedContexts = oParameters.contexts || [];
|
|
60
|
+
} else if (oBindingContext !== undefined) {
|
|
61
|
+
aSelectedContexts = [oBindingContext];
|
|
62
|
+
} else {
|
|
63
|
+
aSelectedContexts = [];
|
|
64
|
+
}
|
|
65
|
+
if (oSource.getParent()?.isA("sap.ui.mdc.actiontoolbar.ActionToolbarAction") || oSource.getParent()?.isA("sap.m.Menu")) {
|
|
66
|
+
listBinding = FPMHelper.getMdcTable(oSource)?.getRowBinding();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return FPMHelper.loadModuleAndCallMethod(sModule, sMethod, oView, oBindingContext, aSelectedContexts, listBinding);
|
|
63
70
|
},
|
|
64
71
|
getMdcTable: function (control: UI5Element): MdcTable | null | undefined {
|
|
65
72
|
const parent = control.getParent();
|
|
@@ -75,22 +82,9 @@ const FPMHelper = {
|
|
|
75
82
|
oView: View,
|
|
76
83
|
oBindingContext: Context
|
|
77
84
|
): Promise<{ messageTarget?: string; messageText: string }[]> {
|
|
78
|
-
return
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (
|
|
82
|
-
oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" ||
|
|
83
|
-
oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController"
|
|
84
|
-
) {
|
|
85
|
-
oExtensionAPI = (oView.getController() as PageController).getExtensionAPI();
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
sap.ui.require([sModule], function (module: any) {
|
|
89
|
-
// - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
|
|
90
|
-
// - we provide the context as API, maybe if needed further properties
|
|
91
|
-
resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, oValidationContexts));
|
|
92
|
-
});
|
|
93
|
-
});
|
|
85
|
+
return FPMHelper.loadModuleAndCallMethod(sModule, sMethod, oView, oBindingContext, oValidationContexts) as Promise<
|
|
86
|
+
{ messageTarget?: string; messageText: string }[]
|
|
87
|
+
>;
|
|
94
88
|
},
|
|
95
89
|
/**
|
|
96
90
|
* Returns an external custom function defined either in a custom controller extension or in an external module.
|