@sapui5/sap.fe.templates 1.104.1 → 1.105.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/package.json +3 -3
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/Component.js +2 -2
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -1
  5. package/src/sap/fe/templates/Feedback.js +1 -1
  6. package/src/sap/fe/templates/ListComponent.js +2 -2
  7. package/src/sap/fe/templates/ListReport/Component.js +2 -2
  8. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +5 -3
  9. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +2 -1
  10. package/src/sap/fe/templates/ListReport/ListReport.view.xml +10 -73
  11. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +30 -116
  12. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +25 -105
  13. package/src/sap/fe/templates/ListReport/ListReportTemplating.js +1 -1
  14. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +166 -62
  15. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +129 -41
  16. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  17. package/src/sap/fe/templates/ListReport/overrides/Share.js +1 -1
  18. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  19. package/src/sap/fe/templates/ListReport/view/fragments/Chart.fragment.xml +3 -0
  20. package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +10 -4
  21. package/src/sap/fe/templates/{controls → ListReport/view/fragments}/MacroChart.fragment.xml +3 -2
  22. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +3 -3
  23. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +6 -2
  24. package/src/sap/fe/templates/{controls → ListReport/view/fragments}/Table.fragment.xml +6 -6
  25. package/src/sap/fe/templates/ListReport/view/fragments/VariantManagement.fragment.xml +31 -0
  26. package/src/sap/fe/templates/ObjectPage/Component.js +9 -9
  27. package/src/sap/fe/templates/ObjectPage/Component.ts +10 -6
  28. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +24 -11
  29. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +16 -3
  30. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +48 -143
  31. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +51 -36
  32. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +47 -30
  33. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +25 -11
  34. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +20 -8
  35. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +178 -0
  36. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +2 -2
  37. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +2 -2
  38. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +2 -2
  39. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
  40. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
  41. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
  42. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +1 -1
  43. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +1 -1
  44. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
  45. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
  46. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
  47. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  48. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +1 -1
  49. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  50. package/src/sap/fe/templates/ObjectPage/view/fragments/Chart.fragment.xml +13 -0
  51. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +2 -2
  52. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -1
  53. package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +2 -2
  54. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +2 -0
  55. package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +22 -0
  56. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +7 -2
  57. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +8 -49
  58. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionPresentationVisualization.fragment.xml +1 -1
  59. package/src/sap/fe/templates/ObjectPage/view/fragments/Table.fragment.xml +23 -0
  60. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +2 -2
  61. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +2 -2
  62. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +2 -2
  63. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
  64. package/src/sap/fe/templates/TableScroller.js +1 -1
  65. package/src/sap/fe/templates/library.js +2 -2
  66. package/src/sap/fe/templates/messagebundle_bg.properties +2 -2
  67. package/src/sap/fe/templates/messagebundle_cy.properties +2 -2
  68. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +2 -7
  69. package/src/sap/fe/templates/messagebundle_lv.properties +2 -2
  70. package/src/sap/fe/templates/ListReport/view/fragments/MultipleModeOld.fragment.xml +0 -50
  71. package/src/sap/fe/templates/controls/Chart.fragment.xml +0 -25
@@ -2,6 +2,7 @@ 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
4
  import type DynamicPage from "sap/f/DynamicPage";
5
+ import ActionRuntime from "sap/fe/core/ActionRuntime";
5
6
  import CommonUtils from "sap/fe/core/CommonUtils";
6
7
  import EditFlow from "sap/fe/core/controllerextensions/EditFlow";
7
8
  import IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedNavigation";
@@ -40,7 +41,6 @@ import type SegmentedButton from "sap/m/SegmentedButton";
40
41
  import type Control from "sap/ui/core/Control";
41
42
  import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
42
43
  import { system } from "sap/ui/Device";
43
- import ControlPersonalizationWriteAPI from "sap/ui/fl/write/api/ControlPersonalizationWriteAPI";
44
44
  import StateUtil from "sap/ui/mdc/p13n/StateUtil";
45
45
  import type Table from "sap/ui/mdc/Table";
46
46
  import type JSONModel from "sap/ui/model/json/JSONModel";
@@ -94,12 +94,9 @@ class ListReportController extends PageController {
94
94
  @usingExtension(MassEdit)
95
95
  massEdit!: MassEdit;
96
96
  private extensionAPI?: ExtensionAPI;
97
- private _oListReportControl?: Control;
98
97
  private filterBarConditions?: any;
99
- private _bMultiMode?: boolean;
100
98
  private sUpdateTimer?: any;
101
99
  private oResourceBundle?: ResourceBundle;
102
- private _sEntitySet?: string;
103
100
  private hasPendingChartChanges?: boolean;
104
101
  private hasPendingTableChanges?: boolean;
105
102
 
@@ -146,7 +143,6 @@ class ListReportController extends PageController {
146
143
 
147
144
  onExit() {
148
145
  delete this.filterBarConditions;
149
- delete this._oListReportControl;
150
146
  if (this.extensionAPI) {
151
147
  this.extensionAPI.destroy();
152
148
  }
@@ -156,8 +152,7 @@ class ListReportController extends PageController {
156
152
  _onAfterBinding() {
157
153
  const aTables = this._getControls("table");
158
154
  if (EditState.isEditStateDirty()) {
159
- const oMultiModeControl = this._getMultiModeControl();
160
- oMultiModeControl?.invalidateContent();
155
+ this._getMultiModeControl()?.invalidateContent();
161
156
  const oTableBinding = this._getTableBinding();
162
157
  if (oTableBinding) {
163
158
  if (CommonUtils.getAppComponent(this.getView())._isFclEnabled()) {
@@ -281,11 +276,9 @@ class ListReportController extends PageController {
281
276
  }
282
277
 
283
278
  getCurrentEntitySet() {
284
- if (!this._sEntitySet) {
285
- const oDisplayedControl = (this._isMultiMode() && this._getCurrentControl()) || this._getTable();
286
- this._sEntitySet = oDisplayedControl?.data("targetCollectionPath").slice(1);
287
- }
288
- return this._sEntitySet;
279
+ return this._isMultiMode()
280
+ ? this._getMultiModeControl()?.getDisplayedEntitySet()
281
+ : this._getTable()?.data("targetCollectionPath").slice(1);
289
282
  }
290
283
 
291
284
  /**
@@ -306,7 +299,7 @@ class ListReportController extends PageController {
306
299
  ),
307
300
  aSelectedContexts = oTable.getSelectedContexts();
308
301
 
309
- CommonUtils.setActionEnablement(oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts);
302
+ ActionRuntime.setActionEnablement(oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts, "table");
310
303
  });
311
304
  CommonUtils.updateDataFieldForIBNButtonsVisibility(aIBNActions, this.getView());
312
305
  }
@@ -388,20 +381,10 @@ class ListReportController extends PageController {
388
381
  return this.getView().getContent()[0].data("singleTableId");
389
382
  }
390
383
 
391
- _getCurrentControl(): Control {
392
- if (!this._oListReportControl) {
393
- const oMultiModeTab = this._getMultiModeControl().content;
394
- this._oListReportControl = this.getView().byId(
395
- oMultiModeTab.getSelectedKey() || (oMultiModeTab.getItems()[0] as any).getKey()
396
- ) as Control;
397
- }
398
- return this._oListReportControl;
399
- }
400
-
401
384
  _getTable(): Table | undefined {
402
385
  if (this._isMultiMode()) {
403
- const oControl = this._getCurrentControl();
404
- return oControl && oControl.isA("sap.ui.mdc.Table") ? (oControl as Table) : undefined;
386
+ const oControl = this._getMultiModeControl()?.getSelectedInnerControl()?.content;
387
+ return oControl?.isA("sap.ui.mdc.Table") ? (oControl as Table) : undefined;
405
388
  }
406
389
  return this.getView().byId(this._getTableControlId()) as Table;
407
390
  }
@@ -459,11 +442,8 @@ class ListReportController extends PageController {
459
442
  * @name _isMultiMode
460
443
  * @returns Is Multiple Table mode set?
461
444
  */
462
- _isMultiMode() {
463
- if (!this._oListReportControl) {
464
- this._bMultiMode = !!this._getMultiModeControl();
465
- }
466
- return this._bMultiMode;
445
+ _isMultiMode(): boolean {
446
+ return !!this.getView().getModel("_pageModel")?.getProperty("/multiViewsControl");
467
447
  }
468
448
 
469
449
  /**
@@ -585,26 +565,21 @@ class ListReportController extends PageController {
585
565
  oInternalModelContext.setProperty("controls/ignoredFields", ignoredFields);
586
566
  }
587
567
 
588
- _updateMultiModeSelectedControl() {
589
- this._sEntitySet = undefined;
590
- this._oListReportControl = undefined;
591
- this._getCurrentControl();
592
- }
593
- /**
594
- * Method to determine if a tab from the list report is a custom tab.
595
- *
596
- * @function
597
- * @name _isCustomTab
598
- * @returns Determines if the tab is a custom tab.
599
- */
600
- _isCustomTab() {
601
- return this._getMultiModeControl()?.content.getSelectedKey().indexOf("::CustomTab::") > -1;
602
- }
603
-
604
568
  _isFilterBarHidden() {
605
569
  return (this.getView().getViewData() as any).hideFilterBar;
606
570
  }
607
571
 
572
+ _getApplyAutomaticallyOnVariant(VariantManagement: any, key: string): Boolean {
573
+ if (!VariantManagement || !key) {
574
+ return false;
575
+ }
576
+ const variants = VariantManagement.getVariants();
577
+ const currentVariant = variants.find(function (variant: any) {
578
+ return variant && variant.key === key;
579
+ });
580
+ return (currentVariant && currentVariant.executeOnSelect) || false;
581
+ }
582
+
608
583
  _shouldAutoTriggerSearch(oVM: any) {
609
584
  if (
610
585
  (this.getView().getViewData() as any).initialLoad === InitialLoadMode.Auto &&
@@ -644,44 +619,6 @@ class ListReportController extends PageController {
644
619
  }
645
620
 
646
621
  handlers = {
647
- onTabMultiModeChange(this: ListReportController, oEvent: any) {
648
- const sPreviousSelectedKey = oEvent && oEvent.mParameters ? oEvent.mParameters.previousKey : undefined;
649
- this._updateMultiModeSelectedControl();
650
-
651
- if (oEvent && oEvent.mParameters && sPreviousSelectedKey !== oEvent.mParameters.selectedKey) {
652
- const sSelectedKey = oEvent.mParameters.selectedKey;
653
- const oFilterBar = this._getFilterBarControl();
654
- const oMultiModeControl = this._getMultiModeControl();
655
- const oInternalModelContext = this.getView().getBindingContext("internal");
656
- if (oInternalModelContext) {
657
- if (oFilterBar && oInternalModelContext.getProperty("hasPendingFilters") !== true) {
658
- if (this._isCustomTab()) {
659
- const oFilterConditions = oFilterBar.getFilterConditions();
660
- this.onViewNeedsRefresh({
661
- filterConditions: oFilterConditions,
662
- currentTabId: sSelectedKey,
663
- refreshCause: "tabChanged"
664
- });
665
- }
666
- }
667
- }
668
- ControlPersonalizationWriteAPI.add({
669
- changes: [
670
- {
671
- changeSpecificData: {
672
- changeType: "selectIconTabBarFilter",
673
- content: {
674
- selectedKey: sSelectedKey,
675
- previousSelectedKey: sPreviousSelectedKey
676
- }
677
- },
678
- selectorElement: oMultiModeControl.content
679
- }
680
- ]
681
- });
682
- }
683
- this.getExtensionAPI().updateAppState();
684
- },
685
622
  onFiltersChanged(this: ListReportController, oEvent: any) {
686
623
  const oFilterBar = this._getFilterBarControl();
687
624
  if (oFilterBar) {
@@ -690,13 +627,13 @@ class ListReportController extends PageController {
690
627
  this.onPendingFilters();
691
628
  oInternalModelContext.setProperty("appliedFilters", oFilterBar.getAssignedFiltersText().filtersText);
692
629
  if (oEvent.getParameter("conditionsBased")) {
693
- this._getMultiModeControl()?.setFreezeContent(true);
694
630
  oInternalModelContext.setProperty("hasPendingFilters", true);
695
631
  }
696
632
  }
697
633
  },
698
634
  onVariantSelected(this: ListReportController, oEvent: any) {
699
635
  const oVM = oEvent.getSource();
636
+ const currentVariantKey = oEvent.getParameter("key");
700
637
  const oMultiModeControl = this._getMultiModeControl();
701
638
 
702
639
  oMultiModeControl?.invalidateContent();
@@ -706,7 +643,7 @@ class ListReportController extends PageController {
706
643
  if (this._shouldAutoTriggerSearch(oVM)) {
707
644
  // the app state will be updated via onSearch handler
708
645
  return this._getFilterBarControl().triggerSearch();
709
- } else {
646
+ } else if (!this._getApplyAutomaticallyOnVariant(oVM, currentVariantKey)) {
710
647
  this.getExtensionAPI().updateAppState();
711
648
  }
712
649
  }, 0);
@@ -724,25 +661,8 @@ class ListReportController extends PageController {
724
661
  const bHideDraft = FilterUtils.getEditStateIsHideDraft(oFilterBar.getConditions());
725
662
  oInternalModelContext.setProperty("hasPendingFilters", false);
726
663
  oInternalModelContext.setProperty("hideDraftInfo", bHideDraft);
727
- if (this._isMultiMode()) {
728
- const oMultiModeControl = this._getMultiModeControl();
729
- oMultiModeControl.setCountsOutDated(true);
730
- oMultiModeControl.setFreezeContent(false);
731
- if (!this._isCustomTab()) {
732
- oMultiModeControl.updateMultiTabNotApplicableFields(
733
- oFilterBar,
734
- oFilterBar.data("entityType"),
735
- this.oResourceBundle as ResourceBundle
736
- );
737
- } else {
738
- const oFilterConditions = oFilterBar.getFilterConditions();
739
- this.onViewNeedsRefresh({
740
- filterConditions: oFilterConditions,
741
- currentTabId: oMultiModeControl.content.getSelectedKey(),
742
- refreshCause: "search"
743
- });
744
- }
745
- } else {
664
+
665
+ if (!this._getMultiModeControl()) {
746
666
  this._updateALPNotApplicableFields(oInternalModelContext, oFilterBar);
747
667
  }
748
668
  if (oMdcChart) {
@@ -42,4 +42,4 @@ sap.ui.define(["sap/fe/core/helpers/StableIdHelper"], function (StableIdHelper)
42
42
  _exports.getDefaultPath = getDefaultPath;
43
43
  return _exports;
44
44
  }, false);
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxpc3RSZXBvcnRUZW1wbGF0aW5nLnRzIl0sIm5hbWVzIjpbImdldFZhcmlhbnRCYWNrUmVmZXJlbmNlIiwib1ZpZXdEYXRhIiwib0NvbnZlcnRlckNvbnRleHQiLCJ2YXJpYW50TWFuYWdlbWVudCIsImdlbmVyYXRlIiwiZmlsdGVyQmFySWQiLCJ1bmRlZmluZWQiLCJnZXREZWZhdWx0UGF0aCIsImFWaWV3cyIsImkiLCJsZW5ndGgiLCJkZWZhdWx0UGF0aCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLE1BQU1BLHVCQUF1QixHQUFHLFVBQVVDLFNBQVYsRUFBMEJDLGlCQUExQixFQUFrRDtBQUN4RixRQUFJRCxTQUFTLElBQUlBLFNBQVMsQ0FBQ0UsaUJBQVYsS0FBZ0MsTUFBakQsRUFBeUQ7QUFDeEQsYUFBTywyQkFBUDtBQUNBOztBQUNELFFBQUlGLFNBQVMsSUFBSUEsU0FBUyxDQUFDRSxpQkFBVixLQUFnQyxTQUFqRCxFQUE0RDtBQUMzRCxhQUFPQyxRQUFRLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUNHLFdBQW5CLEVBQWdDLG1CQUFoQyxDQUFELENBQWY7QUFDQTs7QUFDRCxXQUFPQyxTQUFQO0FBQ0EsR0FSTTs7OztBQVVBLE1BQU1DLGNBQWMsR0FBRyxVQUFVQyxNQUFWLEVBQXVCO0FBQ3BELFNBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0QsTUFBTSxDQUFDRSxNQUEzQixFQUFtQ0QsQ0FBQyxFQUFwQyxFQUF3QztBQUN2QyxVQUFJRCxNQUFNLENBQUNDLENBQUQsQ0FBTixDQUFVRSxXQUFkLEVBQTJCO0FBQzFCLGVBQU9ILE1BQU0sQ0FBQ0MsQ0FBRCxDQUFOLENBQVVFLFdBQWpCO0FBQ0E7QUFDRDtBQUNELEdBTk0iLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRlbXBsYXRlIEhlbHBlcnMgZm9yIHRoZSBMaXN0IFJlcG9ydFxuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuXG4vKipcbiAqIE1ldGhvZCByZXR1cm5zIGFuIFZhcmlhbnRCYWNrUmVmZXJlbmNlIGV4cHJlc3Npb24gYmFzZWQgb24gdmFyaWFudE1hbmFnZW1lbnQgYW5kIG9Db252ZXJ0ZXJDb250ZXh0IHZhbHVlLlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgZ2V0VmFyaWFudEJhY2tSZWZlcmVuY2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBvVmlld0RhdGEgT2JqZWN0IENvbnRhaW5pbmcgVmlldyBEYXRhXG4gKiBAcGFyYW0ge29iamVjdH0gb0NvbnZlcnRlckNvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgY29udmVydGVkIGNvbnRleHRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFZhcmlhbnRCYWNrUmVmZXJlbmNlID0gZnVuY3Rpb24gKG9WaWV3RGF0YTogYW55LCBvQ29udmVydGVyQ29udGV4dDogYW55KSB7XG5cdGlmIChvVmlld0RhdGEgJiYgb1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50ID09PSBcIlBhZ2VcIikge1xuXHRcdHJldHVybiBcImZlOjpQYWdlVmFyaWFudE1hbmFnZW1lbnRcIjtcblx0fVxuXHRpZiAob1ZpZXdEYXRhICYmIG9WaWV3RGF0YS52YXJpYW50TWFuYWdlbWVudCA9PT0gXCJDb250cm9sXCIpIHtcblx0XHRyZXR1cm4gZ2VuZXJhdGUoW29Db252ZXJ0ZXJDb250ZXh0LmZpbHRlckJhcklkLCBcIlZhcmlhbnRNYW5hZ2VtZW50XCJdKTtcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRQYXRoID0gZnVuY3Rpb24gKGFWaWV3czogYW55KSB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYVZpZXdzLmxlbmd0aDsgaSsrKSB7XG5cdFx0aWYgKGFWaWV3c1tpXS5kZWZhdWx0UGF0aCkge1xuXHRcdFx0cmV0dXJuIGFWaWV3c1tpXS5kZWZhdWx0UGF0aDtcblx0XHR9XG5cdH1cbn07XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRWYXJpYW50QmFja1JlZmVyZW5jZSIsIm9WaWV3RGF0YSIsIm9Db252ZXJ0ZXJDb250ZXh0IiwidmFyaWFudE1hbmFnZW1lbnQiLCJnZW5lcmF0ZSIsImZpbHRlckJhcklkIiwidW5kZWZpbmVkIiwiZ2V0RGVmYXVsdFBhdGgiLCJhVmlld3MiLCJpIiwibGVuZ3RoIiwiZGVmYXVsdFBhdGgiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkxpc3RSZXBvcnRUZW1wbGF0aW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRlbXBsYXRlIEhlbHBlcnMgZm9yIHRoZSBMaXN0IFJlcG9ydFxuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuXG4vKipcbiAqIE1ldGhvZCByZXR1cm5zIGFuIFZhcmlhbnRCYWNrUmVmZXJlbmNlIGV4cHJlc3Npb24gYmFzZWQgb24gdmFyaWFudE1hbmFnZW1lbnQgYW5kIG9Db252ZXJ0ZXJDb250ZXh0IHZhbHVlLlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgZ2V0VmFyaWFudEJhY2tSZWZlcmVuY2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBvVmlld0RhdGEgT2JqZWN0IENvbnRhaW5pbmcgVmlldyBEYXRhXG4gKiBAcGFyYW0ge29iamVjdH0gb0NvbnZlcnRlckNvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgY29udmVydGVkIGNvbnRleHRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFZhcmlhbnRCYWNrUmVmZXJlbmNlID0gZnVuY3Rpb24gKG9WaWV3RGF0YTogYW55LCBvQ29udmVydGVyQ29udGV4dDogYW55KSB7XG5cdGlmIChvVmlld0RhdGEgJiYgb1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50ID09PSBcIlBhZ2VcIikge1xuXHRcdHJldHVybiBcImZlOjpQYWdlVmFyaWFudE1hbmFnZW1lbnRcIjtcblx0fVxuXHRpZiAob1ZpZXdEYXRhICYmIG9WaWV3RGF0YS52YXJpYW50TWFuYWdlbWVudCA9PT0gXCJDb250cm9sXCIpIHtcblx0XHRyZXR1cm4gZ2VuZXJhdGUoW29Db252ZXJ0ZXJDb250ZXh0LmZpbHRlckJhcklkLCBcIlZhcmlhbnRNYW5hZ2VtZW50XCJdKTtcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRQYXRoID0gZnVuY3Rpb24gKGFWaWV3czogYW55KSB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYVZpZXdzLmxlbmd0aDsgaSsrKSB7XG5cdFx0aWYgKGFWaWV3c1tpXS5kZWZhdWx0UGF0aCkge1xuXHRcdFx0cmV0dXJuIGFWaWV3c1tpXS5kZWZhdWx0UGF0aDtcblx0XHR9XG5cdH1cbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7RUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFFTyxJQUFNQSx1QkFBdUIsR0FBRyxVQUFVQyxTQUFWLEVBQTBCQyxpQkFBMUIsRUFBa0Q7SUFDeEYsSUFBSUQsU0FBUyxJQUFJQSxTQUFTLENBQUNFLGlCQUFWLEtBQWdDLE1BQWpELEVBQXlEO01BQ3hELE9BQU8sMkJBQVA7SUFDQTs7SUFDRCxJQUFJRixTQUFTLElBQUlBLFNBQVMsQ0FBQ0UsaUJBQVYsS0FBZ0MsU0FBakQsRUFBNEQ7TUFDM0QsT0FBT0MsUUFBUSxDQUFDLENBQUNGLGlCQUFpQixDQUFDRyxXQUFuQixFQUFnQyxtQkFBaEMsQ0FBRCxDQUFmO0lBQ0E7O0lBQ0QsT0FBT0MsU0FBUDtFQUNBLENBUk07Ozs7RUFVQSxJQUFNQyxjQUFjLEdBQUcsVUFBVUMsTUFBVixFQUF1QjtJQUNwRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdELE1BQU0sQ0FBQ0UsTUFBM0IsRUFBbUNELENBQUMsRUFBcEMsRUFBd0M7TUFDdkMsSUFBSUQsTUFBTSxDQUFDQyxDQUFELENBQU4sQ0FBVUUsV0FBZCxFQUEyQjtRQUMxQixPQUFPSCxNQUFNLENBQUNDLENBQUQsQ0FBTixDQUFVRSxXQUFqQjtNQUNBO0lBQ0Q7RUFDRCxDQU5NIn0=