@sapui5/sap.fe.templates 1.141.1 → 1.142.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 (74) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
  4. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
  5. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +1 -1
  6. package/src/sap/fe/templates/ListReport/ListReport.view.xml +10 -12
  7. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +95 -60
  8. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +92 -53
  9. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  10. package/src/sap/fe/templates/ListReport/overrides/MessageHandler.js +25 -0
  11. package/src/sap/fe/templates/ListReport/overrides/MessageHandler.ts +20 -0
  12. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +180 -13
  13. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +209 -13
  14. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +4 -0
  15. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +136 -24
  16. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +178 -26
  17. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +3 -2
  18. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +2 -1
  19. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
  20. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +7 -4
  21. package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +2 -2
  22. package/src/sap/fe/templates/library.js +1 -1
  23. package/src/sap/fe/templates/messagebundle.properties +8 -7
  24. package/src/sap/fe/templates/messagebundle_ar.properties +5 -5
  25. package/src/sap/fe/templates/messagebundle_bg.properties +6 -6
  26. package/src/sap/fe/templates/messagebundle_ca.properties +4 -4
  27. package/src/sap/fe/templates/messagebundle_cnr.properties +5 -5
  28. package/src/sap/fe/templates/messagebundle_cs.properties +6 -6
  29. package/src/sap/fe/templates/messagebundle_cy.properties +5 -5
  30. package/src/sap/fe/templates/messagebundle_da.properties +6 -6
  31. package/src/sap/fe/templates/messagebundle_de.properties +7 -7
  32. package/src/sap/fe/templates/messagebundle_el.properties +5 -5
  33. package/src/sap/fe/templates/messagebundle_en.properties +6 -6
  34. package/src/sap/fe/templates/messagebundle_en_GB.properties +6 -6
  35. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +3 -3
  36. package/src/sap/fe/templates/messagebundle_es.properties +4 -4
  37. package/src/sap/fe/templates/messagebundle_es_MX.properties +4 -4
  38. package/src/sap/fe/templates/messagebundle_et.properties +4 -4
  39. package/src/sap/fe/templates/messagebundle_fi.properties +4 -4
  40. package/src/sap/fe/templates/messagebundle_fr.properties +4 -4
  41. package/src/sap/fe/templates/messagebundle_fr_CA.properties +5 -5
  42. package/src/sap/fe/templates/messagebundle_hi.properties +6 -6
  43. package/src/sap/fe/templates/messagebundle_hr.properties +4 -4
  44. package/src/sap/fe/templates/messagebundle_hu.properties +6 -6
  45. package/src/sap/fe/templates/messagebundle_id.properties +7 -7
  46. package/src/sap/fe/templates/messagebundle_it.properties +4 -4
  47. package/src/sap/fe/templates/messagebundle_iw.properties +6 -6
  48. package/src/sap/fe/templates/messagebundle_ja.properties +4 -4
  49. package/src/sap/fe/templates/messagebundle_kk.properties +4 -4
  50. package/src/sap/fe/templates/messagebundle_ko.properties +4 -4
  51. package/src/sap/fe/templates/messagebundle_lt.properties +4 -4
  52. package/src/sap/fe/templates/messagebundle_lv.properties +6 -6
  53. package/src/sap/fe/templates/messagebundle_mk.properties +4 -4
  54. package/src/sap/fe/templates/messagebundle_ms.properties +5 -5
  55. package/src/sap/fe/templates/messagebundle_nl.properties +4 -4
  56. package/src/sap/fe/templates/messagebundle_no.properties +4 -4
  57. package/src/sap/fe/templates/messagebundle_pl.properties +4 -4
  58. package/src/sap/fe/templates/messagebundle_pt.properties +5 -5
  59. package/src/sap/fe/templates/messagebundle_pt_PT.properties +6 -6
  60. package/src/sap/fe/templates/messagebundle_ro.properties +4 -4
  61. package/src/sap/fe/templates/messagebundle_ru.properties +4 -4
  62. package/src/sap/fe/templates/messagebundle_sh.properties +5 -5
  63. package/src/sap/fe/templates/messagebundle_sk.properties +4 -4
  64. package/src/sap/fe/templates/messagebundle_sl.properties +6 -6
  65. package/src/sap/fe/templates/messagebundle_sr.properties +5 -5
  66. package/src/sap/fe/templates/messagebundle_sv.properties +4 -4
  67. package/src/sap/fe/templates/messagebundle_th.properties +4 -4
  68. package/src/sap/fe/templates/messagebundle_tr.properties +4 -4
  69. package/src/sap/fe/templates/messagebundle_uk.properties +4 -4
  70. package/src/sap/fe/templates/messagebundle_vi.properties +6 -6
  71. package/src/sap/fe/templates/messagebundle_zh_CN.properties +4 -4
  72. package/src/sap/fe/templates/messagebundle_zh_TW.properties +4 -4
  73. package/src/sap/fe/templates/types/sap.fe.templates-auto-ext.d.js +10 -0
  74. package/src/sap/fe/templates/types/sap.fe.templates-auto-ext.d.ts +49 -0
@@ -9,6 +9,7 @@ import IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedN
9
9
  import InternalIntentBasedNavigation from "sap/fe/core/controllerextensions/InternalIntentBasedNavigation";
10
10
  import InternalRouting from "sap/fe/core/controllerextensions/InternalRouting";
11
11
  import KPIManagement from "sap/fe/core/controllerextensions/KPIManagement";
12
+ import MessageHandler from "sap/fe/core/controllerextensions/MessageHandler";
12
13
  import Placeholder from "sap/fe/core/controllerextensions/Placeholder";
13
14
  import Share from "sap/fe/core/controllerextensions/Share";
14
15
  import SideEffects from "sap/fe/core/controllerextensions/SideEffects";
@@ -21,11 +22,13 @@ import { getResourceModel } from "sap/fe/core/helpers/ResourceModelHelper";
21
22
  import * as StableIdHelper from "sap/fe/core/helpers/StableIdHelper";
22
23
  import { generate } from "sap/fe/core/helpers/StableIdHelper";
23
24
  import CoreLibrary from "sap/fe/core/library";
25
+ import type { TitleInformation } from "sap/fe/core/rootView/RootViewBaseController";
24
26
  import type Breadcrumbs from "sap/fe/macros/Breadcrumbs";
25
27
  import type ChartType from "sap/fe/macros/Chart";
26
28
  import type MacroAPI from "sap/fe/macros/MacroAPI";
27
29
  import type ChartDelegate from "sap/fe/macros/chart/ChartDelegate";
28
30
  import ChartUtils from "sap/fe/macros/chart/ChartUtils";
31
+ import type ContentSwitcher from "sap/fe/macros/contentSwitcher/ContentSwitcher";
29
32
  import type FilterBar from "sap/fe/macros/controls/FilterBar";
30
33
  import FilterUtils from "sap/fe/macros/filter/FilterUtils";
31
34
  import type FilterBarAPI from "sap/fe/macros/filterBar/FilterBarAPI";
@@ -54,8 +57,10 @@ import StateUtil from "sap/ui/mdc/p13n/StateUtil";
54
57
  import type JSONModel from "sap/ui/model/json/JSONModel";
55
58
  import type Context from "sap/ui/model/odata/v4/Context";
56
59
  import hasher from "sap/ui/thirdparty/hasher";
60
+ import type { TitleAdditionalInfo } from "sap/ushell/ui5service/ShellUIService";
57
61
  import * as ListReportTemplating from "./ListReportTemplating";
58
62
  import IntentBasedNavigationOverride from "./overrides/IntentBasedNavigation";
63
+ import MessageHandlerOverride from "./overrides/MessageHandler";
59
64
  import ShareOverrides from "./overrides/Share";
60
65
  import ViewStateOverrides from "./overrides/ViewState";
61
66
 
@@ -105,6 +110,9 @@ class ListReportController extends PageController {
105
110
  @usingExtension(Placeholder)
106
111
  placeholder!: Placeholder;
107
112
 
113
+ @usingExtension(MessageHandler.override(MessageHandlerOverride))
114
+ messageHandler!: MessageHandler;
115
+
108
116
  protected extensionAPI?: ExtensionAPI;
109
117
 
110
118
  private filterBarConditions?: unknown;
@@ -129,7 +137,8 @@ class ListReportController extends PageController {
129
137
 
130
138
  onInit(): void {
131
139
  PageController.prototype.onInit.apply(this);
132
- const oInternalModelContext = this.getView().getBindingContext("internal") as InternalModelContext;
140
+ const oInternalModelContext = this.getOwnerComponent().getBindingContext("internal") as InternalModelContext;
141
+ const uiModelContext = this.getOwnerComponent().getBindingContext("ui") as InternalModelContext;
133
142
  const filterBar = this._getFilterBarControl();
134
143
  if (filterBar) {
135
144
  this._storeFilterBarSelectionVariant(filterBar, oInternalModelContext);
@@ -160,11 +169,7 @@ class ListReportController extends PageController {
160
169
 
161
170
  // Configure the initial load settings
162
171
  this._setInitLoad();
163
- const view = this.getView();
164
- const uiModel = view.getModel("ui");
165
- const path = `/${view.getId()}`;
166
- uiModel.setProperty(path, { isEditable: false });
167
- view.bindElement({ path, model: "ui" });
172
+ uiModelContext.setProperty("", { isEditable: false });
168
173
  }
169
174
 
170
175
  onBeforeRendering(): void {
@@ -185,7 +190,13 @@ class ListReportController extends PageController {
185
190
  delete this.extensionAPI;
186
191
  }
187
192
 
188
- _onAfterBinding(): void {
193
+ async _onAfterBinding(): Promise<void> {
194
+ const internalModelContext = this.getView().getBindingContext("internal") as InternalModelContext;
195
+ if (!internalModelContext.getProperty("initialVariantApplied")) {
196
+ this.pageReady.waitFor(this._applyAppState());
197
+ internalModelContext.setProperty("initialVariantApplied", true);
198
+ }
199
+ await CommonUtils.getAppComponent(this.getView()).isAppComponentBusy();
189
200
  const aTables = this._getControls("table") as Table[];
190
201
  let updateActions = true;
191
202
  if (EditState.isEditStateDirty()) {
@@ -195,13 +206,11 @@ class ListReportController extends PageController {
195
206
  if (oTableBinding) {
196
207
  updateActions = false;
197
208
  const tableAPI = table?.getParent() as TableAPI;
198
-
199
209
  // Update the table content using side effects (listBinding.refresh doesn't keep expansion states in a TreeTable)
200
210
  CommonUtils.getAppComponent(this.getView())
201
211
  .getRoutingService()
202
212
  .waitForBindingCleanup()
203
- .then(async () => {
204
- await CommonUtils.getAppComponent(this.getView()).isAppComponentBusy();
213
+ .then(() => {
205
214
  oTableBinding.attachEventOnce("dataReceived", () => {
206
215
  this._updateTableActions(aTables);
207
216
  });
@@ -223,13 +232,6 @@ class ListReportController extends PageController {
223
232
  if (updateActions) {
224
233
  this._updateTableActions(aTables);
225
234
  }
226
-
227
- const internalModelContext = this.getView().getBindingContext("internal") as InternalModelContext;
228
- if (!internalModelContext.getProperty("initialVariantApplied")) {
229
- const viewId = this.getView().getId();
230
- this.pageReady.waitFor(this._applyAppState(viewId));
231
- internalModelContext.setProperty("initialVariantApplied", true);
232
- }
233
235
  const environmentCapabilities = CommonUtils.getAppComponent(this.getView()).getEnvironmentCapabilities();
234
236
  environmentCapabilities
235
237
  .isInsightsEnabled()
@@ -283,10 +285,10 @@ class ListReportController extends PageController {
283
285
  * This happens either when there is a change on the FilterBar and the search is triggered,
284
286
  * or when a tab with custom content is selected,
285
287
  * or when the view is forced to be refreshed through the Extension API for the list report's public method setTabContentToBeRefreshedOnNextOpening.
286
- * This method can be overwritten by the controller extension in case of customization.
287
- * @param mParameters Map containing the filter conditions of the FilterBar, the currentTabID
288
- * and the view refresh cause (tabChanged, search or forcedRefresh).
289
- * The map looks like this:
288
+ * This method can be overwritten by the controller extension for customization.
289
+ * @param mParameters Map containing the filter conditions of the FilterBar, the currentTabID,
290
+ * and the view refresh cause such as tabChanged, search, or forcedRefresh.
291
+ * See the following example of a map:
290
292
  * <code><pre>
291
293
  * {
292
294
  * filterConditions: {
@@ -315,9 +317,9 @@ class ListReportController extends PageController {
315
317
 
316
318
  /**
317
319
  * Method called when a filter or search value has been changed in the FilterBar,
318
- * but has not been validated yet by the end user (with the 'Go' or 'Search' button).
320
+ * but has not been validated yet by the end user with the 'Go' or 'Search' button.
319
321
  * Typically, the content of the current tab is greyed out until the filters are validated.
320
- * This method can be overwritten by the controller extension in case of customization.
322
+ * This method can be overwritten by the controller extension for customization.
321
323
  * @public
322
324
  */
323
325
  @publicExtension()
@@ -373,11 +375,43 @@ class ListReportController extends PageController {
373
375
  filterField.focus(focusInfo);
374
376
  }
375
377
 
378
+ /**
379
+ * Sets the focus when the header is expanded.
380
+ * The priorities are: (1) first empty mandatory filter field, (2) search field if focusable or first filter field, and (3) Go button.
381
+ * @param filterBar The filter bar control.
382
+ */
383
+ private _focusWhenHeaderExpanded(filterBar: FilterBar): void {
384
+ const firstEmptyMandatoryField = filterBar.getFilterItems().find(function (oFilterItem: FilterField) {
385
+ return oFilterItem.getRequired() && oFilterItem.getConditions().length === 0;
386
+ });
387
+ //Focusing on the first empty mandatory filter field, or on the first filter field if the table data is loaded
388
+ // Do a "silent" focus for FilterField, by adding the silent attribute. The silent attribute suppresses typeahead opening.
389
+ if (firstEmptyMandatoryField) {
390
+ if (firstEmptyMandatoryField.isA<FilterField>("sap.ui.mdc.FilterField")) {
391
+ this._focusSilent(firstEmptyMandatoryField);
392
+ } else {
393
+ (firstEmptyMandatoryField as Control).focus();
394
+ }
395
+ } else if (this._isInitLoadEnabled() && filterBar.getFilterItems().length > 0) {
396
+ // If there is no empty mandatory filter field, set silent focus on search field (if focusable), otherwise on first filter field
397
+ const basicSearchField = filterBar.getBasicSearchField();
398
+ const fieldToFocus = basicSearchField?.isFocusable() ? basicSearchField : filterBar.getFilterItems()[0];
399
+ if (fieldToFocus.isA<FilterField>("sap.ui.mdc.FilterField")) {
400
+ this._focusSilent(fieldToFocus);
401
+ } else {
402
+ (fieldToFocus as Control).focus();
403
+ }
404
+ } else {
405
+ //Focusing on the Go button
406
+ this.getView().byId(`${this._getFilterBarControlId()}-btnSearch`)?.focus();
407
+ }
408
+ }
409
+
376
410
  /**
377
411
  * This method sets the initial focus in a list report based on the User Experience guidelines.
378
412
  *
379
413
  */
380
- _setInitialFocus(): void {
414
+ async _setInitialFocus(): Promise<void> {
381
415
  const dynamicPage = this._getDynamicListReportControl(),
382
416
  isHeaderExpanded = dynamicPage.getHeaderExpanded(),
383
417
  filterBar = this._getFilterBarControl() as FilterBar;
@@ -387,45 +421,39 @@ class ListReportController extends PageController {
387
421
  filterBar.setShowMessages(true);
388
422
  }
389
423
  if (isHeaderExpanded) {
390
- const firstEmptyMandatoryField = filterBar.getFilterItems().find(function (oFilterItem: FilterField) {
391
- return oFilterItem.getRequired() && oFilterItem.getConditions().length === 0;
392
- });
393
- //Focusing on the first empty mandatory filter field, or on the first filter field if the table data is loaded
394
- // Do a "silent" focus for FilterField, by adding the silent attribute. The silent attribute suppresses typeahead opening.
395
- if (firstEmptyMandatoryField) {
396
- if (firstEmptyMandatoryField.isA<FilterField>("sap.ui.mdc.FilterField")) {
397
- this._focusSilent(firstEmptyMandatoryField);
398
- } else {
399
- (firstEmptyMandatoryField as Control).focus();
400
- }
401
- } else if (this._isInitLoadEnabled() && filterBar.getFilterItems().length > 0) {
402
- // Add check for available filterItems
403
- const fieldToFocus = filterBar.getFilterItems()[0];
404
- if (fieldToFocus.isA<FilterField>("sap.ui.mdc.FilterField")) {
405
- this._focusSilent(fieldToFocus);
406
- } else {
407
- (fieldToFocus as Control).focus();
408
- }
409
- } else {
410
- //Focusing on the Go button
411
- this.getView().byId(`${this._getFilterBarControlId()}-btnSearch`)?.focus();
412
- }
424
+ this._focusWhenHeaderExpanded(filterBar);
413
425
  } else if (this._isInitLoadEnabled()) {
414
- this._getTable()
426
+ await this._getTable()
415
427
  ?.focusRow(0)
416
428
  .catch(function (error: unknown) {
417
- Log.error("Error while setting initial focus on the table ", error as string);
429
+ if (error) {
430
+ // if there is no error it can just be that there are no lines to focus
431
+ Log.info("Error while setting initial focus on the table ", error as string);
432
+ }
418
433
  });
419
434
  }
420
435
  } else {
421
- this._getTable()
436
+ await this._getTable()
422
437
  ?.focusRow(0)
423
438
  .catch(function (error: unknown) {
424
- Log.error("Error while setting initial focus on the table ", error as string);
439
+ if (error) {
440
+ // if there is no error it can just be that there are no lines to focus
441
+ Log.info("Error while setting initial focus on the table ", error as string);
442
+ }
425
443
  });
426
444
  }
427
445
  }
428
446
 
447
+ /**
448
+ * Override to get the browser title of the LR page.
449
+ * @param _pageTitleInformation Present page title information
450
+ * @returns Title information to be used by shell services for browser title
451
+ */
452
+ async _getBrowserTitle(_pageTitleInformation: TitleInformation): Promise<TitleAdditionalInfo | undefined> {
453
+ // We shall fallback to defaul app title in case of list report.
454
+ return Promise.resolve(undefined);
455
+ }
456
+
429
457
  async _getPageTitleInformation(): Promise<{ title?: string; subtitle: string; intent: string; icon: string }> {
430
458
  const oManifestEntry = this.getAppComponent().getManifestEntry("sap.app");
431
459
  return Promise.resolve({
@@ -451,8 +479,8 @@ class ListReportController extends PageController {
451
479
  return adaptationFilterBar?.getParent() ? adaptationFilterBar : undefined;
452
480
  }
453
481
 
454
- async _applyAppState(viewId: string): Promise<void> {
455
- await this.getAppComponent().getAppStateHandler().applyAppState(viewId, this.getView());
482
+ async _applyAppState(): Promise<void> {
483
+ await this.getAppComponent().getAppStateHandler().applyAppState(this.getView());
456
484
  const oFilterBar = this._getFilterBarControl();
457
485
  if (oFilterBar) {
458
486
  oFilterBar.enableRequests(true);
@@ -755,6 +783,17 @@ class ListReportController extends PageController {
755
783
  }
756
784
 
757
785
  handlers = {
786
+ onFilterLayoutSwitch(this: ListReportController, oEvent: UI5Event<{}, ContentSwitcher>): void {
787
+ const currentKey = oEvent.getSource().selectedKey;
788
+ const variantManagement = this._getControlFromPageModelProperty("/variantManagement/pageId");
789
+ if (variantManagement) {
790
+ if (currentKey === "ai") {
791
+ variantManagement.setVisible(false);
792
+ } else {
793
+ variantManagement.setVisible(true);
794
+ }
795
+ }
796
+ },
758
797
  onInlineEditSave(this: ListReportController): void {
759
798
  this.inlineEditFlow.inlineEditSave();
760
799
  },
@@ -5,7 +5,7 @@
5
5
  "type": "component",
6
6
  "i18n": "../messagebundle.properties",
7
7
  "applicationVersion": {
8
- "version": "1.141.1"
8
+ "version": "1.142.0"
9
9
  },
10
10
  "title": "List Report",
11
11
  "tags": {
@@ -0,0 +1,25 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/CommonUtils"], function (CommonUtils) {
6
+ "use strict";
7
+
8
+ // import type NavContainer from "sap/m/NavContainer";
9
+
10
+ const MessageHandlerLRExtension = {
11
+ getShowBoundMessagesInMessageDialog: function () {
12
+ // For List Report, determines whether bound messages should be shown in a dialog or not
13
+ const appComponent = this.base.getAppComponent();
14
+ const getCurrentPageView = CommonUtils.getCurrentPageView(appComponent);
15
+ const currentPageViewID = getCurrentPageView?.getId();
16
+ const baseViewID = this.base.getView()?.getId();
17
+ if (currentPageViewID !== baseViewID) {
18
+ return false;
19
+ }
20
+ return true;
21
+ }
22
+ };
23
+ return MessageHandlerLRExtension;
24
+ }, false);
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXNzYWdlSGFuZGxlckxSRXh0ZW5zaW9uIiwiZ2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2ciLCJhcHBDb21wb25lbnQiLCJiYXNlIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0Q3VycmVudFBhZ2VWaWV3IiwiQ29tbW9uVXRpbHMiLCJjdXJyZW50UGFnZVZpZXdJRCIsImdldElkIiwiYmFzZVZpZXdJRCIsImdldFZpZXciXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk1lc3NhZ2VIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2VIYW5kbGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9NZXNzYWdlSGFuZGxlclwiO1xuLy8gaW1wb3J0IHR5cGUgTmF2Q29udGFpbmVyIGZyb20gXCJzYXAvbS9OYXZDb250YWluZXJcIjtcblxuY29uc3QgTWVzc2FnZUhhbmRsZXJMUkV4dGVuc2lvbiA9IHtcblx0Z2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2c6IGZ1bmN0aW9uICh0aGlzOiBNZXNzYWdlSGFuZGxlcik6IGJvb2xlYW4ge1xuXHRcdC8vIEZvciBMaXN0IFJlcG9ydCwgZGV0ZXJtaW5lcyB3aGV0aGVyIGJvdW5kIG1lc3NhZ2VzIHNob3VsZCBiZSBzaG93biBpbiBhIGRpYWxvZyBvciBub3Rcblx0XHRjb25zdCBhcHBDb21wb25lbnQgPSB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCk7XG5cdFx0Y29uc3QgZ2V0Q3VycmVudFBhZ2VWaWV3ID0gQ29tbW9uVXRpbHMuZ2V0Q3VycmVudFBhZ2VWaWV3KGFwcENvbXBvbmVudCk7XG5cdFx0Y29uc3QgY3VycmVudFBhZ2VWaWV3SUQgPSBnZXRDdXJyZW50UGFnZVZpZXc/LmdldElkKCk7XG5cdFx0Y29uc3QgYmFzZVZpZXdJRCA9IHRoaXMuYmFzZS5nZXRWaWV3KCk/LmdldElkKCk7XG5cblx0XHRpZiAoY3VycmVudFBhZ2VWaWV3SUQgIT09IGJhc2VWaWV3SUQpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VIYW5kbGVyTFJFeHRlbnNpb247XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFFQTs7RUFFQSxNQUFNQSx5QkFBeUIsR0FBRztJQUNqQ0MsbUNBQW1DLEVBQUUsU0FBQUEsQ0FBQSxFQUF5QztNQUM3RTtNQUNBLE1BQU1DLFlBQVksR0FBRyxJQUFJLENBQUNDLElBQUksQ0FBQ0MsZUFBZSxDQUFDLENBQUM7TUFDaEQsTUFBTUMsa0JBQWtCLEdBQUdDLFdBQVcsQ0FBQ0Qsa0JBQWtCLENBQUNILFlBQVksQ0FBQztNQUN2RSxNQUFNSyxpQkFBaUIsR0FBR0Ysa0JBQWtCLEVBQUVHLEtBQUssQ0FBQyxDQUFDO01BQ3JELE1BQU1DLFVBQVUsR0FBRyxJQUFJLENBQUNOLElBQUksQ0FBQ08sT0FBTyxDQUFDLENBQUMsRUFBRUYsS0FBSyxDQUFDLENBQUM7TUFFL0MsSUFBSUQsaUJBQWlCLEtBQUtFLFVBQVUsRUFBRTtRQUNyQyxPQUFPLEtBQUs7TUFDYjtNQUNBLE9BQU8sSUFBSTtJQUNaO0VBQ0QsQ0FBQztFQUFDLE9BRWFULHlCQUF5QjtBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,20 @@
1
+ import CommonUtils from "sap/fe/core/CommonUtils";
2
+ import type MessageHandler from "sap/fe/core/controllerextensions/MessageHandler";
3
+ // import type NavContainer from "sap/m/NavContainer";
4
+
5
+ const MessageHandlerLRExtension = {
6
+ getShowBoundMessagesInMessageDialog: function (this: MessageHandler): boolean {
7
+ // For List Report, determines whether bound messages should be shown in a dialog or not
8
+ const appComponent = this.base.getAppComponent();
9
+ const getCurrentPageView = CommonUtils.getCurrentPageView(appComponent);
10
+ const currentPageViewID = getCurrentPageView?.getId();
11
+ const baseViewID = this.base.getView()?.getId();
12
+
13
+ if (currentPageViewID !== baseViewID) {
14
+ return false;
15
+ }
16
+ return true;
17
+ }
18
+ };
19
+
20
+ export default MessageHandlerLRExtension;