@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.
Files changed (136) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
  5. package/src/sap/fe/templates/Feedback.js +18 -18
  6. package/src/sap/fe/templates/Feedback.ts +12 -12
  7. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +15 -15
  8. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +19 -16
  9. package/src/sap/fe/templates/ListReport/ListReport.view.xml +107 -58
  10. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +180 -70
  11. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +191 -88
  12. package/src/sap/fe/templates/ListReport/ListReportTemplating.js +45 -0
  13. package/src/sap/fe/templates/ListReport/ListReportTemplating.ts +30 -0
  14. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  15. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +2 -2
  16. package/src/sap/fe/templates/ListReport/overrides/Share.js +9 -7
  17. package/src/sap/fe/templates/ListReport/overrides/Share.ts +10 -10
  18. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +13 -6
  19. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +17 -11
  20. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +1 -1
  21. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +1 -1
  22. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +12 -16
  23. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +17 -20
  24. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +167 -20
  25. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +195 -206
  26. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +187 -229
  27. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +861 -0
  28. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +822 -0
  29. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +2 -3
  30. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +4 -4
  31. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
  32. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -1
  33. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
  34. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -1
  35. package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.js +103 -0
  36. package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.ts +97 -0
  37. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
  38. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +5 -5
  39. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
  40. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +2 -2
  41. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
  42. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -2
  43. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  44. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +1 -1
  45. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +17 -17
  46. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +19 -30
  47. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +2 -2
  48. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +4 -4
  49. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +15 -11
  50. package/src/sap/fe/templates/ObjectPage/view/fragments/CollaborationDraft.fragment.xml +1 -2
  51. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +25 -17
  52. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +28 -24
  53. package/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +15 -16
  54. package/src/sap/fe/templates/ObjectPage/view/fragments/FormActions.fragment.xml +1 -5
  55. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -2
  56. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +1 -3
  57. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +3 -17
  58. package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +16 -17
  59. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +4 -3
  60. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +7 -2
  61. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +26 -0
  62. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +4 -4
  63. package/src/sap/fe/templates/ObjectPage/view/fragments/RelatedApps.fragment.xml +7 -4
  64. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +74 -6
  65. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +118 -94
  66. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +127 -107
  67. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
  68. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
  69. package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +2 -2
  70. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +102 -57
  71. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +96 -61
  72. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +3 -4
  73. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +4 -5
  74. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +140 -52
  75. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +108 -54
  76. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
  77. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +3 -3
  78. package/src/sap/fe/templates/TableScroller.js +3 -3
  79. package/src/sap/fe/templates/TableScroller.ts +2 -2
  80. package/src/sap/fe/templates/controls/MacroChart.fragment.xml +1 -0
  81. package/src/sap/fe/templates/controls/Table.fragment.xml +4 -4
  82. package/src/sap/fe/templates/library.js +5 -2
  83. package/src/sap/fe/templates/library.ts +3 -0
  84. package/src/sap/fe/templates/messagebundle.properties +6 -18
  85. package/src/sap/fe/templates/messagebundle_ar.properties +10 -6
  86. package/src/sap/fe/templates/messagebundle_bg.properties +6 -2
  87. package/src/sap/fe/templates/messagebundle_ca.properties +10 -6
  88. package/src/sap/fe/templates/messagebundle_cs.properties +6 -2
  89. package/src/sap/fe/templates/messagebundle_cy.properties +10 -6
  90. package/src/sap/fe/templates/messagebundle_da.properties +10 -6
  91. package/src/sap/fe/templates/messagebundle_de.properties +10 -6
  92. package/src/sap/fe/templates/messagebundle_el.properties +10 -6
  93. package/src/sap/fe/templates/messagebundle_en.properties +6 -2
  94. package/src/sap/fe/templates/messagebundle_en_GB.properties +8 -4
  95. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +13 -5
  96. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +7 -3
  97. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +7 -3
  98. package/src/sap/fe/templates/messagebundle_es.properties +6 -2
  99. package/src/sap/fe/templates/messagebundle_es_MX.properties +10 -6
  100. package/src/sap/fe/templates/messagebundle_et.properties +6 -2
  101. package/src/sap/fe/templates/messagebundle_fi.properties +10 -6
  102. package/src/sap/fe/templates/messagebundle_fr.properties +6 -2
  103. package/src/sap/fe/templates/messagebundle_fr_CA.properties +10 -6
  104. package/src/sap/fe/templates/messagebundle_hi.properties +10 -6
  105. package/src/sap/fe/templates/messagebundle_hr.properties +10 -6
  106. package/src/sap/fe/templates/messagebundle_hu.properties +6 -2
  107. package/src/sap/fe/templates/messagebundle_id.properties +6 -2
  108. package/src/sap/fe/templates/messagebundle_it.properties +10 -6
  109. package/src/sap/fe/templates/messagebundle_iw.properties +10 -6
  110. package/src/sap/fe/templates/messagebundle_ja.properties +6 -2
  111. package/src/sap/fe/templates/messagebundle_kk.properties +10 -6
  112. package/src/sap/fe/templates/messagebundle_ko.properties +6 -2
  113. package/src/sap/fe/templates/messagebundle_lt.properties +6 -2
  114. package/src/sap/fe/templates/messagebundle_lv.properties +6 -2
  115. package/src/sap/fe/templates/messagebundle_ms.properties +10 -6
  116. package/src/sap/fe/templates/messagebundle_nl.properties +6 -2
  117. package/src/sap/fe/templates/messagebundle_no.properties +10 -6
  118. package/src/sap/fe/templates/messagebundle_pl.properties +10 -6
  119. package/src/sap/fe/templates/messagebundle_pt.properties +6 -2
  120. package/src/sap/fe/templates/messagebundle_pt_PT.properties +6 -2
  121. package/src/sap/fe/templates/messagebundle_ro.properties +10 -6
  122. package/src/sap/fe/templates/messagebundle_ru.properties +10 -6
  123. package/src/sap/fe/templates/messagebundle_sh.properties +6 -2
  124. package/src/sap/fe/templates/messagebundle_sk.properties +6 -2
  125. package/src/sap/fe/templates/messagebundle_sl.properties +10 -6
  126. package/src/sap/fe/templates/messagebundle_sv.properties +6 -2
  127. package/src/sap/fe/templates/messagebundle_th.properties +10 -6
  128. package/src/sap/fe/templates/messagebundle_tr.properties +6 -2
  129. package/src/sap/fe/templates/messagebundle_uk.properties +6 -2
  130. package/src/sap/fe/templates/messagebundle_vi.properties +10 -6
  131. package/src/sap/fe/templates/messagebundle_zh_CN.properties +10 -6
  132. package/src/sap/fe/templates/messagebundle_zh_TW.properties +10 -6
  133. package/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +0 -482
  134. package/src/sap/fe/templates/ObjectPage/AnnotationHelper.ts +0 -511
  135. package/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +0 -120
  136. 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() && this._updateMultiControlHiddenStatus();
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
- this.extensionAPI && this.extensionAPI.destroy();
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 (!this.sUpdateTimer) {
173
- this.sUpdateTimer = setTimeout(() => {
174
- oTableBinding.refresh();
175
- if (this._isMultiMode()) {
176
- this._setCountsOutDated();
177
- this._updateCounts();
178
- }
179
- delete this.sUpdateTimer;
180
- }, 0);
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
- // Update action enablement and visibility upon table data update.
184
- const fnUpdateTableActions = () => {
185
- this._updateTableActions(aTables);
186
- oTableBinding.detachDataReceived(fnUpdateTableActions);
187
- };
188
- oTableBinding.attachDataReceived(fnUpdateTableActions);
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 {map} mParameters Map containing the filter conditions of the FilterBar, the currentTabID
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")) as any
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 {string} sRowPath The path of the table row context to be scrolled to
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 as Control;
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
- const oBinding = oTableControl && (oTableControl as any)._getRowBinding();
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("fe::" + sKey) > -1) {
423
- oControl && aControls.push(oControl);
446
+ if (oControl && sKey) {
447
+ if (oItem.getKey().indexOf(`fe::${sKey}`) > -1) {
448
+ aControls.push(oControl);
424
449
  }
425
- } else {
426
- oControl && aControls.push(oControl);
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 {boolean} Is Multiple Table mode set?
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 {boolean} Is Multiple EntitySets configuration?
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 ? "#" + sHash : window.location.href;
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 {sap.ui.model.context} oInternalModelContext The internal model context
537
- * @param {sap.ui.mdc.FilterBar} oFilterBar MDC filter bar
616
+ * @param oInternalModelContext The internal model context
617
+ * @param oFilterBar MDC filter bar
538
618
  */
539
- _updateMultiTabNotApplicableFields(oInternalModelContext: any, oFilterBar: any) {
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 + "Chart";
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 {sap.ui.model.context} oInternalModelContext The internal model context
577
- * @param {sap.ui.mdc.FilterBar} oFilterBar MDC filter bar
656
+ * @param oInternalModelContext The internal model context
657
+ * @param oFilterBar MDC filter bar
578
658
  */
579
- _updateALPNotApplicableFields(oInternalModelContext: any, oFilterBar: any) {
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 + "Chart";
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 {boolean} Determines if the tab is a custom tab.
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
- const oControl = this.getView().byId(oItem.getKey());
647
- if (
648
- oControl &&
649
- !oControl.isA("sap.ui.mdc.Chart") &&
650
- (oItem.data("outdatedCounts") || oControl.getId() === sDisplayedControlId)
651
- ) {
652
- aCompliantTabs.push({
653
- control: oControl,
654
- item: oItem
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
- return true;
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 aControls = this._getControls(),
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
- aControls.forEach(function (oControl: any) {
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() + "/alpContentView");
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 {object} oController
879
- * @param {string} sOutboundTarget Name of the outbound target (needs to be defined in the manifest)
880
- * @param {sap.ui.model.odata.v4.Context} oContext The context that contains the data for the target app
881
- * @param {string} sCreatePath Create path when the chevron is created.
882
- * @returns {Promise} Promise which is resolved once the navigation is triggered
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(oController: ListReportController, sOutboundTarget: string, oContext: any, sCreatePath: string) {
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() + "/alpContentView");
993
+ const sTemplateContentView = oInternalModelContext.getProperty(`${oInternalModelContext.getPath()}/alpContentView`);
901
994
  if (sTemplateContentView === TemplateContentView.Chart) {
902
995
  this.hasPendingChartChanges = true;
903
- } else {
904
- oTable && (oTable as any).rebind();
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
- onStateChanged(this: ListReportController) {
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 {Array} aIgnoredFields Array of ignored fields in the FilterBar for the current tab (multiple entity sets)
966
- * @param {string} sTabTitle Tab title
967
- * @param {boolean} bIsChart Flag that indicates whether the control is a chart or not
968
- * @param {object} oApplySupported ApplySupported for the control
969
- * @returns {string} Message text
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 + "@com.sap.vocabularies.Common.v1.Label");
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkludGVudEJhc2VkTmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwiZW50aXR5U2V0Iiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9GaWx0ZXJJbmZvIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJJbmZvIiwidGFyZ2V0Q29udHJvbCIsIl9nZXRUYWJsZSIsImZpbHRlcnMiLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsIm1UYWJzIiwiZ2V0UHJvcGVydHkiLCJhSWdub3JlZEZpZWxkc0ZvclRhYiIsImlnbm9yZWRGaWVsZHMiLCJzZWxlY3RlZCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvckVhY2giLCJzUHJvcGVydHkiLCJmaWx0ZXJDb25kaXRpb25zIiwiYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQiLCJwcm9wZXJ0aWVzV2l0aG91dENvbmZsaWN0IiwiZ2V0RW50aXR5U2V0IiwiZ2V0Q3VycmVudEVudGl0eVNldCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUdBLE1BQU1BLDZCQUE2QixHQUFHO0FBQ3JDQyxJQUFBQSxzQkFBc0IsRUFBRSxVQUF1Q0MsaUJBQXZDLEVBQStEQyxXQUEvRCxFQUFpRjtBQUN4RyxVQUFNQyxLQUFLLEdBQUcsS0FBS0MsT0FBTCxFQUFkO0FBQUEsVUFDQ0MsV0FBVyxHQUFHRixLQUFLLENBQUNHLGFBQU4sRUFEZjtBQUFBLFVBRUNDLFVBQVUsR0FBR0YsV0FBVyxDQUFDRyxvQkFBWixFQUZkLENBRHdHLENBSXhHO0FBQ0E7OztBQUNBLFVBQUlELFVBQVUsSUFBSSxDQUFDTixpQkFBaUIsQ0FBQ1EsT0FBbEIsRUFBbkIsRUFBZ0Q7QUFDL0MsWUFBTUMsU0FBUyxHQUFHUCxLQUFLLENBQUNRLFdBQU4sRUFBbEI7QUFBQSxZQUNDQyxTQUFTLEdBQUdGLFNBQVMsQ0FBQ0csZUFBVixHQUE0QkgsU0FBUyxDQUFDSSxTQURuRDtBQUVBLFlBQUlDLG9CQUFvQixHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQW1CLEtBQUtDLElBQUwsQ0FBVWQsT0FBVixHQUFvQkUsYUFBcEIsRUFBRCxDQUE2Q2EsbUJBQS9ELENBQTNCO0FBQ0EsWUFBSUMsV0FBVyxHQUFHLEVBQWxCOztBQUVBLFlBQUlWLFNBQVMsQ0FBQ1csV0FBZCxFQUEyQjtBQUMxQixjQUFNQyxVQUFVLEdBQUduQixLQUFLLENBQUNvQixRQUFOLEdBQWlCQyxZQUFqQixFQUFuQjtBQUFBLGNBQ0NDLGNBQWMsR0FBR0MsV0FBVyxDQUFDQyxnQkFBWixDQUE2QkwsVUFBN0IsRUFBeUNaLFNBQVMsQ0FBQ1csV0FBbkQsQ0FEbEI7QUFBQSxjQUVDTyxnQkFBZ0IsR0FBR0gsY0FBYyxDQUFDSSxtQkFGbkM7QUFHQVQsVUFBQUEsV0FBVyxHQUFJUSxnQkFBZ0IsSUFBSVosTUFBTSxDQUFDYyxJQUFQLENBQVlGLGdCQUFaLENBQXJCLElBQXVELEVBQXJFO0FBQ0E7O0FBRURiLFFBQUFBLG9CQUFvQixHQUFHVixXQUFXLENBQUMwQixzQkFBWixDQUFtQ0MsbUNBQW5DLENBQ3RCakIsb0JBRHNCLEVBRXRCSCxTQUZzQixFQUd0QlEsV0FIc0IsQ0FBdkI7QUFLQSxZQUFNYSxXQUFXLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBWixDQUEwQjVCLFVBQTFCLEVBQXNDO0FBQ3pENkIsVUFBQUEsYUFBYSxFQUFFL0IsV0FBVyxDQUFDZ0MsU0FBWjtBQUQwQyxTQUF0QyxFQUVqQkMsT0FGSDtBQUdBLFlBQU1DLHFCQUFxQixHQUFHcEMsS0FBSyxDQUFDcUMsaUJBQU4sQ0FBd0IsVUFBeEIsQ0FBOUI7QUFDQSxZQUFNQyxLQUFLLEdBQUdGLHFCQUFxQixJQUFJQSxxQkFBcUIsQ0FBQ0csV0FBdEIsQ0FBa0MsTUFBbEMsQ0FBdkMsQ0F0QitDLENBdUIvQzs7QUFDQSxZQUFJRCxLQUFKLEVBQVc7QUFDVixjQUFNRSxvQkFBb0IsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLENBQW9CSCxLQUFLLENBQUNJLFFBQTFCLENBQTdCOztBQUNBLGNBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixvQkFBZCxLQUF1Q0Esb0JBQW9CLENBQUNLLE1BQXJCLEdBQThCLENBQXpFLEVBQTRFO0FBQzNFTCxZQUFBQSxvQkFBb0IsQ0FBQ00sT0FBckIsQ0FBNkIsVUFBVUMsU0FBVixFQUEwQjtBQUN0RCxxQkFBT25DLG9CQUFvQixDQUFDb0MsZ0JBQXJCLENBQXNDRCxTQUF0QyxDQUFQO0FBQ0EsYUFGRDtBQUdBO0FBQ0QsU0EvQjhDLENBZ0MvQzs7O0FBQ0F4QixRQUFBQSxXQUFXLENBQUMwQix5Q0FBWixDQUFzRG5ELGlCQUF0RCxFQUF5RWMsb0JBQXpFLEVBQStGYixXQUEvRixFQUE0RytCLFdBQTVHO0FBQ0EsZUFBTy9CLFdBQVcsQ0FBQ21ELHlCQUFuQjtBQUNBO0FBQ0QsS0EzQ29DO0FBNENyQ0MsSUFBQUEsWUFBWSxFQUFFLFlBQXVDO0FBQ3BELGFBQVEsS0FBS3BDLElBQU4sQ0FBbUJxQyxtQkFBbkIsRUFBUDtBQUNBO0FBOUNvQyxHQUF0QztTQWlEZXhELDZCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgSW50ZW50QmFzZWROYXZpZ2F0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcblxuY29uc3QgSW50ZW50QmFzZWROYXZpZ2F0aW9uT3ZlcnJpZGUgPSB7XG5cdGFkYXB0TmF2aWdhdGlvbkNvbnRleHQ6IGZ1bmN0aW9uICh0aGlzOiBJbnRlbnRCYXNlZE5hdmlnYXRpb24sIG9TZWxlY3Rpb25WYXJpYW50OiBhbnksIG9UYXJnZXRJbmZvOiBhbnkpIHtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIsXG5cdFx0XHRvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0XHQvLyBBZGRpbmcgZmlsdGVyIGJhciB2YWx1ZXMgdG8gdGhlIG5hdmlnYXRpb24gZG9lcyBub3QgbWFrZSBzZW5zZSBpZiBubyBjb250ZXh0IGhhcyBiZWVuIHNlbGVjdGVkLlxuXHRcdC8vIEhlbmNlIG9ubHkgY29uc2lkZXIgZmlsdGVyIGJhciB2YWx1ZXMgd2hlbiBTZWxlY3Rpb25WYXJpYW50IGlzIG5vdCBlbXB0eVxuXHRcdGlmIChvRmlsdGVyQmFyICYmICFvU2VsZWN0aW9uVmFyaWFudC5pc0VtcHR5KCkpIHtcblx0XHRcdGNvbnN0IG9WaWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCkgYXMgYW55LFxuXHRcdFx0XHRzUm9vdFBhdGggPSBvVmlld0RhdGEuZnVsbENvbnRleHRQYXRoICsgb1ZpZXdEYXRhLmVudGl0eVNldDtcblx0XHRcdGxldCBvRmlsdGVyQmFyQ29uZGl0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sICh0aGlzLmJhc2UuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBhbnkpLmZpbHRlckJhckNvbmRpdGlvbnMpO1xuXHRcdFx0bGV0IGFQYXJhbWV0ZXJzID0gW107XG5cblx0XHRcdGlmIChvVmlld0RhdGEuY29udGV4dFBhdGgpIHtcblx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9WaWV3LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdFx0b1BhcmFtZXRlckluZm8gPSBDb21tb25VdGlscy5nZXRQYXJhbWV0ZXJJbmZvKG9NZXRhTW9kZWwsIG9WaWV3RGF0YS5jb250ZXh0UGF0aCksXG5cdFx0XHRcdFx0b1BhcmFtUHJvcGVydGllcyA9IG9QYXJhbWV0ZXJJbmZvLnBhcmFtZXRlclByb3BlcnRpZXM7XG5cdFx0XHRcdGFQYXJhbWV0ZXJzID0gKG9QYXJhbVByb3BlcnRpZXMgJiYgT2JqZWN0LmtleXMob1BhcmFtUHJvcGVydGllcykpIHx8IFtdO1xuXHRcdFx0fVxuXG5cdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyA9IG9Db250cm9sbGVyLl9pbnRlbnRCYXNlZE5hdmlnYXRpb24ucHJlcGFyZUZpbHRlcnNGb3JFeHRlcm5hbE5hdmlnYXRpb24oXG5cdFx0XHRcdG9GaWx0ZXJCYXJDb25kaXRpb25zLFxuXHRcdFx0XHRzUm9vdFBhdGgsXG5cdFx0XHRcdGFQYXJhbWV0ZXJzXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3Qgb0ZpbHRlckluZm8gPSBGaWx0ZXJVdGlscy5nZXRGaWx0ZXJJbmZvKG9GaWx0ZXJCYXIsIHtcblx0XHRcdFx0dGFyZ2V0Q29udHJvbDogb0NvbnRyb2xsZXIuX2dldFRhYmxlKClcblx0XHRcdH0pLmZpbHRlcnM7XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpO1xuXHRcdFx0Y29uc3QgbVRhYnMgPSBvSW50ZXJuYWxNb2RlbENvbnRleHQgJiYgb0ludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwidGFic1wiKTtcblx0XHRcdC8vIERvIHdlIG5lZWQgdG8gZXhjbHVkZSBGaWVsZHMgKG11dGxpIHRhYmxlcyBtb2RlKT9cblx0XHRcdGlmIChtVGFicykge1xuXHRcdFx0XHRjb25zdCBhSWdub3JlZEZpZWxkc0ZvclRhYiA9IG1UYWJzLmlnbm9yZWRGaWVsZHNbbVRhYnMuc2VsZWN0ZWRdO1xuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShhSWdub3JlZEZpZWxkc0ZvclRhYikgJiYgYUlnbm9yZWRGaWVsZHNGb3JUYWIubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdGFJZ25vcmVkRmllbGRzRm9yVGFiLmZvckVhY2goZnVuY3Rpb24gKHNQcm9wZXJ0eTogYW55KSB7XG5cdFx0XHRcdFx0XHRkZWxldGUgb0ZpbHRlckJhckNvbmRpdGlvbnMuZmlsdGVyQ29uZGl0aW9uc1tzUHJvcGVydHldO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvLyBUT0RPOiBtb3ZlIHRoaXMgYWxzbyBpbnRvIHRoZSBpbnRlbnQgYmFzZWQgbmF2aWdhdGlvbiBjb250cm9sbGVyIGV4dGVuc2lvblxuXHRcdFx0Q29tbW9uVXRpbHMuYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQob1NlbGVjdGlvblZhcmlhbnQsIG9GaWx0ZXJCYXJDb25kaXRpb25zLCBvVGFyZ2V0SW5mbywgb0ZpbHRlckluZm8pO1xuXHRcdFx0ZGVsZXRlIG9UYXJnZXRJbmZvLnByb3BlcnRpZXNXaXRob3V0Q29uZmxpY3Q7XG5cdFx0fVxuXHR9LFxuXHRnZXRFbnRpdHlTZXQ6IGZ1bmN0aW9uICh0aGlzOiBJbnRlbnRCYXNlZE5hdmlnYXRpb24pIHtcblx0XHRyZXR1cm4gKHRoaXMuYmFzZSBhcyBhbnkpLmdldEN1cnJlbnRFbnRpdHlTZXQoKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW50ZW50QmFzZWROYXZpZ2F0aW9uT3ZlcnJpZGU7XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkludGVudEJhc2VkTmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwiZW50aXR5U2V0Iiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9GaWx0ZXJJbmZvIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJJbmZvIiwidGFyZ2V0Q29udHJvbCIsIl9nZXRUYWJsZSIsImZpbHRlcnMiLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsIm1UYWJzIiwiZ2V0UHJvcGVydHkiLCJhSWdub3JlZEZpZWxkc0ZvclRhYiIsImlnbm9yZWRGaWVsZHMiLCJzZWxlY3RlZCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvckVhY2giLCJzUHJvcGVydHkiLCJmaWx0ZXJDb25kaXRpb25zIiwiYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQiLCJwcm9wZXJ0aWVzV2l0aG91dENvbmZsaWN0IiwiZ2V0RW50aXR5U2V0IiwiZ2V0Q3VycmVudEVudGl0eVNldCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUdBLE1BQU1BLDZCQUE2QixHQUFHO0FBQ3JDQyxJQUFBQSxzQkFBc0IsRUFBRSxVQUF1Q0MsaUJBQXZDLEVBQStEQyxXQUEvRCxFQUFpRjtBQUN4RyxVQUFNQyxLQUFLLEdBQUcsS0FBS0MsT0FBTCxFQUFkO0FBQUEsVUFDQ0MsV0FBVyxHQUFHRixLQUFLLENBQUNHLGFBQU4sRUFEZjtBQUFBLFVBRUNDLFVBQVUsR0FBR0YsV0FBVyxDQUFDRyxvQkFBWixFQUZkLENBRHdHLENBSXhHO0FBQ0E7OztBQUNBLFVBQUlELFVBQVUsSUFBSSxDQUFDTixpQkFBaUIsQ0FBQ1EsT0FBbEIsRUFBbkIsRUFBZ0Q7QUFDL0MsWUFBTUMsU0FBUyxHQUFHUCxLQUFLLENBQUNRLFdBQU4sRUFBbEI7QUFBQSxZQUNDQyxTQUFTLEdBQUdGLFNBQVMsQ0FBQ0csZUFBVixHQUE0QkgsU0FBUyxDQUFDSSxTQURuRDtBQUVBLFlBQUlDLG9CQUFvQixHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQW1CLEtBQUtDLElBQUwsQ0FBVWQsT0FBVixHQUFvQkUsYUFBcEIsRUFBRCxDQUE2Q2EsbUJBQS9ELENBQTNCO0FBQ0EsWUFBSUMsV0FBVyxHQUFHLEVBQWxCOztBQUVBLFlBQUlWLFNBQVMsQ0FBQ1csV0FBZCxFQUEyQjtBQUMxQixjQUFNQyxVQUFVLEdBQUduQixLQUFLLENBQUNvQixRQUFOLEdBQWlCQyxZQUFqQixFQUFuQjtBQUFBLGNBQ0NDLGNBQWMsR0FBR0MsV0FBVyxDQUFDQyxnQkFBWixDQUE2QkwsVUFBN0IsRUFBeUNaLFNBQVMsQ0FBQ1csV0FBbkQsQ0FEbEI7QUFBQSxjQUVDTyxnQkFBZ0IsR0FBR0gsY0FBYyxDQUFDSSxtQkFGbkM7QUFHQVQsVUFBQUEsV0FBVyxHQUFJUSxnQkFBZ0IsSUFBSVosTUFBTSxDQUFDYyxJQUFQLENBQVlGLGdCQUFaLENBQXJCLElBQXVELEVBQXJFO0FBQ0E7O0FBRURiLFFBQUFBLG9CQUFvQixHQUFHVixXQUFXLENBQUMwQixzQkFBWixDQUFtQ0MsbUNBQW5DLENBQ3RCakIsb0JBRHNCLEVBRXRCSCxTQUZzQixFQUd0QlEsV0FIc0IsQ0FBdkI7QUFLQSxZQUFNYSxXQUFXLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBWixDQUEwQjVCLFVBQTFCLEVBQXNDO0FBQ3pENkIsVUFBQUEsYUFBYSxFQUFFL0IsV0FBVyxDQUFDZ0MsU0FBWjtBQUQwQyxTQUF0QyxFQUVqQkMsT0FGSDtBQUdBLFlBQU1DLHFCQUFxQixHQUFHcEMsS0FBSyxDQUFDcUMsaUJBQU4sQ0FBd0IsVUFBeEIsQ0FBOUI7QUFDQSxZQUFNQyxLQUFLLEdBQUdGLHFCQUFxQixJQUFJQSxxQkFBcUIsQ0FBQ0csV0FBdEIsQ0FBa0MsTUFBbEMsQ0FBdkMsQ0F0QitDLENBdUIvQzs7QUFDQSxZQUFJRCxLQUFKLEVBQVc7QUFDVixjQUFNRSxvQkFBb0IsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLENBQW9CSCxLQUFLLENBQUNJLFFBQTFCLENBQTdCOztBQUNBLGNBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixvQkFBZCxLQUF1Q0Esb0JBQW9CLENBQUNLLE1BQXJCLEdBQThCLENBQXpFLEVBQTRFO0FBQzNFTCxZQUFBQSxvQkFBb0IsQ0FBQ00sT0FBckIsQ0FBNkIsVUFBVUMsU0FBVixFQUEwQjtBQUN0RCxxQkFBT25DLG9CQUFvQixDQUFDb0MsZ0JBQXJCLENBQXNDRCxTQUF0QyxDQUFQO0FBQ0EsYUFGRDtBQUdBO0FBQ0QsU0EvQjhDLENBZ0MvQzs7O0FBQ0F4QixRQUFBQSxXQUFXLENBQUMwQix5Q0FBWixDQUFzRG5ELGlCQUF0RCxFQUF5RWMsb0JBQXpFLEVBQStGYixXQUEvRixFQUE0RytCLFdBQTVHO0FBQ0EsZUFBTy9CLFdBQVcsQ0FBQ21ELHlCQUFuQjtBQUNBO0FBQ0QsS0EzQ29DO0FBNENyQ0MsSUFBQUEsWUFBWSxFQUFFLFlBQXVDO0FBQ3BELGFBQVEsS0FBS3BDLElBQU4sQ0FBbUJxQyxtQkFBbkIsRUFBUDtBQUNBO0FBOUNvQyxHQUF0QztTQWlEZXhELDZCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBJbnRlbnRCYXNlZE5hdmlnYXRpb24gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVudEJhc2VkTmF2aWdhdGlvblwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5cbmNvbnN0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlID0ge1xuXHRhZGFwdE5hdmlnYXRpb25Db250ZXh0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBvU2VsZWN0aW9uVmFyaWFudDogYW55LCBvVGFyZ2V0SW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Ly8gQWRkaW5nIGZpbHRlciBiYXIgdmFsdWVzIHRvIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaWYgbm8gY29udGV4dCBoYXMgYmVlbiBzZWxlY3RlZC5cblx0XHQvLyBIZW5jZSBvbmx5IGNvbnNpZGVyIGZpbHRlciBiYXIgdmFsdWVzIHdoZW4gU2VsZWN0aW9uVmFyaWFudCBpcyBub3QgZW1wdHlcblx0XHRpZiAob0ZpbHRlckJhciAmJiAhb1NlbGVjdGlvblZhcmlhbnQuaXNFbXB0eSgpKSB7XG5cdFx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdFx0c1Jvb3RQYXRoID0gb1ZpZXdEYXRhLmZ1bGxDb250ZXh0UGF0aCArIG9WaWV3RGF0YS5lbnRpdHlTZXQ7XG5cdFx0XHRsZXQgb0ZpbHRlckJhckNvbmRpdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCAodGhpcy5iYXNlLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkgYXMgYW55KS5maWx0ZXJCYXJDb25kaXRpb25zKTtcblx0XHRcdGxldCBhUGFyYW1ldGVycyA9IFtdO1xuXG5cdFx0XHRpZiAob1ZpZXdEYXRhLmNvbnRleHRQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvVmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0XHRcdG9QYXJhbWV0ZXJJbmZvID0gQ29tbW9uVXRpbHMuZ2V0UGFyYW1ldGVySW5mbyhvTWV0YU1vZGVsLCBvVmlld0RhdGEuY29udGV4dFBhdGgpLFxuXHRcdFx0XHRcdG9QYXJhbVByb3BlcnRpZXMgPSBvUGFyYW1ldGVySW5mby5wYXJhbWV0ZXJQcm9wZXJ0aWVzO1xuXHRcdFx0XHRhUGFyYW1ldGVycyA9IChvUGFyYW1Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9QYXJhbVByb3BlcnRpZXMpKSB8fCBbXTtcblx0XHRcdH1cblxuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvQ29udHJvbGxlci5faW50ZW50QmFzZWROYXZpZ2F0aW9uLnByZXBhcmVGaWx0ZXJzRm9yRXh0ZXJuYWxOYXZpZ2F0aW9uKFxuXHRcdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyxcblx0XHRcdFx0c1Jvb3RQYXRoLFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblx0XHRcdGNvbnN0IG9GaWx0ZXJJbmZvID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhvRmlsdGVyQmFyLCB7XG5cdFx0XHRcdHRhcmdldENvbnRyb2w6IG9Db250cm9sbGVyLl9nZXRUYWJsZSgpXG5cdFx0XHR9KS5maWx0ZXJzO1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKTtcblx0XHRcdGNvbnN0IG1UYWJzID0gb0ludGVybmFsTW9kZWxDb250ZXh0ICYmIG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcInRhYnNcIik7XG5cdFx0XHQvLyBEbyB3ZSBuZWVkIHRvIGV4Y2x1ZGUgRmllbGRzIChtdXRsaSB0YWJsZXMgbW9kZSk/XG5cdFx0XHRpZiAobVRhYnMpIHtcblx0XHRcdFx0Y29uc3QgYUlnbm9yZWRGaWVsZHNGb3JUYWIgPSBtVGFicy5pZ25vcmVkRmllbGRzW21UYWJzLnNlbGVjdGVkXTtcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHNGb3JUYWIpICYmIGFJZ25vcmVkRmllbGRzRm9yVGFiLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRhSWdub3JlZEZpZWxkc0ZvclRhYi5mb3JFYWNoKGZ1bmN0aW9uIChzUHJvcGVydHk6IGFueSkge1xuXHRcdFx0XHRcdFx0ZGVsZXRlIG9GaWx0ZXJCYXJDb25kaXRpb25zLmZpbHRlckNvbmRpdGlvbnNbc1Byb3BlcnR5XTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gVE9ETzogbW92ZSB0aGlzIGFsc28gaW50byB0aGUgaW50ZW50IGJhc2VkIG5hdmlnYXRpb24gY29udHJvbGxlciBleHRlbnNpb25cblx0XHRcdENvbW1vblV0aWxzLmFkZEV4dGVybmFsU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50KG9TZWxlY3Rpb25WYXJpYW50LCBvRmlsdGVyQmFyQ29uZGl0aW9ucywgb1RhcmdldEluZm8sIG9GaWx0ZXJJbmZvKTtcblx0XHRcdGRlbGV0ZSBvVGFyZ2V0SW5mby5wcm9wZXJ0aWVzV2l0aG91dENvbmZsaWN0O1xuXHRcdH1cblx0fSxcblx0Z2V0RW50aXR5U2V0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uKSB7XG5cdFx0cmV0dXJuICh0aGlzLmJhc2UgYXMgYW55KS5nZXRDdXJyZW50RW50aXR5U2V0KCk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlO1xuIl19