@sapui5/sap.suite.ui.generic.template 1.121.2 → 1.122.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/suite/ui/generic/template/.library +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +11 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/FilterBarController.js +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_mk.properties +3 -3
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_nl.properties +1 -1
- 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/controller/ControllerImplementation.js +21 -16
- package/src/sap/suite/ui/generic/template/ListReport/controller/CtxMenuHandler.js +2 -2
- package/src/sap/suite/ui/generic/template/ListReport/controller/MultipleViewsHandler.js +2 -2
- package/src/sap/suite/ui/generic/template/ListReport/extensionAPI/ExtensionAPI.js +7 -1
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_mk.properties +2 -2
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +39 -45
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/CtxMenuHandler.js +4 -4
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +10 -8
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/inlineCreationRows/InlineCreationRowsHelper.js +31 -6
- package/src/sap/suite/ui/generic/template/ObjectPage/extensionAPI/ExtensionAPI.js +8 -26
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +4 -0
- 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/fragments/SmartTableResponsiveTableCommons.fragment.xml +7 -2
- package/src/sap/suite/ui/generic/template/fragments/SmartTableUiTableCommons.fragment.xml +3 -2
- package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +7 -3
- package/src/sap/suite/ui/generic/template/genericUtilities/filterHelper.js +1 -1
- package/src/sap/suite/ui/generic/template/js/AnnotationHelperHiddenTermSupport.js +69 -0
- package/src/sap/suite/ui/generic/template/lib/AdaptiveCardHelper.js +4 -4
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +2 -2
- package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +51 -9
- package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +40 -8
- package/src/sap/suite/ui/generic/template/lib/ComponentUtils.js +2 -3
- package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +107 -18
- package/src/sap/suite/ui/generic/template/lib/FocusHelper.js +2 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +1 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +1 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +3 -3
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +1 -1
- package/src/sap/suite/ui/generic/template/lib/info/SmartTableInfo.js +8 -1
- package/src/sap/suite/ui/generic/template/lib/multipleViews/MultipleTablesModeHelper.js +20 -7
- package/src/sap/suite/ui/generic/template/lib/multipleViews/MultipleViewsHandler.js +41 -27
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +9 -5
- package/src/sap/suite/ui/generic/template/lib/navigation/routingHelper.js +3 -5
- package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +26 -1
- package/src/sap/suite/ui/generic/template/library.js +1 -1
- package/src/sap/suite/ui/generic/template/listTemplates/controller/DetailController.js +1 -1
- package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +7 -3
- package/src/sap/suite/ui/generic/template/manifestMerger/MergerUtil.js +4 -5
- package/src/sap/suite/ui/generic/template/themes/sap_horizon/AnalyticalListPage.less +3 -0
- package/src/sap/suite/ui/generic/template/themes/sap_horizon/library.source.less +2 -1
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_dark/AnalyticalListPage.less +3 -0
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_dark/library.source.less +3 -2
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcb/AnalyticalListPage.less +5 -1
- package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcw/AnalyticalListPage.less +5 -1
|
@@ -83,7 +83,8 @@ sap.ui.define([
|
|
|
83
83
|
oUIModelPropsWithChangeEventAttached = new Set(),
|
|
84
84
|
mContextWithCreatablePathByTableId = new Map(),
|
|
85
85
|
oEditedRowContexts = new Set(),
|
|
86
|
-
mRequiredPropHelperByTableId = new Map()
|
|
86
|
+
mRequiredPropHelperByTableId = new Map(),
|
|
87
|
+
oGridTableWithRowsUpdatedEvent = new Set();
|
|
87
88
|
|
|
88
89
|
/**
|
|
89
90
|
* This method is invoked when the object page content changes. For example,
|
|
@@ -475,6 +476,8 @@ sap.ui.define([
|
|
|
475
476
|
function fnUpdateTableRows(oTable) {
|
|
476
477
|
if (controlHelper.isMTable(oTable)) {
|
|
477
478
|
fnUpdateResponsiveTableRows(oTable);
|
|
479
|
+
} else {
|
|
480
|
+
fnAttachRowsUpdatedEventForGridTable(oTable);
|
|
478
481
|
}
|
|
479
482
|
}
|
|
480
483
|
|
|
@@ -489,11 +492,9 @@ sap.ui.define([
|
|
|
489
492
|
var sDefaultRowType,
|
|
490
493
|
sTableId = oTable.getId(),
|
|
491
494
|
aInactiveRows = fnGetInactiveRowsWithoutTypeBinding(oTable);
|
|
492
|
-
|
|
493
495
|
if (aInactiveRows.length === 0) {
|
|
494
496
|
return;
|
|
495
497
|
}
|
|
496
|
-
|
|
497
498
|
// Preserving the default row type into "mDefaultRowTypeByTableId".
|
|
498
499
|
// sDefaultRowType is used by "fnHideInlineControlsOnInactiveRow" to restore the row type when the row is persisted
|
|
499
500
|
if (mDefaultRowTypeByTableId.get(sTableId)) {
|
|
@@ -505,7 +506,7 @@ sap.ui.define([
|
|
|
505
506
|
|
|
506
507
|
aInactiveRows.forEach(function (oInactiveRow) {
|
|
507
508
|
// Making non insertable property cells as read-only
|
|
508
|
-
|
|
509
|
+
fnUpdateTableRowsBasedOnNonInsertableProperties(oTable, oInactiveRow);
|
|
509
510
|
// Hiding the inline controls
|
|
510
511
|
fnInvokeCallbackAfterRendering(oInactiveRow, fnHideInlineControlsOnInactiveRow.bind(null, oInactiveRow, sDefaultRowType));
|
|
511
512
|
});
|
|
@@ -524,8 +525,27 @@ sap.ui.define([
|
|
|
524
525
|
});
|
|
525
526
|
return aInactiveRows;
|
|
526
527
|
}
|
|
528
|
+
/**
|
|
529
|
+
* This method attaches a 'rowUpdated' event listener to a Grid Table.
|
|
530
|
+
* Each time a table is updated, it processes the rows for non insertable cells.
|
|
531
|
+
*/
|
|
532
|
+
function fnAttachRowsUpdatedEventForGridTable(oTable) {
|
|
533
|
+
var sId = oTable.getId();
|
|
534
|
+
if (oGridTableWithRowsUpdatedEvent.has(sId)) {
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
oGridTableWithRowsUpdatedEvent.add(sId);
|
|
538
|
+
oTable.attachEvent("rowsUpdated", function() {
|
|
539
|
+
var oRows = oTable.getRows();
|
|
540
|
+
|
|
541
|
+
oRows.forEach(function(oRow) {
|
|
542
|
+
// Making non insertable property cells as read-only
|
|
543
|
+
fnUpdateTableRowsBasedOnNonInsertableProperties(oTable, oRow);
|
|
544
|
+
});
|
|
545
|
+
});
|
|
546
|
+
}
|
|
527
547
|
|
|
528
|
-
function
|
|
548
|
+
function fnUpdateTableRowsBasedOnNonInsertableProperties(oTable, oInActiveRow) {
|
|
529
549
|
// Support NonInsertableProperties to disable the field while creation
|
|
530
550
|
var oSmartTable = oTable.getParent();
|
|
531
551
|
var aColumns = oTable.getColumns();
|
|
@@ -541,7 +561,12 @@ sap.ui.define([
|
|
|
541
561
|
}
|
|
542
562
|
var aInactiveRowCells = oInActiveRow.getCells();
|
|
543
563
|
for (var j = 0; j < aIndexOfNonInsertableProperties.length; j++) {
|
|
544
|
-
aInactiveRowCells[aIndexOfNonInsertableProperties[j]]
|
|
564
|
+
var oCell = aInactiveRowCells[aIndexOfNonInsertableProperties[j]];
|
|
565
|
+
var oBinding = oCell.getBinding("editable");
|
|
566
|
+
if (oBinding && oBinding.getPath() === "BINDING_PATH_TRANSIENT_CONTEXT") {
|
|
567
|
+
return;
|
|
568
|
+
}
|
|
569
|
+
oCell.bindProperty("editable", {
|
|
545
570
|
path: BINDING_PATH_TRANSIENT_CONTEXT,
|
|
546
571
|
formatter: function (bIsTransient) {
|
|
547
572
|
return !bIsTransient;
|
|
@@ -2,7 +2,6 @@ sap.ui.define(
|
|
|
2
2
|
["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/suite/ui/generic/template/genericUtilities/controlHelper"],
|
|
3
3
|
function(BaseObject, extend, FeLogger, controlHelper) {
|
|
4
4
|
"use strict";
|
|
5
|
-
var oLogger = new FeLogger("ObjectPageExtensionAPI.extensionAPI").getLogger();
|
|
6
5
|
/**
|
|
7
6
|
* API to be used in extensions of ObjectPage. Breakout coding can access an instance of this class via
|
|
8
7
|
* <code>this.extensionAPI</code>. Do not instantiate yourself.
|
|
@@ -14,7 +13,8 @@ sap.ui.define(
|
|
|
14
13
|
function getMethods(oTemplateUtils, oController, oBase, oState) {
|
|
15
14
|
return /** @lends sap.suite.ui.generic.template.ObjectPage.extensionAPI.ExtensionAPI.prototype */ {
|
|
16
15
|
/**
|
|
17
|
-
*
|
|
16
|
+
* Generally, this method returns the currently selected contexts in one ui element (table, chart, or list).
|
|
17
|
+
* In case the context menu is opened, it returns the contexts applicable to the context menu.
|
|
18
18
|
*
|
|
19
19
|
* @param {string} sUiElementId the id identifying the ui element the selected context is requested for
|
|
20
20
|
* @return {sap.ui.model.Context[]} contains one entry per entry selected
|
|
@@ -22,31 +22,13 @@ sap.ui.define(
|
|
|
22
22
|
*/
|
|
23
23
|
getSelectedContexts: function(sUiElementId) {
|
|
24
24
|
var oControl = oController.byId(sUiElementId);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* In case the control's resolved title is provided and is same as section's title, then the section's title is also automatically hidden.
|
|
31
|
-
* It's meant to be invoked from the onSubSectionEnteredExtension ExtensionAPI.
|
|
32
|
-
* @param {string} sSubSectionId the ID identifying the Sub-Section to which you want to hide the title
|
|
33
|
-
* @param {string} [sTitle] Optional parameter which represents the resolved title of the inner conrol defined in the Resue Component or Custom Section/SubSection
|
|
34
|
-
* @deprecated Since version 1.121.0 use API setAsTitleOwner instead.
|
|
35
|
-
*/
|
|
36
|
-
hideDuplicateSectionOrSubSectionTitle: function(sSubSectionId, sTitle) {
|
|
37
|
-
var oSubSection = oController.byId(sSubSectionId);
|
|
38
|
-
if (!oSubSection) {
|
|
39
|
-
oLogger.error("Control ID with " + sSubSectionId + " is not part of the viewport ");
|
|
40
|
-
}
|
|
41
|
-
var oSection = oSubSection.getParent();
|
|
42
|
-
if (!sTitle || oSubSection.getTitle() === sTitle) {
|
|
43
|
-
oSubSection.setShowTitle(false);
|
|
44
|
-
oSection.addStyleClass("sapUiTableOnObjectPageAdjustmentsForSection");
|
|
45
|
-
}
|
|
46
|
-
if (!sTitle || oSection.getSubSections().length === 1 && oSection.getTitle() === sTitle) {
|
|
47
|
-
oSection.setShowTitle(false);
|
|
48
|
-
oSection.addStyleClass("sapUiTableOnObjectPageAdjustmentsForSection");
|
|
25
|
+
var oPresentationControl = oTemplateUtils.oCommonUtils.getOwnerPresentationControl(oControl);
|
|
26
|
+
// This focus info is added to state by sap.suite.ui.generic.template.lib.ContextMenuHandler when the context menu is opened
|
|
27
|
+
// If the state contains focus info, return the contexts applicable for context menu
|
|
28
|
+
if (oState.oFocusInfo && oState.oFocusInfo.smartControlId === oPresentationControl.getId()) {
|
|
29
|
+
return oState.oFocusInfo.applicableContexts;
|
|
49
30
|
}
|
|
31
|
+
return oTemplateUtils.oServices.oPresentationControlHandlerFactory.getPresentationControlHandler(oPresentationControl).getSelectedContexts();
|
|
50
32
|
},
|
|
51
33
|
|
|
52
34
|
/**
|
|
@@ -139,6 +139,7 @@
|
|
|
139
139
|
<table:AnalyticalTable id="{path: 'facet>', formatter: 'AH.getStableIdPartFromFacet'}::analyticalTable"
|
|
140
140
|
visibleRowCountMode="Auto" enableColumnReordering="true"
|
|
141
141
|
rowSelectionChange="._templateEventHandlers.onSelectionChange"
|
|
142
|
+
beforeOpenContextMenu="._templateEventHandlers.beforeOpenContextMenu($event, '{smartControlId>id}')"
|
|
142
143
|
showColumnVisibilityMenu="false"
|
|
143
144
|
enableColumnFreeze="true" enableCellFilter="true" rowActionCount="{= ${parts: [ {path: 'listEntitySet>'}, {path: 'parameter>/settings/subPages/'}, {path: 'parameter>/manifest'}, {path: 'facet>Target/AnnotationPath'},{path: 'parameter>/isDraftEnabled'}], formatter: 'AH.getRowActionCountForDetailPage'}}">
|
|
144
145
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.ObjectPage.view.fragments.SmartTableUiTableCommons" type="XML"/>
|
|
@@ -157,6 +158,7 @@
|
|
|
157
158
|
visibleRowCountMode="Auto"
|
|
158
159
|
expandFirstLevel="false"
|
|
159
160
|
rowSelectionChange="._templateEventHandlers.onSelectionChange"
|
|
161
|
+
beforeOpenContextMenu="._templateEventHandlers.beforeOpenContextMenu($event, '{smartControlId>id}')"
|
|
160
162
|
rowActionCount="{= ({parts: [{path: 'listEntitySet>'}, {path: 'parameter>/settings/subPages/'}], formatter: 'AH.hasSubObjectPage'} ? 1 : 0 )}">
|
|
161
163
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.ObjectPage.view.fragments.SmartTableUiTableCommons" type="XML"/>
|
|
162
164
|
<table:columns>
|
|
@@ -172,6 +174,7 @@
|
|
|
172
174
|
<table:Table id="{path: 'facet>', formatter: 'AH.getStableIdPartFromFacet'}::gridTable"
|
|
173
175
|
enableColumnReordering="true" showColumnVisibilityMenu="false" visibleRowCountMode="Auto"
|
|
174
176
|
rowSelectionChange="._templateEventHandlers.onSelectionChange"
|
|
177
|
+
beforeOpenContextMenu="._templateEventHandlers.beforeOpenContextMenu($event, '{smartControlId>id}')"
|
|
175
178
|
enableColumnFreeze="true" enableCellFilter="true"
|
|
176
179
|
rowActionCount="{= ${parts: [ {path: 'listEntitySet>'}, {path: 'parameter>/settings/subPages/'},{path: 'parameter>/manifest'}, {path: 'facet>Target/AnnotationPath'},{path: 'parameter>/isDraftEnabled'}], formatter: 'AH.getRowActionCountForDetailPage'}}">
|
|
177
180
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.ObjectPage.view.fragments.SmartTableUiTableCommons" type="XML"/>
|
|
@@ -190,6 +193,7 @@
|
|
|
190
193
|
growing="true" growingThreshold="10"
|
|
191
194
|
mode="{objectPageTableSettings>value/mode}"
|
|
192
195
|
selectionChange="._templateEventHandlers.onSelectionChange"
|
|
196
|
+
beforeOpenContextMenu="._templateEventHandlers.beforeOpenContextMenu($event, '{smartControlId>id}')"
|
|
193
197
|
delete="._templateEventHandlers.deleteEntry"
|
|
194
198
|
itemPress="._templateEventHandlers.onListNavigate"
|
|
195
199
|
updateFinished="._templateEventHandlers.checkUpdateFinished"
|
package/src/sap/suite/ui/generic/template/fragments/SmartTableResponsiveTableCommons.fragment.xml
CHANGED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.fragments.TableColumns" type="XML" />
|
|
4
4
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.fragments.TableColumnListItem" type="XML" />
|
|
5
|
-
<!--
|
|
5
|
+
<!--
|
|
6
|
+
<contextMenu>
|
|
6
7
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.fragments.SmartControlContextMenu" type="XML"/>
|
|
7
|
-
</contextMenu>
|
|
8
|
+
</contextMenu>
|
|
9
|
+
<dependents>
|
|
10
|
+
<plugins.ContextMenuSetting scope="Selection"/>
|
|
11
|
+
</dependents>
|
|
12
|
+
-->
|
|
8
13
|
</core:FragmentDefinition>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns:table="sap.ui.table"
|
|
1
|
+
<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:table="sap.ui.table"
|
|
2
2
|
xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
|
|
3
3
|
template:require="{AH: 'sap/suite/ui/generic/template/js/AnnotationHelper'}">
|
|
4
4
|
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
enableNotification="true"
|
|
8
8
|
selectionChange="._templateEventHandlers.onMultiSelectionChange"
|
|
9
9
|
selectionMode="{tableSettings>mode}" />
|
|
10
|
+
<!-- <plugins.ContextMenuSetting scope="Selection"/> -->
|
|
10
11
|
</table:dependents>
|
|
11
12
|
<table:rowSettingsTemplate>
|
|
12
13
|
<table:RowSettings
|
|
@@ -15,5 +16,5 @@
|
|
|
15
16
|
</table:rowSettingsTemplate>
|
|
16
17
|
<!-- <table:contextMenu>
|
|
17
18
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.fragments.SmartControlContextMenu" type="XML"/>
|
|
18
|
-
</table:contextMenu>
|
|
19
|
+
</table:contextMenu> -->
|
|
19
20
|
</core:FragmentDefinition>
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
sap.ui.define([
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/ui/dom/getFirstEditableInput",
|
|
3
|
+
"sap/suite/ui/generic/template/genericUtilities/FeLogger",
|
|
4
|
+
"sap/ui/core/Element"
|
|
5
|
+
], function(getFirstEditableInput, FeLogger, Element) {
|
|
2
6
|
"use strict";
|
|
3
7
|
|
|
4
8
|
var oFeLogger = new FeLogger("genericUtilities.controlHelper");
|
|
5
9
|
var oLogger = oFeLogger.getLogger();
|
|
6
10
|
|
|
7
|
-
var byId =
|
|
11
|
+
var byId = Element.getElementById;
|
|
8
12
|
|
|
9
13
|
function isControlOfType(sPathToType, oControl){
|
|
10
14
|
var FNClass = sap.ui.require(sPathToType);
|
|
@@ -14,7 +18,7 @@ sap.ui.define(["sap/ui/dom/getFirstEditableInput", "sap/suite/ui/generic/templat
|
|
|
14
18
|
function getUI5ControlForDomElement(oDom){
|
|
15
19
|
for (; oDom; oDom = oDom.parentNode) {
|
|
16
20
|
if (oDom.hasAttribute && oDom.hasAttribute("data-sap-ui")) {
|
|
17
|
-
return
|
|
21
|
+
return byId(oDom.id);
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
24
|
}
|
|
@@ -3,7 +3,7 @@ sap.ui.define([
|
|
|
3
3
|
"sap/ui/core/format/DateFormat",
|
|
4
4
|
"sap/base/security/encodeURL",
|
|
5
5
|
"sap/m/DynamicDateUtil",
|
|
6
|
-
"sap/
|
|
6
|
+
"sap/base/i18n/date/CalendarType"
|
|
7
7
|
], function (FilterOperator, DateFormat, encodeURL, DynamicDateUtil, CalendarType) {
|
|
8
8
|
"use strict";
|
|
9
9
|
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/base/util/isEmptyObject",
|
|
3
|
+
"sap/suite/ui/generic/template/js/AnnotationHelper"
|
|
4
|
+
], function (isEmptyObject, AnnotationHelper) {
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
var oHiddenColumnInfo = {
|
|
8
|
+
staticHiddenColumns: [],
|
|
9
|
+
columnKeyToCellHiddenPath: undefined
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/*
|
|
13
|
+
* This method is called in the initialization and dataReceived phase of the specified SmartTable.
|
|
14
|
+
* It handles everything which can be done regarding hiding columns at this point in time.
|
|
15
|
+
* This is:
|
|
16
|
+
* - Check for columns which are hidden statically(Bool) or dynamically(Path)
|
|
17
|
+
* - Immediately hide the columns which are statically hidden at SmartTable init
|
|
18
|
+
* - Dynamically hide the cells based the Path property at SmartTable dataReceived event
|
|
19
|
+
*/
|
|
20
|
+
function fnGetHiddenColumnInfo(oSmartTable) {
|
|
21
|
+
// Initialization which needs the control to be created
|
|
22
|
+
var oMetaModel = oSmartTable.getModel().getMetaModel(); // prepare metadata
|
|
23
|
+
var oEntitySet = oMetaModel.getODataEntitySet(oSmartTable.getEntitySet());
|
|
24
|
+
var oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType);
|
|
25
|
+
var aCustomData = oSmartTable.getCustomData();
|
|
26
|
+
var oCustomDataForLineItemQualifier = aCustomData.find(function(oCustomData){
|
|
27
|
+
return oCustomData.getKey() === "lineItemQualifier";
|
|
28
|
+
});
|
|
29
|
+
var sLineItemSuffix = (oCustomDataForLineItemQualifier && oCustomDataForLineItemQualifier.getValue()) ? ("#" + oCustomDataForLineItemQualifier.getValue()) : "";
|
|
30
|
+
var aDataFields = oEntityType["com.sap.vocabularies.UI.v1.LineItem" + sLineItemSuffix] || [];
|
|
31
|
+
|
|
32
|
+
var aStaticHiddenColumns = []; // list of keys of columns that are always hidden
|
|
33
|
+
var mColumnKeyToDynamicHiddenPath = Object.create(null); // map of column keys to pathes that determine whether the column is shown
|
|
34
|
+
|
|
35
|
+
aDataFields.forEach(fnAnalyzeColumnHideInfoForDataField.bind(null, aStaticHiddenColumns, mColumnKeyToDynamicHiddenPath, oMetaModel, oEntityType));
|
|
36
|
+
if (!isEmptyObject(mColumnKeyToDynamicHiddenPath) || aStaticHiddenColumns.length) { // if there is at least one column with hide info we store this analysis in the info object
|
|
37
|
+
oHiddenColumnInfo.staticHiddenColumns = aStaticHiddenColumns;
|
|
38
|
+
oHiddenColumnInfo.columnKeyToCellHiddenPath = mColumnKeyToDynamicHiddenPath;
|
|
39
|
+
}
|
|
40
|
+
return oHiddenColumnInfo;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* Add the information derived from the UI:Hidden annotation for one line item to either
|
|
45
|
+
* aStaticHiddenColumns or mColumnKeyToDynamicHiddenPath, or none.
|
|
46
|
+
*/
|
|
47
|
+
function fnAnalyzeColumnHideInfoForDataField(aStaticHiddenColumns, mColumnKeyToDynamicHiddenPath, oMetaModel, oEntityType, oDataField) {
|
|
48
|
+
// regular expression for ?
|
|
49
|
+
var rPath = /[A-Za-z].*[A-Za-z]/;
|
|
50
|
+
|
|
51
|
+
var sColumnKey = AnnotationHelper.createP13NColumnKey(oDataField);
|
|
52
|
+
var vExpression = AnnotationHelper.getBindingForHiddenPath(oDataField);
|
|
53
|
+
if (vExpression === "{= !${} }") {
|
|
54
|
+
aStaticHiddenColumns.push(sColumnKey);
|
|
55
|
+
}
|
|
56
|
+
if (typeof (vExpression) === "string") {
|
|
57
|
+
var sPath = vExpression.match(rPath) && vExpression.match(rPath)[0];
|
|
58
|
+
if (sPath && sPath.indexOf("/") === -1) {
|
|
59
|
+
mColumnKeyToDynamicHiddenPath[sColumnKey] = sPath;
|
|
60
|
+
}
|
|
61
|
+
} else if (!vExpression) {
|
|
62
|
+
aStaticHiddenColumns.push(sColumnKey);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return {
|
|
67
|
+
getHiddenColumnInfo: fnGetHiddenColumnInfo
|
|
68
|
+
};
|
|
69
|
+
});
|
|
@@ -15,7 +15,7 @@ sap.ui.define([
|
|
|
15
15
|
var fnGetColorFromAnnotations = function (sCriticalityPath) {
|
|
16
16
|
if (sCriticalityPath) {
|
|
17
17
|
var sColorExp = sCriticalityPath.indexOf('/') > -1 ? sCriticalityPath.replaceAll('/', '.') : sCriticalityPath;
|
|
18
|
-
return "${if(" + sColorExp + " ==
|
|
18
|
+
return "${if(int(" + sColorExp + ") == 0, 'Default', if(int(" + sColorExp + ") == 1 , 'Attention', if(int(" + sColorExp + ") == 2 , 'Warning', 'Good')))}";
|
|
19
19
|
}
|
|
20
20
|
return 'Default';
|
|
21
21
|
};
|
|
@@ -137,7 +137,7 @@ sap.ui.define([
|
|
|
137
137
|
var aParts = oBindingInfoOfText.parts;
|
|
138
138
|
if (aParts && aParts.length > 0) {
|
|
139
139
|
aParts.forEach(function (part) {
|
|
140
|
-
if (part.path !== oDataPointData.path) {
|
|
140
|
+
if (part.path !== oDataPointData.path && part.path !== "__$$SmartFieldNotExistingBindingPath") {
|
|
141
141
|
oDataPointData.paths[part.path] = part.path;
|
|
142
142
|
}
|
|
143
143
|
});
|
|
@@ -250,7 +250,7 @@ sap.ui.define([
|
|
|
250
250
|
if (aParts && aParts.length > 0) {
|
|
251
251
|
for (var j = 0; j < aParts.length; j++) {
|
|
252
252
|
var part = aParts[j];
|
|
253
|
-
if (part.path !== oFieldData.path) {
|
|
253
|
+
if (part.path !== oFieldData.path && part.path !== "__$$SmartFieldNotExistingBindingPath") {
|
|
254
254
|
oFieldData.paths[part.path] = part.path;
|
|
255
255
|
}
|
|
256
256
|
}
|
|
@@ -280,7 +280,7 @@ sap.ui.define([
|
|
|
280
280
|
return oPath !== oField.path && oPath.indexOf("##@@") === -1;
|
|
281
281
|
});
|
|
282
282
|
}
|
|
283
|
-
var sValue = oField.edmType === "Edm.Decimal" ? "${formatNumber(" + oField.path + ", 2)}" : "${" + oField.path + "}";
|
|
283
|
+
var sValue = oField.edmType === "Edm.Decimal" ? "${formatNumber(float(" + oField.path + "), 2)}" : "${" + oField.path + "}";
|
|
284
284
|
var sId = "";
|
|
285
285
|
var sDescription = "";
|
|
286
286
|
var sPath;
|
|
@@ -173,7 +173,7 @@ sap.ui.define([
|
|
|
173
173
|
// Parameter fnFallback will be the fallback function (see above) with oBeforeData already set accordingly.
|
|
174
174
|
// Currently this infrastructure is used by one topic (namely 'focus', see class FocusHelper).
|
|
175
175
|
// The implementation of this infrastructure is done in class BusyHelper.
|
|
176
|
-
bEnablePlaceholder: bShellConfigPlaceholderEnabled, //holds the value of placeholder enablement shell and URL
|
|
176
|
+
bEnablePlaceholder: bShellConfigPlaceholderEnabled, //holds the value of placeholder enablement shell and URL (URL enablement will be added in constructor code of NavigationController).
|
|
177
177
|
bStateHandlingSuspended: false, // holds the RTA or Key user mode
|
|
178
178
|
nDelayedDraftTimerInSeconds: 20 // holds the timer interval value for draft data save and by default, the value is 20 seconds
|
|
179
179
|
};
|
|
@@ -915,7 +915,7 @@ sap.ui.define([
|
|
|
915
915
|
* @extends sap.ui.core.UIComponent
|
|
916
916
|
* @abstract
|
|
917
917
|
* @author SAP SE
|
|
918
|
-
* @version 1.
|
|
918
|
+
* @version 1.122.0
|
|
919
919
|
* @name sap.suite.ui.generic.template.lib.AppComponent
|
|
920
920
|
*/
|
|
921
921
|
return UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
|
|
@@ -809,7 +809,18 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
809
809
|
var mTargetEntities = oComponentUtils.getParameterModelForTemplating().oData.templateSpecific.targetEntities[oEntitySet.entityType].mTargetEntities;
|
|
810
810
|
oControl = getClickedControl();
|
|
811
811
|
sControlBindingContextPath = oControl.getBindingContext().getPath();
|
|
812
|
-
|
|
812
|
+
if (oControl) {
|
|
813
|
+
if (oControl.isA("sap.ui.comp.navpopover.SmartLink")) {
|
|
814
|
+
sSourceClickedField = oControl && oControl.mProperties.fieldName;
|
|
815
|
+
} else if (oControl.isA("sap.m.ObjectIdentifier")) {
|
|
816
|
+
var oTextBinding = oControl.getBinding("text");
|
|
817
|
+
if (oTextBinding && oTextBinding.oType) {
|
|
818
|
+
sSourceClickedField = oTextBinding.sPath;
|
|
819
|
+
} else {
|
|
820
|
+
sSourceClickedField = oControl.getBinding("title").sPath;
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
}
|
|
813
824
|
|
|
814
825
|
//SemanticObjectController may also decide to render some as links even as we do not, using forceLinkRendering property
|
|
815
826
|
if (mTargetEntities[sSourceClickedField]) {
|
|
@@ -1321,6 +1332,36 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
1321
1332
|
}
|
|
1322
1333
|
}
|
|
1323
1334
|
|
|
1335
|
+
/**
|
|
1336
|
+
* This method is called in the onDataReceived event of the specified SmartTable.
|
|
1337
|
+
* It handles everything which can be done regarding hiding of cells at this point in time.
|
|
1338
|
+
*/
|
|
1339
|
+
function fnHideTableCells(oSmartTable, oHiddenColumnInfo) {
|
|
1340
|
+
for (var sColumnKey in oHiddenColumnInfo.columnKeyToCellHiddenPath) {
|
|
1341
|
+
var sPath = oHiddenColumnInfo.columnKeyToCellHiddenPath[sColumnKey];
|
|
1342
|
+
fnHandleTableCellVisibility(oSmartTable, sColumnKey, sPath);
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
/**
|
|
1347
|
+
* This method is called for each Row of Table,to control the visibility of the Cell based on the Hidden property in LineItem.
|
|
1348
|
+
*/
|
|
1349
|
+
function fnHandleTableCellVisibility(oSmartTable, sColumnKey, sPath) {
|
|
1350
|
+
var oSmartTableHandler = oServices.oPresentationControlHandlerFactory.getPresentationControlHandler(oSmartTable);
|
|
1351
|
+
var oTable = oSmartTable.getTable();
|
|
1352
|
+
var aItems = oTable.getRows ? oTable.getRows() : oTable.getItems();
|
|
1353
|
+
aItems.forEach(function(oItem) {
|
|
1354
|
+
var oColumn = oSmartTableHandler.getColumnByKey(sColumnKey);
|
|
1355
|
+
var oCell = oColumn && oItem.getCells()[oTable.indexOfColumn(oColumn)];
|
|
1356
|
+
oCell && oCell.bindProperty("visible", {
|
|
1357
|
+
path: sPath,
|
|
1358
|
+
formatter: function (bIsHidden) {
|
|
1359
|
+
return !bIsHidden;
|
|
1360
|
+
}
|
|
1361
|
+
});
|
|
1362
|
+
});
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1324
1365
|
// callback for the onBeforeRebindTable event of a smart table
|
|
1325
1366
|
// oEvent is the original event
|
|
1326
1367
|
// oCallbacks is an optional object which contains additional callbacks to be called.
|
|
@@ -1606,7 +1647,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
1606
1647
|
var sEntitySet = oTable.getEntitySet();
|
|
1607
1648
|
var oEditPromise = CRUDHelper.directEdit(oServices.oTransactionController, sEntitySet, oBindingContext.sPath, oBindingContext.getModel(), oServices.oApplication, oCommonUtils, oServices.oViewDependencyHelper, oViewProxy, bOpenInEditMode);
|
|
1608
1649
|
oEditPromise.then(function(oResult){
|
|
1609
|
-
oCommonUtils.navigateFromListItem(oResult.context, bReplace,
|
|
1650
|
+
oCommonUtils.navigateFromListItem(oResult.context, bReplace, true);
|
|
1610
1651
|
}, function(oError){
|
|
1611
1652
|
if (oError.lockedByUser) {
|
|
1612
1653
|
var sLockText = oCommonUtils.getText("ST_GENERIC_DRAFT_LOCKED_BY_USER", [" ", oError.lockedByUser]);
|
|
@@ -1662,13 +1703,13 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
1662
1703
|
var iViewLevel = oComponentUtils.getViewLevel();
|
|
1663
1704
|
var aCurrentKeys = oServices.oApplication.getCurrentKeys(iViewLevel + 1);
|
|
1664
1705
|
var bReplace = aCurrentKeys.length > iViewLevel + 1; // if the list from which the navigation is started is not the most right one, perform the navigation as a replace navigation
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1706
|
+
if (oEventSource.data("CrossNavigation") || !oComponentUtils.isDraftEnabled()){
|
|
1707
|
+
// oCommonUtils.fnProcessDataLossOrDraftDiscardConfirmation will care for:
|
|
1708
|
+
// - wait until side-effects have been executed
|
|
1709
|
+
// - app is not busy (otherwise do nothing)
|
|
1710
|
+
// - send a data loss popup in case needed (might also result in doing nothing)
|
|
1670
1711
|
oCommonUtils.fnProcessDataLossOrDraftDiscardConfirmation(onListNavigateImpl.bind(null, oEventSource, oEventParameters, oState, oBindingContext, bReplace), Function.prototype, "LeaveApp");
|
|
1671
|
-
} else {
|
|
1712
|
+
} else if (!oServices.oApplication.getBusyHelper().isBusy()) { // if the app is already busy with something else stop navigation here
|
|
1672
1713
|
onListNavigateImpl(oEventSource, oEventParameters, oState, oBindingContext, bReplace, oViewProxy);
|
|
1673
1714
|
}
|
|
1674
1715
|
}
|
|
@@ -2641,7 +2682,8 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
2641
2682
|
onBeforeExport: fnOnBeforeExport,
|
|
2642
2683
|
handleSideEffectForField: fnHandleSideEffectForField,
|
|
2643
2684
|
onSmartFieldModeToggled: onSmartFieldModeToggled,
|
|
2644
|
-
onRenderTeamsContactCollabOptions: fnRenderTeamsContactCollabOptions
|
|
2685
|
+
onRenderTeamsContactCollabOptions: fnRenderTeamsContactCollabOptions,
|
|
2686
|
+
hideTableCells: fnHideTableCells
|
|
2645
2687
|
};
|
|
2646
2688
|
}
|
|
2647
2689
|
|
|
@@ -527,7 +527,39 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
527
527
|
function fnUpdateBreakoutEnablementForAction(mBreakOutActionEnabled, aContexts, oModel, sSelectedTabKey, oControl, oBreakoutAction){
|
|
528
528
|
var sControlId = oBreakoutAction.id + ((sSelectedTabKey && !oBreakoutAction.determining) ? "-" + sSelectedTabKey : "");
|
|
529
529
|
var bIsAnalyticalListPage = oControl && oControl.getId().indexOf("AnalyticalListPage") > -1;
|
|
530
|
-
|
|
530
|
+
// Finding the default value of "enabled"
|
|
531
|
+
// For LR/OP, the default value is true.
|
|
532
|
+
// For ALP, the default value is taken from "mBreakoutActionEnabled" map.
|
|
533
|
+
//
|
|
534
|
+
// Reason for the special handling in ALP:
|
|
535
|
+
// This method is invoked twice in ALP. Once for smart table and once again for smart chart.
|
|
536
|
+
// In the first iteration (smart table actions), the calculated enablement value is stored on "mBreakoutActionEnabled".
|
|
537
|
+
// In the second iteration (smart chart actions), the enablement should be calculated only for the chart actions (oBreakoutAction.filter = "chart").
|
|
538
|
+
// As the previously calculated value for the table actions should be retained, the value stored on "mBreakoutActionEnabled" is used as the default value.
|
|
539
|
+
var bDefaultValue = !bIsAnalyticalListPage || !!mBreakOutActionEnabled[sControlId].enabled;
|
|
540
|
+
var bEnabled = fnIsBreakoutActionEnabled(oBreakoutAction, aContexts, oModel, oControl, bDefaultValue, bIsAnalyticalListPage);
|
|
541
|
+
|
|
542
|
+
mBreakOutActionEnabled[sControlId] = {
|
|
543
|
+
enabled: bEnabled
|
|
544
|
+
};
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
/**
|
|
548
|
+
* This method analyzes the applicable contexts and tells whether the breakout action should be enabled.
|
|
549
|
+
*
|
|
550
|
+
* If the context based analysis is not required (i.e the action doesn't require selection),
|
|
551
|
+
* it will simply return the default value <code>bDefaultValue</code>.
|
|
552
|
+
*
|
|
553
|
+
* @param {object} oBreakoutAction Manifest information about the breakout action
|
|
554
|
+
* @param {Array<sap.ui.model.Context>} aContexts Applicable contexts
|
|
555
|
+
* @param {sap.ui.model.Model} oModel Model of the smart control
|
|
556
|
+
* @param {sap.ui.core.Control} oControl The smart control
|
|
557
|
+
* @param {boolean} bDefaultValue The default value of "enabled".
|
|
558
|
+
* @param {boolean} bIsAnalyticalListPage Boolean flag that tells whether the current breakout action belong to the Analytical List Page
|
|
559
|
+
* @returns {boolean}
|
|
560
|
+
*/
|
|
561
|
+
function fnIsBreakoutActionEnabled(oBreakoutAction, aContexts, oModel, oControl, bDefaultValue, bIsAnalyticalListPage) {
|
|
562
|
+
var bEnabled = bDefaultValue;
|
|
531
563
|
var bFilterIsChart = oBreakoutAction.filter === "chart";
|
|
532
564
|
if (oBreakoutAction.requiresSelection) {
|
|
533
565
|
if (aContexts.length > 0) { // context selected
|
|
@@ -544,6 +576,8 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
544
576
|
}
|
|
545
577
|
} else if (controlHelper.isSmartChart(oControl)) {
|
|
546
578
|
//table button chart ondata received
|
|
579
|
+
// For LR/OP, directly evaluate the drill stack filters and enable the action accordingly.
|
|
580
|
+
// For ALP, evaluate the drill stack filters only when oBreakoutAction.filter is "chart" and skip the evaluation for table based actions.
|
|
547
581
|
if (!bIsAnalyticalListPage || bFilterIsChart) {
|
|
548
582
|
// If enabled Selection is made on the chart but drilldown is performed later.
|
|
549
583
|
bEnabled = oControl.getDrillStackFilters().length > 0;
|
|
@@ -553,11 +587,10 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
553
587
|
bEnabled = bEnabled && bFilterIsChart; //table ondatareceived when chart selected
|
|
554
588
|
}
|
|
555
589
|
}
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
};
|
|
590
|
+
return bEnabled;
|
|
591
|
+
|
|
559
592
|
}
|
|
560
|
-
|
|
593
|
+
|
|
561
594
|
function fnUpdateBreakoutEnablement(mBreakOutActionEnabled, mBreakoutActions, aContexts, oModel, sSelectedTabKey, oControl) {
|
|
562
595
|
for (var sActionId in mBreakoutActions) {
|
|
563
596
|
var oBreakoutAction = mBreakoutActions[sActionId];
|
|
@@ -666,9 +699,6 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
666
699
|
* Triggers navigation from a given list item.
|
|
667
700
|
*
|
|
668
701
|
* @param {sap.ui.model.context} selected context for navigation
|
|
669
|
-
* @param {object} oTable The table from which navigation was triggered
|
|
670
|
-
* control in the table
|
|
671
|
-
* @public
|
|
672
702
|
*/
|
|
673
703
|
function fnNavigateFromListItem(oContext, bReplace, bOpenInEditMode) {
|
|
674
704
|
var iDisplayMode;
|
|
@@ -680,6 +710,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
680
710
|
}
|
|
681
711
|
if (bOpenInEditMode) {
|
|
682
712
|
oServices.oApplication.setObjectInEditMode(true);
|
|
713
|
+
iDisplayMode = 6;
|
|
683
714
|
}
|
|
684
715
|
oComponentUtils.navigateAccordingToContext(oContext, iDisplayMode, bReplace);
|
|
685
716
|
}
|
|
@@ -1762,6 +1793,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
1762
1793
|
getToolbarActionEnablementInfo: getToolbarActionEnablementInfo,
|
|
1763
1794
|
fillEnabledMapForBreakoutActions: fnFillEnabledMapForBreakoutActions,
|
|
1764
1795
|
getBreakoutActions: fnGetBreakoutActions,
|
|
1796
|
+
isBreakoutActionEnabled: fnIsBreakoutActionEnabled,
|
|
1765
1797
|
getSelectionPoints: getSelectionPoints,
|
|
1766
1798
|
getDeleteRestrictions: fnGetDeleteRestrictions,
|
|
1767
1799
|
getSmartTableDefaultVariant: fnGetSmartTableDefaultVariant,
|
|
@@ -8,9 +8,8 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
8
8
|
"sap/base/util/extend",
|
|
9
9
|
"sap/base/util/isEmptyObject",
|
|
10
10
|
"sap/suite/ui/generic/template/genericUtilities/FeError",
|
|
11
|
-
"sap/base/util/UriParameters",
|
|
12
11
|
"sap/suite/ui/generic/template/lib/CommandComponentUtils"
|
|
13
|
-
], function(BaseObject, ManagedObjectModel, controlHelper, FeLogger, oDataModelHelper, CRUDActionHandler, StatePreserver, extend, isEmptyObject, FeError,
|
|
12
|
+
], function(BaseObject, ManagedObjectModel, controlHelper, FeLogger, oDataModelHelper, CRUDActionHandler, StatePreserver, extend, isEmptyObject, FeError,
|
|
14
13
|
CommandComponentUtils) {
|
|
15
14
|
"use strict";
|
|
16
15
|
var sClassName = "lib.ComponentUtils";
|
|
@@ -1039,7 +1038,7 @@ sap.ui.define(["sap/ui/base/Object",
|
|
|
1039
1038
|
|
|
1040
1039
|
function isRenderingWaitingForViewportEntered () {
|
|
1041
1040
|
var oManifestSettings = getSettings();
|
|
1042
|
-
var useViewLazyLoadingFromUri =
|
|
1041
|
+
var useViewLazyLoadingFromUri = new URLSearchParams(window.location.search).get("sap-fe-xx-lazyloadingtest");
|
|
1043
1042
|
return useViewLazyLoadingFromUri != null ? useViewLazyLoadingFromUri === "true" : oManifestSettings.renderingBehavior && oManifestSettings.renderingBehavior.waitForViewportEnter;
|
|
1044
1043
|
}
|
|
1045
1044
|
|