@openui5/sap.ui.mdc 1.110.0 → 1.111.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.
Files changed (202) hide show
  1. package/package.json +4 -4
  2. package/src/sap/ui/mdc/.library +1 -1
  3. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  4. package/src/sap/ui/mdc/AggregationBaseDelegate.js +20 -2
  5. package/src/sap/ui/mdc/Chart.js +121 -3
  6. package/src/sap/ui/mdc/ChartRenderer.js +9 -6
  7. package/src/sap/ui/mdc/Control.js +1 -1
  8. package/src/sap/ui/mdc/Element.js +1 -1
  9. package/src/sap/ui/mdc/Field.js +2 -2
  10. package/src/sap/ui/mdc/FilterBar.js +1 -1
  11. package/src/sap/ui/mdc/FilterBarDelegate.js +96 -4
  12. package/src/sap/ui/mdc/FilterField.js +2 -2
  13. package/src/sap/ui/mdc/Link.js +9 -2
  14. package/src/sap/ui/mdc/MultiValueField.js +1 -1
  15. package/src/sap/ui/mdc/Table.js +136 -74
  16. package/src/sap/ui/mdc/ValueHelp.js +7 -40
  17. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  18. package/src/sap/ui/mdc/chart/ChartImplementationContainer.js +1 -1
  19. package/src/sap/ui/mdc/chart/ChartImplementationContainerRenderer.js +1 -1
  20. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  21. package/src/sap/ui/mdc/chart/ChartSettings.js +7 -3
  22. package/src/sap/ui/mdc/chart/ChartToolbar.js +37 -6
  23. package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
  24. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  25. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  26. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  27. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  28. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +2 -2
  29. package/src/sap/ui/mdc/condition/Operator.js +1 -1
  30. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +1 -1
  31. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  32. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +3 -0
  33. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +3 -1
  34. package/src/sap/ui/mdc/enum/FilterBarValidationStatus.js +56 -0
  35. package/src/sap/ui/mdc/enum/ReasonMode.js +53 -0
  36. package/src/sap/ui/mdc/field/ConditionType.js +19 -33
  37. package/src/sap/ui/mdc/field/ConditionsType.js +1 -3
  38. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  39. package/src/sap/ui/mdc/field/DefineConditionPanel.js +2 -4
  40. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +1 -3
  41. package/src/sap/ui/mdc/field/FieldBase.js +60 -100
  42. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +28 -69
  43. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  44. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  45. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  46. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  47. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  48. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  49. package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
  50. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  51. package/src/sap/ui/mdc/field/content/ContentFactory.js +66 -9
  52. package/src/sap/ui/mdc/field/content/DateContent.js +3 -2
  53. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +172 -112
  54. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  55. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +18 -3
  56. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +2 -2
  57. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +16 -4
  58. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  59. package/src/sap/ui/mdc/flexibility/ChartTypeFlex.js +14 -3
  60. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +17 -5
  61. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  62. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  63. package/src/sap/ui/mdc/flexibility/GroupFlex.js +9 -3
  64. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +71 -8
  65. package/src/sap/ui/mdc/flexibility/SortFlex.js +10 -4
  66. package/src/sap/ui/mdc/flexibility/Util.js +5 -3
  67. package/src/sap/ui/mdc/flexibility/xConfigFlex.js +11 -3
  68. package/src/sap/ui/mdc/library.js +2 -18
  69. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  70. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  71. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  72. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  73. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  74. package/src/sap/ui/mdc/link/Factory.js +1 -1
  75. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  76. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  77. package/src/sap/ui/mdc/link/Panel.js +1 -1
  78. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  79. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  80. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  81. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  82. package/src/sap/ui/mdc/messagebundle.properties +7 -3
  83. package/src/sap/ui/mdc/messagebundle_ar.properties +5 -3
  84. package/src/sap/ui/mdc/messagebundle_bg.properties +5 -3
  85. package/src/sap/ui/mdc/messagebundle_ca.properties +5 -3
  86. package/src/sap/ui/mdc/messagebundle_cs.properties +5 -3
  87. package/src/sap/ui/mdc/messagebundle_cy.properties +5 -3
  88. package/src/sap/ui/mdc/messagebundle_da.properties +5 -3
  89. package/src/sap/ui/mdc/messagebundle_de.properties +5 -3
  90. package/src/sap/ui/mdc/messagebundle_el.properties +5 -3
  91. package/src/sap/ui/mdc/messagebundle_en.properties +5 -2
  92. package/src/sap/ui/mdc/messagebundle_en_GB.properties +5 -3
  93. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +5 -3
  94. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +12 -2
  95. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +5 -3
  96. package/src/sap/ui/mdc/messagebundle_es.properties +5 -3
  97. package/src/sap/ui/mdc/messagebundle_es_MX.properties +5 -3
  98. package/src/sap/ui/mdc/messagebundle_et.properties +5 -3
  99. package/src/sap/ui/mdc/messagebundle_fi.properties +5 -3
  100. package/src/sap/ui/mdc/messagebundle_fr.properties +6 -4
  101. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +5 -3
  102. package/src/sap/ui/mdc/messagebundle_hi.properties +5 -3
  103. package/src/sap/ui/mdc/messagebundle_hr.properties +5 -3
  104. package/src/sap/ui/mdc/messagebundle_hu.properties +5 -3
  105. package/src/sap/ui/mdc/messagebundle_id.properties +5 -3
  106. package/src/sap/ui/mdc/messagebundle_it.properties +5 -3
  107. package/src/sap/ui/mdc/messagebundle_iw.properties +5 -3
  108. package/src/sap/ui/mdc/messagebundle_ja.properties +5 -3
  109. package/src/sap/ui/mdc/messagebundle_kk.properties +5 -3
  110. package/src/sap/ui/mdc/messagebundle_ko.properties +4 -2
  111. package/src/sap/ui/mdc/messagebundle_lt.properties +5 -3
  112. package/src/sap/ui/mdc/messagebundle_lv.properties +5 -3
  113. package/src/sap/ui/mdc/messagebundle_ms.properties +5 -3
  114. package/src/sap/ui/mdc/messagebundle_nl.properties +5 -3
  115. package/src/sap/ui/mdc/messagebundle_no.properties +5 -3
  116. package/src/sap/ui/mdc/messagebundle_pl.properties +5 -3
  117. package/src/sap/ui/mdc/messagebundle_pt.properties +5 -3
  118. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +5 -3
  119. package/src/sap/ui/mdc/messagebundle_ro.properties +5 -3
  120. package/src/sap/ui/mdc/messagebundle_ru.properties +5 -3
  121. package/src/sap/ui/mdc/messagebundle_sh.properties +5 -3
  122. package/src/sap/ui/mdc/messagebundle_sk.properties +5 -3
  123. package/src/sap/ui/mdc/messagebundle_sl.properties +5 -3
  124. package/src/sap/ui/mdc/messagebundle_sv.properties +5 -3
  125. package/src/sap/ui/mdc/messagebundle_th.properties +5 -3
  126. package/src/sap/ui/mdc/messagebundle_tr.properties +5 -3
  127. package/src/sap/ui/mdc/messagebundle_uk.properties +5 -3
  128. package/src/sap/ui/mdc/messagebundle_vi.properties +5 -3
  129. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +5 -3
  130. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +5 -3
  131. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  132. package/src/sap/ui/mdc/mixin/DelegateMixin.js +12 -1
  133. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +29 -3
  134. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  135. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +96 -77
  136. package/src/sap/ui/mdc/odata/TypeUtil.js +1 -1
  137. package/src/sap/ui/mdc/odata/v4/FieldBaseDelegate.js +0 -32
  138. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +3 -0
  139. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +1 -1
  140. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +6 -5
  141. package/src/sap/ui/mdc/p13n/Engine.js +1 -1
  142. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  143. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  144. package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +1 -1
  145. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
  146. package/src/sap/ui/mdc/table/Column.js +5 -2
  147. package/src/sap/ui/mdc/table/ColumnSettings.js +1 -1
  148. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  149. package/src/sap/ui/mdc/table/GridTableType.js +1 -16
  150. package/src/sap/ui/mdc/table/PropertyHelper.js +50 -12
  151. package/src/sap/ui/mdc/table/ResponsiveColumnSettings.js +1 -1
  152. package/src/sap/ui/mdc/table/ResponsiveTableType.js +1 -15
  153. package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
  154. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  155. package/src/sap/ui/mdc/table/TableSettings.js +14 -13
  156. package/src/sap/ui/mdc/table/TreeTableType.js +2 -19
  157. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +34 -2
  158. package/src/sap/ui/mdc/themes/base/FieldBase.less +12 -25
  159. package/src/sap/ui/mdc/util/FilterUtil.js +24 -1
  160. package/src/sap/ui/mdc/util/InfoBar.js +118 -0
  161. package/src/sap/ui/mdc/util/InfoBarRenderer.js +35 -0
  162. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  163. package/src/sap/ui/mdc/util/PropertyHelper.js +41 -41
  164. package/src/sap/ui/mdc/util/TypeUtil.js +3 -1
  165. package/src/sap/ui/mdc/valuehelp/Dialog.js +1 -1
  166. package/src/sap/ui/mdc/valuehelp/Popover.js +1 -1
  167. package/src/sap/ui/mdc/valuehelp/base/Container.js +1 -3
  168. package/src/sap/ui/mdc/valuehelp/base/Content.js +2 -4
  169. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  170. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +1 -1
  171. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +2 -23
  172. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  173. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
  174. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +1 -1
  175. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +19 -21
  176. package/src/sap/ui/mdc/valuehelp/content/MTable.js +1 -1
  177. package/test/sap/ui/mdc/testutils/opa/field/Actions.js +4 -2
  178. package/test/sap/ui/mdc/testutils/opa/filterfield/Actions.js +4 -2
  179. package/test/sap/ui/mdc/testutils/opa/filterfield/TestObjects.js +0 -11
  180. package/test/sap/ui/mdc/testutils/opa/valueHelp/Assertions.js +16 -0
  181. package/test/sap/ui/mdc/testutils/opa/valueHelp/JSDoc.md +98 -9
  182. package/test/sap/ui/mdc/testutils/opa/valueHelp/TestObjects.js +85 -0
  183. package/test/sap/ui/mdc/testutils/opa/valueHelp/doWait.js +2 -2
  184. package/src/sap/ui/mdc/enum/OutParameterMode.js +0 -39
  185. package/src/sap/ui/mdc/field/BoolFieldHelp.js +0 -437
  186. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +0 -325
  187. package/src/sap/ui/mdc/field/CustomFieldHelp.js +0 -101
  188. package/src/sap/ui/mdc/field/FieldHelpBase.js +0 -1517
  189. package/src/sap/ui/mdc/field/FieldHelpBaseDelegate.js +0 -55
  190. package/src/sap/ui/mdc/field/FieldValueHelp.js +0 -2834
  191. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +0 -525
  192. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +0 -171
  193. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +0 -359
  194. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +0 -416
  195. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +0 -977
  196. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +0 -329
  197. package/src/sap/ui/mdc/field/InParameter.js +0 -229
  198. package/src/sap/ui/mdc/field/ListFieldHelp.js +0 -620
  199. package/src/sap/ui/mdc/field/OutParameter.js +0 -75
  200. package/src/sap/ui/mdc/field/ValueHelpPanel.control.xml +0 -71
  201. package/src/sap/ui/mdc/field/ValueHelpPanel.js +0 -525
  202. package/src/sap/ui/mdc/odata/v4/FieldValueHelpDelegate.js +0 -125
@@ -1,71 +0,0 @@
1
- <core:FragmentDefinition
2
- xmlns="sap.m"
3
- xmlns:core="sap.ui.core"
4
- xmlns:fl="sap.ui.fl.variants"
5
- xmlns:mvc="sap.ui.core.mvc"
6
- xmlns:mdc="sap.ui.mdc"
7
- xmlns:l="sap.ui.layout">
8
- <VBox id="rootVBox" fitContainer= "true" class="sapMdcValueHelpPanel">
9
- <IconTabBar id="iconTabBar" expandable="false" upperCase="false" stretchContentHeight="true" class="sapUiNoContentPadding" select="iconTabSelect">
10
- <layoutData>
11
- <FlexItemData growFactor= "1" shrinkFactor= "1"/>
12
- </layoutData>
13
- <items>
14
- <IconTabFilter id="fromList" text="{parts: ['$i18n>valuehelp.SELECTFROMLIST', '$this>/conditions'], formatter: '._formatListTabTitle'}" key="selectFromList" visible="false">
15
- <!-- <ScrollContainer height="100%" width="100%" vertical="true" horizontal="false"> -->
16
- <l:FixFlex minFlexSize="200px"> <!-- minHight for the Flex content Items Table -->
17
- <l:fixContent>
18
- <VBox id="filterbarVBox" visible="{$this>/_filterBarVisible}" class="sapMdcValueHelpPanelFilterbar">
19
- <!-- container for the Filterbar / advanced FilterFields -->
20
- </VBox>
21
- </l:fixContent>
22
-
23
- <l:flexContent>
24
- <Panel id="tablePanel" headerText="{parts: ['$i18n>valuehelp.TABLETITLE'], formatter: '._formatTableTitle'}" class="sapMdcTablePanel" expanded="true" height="100%">
25
- <layoutData>
26
- <FlexItemData growFactor="1" shrinkFactor="1"/>
27
- </layoutData>
28
- <!-- container for the Table Scrollcontainer / at the moment the Scrollbar around the m.Table doe snot work -->
29
- </Panel>
30
- </l:flexContent>
31
- </l:FixFlex>
32
- <!-- </ScrollContainer> -->
33
- </IconTabFilter>
34
-
35
- <IconTabFilter id="defineCondition" text="{parts: ['$i18n>valuehelp.DEFINECONDITIONS', '$this>/conditions'], formatter: '._formatDefineTabTitle'}" key="defineCondition" visible="false">
36
- <ScrollContainer id="defineConditionPanel" height="100%" horizontal="false" vertical="true">
37
- <!-- container for the DefineConditionPanel -->
38
- </ScrollContainer>
39
- </IconTabFilter>
40
- </items>
41
- </IconTabBar>
42
-
43
- <Panel id="VHPTokenizerPanel" class="sapMdcTokenizerPanel" backgroundDesign="Transparent"
44
- expanded="true"
45
- headerText="{parts: ['$i18n>valuehelp.TOKENIZERTITLE', '$this>/conditions'], formatter: '._formatTokenizerTitle'}">
46
- <HBox fitContainer="true" width="100%">
47
- <items>
48
- <MultiInput id="VHPTokenizer" width="100%"
49
- visible="{path: '$this>/showTokenizer'}"
50
- showValueHelp= "false"
51
- editable= "true"
52
- tokenUpdate="_handleTokenDelete"
53
- tokens="{path: '$this>/conditions', filters:[{path:'isEmpty', operator:'NE', value1:true}], templateShareable: false}">
54
- <tokens>
55
- <Token id="VHPToken" text="{path: '$this>', type: 'sap.ui.mdc.field.ConditionType'}"/>
56
- </tokens>
57
- <layoutData>
58
- <FlexItemData growFactor="1" maxWidth="calc(100% - 2rem)"/>
59
- </layoutData>
60
- </MultiInput>
61
- <Button id="removeAllBtn" press="_onRemoveAllConditions" type="Transparent" icon="sap-icon://decline" tooltip="{$i18n>valuehelp.REMOVEALLTOKEN}" class="sapUiTinyMarginBegin">
62
- <layoutData>
63
- <FlexItemData growFactor="0" baseSize="2rem"/>
64
- </layoutData>
65
- </Button>
66
- </items>
67
- </HBox>
68
- </Panel>
69
- </VBox>
70
-
71
- </core:FragmentDefinition>
@@ -1,525 +0,0 @@
1
- /*!
2
- * OpenUI5
3
- * (c) Copyright 2009-2023 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/core/XMLComposite',
8
- 'sap/ui/model/json/JSONModel',
9
- 'sap/ui/model/Filter',
10
- 'sap/ui/base/ManagedObjectObserver',
11
- 'sap/base/strings/formatMessage',
12
- 'sap/ui/model/resource/ResourceModel',
13
- 'sap/m/MultiInput',
14
- 'sap/ui/mdc/enum/ConditionValidated'
15
- ], function(
16
- XMLComposite,
17
- JSONModel,
18
- Filter,
19
- ManagedObjectObserver,
20
- formatMessage,
21
- ResourceModel,
22
- MUltiInput,
23
- ConditionValidated
24
- ) {
25
- "use strict";
26
-
27
- /**
28
- * Constructor for a new <code>ValueHelpPanel</code>.
29
- *
30
- * @param {string} [sId] ID for the new control, generated automatically if no ID is given
31
- * @param {object} [mSettings] Initial settings for the new control
32
- *
33
- * @class
34
- * A <code>ValueHelpPanel</code> control is used inside the <code>FieldValueHelp</code> element to show a complex dialog
35
- * for entering multiple kinds of conditions.
36
- *
37
- * @extends sap.ui.core.XMLComposite
38
- *
39
- * @author SAP SE
40
- * @version 1.110.0
41
- *
42
- * @constructor
43
- * @alias sap.ui.mdc.field.ValueHelpPanel
44
- * @since 1.58.0
45
- * @abstract
46
- *
47
- * @private
48
- * @deprecated As of version 1.110, replaced by {@link sap.ui.mdc.valuehelp.Dialog Dialog}
49
- * @ui5-restricted sap.ui.mdc.field.FieldValueHelp
50
- */
51
- var ValueHelpPanel = XMLComposite.extend("sap.ui.mdc.field.ValueHelpPanel", {
52
- metadata: {
53
- library: "sap.ui.mdc",
54
- properties: {
55
- /**
56
- * If set to <code>true</code>, a tokenizer is shown.
57
- */
58
- showTokenizer: {
59
- type: "boolean",
60
- group: "Data",
61
- defaultValue: true
62
- },
63
- /**
64
- * If set to <code>true</code>, the <code>FilterBar</code> area is shown.
65
- * The <code>FilterBar</code> must be assigned using <code>setFilterBar</code>.
66
- */
67
- showFilterbar: {
68
- type: "boolean",
69
- group: "Data",
70
- defaultValue: true
71
- },
72
-
73
- /**
74
- * Sets the conditions that represent the selected values of the help.
75
- *
76
- * @since 1.62.0
77
- */
78
- conditions: {
79
- type: "object[]",
80
- group: "Data",
81
- defaultValue: [],
82
- byValue: true
83
- },
84
-
85
- /**
86
- * The <code>formatOptions</code> for the <code>ConditionType</code> used to format tokens.
87
- *
88
- * @since 1.62.0
89
- */
90
- formatOptions: {
91
- type: "object",
92
- defaultValue: {}
93
- },
94
-
95
- /**
96
- * If set, there has been no invalid user input.
97
- *
98
- * <b>Note:</b> This property must not be set from outside. It is a property because that way it can be bound to the
99
- * <code>ManagedObjectModel</code> of the calling field help and automatically update it.
100
- *
101
- * @since 1.87.0
102
- */
103
- inputOK: {
104
- type: "boolean",
105
- defaultValue: true
106
- },
107
-
108
- /**
109
- * Internal property to bind corresponding controls to the visibility of the <code>FilterBar</code> section
110
- */
111
- _filterBarVisible: {
112
- type: "boolean",
113
- group: "Appearance",
114
- defaultValue: false,
115
- visibility: "hidden"
116
- }
117
- }
118
-
119
- },
120
- fragment: "sap.ui.mdc.field.ValueHelpPanel",
121
-
122
- init: function() {
123
- var oManagedObjectModel = this._getManagedObjectModel();
124
- oManagedObjectModel.setSizeLimit(1000000); // TOTO: better solution to allow more than 100 Tokens
125
-
126
- if (!this._oTokenizer) {
127
- this._oTokenizer = this.byId("VHPTokenizer"); // the VHPTokenizer is a MultiInput
128
-
129
- // Overwrite the setValueVisible to make the input part not visible (transparent).
130
- // Problem: you can still enter a value into the $input dom ref and this will be shown when you remove all tokens. this can be solved inside the afterRender handler.
131
- // ACC issue: the screenreader is still reading this control as input field and that the user can enter a value - which is not correct.
132
- this._oTokenizer._setValueVisible = function (bVisible) {
133
- this.$("inner").css("opacity", "0");
134
- };
135
-
136
- var org = this._oTokenizer.onAfterRendering;
137
- this._oTokenizer.onAfterRendering = function() {
138
- org.apply(this._oTokenizer, arguments);
139
-
140
- this._oTokenizer._setValueVisible(); // make the input always invisible
141
- this._oTokenizer.setValue(""); // set the value to empty string
142
- }.bind(this);
143
-
144
- }
145
- this._oTokenizerPanel = this.byId("VHPTokenizerPanel");
146
-
147
- this._oFilterVBox = this.byId("filterbarVBox");
148
- this._oFilterVBox._oValueHelpPanel = this;
149
- this._oFilterVBox.getItemsOriginal = this._oFilterVBox.getItems;
150
- this._oFilterVBox.getItems = function() {
151
- var aItems = this.getItemsOriginal();
152
- if (this._oValueHelpPanel._oFilterbar && this._oValueHelpPanel.getProperty("_filterBarVisible")) {
153
- aItems.push(this._oValueHelpPanel._oFilterbar);
154
- }
155
- return aItems;
156
- };
157
-
158
- this._oTablePanel = this.byId("tablePanel");
159
- this._oTablePanel._oValueHelpPanel = this;
160
- this._oTablePanel.getContentOriginal = this._oTablePanel.getContent;
161
- this._oTablePanel.getContent = function () {
162
- var aContent = this.getContentOriginal();
163
- if (this._oValueHelpPanel._oTable) {
164
- aContent.push(this._oValueHelpPanel._oTable);
165
- }
166
- return aContent;
167
- };
168
-
169
- this._oObserver = new ManagedObjectObserver(_observeChanges.bind(this));
170
-
171
- this._oObserver.observe(this, {
172
- properties: ["formatOptions", "showFilterbar", "showTokenizer", "_filterBarVisible"]
173
- });
174
-
175
- this._oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.ui.mdc");
176
-
177
- },
178
-
179
- exit: function() {
180
- // if tokenizer is not part of the VHP content
181
- if (!this.getShowTokenizer()) {
182
- this._oTokenizerPanel.destroy();
183
- }
184
-
185
- if (this._oDefineConditionPanel && !this._oDefineConditionPanel.getParent()) {
186
- //DefineConditionPanel never displayed -> destroy it now
187
- this._oDefineConditionPanel.destroy();
188
- }
189
-
190
- this._oObserver.disconnect();
191
- this._oObserver = undefined;
192
-
193
- this._oTablePanel = null;
194
- this._oFilterVBox = null;
195
- this._oResourceBundle = null;
196
- },
197
-
198
- onBeforeRendering: function() {
199
-
200
- if (!this.getModel("$i18n")) {
201
- // if ResourceModel not provided from outside create own one
202
- this.setModel(new ResourceModel({ bundleName: "sap/ui/mdc/messagebundle", async: false }), "$i18n");
203
- }
204
-
205
- },
206
-
207
- /**
208
- * Adds a <code>FilterBar</code> control to the <code>ValueHelpPanel</code> control.
209
- *
210
- * The <code>showFilterbar</code> property must be set to show the <code>FilterBar</code> control.
211
- *
212
- * @param {sap.ui.mdc.FilterBar} oFilterbar <code>FilterBar</code> control
213
- *
214
- * @private
215
- * @ui5-restricted sap.ui.mdc.field.FieldValueHelp
216
- */
217
- setFilterbar: function(oFilterbar) {
218
-
219
- var bShowFilterBar = this.getShowFilterbar();
220
-
221
- if (this._oFilterbar) {
222
- if (this._bFilterbarParentSet) {
223
- this._oFilterbar.setParent();
224
- delete this._bFilterbarParentSet;
225
- }
226
- }
227
- this._oFilterbar = oFilterbar;
228
-
229
- if (oFilterbar) {
230
-
231
- if (!oFilterbar.getParent()) {
232
- // if not in control tree set as child
233
- oFilterbar.setParent(this);
234
- this._bFilterbarParentSet = true;
235
- }
236
-
237
- // TODO: hack for FlexBoxStylingHelper.writeStyle in IE11
238
- oFilterbar.getParent().getDirection = this._oFilterVBox.getDirection.bind(this._oFilterVBox);
239
-
240
- }
241
-
242
-
243
- //update the IconTabbar header visibility
244
- var oITBar = this.byId("iconTabBar");
245
- oITBar.getItems()[0].setVisible(oITBar.getItems()[0].getContent().length > 0);
246
- oITBar.setSelectedKey("selectFromList");
247
- this._updateITBHeaderVisiblity();
248
-
249
- this.setProperty("_filterBarVisible", bShowFilterBar && !!this._oFilterbar, true);
250
-
251
- },
252
-
253
- /**
254
- * Adds a content control (for example, <code>sap.m.Table</code>) to the <code>ValueHelpPanel</code> control.
255
- *
256
- * @param {sap.ui.core.Control} oTable Content control
257
- *
258
- * @private
259
- * @ui5-restricted sap.ui.mdc.field.FieldValueHelp
260
- */
261
- setTable: function(oTable) {
262
- if (this._oTable) {
263
- if (this._bTableParentSet && this._oTable.getParent()) {
264
- this._oTable.setParent();
265
- }
266
- delete this._bTableParentSet;
267
- }
268
- this._oTable = oTable;
269
-
270
- if (oTable) { //If a new table exist, set the parent to this
271
-
272
- if (!oTable.getParent()) {
273
- // if not in control tree set as child
274
- oTable.setParent(this);
275
- this._bTableParentSet = true;
276
- }
277
- }
278
- this._oTablePanel.invalidate();
279
-
280
- //update the IconTabbar header visibility
281
- var oITBar = this.byId("iconTabBar");
282
- oITBar.getItems()[0].setVisible(oITBar.getItems()[0].getContent().length > 0);
283
- oITBar.setSelectedKey("selectFromList");
284
- this._updateITBHeaderVisiblity();
285
- },
286
-
287
- /**
288
- * Returns the content control (for example, <code>sap.m.Table</code>) of the <code>ValueHelpPanel</code> control.
289
- *
290
- * @returns {sap.ui.core.Control} Content control
291
- *
292
- * @private
293
- * @ui5-restricted sap.ui.mdc.field.FieldValueHelp
294
- */
295
- getTable: function() {
296
- if (this._oTable) {
297
- return this._oTable;
298
- } else {
299
- return undefined;
300
- }
301
- },
302
-
303
- /**
304
- * Adds a <code>DefineConditionPanel</code> control to the <code>ValueHelpPanel</code> control.
305
- *
306
- * @param {sap.ui.mdc.field.DefineConditionPanel} oDefineConditionPanel <code>DefineConditionPanel</code> control
307
- *
308
- * @private
309
- * @ui5-restricted sap.ui.mdc.field.FieldValueHelp
310
- */
311
- setDefineConditions: function(oDefineConditionPanel) {
312
- var oITBar = this.byId("iconTabBar");
313
- var oPanel = this.byId("defineConditionPanel");
314
-
315
- if (this._oDefineConditionPanel) {
316
- oPanel.removeContent(this._oDefineConditionPanel);
317
- this._oDefineConditionPanel.destroy();
318
- }
319
- this._oDefineConditionPanel = oDefineConditionPanel;
320
-
321
- //update the IconTabbar header visibility
322
- oITBar.getItems()[1].setVisible(!!this._oDefineConditionPanel);
323
- this._updateITBHeaderVisiblity();
324
- },
325
-
326
- _updateITBHeaderVisiblity: function() {
327
- var oITBar = this.byId("iconTabBar");
328
- if (oITBar.getItems()[0].getVisible() && oITBar.getItems()[1].getVisible()) {
329
- oITBar.removeStyleClass("sapMdcNoHeader");
330
- } else {
331
- oITBar.addStyleClass("sapMdcNoHeader");
332
- }
333
-
334
- if (oITBar.getItems()[1].getVisible() && oITBar.getSelectedKey() !== "selectFromList") {
335
- _bindDefineConditionPanel.call(this);
336
- }
337
-
338
- },
339
-
340
- _handleTokenDelete: function(oEvent) {
341
-
342
- if (oEvent.getParameter("removedTokens")) {
343
- var aRemovedTokens = oEvent.getParameter("removedTokens");
344
- var aConditions = this.getConditions();
345
- var i;
346
-
347
- for (i = 0; i < aRemovedTokens.length; i++) {
348
- var oRemovedToken = aRemovedTokens[i];
349
- var sPath = oRemovedToken.getBindingContext("$this").sPath;
350
- var iIndex = parseInt(sPath.slice(sPath.lastIndexOf("/") + 1));
351
- aConditions[iIndex].delete = true;
352
- }
353
-
354
- for (i = aConditions.length - 1; i >= 0; i--) {
355
- if (aConditions[i].delete) {
356
- aConditions.splice(i, 1);
357
- }
358
- }
359
-
360
- this.setProperty("conditions", aConditions, true); // do not invalidate whole panel
361
- }
362
-
363
- },
364
-
365
- _onRemoveAllConditions: function(oEvent) {
366
- this.setProperty("conditions", [], true);
367
- },
368
-
369
- iconTabSelect: function(oEvent) {
370
-
371
- var sKey = oEvent.getParameter("key");
372
- if (sKey === "defineCondition") {
373
- _bindDefineConditionPanel.call(this);
374
- }
375
-
376
- },
377
-
378
- _formatListTabTitle: function(sText, aConditions) {
379
-
380
- var iCount = 0;
381
-
382
- for (var i = 0; i < aConditions.length; i++) {
383
- var oCondition = aConditions[i];
384
- if (oCondition.isEmpty !== true && oCondition.validated === ConditionValidated.Validated) {
385
- iCount++;
386
- }
387
- }
388
-
389
- if (iCount === 0) {
390
- // in case of no items do not show a number
391
- sText = this._oResourceBundle.getText("valuehelp.SELECTFROMLISTNONUMBER");
392
- }
393
-
394
- return formatMessage(sText, iCount);
395
-
396
- },
397
-
398
- _formatDefineTabTitle: function(sText, aConditions) {
399
-
400
- var iCount = 0;
401
-
402
- for (var i = 0; i < aConditions.length; i++) {
403
- var oCondition = aConditions[i];
404
- if (oCondition.isEmpty !== true && oCondition.validated !== ConditionValidated.Validated) {
405
- iCount++;
406
- }
407
- }
408
-
409
- if (iCount === 0) {
410
- // in case of no items do not show a number
411
- sText = this._oResourceBundle.getText("valuehelp.DEFINECONDITIONSNONUMBER");
412
- }
413
-
414
- return formatMessage(sText, iCount);
415
-
416
- },
417
-
418
- _formatTableTitle: function(sText) {
419
-
420
- var iItems = 0;
421
- //TODO fetch the count of the table binding
422
- // if (this._oTable) {
423
- // var oTable = this._oTable.getContent()[0];
424
- // if (oTable && oTable.getBinding("items") && oTable.getBinding("items").bLengthFinal) {
425
- // iItems = 123;
426
- // }
427
-
428
- // if (iItems === 0) {
429
- // // in case of no items do not show a number
430
- // sText = this._oResourceBundle.getText("valuehelp.TABLETITLENONUMBER");
431
- // }
432
- // }
433
-
434
- sText = this._oResourceBundle.getText("valuehelp.TABLETITLENONUMBER");
435
- return formatMessage(sText, iItems);
436
-
437
- },
438
-
439
- _formatTokenizerTitle: function(sText, aConditions) {
440
-
441
- var iCount = 0;
442
-
443
- for (var i = 0; i < aConditions.length; i++) {
444
- var oCondition = aConditions[i];
445
- if (oCondition.isEmpty !== true) {
446
- iCount++;
447
- }
448
- }
449
-
450
- if (iCount === 0) {
451
- // in case of no items do not show a number
452
- sText = this._oResourceBundle.getText("valuehelp.TOKENIZERTITLENONUMBER");
453
- }
454
-
455
- return formatMessage(sText, iCount);
456
-
457
- }
458
-
459
- });
460
-
461
- function _observeChanges(oChanges) {
462
-
463
- if (oChanges.name === "formatOptions") {
464
- var oBindingInfo = this._oTokenizer.getBindingInfo("tokens");
465
- if (oBindingInfo && oBindingInfo.template) {
466
- oBindingInfo = oBindingInfo.template.getBindingInfo("text");
467
- if (oBindingInfo && oBindingInfo.type) {
468
- oBindingInfo.type.setFormatOptions(oChanges.current);
469
- }
470
- }
471
- }
472
-
473
- if (oChanges.name === "showTokenizer") {
474
- var oVBox = this.byId("rootVBox");
475
- var oListBinding = this._oTokenizer.getBinding("tokens");
476
- if (oChanges.current) {
477
- if (oListBinding) {
478
- oListBinding.resume();
479
- }
480
- oVBox.insertItem(this._oTokenizerPanel, 1);
481
- } else {
482
- if (oListBinding) {
483
- oListBinding.suspend(); // don't create Tokens
484
- }
485
- oVBox.removeItem(this._oTokenizerPanel);
486
- }
487
- }
488
-
489
- if (oChanges.name === "showFilterbar") {
490
- this.setProperty("_filterBarVisible", oChanges.current && !!this._oFilterbar, true);
491
- }
492
-
493
- if (oChanges.name === "_filterBarVisible") {
494
- this._oTablePanel.invalidate();
495
- }
496
-
497
- }
498
-
499
- function _bindDefineConditionPanel() {
500
-
501
- if (this._oDefineConditionPanel) {
502
- if (!this._oDefineConditionPanel.getModel("$VHP")) {
503
- var oManagedObjectModel = this._getManagedObjectModel();
504
- this._oDefineConditionPanel.setModel(oManagedObjectModel, "$VHP");
505
- var oMetadata = this._oDefineConditionPanel.getMetadata();
506
- if (oMetadata.hasProperty("formatOptions") && !this._oDefineConditionPanel.getBindingPath("formatOptions") && this._oDefineConditionPanel.isPropertyInitial("formatOptions")) {
507
- this._oDefineConditionPanel.bindProperty("formatOptions", {path: "$VHP>/formatOptions"});
508
- }
509
- if (oMetadata.hasProperty("conditions") && !this._oDefineConditionPanel.getBindingPath("conditions") && this._oDefineConditionPanel.isPropertyInitial("conditions")) {
510
- this._oDefineConditionPanel.bindProperty("conditions", {path: "$VHP>/conditions"});
511
- }
512
- if (oMetadata.hasProperty("inputOK") && !this._oDefineConditionPanel.getBindingPath("inputOK") && this._oDefineConditionPanel.isPropertyInitial("inputOK")) {
513
- this._oDefineConditionPanel.bindProperty("inputOK", {path: "$VHP>/inputOK"});
514
- }
515
- }
516
- // add content only after binding, otherwise onBeforeRendering type is missing
517
- var oPanel = this.byId("defineConditionPanel");
518
- oPanel.addContent(this._oDefineConditionPanel);
519
- }
520
-
521
- }
522
-
523
- return ValueHelpPanel;
524
-
525
- });