@sapui5/sap.suite.ui.generic.template 1.151.1 → 1.153.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/suite/ui/generic/template/.library +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/visualfilterbar/SmartVisualFilterBar.js +4 -3
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/Component.js +4 -2
- package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +0 -6
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sv.properties +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/FullscreenPage.fragment.xml +3 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/Component.js +5 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +31 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +1 -1
- package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +13 -7
- package/src/sap/suite/ui/generic/template/genericUtilities/designtime/messagebundle.properties +0 -0
- package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +21 -17
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +19 -3
- package/src/sap/suite/ui/generic/template/lib/ShareUtils.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillAIOrchestrator.js +16 -6
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillApplyHandler.js +35 -47
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController.js +80 -64
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFieldCollector.js +442 -259
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFormRenderer.js +186 -161
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +137 -161
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillTableRenderer.js +157 -191
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +67 -85
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +56 -4
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +11 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_sappsd.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saptrc.properties +13 -7
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +11 -5
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +10 -4
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +8 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +7 -1
- package/src/sap/suite/ui/generic/template/lib/insights/InsightsCardHelper.js +40 -8
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +3 -2
- package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +4 -0
- package/src/sap/suite/ui/generic/template/library.js +1 -1
- package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +7 -1
|
@@ -50,6 +50,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
50
50
|
var oAppComponent = oComponent.getAppComponent();
|
|
51
51
|
var oUIManifest = oAppComponent.getManifestEntry("sap.ui");
|
|
52
52
|
var oAppManifest = oAppComponent.getManifestEntry("sap.app");
|
|
53
|
+
var oOutbounds = oAppManifest && oAppManifest["crossNavigation"] && oAppManifest["crossNavigation"]["outbounds"];
|
|
53
54
|
if (oAppManifest && oAppManifest["crossNavigation"]) {
|
|
54
55
|
delete oAppManifest["crossNavigation"];
|
|
55
56
|
}
|
|
@@ -57,7 +58,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
57
58
|
oAppManifest.id = InsightsCardHelper.getCardId(oAppComponent);
|
|
58
59
|
oManifest["sap.app"] = fnCreateManifestSapApp(oAppManifest);
|
|
59
60
|
oManifest["sap.ui"] = oUIManifest;
|
|
60
|
-
oManifest["sap.card"] = fnCreateManifestSapCard(oCardDefinition);
|
|
61
|
+
oManifest["sap.card"] = fnCreateManifestSapCard(oCardDefinition, oOutbounds);
|
|
61
62
|
oManifest["sap.insights"] = fnCreateManifestSapInsight(oCardDefinition);
|
|
62
63
|
oManifest["sap.ui5"] = fnCreateSapui5();
|
|
63
64
|
return oManifest;
|
|
@@ -91,7 +92,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
91
92
|
return oManifestAppData;
|
|
92
93
|
};
|
|
93
94
|
|
|
94
|
-
var fnCreateManifestSapCard = function (oCardDefinition) {
|
|
95
|
+
var fnCreateManifestSapCard = function (oCardDefinition, oOutbounds) {
|
|
95
96
|
var oCardConfig = {};
|
|
96
97
|
var sComponentName = oCardDefinition['component'].getMetadata().getName();
|
|
97
98
|
oCardConfig["type"] = getCardType(sComponentName);
|
|
@@ -104,7 +105,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
104
105
|
} else {
|
|
105
106
|
oCardConfig["content"] = InsightsCardHelper.fnCreateManifestSapTableCardContent(oCardDefinition, oCardConfig);
|
|
106
107
|
}
|
|
107
|
-
InsightsCardHelper.getCardActions(oCardDefinition, oCardConfig);
|
|
108
|
+
InsightsCardHelper.getCardActions(oCardDefinition, oCardConfig, oOutbounds);
|
|
108
109
|
return oCardConfig;
|
|
109
110
|
};
|
|
110
111
|
|
|
@@ -703,7 +704,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
703
704
|
return aDimensions;
|
|
704
705
|
};
|
|
705
706
|
|
|
706
|
-
InsightsCardHelper.getCardActions = function (oCardDefinition, oSapCard) {
|
|
707
|
+
InsightsCardHelper.getCardActions = function (oCardDefinition, oSapCard, oOutbounds) {
|
|
707
708
|
var sHash = window.hasher.getHash(), aSemanticObjAction = sHash.split('&/')[0], sAppVarId;
|
|
708
709
|
|
|
709
710
|
if (aSemanticObjAction.includes('?')) {
|
|
@@ -735,6 +736,10 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
735
736
|
}];
|
|
736
737
|
|
|
737
738
|
var oContentParams = JSON.parse(JSON.stringify(oHeaderParams));
|
|
739
|
+
var oRowOutbound = fnGetRowNavigationOutbound(oOutbounds, aSemanticObjAction[0]);
|
|
740
|
+
if (oRowOutbound) {
|
|
741
|
+
oContentParams.ibnTarget = oRowOutbound;
|
|
742
|
+
}
|
|
738
743
|
|
|
739
744
|
var oContentParameterValue = [{
|
|
740
745
|
"type": "Navigation",
|
|
@@ -757,6 +762,21 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
757
762
|
}
|
|
758
763
|
};
|
|
759
764
|
|
|
765
|
+
var fnGetRowNavigationOutbound = function (oOutbounds, sSemanticObject) {
|
|
766
|
+
if (!oOutbounds || !sSemanticObject) {
|
|
767
|
+
return null;
|
|
768
|
+
}
|
|
769
|
+
var oResult = null;
|
|
770
|
+
Object.keys(oOutbounds).some(function (sKey) {
|
|
771
|
+
var oOutbound = oOutbounds[sKey];
|
|
772
|
+
if (oOutbound && oOutbound.semanticObject === sSemanticObject && oOutbound.action) {
|
|
773
|
+
oResult = { semanticObject: oOutbound.semanticObject, action: oOutbound.action };
|
|
774
|
+
return oOutbound.action === "displayFactSheet";
|
|
775
|
+
}
|
|
776
|
+
});
|
|
777
|
+
return oResult;
|
|
778
|
+
};
|
|
779
|
+
|
|
760
780
|
var fnGetLineItemAnnotation = function (oCardDefinition) {
|
|
761
781
|
var oEntityType = oCardDefinition['entityType'];
|
|
762
782
|
var aCustomData = oCardDefinition['currentControlHandler'].getControl().getCustomData();
|
|
@@ -820,11 +840,17 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
820
840
|
oCriticalityAnnotation = oAnnotation;
|
|
821
841
|
return (oAnnotation.Criticality && oAnnotation.Value && oAnnotation.Value.Path) === oProperty.name;
|
|
822
842
|
});
|
|
843
|
+
|
|
844
|
+
// sColumnValue stays a PLAIN concatenated path (unchanged behavior from before).
|
|
845
|
+
// Currency/Unit paths are tracked separately so formatting can be applied later,
|
|
846
|
+
// only where it's safe to do so (i.e. no Text-arrangement wrapping follows).
|
|
847
|
+
var sCurrencyPath, sUnitPath;
|
|
823
848
|
if (oProperty["Org.OData.Measures.V1.ISOCurrency"] && oProperty["Org.OData.Measures.V1.ISOCurrency"].Path) {
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
if (oProperty["Org.OData.Measures.V1.Unit"] && oProperty["Org.OData.Measures.V1.Unit"].Path) {
|
|
827
|
-
|
|
849
|
+
sCurrencyPath = sNavigation + oProperty["Org.OData.Measures.V1.ISOCurrency"].Path;
|
|
850
|
+
sColumnValue = sColumnValue.concat(" " + "{" + sCurrencyPath + "}");
|
|
851
|
+
} else if (oProperty["Org.OData.Measures.V1.Unit"] && oProperty["Org.OData.Measures.V1.Unit"].Path) {
|
|
852
|
+
sUnitPath = sNavigation + oProperty["Org.OData.Measures.V1.Unit"].Path;
|
|
853
|
+
sColumnValue = sColumnValue.concat(" " + "{" + sUnitPath + "}");
|
|
828
854
|
}
|
|
829
855
|
|
|
830
856
|
if (oProperty['com.sap.vocabularies.Common.v1.Text'] && oProperty['com.sap.vocabularies.Common.v1.Text'].Path) {
|
|
@@ -861,6 +887,12 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
|
861
887
|
if (bIsPropertySemanticKey) {
|
|
862
888
|
oColumnObject.identifier = bIsPropertySemanticKey;
|
|
863
889
|
}
|
|
890
|
+
// Safe to format here: no outer expression wrapping will happen for this column.
|
|
891
|
+
if (oProperty.type === 'Edm.Decimal' && sCurrencyPath) {
|
|
892
|
+
oColumnObject['value'] = "{= format.currency(${" + oProperty.name + "}, ${" + sCurrencyPath + "})}";
|
|
893
|
+
} else if (oProperty.type === 'Edm.Decimal' && sUnitPath) {
|
|
894
|
+
oColumnObject['value'] = "{= format.unit(${" + oProperty.name + "}, ${" + sUnitPath + "})}";
|
|
895
|
+
}
|
|
864
896
|
}
|
|
865
897
|
if (bIsCriticality) {
|
|
866
898
|
oColumnObject.state = fnBuildExpressionForCriticalityColor(oCriticalityAnnotation);
|
|
@@ -2242,6 +2242,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
2242
2242
|
var sRoute = oRegistryEntry.route;
|
|
2243
2243
|
var iCurrentActivity = oActivationInfo.componentsDisplayed[sRoute];
|
|
2244
2244
|
var bIsComponentCurrentlyActive = iCurrentActivity === 1;
|
|
2245
|
+
var bIsBackwards = isBackwards();
|
|
2245
2246
|
var fnPerformActivation = function(sBindingPath){
|
|
2246
2247
|
oRegistryEntry.sCurrentBindingPath = sBindingPath;
|
|
2247
2248
|
var fnActivate = function() {
|
|
@@ -2249,7 +2250,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
2249
2250
|
var bindComponentPromise = oRegistryEntry.utils.bindComponent(oRegistryEntry.sCurrentBindingPath, bIsComponentCurrentlyActive);
|
|
2250
2251
|
return bindComponentPromise
|
|
2251
2252
|
.then(function(){
|
|
2252
|
-
(oRegistryEntry.methods.onActivate || Function.prototype)(sBindingPath, bIsComponentCurrentlyActive);
|
|
2253
|
+
(oRegistryEntry.methods.onActivate || Function.prototype)(sBindingPath, bIsComponentCurrentlyActive, bIsBackwards);
|
|
2253
2254
|
})
|
|
2254
2255
|
.then(function(){
|
|
2255
2256
|
if (sComponentId === oCurrentIdentity.treeNode.componentId){
|
|
@@ -3222,7 +3223,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
3222
3223
|
* @param {sap.suite.ui.generic.template.lib.AppComponent} oAppComponent The AppComponent instance
|
|
3223
3224
|
* @public
|
|
3224
3225
|
* @extends sap.ui.base.Object
|
|
3225
|
-
* @version 1.
|
|
3226
|
+
* @version 1.153.0
|
|
3226
3227
|
* @since 1.30.0
|
|
3227
3228
|
* @alias sap.suite.ui.generic.template.lib.NavigationController
|
|
3228
3229
|
*/
|
|
@@ -595,6 +595,10 @@ sap.ui.define([
|
|
|
595
595
|
return !aIgnoreFields.has(sField);
|
|
596
596
|
};
|
|
597
597
|
const hasUIHiddenOrUndefined = function(sField) {
|
|
598
|
+
// Navigation property paths are absent from mPropertyByFieldName; treat them as hidden.
|
|
599
|
+
if (!mPropertyByFieldName[sField]) {
|
|
600
|
+
return true;
|
|
601
|
+
}
|
|
598
602
|
return !!mPropertyByFieldName[sField]["com.sap.vocabularies.UI.v1.Hidden"] || oItemContext.getProperty(sField) === undefined;
|
|
599
603
|
};
|
|
600
604
|
for (const oProperty of aProperties){
|
|
@@ -416,7 +416,7 @@ html[dir='rtl'] .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageSubSect
|
|
|
416
416
|
height: 100%;
|
|
417
417
|
|
|
418
418
|
.sapUiFormCL .sapUiFormCLElement .sapEasyFillPreviouslyLabel {
|
|
419
|
-
|
|
419
|
+
color: var(--sapContent_LabelColor);
|
|
420
420
|
}
|
|
421
421
|
|
|
422
422
|
.sapUxAPBlockContainer {
|
|
@@ -474,6 +474,12 @@ html[dir='rtl'] .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageSubSect
|
|
|
474
474
|
background-color: var(--sapField_WarningBackground) !important;
|
|
475
475
|
}
|
|
476
476
|
|
|
477
|
+
/* Excluded rows: greyed out and non-interactive */
|
|
478
|
+
.sapEasyFillExcludedRow {
|
|
479
|
+
opacity: 0.4;
|
|
480
|
+
pointer-events: none;
|
|
481
|
+
}
|
|
482
|
+
|
|
477
483
|
/* For Easy Fill SmartForm read-only fields, keep read-only semantics but show input-like shell */
|
|
478
484
|
.sapUiEasyFillReadOnlyInputLike {
|
|
479
485
|
background: var(--sapField_ReadOnly_BackgroundStyle) !important;
|