@openui5/sap.ui.mdc 1.92.0 → 1.95.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 (220) hide show
  1. package/.reuse/dep5 +1 -6
  2. package/THIRDPARTY.txt +4 -10
  3. package/package.json +4 -4
  4. package/src/sap/ui/mdc/.library +1 -1
  5. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  6. package/src/sap/ui/mdc/AggregationBaseDelegate.js +2 -1
  7. package/src/sap/ui/mdc/Chart.js +14 -6
  8. package/src/sap/ui/mdc/ChartDelegate.js +1 -1
  9. package/src/sap/ui/mdc/ChartNew.js +104 -32
  10. package/src/sap/ui/mdc/Control.js +1 -1
  11. package/src/sap/ui/mdc/Element.js +2 -2
  12. package/src/sap/ui/mdc/Field.js +15 -2
  13. package/src/sap/ui/mdc/FilterBar.js +11 -1
  14. package/src/sap/ui/mdc/FilterField.js +28 -4
  15. package/src/sap/ui/mdc/Link.js +2 -2
  16. package/src/sap/ui/mdc/MultiValueField.js +406 -0
  17. package/src/sap/ui/mdc/Table.js +166 -102
  18. package/src/sap/ui/mdc/TableDelegate.js +30 -21
  19. package/src/sap/ui/mdc/ValueHelp.js +1459 -0
  20. package/src/sap/ui/mdc/ValueHelpDelegate.js +41 -0
  21. package/src/sap/ui/mdc/chart/ToolbarHandler.js +233 -223
  22. package/src/sap/ui/mdc/chartNew/ChartSelectionDetailsNew.js +1 -1
  23. package/src/sap/ui/mdc/chartNew/ChartToolbarNew.js +9 -18
  24. package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +1 -1
  25. package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +1 -1
  26. package/src/sap/ui/mdc/chartNew/ItemNew.js +1 -1
  27. package/src/sap/ui/mdc/chartNew/PropertyHelperNew.js +1 -1
  28. package/src/sap/ui/mdc/condition/Condition.js +2 -2
  29. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  30. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  31. package/src/sap/ui/mdc/condition/FilterConverter.js +27 -15
  32. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +15 -9
  33. package/src/sap/ui/mdc/condition/Operator.js +13 -8
  34. package/src/sap/ui/mdc/condition/RangeOperator.js +3 -6
  35. package/src/sap/ui/mdc/designtime/filterbar/FilterBar.designtime.js +1 -0
  36. package/src/sap/ui/mdc/enum/SelectType.js +43 -0
  37. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  38. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +5 -4
  39. package/src/sap/ui/mdc/field/ConditionType.js +69 -33
  40. package/src/sap/ui/mdc/field/ConditionsType.js +4 -3
  41. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  42. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  43. package/src/sap/ui/mdc/field/DefineConditionPanel.js +38 -24
  44. package/src/sap/ui/mdc/field/FieldBase.js +106 -42
  45. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +25 -2
  46. package/src/sap/ui/mdc/field/FieldHelpBase.js +64 -4
  47. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  48. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  49. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  50. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  51. package/src/sap/ui/mdc/field/FieldValueHelp.js +55 -33
  52. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  53. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
  54. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +52 -32
  55. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +8 -10
  56. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +2 -1
  57. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  58. package/src/sap/ui/mdc/field/ListFieldHelp.js +3 -3
  59. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  60. package/src/sap/ui/mdc/field/MultiValueFieldDelegate.js +49 -0
  61. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +70 -0
  62. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  63. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  64. package/src/sap/ui/mdc/field/content/ContentFactory.js +2 -2
  65. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +146 -76
  66. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +52 -0
  67. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +4 -20
  68. package/src/sap/ui/mdc/filterbar/p13n/FilterGroupLayout.js +9 -3
  69. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  70. package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +55 -39
  71. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +31 -22
  72. package/src/sap/ui/mdc/flexibility/AggregationConfigFlex.js +33 -29
  73. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +10 -5
  74. package/src/sap/ui/mdc/flexibility/ChartItemFlex.js +18 -6
  75. package/src/sap/ui/mdc/flexibility/ColumnFlex.js +15 -4
  76. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +92 -79
  77. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  78. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  79. package/src/sap/ui/mdc/flexibility/GroupFlex.js +70 -52
  80. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +184 -115
  81. package/src/sap/ui/mdc/flexibility/Panel.flexibility.js +59 -41
  82. package/src/sap/ui/mdc/flexibility/SortFlex.js +72 -54
  83. package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +2 -1
  84. package/src/sap/ui/mdc/library.js +618 -7
  85. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  86. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  87. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  88. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  89. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  90. package/src/sap/ui/mdc/link/Factory.js +1 -1
  91. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  92. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  93. package/src/sap/ui/mdc/link/Panel.js +1 -1
  94. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  95. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  96. package/src/sap/ui/mdc/link/SelectionDialog.js +1 -1
  97. package/src/sap/ui/mdc/link/SelectionDialogItem.js +1 -1
  98. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  99. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  100. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  101. package/src/sap/ui/mdc/messagebundle.properties +20 -8
  102. package/src/sap/ui/mdc/messagebundle_ar.properties +16 -6
  103. package/src/sap/ui/mdc/messagebundle_bg.properties +15 -5
  104. package/src/sap/ui/mdc/messagebundle_ca.properties +15 -5
  105. package/src/sap/ui/mdc/messagebundle_cs.properties +17 -7
  106. package/src/sap/ui/mdc/messagebundle_cy.properties +15 -5
  107. package/src/sap/ui/mdc/messagebundle_da.properties +15 -5
  108. package/src/sap/ui/mdc/messagebundle_de.properties +23 -13
  109. package/src/sap/ui/mdc/messagebundle_el.properties +16 -6
  110. package/src/sap/ui/mdc/messagebundle_en.properties +14 -4
  111. package/src/sap/ui/mdc/messagebundle_en_GB.properties +15 -5
  112. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +12 -4
  113. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +3 -1
  114. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +12 -4
  115. package/src/sap/ui/mdc/messagebundle_es.properties +40 -30
  116. package/src/sap/ui/mdc/messagebundle_es_MX.properties +15 -5
  117. package/src/sap/ui/mdc/messagebundle_et.properties +15 -5
  118. package/src/sap/ui/mdc/messagebundle_fi.properties +16 -6
  119. package/src/sap/ui/mdc/messagebundle_fr.properties +27 -17
  120. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +15 -5
  121. package/src/sap/ui/mdc/messagebundle_hi.properties +13 -3
  122. package/src/sap/ui/mdc/messagebundle_hr.properties +15 -5
  123. package/src/sap/ui/mdc/messagebundle_hu.properties +16 -6
  124. package/src/sap/ui/mdc/messagebundle_id.properties +14 -4
  125. package/src/sap/ui/mdc/messagebundle_it.properties +38 -28
  126. package/src/sap/ui/mdc/messagebundle_iw.properties +15 -5
  127. package/src/sap/ui/mdc/messagebundle_ja.properties +16 -6
  128. package/src/sap/ui/mdc/messagebundle_kk.properties +15 -5
  129. package/src/sap/ui/mdc/messagebundle_ko.properties +13 -3
  130. package/src/sap/ui/mdc/messagebundle_lt.properties +15 -5
  131. package/src/sap/ui/mdc/messagebundle_lv.properties +15 -5
  132. package/src/sap/ui/mdc/messagebundle_ms.properties +13 -3
  133. package/src/sap/ui/mdc/messagebundle_nl.properties +16 -6
  134. package/src/sap/ui/mdc/messagebundle_no.properties +22 -12
  135. package/src/sap/ui/mdc/messagebundle_pl.properties +19 -9
  136. package/src/sap/ui/mdc/messagebundle_pt.properties +15 -5
  137. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +14 -4
  138. package/src/sap/ui/mdc/messagebundle_ro.properties +18 -8
  139. package/src/sap/ui/mdc/messagebundle_ru.properties +15 -5
  140. package/src/sap/ui/mdc/messagebundle_sh.properties +15 -5
  141. package/src/sap/ui/mdc/messagebundle_sk.properties +16 -6
  142. package/src/sap/ui/mdc/messagebundle_sl.properties +15 -5
  143. package/src/sap/ui/mdc/messagebundle_sv.properties +16 -6
  144. package/src/sap/ui/mdc/messagebundle_th.properties +19 -9
  145. package/src/sap/ui/mdc/messagebundle_tr.properties +15 -5
  146. package/src/sap/ui/mdc/messagebundle_uk.properties +16 -6
  147. package/src/sap/ui/mdc/messagebundle_vi.properties +15 -5
  148. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +13 -3
  149. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +13 -3
  150. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  151. package/src/sap/ui/mdc/mixin/DelegateMixin.js +2 -2
  152. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +28 -16
  153. package/src/sap/ui/mdc/mixin/PromiseMixin.js +94 -0
  154. package/src/sap/ui/mdc/odata/json/FilterBarDelegate.js +9 -8
  155. package/src/sap/ui/mdc/odata/v4/ChartDelegate.js +5 -5
  156. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelperNew.js +1 -1
  157. package/src/sap/ui/mdc/odata/v4/FieldBaseDelegate.js +9 -0
  158. package/src/sap/ui/mdc/odata/v4/FilterBarDelegate.js +88 -80
  159. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +37 -10
  160. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +17 -0
  161. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +94 -0
  162. package/src/sap/ui/mdc/odata/v4/util/DelegateUtil.js +45 -53
  163. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegateNew.js +302 -179
  164. package/src/sap/ui/mdc/p13n/DefaultProviderRegistry.js +1 -1
  165. package/src/sap/ui/mdc/p13n/Engine.js +21 -16
  166. package/src/sap/ui/mdc/p13n/P13nBuilder.js +5 -59
  167. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  168. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  169. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +130 -53
  170. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +16 -7
  171. package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +1 -1
  172. package/src/sap/ui/mdc/p13n/panels/ListView.js +58 -2
  173. package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +17 -10
  174. package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +6 -1
  175. package/src/sap/ui/mdc/p13n/panels/Wrapper.js +1 -1
  176. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
  177. package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +10 -11
  178. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +13 -1
  179. package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +1 -1
  180. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +11 -2
  181. package/src/sap/ui/mdc/table/Column.js +21 -4
  182. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  183. package/src/sap/ui/mdc/table/PropertyHelper.js +176 -4
  184. package/src/sap/ui/mdc/table/ResponsiveTableType.js +11 -1
  185. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  186. package/src/sap/ui/mdc/table/TableSettings.js +4 -49
  187. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  188. package/src/sap/ui/mdc/themes/base/FieldBase.less +4 -0
  189. package/src/sap/ui/mdc/themes/base/FilterBar.less +2 -2
  190. package/src/sap/ui/mdc/themes/base/GroupView.less +2 -2
  191. package/src/sap/ui/mdc/themes/base/ListView.less +2 -2
  192. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +56 -21
  193. package/src/sap/ui/mdc/ui/Container.js +3 -3
  194. package/src/sap/ui/mdc/ui/ContainerItem.js +2 -2
  195. package/src/sap/ui/mdc/util/Common.js +26 -0
  196. package/src/sap/ui/mdc/util/FilterUtil.js +68 -16
  197. package/src/sap/ui/mdc/util/IdentifierUtil.js +4 -0
  198. package/src/sap/ui/mdc/util/PromiseCache.js +266 -0
  199. package/src/sap/ui/mdc/util/PropertyHelper.js +27 -2
  200. package/src/sap/ui/mdc/valuehelp/Dialog.js +475 -0
  201. package/src/sap/ui/mdc/valuehelp/Popover.js +346 -0
  202. package/src/sap/ui/mdc/valuehelp/base/Container.js +440 -0
  203. package/src/sap/ui/mdc/valuehelp/base/Content.js +442 -0
  204. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +96 -0
  205. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +537 -0
  206. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +105 -0
  207. package/src/sap/ui/mdc/valuehelp/content/Bool.js +232 -0
  208. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +250 -0
  209. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +504 -0
  210. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +619 -0
  211. package/src/sap/ui/mdc/valuehelp/content/MTable.js +881 -0
  212. package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +2 -2
  213. package/test/sap/ui/mdc/testutils/opa/filterbar/Actions.js +250 -0
  214. package/test/sap/ui/mdc/testutils/opa/filterbar/Assertions.js +91 -0
  215. package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +137 -0
  216. package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +25 -0
  217. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +256 -94
  218. package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +2 -1
  219. package/test/sap/ui/mdc/testutils/opa/p13n/{waitForP13nButtonWithParentAndIcon.js → waitForP13nButtonWithMatchers.js} +5 -18
  220. package/test/sap/ui/mdc/testutils/opa/table/TestObjects.js +0 -1
@@ -52,6 +52,11 @@
52
52
  white-space: nowrap;
53
53
  }
54
54
 
55
+ // overrules the tokenizer display setting for empty tokenizer
56
+ .sapMdcTokenizer .sapMTokenizerScrollContainerNoVisibleTokens {
57
+ display: inline-block;
58
+ }
59
+
55
60
  // make the ITB header height 3rem
56
61
  .sapMdcValueHelpPanel .sapMITBHead {
57
62
  margin-top: 0rem;
@@ -83,10 +88,13 @@
83
88
  }
84
89
 
85
90
  // makes the IconTab Header hidden when only one tabs exist
86
- .sapMdcValueHelpPanel .sapMdcNoHeader .sapMITH {
87
- visibility: hidden;
88
- height: 0px;
89
- }
91
+ // .sapMdcValueHelpPanel .sapMdcNoHeader .sapMITH {
92
+ // display: none;
93
+ // }
94
+
95
+ .sapMdcNoHeader > div:first-child {
96
+ display: none;
97
+ }
90
98
 
91
99
  .sapUiMdcDefineConditionPanel .sapUiMdcDefineConditionGrid {
92
100
  margin-bottom: 0.5rem;
@@ -94,8 +102,8 @@
94
102
 
95
103
  // give the Filterbar the required padding and max height
96
104
  .sapMdcValueHelpPanelFilterbar {
97
- margin-left: 2rem;
98
- margin-right: 1rem;
105
+ margin-left: 2rem;
106
+ margin-right: 1rem;
99
107
  }
100
108
 
101
109
  // allign static text
@@ -134,12 +142,12 @@
134
142
  // hide the toolbar border and give some more top margin
135
143
  .sapMdcValueHelpPanel .sapMTBStandard {
136
144
  margin-top: 0.5rem;
137
- border-bottom: solid 1px transparent;
145
+ border-bottom: solid 1px transparent;
138
146
  }
139
147
 
140
148
  // hide the panel bottom border
141
149
  .sapMdcValueHelpPanel .sapMPanelContent:not(.sapMPanelBGTransparent) {
142
- border-bottom: none;
150
+ border-bottom: none;
143
151
  }
144
152
 
145
153
 
@@ -155,29 +163,56 @@
155
163
  font-size: @sapMFontHeader5Size
156
164
  }
157
165
 
158
- // scrollbar for Table if FixFlex is fix
159
- .sapMdcValueHelpPanel .sapUiFixFlexScrolling .sapMdcTablePanel {
160
- height: 200px !important;
161
- }
162
-
163
166
  // make the title shadows transparent
164
- .sapMdcValueHelpTitle.sapMDialog:not(.sapMDialogWithSubHeader) > header:first-of-type .sapMIBar {
165
- box-shadow: inset 0 -0.0625rem transparent;
167
+ .sapMdcValueHelpTitleShadow.sapMDialog:not(.sapMDialogWithSubHeader) > header:first-of-type .sapMIBar {
168
+ box-shadow: inset 0 -0.0625rem transparent;
166
169
  }
167
170
 
168
- .sapMdcValueHelpTitle.sapMBar {
169
- box-shadow: inset 0 -0.0625rem transparent;
171
+ .sapMdcValueHelpTitleShadow.sapMBar {
172
+ box-shadow: inset 0 -0.0625rem transparent;
170
173
  }
171
174
 
172
175
  // remove some borders around the IconTabBar content
173
176
  .sapMdcValueHelpPanel .sapMITBContent {
174
- border-left: none;
175
- border-right: none;
176
- border-bottom: none;
177
+ border-left: none;
178
+ border-right: none;
179
+ border-bottom: none;
177
180
  }
178
181
 
179
182
  // set the 2rem padding also on the OK and Cancel buttons in the footer
180
183
  .sapMdcValueHelpTitle.sapMDialog footer .sapMTB {
181
- padding: 0 2rem;
184
+ padding: 0 2rem;
185
+ }
186
+
187
+
188
+ .sapMdcValueHelpPanelTableBox {
189
+ padding: 0 2rem;
190
+ }
191
+
192
+ .sapMdcValueHelpPanelTableBox > .sapMFlexItem {
193
+ //min-height: 200px !important;
194
+ height: 100%;
195
+ }
196
+
197
+ .sapMdcValueHelpPanelTableBox .sapUiMdcTable .sapMTBStandard {
198
+ margin-top: 0;
199
+ }
200
+
201
+ .sapMdcValueHelpPanel .sapUiFixFlexScrolling .sapMdcValueHelpPanelTableBox {
202
+ height: 200px !important;
203
+ }
204
+
205
+ .sapMdcValueHelpPanelTableBox .sapUiMdcTable .sapMTitleTB {
206
+ font-size: 1rem;
207
+ }
208
+
209
+ .sapMdcValueHelpPopover.sapMdcValueHelpMultiSelect .sapUiMdcDefineConditionPanel {
210
+ margin-left: 1rem;
211
+ margin-top: 1rem;
182
212
  }
183
213
 
214
+ .sapMdcValueHelpPopover.sapMdcValueHelpSingleSelect .sapUiMdcDefineConditionPanel {
215
+ margin-left: 0rem;
216
+ margin-right: 0.75rem;
217
+ margin-top: 1rem;
218
+ }
@@ -22,12 +22,12 @@ sap.ui.define([
22
22
  * @extends sap.ui.core.Control
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.92.0
25
+ * @version 1.95.0
26
26
  *
27
27
  * @constructor
28
28
  * @alias sap.ui.mdc.ui.Container
29
29
  * @author SAP SE
30
- * @version 1.92.0
30
+ * @version 1.95.0
31
31
  * @since 1.85.0
32
32
  *
33
33
  * @private
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * Defines the default view for the <code>Container</code> content area
43
43
  */
44
44
  defaultView: {
45
- type: "String"
45
+ type: "string"
46
46
  }
47
47
  },
48
48
  aggregations: {
@@ -20,12 +20,12 @@ sap.ui.define(['sap/ui/core/Element'],
20
20
  * @extends sap.ui.core.Element
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.92.0
23
+ * @version 1.95.0
24
24
  *
25
25
  * @constructor
26
26
  * @alias sap.ui.mdc.ui.ContainerItem
27
27
  * @author SAP SE
28
- * @version 1.92.0
28
+ * @version 1.95.0
29
29
  * @since 1.85.0
30
30
  *
31
31
  * @private
@@ -0,0 +1,26 @@
1
+ /*
2
+ * ! OpenUI5
3
+ * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([], function() {
8
+ "use strict";
9
+
10
+ var Common = {
11
+ cleanup: function (oTarget, aFields) {
12
+ aFields.forEach(function (sField) {
13
+ var oRemovable = oTarget[sField];
14
+ if (oRemovable) {
15
+ if (oRemovable.destroy && !oRemovable.bIsDestroyed) {
16
+ oRemovable.destroy();
17
+ }
18
+ oTarget[sField] = null;
19
+ }
20
+ });
21
+ }
22
+ };
23
+
24
+ return Common;
25
+
26
+ }, /* bExport= */true);
@@ -7,8 +7,8 @@
7
7
  // ------------------------------------------------------------------------------------------
8
8
  // Utility class used mdc table and chart
9
9
  // ------------------------------------------------------------------------------------------
10
- sap.ui.define(['sap/ui/mdc/util/IdentifierUtil', "sap/ui/mdc/condition/ConditionConverter", 'sap/ui/mdc/condition/FilterConverter', 'sap/base/Log', 'sap/base/util/merge'],
11
- function(IdentifierUtil, ConditionConverter, FilterConverter, Log, merge) {
10
+ sap.ui.define(['sap/ui/mdc/util/IdentifierUtil', 'sap/ui/mdc/enum/ConditionValidated', "sap/ui/mdc/condition/ConditionConverter", 'sap/ui/mdc/condition/FilterConverter', 'sap/base/Log', 'sap/base/util/merge'],
11
+ function(IdentifierUtil, ConditionValidated, ConditionConverter, FilterConverter, Log, merge) {
12
12
  "use strict";
13
13
 
14
14
  /**
@@ -33,21 +33,82 @@ sap.ui.define(['sap/ui/mdc/util/IdentifierUtil', "sap/ui/mdc/condition/Condition
33
33
  */
34
34
  getPropertyByKey : function(aPropertiesMetadata, sKey) {
35
35
  var oPropertyInfo = null;
36
+
36
37
  aPropertiesMetadata.some(function(oProp) {
37
- if (IdentifierUtil.getPropertyKey(oProp) === sKey) {
38
+ if (IdentifierUtil.getPropertyKeyByPath(oProp) === sKey) {
38
39
  oPropertyInfo = oProp;
39
40
  }
40
41
 
41
42
  return oPropertyInfo != null;
42
43
  });
43
44
 
45
+ if (!oPropertyInfo) {
46
+ aPropertiesMetadata.some(function(oProp) {
47
+ if (IdentifierUtil.getPropertyKey(oProp) === sKey) {
48
+ oPropertyInfo = oProp;
49
+ }
50
+
51
+ return oPropertyInfo != null;
52
+ });
53
+ }
54
+
44
55
  return oPropertyInfo;
45
56
  },
46
57
 
58
+ /**
59
+ * Returns internal conditions for a set of properties. Properties without a condition will be ignored.
60
+ * The resulting conditions are represented by the operation and by the values array.
61
+ * <b>Note:</b><br>The operation information will be returned as they are contained in the internal conditions model.
62
+ * This has to be considered, in case custom operations are used.
63
+ *
64
+ * @param {sap.ui.mdc.FilterBar} oFilterBar instance of the filter bar
65
+ * @param {array} aPropertyNames list of property names to be considered
66
+ * @returns {map} mResultingConditions with property names as key and a list of internal conditions for each property
67
+ * @returns {array} mResultingConditions.["propertyName"] conditions addressed by the property name
68
+ * @returns {string} mResultingConditions.["propertyName"].operator operator for a single condition
69
+ * @returns {array} mResultingConditions.["propertyName"].values values for a single condition
70
+ * @private
71
+ * @ui5-restricted sap.ui.mdc, sap.fe
72
+ * @MDC_PUBLIC_CANDIDATE
73
+ */
74
+ getConditionsMap : function(oFilterBar, aPropertyNames) {
75
+ var aPropertyConditions, oPropertyCondition, mResultingConditions = {};
76
+
77
+ if (!oFilterBar || !oFilterBar.isA("sap.ui.mdc.FilterBar")) {
78
+ Log.error("instance of sap.ui.mdc.FilterBar expected");
79
+ return mResultingConditions;
80
+ }
81
+
82
+ var mConditions = oFilterBar.getInternalConditions();
83
+ for (var sPropertyName in mConditions) {
84
+ if (aPropertyNames.indexOf(sPropertyName) >= 0) {
85
+ aPropertyConditions = [];
86
+ if (mConditions[sPropertyName]) {
87
+ for (var i = 0; i < mConditions[sPropertyName].length; i++) {
88
+ oPropertyCondition = {};
89
+ oPropertyCondition.operator = mConditions[sPropertyName][i].operator;
90
+
91
+ if ((oPropertyCondition.operator === "EQ") && (mConditions[sPropertyName][i].validated === ConditionValidated.Validated)) {
92
+ oPropertyCondition.values = [mConditions[sPropertyName][i].values[0]];
93
+ } else {
94
+ oPropertyCondition.values = mConditions[sPropertyName][i].values;
95
+ }
96
+
97
+ aPropertyConditions.push(oPropertyCondition);
98
+ }
99
+
100
+ mResultingConditions[sPropertyName] = aPropertyConditions;
101
+ }
102
+ }
103
+ }
104
+
105
+ return mResultingConditions;
106
+ },
107
+
47
108
  /**
48
109
  * Creates the filter statements based on the externalize conditions.<br>
49
110
  *
50
- * @param {sap.ui.mdc.Control} oMDCControl the MDC control instance
111
+ * @param {sap.ui.mdc.Control|sap.ui.mdc.util.TypeUtil} vTypeProvider the MDC control instance or TypeUtil
51
112
  * @param {map} mConditions - map with externalized conditions
52
113
  * @param {array} aPropertiesMetadata - array with all the property metadata
53
114
  * @param {array} aIgnoreProperties - an array of property names which should be not considered for filtering
@@ -55,19 +116,10 @@ sap.ui.define(['sap/ui/mdc/util/IdentifierUtil', "sap/ui/mdc/condition/Condition
55
116
  * @private
56
117
  * @ui5-restricted sap.ui.mdc
57
118
  */
58
- getFilterInfo: function(oMDCControl, mConditions, aPropertiesMetadata, aIgnoreProperties) {
119
+ getFilterInfo: function(vTypeProvider, mConditions, aPropertiesMetadata, aIgnoreProperties) {
59
120
 
60
121
  var oFilterInfo = {};
61
122
 
62
- if (!oMDCControl) {
63
- Log.error("not an mdc control");
64
- return oFilterInfo;
65
- }
66
- if (!oMDCControl.bDelegateInitialized || !oMDCControl.getTypeUtil()) {
67
- Log.error("typeUtil not available");
68
- return oFilterInfo;
69
- }
70
-
71
123
  aIgnoreProperties = aIgnoreProperties ? aIgnoreProperties : [];
72
124
 
73
125
  var i, sFieldPath, mInternalFilterConditions = {}, oConditionInternal;
@@ -80,13 +132,13 @@ sap.ui.define(['sap/ui/mdc/util/IdentifierUtil', "sap/ui/mdc/condition/Condition
80
132
  var oProperty = FilterUtil.getPropertyByKey(aPropertiesMetadata, sFieldPath);
81
133
  if (oProperty) {
82
134
 
83
- mFilterTypes[sFieldPath] = { type: oProperty.typeConfig.typeInstance };
135
+ mFilterTypes[sFieldPath] = { type: oProperty.typeConfig.typeInstance, caseSensitive: oProperty.caseSensitive };
84
136
  mInternalFilterConditions[sFieldPath] = [];
85
137
 
86
138
  //convert from externalized to model-specific value representation
87
139
  for (i = 0; i < mConditions[sFieldPath].length; i++) {
88
140
  oConditionInternal = merge({}, mConditions[sFieldPath][i]);
89
- mInternalFilterConditions[sFieldPath].push(ConditionConverter.toType(oConditionInternal, oProperty.typeConfig, oMDCControl.getTypeUtil()));
141
+ mInternalFilterConditions[sFieldPath].push(ConditionConverter.toType(oConditionInternal, oProperty.typeConfig, vTypeProvider.getTypeUtil ? vTypeProvider.getTypeUtil() : vTypeProvider));
90
142
  }
91
143
 
92
144
  } else {
@@ -63,6 +63,10 @@ sap.ui.define(['sap/ui/base/DataType'], function(DataType) {
63
63
  return oProperty.name;
64
64
  },
65
65
 
66
+ getPropertyKeyByPath: function(oProperty) {
67
+ return oProperty.path;
68
+ },
69
+
66
70
  /**
67
71
  * Static function that determines the key of the property<br>
68
72
  *
@@ -0,0 +1,266 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2021 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/base/Object"],
8
+ function (BaseObject) {
9
+ "use strict";
10
+
11
+ var _checkAndPrepareAdd = function (sName) {
12
+ if (!sName) {
13
+ throw new Error("PromiseCache: Please provide an identifier!");
14
+ }
15
+ if (this._oCache && this._oCache[sName]) {
16
+ this.remove.call(this, sName);
17
+ }
18
+ };
19
+
20
+ var _findKeyForPromise = function (oPromise) {
21
+ if (typeof oPromise === "object" && this._oCache) {
22
+ for (var sKey in this._oCache) {
23
+ if (this._oCache[sKey].promise === oPromise) {
24
+ return sKey;
25
+ }
26
+ }
27
+ }
28
+ };
29
+
30
+ var _findConfigByKeyOrPromise = function (vPromise, bThrow) {
31
+ var sKey = typeof vPromise === "string" ? vPromise : _findKeyForPromise.call(this, vPromise);
32
+ var oConfig = sKey && this._oCache && this._oCache[sKey];
33
+
34
+ if (bThrow && !oConfig) {
35
+ throw new Error("PromiseCache: Promise not found!");
36
+ }
37
+
38
+ return oConfig;
39
+ };
40
+
41
+ /**
42
+ * Provides a caching mechanism for promises.
43
+ * This API features Promise cancellation: resolve or reject handlers won't be called after removal of the promise, cache destruction or manual cancellation.
44
+ * Destroying the cache will cancel all registered promises and delete references. Convenience methods for promise creation, wrapping and replacement are offered.
45
+ *
46
+ * @author SAP SE
47
+ * @version 1.95.0
48
+ * @alias sap.ui.mdc.util.PromiseCache
49
+ * @namespace
50
+ * @since 1.85.0
51
+ * @private
52
+ * @experimental
53
+ * @ui5-restricted sap.ui.mdc
54
+ */
55
+ var PromiseCache = BaseObject.extend("sap.ui.mdc.util.PromiseCache", {
56
+ /**
57
+ * Constructor.
58
+ */
59
+ constructor: function () {
60
+ this._oCache = {};
61
+ },
62
+ /**
63
+ * Adds a promise to the promise cache using a string identifier and a creation method or given <code>Promise</code>.
64
+ * Calling add using an already existing identifier will cancel and replace the existing promise.
65
+ *
66
+ * Note: All unsettled promises will be cancelled on removal or cache destruction
67
+ * A given creation method will receive the following arguments on execution:
68
+ * <ul>
69
+ * <li><code>oPromise</code> ­- The newly created Promise</li>
70
+ * <li><code>fnResolve</code> ­- Resolve method for the newly created Promise</li>
71
+ * <li><code>fnReject</code> ­- Reject method for the newly created Promise</li>
72
+ * <li><code>fnRemove</code> ­- Remove method for the newly created Promise</li>
73
+ * </ul>
74
+ *
75
+ * @protected
76
+ * @param {string} [sName] Promise identifier
77
+ * @param {function(oPromise,fnResolve,fnReject,fnRemove)|Promise} [fnCreate] creation method or pre-created promise
78
+ * @returns {Promise} Returns the newly created <code>Promise</code>
79
+ */
80
+ add: function (sName, fnCreate) {
81
+ _checkAndPrepareAdd.call(this, sName);
82
+ var oPromiseConfig = {};
83
+ this._oCache[sName] = oPromiseConfig;
84
+
85
+ oPromiseConfig.promise = new Promise(function (resolve, reject) {
86
+ oPromiseConfig.resolve = function (oResult) {
87
+ if (!oPromiseConfig._isCanceled) {
88
+ oPromiseConfig._isSettled = true;
89
+ resolve(oResult);
90
+ }
91
+ };
92
+ oPromiseConfig.reject = function (oErr) {
93
+ if (!oPromiseConfig._isCanceled) {
94
+ oPromiseConfig._isSettled = true;
95
+ reject(oErr);
96
+ }
97
+ };
98
+ });
99
+
100
+ oPromiseConfig.promise.isSettled = function () {
101
+ return !!oPromiseConfig._isSettled;
102
+ };
103
+
104
+ oPromiseConfig.promise.isCanceled = function () {
105
+ return !!oPromiseConfig._isCanceled;
106
+ };
107
+
108
+ oPromiseConfig.promise.getInternalPromise = function () {
109
+ return oPromiseConfig._promise;
110
+ };
111
+
112
+ if (fnCreate) {
113
+ var bIsCreateFunction = typeof fnCreate === "function";
114
+ var bIsCreatePromise = !bIsCreateFunction && typeof fnCreate.then === "function";
115
+
116
+ if (!bIsCreateFunction && !bIsCreatePromise) {
117
+ throw new Error("PromiseCache: fnCreate must be a promise or function");
118
+ }
119
+
120
+ var oCreateResult = bIsCreateFunction ? fnCreate() : fnCreate;
121
+ var bIsCreateResultPromise = oCreateResult && typeof oCreateResult.then === "function";
122
+
123
+ if (bIsCreateResultPromise) { // handle internal promise
124
+ oPromiseConfig._promise = oCreateResult;
125
+ oPromiseConfig._promise.then(function (vResult) {
126
+ if (!oPromiseConfig._isCanceled) {
127
+ oPromiseConfig._isSettled = true;
128
+ oPromiseConfig.resolve(vResult);
129
+ }
130
+ return vResult;
131
+ }, function (vErr) {
132
+ if (!oPromiseConfig._isCanceled) {
133
+ oPromiseConfig._isSettled = true;
134
+ oPromiseConfig.reject(vErr);
135
+ }
136
+ });
137
+ } else { // handle non-promise results
138
+ oPromiseConfig.resolve(oCreateResult);
139
+ }
140
+ }
141
+
142
+ return this._oCache[sName].promise;
143
+ },
144
+ /**
145
+ * Cancels an unsettled promise from the promise cache.
146
+ * Calling cancel twice is a no-op.
147
+ *
148
+ * @protected
149
+ * @param {string|Promise} vPromise Promise or identifier
150
+ * @returns {Promise} Returns the canceled <code>Promise</code>
151
+ */
152
+ cancel: function (vPromise) {
153
+ var oPromiseConfig = _findConfigByKeyOrPromise.call(this, vPromise, true);
154
+ if (!oPromiseConfig._isSettled) {
155
+ oPromiseConfig._isCanceled = true;
156
+ }
157
+ return oPromiseConfig.promise;
158
+ },
159
+ /**
160
+ * Retrieves an existing promise from the promise cache.
161
+ * Automatically creates and returns a new promise if <code>fnCreate</code> is given.
162
+ *
163
+ * A given creation method will receive the following arguments on execution:
164
+ * <ul>
165
+ * <li><code>oPromise</code> ­- The newly created Promise</li>
166
+ * <li><code>fnResolve</code> ­- Resolve method for the newly created Promise</li>
167
+ * <li><code>fnReject</code> ­- Reject method for the newly created Promise</li>
168
+ * <li><code>fnRemove</code> ­- Remove method for the newly created Promise</li>
169
+ * </ul>
170
+ *
171
+ * @protected
172
+ * @param {string} sName Promise identifier
173
+ * @param {function(oPromise,fnResolve,fnReject,fnRemove)|Promise} [fnCreate] creation method or pre-created promise
174
+ * @returns {Promise} Returns the newly created <code>Promise</code>
175
+ */
176
+ retrieve: function (sName, fnCreate) {
177
+ var oPromiseConfig = this._oCache && this._oCache[sName];
178
+ if (!oPromiseConfig && fnCreate) {
179
+ return this.add.apply(this, [sName, fnCreate]);
180
+ }
181
+ return oPromiseConfig && oPromiseConfig.promise;
182
+ },
183
+
184
+ /**
185
+ * Retrieves multiple promises from the promise cache
186
+ * Will return all cached promises if no arguments are given
187
+ *
188
+ * @protected
189
+ * @param {...string} sName Promise identifier(s)
190
+ * @returns {Array} Returns the retrieved promises
191
+ */
192
+ retrieveMany: function () {
193
+ var aResults = [];
194
+ var aKeys = arguments.length
195
+ ? [].slice.call(arguments)
196
+ : Object.keys(this._oCache);
197
+ for (var i = 0; i < aKeys.length; i++) {
198
+ aResults.push(this.retrieve(aKeys[i].toString()));
199
+ }
200
+ return aResults;
201
+ },
202
+ /**
203
+ * Removes an existing promise from the promise cache
204
+ *
205
+ * @protected
206
+ * @param {string|Promise} vPromise Promise or identifier
207
+ */
208
+ remove: function (vPromise) {
209
+ var sKey = typeof vPromise === "string" ? vPromise : _findKeyForPromise.call(this, vPromise);
210
+ var oConfig = sKey && this._oCache && this._oCache[sKey];
211
+ if (oConfig) {
212
+ oConfig._isCanceled = true;
213
+ delete this._oCache[sKey];
214
+ }
215
+ },
216
+ /**
217
+ * Resolves an existing promise from the promise cache
218
+ *
219
+ * @protected
220
+ * @param {string|Promise} vPromise Promise or identifier
221
+ * @param {string} [oValue] Promise result
222
+ * @returns {Promise} Returns the resolved <code>Promise</code>
223
+ */
224
+ resolve: function (vPromise, oValue) {
225
+ var oConfig = _findConfigByKeyOrPromise.call(this, vPromise, true);
226
+ oConfig.resolve(oValue);
227
+ return oConfig.promise;
228
+ },
229
+ /**
230
+ * Rejects an existing promise from the promise cache
231
+ *
232
+ * @protected
233
+ * @param {string|Promise} vPromise Promise or identifier
234
+ * @param {string} [oValue] Promise error
235
+ * @returns {Promise} Returns the rejected <code>Promise</code>
236
+ */
237
+ reject: function (vPromise, oValue) {
238
+ var oConfig = _findConfigByKeyOrPromise.call(this, vPromise, true);
239
+ oConfig.reject(oValue);
240
+ return oConfig.promise;
241
+ },
242
+ /**
243
+ * Provides cleanup functionality for the promise cache
244
+ *
245
+ * @protected
246
+ */
247
+ clear: function () {
248
+ Object.keys(this._oCache).forEach(
249
+ function (sKey) {
250
+ this.remove(sKey);
251
+ }.bind(this)
252
+ );
253
+ },
254
+ /**
255
+ * Provides cleanup functionality for the promise cache
256
+ *
257
+ * @protected
258
+ */
259
+ destroy: function () {
260
+ this.clear();
261
+ this._oCache = null;
262
+ }
263
+ });
264
+ return PromiseCache;
265
+ }
266
+ );
@@ -89,6 +89,10 @@ sap.ui.define([
89
89
  defaultValue: -1,
90
90
  valueForComplexProperty: null
91
91
  },
92
+ caseSensitive: {
93
+ type: "boolean",
94
+ defaultValue: true
95
+ },
92
96
  group: { // Key of the group the property is inside. Used to visually group properties in personalization dialogs.
93
97
  type: "string",
94
98
  allowedForComplexProperty: true
@@ -133,19 +137,25 @@ sap.ui.define([
133
137
  type: "object",
134
138
  allowedForComplexProperty: true
135
139
  },
140
+ visualSettings: { // This object contains all relevant properties for visual adjustments
141
+ type: "object"
142
+ },
136
143
 
137
144
  // Chart
138
145
 
139
146
  // FilterBar
140
147
  required: { // Whether there must be a filter condition for this property before firing a "search" event.
141
148
  type: "boolean"
149
+ },
150
+ hiddenFilter: { // Name of the property indicating if the filter is never to be shown on the UI.
151
+ type: "boolean"
142
152
  }
143
153
 
144
154
  // Reserved attributes
145
155
  // extension - Used to add model-specific information. For example, for analytics in OData, see sap.ui.mdc.odata.v4.TableDelegate.
146
156
  };
147
157
 
148
- var aCommonAttributes = ["name", "label", "visible", "path", "typeConfig", "maxConditions", "group", "groupLabel"];
158
+ var aCommonAttributes = ["name", "label", "visible", "path", "typeConfig", "maxConditions", "group", "groupLabel", "caseSensitive"];
149
159
  var aPropertyMethods = [];
150
160
  var _private = new WeakMap();
151
161
 
@@ -402,7 +412,7 @@ sap.ui.define([
402
412
  * @extends sap.ui.base.Object
403
413
  *
404
414
  * @author SAP SE
405
- * @version 1.92.0
415
+ * @version 1.95.0
406
416
  *
407
417
  * @private
408
418
  * @experimental
@@ -976,6 +986,21 @@ sap.ui.define([
976
986
  };
977
987
  aPropertyMethods.push("getExportSettings");
978
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
+
979
1004
  /**
980
1005
  * Gets the unique name (key) of a property.
981
1006
  *