@openui5/sap.ui.mdc 1.141.2 → 1.142.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/README.md +2 -2
- package/REUSE.toml +38 -0
- package/THIRDPARTY.txt +34 -1
- package/package.json +4 -4
- package/src/sap/ui/mdc/.library +1 -1
- package/src/sap/ui/mdc/ActionToolbar.js +1 -1
- package/src/sap/ui/mdc/Chart.js +1 -1
- package/src/sap/ui/mdc/Control.js +1 -1
- package/src/sap/ui/mdc/DefaultTypeMap.js +1 -1
- package/src/sap/ui/mdc/Element.js +1 -1
- package/src/sap/ui/mdc/Field.js +26 -3
- package/src/sap/ui/mdc/FilterBar.js +1 -1
- package/src/sap/ui/mdc/FilterField.js +2 -2
- package/src/sap/ui/mdc/Geomap.js +571 -0
- package/src/sap/ui/mdc/GeomapDelegate.js +285 -0
- package/src/sap/ui/mdc/GeomapRenderer.js +76 -0
- package/src/sap/ui/mdc/Link.js +1 -1
- package/src/sap/ui/mdc/MultiValueField.js +3 -3
- package/src/sap/ui/mdc/Table.js +117 -101
- package/src/sap/ui/mdc/TableDelegate.js +3 -2
- package/src/sap/ui/mdc/ValueHelp.js +1 -1
- package/src/sap/ui/mdc/ValueHelpDelegate.js +4 -1
- package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
- package/src/sap/ui/mdc/chart/ChartImplementationContainer.js +1 -1
- package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
- package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/chart/ToolbarControlFactory.js +1 -1
- package/src/sap/ui/mdc/condition/Condition.js +1 -1
- package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
- package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
- package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
- package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +1 -1
- package/src/sap/ui/mdc/condition/Operator.js +1 -1
- package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +1 -1
- package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
- package/src/sap/ui/mdc/designtime/geomap/Geomap.designtime.js +23 -0
- package/src/sap/ui/mdc/enums/GeomapControlPosition.js +46 -0
- package/src/sap/ui/mdc/field/ConditionType.js +1 -1
- package/src/sap/ui/mdc/field/ConditionTypeMixin.js +1 -1
- package/src/sap/ui/mdc/field/ConditionsType.js +1 -1
- package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
- package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +1 -1
- package/src/sap/ui/mdc/field/FieldBase.js +45 -20
- package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
- package/src/sap/ui/mdc/field/FieldInput.js +1 -1
- package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
- package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
- package/src/sap/ui/mdc/field/FieldSelect.js +1 -1
- package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
- package/src/sap/ui/mdc/field/MultiValueFieldDelegate.js +22 -0
- package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
- package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
- package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
- package/src/sap/ui/mdc/filterbar/FilterBarBase.js +35 -1
- package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +3 -0
- package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +1 -1
- package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
- package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
- package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
- package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/SortFlex.js +12 -5
- package/src/sap/ui/mdc/flexibility/Table.flexibility.js +17 -11
- package/src/sap/ui/mdc/flexibility/actiontoolbar/CombineAction.js +1 -1
- package/src/sap/ui/mdc/flexibility/actiontoolbar/SplitAction.js +1 -1
- package/src/sap/ui/mdc/flexibility/helpers/getAffectedSorter.js +25 -0
- package/src/sap/ui/mdc/geomap/Item.js +48 -0
- package/src/sap/ui/mdc/geomap/PropertyHelper.js +70 -0
- package/src/sap/ui/mdc/library.js +6 -4
- package/src/sap/ui/mdc/link/Factory.js +1 -1
- package/src/sap/ui/mdc/link/LinkItem.js +1 -1
- package/src/sap/ui/mdc/link/Panel.js +1 -1
- package/src/sap/ui/mdc/link/PanelItem.js +1 -1
- package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
- package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
- package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
- package/src/sap/ui/mdc/messagebundle.properties +13 -1
- package/src/sap/ui/mdc/messagebundle_de.properties +2 -2
- package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +9 -1
- package/src/sap/ui/mdc/messagebundle_fr.properties +1 -1
- package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
- package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
- package/src/sap/ui/mdc/mixin/FilterBarLayoutMixin.js +1 -1
- package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
- package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
- package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +1 -1
- package/src/sap/ui/mdc/odata/TypeMap.js +1 -1
- package/src/sap/ui/mdc/odata/v4/GeomapDelegate.js +60 -0
- package/src/sap/ui/mdc/odata/v4/TableDelegate.js +53 -2
- package/src/sap/ui/mdc/odata/v4/TypeMap.js +1 -1
- package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/p13n/StateUtil.js +1 -1
- package/src/sap/ui/mdc/p13n/subcontroller/ColumnFreezeController.js +1 -1
- package/src/sap/ui/mdc/p13n/subcontroller/ShowDetailsController.js +1 -1
- package/src/sap/ui/mdc/rules/Table.support.js +149 -118
- package/src/sap/ui/mdc/table/ColumnSettings.js +1 -1
- package/src/sap/ui/mdc/table/CreationRow.js +1 -1
- package/src/sap/ui/mdc/table/DragDropConfig.js +1 -1
- package/src/sap/ui/mdc/table/GridTableType.js +1 -14
- package/src/sap/ui/mdc/table/ODataV4PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/table/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/table/ResponsiveColumnSettings.js +1 -1
- package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
- package/src/sap/ui/mdc/table/RowSettings.js +1 -1
- package/src/sap/ui/mdc/table/utils/Personalization.js +1 -1
- package/src/sap/ui/mdc/themes/base/Geomap.less +50 -0
- package/src/sap/ui/mdc/ushell/SemanticObjectMapping.js +1 -1
- package/src/sap/ui/mdc/ushell/SemanticObjectMappingItem.js +1 -1
- package/src/sap/ui/mdc/ushell/SemanticObjectUnavailableAction.js +1 -1
- package/src/sap/ui/mdc/util/InfoBar.js +1 -1
- package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
- package/src/sap/ui/mdc/util/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/util/PropertyHelperUtil.js +1 -1
- package/src/sap/ui/mdc/valuehelp/Dialog.js +2 -2
- package/src/sap/ui/mdc/valuehelp/FilterBar.js +22 -3
- package/src/sap/ui/mdc/valuehelp/Popover.js +1 -1
- package/src/sap/ui/mdc/valuehelp/base/Container.js +1 -1
- package/src/sap/ui/mdc/valuehelp/base/Content.js +1 -1
- package/src/sap/ui/mdc/valuehelp/base/DefineConditionPanel.js +126 -25
- package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
- package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +4 -3
- package/src/sap/ui/mdc/valuehelp/base/ListContent.js +1 -1
- package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
- package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
- package/src/sap/ui/mdc/valuehelp/content/FixedList.js +1 -1
- package/src/sap/ui/mdc/valuehelp/content/FixedListItem.js +1 -1
- package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +1 -1
- package/src/sap/ui/mdc/valuehelp/content/MTable.js +1 -1
package/src/sap/ui/mdc/Table.js
CHANGED
|
@@ -954,7 +954,8 @@ sap.ui.define([
|
|
|
954
954
|
|
|
955
955
|
this._oManagedObjectModel = new ManagedObjectModel(this, {
|
|
956
956
|
hasGrandTotal: false,
|
|
957
|
-
activeP13nModes: createActiveP13nModesMap(this)
|
|
957
|
+
activeP13nModes: createActiveP13nModesMap(this),
|
|
958
|
+
rowCount: undefined
|
|
958
959
|
});
|
|
959
960
|
this._oManagedObjectModel.setDefaultBindingMode(BindingMode.OneWay);
|
|
960
961
|
this.setModel(this._oManagedObjectModel, "$sap.ui.mdc.Table");
|
|
@@ -981,6 +982,10 @@ sap.ui.define([
|
|
|
981
982
|
|
|
982
983
|
Control.prototype.applySettings.call(this, mSettings, oScope);
|
|
983
984
|
this.initControlDelegate();
|
|
985
|
+
|
|
986
|
+
// onModification is not called if changes are applied during XML preprocessing. For the initial validation, this call leads to duplicate log
|
|
987
|
+
// entries if changes are applied on runtime (onModification is called).
|
|
988
|
+
validateStateAgainstPropertyInfo(this);
|
|
984
989
|
};
|
|
985
990
|
|
|
986
991
|
Table.prototype._setToolbarBetween = function(oToolBar) {
|
|
@@ -1285,21 +1290,13 @@ sap.ui.define([
|
|
|
1285
1290
|
};
|
|
1286
1291
|
|
|
1287
1292
|
Table.prototype.setHeaderLevel = function(sLevel) {
|
|
1288
|
-
if (this.getHeaderLevel() === sLevel) {
|
|
1289
|
-
return this;
|
|
1290
|
-
}
|
|
1291
1293
|
this.setProperty("headerLevel", sLevel, true);
|
|
1292
|
-
this._oTitle?.setLevel(sLevel);
|
|
1293
1294
|
this._updateVariantManagementStyle();
|
|
1294
1295
|
return this;
|
|
1295
1296
|
};
|
|
1296
1297
|
|
|
1297
1298
|
Table.prototype.setHeaderStyle = function(sStyle) {
|
|
1298
|
-
if (this.getHeaderStyle() === sStyle) {
|
|
1299
|
-
return this;
|
|
1300
|
-
}
|
|
1301
1299
|
this.setProperty("headerStyle", sStyle, true);
|
|
1302
|
-
|
|
1303
1300
|
const sHeaderStyle = this.getHeaderStyle() || TitleLevel[ThemeParameters.get({name: "_sap_ui_mdc_Table_HeaderStyle"})];
|
|
1304
1301
|
this._oTitle?.setTitleStyle(sHeaderStyle);
|
|
1305
1302
|
this._updateVariantManagementStyle();
|
|
@@ -1352,6 +1349,7 @@ sap.ui.define([
|
|
|
1352
1349
|
if (this.getEnableColumnResize() !== bOldEnableColumnResize) {
|
|
1353
1350
|
this._updateColumnResize();
|
|
1354
1351
|
this._updateAdaptation();
|
|
1352
|
+
updateColumnMenu(this);
|
|
1355
1353
|
}
|
|
1356
1354
|
|
|
1357
1355
|
return this;
|
|
@@ -1384,8 +1382,51 @@ sap.ui.define([
|
|
|
1384
1382
|
await this.finalizePropertyHelper();
|
|
1385
1383
|
await this.rebind();
|
|
1386
1384
|
}
|
|
1385
|
+
|
|
1386
|
+
await validateStateAgainstPropertyInfo(this);
|
|
1387
1387
|
};
|
|
1388
1388
|
|
|
1389
|
+
/**
|
|
1390
|
+
* Validates the current state of the table against the available property info, and logs a warning in case of invalid state.
|
|
1391
|
+
*
|
|
1392
|
+
* If the property info is not final, the state is validated against the <code>propertyInfo</code> property if defined, otherwise validation is
|
|
1393
|
+
* scheduled after the property info is finalized after being fetched from the delegate.
|
|
1394
|
+
*
|
|
1395
|
+
* Validation succeeds if a state, such as a sort condition, was added and removed in the same change application, even if the property does not
|
|
1396
|
+
* exist.
|
|
1397
|
+
*
|
|
1398
|
+
* Columns are not validated. ItemBaseFlex throws an error if Delegate.addItem does not create a column for a property. This should be the case
|
|
1399
|
+
* if a property does not exist. However, if the delegate just makes something up and creates a column anyway, no validation error occurs
|
|
1400
|
+
* anywhere.
|
|
1401
|
+
*
|
|
1402
|
+
* @param {sap.ui.mdc.Table} oTable Instance of the table
|
|
1403
|
+
* @returns {Promise} Promise that resolves when validation is done
|
|
1404
|
+
*/
|
|
1405
|
+
async function validateStateAgainstPropertyInfo(oTable) {
|
|
1406
|
+
const oXConfig = oTable._getXConfig();
|
|
1407
|
+
const mState = {
|
|
1408
|
+
Sort: oTable._getSortedProperties().map((oSortCondition) => oSortCondition.name),
|
|
1409
|
+
Filter: getFilteredProperties(oTable.getFilterConditions()),
|
|
1410
|
+
"Group level": oTable._getGroupedProperties().map((oGroupCondition) => oGroupCondition.name),
|
|
1411
|
+
Aggregation: Object.keys(oTable._getAggregatedProperties()),
|
|
1412
|
+
"Column width": Object.keys(oXConfig?.aggregations?.columns || {}).filter((sKey) => oXConfig.aggregations.columns[sKey].width)
|
|
1413
|
+
};
|
|
1414
|
+
const oPropertyHelper = await oTable.awaitPropertyHelper();
|
|
1415
|
+
|
|
1416
|
+
if (oTable.isPropertyHelperFinal() || oPropertyHelper.getProperties().length > 0) {
|
|
1417
|
+
for (const sStateType in mState) {
|
|
1418
|
+
for (const sPropertyKey of mState[sStateType]) {
|
|
1419
|
+
if (!oPropertyHelper.hasProperty(sPropertyKey)) {
|
|
1420
|
+
Log.error(`Invalid state: ${sStateType} modification exists for non-existent property '${sPropertyKey}'`, oTable);
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
} else {
|
|
1425
|
+
await oTable.propertiesFinalized();
|
|
1426
|
+
await validateStateAgainstPropertyInfo(oTable);
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1389
1430
|
Table.prototype.setP13nMode = function(aMode) {
|
|
1390
1431
|
const aOldP13nMode = this.getP13nMode();
|
|
1391
1432
|
|
|
@@ -1422,6 +1463,8 @@ sap.ui.define([
|
|
|
1422
1463
|
|
|
1423
1464
|
if (!deepEqual(aOldP13nMode.sort(), this.getP13nMode().sort())) {
|
|
1424
1465
|
updateP13nSettings(this);
|
|
1466
|
+
updateColumnMenu(this);
|
|
1467
|
+
this.invalidate(); // Inner columns must update aria-haspopup
|
|
1425
1468
|
}
|
|
1426
1469
|
|
|
1427
1470
|
return this;
|
|
@@ -1467,6 +1510,16 @@ sap.ui.define([
|
|
|
1467
1510
|
this.getEngine().register(this, oRegisterConfig);
|
|
1468
1511
|
};
|
|
1469
1512
|
|
|
1513
|
+
function updateColumnMenu(oTable) {
|
|
1514
|
+
const bIsColumnMenuEnabled = oTable.getActiveP13nModes().length > 0 || oTable.getEnableColumnResize();
|
|
1515
|
+
|
|
1516
|
+
if (bIsColumnMenuEnabled) {
|
|
1517
|
+
oTable._createColumnHeaderMenu();
|
|
1518
|
+
} else {
|
|
1519
|
+
oTable._destroyColumnHeaderMenu();
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1470
1523
|
function updateP13nSettings(oTable) {
|
|
1471
1524
|
oTable._updateP13nButton();
|
|
1472
1525
|
|
|
@@ -1871,17 +1924,8 @@ sap.ui.define([
|
|
|
1871
1924
|
});
|
|
1872
1925
|
};
|
|
1873
1926
|
|
|
1874
|
-
Table.prototype.setHeader = function(sText) {
|
|
1875
|
-
this.setProperty("header", sText, true);
|
|
1876
|
-
this._updateHeaderText();
|
|
1877
|
-
return this;
|
|
1878
|
-
};
|
|
1879
|
-
|
|
1880
1927
|
Table.prototype.setHeaderVisible = function(bVisible) {
|
|
1881
1928
|
this.setProperty("headerVisible", bVisible, true);
|
|
1882
|
-
if (this._oTitle) {
|
|
1883
|
-
this._oTitle.setWidth(this.getHeaderVisible() ? undefined : "0px");
|
|
1884
|
-
}
|
|
1885
1929
|
this._updateInvisibleTitle();
|
|
1886
1930
|
this._updateVariantManagementStyle();
|
|
1887
1931
|
return this;
|
|
@@ -1903,12 +1947,6 @@ sap.ui.define([
|
|
|
1903
1947
|
}
|
|
1904
1948
|
};
|
|
1905
1949
|
|
|
1906
|
-
Table.prototype.setShowRowCount = function(bShowCount) {
|
|
1907
|
-
this.setProperty("showRowCount", bShowCount, true);
|
|
1908
|
-
this._updateHeaderText();
|
|
1909
|
-
return this;
|
|
1910
|
-
};
|
|
1911
|
-
|
|
1912
1950
|
Table.prototype.setEnableExport = function(bEnableExport) {
|
|
1913
1951
|
this.setProperty("enableExport", bEnableExport, true);
|
|
1914
1952
|
this._updateExportButton();
|
|
@@ -1969,11 +2007,29 @@ sap.ui.define([
|
|
|
1969
2007
|
}
|
|
1970
2008
|
|
|
1971
2009
|
if (!this._oToolbar) {
|
|
1972
|
-
// Create Title
|
|
1973
2010
|
this._oTitle = new Title(this.getId() + "-title", {
|
|
1974
|
-
text:
|
|
1975
|
-
|
|
1976
|
-
|
|
2011
|
+
text: {
|
|
2012
|
+
parts: [
|
|
2013
|
+
{path: "$sap.ui.mdc.Table>/header"},
|
|
2014
|
+
{path: "$sap.ui.mdc.Table>/showRowCount"},
|
|
2015
|
+
{path: "$sap.ui.mdc.Table>/@custom/rowCount"}
|
|
2016
|
+
],
|
|
2017
|
+
formatter: (sHeader, bShowRowCount, iRowCount) => {
|
|
2018
|
+
if (this._bAnnounceTableUpdate && !this._bSkipAnnounceTableUpdate) {
|
|
2019
|
+
this._bAnnounceTableUpdate = false;
|
|
2020
|
+
MTableUtil.announceTableUpdate(sHeader, bShowRowCount ? iRowCount : undefined);
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
if (bShowRowCount && iRowCount > 0) {
|
|
2024
|
+
this._oNumberFormatInstance ??= NumberFormat.getIntegerInstance({groupingEnabled: true});
|
|
2025
|
+
sHeader += ` (${this._oNumberFormatInstance.format(iRowCount)})`;
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
return sHeader;
|
|
2029
|
+
}
|
|
2030
|
+
},
|
|
2031
|
+
width: "{= ${$sap.ui.mdc.Table>/headerVisible} ? undefined : '0px' }",
|
|
2032
|
+
level: "{$sap.ui.mdc.Table>/headerLevel}",
|
|
1977
2033
|
titleStyle: this.getHeaderStyle() || TitleLevel[ThemeParameters.get({name: "_sap_ui_mdc_Table_HeaderStyle"})]
|
|
1978
2034
|
});
|
|
1979
2035
|
// Create Toolbar
|
|
@@ -2743,21 +2799,33 @@ sap.ui.define([
|
|
|
2743
2799
|
insertFilterInfoBar(this);
|
|
2744
2800
|
}
|
|
2745
2801
|
|
|
2746
|
-
|
|
2747
|
-
this._oQuickActionContainer = new QuickActionContainer({table: this});
|
|
2748
|
-
this._oColumnHeaderMenu = new ColumnMenu({
|
|
2749
|
-
id: this.getId() + "-columnHeaderMenu",
|
|
2750
|
-
showTableSettingsButton: true
|
|
2751
|
-
});
|
|
2752
|
-
this._oColumnHeaderMenu.addAggregation("_quickActions", this._oQuickActionContainer);
|
|
2753
|
-
this.addDependent(this._oColumnHeaderMenu);
|
|
2802
|
+
updateColumnMenu(this);
|
|
2754
2803
|
|
|
2755
|
-
|
|
2804
|
+
this._updateInvisibleTitle();
|
|
2805
|
+
};
|
|
2756
2806
|
|
|
2757
|
-
|
|
2807
|
+
Table.prototype._createColumnHeaderMenu = function() {
|
|
2808
|
+
if (this._oColumnHeaderMenu) {
|
|
2809
|
+
return;
|
|
2758
2810
|
}
|
|
2759
2811
|
|
|
2760
|
-
this.
|
|
2812
|
+
this._oQuickActionContainer = new QuickActionContainer({table: this});
|
|
2813
|
+
this._oColumnHeaderMenu = new ColumnMenu({
|
|
2814
|
+
id: this.getId() + "-columnHeaderMenu",
|
|
2815
|
+
showTableSettingsButton: true
|
|
2816
|
+
});
|
|
2817
|
+
this._oColumnHeaderMenu.addAggregation("_quickActions", this._oQuickActionContainer);
|
|
2818
|
+
this.addDependent(this._oColumnHeaderMenu);
|
|
2819
|
+
|
|
2820
|
+
FESRHelper.setSemanticStepname(this._oColumnHeaderMenu, "beforeOpen", "mdc:tbl:p13n:col");
|
|
2821
|
+
|
|
2822
|
+
this._oColumnHeaderMenu.attachBeforeOpen(this._createColumnMenuContent, this);
|
|
2823
|
+
};
|
|
2824
|
+
|
|
2825
|
+
Table.prototype._destroyColumnHeaderMenu = function() {
|
|
2826
|
+
this._oColumnHeaderMenu?.destroy();
|
|
2827
|
+
delete this._oColumnHeaderMenu;
|
|
2828
|
+
delete this._oQuickActionContainer;
|
|
2761
2829
|
};
|
|
2762
2830
|
|
|
2763
2831
|
Table.prototype._createColumnMenuContent = function(oEvent) {
|
|
@@ -3002,8 +3070,8 @@ sap.ui.define([
|
|
|
3002
3070
|
*
|
|
3003
3071
|
* @private
|
|
3004
3072
|
*/
|
|
3005
|
-
Table.prototype.
|
|
3006
|
-
this.
|
|
3073
|
+
Table.prototype._onBindingDataRequested = function() {
|
|
3074
|
+
this._bSkipAnnounceTableUpdate = true;
|
|
3007
3075
|
};
|
|
3008
3076
|
|
|
3009
3077
|
/**
|
|
@@ -3011,20 +3079,9 @@ sap.ui.define([
|
|
|
3011
3079
|
*
|
|
3012
3080
|
* @private
|
|
3013
3081
|
*/
|
|
3014
|
-
Table.prototype.
|
|
3015
|
-
this.
|
|
3016
|
-
this.
|
|
3017
|
-
};
|
|
3018
|
-
|
|
3019
|
-
/**
|
|
3020
|
-
* Event handler for binding createActivate
|
|
3021
|
-
*
|
|
3022
|
-
* @private
|
|
3023
|
-
*/
|
|
3024
|
-
Table.prototype._onCreateActivate = function() {
|
|
3025
|
-
Promise.resolve().then(() => {
|
|
3026
|
-
this._updateTableHeaderState();
|
|
3027
|
-
});
|
|
3082
|
+
Table.prototype._onBindingDataReceived = function() {
|
|
3083
|
+
this._bSkipAnnounceTableUpdate = false;
|
|
3084
|
+
this._updateRowCountForHeader();
|
|
3028
3085
|
};
|
|
3029
3086
|
|
|
3030
3087
|
/**
|
|
@@ -3034,54 +3091,14 @@ sap.ui.define([
|
|
|
3034
3091
|
*/
|
|
3035
3092
|
Table.prototype._onBindingChange = function() {
|
|
3036
3093
|
this.fireEvent("_bindingChange"); // consumed by sap.ui.mdc.valuehelp.content.MDCTable
|
|
3037
|
-
|
|
3038
3094
|
this._updateExpandAllButton();
|
|
3039
3095
|
this._updateCollapseAllButton();
|
|
3040
3096
|
this._updateExportButton();
|
|
3041
|
-
|
|
3042
|
-
/* skip calling of _updateHeaderText till data is received otherwise MTableUtil.announceTableUpdate
|
|
3043
|
-
will be called to early and the user gets an incorrect announcement via screen reader of the actual table state*/
|
|
3044
|
-
if (this._bIgnoreChange) {
|
|
3045
|
-
return;
|
|
3046
|
-
}
|
|
3047
|
-
this._updateTableHeaderState();
|
|
3048
|
-
};
|
|
3049
|
-
|
|
3050
|
-
/**
|
|
3051
|
-
* Updates the table header states, like the header text and the export button.
|
|
3052
|
-
*
|
|
3053
|
-
* @private
|
|
3054
|
-
*/
|
|
3055
|
-
Table.prototype._updateTableHeaderState = function() {
|
|
3056
|
-
this._updateHeaderText();
|
|
3097
|
+
this._updateRowCountForHeader();
|
|
3057
3098
|
};
|
|
3058
3099
|
|
|
3059
|
-
Table.prototype.
|
|
3060
|
-
|
|
3061
|
-
let iRowCount;
|
|
3062
|
-
|
|
3063
|
-
if (!this._oNumberFormatInstance) {
|
|
3064
|
-
this._oNumberFormatInstance = NumberFormat.getFloatInstance();
|
|
3065
|
-
}
|
|
3066
|
-
|
|
3067
|
-
if (this._oTitle && this.getHeader()) {
|
|
3068
|
-
sHeader = this.getHeader();
|
|
3069
|
-
if (this.getShowRowCount()) {
|
|
3070
|
-
iRowCount = this.getRowBinding() ? this.getRowBinding().getCount() : 0;
|
|
3071
|
-
if (iRowCount > 0) {
|
|
3072
|
-
const sValue = this._oNumberFormatInstance.format(iRowCount);
|
|
3073
|
-
sHeader += " (" + sValue + ")";
|
|
3074
|
-
}
|
|
3075
|
-
}
|
|
3076
|
-
|
|
3077
|
-
this._oTitle.setText(sHeader);
|
|
3078
|
-
}
|
|
3079
|
-
|
|
3080
|
-
if (!this._bIgnoreChange && this._bAnnounceTableUpdate) {
|
|
3081
|
-
this._bAnnounceTableUpdate = false;
|
|
3082
|
-
// iRowCount is undefined, if this.getShowRowCount() returns false
|
|
3083
|
-
MTableUtil.announceTableUpdate(this.getHeader(), iRowCount);
|
|
3084
|
-
}
|
|
3100
|
+
Table.prototype._updateRowCountForHeader = function() {
|
|
3101
|
+
this._oManagedObjectModel.setProperty("/@custom/rowCount", this.getRowBinding().getCount());
|
|
3085
3102
|
};
|
|
3086
3103
|
|
|
3087
3104
|
Table.prototype._updateColumnsBeforeBinding = function() {
|
|
@@ -3178,9 +3195,8 @@ sap.ui.define([
|
|
|
3178
3195
|
delete oBindingInfo.template;
|
|
3179
3196
|
}
|
|
3180
3197
|
|
|
3181
|
-
Table._addBindingListener(oBindingInfo, "dataRequested", this.
|
|
3182
|
-
Table._addBindingListener(oBindingInfo, "dataReceived", this.
|
|
3183
|
-
Table._addBindingListener(oBindingInfo, "createActivate", this._onCreateActivate.bind(this));
|
|
3198
|
+
Table._addBindingListener(oBindingInfo, "dataRequested", this._onBindingDataRequested.bind(this));
|
|
3199
|
+
Table._addBindingListener(oBindingInfo, "dataReceived", this._onBindingDataReceived.bind(this));
|
|
3184
3200
|
Table._addBindingListener(oBindingInfo, "change", this._onBindingChange.bind(this));
|
|
3185
3201
|
};
|
|
3186
3202
|
|
|
@@ -179,16 +179,17 @@ sap.ui.define([
|
|
|
179
179
|
* @protected
|
|
180
180
|
*/
|
|
181
181
|
TableDelegate.getGroupSorter = function(oTable) {
|
|
182
|
+
const oPropertyHelper = oTable.getPropertyHelper();
|
|
182
183
|
const oGroupLevel = oTable._getGroupedProperties()[0];
|
|
183
184
|
|
|
184
|
-
if (!oGroupLevel || !oTable._isOfType(TableType.ResponsiveTable)) {
|
|
185
|
+
if (!oGroupLevel || !oTable._isOfType(TableType.ResponsiveTable) || !oPropertyHelper.hasProperty(oGroupLevel.name)) {
|
|
185
186
|
return undefined;
|
|
186
187
|
}
|
|
187
188
|
|
|
188
189
|
const oSortedProperty = oTable._getSortedProperties().find((oSortCondition) => {
|
|
189
190
|
return oSortCondition.name === oGroupLevel.name;
|
|
190
191
|
});
|
|
191
|
-
const sPath =
|
|
192
|
+
const sPath = oPropertyHelper.getProperty(oGroupLevel.name).path;
|
|
192
193
|
const bDescending = oSortedProperty ? oSortedProperty.descending : false;
|
|
193
194
|
|
|
194
195
|
if (!oTable._mFormatGroupHeaderInfo || oTable._mFormatGroupHeaderInfo.propertyKey !== oGroupLevel.name) {
|
|
@@ -69,7 +69,7 @@ sap.ui.define([
|
|
|
69
69
|
* and {@link sap.ui.mdc.FilterField FilterField} controls using the <code>valueHelp</code> association. One <code>ValueHelp</code> element instance can be
|
|
70
70
|
* assigned to multiple fields (like in different table rows). It should be placed in the control tree on the container holding the fields.
|
|
71
71
|
* @extends sap.ui.mdc.Element
|
|
72
|
-
* @version 1.
|
|
72
|
+
* @version 1.142.0
|
|
73
73
|
* @constructor
|
|
74
74
|
* @abstract
|
|
75
75
|
* @public
|
|
@@ -141,7 +141,7 @@ sap.ui.define([
|
|
|
141
141
|
};
|
|
142
142
|
|
|
143
143
|
/**
|
|
144
|
-
* Returns filters that are used when updating the binding of the <code>ValueHelp</code>.<br/>By default, this method returns a set of {@link sap.ui.model.Filter Filters} originating from an available {@link sap.ui.mdc.FilterBar FilterBar}
|
|
144
|
+
* Returns filters that are used when updating the binding of the <code>ValueHelp</code>.<br/>By default, this method returns a set of {@link sap.ui.model.Filter Filters} originating from an available {@link sap.ui.mdc.FilterBar FilterBar} or the delegate's own {@link module:sap/ui/mdc/ValueHelpDelegate.getFilterConditions getFilterConditions} implementation.
|
|
145
145
|
*
|
|
146
146
|
* @param {sap.ui.mdc.ValueHelp} oValueHelp The <code>ValueHelp</code> control instance
|
|
147
147
|
* @param {sap.ui.mdc.valuehelp.base.FilterableListContent} oContent <code>ValueHelp</code> content requesting conditions configuration
|
|
@@ -415,6 +415,9 @@ sap.ui.define([
|
|
|
415
415
|
* @since 1.106.0
|
|
416
416
|
*/
|
|
417
417
|
ValueHelpDelegate.getFilterConditions = function (oValueHelp, oContent, oConfig) {
|
|
418
|
+
/**
|
|
419
|
+
* @deprecated since 1.106.0
|
|
420
|
+
*/
|
|
418
421
|
if (this.getInitialFilterConditions) {
|
|
419
422
|
return this.getInitialFilterConditions(oValueHelp, oContent, (oConfig && oConfig.control) || (oContent && oContent.getControl()));
|
|
420
423
|
}
|
|
@@ -27,7 +27,7 @@ sap.ui.define([
|
|
|
27
27
|
* The action for an {@link sap.ui.mdc.ActionToolbar ActionToolbar} control with given layout information that determines where the wrapped control is displayed on the <code>ActionToolbar</code>.
|
|
28
28
|
* @extends sap.ui.core.Control
|
|
29
29
|
* @author SAP SE
|
|
30
|
-
* @version 1.
|
|
30
|
+
* @version 1.142.0
|
|
31
31
|
* @constructor
|
|
32
32
|
* @since 1.58
|
|
33
33
|
* @public
|
|
@@ -21,7 +21,7 @@ sap.ui.define([
|
|
|
21
21
|
* @class The <code>ChartImplementationContainer</code> creates a container for the <code>content</code> (chart) and <code>noDataContent</code>. Based on the <code>showNoDataStruct</code> the <code>content</code> or <code>noDataContent</code> will be shown.
|
|
22
22
|
* @extends sap.ui.core.Control
|
|
23
23
|
* @author SAP SE
|
|
24
|
-
* @version 1.
|
|
24
|
+
* @version 1.142.0
|
|
25
25
|
* @constructor
|
|
26
26
|
*
|
|
27
27
|
* @public
|
|
@@ -38,7 +38,7 @@ sap.ui.define([
|
|
|
38
38
|
* @class The <code>ChartSelectionDetails</code> control creates a <code>sap.m.SelectionDetails</code> popover based on metadata and the configuration specified.
|
|
39
39
|
* @extends sap.m.SelectionDetails
|
|
40
40
|
* @author SAP SE
|
|
41
|
-
* @version 1.
|
|
41
|
+
* @version 1.142.0
|
|
42
42
|
* @constructor
|
|
43
43
|
* @public
|
|
44
44
|
* @experimental As of version 1.88
|
|
@@ -144,7 +144,7 @@ sap.ui.define([
|
|
|
144
144
|
* @param {function} [oConfiguration.getTextForCopy] Function to determine the text copied into clipboard
|
|
145
145
|
* @constructor
|
|
146
146
|
* @author SAP SE
|
|
147
|
-
* @version 1.
|
|
147
|
+
* @version 1.142.0
|
|
148
148
|
* @public
|
|
149
149
|
* @alias sap.ui.mdc.condition.Operator
|
|
150
150
|
* @since 1.73.0
|
|
@@ -39,7 +39,7 @@ sap.ui.define([
|
|
|
39
39
|
* @param {int[]|function} [oConfiguration.defaultValues] Array of values for the defaults of <code>RangeOperators</code> parameter. This can be a function, which returns the array of values. If not used the default for the values is 1.
|
|
40
40
|
* @constructor
|
|
41
41
|
* @author SAP SE
|
|
42
|
-
* @version 1.
|
|
42
|
+
* @version 1.142.0
|
|
43
43
|
* @public
|
|
44
44
|
* @alias sap.ui.mdc.condition.RangeOperator
|
|
45
45
|
* @since 1.74.0
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2025 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
sap.ui.define([
|
|
7
|
+
"sap/ui/mdc/Geomap", "../Util"
|
|
8
|
+
], (Geomap, Util) => {
|
|
9
|
+
"use strict";
|
|
10
|
+
|
|
11
|
+
const oDesignTime = {
|
|
12
|
+
actions: {
|
|
13
|
+
},
|
|
14
|
+
aggregations: {
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const aAllowedAggregations = ["items"],
|
|
19
|
+
aAllowedProperties = ["header", "zoom"];
|
|
20
|
+
|
|
21
|
+
return Util.getDesignTime(Geomap, aAllowedProperties, aAllowedAggregations, oDesignTime);
|
|
22
|
+
|
|
23
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2025 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Provides enumeration sap.ui.mdc.enums.GeomapControlPosition
|
|
8
|
+
sap.ui.define(["sap/ui/base/DataType"], (DataType) => {
|
|
9
|
+
"use strict";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Enumeration of the <code>position</code> property of the Geomap controls
|
|
13
|
+
*
|
|
14
|
+
* @enum {string}
|
|
15
|
+
* @public
|
|
16
|
+
* @ui5-experimental-since 1.142
|
|
17
|
+
* @alias sap.ui.mdc.enums.GeomapControlPosition
|
|
18
|
+
*/
|
|
19
|
+
const GeomapControlPosition = {
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The control is positioned in the top left corner of the page
|
|
23
|
+
*/
|
|
24
|
+
TopLeft: "TopLeft",
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The control is positioned in the top right corner of the page
|
|
28
|
+
*/
|
|
29
|
+
TopRight: "TopRight",
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* The control is positioned in the bottom left corner of the page
|
|
33
|
+
*/
|
|
34
|
+
BottomLeft: "BottomLeft",
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The control is positioned in the bottom right corner of the page
|
|
38
|
+
*/
|
|
39
|
+
BottomRight: "BottomRight"
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
DataType.registerEnum("sap.ui.mdc.enums.GeomapControlPosition", GeomapControlPosition);
|
|
43
|
+
|
|
44
|
+
return GeomapControlPosition;
|
|
45
|
+
|
|
46
|
+
}, /* bExport= */ true);
|
|
@@ -16,7 +16,7 @@ sap.ui.define([
|
|
|
16
16
|
* @param {object} [mSettings] Initial settings for the new control
|
|
17
17
|
* @class A field help used in the <code>FieldInfo</code> aggregation in <code>FieldBase</code> controls that allows you to add custom content.
|
|
18
18
|
* @extends sap.ui.mdc.field.FieldInfoBase
|
|
19
|
-
* @version 1.
|
|
19
|
+
* @version 1.142.0
|
|
20
20
|
* @constructor
|
|
21
21
|
* @private
|
|
22
22
|
* @ui5-restricted sap.fe
|