@sapui5/sap.fe.templates 1.101.0 → 1.103.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
- package/src/sap/fe/templates/Feedback.js +18 -18
- package/src/sap/fe/templates/Feedback.ts +12 -12
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +15 -15
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +19 -16
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +107 -58
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +180 -70
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +191 -88
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js +45 -0
- package/src/sap/fe/templates/ListReport/ListReportTemplating.ts +30 -0
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +2 -2
- package/src/sap/fe/templates/ListReport/overrides/Share.js +9 -7
- package/src/sap/fe/templates/ListReport/overrides/Share.ts +10 -10
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +13 -6
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +17 -11
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +1 -1
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +12 -16
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +17 -20
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +167 -20
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +195 -206
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +187 -229
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +861 -0
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +822 -0
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +2 -3
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.js +103 -0
- package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.ts +97 -0
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +5 -5
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +17 -17
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +19 -30
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +15 -11
- package/src/sap/fe/templates/ObjectPage/view/fragments/CollaborationDraft.fragment.xml +1 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +25 -17
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +28 -24
- package/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +15 -16
- package/src/sap/fe/templates/ObjectPage/view/fragments/FormActions.fragment.xml +1 -5
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +1 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +3 -17
- package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +16 -17
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +4 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +7 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +26 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/RelatedApps.fragment.xml +7 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +74 -6
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +118 -94
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +127 -107
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +2 -2
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +102 -57
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +96 -61
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +3 -4
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +4 -5
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +140 -52
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +108 -54
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +3 -3
- package/src/sap/fe/templates/TableScroller.js +3 -3
- package/src/sap/fe/templates/TableScroller.ts +2 -2
- package/src/sap/fe/templates/controls/MacroChart.fragment.xml +1 -0
- package/src/sap/fe/templates/controls/Table.fragment.xml +4 -4
- package/src/sap/fe/templates/library.js +5 -2
- package/src/sap/fe/templates/library.ts +3 -0
- package/src/sap/fe/templates/messagebundle.properties +6 -18
- package/src/sap/fe/templates/messagebundle_ar.properties +10 -6
- package/src/sap/fe/templates/messagebundle_bg.properties +6 -2
- package/src/sap/fe/templates/messagebundle_ca.properties +10 -6
- package/src/sap/fe/templates/messagebundle_cs.properties +6 -2
- package/src/sap/fe/templates/messagebundle_cy.properties +10 -6
- package/src/sap/fe/templates/messagebundle_da.properties +10 -6
- package/src/sap/fe/templates/messagebundle_de.properties +10 -6
- package/src/sap/fe/templates/messagebundle_el.properties +10 -6
- package/src/sap/fe/templates/messagebundle_en.properties +6 -2
- package/src/sap/fe/templates/messagebundle_en_GB.properties +8 -4
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +13 -5
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +7 -3
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +7 -3
- package/src/sap/fe/templates/messagebundle_es.properties +6 -2
- package/src/sap/fe/templates/messagebundle_es_MX.properties +10 -6
- package/src/sap/fe/templates/messagebundle_et.properties +6 -2
- package/src/sap/fe/templates/messagebundle_fi.properties +10 -6
- package/src/sap/fe/templates/messagebundle_fr.properties +6 -2
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +10 -6
- package/src/sap/fe/templates/messagebundle_hi.properties +10 -6
- package/src/sap/fe/templates/messagebundle_hr.properties +10 -6
- package/src/sap/fe/templates/messagebundle_hu.properties +6 -2
- package/src/sap/fe/templates/messagebundle_id.properties +6 -2
- package/src/sap/fe/templates/messagebundle_it.properties +10 -6
- package/src/sap/fe/templates/messagebundle_iw.properties +10 -6
- package/src/sap/fe/templates/messagebundle_ja.properties +6 -2
- package/src/sap/fe/templates/messagebundle_kk.properties +10 -6
- package/src/sap/fe/templates/messagebundle_ko.properties +6 -2
- package/src/sap/fe/templates/messagebundle_lt.properties +6 -2
- package/src/sap/fe/templates/messagebundle_lv.properties +6 -2
- package/src/sap/fe/templates/messagebundle_ms.properties +10 -6
- package/src/sap/fe/templates/messagebundle_nl.properties +6 -2
- package/src/sap/fe/templates/messagebundle_no.properties +10 -6
- package/src/sap/fe/templates/messagebundle_pl.properties +10 -6
- package/src/sap/fe/templates/messagebundle_pt.properties +6 -2
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +6 -2
- package/src/sap/fe/templates/messagebundle_ro.properties +10 -6
- package/src/sap/fe/templates/messagebundle_ru.properties +10 -6
- package/src/sap/fe/templates/messagebundle_sh.properties +6 -2
- package/src/sap/fe/templates/messagebundle_sk.properties +6 -2
- package/src/sap/fe/templates/messagebundle_sl.properties +10 -6
- package/src/sap/fe/templates/messagebundle_sv.properties +6 -2
- package/src/sap/fe/templates/messagebundle_th.properties +10 -6
- package/src/sap/fe/templates/messagebundle_tr.properties +6 -2
- package/src/sap/fe/templates/messagebundle_uk.properties +6 -2
- package/src/sap/fe/templates/messagebundle_vi.properties +10 -6
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +10 -6
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +10 -6
- package/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +0 -482
- package/src/sap/fe/templates/ObjectPage/AnnotationHelper.ts +0 -511
- package/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +0 -120
- package/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +0 -138
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
1
|
+
import type ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
2
2
|
import Log from "sap/base/Log";
|
|
3
3
|
import ObjectPath from "sap/base/util/ObjectPath";
|
|
4
|
-
import DynamicPage from "sap/f/DynamicPage";
|
|
4
|
+
import type DynamicPage from "sap/f/DynamicPage";
|
|
5
5
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
6
6
|
import EditFlow from "sap/fe/core/controllerextensions/EditFlow";
|
|
7
7
|
import IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedNavigation";
|
|
@@ -13,7 +13,7 @@ import Placeholder from "sap/fe/core/controllerextensions/Placeholder";
|
|
|
13
13
|
import Share from "sap/fe/core/controllerextensions/Share";
|
|
14
14
|
import SideEffects from "sap/fe/core/controllerextensions/SideEffects";
|
|
15
15
|
import ViewState from "sap/fe/core/controllerextensions/ViewState";
|
|
16
|
-
import FilterBar from "sap/fe/core/controls/FilterBar";
|
|
16
|
+
import type FilterBar from "sap/fe/core/controls/FilterBar";
|
|
17
17
|
import {
|
|
18
18
|
defineUI5Class,
|
|
19
19
|
extensible,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
usingExtension
|
|
24
24
|
} from "sap/fe/core/helpers/ClassSupport";
|
|
25
25
|
import EditState from "sap/fe/core/helpers/EditState";
|
|
26
|
-
import { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
26
|
+
import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
27
27
|
import CoreLibrary from "sap/fe/core/library";
|
|
28
28
|
import PageController from "sap/fe/core/PageController";
|
|
29
29
|
import ChartRuntime from "sap/fe/macros/chart/ChartRuntime";
|
|
@@ -35,18 +35,19 @@ import TableUtils from "sap/fe/macros/table/Utils";
|
|
|
35
35
|
import ExtensionAPI from "sap/fe/templates/ListReport/ExtensionAPI";
|
|
36
36
|
import EditFlowOverrides from "sap/fe/templates/RootContainer/overrides/EditFlow";
|
|
37
37
|
import TableScroller from "sap/fe/templates/TableScroller";
|
|
38
|
-
import IconTabBar from "sap/m/IconTabBar";
|
|
39
|
-
import SegmentedButton from "sap/m/SegmentedButton";
|
|
40
|
-
import Control from "sap/ui/core/Control";
|
|
38
|
+
import type IconTabBar from "sap/m/IconTabBar";
|
|
39
|
+
import type SegmentedButton from "sap/m/SegmentedButton";
|
|
40
|
+
import type Control from "sap/ui/core/Control";
|
|
41
41
|
import Core from "sap/ui/core/Core";
|
|
42
42
|
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
43
43
|
import { system } from "sap/ui/Device";
|
|
44
44
|
import ControlPersonalizationWriteAPI from "sap/ui/fl/write/api/ControlPersonalizationWriteAPI";
|
|
45
45
|
import StateUtil from "sap/ui/mdc/p13n/StateUtil";
|
|
46
|
-
import Table from "sap/ui/mdc/Table";
|
|
47
|
-
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
48
|
-
import ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
46
|
+
import type Table from "sap/ui/mdc/Table";
|
|
47
|
+
import type JSONModel from "sap/ui/model/json/JSONModel";
|
|
48
|
+
import type ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
49
49
|
import hasher from "sap/ui/thirdparty/hasher";
|
|
50
|
+
import type { V4Context } from "types/extension_types";
|
|
50
51
|
import IntentBasedNavigationOverride from "./overrides/IntentBasedNavigation";
|
|
51
52
|
import ShareOverrides from "./overrides/Share";
|
|
52
53
|
import ViewStateOverrides from "./overrides/ViewState";
|
|
@@ -154,13 +155,20 @@ class ListReportController extends PageController {
|
|
|
154
155
|
// happen after the routeMatch event has been processed (otherwise the router gets broken)
|
|
155
156
|
this.getAppComponent().getRouterProxy().waitForRouteMatchBeforeNavigation();
|
|
156
157
|
|
|
157
|
-
this._isMultiMode()
|
|
158
|
+
if (this._isMultiMode()) {
|
|
159
|
+
this._updateMultiControlHiddenStatus();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Configure the initial load settings
|
|
163
|
+
this._setInitLoad();
|
|
158
164
|
}
|
|
159
165
|
|
|
160
166
|
onExit() {
|
|
161
167
|
delete this.filterBarConditions;
|
|
162
168
|
delete this._oListReportControl;
|
|
163
|
-
|
|
169
|
+
if (this.extensionAPI) {
|
|
170
|
+
this.extensionAPI.destroy();
|
|
171
|
+
}
|
|
164
172
|
delete this.extensionAPI;
|
|
165
173
|
}
|
|
166
174
|
|
|
@@ -169,23 +177,29 @@ class ListReportController extends PageController {
|
|
|
169
177
|
if (EditState.isEditStateDirty()) {
|
|
170
178
|
const oTableBinding = this._getTableBinding();
|
|
171
179
|
if (oTableBinding) {
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
if (CommonUtils.getAppComponent(this.getView())._isFclEnabled()) {
|
|
181
|
+
// there is an issue if we use a timeout with a kept alive context used on another page
|
|
182
|
+
oTableBinding.refresh();
|
|
183
|
+
} else {
|
|
184
|
+
if (!this.sUpdateTimer) {
|
|
185
|
+
this.sUpdateTimer = setTimeout(() => {
|
|
186
|
+
oTableBinding.refresh();
|
|
187
|
+
if (this._isMultiMode()) {
|
|
188
|
+
this._invalidateMultipleModeContent();
|
|
189
|
+
this._setCountsOutDated();
|
|
190
|
+
this._updateCounts();
|
|
191
|
+
}
|
|
192
|
+
delete this.sUpdateTimer;
|
|
193
|
+
}, 0);
|
|
194
|
+
}
|
|
182
195
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
196
|
+
// Update action enablement and visibility upon table data update.
|
|
197
|
+
const fnUpdateTableActions = () => {
|
|
198
|
+
this._updateTableActions(aTables);
|
|
199
|
+
oTableBinding.detachDataReceived(fnUpdateTableActions);
|
|
200
|
+
};
|
|
201
|
+
oTableBinding.attachDataReceived(fnUpdateTableActions);
|
|
202
|
+
}
|
|
189
203
|
}
|
|
190
204
|
EditState.setEditStateProcessed();
|
|
191
205
|
}
|
|
@@ -245,7 +259,7 @@ class ListReportController extends PageController {
|
|
|
245
259
|
* or when a tab with custom content is selected.
|
|
246
260
|
* This method can be overwritten by the controller extension in case of customization.
|
|
247
261
|
*
|
|
248
|
-
* @param
|
|
262
|
+
* @param mParameters Map containing the filter conditions of the FilterBar, the currentTabID
|
|
249
263
|
* and the view refresh cause (tabChanged or search).
|
|
250
264
|
* The map looks like this:
|
|
251
265
|
* <code><pre>
|
|
@@ -265,7 +279,6 @@ class ListReportController extends PageController {
|
|
|
265
279
|
* refreshCause: "tabChanged" | "search"
|
|
266
280
|
* }
|
|
267
281
|
* </pre></code>
|
|
268
|
-
*
|
|
269
282
|
* @public
|
|
270
283
|
*/
|
|
271
284
|
@publicExtension()
|
|
@@ -299,6 +312,7 @@ class ListReportController extends PageController {
|
|
|
299
312
|
|
|
300
313
|
/**
|
|
301
314
|
* This method initiates the update of the enabled state of the DataFieldForAction and the visible state of the DataFieldForIBN buttons.
|
|
315
|
+
*
|
|
302
316
|
* @param aTables Array of tables in the list report
|
|
303
317
|
* @private
|
|
304
318
|
*/
|
|
@@ -310,7 +324,7 @@ class ListReportController extends PageController {
|
|
|
310
324
|
// The same is also performed on Table selectionChange event
|
|
311
325
|
const oInternalModelContext = oTable.getBindingContext("internal"),
|
|
312
326
|
oActionOperationAvailableMap = JSON.parse(
|
|
313
|
-
CommonHelper.parseCustomData(DelegateUtil.getCustomData(oTable, "operationAvailableMap"))
|
|
327
|
+
CommonHelper.parseCustomData(DelegateUtil.getCustomData(oTable, "operationAvailableMap"))
|
|
314
328
|
),
|
|
315
329
|
aSelectedContexts = oTable.getSelectedContexts();
|
|
316
330
|
|
|
@@ -324,7 +338,7 @@ class ListReportController extends PageController {
|
|
|
324
338
|
*
|
|
325
339
|
* @function
|
|
326
340
|
* @name sap.fe.templates.ListReport.ListReportController.controller#_scrollTablesToRow
|
|
327
|
-
* @param
|
|
341
|
+
* @param sRowPath The path of the table row context to be scrolled to
|
|
328
342
|
*/
|
|
329
343
|
_scrollTablesToRow(sRowPath: string) {
|
|
330
344
|
this._getControls("table").forEach(function (oTable: any) {
|
|
@@ -339,10 +353,23 @@ class ListReportController extends PageController {
|
|
|
339
353
|
return oTitleInfo;
|
|
340
354
|
}
|
|
341
355
|
|
|
356
|
+
_getPageOrFilterBarVariantManagement() {
|
|
357
|
+
return (
|
|
358
|
+
this.getView().byId("fe::PageVariantManagement") || this.getView().byId(`${this._getFilterBarControlId()}::VariantManagement`)
|
|
359
|
+
);
|
|
360
|
+
}
|
|
361
|
+
|
|
342
362
|
_getFilterBarControl() {
|
|
343
363
|
return this.getView().byId(this._getFilterBarControlId()) as FilterBar;
|
|
344
364
|
}
|
|
345
365
|
|
|
366
|
+
_getAdaptationFilterBarControl() {
|
|
367
|
+
// If the adaptation filter bar is part of the DOM tree, the "Adapt Filter" dialog is open,
|
|
368
|
+
// and we return the adaptation filter bar as an active control (visible for the user)
|
|
369
|
+
const adaptationFilterBar = (this._getFilterBarControl() as any).getInbuiltFilter();
|
|
370
|
+
return adaptationFilterBar?.getParent() ? adaptationFilterBar : undefined;
|
|
371
|
+
}
|
|
372
|
+
|
|
346
373
|
_getSegmentedButton(sControl: any) {
|
|
347
374
|
return this.getView().byId(this._getSegmentedButtonId(sControl));
|
|
348
375
|
}
|
|
@@ -390,7 +417,7 @@ class ListReportController extends PageController {
|
|
|
390
417
|
oMultiModeTab.getSelectedKey() || (oMultiModeTab.getItems()[0] as any).getKey()
|
|
391
418
|
) as Control;
|
|
392
419
|
}
|
|
393
|
-
return this._oListReportControl
|
|
420
|
+
return this._oListReportControl;
|
|
394
421
|
}
|
|
395
422
|
|
|
396
423
|
_getTable(): Table | undefined {
|
|
@@ -407,9 +434,7 @@ class ListReportController extends PageController {
|
|
|
407
434
|
|
|
408
435
|
_getTableBinding(sTableId?: any) {
|
|
409
436
|
const oTableControl = sTableId ? this.getView().byId(sTableId) : this._getTable();
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
return oBinding;
|
|
437
|
+
return oTableControl && (oTableControl as any)._getRowBinding();
|
|
413
438
|
}
|
|
414
439
|
|
|
415
440
|
_getControls(sKey?: any) {
|
|
@@ -418,12 +443,12 @@ class ListReportController extends PageController {
|
|
|
418
443
|
const oTabMultiMode = this._getMultiModeControl();
|
|
419
444
|
oTabMultiMode.getItems().forEach((oItem: any) => {
|
|
420
445
|
const oControl = this.getView().byId(oItem.getKey());
|
|
421
|
-
if (sKey) {
|
|
422
|
-
if (oItem.getKey().indexOf(
|
|
423
|
-
|
|
446
|
+
if (oControl && sKey) {
|
|
447
|
+
if (oItem.getKey().indexOf(`fe::${sKey}`) > -1) {
|
|
448
|
+
aControls.push(oControl);
|
|
424
449
|
}
|
|
425
|
-
} else {
|
|
426
|
-
|
|
450
|
+
} else if (oControl) {
|
|
451
|
+
aControls.push(oControl);
|
|
427
452
|
}
|
|
428
453
|
});
|
|
429
454
|
return aControls;
|
|
@@ -454,7 +479,7 @@ class ListReportController extends PageController {
|
|
|
454
479
|
*
|
|
455
480
|
* @function
|
|
456
481
|
* @name _isMultiMode
|
|
457
|
-
* @returns
|
|
482
|
+
* @returns Is Multiple Table mode set?
|
|
458
483
|
*/
|
|
459
484
|
_isMultiMode() {
|
|
460
485
|
if (!this._oListReportControl) {
|
|
@@ -463,12 +488,24 @@ class ListReportController extends PageController {
|
|
|
463
488
|
return this._bMultiMode;
|
|
464
489
|
}
|
|
465
490
|
|
|
491
|
+
/**
|
|
492
|
+
* Method to know if ListReport is configured to load data at start up.
|
|
493
|
+
*
|
|
494
|
+
* @function
|
|
495
|
+
* @name _isInitLoadDisabled
|
|
496
|
+
* @returns Is InitLoad enabled?
|
|
497
|
+
*/
|
|
498
|
+
_isInitLoadEnabled() {
|
|
499
|
+
const initLoadMode = (this.getView().getViewData() as any).initialLoad;
|
|
500
|
+
return initLoadMode === InitialLoadMode.Enabled;
|
|
501
|
+
}
|
|
502
|
+
|
|
466
503
|
/**
|
|
467
504
|
* Method to know if ListReport is configured with Multiple EntitySets.
|
|
468
505
|
*
|
|
469
506
|
* @function
|
|
470
507
|
* @name _isMultiEntitySets
|
|
471
|
-
* @returns
|
|
508
|
+
* @returns Is Multiple EntitySets configuration?
|
|
472
509
|
*/
|
|
473
510
|
_isMultiEntitySets() {
|
|
474
511
|
return this.getView().getContent()[0].data("isMultiEntitySets") === "true";
|
|
@@ -478,6 +515,49 @@ class ListReportController extends PageController {
|
|
|
478
515
|
return this.getView().getContent()[0].data("hasMultiVisualizations") === "true";
|
|
479
516
|
}
|
|
480
517
|
|
|
518
|
+
/**
|
|
519
|
+
* Method to suspend search on the filter bar. The initial loading of data is disabled based on the manifest configuration InitLoad - Disabled/Auto.
|
|
520
|
+
* It is enabled later when the view state is set, when it is possible to realize if there are default filters.
|
|
521
|
+
*/
|
|
522
|
+
_disableInitLoad() {
|
|
523
|
+
const filterBar = this._getFilterBarControl();
|
|
524
|
+
// check for filter bar hidden
|
|
525
|
+
if (filterBar) {
|
|
526
|
+
filterBar.setSuspendSelection(true);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Method called by flex to determine if the applyAutomatically setting on the variant is valid.
|
|
532
|
+
* Called only for Standard Variant and only when there is display text set for applyAutomatically (FE only sets it for Auto).
|
|
533
|
+
*
|
|
534
|
+
* @returns Boolean true if data should be loaded automatically, false otherwise
|
|
535
|
+
*/
|
|
536
|
+
_applyAutomaticallyOnStandardVariant() {
|
|
537
|
+
// We always return false and take care of it when view state is set
|
|
538
|
+
return false;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* Configure the settings for initial load based on
|
|
543
|
+
* - manifest setting initLoad - Enabled/Disabled/Auto
|
|
544
|
+
* - user's setting of applyAutomatically on variant
|
|
545
|
+
* - if there are default filters
|
|
546
|
+
* We disable the filter bar search at the beginning and enable it when view state is set.
|
|
547
|
+
*/
|
|
548
|
+
_setInitLoad() {
|
|
549
|
+
// if initLoad is Disabled or Auto, switch off filter bar search temporarily at start
|
|
550
|
+
if (!this._isInitLoadEnabled()) {
|
|
551
|
+
this._disableInitLoad();
|
|
552
|
+
}
|
|
553
|
+
// set hook for flex for when standard variant is set (at start or by user at runtime)
|
|
554
|
+
// required to override the user setting 'apply automatically' behaviour if there are no filters
|
|
555
|
+
const variantManagement: any = this._getPageOrFilterBarVariantManagement();
|
|
556
|
+
if (variantManagement) {
|
|
557
|
+
variantManagement.registerApplyAutomaticallyOnStandardVariant(this._applyAutomaticallyOnStandardVariant.bind(this));
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
481
561
|
_setShareModel() {
|
|
482
562
|
// TODO: deactivated for now - currently there is no _templPriv anymore, to be discussed
|
|
483
563
|
// this method is currently not called anymore from the init method
|
|
@@ -491,7 +571,7 @@ class ListReportController extends PageController {
|
|
|
491
571
|
bookmarkTitle: document.title, //To name the bookmark according to the app title.
|
|
492
572
|
bookmarkCustomUrl: function () {
|
|
493
573
|
const sHash = hasher.getHash();
|
|
494
|
-
return sHash ?
|
|
574
|
+
return sHash ? `#${sHash}` : window.location.href;
|
|
495
575
|
},
|
|
496
576
|
/*
|
|
497
577
|
To be activated once the FLP shows the count - see comment above
|
|
@@ -533,10 +613,10 @@ class ListReportController extends PageController {
|
|
|
533
613
|
/**
|
|
534
614
|
* Method to update the local UI model of the page with the fields that are not applicable to the filter bar (this is specific to the multiple table scenario).
|
|
535
615
|
*
|
|
536
|
-
* @param
|
|
537
|
-
* @param
|
|
616
|
+
* @param oInternalModelContext The internal model context
|
|
617
|
+
* @param oFilterBar MDC filter bar
|
|
538
618
|
*/
|
|
539
|
-
_updateMultiTabNotApplicableFields(oInternalModelContext:
|
|
619
|
+
_updateMultiTabNotApplicableFields(oInternalModelContext: InternalModelContext, oFilterBar: FilterBar) {
|
|
540
620
|
const mCache: any = {};
|
|
541
621
|
const ignoredFields: any = {},
|
|
542
622
|
ignoredFieldsTitle: any = {},
|
|
@@ -559,7 +639,7 @@ class ListReportController extends PageController {
|
|
|
559
639
|
sChartEntitySet = sChartEntityPath.slice(1),
|
|
560
640
|
sTabId = oChart.getParent().getParent().getKey(),
|
|
561
641
|
sTabTitle = oChart.getParent().getParent().getText(),
|
|
562
|
-
sCacheKey = sChartEntitySet
|
|
642
|
+
sCacheKey = `${sChartEntitySet}Chart`;
|
|
563
643
|
if (!mCache[sCacheKey]) {
|
|
564
644
|
mCache[sCacheKey] = FilterUtils.getNotApplicableFilters(oFilterBar, oChart);
|
|
565
645
|
}
|
|
@@ -573,10 +653,10 @@ class ListReportController extends PageController {
|
|
|
573
653
|
/**
|
|
574
654
|
* Method to update the local UI model of the page with the fields that are not applicable to the filter bar (this is specific to the ALP scenario).
|
|
575
655
|
*
|
|
576
|
-
* @param
|
|
577
|
-
* @param
|
|
656
|
+
* @param oInternalModelContext The internal model context
|
|
657
|
+
* @param oFilterBar MDC filter bar
|
|
578
658
|
*/
|
|
579
|
-
_updateALPNotApplicableFields(oInternalModelContext:
|
|
659
|
+
_updateALPNotApplicableFields(oInternalModelContext: InternalModelContext, oFilterBar: FilterBar) {
|
|
580
660
|
const mCache: any = {};
|
|
581
661
|
const ignoredFields: any = {},
|
|
582
662
|
aTables = this._getControls("table"),
|
|
@@ -591,7 +671,7 @@ class ListReportController extends PageController {
|
|
|
591
671
|
aCharts.forEach(function (oChart: any) {
|
|
592
672
|
const sChartEntityPath = oChart.data("targetCollectionPath"),
|
|
593
673
|
sChartEntitySet = sChartEntityPath.slice(1),
|
|
594
|
-
sCacheKey = sChartEntitySet
|
|
674
|
+
sCacheKey = `${sChartEntitySet}Chart`;
|
|
595
675
|
if (!mCache[sCacheKey]) {
|
|
596
676
|
mCache[sCacheKey] = FilterUtils.getNotApplicableFilters(oFilterBar, oChart);
|
|
597
677
|
}
|
|
@@ -615,7 +695,7 @@ class ListReportController extends PageController {
|
|
|
615
695
|
*
|
|
616
696
|
* @function
|
|
617
697
|
* @name _isCustomTab
|
|
618
|
-
* @returns
|
|
698
|
+
* @returns Determines if the tab is a custom tab.
|
|
619
699
|
*/
|
|
620
700
|
_isCustomTab() {
|
|
621
701
|
const oMultiModeControl = this._getMultiModeControl();
|
|
@@ -633,6 +713,13 @@ class ListReportController extends PageController {
|
|
|
633
713
|
});
|
|
634
714
|
}
|
|
635
715
|
}
|
|
716
|
+
_invalidateMultipleModeContent() {
|
|
717
|
+
const aControls = this._getControls();
|
|
718
|
+
const sDisplayedControlId = this._getCurrentControl().getId();
|
|
719
|
+
aControls.forEach(function (oControl: any) {
|
|
720
|
+
oControl.data("outdatedRows", oControl.getId() !== sDisplayedControlId);
|
|
721
|
+
});
|
|
722
|
+
}
|
|
636
723
|
|
|
637
724
|
_updateMultiModeCounts() {
|
|
638
725
|
let aBindingPromises = [];
|
|
@@ -643,16 +730,18 @@ class ListReportController extends PageController {
|
|
|
643
730
|
const aCompliantTabs: any[] = [];
|
|
644
731
|
const aItems = oMultiModeControl.getItems();
|
|
645
732
|
aItems.forEach((oItem: any) => {
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
733
|
+
if (oItem.getProperty("visible")) {
|
|
734
|
+
const oControl = this.getView().byId(oItem.getKey());
|
|
735
|
+
if (
|
|
736
|
+
oControl &&
|
|
737
|
+
!oControl.isA("sap.ui.mdc.Chart") &&
|
|
738
|
+
(oItem.data("outdatedCounts") || oControl.getId() === sDisplayedControlId)
|
|
739
|
+
) {
|
|
740
|
+
aCompliantTabs.push({
|
|
741
|
+
control: oControl,
|
|
742
|
+
item: oItem
|
|
743
|
+
});
|
|
744
|
+
}
|
|
656
745
|
}
|
|
657
746
|
});
|
|
658
747
|
|
|
@@ -695,12 +784,15 @@ class ListReportController extends PageController {
|
|
|
695
784
|
for (const sKey in oConditions) {
|
|
696
785
|
// ignore filters starting with $ (e.g. $search, $editState)
|
|
697
786
|
if (!sKey.startsWith("$") && Array.isArray(oConditions[sKey]) && oConditions[sKey].length) {
|
|
698
|
-
|
|
787
|
+
// load data as per user's setting of applyAutomatically on the variant
|
|
788
|
+
const standardVariant: any = oVM.getVariants().find((variant: any) => {
|
|
789
|
+
return variant.key === oVM.getCurrentVariantKey();
|
|
790
|
+
});
|
|
791
|
+
return standardVariant && standardVariant.executeOnSelect;
|
|
699
792
|
}
|
|
700
793
|
}
|
|
701
794
|
}
|
|
702
795
|
}
|
|
703
|
-
|
|
704
796
|
return false;
|
|
705
797
|
}
|
|
706
798
|
|
|
@@ -819,18 +911,14 @@ class ListReportController extends PageController {
|
|
|
819
911
|
oInternalModelContext.setProperty("hasPendingFilters", false);
|
|
820
912
|
oInternalModelContext.setProperty("hideDraftInfo", bHideDraft);
|
|
821
913
|
if (this._isMultiMode()) {
|
|
822
|
-
const
|
|
823
|
-
oMultiModeControl = this._getMultiModeControl();
|
|
914
|
+
const oMultiModeControl = this._getMultiModeControl();
|
|
824
915
|
this._setCountsOutDated();
|
|
825
916
|
if (!this._isCustomTab()) {
|
|
826
|
-
const sDisplayedControlId = this._getCurrentControl().getId();
|
|
827
917
|
this._updateMultiTabNotApplicableFields(oInternalModelContext, oFilterBar);
|
|
828
918
|
// This should be done outside the search event handler of the filter bar.
|
|
829
919
|
// The same logic is required when filter bar is hidden and multiple tables exist on the LR.
|
|
830
920
|
// This is currently done in ListReport/overrides/ViewState.js#onAfterStateApplied()
|
|
831
|
-
|
|
832
|
-
oControl.data("outdatedRows", oControl.getId() !== sDisplayedControlId);
|
|
833
|
-
});
|
|
921
|
+
this._invalidateMultipleModeContent();
|
|
834
922
|
} else {
|
|
835
923
|
const oFilterConditions = oFilterBar.getFilterConditions();
|
|
836
924
|
this.onViewNeedsRefresh({
|
|
@@ -847,7 +935,7 @@ class ListReportController extends PageController {
|
|
|
847
935
|
(oMdcChart.getBindingContext("internal") as InternalModelContext).setProperty("", {});
|
|
848
936
|
|
|
849
937
|
const oPageInternalModelContext = oMdcChart.getBindingContext("pageInternal") as InternalModelContext;
|
|
850
|
-
const sTemplateContentView = oPageInternalModelContext.getProperty(oPageInternalModelContext.getPath()
|
|
938
|
+
const sTemplateContentView = oPageInternalModelContext.getProperty(`${oPageInternalModelContext.getPath()}/alpContentView`);
|
|
851
939
|
if (sTemplateContentView === TemplateContentView.Chart) {
|
|
852
940
|
this.hasPendingChartChanges = true;
|
|
853
941
|
}
|
|
@@ -875,15 +963,20 @@ class ListReportController extends PageController {
|
|
|
875
963
|
/**
|
|
876
964
|
* Triggers an outbound navigation when a user chooses the chevron.
|
|
877
965
|
*
|
|
878
|
-
* @param
|
|
879
|
-
* @param
|
|
880
|
-
* @param
|
|
881
|
-
* @param
|
|
882
|
-
* @returns
|
|
966
|
+
* @param oController
|
|
967
|
+
* @param sOutboundTarget Name of the outbound target (needs to be defined in the manifest)
|
|
968
|
+
* @param oContext The context that contains the data for the target app
|
|
969
|
+
* @param sCreatePath Create path when the chevron is created.
|
|
970
|
+
* @returns Promise which is resolved once the navigation is triggered
|
|
883
971
|
* @ui5-restricted
|
|
884
972
|
* @final
|
|
885
973
|
*/
|
|
886
|
-
onChevronPressNavigateOutBound(
|
|
974
|
+
onChevronPressNavigateOutBound(
|
|
975
|
+
oController: ListReportController,
|
|
976
|
+
sOutboundTarget: string,
|
|
977
|
+
oContext: V4Context,
|
|
978
|
+
sCreatePath: string
|
|
979
|
+
) {
|
|
887
980
|
return oController._intentBasedNavigation.onChevronPressNavigateOutBound(oController, sOutboundTarget, oContext, sCreatePath);
|
|
888
981
|
},
|
|
889
982
|
onChartSelectionChanged(this: ListReportController, oEvent: any) {
|
|
@@ -897,11 +990,11 @@ class ListReportController extends PageController {
|
|
|
897
990
|
// update selections on selection or deselection
|
|
898
991
|
ChartUtils.setChartFilters(oMdcChart);
|
|
899
992
|
}
|
|
900
|
-
const sTemplateContentView = oInternalModelContext.getProperty(oInternalModelContext.getPath()
|
|
993
|
+
const sTemplateContentView = oInternalModelContext.getProperty(`${oInternalModelContext.getPath()}/alpContentView`);
|
|
901
994
|
if (sTemplateContentView === TemplateContentView.Chart) {
|
|
902
995
|
this.hasPendingChartChanges = true;
|
|
903
|
-
} else {
|
|
904
|
-
|
|
996
|
+
} else if (oTable) {
|
|
997
|
+
(oTable as any).rebind();
|
|
905
998
|
this.hasPendingChartChanges = false;
|
|
906
999
|
}
|
|
907
1000
|
},
|
|
@@ -953,8 +1046,18 @@ class ListReportController extends PageController {
|
|
|
953
1046
|
(this.getView().byId(this.getView().getContent()[0].data("visualFilterBarId")) as Control).setVisible(true);
|
|
954
1047
|
}
|
|
955
1048
|
},
|
|
956
|
-
|
|
1049
|
+
onStateChange(this: ListReportController) {
|
|
957
1050
|
this.getExtensionAPI().updateAppState();
|
|
1051
|
+
},
|
|
1052
|
+
onDynamicPageTitleStateChanged(this: ListReportController, oEvent: any) {
|
|
1053
|
+
const filterBar: any = this._getFilterBarControl();
|
|
1054
|
+
if (filterBar && filterBar.getSegmentedButton()) {
|
|
1055
|
+
if (oEvent.getParameter("isExpanded")) {
|
|
1056
|
+
filterBar.getSegmentedButton().setVisible(true);
|
|
1057
|
+
} else {
|
|
1058
|
+
filterBar.getSegmentedButton().setVisible(false);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
958
1061
|
}
|
|
959
1062
|
};
|
|
960
1063
|
formatters = {
|
|
@@ -962,11 +1065,11 @@ class ListReportController extends PageController {
|
|
|
962
1065
|
* Method to set the message text for the multiple entity sets when fields in the FilterBar need to be ignored.
|
|
963
1066
|
*
|
|
964
1067
|
* @param this
|
|
965
|
-
* @param
|
|
966
|
-
* @param
|
|
967
|
-
* @param
|
|
968
|
-
* @param
|
|
969
|
-
* @returns
|
|
1068
|
+
* @param aIgnoredFields Array of ignored fields in the FilterBar for the current tab (multiple entity sets)
|
|
1069
|
+
* @param sTabTitle Tab title
|
|
1070
|
+
* @param bIsChart Flag that indicates whether the control is a chart or not
|
|
1071
|
+
* @param oApplySupported ApplySupported for the control
|
|
1072
|
+
* @returns Message text
|
|
970
1073
|
*/
|
|
971
1074
|
setTabMessageStrip(this: ListReportController, aIgnoredFields: any[], sTabTitle: string, bIsChart?: any, oApplySupported?: any) {
|
|
972
1075
|
let sText = "";
|
|
@@ -984,7 +1087,7 @@ class ListReportController extends PageController {
|
|
|
984
1087
|
if (sProperty === "$editState") {
|
|
985
1088
|
return oMacroResourceBundle ? oMacroResourceBundle.getText("M_COMMON_FILTERBAR_EDITING_STATUS") : "";
|
|
986
1089
|
}
|
|
987
|
-
const sLabel = oMetaModel.getObject(sFilterBarEntityPath + sProperty
|
|
1090
|
+
const sLabel = oMetaModel.getObject(`${sFilterBarEntityPath + sProperty}@com.sap.vocabularies.Common.v1.Label`);
|
|
988
1091
|
return DelegateUtil.getLocalizedText(sLabel, oFilterBar);
|
|
989
1092
|
});
|
|
990
1093
|
const bIsSearchIgnored = !oApplySupported.enableSearch;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/helpers/StableIdHelper"], function (StableIdHelper) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
var generate = StableIdHelper.generate;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Method returns an VariantBackReference expression based on variantManagement and oConverterContext value.
|
|
13
|
+
*
|
|
14
|
+
* @function
|
|
15
|
+
* @name getVariantBackReference
|
|
16
|
+
* @param {object} oViewData Object Containing View Data
|
|
17
|
+
* @param {object} oConverterContext Object containing converted context
|
|
18
|
+
* @returns {string}
|
|
19
|
+
*/
|
|
20
|
+
var getVariantBackReference = function (oViewData, oConverterContext) {
|
|
21
|
+
if (oViewData && oViewData.variantManagement === "Page") {
|
|
22
|
+
return "fe::PageVariantManagement";
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (oViewData && oViewData.variantManagement === "Control") {
|
|
26
|
+
return generate([oConverterContext.filterBarId, "VariantManagement"]);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return undefined;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
_exports.getVariantBackReference = getVariantBackReference;
|
|
33
|
+
|
|
34
|
+
var getDefaultPath = function (aViews) {
|
|
35
|
+
for (var i = 0; i < aViews.length; i++) {
|
|
36
|
+
if (aViews[i].defaultPath) {
|
|
37
|
+
return aViews[i].defaultPath;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
_exports.getDefaultPath = getDefaultPath;
|
|
43
|
+
return _exports;
|
|
44
|
+
}, false);
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxpc3RSZXBvcnRUZW1wbGF0aW5nLnRzIl0sIm5hbWVzIjpbImdldFZhcmlhbnRCYWNrUmVmZXJlbmNlIiwib1ZpZXdEYXRhIiwib0NvbnZlcnRlckNvbnRleHQiLCJ2YXJpYW50TWFuYWdlbWVudCIsImdlbmVyYXRlIiwiZmlsdGVyQmFySWQiLCJ1bmRlZmluZWQiLCJnZXREZWZhdWx0UGF0aCIsImFWaWV3cyIsImkiLCJsZW5ndGgiLCJkZWZhdWx0UGF0aCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLE1BQU1BLHVCQUF1QixHQUFHLFVBQVVDLFNBQVYsRUFBMEJDLGlCQUExQixFQUFrRDtBQUN4RixRQUFJRCxTQUFTLElBQUlBLFNBQVMsQ0FBQ0UsaUJBQVYsS0FBZ0MsTUFBakQsRUFBeUQ7QUFDeEQsYUFBTywyQkFBUDtBQUNBOztBQUNELFFBQUlGLFNBQVMsSUFBSUEsU0FBUyxDQUFDRSxpQkFBVixLQUFnQyxTQUFqRCxFQUE0RDtBQUMzRCxhQUFPQyxRQUFRLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUNHLFdBQW5CLEVBQWdDLG1CQUFoQyxDQUFELENBQWY7QUFDQTs7QUFDRCxXQUFPQyxTQUFQO0FBQ0EsR0FSTTs7OztBQVVBLE1BQU1DLGNBQWMsR0FBRyxVQUFVQyxNQUFWLEVBQXVCO0FBQ3BELFNBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0QsTUFBTSxDQUFDRSxNQUEzQixFQUFtQ0QsQ0FBQyxFQUFwQyxFQUF3QztBQUN2QyxVQUFJRCxNQUFNLENBQUNDLENBQUQsQ0FBTixDQUFVRSxXQUFkLEVBQTJCO0FBQzFCLGVBQU9ILE1BQU0sQ0FBQ0MsQ0FBRCxDQUFOLENBQVVFLFdBQWpCO0FBQ0E7QUFDRDtBQUNELEdBTk0iLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRlbXBsYXRlIEhlbHBlcnMgZm9yIHRoZSBMaXN0IFJlcG9ydFxuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuXG4vKipcbiAqIE1ldGhvZCByZXR1cm5zIGFuIFZhcmlhbnRCYWNrUmVmZXJlbmNlIGV4cHJlc3Npb24gYmFzZWQgb24gdmFyaWFudE1hbmFnZW1lbnQgYW5kIG9Db252ZXJ0ZXJDb250ZXh0IHZhbHVlLlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgZ2V0VmFyaWFudEJhY2tSZWZlcmVuY2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBvVmlld0RhdGEgT2JqZWN0IENvbnRhaW5pbmcgVmlldyBEYXRhXG4gKiBAcGFyYW0ge29iamVjdH0gb0NvbnZlcnRlckNvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgY29udmVydGVkIGNvbnRleHRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFZhcmlhbnRCYWNrUmVmZXJlbmNlID0gZnVuY3Rpb24gKG9WaWV3RGF0YTogYW55LCBvQ29udmVydGVyQ29udGV4dDogYW55KSB7XG5cdGlmIChvVmlld0RhdGEgJiYgb1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50ID09PSBcIlBhZ2VcIikge1xuXHRcdHJldHVybiBcImZlOjpQYWdlVmFyaWFudE1hbmFnZW1lbnRcIjtcblx0fVxuXHRpZiAob1ZpZXdEYXRhICYmIG9WaWV3RGF0YS52YXJpYW50TWFuYWdlbWVudCA9PT0gXCJDb250cm9sXCIpIHtcblx0XHRyZXR1cm4gZ2VuZXJhdGUoW29Db252ZXJ0ZXJDb250ZXh0LmZpbHRlckJhcklkLCBcIlZhcmlhbnRNYW5hZ2VtZW50XCJdKTtcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRQYXRoID0gZnVuY3Rpb24gKGFWaWV3czogYW55KSB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYVZpZXdzLmxlbmd0aDsgaSsrKSB7XG5cdFx0aWYgKGFWaWV3c1tpXS5kZWZhdWx0UGF0aCkge1xuXHRcdFx0cmV0dXJuIGFWaWV3c1tpXS5kZWZhdWx0UGF0aDtcblx0XHR9XG5cdH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Template Helpers for the List Report
|
|
2
|
+
import { generate } from "sap/fe/core/helpers/StableIdHelper";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Method returns an VariantBackReference expression based on variantManagement and oConverterContext value.
|
|
6
|
+
*
|
|
7
|
+
* @function
|
|
8
|
+
* @name getVariantBackReference
|
|
9
|
+
* @param {object} oViewData Object Containing View Data
|
|
10
|
+
* @param {object} oConverterContext Object containing converted context
|
|
11
|
+
* @returns {string}
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export const getVariantBackReference = function (oViewData: any, oConverterContext: any) {
|
|
15
|
+
if (oViewData && oViewData.variantManagement === "Page") {
|
|
16
|
+
return "fe::PageVariantManagement";
|
|
17
|
+
}
|
|
18
|
+
if (oViewData && oViewData.variantManagement === "Control") {
|
|
19
|
+
return generate([oConverterContext.filterBarId, "VariantManagement"]);
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const getDefaultPath = function (aViews: any) {
|
|
25
|
+
for (let i = 0; i < aViews.length; i++) {
|
|
26
|
+
if (aViews[i].defaultPath) {
|
|
27
|
+
return aViews[i].defaultPath;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
@@ -54,4 +54,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/filter/FilterUtils"], f
|
|
|
54
54
|
};
|
|
55
55
|
return IntentBasedNavigationOverride;
|
|
56
56
|
}, false);
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkludGVudEJhc2VkTmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwiZW50aXR5U2V0Iiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9GaWx0ZXJJbmZvIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJJbmZvIiwidGFyZ2V0Q29udHJvbCIsIl9nZXRUYWJsZSIsImZpbHRlcnMiLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsIm1UYWJzIiwiZ2V0UHJvcGVydHkiLCJhSWdub3JlZEZpZWxkc0ZvclRhYiIsImlnbm9yZWRGaWVsZHMiLCJzZWxlY3RlZCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvckVhY2giLCJzUHJvcGVydHkiLCJmaWx0ZXJDb25kaXRpb25zIiwiYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQiLCJwcm9wZXJ0aWVzV2l0aG91dENvbmZsaWN0IiwiZ2V0RW50aXR5U2V0IiwiZ2V0Q3VycmVudEVudGl0eVNldCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUdBLE1BQU1BLDZCQUE2QixHQUFHO0FBQ3JDQyxJQUFBQSxzQkFBc0IsRUFBRSxVQUF1Q0MsaUJBQXZDLEVBQStEQyxXQUEvRCxFQUFpRjtBQUN4RyxVQUFNQyxLQUFLLEdBQUcsS0FBS0MsT0FBTCxFQUFkO0FBQUEsVUFDQ0MsV0FBVyxHQUFHRixLQUFLLENBQUNHLGFBQU4sRUFEZjtBQUFBLFVBRUNDLFVBQVUsR0FBR0YsV0FBVyxDQUFDRyxvQkFBWixFQUZkLENBRHdHLENBSXhHO0FBQ0E7OztBQUNBLFVBQUlELFVBQVUsSUFBSSxDQUFDTixpQkFBaUIsQ0FBQ1EsT0FBbEIsRUFBbkIsRUFBZ0Q7QUFDL0MsWUFBTUMsU0FBUyxHQUFHUCxLQUFLLENBQUNRLFdBQU4sRUFBbEI7QUFBQSxZQUNDQyxTQUFTLEdBQUdGLFNBQVMsQ0FBQ0csZUFBVixHQUE0QkgsU0FBUyxDQUFDSSxTQURuRDtBQUVBLFlBQUlDLG9CQUFvQixHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQW1CLEtBQUtDLElBQUwsQ0FBVWQsT0FBVixHQUFvQkUsYUFBcEIsRUFBRCxDQUE2Q2EsbUJBQS9ELENBQTNCO0FBQ0EsWUFBSUMsV0FBVyxHQUFHLEVBQWxCOztBQUVBLFlBQUlWLFNBQVMsQ0FBQ1csV0FBZCxFQUEyQjtBQUMxQixjQUFNQyxVQUFVLEdBQUduQixLQUFLLENBQUNvQixRQUFOLEdBQWlCQyxZQUFqQixFQUFuQjtBQUFBLGNBQ0NDLGNBQWMsR0FBR0MsV0FBVyxDQUFDQyxnQkFBWixDQUE2QkwsVUFBN0IsRUFBeUNaLFNBQVMsQ0FBQ1csV0FBbkQsQ0FEbEI7QUFBQSxjQUVDTyxnQkFBZ0IsR0FBR0gsY0FBYyxDQUFDSSxtQkFGbkM7QUFHQVQsVUFBQUEsV0FBVyxHQUFJUSxnQkFBZ0IsSUFBSVosTUFBTSxDQUFDYyxJQUFQLENBQVlGLGdCQUFaLENBQXJCLElBQXVELEVBQXJFO0FBQ0E7O0FBRURiLFFBQUFBLG9CQUFvQixHQUFHVixXQUFXLENBQUMwQixzQkFBWixDQUFtQ0MsbUNBQW5DLENBQ3RCakIsb0JBRHNCLEVBRXRCSCxTQUZzQixFQUd0QlEsV0FIc0IsQ0FBdkI7QUFLQSxZQUFNYSxXQUFXLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBWixDQUEwQjVCLFVBQTFCLEVBQXNDO0FBQ3pENkIsVUFBQUEsYUFBYSxFQUFFL0IsV0FBVyxDQUFDZ0MsU0FBWjtBQUQwQyxTQUF0QyxFQUVqQkMsT0FGSDtBQUdBLFlBQU1DLHFCQUFxQixHQUFHcEMsS0FBSyxDQUFDcUMsaUJBQU4sQ0FBd0IsVUFBeEIsQ0FBOUI7QUFDQSxZQUFNQyxLQUFLLEdBQUdGLHFCQUFxQixJQUFJQSxxQkFBcUIsQ0FBQ0csV0FBdEIsQ0FBa0MsTUFBbEMsQ0FBdkMsQ0F0QitDLENBdUIvQzs7QUFDQSxZQUFJRCxLQUFKLEVBQVc7QUFDVixjQUFNRSxvQkFBb0IsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLENBQW9CSCxLQUFLLENBQUNJLFFBQTFCLENBQTdCOztBQUNBLGNBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixvQkFBZCxLQUF1Q0Esb0JBQW9CLENBQUNLLE1BQXJCLEdBQThCLENBQXpFLEVBQTRFO0FBQzNFTCxZQUFBQSxvQkFBb0IsQ0FBQ00sT0FBckIsQ0FBNkIsVUFBVUMsU0FBVixFQUEwQjtBQUN0RCxxQkFBT25DLG9CQUFvQixDQUFDb0MsZ0JBQXJCLENBQXNDRCxTQUF0QyxDQUFQO0FBQ0EsYUFGRDtBQUdBO0FBQ0QsU0EvQjhDLENBZ0MvQzs7O0FBQ0F4QixRQUFBQSxXQUFXLENBQUMwQix5Q0FBWixDQUFzRG5ELGlCQUF0RCxFQUF5RWMsb0JBQXpFLEVBQStGYixXQUEvRixFQUE0RytCLFdBQTVHO0FBQ0EsZUFBTy9CLFdBQVcsQ0FBQ21ELHlCQUFuQjtBQUNBO0FBQ0QsS0EzQ29DO0FBNENyQ0MsSUFBQUEsWUFBWSxFQUFFLFlBQXVDO0FBQ3BELGFBQVEsS0FBS3BDLElBQU4sQ0FBbUJxQyxtQkFBbkIsRUFBUDtBQUNBO0FBOUNvQyxHQUF0QztTQWlEZXhELDZCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBJbnRlbnRCYXNlZE5hdmlnYXRpb24gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVudEJhc2VkTmF2aWdhdGlvblwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5cbmNvbnN0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlID0ge1xuXHRhZGFwdE5hdmlnYXRpb25Db250ZXh0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBvU2VsZWN0aW9uVmFyaWFudDogYW55LCBvVGFyZ2V0SW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Ly8gQWRkaW5nIGZpbHRlciBiYXIgdmFsdWVzIHRvIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaWYgbm8gY29udGV4dCBoYXMgYmVlbiBzZWxlY3RlZC5cblx0XHQvLyBIZW5jZSBvbmx5IGNvbnNpZGVyIGZpbHRlciBiYXIgdmFsdWVzIHdoZW4gU2VsZWN0aW9uVmFyaWFudCBpcyBub3QgZW1wdHlcblx0XHRpZiAob0ZpbHRlckJhciAmJiAhb1NlbGVjdGlvblZhcmlhbnQuaXNFbXB0eSgpKSB7XG5cdFx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdFx0c1Jvb3RQYXRoID0gb1ZpZXdEYXRhLmZ1bGxDb250ZXh0UGF0aCArIG9WaWV3RGF0YS5lbnRpdHlTZXQ7XG5cdFx0XHRsZXQgb0ZpbHRlckJhckNvbmRpdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCAodGhpcy5iYXNlLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkgYXMgYW55KS5maWx0ZXJCYXJDb25kaXRpb25zKTtcblx0XHRcdGxldCBhUGFyYW1ldGVycyA9IFtdO1xuXG5cdFx0XHRpZiAob1ZpZXdEYXRhLmNvbnRleHRQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvVmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0XHRcdG9QYXJhbWV0ZXJJbmZvID0gQ29tbW9uVXRpbHMuZ2V0UGFyYW1ldGVySW5mbyhvTWV0YU1vZGVsLCBvVmlld0RhdGEuY29udGV4dFBhdGgpLFxuXHRcdFx0XHRcdG9QYXJhbVByb3BlcnRpZXMgPSBvUGFyYW1ldGVySW5mby5wYXJhbWV0ZXJQcm9wZXJ0aWVzO1xuXHRcdFx0XHRhUGFyYW1ldGVycyA9IChvUGFyYW1Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9QYXJhbVByb3BlcnRpZXMpKSB8fCBbXTtcblx0XHRcdH1cblxuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvQ29udHJvbGxlci5faW50ZW50QmFzZWROYXZpZ2F0aW9uLnByZXBhcmVGaWx0ZXJzRm9yRXh0ZXJuYWxOYXZpZ2F0aW9uKFxuXHRcdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyxcblx0XHRcdFx0c1Jvb3RQYXRoLFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblx0XHRcdGNvbnN0IG9GaWx0ZXJJbmZvID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhvRmlsdGVyQmFyLCB7XG5cdFx0XHRcdHRhcmdldENvbnRyb2w6IG9Db250cm9sbGVyLl9nZXRUYWJsZSgpXG5cdFx0XHR9KS5maWx0ZXJzO1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKTtcblx0XHRcdGNvbnN0IG1UYWJzID0gb0ludGVybmFsTW9kZWxDb250ZXh0ICYmIG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcInRhYnNcIik7XG5cdFx0XHQvLyBEbyB3ZSBuZWVkIHRvIGV4Y2x1ZGUgRmllbGRzIChtdXRsaSB0YWJsZXMgbW9kZSk/XG5cdFx0XHRpZiAobVRhYnMpIHtcblx0XHRcdFx0Y29uc3QgYUlnbm9yZWRGaWVsZHNGb3JUYWIgPSBtVGFicy5pZ25vcmVkRmllbGRzW21UYWJzLnNlbGVjdGVkXTtcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHNGb3JUYWIpICYmIGFJZ25vcmVkRmllbGRzRm9yVGFiLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRhSWdub3JlZEZpZWxkc0ZvclRhYi5mb3JFYWNoKGZ1bmN0aW9uIChzUHJvcGVydHk6IGFueSkge1xuXHRcdFx0XHRcdFx0ZGVsZXRlIG9GaWx0ZXJCYXJDb25kaXRpb25zLmZpbHRlckNvbmRpdGlvbnNbc1Byb3BlcnR5XTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gVE9ETzogbW92ZSB0aGlzIGFsc28gaW50byB0aGUgaW50ZW50IGJhc2VkIG5hdmlnYXRpb24gY29udHJvbGxlciBleHRlbnNpb25cblx0XHRcdENvbW1vblV0aWxzLmFkZEV4dGVybmFsU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50KG9TZWxlY3Rpb25WYXJpYW50LCBvRmlsdGVyQmFyQ29uZGl0aW9ucywgb1RhcmdldEluZm8sIG9GaWx0ZXJJbmZvKTtcblx0XHRcdGRlbGV0ZSBvVGFyZ2V0SW5mby5wcm9wZXJ0aWVzV2l0aG91dENvbmZsaWN0O1xuXHRcdH1cblx0fSxcblx0Z2V0RW50aXR5U2V0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uKSB7XG5cdFx0cmV0dXJuICh0aGlzLmJhc2UgYXMgYW55KS5nZXRDdXJyZW50RW50aXR5U2V0KCk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlO1xuIl19
|