@sapui5/sap.fe.templates 1.99.0 → 1.101.1

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 (137) hide show
  1. package/package.json +6 -5
  2. package/src/sap/fe/templates/.library +1 -2
  3. package/src/sap/fe/templates/AnalyticalListPage/Component.js +24 -12
  4. package/src/sap/fe/templates/AnalyticalListPage/Component.ts +6 -0
  5. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +30 -32
  6. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +25 -0
  7. package/src/sap/fe/templates/Feedback.js +80 -0
  8. package/src/sap/fe/templates/Feedback.ts +67 -0
  9. package/src/sap/fe/templates/ListComponent.js +156 -118
  10. package/src/sap/fe/templates/ListComponent.ts +105 -0
  11. package/src/sap/fe/templates/ListReport/Component.js +82 -47
  12. package/src/sap/fe/templates/ListReport/Component.ts +39 -0
  13. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +123 -112
  14. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +100 -0
  15. package/src/sap/fe/templates/ListReport/ListReport.view.xml +24 -22
  16. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +1111 -1086
  17. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +1009 -0
  18. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +54 -53
  19. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +55 -0
  20. package/src/sap/fe/templates/ListReport/overrides/Share.js +134 -137
  21. package/src/sap/fe/templates/ListReport/overrides/Share.ts +134 -0
  22. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +443 -428
  23. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +413 -0
  24. package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +25 -25
  25. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +72 -0
  26. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +62 -0
  27. package/src/sap/fe/templates/ListReport/view/fragments/MultipleModeOld.fragment.xml +50 -0
  28. package/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +478 -473
  29. package/src/sap/fe/templates/ObjectPage/AnnotationHelper.ts +511 -0
  30. package/src/sap/fe/templates/ObjectPage/Component.js +169 -149
  31. package/src/sap/fe/templates/ObjectPage/Component.ts +131 -0
  32. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +140 -142
  33. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +116 -0
  34. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +6 -8
  35. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1530 -1414
  36. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +1442 -0
  37. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +136 -95
  38. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.ts +84 -0
  39. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +24 -21
  40. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.ts +10 -0
  41. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +98 -53
  42. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +50 -0
  43. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +20 -16
  44. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.ts +15 -0
  45. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +50 -47
  46. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +47 -0
  47. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +34 -34
  48. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +34 -0
  49. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +15 -15
  50. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.ts +13 -0
  51. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +11 -11
  52. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.ts +7 -0
  53. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +55 -52
  54. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +57 -0
  55. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +15 -17
  56. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +13 -0
  57. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +13 -17
  58. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +14 -0
  59. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +23 -21
  60. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +21 -0
  61. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +310 -317
  62. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +316 -0
  63. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +66 -57
  64. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +65 -0
  65. package/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
  66. package/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +1 -1
  67. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +18 -24
  68. package/src/sap/fe/templates/ObjectPage/view/fragments/CollaborationDraft.fragment.xml +38 -0
  69. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +1 -1
  70. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +4 -4
  71. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -0
  72. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +1 -0
  73. package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +27 -0
  74. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +851 -815
  75. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +795 -0
  76. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +205 -187
  77. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +178 -0
  78. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +484 -459
  79. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +438 -0
  80. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +16 -14
  81. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +20 -0
  82. package/src/sap/fe/templates/TableScroller.js +45 -53
  83. package/src/sap/fe/templates/TableScroller.ts +48 -0
  84. package/src/sap/fe/templates/controls/Chart.fragment.xml +18 -17
  85. package/src/sap/fe/templates/controls/MacroChart.fragment.xml +22 -0
  86. package/src/sap/fe/templates/library.js +49 -63
  87. package/src/sap/fe/templates/library.ts +57 -0
  88. package/src/sap/fe/templates/messagebundle.properties +19 -7
  89. package/src/sap/fe/templates/messagebundle_ar.properties +6 -17
  90. package/src/sap/fe/templates/messagebundle_bg.properties +6 -17
  91. package/src/sap/fe/templates/messagebundle_ca.properties +6 -17
  92. package/src/sap/fe/templates/messagebundle_cs.properties +6 -17
  93. package/src/sap/fe/templates/messagebundle_cy.properties +6 -17
  94. package/src/sap/fe/templates/messagebundle_da.properties +6 -17
  95. package/src/sap/fe/templates/messagebundle_de.properties +6 -17
  96. package/src/sap/fe/templates/messagebundle_el.properties +6 -17
  97. package/src/sap/fe/templates/messagebundle_en.properties +6 -17
  98. package/src/sap/fe/templates/messagebundle_en_GB.properties +6 -17
  99. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +0 -15
  100. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +6 -17
  101. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +6 -17
  102. package/src/sap/fe/templates/messagebundle_es.properties +6 -17
  103. package/src/sap/fe/templates/messagebundle_es_MX.properties +6 -17
  104. package/src/sap/fe/templates/messagebundle_et.properties +6 -17
  105. package/src/sap/fe/templates/messagebundle_fi.properties +6 -17
  106. package/src/sap/fe/templates/messagebundle_fr.properties +6 -17
  107. package/src/sap/fe/templates/messagebundle_fr_CA.properties +6 -17
  108. package/src/sap/fe/templates/messagebundle_hi.properties +6 -17
  109. package/src/sap/fe/templates/messagebundle_hr.properties +6 -17
  110. package/src/sap/fe/templates/messagebundle_hu.properties +6 -17
  111. package/src/sap/fe/templates/messagebundle_id.properties +6 -17
  112. package/src/sap/fe/templates/messagebundle_it.properties +6 -17
  113. package/src/sap/fe/templates/messagebundle_iw.properties +6 -17
  114. package/src/sap/fe/templates/messagebundle_ja.properties +6 -17
  115. package/src/sap/fe/templates/messagebundle_kk.properties +6 -17
  116. package/src/sap/fe/templates/messagebundle_ko.properties +6 -17
  117. package/src/sap/fe/templates/messagebundle_lt.properties +6 -17
  118. package/src/sap/fe/templates/messagebundle_lv.properties +6 -17
  119. package/src/sap/fe/templates/messagebundle_ms.properties +6 -17
  120. package/src/sap/fe/templates/messagebundle_nl.properties +6 -17
  121. package/src/sap/fe/templates/messagebundle_no.properties +6 -17
  122. package/src/sap/fe/templates/messagebundle_pl.properties +6 -17
  123. package/src/sap/fe/templates/messagebundle_pt.properties +6 -17
  124. package/src/sap/fe/templates/messagebundle_pt_PT.properties +6 -17
  125. package/src/sap/fe/templates/messagebundle_ro.properties +6 -17
  126. package/src/sap/fe/templates/messagebundle_ru.properties +6 -17
  127. package/src/sap/fe/templates/messagebundle_sh.properties +6 -17
  128. package/src/sap/fe/templates/messagebundle_sk.properties +6 -17
  129. package/src/sap/fe/templates/messagebundle_sl.properties +6 -17
  130. package/src/sap/fe/templates/messagebundle_sv.properties +6 -17
  131. package/src/sap/fe/templates/messagebundle_th.properties +6 -17
  132. package/src/sap/fe/templates/messagebundle_tr.properties +6 -17
  133. package/src/sap/fe/templates/messagebundle_uk.properties +6 -17
  134. package/src/sap/fe/templates/messagebundle_vi.properties +6 -17
  135. package/src/sap/fe/templates/messagebundle_zh_CN.properties +6 -17
  136. package/src/sap/fe/templates/messagebundle_zh_TW.properties +6 -17
  137. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.xml +0 -49
@@ -1,115 +1,126 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- (c) Copyright 2009-2021 SAP SE. All rights reserved
4
-
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
5
4
  */
6
- sap.ui.define(["sap/fe/core/ExtensionAPI", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/chart/ChartUtils"], function(
7
- ExtensionAPI,
8
- FilterUtils,
9
- ChartUtils
10
- ) {
11
- "use strict";
12
-
13
- /**
14
- * @class Extension API for list reports on SAP Fiori elements for OData V4.
15
- * @alias sap.fe.templates.ListReport.ExtensionAPI
16
- * @extends sap.fe.core.ExtensionAPI
17
- * @public
18
- * @hideconstructor
19
- * @final
20
- * @since 1.79.0
21
- */
22
- var extensionAPI = ExtensionAPI.extend("sap.fe.templates.ListReport.ExtensionAPI", {
23
- /**
24
- * @private
25
- * @name sap.fe.templates.ListReport.ExtensionAPI.getMetadata
26
- * @function
27
- */
28
- /**
29
- * @private
30
- * @name sap.fe.templates.ListReport.ExtensionAPI.extend
31
- * @function
32
- */
33
-
34
- /**
35
- * Refreshes the List Report.
36
- * This method currently only supports triggering the search (by clicking on the GO button)
37
- * in the List Report Filter Bar. It can be used to request the initial load or to refresh the
38
- * currently shown data based on the filters entered by the user.
39
- * Please note: The Promise is resolved once the search is triggered and not once the data is returned.
40
- *
41
- * @alias sap.fe.templates.ListReport.ExtensionAPI#refresh
42
- * @returns {Promise} Resolved once the data is refreshed or rejected if the request failed
43
- *
44
- * @public
45
- */
46
- refresh: function() {
47
- var oFilterBar = this._controller._getFilterBarControl();
48
- if (oFilterBar) {
49
- return oFilterBar.waitForInitialization().then(function() {
50
- oFilterBar.triggerSearch();
51
- });
52
- } else {
53
- // TODO: if there is no filter bar, make refresh work
54
- return Promise.resolve();
55
- }
56
- },
57
-
58
- /**
59
- * Gets the list entries currently selected for the displayed control.
60
- *
61
- * @alias sap.fe.templates.ListReport.ExtensionAPI#getSelectedContexts
62
- * @returns {sap.ui.model.odata.v4.Context[]} Array containing the selected contexts
63
- *
64
- * @public
65
- */
66
- getSelectedContexts: function() {
67
- var oControl = (this._controller._isMultiMode() && this._controller._getCurrentControl()) || this._controller._getTable();
68
- if (oControl.isA("sap.ui.mdc.Chart")) {
69
- var aSelectedContexts = [];
70
- if (oControl && oControl.get_chart()) {
71
- var aSelectedDataPoints = ChartUtils.getChartSelectedData(oControl.get_chart());
72
- for (var i = 0; i < aSelectedDataPoints.length; i++) {
73
- aSelectedContexts.push(aSelectedDataPoints[i].context);
74
- }
75
- }
76
- return aSelectedContexts;
77
- } else {
78
- return (oControl && oControl.getSelectedContexts()) || [];
79
- }
80
- },
81
-
82
- /**
83
- * Set the filter values for the given property in the filter bar.
84
- * The filter values can be either a single value or an array of values.
85
- * Each filter value must be represented as a string corresponding to the given operator.
86
- *
87
- * @param {string} sConditionPath The path to the property as a condition path
88
- * @param {string} [sOperator] The operator to be used (optional) - if not set, the default operator (EQ) will be used
89
- * @param {Array | string} vValues The values to be applied
90
- *
91
- * @alias sap.fe.templates.ListReport.ExtensionAPI#setFilterValues
92
- * @returns {Promise} A promise for async handling
93
- * @public
94
- */
95
- setFilterValues: function(sConditionPath, sOperator, vValues) {
96
- return FilterUtils.setFilterValues(this._controller._getFilterBarControl(), sConditionPath, sOperator, vValues);
97
- },
98
-
99
- /**
100
- * This method converts filter conditions to filters.
101
- *
102
- * @param {map} mFilterConditions Map containing the filter conditions of the FilterBar.
103
- *
104
- * @alias sap.fe.templates.ListReport.ExtensionAPI#createFiltersFromFilterConditions
105
- * @returns {object} Object containing the converted FilterBar filters.
106
- * @public
107
- */
108
- createFiltersFromFilterConditions: function(mFilterConditions) {
109
- var oFilterBar = this._controller._getFilterBarControl();
110
- return FilterUtils.getFilterInfo(oFilterBar, undefined, mFilterConditions);
111
- }
112
- });
113
-
114
- return extensionAPI;
115
- });
5
+ sap.ui.define(["sap/fe/core/ExtensionAPI", "sap/fe/core/helpers/ClassSupport", "sap/fe/macros/chart/ChartUtils", "sap/fe/macros/filter/FilterUtils"], function (ExtensionAPI, ClassSupport, ChartUtils, FilterUtils) {
6
+ "use strict";
7
+
8
+ var _dec, _class;
9
+
10
+ var defineUI5Class = ClassSupport.defineUI5Class;
11
+
12
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
13
+
14
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
+
16
+ /**
17
+ * Extension API for list reports on SAP Fiori elements for OData V4.
18
+ *
19
+ * @alias sap.fe.templates.ListReport.ExtensionAPI
20
+ * @public
21
+ * @hideconstructor
22
+ * @final
23
+ * @since 1.79.0
24
+ */
25
+ var ListReportExtensionAPI = (_dec = defineUI5Class("sap.fe.templates.ListReport.ExtensionAPI"), _dec(_class = /*#__PURE__*/function (_ExtensionAPI) {
26
+ _inheritsLoose(ListReportExtensionAPI, _ExtensionAPI);
27
+
28
+ function ListReportExtensionAPI() {
29
+ return _ExtensionAPI.apply(this, arguments) || this;
30
+ }
31
+
32
+ var _proto = ListReportExtensionAPI.prototype;
33
+
34
+ /**
35
+ * Refreshes the List Report.
36
+ * This method currently only supports triggering the search (by clicking on the GO button)
37
+ * in the List Report Filter Bar. It can be used to request the initial load or to refresh the
38
+ * currently shown data based on the filters entered by the user.
39
+ * Please note: The Promise is resolved once the search is triggered and not once the data is returned.
40
+ *
41
+ * @alias sap.fe.templates.ListReport.ExtensionAPI#refresh
42
+ * @returns {Promise} Resolved once the data is refreshed or rejected if the request failed
43
+ *
44
+ * @public
45
+ */
46
+ _proto.refresh = function refresh() {
47
+ var oFilterBar = this._controller._getFilterBarControl();
48
+
49
+ if (oFilterBar) {
50
+ return oFilterBar.waitForInitialization().then(function () {
51
+ oFilterBar.triggerSearch();
52
+ });
53
+ } else {
54
+ // TODO: if there is no filter bar, make refresh work
55
+ return Promise.resolve();
56
+ }
57
+ }
58
+ /**
59
+ * Gets the list entries currently selected for the displayed control.
60
+ *
61
+ * @alias sap.fe.templates.ListReport.ExtensionAPI#getSelectedContexts
62
+ * @returns {sap.ui.model.odata.v4.Context[]} Array containing the selected contexts
63
+ *
64
+ * @public
65
+ */
66
+ ;
67
+
68
+ _proto.getSelectedContexts = function getSelectedContexts() {
69
+ var oControl = this._controller._isMultiMode() && this._controller._getCurrentControl() || this._controller._getTable();
70
+
71
+ if (oControl.isA("sap.ui.mdc.Chart")) {
72
+ var aSelectedContexts = [];
73
+
74
+ if (oControl && oControl.get_chart()) {
75
+ var aSelectedDataPoints = ChartUtils.getChartSelectedData(oControl.get_chart());
76
+
77
+ for (var i = 0; i < aSelectedDataPoints.length; i++) {
78
+ aSelectedContexts.push(aSelectedDataPoints[i].context);
79
+ }
80
+ }
81
+
82
+ return aSelectedContexts;
83
+ } else {
84
+ return oControl && oControl.getSelectedContexts() || [];
85
+ }
86
+ }
87
+ /**
88
+ * Set the filter values for the given property in the filter bar.
89
+ * The filter values can be either a single value or an array of values.
90
+ * Each filter value must be represented as a string corresponding to the given operator.
91
+ *
92
+ * @param {string} sConditionPath The path to the property as a condition path
93
+ * @param {string} [sOperator] The operator to be used (optional) - if not set, the default operator (EQ) will be used
94
+ * @param {undefined | string | string[]} vValues The values to be applied
95
+ *
96
+ * @alias sap.fe.templates.ListReport.ExtensionAPI#setFilterValues
97
+ * @returns {Promise} A promise for asynchronous handling
98
+ * @public
99
+ */
100
+ ;
101
+
102
+ _proto.setFilterValues = function setFilterValues(sConditionPath, sOperator, vValues) {
103
+ return FilterUtils.setFilterValues(this._controller._getFilterBarControl(), sConditionPath, sOperator, vValues);
104
+ }
105
+ /**
106
+ * This method converts filter conditions to filters.
107
+ *
108
+ * @param {map} mFilterConditions Map containing the filter conditions of the FilterBar.
109
+ *
110
+ * @alias sap.fe.templates.ListReport.ExtensionAPI#createFiltersFromFilterConditions
111
+ * @returns {object} Object containing the converted FilterBar filters.
112
+ * @public
113
+ */
114
+ ;
115
+
116
+ _proto.createFiltersFromFilterConditions = function createFiltersFromFilterConditions(mFilterConditions) {
117
+ var oFilterBar = this._controller._getFilterBarControl();
118
+
119
+ return FilterUtils.getFilterInfo(oFilterBar, undefined, mFilterConditions);
120
+ };
121
+
122
+ return ListReportExtensionAPI;
123
+ }(ExtensionAPI)) || _class);
124
+ return ListReportExtensionAPI;
125
+ }, false);
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkV4dGVuc2lvbkFQSS50cyJdLCJuYW1lcyI6WyJMaXN0UmVwb3J0RXh0ZW5zaW9uQVBJIiwiZGVmaW5lVUk1Q2xhc3MiLCJyZWZyZXNoIiwib0ZpbHRlckJhciIsIl9jb250cm9sbGVyIiwiX2dldEZpbHRlckJhckNvbnRyb2wiLCJ3YWl0Rm9ySW5pdGlhbGl6YXRpb24iLCJ0aGVuIiwidHJpZ2dlclNlYXJjaCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZ2V0U2VsZWN0ZWRDb250ZXh0cyIsIm9Db250cm9sIiwiX2lzTXVsdGlNb2RlIiwiX2dldEN1cnJlbnRDb250cm9sIiwiX2dldFRhYmxlIiwiaXNBIiwiYVNlbGVjdGVkQ29udGV4dHMiLCJnZXRfY2hhcnQiLCJhU2VsZWN0ZWREYXRhUG9pbnRzIiwiQ2hhcnRVdGlscyIsImdldENoYXJ0U2VsZWN0ZWREYXRhIiwiaSIsImxlbmd0aCIsInB1c2giLCJjb250ZXh0Iiwic2V0RmlsdGVyVmFsdWVzIiwic0NvbmRpdGlvblBhdGgiLCJzT3BlcmF0b3IiLCJ2VmFsdWVzIiwiRmlsdGVyVXRpbHMiLCJjcmVhdGVGaWx0ZXJzRnJvbUZpbHRlckNvbmRpdGlvbnMiLCJtRmlsdGVyQ29uZGl0aW9ucyIsImdldEZpbHRlckluZm8iLCJ1bmRlZmluZWQiLCJFeHRlbnNpb25BUEkiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUVNQSxzQixXQURMQyxjQUFjLENBQUMsMENBQUQsQzs7Ozs7Ozs7O0FBR2Q7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO1dBQ0NDLE8sR0FBQSxtQkFBVTtBQUNULFVBQU1DLFVBQVUsR0FBRyxLQUFLQyxXQUFMLENBQWlCQyxvQkFBakIsRUFBbkI7O0FBQ0EsVUFBSUYsVUFBSixFQUFnQjtBQUNmLGVBQU9BLFVBQVUsQ0FBQ0cscUJBQVgsR0FBbUNDLElBQW5DLENBQXdDLFlBQVk7QUFDMURKLFVBQUFBLFVBQVUsQ0FBQ0ssYUFBWDtBQUNBLFNBRk0sQ0FBUDtBQUdBLE9BSkQsTUFJTztBQUNOO0FBQ0EsZUFBT0MsT0FBTyxDQUFDQyxPQUFSLEVBQVA7QUFDQTtBQUNEO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NDLG1CLEdBQUEsK0JBQXNCO0FBQ3JCLFVBQU1DLFFBQVEsR0FBSyxLQUFLUixXQUFMLENBQWlCUyxZQUFqQixNQUFtQyxLQUFLVCxXQUFMLENBQWlCVSxrQkFBakIsRUFBcEMsSUFDakIsS0FBS1YsV0FBTCxDQUFpQlcsU0FBakIsRUFERDs7QUFFQSxVQUFJSCxRQUFRLENBQUNJLEdBQVQsQ0FBYSxrQkFBYixDQUFKLEVBQXNDO0FBQ3JDLFlBQU1DLGlCQUFpQixHQUFHLEVBQTFCOztBQUNBLFlBQUlMLFFBQVEsSUFBSUEsUUFBUSxDQUFDTSxTQUFULEVBQWhCLEVBQXNDO0FBQ3JDLGNBQU1DLG1CQUFtQixHQUFHQyxVQUFVLENBQUNDLG9CQUFYLENBQWdDVCxRQUFRLENBQUNNLFNBQVQsRUFBaEMsQ0FBNUI7O0FBQ0EsZUFBSyxJQUFJSSxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSCxtQkFBbUIsQ0FBQ0ksTUFBeEMsRUFBZ0RELENBQUMsRUFBakQsRUFBcUQ7QUFDcERMLFlBQUFBLGlCQUFpQixDQUFDTyxJQUFsQixDQUF1QkwsbUJBQW1CLENBQUNHLENBQUQsQ0FBbkIsQ0FBdUJHLE9BQTlDO0FBQ0E7QUFDRDs7QUFDRCxlQUFPUixpQkFBUDtBQUNBLE9BVEQsTUFTTztBQUNOLGVBQVFMLFFBQVEsSUFBSUEsUUFBUSxDQUFDRCxtQkFBVCxFQUFiLElBQWdELEVBQXZEO0FBQ0E7QUFDRDtBQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ2UsZSxHQUFBLHlCQUFnQkMsY0FBaEIsRUFBd0NDLFNBQXhDLEVBQXVFQyxPQUF2RSxFQUErRztBQUM5RyxhQUFPQyxXQUFXLENBQUNKLGVBQVosQ0FBNEIsS0FBS3RCLFdBQUwsQ0FBaUJDLG9CQUFqQixFQUE1QixFQUFxRXNCLGNBQXJFLEVBQXFGQyxTQUFyRixFQUFnR0MsT0FBaEcsQ0FBUDtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ0UsaUMsR0FBQSwyQ0FBa0NDLGlCQUFsQyxFQUEwRDtBQUN6RCxVQUFNN0IsVUFBVSxHQUFHLEtBQUtDLFdBQUwsQ0FBaUJDLG9CQUFqQixFQUFuQjs7QUFDQSxhQUFPeUIsV0FBVyxDQUFDRyxhQUFaLENBQTBCOUIsVUFBMUIsRUFBc0MrQixTQUF0QyxFQUFpREYsaUJBQWpELENBQVA7QUFDQSxLOzs7SUFoRm1DRyxZO1NBbUZ0Qm5DLHNCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ2hhcnRVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jaGFydC9DaGFydFV0aWxzXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5cbi8qKlxuICogRXh0ZW5zaW9uIEFQSSBmb3IgbGlzdCByZXBvcnRzIG9uIFNBUCBGaW9yaSBlbGVtZW50cyBmb3IgT0RhdGEgVjQuXG4gKlxuICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC5FeHRlbnNpb25BUElcbiAqIEBwdWJsaWNcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBmaW5hbFxuICogQHNpbmNlIDEuNzkuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuRXh0ZW5zaW9uQVBJXCIpXG5jbGFzcyBMaXN0UmVwb3J0RXh0ZW5zaW9uQVBJIGV4dGVuZHMgRXh0ZW5zaW9uQVBJIHtcblx0cHJvdGVjdGVkIF9jb250cm9sbGVyITogTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cdC8qKlxuXHQgKiBSZWZyZXNoZXMgdGhlIExpc3QgUmVwb3J0LlxuXHQgKiBUaGlzIG1ldGhvZCBjdXJyZW50bHkgb25seSBzdXBwb3J0cyB0cmlnZ2VyaW5nIHRoZSBzZWFyY2ggKGJ5IGNsaWNraW5nIG9uIHRoZSBHTyBidXR0b24pXG5cdCAqIGluIHRoZSBMaXN0IFJlcG9ydCBGaWx0ZXIgQmFyLiBJdCBjYW4gYmUgdXNlZCB0byByZXF1ZXN0IHRoZSBpbml0aWFsIGxvYWQgb3IgdG8gcmVmcmVzaCB0aGVcblx0ICogY3VycmVudGx5IHNob3duIGRhdGEgYmFzZWQgb24gdGhlIGZpbHRlcnMgZW50ZXJlZCBieSB0aGUgdXNlci5cblx0ICogUGxlYXNlIG5vdGU6IFRoZSBQcm9taXNlIGlzIHJlc29sdmVkIG9uY2UgdGhlIHNlYXJjaCBpcyB0cmlnZ2VyZWQgYW5kIG5vdCBvbmNlIHRoZSBkYXRhIGlzIHJldHVybmVkLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LkV4dGVuc2lvbkFQSSNyZWZyZXNoXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBSZXNvbHZlZCBvbmNlIHRoZSBkYXRhIGlzIHJlZnJlc2hlZCBvciByZWplY3RlZCBpZiB0aGUgcmVxdWVzdCBmYWlsZWRcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cmVmcmVzaCgpIHtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gdGhpcy5fY29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpIGFzIGFueTtcblx0XHRpZiAob0ZpbHRlckJhcikge1xuXHRcdFx0cmV0dXJuIG9GaWx0ZXJCYXIud2FpdEZvckluaXRpYWxpemF0aW9uKCkudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdG9GaWx0ZXJCYXIudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFRPRE86IGlmIHRoZXJlIGlzIG5vIGZpbHRlciBiYXIsIG1ha2UgcmVmcmVzaCB3b3JrXG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGxpc3QgZW50cmllcyBjdXJyZW50bHkgc2VsZWN0ZWQgZm9yIHRoZSBkaXNwbGF5ZWQgY29udHJvbC5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC5FeHRlbnNpb25BUEkjZ2V0U2VsZWN0ZWRDb250ZXh0c1xuXHQgKiBAcmV0dXJucyB7c2FwLnVpLm1vZGVsLm9kYXRhLnY0LkNvbnRleHRbXX0gQXJyYXkgY29udGFpbmluZyB0aGUgc2VsZWN0ZWQgY29udGV4dHNcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Z2V0U2VsZWN0ZWRDb250ZXh0cygpIHtcblx0XHRjb25zdCBvQ29udHJvbCA9ICgodGhpcy5fY29udHJvbGxlci5faXNNdWx0aU1vZGUoKSAmJiB0aGlzLl9jb250cm9sbGVyLl9nZXRDdXJyZW50Q29udHJvbCgpKSB8fFxuXHRcdFx0dGhpcy5fY29udHJvbGxlci5fZ2V0VGFibGUoKSkgYXMgYW55O1xuXHRcdGlmIChvQ29udHJvbC5pc0EoXCJzYXAudWkubWRjLkNoYXJ0XCIpKSB7XG5cdFx0XHRjb25zdCBhU2VsZWN0ZWRDb250ZXh0cyA9IFtdO1xuXHRcdFx0aWYgKG9Db250cm9sICYmIG9Db250cm9sLmdldF9jaGFydCgpKSB7XG5cdFx0XHRcdGNvbnN0IGFTZWxlY3RlZERhdGFQb2ludHMgPSBDaGFydFV0aWxzLmdldENoYXJ0U2VsZWN0ZWREYXRhKG9Db250cm9sLmdldF9jaGFydCgpKTtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhU2VsZWN0ZWREYXRhUG9pbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0YVNlbGVjdGVkQ29udGV4dHMucHVzaChhU2VsZWN0ZWREYXRhUG9pbnRzW2ldLmNvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYVNlbGVjdGVkQ29udGV4dHM7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiAob0NvbnRyb2wgJiYgb0NvbnRyb2wuZ2V0U2VsZWN0ZWRDb250ZXh0cygpKSB8fCBbXTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogU2V0IHRoZSBmaWx0ZXIgdmFsdWVzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkgaW4gdGhlIGZpbHRlciBiYXIuXG5cdCAqIFRoZSBmaWx0ZXIgdmFsdWVzIGNhbiBiZSBlaXRoZXIgYSBzaW5nbGUgdmFsdWUgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLlxuXHQgKiBFYWNoIGZpbHRlciB2YWx1ZSBtdXN0IGJlIHJlcHJlc2VudGVkIGFzIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG9wZXJhdG9yLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc0NvbmRpdGlvblBhdGggVGhlIHBhdGggdG8gdGhlIHByb3BlcnR5IGFzIGEgY29uZGl0aW9uIHBhdGhcblx0ICogQHBhcmFtIHtzdHJpbmd9IFtzT3BlcmF0b3JdIFRoZSBvcGVyYXRvciB0byBiZSB1c2VkIChvcHRpb25hbCkgLSBpZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBvcGVyYXRvciAoRVEpIHdpbGwgYmUgdXNlZFxuXHQgKiBAcGFyYW0ge3VuZGVmaW5lZCB8IHN0cmluZyB8IHN0cmluZ1tdfSB2VmFsdWVzIFRoZSB2YWx1ZXMgdG8gYmUgYXBwbGllZFxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LkV4dGVuc2lvbkFQSSNzZXRGaWx0ZXJWYWx1ZXNcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSBmb3IgYXN5bmNocm9ub3VzIGhhbmRsaW5nXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHNldEZpbHRlclZhbHVlcyhzQ29uZGl0aW9uUGF0aDogc3RyaW5nLCBzT3BlcmF0b3I6IHN0cmluZyB8IHVuZGVmaW5lZCwgdlZhbHVlczogdW5kZWZpbmVkIHwgc3RyaW5nIHwgc3RyaW5nW10pIHtcblx0XHRyZXR1cm4gRmlsdGVyVXRpbHMuc2V0RmlsdGVyVmFsdWVzKHRoaXMuX2NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKSwgc0NvbmRpdGlvblBhdGgsIHNPcGVyYXRvciwgdlZhbHVlcyk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgY29udmVydHMgZmlsdGVyIGNvbmRpdGlvbnMgdG8gZmlsdGVycy5cblx0ICpcblx0ICogQHBhcmFtIHttYXB9IG1GaWx0ZXJDb25kaXRpb25zIE1hcCBjb250YWluaW5nIHRoZSBmaWx0ZXIgY29uZGl0aW9ucyBvZiB0aGUgRmlsdGVyQmFyLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LkV4dGVuc2lvbkFQSSNjcmVhdGVGaWx0ZXJzRnJvbUZpbHRlckNvbmRpdGlvbnNcblx0ICogQHJldHVybnMge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCBGaWx0ZXJCYXIgZmlsdGVycy5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Y3JlYXRlRmlsdGVyc0Zyb21GaWx0ZXJDb25kaXRpb25zKG1GaWx0ZXJDb25kaXRpb25zOiBhbnkpIHtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gdGhpcy5fY29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdHJldHVybiBGaWx0ZXJVdGlscy5nZXRGaWx0ZXJJbmZvKG9GaWx0ZXJCYXIsIHVuZGVmaW5lZCwgbUZpbHRlckNvbmRpdGlvbnMpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RSZXBvcnRFeHRlbnNpb25BUEk7XG4iXX0=
@@ -0,0 +1,100 @@
1
+ import ExtensionAPI from "sap/fe/core/ExtensionAPI";
2
+ import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
3
+ import ChartUtils from "sap/fe/macros/chart/ChartUtils";
4
+ import FilterUtils from "sap/fe/macros/filter/FilterUtils";
5
+ import ListReportController from "sap/fe/templates/ListReport/ListReportController.controller";
6
+
7
+ /**
8
+ * Extension API for list reports on SAP Fiori elements for OData V4.
9
+ *
10
+ * @alias sap.fe.templates.ListReport.ExtensionAPI
11
+ * @public
12
+ * @hideconstructor
13
+ * @final
14
+ * @since 1.79.0
15
+ */
16
+ @defineUI5Class("sap.fe.templates.ListReport.ExtensionAPI")
17
+ class ListReportExtensionAPI extends ExtensionAPI {
18
+ protected _controller!: ListReportController;
19
+ /**
20
+ * Refreshes the List Report.
21
+ * This method currently only supports triggering the search (by clicking on the GO button)
22
+ * in the List Report Filter Bar. It can be used to request the initial load or to refresh the
23
+ * currently shown data based on the filters entered by the user.
24
+ * Please note: The Promise is resolved once the search is triggered and not once the data is returned.
25
+ *
26
+ * @alias sap.fe.templates.ListReport.ExtensionAPI#refresh
27
+ * @returns {Promise} Resolved once the data is refreshed or rejected if the request failed
28
+ *
29
+ * @public
30
+ */
31
+ refresh() {
32
+ const oFilterBar = this._controller._getFilterBarControl() as any;
33
+ if (oFilterBar) {
34
+ return oFilterBar.waitForInitialization().then(function () {
35
+ oFilterBar.triggerSearch();
36
+ });
37
+ } else {
38
+ // TODO: if there is no filter bar, make refresh work
39
+ return Promise.resolve();
40
+ }
41
+ }
42
+
43
+ /**
44
+ * Gets the list entries currently selected for the displayed control.
45
+ *
46
+ * @alias sap.fe.templates.ListReport.ExtensionAPI#getSelectedContexts
47
+ * @returns {sap.ui.model.odata.v4.Context[]} Array containing the selected contexts
48
+ *
49
+ * @public
50
+ */
51
+ getSelectedContexts() {
52
+ const oControl = ((this._controller._isMultiMode() && this._controller._getCurrentControl()) ||
53
+ this._controller._getTable()) as any;
54
+ if (oControl.isA("sap.ui.mdc.Chart")) {
55
+ const aSelectedContexts = [];
56
+ if (oControl && oControl.get_chart()) {
57
+ const aSelectedDataPoints = ChartUtils.getChartSelectedData(oControl.get_chart());
58
+ for (let i = 0; i < aSelectedDataPoints.length; i++) {
59
+ aSelectedContexts.push(aSelectedDataPoints[i].context);
60
+ }
61
+ }
62
+ return aSelectedContexts;
63
+ } else {
64
+ return (oControl && oControl.getSelectedContexts()) || [];
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Set the filter values for the given property in the filter bar.
70
+ * The filter values can be either a single value or an array of values.
71
+ * Each filter value must be represented as a string corresponding to the given operator.
72
+ *
73
+ * @param {string} sConditionPath The path to the property as a condition path
74
+ * @param {string} [sOperator] The operator to be used (optional) - if not set, the default operator (EQ) will be used
75
+ * @param {undefined | string | string[]} vValues The values to be applied
76
+ *
77
+ * @alias sap.fe.templates.ListReport.ExtensionAPI#setFilterValues
78
+ * @returns {Promise} A promise for asynchronous handling
79
+ * @public
80
+ */
81
+ setFilterValues(sConditionPath: string, sOperator: string | undefined, vValues: undefined | string | string[]) {
82
+ return FilterUtils.setFilterValues(this._controller._getFilterBarControl(), sConditionPath, sOperator, vValues);
83
+ }
84
+
85
+ /**
86
+ * This method converts filter conditions to filters.
87
+ *
88
+ * @param {map} mFilterConditions Map containing the filter conditions of the FilterBar.
89
+ *
90
+ * @alias sap.fe.templates.ListReport.ExtensionAPI#createFiltersFromFilterConditions
91
+ * @returns {object} Object containing the converted FilterBar filters.
92
+ * @public
93
+ */
94
+ createFiltersFromFilterConditions(mFilterConditions: any) {
95
+ const oFilterBar = this._controller._getFilterBarControl();
96
+ return FilterUtils.getFilterInfo(oFilterBar, undefined, mFilterConditions);
97
+ }
98
+ }
99
+
100
+ export default ListReportExtensionAPI;
@@ -7,6 +7,7 @@
7
7
  xmlns:macroInternal="sap.fe.macros.internal"
8
8
  xmlns:control="sap.fe.core.controls"
9
9
  xmlns:core="sap.ui.core"
10
+ xmlns:fragments="sap.fe.templates.ListReport.view.fragments"
10
11
  xmlns:l="sap.ui.layout"
11
12
  xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
12
13
  xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
@@ -24,6 +25,7 @@
24
25
  <f:DynamicPage
25
26
  id="fe::ListReport"
26
27
  unittest:id="listReportFooterTest"
28
+ stickySubheaderProvider="{converterContext>stickySubheaderProvider}"
27
29
  customData:singleTableId="{converterContext>singleTableId}"
28
30
  customData:singleChartId="{converterContext>singleChartId}"
29
31
  customData:filterBarId="{converterContext>filterBarId}"
@@ -157,26 +159,26 @@
157
159
  <f:DynamicPageHeader pinnable="{converterContext>showPinnableToggle}">
158
160
  <VBox>
159
161
  <macroInternal:FilterBar
160
- unittest:id="listReportFilterBarTest"
161
- id="{converterContext>filterBarId}"
162
- _applyIdToContent="true"
163
- contextPath="{entityType>}"
164
- variantBackreference="{= CORE.getVariantBackReference(${viewData>}, ${converterContext>} )}"
165
- selectionFields="{filterBarContext>selectionFields}"
166
- propertyInfo="{filterBarContext>propertyInfo}"
167
- filterChanged=".handlers.onFiltersChanged"
168
- filterConditions="{parts:[{path:'converterContext>filterConditions'}, {path:'entitySet>'}], formatter: 'FILTER.getFilterConditions'}"
169
- search=".handlers.onSearch"
170
- hideBasicSearch="{filterBarContext>hideBasicSearch}"
171
- liveMode="{viewData>/liveMode}"
172
- showAdaptFiltersButton="true"
173
- p13nMode="Item,Value"
174
- useSemanticDateRange="{converterContext>useSemanticDateRange}"
175
- suspendSelection="true"
176
- toggleControlId="{= ${converterContext>/filterLayout} === 'compactvisual' ? ID.generate([ ${converterContext>filterBarId}, 'LayoutToggle']) : undefined }"
177
- initialLayout="{= ${converterContext>/filterLayout} === 'compactvisual' ? ${converterContext>/filterInitialLayout} : undefined }"
178
- stateChanged=".handlers.onStateChanged"
179
- />
162
+ unittest:id="listReportFilterBarTest"
163
+ id="{converterContext>filterBarId}"
164
+ _applyIdToContent="true"
165
+ contextPath="{entityType>}"
166
+ variantBackreference="{= CORE.getVariantBackReference(${viewData>}, ${converterContext>} )}"
167
+ selectionFields="{filterBarContext>selectionFields}"
168
+ propertyInfo="{filterBarContext>propertyInfo}"
169
+ filterChanged=".handlers.onFiltersChanged"
170
+ filterConditions="{parts:[{path:'converterContext>filterConditions'}, {path:'entitySet>'}], formatter: 'FILTER.getFilterConditions'}"
171
+ search=".handlers.onSearch"
172
+ hideBasicSearch="{filterBarContext>hideBasicSearch}"
173
+ liveMode="{viewData>/liveMode}"
174
+ showAdaptFiltersButton="true"
175
+ p13nMode="Item,Value"
176
+ useSemanticDateRange="{converterContext>useSemanticDateRange}"
177
+ suspendSelection="true"
178
+ toggleControlId="{= ${converterContext>/filterLayout} === 'compactvisual' ? ID.generate([ ${converterContext>filterBarId}, 'LayoutToggle']) : undefined }"
179
+ initialLayout="{= ${converterContext>/filterLayout} === 'compactvisual' ? ${converterContext>/filterInitialLayout} : undefined }"
180
+ stateChanged=".handlers.onStateChanged"
181
+ />
180
182
  </VBox>
181
183
  </f:DynamicPageHeader>
182
184
  </template:with>
@@ -185,9 +187,9 @@
185
187
  </f:header>
186
188
  <f:content>
187
189
  <template:if test="{= ${converterContext>views}.length > 0}">
188
- <template:if test="{= ${converterContext>views}.length > 1 &amp;&amp; !${converterContext>hasMultiVisualizations} }">
190
+ <template:if test="{converterContext>displayMultiVisualizations}">
189
191
  <template:then>
190
- <core:Fragment fragmentName="sap.fe.templates.ListReport.view.fragments.MultipleMode" type="XML" />
192
+ <fragments:MultipleMode />
191
193
  </template:then>
192
194
  <template:elseif test="{= ${converterContext>views}.length === 1 &amp;&amp; !${converterContext>hasMultiVisualizations} }">
193
195
  <template:with path="converterContext>views/0/presentation" var="presentationContext">