@sapui5/sap.fe.templates 1.110.0 → 1.111.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 (142) hide show
  1. package/package.json +2 -20
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/Component-dbg.js +21 -0
  4. package/src/sap/fe/templates/AnalyticalListPage/Component.js +3 -18
  5. package/src/sap/fe/templates/AnalyticalListPage/Component.js.map +1 -0
  6. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate-dbg.js +32 -0
  7. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +3 -29
  8. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js.map +1 -0
  9. package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
  10. package/src/sap/fe/templates/ListComponent-dbg.js +146 -0
  11. package/src/sap/fe/templates/ListComponent.js +3 -143
  12. package/src/sap/fe/templates/ListComponent.js.map +1 -0
  13. package/src/sap/fe/templates/ListReport/Component-dbg.js +77 -0
  14. package/src/sap/fe/templates/ListReport/Component.js +3 -74
  15. package/src/sap/fe/templates/ListReport/Component.js.map +1 -0
  16. package/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +147 -0
  17. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +3 -144
  18. package/src/sap/fe/templates/ListReport/ExtensionAPI.js.map +1 -0
  19. package/src/sap/fe/templates/ListReport/LRMessageStrip-dbg.js +191 -0
  20. package/src/sap/fe/templates/ListReport/LRMessageStrip.js +3 -193
  21. package/src/sap/fe/templates/ListReport/LRMessageStrip.js.map +1 -0
  22. package/src/sap/fe/templates/ListReport/ListReport.view.xml +1 -0
  23. package/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +799 -0
  24. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +3 -832
  25. package/src/sap/fe/templates/ListReport/ListReportController.controller.js.map +1 -0
  26. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +6 -24
  27. package/src/sap/fe/templates/ListReport/ListReportTemplating-dbg.js +40 -0
  28. package/src/sap/fe/templates/ListReport/ListReportTemplating.js +3 -37
  29. package/src/sap/fe/templates/ListReport/ListReportTemplating.js.map +1 -0
  30. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl-dbg.js +375 -0
  31. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +3 -378
  32. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js.map +1 -0
  33. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +10 -3
  34. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  35. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +53 -0
  36. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +3 -50
  37. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js.map +1 -0
  38. package/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +109 -0
  39. package/src/sap/fe/templates/ListReport/overrides/Share.js +3 -107
  40. package/src/sap/fe/templates/ListReport/overrides/Share.js.map +1 -0
  41. package/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +481 -0
  42. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +3 -428
  43. package/src/sap/fe/templates/ListReport/overrides/ViewState.js.map +1 -0
  44. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +164 -32
  45. package/src/sap/fe/templates/ListReport/view/fragments/CustomView.fragment.xml +0 -3
  46. package/src/sap/fe/templates/ListReport/view/fragments/MacroChart.fragment.xml +2 -0
  47. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode-dbg.fragment.js +123 -0
  48. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +29 -63
  49. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js.map +1 -0
  50. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +2 -2
  51. package/src/sap/fe/templates/ObjectPage/Component-dbg.js +150 -0
  52. package/src/sap/fe/templates/ObjectPage/Component.js +3 -148
  53. package/src/sap/fe/templates/ObjectPage/Component.js.map +1 -0
  54. package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition-dbg.js +57 -0
  55. package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition.js +3 -61
  56. package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition.js.map +1 -0
  57. package/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +222 -0
  58. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +3 -243
  59. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js.map +1 -0
  60. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +2 -2
  61. package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +1413 -0
  62. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +3 -1534
  63. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js.map +1 -0
  64. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +11 -14
  65. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating-dbg.js +851 -0
  66. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +3 -851
  67. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js.map +1 -0
  68. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +14 -4
  69. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton-dbg.js +147 -0
  70. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +3 -144
  71. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js.map +1 -0
  72. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.tsx +5 -6
  73. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +111 -0
  74. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +3 -108
  75. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js.map +1 -0
  76. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox-dbg.js +24 -0
  77. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +3 -21
  78. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js.map +1 -0
  79. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock-dbg.js +79 -0
  80. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +3 -76
  81. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js.map +1 -0
  82. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox-dbg.designtime.js +23 -0
  83. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +3 -20
  84. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js.map +1 -0
  85. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox-dbg.designtime.js +52 -0
  86. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +3 -49
  87. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js.map +1 -0
  88. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox-dbg.designtime.js +38 -0
  89. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +3 -35
  90. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js.map +1 -0
  91. package/src/sap/fe/templates/ObjectPage/flexibility/ScrollableHeaderContainer.flexibility-dbg.js +28 -0
  92. package/src/sap/fe/templates/ObjectPage/flexibility/ScrollableHeaderContainer.flexibility.js +3 -29
  93. package/src/sap/fe/templates/ObjectPage/flexibility/ScrollableHeaderContainer.flexibility.js.map +1 -0
  94. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility-dbg.js +19 -0
  95. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +3 -16
  96. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js.map +1 -0
  97. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility-dbg.js +15 -0
  98. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +3 -12
  99. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js.map +1 -0
  100. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
  101. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation-dbg.js +54 -0
  102. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +3 -51
  103. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js.map +1 -0
  104. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting-dbg.js +36 -0
  105. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +3 -33
  106. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js.map +1 -0
  107. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler-dbg.js +16 -0
  108. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +3 -13
  109. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js.map +1 -0
  110. package/src/sap/fe/templates/ObjectPage/overrides/Paginator-dbg.js +27 -0
  111. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +3 -24
  112. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js.map +1 -0
  113. package/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +276 -0
  114. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +3 -293
  115. package/src/sap/fe/templates/ObjectPage/overrides/Share.js.map +1 -0
  116. package/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +69 -0
  117. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +3 -63
  118. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js.map +1 -0
  119. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +3 -0
  120. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +2 -2
  121. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +1 -2
  122. package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +2 -0
  123. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +2 -2
  124. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +12 -1
  125. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +0 -2
  126. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +0 -2
  127. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +0 -2
  128. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionCustomSection.fragment.xml +2 -9
  129. package/src/sap/fe/templates/ObjectPage/view/fragments/SideContentCustomContainer.fragment.xml +1 -2
  130. package/src/sap/fe/templates/TableScroller-dbg.js +49 -0
  131. package/src/sap/fe/templates/TableScroller.js +3 -46
  132. package/src/sap/fe/templates/TableScroller.js.map +1 -0
  133. package/src/sap/fe/templates/designtime/library-preload.designtime.js +17 -0
  134. package/src/sap/fe/templates/designtime/library-preload.designtime.js.map +1 -0
  135. package/src/sap/fe/templates/library-dbg.js +66 -0
  136. package/src/sap/fe/templates/library-preload.js +236 -0
  137. package/src/sap/fe/templates/library-preload.js.map +1 -0
  138. package/src/sap/fe/templates/library.js +3 -56
  139. package/src/sap/fe/templates/library.js.map +1 -0
  140. package/src/sap/fe/templates/library.ts +4 -0
  141. package/src/sap/fe/templates/manifest.json +109 -0
  142. package/src/sap/fe/templates/messagebundle_fr.properties +1 -1
@@ -1,431 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/KeepAliveHelper", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/library", "sap/fe/core/templating/PropertyFormatters", "sap/fe/macros/DelegateUtil", "sap/fe/macros/filter/FilterUtils", "sap/fe/navigation/library", "sap/ui/Device", "sap/ui/fl/apply/api/ControlVariantApplyAPI", "sap/ui/mdc/enum/ConditionValidated", "sap/ui/mdc/p13n/StateUtil"], function (Log, CommonUtils, KeepAliveHelper, ModelHelper, CoreLibrary, PropertyFormatters, DelegateUtil, FilterUtils, NavLibrary, Device, ControlVariantApplyAPI, ConditionValidated, StateUtil) {
6
- "use strict";
7
-
8
- var system = Device.system;
9
- var NavType = NavLibrary.NavType,
10
- VariantManagementType = CoreLibrary.VariantManagement,
11
- TemplateContentView = CoreLibrary.TemplateContentView,
12
- InitialLoadMode = CoreLibrary.InitialLoadMode,
13
- CONDITION_PATH_TO_PROPERTY_PATH_REGEX = /\+|\*/g;
14
- var ViewStateOverride = {
15
- _bSearchTriggered: false,
16
- applyInitialStateOnly: function () {
17
- return true;
18
- },
19
- onBeforeStateApplied: function (aPromises) {
20
- var oView = this.getView(),
21
- oController = oView.getController(),
22
- oFilterBar = oController._getFilterBarControl(),
23
- aTables = oController._getControls("table");
24
- if (oFilterBar) {
25
- oFilterBar.setSuspendSelection(true);
26
- aPromises.push(oFilterBar.waitForInitialization());
27
- }
28
- aTables.forEach(function (oTable) {
29
- aPromises.push(oTable.initialized());
30
- });
31
- delete this._bSearchTriggered;
32
- },
33
- onAfterStateApplied: function () {
34
- var oController = this.getView().getController();
35
- var oFilterBar = oController._getFilterBarControl();
36
- if (oFilterBar) {
37
- oFilterBar.setSuspendSelection(false);
38
- } else if (oController._isFilterBarHidden()) {
39
- var oInternalModelContext = oController.getView().getBindingContext("internal");
40
- oInternalModelContext.setProperty("hasPendingFilters", false);
41
- if (oController._isMultiMode()) {
42
- oController._getMultiModeControl().setCountsOutDated(true);
43
- }
44
- }
45
- },
46
- adaptBindingRefreshControls: function (aControls) {
47
- var oView = this.getView(),
48
- oController = oView.getController(),
49
- aViewControls = oController._getControls(),
50
- aControlsToRefresh = KeepAliveHelper.getControlsForRefresh(oView, aViewControls);
51
- Array.prototype.push.apply(aControls, aControlsToRefresh);
52
- },
53
- adaptStateControls: function (aStateControls) {
54
- var oView = this.getView(),
55
- oController = oView.getController(),
56
- oViewData = oView.getViewData(),
57
- bControlVM = oViewData.variantManagement === VariantManagementType.Control;
58
- var oFilterBarVM = this._getFilterBarVM(oView);
59
- if (oFilterBarVM) {
60
- aStateControls.push(oFilterBarVM);
61
- }
62
- if (oController._isMultiMode()) {
63
- aStateControls.push(oController._getMultiModeControl());
64
- }
65
- oController._getControls("table").forEach(function (oTable) {
66
- var oQuickFilter = oTable.getQuickFilter();
67
- if (oQuickFilter) {
68
- aStateControls.push(oQuickFilter);
69
- }
70
- if (bControlVM) {
71
- aStateControls.push(oTable.getVariant());
72
- }
73
- aStateControls.push(oTable);
74
- });
75
- if (oController._getControls("Chart")) {
76
- oController._getControls("Chart").forEach(function (oChart) {
77
- aStateControls.push(oChart);
78
- });
79
- }
80
- if (oController._hasMultiVisualizations()) {
81
- aStateControls.push(oController._getSegmentedButton(TemplateContentView.Chart));
82
- aStateControls.push(oController._getSegmentedButton(TemplateContentView.Table));
83
- }
84
- var oFilterBar = oController._getFilterBarControl();
85
- if (oFilterBar) {
86
- aStateControls.push(oFilterBar);
87
- }
88
- aStateControls.push(oView.byId("fe::ListReport"));
89
- },
90
- retrieveAdditionalStates: function (mAdditionalStates) {
91
- var oView = this.getView(),
92
- oController = oView.getController(),
93
- bPendingFilter = oView.getBindingContext("internal").getProperty("hasPendingFilters");
94
- mAdditionalStates.dataLoaded = !bPendingFilter || !!this._bSearchTriggered;
95
- if (oController._hasMultiVisualizations()) {
96
- var sAlpContentView = oView.getBindingContext("internal").getProperty("alpContentView");
97
- mAdditionalStates.alpContentView = sAlpContentView;
98
- }
99
- delete this._bSearchTriggered;
100
- },
101
- applyAdditionalStates: function (oAdditionalStates) {
102
- var oView = this.getView(),
103
- oController = oView.getController(),
104
- oFilterBar = oController._getFilterBarControl();
105
- if (oAdditionalStates) {
106
- // explicit check for boolean values - 'undefined' should not alter the triggered search property
107
- if (oAdditionalStates.dataLoaded === false && oFilterBar) {
108
- // without this, the data is loaded on navigating back
109
- oFilterBar._bSearchTriggered = false;
110
- } else if (oAdditionalStates.dataLoaded === true) {
111
- if (oFilterBar) {
112
- oFilterBar.triggerSearch();
113
- }
114
- this._bSearchTriggered = true;
115
- }
116
- if (oController._hasMultiVisualizations()) {
117
- var oInternalModelContext = oView.getBindingContext("internal");
118
- if (!system.desktop && oAdditionalStates.alpContentView == TemplateContentView.Hybrid) {
119
- oAdditionalStates.alpContentView = TemplateContentView.Chart;
120
- }
121
- oInternalModelContext.getModel().setProperty("".concat(oInternalModelContext.getPath(), "/alpContentView"), oAdditionalStates.alpContentView);
122
- }
123
- }
124
- },
125
- _applyNavigationParametersToFilterbar: function (oNavigationParameter, aResults) {
126
- var _this = this;
127
- var oView = this.getView();
128
- var oController = oView.getController();
129
- var oAppComponent = oController.getAppComponent();
130
- var oComponentData = oAppComponent.getComponentData();
131
- var oStartupParameters = oComponentData && oComponentData.startupParameters || {};
132
- var oVariantPromise = this.handleVariantIdPassedViaURLParams(oStartupParameters);
133
- var bFilterVariantApplied;
134
- aResults.push(oVariantPromise.then(function (aVariants) {
135
- if (aVariants && aVariants.length > 0) {
136
- if (aVariants[0] === true || aVariants[1] === true) {
137
- bFilterVariantApplied = true;
138
- }
139
- }
140
- return _this._applySelectionVariant(oView, oNavigationParameter, bFilterVariantApplied);
141
- }).then(function () {
142
- var oDynamicPage = oController._getDynamicListReportControl();
143
- var bPreventInitialSearch = false;
144
- var oFilterBarVM = _this._getFilterBarVM(oView);
145
- var oFilterBarControl = oController._getFilterBarControl();
146
- if (oFilterBarControl) {
147
- if (oNavigationParameter.navigationType !== NavType.initial && oNavigationParameter.requiresStandardVariant || !oFilterBarVM && oView.getViewData().initialLoad === InitialLoadMode.Enabled || oController._shouldAutoTriggerSearch(oFilterBarVM)) {
148
- oFilterBarControl.triggerSearch();
149
- } else {
150
- bPreventInitialSearch = _this._preventInitialSearch(oFilterBarVM);
151
- }
152
- // reset the suspend selection on filter bar to allow loading of data when needed (was set on LR Init)
153
- oFilterBarControl.setSuspendSelection(false);
154
- _this._bSearchTriggered = !bPreventInitialSearch;
155
- oDynamicPage.setHeaderExpanded(system.desktop || bPreventInitialSearch);
156
- }
157
- }).catch(function () {
158
- Log.error("Variant ID cannot be applied");
159
- }));
160
- },
161
- handleVariantIdPassedViaURLParams: function (oUrlParams) {
162
- var aPageVariantId = oUrlParams["sap-ui-fe-variant-id"],
163
- aFilterBarVariantId = oUrlParams["sap-ui-fe-filterbar-variant-id"],
164
- aTableVariantId = oUrlParams["sap-ui-fe-table-variant-id"];
165
- var oVariant;
166
- if (aPageVariantId || aFilterBarVariantId || aTableVariantId) {
167
- oVariant = {
168
- sPageVariantId: aPageVariantId && aPageVariantId[0],
169
- sFilterBarVariantId: aFilterBarVariantId && aFilterBarVariantId[0],
170
- sTableVariantId: aTableVariantId && aTableVariantId[0]
171
- };
172
- }
173
- return this._handleControlVariantId(oVariant);
174
- },
175
- _handleControlVariantId: function (oVariantIDs) {
176
- var _this2 = this;
177
- var oVM;
178
- var oView = this.getView(),
179
- aPromises = [];
180
- var sVariantManagement = oView.getViewData().variantManagement;
181
- if (oVariantIDs && oVariantIDs.sPageVariantId && sVariantManagement === "Page") {
182
- oVM = oView.byId("fe::PageVariantManagement");
183
- oVM.getVariants().forEach(function (oVariant) {
184
- if (oVariant.key === oVariantIDs.sPageVariantId) {
185
- aPromises.push(_this2._applyControlVariant(oVM, oVariantIDs.sPageVariantId, true));
186
- }
187
- });
188
- } else if (oVariantIDs && sVariantManagement === "Control") {
189
- if (oVariantIDs.sFilterBarVariantId) {
190
- oVM = oView.getController()._getFilterBarVariantControl();
191
- if (oVM) {
192
- oVM.getVariants().forEach(function (oVariant) {
193
- if (oVariant.key === oVariantIDs.sFilterBarVariantId) {
194
- aPromises.push(_this2._applyControlVariant(oVM, oVariantIDs.sFilterBarVariantId, true));
195
- }
196
- });
197
- }
198
- }
199
- if (oVariantIDs.sTableVariantId) {
200
- var oController = oView.getController(),
201
- aTables = oController._getControls("table");
202
- aTables.forEach(function (oTable) {
203
- var oTableVariant = oTable.getVariant();
204
- if (oTable && oTableVariant) {
205
- oTableVariant.getVariants().forEach(function (oVariant) {
206
- if (oVariant.key === oVariantIDs.sTableVariantId) {
207
- aPromises.push(_this2._applyControlVariant(oTableVariant, oVariantIDs.sTableVariantId));
208
- }
209
- });
210
- }
211
- });
212
- }
213
- }
214
- return Promise.all(aPromises);
215
- },
216
- _applyControlVariant: function (oVariant, sVariantID, bFilterVariantApplied) {
217
- var sVariantReference = this._checkIfVariantIdIsAvailable(oVariant, sVariantID) ? sVariantID : oVariant.getStandardVariantKey();
218
- var oVM = ControlVariantApplyAPI.activateVariant({
219
- element: oVariant,
220
- variantReference: sVariantReference
221
- });
222
- return oVM.then(function () {
223
- return bFilterVariantApplied;
224
- });
225
- },
226
- /************************************* private helper *****************************************/
227
-
228
- _getFilterBarVM: function (oView) {
229
- var oViewData = oView.getViewData();
230
- switch (oViewData.variantManagement) {
231
- case VariantManagementType.Page:
232
- return oView.byId("fe::PageVariantManagement");
233
- case VariantManagementType.Control:
234
- return oView.getController()._getFilterBarVariantControl();
235
- case VariantManagementType.None:
236
- return null;
237
- default:
238
- throw new Error("unhandled variant setting: ".concat(oViewData.variantManagement));
239
- }
240
- },
241
- _preventInitialSearch: function (oVariantManagement) {
242
- if (!oVariantManagement) {
243
- return true;
244
- }
245
- var aVariants = oVariantManagement.getVariants();
246
- var oCurrentVariant = aVariants.find(function (oItem) {
247
- return oItem.key === oVariantManagement.getCurrentVariantKey();
248
- });
249
- return !oCurrentVariant.executeOnSelect;
250
- },
251
- _applySelectionVariant: function (oView, oNavigationParameter, bFilterVariantApplied) {
252
- var oFilterBar = oView.getController()._getFilterBarControl(),
253
- oSelectionVariant = oNavigationParameter.selectionVariant,
254
- oSelectionVariantDefaults = oNavigationParameter.selectionVariantDefaults;
255
- if (!oFilterBar || !oSelectionVariant) {
256
- return Promise.resolve();
257
- }
258
- var oConditions = {};
259
- var oMetaModel = oView.getModel().getMetaModel();
260
- var oViewData = oView.getViewData();
261
- var sContextPath = oViewData.contextPath || "/".concat(oViewData.entitySet);
262
- var aMandatoryFilterFields = CommonUtils.getMandatoryFilterFields(oMetaModel, sContextPath);
263
- var bUseSemanticDateRange = oFilterBar.data("useSemanticDateRange");
264
- var oVariant;
265
- switch (oViewData.variantManagement) {
266
- case VariantManagementType.Page:
267
- oVariant = oView.byId("fe::PageVariantManagement");
268
- break;
269
- case VariantManagementType.Control:
270
- oVariant = oView.getController()._getFilterBarVariantControl();
271
- break;
272
- case VariantManagementType.None:
273
- default:
274
- break;
275
- }
276
- var bRequiresStandardVariant = oNavigationParameter.requiresStandardVariant;
277
- // check if FLP default values are there and is it standard variant
278
- var bIsFLPValuePresent = oSelectionVariantDefaults && oSelectionVariantDefaults.getSelectOptionsPropertyNames().length > 0 && oVariant.getDefaultVariantKey() === oVariant.getStandardVariantKey() && oNavigationParameter.bNavSelVarHasDefaultsOnly;
279
-
280
- // get conditions when FLP value is present
281
- if (bFilterVariantApplied || bIsFLPValuePresent) {
282
- oConditions = oFilterBar.getConditions();
283
- }
284
- CommonUtils.addDefaultDisplayCurrency(aMandatoryFilterFields, oSelectionVariant, oSelectionVariantDefaults);
285
- CommonUtils.addSelectionVariantToConditions(oSelectionVariant, oConditions, oMetaModel, sContextPath, bIsFLPValuePresent, bUseSemanticDateRange, oViewData);
286
- return this._activateSelectionVariant(oFilterBar, oConditions, oVariant, bRequiresStandardVariant, bFilterVariantApplied, bIsFLPValuePresent);
287
- },
288
- _activateSelectionVariant: function (oFilterBar, oConditions, oVariant, bRequiresStandardVariant, bFilterVariantApplied, bIsFLPValuePresent) {
289
- var _this3 = this;
290
- var oPromise;
291
- if (oVariant && !bFilterVariantApplied) {
292
- var oVariantKey = bRequiresStandardVariant ? oVariant.getStandardVariantKey() : oVariant.getDefaultVariantKey();
293
- if (oVariantKey === null) {
294
- oVariantKey = oVariant.getId();
295
- }
296
- oPromise = ControlVariantApplyAPI.activateVariant({
297
- element: oVariant,
298
- variantReference: oVariantKey
299
- }).then(function () {
300
- return bRequiresStandardVariant || oVariant.getDefaultVariantKey() === oVariant.getStandardVariantKey();
301
- });
302
- } else {
303
- oPromise = Promise.resolve(true);
304
- }
305
- return oPromise.then(function (bClearFilterAndReplaceWithAppState) {
306
- if (bClearFilterAndReplaceWithAppState) {
307
- return _this3._fnApplyConditions(oFilterBar, oConditions, bIsFLPValuePresent);
308
- }
309
- });
310
- },
311
- /*
312
- * Sets filtered: false flag to every field so that it can be cleared out
313
- *
314
- * @param oFilterBar filterbar control is used to display filter properties in a user-friendly manner to populate values for a query
315
- * @returns promise which will be resolved to object
316
- * @private
317
- */
318
- _fnClearStateBeforexAppNav: function (oFilterBar) {
319
- try {
320
- return Promise.resolve(StateUtil.retrieveExternalState(oFilterBar).then(function (oExternalState) {
321
- var oCondition = oExternalState.filter;
322
- for (var field in oCondition) {
323
- if (field !== "$editState" && field !== "$search") {
324
- oCondition[field][0]["filtered"] = false;
325
- }
326
- }
327
- return Promise.resolve(oCondition);
328
- }).catch(function (oError) {
329
- Log.error("Error while retrieving the external state", oError);
330
- }));
331
- } catch (e) {
332
- return Promise.reject(e);
333
- }
334
- },
335
- _fnApplyConditions: function (oFilterBar, oConditions, bIsFLPValuePresent) {
336
- try {
337
- var _this5 = this;
338
- var mFilter = {},
339
- aItems = [],
340
- fnAdjustValueHelpCondition = function (oCondition) {
341
- // in case the condition is meant for a field having a VH, the format required by MDC differs
342
- oCondition.validated = ConditionValidated.Validated;
343
- if (oCondition.operator === "Empty") {
344
- oCondition.operator = "EQ";
345
- oCondition.values = [""];
346
- } else if (oCondition.operator === "NotEmpty") {
347
- oCondition.operator = "NE";
348
- oCondition.values = [""];
349
- }
350
- delete oCondition.isEmpty;
351
- };
352
- var fnGetPropertyInfo = function (oFilterControl, sEntityTypePath) {
353
- var sEntitySetPath = ModelHelper.getEntitySetPath(sEntityTypePath),
354
- oMetaModel = oFilterControl.getModel().getMetaModel(),
355
- oFR = CommonUtils.getFilterRestrictionsByPath(sEntitySetPath, oMetaModel),
356
- aNonFilterableProps = oFR.NonFilterableProperties,
357
- mFilterFields = FilterUtils.getConvertedFilterFields(oFilterControl, sEntityTypePath),
358
- aPropertyInfo = [];
359
- Object.keys(mFilterFields).forEach(function (sFilterFieldKey) {
360
- var oConvertedProperty = mFilterFields[sFilterFieldKey];
361
- var sPropertyPath = oConvertedProperty.conditionPath.replace(CONDITION_PATH_TO_PROPERTY_PATH_REGEX, "");
362
- if (aNonFilterableProps.indexOf(sPropertyPath) === -1) {
363
- var sAnnotationPath = oConvertedProperty.annotationPath;
364
- var oPropertyContext = oMetaModel.createBindingContext(sAnnotationPath);
365
- aPropertyInfo.push({
366
- path: oConvertedProperty.conditionPath,
367
- hiddenFilter: oConvertedProperty.availability === "Hidden",
368
- hasValueHelp: !sAnnotationPath ? false : PropertyFormatters.hasValueHelp(oPropertyContext.getObject(), {
369
- context: oPropertyContext
370
- })
371
- });
372
- }
373
- });
374
- return aPropertyInfo;
375
- };
376
- return Promise.resolve(oFilterBar.waitForInitialization().then(function () {
377
- try {
378
- function _temp3() {
379
- var aPropertyInfo = fnGetPropertyInfo(oFilterBar, sEntityTypePath);
380
- aPropertyInfo.filter(function (oPropertyInfo) {
381
- return oPropertyInfo.path !== "$editState" && oPropertyInfo.path !== "$search";
382
- }).forEach(function (oPropertyInfo) {
383
- if (oPropertyInfo.path in oConditions) {
384
- mFilter[oPropertyInfo.path] = oConditions[oPropertyInfo.path];
385
- if (!oPropertyInfo.hiddenFilter) {
386
- aItems.push({
387
- name: oPropertyInfo.path
388
- });
389
- }
390
- if (oPropertyInfo.hasValueHelp) {
391
- mFilter[oPropertyInfo.path].forEach(fnAdjustValueHelpCondition);
392
- } else {
393
- mFilter[oPropertyInfo.path].forEach(function (oCondition) {
394
- oCondition.validated = oCondition.filtered ? ConditionValidated.NotValidated : oCondition.validated;
395
- });
396
- }
397
- } else {
398
- mFilter[oPropertyInfo.path] = [];
399
- }
400
- });
401
- return StateUtil.applyExternalState(oFilterBar, {
402
- filter: mFilter,
403
- items: aItems
404
- });
405
- }
406
- var sEntityTypePath = DelegateUtil.getCustomData(oFilterBar, "entityType");
407
- // During external app navigation, we have to clear the existing conditions to avoid merging of values coming from annotation and context
408
- // Condition !bIsFLPValuePresent indicates it's external app navigation
409
- var _temp4 = function () {
410
- if (!bIsFLPValuePresent) {
411
- return Promise.resolve(_this5._fnClearStateBeforexAppNav(oFilterBar)).then(function (oClearConditions) {
412
- return Promise.resolve(StateUtil.applyExternalState(oFilterBar, {
413
- filter: oClearConditions,
414
- items: aItems
415
- })).then(function () {});
416
- });
417
- }
418
- }();
419
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
420
- } catch (e) {
421
- return Promise.reject(e);
422
- }
423
- }));
424
- } catch (e) {
425
- return Promise.reject(e);
426
- }
427
- }
428
- };
429
- return ViewStateOverride;
430
- }, false);
431
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwiTmF2TGlicmFyeSIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNvcmVMaWJyYXJ5IiwiVmFyaWFudE1hbmFnZW1lbnQiLCJUZW1wbGF0ZUNvbnRlbnRWaWV3IiwiSW5pdGlhbExvYWRNb2RlIiwiQ09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCIsIlZpZXdTdGF0ZU92ZXJyaWRlIiwiX2JTZWFyY2hUcmlnZ2VyZWQiLCJhcHBseUluaXRpYWxTdGF0ZU9ubHkiLCJvbkJlZm9yZVN0YXRlQXBwbGllZCIsImFQcm9taXNlcyIsIm9WaWV3IiwiZ2V0VmlldyIsIm9Db250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsIm9GaWx0ZXJCYXIiLCJfZ2V0RmlsdGVyQmFyQ29udHJvbCIsImFUYWJsZXMiLCJfZ2V0Q29udHJvbHMiLCJzZXRTdXNwZW5kU2VsZWN0aW9uIiwicHVzaCIsIndhaXRGb3JJbml0aWFsaXphdGlvbiIsImZvckVhY2giLCJvVGFibGUiLCJpbml0aWFsaXplZCIsIm9uQWZ0ZXJTdGF0ZUFwcGxpZWQiLCJfaXNGaWx0ZXJCYXJIaWRkZW4iLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsInNldFByb3BlcnR5IiwiX2lzTXVsdGlNb2RlIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJzZXRDb3VudHNPdXREYXRlZCIsImFkYXB0QmluZGluZ1JlZnJlc2hDb250cm9scyIsImFDb250cm9scyIsImFWaWV3Q29udHJvbHMiLCJhQ29udHJvbHNUb1JlZnJlc2giLCJLZWVwQWxpdmVIZWxwZXIiLCJnZXRDb250cm9sc0ZvclJlZnJlc2giLCJBcnJheSIsInByb3RvdHlwZSIsImFwcGx5IiwiYWRhcHRTdGF0ZUNvbnRyb2xzIiwiYVN0YXRlQ29udHJvbHMiLCJvVmlld0RhdGEiLCJnZXRWaWV3RGF0YSIsImJDb250cm9sVk0iLCJ2YXJpYW50TWFuYWdlbWVudCIsIkNvbnRyb2wiLCJvRmlsdGVyQmFyVk0iLCJfZ2V0RmlsdGVyQmFyVk0iLCJvUXVpY2tGaWx0ZXIiLCJnZXRRdWlja0ZpbHRlciIsImdldFZhcmlhbnQiLCJvQ2hhcnQiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9nZXRTZWdtZW50ZWRCdXR0b24iLCJDaGFydCIsIlRhYmxlIiwiYnlJZCIsInJldHJpZXZlQWRkaXRpb25hbFN0YXRlcyIsIm1BZGRpdGlvbmFsU3RhdGVzIiwiYlBlbmRpbmdGaWx0ZXIiLCJnZXRQcm9wZXJ0eSIsImRhdGFMb2FkZWQiLCJzQWxwQ29udGVudFZpZXciLCJhbHBDb250ZW50VmlldyIsImFwcGx5QWRkaXRpb25hbFN0YXRlcyIsIm9BZGRpdGlvbmFsU3RhdGVzIiwidHJpZ2dlclNlYXJjaCIsInN5c3RlbSIsImRlc2t0b3AiLCJIeWJyaWQiLCJnZXRNb2RlbCIsImdldFBhdGgiLCJfYXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVyc1RvRmlsdGVyYmFyIiwib05hdmlnYXRpb25QYXJhbWV0ZXIiLCJhUmVzdWx0cyIsIm9BcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJvQ29tcG9uZW50RGF0YSIsImdldENvbXBvbmVudERhdGEiLCJvU3RhcnR1cFBhcmFtZXRlcnMiLCJzdGFydHVwUGFyYW1ldGVycyIsIm9WYXJpYW50UHJvbWlzZSIsImhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyIsImJGaWx0ZXJWYXJpYW50QXBwbGllZCIsInRoZW4iLCJhVmFyaWFudHMiLCJsZW5ndGgiLCJfYXBwbHlTZWxlY3Rpb25WYXJpYW50Iiwib0R5bmFtaWNQYWdlIiwiX2dldER5bmFtaWNMaXN0UmVwb3J0Q29udHJvbCIsImJQcmV2ZW50SW5pdGlhbFNlYXJjaCIsIm9GaWx0ZXJCYXJDb250cm9sIiwibmF2aWdhdGlvblR5cGUiLCJpbml0aWFsIiwicmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJpbml0aWFsTG9hZCIsIkVuYWJsZWQiLCJfc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2giLCJfcHJldmVudEluaXRpYWxTZWFyY2giLCJzZXRIZWFkZXJFeHBhbmRlZCIsImNhdGNoIiwiTG9nIiwiZXJyb3IiLCJvVXJsUGFyYW1zIiwiYVBhZ2VWYXJpYW50SWQiLCJhRmlsdGVyQmFyVmFyaWFudElkIiwiYVRhYmxlVmFyaWFudElkIiwib1ZhcmlhbnQiLCJzUGFnZVZhcmlhbnRJZCIsInNGaWx0ZXJCYXJWYXJpYW50SWQiLCJzVGFibGVWYXJpYW50SWQiLCJfaGFuZGxlQ29udHJvbFZhcmlhbnRJZCIsIm9WYXJpYW50SURzIiwib1ZNIiwic1ZhcmlhbnRNYW5hZ2VtZW50IiwiZ2V0VmFyaWFudHMiLCJrZXkiLCJfYXBwbHlDb250cm9sVmFyaWFudCIsIl9nZXRGaWx0ZXJCYXJWYXJpYW50Q29udHJvbCIsIm9UYWJsZVZhcmlhbnQiLCJQcm9taXNlIiwiYWxsIiwic1ZhcmlhbnRJRCIsInNWYXJpYW50UmVmZXJlbmNlIiwiX2NoZWNrSWZWYXJpYW50SWRJc0F2YWlsYWJsZSIsImdldFN0YW5kYXJkVmFyaWFudEtleSIsIkNvbnRyb2xWYXJpYW50QXBwbHlBUEkiLCJhY3RpdmF0ZVZhcmlhbnQiLCJlbGVtZW50IiwidmFyaWFudFJlZmVyZW5jZSIsIlBhZ2UiLCJOb25lIiwiRXJyb3IiLCJvVmFyaWFudE1hbmFnZW1lbnQiLCJvQ3VycmVudFZhcmlhbnQiLCJmaW5kIiwib0l0ZW0iLCJnZXRDdXJyZW50VmFyaWFudEtleSIsImV4ZWN1dGVPblNlbGVjdCIsIm9TZWxlY3Rpb25WYXJpYW50Iiwic2VsZWN0aW9uVmFyaWFudCIsIm9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJyZXNvbHZlIiwib0NvbmRpdGlvbnMiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic0NvbnRleHRQYXRoIiwiY29udGV4dFBhdGgiLCJlbnRpdHlTZXQiLCJhTWFuZGF0b3J5RmlsdGVyRmllbGRzIiwiQ29tbW9uVXRpbHMiLCJnZXRNYW5kYXRvcnlGaWx0ZXJGaWVsZHMiLCJiVXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJkYXRhIiwiYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYklzRkxQVmFsdWVQcmVzZW50IiwiZ2V0U2VsZWN0T3B0aW9uc1Byb3BlcnR5TmFtZXMiLCJnZXREZWZhdWx0VmFyaWFudEtleSIsImJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHkiLCJnZXRDb25kaXRpb25zIiwiYWRkRGVmYXVsdERpc3BsYXlDdXJyZW5jeSIsImFkZFNlbGVjdGlvblZhcmlhbnRUb0NvbmRpdGlvbnMiLCJfYWN0aXZhdGVTZWxlY3Rpb25WYXJpYW50Iiwib1Byb21pc2UiLCJvVmFyaWFudEtleSIsImdldElkIiwiYkNsZWFyRmlsdGVyQW5kUmVwbGFjZVdpdGhBcHBTdGF0ZSIsIl9mbkFwcGx5Q29uZGl0aW9ucyIsIl9mbkNsZWFyU3RhdGVCZWZvcmV4QXBwTmF2IiwiU3RhdGVVdGlsIiwicmV0cmlldmVFeHRlcm5hbFN0YXRlIiwib0V4dGVybmFsU3RhdGUiLCJvQ29uZGl0aW9uIiwiZmlsdGVyIiwiZmllbGQiLCJvRXJyb3IiLCJtRmlsdGVyIiwiYUl0ZW1zIiwiZm5BZGp1c3RWYWx1ZUhlbHBDb25kaXRpb24iLCJ2YWxpZGF0ZWQiLCJDb25kaXRpb25WYWxpZGF0ZWQiLCJWYWxpZGF0ZWQiLCJvcGVyYXRvciIsInZhbHVlcyIsImlzRW1wdHkiLCJmbkdldFByb3BlcnR5SW5mbyIsIm9GaWx0ZXJDb250cm9sIiwic0VudGl0eVR5cGVQYXRoIiwic0VudGl0eVNldFBhdGgiLCJNb2RlbEhlbHBlciIsImdldEVudGl0eVNldFBhdGgiLCJvRlIiLCJnZXRGaWx0ZXJSZXN0cmljdGlvbnNCeVBhdGgiLCJhTm9uRmlsdGVyYWJsZVByb3BzIiwiTm9uRmlsdGVyYWJsZVByb3BlcnRpZXMiLCJtRmlsdGVyRmllbGRzIiwiRmlsdGVyVXRpbHMiLCJnZXRDb252ZXJ0ZWRGaWx0ZXJGaWVsZHMiLCJhUHJvcGVydHlJbmZvIiwiT2JqZWN0Iiwia2V5cyIsInNGaWx0ZXJGaWVsZEtleSIsIm9Db252ZXJ0ZWRQcm9wZXJ0eSIsInNQcm9wZXJ0eVBhdGgiLCJjb25kaXRpb25QYXRoIiwicmVwbGFjZSIsImluZGV4T2YiLCJzQW5ub3RhdGlvblBhdGgiLCJhbm5vdGF0aW9uUGF0aCIsIm9Qcm9wZXJ0eUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInBhdGgiLCJoaWRkZW5GaWx0ZXIiLCJhdmFpbGFiaWxpdHkiLCJoYXNWYWx1ZUhlbHAiLCJQcm9wZXJ0eUZvcm1hdHRlcnMiLCJnZXRPYmplY3QiLCJjb250ZXh0Iiwib1Byb3BlcnR5SW5mbyIsIm5hbWUiLCJmaWx0ZXJlZCIsIk5vdFZhbGlkYXRlZCIsImFwcGx5RXh0ZXJuYWxTdGF0ZSIsIml0ZW1zIiwiRGVsZWdhdGVVdGlsIiwiZ2V0Q3VzdG9tRGF0YSIsIm9DbGVhckNvbmRpdGlvbnMiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlZpZXdTdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIFZpZXdTdGF0ZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvVmlld1N0YXRlXCI7XG5pbXBvcnQgS2VlcEFsaXZlSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0tlZXBBbGl2ZUhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBDb3JlTGlicmFyeSBmcm9tIFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0ICogYXMgUHJvcGVydHlGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5Rm9ybWF0dGVyc1wiO1xuaW1wb3J0IERlbGVnYXRlVXRpbCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBOYXZMaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IHN5c3RlbSB9IGZyb20gXCJzYXAvdWkvRGV2aWNlXCI7XG5pbXBvcnQgQ29udHJvbFZhcmlhbnRBcHBseUFQSSBmcm9tIFwic2FwL3VpL2ZsL2FwcGx5L2FwaS9Db250cm9sVmFyaWFudEFwcGx5QVBJXCI7XG5pbXBvcnQgdHlwZSBWYXJpYW50TWFuYWdlbWVudCBmcm9tIFwic2FwL3VpL2ZsL3ZhcmlhbnRzL1ZhcmlhbnRNYW5hZ2VtZW50XCI7XG5pbXBvcnQgQ29uZGl0aW9uVmFsaWRhdGVkIGZyb20gXCJzYXAvdWkvbWRjL2VudW0vQ29uZGl0aW9uVmFsaWRhdGVkXCI7XG5pbXBvcnQgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IFN0YXRlVXRpbCBmcm9tIFwic2FwL3VpL21kYy9wMTNuL1N0YXRlVXRpbFwiO1xuXG5jb25zdCBOYXZUeXBlID0gTmF2TGlicmFyeS5OYXZUeXBlLFxuXHRWYXJpYW50TWFuYWdlbWVudFR5cGUgPSBDb3JlTGlicmFyeS5WYXJpYW50TWFuYWdlbWVudCxcblx0VGVtcGxhdGVDb250ZW50VmlldyA9IENvcmVMaWJyYXJ5LlRlbXBsYXRlQ29udGVudFZpZXcsXG5cdEluaXRpYWxMb2FkTW9kZSA9IENvcmVMaWJyYXJ5LkluaXRpYWxMb2FkTW9kZSxcblx0Q09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCA9IC9cXCt8XFwqL2c7XG5cbmNvbnN0IFZpZXdTdGF0ZU92ZXJyaWRlOiBhbnkgPSB7XG5cdF9iU2VhcmNoVHJpZ2dlcmVkOiBmYWxzZSxcblx0YXBwbHlJbml0aWFsU3RhdGVPbmx5OiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG5cdG9uQmVmb3JlU3RhdGVBcHBsaWVkOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBhUHJvbWlzZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpLFxuXHRcdFx0YVRhYmxlcyA9IG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcInRhYmxlXCIpO1xuXHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRvRmlsdGVyQmFyLnNldFN1c3BlbmRTZWxlY3Rpb24odHJ1ZSk7XG5cdFx0XHRhUHJvbWlzZXMucHVzaCgob0ZpbHRlckJhciBhcyBhbnkpLndhaXRGb3JJbml0aWFsaXphdGlvbigpKTtcblx0XHR9XG5cdFx0YVRhYmxlcy5mb3JFYWNoKGZ1bmN0aW9uIChvVGFibGU6IGFueSkge1xuXHRcdFx0YVByb21pc2VzLnB1c2gob1RhYmxlLmluaXRpYWxpemVkKCkpO1xuXHRcdH0pO1xuXG5cdFx0ZGVsZXRlIHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQ7XG5cdH0sXG5cdG9uQWZ0ZXJTdGF0ZUFwcGxpZWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUpIHtcblx0XHRjb25zdCBvQ29udHJvbGxlciA9IHRoaXMuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcjtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0XHRpZiAob0ZpbHRlckJhcikge1xuXHRcdFx0b0ZpbHRlckJhci5zZXRTdXNwZW5kU2VsZWN0aW9uKGZhbHNlKTtcblx0XHR9IGVsc2UgaWYgKG9Db250cm9sbGVyLl9pc0ZpbHRlckJhckhpZGRlbigpKSB7XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImhhc1BlbmRpbmdGaWx0ZXJzXCIsIGZhbHNlKTtcblx0XHRcdGlmIChvQ29udHJvbGxlci5faXNNdWx0aU1vZGUoKSkge1xuXHRcdFx0XHRvQ29udHJvbGxlci5fZ2V0TXVsdGlNb2RlQ29udHJvbCgpLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0YWRhcHRCaW5kaW5nUmVmcmVzaENvbnRyb2xzOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlLCBhQ29udHJvbHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdGFWaWV3Q29udHJvbHMgPSBvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoKSxcblx0XHRcdGFDb250cm9sc1RvUmVmcmVzaCA9IEtlZXBBbGl2ZUhlbHBlci5nZXRDb250cm9sc0ZvclJlZnJlc2gob1ZpZXcsIGFWaWV3Q29udHJvbHMpO1xuXG5cdFx0QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYUNvbnRyb2xzLCBhQ29udHJvbHNUb1JlZnJlc2gpO1xuXHR9LFxuXHRhZGFwdFN0YXRlQ29udHJvbHM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIGFTdGF0ZUNvbnRyb2xzOiBhbnkpIHtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIsXG5cdFx0XHRvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpLFxuXHRcdFx0YkNvbnRyb2xWTSA9IG9WaWV3RGF0YS52YXJpYW50TWFuYWdlbWVudCA9PT0gVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2w7XG5cblx0XHRjb25zdCBvRmlsdGVyQmFyVk0gPSB0aGlzLl9nZXRGaWx0ZXJCYXJWTShvVmlldyk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJWTSkge1xuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvRmlsdGVyQmFyVk0pO1xuXHRcdH1cblx0XHRpZiAob0NvbnRyb2xsZXIuX2lzTXVsdGlNb2RlKCkpIHtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NvbnRyb2xsZXIuX2dldE11bHRpTW9kZUNvbnRyb2woKSk7XG5cdFx0fVxuXHRcdG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcInRhYmxlXCIpLmZvckVhY2goZnVuY3Rpb24gKG9UYWJsZTogYW55KSB7XG5cdFx0XHRjb25zdCBvUXVpY2tGaWx0ZXIgPSBvVGFibGUuZ2V0UXVpY2tGaWx0ZXIoKTtcblx0XHRcdGlmIChvUXVpY2tGaWx0ZXIpIHtcblx0XHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvUXVpY2tGaWx0ZXIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGJDb250cm9sVk0pIHtcblx0XHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvVGFibGUuZ2V0VmFyaWFudCgpKTtcblx0XHRcdH1cblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1RhYmxlKTtcblx0XHR9KTtcblx0XHRpZiAob0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKFwiQ2hhcnRcIikpIHtcblx0XHRcdG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcIkNoYXJ0XCIpLmZvckVhY2goZnVuY3Rpb24gKG9DaGFydDogYW55KSB7XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NoYXJ0KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvQ29udHJvbGxlci5fZ2V0U2VnbWVudGVkQnV0dG9uKFRlbXBsYXRlQ29udGVudFZpZXcuQ2hhcnQpKTtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NvbnRyb2xsZXIuX2dldFNlZ21lbnRlZEJ1dHRvbihUZW1wbGF0ZUNvbnRlbnRWaWV3LlRhYmxlKSk7XG5cdFx0fVxuXHRcdGNvbnN0IG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9GaWx0ZXJCYXIpO1xuXHRcdH1cblx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9WaWV3LmJ5SWQoXCJmZTo6TGlzdFJlcG9ydFwiKSk7XG5cdH0sXG5cdHJldHJpZXZlQWRkaXRpb25hbFN0YXRlczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgbUFkZGl0aW9uYWxTdGF0ZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdGJQZW5kaW5nRmlsdGVyID0gKG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpLmdldFByb3BlcnR5KFwiaGFzUGVuZGluZ0ZpbHRlcnNcIik7XG5cblx0XHRtQWRkaXRpb25hbFN0YXRlcy5kYXRhTG9hZGVkID0gIWJQZW5kaW5nRmlsdGVyIHx8ICEhdGhpcy5fYlNlYXJjaFRyaWdnZXJlZDtcblx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0Y29uc3Qgc0FscENvbnRlbnRWaWV3ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKS5nZXRQcm9wZXJ0eShcImFscENvbnRlbnRWaWV3XCIpO1xuXHRcdFx0bUFkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcgPSBzQWxwQ29udGVudFZpZXc7XG5cdFx0fVxuXG5cdFx0ZGVsZXRlIHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQ7XG5cdH0sXG5cdGFwcGx5QWRkaXRpb25hbFN0YXRlczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgb0FkZGl0aW9uYWxTdGF0ZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXG5cdFx0aWYgKG9BZGRpdGlvbmFsU3RhdGVzKSB7XG5cdFx0XHQvLyBleHBsaWNpdCBjaGVjayBmb3IgYm9vbGVhbiB2YWx1ZXMgLSAndW5kZWZpbmVkJyBzaG91bGQgbm90IGFsdGVyIHRoZSB0cmlnZ2VyZWQgc2VhcmNoIHByb3BlcnR5XG5cdFx0XHRpZiAob0FkZGl0aW9uYWxTdGF0ZXMuZGF0YUxvYWRlZCA9PT0gZmFsc2UgJiYgb0ZpbHRlckJhcikge1xuXHRcdFx0XHQvLyB3aXRob3V0IHRoaXMsIHRoZSBkYXRhIGlzIGxvYWRlZCBvbiBuYXZpZ2F0aW5nIGJhY2tcblx0XHRcdFx0KG9GaWx0ZXJCYXIgYXMgYW55KS5fYlNlYXJjaFRyaWdnZXJlZCA9IGZhbHNlO1xuXHRcdFx0fSBlbHNlIGlmIChvQWRkaXRpb25hbFN0YXRlcy5kYXRhTG9hZGVkID09PSB0cnVlKSB7XG5cdFx0XHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRcdFx0b0ZpbHRlckJhci50cmlnZ2VyU2VhcmNoKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5fYlNlYXJjaFRyaWdnZXJlZCA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0XHRpZiAoIXN5c3RlbS5kZXNrdG9wICYmIG9BZGRpdGlvbmFsU3RhdGVzLmFscENvbnRlbnRWaWV3ID09IFRlbXBsYXRlQ29udGVudFZpZXcuSHlicmlkKSB7XG5cdFx0XHRcdFx0b0FkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcgPSBUZW1wbGF0ZUNvbnRlbnRWaWV3LkNoYXJ0O1xuXHRcdFx0XHR9XG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dFxuXHRcdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdFx0LnNldFByb3BlcnR5KGAke29JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQYXRoKCl9L2FscENvbnRlbnRWaWV3YCwgb0FkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0X2FwcGx5TmF2aWdhdGlvblBhcmFtZXRlcnNUb0ZpbHRlcmJhcjogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgb05hdmlnYXRpb25QYXJhbWV0ZXI6IGFueSwgYVJlc3VsdHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCk7XG5cdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IG9Db250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGNvbnN0IG9Db21wb25lbnREYXRhID0gb0FwcENvbXBvbmVudC5nZXRDb21wb25lbnREYXRhKCk7XG5cdFx0Y29uc3Qgb1N0YXJ0dXBQYXJhbWV0ZXJzID0gKG9Db21wb25lbnREYXRhICYmIG9Db21wb25lbnREYXRhLnN0YXJ0dXBQYXJhbWV0ZXJzKSB8fCB7fTtcblx0XHRjb25zdCBvVmFyaWFudFByb21pc2UgPSB0aGlzLmhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyhvU3RhcnR1cFBhcmFtZXRlcnMpO1xuXHRcdGxldCBiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGJvb2xlYW47XG5cdFx0YVJlc3VsdHMucHVzaChcblx0XHRcdG9WYXJpYW50UHJvbWlzZVxuXHRcdFx0XHQudGhlbigoYVZhcmlhbnRzOiBhbnlbXSkgPT4ge1xuXHRcdFx0XHRcdGlmIChhVmFyaWFudHMgJiYgYVZhcmlhbnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGlmIChhVmFyaWFudHNbMF0gPT09IHRydWUgfHwgYVZhcmlhbnRzWzFdID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRcdGJGaWx0ZXJWYXJpYW50QXBwbGllZCA9IHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzLl9hcHBseVNlbGVjdGlvblZhcmlhbnQob1ZpZXcsIG9OYXZpZ2F0aW9uUGFyYW1ldGVyLCBiRmlsdGVyVmFyaWFudEFwcGxpZWQpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qgb0R5bmFtaWNQYWdlID0gb0NvbnRyb2xsZXIuX2dldER5bmFtaWNMaXN0UmVwb3J0Q29udHJvbCgpO1xuXHRcdFx0XHRcdGxldCBiUHJldmVudEluaXRpYWxTZWFyY2ggPSBmYWxzZTtcblx0XHRcdFx0XHRjb25zdCBvRmlsdGVyQmFyVk0gPSB0aGlzLl9nZXRGaWx0ZXJCYXJWTShvVmlldyk7XG5cdFx0XHRcdFx0Y29uc3Qgb0ZpbHRlckJhckNvbnRyb2wgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdFx0XHRcdGlmIChvRmlsdGVyQmFyQ29udHJvbCkge1xuXHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHQob05hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUgIT09IE5hdlR5cGUuaW5pdGlhbCAmJiBvTmF2aWdhdGlvblBhcmFtZXRlci5yZXF1aXJlc1N0YW5kYXJkVmFyaWFudCkgfHxcblx0XHRcdFx0XHRcdFx0KCFvRmlsdGVyQmFyVk0gJiYgb1ZpZXcuZ2V0Vmlld0RhdGEoKS5pbml0aWFsTG9hZCA9PT0gSW5pdGlhbExvYWRNb2RlLkVuYWJsZWQpIHx8XG5cdFx0XHRcdFx0XHRcdG9Db250cm9sbGVyLl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaChvRmlsdGVyQmFyVk0pXG5cdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0b0ZpbHRlckJhckNvbnRyb2wudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0YlByZXZlbnRJbml0aWFsU2VhcmNoID0gdGhpcy5fcHJldmVudEluaXRpYWxTZWFyY2gob0ZpbHRlckJhclZNKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIHJlc2V0IHRoZSBzdXNwZW5kIHNlbGVjdGlvbiBvbiBmaWx0ZXIgYmFyIHRvIGFsbG93IGxvYWRpbmcgb2YgZGF0YSB3aGVuIG5lZWRlZCAod2FzIHNldCBvbiBMUiBJbml0KVxuXHRcdFx0XHRcdFx0b0ZpbHRlckJhckNvbnRyb2wuc2V0U3VzcGVuZFNlbGVjdGlvbihmYWxzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9iU2VhcmNoVHJpZ2dlcmVkID0gIWJQcmV2ZW50SW5pdGlhbFNlYXJjaDtcblx0XHRcdFx0XHRcdG9EeW5hbWljUGFnZS5zZXRIZWFkZXJFeHBhbmRlZChzeXN0ZW0uZGVza3RvcCB8fCBiUHJldmVudEluaXRpYWxTZWFyY2gpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoXCJWYXJpYW50IElEIGNhbm5vdCBiZSBhcHBsaWVkXCIpO1xuXHRcdFx0XHR9KVxuXHRcdCk7XG5cdH0sXG5cblx0aGFuZGxlVmFyaWFudElkUGFzc2VkVmlhVVJMUGFyYW1zOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBvVXJsUGFyYW1zOiBhbnkpIHtcblx0XHRjb25zdCBhUGFnZVZhcmlhbnRJZCA9IG9VcmxQYXJhbXNbXCJzYXAtdWktZmUtdmFyaWFudC1pZFwiXSxcblx0XHRcdGFGaWx0ZXJCYXJWYXJpYW50SWQgPSBvVXJsUGFyYW1zW1wic2FwLXVpLWZlLWZpbHRlcmJhci12YXJpYW50LWlkXCJdLFxuXHRcdFx0YVRhYmxlVmFyaWFudElkID0gb1VybFBhcmFtc1tcInNhcC11aS1mZS10YWJsZS12YXJpYW50LWlkXCJdO1xuXHRcdGxldCBvVmFyaWFudDtcblx0XHRpZiAoYVBhZ2VWYXJpYW50SWQgfHwgYUZpbHRlckJhclZhcmlhbnRJZCB8fCBhVGFibGVWYXJpYW50SWQpIHtcblx0XHRcdG9WYXJpYW50ID0ge1xuXHRcdFx0XHRzUGFnZVZhcmlhbnRJZDogYVBhZ2VWYXJpYW50SWQgJiYgYVBhZ2VWYXJpYW50SWRbMF0sXG5cdFx0XHRcdHNGaWx0ZXJCYXJWYXJpYW50SWQ6IGFGaWx0ZXJCYXJWYXJpYW50SWQgJiYgYUZpbHRlckJhclZhcmlhbnRJZFswXSxcblx0XHRcdFx0c1RhYmxlVmFyaWFudElkOiBhVGFibGVWYXJpYW50SWQgJiYgYVRhYmxlVmFyaWFudElkWzBdXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5faGFuZGxlQ29udHJvbFZhcmlhbnRJZChvVmFyaWFudCk7XG5cdH0sXG5cblx0X2hhbmRsZUNvbnRyb2xWYXJpYW50SWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIG9WYXJpYW50SURzOiBhbnkpIHtcblx0XHRsZXQgb1ZNOiBWYXJpYW50TWFuYWdlbWVudDtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0YVByb21pc2VzOiBhbnlbXSA9IFtdO1xuXHRcdGNvbnN0IHNWYXJpYW50TWFuYWdlbWVudCA9IG9WaWV3LmdldFZpZXdEYXRhKCkudmFyaWFudE1hbmFnZW1lbnQ7XG5cdFx0aWYgKG9WYXJpYW50SURzICYmIG9WYXJpYW50SURzLnNQYWdlVmFyaWFudElkICYmIHNWYXJpYW50TWFuYWdlbWVudCA9PT0gXCJQYWdlXCIpIHtcblx0XHRcdG9WTSA9IG9WaWV3LmJ5SWQoXCJmZTo6UGFnZVZhcmlhbnRNYW5hZ2VtZW50XCIpO1xuXHRcdFx0b1ZNLmdldFZhcmlhbnRzKCkuZm9yRWFjaCgob1ZhcmlhbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAob1ZhcmlhbnQua2V5ID09PSBvVmFyaWFudElEcy5zUGFnZVZhcmlhbnRJZCkge1xuXHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKHRoaXMuX2FwcGx5Q29udHJvbFZhcmlhbnQob1ZNLCBvVmFyaWFudElEcy5zUGFnZVZhcmlhbnRJZCwgdHJ1ZSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKG9WYXJpYW50SURzICYmIHNWYXJpYW50TWFuYWdlbWVudCA9PT0gXCJDb250cm9sXCIpIHtcblx0XHRcdGlmIChvVmFyaWFudElEcy5zRmlsdGVyQmFyVmFyaWFudElkKSB7XG5cdFx0XHRcdG9WTSA9IG9WaWV3LmdldENvbnRyb2xsZXIoKS5fZ2V0RmlsdGVyQmFyVmFyaWFudENvbnRyb2woKTtcblx0XHRcdFx0aWYgKG9WTSkge1xuXHRcdFx0XHRcdG9WTS5nZXRWYXJpYW50cygpLmZvckVhY2goKG9WYXJpYW50OiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdGlmIChvVmFyaWFudC5rZXkgPT09IG9WYXJpYW50SURzLnNGaWx0ZXJCYXJWYXJpYW50SWQpIHtcblx0XHRcdFx0XHRcdFx0YVByb21pc2VzLnB1c2godGhpcy5fYXBwbHlDb250cm9sVmFyaWFudChvVk0sIG9WYXJpYW50SURzLnNGaWx0ZXJCYXJWYXJpYW50SWQsIHRydWUpKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKG9WYXJpYW50SURzLnNUYWJsZVZhcmlhbnRJZCkge1xuXHRcdFx0XHRjb25zdCBvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSxcblx0XHRcdFx0XHRhVGFibGVzID0gb0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKFwidGFibGVcIik7XG5cdFx0XHRcdGFUYWJsZXMuZm9yRWFjaCgob1RhYmxlOiBhbnkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBvVGFibGVWYXJpYW50ID0gb1RhYmxlLmdldFZhcmlhbnQoKTtcblx0XHRcdFx0XHRpZiAob1RhYmxlICYmIG9UYWJsZVZhcmlhbnQpIHtcblx0XHRcdFx0XHRcdG9UYWJsZVZhcmlhbnQuZ2V0VmFyaWFudHMoKS5mb3JFYWNoKChvVmFyaWFudDogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChvVmFyaWFudC5rZXkgPT09IG9WYXJpYW50SURzLnNUYWJsZVZhcmlhbnRJZCkge1xuXHRcdFx0XHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKHRoaXMuX2FwcGx5Q29udHJvbFZhcmlhbnQob1RhYmxlVmFyaWFudCwgb1ZhcmlhbnRJRHMuc1RhYmxlVmFyaWFudElkKSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLmFsbChhUHJvbWlzZXMpO1xuXHR9LFxuXG5cdF9hcHBseUNvbnRyb2xWYXJpYW50OiBmdW5jdGlvbiAob1ZhcmlhbnQ6IGFueSwgc1ZhcmlhbnRJRDogYW55LCBiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGFueSkge1xuXHRcdGNvbnN0IHNWYXJpYW50UmVmZXJlbmNlID0gdGhpcy5fY2hlY2tJZlZhcmlhbnRJZElzQXZhaWxhYmxlKG9WYXJpYW50LCBzVmFyaWFudElEKSA/IHNWYXJpYW50SUQgOiBvVmFyaWFudC5nZXRTdGFuZGFyZFZhcmlhbnRLZXkoKTtcblx0XHRjb25zdCBvVk0gPSBDb250cm9sVmFyaWFudEFwcGx5QVBJLmFjdGl2YXRlVmFyaWFudCh7XG5cdFx0XHRlbGVtZW50OiBvVmFyaWFudCxcblx0XHRcdHZhcmlhbnRSZWZlcmVuY2U6IHNWYXJpYW50UmVmZXJlbmNlXG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9WTS50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBiRmlsdGVyVmFyaWFudEFwcGxpZWQ7XG5cdFx0fSk7XG5cdH0sXG5cdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIHByaXZhdGUgaGVscGVyICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdF9nZXRGaWx0ZXJCYXJWTTogZnVuY3Rpb24gKG9WaWV3OiBhbnkpIHtcblx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpO1xuXHRcdHN3aXRjaCAob1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50KSB7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5QYWdlOlxuXHRcdFx0XHRyZXR1cm4gb1ZpZXcuYnlJZChcImZlOjpQYWdlVmFyaWFudE1hbmFnZW1lbnRcIik7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Db250cm9sOlxuXHRcdFx0XHRyZXR1cm4gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLl9nZXRGaWx0ZXJCYXJWYXJpYW50Q29udHJvbCgpO1xuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudFR5cGUuTm9uZTpcblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHVuaGFuZGxlZCB2YXJpYW50IHNldHRpbmc6ICR7b1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50fWApO1xuXHRcdH1cblx0fSxcblxuXHRfcHJldmVudEluaXRpYWxTZWFyY2g6IGZ1bmN0aW9uIChvVmFyaWFudE1hbmFnZW1lbnQ6IGFueSkge1xuXHRcdGlmICghb1ZhcmlhbnRNYW5hZ2VtZW50KSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0Y29uc3QgYVZhcmlhbnRzID0gb1ZhcmlhbnRNYW5hZ2VtZW50LmdldFZhcmlhbnRzKCk7XG5cdFx0Y29uc3Qgb0N1cnJlbnRWYXJpYW50ID0gYVZhcmlhbnRzLmZpbmQoZnVuY3Rpb24gKG9JdGVtOiBhbnkpIHtcblx0XHRcdHJldHVybiBvSXRlbS5rZXkgPT09IG9WYXJpYW50TWFuYWdlbWVudC5nZXRDdXJyZW50VmFyaWFudEtleSgpO1xuXHRcdH0pO1xuXHRcdHJldHVybiAhb0N1cnJlbnRWYXJpYW50LmV4ZWN1dGVPblNlbGVjdDtcblx0fSxcblxuXHRfYXBwbHlTZWxlY3Rpb25WYXJpYW50OiBmdW5jdGlvbiAob1ZpZXc6IGFueSwgb05hdmlnYXRpb25QYXJhbWV0ZXI6IGFueSwgYkZpbHRlclZhcmlhbnRBcHBsaWVkOiBhbnkpIHtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLl9nZXRGaWx0ZXJCYXJDb250cm9sKCksXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IG9OYXZpZ2F0aW9uUGFyYW1ldGVyLnNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudERlZmF1bHRzID0gb05hdmlnYXRpb25QYXJhbWV0ZXIuc2VsZWN0aW9uVmFyaWFudERlZmF1bHRzO1xuXHRcdGlmICghb0ZpbHRlckJhciB8fCAhb1NlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0bGV0IG9Db25kaXRpb25zID0ge307XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9WaWV3LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Y29uc3Qgb1ZpZXdEYXRhID0gb1ZpZXcuZ2V0Vmlld0RhdGEoKTtcblx0XHRjb25zdCBzQ29udGV4dFBhdGggPSBvVmlld0RhdGEuY29udGV4dFBhdGggfHwgYC8ke29WaWV3RGF0YS5lbnRpdHlTZXR9YDtcblx0XHRjb25zdCBhTWFuZGF0b3J5RmlsdGVyRmllbGRzID0gQ29tbW9uVXRpbHMuZ2V0TWFuZGF0b3J5RmlsdGVyRmllbGRzKG9NZXRhTW9kZWwsIHNDb250ZXh0UGF0aCk7XG5cdFx0Y29uc3QgYlVzZVNlbWFudGljRGF0ZVJhbmdlID0gb0ZpbHRlckJhci5kYXRhKFwidXNlU2VtYW50aWNEYXRlUmFuZ2VcIik7XG5cdFx0bGV0IG9WYXJpYW50O1xuXHRcdHN3aXRjaCAob1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50KSB7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5QYWdlOlxuXHRcdFx0XHRvVmFyaWFudCA9IG9WaWV3LmJ5SWQoXCJmZTo6UGFnZVZhcmlhbnRNYW5hZ2VtZW50XCIpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2w6XG5cdFx0XHRcdG9WYXJpYW50ID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLl9nZXRGaWx0ZXJCYXJWYXJpYW50Q29udHJvbCgpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLk5vbmU6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdFx0Y29uc3QgYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50ID0gb05hdmlnYXRpb25QYXJhbWV0ZXIucmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ7XG5cdFx0Ly8gY2hlY2sgaWYgRkxQIGRlZmF1bHQgdmFsdWVzIGFyZSB0aGVyZSBhbmQgaXMgaXQgc3RhbmRhcmQgdmFyaWFudFxuXHRcdGNvbnN0IGJJc0ZMUFZhbHVlUHJlc2VudDogYm9vbGVhbiA9XG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudERlZmF1bHRzICYmXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudERlZmF1bHRzLmdldFNlbGVjdE9wdGlvbnNQcm9wZXJ0eU5hbWVzKCkubGVuZ3RoID4gMCAmJlxuXHRcdFx0b1ZhcmlhbnQuZ2V0RGVmYXVsdFZhcmlhbnRLZXkoKSA9PT0gb1ZhcmlhbnQuZ2V0U3RhbmRhcmRWYXJpYW50S2V5KCkgJiZcblx0XHRcdG9OYXZpZ2F0aW9uUGFyYW1ldGVyLmJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHk7XG5cblx0XHQvLyBnZXQgY29uZGl0aW9ucyB3aGVuIEZMUCB2YWx1ZSBpcyBwcmVzZW50XG5cdFx0aWYgKGJGaWx0ZXJWYXJpYW50QXBwbGllZCB8fCBiSXNGTFBWYWx1ZVByZXNlbnQpIHtcblx0XHRcdG9Db25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdFx0fVxuXHRcdENvbW1vblV0aWxzLmFkZERlZmF1bHREaXNwbGF5Q3VycmVuY3koYU1hbmRhdG9yeUZpbHRlckZpZWxkcywgb1NlbGVjdGlvblZhcmlhbnQsIG9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMpO1xuXHRcdENvbW1vblV0aWxzLmFkZFNlbGVjdGlvblZhcmlhbnRUb0NvbmRpdGlvbnMoXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdG9Db25kaXRpb25zLFxuXHRcdFx0b01ldGFNb2RlbCxcblx0XHRcdHNDb250ZXh0UGF0aCxcblx0XHRcdGJJc0ZMUFZhbHVlUHJlc2VudCxcblx0XHRcdGJVc2VTZW1hbnRpY0RhdGVSYW5nZSxcblx0XHRcdG9WaWV3RGF0YVxuXHRcdCk7XG5cblx0XHRyZXR1cm4gdGhpcy5fYWN0aXZhdGVTZWxlY3Rpb25WYXJpYW50KFxuXHRcdFx0b0ZpbHRlckJhcixcblx0XHRcdG9Db25kaXRpb25zLFxuXHRcdFx0b1ZhcmlhbnQsXG5cdFx0XHRiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQsXG5cdFx0XHRiRmlsdGVyVmFyaWFudEFwcGxpZWQsXG5cdFx0XHRiSXNGTFBWYWx1ZVByZXNlbnRcblx0XHQpO1xuXHR9LFxuXHRfYWN0aXZhdGVTZWxlY3Rpb25WYXJpYW50OiBmdW5jdGlvbiAoXG5cdFx0b0ZpbHRlckJhcjogYW55LFxuXHRcdG9Db25kaXRpb25zOiBhbnksXG5cdFx0b1ZhcmlhbnQ6IGFueSxcblx0XHRiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6IGFueSxcblx0XHRiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGFueSxcblx0XHRiSXNGTFBWYWx1ZVByZXNlbnQ/OiBib29sZWFuXG5cdCkge1xuXHRcdGxldCBvUHJvbWlzZTtcblxuXHRcdGlmIChvVmFyaWFudCAmJiAhYkZpbHRlclZhcmlhbnRBcHBsaWVkKSB7XG5cdFx0XHRsZXQgb1ZhcmlhbnRLZXkgPSBiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQgPyBvVmFyaWFudC5nZXRTdGFuZGFyZFZhcmlhbnRLZXkoKSA6IG9WYXJpYW50LmdldERlZmF1bHRWYXJpYW50S2V5KCk7XG5cdFx0XHRpZiAob1ZhcmlhbnRLZXkgPT09IG51bGwpIHtcblx0XHRcdFx0b1ZhcmlhbnRLZXkgPSBvVmFyaWFudC5nZXRJZCgpO1xuXHRcdFx0fVxuXHRcdFx0b1Byb21pc2UgPSBDb250cm9sVmFyaWFudEFwcGx5QVBJLmFjdGl2YXRlVmFyaWFudCh7XG5cdFx0XHRcdGVsZW1lbnQ6IG9WYXJpYW50LFxuXHRcdFx0XHR2YXJpYW50UmVmZXJlbmNlOiBvVmFyaWFudEtleVxuXHRcdFx0fSkudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdHJldHVybiBiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQgfHwgb1ZhcmlhbnQuZ2V0RGVmYXVsdFZhcmlhbnRLZXkoKSA9PT0gb1ZhcmlhbnQuZ2V0U3RhbmRhcmRWYXJpYW50S2V5KCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b1Byb21pc2UgPSBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdFx0fVxuXHRcdHJldHVybiBvUHJvbWlzZS50aGVuKChiQ2xlYXJGaWx0ZXJBbmRSZXBsYWNlV2l0aEFwcFN0YXRlOiBhbnkpID0+IHtcblx0XHRcdGlmIChiQ2xlYXJGaWx0ZXJBbmRSZXBsYWNlV2l0aEFwcFN0YXRlKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl9mbkFwcGx5Q29uZGl0aW9ucyhvRmlsdGVyQmFyLCBvQ29uZGl0aW9ucywgYklzRkxQVmFsdWVQcmVzZW50KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHQvKlxuXHQgKiBTZXRzIGZpbHRlcmVkOiBmYWxzZSBmbGFnIHRvIGV2ZXJ5IGZpZWxkIHNvIHRoYXQgaXQgY2FuIGJlIGNsZWFyZWQgb3V0XG5cdCAqXG5cdCAqIEBwYXJhbSBvRmlsdGVyQmFyIGZpbHRlcmJhciBjb250cm9sIGlzIHVzZWQgdG8gZGlzcGxheSBmaWx0ZXIgcHJvcGVydGllcyBpbiBhIHVzZXItZnJpZW5kbHkgbWFubmVyIHRvIHBvcHVsYXRlIHZhbHVlcyBmb3IgYSBxdWVyeVxuXHQgKiBAcmV0dXJucyBwcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZm5DbGVhclN0YXRlQmVmb3JleEFwcE5hdjogYXN5bmMgZnVuY3Rpb24gKG9GaWx0ZXJCYXI6IEZpbHRlckJhcikge1xuXHRcdHJldHVybiBhd2FpdCBTdGF0ZVV0aWwucmV0cmlldmVFeHRlcm5hbFN0YXRlKG9GaWx0ZXJCYXIpXG5cdFx0XHQudGhlbigob0V4dGVybmFsU3RhdGU6IGFueSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvQ29uZGl0aW9uID0gb0V4dGVybmFsU3RhdGUuZmlsdGVyO1xuXHRcdFx0XHRmb3IgKGNvbnN0IGZpZWxkIGluIG9Db25kaXRpb24pIHtcblx0XHRcdFx0XHRpZiAoZmllbGQgIT09IFwiJGVkaXRTdGF0ZVwiICYmIGZpZWxkICE9PSBcIiRzZWFyY2hcIikge1xuXHRcdFx0XHRcdFx0b0NvbmRpdGlvbltmaWVsZF1bMF1bXCJmaWx0ZXJlZFwiXSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG9Db25kaXRpb24pO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcmV0cmlldmluZyB0aGUgZXh0ZXJuYWwgc3RhdGVcIiwgb0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9LFxuXG5cdF9mbkFwcGx5Q29uZGl0aW9uczogYXN5bmMgZnVuY3Rpb24gKG9GaWx0ZXJCYXI6IGFueSwgb0NvbmRpdGlvbnM6IGFueSwgYklzRkxQVmFsdWVQcmVzZW50PzogYm9vbGVhbikge1xuXHRcdGNvbnN0IG1GaWx0ZXI6IGFueSA9IHt9LFxuXHRcdFx0YUl0ZW1zOiBhbnlbXSA9IFtdLFxuXHRcdFx0Zm5BZGp1c3RWYWx1ZUhlbHBDb25kaXRpb24gPSBmdW5jdGlvbiAob0NvbmRpdGlvbjogYW55KSB7XG5cdFx0XHRcdC8vIGluIGNhc2UgdGhlIGNvbmRpdGlvbiBpcyBtZWFudCBmb3IgYSBmaWVsZCBoYXZpbmcgYSBWSCwgdGhlIGZvcm1hdCByZXF1aXJlZCBieSBNREMgZGlmZmVyc1xuXHRcdFx0XHRvQ29uZGl0aW9uLnZhbGlkYXRlZCA9IENvbmRpdGlvblZhbGlkYXRlZC5WYWxpZGF0ZWQ7XG5cdFx0XHRcdGlmIChvQ29uZGl0aW9uLm9wZXJhdG9yID09PSBcIkVtcHR5XCIpIHtcblx0XHRcdFx0XHRvQ29uZGl0aW9uLm9wZXJhdG9yID0gXCJFUVwiO1xuXHRcdFx0XHRcdG9Db25kaXRpb24udmFsdWVzID0gW1wiXCJdO1xuXHRcdFx0XHR9IGVsc2UgaWYgKG9Db25kaXRpb24ub3BlcmF0b3IgPT09IFwiTm90RW1wdHlcIikge1xuXHRcdFx0XHRcdG9Db25kaXRpb24ub3BlcmF0b3IgPSBcIk5FXCI7XG5cdFx0XHRcdFx0b0NvbmRpdGlvbi52YWx1ZXMgPSBbXCJcIl07XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGVsZXRlIG9Db25kaXRpb24uaXNFbXB0eTtcblx0XHRcdH07XG5cdFx0Y29uc3QgZm5HZXRQcm9wZXJ0eUluZm8gPSBmdW5jdGlvbiAob0ZpbHRlckNvbnRyb2w6IGFueSwgc0VudGl0eVR5cGVQYXRoOiBhbnkpIHtcblx0XHRcdGNvbnN0IHNFbnRpdHlTZXRQYXRoID0gTW9kZWxIZWxwZXIuZ2V0RW50aXR5U2V0UGF0aChzRW50aXR5VHlwZVBhdGgpLFxuXHRcdFx0XHRvTWV0YU1vZGVsID0gb0ZpbHRlckNvbnRyb2wuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSxcblx0XHRcdFx0b0ZSID0gQ29tbW9uVXRpbHMuZ2V0RmlsdGVyUmVzdHJpY3Rpb25zQnlQYXRoKHNFbnRpdHlTZXRQYXRoLCBvTWV0YU1vZGVsKSxcblx0XHRcdFx0YU5vbkZpbHRlcmFibGVQcm9wcyA9IG9GUi5Ob25GaWx0ZXJhYmxlUHJvcGVydGllcyxcblx0XHRcdFx0bUZpbHRlckZpZWxkcyA9IEZpbHRlclV0aWxzLmdldENvbnZlcnRlZEZpbHRlckZpZWxkcyhvRmlsdGVyQ29udHJvbCwgc0VudGl0eVR5cGVQYXRoKSxcblx0XHRcdFx0YVByb3BlcnR5SW5mbzogYW55W10gPSBbXTtcblx0XHRcdE9iamVjdC5rZXlzKG1GaWx0ZXJGaWVsZHMpLmZvckVhY2goZnVuY3Rpb24gKHNGaWx0ZXJGaWVsZEtleTogc3RyaW5nKSB7XG5cdFx0XHRcdGNvbnN0IG9Db252ZXJ0ZWRQcm9wZXJ0eSA9IG1GaWx0ZXJGaWVsZHNbc0ZpbHRlckZpZWxkS2V5XTtcblx0XHRcdFx0Y29uc3Qgc1Byb3BlcnR5UGF0aCA9IG9Db252ZXJ0ZWRQcm9wZXJ0eS5jb25kaXRpb25QYXRoLnJlcGxhY2UoQ09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCwgXCJcIik7XG5cdFx0XHRcdGlmIChhTm9uRmlsdGVyYWJsZVByb3BzLmluZGV4T2Yoc1Byb3BlcnR5UGF0aCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc0Fubm90YXRpb25QYXRoID0gb0NvbnZlcnRlZFByb3BlcnR5LmFubm90YXRpb25QYXRoO1xuXHRcdFx0XHRcdGNvbnN0IG9Qcm9wZXJ0eUNvbnRleHQgPSBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHNBbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRcdFx0YVByb3BlcnR5SW5mby5wdXNoKHtcblx0XHRcdFx0XHRcdHBhdGg6IG9Db252ZXJ0ZWRQcm9wZXJ0eS5jb25kaXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0aGlkZGVuRmlsdGVyOiBvQ29udmVydGVkUHJvcGVydHkuYXZhaWxhYmlsaXR5ID09PSBcIkhpZGRlblwiLFxuXHRcdFx0XHRcdFx0aGFzVmFsdWVIZWxwOiAhc0Fubm90YXRpb25QYXRoXG5cdFx0XHRcdFx0XHRcdD8gZmFsc2Vcblx0XHRcdFx0XHRcdFx0OiBQcm9wZXJ0eUZvcm1hdHRlcnMuaGFzVmFsdWVIZWxwKG9Qcm9wZXJ0eUNvbnRleHQuZ2V0T2JqZWN0KCksIHsgY29udGV4dDogb1Byb3BlcnR5Q29udGV4dCB9KVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBhUHJvcGVydHlJbmZvO1xuXHRcdH07XG5cblx0XHRyZXR1cm4gb0ZpbHRlckJhci53YWl0Rm9ySW5pdGlhbGl6YXRpb24oKS50aGVuKGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHNFbnRpdHlUeXBlUGF0aCA9IERlbGVnYXRlVXRpbC5nZXRDdXN0b21EYXRhKG9GaWx0ZXJCYXIsIFwiZW50aXR5VHlwZVwiKTtcblx0XHRcdC8vIER1cmluZyBleHRlcm5hbCBhcHAgbmF2aWdhdGlvbiwgd2UgaGF2ZSB0byBjbGVhciB0aGUgZXhpc3RpbmcgY29uZGl0aW9ucyB0byBhdm9pZCBtZXJnaW5nIG9mIHZhbHVlcyBjb21pbmcgZnJvbSBhbm5vdGF0aW9uIGFuZCBjb250ZXh0XG5cdFx0XHQvLyBDb25kaXRpb24gIWJJc0ZMUFZhbHVlUHJlc2VudCBpbmRpY2F0ZXMgaXQncyBleHRlcm5hbCBhcHAgbmF2aWdhdGlvblxuXHRcdFx0aWYgKCFiSXNGTFBWYWx1ZVByZXNlbnQpIHtcblx0XHRcdFx0Y29uc3Qgb0NsZWFyQ29uZGl0aW9ucyA9IGF3YWl0IHRoaXMuX2ZuQ2xlYXJTdGF0ZUJlZm9yZXhBcHBOYXYob0ZpbHRlckJhcik7XG5cdFx0XHRcdGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUob0ZpbHRlckJhciwge1xuXHRcdFx0XHRcdGZpbHRlcjogb0NsZWFyQ29uZGl0aW9ucyxcblx0XHRcdFx0XHRpdGVtczogYUl0ZW1zXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgYVByb3BlcnR5SW5mbyA9IGZuR2V0UHJvcGVydHlJbmZvKG9GaWx0ZXJCYXIsIHNFbnRpdHlUeXBlUGF0aCk7XG5cdFx0XHRhUHJvcGVydHlJbmZvXG5cdFx0XHRcdC5maWx0ZXIoZnVuY3Rpb24gKG9Qcm9wZXJ0eUluZm86IGFueSkge1xuXHRcdFx0XHRcdHJldHVybiBvUHJvcGVydHlJbmZvLnBhdGggIT09IFwiJGVkaXRTdGF0ZVwiICYmIG9Qcm9wZXJ0eUluZm8ucGF0aCAhPT0gXCIkc2VhcmNoXCI7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5mb3JFYWNoKGZ1bmN0aW9uIChvUHJvcGVydHlJbmZvOiBhbnkpIHtcblx0XHRcdFx0XHRpZiAob1Byb3BlcnR5SW5mby5wYXRoIGluIG9Db25kaXRpb25zKSB7XG5cdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0gPSBvQ29uZGl0aW9uc1tvUHJvcGVydHlJbmZvLnBhdGhdO1xuXHRcdFx0XHRcdFx0aWYgKCFvUHJvcGVydHlJbmZvLmhpZGRlbkZpbHRlcikge1xuXHRcdFx0XHRcdFx0XHRhSXRlbXMucHVzaCh7IG5hbWU6IG9Qcm9wZXJ0eUluZm8ucGF0aCB9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChvUHJvcGVydHlJbmZvLmhhc1ZhbHVlSGVscCkge1xuXHRcdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0uZm9yRWFjaChmbkFkanVzdFZhbHVlSGVscENvbmRpdGlvbik7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0uZm9yRWFjaChmdW5jdGlvbiAob0NvbmRpdGlvbjogYW55KSB7XG5cdFx0XHRcdFx0XHRcdFx0b0NvbmRpdGlvbi52YWxpZGF0ZWQgPSBvQ29uZGl0aW9uLmZpbHRlcmVkID8gQ29uZGl0aW9uVmFsaWRhdGVkLk5vdFZhbGlkYXRlZCA6IG9Db25kaXRpb24udmFsaWRhdGVkO1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0bUZpbHRlcltvUHJvcGVydHlJbmZvLnBhdGhdID0gW107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdHJldHVybiBTdGF0ZVV0aWwuYXBwbHlFeHRlcm5hbFN0YXRlKG9GaWx0ZXJCYXIsIHsgZmlsdGVyOiBtRmlsdGVyLCBpdGVtczogYUl0ZW1zIH0pO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWaWV3U3RhdGVPdmVycmlkZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7RUFtQkEsSUFBTUEsT0FBTyxH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
5
+ sap.ui.define(["sap/base/Log","sap/fe/core/CommonUtils","sap/fe/core/helpers/KeepAliveHelper","sap/fe/core/helpers/ModelHelper","sap/fe/core/library","sap/fe/core/templating/PropertyFormatters","sap/fe/macros/DelegateUtil","sap/fe/macros/filter/FilterUtils","sap/fe/navigation/library","sap/ui/Device","sap/ui/fl/apply/api/ControlVariantApplyAPI","sap/ui/mdc/enum/ConditionValidated","sap/ui/mdc/p13n/StateUtil"],function(t,e,a,n,i,r,o,s,l,c,d,f,g){"use strict";var h=c.system;const u=l.NavType,p=i.VariantManagement,V=i.TemplateContentView,C=i.InitialLoadMode,_=/\+|\*/g;const y={_bSearchTriggered:false,applyInitialStateOnly:function(){return true},onBeforeStateApplied:function(t){const e=this.getView(),a=e.getController(),n=a._getFilterBarControl(),i=a._getControls("table");if(n){n.setSuspendSelection(true);t.push(n.waitForInitialization())}i.forEach(function(e){t.push(e.initialized())});delete this._bSearchTriggered},onAfterStateApplied:function(){const t=this.getView().getController();const e=t._getFilterBarControl();if(e){e.setSuspendSelection(false)}else if(t._isFilterBarHidden()){const e=t.getView().getBindingContext("internal");e.setProperty("hasPendingFilters",false);if(t._isMultiMode()){t._getMultiModeControl().setCountsOutDated(true)}}},adaptBindingRefreshControls:function(t){const e=this.getView(),n=e.getController(),i=n._getControls(),r=a.getControlsForRefresh(e,i);Array.prototype.push.apply(t,r)},adaptStateControls:function(t){const e=this.getView(),a=e.getController(),n=e.getViewData(),i=n.variantManagement===p.Control;const r=this._getFilterBarVM(e);if(r){t.push(r)}if(a._isMultiMode()){t.push(a._getMultiModeControl())}a._getControls("table").forEach(function(e){const a=e.getQuickFilter();if(a){t.push(a)}if(i){t.push(e.getVariant())}t.push(e)});if(a._getControls("Chart")){a._getControls("Chart").forEach(function(e){if(i){t.push(e.getVariant())}t.push(e)})}if(a._hasMultiVisualizations()){t.push(a._getSegmentedButton(V.Chart));t.push(a._getSegmentedButton(V.Table))}const o=a._getFilterBarControl();if(o){t.push(o)}t.push(e.byId("fe::ListReport"))},retrieveAdditionalStates:function(t){const e=this.getView(),a=e.getController(),n=e.getBindingContext("internal").getProperty("hasPendingFilters");t.dataLoaded=!n||!!this._bSearchTriggered;if(a._hasMultiVisualizations()){const a=e.getBindingContext("internal").getProperty("alpContentView");t.alpContentView=a}delete this._bSearchTriggered},applyAdditionalStates:function(t){const e=this.getView(),a=e.getController(),n=a._getFilterBarControl();if(t){if(t.dataLoaded===false&&n){n._bSearchTriggered=false}else if(t.dataLoaded===true){if(n){n.triggerSearch()}this._bSearchTriggered=true}if(a._hasMultiVisualizations()){const a=e.getBindingContext("internal");if(!h.desktop&&t.alpContentView==V.Hybrid){t.alpContentView=V.Chart}a.getModel().setProperty(`${a.getPath()}/alpContentView`,t.alpContentView)}}},_applyNavigationParametersToFilterbar:function(e,a){const n=this.getView();const i=n.getController();const r=i.getAppComponent();const o=r.getComponentData();const s=o&&o.startupParameters||{};const l=this.handleVariantIdPassedViaURLParams(s);let c;a.push(l.then(t=>{if(t&&t.length>0){if(t[0]===true||t[1]===true){c=true}}return this._applySelectionVariant(n,e,c)}).then(()=>{const t=i._getDynamicListReportControl();let a=false;const r=this._getFilterBarVM(n);const o=i._getFilterBarControl();if(o){if(e.navigationType!==u.initial&&e.requiresStandardVariant||!r&&n.getViewData().initialLoad===C.Enabled||i._shouldAutoTriggerSearch(r)){o.triggerSearch()}else{a=this._preventInitialSearch(r)}o.setSuspendSelection(false);this._bSearchTriggered=!a;t.setHeaderExpanded(h.desktop||a)}}).catch(function(){t.error("Variant ID cannot be applied")}))},handleVariantIdPassedViaURLParams:function(t){const e=t["sap-ui-fe-variant-id"],a=t["sap-ui-fe-filterbar-variant-id"],n=t["sap-ui-fe-table-variant-id"],i=t["sap-ui-fe-chart-variant-id"];let r;if(e||a||n||i){r={sPageVariantId:e&&e[0],sFilterBarVariantId:a&&a[0],sTableVariantId:n&&n[0],sChartVariantId:i&&i[0]}}return this._handleControlVariantId(r)},_handleControlVariantId:function(t){let e;const a=this.getView(),n=[];const i=a.getViewData().variantManagement;if(t&&t.sPageVariantId&&i==="Page"){e=a.byId("fe::PageVariantManagement");this._handlePageVariantId(t,e,n)}else if(t&&i==="Control"){if(t.sFilterBarVariantId){e=a.getController()._getFilterBarVariantControl();this._handleFilterBarVariantControlId(t,e,n)}if(t.sTableVariantId){const e=a.getController();this._handleTableControlVariantId(t,e,n)}if(t.sChartVariantId){const e=a.getController();this._handleChartControlVariantId(t,e,n)}}return Promise.all(n)},_handlePageVariantId:function(t,e,a){e.getVariants().forEach(n=>{this._findAndPushVariantToPromise(n,t.sPageVariantId,e,a,true)})},_handleFilterBarVariantControlId:function(t,e,a){if(e){e.getVariants().forEach(n=>{this._findAndPushVariantToPromise(n,t.sFilterBarVariantId,e,a,true)})}},_handleTableControlVariantId:function(t,e,a){const n=e._getControls("table");n.forEach(e=>{const n=e.getVariant();if(e&&n){n.getVariants().forEach(e=>{this._findAndPushVariantToPromise(e,t.sTableVariantId,n,a)})}})},_handleChartControlVariantId:function(t,e,a){const n=e._getControls("Chart");n.forEach(e=>{const n=e.getVariant();const i=n.getVariants();if(i){i.forEach(e=>{this._findAndPushVariantToPromise(e,t.sChartVariantId,n,a)})}})},_findAndPushVariantToPromise:function(t,e,a,n,i){if(t.key===e){n.push(this._applyControlVariant(a,e,i))}},_applyControlVariant:function(t,e,a){const n=this._checkIfVariantIdIsAvailable(t,e)?e:t.getStandardVariantKey();const i=d.activateVariant({element:t,variantReference:n});return i.then(function(){return a})},_getFilterBarVM:function(t){const e=t.getViewData();switch(e.variantManagement){case p.Page:return t.byId("fe::PageVariantManagement");case p.Control:return t.getController()._getFilterBarVariantControl();case p.None:return null;default:throw new Error(`unhandled variant setting: ${e.variantManagement}`)}},_preventInitialSearch:function(t){if(!t){return true}const e=t.getVariants();const a=e.find(function(e){return e.key===t.getCurrentVariantKey()});return!a.executeOnSelect},_applySelectionVariant:function(t,a,n){const i=t.getController()._getFilterBarControl(),r=a.selectionVariant,o=a.selectionVariantDefaults;if(!i||!r){return Promise.resolve()}let s={};const l=t.getModel().getMetaModel();const c=t.getViewData();const d=c.contextPath||`/${c.entitySet}`;const f=e.getMandatoryFilterFields(l,d);const g=i.data("useSemanticDateRange");let h;switch(c.variantManagement){case p.Page:h=t.byId("fe::PageVariantManagement");break;case p.Control:h=t.getController()._getFilterBarVariantControl();break;case p.None:default:break}const u=a.requiresStandardVariant;const V=o&&o.getSelectOptionsPropertyNames().length>0&&h.getDefaultVariantKey()===h.getStandardVariantKey()&&a.bNavSelVarHasDefaultsOnly;if(n||V){s=i.getConditions()}e.addDefaultDisplayCurrency(f,r,o);e.addSelectionVariantToConditions(r,s,l,d,V,g,c);return this._activateSelectionVariant(i,s,h,u,n,V)},_activateSelectionVariant:function(t,e,a,n,i,r){let o;if(a&&!i){let t=n?a.getStandardVariantKey():a.getDefaultVariantKey();if(t===null){t=a.getId()}o=d.activateVariant({element:a,variantReference:t}).then(function(){return n||a.getDefaultVariantKey()===a.getStandardVariantKey()})}else{o=Promise.resolve(true)}return o.then(a=>{if(a){return this._fnApplyConditions(t,e,r)}})},_fnClearStateBeforexAppNav:async function(e){return await g.retrieveExternalState(e).then(t=>{const e=t.filter;for(const t in e){if(t!=="$editState"&&t!=="$search"){e[t][0]["filtered"]=false}}return Promise.resolve(e)}).catch(function(e){t.error("Error while retrieving the external state",e)})},_fnApplyConditions:async function(t,a,i){const l={},c=[],d=function(t){t.validated=f.Validated;if(t.operator==="Empty"){t.operator="EQ";t.values=[""]}else if(t.operator==="NotEmpty"){t.operator="NE";t.values=[""]}delete t.isEmpty};const h=function(t,a){const i=n.getEntitySetPath(a),o=t.getModel().getMetaModel(),l=e.getFilterRestrictionsByPath(i,o),c=l.NonFilterableProperties,d=s.getConvertedFilterFields(t,a),f=[];Object.keys(d).forEach(function(t){const e=d[t];const a=e.conditionPath.replace(_,"");if(c.indexOf(a)===-1){const t=e.annotationPath;const a=o.createBindingContext(t);f.push({path:e.conditionPath,hiddenFilter:e.availability==="Hidden",hasValueHelp:!t?false:r.hasValueHelp(a.getObject(),{context:a})})}});return f};return t.waitForInitialization().then(async()=>{const e=o.getCustomData(t,"entityType");if(!i){const e=await this._fnClearStateBeforexAppNav(t);await g.applyExternalState(t,{filter:e,items:c})}const n=h(t,e);n.filter(function(t){return t.path!=="$editState"&&t.path!=="$search"}).forEach(function(t){if(t.path in a){l[t.path]=a[t.path];if(!t.hiddenFilter){c.push({name:t.path})}if(t.hasValueHelp){l[t.path].forEach(d)}else{l[t.path].forEach(function(t){t.validated=t.filtered?f.NotValidated:t.validated})}}else{l[t.path]=[]}});return g.applyExternalState(t,{filter:l,items:c})})}};return y},false);
6
+ //# sourceMappingURL=ViewState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewState.js","names":["sap","ui","define","Log","CommonUtils","KeepAliveHelper","ModelHelper","CoreLibrary","PropertyFormatters","DelegateUtil","FilterUtils","NavLibrary","Device","ControlVariantApplyAPI","ConditionValidated","StateUtil","system","NavType","VariantManagementType","VariantManagement","TemplateContentView","InitialLoadMode","CONDITION_PATH_TO_PROPERTY_PATH_REGEX","ViewStateOverride","_bSearchTriggered","applyInitialStateOnly","onBeforeStateApplied","aPromises","oView","this","getView","oController","getController","oFilterBar","_getFilterBarControl","aTables","_getControls","setSuspendSelection","push","waitForInitialization","forEach","oTable","initialized","onAfterStateApplied","_isFilterBarHidden","oInternalModelContext","getBindingContext","setProperty","_isMultiMode","_getMultiModeControl","setCountsOutDated","adaptBindingRefreshControls","aControls","aViewControls","aControlsToRefresh","getControlsForRefresh","Array","prototype","apply","adaptStateControls","aStateControls","oViewData","getViewData","bControlVM","variantManagement","Control","oFilterBarVM","_getFilterBarVM","oQuickFilter","getQuickFilter","getVariant","oChart","_hasMultiVisualizations","_getSegmentedButton","Chart","Table","byId","retrieveAdditionalStates","mAdditionalStates","bPendingFilter","getProperty","dataLoaded","sAlpContentView","alpContentView","applyAdditionalStates","oAdditionalStates","triggerSearch","desktop","Hybrid","getModel","getPath","_applyNavigationParametersToFilterbar","oNavigationParameter","aResults","oAppComponent","getAppComponent","oComponentData","getComponentData","oStartupParameters","startupParameters","oVariantPromise","handleVariantIdPassedViaURLParams","bFilterVariantApplied","then","aVariants","length","_applySelectionVariant","oDynamicPage","_getDynamicListReportControl","bPreventInitialSearch","oFilterBarControl","navigationType","initial","requiresStandardVariant","initialLoad","Enabled","_shouldAutoTriggerSearch","_preventInitialSearch","setHeaderExpanded","catch","error","oUrlParams","aPageVariantId","aFilterBarVariantId","aTableVariantId","aChartVariantId","oVariantIDs","sPageVariantId","sFilterBarVariantId","sTableVariantId","sChartVariantId","_handleControlVariantId","oVM","sVariantManagement","_handlePageVariantId","_getFilterBarVariantControl","_handleFilterBarVariantControlId","_handleTableControlVariantId","_handleChartControlVariantId","Promise","all","getVariants","oVariant","_findAndPushVariantToPromise","oTableVariant","aCharts","oChartVariant","sVariantId","key","_applyControlVariant","sVariantID","sVariantReference","_checkIfVariantIdIsAvailable","getStandardVariantKey","activateVariant","element","variantReference","Page","None","Error","oVariantManagement","oCurrentVariant","find","oItem","getCurrentVariantKey","executeOnSelect","oSelectionVariant","selectionVariant","oSelectionVariantDefaults","selectionVariantDefaults","resolve","oConditions","oMetaModel","getMetaModel","sContextPath","contextPath","entitySet","aMandatoryFilterFields","getMandatoryFilterFields","bUseSemanticDateRange","data","bRequiresStandardVariant","bIsFLPValuePresent","getSelectOptionsPropertyNames","getDefaultVariantKey","bNavSelVarHasDefaultsOnly","getConditions","addDefaultDisplayCurrency","addSelectionVariantToConditions","_activateSelectionVariant","oPromise","oVariantKey","getId","bClearFilterAndReplaceWithAppState","_fnApplyConditions","_fnClearStateBeforexAppNav","async","retrieveExternalState","oExternalState","oCondition","filter","field","oError","mFilter","aItems","fnAdjustValueHelpCondition","validated","Validated","operator","values","isEmpty","fnGetPropertyInfo","oFilterControl","sEntityTypePath","sEntitySetPath","getEntitySetPath","oFR","getFilterRestrictionsByPath","aNonFilterableProps","NonFilterableProperties","mFilterFields","getConvertedFilterFields","aPropertyInfo","Object","keys","sFilterFieldKey","oConvertedProperty","sPropertyPath","conditionPath","replace","indexOf","sAnnotationPath","annotationPath","oPropertyContext","createBindingContext","path","hiddenFilter","availability","hasValueHelp","getObject","context","getCustomData","oClearConditions","applyExternalState","items","oPropertyInfo","name","filtered","NotValidated"],"sources":["ViewState-dbg.js"],"mappings":"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"}