@openui5/sap.ui.mdc 1.96.5 → 1.99.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/.reuse/dep5 +26 -31
- package/THIRDPARTY.txt +15 -21
- package/package.json +4 -4
- package/src/sap/ui/mdc/.library +1 -1
- package/src/sap/ui/mdc/ActionToolbar.js +7 -9
- package/src/sap/ui/mdc/AggregationBaseDelegate.js +2 -2
- package/src/sap/ui/mdc/BaseDelegate.js +1 -1
- package/src/sap/ui/mdc/Chart.js +1100 -1796
- package/src/sap/ui/mdc/ChartDelegate.js +429 -270
- package/src/sap/ui/mdc/ChartRenderer.js +73 -77
- package/src/sap/ui/mdc/Control.js +1 -1
- package/src/sap/ui/mdc/Element.js +1 -1
- package/src/sap/ui/mdc/Field.js +3 -2
- package/src/sap/ui/mdc/FilterBar.js +3 -2
- package/src/sap/ui/mdc/FilterField.js +25 -8
- package/src/sap/ui/mdc/Link.js +23 -4
- package/src/sap/ui/mdc/LinkDelegate.js +3 -3
- package/src/sap/ui/mdc/MultiValueField.js +21 -6
- package/src/sap/ui/mdc/Table.js +204 -161
- package/src/sap/ui/mdc/TableDelegate.js +47 -17
- package/src/sap/ui/mdc/ValueHelp.js +51 -15
- package/src/sap/ui/mdc/ValueHelpDelegate.js +20 -0
- package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +2 -2
- package/src/sap/ui/mdc/{chartNew/ChartSelectionDetailsNew.js → chart/ChartSelectionDetails.js} +8 -8
- package/src/sap/ui/mdc/{chartNew/ChartToolbarNew.js → chart/ChartToolbar.js} +49 -13
- package/src/sap/ui/mdc/chart/ChartTypeButton.js +55 -54
- package/src/sap/ui/mdc/{chartNew/DrillBreadcrumbsNew.js → chart/DrillBreadcrumbs.js} +3 -3
- package/src/sap/ui/mdc/chart/DrillStackHandler.js +38 -249
- package/src/sap/ui/mdc/chart/Item.js +62 -92
- package/src/sap/ui/mdc/{chartNew/PropertyHelperNew.js → chart/PropertyHelper.js} +3 -3
- package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +17 -21
- 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 +261 -44
- package/src/sap/ui/mdc/condition/Operator.js +9 -9
- package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +437 -0
- package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
- package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +80 -5
- package/src/sap/ui/mdc/designtime/field/Field.designtime.js +97 -0
- package/src/sap/ui/mdc/designtime/field/FieldBase.designtime.js +104 -0
- package/src/sap/ui/mdc/designtime/field/FilterField.designtime.js +22 -0
- package/src/sap/ui/mdc/designtime/field/MultiValueField.designtime.js +23 -0
- package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +3 -0
- package/src/sap/ui/mdc/designtime/table/Table.designtime.js +60 -20
- package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/ConditionType.js +9 -9
- package/src/sap/ui/mdc/field/ConditionsType.js +7 -7
- package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
- package/src/sap/ui/mdc/field/DefineConditionPanel.js +75 -27
- package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +311 -0
- package/src/sap/ui/mdc/field/FieldBase.js +85 -52
- package/src/sap/ui/mdc/field/FieldBaseRenderer.js +0 -3
- package/src/sap/ui/mdc/field/FieldHelpBase.js +2 -2
- package/src/sap/ui/mdc/field/FieldInfoBase.js +23 -10
- 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/FieldValueHelp.js +7 -7
- package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +20 -0
- package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +2 -2
- package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +7 -3
- package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +1 -1
- package/src/sap/ui/mdc/field/InParameter.js +1 -1
- package/src/sap/ui/mdc/field/ListFieldHelp.js +10 -2
- package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
- package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
- package/src/sap/ui/mdc/field/OutParameter.js +1 -1
- package/src/sap/ui/mdc/field/TokenDisplay.js +70 -0
- package/src/sap/ui/mdc/field/TokenDisplayRenderer.js +24 -0
- package/src/sap/ui/mdc/field/TokenizerDisplay.js +80 -0
- package/src/sap/ui/mdc/field/TokenizerDisplayRenderer.js +69 -0
- package/src/sap/ui/mdc/field/ValueHelpPanel.js +2 -1
- package/src/sap/ui/mdc/field/content/BooleanContent.js +1 -1
- package/src/sap/ui/mdc/field/content/ContentFactory.js +28 -26
- package/src/sap/ui/mdc/field/content/DateContent.js +128 -2
- package/src/sap/ui/mdc/field/content/DateTimeContent.js +9 -1
- package/src/sap/ui/mdc/field/content/DefaultContent.js +36 -14
- package/src/sap/ui/mdc/field/content/LinkContent.js +1 -1
- package/src/sap/ui/mdc/field/content/TimeContent.js +8 -1
- package/src/sap/ui/mdc/field/content/UnitContent.js +23 -4
- package/src/sap/ui/mdc/filterbar/FilterBarBase.js +359 -142
- package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +1 -1
- package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +8 -2
- package/src/sap/ui/mdc/filterbar/vh/CollectiveSearchSelect.js +3 -1
- package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +7 -1
- package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +6 -6
- package/src/sap/ui/mdc/flexibility/AggregateFlex.js +2 -2
- package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +6 -4
- package/src/sap/ui/mdc/flexibility/ColumnFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +4 -3
- package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/GroupFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/Panel.flexibility.js +9 -3
- package/src/sap/ui/mdc/flexibility/PropertyInfoFlex.js +110 -0
- package/src/sap/ui/mdc/flexibility/SortFlex.js +2 -2
- package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +6 -6
- package/src/sap/ui/mdc/library.js +62 -43
- package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
- package/src/sap/ui/mdc/link/Factory.js +2 -2
- package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
- package/src/sap/ui/mdc/link/LinkItem.js +1 -1
- package/src/sap/ui/mdc/link/Log.js +1 -1
- package/src/sap/ui/mdc/link/Panel.js +140 -177
- package/src/sap/ui/mdc/link/PanelItem.js +1 -1
- package/src/sap/ui/mdc/link/PanelListItem.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 +68 -5
- package/src/sap/ui/mdc/messagebundle_ar.properties +47 -6
- package/src/sap/ui/mdc/messagebundle_bg.properties +61 -20
- package/src/sap/ui/mdc/messagebundle_ca.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_cs.properties +60 -19
- package/src/sap/ui/mdc/messagebundle_cy.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_da.properties +52 -11
- package/src/sap/ui/mdc/messagebundle_de.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_el.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_en.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_en_GB.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +51 -2
- package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +51 -2
- package/src/sap/ui/mdc/messagebundle_es.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_es_MX.properties +59 -18
- package/src/sap/ui/mdc/messagebundle_et.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_fi.properties +51 -10
- package/src/sap/ui/mdc/messagebundle_fr.properties +50 -9
- package/src/sap/ui/mdc/messagebundle_fr_CA.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_hi.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_hr.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_hu.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_id.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_it.properties +61 -20
- package/src/sap/ui/mdc/messagebundle_iw.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_ja.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_kk.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_ko.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_lt.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_lv.properties +49 -8
- package/src/sap/ui/mdc/messagebundle_ms.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_nl.properties +49 -8
- package/src/sap/ui/mdc/messagebundle_no.properties +53 -12
- package/src/sap/ui/mdc/messagebundle_pl.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_pt.properties +52 -11
- package/src/sap/ui/mdc/messagebundle_pt_PT.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_ro.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_ru.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_sh.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_sk.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_sl.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_sv.properties +47 -6
- package/src/sap/ui/mdc/messagebundle_th.properties +48 -7
- package/src/sap/ui/mdc/messagebundle_tr.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_uk.properties +49 -8
- package/src/sap/ui/mdc/messagebundle_vi.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_zh_CN.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_zh_TW.properties +45 -4
- package/src/sap/ui/mdc/mixin/AdaptationMixin.js +19 -5
- package/src/sap/ui/mdc/mixin/DelegateMixin.js +2 -2
- package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +16 -11
- package/src/sap/ui/mdc/mixin/PromiseMixin.js +2 -3
- package/src/sap/ui/mdc/odata/TypeUtil.js +1 -1
- package/src/sap/ui/mdc/odata/v4/ChartDelegate.js +29 -483
- package/src/sap/ui/mdc/odata/v4/{ChartPropertyHelperNew.js → ChartPropertyHelper.js} +5 -5
- package/src/sap/ui/mdc/odata/v4/TableDelegate.js +160 -116
- package/src/sap/ui/mdc/odata/v4/TypeUtil.js +1 -1
- package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +1 -1
- package/src/sap/ui/mdc/odata/v4/util/DelegateUtil.js +1 -1
- package/src/sap/ui/mdc/odata/v4/vizChart/{ChartDelegateNew.js → ChartDelegate.js} +215 -116
- package/src/sap/ui/mdc/p13n/Engine.js +61 -20
- package/src/sap/ui/mdc/p13n/FlexUtil.js +11 -118
- package/src/sap/ui/mdc/p13n/P13nBuilder.js +8 -8
- package/src/sap/ui/mdc/p13n/PersistenceProvider.js +21 -10
- package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/p13n/StateUtil.js +40 -6
- package/src/sap/ui/mdc/p13n/UIManager.js +15 -12
- package/src/sap/ui/mdc/p13n/modification/FlexModificationHandler.js +4 -1
- package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +9 -6
- package/src/sap/ui/mdc/p13n/{DefaultProviderRegistry.js → modules/DefaultProviderRegistry.js} +2 -2
- package/src/sap/ui/mdc/p13n/modules/StateHandlerRegistry.js +86 -0
- package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +19 -3
- package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1092 -48
- package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +72 -0
- package/src/sap/ui/mdc/p13n/panels/ListView.js +6 -2
- package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +6 -5
- package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +1 -1
- package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +156 -11
- package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +15 -26
- package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +6 -5
- package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +14 -7
- package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +173 -0
- package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +10 -17
- package/src/sap/ui/mdc/table/Column.js +35 -10
- package/src/sap/ui/mdc/table/CreationRow.js +14 -13
- package/src/sap/ui/mdc/table/GridTableType.js +13 -13
- package/src/sap/ui/mdc/table/PropertyHelper.js +64 -27
- package/src/sap/ui/mdc/table/ResponsiveTableType.js +26 -29
- package/src/sap/ui/mdc/table/RowSettings.js +7 -5
- package/src/sap/ui/mdc/table/TableTypeBase.js +6 -6
- package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +15 -71
- package/src/sap/ui/mdc/themes/base/Chart.less +3 -0
- package/src/sap/ui/mdc/themes/base/FieldBase.less +0 -5
- package/src/sap/ui/mdc/themes/base/TokenDisplay.less +89 -0
- package/src/sap/ui/mdc/themes/base/TokenizerDisplay.less +90 -0
- package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +15 -4
- package/src/sap/ui/mdc/themes/base/library.source.less +3 -0
- package/src/sap/ui/mdc/ui/Container.js +2 -2
- package/src/sap/ui/mdc/ui/ContainerItem.js +2 -2
- package/src/sap/ui/mdc/util/Common.js +1 -1
- package/src/sap/ui/mdc/util/DateUtil.js +1 -1
- package/src/sap/ui/mdc/util/FilterUtil.js +1 -1
- package/src/sap/ui/mdc/util/FormatUtil.js +3 -3
- package/src/sap/ui/mdc/util/IdentifierUtil.js +6 -6
- package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
- package/src/sap/ui/mdc/util/PropertyHelper.js +148 -325
- package/src/sap/ui/mdc/util/TypeUtil.js +5 -4
- package/src/sap/ui/mdc/valuehelp/Dialog.js +12 -8
- package/src/sap/ui/mdc/valuehelp/Popover.js +14 -2
- package/src/sap/ui/mdc/valuehelp/base/Container.js +33 -1
- package/src/sap/ui/mdc/valuehelp/base/Content.js +36 -5
- package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +2 -1
- package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +43 -15
- package/src/sap/ui/mdc/valuehelp/base/ListContent.js +2 -1
- package/src/sap/ui/mdc/valuehelp/content/Bool.js +2 -1
- package/src/sap/ui/mdc/valuehelp/content/Conditions.js +28 -32
- package/src/sap/ui/mdc/valuehelp/content/FixedList.js +11 -5
- package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +50 -10
- package/src/sap/ui/mdc/valuehelp/content/MTable.js +57 -26
- package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +3 -1
- package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +3 -3
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsBase.js +3 -3
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsViz.js +0 -0
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsBase.js +1 -1
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsViz.js +0 -0
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ChartNew.js +0 -0
- package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +289 -0
- package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +7 -7
- package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +9 -9
- package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +12 -11
- package/test/sap/ui/mdc/testutils/opa/link/Actions.js +85 -0
- package/test/sap/ui/mdc/testutils/opa/link/Assertions.js +79 -0
- package/test/sap/ui/mdc/testutils/opa/link/TestObjects.js +112 -0
- package/test/sap/ui/mdc/testutils/opa/link/waitForLink.js +50 -0
- package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +362 -233
- package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +27 -26
- package/test/sap/ui/mdc/testutils/opa/valueHelp/Actions.js +54 -0
- package/test/sap/ui/mdc/testutils/opa/valueHelp/Assertions.js +5 -0
- package/test/sap/ui/mdc/testutils/opa/valueHelp/TestObjects.js +40 -0
- package/test/sap/ui/mdc/testutils/opa/valueHelp/Util.js +28 -0
- package/src/sap/ui/mdc/ChartDelegateNew.js +0 -395
- package/src/sap/ui/mdc/ChartNew.js +0 -1114
- package/src/sap/ui/mdc/ChartNewRenderer.js +0 -91
- package/src/sap/ui/mdc/chart/DimensionItem.js +0 -281
- package/src/sap/ui/mdc/chart/MeasureItem.js +0 -318
- package/src/sap/ui/mdc/chart/MetadataDelegate.js +0 -31
- package/src/sap/ui/mdc/chart/SelectionHandler.js +0 -127
- package/src/sap/ui/mdc/chart/ToolbarHandler.js +0 -328
- package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +0 -295
- package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +0 -212
- package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -72
- package/src/sap/ui/mdc/chartNew/SelectionDetailsActionsNew.js +0 -34
- package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +0 -91
- package/src/sap/ui/mdc/link/SelectionDialog.control.xml +0 -66
- package/src/sap/ui/mdc/link/SelectionDialog.js +0 -213
- package/src/sap/ui/mdc/link/SelectionDialogItem.js +0 -86
- package/src/sap/ui/mdc/odata/v4/ChartDelegateNew.js +0 -35
- package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +0 -1171
- package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +0 -111
- package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +0 -322
- package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +0 -133
- package/src/sap/ui/mdc/p13n/panels/Wrapper.js +0 -203
|
@@ -21,6 +21,37 @@ sap.ui.define([
|
|
|
21
21
|
|
|
22
22
|
/*global Set, WeakMap */
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* @typedef {object} sap.ui.mdc.util.PropertyInfo
|
|
26
|
+
*
|
|
27
|
+
* @property {string} name
|
|
28
|
+
* Unique, stable key for the property. It must only contain characters allowed for IDs, see {@link sap.ui.core.ID}. Does not have to be an
|
|
29
|
+
* existing attribute in the data model or the technical name of an attribute in the data model.
|
|
30
|
+
* @property {string} [path]
|
|
31
|
+
* The technical path for a data source property.
|
|
32
|
+
* @property {string} label
|
|
33
|
+
* Translatable text that labels the property.
|
|
34
|
+
* @property {boolean} [visible=true]
|
|
35
|
+
* Whether the property is or can be visible to a user.
|
|
36
|
+
* @property {string[]} [propertyInfos]
|
|
37
|
+
* The availability of this property makes <code>PropertyInfo</code> a complex <code>PropertyInfo</code>. Provides a list of related properties
|
|
38
|
+
* (by name).
|
|
39
|
+
* These related properties must be no complex <code>PropertyInfo</code> to avoid deep nesting.
|
|
40
|
+
* @property {object} [typeConfig]
|
|
41
|
+
* Object which contains type-specific information about the property, especially the type instance (for example, for model filter creation in
|
|
42
|
+
* Table <code>rebind</code>).
|
|
43
|
+
* @property {object} [extension]
|
|
44
|
+
* Reserved attribute. Must not be provided by the delegate directly as part of the <code>PropertyInfo</code>, but separately in
|
|
45
|
+
* the <code>fetchPropertyExtensions</code> method of the delegate. The <code>PropertyInfoExtension</code> is a key-value map where the key is
|
|
46
|
+
* the property name and the value is the additional information. The structure of the additional information depends on the delegate.
|
|
47
|
+
* Used to add model-specific information. For example, for analytics in OData, see sap.ui.mdc.odata.v4.TableDelegate.
|
|
48
|
+
*
|
|
49
|
+
* @private
|
|
50
|
+
* @experimental
|
|
51
|
+
* @ui5-restricted sap.fe
|
|
52
|
+
* MDC_PUBLIC_CANDIDATE
|
|
53
|
+
*/
|
|
54
|
+
|
|
24
55
|
/*
|
|
25
56
|
* Key-value map to define the characteristics of a property attribute, where the key is the name of the attribute.
|
|
26
57
|
*
|
|
@@ -44,7 +75,7 @@ sap.ui.define([
|
|
|
44
75
|
* attribute. The default value of this attribute is then the value of the other attribute. This works only one level deep.
|
|
45
76
|
* Examples: "attribute:name", "attribute:attributeName.subAttributeName"
|
|
46
77
|
*/
|
|
47
|
-
var mAttributeMetadata = {
|
|
78
|
+
var mAttributeMetadata = { // TODO: "allowedForComplexProperty" propagation to children + reserved reference attribute, e.g. unit -> unitProperty
|
|
48
79
|
// Common
|
|
49
80
|
name: { // Unique key
|
|
50
81
|
type: "string", // TODO: sap.ui.core.ID cannot be used currently, because some OPA tests fail
|
|
@@ -61,7 +92,6 @@ sap.ui.define([
|
|
|
61
92
|
defaultValue: true,
|
|
62
93
|
allowedForComplexProperty: true
|
|
63
94
|
},
|
|
64
|
-
// TODO: Is there a valid use-case for name !== path? Can two properties having the same path cause problems (e.g. for sort/filter)?
|
|
65
95
|
path: { // The technical path for a data source property.
|
|
66
96
|
type: "string",
|
|
67
97
|
valueForComplexProperty: null
|
|
@@ -75,7 +105,6 @@ sap.ui.define([
|
|
|
75
105
|
baseType: {
|
|
76
106
|
type: "string"
|
|
77
107
|
},
|
|
78
|
-
// TODO: Avoid instances in property infos. Create them on demand, poss. in a getter.
|
|
79
108
|
typeInstance: {
|
|
80
109
|
type: "object" // sap.ui.model.SimpleType
|
|
81
110
|
}
|
|
@@ -152,11 +181,79 @@ sap.ui.define([
|
|
|
152
181
|
}
|
|
153
182
|
|
|
154
183
|
// Reserved attributes
|
|
155
|
-
// extension - Used to add model-specific information. For example, for analytics in OData, see sap
|
|
184
|
+
// extension - Used to add model-specific information. For example, for analytics in OData, see sap/ui/mdc/odata/v4/TableDelegate.
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* The methods listed in this map are added to every <code>PropertyInfo</code> object.
|
|
189
|
+
*/
|
|
190
|
+
var mPropertyMethods = {
|
|
191
|
+
/**
|
|
192
|
+
* Checks whether the property is complex.
|
|
193
|
+
*
|
|
194
|
+
* @this PropertyInfo
|
|
195
|
+
* @returns {boolean|null} Whether the property is complex
|
|
196
|
+
*/
|
|
197
|
+
isComplex: function() {
|
|
198
|
+
return PropertyHelper.isPropertyComplex(this);
|
|
199
|
+
},
|
|
200
|
+
/**
|
|
201
|
+
* Gets all properties referenced by the property.
|
|
202
|
+
*
|
|
203
|
+
* @this PropertyInfo
|
|
204
|
+
* @returns {object[]} The referenced properties
|
|
205
|
+
*/
|
|
206
|
+
getReferencedProperties: function() {
|
|
207
|
+
// TODO: Return all referenced properties, e.g. unit, text, etc.?
|
|
208
|
+
return this.propertyInfosProperties || [];
|
|
209
|
+
},
|
|
210
|
+
/**
|
|
211
|
+
* Gets all sortable properties referenced by the property, including the property itself if it is not complex.
|
|
212
|
+
*
|
|
213
|
+
* @this PropertyInfo
|
|
214
|
+
* @returns {object[]} The sortable properties
|
|
215
|
+
*/
|
|
216
|
+
getSortableProperties: function() {
|
|
217
|
+
return extractProperties(this, function(oProperty) {
|
|
218
|
+
return oProperty.sortable;
|
|
219
|
+
});
|
|
220
|
+
},
|
|
221
|
+
/**
|
|
222
|
+
* Gets all filterable properties referenced by the property, including the property itself if it is not complex.
|
|
223
|
+
*
|
|
224
|
+
* @this PropertyInfo
|
|
225
|
+
* @returns {object[]} The filterable properties
|
|
226
|
+
*/
|
|
227
|
+
getFilterableProperties: function() {
|
|
228
|
+
return extractProperties(this, function(oProperty) {
|
|
229
|
+
return oProperty.filterable;
|
|
230
|
+
});
|
|
231
|
+
},
|
|
232
|
+
/**
|
|
233
|
+
* Gets all groupable properties referenced by the property, including the property itself if it is not complex.
|
|
234
|
+
*
|
|
235
|
+
* @this PropertyInfo
|
|
236
|
+
* @returns {object[]} The groupable properties
|
|
237
|
+
*/
|
|
238
|
+
getGroupableProperties: function() {
|
|
239
|
+
return extractProperties(this, function(oProperty) {
|
|
240
|
+
return oProperty.groupable;
|
|
241
|
+
});
|
|
242
|
+
},
|
|
243
|
+
/**
|
|
244
|
+
* Gets all visible properties referenced by the property, including the property itself if it is not complex.
|
|
245
|
+
*
|
|
246
|
+
* @this PropertyInfo
|
|
247
|
+
* @returns {object[]} The visible properties
|
|
248
|
+
*/
|
|
249
|
+
getVisibleProperties: function() {
|
|
250
|
+
return extractProperties(this, function(oProperty) {
|
|
251
|
+
return oProperty.visible;
|
|
252
|
+
});
|
|
253
|
+
}
|
|
156
254
|
};
|
|
157
255
|
|
|
158
256
|
var aCommonAttributes = ["name", "label", "visible", "path", "typeConfig", "maxConditions", "group", "groupLabel", "caseSensitive"];
|
|
159
|
-
var aPropertyMethods = [];
|
|
160
257
|
var _private = new WeakMap();
|
|
161
258
|
|
|
162
259
|
function stringifyPlainObject(oObject) {
|
|
@@ -179,11 +276,12 @@ sap.ui.define([
|
|
|
179
276
|
|
|
180
277
|
function enrichProperties(oPropertyHelper, aProperties) {
|
|
181
278
|
aProperties.map(function(oProperty) {
|
|
182
|
-
|
|
279
|
+
Object.keys(mPropertyMethods).forEach(function(sMethod) {
|
|
183
280
|
Object.defineProperty(oProperty, sMethod, {
|
|
184
281
|
value: function() {
|
|
185
|
-
return
|
|
186
|
-
}
|
|
282
|
+
return mPropertyMethods[sMethod].call(this);
|
|
283
|
+
},
|
|
284
|
+
writable: true
|
|
187
285
|
});
|
|
188
286
|
});
|
|
189
287
|
});
|
|
@@ -192,22 +290,19 @@ sap.ui.define([
|
|
|
192
290
|
function deepFreeze(oObject) {
|
|
193
291
|
var aKeys = Object.getOwnPropertyNames(oObject);
|
|
194
292
|
|
|
293
|
+
Object.freeze(oObject);
|
|
294
|
+
|
|
195
295
|
for (var i = 0; i < aKeys.length; i++) {
|
|
196
296
|
var vValue = oObject[aKeys[i]];
|
|
197
|
-
var bValueIsArray = Array.isArray(vValue);
|
|
198
297
|
|
|
199
|
-
if (
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
deepFreeze(vValue);
|
|
206
|
-
}
|
|
298
|
+
if (typeof vValue === "function") {
|
|
299
|
+
Object.freeze(vValue);
|
|
300
|
+
} else if (isPlainObject(vValue) && !Object.isFrozen(vValue)) {
|
|
301
|
+
deepFreeze(vValue);
|
|
302
|
+
} else if (Array.isArray(vValue)) {
|
|
303
|
+
deepFreeze(vValue);
|
|
207
304
|
}
|
|
208
305
|
}
|
|
209
|
-
|
|
210
|
-
return Object.freeze(oObject);
|
|
211
306
|
}
|
|
212
307
|
|
|
213
308
|
function deepFind(oObject, sPath) {
|
|
@@ -253,7 +348,7 @@ sap.ui.define([
|
|
|
253
348
|
function preparePropertyDeep(oPropertyHelper, oProperty, mProperties, sPath, oPropertySection, mAttributeSection) {
|
|
254
349
|
var bTopLevel = sPath == null;
|
|
255
350
|
var aDependenciesForDefaults = [];
|
|
256
|
-
var bIsComplex =
|
|
351
|
+
var bIsComplex = PropertyHelper.isPropertyComplex(oProperty);
|
|
257
352
|
|
|
258
353
|
if (bTopLevel) {
|
|
259
354
|
mAttributeSection = _private.get(oPropertyHelper).mAttributeMetadata;
|
|
@@ -303,16 +398,19 @@ sap.ui.define([
|
|
|
303
398
|
function preparePropertyReferences(oPropertySection, sAttribute, mProperties) {
|
|
304
399
|
var vPropertyReference = oPropertySection[sAttribute];
|
|
305
400
|
var vProperties;
|
|
401
|
+
var sPropertyName = sAttribute;
|
|
306
402
|
|
|
307
403
|
if (Array.isArray(vPropertyReference)) {
|
|
308
404
|
vProperties = vPropertyReference.map(function(sName) {
|
|
309
405
|
return mProperties[sName];
|
|
310
406
|
});
|
|
407
|
+
sPropertyName += "Properties";
|
|
311
408
|
} else {
|
|
312
409
|
vProperties = mProperties[vPropertyReference];
|
|
410
|
+
sPropertyName += "Property";
|
|
313
411
|
}
|
|
314
412
|
|
|
315
|
-
Object.defineProperty(oPropertySection,
|
|
413
|
+
Object.defineProperty(oPropertySection, sPropertyName, {
|
|
316
414
|
value: vProperties
|
|
317
415
|
});
|
|
318
416
|
}
|
|
@@ -345,22 +443,14 @@ sap.ui.define([
|
|
|
345
443
|
}, {}));
|
|
346
444
|
}
|
|
347
445
|
|
|
348
|
-
function extractProperties(
|
|
349
|
-
var oProperty = oPropertyHelper.getProperty(sPropertyName);
|
|
350
|
-
|
|
351
|
-
if (!oProperty) {
|
|
352
|
-
return [];
|
|
353
|
-
}
|
|
354
|
-
|
|
446
|
+
function extractProperties(oProperty, fnFilter) {
|
|
355
447
|
if (oProperty.isComplex()) {
|
|
356
|
-
return oProperty.getReferencedProperties().filter(
|
|
357
|
-
|
|
358
|
-
});
|
|
359
|
-
} else if (fnFilter.call(oPropertyHelper, oProperty.getName())) {
|
|
448
|
+
return oProperty.getReferencedProperties().filter(fnFilter);
|
|
449
|
+
} else if (fnFilter(oProperty)) {
|
|
360
450
|
return [oProperty];
|
|
451
|
+
} else {
|
|
452
|
+
return [];
|
|
361
453
|
}
|
|
362
|
-
|
|
363
|
-
return [];
|
|
364
454
|
}
|
|
365
455
|
|
|
366
456
|
function mergeExtensionsIntoProperties(aProperties, mExtensions) {
|
|
@@ -398,21 +488,21 @@ sap.ui.define([
|
|
|
398
488
|
* @param {sap.ui.base.ManagedObject} [oParent]
|
|
399
489
|
* A reference to an instance that will act as the parent of this helper
|
|
400
490
|
* @param {string[]} [aAllowedAttributes]
|
|
401
|
-
* List of attributes the
|
|
491
|
+
* List of attributes that the <code>PropertyInfo</code> may contain.
|
|
402
492
|
* The following common attributes are always allowed:
|
|
403
493
|
* name, label, visible, path, typeConfig, maxConditions, group, groupLabel
|
|
404
494
|
* @param {object} [mExtensionAttributeMetadata]
|
|
405
495
|
* The attribute metadata for the model-specific property extension
|
|
406
496
|
*
|
|
407
497
|
* @class
|
|
408
|
-
* Property helpers
|
|
498
|
+
* Property helpers in this SAPUI5 library provide a consistent and standardized structure of properties and their attributes.
|
|
409
499
|
* Validates the given properties, sets defaults, and provides utilities to work with these properties.
|
|
410
500
|
* The utilities can only be used for properties that are known to the helper. Known properties are all those that are passed to the constructor.
|
|
411
501
|
*
|
|
412
502
|
* @extends sap.ui.base.Object
|
|
413
503
|
*
|
|
414
504
|
* @author SAP SE
|
|
415
|
-
* @version 1.
|
|
505
|
+
* @version 1.99.0
|
|
416
506
|
*
|
|
417
507
|
* @private
|
|
418
508
|
* @experimental
|
|
@@ -523,7 +613,7 @@ sap.ui.define([
|
|
|
523
613
|
* Validates a property. The entire array of properties needs to be provided for validation of a complex property.
|
|
524
614
|
*
|
|
525
615
|
* <b>Note for classes that override this method:</b>
|
|
526
|
-
* No other method of the helper
|
|
616
|
+
* No other method of the helper must be called from here. The properties are not yet stored in the helper, and therefore
|
|
527
617
|
* any method that tries to access them might not work as expected.
|
|
528
618
|
*
|
|
529
619
|
* @param {object} oProperty The property to validate
|
|
@@ -538,7 +628,7 @@ sap.ui.define([
|
|
|
538
628
|
|
|
539
629
|
validatePropertyDeep(this, oProperty, aProperties);
|
|
540
630
|
|
|
541
|
-
if (
|
|
631
|
+
if (PropertyHelper.isPropertyComplex(oProperty)) {
|
|
542
632
|
if (oProperty.propertyInfos.length === 0) {
|
|
543
633
|
throwInvalidPropertyError("Complex property does not reference existing properties.", oProperty);
|
|
544
634
|
}
|
|
@@ -576,7 +666,7 @@ sap.ui.define([
|
|
|
576
666
|
|
|
577
667
|
if (!mAttribute) {
|
|
578
668
|
reportInvalidProperty("Property contains invalid attribute '" + sAttributePath + "'.", oProperty);
|
|
579
|
-
} else if (
|
|
669
|
+
} else if (PropertyHelper.isPropertyComplex(oProperty) && !mAttribute.allowedForComplexProperty) {
|
|
580
670
|
reportInvalidProperty("Complex property contains invalid attribute '" + sAttributePath + "'.", oProperty);
|
|
581
671
|
} else if (typeof mAttribute.type === "object" && vValue && typeof vValue === "object") {
|
|
582
672
|
validatePropertyDeep(
|
|
@@ -607,7 +697,7 @@ sap.ui.define([
|
|
|
607
697
|
|
|
608
698
|
for (var i = 0; i < aProperties.length; i++) {
|
|
609
699
|
if (oUniquePropertiesSet.has(aProperties[i].name)) {
|
|
610
|
-
if (
|
|
700
|
+
if (PropertyHelper.isPropertyComplex(aProperties[i])) {
|
|
611
701
|
throwInvalidPropertyError("Property references complex properties in the '" + sPath + "' attribute.", oProperty);
|
|
612
702
|
}
|
|
613
703
|
oUniquePropertiesSet.delete(aProperties[i].name);
|
|
@@ -704,344 +794,77 @@ sap.ui.define([
|
|
|
704
794
|
};
|
|
705
795
|
|
|
706
796
|
/**
|
|
707
|
-
* Checks whether a property is complex.
|
|
797
|
+
* Checks whether a property is a complex property. Works with any <code>PropertyInfo</code>, even if unknown to the property helper.
|
|
708
798
|
*
|
|
709
|
-
* @
|
|
710
|
-
* @
|
|
711
|
-
* @returns {boolean|null} Whether the property is complex, or <code>null</code> if it is unknown
|
|
712
|
-
* @public
|
|
713
|
-
*/
|
|
714
|
-
PropertyHelper.prototype.isComplex = function(sName) {
|
|
715
|
-
var oProperty = this.getProperty(sName);
|
|
716
|
-
return oProperty ? this.isPropertyComplex(oProperty) : null;
|
|
717
|
-
};
|
|
718
|
-
aPropertyMethods.push("isComplex");
|
|
719
|
-
|
|
720
|
-
/**
|
|
721
|
-
* Checks whether a property is a complex property. Works with any property info, even if unknown to the property helper.
|
|
722
|
-
*
|
|
723
|
-
* @see #isComplex
|
|
724
|
-
* @param {object} oProperty A property info object
|
|
725
|
-
* @returns {boolean|null} Whether the property is complex
|
|
799
|
+
* @param {object} oProperty A <code>PropertyInfo</code> object
|
|
800
|
+
* @returns {boolean} Whether the property is complex
|
|
726
801
|
* @protected
|
|
802
|
+
* @static
|
|
727
803
|
*/
|
|
728
|
-
PropertyHelper.
|
|
804
|
+
PropertyHelper.isPropertyComplex = function(oProperty) {
|
|
729
805
|
return oProperty != null && typeof oProperty === "object" ? "propertyInfos" in oProperty : false;
|
|
730
806
|
};
|
|
731
807
|
|
|
732
808
|
/**
|
|
733
|
-
* Gets all properties
|
|
734
|
-
*
|
|
735
|
-
* @param {string} sName Name of a complex property
|
|
736
|
-
* @returns {object[]} The properties the complex property references
|
|
737
|
-
* @public
|
|
738
|
-
*/
|
|
739
|
-
PropertyHelper.prototype.getReferencedProperties = function(sName) {
|
|
740
|
-
var oProperty = this.getProperty(sName);
|
|
741
|
-
return (oProperty && oProperty._propertyInfos) || [];
|
|
742
|
-
};
|
|
743
|
-
aPropertyMethods.push("getReferencedProperties");
|
|
744
|
-
|
|
745
|
-
/**
|
|
746
|
-
* Gets the unit property.
|
|
747
|
-
*
|
|
748
|
-
* @param {string} sName Name of a property
|
|
749
|
-
* @returns {object|null} The unit property, or <code>null</code> if it is unknown
|
|
750
|
-
* @public
|
|
751
|
-
*/
|
|
752
|
-
PropertyHelper.prototype.getUnitProperty = function(sName) {
|
|
753
|
-
var oProperty = this.getProperty(sName);
|
|
754
|
-
return (oProperty && oProperty._unit) || null;
|
|
755
|
-
};
|
|
756
|
-
aPropertyMethods.push("getUnitProperty");
|
|
757
|
-
|
|
758
|
-
/**
|
|
759
|
-
* Checks whether a property is sortable.
|
|
760
|
-
*
|
|
761
|
-
* @param {string} sName Name of a property
|
|
762
|
-
* @returns {boolean|null} Whether the property is sortable, or <code>null</code> if it is unknown
|
|
763
|
-
* @public
|
|
764
|
-
*/
|
|
765
|
-
PropertyHelper.prototype.isSortable = function(sName) {
|
|
766
|
-
var oProperty = this.getProperty(sName);
|
|
767
|
-
return oProperty ? oProperty.sortable : null;
|
|
768
|
-
};
|
|
769
|
-
aPropertyMethods.push("isSortable");
|
|
770
|
-
|
|
771
|
-
/**
|
|
772
|
-
* Gets all sortable properties referenced by a complex property. For convenience, the name of a non-complex property can be given that is then
|
|
773
|
-
* returned if it is sortable.
|
|
774
|
-
*
|
|
775
|
-
* @param {string} sName Name of a property
|
|
776
|
-
* @returns {object[]} The sortable properties
|
|
777
|
-
* @public
|
|
778
|
-
*/
|
|
779
|
-
PropertyHelper.prototype.getSortableProperties = function(sName) {
|
|
780
|
-
return extractProperties(this, sName, this.isSortable);
|
|
781
|
-
};
|
|
782
|
-
aPropertyMethods.push("getSortableProperties");
|
|
783
|
-
|
|
784
|
-
/**
|
|
785
|
-
* Gets all sortable, non-complex properties.
|
|
809
|
+
* Gets all sortable properties.
|
|
786
810
|
*
|
|
787
811
|
* @returns {object[]} All sortable properties
|
|
788
812
|
* @public
|
|
789
813
|
*/
|
|
790
|
-
PropertyHelper.prototype.
|
|
814
|
+
PropertyHelper.prototype.getSortableProperties = function() {
|
|
791
815
|
return this.getProperties().filter(function(oProperty) {
|
|
792
|
-
return oProperty.
|
|
816
|
+
return oProperty.sortable;
|
|
793
817
|
});
|
|
794
818
|
};
|
|
795
819
|
|
|
796
820
|
/**
|
|
797
|
-
*
|
|
798
|
-
*
|
|
799
|
-
* @param {string} sName Name of a property
|
|
800
|
-
* @returns {boolean|null} Whether the property is filterable, or <code>null</code> if it is unknown
|
|
801
|
-
* @public
|
|
802
|
-
*/
|
|
803
|
-
PropertyHelper.prototype.isFilterable = function(sName) {
|
|
804
|
-
var oProperty = this.getProperty(sName);
|
|
805
|
-
return oProperty ? oProperty.filterable : null;
|
|
806
|
-
};
|
|
807
|
-
aPropertyMethods.push("isFilterable");
|
|
808
|
-
|
|
809
|
-
/**
|
|
810
|
-
* Gets all filterable properties referenced by a complex property. For convenience, the name of a non-complex property can be given that is then
|
|
811
|
-
* returned if it is filterable.
|
|
812
|
-
*
|
|
813
|
-
* @param {string} sName Name of a property
|
|
814
|
-
* @returns {object[]} The filterable properties
|
|
815
|
-
* @public
|
|
816
|
-
*/
|
|
817
|
-
PropertyHelper.prototype.getFilterableProperties = function(sName) {
|
|
818
|
-
return extractProperties(this, sName, this.isFilterable);
|
|
819
|
-
};
|
|
820
|
-
aPropertyMethods.push("getFilterableProperties");
|
|
821
|
-
|
|
822
|
-
/**
|
|
823
|
-
* Gets all filterable, non-complex properties.
|
|
821
|
+
* Gets all filterable properties.
|
|
824
822
|
*
|
|
825
823
|
* @returns {object[]} All filterable properties
|
|
826
824
|
* @public
|
|
827
825
|
*/
|
|
828
|
-
PropertyHelper.prototype.
|
|
826
|
+
PropertyHelper.prototype.getFilterableProperties = function() {
|
|
829
827
|
return this.getProperties().filter(function(oProperty) {
|
|
830
|
-
return oProperty.
|
|
828
|
+
return oProperty.filterable;
|
|
831
829
|
});
|
|
832
830
|
};
|
|
833
831
|
|
|
834
|
-
|
|
835
|
-
/**
|
|
836
|
-
* Checks whether a property is goupable.
|
|
837
|
-
*
|
|
838
|
-
* @param {string} sName Name of a property
|
|
839
|
-
* @returns {boolean|null} Whether the property is groupable, or <code>null</code> if it is unknown
|
|
840
|
-
* @public
|
|
841
|
-
*/
|
|
842
|
-
PropertyHelper.prototype.isGroupable = function(sName) {
|
|
843
|
-
var oProperty = this.getProperty(sName);
|
|
844
|
-
return oProperty ? oProperty.groupable : null;
|
|
845
|
-
};
|
|
846
|
-
aPropertyMethods.push("isGroupable");
|
|
847
|
-
|
|
848
|
-
/**
|
|
849
|
-
* Gets all groupable properties referenced by a complex property. For convenience, the name of a non-complex property can be given that is then
|
|
850
|
-
* returned if it is groupable.
|
|
851
|
-
*
|
|
852
|
-
* @param {string} sName Name of a property
|
|
853
|
-
* @returns {object[]} The groupable properties
|
|
854
|
-
* @public
|
|
855
|
-
*/
|
|
856
|
-
PropertyHelper.prototype.getGroupableProperties = function(sName) {
|
|
857
|
-
return extractProperties(this, sName, this.isGroupable);
|
|
858
|
-
};
|
|
859
|
-
aPropertyMethods.push("getGroupableProperties");
|
|
860
|
-
|
|
861
832
|
/**
|
|
862
833
|
* Gets all groupable properties.
|
|
863
834
|
*
|
|
864
835
|
* @returns {object[]} All groupable properties
|
|
865
836
|
* @public
|
|
866
837
|
*/
|
|
867
|
-
PropertyHelper.prototype.
|
|
838
|
+
PropertyHelper.prototype.getGroupableProperties = function() {
|
|
868
839
|
return this.getProperties().filter(function(oProperty) {
|
|
869
|
-
return oProperty.
|
|
840
|
+
return oProperty.groupable;
|
|
870
841
|
});
|
|
871
842
|
};
|
|
872
843
|
|
|
873
|
-
/**
|
|
874
|
-
* Gets the label of a property.
|
|
875
|
-
*
|
|
876
|
-
* @param {string} sName Name of a property
|
|
877
|
-
* @returns {string|null} The label of the property, or <code>null</code> if it is unknown
|
|
878
|
-
* @public
|
|
879
|
-
*/
|
|
880
|
-
PropertyHelper.prototype.getLabel = function(sName) {
|
|
881
|
-
var oProperty = this.getProperty(sName);
|
|
882
|
-
return oProperty ? oProperty.label : null;
|
|
883
|
-
};
|
|
884
|
-
aPropertyMethods.push("getLabel");
|
|
885
|
-
|
|
886
|
-
/**
|
|
887
|
-
* Gets the label of the group a property is in.
|
|
888
|
-
*
|
|
889
|
-
* @param {string} sName Name of a property
|
|
890
|
-
* @returns {string|null} The group label of the property, or <code>null</code> if it is unknown
|
|
891
|
-
* @public
|
|
892
|
-
*/
|
|
893
|
-
PropertyHelper.prototype.getGroupLabel = function(sName) {
|
|
894
|
-
var oProperty = this.getProperty(sName);
|
|
895
|
-
return oProperty ? oProperty.groupLabel : null;
|
|
896
|
-
};
|
|
897
|
-
aPropertyMethods.push("getGroupLabel");
|
|
898
|
-
|
|
899
|
-
/**
|
|
900
|
-
* Gets the binding path of a property.
|
|
901
|
-
*
|
|
902
|
-
* @param {string} sName Name of a property
|
|
903
|
-
* @returns {string|null} The binding path of the property, or <code>null</code> if it is complex or unknown
|
|
904
|
-
* @public
|
|
905
|
-
*/
|
|
906
|
-
PropertyHelper.prototype.getPath = function(sName) {
|
|
907
|
-
var oProperty = this.getProperty(sName);
|
|
908
|
-
return oProperty ? oProperty.path : null;
|
|
909
|
-
};
|
|
910
|
-
aPropertyMethods.push("getPath");
|
|
911
|
-
|
|
912
|
-
/**
|
|
913
|
-
* Checks whether a property is part of the key of its entity.
|
|
914
|
-
*
|
|
915
|
-
* @param {string} sName Name of a property
|
|
916
|
-
* @returns {string|null} Whether it is a key property, or <code>null</code> if it is unknown
|
|
917
|
-
* @public
|
|
918
|
-
*/
|
|
919
|
-
PropertyHelper.prototype.isKey = function(sName) {
|
|
920
|
-
var oProperty = this.getProperty(sName);
|
|
921
|
-
return oProperty ? oProperty.key : null;
|
|
922
|
-
};
|
|
923
|
-
aPropertyMethods.push("isKey");
|
|
924
|
-
|
|
925
844
|
/**
|
|
926
845
|
* Gets all key properties.
|
|
927
846
|
*
|
|
928
847
|
* @returns {object[]} All key properties
|
|
929
848
|
* @public
|
|
930
849
|
*/
|
|
931
|
-
PropertyHelper.prototype.
|
|
850
|
+
PropertyHelper.prototype.getKeyProperties = function() {
|
|
932
851
|
return this.getProperties().filter(function(oProperty) {
|
|
933
|
-
return oProperty.
|
|
852
|
+
return oProperty.key;
|
|
934
853
|
});
|
|
935
854
|
};
|
|
936
855
|
|
|
937
|
-
/**
|
|
938
|
-
* Checks whether a property is visible.
|
|
939
|
-
*
|
|
940
|
-
* @param {string} sName Name of a property
|
|
941
|
-
* @returns {boolean|null} Whether the property is visible, or <code>null</code> if it is unknown
|
|
942
|
-
* @public
|
|
943
|
-
*/
|
|
944
|
-
PropertyHelper.prototype.isVisible = function(sName) {
|
|
945
|
-
var oProperty = this.getProperty(sName);
|
|
946
|
-
return oProperty ? oProperty.visible : null;
|
|
947
|
-
};
|
|
948
|
-
aPropertyMethods.push("isVisible");
|
|
949
|
-
|
|
950
|
-
/**
|
|
951
|
-
* Gets all visible properties referenced by a complex property. For convenience, the name of a non-complex property can be given that is then
|
|
952
|
-
* returned if it is visible.
|
|
953
|
-
*
|
|
954
|
-
* @param {string} sName Name of a property
|
|
955
|
-
* @returns {object[]} The visible properties
|
|
956
|
-
* @public
|
|
957
|
-
*/
|
|
958
|
-
PropertyHelper.prototype.getVisibleProperties = function(sName) {
|
|
959
|
-
return extractProperties(this, sName, this.isVisible);
|
|
960
|
-
};
|
|
961
|
-
aPropertyMethods.push("getVisibleProperties");
|
|
962
|
-
|
|
963
856
|
/**
|
|
964
857
|
* Gets all visible properties.
|
|
965
858
|
*
|
|
966
859
|
* @returns {object[]} All visible properties
|
|
967
860
|
* @public
|
|
968
861
|
*/
|
|
969
|
-
PropertyHelper.prototype.
|
|
862
|
+
PropertyHelper.prototype.getVisibleProperties = function() {
|
|
970
863
|
return this.getProperties().filter(function(oProperty) {
|
|
971
|
-
return oProperty.
|
|
864
|
+
return oProperty.visible;
|
|
972
865
|
});
|
|
973
866
|
};
|
|
974
867
|
|
|
975
|
-
/**
|
|
976
|
-
* Gets the export settings. Primarily to be used with the {@link sap.ui.export.Spreadsheet}.
|
|
977
|
-
*
|
|
978
|
-
* @see {@link topic:2691788a08fc43f7bf269ea7c6336caf Spreadsheet Export}
|
|
979
|
-
* @param {string} sName Name of a property
|
|
980
|
-
* @returns {object|null} Export settings
|
|
981
|
-
* @public
|
|
982
|
-
*/
|
|
983
|
-
PropertyHelper.prototype.getExportSettings = function(sName) {
|
|
984
|
-
var oProperty = this.getProperty(sName);
|
|
985
|
-
return oProperty ? oProperty.exportSettings : null;
|
|
986
|
-
};
|
|
987
|
-
aPropertyMethods.push("getExportSettings");
|
|
988
|
-
|
|
989
|
-
/**
|
|
990
|
-
* Gets the visual settings.
|
|
991
|
-
*
|
|
992
|
-
* @function
|
|
993
|
-
* @name getVisualSettings
|
|
994
|
-
* @param {string} sName Name of a property
|
|
995
|
-
* @returns {object|false|null} The visual settings
|
|
996
|
-
* @public
|
|
997
|
-
*/
|
|
998
|
-
PropertyHelper.prototype.getVisualSettings = function(sName) {
|
|
999
|
-
var oProperty = this.getProperty(sName);
|
|
1000
|
-
return oProperty ? oProperty.visualSettings : null;
|
|
1001
|
-
};
|
|
1002
|
-
aPropertyMethods.push("getVisualSettings");
|
|
1003
|
-
|
|
1004
|
-
/**
|
|
1005
|
-
* Gets the unique name (key) of a property.
|
|
1006
|
-
*
|
|
1007
|
-
* <b>Subclasses must not change the return value!</b>
|
|
1008
|
-
*
|
|
1009
|
-
* @param {string} sName Name of a property
|
|
1010
|
-
* @returns {string|null} The name of the property, or <code>null</code> if it is unknown
|
|
1011
|
-
* @public
|
|
1012
|
-
*/
|
|
1013
|
-
PropertyHelper.prototype.getName = function(sName) {
|
|
1014
|
-
var oProperty = this.getProperty(sName);
|
|
1015
|
-
return oProperty ? oProperty.name : null;
|
|
1016
|
-
};
|
|
1017
|
-
aPropertyMethods.push("getName");
|
|
1018
|
-
|
|
1019
|
-
/**
|
|
1020
|
-
* Gets the maximum possible conditions of a property.
|
|
1021
|
-
*
|
|
1022
|
-
* @param {string} sName Name of a property
|
|
1023
|
-
* @returns {int|null} The maximum possible conditions of the property, or <code>null</code> if it is complex or unknown
|
|
1024
|
-
* @public
|
|
1025
|
-
*/
|
|
1026
|
-
PropertyHelper.prototype.getMaxConditions = function(sName) {
|
|
1027
|
-
var oProperty = this.getProperty(sName);
|
|
1028
|
-
return oProperty ? oProperty.maxConditions : null;
|
|
1029
|
-
};
|
|
1030
|
-
aPropertyMethods.push("getMaxConditions");
|
|
1031
|
-
|
|
1032
|
-
/**
|
|
1033
|
-
* Gets the type config of a property.
|
|
1034
|
-
*
|
|
1035
|
-
* @param {string} sName Name of a property
|
|
1036
|
-
* @returns {object|null} The type config of the property, or <code>null</code> if it is complex or unknown
|
|
1037
|
-
* @public
|
|
1038
|
-
*/
|
|
1039
|
-
PropertyHelper.prototype.getTypeConfig = function(sName) {
|
|
1040
|
-
var oProperty = this.getProperty(sName);
|
|
1041
|
-
return oProperty ? oProperty.typeConfig : null;
|
|
1042
|
-
};
|
|
1043
|
-
aPropertyMethods.push("getTypeConfig");
|
|
1044
|
-
|
|
1045
868
|
/**
|
|
1046
869
|
* @override
|
|
1047
870
|
* @inheritDoc
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
'sap/ui/mdc/enum/BaseType',
|
|
9
|
-
'sap/base/util/ObjectPath'
|
|
10
|
-
|
|
9
|
+
'sap/base/util/ObjectPath',
|
|
10
|
+
'sap/ui/model/SimpleType'
|
|
11
|
+
], function(BaseType, ObjectPath, SimpleType) {
|
|
11
12
|
"use strict";
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -154,7 +155,7 @@ sap.ui.define([
|
|
|
154
155
|
|
|
155
156
|
var oType, sDataType;
|
|
156
157
|
|
|
157
|
-
if (vType instanceof
|
|
158
|
+
if (vType instanceof SimpleType) {
|
|
158
159
|
oType = vType;
|
|
159
160
|
} else {
|
|
160
161
|
var sDataTypeClass = this.getDataTypeClassName(vType);
|
|
@@ -172,4 +173,4 @@ sap.ui.define([
|
|
|
172
173
|
|
|
173
174
|
return TypeUtil;
|
|
174
175
|
|
|
175
|
-
}
|
|
176
|
+
});
|