@sapui5/sap.fe.macros 1.138.0 → 1.140.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 (240) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/Breadcrumbs.js +269 -0
  4. package/src/sap/fe/macros/Breadcrumbs.tsx +243 -0
  5. package/src/sap/fe/macros/CommonHelper.js +2 -2
  6. package/src/sap/fe/macros/CommonHelper.ts +1 -1
  7. package/src/sap/fe/macros/Field.js +85 -58
  8. package/src/sap/fe/macros/Field.ts +104 -60
  9. package/src/sap/fe/macros/FooterContent.js +44 -11
  10. package/src/sap/fe/macros/FooterContent.tsx +48 -9
  11. package/src/sap/fe/macros/FormElement.js +2 -2
  12. package/src/sap/fe/macros/FormElement.ts +1 -2
  13. package/src/sap/fe/macros/MessageButton.js +1 -2
  14. package/src/sap/fe/macros/MessageButton.tsx +0 -1
  15. package/src/sap/fe/macros/MultiValueField.js +17 -6
  16. package/src/sap/fe/macros/MultiValueField.tsx +7 -4
  17. package/src/sap/fe/macros/RichTextEditor.js +30 -5
  18. package/src/sap/fe/macros/RichTextEditor.tsx +34 -6
  19. package/src/sap/fe/macros/Share.js +85 -40
  20. package/src/sap/fe/macros/Share.tsx +42 -1
  21. package/src/sap/fe/macros/Status.js +226 -0
  22. package/src/sap/fe/macros/Status.tsx +192 -0
  23. package/src/sap/fe/macros/ValueHelp.js +4 -29
  24. package/src/sap/fe/macros/ValueHelp.tsx +2 -43
  25. package/src/sap/fe/macros/ai/EasyFillButton.js +10 -4
  26. package/src/sap/fe/macros/ai/EasyFillButton.tsx +8 -1
  27. package/src/sap/fe/macros/ai/EasyFillDialog.js +25 -10
  28. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +32 -23
  29. package/src/sap/fe/macros/ai/EasyFilterBar.js +123 -114
  30. package/src/sap/fe/macros/ai/EasyFilterBar.tsx +140 -124
  31. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +11 -5
  32. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +14 -5
  33. package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
  34. package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
  35. package/src/sap/fe/macros/chart/ChartDelegate.js +4 -4
  36. package/src/sap/fe/macros/chart/ChartDelegate.ts +3 -3
  37. package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
  38. package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
  39. package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
  40. package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
  41. package/src/sap/fe/macros/chart/MdcChartTemplate.js +20 -6
  42. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +16 -8
  43. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +3 -1
  44. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +2 -0
  45. package/src/sap/fe/macros/controls/FieldWrapper.js +9 -3
  46. package/src/sap/fe/macros/controls/FieldWrapper.ts +11 -2
  47. package/src/sap/fe/macros/controls/FilterBar.js +49 -2
  48. package/src/sap/fe/macros/controls/FilterBar.ts +55 -1
  49. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
  50. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
  51. package/src/sap/fe/macros/controls/RequiredFlexBox.js +62 -0
  52. package/src/sap/fe/macros/controls/RequiredFlexBox.tsx +20 -0
  53. package/src/sap/fe/macros/controls/filterbar/VisualFilter.js +21 -11
  54. package/src/sap/fe/macros/controls/filterbar/VisualFilter.ts +25 -11
  55. package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.js +11 -2
  56. package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.ts +12 -1
  57. package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.js +18 -1
  58. package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.ts +20 -0
  59. package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
  60. package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
  61. package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
  62. package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
  63. package/src/sap/fe/macros/designtime/Designtime.helper.js +39 -2
  64. package/src/sap/fe/macros/designtime/Designtime.helper.ts +39 -0
  65. package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +15 -4
  66. package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +5 -0
  67. package/src/sap/fe/macros/field/FieldBaseDelegate.js +20 -8
  68. package/src/sap/fe/macros/field/FieldBaseDelegate.ts +34 -9
  69. package/src/sap/fe/macros/field/FieldFormatOptions.js +73 -44
  70. package/src/sap/fe/macros/field/FieldFormatOptions.ts +20 -2
  71. package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
  72. package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
  73. package/src/sap/fe/macros/filter/FilterUtils.js +3 -5
  74. package/src/sap/fe/macros/filter/FilterUtils.ts +2 -4
  75. package/src/sap/fe/macros/filterBar/FilterBar.block.js +8 -2
  76. package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +2 -5
  77. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +8 -8
  78. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +8 -8
  79. package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.js +3 -1
  80. package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.ts +2 -0
  81. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +1 -1
  82. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +1 -1
  83. package/src/sap/fe/macros/form/Form.js +1 -4
  84. package/src/sap/fe/macros/form/Form.tsx +0 -3
  85. package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -2
  86. package/src/sap/fe/macros/form/FormContainer.block.js +1 -2
  87. package/src/sap/fe/macros/form/FormContainer.block.ts +0 -1
  88. package/src/sap/fe/macros/form/FormContainer.fragment.xml +40 -0
  89. package/src/sap/fe/macros/form/FormContainerAPI.js +14 -16
  90. package/src/sap/fe/macros/form/FormContainerAPI.ts +13 -15
  91. package/src/sap/fe/macros/form/FormDelegate.js +20 -1
  92. package/src/sap/fe/macros/form/FormDelegate.ts +25 -0
  93. package/src/sap/fe/macros/form/FormHelper.js +1 -2
  94. package/src/sap/fe/macros/form/FormHelper.ts +0 -1
  95. package/src/sap/fe/macros/formatters/TableFormatter.js +10 -1
  96. package/src/sap/fe/macros/formatters/TableFormatter.ts +14 -5
  97. package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
  98. package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
  99. package/src/sap/fe/macros/inlineEdit/InlineEdit.js +15 -3
  100. package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +14 -2
  101. package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
  102. package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
  103. package/src/sap/fe/macros/internal/DataPoint.js +2 -1
  104. package/src/sap/fe/macros/internal/DataPoint.tsx +1 -0
  105. package/src/sap/fe/macros/internal/DataPointFormatOptions.js +11 -2
  106. package/src/sap/fe/macros/internal/DataPointFormatOptions.ts +3 -0
  107. package/src/sap/fe/macros/internal/FilterField.block.js +10 -2
  108. package/src/sap/fe/macros/internal/FilterField.block.ts +11 -1
  109. package/src/sap/fe/macros/internal/field/CheckBoxGroup.fragment.xml +25 -0
  110. package/src/sap/fe/macros/internal/field/DisplayStyle.js +51 -13
  111. package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +53 -6
  112. package/src/sap/fe/macros/internal/field/EditStyle.js +5 -1
  113. package/src/sap/fe/macros/internal/field/EditStyle.tsx +4 -0
  114. package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +9 -2
  115. package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +11 -0
  116. package/src/sap/fe/macros/internal/field/FieldStyles.js +1 -1
  117. package/src/sap/fe/macros/internal/field/FieldStyles.tsx +2 -1
  118. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
  119. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
  120. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
  121. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
  122. package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +2 -1
  123. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +16 -5
  124. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +21 -9
  125. package/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +1 -0
  126. package/src/sap/fe/macros/library.js +1 -1
  127. package/src/sap/fe/macros/mdc/adapter/StateHelper.js +7 -2
  128. package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +7 -3
  129. package/src/sap/fe/macros/messagebundle.properties +42 -32
  130. package/src/sap/fe/macros/messagebundle_ar.properties +12 -4
  131. package/src/sap/fe/macros/messagebundle_bg.properties +11 -3
  132. package/src/sap/fe/macros/messagebundle_ca.properties +15 -7
  133. package/src/sap/fe/macros/messagebundle_cnr.properties +12 -4
  134. package/src/sap/fe/macros/messagebundle_cs.properties +10 -2
  135. package/src/sap/fe/macros/messagebundle_cy.properties +12 -4
  136. package/src/sap/fe/macros/messagebundle_da.properties +11 -3
  137. package/src/sap/fe/macros/messagebundle_de.properties +18 -10
  138. package/src/sap/fe/macros/messagebundle_el.properties +13 -5
  139. package/src/sap/fe/macros/messagebundle_en.properties +16 -8
  140. package/src/sap/fe/macros/messagebundle_en_GB.properties +16 -8
  141. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +16 -8
  142. package/src/sap/fe/macros/messagebundle_es.properties +13 -5
  143. package/src/sap/fe/macros/messagebundle_es_MX.properties +14 -6
  144. package/src/sap/fe/macros/messagebundle_et.properties +13 -5
  145. package/src/sap/fe/macros/messagebundle_fi.properties +14 -6
  146. package/src/sap/fe/macros/messagebundle_fr.properties +14 -6
  147. package/src/sap/fe/macros/messagebundle_fr_CA.properties +15 -7
  148. package/src/sap/fe/macros/messagebundle_hi.properties +11 -3
  149. package/src/sap/fe/macros/messagebundle_hr.properties +11 -3
  150. package/src/sap/fe/macros/messagebundle_hu.properties +10 -2
  151. package/src/sap/fe/macros/messagebundle_id.properties +18 -10
  152. package/src/sap/fe/macros/messagebundle_it.properties +10 -2
  153. package/src/sap/fe/macros/messagebundle_iw.properties +10 -2
  154. package/src/sap/fe/macros/messagebundle_ja.properties +13 -5
  155. package/src/sap/fe/macros/messagebundle_kk.properties +15 -7
  156. package/src/sap/fe/macros/messagebundle_ko.properties +10 -2
  157. package/src/sap/fe/macros/messagebundle_lt.properties +11 -3
  158. package/src/sap/fe/macros/messagebundle_lv.properties +12 -4
  159. package/src/sap/fe/macros/messagebundle_mk.properties +12 -4
  160. package/src/sap/fe/macros/messagebundle_ms.properties +14 -6
  161. package/src/sap/fe/macros/messagebundle_nl.properties +13 -5
  162. package/src/sap/fe/macros/messagebundle_no.properties +12 -4
  163. package/src/sap/fe/macros/messagebundle_pl.properties +12 -4
  164. package/src/sap/fe/macros/messagebundle_pt.properties +13 -5
  165. package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -4
  166. package/src/sap/fe/macros/messagebundle_ro.properties +12 -4
  167. package/src/sap/fe/macros/messagebundle_ru.properties +13 -5
  168. package/src/sap/fe/macros/messagebundle_sh.properties +12 -4
  169. package/src/sap/fe/macros/messagebundle_sk.properties +11 -3
  170. package/src/sap/fe/macros/messagebundle_sl.properties +12 -4
  171. package/src/sap/fe/macros/messagebundle_sr.properties +12 -4
  172. package/src/sap/fe/macros/messagebundle_sv.properties +11 -3
  173. package/src/sap/fe/macros/messagebundle_th.properties +11 -3
  174. package/src/sap/fe/macros/messagebundle_tr.properties +10 -2
  175. package/src/sap/fe/macros/messagebundle_uk.properties +17 -9
  176. package/src/sap/fe/macros/messagebundle_vi.properties +12 -4
  177. package/src/sap/fe/macros/messagebundle_zh_CN.properties +11 -3
  178. package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -4
  179. package/src/sap/fe/macros/messages/MessageButton.js +55 -36
  180. package/src/sap/fe/macros/messages/MessageButton.ts +64 -39
  181. package/src/sap/fe/macros/messages/MessagePopover.js +2 -2
  182. package/src/sap/fe/macros/messages/MessagePopover.ts +4 -4
  183. package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
  184. package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
  185. package/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -2
  186. package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +0 -1
  187. package/src/sap/fe/macros/share/ShareAPI.js +4 -29
  188. package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
  189. package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
  190. package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
  191. package/src/sap/fe/macros/table/Action.js +24 -2
  192. package/src/sap/fe/macros/table/Action.ts +13 -0
  193. package/src/sap/fe/macros/table/ActionGroup.js +24 -2
  194. package/src/sap/fe/macros/table/ActionGroup.ts +13 -0
  195. package/src/sap/fe/macros/table/ActionGroupOverride.js +24 -2
  196. package/src/sap/fe/macros/table/ActionGroupOverride.ts +13 -0
  197. package/src/sap/fe/macros/table/ActionOverride.js +24 -2
  198. package/src/sap/fe/macros/table/ActionOverride.ts +13 -0
  199. package/src/sap/fe/macros/table/ActionsTemplating.js +73 -12
  200. package/src/sap/fe/macros/table/ActionsTemplating.tsx +69 -13
  201. package/src/sap/fe/macros/table/Column.js +3 -3
  202. package/src/sap/fe/macros/table/Column.ts +2 -2
  203. package/src/sap/fe/macros/table/MdcTableTemplate.js +20 -8
  204. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +36 -7
  205. package/src/sap/fe/macros/table/QuickFilterSelector.js +35 -14
  206. package/src/sap/fe/macros/table/QuickFilterSelector.tsx +22 -3
  207. package/src/sap/fe/macros/table/Table.block.js +137 -108
  208. package/src/sap/fe/macros/table/Table.block.tsx +29 -2
  209. package/src/sap/fe/macros/table/TableAPI.js +143 -133
  210. package/src/sap/fe/macros/table/TableAPI.ts +5 -1
  211. package/src/sap/fe/macros/table/TableDefinition.js +4 -2
  212. package/src/sap/fe/macros/table/TableDefinition.ts +3 -1
  213. package/src/sap/fe/macros/table/TableHelper.js +1 -2
  214. package/src/sap/fe/macros/table/TableHelper.ts +0 -1
  215. package/src/sap/fe/macros/table/TableRuntime.js +26 -7
  216. package/src/sap/fe/macros/table/TableRuntime.ts +33 -5
  217. package/src/sap/fe/macros/table/Utils.js +6 -2
  218. package/src/sap/fe/macros/table/Utils.ts +5 -1
  219. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
  220. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
  221. package/src/sap/fe/macros/table/delegates/TableDelegate.js +25 -20
  222. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +25 -24
  223. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
  224. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
  225. package/src/sap/fe/macros/table/designtime/Table.designtime.js +3 -1
  226. package/src/sap/fe/macros/table/designtime/Table.designtime.ts +2 -0
  227. package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.js +3 -1
  228. package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.ts +2 -1
  229. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -1
  230. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -0
  231. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +8 -1
  232. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +10 -0
  233. package/src/sap/fe/macros/table/mixin/TableSharing.js +3 -2
  234. package/src/sap/fe/macros/table/mixin/TableSharing.ts +9 -1
  235. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +20 -6
  236. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +36 -14
  237. package/src/sap/fe/macros/visualfilters/VisualFilter.js +95 -7
  238. package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +93 -3
  239. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +16 -5
  240. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +18 -4
@@ -2,8 +2,8 @@ import Log from "sap/base/Log";
2
2
  import type { PropertiesOf } from "sap/fe/base/ClassSupport";
3
3
  import { association, defineUI5Class, property } from "sap/fe/base/ClassSupport";
4
4
  import FilterContainer from "sap/fe/macros/controls/filterbar/FilterContainer";
5
- import type VisualFilter from "sap/fe/macros/controls/filterbar/VisualFilter";
6
5
  import VisualFilterContainer from "sap/fe/macros/controls/filterbar/VisualFilterContainer";
6
+ import type VisualFilter from "sap/fe/macros/visualfilters/VisualFilter";
7
7
  import type Button from "sap/m/Button";
8
8
  import type SegmentedButton from "sap/m/SegmentedButton";
9
9
  import type Control from "sap/ui/core/Control";
@@ -13,6 +13,12 @@ import MdcFilterBar from "sap/ui/mdc/FilterBar";
13
13
  import type FilterField from "sap/ui/mdc/FilterField";
14
14
  import type IFilterContainer from "sap/ui/mdc/filterbar/IFilterContainer";
15
15
  import FilterItemLayout from "sap/ui/mdc/filterbar/aligned/FilterItemLayout";
16
+ import { type ExternalStateType } from "../valuehelp/ValueHelpDelegate";
17
+ import VisualFilterUtils from "./filterbar/utils/VisualFilterUtils";
18
+
19
+ const VISUAL_FILTER_CONTAINER = "sap.fe.macros.controls.filterbar.VisualFilterContainer",
20
+ FILTER_CONTAINER = "sap.fe.macros.controls.filterbar.FilterContainer";
21
+ type ContainerType = typeof VISUAL_FILTER_CONTAINER | typeof FILTER_CONTAINER;
16
22
 
17
23
  @defineUI5Class("sap.fe.macros.controls.FilterBar")
18
24
  class FilterBar extends MdcFilterBar {
@@ -195,6 +201,54 @@ class FilterBar extends MdcFilterBar {
195
201
  getSegmentedButton(): SegmentedButton | undefined {
196
202
  return this._oSegmentedButton;
197
203
  }
204
+
205
+ /**
206
+ * Enable or disable requests that are initiated by the FilterBar.
207
+ *
208
+ * To be used to suspend or resume requests(table or visual filters) when the filter bar is being modified or when the user is programmatically interacting with the filter controls.
209
+ * This method is also used to control whether the visual filter chart binding should be resumed/suspended based on the diff state, and resumed after conditon model update.
210
+ * @param enable Enable or disable requests
211
+ * @param diffState If there is a differnce in the external state that needs to be considered for visual filter in-parameters
212
+ */
213
+ enableRequests(enable: boolean, diffState?: ExternalStateType): void {
214
+ this.setSuspendSelection(!enable);
215
+ // We need to enable or disable the visual filter chart bindings based on diff state.
216
+ this._enableVisualFilterChartBindings(enable, diffState);
217
+ }
218
+
219
+ /**
220
+ * Get the filter layout by its type.
221
+ * @param layoutClassName The class name of the filter layout to be returned.
222
+ * @template T The type of the filter layout to be returned.
223
+ * @typedef {IFilterContainer} T The type of the filter layout to be returned
224
+ * @returns Corresponding filter layout if it exists, otherwise undefined.
225
+ */
226
+ _getFilterLayoutByType<T extends IFilterContainer>(layoutClassName: ContainerType): T | undefined {
227
+ const retFilterLayout = this._oFilterBarLayout.isA<T>(layoutClassName) ? this._oFilterBarLayout : undefined;
228
+ return !retFilterLayout && this._oSecondaryFilterBarLayout?.isA<T>(layoutClassName)
229
+ ? this._oSecondaryFilterBarLayout
230
+ : retFilterLayout;
231
+ }
232
+
233
+ _enableVisualFilterChartBindings(enable: boolean, diffState?: ExternalStateType): void {
234
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
235
+ // @ts-ignore
236
+ const visualFilterLayout = this._getFilterLayoutByType<VisualFilterContainer>(VISUAL_FILTER_CONTAINER);
237
+ if (visualFilterLayout) {
238
+ visualFilterLayout.enableChartBinding(enable, diffState);
239
+ return;
240
+ }
241
+
242
+ // If initial layout is compact, we don't have the visual filter layout(container) available yet until the user toggles to visual filter layout.
243
+ // So we need to check if the compact filter layout has visual filters and enable/disable the chart binding for those visual filters.
244
+ const compactFilterLayout = this._getFilterLayoutByType<FilterContainer>(FILTER_CONTAINER);
245
+ if (compactFilterLayout) {
246
+ const visualFilters = compactFilterLayout.getAllVisualFilterFields();
247
+ if (visualFilters) {
248
+ VisualFilterUtils.enableChartBinding(visualFilters, enable, diffState);
249
+ }
250
+ }
251
+ }
198
252
  }
199
253
  interface FilterBar {
200
254
  _addButtons(): void;
@@ -42,7 +42,7 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
42
42
  }
43
43
  };
44
44
  _proto.shouldBeVisible = function shouldBeVisible(value) {
45
- return typeof value === "string" && value.trim() !== "";
45
+ return typeof value === "string" && value.trim() !== "" || typeof value === "number" && value !== 0;
46
46
  };
47
47
  _proto.createContent = function createContent() {
48
48
  return _jsxs(HBox, {
@@ -84,4 +84,4 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
84
84
  _exports = NumberWithUnitOrCurrency;
85
85
  return _exports;
86
86
  }, false);
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiYmluZFRvU3RhdGUiLCJfZGVjNCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJwcm9wZXJ0aWVzT3JJZCIsInByb3BlcnRpZXMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwic3RhdGUiLCJ2aXNpYmxlIiwic2hvdWxkQmVWaXNpYmxlIiwibnVtYmVyIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRLZXlzIiwiaW5jbHVkZXMiLCJ2YWx1ZSIsInRyaW0iLCJfanN4cyIsIkhCb3giLCJyZW5kZXJUeXBlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzcyIsImJpbmRTdGF0ZSIsImNoaWxkcmVuIiwiX2pzeCIsIlRleHQiLCJ0ZXh0RGlyZWN0aW9uIiwid3JhcHBpbmciLCJ0ZXh0QWxpZ24iLCJ0ZXh0Iiwid2lkdGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxcblx0SEJveCxcblx0eyBudW1iZXI6IHN0cmluZzsgdW5pdE9yQ3VycmVuY3k6IHN0cmluZzsgdmlzaWJsZTogYm9vbGVhbiB9XG4+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIHVuaXRPckN1cnJlbmN5ITogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXNPcklkOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8TnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5PiwgcHJvcGVydGllcz86IFByb3BlcnRpZXNPZjxOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3k+KSB7XG5cdFx0c3VwZXIocHJvcGVydGllc09ySWQsIHByb3BlcnRpZXMpO1xuXHRcdHRoaXMuc3RhdGUudmlzaWJsZSA9IHRoaXMuc2hvdWxkQmVWaXNpYmxlKHRoaXMuc3RhdGUubnVtYmVyKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdG9uU3RhdGVDaGFuZ2UoY2hhbmdlZEtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0aWYgKGNoYW5nZWRLZXlzPy5pbmNsdWRlcyhcIm51bWJlclwiKSkge1xuXHRcdFx0dGhpcy5zdGF0ZS52aXNpYmxlID0gdGhpcy5zaG91bGRCZVZpc2libGUodGhpcy5zdGF0ZS5udW1iZXIpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc2hvdWxkQmVWaXNpYmxlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS50cmltKCkgIT09IFwiXCI7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IEhCb3gge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8SEJveCByZW5kZXJUeXBlPVwiQmFyZVwiIGp1c3RpZnlDb250ZW50PVwiRW5kXCIgY2xhc3M9XCJzYXBGZUNvbnRyb2xzVW5pdEN1cnJlbmN5SGJveFwiIHZpc2libGU9e3RoaXMuYmluZFN0YXRlKFwidmlzaWJsZVwiKX0+XG5cdFx0XHRcdDxUZXh0IHRleHREaXJlY3Rpb249XCJMVFJcIiB3cmFwcGluZz1cImZhbHNlXCIgdGV4dEFsaWduPVwiRW5kXCIgdGV4dD17dGhpcy5iaW5kU3RhdGUoXCJudW1iZXJcIil9PjwvVGV4dD5cblx0XHRcdFx0PFRleHQgdGV4dERpcmVjdGlvbj1cIkxUUlwiIHdyYXBwaW5nPVwiZmFsc2VcIiB0ZXh0QWxpZ249XCJFbmRcIiB0ZXh0PXt0aGlzLmJpbmRTdGF0ZShcInVuaXRPckN1cnJlbmN5XCIpfSB3aWR0aD1cIjMuM2VtXCI+PC9UZXh0PlxuXHRcdFx0PC9IQm94PlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztNQU1xQkEsd0JBQXdCLElBQUFDLElBQUEsR0FENUNDLGNBQWMsQ0FBQyxpREFBaUQsQ0FBQyxFQUFBQyxLQUFBLEdBS2hFQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFO0VBQ1AsQ0FB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
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiYmluZFRvU3RhdGUiLCJfZGVjNCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJwcm9wZXJ0aWVzT3JJZCIsInByb3BlcnRpZXMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwic3RhdGUiLCJ2aXNpYmxlIiwic2hvdWxkQmVWaXNpYmxlIiwibnVtYmVyIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRLZXlzIiwiaW5jbHVkZXMiLCJ2YWx1ZSIsInRyaW0iLCJfanN4cyIsIkhCb3giLCJyZW5kZXJUeXBlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzcyIsImJpbmRTdGF0ZSIsImNoaWxkcmVuIiwiX2pzeCIsIlRleHQiLCJ0ZXh0RGlyZWN0aW9uIiwid3JhcHBpbmciLCJ0ZXh0QWxpZ24iLCJ0ZXh0Iiwid2lkdGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxcblx0SEJveCxcblx0eyBudW1iZXI6IHN0cmluZzsgdW5pdE9yQ3VycmVuY3k6IHN0cmluZzsgdmlzaWJsZTogYm9vbGVhbiB9XG4+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZyB8IG51bWJlcjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIHVuaXRPckN1cnJlbmN5ITogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXNPcklkOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8TnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5PiwgcHJvcGVydGllcz86IFByb3BlcnRpZXNPZjxOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3k+KSB7XG5cdFx0c3VwZXIocHJvcGVydGllc09ySWQsIHByb3BlcnRpZXMpO1xuXHRcdHRoaXMuc3RhdGUudmlzaWJsZSA9IHRoaXMuc2hvdWxkQmVWaXNpYmxlKHRoaXMuc3RhdGUubnVtYmVyKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdG9uU3RhdGVDaGFuZ2UoY2hhbmdlZEtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0aWYgKGNoYW5nZWRLZXlzPy5pbmNsdWRlcyhcIm51bWJlclwiKSkge1xuXHRcdFx0dGhpcy5zdGF0ZS52aXNpYmxlID0gdGhpcy5zaG91bGRCZVZpc2libGUodGhpcy5zdGF0ZS5udW1iZXIpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc2hvdWxkQmVWaXNpYmxlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudHJpbSgpICE9PSBcIlwiKSB8fCAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmIHZhbHVlICE9PSAwKTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogSEJveCB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxIQm94IHJlbmRlclR5cGU9XCJCYXJlXCIganVzdGlmeUNvbnRlbnQ9XCJFbmRcIiBjbGFzcz1cInNhcEZlQ29udHJvbHNVbml0Q3VycmVuY3lIYm94XCIgdmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJ2aXNpYmxlXCIpfT5cblx0XHRcdFx0PFRleHQgdGV4dERpcmVjdGlvbj1cIkxUUlwiIHdyYXBwaW5nPVwiZmFsc2VcIiB0ZXh0QWxpZ249XCJFbmRcIiB0ZXh0PXt0aGlzLmJpbmRTdGF0ZShcIm51bWJlclwiKX0+PC9UZXh0PlxuXHRcdFx0XHQ8VGV4dCB0ZXh0RGlyZWN0aW9uPVwiTFRSXCIgd3JhcHBpbmc9XCJmYWxzZVwiIHRleHRBbGlnbj1cIkVuZFwiIHRleHQ9e3RoaXMuYmluZFN0YXRlKFwidW5pdE9yQ3VycmVuY3lcIil9IHdpZHRoPVwiMy4zZW1cIj48L1RleHQ+XG5cdFx0XHQ8L0hCb3g+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O01BTXFCQSx3QkFBd0IsSUFBQUMsSUFBQSxHQUQ1Q0MsY0FBYyxDQUFDLGlEQUFp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
@@ -17,7 +17,7 @@ export default class NumberWithUnitOrCurrency extends BuildingBlockBase<
17
17
  type: "string",
18
18
  bindToState: true
19
19
  })
20
- public number!: string;
20
+ public number!: string | number;
21
21
 
22
22
  @property({
23
23
  type: "string",
@@ -38,7 +38,7 @@ export default class NumberWithUnitOrCurrency extends BuildingBlockBase<
38
38
  }
39
39
 
40
40
  private shouldBeVisible(value: unknown): boolean {
41
- return typeof value === "string" && value.trim() !== "";
41
+ return (typeof value === "string" && value.trim() !== "") || (typeof value === "number" && value !== 0);
42
42
  }
43
43
 
44
44
  createContent(): HBox {
@@ -0,0 +1,62 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport"], function (BuildingBlockBase, ClassSupport) {
6
+ "use strict";
7
+
8
+ var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
9
+ var _exports = {};
10
+ var property = ClassSupport.property;
11
+ var implementInterface = ClassSupport.implementInterface;
12
+ var defineUI5Class = ClassSupport.defineUI5Class;
13
+ function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
14
+ function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
15
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
16
+ function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
17
+ function _initializerWarningHelper(r, e) { throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform."); }
18
+ /**
19
+ * Building block to wrap a FlexBox and expose a required property.
20
+ * @private
21
+ */
22
+ let RequiredFlexBox = (_dec = defineUI5Class("sap.fe.macros.controls.RequiredFlexBox"), _dec2 = implementInterface("sap.ui.core.IFormContent"), _dec3 = property({
23
+ type: "string"
24
+ }), _dec4 = property({
25
+ type: "boolean"
26
+ }), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlockBase) {
27
+ function RequiredFlexBox() {
28
+ var _this;
29
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
+ args[_key] = arguments[_key];
31
+ }
32
+ _this = _BuildingBlockBase.call(this, ...args) || this;
33
+ _initializerDefineProperty(_this, "__implements__sap_ui_core_IFormContent", _descriptor, _this);
34
+ _initializerDefineProperty(_this, "id", _descriptor2, _this);
35
+ _initializerDefineProperty(_this, "required", _descriptor3, _this);
36
+ return _this;
37
+ }
38
+ _exports = RequiredFlexBox;
39
+ _inheritsLoose(RequiredFlexBox, _BuildingBlockBase);
40
+ return RequiredFlexBox;
41
+ }(BuildingBlockBase), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "__implements__sap_ui_core_IFormContent", [_dec2], {
42
+ configurable: true,
43
+ enumerable: true,
44
+ writable: true,
45
+ initializer: function () {
46
+ return true;
47
+ }
48
+ }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "id", [_dec3], {
49
+ configurable: true,
50
+ enumerable: true,
51
+ writable: true,
52
+ initializer: null
53
+ }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "required", [_dec4], {
54
+ configurable: true,
55
+ enumerable: true,
56
+ writable: true,
57
+ initializer: null
58
+ }), _class2)) || _class);
59
+ _exports = RequiredFlexBox;
60
+ return _exports;
61
+ }, false);
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXF1aXJlZEZsZXhCb3giLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9kZWMzIiwicHJvcGVydHkiLCJ0eXBlIiwiX2RlYzQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tCYXNlIiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIkJ1aWxkaW5nQmxvY2tCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsInByb3RvdHlwZSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSZXF1aXJlZEZsZXhCb3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrQmFzZSBmcm9tIFwic2FwL2ZlL2Jhc2UvQnVpbGRpbmdCbG9ja0Jhc2VcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBpbXBsZW1lbnRJbnRlcmZhY2UsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuXG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIHRvIHdyYXAgYSBGbGV4Qm94IGFuZCBleHBvc2UgYSByZXF1aXJlZCBwcm9wZXJ0eS5cbiAqIEBwcml2YXRlXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuUmVxdWlyZWRGbGV4Qm94XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXF1aXJlZEZsZXhCb3ggZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxDb250cm9sPiB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQgPSB0cnVlO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0aWQ/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cmVxdWlyZWQ/OiBib29sZWFuIHwgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBS0E7QUFDQTtBQUNBO0FBQ0E7RUFIQSxJQUtxQkEsZUFBZSxJQUFBQyxJQUFBLEdBRG5DQyxjQUFjLENBQUMsd0NBQXdDLENBQUMsRUFBQUMsS0FBQSxHQUV2REMsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsRUFBQUMsS0FBQSxHQUc5Q0MsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBRzVCRixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFOLElBQUEsQ0FBQVEsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxrQkFBQTtJQUFBLFNBQUFYLGdCQUFBO01BQUEsSUFBQVksS0FBQTtNQUFBLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFDLElBQUEsT0FBQUMsS0FBQSxDQUFBSixJQUFBLEdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7UUFBQUYsSUFBQSxDQUFBRSxJQUFBLElBQUFKLFNBQUEsQ0FBQUksSUFBQTtNQUFBO01BQUFOLEtBQUEsR0FBQUQsa0JBQUEsQ0FBQVEsSUFBQSxVQUFBSCxJQUFBO01BQUFJLDBCQUFBLENBQUFSLEtBQUEsNENBQUFTLFdBQUEsRUFBQVQsS0FBQTtNQUFBUSwwQkFBQSxDQUFBUixLQUFBLFFBQUFVLFlBQUEsRUFBQVYsS0FBQTtNQUFBUSwwQkFBQSxDQUFBUixLQUFBLGNBQUFXLFlBQUEsRUFBQVgsS0FBQTtNQUFBLE9BQUFBLEtBQUE7SUFBQTtJQUFBWSxRQUFBLEdBQUF4QixlQUFBO0lBQUF5QixjQUFBLENBQUF6QixlQUFBLEVBQUFXLGtCQUFBO0lBQUEsT0FBQVgsZUFBQTtFQUFBLEVBUGMwQixpQkFBaUIsR0FBQUwsV0FBQSxHQUFBTSx5QkFBQSxDQUFBakIsT0FBQSxDQUFBa0IsU0FBQSw2Q0FBQXpCLEtBQUE7SUFBQTBCLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BRXBCLElBQUk7SUFBQTtFQUFBLElBQUFWLFlBQUEsR0FBQUsseUJBQUEsQ0FBQWpCLE9BQUEsQ0FBQWtCLFNBQUEsU0FBQXZCLEtBQUE7SUFBQXdCLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBVCxZQUFBLEdBQUFJLHlCQUFBLENBQUFqQixPQUFBLENBQUFrQixTQUFBLGVBQUFwQixLQUFBO0lBQUFxQixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXRCLE9BQUEsTUFBQUQsTUFBQTtFQUFBZSxRQUFBLEdBQUF4QixlQUFBO0VBQUEsT0FBQXdCLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,20 @@
1
+ import type { CompiledBindingToolkitExpression } from "sap/fe/base/BindingToolkit";
2
+ import BuildingBlockBase from "sap/fe/base/BuildingBlockBase";
3
+ import { defineUI5Class, implementInterface, property } from "sap/fe/base/ClassSupport";
4
+ import type Control from "sap/ui/core/Control";
5
+
6
+ /**
7
+ * Building block to wrap a FlexBox and expose a required property.
8
+ * @private
9
+ */
10
+ @defineUI5Class("sap.fe.macros.controls.RequiredFlexBox")
11
+ export default class RequiredFlexBox extends BuildingBlockBase<Control> {
12
+ @implementInterface("sap.ui.core.IFormContent")
13
+ __implements__sap_ui_core_IFormContent = true;
14
+
15
+ @property({ type: "string" })
16
+ id?: string;
17
+
18
+ @property({ type: "boolean" })
19
+ required?: boolean | CompiledBindingToolkitExpression;
20
+ }
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/macros/CommonHelper", "sap/fe/macros/controls/filterbar/utils/VisualFilterUtils", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/filterBar/FilterHelper", "sap/m/VBox", "sap/ui/core/Lib"], function (ClassSupport, CommonUtils, CommonHelper, VisualFilterUtils, FilterUtils, FilterHelper, VBox, Library) {
5
+ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/macros/CommonHelper", "sap/fe/macros/controls/filterbar/utils/VisualFilterUtils", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/filterBar/FilterHelper", "sap/m/VBox", "sap/ui/core/Lib", "../../visualfilters/VisualFilterRuntime"], function (ClassSupport, CommonUtils, CommonHelper, VisualFilterUtils, FilterUtils, FilterHelper, VBox, Library, VisualFilterRuntime) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _class, _class2, _descriptor;
@@ -32,11 +32,27 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
32
32
  }
33
33
  _inheritsLoose(VisualFilter, _VBox);
34
34
  var _proto = VisualFilter.prototype;
35
+ /**
36
+ * Chart binding for the visual filter chart.
37
+ * @returns List Binding for the visual filter chart.
38
+ */
39
+ _proto.getChartBinding = function getChartBinding() {
40
+ const interactiveChart = this.getInteractiveChart();
41
+ const interactiveChartListBinding = interactiveChart?.getBinding("segments") || interactiveChart?.getBinding("bars") || interactiveChart?.getBinding("points");
42
+ if (!this._oChartBinding || this._oChartBinding !== interactiveChartListBinding) {
43
+ if (this._oChartBinding) {
44
+ this.detachDataReceivedHandler(this._oChartBinding);
45
+ }
46
+ this.attachDataRecivedHandler(interactiveChartListBinding);
47
+ this._oChartBinding = interactiveChartListBinding;
48
+ }
49
+ return this._oChartBinding;
50
+ };
35
51
  _proto.onAfterRendering = function onAfterRendering() {
36
52
  let sLabel;
37
53
  const oInteractiveChart = this.getInteractiveChart();
38
54
  const sInternalContextPath = this.data("infoPath");
39
- const oInteractiveChartListBinding = oInteractiveChart.getBinding("segments") || oInteractiveChart.getBinding("bars") || oInteractiveChart.getBinding("points");
55
+ const oInteractiveChartListBinding = this.getChartBinding();
40
56
  const oInternalModelContext = oInteractiveChart.getBindingContext("internal");
41
57
  const oResourceBundle = Library.getResourceBundleFor("sap.fe.macros");
42
58
  const bShowOverLayInitially = oInteractiveChart.data("showOverlayInitially");
@@ -111,13 +127,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
111
127
  oInternalModelContext.setProperty(sInternalContextPath, errorInfo);
112
128
  }
113
129
  }
114
- if (!this._oChartBinding || this._oChartBinding !== oInteractiveChartListBinding) {
115
- if (this._oChartBinding) {
116
- this.detachDataReceivedHandler(this._oChartBinding);
117
- }
118
- this.attachDataRecivedHandler(oInteractiveChartListBinding);
119
- this._oChartBinding = oInteractiveChartListBinding;
120
- }
121
130
  const bShowOverlay = oInternalModelContext.getProperty(sInternalContextPath) && oInternalModelContext.getProperty(sInternalContextPath).showError;
122
131
  const sChartEntityName = sEntitySetPath !== "" ? sEntitySetPath.split("/")[1].split("(")[0] : "";
123
132
  if (aParameters && aParameters.length && sFilterEntityName === sChartEntityName) {
@@ -129,7 +138,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
129
138
  // resume binding for only those visual filters that do not have a in parameter attached.
130
139
  // Bindings of visual filters with inParameters will be resumed later after considering in parameters.
131
140
  if (oInteractiveChartListBinding && oInteractiveChartListBinding.isSuspended() && !bShowOverlay) {
132
- oInteractiveChartListBinding.resume();
141
+ const visualFilterBB = VisualFilterRuntime.getParentVisualFilterControlBB(this);
142
+ visualFilterBB?._setInternalUpdatePending(undefined, false);
133
143
  }
134
144
  };
135
145
  _proto.attachDataRecivedHandler = function attachDataRecivedHandler(oInteractiveChartListBinding) {
@@ -186,4 +196,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/ma
186
196
  }), _class2)) || _class);
187
197
  return VisualFilter;
188
198
  }, false);
189
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVkJveCIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25BZnRlclJlbmRlcmluZyIsInNMYWJlbCIsIm9JbnRlcmFjdGl2ZUNoYXJ0IiwiZ2V0SW50ZXJhY3RpdmVDaGFydCIsInNJbnRlcm5hbENvbnRleHRQYXRoIiwiZGF0YSIsIm9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwib0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJvUmVzb3VyY2VCdW5kbGUiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJiU2hvd092ZXJMYXlJbml0aWFsbHkiLCJvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24iLCJTZWxlY3RPcHRpb25zIiwiYVJlcXVpcmVkUHJvcGVydGllcyIsIkNvbW1vbkhlbHBlciIsInBhcnNlQ3VzdG9tRGF0YSIsIm9NZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsInNFbnRpdHlTZXRQYXRoIiwiZ2V0UGF0aCIsIm9GaWx0ZXJCYXIiLCJnZXRQYXJlbnQiLCJnZXRNZXRhZGF0YSIsImdldEVsZW1lbnROYW1lIiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJhUHJvcGVydHlJbmZvU2V0Iiwic0ZpbHRlckVudGl0eU5hbWUiLCJpc0EiLCJnZXRDb25kaXRpb25zIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJQcm9wZXJ0eUluZm8iLCJzcGxpdCIsImFQYXJhbWV0ZXJzIiwiZmlsdGVyQ29uZGl0aW9ucyIsImdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQiLCJWaXN1YWxGaWx0ZXJVdGlscyIsImdldEN1c3RvbUNvbmRpdGlvbnMiLCJiaW5kIiwib1NlbGVjdGlvblZhcmlhbnRDb25kaXRpb25zIiwiY29udmVydEZpbHRlckNvbmRpb25zIiwibUNvbmRpdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNLZXkiLCJzZXRQcm9wZXJ0eSIsInNob3dFcnJvciIsImVycm9yTWVzc2FnZVRpdGxlIiwiZ2V0VGV4dCIsImVycm9yTWVzc2FnZSIsImdldE9iamVjdCIsImFTZWxlY3RPcHRpb25zIiwiYU5vdE1hdGNoZWRDb25kaXRpb25zIiwib1NlbGVjdE9wdGlvbiIsInB1c2giLCJQcm9wZXJ0eU5hbWUiLCIkUHJvcGVydHlQYXRoIiwiUGFyYW1ldGVycyIsIm9QYXJhbWV0ZXIiLCJzUGF0aCIsImluY2x1ZGVzIiwiZXJyb3JJbmZvIiwiZ2V0RXJyb3JJbmZvRm9yTm9Jbml0aWFsT3ZlcmxheSIsIl9vQ2hhcnRCaW5kaW5nIiwiZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlciIsImF0dGFjaERhdGFSZWNpdmVkSGFuZGxlciIsImJTaG93T3ZlcmxheSIsImdldFByb3BlcnR5Iiwic0NoYXJ0RW50aXR5TmFtZSIsInNCaW5kaW5nUGF0aCIsImdldEJpbmRpbmdQYXRoRm9yUGFyYW1ldGVycyIsImlzU3VzcGVuZGVkIiwicmVzdW1lIiwiYXR0YWNoRXZlbnQiLCJvbkludGVybmFsRGF0YVJlY2VpdmVkIiwiZGV0YWNoRXZlbnQiLCJ1bmRlZmluZWQiLCJnZXRJdGVtcyIsIm9FdmVudCIsInNJZCIsImdldElkIiwib1ZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJ2VU9NIiwidXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlIiwiZ2V0UGFyYW1ldGVyIiwiczE4bk1lc3NhZ2VUaXRsZSIsInMxOG5NZXNzYWdlIiwiYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZSIsIm9EYXRhIiwiZ2V0U291cmNlIiwiZ2V0Q3VycmVudENvbnRleHRzIiwic2V0Tm9EYXRhTWVzc2FnZSIsInNldE11bHRpVU9NTWVzc2FnZSIsIiRQYXRoIiwib0NvbnRleHRzIiwiZ2V0Q29udGV4dHMiLCJvQ29udGV4dERhdGEiLCJhcHBseVVPTVRvVGl0bGUiLCJWQm94IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJhbWV0ZXIsIFNlbGVjdE9wdGlvblR5cGUsIFNlbGVjdGlvblZhcmlhbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBWaXN1YWxGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9maWx0ZXJiYXIvdXRpbHMvVmlzdWFsRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUZpbHRlckNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB7IGdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVySGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL1Byb3BlcnR5SW5mb1wiO1xuaW1wb3J0IHR5cGUgeyBTZXJpYWxpemVkU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVCYXJDaGFydCBmcm9tIFwic2FwL3N1aXRlL3VpL21pY3JvY2hhcnQvSW50ZXJhY3RpdmVCYXJDaGFydFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVEb251dENoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZURvbnV0Q2hhcnRcIjtcbmltcG9ydCB0eXBlIEludGVyYWN0aXZlTGluZUNoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZUxpbmVDaGFydFwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHR5cGUgeyBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgeyBDb25kaXRpb25PYmplY3QgfSBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgeyBPRGF0YUxpc3RCaW5kaW5nJERhdGFSZWNlaXZlZEV2ZW50IH0gZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBNZXRhTW9kZWxUeXBlIH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xuLyoqXG4gKiBDb25zdHJ1Y3RvciBmb3IgYSBuZXcgZmlsdGVyQmFyL2FsaWduZWQvRmlsdGVySXRlbUxheW91dC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbc0lkXSBJRCBmb3IgdGhlIG5ldyBjb250cm9sLCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBpZiBubyBJRCBpcyBnaXZlblxuICogQHBhcmFtIHtvYmplY3R9IFttU2V0dGluZ3NdIEluaXRpYWwgc2V0dGluZ3MgZm9yIHRoZSBuZXcgY29udHJvbFxuICogQHNpbmNlIDEuNjEuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlciBleHRlbmRzIFZCb3ggaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfSUZvcm1Db250ZW50ID0gdHJ1ZTtcblxuXHRwcml2YXRlIF9vQ2hhcnRCaW5kaW5nPzogT0RhdGFMaXN0QmluZGluZztcblxuXHRvbkFmdGVyUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdGxldCBzTGFiZWw7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPSAob0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZyhcInNlZ21lbnRzXCIpIHx8XG5cdFx0XHRvSW50ZXJhY3RpdmVDaGFydC5nZXRCaW5kaW5nKFwiYmFyc1wiKSB8fFxuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZyhcInBvaW50c1wiKSkgYXMgT0RhdGFMaXN0QmluZGluZztcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvSW50ZXJhY3RpdmVDaGFydC5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGNvbnN0IG9SZXNvdXJjZUJ1bmRsZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUubWFjcm9zXCIpITtcblx0XHRjb25zdCBiU2hvd092ZXJMYXlJbml0aWFsbHkgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2hvd092ZXJsYXlJbml0aWFsbHlcIik7XG5cdFx0Y29uc3Qgb1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBNZXRhTW9kZWxUeXBlPFNlbGVjdGlvblZhcmlhbnRUeXBlPiA9IChvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFxuXHRcdFx0XCJzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvblwiXG5cdFx0KSBhcyBTZXJpYWxpemVkU2VsZWN0aW9uVmFyaWFudClcblx0XHRcdD8gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCIpXG5cdFx0XHQ6ICh7IFNlbGVjdE9wdGlvbnM6IFtdIH0gYXMgdW5rbm93biBhcyBNZXRhTW9kZWxUeXBlPFNlbGVjdGlvblZhcmlhbnRUeXBlPik7XG5cdFx0Y29uc3QgYVJlcXVpcmVkUHJvcGVydGllczogc3RyaW5nW10gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicmVxdWlyZWRQcm9wZXJ0aWVzXCIpXG5cdFx0XHQ/IChDb21tb25IZWxwZXIucGFyc2VDdXN0b21EYXRhKG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJyZXF1aXJlZFByb3BlcnRpZXNcIikpIGFzIHN0cmluZ1tdKVxuXHRcdFx0OiBbXTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gKG9JbnRlcmFjdGl2ZUNoYXJ0LmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Y29uc3Qgc0VudGl0eVNldFBhdGggPSBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nID8gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5nZXRQYXRoKCkgOiBcIlwiO1xuXHRcdGxldCBvRmlsdGVyQmFyID0gdGhpcy5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIEZpbHRlckJhcjtcblx0XHQvLyBUT0RPOiBSZW1vdmUgdGhpcyBwYXJ0IG9uY2UgMjE3MDIwNDM0NyBpcyBmaXhlZFxuXHRcdGlmIChvRmlsdGVyQmFyLmdldE1ldGFkYXRhKCkuZ2V0RWxlbWVudE5hbWUoKSA9PT0gXCJzYXAudWkubWRjLmZpbHRlcmJhci5wMTNuLkFkYXB0YXRpb25GaWx0ZXJCYXJcIikge1xuXHRcdFx0b0ZpbHRlckJhciA9IG9GaWx0ZXJCYXIuZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXI7XG5cdFx0fVxuXHRcdGxldCBvRmlsdGVyQmFyQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10+ID0ge307XG5cdFx0bGV0IGFQcm9wZXJ0eUluZm9TZXQ6IFByb3BlcnR5SW5mb1tdID0gW107XG5cdFx0bGV0IHNGaWx0ZXJFbnRpdHlOYW1lO1xuXHRcdGlmIChvRmlsdGVyQmFyLmlzQTxGaWx0ZXJCYXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5GaWx0ZXJCYXJcIikpIHtcblx0XHRcdG9GaWx0ZXJCYXJDb25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdFx0XHRhUHJvcGVydHlJbmZvU2V0ID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVyUHJvcGVydHlJbmZvKG9GaWx0ZXJCYXIgYXMgSUZpbHRlckNvbnRyb2wpIGFzIFByb3BlcnR5SW5mb1tdO1xuXHRcdFx0c0ZpbHRlckVudGl0eU5hbWUgPSBvRmlsdGVyQmFyLmRhdGEoXCJlbnRpdHlUeXBlXCIpLnNwbGl0KFwiL1wiKVsxXTtcblx0XHR9XG5cdFx0Y29uc3QgYVBhcmFtZXRlcnMgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicGFyYW1ldGVyc1wiKSA/IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJwYXJhbWV0ZXJzXCIpIDogW107XG5cdFx0Y29uc3QgZmlsdGVyQ29uZGl0aW9ucyA9IGdldEZpbHRlcnNDb25kaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQoXG5cdFx0XHRzRW50aXR5U2V0UGF0aCxcblx0XHRcdG9NZXRhTW9kZWwsXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5nZXRDdXN0b21Db25kaXRpb25zLmJpbmQoVmlzdWFsRmlsdGVyVXRpbHMpXG5cdFx0KTtcblx0XHRjb25zdCBvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnMgPSBWaXN1YWxGaWx0ZXJVdGlscy5jb252ZXJ0RmlsdGVyQ29uZGlvbnMoZmlsdGVyQ29uZGl0aW9ucyk7XG5cdFx0Y29uc3QgbUNvbmRpdGlvbnM6IFJlY29yZDxzdHJpbmcsIENvbmRpdGlvbk9iamVjdFtdPiA9IHt9O1xuXG5cdFx0T2JqZWN0LmtleXMob0ZpbHRlckJhckNvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0aWYgKG9GaWx0ZXJCYXJDb25kaXRpb25zW3NLZXldLmxlbmd0aCkge1xuXHRcdFx0XHRtQ29uZGl0aW9uc1tzS2V5XSA9IG9GaWx0ZXJCYXJDb25kaXRpb25zW3NLZXldO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0T2JqZWN0LmtleXMob1NlbGVjdGlvblZhcmlhbnRDb25kaXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChzS2V5OiBzdHJpbmcpIHtcblx0XHRcdGlmICghbUNvbmRpdGlvbnNbc0tleV0pIHtcblx0XHRcdFx0bUNvbmRpdGlvbnNbc0tleV0gPSBvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnNbc0tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aWYgKGJTaG93T3ZlckxheUluaXRpYWxseSA9PT0gdHJ1ZSkge1xuXHRcdFx0aWYgKCFPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pLmxlbmd0aCkge1xuXHRcdFx0XHRpZiAoYVJlcXVpcmVkUHJvcGVydGllcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7XG5cdFx0XHRcdFx0XHRzaG93RXJyb3I6IHRydWUsXG5cdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2VUaXRsZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2U6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19QUk9WSURFX0ZJTFRFUl9WQUxfTVVMVElQTEVWRlwiKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHNMYWJlbCA9XG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH0vJHthUmVxdWlyZWRQcm9wZXJ0aWVzWzBdfUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxgKSB8fFxuXHRcdFx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllc1swXTtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdHNob3dFcnJvcjogdHJ1ZSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZVRpdGxlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9TSU5HTEVWRlwiLCBzTGFiZWwpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IGFTZWxlY3RPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0XHRjb25zdCBhTm90TWF0Y2hlZENvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRcdGlmIChvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uU2VsZWN0T3B0aW9ucykge1xuXHRcdFx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5TZWxlY3RPcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKG9TZWxlY3RPcHRpb246IE1ldGFNb2RlbFR5cGU8U2VsZWN0T3B0aW9uVHlwZT4pIHtcblx0XHRcdFx0XHRcdGFTZWxlY3RPcHRpb25zLnB1c2gob1NlbGVjdE9wdGlvbi5Qcm9wZXJ0eU5hbWUhLiRQcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uUGFyYW1ldGVycykge1xuXHRcdFx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5QYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24gKG9QYXJhbWV0ZXIpIHtcblx0XHRcdFx0XHRcdGFTZWxlY3RPcHRpb25zLnB1c2goKG9QYXJhbWV0ZXIgYXMgTWV0YU1vZGVsVHlwZTxQYXJhbWV0ZXI+KS5Qcm9wZXJ0eU5hbWUhLiRQcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFSZXF1aXJlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAoc1BhdGg6IHN0cmluZykge1xuXHRcdFx0XHRcdGlmICghYVNlbGVjdE9wdGlvbnMuaW5jbHVkZXMoc1BhdGgpKSB7XG5cdFx0XHRcdFx0XHRhTm90TWF0Y2hlZENvbmRpdGlvbnMucHVzaChzUGF0aCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRjb25zdCBlcnJvckluZm8gPSBWaXN1YWxGaWx0ZXJVdGlscy5nZXRFcnJvckluZm9Gb3JOb0luaXRpYWxPdmVybGF5KFxuXHRcdFx0XHRcdGFOb3RNYXRjaGVkQ29uZGl0aW9ucyxcblx0XHRcdFx0XHRvUmVzb3VyY2VCdW5kbGUsXG5cdFx0XHRcdFx0c0VudGl0eVNldFBhdGgsXG5cdFx0XHRcdFx0b01ldGFNb2RlbFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIGVycm9ySW5mbyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLl9vQ2hhcnRCaW5kaW5nIHx8IHRoaXMuX29DaGFydEJpbmRpbmcgIT09IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdGlmICh0aGlzLl9vQ2hhcnRCaW5kaW5nKSB7XG5cdFx0XHRcdHRoaXMuZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlcih0aGlzLl9vQ2hhcnRCaW5kaW5nKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuYXR0YWNoRGF0YVJlY2l2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXHRcdGNvbnN0IGJTaG93T3ZlcmxheSA9XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgpICYmIG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCkuc2hvd0Vycm9yO1xuXHRcdGNvbnN0IHNDaGFydEVudGl0eU5hbWUgPSBzRW50aXR5U2V0UGF0aCAhPT0gXCJcIiA/IHNFbnRpdHlTZXRQYXRoLnNwbGl0KFwiL1wiKVsxXS5zcGxpdChcIihcIilbMF0gOiBcIlwiO1xuXHRcdGlmIChhUGFyYW1ldGVycyAmJiBhUGFyYW1ldGVycy5sZW5ndGggJiYgc0ZpbHRlckVudGl0eU5hbWUgPT09IHNDaGFydEVudGl0eU5hbWUpIHtcblx0XHRcdGNvbnN0IHNCaW5kaW5nUGF0aCA9IEZpbHRlclV0aWxzLmdldEJpbmRpbmdQYXRoRm9yUGFyYW1ldGVycyhcblx0XHRcdFx0b0ZpbHRlckJhciBhcyBJRmlsdGVyQ29udHJvbCxcblx0XHRcdFx0bUNvbmRpdGlvbnMsXG5cdFx0XHRcdGFQcm9wZXJ0eUluZm9TZXQsXG5cdFx0XHRcdGFQYXJhbWV0ZXJzXG5cdFx0XHQpO1xuXHRcdFx0aWYgKHNCaW5kaW5nUGF0aCkge1xuXHRcdFx0XHQob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyBhcyB7IHNQYXRoPzogc3RyaW5nIH0pLnNQYXRoID0gc0JpbmRpbmdQYXRoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyByZXN1bWUgYmluZGluZyBmb3Igb25seSB0aG9zZSB2aXN1YWwgZmlsdGVycyB0aGF0IGRvIG5vdCBoYXZlIGEgaW4gcGFyYW1ldGVyIGF0dGFjaGVkLlxuXHRcdC8vIEJpbmRpbmdzIG9mIHZpc3VhbCBmaWx0ZXJzIHdpdGggaW5QYXJhbWV0ZXJzIHdpbGwgYmUgcmVzdW1lZCBsYXRlciBhZnRlciBjb25zaWRlcmluZyBpbiBwYXJhbWV0ZXJzLlxuXHRcdGlmIChvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nICYmIG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuaXNTdXNwZW5kZWQoKSAmJiAhYlNob3dPdmVybGF5KSB7XG5cdFx0XHRvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLnJlc3VtZSgpO1xuXHRcdH1cblx0fVxuXG5cdGF0dGFjaERhdGFSZWNpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nKTogdm9pZCB7XG5cdFx0aWYgKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuYXR0YWNoRXZlbnQoXCJkYXRhUmVjZWl2ZWRcIiwge30sIHRoaXMub25JbnRlcm5hbERhdGFSZWNlaXZlZCwgdGhpcyk7XG5cdFx0XHR0aGlzLl9vQ2hhcnRCaW5kaW5nID0gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZztcblx0XHR9XG5cdH1cblxuXHRkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcpOiB2b2lkIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXRJbnRlcmFjdGl2ZUNoYXJ0KCk6IEludGVyYWN0aXZlQmFyQ2hhcnQgfCBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgfCBJbnRlcmFjdGl2ZUxpbmVDaGFydCB7XG5cdFx0cmV0dXJuICh0aGlzLmdldEl0ZW1zKClbMV0gYXMgVkJveCkuZ2V0SXRlbXMoKVswXSBhcyBJbnRlcmFjdGl2ZUJhckNoYXJ0IHwgSW50ZXJhY3RpdmVEb251dENoYXJ0IHwgSW50ZXJhY3RpdmVMaW5lQ2hhcnQ7XG5cdH1cblxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogT0RhdGFMaXN0QmluZGluZyREYXRhUmVjZWl2ZWRFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHNJZCA9IHRoaXMuZ2V0SWQoKTtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdFZpc3VhbEZpbHRlclV0aWxzLnVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb1ZpZXcsIHNJZCwgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZXJyb3JcIikpIHtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX0RBVEFfVEVYVFwiKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbnRlcm5hbENvbnRleHRQYXRoLCBvVmlldyk7XG5cdFx0fSBlbHNlIGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZGF0YVwiKSkge1xuXHRcdFx0Y29uc3Qgb0RhdGEgPSBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLnNldE5vRGF0YU1lc3NhZ2Uoc0ludGVybmFsQ29udGV4dFBhdGgsIG9SZXNvdXJjZUJ1bmRsZSwgb1ZpZXcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7fSk7XG5cdFx0XHR9XG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5zZXRNdWx0aVVPTU1lc3NhZ2Uob0RhdGEsIG9JbnRlcmFjdGl2ZUNoYXJ0LCBzSW50ZXJuYWxDb250ZXh0UGF0aCwgb1Jlc291cmNlQnVuZGxlLCBvVmlldyk7XG5cdFx0fVxuXHRcdGlmICh2VU9NICYmICgodlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aCkgfHwgKHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoKSkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0cyA9IG9FdmVudC5nZXRTb3VyY2UoKS5nZXRDb250ZXh0cygpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb0NvbnRleHRzICYmIG9Db250ZXh0c1swXS5nZXRPYmplY3QoKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5VU9NVG9UaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb0NvbnRleHREYXRhLCBvVmlldywgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBT01BLFlBQVksSUFBQUMsSUFBQSxHQURqQkMsY0FBYyxDQUFDLCtDQUErQyxDQUFDLEVBQUFDLEtBQUEsR0FFOURDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEVBQUFILElBQUEsQ0FBQUksTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxLQUFBO0lBQUEsU0FBQVAsYUFBQTtNQUFBLElBQUFRLEtBQUE7TUFBQSxTQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBQyxJQUFBLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO1FBQUFGLElBQUEsQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7TUFBQTtNQUFBTixLQUFBLEdBQUFELEtBQUEsQ0FBQVEsSUFBQSxVQUFBSCxJQUFBO01BQUFJLDBCQUFBLENBQUFSLEtBQUEsNENBQUFTLFdBQUEsRUFBQVQsS0FBQTtNQUFBLE9BQUFBLEtBQUE7SUFBQTtJQUFBVSxjQUFBLENBQUFsQixZQUFBLEVBQUFPLEtBQUE7SUFBQSxJQUFBWSxNQUFBLEdBQUFuQixZQUFBLENBQUFvQixTQUFBO0lBQUFELE1BQUEsQ0FLL0NFLGdCQUFnQixHQUFoQixTQUFBQSxnQkFBZ0JBLENBQUEsRUFBUztNQUN4QixJQUFJQyxNQUFNO01BQ1YsTUFBTUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO01BQ3BELE1BQU1DLG9CQUFvQixHQUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDLFVBQVUsQ0FBQztNQUNsRCxNQUFNQyw0QkFBNEIsR0FBSUosaUJBQWlC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
199
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVkJveCIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZ2V0Q2hhcnRCaW5kaW5nIiwiaW50ZXJhY3RpdmVDaGFydCIsImdldEludGVyYWN0aXZlQ2hhcnQiLCJpbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwiX29DaGFydEJpbmRpbmciLCJkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyIiwiYXR0YWNoRGF0YVJlY2l2ZWRIYW5kbGVyIiwib25BZnRlclJlbmRlcmluZyIsInNMYWJlbCIsIm9JbnRlcmFjdGl2ZUNoYXJ0Iiwic0ludGVybmFsQ29udGV4dFBhdGgiLCJkYXRhIiwib0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib1Jlc291cmNlQnVuZGxlIiwiTGlicmFyeSIsImdldFJlc291cmNlQnVuZGxlRm9yIiwiYlNob3dPdmVyTGF5SW5pdGlhbGx5Iiwib1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwiU2VsZWN0T3B0aW9ucyIsImFSZXF1aXJlZFByb3BlcnRpZXMiLCJDb21tb25IZWxwZXIiLCJwYXJzZUN1c3RvbURhdGEiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJzRW50aXR5U2V0UGF0aCIsImdldFBhdGgiLCJvRmlsdGVyQmFyIiwiZ2V0UGFyZW50IiwiZ2V0TWV0YWRhdGEiLCJnZXRFbGVtZW50TmFtZSIsIm9GaWx0ZXJCYXJDb25kaXRpb25zIiwiYVByb3BlcnR5SW5mb1NldCIsInNGaWx0ZXJFbnRpdHlOYW1lIiwiaXNBIiwiZ2V0Q29uZGl0aW9ucyIsIkZpbHRlclV0aWxzIiwiZ2V0RmlsdGVyUHJvcGVydHlJbmZvIiwic3BsaXQiLCJhUGFyYW1ldGVycyIsImZpbHRlckNvbmRpdGlvbnMiLCJnZXRGaWx0ZXJzQ29uZGl0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwiVmlzdWFsRmlsdGVyVXRpbHMiLCJnZXRDdXN0b21Db25kaXRpb25zIiwiYmluZCIsIm9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyIsImNvbnZlcnRGaWx0ZXJDb25kaW9ucyIsIm1Db25kaXRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJzS2V5Iiwic2V0UHJvcGVydHkiLCJzaG93RXJyb3IiLCJlcnJvck1lc3NhZ2VUaXRsZSIsImdldFRleHQiLCJlcnJvck1lc3NhZ2UiLCJnZXRPYmplY3QiLCJhU2VsZWN0T3B0aW9ucyIsImFOb3RNYXRjaGVkQ29uZGl0aW9ucyIsIm9TZWxlY3RPcHRpb24iLCJwdXNoIiwiUHJvcGVydHlOYW1lIiwiJFByb3BlcnR5UGF0aCIsIlBhcmFtZXRlcnMiLCJvUGFyYW1ldGVyIiwic1BhdGgiLCJpbmNsdWRlcyIsImVycm9ySW5mbyIsImdldEVycm9ySW5mb0Zvck5vSW5pdGlhbE92ZXJsYXkiLCJiU2hvd092ZXJsYXkiLCJnZXRQcm9wZXJ0eSIsInNDaGFydEVudGl0eU5hbWUiLCJzQmluZGluZ1BhdGgiLCJnZXRCaW5kaW5nUGF0aEZvclBhcmFtZXRlcnMiLCJpc1N1c3BlbmRlZCIsInZpc3VhbEZpbHRlckJCIiwiVmlzdWFsRmlsdGVyUnVudGltZSIsImdldFBhcmVudFZpc3VhbEZpbHRlckNvbnRyb2xCQiIsIl9zZXRJbnRlcm5hbFVwZGF0ZVBlbmRpbmciLCJ1bmRlZmluZWQiLCJhdHRhY2hFdmVudCIsIm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQiLCJkZXRhY2hFdmVudCIsImdldEl0ZW1zIiwib0V2ZW50Iiwic0lkIiwiZ2V0SWQiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsInZVT00iLCJ1cGRhdGVDaGFydFNjYWxlRmFjdG9yVGl0bGUiLCJnZXRQYXJhbWV0ZXIiLCJzMThuTWVzc2FnZVRpdGxlIiwiczE4bk1lc3NhZ2UiLCJhcHBseUVycm9yTWVzc2FnZUFuZFRpdGxlIiwib0RhdGEiLCJnZXRTb3VyY2UiLCJnZXRDdXJyZW50Q29udGV4dHMiLCJzZXROb0RhdGFNZXNzYWdlIiwic2V0TXVsdGlVT01NZXNzYWdlIiwiJFBhdGgiLCJvQ29udGV4dHMiLCJnZXRDb250ZXh0cyIsIm9Db250ZXh0RGF0YSIsImFwcGx5VU9NVG9UaXRsZSIsIlZCb3giLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcmFtZXRlciwgU2VsZWN0T3B0aW9uVHlwZSwgU2VsZWN0aW9uVmFyaWFudFR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgaW1wbGVtZW50SW50ZXJmYWNlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IFZpc3VhbEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL2ZpbHRlcmJhci91dGlscy9WaXN1YWxGaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBJRmlsdGVyQ29udHJvbCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHsgZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9GaWx0ZXJIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvUHJvcGVydHlJbmZvXCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgdHlwZSBJbnRlcmFjdGl2ZUJhckNoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9JbnRlcmFjdGl2ZUJhckNoYXJ0XCI7XG5pbXBvcnQgdHlwZSBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgZnJvbSBcInNhcC9zdWl0ZS91aS9taWNyb2NoYXJ0L0ludGVyYWN0aXZlRG9udXRDaGFydFwiO1xuaW1wb3J0IHR5cGUgSW50ZXJhY3RpdmVMaW5lQ2hhcnQgZnJvbSBcInNhcC9zdWl0ZS91aS9taWNyb2NoYXJ0L0ludGVyYWN0aXZlTGluZUNoYXJ0XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSB7IElGb3JtQ29udGVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSB7IENvbmRpdGlvbk9iamVjdCB9IGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSB7IE9EYXRhTGlzdEJpbmRpbmckRGF0YVJlY2VpdmVkRXZlbnQgfSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IE1ldGFNb2RlbFR5cGUgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyUnVudGltZSBmcm9tIFwiLi4vLi4vdmlzdWFsZmlsdGVycy9WaXN1YWxGaWx0ZXJSdW50aW1lXCI7XG4vKipcbiAqIENvbnN0cnVjdG9yIGZvciBhIG5ldyBmaWx0ZXJCYXIvYWxpZ25lZC9GaWx0ZXJJdGVtTGF5b3V0LlxuICogQHBhcmFtIHtzdHJpbmd9IFtzSWRdIElEIGZvciB0aGUgbmV3IGNvbnRyb2wsIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGlmIG5vIElEIGlzIGdpdmVuXG4gKiBAcGFyYW0ge29iamVjdH0gW21TZXR0aW5nc10gSW5pdGlhbCBzZXR0aW5ncyBmb3IgdGhlIG5ldyBjb250cm9sXG4gKiBAc2luY2UgMS42MS4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlclwiKVxuY2xhc3MgVmlzdWFsRmlsdGVyIGV4dGVuZHMgVkJveCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQgPSB0cnVlO1xuXG5cdHByaXZhdGUgX29DaGFydEJpbmRpbmc/OiBPRGF0YUxpc3RCaW5kaW5nO1xuXG5cdC8qKlxuXHQgKiBDaGFydCBiaW5kaW5nIGZvciB0aGUgdmlzdWFsIGZpbHRlciBjaGFydC5cblx0ICogQHJldHVybnMgTGlzdCBCaW5kaW5nIGZvciB0aGUgdmlzdWFsIGZpbHRlciBjaGFydC5cblx0ICovXG5cdHB1YmxpYyBnZXRDaGFydEJpbmRpbmcoKTogT0RhdGFMaXN0QmluZGluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgaW50ZXJhY3RpdmVDaGFydCA9IHRoaXMuZ2V0SW50ZXJhY3RpdmVDaGFydCgpO1xuXHRcdGNvbnN0IGludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyA9IChpbnRlcmFjdGl2ZUNoYXJ0Py5nZXRCaW5kaW5nKFwic2VnbWVudHNcIikgfHxcblx0XHRcdGludGVyYWN0aXZlQ2hhcnQ/LmdldEJpbmRpbmcoXCJiYXJzXCIpIHx8XG5cdFx0XHRpbnRlcmFjdGl2ZUNoYXJ0Py5nZXRCaW5kaW5nKFwicG9pbnRzXCIpKSBhcyBPRGF0YUxpc3RCaW5kaW5nO1xuXG5cdFx0aWYgKCF0aGlzLl9vQ2hhcnRCaW5kaW5nIHx8IHRoaXMuX29DaGFydEJpbmRpbmcgIT09IGludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0aWYgKHRoaXMuX29DaGFydEJpbmRpbmcpIHtcblx0XHRcdFx0dGhpcy5kZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKHRoaXMuX29DaGFydEJpbmRpbmcpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5hdHRhY2hEYXRhUmVjaXZlZEhhbmRsZXIoaW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nKTtcblx0XHRcdHRoaXMuX29DaGFydEJpbmRpbmcgPSBpbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX29DaGFydEJpbmRpbmc7XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdGxldCBzTGFiZWw7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPSB0aGlzLmdldENoYXJ0QmluZGluZygpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IGJTaG93T3ZlckxheUluaXRpYWxseSA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJzaG93T3ZlcmxheUluaXRpYWxseVwiKTtcblx0XHRjb25zdCBvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb246IE1ldGFNb2RlbFR5cGU8U2VsZWN0aW9uVmFyaWFudFR5cGU+ID0gKG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXG5cdFx0XHRcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCJcblx0XHQpIGFzIFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50KVxuXHRcdFx0PyBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2VsZWN0aW9uVmFyaWFudEFubm90YXRpb25cIilcblx0XHRcdDogKHsgU2VsZWN0T3B0aW9uczogW10gfSBhcyB1bmtub3duIGFzIE1ldGFNb2RlbFR5cGU8U2VsZWN0aW9uVmFyaWFudFR5cGU+KTtcblx0XHRjb25zdCBhUmVxdWlyZWRQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJyZXF1aXJlZFByb3BlcnRpZXNcIilcblx0XHRcdD8gKENvbW1vbkhlbHBlci5wYXJzZUN1c3RvbURhdGEob0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInJlcXVpcmVkUHJvcGVydGllc1wiKSkgYXMgc3RyaW5nW10pXG5cdFx0XHQ6IFtdO1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSAob0ludGVyYWN0aXZlQ2hhcnQuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPyBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLmdldFBhdGgoKSA6IFwiXCI7XG5cdFx0bGV0IG9GaWx0ZXJCYXIgPSB0aGlzLmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyO1xuXHRcdC8vIFRPRE86IFJlbW92ZSB0aGlzIHBhcnQgb25jZSAyMTcwMjA0MzQ3IGlzIGZpeGVkXG5cdFx0aWYgKG9GaWx0ZXJCYXIuZ2V0TWV0YWRhdGEoKS5nZXRFbGVtZW50TmFtZSgpID09PSBcInNhcC51aS5tZGMuZmlsdGVyYmFyLnAxM24uQWRhcHRhdGlvbkZpbHRlckJhclwiKSB7XG5cdFx0XHRvRmlsdGVyQmFyID0gb0ZpbHRlckJhci5nZXRQYXJlbnQoKT8uZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIEZpbHRlckJhcjtcblx0XHR9XG5cdFx0bGV0IG9GaWx0ZXJCYXJDb25kaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBDb25kaXRpb25PYmplY3RbXT4gPSB7fTtcblx0XHRsZXQgYVByb3BlcnR5SW5mb1NldDogUHJvcGVydHlJbmZvW10gPSBbXTtcblx0XHRsZXQgc0ZpbHRlckVudGl0eU5hbWU7XG5cdFx0aWYgKG9GaWx0ZXJCYXIuaXNBPEZpbHRlckJhcj4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkZpbHRlckJhclwiKSkge1xuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvRmlsdGVyQmFyLmdldENvbmRpdGlvbnMoKTtcblx0XHRcdGFQcm9wZXJ0eUluZm9TZXQgPSBGaWx0ZXJVdGlscy5nZXRGaWx0ZXJQcm9wZXJ0eUluZm8ob0ZpbHRlckJhciBhcyBJRmlsdGVyQ29udHJvbCkgYXMgUHJvcGVydHlJbmZvW107XG5cdFx0XHRzRmlsdGVyRW50aXR5TmFtZSA9IG9GaWx0ZXJCYXIuZGF0YShcImVudGl0eVR5cGVcIikuc3BsaXQoXCIvXCIpWzFdO1xuXHRcdH1cblx0XHRjb25zdCBhUGFyYW1ldGVycyA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJwYXJhbWV0ZXJzXCIpID8gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInBhcmFtZXRlcnNcIikgOiBbXTtcblx0XHRjb25zdCBmaWx0ZXJDb25kaXRpb25zID0gZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudChcblx0XHRcdHNFbnRpdHlTZXRQYXRoLFxuXHRcdFx0b01ldGFNb2RlbCxcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbixcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmdldEN1c3RvbUNvbmRpdGlvbnMuYmluZChWaXN1YWxGaWx0ZXJVdGlscylcblx0XHQpO1xuXHRcdGNvbnN0IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyA9IFZpc3VhbEZpbHRlclV0aWxzLmNvbnZlcnRGaWx0ZXJDb25kaW9ucyhmaWx0ZXJDb25kaXRpb25zKTtcblx0XHRjb25zdCBtQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10+ID0ge307XG5cblx0XHRPYmplY3Qua2V5cyhvRmlsdGVyQmFyQ29uZGl0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0XHRpZiAob0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV0ubGVuZ3RoKSB7XG5cdFx0XHRcdG1Db25kaXRpb25zW3NLZXldID0gb0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0aWYgKCFtQ29uZGl0aW9uc1tzS2V5XSkge1xuXHRcdFx0XHRtQ29uZGl0aW9uc1tzS2V5XSA9IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9uc1tzS2V5XTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRpZiAoYlNob3dPdmVyTGF5SW5pdGlhbGx5ID09PSB0cnVlKSB7XG5cdFx0XHRpZiAoIU9iamVjdC5rZXlzKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbikubGVuZ3RoKSB7XG5cdFx0XHRcdGlmIChhUmVxdWlyZWRQcm9wZXJ0aWVzLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdHNob3dFcnJvcjogdHJ1ZSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZVRpdGxlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9NVUxUSVBMRVZGXCIpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c0xhYmVsID1cblx0XHRcdFx0XHRcdG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NFbnRpdHlTZXRQYXRofS8ke2FSZXF1aXJlZFByb3BlcnRpZXNbMF19QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbGApIHx8XG5cdFx0XHRcdFx0XHRhUmVxdWlyZWRQcm9wZXJ0aWVzWzBdO1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwge1xuXHRcdFx0XHRcdFx0c2hvd0Vycm9yOiB0cnVlLFxuXHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlVGl0bGU6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpLFxuXHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfUFJPVklERV9GSUxURVJfVkFMX1NJTkdMRVZGXCIsIHNMYWJlbClcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgYVNlbGVjdE9wdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdFx0XHRcdGNvbnN0IGFOb3RNYXRjaGVkQ29uZGl0aW9uczogc3RyaW5nW10gPSBbXTtcblx0XHRcdFx0aWYgKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5TZWxlY3RPcHRpb25zKSB7XG5cdFx0XHRcdFx0b1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLlNlbGVjdE9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAob1NlbGVjdE9wdGlvbjogTWV0YU1vZGVsVHlwZTxTZWxlY3RPcHRpb25UeXBlPikge1xuXHRcdFx0XHRcdFx0YVNlbGVjdE9wdGlvbnMucHVzaChvU2VsZWN0T3B0aW9uLlByb3BlcnR5TmFtZSEuJFByb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5QYXJhbWV0ZXJzKSB7XG5cdFx0XHRcdFx0b1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLlBhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbiAob1BhcmFtZXRlcikge1xuXHRcdFx0XHRcdFx0YVNlbGVjdE9wdGlvbnMucHVzaCgob1BhcmFtZXRlciBhcyBNZXRhTW9kZWxUeXBlPFBhcmFtZXRlcj4pLlByb3BlcnR5TmFtZSEuJFByb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChzUGF0aDogc3RyaW5nKSB7XG5cdFx0XHRcdFx0aWYgKCFhU2VsZWN0T3B0aW9ucy5pbmNsdWRlcyhzUGF0aCkpIHtcblx0XHRcdFx0XHRcdGFOb3RNYXRjaGVkQ29uZGl0aW9ucy5wdXNoKHNQYXRoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGNvbnN0IGVycm9ySW5mbyA9IFZpc3VhbEZpbHRlclV0aWxzLmdldEVycm9ySW5mb0Zvck5vSW5pdGlhbE92ZXJsYXkoXG5cdFx0XHRcdFx0YU5vdE1hdGNoZWRDb25kaXRpb25zLFxuXHRcdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZSxcblx0XHRcdFx0XHRzRW50aXR5U2V0UGF0aCxcblx0XHRcdFx0XHRvTWV0YU1vZGVsXG5cdFx0XHRcdCk7XG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwgZXJyb3JJbmZvKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBiU2hvd092ZXJsYXkgPVxuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoKSAmJiBvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgpLnNob3dFcnJvcjtcblx0XHRjb25zdCBzQ2hhcnRFbnRpdHlOYW1lID0gc0VudGl0eVNldFBhdGggIT09IFwiXCIgPyBzRW50aXR5U2V0UGF0aC5zcGxpdChcIi9cIilbMV0uc3BsaXQoXCIoXCIpWzBdIDogXCJcIjtcblx0XHRpZiAoYVBhcmFtZXRlcnMgJiYgYVBhcmFtZXRlcnMubGVuZ3RoICYmIHNGaWx0ZXJFbnRpdHlOYW1lID09PSBzQ2hhcnRFbnRpdHlOYW1lKSB7XG5cdFx0XHRjb25zdCBzQmluZGluZ1BhdGggPSBGaWx0ZXJVdGlscy5nZXRCaW5kaW5nUGF0aEZvclBhcmFtZXRlcnMoXG5cdFx0XHRcdG9GaWx0ZXJCYXIgYXMgSUZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdG1Db25kaXRpb25zLFxuXHRcdFx0XHRhUHJvcGVydHlJbmZvU2V0LFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblx0XHRcdGlmIChzQmluZGluZ1BhdGgpIHtcblx0XHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgYXMgeyBzUGF0aD86IHN0cmluZyB9KS5zUGF0aCA9IHNCaW5kaW5nUGF0aDtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gcmVzdW1lIGJpbmRpbmcgZm9yIG9ubHkgdGhvc2UgdmlzdWFsIGZpbHRlcnMgdGhhdCBkbyBub3QgaGF2ZSBhIGluIHBhcmFtZXRlciBhdHRhY2hlZC5cblx0XHQvLyBCaW5kaW5ncyBvZiB2aXN1YWwgZmlsdGVycyB3aXRoIGluUGFyYW1ldGVycyB3aWxsIGJlIHJlc3VtZWQgbGF0ZXIgYWZ0ZXIgY29uc2lkZXJpbmcgaW4gcGFyYW1ldGVycy5cblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZyAmJiBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLmlzU3VzcGVuZGVkKCkgJiYgIWJTaG93T3ZlcmxheSkge1xuXHRcdFx0Y29uc3QgdmlzdWFsRmlsdGVyQkIgPSBWaXN1YWxGaWx0ZXJSdW50aW1lLmdldFBhcmVudFZpc3VhbEZpbHRlckNvbnRyb2xCQih0aGlzKTtcblx0XHRcdHZpc3VhbEZpbHRlckJCPy5fc2V0SW50ZXJuYWxVcGRhdGVQZW5kaW5nKHVuZGVmaW5lZCwgZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdGF0dGFjaERhdGFSZWNpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nKTogdm9pZCB7XG5cdFx0aWYgKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuYXR0YWNoRXZlbnQoXCJkYXRhUmVjZWl2ZWRcIiwge30sIHRoaXMub25JbnRlcm5hbERhdGFSZWNlaXZlZCwgdGhpcyk7XG5cdFx0XHR0aGlzLl9vQ2hhcnRCaW5kaW5nID0gb0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZztcblx0XHR9XG5cdH1cblxuXHRkZXRhY2hEYXRhUmVjZWl2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcpOiB2b2lkIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXRJbnRlcmFjdGl2ZUNoYXJ0KCk6IEludGVyYWN0aXZlQmFyQ2hhcnQgfCBJbnRlcmFjdGl2ZURvbnV0Q2hhcnQgfCBJbnRlcmFjdGl2ZUxpbmVDaGFydCB7XG5cdFx0cmV0dXJuICh0aGlzLmdldEl0ZW1zKClbMV0gYXMgVkJveCkuZ2V0SXRlbXMoKVswXSBhcyBJbnRlcmFjdGl2ZUJhckNoYXJ0IHwgSW50ZXJhY3RpdmVEb251dENoYXJ0IHwgSW50ZXJhY3RpdmVMaW5lQ2hhcnQ7XG5cdH1cblxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogT0RhdGFMaXN0QmluZGluZyREYXRhUmVjZWl2ZWRFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHNJZCA9IHRoaXMuZ2V0SWQoKTtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSB0aGlzLmdldEludGVyYWN0aXZlQ2hhcnQoKTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5tYWNyb3NcIikhO1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdFZpc3VhbEZpbHRlclV0aWxzLnVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb1ZpZXcsIHNJZCwgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZXJyb3JcIikpIHtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX0RBVEFfVEVYVFwiKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbnRlcm5hbENvbnRleHRQYXRoLCBvVmlldyk7XG5cdFx0fSBlbHNlIGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZGF0YVwiKSkge1xuXHRcdFx0Y29uc3Qgb0RhdGEgPSBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLnNldE5vRGF0YU1lc3NhZ2Uoc0ludGVybmFsQ29udGV4dFBhdGgsIG9SZXNvdXJjZUJ1bmRsZSwgb1ZpZXcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7fSk7XG5cdFx0XHR9XG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5zZXRNdWx0aVVPTU1lc3NhZ2Uob0RhdGEsIG9JbnRlcmFjdGl2ZUNoYXJ0LCBzSW50ZXJuYWxDb250ZXh0UGF0aCwgb1Jlc291cmNlQnVuZGxlLCBvVmlldyk7XG5cdFx0fVxuXHRcdGlmICh2VU9NICYmICgodlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aCkgfHwgKHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoKSkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0cyA9IG9FdmVudC5nZXRTb3VyY2UoKS5nZXRDb250ZXh0cygpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb0NvbnRleHRzICYmIG9Db250ZXh0c1swXS5nZXRPYmplY3QoKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5VU9NVG9UaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb0NvbnRleHREYXRhLCBvVmlldywgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBT01BLFlBQVksSUFBQUMsSUFBQSxHQURqQkMsY0FBYyxDQUFD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
@@ -21,6 +21,7 @@ import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
21
21
  import type { ODataListBinding$DataReceivedEvent } from "sap/ui/model/odata/v4/ODataListBinding";
22
22
  import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
23
23
  import type { MetaModelType } from "types/metamodel_types";
24
+ import VisualFilterRuntime from "../../visualfilters/VisualFilterRuntime";
24
25
  /**
25
26
  * Constructor for a new filterBar/aligned/FilterItemLayout.
26
27
  * @param {string} [sId] ID for the new control, generated automatically if no ID is given
@@ -34,13 +35,32 @@ class VisualFilter extends VBox implements IFormContent {
34
35
 
35
36
  private _oChartBinding?: ODataListBinding;
36
37
 
38
+ /**
39
+ * Chart binding for the visual filter chart.
40
+ * @returns List Binding for the visual filter chart.
41
+ */
42
+ public getChartBinding(): ODataListBinding | undefined {
43
+ const interactiveChart = this.getInteractiveChart();
44
+ const interactiveChartListBinding = (interactiveChart?.getBinding("segments") ||
45
+ interactiveChart?.getBinding("bars") ||
46
+ interactiveChart?.getBinding("points")) as ODataListBinding;
47
+
48
+ if (!this._oChartBinding || this._oChartBinding !== interactiveChartListBinding) {
49
+ if (this._oChartBinding) {
50
+ this.detachDataReceivedHandler(this._oChartBinding);
51
+ }
52
+ this.attachDataRecivedHandler(interactiveChartListBinding);
53
+ this._oChartBinding = interactiveChartListBinding;
54
+ }
55
+
56
+ return this._oChartBinding;
57
+ }
58
+
37
59
  onAfterRendering(): void {
38
60
  let sLabel;
39
61
  const oInteractiveChart = this.getInteractiveChart();
40
62
  const sInternalContextPath = this.data("infoPath");
41
- const oInteractiveChartListBinding = (oInteractiveChart.getBinding("segments") ||
42
- oInteractiveChart.getBinding("bars") ||
43
- oInteractiveChart.getBinding("points")) as ODataListBinding;
63
+ const oInteractiveChartListBinding = this.getChartBinding();
44
64
  const oInternalModelContext = oInteractiveChart.getBindingContext("internal") as InternalModelContext;
45
65
  const oResourceBundle = Library.getResourceBundleFor("sap.fe.macros")!;
46
66
  const bShowOverLayInitially = oInteractiveChart.data("showOverlayInitially");
@@ -135,13 +155,6 @@ class VisualFilter extends VBox implements IFormContent {
135
155
  }
136
156
  }
137
157
 
138
- if (!this._oChartBinding || this._oChartBinding !== oInteractiveChartListBinding) {
139
- if (this._oChartBinding) {
140
- this.detachDataReceivedHandler(this._oChartBinding);
141
- }
142
- this.attachDataRecivedHandler(oInteractiveChartListBinding);
143
- this._oChartBinding = oInteractiveChartListBinding;
144
- }
145
158
  const bShowOverlay =
146
159
  oInternalModelContext.getProperty(sInternalContextPath) && oInternalModelContext.getProperty(sInternalContextPath).showError;
147
160
  const sChartEntityName = sEntitySetPath !== "" ? sEntitySetPath.split("/")[1].split("(")[0] : "";
@@ -159,7 +172,8 @@ class VisualFilter extends VBox implements IFormContent {
159
172
  // resume binding for only those visual filters that do not have a in parameter attached.
160
173
  // Bindings of visual filters with inParameters will be resumed later after considering in parameters.
161
174
  if (oInteractiveChartListBinding && oInteractiveChartListBinding.isSuspended() && !bShowOverlay) {
162
- oInteractiveChartListBinding.resume();
175
+ const visualFilterBB = VisualFilterRuntime.getParentVisualFilterControlBB(this);
176
+ visualFilterBB?._setInternalUpdatePending(undefined, false);
163
177
  }
164
178
  }
165
179
 
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContainer", "sap/ui/Device", "sap/ui/core/library", "sap/ui/mdc/filterbar/IFilterContainer"], function (ClassSupport, FlexBox, HeaderContainer, Device, coreLibrabry, IFilterContainer) {
5
+ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContainer", "sap/ui/Device", "sap/ui/core/library", "sap/ui/mdc/filterbar/IFilterContainer", "./utils/VisualFilterUtils"], function (ClassSupport, FlexBox, HeaderContainer, Device, coreLibrabry, IFilterContainer, VisualFilterUtils) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _class, _class2, _descriptor;
@@ -129,6 +129,15 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContain
129
129
  _proto.setAllFilterFields = function setAllFilterFields(aFilterFields, aVisualFilterFields) {
130
130
  this.aAllFilterFields = aFilterFields;
131
131
  this.aVisualFilterFields = aVisualFilterFields;
132
+ }
133
+
134
+ /**
135
+ * Enables or disables the chart binding for visual filters in this container.
136
+ * @param enable Whether to enable or disable the chart binding
137
+ * @param diffState Optional parameter to specify the changed filter field paths, incase of enablement.
138
+ */;
139
+ _proto.enableChartBinding = function enableChartBinding(enable, diffState) {
140
+ VisualFilterUtils.enableChartBinding(this.aVisualFilterFields ?? {}, enable, diffState);
132
141
  };
133
142
  return VisualFilterContainer;
134
143
  }(IFilterContainer), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "_layout", [_dec2], {
@@ -139,4 +148,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap/m/HeaderContain
139
148
  }), _class2)) || _class);
140
149
  return VisualFilterContainer;
141
150
  }, false);
142
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImFnZ3JlZ2F0aW9uIiwidHlwZSIsIm11bHRpcGxlIiwidmlzaWJpbGl0eSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfSUZpbHRlckNvbnRhaW5lciIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsImFWaXN1YWxGaWx0ZXJGaWVsZHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJPcmllbnRhdGlvbiIsImNvcmVMaWJyYWJyeSIsInNPcmllbnRhdGlvbiIsIkRldmljZSIsInN5c3RlbSIsInBob25lIiwiVmVydGljYWwiLCJ1bmRlZmluZWQiLCJzRGlyZWN0aW9uIiwib0hlYWRlckNvbnRhaW5lciIsIkhlYWRlckNvbnRhaW5lciIsIm9yaWVudGF0aW9uIiwib0J1dHRvbkZsZXhCb3giLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50Iiwib0xheW91dCIsImRpcmVjdGlvbiIsIml0ZW1zIiwic2V0UGFyZW50IiwiYUFsbEZpbHRlckZpZWxkcyIsImV4aXQiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiZGVzdHJveSIsImluc2VydEZpbHRlckZpZWxkIiwib0NvbnRyb2wiLCJpSW5kZXgiLCJvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9mbkdldENvbnRlbnRDb3B5IiwiZ2V0Q29udGVudCIsImFDb250ZW50IiwicHVzaCIsIl9vRmlsdGVyRmllbGQiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiYWRkRXZlbnREZWxlZ2F0ZSIsIm9WaXN1YWxGaWx0ZXJzIiwic29tZSIsIm9Jbm5lckNvbnRyb2wiLCJzRkZJZCIsImdldElkIiwiaXNBIiwic2V0Q29udGVudCIsImluc2VydENvbnRlbnQiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsInJlbW92ZUNvbnRlbnQiLCJyZW1vdmVBbGxGaWx0ZXJGaWVsZHMiLCJyZW1vdmVBbGxDb250ZW50IiwiZ2V0RmlsdGVyRmllbGRzIiwiYWRkQnV0dG9uIiwiYWRkSXRlbSIsImdldEFsbEJ1dHRvbnMiLCJnZXRJdGVtcyIsInJldmVyc2UiLCJyZW1vdmVCdXR0b24iLCJyZW1vdmVJdGVtIiwiZmlsdGVyIiwiZmlsdGVyRmllbGRMYXlvdXQiLCJpc0Rlc3Ryb3llZCIsInNldEFsbEZpbHRlckZpZWxkcyIsImFGaWx0ZXJGaWVsZHMiLCJJRmlsdGVyQ29udGFpbmVyIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWdncmVnYXRpb24sIGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgVmlzdWFsRmlsdGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL2ZpbHRlcmJhci9WaXN1YWxGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRmxleEJveCBmcm9tIFwic2FwL20vRmxleEJveFwiO1xuaW1wb3J0IEhlYWRlckNvbnRhaW5lciBmcm9tIFwic2FwL20vSGVhZGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgRGV2aWNlIGZyb20gXCJzYXAvdWkvRGV2aWNlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgY29yZUxpYnJhYnJ5IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IElGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL0lGaWx0ZXJDb250YWluZXJcIjtcbi8qKlxuICogQ29uc3RydWN0b3IgZm9yIGEgbmV3IFZpc3VhbCBGaWx0ZXIgQ29udGFpbmVyLlxuICogVXNlZCBmb3IgdmlzdWFsIGZpbHRlcnMuXG4gKlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlckNvbnRhaW5lciBleHRlbmRzIElGaWx0ZXJDb250YWluZXIge1xuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZSxcblx0XHR2aXNpYmlsaXR5OiBcImhpZGRlblwiXG5cdH0pXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBoaWRkZW4gYWdncmVnYXRpb24gdG8gaG9sZCB0aGUgaW5uZXIgbGF5b3V0LlxuXHQgKi9cblx0X2xheW91dCE6IENvbnRyb2w7XG5cblx0b0hlYWRlckNvbnRhaW5lcj86IEhlYWRlckNvbnRhaW5lcjtcblxuXHRvQnV0dG9uRmxleEJveD86IEZsZXhCb3g7XG5cblx0b0xheW91dCE6IEZsZXhCb3g7XG5cblx0YUFsbEZpbHRlckZpZWxkcyE6IEZpbHRlckZpZWxkW107XG5cblx0YVZpc3VhbEZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIFZpc3VhbEZpbHRlcj4gPSB7fTtcblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHN1cGVyLmluaXQoKTtcblx0XHRjb25zdCBPcmllbnRhdGlvbiA9IGNvcmVMaWJyYWJyeS5PcmllbnRhdGlvbjtcblxuXHRcdGNvbnN0IHNPcmllbnRhdGlvbiA9IERldmljZS5zeXN0ZW0ucGhvbmUgPyBPcmllbnRhdGlvbi5WZXJ0aWNhbCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBzRGlyZWN0aW9uID0gRGV2aWNlLnN5c3RlbS5waG9uZSA/IFwiQ29sdW1uUmV2ZXJzZVwiIDogXCJDb2x1bW5cIjtcblxuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciA9IG5ldyBIZWFkZXJDb250YWluZXIoe1xuXHRcdFx0b3JpZW50YXRpb246IHNPcmllbnRhdGlvblxuXHRcdH0pO1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ggPSBuZXcgRmxleEJveCh7XG5cdFx0XHRhbGlnbkl0ZW1zOiBcIkVuZFwiLFxuXHRcdFx0anVzdGlmeUNvbnRlbnQ6IFwiRW5kXCJcblx0XHR9KTtcblxuXHRcdHRoaXMub0xheW91dCA9IG5ldyBGbGV4Qm94KHtcblx0XHRcdGRpcmVjdGlvbjogc0RpcmVjdGlvbiwgLy8gRGlyZWN0aW9uIGlzIENvbHVtbiBSZXZlcnNlIGZvciBQaG9uZVxuXHRcdFx0aXRlbXM6IFt0aGlzLm9IZWFkZXJDb250YWluZXIsIHRoaXMub0J1dHRvbkZsZXhCb3hdXG5cdFx0fSk7XG5cdFx0dGhpcy5vTGF5b3V0LnNldFBhcmVudCh0aGlzKTtcblxuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IFtdO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IHt9O1xuXHR9XG5cblx0ZXhpdCgpOiB2b2lkIHtcblx0XHQvLyBkZXN0cm95IGxheW91dFxuXHRcdHN1cGVyLmV4aXQoKTtcblx0XHQvLyBkZXN0cm95IGFsbCBmaWx0ZXIgZmllbGRzIHdoaWNoIGFyZSBub3QgaW4gdGhlIGxheW91dFxuXHRcdGNvbnN0IGFBbGxGaWx0ZXJGaWVsZHMgPSB0aGlzLmdldEFsbEZpbHRlckZpZWxkcygpO1xuXHRcdGFBbGxGaWx0ZXJGaWVsZHMuZm9yRWFjaChmdW5jdGlvbiAob0ZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuXHRcdFx0b0ZpbHRlckZpZWxkLmRlc3Ryb3koKTtcblx0XHR9KTtcblx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIgPSB1bmRlZmluZWQ7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IHVuZGVmaW5lZDtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBbXTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0Ly8gQHRzLWlnbm9yZVxuXHRpbnNlcnRGaWx0ZXJGaWVsZChcblx0XHRvQ29udHJvbDogT21pdDxGaWx0ZXJGaWVsZCwgXCJnZXRDb250ZW50XCI+ICYge1xuXHRcdFx0X2ZuR2V0Q29udGVudENvcHk/OiBGdW5jdGlvbjtcblx0XHRcdF9vRmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkO1xuXHRcdFx0Z2V0Q29udGVudDogKCkgPT4gQ29udHJvbFtdO1xuXHRcdH0sXG5cdFx0aUluZGV4OiBudW1iZXJcblx0KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ZpbHRlckl0ZW1MYXlvdXRFdmVudERlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0Ly8gdmlzdWFsIGZpbHRlciBkb2VzIG5vdCBuZWVkIHRvIHJlbmRlciBhIGxhYmVsXG5cdFx0XHRcdC8vIGhlbmNlIG92ZXJyaWRlIHRoZSBnZXRDb250ZW50IG9mIHRoZSBGaWx0ZXJJdGVtTGF5b3V0XG5cdFx0XHRcdC8vIGFuZCBzdG9yZSB0aGUgb3JpZ2luYWwgZ2V0Q29udGVudCBmb3IgbGF0ZXIgdXNhZ2UgaW4gdGhlIGNvbXBhY3QgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIW9Db250cm9sLl9mbkdldENvbnRlbnRDb3B5KSB7XG5cdFx0XHRcdFx0b0NvbnRyb2wuX2ZuR2V0Q29udGVudENvcHkgPSBvQ29udHJvbC5nZXRDb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIG92ZXJyaWRlIGdldENvbnRlbnQgb2YgRmlsdGVySXRlbUxheW91dFxuXHRcdFx0XHQvLyB0byBhZGQgb25seSBmaWx0ZXJGaWVsZCBhbmQgbm90IGxhYmVsXG5cdFx0XHRcdG9Db250cm9sLmdldENvbnRlbnQgPSBmdW5jdGlvbiAoKTogQ29udHJvbFtdIHtcblx0XHRcdFx0XHRjb25zdCBhQ29udGVudCA9IFtdO1xuXHRcdFx0XHRcdGFDb250ZW50LnB1c2gob0NvbnRyb2wuX29GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZW50O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvQ29udHJvbC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvQ29udHJvbC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHQvLyBTZXR0aW5nIFZGIGNvbnRyb2wgZm9yIHRoZSBGaWx0ZXJmaWVsZC5cblx0XHRjb25zdCBvVmlzdWFsRmlsdGVycyA9IHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcztcblx0XHRvQ29udHJvbC5nZXRDb250ZW50KCkuc29tZSgob0lubmVyQ29udHJvbDogQ29udHJvbCkgPT4ge1xuXHRcdFx0Y29uc3Qgc0ZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRpZiAob1Zpc3VhbEZpbHRlcnMgJiYgb1Zpc3VhbEZpbHRlcnNbc0ZGSWRdICYmIG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0b0lubmVyQ29udHJvbC5zZXRDb250ZW50KG9WaXN1YWxGaWx0ZXJzW3NGRklkXSk7XG5cdFx0XHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEuaW5zZXJ0Q29udGVudChvQ29udHJvbCwgaUluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHJlbW92ZUZpbHRlckZpZWxkKG9Db250cm9sOiBGaWx0ZXJGaWVsZCk6IHZvaWQge1xuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEucmVtb3ZlQ29udGVudChvQ29udHJvbCk7XG5cdH1cblxuXHRyZW1vdmVBbGxGaWx0ZXJGaWVsZHMoKTogdm9pZCB7XG5cdFx0dGhpcy5hQWxsRmlsdGVyRmllbGRzID0gW107XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0ge307XG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyIS5yZW1vdmVBbGxDb250ZW50KCk7XG5cdH1cblxuXHRnZXRGaWx0ZXJGaWVsZHMoKTogRmlsdGVyRmllbGRbXSB7XG5cdFx0cmV0dXJuIHRoaXMub0hlYWRlckNvbnRhaW5lciEuZ2V0Q29udGVudCgpIGFzIEZpbHRlckZpZWxkW107XG5cdH1cblxuXHRhZGRCdXR0b24ob0NvbnRyb2w6IEJ1dHRvbik6IHZvaWQge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ghLmFkZEl0ZW0ob0NvbnRyb2wpO1xuXHR9XG5cblx0Z2V0QWxsQnV0dG9ucygpOiBCdXR0b25bXSB7XG5cdFx0cmV0dXJuIHRoaXMub0J1dHRvbkZsZXhCb3ghLmdldEl0ZW1zKCkucmV2ZXJzZSgpIGFzIEJ1dHRvbltdO1xuXHR9XG5cblx0cmVtb3ZlQnV0dG9uKG9Db250cm9sOiBCdXR0b24pOiB2b2lkIHtcblx0XHR0aGlzLm9CdXR0b25GbGV4Qm94IS5yZW1vdmVJdGVtKG9Db250cm9sKTtcblx0fVxuXG5cdGdldEFsbEZpbHRlckZpZWxkcygpOiBGaWx0ZXJGaWVsZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5hQWxsRmlsdGVyRmllbGRzLmZpbHRlcigoZmlsdGVyRmllbGRMYXlvdXQpID0+ICFmaWx0ZXJGaWVsZExheW91dC5pc0Rlc3Ryb3llZCgpKTtcblx0fVxuXG5cdHNldEFsbEZpbHRlckZpZWxkcyhhRmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdLCBhVmlzdWFsRmlsdGVyRmllbGRzPzogUmVjb3JkPHN0cmluZywgVmlzdWFsRmlsdGVyPik6IHZvaWQge1xuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IGFGaWx0ZXJGaWVsZHM7XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0gYVZpc3VhbEZpbHRlckZpZWxkcztcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaXN1YWxGaWx0ZXJDb250YWluZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztFQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQU1NQSxxQkFBcUIsSUFBQUMsSUFBQSxHQUQxQkMsY0FBYyxDQUFDLHdEQUF3RCxDQUFDLEVBQUFDLEtBQUEsR0FFdkVDLFdBQVcsQ0FBQztJQUNaQyxJQUFJLEVBQUUscUJBQXFCO0lBQzNCQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxVQUFVLEVBQUU7RUFDYixDQUFDLENBQUMsRUFBQU4sSUFBQSxDQUFBTyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGlCQUFBO0lBQUEsU0FBQVYsc0JBQUE7TUFBQSxJQUFBVyxLQUFBO01BQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFBQUMsSUFBQSxPQUFBQyxLQUFBLENBQUFKLElBQUEsR0FBQUssSUFBQSxNQUFBQSxJQUFBLEdBQUFMLElBQUEsRUFBQUssSUFBQTtRQUFBRixJQUFBLENBQUFFLElBQUEsSUFBQUosU0FBQSxDQUFBSSxJQUFBO01BQUE7TUFBQU4sS0FBQSxHQUFBRCxpQkFBQSxDQUFBUSxJQUFBLFVBQUFILElBQUE7TUFBQUksMEJBQUEsQ0FBQVIsS0FBQSxhQUFBUyxXQUFBLEVBQUFULEtBQUE7TUFBQUEsS0FBQSxDQWNGVSxtQkFBbUIsR0FBa0MsQ0FBQyxDQUFDO01BQUEsT0FBQVYsS0FBQTtJQUFBO0lBQUFXLGNBQUEsQ0FBQXRCLHFCQUFBLEVBQUFVLGlCQUFBO0lBQUEsSUFBQWEsTUFBQSxHQUFBdkIscUJBQUEsQ0FBQXdCLFNBQUE7SUFBQUQsTUFBQSxDQUV2REUsSUFBSSxHQUFKLFNBQUFBLElBQUlBLENBQUEsRUFB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
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImFnZ3JlZ2F0aW9uIiwidHlwZSIsIm11bHRpcGxlIiwidmlzaWJpbGl0eSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfSUZpbHRlckNvbnRhaW5lciIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsImFWaXN1YWxGaWx0ZXJGaWVsZHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJPcmllbnRhdGlvbiIsImNvcmVMaWJyYWJyeSIsInNPcmllbnRhdGlvbiIsIkRldmljZSIsInN5c3RlbSIsInBob25lIiwiVmVydGljYWwiLCJ1bmRlZmluZWQiLCJzRGlyZWN0aW9uIiwib0hlYWRlckNvbnRhaW5lciIsIkhlYWRlckNvbnRhaW5lciIsIm9yaWVudGF0aW9uIiwib0J1dHRvbkZsZXhCb3giLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50Iiwib0xheW91dCIsImRpcmVjdGlvbiIsIml0ZW1zIiwic2V0UGFyZW50IiwiYUFsbEZpbHRlckZpZWxkcyIsImV4aXQiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiZGVzdHJveSIsImluc2VydEZpbHRlckZpZWxkIiwib0NvbnRyb2wiLCJpSW5kZXgiLCJvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9mbkdldENvbnRlbnRDb3B5IiwiZ2V0Q29udGVudCIsImFDb250ZW50IiwicHVzaCIsIl9vRmlsdGVyRmllbGQiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiYWRkRXZlbnREZWxlZ2F0ZSIsIm9WaXN1YWxGaWx0ZXJzIiwic29tZSIsIm9Jbm5lckNvbnRyb2wiLCJzRkZJZCIsImdldElkIiwiaXNBIiwic2V0Q29udGVudCIsImluc2VydENvbnRlbnQiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsInJlbW92ZUNvbnRlbnQiLCJyZW1vdmVBbGxGaWx0ZXJGaWVsZHMiLCJyZW1vdmVBbGxDb250ZW50IiwiZ2V0RmlsdGVyRmllbGRzIiwiYWRkQnV0dG9uIiwiYWRkSXRlbSIsImdldEFsbEJ1dHRvbnMiLCJnZXRJdGVtcyIsInJldmVyc2UiLCJyZW1vdmVCdXR0b24iLCJyZW1vdmVJdGVtIiwiZmlsdGVyIiwiZmlsdGVyRmllbGRMYXlvdXQiLCJpc0Rlc3Ryb3llZCIsInNldEFsbEZpbHRlckZpZWxkcyIsImFGaWx0ZXJGaWVsZHMiLCJlbmFibGVDaGFydEJpbmRpbmciLCJlbmFibGUiLCJkaWZmU3RhdGUiLCJWaXN1YWxGaWx0ZXJVdGlscyIsIklGaWx0ZXJDb250YWluZXIiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlckNvbnRhaW5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBWaXN1YWxGaWx0ZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvdmlzdWFsZmlsdGVycy9WaXN1YWxGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRmxleEJveCBmcm9tIFwic2FwL20vRmxleEJveFwiO1xuaW1wb3J0IEhlYWRlckNvbnRhaW5lciBmcm9tIFwic2FwL20vSGVhZGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgRGV2aWNlIGZyb20gXCJzYXAvdWkvRGV2aWNlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgY29yZUxpYnJhYnJ5IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IElGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL0lGaWx0ZXJDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgRXh0ZXJuYWxTdGF0ZVR5cGUgfSBmcm9tIFwiLi4vLi4vdmFsdWVoZWxwL1ZhbHVlSGVscERlbGVnYXRlXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyVXRpbHMgZnJvbSBcIi4vdXRpbHMvVmlzdWFsRmlsdGVyVXRpbHNcIjtcbi8qKlxuICogQ29uc3RydWN0b3IgZm9yIGEgbmV3IFZpc3VhbCBGaWx0ZXIgQ29udGFpbmVyLlxuICogVXNlZCBmb3IgdmlzdWFsIGZpbHRlcnMuXG4gKlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlckNvbnRhaW5lciBleHRlbmRzIElGaWx0ZXJDb250YWluZXIge1xuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZSxcblx0XHR2aXNpYmlsaXR5OiBcImhpZGRlblwiXG5cdH0pXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBoaWRkZW4gYWdncmVnYXRpb24gdG8gaG9sZCB0aGUgaW5uZXIgbGF5b3V0LlxuXHQgKi9cblx0X2xheW91dCE6IENvbnRyb2w7XG5cblx0b0hlYWRlckNvbnRhaW5lcj86IEhlYWRlckNvbnRhaW5lcjtcblxuXHRvQnV0dG9uRmxleEJveD86IEZsZXhCb3g7XG5cblx0b0xheW91dCE6IEZsZXhCb3g7XG5cblx0YUFsbEZpbHRlckZpZWxkcyE6IEZpbHRlckZpZWxkW107XG5cblx0YVZpc3VhbEZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIFZpc3VhbEZpbHRlcj4gPSB7fTtcblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHN1cGVyLmluaXQoKTtcblx0XHRjb25zdCBPcmllbnRhdGlvbiA9IGNvcmVMaWJyYWJyeS5PcmllbnRhdGlvbjtcblxuXHRcdGNvbnN0IHNPcmllbnRhdGlvbiA9IERldmljZS5zeXN0ZW0ucGhvbmUgPyBPcmllbnRhdGlvbi5WZXJ0aWNhbCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBzRGlyZWN0aW9uID0gRGV2aWNlLnN5c3RlbS5waG9uZSA/IFwiQ29sdW1uUmV2ZXJzZVwiIDogXCJDb2x1bW5cIjtcblxuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciA9IG5ldyBIZWFkZXJDb250YWluZXIoe1xuXHRcdFx0b3JpZW50YXRpb246IHNPcmllbnRhdGlvblxuXHRcdH0pO1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ggPSBuZXcgRmxleEJveCh7XG5cdFx0XHRhbGlnbkl0ZW1zOiBcIkVuZFwiLFxuXHRcdFx0anVzdGlmeUNvbnRlbnQ6IFwiRW5kXCJcblx0XHR9KTtcblxuXHRcdHRoaXMub0xheW91dCA9IG5ldyBGbGV4Qm94KHtcblx0XHRcdGRpcmVjdGlvbjogc0RpcmVjdGlvbiwgLy8gRGlyZWN0aW9uIGlzIENvbHVtbiBSZXZlcnNlIGZvciBQaG9uZVxuXHRcdFx0aXRlbXM6IFt0aGlzLm9IZWFkZXJDb250YWluZXIsIHRoaXMub0J1dHRvbkZsZXhCb3hdXG5cdFx0fSk7XG5cdFx0dGhpcy5vTGF5b3V0LnNldFBhcmVudCh0aGlzKTtcblxuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IFtdO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IHt9O1xuXHR9XG5cblx0ZXhpdCgpOiB2b2lkIHtcblx0XHQvLyBkZXN0cm95IGxheW91dFxuXHRcdHN1cGVyLmV4aXQoKTtcblx0XHQvLyBkZXN0cm95IGFsbCBmaWx0ZXIgZmllbGRzIHdoaWNoIGFyZSBub3QgaW4gdGhlIGxheW91dFxuXHRcdGNvbnN0IGFBbGxGaWx0ZXJGaWVsZHMgPSB0aGlzLmdldEFsbEZpbHRlckZpZWxkcygpO1xuXHRcdGFBbGxGaWx0ZXJGaWVsZHMuZm9yRWFjaChmdW5jdGlvbiAob0ZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuXHRcdFx0b0ZpbHRlckZpZWxkLmRlc3Ryb3koKTtcblx0XHR9KTtcblx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIgPSB1bmRlZmluZWQ7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IHVuZGVmaW5lZDtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBbXTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0Ly8gQHRzLWlnbm9yZVxuXHRpbnNlcnRGaWx0ZXJGaWVsZChcblx0XHRvQ29udHJvbDogT21pdDxGaWx0ZXJGaWVsZCwgXCJnZXRDb250ZW50XCI+ICYge1xuXHRcdFx0X2ZuR2V0Q29udGVudENvcHk/OiBGdW5jdGlvbjtcblx0XHRcdF9vRmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkO1xuXHRcdFx0Z2V0Q29udGVudDogKCkgPT4gQ29udHJvbFtdO1xuXHRcdH0sXG5cdFx0aUluZGV4OiBudW1iZXJcblx0KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ZpbHRlckl0ZW1MYXlvdXRFdmVudERlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0Ly8gdmlzdWFsIGZpbHRlciBkb2VzIG5vdCBuZWVkIHRvIHJlbmRlciBhIGxhYmVsXG5cdFx0XHRcdC8vIGhlbmNlIG92ZXJyaWRlIHRoZSBnZXRDb250ZW50IG9mIHRoZSBGaWx0ZXJJdGVtTGF5b3V0XG5cdFx0XHRcdC8vIGFuZCBzdG9yZSB0aGUgb3JpZ2luYWwgZ2V0Q29udGVudCBmb3IgbGF0ZXIgdXNhZ2UgaW4gdGhlIGNvbXBhY3QgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIW9Db250cm9sLl9mbkdldENvbnRlbnRDb3B5KSB7XG5cdFx0XHRcdFx0b0NvbnRyb2wuX2ZuR2V0Q29udGVudENvcHkgPSBvQ29udHJvbC5nZXRDb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIG92ZXJyaWRlIGdldENvbnRlbnQgb2YgRmlsdGVySXRlbUxheW91dFxuXHRcdFx0XHQvLyB0byBhZGQgb25seSBmaWx0ZXJGaWVsZCBhbmQgbm90IGxhYmVsXG5cdFx0XHRcdG9Db250cm9sLmdldENvbnRlbnQgPSBmdW5jdGlvbiAoKTogQ29udHJvbFtdIHtcblx0XHRcdFx0XHRjb25zdCBhQ29udGVudCA9IFtdO1xuXHRcdFx0XHRcdGFDb250ZW50LnB1c2gob0NvbnRyb2wuX29GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZW50O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvQ29udHJvbC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvQ29udHJvbC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHQvLyBTZXR0aW5nIFZGIGNvbnRyb2wgZm9yIHRoZSBGaWx0ZXJmaWVsZC5cblx0XHRjb25zdCBvVmlzdWFsRmlsdGVycyA9IHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcztcblx0XHRvQ29udHJvbC5nZXRDb250ZW50KCkuc29tZSgob0lubmVyQ29udHJvbDogQ29udHJvbCkgPT4ge1xuXHRcdFx0Y29uc3Qgc0ZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRpZiAob1Zpc3VhbEZpbHRlcnMgJiYgb1Zpc3VhbEZpbHRlcnNbc0ZGSWRdICYmIG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0b0lubmVyQ29udHJvbC5zZXRDb250ZW50KG9WaXN1YWxGaWx0ZXJzW3NGRklkXSk7XG5cdFx0XHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEuaW5zZXJ0Q29udGVudChvQ29udHJvbCwgaUluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHJlbW92ZUZpbHRlckZpZWxkKG9Db250cm9sOiBGaWx0ZXJGaWVsZCk6IHZvaWQge1xuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciEucmVtb3ZlQ29udGVudChvQ29udHJvbCk7XG5cdH1cblxuXHRyZW1vdmVBbGxGaWx0ZXJGaWVsZHMoKTogdm9pZCB7XG5cdFx0dGhpcy5hQWxsRmlsdGVyRmllbGRzID0gW107XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0ge307XG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyIS5yZW1vdmVBbGxDb250ZW50KCk7XG5cdH1cblxuXHRnZXRGaWx0ZXJGaWVsZHMoKTogRmlsdGVyRmllbGRbXSB7XG5cdFx0cmV0dXJuIHRoaXMub0hlYWRlckNvbnRhaW5lciEuZ2V0Q29udGVudCgpIGFzIEZpbHRlckZpZWxkW107XG5cdH1cblxuXHRhZGRCdXR0b24ob0NvbnRyb2w6IEJ1dHRvbik6IHZvaWQge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3ghLmFkZEl0ZW0ob0NvbnRyb2wpO1xuXHR9XG5cblx0Z2V0QWxsQnV0dG9ucygpOiBCdXR0b25bXSB7XG5cdFx0cmV0dXJuIHRoaXMub0J1dHRvbkZsZXhCb3ghLmdldEl0ZW1zKCkucmV2ZXJzZSgpIGFzIEJ1dHRvbltdO1xuXHR9XG5cblx0cmVtb3ZlQnV0dG9uKG9Db250cm9sOiBCdXR0b24pOiB2b2lkIHtcblx0XHR0aGlzLm9CdXR0b25GbGV4Qm94IS5yZW1vdmVJdGVtKG9Db250cm9sKTtcblx0fVxuXG5cdGdldEFsbEZpbHRlckZpZWxkcygpOiBGaWx0ZXJGaWVsZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5hQWxsRmlsdGVyRmllbGRzLmZpbHRlcigoZmlsdGVyRmllbGRMYXlvdXQpID0+ICFmaWx0ZXJGaWVsZExheW91dC5pc0Rlc3Ryb3llZCgpKTtcblx0fVxuXG5cdHNldEFsbEZpbHRlckZpZWxkcyhhRmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdLCBhVmlzdWFsRmlsdGVyRmllbGRzPzogUmVjb3JkPHN0cmluZywgVmlzdWFsRmlsdGVyPik6IHZvaWQge1xuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IGFGaWx0ZXJGaWVsZHM7XG5cdFx0dGhpcy5hVmlzdWFsRmlsdGVyRmllbGRzID0gYVZpc3VhbEZpbHRlckZpZWxkcztcblx0fVxuXG5cdC8qKlxuXHQgKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBjaGFydCBiaW5kaW5nIGZvciB2aXN1YWwgZmlsdGVycyBpbiB0aGlzIGNvbnRhaW5lci5cblx0ICogQHBhcmFtIGVuYWJsZSBXaGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBjaGFydCBiaW5kaW5nXG5cdCAqIEBwYXJhbSBkaWZmU3RhdGUgT3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNwZWNpZnkgdGhlIGNoYW5nZWQgZmlsdGVyIGZpZWxkIHBhdGhzLCBpbmNhc2Ugb2YgZW5hYmxlbWVudC5cblx0ICovXG5cdGVuYWJsZUNoYXJ0QmluZGluZyhlbmFibGU6IGJvb2xlYW4sIGRpZmZTdGF0ZT86IEV4dGVybmFsU3RhdGVUeXBlKTogdm9pZCB7XG5cdFx0VmlzdWFsRmlsdGVyVXRpbHMuZW5hYmxlQ2hhcnRCaW5kaW5nKHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA/PyB7fSwgZW5hYmxlLCBkaWZmU3RhdGUpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpc3VhbEZpbHRlckNvbnRhaW5lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0VBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBTU1BLHFCQUFxQixJQUFBQyxJQUFBLEdBRDFC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