@sapui5/sap.fe.macros 1.141.2 → 1.143.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 (257) 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 +4 -10
  4. package/src/sap/fe/macros/Breadcrumbs.tsx +2 -8
  5. package/src/sap/fe/macros/Chart.js +34 -23
  6. package/src/sap/fe/macros/Chart.tsx +25 -11
  7. package/src/sap/fe/macros/CollaborativeDraftHandler.js +47 -36
  8. package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +50 -31
  9. package/src/sap/fe/macros/CollectionBindingInfo.js +8 -2
  10. package/src/sap/fe/macros/CollectionBindingInfo.ts +11 -6
  11. package/src/sap/fe/macros/CommonHelper.js +14 -24
  12. package/src/sap/fe/macros/CommonHelper.ts +18 -25
  13. package/src/sap/fe/macros/ConditionalSwitch.js +1 -2
  14. package/src/sap/fe/macros/ConditionalSwitch.tsx +0 -1
  15. package/src/sap/fe/macros/ConditionalSwitchProperty.js +1 -3
  16. package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +0 -2
  17. package/src/sap/fe/macros/Field.js +34 -17
  18. package/src/sap/fe/macros/Field.ts +64 -32
  19. package/src/sap/fe/macros/FooterContent.js +7 -3
  20. package/src/sap/fe/macros/FooterContent.tsx +8 -13
  21. package/src/sap/fe/macros/KPITag.js +6 -6
  22. package/src/sap/fe/macros/KPITag.tsx +8 -6
  23. package/src/sap/fe/macros/MacroAPI.js +4 -3
  24. package/src/sap/fe/macros/MacroAPI.ts +3 -3
  25. package/src/sap/fe/macros/MessageButton.js +4 -3
  26. package/src/sap/fe/macros/MessageButton.tsx +7 -3
  27. package/src/sap/fe/macros/MicroChart.js +12 -7
  28. package/src/sap/fe/macros/MicroChart.tsx +9 -3
  29. package/src/sap/fe/macros/MultiValueField.js +22 -36
  30. package/src/sap/fe/macros/MultiValueField.tsx +34 -66
  31. package/src/sap/fe/macros/RichTextEditor.js +3 -4
  32. package/src/sap/fe/macros/RichTextEditor.tsx +2 -3
  33. package/src/sap/fe/macros/Share.js +7 -7
  34. package/src/sap/fe/macros/Share.tsx +9 -6
  35. package/src/sap/fe/macros/Status.js +39 -11
  36. package/src/sap/fe/macros/Status.tsx +25 -5
  37. package/src/sap/fe/macros/ValueHelp.js +5 -2
  38. package/src/sap/fe/macros/ValueHelp.tsx +5 -0
  39. package/src/sap/fe/macros/ai/EasyFillDialog.js +2 -1
  40. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +1 -0
  41. package/src/sap/fe/macros/ai/EasyFilterBar.js +7 -34
  42. package/src/sap/fe/macros/ai/EasyFilterBar.tsx +6 -35
  43. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +31 -7
  44. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +33 -6
  45. package/src/sap/fe/macros/ai/SummarizationButton.js +6 -4
  46. package/src/sap/fe/macros/ai/SummarizationButton.tsx +5 -3
  47. package/src/sap/fe/macros/chart/Action.js +25 -2
  48. package/src/sap/fe/macros/chart/Action.ts +13 -0
  49. package/src/sap/fe/macros/chart/ActionGroup.js +25 -2
  50. package/src/sap/fe/macros/chart/ActionGroup.ts +13 -0
  51. package/src/sap/fe/macros/chart/ChartDelegate.js +29 -8
  52. package/src/sap/fe/macros/chart/ChartDelegate.ts +46 -14
  53. package/src/sap/fe/macros/chart/MdcChartTemplate.js +58 -12
  54. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +75 -13
  55. package/src/sap/fe/macros/chart/OverflowGroup.js +62 -0
  56. package/src/sap/fe/macros/chart/OverflowGroup.ts +22 -0
  57. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +7 -7
  58. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +3 -2
  59. package/src/sap/fe/macros/controls/FileWrapper.js +11 -5
  60. package/src/sap/fe/macros/controls/FileWrapper.ts +10 -4
  61. package/src/sap/fe/macros/controls/FilterBar.js +39 -3
  62. package/src/sap/fe/macros/controls/FilterBar.ts +42 -1
  63. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +3 -1
  64. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -0
  65. package/src/sap/fe/macros/controls/RadioButtons.js +18 -5
  66. package/src/sap/fe/macros/controls/RadioButtons.tsx +10 -1
  67. package/src/sap/fe/macros/coreUI/CreateDialog.js +3 -3
  68. package/src/sap/fe/macros/coreUI/CreateDialog.tsx +2 -2
  69. package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +40 -12
  70. package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -9
  71. package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +4 -2
  72. package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +3 -1
  73. package/src/sap/fe/macros/field/FieldFormatOptions.js +4 -4
  74. package/src/sap/fe/macros/field/FieldFormatOptions.ts +2 -2
  75. package/src/sap/fe/macros/field/FieldHelper.js +4 -3
  76. package/src/sap/fe/macros/field/FieldHelper.ts +7 -1
  77. package/src/sap/fe/macros/field/FieldRuntime.js +44 -9
  78. package/src/sap/fe/macros/field/FieldRuntime.ts +72 -8
  79. package/src/sap/fe/macros/field/FieldRuntimeHelper.js +3 -34
  80. package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +28 -53
  81. package/src/sap/fe/macros/field/FieldTemplating.js +5 -4
  82. package/src/sap/fe/macros/field/FieldTemplating.ts +6 -4
  83. package/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -4
  84. package/src/sap/fe/macros/filter/FilterFieldHelper.ts +7 -2
  85. package/src/sap/fe/macros/filter/FilterUtils.js +130 -40
  86. package/src/sap/fe/macros/filter/FilterUtils.ts +167 -45
  87. package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.js +2 -2
  88. package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.ts +1 -1
  89. package/src/sap/fe/macros/filterBar/FilterBar.block.js +4 -3
  90. package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +19 -8
  91. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +15 -9
  92. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +36 -17
  93. package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +21 -10
  94. package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +81 -63
  95. package/src/sap/fe/macros/filterBar/UOMValidationDelegate.js +376 -0
  96. package/src/sap/fe/macros/filterBar/UOMValidationDelegate.ts +463 -0
  97. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +4 -3
  98. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +3 -2
  99. package/src/sap/fe/macros/form/Form.block.js +27 -2
  100. package/src/sap/fe/macros/form/Form.block.ts +31 -11
  101. package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -3
  102. package/src/sap/fe/macros/form/FormContainer.block.js +110 -63
  103. package/src/sap/fe/macros/form/FormContainer.block.ts +121 -64
  104. package/src/sap/fe/macros/formatters/TableFormatter.js +13 -10
  105. package/src/sap/fe/macros/formatters/TableFormatter.ts +11 -9
  106. package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +6 -4
  107. package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +5 -5
  108. package/src/sap/fe/macros/inlineEdit/InlineEdit.js +5 -5
  109. package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +4 -4
  110. package/src/sap/fe/macros/insights/InsightsService.js +3 -2
  111. package/src/sap/fe/macros/insights/InsightsService.ts +2 -1
  112. package/src/sap/fe/macros/internal/DataPoint.js +7 -8
  113. package/src/sap/fe/macros/internal/DataPoint.tsx +6 -9
  114. package/src/sap/fe/macros/internal/field/DisplayStyle.js +8 -6
  115. package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +7 -8
  116. package/src/sap/fe/macros/internal/field/EditStyle.js +9 -20
  117. package/src/sap/fe/macros/internal/field/EditStyle.tsx +17 -41
  118. package/src/sap/fe/macros/internal/field/FieldBlockStructure.js +2 -2
  119. package/src/sap/fe/macros/internal/field/FieldBlockStructure.tsx +1 -1
  120. package/src/sap/fe/macros/internal/field/FieldStructure.js +1 -2
  121. package/src/sap/fe/macros/internal/field/FieldStructure.tsx +0 -2
  122. package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +7 -7
  123. package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +17 -11
  124. package/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +6 -2
  125. package/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +5 -1
  126. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +9 -6
  127. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +7 -5
  128. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
  129. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +6 -6
  130. package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +5 -2
  131. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +2 -2
  132. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +2 -1
  133. package/src/sap/fe/macros/library.js +5 -6
  134. package/src/sap/fe/macros/{library.ts → library.tsx} +3 -1
  135. package/src/sap/fe/macros/mdc/adapter/StateHelper.js +15 -5
  136. package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +21 -5
  137. package/src/sap/fe/macros/messagebundle.properties +13 -5
  138. package/src/sap/fe/macros/messagebundle_ar.properties +12 -3
  139. package/src/sap/fe/macros/messagebundle_bg.properties +13 -4
  140. package/src/sap/fe/macros/messagebundle_ca.properties +12 -3
  141. package/src/sap/fe/macros/messagebundle_cnr.properties +12 -3
  142. package/src/sap/fe/macros/messagebundle_cs.properties +11 -2
  143. package/src/sap/fe/macros/messagebundle_cy.properties +12 -3
  144. package/src/sap/fe/macros/messagebundle_da.properties +12 -3
  145. package/src/sap/fe/macros/messagebundle_de.properties +16 -7
  146. package/src/sap/fe/macros/messagebundle_el.properties +13 -4
  147. package/src/sap/fe/macros/messagebundle_en.properties +13 -4
  148. package/src/sap/fe/macros/messagebundle_en_GB.properties +13 -4
  149. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +13 -4
  150. package/src/sap/fe/macros/messagebundle_es.properties +12 -3
  151. package/src/sap/fe/macros/messagebundle_es_MX.properties +12 -3
  152. package/src/sap/fe/macros/messagebundle_et.properties +12 -3
  153. package/src/sap/fe/macros/messagebundle_fi.properties +12 -3
  154. package/src/sap/fe/macros/messagebundle_fr.properties +12 -3
  155. package/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -3
  156. package/src/sap/fe/macros/messagebundle_hi.properties +12 -3
  157. package/src/sap/fe/macros/messagebundle_hr.properties +13 -4
  158. package/src/sap/fe/macros/messagebundle_hu.properties +12 -3
  159. package/src/sap/fe/macros/messagebundle_id.properties +18 -9
  160. package/src/sap/fe/macros/messagebundle_it.properties +12 -3
  161. package/src/sap/fe/macros/messagebundle_iw.properties +12 -3
  162. package/src/sap/fe/macros/messagebundle_ja.properties +12 -3
  163. package/src/sap/fe/macros/messagebundle_kk.properties +11 -2
  164. package/src/sap/fe/macros/messagebundle_ko.properties +13 -4
  165. package/src/sap/fe/macros/messagebundle_lt.properties +12 -3
  166. package/src/sap/fe/macros/messagebundle_lv.properties +12 -3
  167. package/src/sap/fe/macros/messagebundle_mk.properties +12 -3
  168. package/src/sap/fe/macros/messagebundle_ms.properties +12 -3
  169. package/src/sap/fe/macros/messagebundle_nl.properties +12 -3
  170. package/src/sap/fe/macros/messagebundle_no.properties +12 -3
  171. package/src/sap/fe/macros/messagebundle_pl.properties +12 -3
  172. package/src/sap/fe/macros/messagebundle_pt.properties +12 -3
  173. package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -3
  174. package/src/sap/fe/macros/messagebundle_ro.properties +13 -4
  175. package/src/sap/fe/macros/messagebundle_ru.properties +12 -3
  176. package/src/sap/fe/macros/messagebundle_sh.properties +12 -3
  177. package/src/sap/fe/macros/messagebundle_sk.properties +12 -3
  178. package/src/sap/fe/macros/messagebundle_sl.properties +13 -4
  179. package/src/sap/fe/macros/messagebundle_sr.properties +12 -3
  180. package/src/sap/fe/macros/messagebundle_sv.properties +12 -3
  181. package/src/sap/fe/macros/messagebundle_th.properties +11 -2
  182. package/src/sap/fe/macros/messagebundle_tr.properties +12 -3
  183. package/src/sap/fe/macros/messagebundle_uk.properties +12 -3
  184. package/src/sap/fe/macros/messagebundle_vi.properties +13 -4
  185. package/src/sap/fe/macros/messagebundle_zh_CN.properties +12 -3
  186. package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -3
  187. package/src/sap/fe/macros/messages/MessageButton.js +21 -12
  188. package/src/sap/fe/macros/messages/MessageButton.ts +21 -11
  189. package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.js +7 -3
  190. package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.ts +8 -2
  191. package/src/sap/fe/macros/quickView/QuickView.js +5 -4
  192. package/src/sap/fe/macros/quickView/QuickView.tsx +10 -3
  193. package/src/sap/fe/macros/richtexteditor/ButtonGroup.js +2 -2
  194. package/src/sap/fe/macros/richtexteditor/ButtonGroup.ts +2 -2
  195. package/src/sap/fe/macros/table/Action.js +21 -5
  196. package/src/sap/fe/macros/table/Action.ts +14 -4
  197. package/src/sap/fe/macros/table/ActionGroup.js +15 -2
  198. package/src/sap/fe/macros/table/ActionGroup.ts +8 -0
  199. package/src/sap/fe/macros/table/ActionGroupOverride.js +14 -2
  200. package/src/sap/fe/macros/table/ActionGroupOverride.ts +7 -0
  201. package/src/sap/fe/macros/table/ActionOverride.js +14 -2
  202. package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
  203. package/src/sap/fe/macros/table/ActionsTemplating.js +16 -2
  204. package/src/sap/fe/macros/table/ActionsTemplating.tsx +15 -0
  205. package/src/sap/fe/macros/table/Column.js +3 -2
  206. package/src/sap/fe/macros/table/Column.ts +1 -1
  207. package/src/sap/fe/macros/table/MdcTableTemplate.js +96 -18
  208. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +136 -17
  209. package/src/sap/fe/macros/table/OverflowGroups.js +59 -0
  210. package/src/sap/fe/macros/table/OverflowGroups.ts +27 -0
  211. package/src/sap/fe/macros/table/Table.block.js +74 -30
  212. package/src/sap/fe/macros/table/Table.block.tsx +77 -14
  213. package/src/sap/fe/macros/table/TableAPI.js +175 -132
  214. package/src/sap/fe/macros/table/TableAPI.ts +67 -30
  215. package/src/sap/fe/macros/table/TableDefinition.js +20 -3
  216. package/src/sap/fe/macros/table/TableDefinition.ts +18 -2
  217. package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -3
  218. package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +12 -9
  219. package/src/sap/fe/macros/table/TableHelper.js +5 -2
  220. package/src/sap/fe/macros/table/TableHelper.ts +5 -2
  221. package/src/sap/fe/macros/table/TableRuntime.js +25 -13
  222. package/src/sap/fe/macros/table/TableRuntime.ts +31 -17
  223. package/src/sap/fe/macros/table/TableSizeHelper.js +4 -4
  224. package/src/sap/fe/macros/table/TableSizeHelper.ts +6 -11
  225. package/src/sap/fe/macros/table/Utils.js +9 -3
  226. package/src/sap/fe/macros/table/Utils.ts +14 -8
  227. package/src/sap/fe/macros/table/delegates/TableDelegate.js +72 -29
  228. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +114 -123
  229. package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +41 -15
  230. package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +41 -22
  231. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +15 -6
  232. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +14 -5
  233. package/src/sap/fe/macros/table/massEdit/MassEditField.js +1 -1
  234. package/src/sap/fe/macros/table/massEdit/MassEditField.tsx +3 -6
  235. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -3
  236. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +3 -2
  237. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +42 -14
  238. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +49 -19
  239. package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +7 -9
  240. package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +7 -8
  241. package/src/sap/fe/macros/table/mixin/TableExport.js +1 -1
  242. package/src/sap/fe/macros/table/mixin/TableExport.ts +3 -3
  243. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +3 -4
  244. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +2 -3
  245. package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.js +5 -4
  246. package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.ts +6 -3
  247. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +17 -10
  248. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +24 -9
  249. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +4 -4
  250. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +3 -3
  251. package/src/sap/fe/macros/visualfilters/VisualFilter.js +20 -2
  252. package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +28 -6
  253. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -3
  254. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +4 -3
  255. package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.js +3 -3
  256. package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.tsx +10 -4
  257. package/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +1 -1
@@ -187,10 +187,16 @@ class FileWrapper extends FieldWrapper {
187
187
  }
188
188
 
189
189
  getUploadUrl(): string {
190
- // set upload url as canonical url for NavigationProperties
191
- // this is a workaround as some backends cannot resolve NavigationsProperties for stream types
192
190
  const context = this.getBindingContext() as Context;
193
- return context && this.uploadUrl ? this.uploadUrl.replace(context.getPath(), context.getCanonicalPath()) : "";
191
+ if (context && this.uploadUrl) {
192
+ // If the backend did not explicitly set AddressViaNavigationPath, we need to use the canonical path for upload
193
+ if (context.getModel().getMetaModel().getObject("/@com.sap.vocabularies.Common.v1.AddressViaNavigationPath") === true) {
194
+ return this.uploadUrl;
195
+ } else {
196
+ return this.uploadUrl.replace(context.getPath(), context.getCanonicalPath());
197
+ }
198
+ }
199
+ return "";
194
200
  }
195
201
 
196
202
  setUIBusy(busy: boolean): void {
@@ -226,7 +232,7 @@ class FileWrapper extends FieldWrapper {
226
232
  innerDivMinWidth = "3rem";
227
233
  } else {
228
234
  // Depending on display or edit mode we have to reserve some space for the file upload and delete button (2rem each + 1rem margin)
229
- innerDivMaxWidth = CommonUtils.getIsEditable(fileWrapper as unknown as ManagedObject) ? "calc(100% - 5rem)" : "100%";
235
+ innerDivMaxWidth = CommonUtils.getIsEditable(fileWrapper as unknown as ManagedObject) ? "calc(100% - 6rem)" : "100%";
230
236
  innerDivMinWidth = "4.5rem";
231
237
  }
232
238
 
@@ -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/base/Log", "sap/fe/base/ClassSupport", "sap/fe/macros/controls/filterbar/FilterContainer", "sap/fe/macros/controls/filterbar/VisualFilterContainer", "sap/ui/core/Element", "sap/ui/mdc/FilterBar", "sap/ui/mdc/filterbar/aligned/FilterItemLayout", "./filterbar/utils/VisualFilterUtils"], function (Log, ClassSupport, FilterContainer, VisualFilterContainer, Element, MdcFilterBar, FilterItemLayout, VisualFilterUtils) {
5
+ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/helpers/PromiseKeeper", "sap/fe/macros/controls/filterbar/FilterContainer", "sap/fe/macros/controls/filterbar/VisualFilterContainer", "sap/ui/core/Element", "sap/ui/mdc/FilterBar", "sap/ui/mdc/filterbar/aligned/FilterItemLayout", "./filterbar/utils/VisualFilterUtils"], function (Log, ClassSupport, PromiseKeeper, FilterContainer, VisualFilterContainer, Element, MdcFilterBar, FilterItemLayout, VisualFilterUtils) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
@@ -44,11 +44,47 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/macros/contro
44
44
  _inheritsLoose(FilterBar, _MdcFilterBar);
45
45
  var _proto = FilterBar.prototype;
46
46
  _proto._initializeStatus = async function _initializeStatus() {
47
- await this.waitForInitialization();
47
+ // Promise keeper to hold the process.
48
+ this._initializedPromiseKeeper = new PromiseKeeper();
49
+
50
+ // Awaits
51
+ await this.initializedWithMetadata();
52
+ await this.waitForModelToBeSet();
53
+ this._initializedPromiseKeeper.resolve();
48
54
  this._isInitialized = true;
49
55
  };
56
+ _proto.waitForModelToBeSet = async function waitForModelToBeSet() {
57
+ if (this.getModel()) {
58
+ return;
59
+ }
60
+ // wait for deafault model to be set.
61
+ const modelIsSetPromiseKeeper = new PromiseKeeper();
62
+ const fnCheckAndReset = e => {
63
+ const filterbar = e.getSource();
64
+ if (filterbar.getModel()) {
65
+ // default model is set.
66
+ filterbar.detachModelContextChange(fnCheckAndReset);
67
+ modelIsSetPromiseKeeper?.resolve();
68
+ }
69
+ };
70
+ this.attachModelContextChange(fnCheckAndReset);
71
+ return modelIsSetPromiseKeeper.promise;
72
+ }
73
+
74
+ /**
75
+ * Checks if the FilterBar is fully initialized.
76
+ * @returns True if the FilterBar is initialized, false otherwise.
77
+ */;
50
78
  _proto.isInitialized = function isInitialized() {
51
79
  return !!this._isInitialized;
80
+ }
81
+
82
+ /**
83
+ * Async equivalent of 'isInitialized' to perform filter bar interactions after the filter bar is ready.
84
+ * @returns Promise that resolves when the filter bar is initialized.
85
+ */;
86
+ _proto.whenInitialized = async function whenInitialized() {
87
+ return this._initializedPromiseKeeper?.promise;
52
88
  };
53
89
  _proto.setToggleControl = function setToggleControl(vToggle) {
54
90
  if (typeof vToggle === "string") {
@@ -239,4 +275,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/macros/contro
239
275
  }), _class2)) || _class);
240
276
  return FilterBar;
241
277
  }, false);
242
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWSVNVQUxfRklMVEVSX0NPTlRBSU5FUiIsIkZJTFRFUl9DT05UQUlORVIiLCJGaWx0ZXJCYXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIl9kZWMzIiwiX2RlYzQiLCJhc3NvY2lhdGlvbiIsIm11bHRpcGxlIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9NZGNGaWx0ZXJCYXIiLCJpZE9yUHJvcHMiLCJzZXR0aW5ncyIsIl90aGlzIiwicHJvcGVydHlJbmZvIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfaXNJbml0aWFsaXplZCIsIl9pbml0aWFsaXplU3RhdHVzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJ3YWl0Rm9ySW5pdGlhbGl6YXRpb24iLCJpc0luaXRpYWxpemVkIiwic2V0VG9nZ2xlQ29udHJvbCIsInZUb2dnbGUiLCJfb1NlZ21lbnRlZEJ1dHRvbiIsIkVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInRvZ2dsZUNvbnRyb2wiLCJkZXRhY2hFdmVudCIsIl90b2dnbGVMYXlvdXQiLCJiaW5kIiwiYXR0YWNoRXZlbnQiLCJzZXRBc3NvY2lhdGlvbiIsInRoZW4iLCJ0YXJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9vRmlsdGVyQmFyTGF5b3V0IiwiaXNBIiwiX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQiLCJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJzZXRTaG93QWRhcHRGaWx0ZXJzQnV0dG9uIiwib0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQiLCJvRmlsdGVySXRlbXMiLCJnZXRGaWx0ZXJJdGVtcyIsImFGaWx0ZXJGaWVsZHMiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJhU29ydGVkRmlsdGVyRmllbGRzIiwiZ2V0U29ydGVkRmlsdGVyRmllbGRzIiwiYUJ1dHRvbnMiLCJnZXRBbGxCdXR0b25zIiwiYVZpc3VhbEZpbHRlckZpZWxkcyIsImdldEFsbFZpc3VhbEZpbHRlckZpZWxkcyIsInNldEFsbEZpbHRlckZpZWxkcyIsImZvckVhY2giLCJvRmlsdGVyRmllbGQiLCJpSW5kZXgiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsImluc2VydEZpbHRlckZpZWxkIiwib0J1dHRvbiIsInJlbW92ZUJ1dHRvbiIsImFkZEJ1dHRvbiIsInNldEFnZ3JlZ2F0aW9uIiwiaW52YWxpZGF0ZSIsImNhdGNoIiwiZXJyb3IiLCJMb2ciLCJhRmlsdGVySXRlbXMiLCJhRmlsdGVySWRzIiwib0ZpbHRlckl0ZW0iLCJwdXNoIiwiZ2V0SWQiLCJzb3J0IiwiYUZpcnN0SXRlbSIsImFTZWNvbmRJdGVtIiwic0ZpcnN0SXRlbVZGSWQiLCJzU2Vjb25kSXRlbVZGSWQiLCJnZXRDb250ZW50Iiwib0lubmVyQ29udHJvbCIsImluZGV4T2YiLCJfY3JlYXRlSW5uZXJMYXlvdXQiLCJGaWx0ZXJDb250YWluZXIiLCJfY0xheW91dEl0ZW0iLCJGaWx0ZXJJdGVtTGF5b3V0IiwiZ2V0SW5uZXIiLCJhZGRTdHlsZUNsYXNzIiwiX2FkZEJ1dHRvbnMiLCJvSW5uZXJMYXlvdXQiLCJvRmlsdGVyQ29udGFpbmVySW5uZXJMYXlvdXRFdmVudERlbGVnYXRlIiwib25CZWZvcmVSZW5kZXJpbmciLCJpbml0aWFsTGF5b3V0IiwicmVtb3ZlRXZlbnREZWxlZ2F0ZSIsImFkZEV2ZW50RGVsZWdhdGUiLCJleGl0IiwiZ2V0U2VnbWVudGVkQnV0dG9uIiwiZW5hYmxlUmVxdWVzdHMiLCJlbmFibGUiLCJkaWZmU3RhdGUiLCJzZXRTdXNwZW5kU2VsZWN0aW9uIiwiX2VuYWJsZVZpc3VhbEZpbHRlckNoYXJ0QmluZGluZ3MiLCJfZ2V0RmlsdGVyTGF5b3V0QnlUeXBlIiwibGF5b3V0Q2xhc3NOYW1lIiwicmV0RmlsdGVyTGF5b3V0IiwidW5kZWZpbmVkIiwidmlzdWFsRmlsdGVyTGF5b3V0IiwiZW5hYmxlQ2hhcnRCaW5kaW5nIiwiY29tcGFjdEZpbHRlckxheW91dCIsInZpc3VhbEZpbHRlcnMiLCJWaXN1YWxGaWx0ZXJVdGlscyIsIk1kY0ZpbHRlckJhciIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyQmFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhc3NvY2lhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEZpbHRlckNvbnRhaW5lciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9maWx0ZXJiYXIvRmlsdGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyQ29udGFpbmVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL2ZpbHRlcmJhci9WaXN1YWxGaWx0ZXJDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIFZpc3VhbEZpbHRlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy92aXN1YWxmaWx0ZXJzL1Zpc3VhbEZpbHRlclwiO1xuaW1wb3J0IHR5cGUgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCB0eXBlIFNlZ21lbnRlZEJ1dHRvbiBmcm9tIFwic2FwL20vU2VnbWVudGVkQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIEVsZW1lbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IHR5cGUgeyAkRmlsdGVyQmFyU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCBNZGNGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IHR5cGUgSUZpbHRlckNvbnRhaW5lciBmcm9tIFwic2FwL3VpL21kYy9maWx0ZXJiYXIvSUZpbHRlckNvbnRhaW5lclwiO1xuaW1wb3J0IEZpbHRlckl0ZW1MYXlvdXQgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL2FsaWduZWQvRmlsdGVySXRlbUxheW91dFwiO1xuaW1wb3J0IHsgdHlwZSBFeHRlcm5hbFN0YXRlVHlwZSB9IGZyb20gXCIuLi92YWx1ZWhlbHAvVmFsdWVIZWxwRGVsZWdhdGVcIjtcbmltcG9ydCBWaXN1YWxGaWx0ZXJVdGlscyBmcm9tIFwiLi9maWx0ZXJiYXIvdXRpbHMvVmlzdWFsRmlsdGVyVXRpbHNcIjtcblxuY29uc3QgVklTVUFMX0ZJTFRFUl9DT05UQUlORVIgPSBcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlckNvbnRhaW5lclwiLFxuXHRGSUxURVJfQ09OVEFJTkVSID0gXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5GaWx0ZXJDb250YWluZXJcIjtcbnR5cGUgQ29udGFpbmVyVHlwZSA9IHR5cGVvZiBWSVNVQUxfRklMVEVSX0NPTlRBSU5FUiB8IHR5cGVvZiBGSUxURVJfQ09OVEFJTkVSO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkZpbHRlckJhclwiKVxuY2xhc3MgRmlsdGVyQmFyIGV4dGVuZHMgTWRjRmlsdGVyQmFyIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdFZhbHVlOiBcImNvbXBhY3RcIiB9KVxuXHRpbml0aWFsTGF5b3V0ITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGRpc2FibGVEcmFmdEVkaXRTdGF0ZUZpbHRlciE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIENvbnRyb2wgd2hpY2ggYWxsb3dzIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB2aXN1YWwgYW5kIG5vcm1hbCBmaWx0ZXIgbGF5b3V0c1xuXHQgKi9cblx0QGFzc29jaWF0aW9uKHtcblx0XHR0eXBlOiBcInNhcC5tLlNlZ21lbnRlZEJ1dHRvblwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZVxuXHR9KVxuXHR0b2dnbGVDb250cm9sITogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKGlkT3JQcm9wcz86IFByb3BlcnRpZXNPZjxGaWx0ZXJCYXI+ICYgJEZpbHRlckJhclNldHRpbmdzLCBzZXR0aW5ncz86IFByb3BlcnRpZXNPZjxGaWx0ZXJCYXI+ICYgJEZpbHRlckJhclNldHRpbmdzKSB7XG5cdFx0ZGVsZXRlIGlkT3JQcm9wcz8ucHJvcGVydHlJbmZvO1xuXHRcdGRlbGV0ZSBzZXR0aW5ncz8ucHJvcGVydHlJbmZvO1xuXHRcdHN1cGVyKGlkT3JQcm9wcyBhcyB1bmtub3duIGFzIHN0cmluZywgc2V0dGluZ3MpO1xuXHRcdHRoaXMuX2luaXRpYWxpemVTdGF0dXMoKTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgX2luaXRpYWxpemVTdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy53YWl0Rm9ySW5pdGlhbGl6YXRpb24oKTtcblx0XHR0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcblx0fVxuXG5cdGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhdGhpcy5faXNJbml0aWFsaXplZDtcblx0fVxuXG5cdHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuXHRwcml2YXRlIF9vU2VnbWVudGVkQnV0dG9uPzogU2VnbWVudGVkQnV0dG9uO1xuXG5cdHByaXZhdGUgX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQ/OiBJRmlsdGVyQ29udGFpbmVyO1xuXG5cdHByaXZhdGUgX29GaWx0ZXJCYXJMYXlvdXQhOiBJRmlsdGVyQ29udGFpbmVyO1xuXG5cdHByaXZhdGUgX2NMYXlvdXRJdGVtOiB0eXBlb2YgRmlsdGVySXRlbUxheW91dDtcblxuXHRzZXRUb2dnbGVDb250cm9sKHZUb2dnbGU6IHN0cmluZyB8IFNlZ21lbnRlZEJ1dHRvbik6IHZvaWQge1xuXHRcdGlmICh0eXBlb2YgdlRvZ2dsZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0dGhpcy5fb1NlZ21lbnRlZEJ1dHRvbiA9IEVsZW1lbnQuZ2V0RWxlbWVudEJ5SWQodlRvZ2dsZSkgYXMgU2VnbWVudGVkQnV0dG9uO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9vU2VnbWVudGVkQnV0dG9uID0gdlRvZ2dsZTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy50b2dnbGVDb250cm9sICYmIHRoaXMuX29TZWdtZW50ZWRCdXR0b24pIHtcblx0XHRcdHRoaXMuX29TZWdtZW50ZWRCdXR0b24uZGV0YWNoRXZlbnQoXCJzZWxlY3Rpb25DaGFuZ2VcIiwgdGhpcy5fdG9nZ2xlTGF5b3V0LmJpbmQodGhpcykpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5fb1NlZ21lbnRlZEJ1dHRvbikge1xuXHRcdFx0dGhpcy5fb1NlZ21lbnRlZEJ1dHRvbi5hdHRhY2hFdmVudChcInNlbGVjdGlvbkNoYW5nZVwiLCB0aGlzLl90b2dnbGVMYXlvdXQuYmluZCh0aGlzKSk7XG5cdFx0fVxuXHRcdHRoaXMuc2V0QXNzb2NpYXRpb24oXCJ0b2dnbGVDb250cm9sXCIsIHZUb2dnbGUsIHRydWUpO1xuXHR9XG5cblx0X3RvZ2dsZUxheW91dCgpOiB2b2lkIHtcblx0XHQvLyBTaW5jZSBwcmltYXJ5IGxheW91dCBpcyBhbHdheXMgY29tcGFjdFxuXHRcdC8vIGhlbmNlIHNldCB0aGUgc2Vjb25kYXJ5IGxheW91dCBhcyB2aXN1YWwgZmlsdGVyIG9ubHkgZm9yIHRoZSBmaXJzdCB0aW1lIG9ubHlcblx0XHR0aGlzLndhaXRGb3JJbml0aWFsaXphdGlvbigpXG5cdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldEtleSA9IHRoaXMuX29TZWdtZW50ZWRCdXR0b24/LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHQodGFyZ2V0S2V5ID09PSBcInZpc3VhbFwiICYmXG5cdFx0XHRcdFx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0Py5pc0E8VmlzdWFsRmlsdGVyQ29udGFpbmVyPihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlckNvbnRhaW5lclwiKSkgfHxcblx0XHRcdFx0XHQodGFyZ2V0S2V5ID09PSBcImNvbXBhY3RcIiAmJlxuXHRcdFx0XHRcdFx0IXRoaXMuX29GaWx0ZXJCYXJMYXlvdXQ/LmlzQTxWaXN1YWxGaWx0ZXJDb250YWluZXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5maWx0ZXJiYXIuVmlzdWFsRmlsdGVyQ29udGFpbmVyXCIpKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCF0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0KSB7XG5cdFx0XHRcdFx0dGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dCA9IG5ldyBWaXN1YWxGaWx0ZXJDb250YWluZXIoKSBhcyB1bmtub3duIGFzIElGaWx0ZXJDb250YWluZXI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBkbyBub3Qgc2hvdyBBZGFwdCBGaWx0ZXJzIEJ1dHRvbiBmb3IgdmlzdWFsIGxheW91dFxuXHRcdFx0XHRpZiAodGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dD8uaXNBPFZpc3VhbEZpbHRlckNvbnRhaW5lcj4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIikpIHtcblx0XHRcdFx0XHR0aGlzLnNldFNob3dBZGFwdEZpbHRlcnNCdXR0b24oZmFsc2UpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuc2V0U2hvd0FkYXB0RmlsdGVyc0J1dHRvbih0cnVlKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGdldCBhbGwgZmlsdGVyIGZpZWxkcyBhbmQgYnV0dG9uIG9mIHRoZSBjdXJyZW50IGxheW91dFxuXHRcdFx0XHRjb25zdCBvQ3VycmVudEZpbHRlckJhckxheW91dCA9IHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQ7XG5cdFx0XHRcdGNvbnN0IG9GaWx0ZXJJdGVtcyA9IHRoaXMuZ2V0RmlsdGVySXRlbXMoKTtcblx0XHRcdFx0Y29uc3QgYUZpbHRlckZpZWxkcyA9IG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LmdldEFsbEZpbHRlckZpZWxkcygpO1xuXHRcdFx0XHRjb25zdCBhU29ydGVkRmlsdGVyRmllbGRzID0gdGhpcy5nZXRTb3J0ZWRGaWx0ZXJGaWVsZHMob0ZpbHRlckl0ZW1zLCBhRmlsdGVyRmllbGRzKTtcblx0XHRcdFx0Y29uc3QgYUJ1dHRvbnMgPSBvQ3VycmVudEZpbHRlckJhckxheW91dC5nZXRBbGxCdXR0b25zKCk7XG5cdFx0XHRcdGNvbnN0IGFWaXN1YWxGaWx0ZXJGaWVsZHMgPVxuXHRcdFx0XHRcdG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LmdldEFsbFZpc3VhbEZpbHRlckZpZWxkcyAmJlxuXHRcdFx0XHRcdChvQ3VycmVudEZpbHRlckJhckxheW91dC5nZXRBbGxWaXN1YWxGaWx0ZXJGaWVsZHMoKSBhcyBSZWNvcmQ8c3RyaW5nLCBWaXN1YWxGaWx0ZXI+IHwgdW5kZWZpbmVkKTtcblx0XHRcdFx0aWYgKHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQ/LmlzQTxWaXN1YWxGaWx0ZXJDb250YWluZXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5maWx0ZXJiYXIuVmlzdWFsRmlsdGVyQ29udGFpbmVyXCIpKSB7XG5cdFx0XHRcdFx0dGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dC5zZXRBbGxGaWx0ZXJGaWVsZHMoYVNvcnRlZEZpbHRlckZpZWxkcywgYVZpc3VhbEZpbHRlckZpZWxkcyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gdXNlIHNlY29uZGFyeSBmaWx0ZXIgYmFyIGxheW91dCBhcyBuZXcgbGF5b3V0XG5cdFx0XHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQgPSB0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0ITtcblxuXHRcdFx0XHQvLyBpbnNlcnQgYWxsIGZpbHRlciBmaWVsZHMgZnJvbSBjdXJyZW50IGxheW91dCB0byBuZXcgbGF5b3V0XG5cdFx0XHRcdGFGaWx0ZXJGaWVsZHMuZm9yRWFjaCgob0ZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCwgaUluZGV4OiBudW1iZXIpID0+IHtcblx0XHRcdFx0XHRvQ3VycmVudEZpbHRlckJhckxheW91dC5yZW1vdmVGaWx0ZXJGaWVsZChvRmlsdGVyRmllbGQpO1xuXHRcdFx0XHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQuaW5zZXJ0RmlsdGVyRmllbGQob0ZpbHRlckZpZWxkLCBpSW5kZXgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Ly8gaW5zZXJ0IGFsbCBidXR0b25zIGZyb20gdGhlIGN1cnJlbnQgbGF5b3V0IHRvIHRoZSBuZXcgbGF5b3V0XG5cdFx0XHRcdGFCdXR0b25zLmZvckVhY2goKG9CdXR0b246IEJ1dHRvbikgPT4ge1xuXHRcdFx0XHRcdG9DdXJyZW50RmlsdGVyQmFyTGF5b3V0LnJlbW92ZUJ1dHRvbihvQnV0dG9uKTtcblx0XHRcdFx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LmFkZEJ1dHRvbihvQnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gc2V0IHRoZSBjdXJyZW50IGZpbHRlciBiYXIgbGF5b3V0IHRvIHRoZSBzZWNvbmRhcnkgb25lXG5cdFx0XHRcdHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQgPSBvQ3VycmVudEZpbHRlckJhckxheW91dDtcblxuXHRcdFx0XHQvLyB1cGRhdGUgdGhlIGxheW91dCBhZ2dyZWdhdGlvbiBvZiB0aGUgZmlsdGVyIGJhciBhbmQgcmVyZW5kZXIgdGhlIHNhbWUuXG5cdFx0XHRcdHRoaXMuc2V0QWdncmVnYXRpb24oXCJsYXlvdXRcIiwgdGhpcy5fb0ZpbHRlckJhckxheW91dCwgdHJ1ZSk7XG5cdFx0XHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQuaW52YWxpZGF0ZSgpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKChlcnJvcikgPT4ge1xuXHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRnZXRTb3J0ZWRGaWx0ZXJGaWVsZHMoYUZpbHRlckl0ZW1zOiBGaWx0ZXJGaWVsZFtdLCBhRmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdKTogRmlsdGVyRmllbGRbXSB7XG5cdFx0Y29uc3QgYUZpbHRlcklkczogc3RyaW5nW10gPSBbXTtcblx0XHRhRmlsdGVySXRlbXMuZm9yRWFjaChmdW5jdGlvbiAob0ZpbHRlckl0ZW06IEZpbHRlckZpZWxkKSB7XG5cdFx0XHRhRmlsdGVySWRzLnB1c2gob0ZpbHRlckl0ZW0uZ2V0SWQoKSk7XG5cdFx0fSk7XG5cdFx0YUZpbHRlckZpZWxkcy5zb3J0KGZ1bmN0aW9uIChhRmlyc3RJdGVtOiBGaWx0ZXJGaWVsZCwgYVNlY29uZEl0ZW06IEZpbHRlckZpZWxkKSB7XG5cdFx0XHRsZXQgc0ZpcnN0SXRlbVZGSWQsIHNTZWNvbmRJdGVtVkZJZDtcblx0XHRcdChhRmlyc3RJdGVtLmdldENvbnRlbnQoKSBhcyB1bmtub3duIGFzIENvbnRyb2xbXSkuZm9yRWFjaChmdW5jdGlvbiAob0lubmVyQ29udHJvbDogQ29udHJvbCkge1xuXHRcdFx0XHRpZiAob0lubmVyQ29udHJvbC5pc0E8RmlsdGVyRmllbGQ+KFwic2FwLnVpLm1kYy5GaWx0ZXJGaWVsZFwiKSkge1xuXHRcdFx0XHRcdHNGaXJzdEl0ZW1WRklkID0gb0lubmVyQ29udHJvbC5nZXRJZCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdChhU2Vjb25kSXRlbS5nZXRDb250ZW50KCkgYXMgdW5rbm93biBhcyBDb250cm9sW10pLmZvckVhY2goZnVuY3Rpb24gKG9Jbm5lckNvbnRyb2w6IENvbnRyb2wpIHtcblx0XHRcdFx0aWYgKG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0XHRzU2Vjb25kSXRlbVZGSWQgPSBvSW5uZXJDb250cm9sLmdldElkKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGFGaWx0ZXJJZHMuaW5kZXhPZihzRmlyc3RJdGVtVkZJZCA/PyBcIlwiKSAtIGFGaWx0ZXJJZHMuaW5kZXhPZihzU2Vjb25kSXRlbVZGSWQgPz8gXCJcIik7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGFGaWx0ZXJGaWVsZHM7XG5cdH1cblxuXHRfY3JlYXRlSW5uZXJMYXlvdXQoKTogdm9pZCB7XG5cdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dCA9IG5ldyBGaWx0ZXJDb250YWluZXIoKTtcblx0XHR0aGlzLl9jTGF5b3V0SXRlbSA9IEZpbHRlckl0ZW1MYXlvdXQ7XG5cdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dC5nZXRJbm5lcigpLmFkZFN0eWxlQ2xhc3MoXCJzYXBVaU1kY0ZpbHRlckJhckJhc2VBRkxheW91dFwiKTtcblx0XHR0aGlzLl9hZGRCdXR0b25zKCk7XG5cblx0XHQvLyBUT0RPOiBDaGVjayB3aXRoIE1EQyBpZiB0aGVyZSBpcyBhIGJldHRlciB3YXkgdG8gbG9hZCB2aXN1YWwgZmlsdGVyIG9uIHRoZSBiYXNpcyBvZiBjb250cm9sIHByb3BlcnR5XG5cdFx0Ly8gX2NyZWF0ZUlubmVyTGF5b3V0IGlzIGNhbGxlZCBvbiBJbml0IGJ5IHRoZSBmaWx0ZXIgYmFyIGJhc2UuXG5cdFx0Ly8gVGhpcyBtZWFuIHRoYXQgd2UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBjb250cm9sIHByb3BlcnRpZXMgeWV0XG5cdFx0Ly8gYW5kIGhlbmNlIHdlIGNhbm5vdCBkZWNpZGUgb24gdGhlIGJhc2lzIG9mIGNvbnRyb2wgcHJvcGVydGllcyB3aGV0aGVyIGluaXRpYWwgbGF5b3V0IHNob3VsZCBiZSBjb21wYWN0IG9yIHZpc3VhbFxuXHRcdC8vIEFzIGEgcmVzdWx0IHdlIGhhdmUgdG8gZG8gdGhpcyB3b3JrYXJvdW5kIHRvIGFsd2F5cyBsb2FkIHRoZSBjb21wYWN0IGxheW91dCBieSBkZWZhdWx0XG5cdFx0Ly8gQW5kIHRvb2dsZSB0aGUgc2FtZSBpbiBjYXNlIHRoZSBpbml0aWFsTGF5b3V0IHdhcyBzdXBwb3NlZCB0byBiZSB2aXN1YWwgZmlsdGVycy5cblx0XHRjb25zdCBvSW5uZXJMYXlvdXQgPSB0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LmdldElubmVyKCk7XG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRhaW5lcklubmVyTGF5b3V0RXZlbnREZWxlZ2F0ZSA9IHtcblx0XHRcdG9uQmVmb3JlUmVuZGVyaW5nOiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmluaXRpYWxMYXlvdXQgPT09IFwidmlzdWFsXCIpIHtcblx0XHRcdFx0XHR0aGlzLl90b2dnbGVMYXlvdXQoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRvSW5uZXJMYXlvdXQucmVtb3ZlRXZlbnREZWxlZ2F0ZShvRmlsdGVyQ29udGFpbmVySW5uZXJMYXlvdXRFdmVudERlbGVnYXRlKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdG9Jbm5lckxheW91dC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJDb250YWluZXJJbm5lckxheW91dEV2ZW50RGVsZWdhdGUpO1xuXG5cdFx0dGhpcy5zZXRBZ2dyZWdhdGlvbihcImxheW91dFwiLCB0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LCB0cnVlKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0c3VwZXIuZXhpdCgpO1xuXHRcdC8vIFNvbWV0aW1lcyB1cG9uIGV4dGVybmFsIG5hdmlnYXRpb24gdGhpcy5fU2VnbWVudGVkQnV0dG9uIGlzIGFscmVhZHkgZGVzdHJveWVkXG5cdFx0Ly8gc28gY2hlY2sgaWYgaXQgZXhpc3RzIGFuZCB0aGVuIG9ubHkgcmVtb3ZlIHN0dWZmXG5cdFx0aWYgKHRoaXMuX29TZWdtZW50ZWRCdXR0b24pIHtcblx0XHRcdHRoaXMuX29TZWdtZW50ZWRCdXR0b24uZGV0YWNoRXZlbnQoXCJzZWxlY3Rpb25DaGFuZ2VcIiwgdGhpcy5fdG9nZ2xlTGF5b3V0KTtcblx0XHRcdGRlbGV0ZSB0aGlzLl9vU2VnbWVudGVkQnV0dG9uO1xuXHRcdH1cblx0fVxuXG5cdGdldFNlZ21lbnRlZEJ1dHRvbigpOiBTZWdtZW50ZWRCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9vU2VnbWVudGVkQnV0dG9uO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVuYWJsZSBvciBkaXNhYmxlIHJlcXVlc3RzIHRoYXQgYXJlIGluaXRpYXRlZCBieSB0aGUgRmlsdGVyQmFyLlxuXHQgKlxuXHQgKiBUbyBiZSB1c2VkIHRvIHN1c3BlbmQgb3IgcmVzdW1lIHJlcXVlc3RzKHRhYmxlIG9yIHZpc3VhbCBmaWx0ZXJzKSB3aGVuIHRoZSBmaWx0ZXIgYmFyIGlzIGJlaW5nIG1vZGlmaWVkIG9yIHdoZW4gdGhlIHVzZXIgaXMgcHJvZ3JhbW1hdGljYWxseSBpbnRlcmFjdGluZyB3aXRoIHRoZSBmaWx0ZXIgY29udHJvbHMuXG5cdCAqIFRoaXMgbWV0aG9kIGlzIGFsc28gdXNlZCB0byBjb250cm9sIHdoZXRoZXIgdGhlIHZpc3VhbCBmaWx0ZXIgY2hhcnQgYmluZGluZyBzaG91bGQgYmUgcmVzdW1lZC9zdXNwZW5kZWQgYmFzZWQgb24gdGhlIGRpZmYgc3RhdGUsIGFuZCByZXN1bWVkIGFmdGVyIGNvbmRpdG9uIG1vZGVsIHVwZGF0ZS5cblx0ICogQHBhcmFtIGVuYWJsZSBFbmFibGUgb3IgZGlzYWJsZSByZXF1ZXN0c1xuXHQgKiBAcGFyYW0gZGlmZlN0YXRlIElmIHRoZXJlIGlzIGEgZGlmZmVybmNlIGluIHRoZSBleHRlcm5hbCBzdGF0ZSB0aGF0IG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgZm9yIHZpc3VhbCBmaWx0ZXIgaW4tcGFyYW1ldGVyc1xuXHQgKi9cblx0ZW5hYmxlUmVxdWVzdHMoZW5hYmxlOiBib29sZWFuLCBkaWZmU3RhdGU/OiBFeHRlcm5hbFN0YXRlVHlwZSk6IHZvaWQge1xuXHRcdHRoaXMuc2V0U3VzcGVuZFNlbGVjdGlvbighZW5hYmxlKTtcblx0XHQvLyBXZSBuZWVkIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSB2aXN1YWwgZmlsdGVyIGNoYXJ0IGJpbmRpbmdzIGJhc2VkIG9uIGRpZmYgc3RhdGUuXG5cdFx0dGhpcy5fZW5hYmxlVmlzdWFsRmlsdGVyQ2hhcnRCaW5kaW5ncyhlbmFibGUsIGRpZmZTdGF0ZSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBmaWx0ZXIgbGF5b3V0IGJ5IGl0cyB0eXBlLlxuXHQgKiBAcGFyYW0gbGF5b3V0Q2xhc3NOYW1lIFRoZSBjbGFzcyBuYW1lIG9mIHRoZSBmaWx0ZXIgbGF5b3V0IHRvIGJlIHJldHVybmVkLlxuXHQgKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgZmlsdGVyIGxheW91dCB0byBiZSByZXR1cm5lZC5cblx0ICogQHR5cGVkZWYge0lGaWx0ZXJDb250YWluZXJ9IFQgVGhlIHR5cGUgb2YgdGhlIGZpbHRlciBsYXlvdXQgdG8gYmUgcmV0dXJuZWRcblx0ICogQHJldHVybnMgQ29ycmVzcG9uZGluZyBmaWx0ZXIgbGF5b3V0IGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cblx0ICovXG5cdF9nZXRGaWx0ZXJMYXlvdXRCeVR5cGU8VCBleHRlbmRzIElGaWx0ZXJDb250YWluZXI+KGxheW91dENsYXNzTmFtZTogQ29udGFpbmVyVHlwZSk6IFQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHJldEZpbHRlckxheW91dCA9IHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQuaXNBPFQ+KGxheW91dENsYXNzTmFtZSkgPyB0aGlzLl9vRmlsdGVyQmFyTGF5b3V0IDogdW5kZWZpbmVkO1xuXHRcdHJldHVybiAhcmV0RmlsdGVyTGF5b3V0ICYmIHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQ/LmlzQTxUPihsYXlvdXRDbGFzc05hbWUpXG5cdFx0XHQ/IHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXRcblx0XHRcdDogcmV0RmlsdGVyTGF5b3V0O1xuXHR9XG5cblx0X2VuYWJsZVZpc3VhbEZpbHRlckNoYXJ0QmluZGluZ3MoZW5hYmxlOiBib29sZWFuLCBkaWZmU3RhdGU/OiBFeHRlcm5hbFN0YXRlVHlwZSk6IHZvaWQge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0Y29uc3QgdmlzdWFsRmlsdGVyTGF5b3V0ID0gdGhpcy5fZ2V0RmlsdGVyTGF5b3V0QnlUeXBlPFZpc3VhbEZpbHRlckNvbnRhaW5lcj4oVklTVUFMX0ZJTFRFUl9DT05UQUlORVIpO1xuXHRcdGlmICh2aXN1YWxGaWx0ZXJMYXlvdXQpIHtcblx0XHRcdHZpc3VhbEZpbHRlckxheW91dC5lbmFibGVDaGFydEJpbmRpbmcoZW5hYmxlLCBkaWZmU3RhdGUpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIElmIGluaXRpYWwgbGF5b3V0IGlzIGNvbXBhY3QsIHdlIGRvbid0IGhhdmUgdGhlIHZpc3VhbCBmaWx0ZXIgbGF5b3V0KGNvbnRhaW5lcikgYXZhaWxhYmxlIHlldCB1bnRpbCB0aGUgdXNlciB0b2dnbGVzIHRvIHZpc3VhbCBmaWx0ZXIgbGF5b3V0LlxuXHRcdC8vIFNvIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlIGNvbXBhY3QgZmlsdGVyIGxheW91dCBoYXMgdmlzdWFsIGZpbHRlcnMgYW5kIGVuYWJsZS9kaXNhYmxlIHRoZSBjaGFydCBiaW5kaW5nIGZvciB0aG9zZSB2aXN1YWwgZmlsdGVycy5cblx0XHRjb25zdCBjb21wYWN0RmlsdGVyTGF5b3V0ID0gdGhpcy5fZ2V0RmlsdGVyTGF5b3V0QnlUeXBlPEZpbHRlckNvbnRhaW5lcj4oRklMVEVSX0NPTlRBSU5FUik7XG5cdFx0aWYgKGNvbXBhY3RGaWx0ZXJMYXlvdXQpIHtcblx0XHRcdGNvbnN0IHZpc3VhbEZpbHRlcnMgPSBjb21wYWN0RmlsdGVyTGF5b3V0LmdldEFsbFZpc3VhbEZpbHRlckZpZWxkcygpO1xuXHRcdFx0aWYgKHZpc3VhbEZpbHRlcnMpIHtcblx0XHRcdFx0VmlzdWFsRmlsdGVyVXRpbHMuZW5hYmxlQ2hhcnRCaW5kaW5nKHZpc3VhbEZpbHRlcnMsIGVuYWJsZSwgZGlmZlN0YXRlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbmludGVyZmFjZSBGaWx0ZXJCYXIge1xuXHRfYWRkQnV0dG9ucygpOiB2b2lkO1xufVxuZXhwb3J0IGRlZmF1bHQgRmlsdGVyQmFyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBa0JBLE1BQU1BLHVCQUF1QixHQUFHLHdEQUF3RDtJQUN2RkMsZ0JBQWdCLEdBQUcsa0RBQWtEO0VBQUMsSUFJakVDLFNBQVMsSUFBQUMsSUFBQSxHQURkQyxjQUFjLENBQUMsa0NBQWtDLENBQUMsRUFBQUMsS0FBQSxHQUVqREMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxRQUFRO0lBQUVDLFlBQVksRUFBRTtFQUFVLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBR3JESCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUMsWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FNbERDLFdBQVcsQ0FBQztJQUNaSixJQUFJLEVBQUUsdUJBQXVCO0lBQzdCSyxRQUFRLEVBQUU7RUFDWCxDQUFDLENB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R2tFLFNBQVM7TUFDM0csT0FBTyxDQUFDRCxlQUFlLElBQUksSUFBSSxDQUFDL0QsMEJBQTBCLEVBQUVELEdBQUcsQ0FBSStELGVBQWUsQ0FBQyxHQUNoRixJQUFJLENBQUM5RCwwQkFBMEIsR0FDL0IrRCxlQUFlO0lBQ25CLENBQUM7SUFBQW5GLE1BQUEsQ0FFRGdGLGdDQUFnQyxHQUFoQyxTQUFBQSxnQ0FBZ0NBLENBQUNILE1BQWUsRUFBRUMsU0FBNkIsRUFBUTtNQUN0RjtNQUNBO01BQ0EsTUFBTU8sa0JBQWtCLEdBQUcsSUFBSSxDQUFDSixzQkFBc0IsQ0FBd0I3Ryx1QkFBdUIsQ0FBQztNQUN0RyxJQUFJaUgsa0JBQWtCLEVBQUU7UUFDdkJBLGtCQUFrQixDQUFDQyxrQkFBa0IsQ0FBQ1QsTUFBTSxFQUFFQyxTQUFTLENBQUM7UUFDeEQ7TUFDRDs7TUFFQTtNQUNBO01BQ0EsTUFBTVMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDTixzQkFBc0IsQ0FBa0I1RyxnQkFBZ0IsQ0FBQztNQUMxRixJQUFJa0gsbUJBQW1CLEVBQUU7UUFDeEIsTUFBTUMsYUFBYSxHQUFHRCxtQkFBbUIsQ0FBQ3RELHdCQUF3QixDQUFDLENBQUM7UUFDcEUsSUFBSXVELGFBQWEsRUFBRTtVQUNsQkMsaUJBQWlCLENBQUNILGtCQUFrQixDQUFDRSxhQUFhLEVBQUVYLE1BQU0sRUFBRUMsU0FBUyxDQUFDO1FBQ3ZFO01BQ0Q7SUFDRCxDQUFDO0lBQUEsT0FBQXhHLFNBQUE7RUFBQSxFQXRPc0JvSCxZQUFZLEdBQUFoRyxXQUFBLEdBQUFpRyx5QkFBQSxDQUFBekcsT0FBQSxDQUFBZSxTQUFBLG9CQUFBeEIsS0FBQTtJQUFBbUgsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFwRyxZQUFBLEdBQUFnRyx5QkFBQSxDQUFBekcsT0FBQSxDQUFBZSxTQUFBLGtDQUFBcEIsS0FBQTtJQUFBK0csWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFuRyxZQUFBLEdBQUErRix5QkFBQSxDQUFBekcsT0FBQSxDQUFBZSxTQUFBLG9CQUFBbkIsS0FBQTtJQUFBOEcsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE3RyxPQUFBLE1BQUFELE1BQUE7RUFBQSxPQTJPckJYLFNBQVM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
278
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWSVNVQUxfRklMVEVSX0NPTlRBSU5FUiIsIkZJTFRFUl9DT05UQUlORVIiLCJGaWx0ZXJCYXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIl9kZWMzIiwiX2RlYzQiLCJhc3NvY2lhdGlvbiIsIm11bHRpcGxlIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9NZGNGaWx0ZXJCYXIiLCJpZE9yUHJvcHMiLCJzZXR0aW5ncyIsIl90aGlzIiwicHJvcGVydHlJbmZvIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfaXNJbml0aWFsaXplZCIsIl9pbml0aWFsaXplU3RhdHVzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJfaW5pdGlhbGl6ZWRQcm9taXNlS2VlcGVyIiwiUHJvbWlzZUtlZXBlciIsImluaXRpYWxpemVkV2l0aE1ldGFkYXRhIiwid2FpdEZvck1vZGVsVG9CZVNldCIsInJlc29sdmUiLCJnZXRNb2RlbCIsIm1vZGVsSXNTZXRQcm9taXNlS2VlcGVyIiwiZm5DaGVja0FuZFJlc2V0IiwiZSIsImZpbHRlcmJhciIsImdldFNvdXJjZSIsImRldGFjaE1vZGVsQ29udGV4dENoYW5nZSIsImF0dGFjaE1vZGVsQ29udGV4dENoYW5nZSIsInByb21pc2UiLCJpc0luaXRpYWxpemVkIiwid2hlbkluaXRpYWxpemVkIiwic2V0VG9nZ2xlQ29udHJvbCIsInZUb2dnbGUiLCJfb1NlZ21lbnRlZEJ1dHRvbiIsIkVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInRvZ2dsZUNvbnRyb2wiLCJkZXRhY2hFdmVudCIsIl90b2dnbGVMYXlvdXQiLCJiaW5kIiwiYXR0YWNoRXZlbnQiLCJzZXRBc3NvY2lhdGlvbiIsIndhaXRGb3JJbml0aWFsaXphdGlvbiIsInRoZW4iLCJ0YXJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9vRmlsdGVyQmFyTGF5b3V0IiwiaXNBIiwiX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQiLCJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJzZXRTaG93QWRhcHRGaWx0ZXJzQnV0dG9uIiwib0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQiLCJvRmlsdGVySXRlbXMiLCJnZXRGaWx0ZXJJdGVtcyIsImFGaWx0ZXJGaWVsZHMiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJhU29ydGVkRmlsdGVyRmllbGRzIiwiZ2V0U29ydGVkRmlsdGVyRmllbGRzIiwiYUJ1dHRvbnMiLCJnZXRBbGxCdXR0b25zIiwiYVZpc3VhbEZpbHRlckZpZWxkcyIsImdldEFsbFZpc3VhbEZpbHRlckZpZWxkcyIsInNldEFsbEZpbHRlckZpZWxkcyIsImZvckVhY2giLCJvRmlsdGVyRmllbGQiLCJpSW5kZXgiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsImluc2VydEZpbHRlckZpZWxkIiwib0J1dHRvbiIsInJlbW92ZUJ1dHRvbiIsImFkZEJ1dHRvbiIsInNldEFnZ3JlZ2F0aW9uIiwiaW52YWxpZGF0ZSIsImNhdGNoIiwiZXJyb3IiLCJMb2ciLCJhRmlsdGVySXRlbXMiLCJhRmlsdGVySWRzIiwib0ZpbHRlckl0ZW0iLCJwdXNoIiwiZ2V0SWQiLCJzb3J0IiwiYUZpcnN0SXRlbSIsImFTZWNvbmRJdGVtIiwic0ZpcnN0SXRlbVZGSWQiLCJzU2Vjb25kSXRlbVZGSWQiLCJnZXRDb250ZW50Iiwib0lubmVyQ29udHJvbCIsImluZGV4T2YiLCJfY3JlYXRlSW5uZXJMYXlvdXQiLCJGaWx0ZXJDb250YWluZXIiLCJfY0xheW91dEl0ZW0iLCJGaWx0ZXJJdGVtTGF5b3V0IiwiZ2V0SW5uZXIiLCJhZGRTdHlsZUNsYXNzIiwiX2FkZEJ1dHRvbnMiLCJvSW5uZXJMYXlvdXQiLCJvRmlsdGVyQ29udGFpbmVySW5uZXJMYXlvdXRFdmVudERlbGVnYXRlIiwib25CZWZvcmVSZW5kZXJpbmciLCJpbml0aWFsTGF5b3V0IiwicmVtb3ZlRXZlbnREZWxlZ2F0ZSIsImFkZEV2ZW50RGVsZWdhdGUiLCJleGl0IiwiZ2V0U2VnbWVudGVkQnV0dG9uIiwiZW5hYmxlUmVxdWVzdHMiLCJlbmFibGUiLCJkaWZmU3RhdGUiLCJzZXRTdXNwZW5kU2VsZWN0aW9uIiwiX2VuYWJsZVZpc3VhbEZpbHRlckNoYXJ0QmluZGluZ3MiLCJfZ2V0RmlsdGVyTGF5b3V0QnlUeXBlIiwibGF5b3V0Q2xhc3NOYW1lIiwicmV0RmlsdGVyTGF5b3V0IiwidW5kZWZpbmVkIiwidmlzdWFsRmlsdGVyTGF5b3V0IiwiZW5hYmxlQ2hhcnRCaW5kaW5nIiwiY29tcGFjdEZpbHRlckxheW91dCIsInZpc3VhbEZpbHRlcnMiLCJWaXN1YWxGaWx0ZXJVdGlscyIsIk1kY0ZpbHRlckJhciIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyQmFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhc3NvY2lhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IFByb21pc2VLZWVwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvUHJvbWlzZUtlZXBlclwiO1xuaW1wb3J0IEZpbHRlckNvbnRhaW5lciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9maWx0ZXJiYXIvRmlsdGVyQ29udGFpbmVyXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyQ29udGFpbmVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL2ZpbHRlcmJhci9WaXN1YWxGaWx0ZXJDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIFZpc3VhbEZpbHRlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy92aXN1YWxmaWx0ZXJzL1Zpc3VhbEZpbHRlclwiO1xuaW1wb3J0IHR5cGUgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCB0eXBlIFNlZ21lbnRlZEJ1dHRvbiBmcm9tIFwic2FwL20vU2VnbWVudGVkQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7IE1hbmFnZWRPYmplY3QkTW9kZWxDb250ZXh0Q2hhbmdlRXZlbnQgfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBFbGVtZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIHsgJEZpbHRlckJhclNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgTWRjRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyRmllbGQgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyRmllbGRcIjtcbmltcG9ydCB0eXBlIElGaWx0ZXJDb250YWluZXIgZnJvbSBcInNhcC91aS9tZGMvZmlsdGVyYmFyL0lGaWx0ZXJDb250YWluZXJcIjtcbmltcG9ydCBGaWx0ZXJJdGVtTGF5b3V0IGZyb20gXCJzYXAvdWkvbWRjL2ZpbHRlcmJhci9hbGlnbmVkL0ZpbHRlckl0ZW1MYXlvdXRcIjtcbmltcG9ydCB7IHR5cGUgRXh0ZXJuYWxTdGF0ZVR5cGUgfSBmcm9tIFwiLi4vdmFsdWVoZWxwL1ZhbHVlSGVscERlbGVnYXRlXCI7XG5pbXBvcnQgVmlzdWFsRmlsdGVyVXRpbHMgZnJvbSBcIi4vZmlsdGVyYmFyL3V0aWxzL1Zpc3VhbEZpbHRlclV0aWxzXCI7XG5cbmNvbnN0IFZJU1VBTF9GSUxURVJfQ09OVEFJTkVSID0gXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIixcblx0RklMVEVSX0NPTlRBSU5FUiA9IFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5maWx0ZXJiYXIuRmlsdGVyQ29udGFpbmVyXCI7XG50eXBlIENvbnRhaW5lclR5cGUgPSB0eXBlb2YgVklTVUFMX0ZJTFRFUl9DT05UQUlORVIgfCB0eXBlb2YgRklMVEVSX0NPTlRBSU5FUjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5GaWx0ZXJCYXJcIilcbmNsYXNzIEZpbHRlckJhciBleHRlbmRzIE1kY0ZpbHRlckJhciB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogXCJjb21wYWN0XCIgfSlcblx0aW5pdGlhbExheW91dCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRkaXNhYmxlRHJhZnRFZGl0U3RhdGVGaWx0ZXIhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBDb250cm9sIHdoaWNoIGFsbG93cyBmb3Igc3dpdGNoaW5nIGJldHdlZW4gdmlzdWFsIGFuZCBub3JtYWwgZmlsdGVyIGxheW91dHNcblx0ICovXG5cdEBhc3NvY2lhdGlvbih7XG5cdFx0dHlwZTogXCJzYXAubS5TZWdtZW50ZWRCdXR0b25cIixcblx0XHRtdWx0aXBsZTogZmFsc2Vcblx0fSlcblx0dG9nZ2xlQ29udHJvbCE6IHN0cmluZztcblxuXHRjb25zdHJ1Y3RvcihpZE9yUHJvcHM/OiBQcm9wZXJ0aWVzT2Y8RmlsdGVyQmFyPiAmICRGaWx0ZXJCYXJTZXR0aW5ncywgc2V0dGluZ3M/OiBQcm9wZXJ0aWVzT2Y8RmlsdGVyQmFyPiAmICRGaWx0ZXJCYXJTZXR0aW5ncykge1xuXHRcdGRlbGV0ZSBpZE9yUHJvcHM/LnByb3BlcnR5SW5mbztcblx0XHRkZWxldGUgc2V0dGluZ3M/LnByb3BlcnR5SW5mbztcblx0XHRzdXBlcihpZE9yUHJvcHMgYXMgdW5rbm93biBhcyBzdHJpbmcsIHNldHRpbmdzKTtcblx0XHR0aGlzLl9pbml0aWFsaXplU3RhdHVzKCk7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIF9pbml0aWFsaXplU3RhdHVzKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdC8vIFByb21pc2Uga2VlcGVyIHRvIGhvbGQgdGhlIHByb2Nlc3MuXG5cdFx0dGhpcy5faW5pdGlhbGl6ZWRQcm9taXNlS2VlcGVyID0gbmV3IFByb21pc2VLZWVwZXI8dm9pZD4oKTtcblxuXHRcdC8vIEF3YWl0c1xuXHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZWRXaXRoTWV0YWRhdGEoKTtcblx0XHRhd2FpdCB0aGlzLndhaXRGb3JNb2RlbFRvQmVTZXQoKTtcblxuXHRcdHRoaXMuX2luaXRpYWxpemVkUHJvbWlzZUtlZXBlci5yZXNvbHZlKCk7XG5cdFx0dGhpcy5faXNJbml0aWFsaXplZCA9IHRydWU7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIHdhaXRGb3JNb2RlbFRvQmVTZXQoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKHRoaXMuZ2V0TW9kZWwoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHQvLyB3YWl0IGZvciBkZWFmYXVsdCBtb2RlbCB0byBiZSBzZXQuXG5cdFx0Y29uc3QgbW9kZWxJc1NldFByb21pc2VLZWVwZXIgPSBuZXcgUHJvbWlzZUtlZXBlcjx2b2lkPigpO1xuXHRcdGNvbnN0IGZuQ2hlY2tBbmRSZXNldCA9IChlOiBNYW5hZ2VkT2JqZWN0JE1vZGVsQ29udGV4dENoYW5nZUV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRjb25zdCBmaWx0ZXJiYXIgPSBlLmdldFNvdXJjZSgpO1xuXHRcdFx0aWYgKGZpbHRlcmJhci5nZXRNb2RlbCgpKSB7XG5cdFx0XHRcdC8vIGRlZmF1bHQgbW9kZWwgaXMgc2V0LlxuXHRcdFx0XHRmaWx0ZXJiYXIuZGV0YWNoTW9kZWxDb250ZXh0Q2hhbmdlKGZuQ2hlY2tBbmRSZXNldCk7XG5cdFx0XHRcdG1vZGVsSXNTZXRQcm9taXNlS2VlcGVyPy5yZXNvbHZlKCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHR0aGlzLmF0dGFjaE1vZGVsQ29udGV4dENoYW5nZShmbkNoZWNrQW5kUmVzZXQpO1xuXHRcdHJldHVybiBtb2RlbElzU2V0UHJvbWlzZUtlZXBlci5wcm9taXNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgRmlsdGVyQmFyIGlzIGZ1bGx5IGluaXRpYWxpemVkLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBGaWx0ZXJCYXIgaXMgaW5pdGlhbGl6ZWQsIGZhbHNlIG90aGVyd2lzZS5cblx0ICovXG5cdGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhdGhpcy5faXNJbml0aWFsaXplZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBBc3luYyBlcXVpdmFsZW50IG9mICdpc0luaXRpYWxpemVkJyB0byBwZXJmb3JtIGZpbHRlciBiYXIgaW50ZXJhY3Rpb25zIGFmdGVyIHRoZSBmaWx0ZXIgYmFyIGlzIHJlYWR5LlxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsdGVyIGJhciBpcyBpbml0aWFsaXplZC5cblx0ICovXG5cdGFzeW5jIHdoZW5Jbml0aWFsaXplZCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRyZXR1cm4gdGhpcy5faW5pdGlhbGl6ZWRQcm9taXNlS2VlcGVyPy5wcm9taXNlO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdGlhbGl6ZWRQcm9taXNlS2VlcGVyPzogUHJvbWlzZUtlZXBlcjx2b2lkPjtcblxuXHRwcml2YXRlIF9pc0luaXRpYWxpemVkID0gZmFsc2U7XG5cblx0cHJpdmF0ZSBfb1NlZ21lbnRlZEJ1dHRvbj86IFNlZ21lbnRlZEJ1dHRvbjtcblxuXHRwcml2YXRlIF9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0PzogSUZpbHRlckNvbnRhaW5lcjtcblxuXHRwcml2YXRlIF9vRmlsdGVyQmFyTGF5b3V0ITogSUZpbHRlckNvbnRhaW5lcjtcblxuXHRwcml2YXRlIF9jTGF5b3V0SXRlbTogdHlwZW9mIEZpbHRlckl0ZW1MYXlvdXQ7XG5cblx0c2V0VG9nZ2xlQ29udHJvbCh2VG9nZ2xlOiBzdHJpbmcgfCBTZWdtZW50ZWRCdXR0b24pOiB2b2lkIHtcblx0XHRpZiAodHlwZW9mIHZUb2dnbGUgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdHRoaXMuX29TZWdtZW50ZWRCdXR0b24gPSBFbGVtZW50LmdldEVsZW1lbnRCeUlkKHZUb2dnbGUpIGFzIFNlZ21lbnRlZEJ1dHRvbjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fb1NlZ21lbnRlZEJ1dHRvbiA9IHZUb2dnbGU7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMudG9nZ2xlQ29udHJvbCAmJiB0aGlzLl9vU2VnbWVudGVkQnV0dG9uKSB7XG5cdFx0XHR0aGlzLl9vU2VnbWVudGVkQnV0dG9uLmRldGFjaEV2ZW50KFwic2VsZWN0aW9uQ2hhbmdlXCIsIHRoaXMuX3RvZ2dsZUxheW91dC5iaW5kKHRoaXMpKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuX29TZWdtZW50ZWRCdXR0b24pIHtcblx0XHRcdHRoaXMuX29TZWdtZW50ZWRCdXR0b24uYXR0YWNoRXZlbnQoXCJzZWxlY3Rpb25DaGFuZ2VcIiwgdGhpcy5fdG9nZ2xlTGF5b3V0LmJpbmQodGhpcykpO1xuXHRcdH1cblx0XHR0aGlzLnNldEFzc29jaWF0aW9uKFwidG9nZ2xlQ29udHJvbFwiLCB2VG9nZ2xlLCB0cnVlKTtcblx0fVxuXG5cdF90b2dnbGVMYXlvdXQoKTogdm9pZCB7XG5cdFx0Ly8gU2luY2UgcHJpbWFyeSBsYXlvdXQgaXMgYWx3YXlzIGNvbXBhY3Rcblx0XHQvLyBoZW5jZSBzZXQgdGhlIHNlY29uZGFyeSBsYXlvdXQgYXMgdmlzdWFsIGZpbHRlciBvbmx5IGZvciB0aGUgZmlyc3QgdGltZSBvbmx5XG5cdFx0dGhpcy53YWl0Rm9ySW5pdGlhbGl6YXRpb24oKVxuXHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB0YXJnZXRLZXkgPSB0aGlzLl9vU2VnbWVudGVkQnV0dG9uPy5nZXRTZWxlY3RlZEtleSgpO1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0KHRhcmdldEtleSA9PT0gXCJ2aXN1YWxcIiAmJlxuXHRcdFx0XHRcdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dD8uaXNBPFZpc3VhbEZpbHRlckNvbnRhaW5lcj4oXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIikpIHx8XG5cdFx0XHRcdFx0KHRhcmdldEtleSA9PT0gXCJjb21wYWN0XCIgJiZcblx0XHRcdFx0XHRcdCF0aGlzLl9vRmlsdGVyQmFyTGF5b3V0Py5pc0E8VmlzdWFsRmlsdGVyQ29udGFpbmVyPihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlckNvbnRhaW5lclwiKSlcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghdGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dCkge1xuXHRcdFx0XHRcdHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQgPSBuZXcgVmlzdWFsRmlsdGVyQ29udGFpbmVyKCkgYXMgdW5rbm93biBhcyBJRmlsdGVyQ29udGFpbmVyO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gZG8gbm90IHNob3cgQWRhcHQgRmlsdGVycyBCdXR0b24gZm9yIHZpc3VhbCBsYXlvdXRcblx0XHRcdFx0aWYgKHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQ/LmlzQTxWaXN1YWxGaWx0ZXJDb250YWluZXI+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5maWx0ZXJiYXIuVmlzdWFsRmlsdGVyQ29udGFpbmVyXCIpKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRTaG93QWRhcHRGaWx0ZXJzQnV0dG9uKGZhbHNlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNldFNob3dBZGFwdEZpbHRlcnNCdXR0b24odHJ1ZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBnZXQgYWxsIGZpbHRlciBmaWVsZHMgYW5kIGJ1dHRvbiBvZiB0aGUgY3VycmVudCBsYXlvdXRcblx0XHRcdFx0Y29uc3Qgb0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQgPSB0aGlzLl9vRmlsdGVyQmFyTGF5b3V0O1xuXHRcdFx0XHRjb25zdCBvRmlsdGVySXRlbXMgPSB0aGlzLmdldEZpbHRlckl0ZW1zKCk7XG5cdFx0XHRcdGNvbnN0IGFGaWx0ZXJGaWVsZHMgPSBvQ3VycmVudEZpbHRlckJhckxheW91dC5nZXRBbGxGaWx0ZXJGaWVsZHMoKTtcblx0XHRcdFx0Y29uc3QgYVNvcnRlZEZpbHRlckZpZWxkcyA9IHRoaXMuZ2V0U29ydGVkRmlsdGVyRmllbGRzKG9GaWx0ZXJJdGVtcywgYUZpbHRlckZpZWxkcyk7XG5cdFx0XHRcdGNvbnN0IGFCdXR0b25zID0gb0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQuZ2V0QWxsQnV0dG9ucygpO1xuXHRcdFx0XHRjb25zdCBhVmlzdWFsRmlsdGVyRmllbGRzID1cblx0XHRcdFx0XHRvQ3VycmVudEZpbHRlckJhckxheW91dC5nZXRBbGxWaXN1YWxGaWx0ZXJGaWVsZHMgJiZcblx0XHRcdFx0XHQob0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQuZ2V0QWxsVmlzdWFsRmlsdGVyRmllbGRzKCkgYXMgUmVjb3JkPHN0cmluZywgVmlzdWFsRmlsdGVyPiB8IHVuZGVmaW5lZCk7XG5cdFx0XHRcdGlmICh0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0Py5pc0E8VmlzdWFsRmlsdGVyQ29udGFpbmVyPihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlckNvbnRhaW5lclwiKSkge1xuXHRcdFx0XHRcdHRoaXMuX29TZWNvbmRhcnlGaWx0ZXJCYXJMYXlvdXQuc2V0QWxsRmlsdGVyRmllbGRzKGFTb3J0ZWRGaWx0ZXJGaWVsZHMsIGFWaXN1YWxGaWx0ZXJGaWVsZHMpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIHVzZSBzZWNvbmRhcnkgZmlsdGVyIGJhciBsYXlvdXQgYXMgbmV3IGxheW91dFxuXHRcdFx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0ID0gdGhpcy5fb1NlY29uZGFyeUZpbHRlckJhckxheW91dCE7XG5cblx0XHRcdFx0Ly8gaW5zZXJ0IGFsbCBmaWx0ZXIgZmllbGRzIGZyb20gY3VycmVudCBsYXlvdXQgdG8gbmV3IGxheW91dFxuXHRcdFx0XHRhRmlsdGVyRmllbGRzLmZvckVhY2goKG9GaWx0ZXJGaWVsZDogRmlsdGVyRmllbGQsIGlJbmRleDogbnVtYmVyKSA9PiB7XG5cdFx0XHRcdFx0b0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQucmVtb3ZlRmlsdGVyRmllbGQob0ZpbHRlckZpZWxkKTtcblx0XHRcdFx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0Lmluc2VydEZpbHRlckZpZWxkKG9GaWx0ZXJGaWVsZCwgaUluZGV4KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdC8vIGluc2VydCBhbGwgYnV0dG9ucyBmcm9tIHRoZSBjdXJyZW50IGxheW91dCB0byB0aGUgbmV3IGxheW91dFxuXHRcdFx0XHRhQnV0dG9ucy5mb3JFYWNoKChvQnV0dG9uOiBCdXR0b24pID0+IHtcblx0XHRcdFx0XHRvQ3VycmVudEZpbHRlckJhckxheW91dC5yZW1vdmVCdXR0b24ob0J1dHRvbik7XG5cdFx0XHRcdFx0dGhpcy5fb0ZpbHRlckJhckxheW91dC5hZGRCdXR0b24ob0J1dHRvbik7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdC8vIHNldCB0aGUgY3VycmVudCBmaWx0ZXIgYmFyIGxheW91dCB0byB0aGUgc2Vjb25kYXJ5IG9uZVxuXHRcdFx0XHR0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0ID0gb0N1cnJlbnRGaWx0ZXJCYXJMYXlvdXQ7XG5cblx0XHRcdFx0Ly8gdXBkYXRlIHRoZSBsYXlvdXQgYWdncmVnYXRpb24gb2YgdGhlIGZpbHRlciBiYXIgYW5kIHJlcmVuZGVyIHRoZSBzYW1lLlxuXHRcdFx0XHR0aGlzLnNldEFnZ3JlZ2F0aW9uKFwibGF5b3V0XCIsIHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQsIHRydWUpO1xuXHRcdFx0XHR0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LmludmFsaWRhdGUoKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaCgoZXJyb3IpID0+IHtcblx0XHRcdFx0TG9nLmVycm9yKGVycm9yKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0Z2V0U29ydGVkRmlsdGVyRmllbGRzKGFGaWx0ZXJJdGVtczogRmlsdGVyRmllbGRbXSwgYUZpbHRlckZpZWxkczogRmlsdGVyRmllbGRbXSk6IEZpbHRlckZpZWxkW10ge1xuXHRcdGNvbnN0IGFGaWx0ZXJJZHM6IHN0cmluZ1tdID0gW107XG5cdFx0YUZpbHRlckl0ZW1zLmZvckVhY2goZnVuY3Rpb24gKG9GaWx0ZXJJdGVtOiBGaWx0ZXJGaWVsZCkge1xuXHRcdFx0YUZpbHRlcklkcy5wdXNoKG9GaWx0ZXJJdGVtLmdldElkKCkpO1xuXHRcdH0pO1xuXHRcdGFGaWx0ZXJGaWVsZHMuc29ydChmdW5jdGlvbiAoYUZpcnN0SXRlbTogRmlsdGVyRmllbGQsIGFTZWNvbmRJdGVtOiBGaWx0ZXJGaWVsZCkge1xuXHRcdFx0bGV0IHNGaXJzdEl0ZW1WRklkLCBzU2Vjb25kSXRlbVZGSWQ7XG5cdFx0XHQoYUZpcnN0SXRlbS5nZXRDb250ZW50KCkgYXMgdW5rbm93biBhcyBDb250cm9sW10pLmZvckVhY2goZnVuY3Rpb24gKG9Jbm5lckNvbnRyb2w6IENvbnRyb2wpIHtcblx0XHRcdFx0aWYgKG9Jbm5lckNvbnRyb2wuaXNBPEZpbHRlckZpZWxkPihcInNhcC51aS5tZGMuRmlsdGVyRmllbGRcIikpIHtcblx0XHRcdFx0XHRzRmlyc3RJdGVtVkZJZCA9IG9Jbm5lckNvbnRyb2wuZ2V0SWQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHQoYVNlY29uZEl0ZW0uZ2V0Q29udGVudCgpIGFzIHVua25vd24gYXMgQ29udHJvbFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChvSW5uZXJDb250cm9sOiBDb250cm9sKSB7XG5cdFx0XHRcdGlmIChvSW5uZXJDb250cm9sLmlzQTxGaWx0ZXJGaWVsZD4oXCJzYXAudWkubWRjLkZpbHRlckZpZWxkXCIpKSB7XG5cdFx0XHRcdFx0c1NlY29uZEl0ZW1WRklkID0gb0lubmVyQ29udHJvbC5nZXRJZCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBhRmlsdGVySWRzLmluZGV4T2Yoc0ZpcnN0SXRlbVZGSWQgPz8gXCJcIikgLSBhRmlsdGVySWRzLmluZGV4T2Yoc1NlY29uZEl0ZW1WRklkID8/IFwiXCIpO1xuXHRcdH0pO1xuXHRcdHJldHVybiBhRmlsdGVyRmllbGRzO1xuXHR9XG5cblx0X2NyZWF0ZUlubmVyTGF5b3V0KCk6IHZvaWQge1xuXHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQgPSBuZXcgRmlsdGVyQ29udGFpbmVyKCk7XG5cdFx0dGhpcy5fY0xheW91dEl0ZW0gPSBGaWx0ZXJJdGVtTGF5b3V0O1xuXHRcdHRoaXMuX29GaWx0ZXJCYXJMYXlvdXQuZ2V0SW5uZXIoKS5hZGRTdHlsZUNsYXNzKFwic2FwVWlNZGNGaWx0ZXJCYXJCYXNlQUZMYXlvdXRcIik7XG5cdFx0dGhpcy5fYWRkQnV0dG9ucygpO1xuXG5cdFx0Ly8gVE9ETzogQ2hlY2sgd2l0aCBNREMgaWYgdGhlcmUgaXMgYSBiZXR0ZXIgd2F5IHRvIGxvYWQgdmlzdWFsIGZpbHRlciBvbiB0aGUgYmFzaXMgb2YgY29udHJvbCBwcm9wZXJ0eVxuXHRcdC8vIF9jcmVhdGVJbm5lckxheW91dCBpcyBjYWxsZWQgb24gSW5pdCBieSB0aGUgZmlsdGVyIGJhciBiYXNlLlxuXHRcdC8vIFRoaXMgbWVhbiB0aGF0IHdlIGRvIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgY29udHJvbCBwcm9wZXJ0aWVzIHlldFxuXHRcdC8vIGFuZCBoZW5jZSB3ZSBjYW5ub3QgZGVjaWRlIG9uIHRoZSBiYXNpcyBvZiBjb250cm9sIHByb3BlcnRpZXMgd2hldGhlciBpbml0aWFsIGxheW91dCBzaG91bGQgYmUgY29tcGFjdCBvciB2aXN1YWxcblx0XHQvLyBBcyBhIHJlc3VsdCB3ZSBoYXZlIHRvIGRvIHRoaXMgd29ya2Fyb3VuZCB0byBhbHdheXMgbG9hZCB0aGUgY29tcGFjdCBsYXlvdXQgYnkgZGVmYXVsdFxuXHRcdC8vIEFuZCB0b29nbGUgdGhlIHNhbWUgaW4gY2FzZSB0aGUgaW5pdGlhbExheW91dCB3YXMgc3VwcG9zZWQgdG8gYmUgdmlzdWFsIGZpbHRlcnMuXG5cdFx0Y29uc3Qgb0lubmVyTGF5b3V0ID0gdGhpcy5fb0ZpbHRlckJhckxheW91dC5nZXRJbm5lcigpO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250YWluZXJJbm5lckxheW91dEV2ZW50RGVsZWdhdGUgPSB7XG5cdFx0XHRvbkJlZm9yZVJlbmRlcmluZzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5pbml0aWFsTGF5b3V0ID09PSBcInZpc3VhbFwiKSB7XG5cdFx0XHRcdFx0dGhpcy5fdG9nZ2xlTGF5b3V0KCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0b0lubmVyTGF5b3V0LnJlbW92ZUV2ZW50RGVsZWdhdGUob0ZpbHRlckNvbnRhaW5lcklubmVyTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvSW5uZXJMYXlvdXQuYWRkRXZlbnREZWxlZ2F0ZShvRmlsdGVyQ29udGFpbmVySW5uZXJMYXlvdXRFdmVudERlbGVnYXRlKTtcblxuXHRcdHRoaXMuc2V0QWdncmVnYXRpb24oXCJsYXlvdXRcIiwgdGhpcy5fb0ZpbHRlckJhckxheW91dCwgdHJ1ZSk7XG5cdH1cblxuXHRleGl0KCk6IHZvaWQge1xuXHRcdHN1cGVyLmV4aXQoKTtcblx0XHQvLyBTb21ldGltZXMgdXBvbiBleHRlcm5hbCBuYXZpZ2F0aW9uIHRoaXMuX1NlZ21lbnRlZEJ1dHRvbiBpcyBhbHJlYWR5IGRlc3Ryb3llZFxuXHRcdC8vIHNvIGNoZWNrIGlmIGl0IGV4aXN0cyBhbmQgdGhlbiBvbmx5IHJlbW92ZSBzdHVmZlxuXHRcdGlmICh0aGlzLl9vU2VnbWVudGVkQnV0dG9uKSB7XG5cdFx0XHR0aGlzLl9vU2VnbWVudGVkQnV0dG9uLmRldGFjaEV2ZW50KFwic2VsZWN0aW9uQ2hhbmdlXCIsIHRoaXMuX3RvZ2dsZUxheW91dCk7XG5cdFx0XHRkZWxldGUgdGhpcy5fb1NlZ21lbnRlZEJ1dHRvbjtcblx0XHR9XG5cdH1cblxuXHRnZXRTZWdtZW50ZWRCdXR0b24oKTogU2VnbWVudGVkQnV0dG9uIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fb1NlZ21lbnRlZEJ1dHRvbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBFbmFibGUgb3IgZGlzYWJsZSByZXF1ZXN0cyB0aGF0IGFyZSBpbml0aWF0ZWQgYnkgdGhlIEZpbHRlckJhci5cblx0ICpcblx0ICogVG8gYmUgdXNlZCB0byBzdXNwZW5kIG9yIHJlc3VtZSByZXF1ZXN0cyh0YWJsZSBvciB2aXN1YWwgZmlsdGVycykgd2hlbiB0aGUgZmlsdGVyIGJhciBpcyBiZWluZyBtb2RpZmllZCBvciB3aGVuIHRoZSB1c2VyIGlzIHByb2dyYW1tYXRpY2FsbHkgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZmlsdGVyIGNvbnRyb2xzLlxuXHQgKiBUaGlzIG1ldGhvZCBpcyBhbHNvIHVzZWQgdG8gY29udHJvbCB3aGV0aGVyIHRoZSB2aXN1YWwgZmlsdGVyIGNoYXJ0IGJpbmRpbmcgc2hvdWxkIGJlIHJlc3VtZWQvc3VzcGVuZGVkIGJhc2VkIG9uIHRoZSBkaWZmIHN0YXRlLCBhbmQgcmVzdW1lZCBhZnRlciBjb25kaXRvbiBtb2RlbCB1cGRhdGUuXG5cdCAqIEBwYXJhbSBlbmFibGUgRW5hYmxlIG9yIGRpc2FibGUgcmVxdWVzdHNcblx0ICogQHBhcmFtIGRpZmZTdGF0ZSBJZiB0aGVyZSBpcyBhIGRpZmZlcm5jZSBpbiB0aGUgZXh0ZXJuYWwgc3RhdGUgdGhhdCBuZWVkcyB0byBiZSBjb25zaWRlcmVkIGZvciB2aXN1YWwgZmlsdGVyIGluLXBhcmFtZXRlcnNcblx0ICovXG5cdGVuYWJsZVJlcXVlc3RzKGVuYWJsZTogYm9vbGVhbiwgZGlmZlN0YXRlPzogRXh0ZXJuYWxTdGF0ZVR5cGUpOiB2b2lkIHtcblx0XHR0aGlzLnNldFN1c3BlbmRTZWxlY3Rpb24oIWVuYWJsZSk7XG5cdFx0Ly8gV2UgbmVlZCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgdmlzdWFsIGZpbHRlciBjaGFydCBiaW5kaW5ncyBiYXNlZCBvbiBkaWZmIHN0YXRlLlxuXHRcdHRoaXMuX2VuYWJsZVZpc3VhbEZpbHRlckNoYXJ0QmluZGluZ3MoZW5hYmxlLCBkaWZmU3RhdGUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgZmlsdGVyIGxheW91dCBieSBpdHMgdHlwZS5cblx0ICogQHBhcmFtIGxheW91dENsYXNzTmFtZSBUaGUgY2xhc3MgbmFtZSBvZiB0aGUgZmlsdGVyIGxheW91dCB0byBiZSByZXR1cm5lZC5cblx0ICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgdGhlIGZpbHRlciBsYXlvdXQgdG8gYmUgcmV0dXJuZWQuXG5cdCAqIEB0eXBlZGVmIHtJRmlsdGVyQ29udGFpbmVyfSBUIFRoZSB0eXBlIG9mIHRoZSBmaWx0ZXIgbGF5b3V0IHRvIGJlIHJldHVybmVkXG5cdCAqIEByZXR1cm5zIENvcnJlc3BvbmRpbmcgZmlsdGVyIGxheW91dCBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1bmRlZmluZWQuXG5cdCAqL1xuXHRfZ2V0RmlsdGVyTGF5b3V0QnlUeXBlPFQgZXh0ZW5kcyBJRmlsdGVyQ29udGFpbmVyPihsYXlvdXRDbGFzc05hbWU6IENvbnRhaW5lclR5cGUpOiBUIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCByZXRGaWx0ZXJMYXlvdXQgPSB0aGlzLl9vRmlsdGVyQmFyTGF5b3V0LmlzQTxUPihsYXlvdXRDbGFzc05hbWUpID8gdGhpcy5fb0ZpbHRlckJhckxheW91dCA6IHVuZGVmaW5lZDtcblx0XHRyZXR1cm4gIXJldEZpbHRlckxheW91dCAmJiB0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0Py5pc0E8VD4obGF5b3V0Q2xhc3NOYW1lKVxuXHRcdFx0PyB0aGlzLl9vU2Vjb25kYXJ5RmlsdGVyQmFyTGF5b3V0XG5cdFx0XHQ6IHJldEZpbHRlckxheW91dDtcblx0fVxuXG5cdF9lbmFibGVWaXN1YWxGaWx0ZXJDaGFydEJpbmRpbmdzKGVuYWJsZTogYm9vbGVhbiwgZGlmZlN0YXRlPzogRXh0ZXJuYWxTdGF0ZVR5cGUpOiB2b2lkIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGNvbnN0IHZpc3VhbEZpbHRlckxheW91dCA9IHRoaXMuX2dldEZpbHRlckxheW91dEJ5VHlwZTxWaXN1YWxGaWx0ZXJDb250YWluZXI+KFZJU1VBTF9GSUxURVJfQ09OVEFJTkVSKTtcblx0XHRpZiAodmlzdWFsRmlsdGVyTGF5b3V0KSB7XG5cdFx0XHR2aXN1YWxGaWx0ZXJMYXlvdXQuZW5hYmxlQ2hhcnRCaW5kaW5nKGVuYWJsZSwgZGlmZlN0YXRlKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBJZiBpbml0aWFsIGxheW91dCBpcyBjb21wYWN0LCB3ZSBkb24ndCBoYXZlIHRoZSB2aXN1YWwgZmlsdGVyIGxheW91dChjb250YWluZXIpIGF2YWlsYWJsZSB5ZXQgdW50aWwgdGhlIHVzZXIgdG9nZ2xlcyB0byB2aXN1YWwgZmlsdGVyIGxheW91dC5cblx0XHQvLyBTbyB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjb21wYWN0IGZpbHRlciBsYXlvdXQgaGFzIHZpc3VhbCBmaWx0ZXJzIGFuZCBlbmFibGUvZGlzYWJsZSB0aGUgY2hhcnQgYmluZGluZyBmb3IgdGhvc2UgdmlzdWFsIGZpbHRlcnMuXG5cdFx0Y29uc3QgY29tcGFjdEZpbHRlckxheW91dCA9IHRoaXMuX2dldEZpbHRlckxheW91dEJ5VHlwZTxGaWx0ZXJDb250YWluZXI+KEZJTFRFUl9DT05UQUlORVIpO1xuXHRcdGlmIChjb21wYWN0RmlsdGVyTGF5b3V0KSB7XG5cdFx0XHRjb25zdCB2aXN1YWxGaWx0ZXJzID0gY29tcGFjdEZpbHRlckxheW91dC5nZXRBbGxWaXN1YWxGaWx0ZXJGaWVsZHMoKTtcblx0XHRcdGlmICh2aXN1YWxGaWx0ZXJzKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmVuYWJsZUNoYXJ0QmluZGluZyh2aXN1YWxGaWx0ZXJzLCBlbmFibGUsIGRpZmZTdGF0ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5pbnRlcmZhY2UgRmlsdGVyQmFyIHtcblx0X2FkZEJ1dHRvbnMoKTogdm9pZDtcbn1cbmV4cG9ydCBkZWZhdWx0IEZpbHRlckJhcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztFQW9CQSxNQUFNQSx1QkFBdUIsR0FBRyx3REFBd0Q7SUFDdkZDLGdCQUFnQixHQUFHLGtEQUFrRDtFQUFDLElBSWpFQyxTQUFTLElBQUFDLElBQUEsR0FEZEMsY0FBYyxDQUFDLGtDQUFrQyxDQUFDLEVBQUFDLEtBQUEsR0FFakRDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsUUFBUTtJQUFFQyxZQUFZLEVBQUU7RUFBVSxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdyREgsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVDLFlBQVksRUFBRTtFQUFNLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBTWxEQyxXQUFXLENBQUM7SUFDWkosSUFBSSxFQUFFLHVCQUF1QjtJQUM3QkssUUFBUSxFQUFFO0VBQ1gsQ0FBQyxDQUFDLEVBQUFULElBQUEsQ0FBQVUsTUFBQSxJQUFB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
@@ -1,11 +1,13 @@
1
1
  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
+ import PromiseKeeper from "sap/fe/core/helpers/PromiseKeeper";
4
5
  import FilterContainer from "sap/fe/macros/controls/filterbar/FilterContainer";
5
6
  import VisualFilterContainer from "sap/fe/macros/controls/filterbar/VisualFilterContainer";
6
7
  import type VisualFilter from "sap/fe/macros/visualfilters/VisualFilter";
7
8
  import type Button from "sap/m/Button";
8
9
  import type SegmentedButton from "sap/m/SegmentedButton";
10
+ import type { ManagedObject$ModelContextChangeEvent } from "sap/ui/base/ManagedObject";
9
11
  import type Control from "sap/ui/core/Control";
10
12
  import { default as Element } from "sap/ui/core/Element";
11
13
  import type { $FilterBarSettings } from "sap/ui/mdc/FilterBar";
@@ -45,14 +47,53 @@ class FilterBar extends MdcFilterBar {
45
47
  }
46
48
 
47
49
  private async _initializeStatus(): Promise<void> {
48
- await this.waitForInitialization();
50
+ // Promise keeper to hold the process.
51
+ this._initializedPromiseKeeper = new PromiseKeeper<void>();
52
+
53
+ // Awaits
54
+ await this.initializedWithMetadata();
55
+ await this.waitForModelToBeSet();
56
+
57
+ this._initializedPromiseKeeper.resolve();
49
58
  this._isInitialized = true;
50
59
  }
51
60
 
61
+ private async waitForModelToBeSet(): Promise<void> {
62
+ if (this.getModel()) {
63
+ return;
64
+ }
65
+ // wait for deafault model to be set.
66
+ const modelIsSetPromiseKeeper = new PromiseKeeper<void>();
67
+ const fnCheckAndReset = (e: ManagedObject$ModelContextChangeEvent): void => {
68
+ const filterbar = e.getSource();
69
+ if (filterbar.getModel()) {
70
+ // default model is set.
71
+ filterbar.detachModelContextChange(fnCheckAndReset);
72
+ modelIsSetPromiseKeeper?.resolve();
73
+ }
74
+ };
75
+ this.attachModelContextChange(fnCheckAndReset);
76
+ return modelIsSetPromiseKeeper.promise;
77
+ }
78
+
79
+ /**
80
+ * Checks if the FilterBar is fully initialized.
81
+ * @returns True if the FilterBar is initialized, false otherwise.
82
+ */
52
83
  isInitialized(): boolean {
53
84
  return !!this._isInitialized;
54
85
  }
55
86
 
87
+ /**
88
+ * Async equivalent of 'isInitialized' to perform filter bar interactions after the filter bar is ready.
89
+ * @returns Promise that resolves when the filter bar is initialized.
90
+ */
91
+ async whenInitialized(): Promise<void> {
92
+ return this._initializedPromiseKeeper?.promise;
93
+ }
94
+
95
+ private _initializedPromiseKeeper?: PromiseKeeper<void>;
96
+
56
97
  private _isInitialized = false;
57
98
 
58
99
  private _oSegmentedButton?: SegmentedButton;
@@ -18,9 +18,11 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
18
18
  type: "string"
19
19
  }), _dec3 = property({
20
20
  type: "string",
21
+ group: "Data",
21
22
  bindToState: true
22
23
  }), _dec4 = property({
23
24
  type: "string",
25
+ group: "Data",
24
26
  bindToState: true
25
27
  }), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlockBase) {
26
28
  function NumberWithUnitOrCurrency(propertiesOrId, properties) {
@@ -84,4 +86,4 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
84
86
  _exports = NumberWithUnitOrCurrency;
85
87
  return _exports;
86
88
  }, false);
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiYmluZFRvU3RhdGUiLCJfZGVjNCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJwcm9wZXJ0aWVzT3JJZCIsInByb3BlcnRpZXMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwic3RhdGUiLCJ2aXNpYmxlIiwic2hvdWxkQmVWaXNpYmxlIiwibnVtYmVyIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRLZXlzIiwiaW5jbHVkZXMiLCJ2YWx1ZSIsInRyaW0iLCJfanN4cyIsIkhCb3giLCJyZW5kZXJUeXBlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzcyIsImJpbmRTdGF0ZSIsImNoaWxkcmVuIiwiX2pzeCIsIlRleHQiLCJ0ZXh0RGlyZWN0aW9uIiwid3JhcHBpbmciLCJ0ZXh0QWxpZ24iLCJ0ZXh0Iiwid2lkdGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxcblx0SEJveCxcblx0eyBudW1iZXI6IHN0cmluZzsgdW5pdE9yQ3VycmVuY3k6IHN0cmluZzsgdmlzaWJsZTogYm9vbGVhbiB9XG4+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZyB8IG51bWJlcjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIHVuaXRPckN1cnJlbmN5ITogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXNPcklkOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8TnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5PiwgcHJvcGVydGllcz86IFByb3BlcnRpZXNPZjxOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3k+KSB7XG5cdFx0c3VwZXIocHJvcGVydGllc09ySWQsIHByb3BlcnRpZXMpO1xuXHRcdHRoaXMuc3RhdGUudmlzaWJsZSA9IHRoaXMuc2hvdWxkQmVWaXNpYmxlKHRoaXMuc3RhdGUubnVtYmVyKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdG9uU3RhdGVDaGFuZ2UoY2hhbmdlZEtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0aWYgKGNoYW5nZWRLZXlzPy5pbmNsdWRlcyhcIm51bWJlclwiKSkge1xuXHRcdFx0dGhpcy5zdGF0ZS52aXNpYmxlID0gdGhpcy5zaG91bGRCZVZpc2libGUodGhpcy5zdGF0ZS5udW1iZXIpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc2hvdWxkQmVWaXNpYmxlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudHJpbSgpICE9PSBcIlwiKSB8fCAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmIHZhbHVlICE9PSAwKTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogSEJveCB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxIQm94IHJlbmRlclR5cGU9XCJCYXJlXCIganVzdGlmeUNvbnRlbnQ9XCJFbmRcIiBjbGFzcz1cInNhcEZlQ29udHJvbHNVbml0Q3VycmVuY3lIYm94XCIgdmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJ2aXNpYmxlXCIpfT5cblx0XHRcdFx0PFRleHQgdGV4dERpcmVjdGlvbj1cIkxUUlwiIHdyYXBwaW5nPVwiZmFsc2VcIiB0ZXh0QWxpZ249XCJFbmRcIiB0ZXh0PXt0aGlzLmJpbmRTdGF0ZShcIm51bWJlclwiKX0+PC9UZXh0PlxuXHRcdFx0XHQ8VGV4dCB0ZXh0RGlyZWN0aW9uPVwiTFRSXCIgd3JhcHBpbmc9XCJmYWxzZVwiIHRleHRBbGlnbj1cIkVuZFwiIHRleHQ9e3RoaXMuYmluZFN0YXRlKFwidW5pdE9yQ3VycmVuY3lcIil9IHdpZHRoPVwiMy4zZW1cIj48L1RleHQ+XG5cdFx0XHQ8L0hCb3g+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O01BTXFCQSx3QkFBd0IsSUFBQUMsSUFBQSxHQUQ1Q0MsY0FBYyxDQUFDLGlEQUFp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
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiZ3JvdXAiLCJiaW5kVG9TdGF0ZSIsIl9kZWM0IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrQmFzZSIsInByb3BlcnRpZXNPcklkIiwicHJvcGVydGllcyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJzdGF0ZSIsInZpc2libGUiLCJzaG91bGRCZVZpc2libGUiLCJudW1iZXIiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvblN0YXRlQ2hhbmdlIiwiY2hhbmdlZEtleXMiLCJpbmNsdWRlcyIsInZhbHVlIiwidHJpbSIsIl9qc3hzIiwiSEJveCIsInJlbmRlclR5cGUiLCJqdXN0aWZ5Q29udGVudCIsImNsYXNzIiwiYmluZFN0YXRlIiwiY2hpbGRyZW4iLCJfanN4IiwiVGV4dCIsInRleHREaXJlY3Rpb24iLCJ3cmFwcGluZyIsInRleHRBbGlnbiIsInRleHQiLCJ3aWR0aCIsIkJ1aWxkaW5nQmxvY2tCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsZGluZ0Jsb2NrQmFzZSBmcm9tIFwic2FwL2ZlL2Jhc2UvQnVpbGRpbmdCbG9ja0Jhc2VcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSwgdHlwZSBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgSEJveCBmcm9tIFwic2FwL20vSEJveFwiO1xuaW1wb3J0IFRleHQgZnJvbSBcInNhcC9tL1RleHRcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5OdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3lcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE51bWJlcldpdGhVbml0T3JDdXJyZW5jeSBleHRlbmRzIEJ1aWxkaW5nQmxvY2tCYXNlPFxuXHRIQm94LFxuXHR7IG51bWJlcjogc3RyaW5nOyB1bml0T3JDdXJyZW5jeTogc3RyaW5nOyB2aXNpYmxlOiBib29sZWFuIH1cbj4ge1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGlkITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRncm91cDogXCJEYXRhXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZyB8IG51bWJlcjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0Z3JvdXA6IFwiRGF0YVwiLFxuXHRcdGJpbmRUb1N0YXRlOiB0cnVlXG5cdH0pXG5cdHB1YmxpYyB1bml0T3JDdXJyZW5jeSE6IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzT3JJZDogc3RyaW5nIHwgUHJvcGVydGllc09mPE51bWJlcldpdGhVbml0T3JDdXJyZW5jeT4sIHByb3BlcnRpZXM/OiBQcm9wZXJ0aWVzT2Y8TnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5Pikge1xuXHRcdHN1cGVyKHByb3BlcnRpZXNPcklkLCBwcm9wZXJ0aWVzKTtcblx0XHR0aGlzLnN0YXRlLnZpc2libGUgPSB0aGlzLnNob3VsZEJlVmlzaWJsZSh0aGlzLnN0YXRlLm51bWJlcik7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRvblN0YXRlQ2hhbmdlKGNoYW5nZWRLZXlzOiBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdGlmIChjaGFuZ2VkS2V5cz8uaW5jbHVkZXMoXCJudW1iZXJcIikpIHtcblx0XHRcdHRoaXMuc3RhdGUudmlzaWJsZSA9IHRoaXMuc2hvdWxkQmVWaXNpYmxlKHRoaXMuc3RhdGUubnVtYmVyKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHNob3VsZEJlVmlzaWJsZSh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlLnRyaW0oKSAhPT0gXCJcIikgfHwgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiB2YWx1ZSAhPT0gMCk7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IEhCb3gge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8SEJveCByZW5kZXJUeXBlPVwiQmFyZVwiIGp1c3RpZnlDb250ZW50PVwiRW5kXCIgY2xhc3M9XCJzYXBGZUNvbnRyb2xzVW5pdEN1cnJlbmN5SGJveFwiIHZpc2libGU9e3RoaXMuYmluZFN0YXRlKFwidmlzaWJsZVwiKX0+XG5cdFx0XHRcdDxUZXh0IHRleHREaXJlY3Rpb249XCJMVFJcIiB3cmFwcGluZz1cImZhbHNlXCIgdGV4dEFsaWduPVwiRW5kXCIgdGV4dD17dGhpcy5iaW5kU3RhdGUoXCJudW1iZXJcIil9PjwvVGV4dD5cblx0XHRcdFx0PFRleHQgdGV4dERpcmVjdGlvbj1cIkxUUlwiIHdyYXBwaW5nPVwiZmFsc2VcIiB0ZXh0QWxpZ249XCJFbmRcIiB0ZXh0PXt0aGlzLmJpbmRTdGF0ZShcInVuaXRPckN1cnJlbmN5XCIpfSB3aWR0aD1cIjMuM2VtXCI+PC9UZXh0PlxuXHRcdFx0PC9IQm94PlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7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
@@ -15,12 +15,14 @@ export default class NumberWithUnitOrCurrency extends BuildingBlockBase<
15
15
 
16
16
  @property({
17
17
  type: "string",
18
+ group: "Data",
18
19
  bindToState: true
19
20
  })
20
21
  public number!: string | number;
21
22
 
22
23
  @property({
23
24
  type: "string",
25
+ group: "Data",
24
26
  bindToState: true
25
27
  })
26
28
  public unitOrCurrency!: string;
@@ -5,7 +5,7 @@
5
5
  sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/m/RadioButton", "sap/m/RadioButtonGroup", "sap/ui/core/CustomData", "sap/fe/base/jsx-runtime/jsx"], function (BindingToolkit, ClassSupport, CommonUtils, BuildingBlock, RadioButton, RadioButtonGroup, CustomData, _jsx) {
6
6
  "use strict";
7
7
 
8
- var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;
8
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12;
9
9
  var _exports = {};
10
10
  var property = ClassSupport.property;
11
11
  var defineUI5Class = ClassSupport.defineUI5Class;
@@ -38,8 +38,12 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
38
38
  }), _dec10 = property({
39
39
  type: "boolean"
40
40
  }), _dec11 = property({
41
- type: "string"
41
+ type: "string",
42
+ isBindingInfo: true
42
43
  }), _dec12 = property({
44
+ type: "string",
45
+ isBindingInfo: true
46
+ }), _dec13 = property({
43
47
  type: "string"
44
48
  }), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlock) {
45
49
  function RadioButtons(properties, others) {
@@ -62,7 +66,8 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
62
66
  _initializerDefineProperty(_this, "radioButtonKeyProperty", _descriptor8, _this);
63
67
  _initializerDefineProperty(_this, "horizontalLayout", _descriptor9, _this);
64
68
  _initializerDefineProperty(_this, "enabledExpression", _descriptor10, _this);
65
- _initializerDefineProperty(_this, "width", _descriptor11, _this);
69
+ _initializerDefineProperty(_this, "editableExpression", _descriptor11, _this);
70
+ _initializerDefineProperty(_this, "width", _descriptor12, _this);
66
71
  _this.content = _this.createContent();
67
72
  return _this;
68
73
  }
@@ -165,6 +170,7 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
165
170
  const radioButtonGroup = _jsx(RadioButtonGroup, {
166
171
  buttons: buttonsBindingContext,
167
172
  select: this.onRadioButtonSelect.bind(this),
173
+ editable: this.editableExpression,
168
174
  enabled: this.enabledExpression,
169
175
  fieldGroupIds: this.fieldGroupIds,
170
176
  ariaLabelledBy: this.ariaLabelledBy,
@@ -236,7 +242,14 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
236
242
  initializer: function () {
237
243
  return "";
238
244
  }
239
- }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "width", [_dec12], {
245
+ }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "editableExpression", [_dec12], {
246
+ configurable: true,
247
+ enumerable: true,
248
+ writable: true,
249
+ initializer: function () {
250
+ return "";
251
+ }
252
+ }), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "width", [_dec13], {
240
253
  configurable: true,
241
254
  enumerable: true,
242
255
  writable: true,
@@ -247,4 +260,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
247
260
  _exports = RadioButtons;
248
261
  return _exports;
249
262
  }, false);
250
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb0J1dHRvbnMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJiaW5kVG9TdGF0ZSIsIl9kZWM4IiwiaXNCaW5kaW5nSW5mbyIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uUmFkaW9CdXR0b25TZWxlY3QiLCJldmVudCIsInJhZGlvQnV0dG9uR3JvdXAiLCJnZXRTb3VyY2UiLCJzZWxlY3RlZEluZGV4IiwiZ2V0UGFyYW1ldGVyIiwidW5kZWZpbmVkIiwic2VsZWN0ZWRSYWRpb0J1dHRvbktleSIsImdldEJ1dHRvbnMiLCJnZXRDdXN0b21EYXRhIiwiZ2V0VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJfc2lkZUVmZmVjdHMiLCJoYW5kbGVGaWVsZENoYW5nZSIsImJpbmRQcm9wZXJ0eSIsIm5hbWUiLCJiaW5kaW5nSW5mbyIsImZvcm1hdHRlciIsInRhcmdldFR5cGUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwidmFsdWUiLCJyYWRpb0J1dHRvbnMiLCJsZW5ndGgiLCJyYWRpb0J1dHRvbkluZGV4IiwicmFkaW9CdXR0b24iLCJrZXlDdXN0b21EYXRhIiwiZ2V0QmluZGluZyIsInNldFNlbGVjdGVkSW5kZXgiLCJidXR0b25zQmluZGluZ0NvbnRleHQiLCJwb3NzaWJsZVZhbHVlcyIsImJpbmRTdGF0ZSIsInJhZGlvQnV0dG9uVGV4dFByb3BlcnR5IiwicGF0aEluTW9kZWwiLCJyYWRpb0J1dHRvbktleVByb3BlcnR5IiwicGF0aCIsImZpeGVkVmFsdWVzUGF0aCIsInBhcmFtZXRlcnMiLCIkY291bnQiLCJldmVudHMiLCJkYXRhUmVjZWl2ZWQiLCJldiIsImNvdW50IiwiZ2V0Q291bnQiLCJob3Jpem9udGFsTGF5b3V0Iiwic2V0Q29sdW1ucyIsImdldFNlbGVjdGVkSW5kZXgiLCJiaW5kIiwiX2pzeCIsIlJhZGlvQnV0dG9uR3JvdXAiLCJidXR0b25zIiwic2VsZWN0IiwiZW5hYmxlZCIsImVuYWJsZWRFeHByZXNzaW9uIiwiZmllbGRHcm91cElkcyIsImFyaWFMYWJlbGxlZEJ5Iiwid2lkdGgiLCJjb2x1bW5zIiwiY2hpbGRyZW4iLCJSYWRpb0J1dHRvbiIsInRleHQiLCJjdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImNsYXNzIiwidG9vbHRpcCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJhZGlvQnV0dG9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBwYXRoSW5Nb2RlbCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IFJhZGlvQnV0dG9uIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBSYWRpb0J1dHRvbkdyb3VwJFNlbGVjdEV2ZW50IH0gZnJvbSBcInNhcC9tL1JhZGlvQnV0dG9uR3JvdXBcIjtcbmltcG9ydCBSYWRpb0J1dHRvbkdyb3VwIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgQWdncmVnYXRpb25CaW5kaW5nSW5mbywgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0N1c3RvbURhdGFcIjtcbmltcG9ydCB0eXBlIFByb3BlcnR5QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL1Byb3BlcnR5QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5SYWRpb0J1dHRvbnNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhZGlvQnV0dG9ucyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8UmFkaW9CdXR0b25Hcm91cCwgeyBwb3NzaWJsZVZhbHVlczogeyB0ZXh0OiBzdHJpbmc7IGtleTogbnVtYmVyIH1bXSB9PiB7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0cHVibGljIGZpZWxkR3JvdXBJZHM/OiBzdHJpbmdbXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIHJlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZztcblxuXHQvLyBXZSB1c2UgdHlwZSAncmF3JyBoZXJlIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBiaW5kaW5nIHdpbGwgcmVmdXNlIHRvIHVwZGF0ZSB0aGUgdmFsdWUsIGFzIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8gY29udmVydCBmcm9tIGFueSB0byBzdHJpbmdcblx0Ly8gU2V0dGluZyBpdCB0byByYXcgbWFrZSBzdXJlIHRoYXQgbm8gY29udmVyc2lvbiBpcyBhdHRlbXB0ZWQgd2hpY2ggdGhlbiB3b3Jrc1xuXHQvLyBEZWZhdWx0IHZhbHVlIGlzIHNldCB0byBudWxsIHRvIGFsbG93IGhhdmluZyBhIHJhZGlvIGJ1dHRvbiBwb2ludGluZyB0byBhIGBudWxsYCB2YWx1ZVxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0cHVibGljIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGZpeGVkVmFsdWVzUGF0aCE6IGB7JHtzdHJpbmd9fWA7XG5cblx0LyoqXG5cdCAqIEFuIGFycmF5IG9mIHBvc3NpYmxlLCBmaXhlZCB2YWx1ZSBsaXN0IG9iamVjdFxuXHQgKiBJZiB0aGlzIHByb3BlcnR5IGlzIHVzZWQsIHRoZSBmaXhlZFZhbHVlc1BhdGggcHJvcGVydHkgaXMgaWdub3JlZC5cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIixcblx0XHRiaW5kVG9TdGF0ZTogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcG9zc2libGVWYWx1ZXM/OiB7IGtleTogUHJpbWl0aXZlVHlwZTsgdGV4dDogc3RyaW5nIH1bXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYW55XCIsXG5cdFx0aXNCaW5kaW5nSW5mbzogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcmFkaW9CdXR0b25UZXh0UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHJhZGlvQnV0dG9uS2V5UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRwdWJsaWMgaG9yaXpvbnRhbExheW91dCA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgZW5hYmxlZEV4cHJlc3Npb24gPSBcIlwiO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgd2lkdGggPSBcIjEwMCVcIjtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPFJhZGlvQnV0dG9ucz4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wZXJ0aWVzLCBvdGhlcnMpO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgZm9yIHRoZSBSYWRpb0J1dHRvbkdyb3VwJ3Mgc2VsZWN0IGV2ZW50LlxuXHQgKiBXZSBuZWVkIHRvIHBhcnNlIGZyb20gdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpbmRleCB0byB0aGUgbW9kZWwgdmFsdWUuXG5cdCAqIEBwYXJhbSBldmVudFxuXHQgKi9cblx0b25SYWRpb0J1dHRvblNlbGVjdChldmVudDogUmFkaW9CdXR0b25Hcm91cCRTZWxlY3RFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHJhZGlvQnV0dG9uR3JvdXA6IFJhZGlvQnV0dG9uR3JvdXAgPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBzZWxlY3RlZEluZGV4ID0gZXZlbnQuZ2V0UGFyYW1ldGVyKFwic2VsZWN0ZWRJbmRleFwiKTtcblx0XHRpZiAoc2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZFJhZGlvQnV0dG9uS2V5OiBzdHJpbmcgPSByYWRpb0J1dHRvbkdyb3VwPy5nZXRCdXR0b25zKClbc2VsZWN0ZWRJbmRleF0uZ2V0Q3VzdG9tRGF0YSgpWzBdLmdldFZhbHVlKCk7XG5cdFx0XHQvLyBOb3cgd2UgaGF2ZSB0aGUgdmFsdWUgPT4gd3JpdGUgaXQgdG8gdGhlIG1vZGVsIVxuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIHNlbGVjdGVkUmFkaW9CdXR0b25LZXkpO1xuXHRcdFx0Q29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldyhyYWRpb0J1dHRvbkdyb3VwKT8uZ2V0Q29udHJvbGxlcigpPy5fc2lkZUVmZmVjdHM/LmhhbmRsZUZpZWxkQ2hhbmdlKGV2ZW50LCB0cnVlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhlIHZhbHVlIHByb3BlcnR5IHR5cGUgbmVlZHMgdG8gYmUgaW5pdGlhbGx5ICdhbnknIGJ1dCBoYXMgdG8gYmUgY2hhbmdlZCB0byAncmF3JyB0byBhdm9pZCBwYXJzaW5nIGVycm9ycy5cblx0ICogQHBhcmFtIG5hbWVcblx0ICogQHBhcmFtIGJpbmRpbmdJbmZvXG5cdCAqIEByZXR1cm5zIFRoaXNcblx0ICovXG5cdGJpbmRQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIGJpbmRpbmdJbmZvOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogdGhpcyB7XG5cdFx0aWYgKG5hbWUgPT09IFwidmFsdWVcIiAmJiAhYmluZGluZ0luZm8uZm9ybWF0dGVyKSB7XG5cdFx0XHQvLyBub3QgaWYgYSBmb3JtYXR0ZXIgaXMgdXNlZCwgYXMgdGhpcyBuZWVkcyB0byBiZSBleGVjdXRlZFxuXHRcdFx0YmluZGluZ0luZm8udGFyZ2V0VHlwZSA9IFwicmF3XCI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN1cGVyLmJpbmRQcm9wZXJ0eShuYW1lLCBiaW5kaW5nSW5mbyk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBpcyBiZWluZyBjYWxsZWQgd2hlbiB0aGUgbW9kZWwgZmV0Y2hlcyB0aGUgZGF0YSBmcm9tIHRoZSBiYWNrZW5kIG9yIHdoZW4gd2UgY2FsbCBpdCBkaXJlY3RseS5cblx0ICogV2UgbmVlZCB0byBwYXJzZSBmcm9tIHRoZSBtb2RlbCB2YWx1ZSB0byB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGluZGV4LlxuXHQgKiBAcGFyYW0gbmV3VmFsdWVcblx0ICovXG5cdHNldFZhbHVlKG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdGlmICh0aGlzLmNvbnRlbnQpIHtcblx0XHRcdC8vIENvbXB1dGUgdGhlIG5ldyByYWRpbyBidXR0b24gaW5kZXhcblx0XHRcdGNvbnN0IHJhZGlvQnV0dG9ucyA9IHRoaXMuY29udGVudC5nZXRCdXR0b25zKCk7XG5cdFx0XHRpZiAocmFkaW9CdXR0b25zLmxlbmd0aCAhPSAwKSB7XG5cdFx0XHRcdGxldCByYWRpb0J1dHRvbkluZGV4ID0gMDtcblx0XHRcdFx0Zm9yIChjb25zdCByYWRpb0J1dHRvbiBvZiByYWRpb0J1dHRvbnMpIHtcblx0XHRcdFx0XHRjb25zdCBrZXlDdXN0b21EYXRhID0gKHJhZGlvQnV0dG9uLmdldEN1c3RvbURhdGEoKVswXS5nZXRCaW5kaW5nKFwidmFsdWVcIikgYXMgUHJvcGVydHlCaW5kaW5nIHwgdW5kZWZpbmVkKT8uZ2V0VmFsdWUoKTtcblx0XHRcdFx0XHRpZiAoa2V5Q3VzdG9tRGF0YSA9PT0gbmV3VmFsdWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuY29udGVudC5zZXRTZWxlY3RlZEluZGV4KHJhZGlvQnV0dG9uSW5kZXgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyYWRpb0J1dHRvbkluZGV4Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIElmIG5vIHZhbHVlIGNvdWxkIGJlIGZvdW5kIG9yIGlmIHRoZSByYWRpbyBidXR0b24gYWdncmVnYXRpb24gd2FzIGVtcHR5LCB3aGljaCBjYW4gaGFwcGVuIGR1ZSB0b1xuXHRcdFx0Ly8gYSB2ZXJ5IGVhcmx5IGNhbGwgb2Ygc2V0VmFsdWUsIHNldCB0aGUgc2VsZWN0ZWQgdG8gaW5kZXggdG8gLTEgd2hpY2ggcmVzdWx0cyBpbiBOTyByYWRpbyBidXR0b24gdG8gYmUgc2VsZWN0ZWQuXG5cdFx0XHR0aGlzLmNvbnRlbnQuc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBidWlsZGluZyBibG9jayByZW5kZXIgZnVuY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRoZSByYWRpbyBidXR0b24gZ3JvdXBcblx0ICovXG5cdGNyZWF0ZUNvbnRlbnQoKTogUmFkaW9CdXR0b25Hcm91cCB7XG5cdFx0Ly8gU2V0dGluZyB1cCB0aGUgYmluZGluZyBzbyB0aGF0IHdlIGNhbiBhY2Nlc3MgJGNvdW50IGZvciBnZXR0aW5nIHRoZSBudW1iZXJcblx0XHQvLyBvZiBlbnRyaWVzIGluIHRoZSBmaXhlZCB2YWx1ZSBsaXN0IGFuZCBzZXQgdGhpcyBhcyBudW1iZXIgb2YgcmFkaW8gYnV0dG9uIGNvbHVtbnNcblx0XHQvLyBpbiBjYXNlIGhvcml6b250YWwgbGF5b3V0IGlzIGNvbmZpZ3VyZWRcblx0XHRsZXQgYnV0dG9uc0JpbmRpbmdDb250ZXh0OiBBZ2dyZWdhdGlvbkJpbmRpbmdJbmZvIHwgdW5kZWZpbmVkO1xuXHRcdGlmICh0aGlzLnBvc3NpYmxlVmFsdWVzKSB7XG5cdFx0XHRidXR0b25zQmluZGluZ0NvbnRleHQgPSB0aGlzLmJpbmRTdGF0ZShcInBvc3NpYmxlVmFsdWVzXCIpO1xuXHRcdFx0dGhpcy5yYWRpb0J1dHRvblRleHRQcm9wZXJ0eSA9IHBhdGhJbk1vZGVsKFwidGV4dFwiLCBcIiRjb21wb25lbnRTdGF0ZVwiKTtcblx0XHRcdHRoaXMucmFkaW9CdXR0b25LZXlQcm9wZXJ0eSA9IHBhdGhJbk1vZGVsKFwia2V5XCIsIFwiJGNvbXBvbmVudFN0YXRlXCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRidXR0b25zQmluZGluZ0NvbnRleHQgPSB7XG5cdFx0XHRcdHBhdGg6IGAke3RoaXMuZml4ZWRWYWx1ZXNQYXRofWAsXG5cdFx0XHRcdHBhcmFtZXRlcnM6IHsgJGNvdW50OiB0cnVlIH0sXG5cdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdGRhdGFSZWNlaXZlZDogKGV2OiBFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IChldi5nZXRTb3VyY2UoKSBhcyB1bmtub3duIGFzIE9EYXRhTGlzdEJpbmRpbmcpPy5nZXRDb3VudCgpO1xuXHRcdFx0XHRcdFx0aWYgKGNvdW50ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5ob3Jpem9udGFsTGF5b3V0KSB7XG5cdFx0XHRcdFx0XHRcdHJhZGlvQnV0dG9uR3JvdXAuc2V0Q29sdW1ucyhjb3VudCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBDaGVjayBpZiB0aGVyZSBpcyBhIHZhbHVlIHN0b3JlZCBmcm9tIHRoZSBpbml0aWFsaXphdGlvbiBidXQgdGhlIHJhZGlvXG5cdFx0XHRcdFx0XHQvLyBidXR0b24gc2VsZWN0aW9uIGhhcyBub3QgeWV0IGJlZW4gZG9uZSBhbmQgZG8gdGhpcyBub3dcblx0XHRcdFx0XHRcdGlmICh0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcmFkaW9CdXR0b25Hcm91cC5nZXRTZWxlY3RlZEluZGV4KCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHR0aGlzLm9uUmFkaW9CdXR0b25TZWxlY3QuYmluZCh0aGlzKTtcblx0XHRjb25zdCByYWRpb0J1dHRvbkdyb3VwID0gKFxuXHRcdFx0PFJhZGlvQnV0dG9uR3JvdXBcblx0XHRcdFx0YnV0dG9ucz17YnV0dG9uc0JpbmRpbmdDb250ZXh0fVxuXHRcdFx0XHRzZWxlY3Q9e3RoaXMub25SYWRpb0J1dHRvblNlbGVjdC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRlbmFibGVkPXt0aGlzLmVuYWJsZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRmaWVsZEdyb3VwSWRzPXt0aGlzLmZpZWxkR3JvdXBJZHN9XG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0XHR3aWR0aD17dGhpcy53aWR0aH1cblx0XHRcdFx0Y29sdW1ucz17dGhpcy5wb3NzaWJsZVZhbHVlcz8ubGVuZ3RoID8/IDF9XG5cdFx0XHQ+XG5cdFx0XHRcdDxSYWRpb0J1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdFx0Y3VzdG9tRGF0YT17PEN1c3RvbURhdGEga2V5PXtcImtleVwifSB2YWx1ZT17dGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5fSAvPn1cblx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5FbmRcIlxuXHRcdFx0XHRcdHRvb2x0aXA9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1JhZGlvQnV0dG9uR3JvdXA+XG5cdFx0KSBhcyBSYWRpb0J1dHRvbkdyb3VwO1xuXG5cdFx0cmV0dXJuIHJhZGlvQnV0dG9uR3JvdXA7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQnFCQSxZQUFZLElBQUFDLElBQUEsR0FEaENDLGNBQWMsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFBQyxLQUFBLEdBRXBEQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFO0VBQ1AsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHREYsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBR0RILFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU1ESixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRUksWUFBWSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHN0NOLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQU0sS0FBQSxHQU9EUCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZE8sV0FBVyxFQUFFO0VBQ2QsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHRFQsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRSxLQUFLO0lBQ1hTLGFBQWEsRUFBRTtFQUNoQixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdEWCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLEtBQUs7SUFDWFMsYUFBYSxFQUFFO0VBQ2hCLENBQUMsQ0FBQyxFQUFBRSxNQUFBLEdBR0RaLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFB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
263
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb0J1dHRvbnMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJiaW5kVG9TdGF0ZSIsIl9kZWM4IiwiaXNCaW5kaW5nSW5mbyIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvblJhZGlvQnV0dG9uU2VsZWN0IiwiZXZlbnQiLCJyYWRpb0J1dHRvbkdyb3VwIiwiZ2V0U291cmNlIiwic2VsZWN0ZWRJbmRleCIsImdldFBhcmFtZXRlciIsInVuZGVmaW5lZCIsInNlbGVjdGVkUmFkaW9CdXR0b25LZXkiLCJnZXRCdXR0b25zIiwiZ2V0Q3VzdG9tRGF0YSIsImdldFZhbHVlIiwic2V0UHJvcGVydHkiLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJnZXRDb250cm9sbGVyIiwiX3NpZGVFZmZlY3RzIiwiaGFuZGxlRmllbGRDaGFuZ2UiLCJiaW5kUHJvcGVydHkiLCJuYW1lIiwiYmluZGluZ0luZm8iLCJmb3JtYXR0ZXIiLCJ0YXJnZXRUeXBlIiwic2V0VmFsdWUiLCJuZXdWYWx1ZSIsInZhbHVlIiwicmFkaW9CdXR0b25zIiwibGVuZ3RoIiwicmFkaW9CdXR0b25JbmRleCIsInJhZGlvQnV0dG9uIiwia2V5Q3VzdG9tRGF0YSIsImdldEJpbmRpbmciLCJzZXRTZWxlY3RlZEluZGV4IiwiYnV0dG9uc0JpbmRpbmdDb250ZXh0IiwicG9zc2libGVWYWx1ZXMiLCJiaW5kU3RhdGUiLCJyYWRpb0J1dHRvblRleHRQcm9wZXJ0eSIsInBhdGhJbk1vZGVsIiwicmFkaW9CdXR0b25LZXlQcm9wZXJ0eSIsInBhdGgiLCJmaXhlZFZhbHVlc1BhdGgiLCJwYXJhbWV0ZXJzIiwiJGNvdW50IiwiZXZlbnRzIiwiZGF0YVJlY2VpdmVkIiwiZXYiLCJjb3VudCIsImdldENvdW50IiwiaG9yaXpvbnRhbExheW91dCIsInNldENvbHVtbnMiLCJnZXRTZWxlY3RlZEluZGV4IiwiYmluZCIsIl9qc3giLCJSYWRpb0J1dHRvbkdyb3VwIiwiYnV0dG9ucyIsInNlbGVjdCIsImVkaXRhYmxlIiwiZWRpdGFibGVFeHByZXNzaW9uIiwiZW5hYmxlZCIsImVuYWJsZWRFeHByZXNzaW9uIiwiZmllbGRHcm91cElkcyIsImFyaWFMYWJlbGxlZEJ5Iiwid2lkdGgiLCJjb2x1bW5zIiwiY2hpbGRyZW4iLCJSYWRpb0J1dHRvbiIsInRleHQiLCJjdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImNsYXNzIiwidG9vbHRpcCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJhZGlvQnV0dG9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBwYXRoSW5Nb2RlbCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IFJhZGlvQnV0dG9uIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBSYWRpb0J1dHRvbkdyb3VwJFNlbGVjdEV2ZW50IH0gZnJvbSBcInNhcC9tL1JhZGlvQnV0dG9uR3JvdXBcIjtcbmltcG9ydCBSYWRpb0J1dHRvbkdyb3VwIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgQWdncmVnYXRpb25CaW5kaW5nSW5mbywgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0N1c3RvbURhdGFcIjtcbmltcG9ydCB0eXBlIFByb3BlcnR5QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL1Byb3BlcnR5QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5SYWRpb0J1dHRvbnNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhZGlvQnV0dG9ucyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8UmFkaW9CdXR0b25Hcm91cCwgeyBwb3NzaWJsZVZhbHVlczogeyB0ZXh0OiBzdHJpbmc7IGtleTogbnVtYmVyIH1bXSB9PiB7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0cHVibGljIGZpZWxkR3JvdXBJZHM/OiBzdHJpbmdbXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIHJlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZztcblxuXHQvLyBXZSB1c2UgdHlwZSAncmF3JyBoZXJlIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBiaW5kaW5nIHdpbGwgcmVmdXNlIHRvIHVwZGF0ZSB0aGUgdmFsdWUsIGFzIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8gY29udmVydCBmcm9tIGFueSB0byBzdHJpbmdcblx0Ly8gU2V0dGluZyBpdCB0byByYXcgbWFrZSBzdXJlIHRoYXQgbm8gY29udmVyc2lvbiBpcyBhdHRlbXB0ZWQgd2hpY2ggdGhlbiB3b3Jrc1xuXHQvLyBEZWZhdWx0IHZhbHVlIGlzIHNldCB0byBudWxsIHRvIGFsbG93IGhhdmluZyBhIHJhZGlvIGJ1dHRvbiBwb2ludGluZyB0byBhIGBudWxsYCB2YWx1ZVxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0cHVibGljIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGZpeGVkVmFsdWVzUGF0aCE6IGB7JHtzdHJpbmd9fWA7XG5cblx0LyoqXG5cdCAqIEFuIGFycmF5IG9mIHBvc3NpYmxlLCBmaXhlZCB2YWx1ZSBsaXN0IG9iamVjdFxuXHQgKiBJZiB0aGlzIHByb3BlcnR5IGlzIHVzZWQsIHRoZSBmaXhlZFZhbHVlc1BhdGggcHJvcGVydHkgaXMgaWdub3JlZC5cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIixcblx0XHRiaW5kVG9TdGF0ZTogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcG9zc2libGVWYWx1ZXM/OiB7IGtleTogUHJpbWl0aXZlVHlwZTsgdGV4dDogc3RyaW5nIH1bXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYW55XCIsXG5cdFx0aXNCaW5kaW5nSW5mbzogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcmFkaW9CdXR0b25UZXh0UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHJhZGlvQnV0dG9uS2V5UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRwdWJsaWMgaG9yaXpvbnRhbExheW91dCA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc0JpbmRpbmdJbmZvOiB0cnVlXG5cdH0pXG5cdHB1YmxpYyBlbmFibGVkRXhwcmVzc2lvbiA9IFwiXCI7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIGVkaXRhYmxlRXhwcmVzc2lvbiA9IFwiXCI7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyB3aWR0aCA9IFwiMTAwJVwiO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8UmFkaW9CdXR0b25zPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciBmb3IgdGhlIFJhZGlvQnV0dG9uR3JvdXAncyBzZWxlY3QgZXZlbnQuXG5cdCAqIFdlIG5lZWQgdG8gcGFyc2UgZnJvbSB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGluZGV4IHRvIHRoZSBtb2RlbCB2YWx1ZS5cblx0ICogQHBhcmFtIGV2ZW50XG5cdCAqL1xuXHRvblJhZGlvQnV0dG9uU2VsZWN0KGV2ZW50OiBSYWRpb0J1dHRvbkdyb3VwJFNlbGVjdEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgcmFkaW9CdXR0b25Hcm91cDogUmFkaW9CdXR0b25Hcm91cCA9IGV2ZW50LmdldFNvdXJjZSgpO1xuXHRcdGNvbnN0IHNlbGVjdGVkSW5kZXggPSBldmVudC5nZXRQYXJhbWV0ZXIoXCJzZWxlY3RlZEluZGV4XCIpO1xuXHRcdGlmIChzZWxlY3RlZEluZGV4ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGNvbnN0IHNlbGVjdGVkUmFkaW9CdXR0b25LZXk6IHN0cmluZyA9IHJhZGlvQnV0dG9uR3JvdXA/LmdldEJ1dHRvbnMoKVtzZWxlY3RlZEluZGV4XS5nZXRDdXN0b21EYXRhKClbMF0uZ2V0VmFsdWUoKTtcblx0XHRcdC8vIE5vdyB3ZSBoYXZlIHRoZSB2YWx1ZSA9PiB3cml0ZSBpdCB0byB0aGUgbW9kZWwhXG5cdFx0XHR0aGlzLnNldFByb3BlcnR5KFwidmFsdWVcIiwgc2VsZWN0ZWRSYWRpb0J1dHRvbktleSk7XG5cdFx0XHRDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHJhZGlvQnV0dG9uR3JvdXApPy5nZXRDb250cm9sbGVyKCk/Ll9zaWRlRWZmZWN0cz8uaGFuZGxlRmllbGRDaGFuZ2UoZXZlbnQsIHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgdmFsdWUgcHJvcGVydHkgdHlwZSBuZWVkcyB0byBiZSBpbml0aWFsbHkgJ2FueScgYnV0IGhhcyB0byBiZSBjaGFuZ2VkIHRvICdyYXcnIHRvIGF2b2lkIHBhcnNpbmcgZXJyb3JzLlxuXHQgKiBAcGFyYW0gbmFtZVxuXHQgKiBAcGFyYW0gYmluZGluZ0luZm9cblx0ICogQHJldHVybnMgVGhpc1xuXHQgKi9cblx0YmluZFByb3BlcnR5KG5hbWU6IHN0cmluZywgYmluZGluZ0luZm86IFByb3BlcnR5QmluZGluZ0luZm8pOiB0aGlzIHtcblx0XHRpZiAobmFtZSA9PT0gXCJ2YWx1ZVwiICYmICFiaW5kaW5nSW5mby5mb3JtYXR0ZXIpIHtcblx0XHRcdC8vIG5vdCBpZiBhIGZvcm1hdHRlciBpcyB1c2VkLCBhcyB0aGlzIG5lZWRzIHRvIGJlIGV4ZWN1dGVkXG5cdFx0XHRiaW5kaW5nSW5mby50YXJnZXRUeXBlID0gXCJyYXdcIjtcblx0XHR9XG5cblx0XHRyZXR1cm4gc3VwZXIuYmluZFByb3BlcnR5KG5hbWUsIGJpbmRpbmdJbmZvKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGlzIGJlaW5nIGNhbGxlZCB3aGVuIHRoZSBtb2RlbCBmZXRjaGVzIHRoZSBkYXRhIGZyb20gdGhlIGJhY2tlbmQgb3Igd2hlbiB3ZSBjYWxsIGl0IGRpcmVjdGx5LlxuXHQgKiBXZSBuZWVkIHRvIHBhcnNlIGZyb20gdGhlIG1vZGVsIHZhbHVlIHRvIHRoZSByYWRpbyBidXR0b24gZ3JvdXAgaW5kZXguXG5cdCAqIEBwYXJhbSBuZXdWYWx1ZVxuXHQgKi9cblx0c2V0VmFsdWUobmV3VmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG5cdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0Ly8gQ29tcHV0ZSB0aGUgbmV3IHJhZGlvIGJ1dHRvbiBpbmRleFxuXHRcdFx0Y29uc3QgcmFkaW9CdXR0b25zID0gdGhpcy5jb250ZW50LmdldEJ1dHRvbnMoKTtcblx0XHRcdGlmIChyYWRpb0J1dHRvbnMubGVuZ3RoICE9IDApIHtcblx0XHRcdFx0bGV0IHJhZGlvQnV0dG9uSW5kZXggPSAwO1xuXHRcdFx0XHRmb3IgKGNvbnN0IHJhZGlvQnV0dG9uIG9mIHJhZGlvQnV0dG9ucykge1xuXHRcdFx0XHRcdGNvbnN0IGtleUN1c3RvbURhdGEgPSAocmFkaW9CdXR0b24uZ2V0Q3VzdG9tRGF0YSgpWzBdLmdldEJpbmRpbmcoXCJ2YWx1ZVwiKSBhcyBQcm9wZXJ0eUJpbmRpbmcgfCB1bmRlZmluZWQpPy5nZXRWYWx1ZSgpO1xuXHRcdFx0XHRcdGlmIChrZXlDdXN0b21EYXRhID09PSBuZXdWYWx1ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5jb250ZW50LnNldFNlbGVjdGVkSW5kZXgocmFkaW9CdXR0b25JbmRleCk7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJhZGlvQnV0dG9uSW5kZXgrKztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gSWYgbm8gdmFsdWUgY291bGQgYmUgZm91bmQgb3IgaWYgdGhlIHJhZGlvIGJ1dHRvbiBhZ2dyZWdhdGlvbiB3YXMgZW1wdHksIHdoaWNoIGNhbiBoYXBwZW4gZHVlIHRvXG5cdFx0XHQvLyBhIHZlcnkgZWFybHkgY2FsbCBvZiBzZXRWYWx1ZSwgc2V0IHRoZSBzZWxlY3RlZCB0byBpbmRleCB0byAtMSB3aGljaCByZXN1bHRzIGluIE5PIHJhZGlvIGJ1dHRvbiB0byBiZSBzZWxlY3RlZC5cblx0XHRcdHRoaXMuY29udGVudC5zZXRTZWxlY3RlZEluZGV4KC0xKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGJ1aWxkaW5nIGJsb2NrIHJlbmRlciBmdW5jdGlvbi5cblx0ICogQHJldHVybnMgVGhlIHJhZGlvIGJ1dHRvbiBncm91cFxuXHQgKi9cblx0Y3JlYXRlQ29udGVudCgpOiBSYWRpb0J1dHRvbkdyb3VwIHtcblx0XHQvLyBTZXR0aW5nIHVwIHRoZSBiaW5kaW5nIHNvIHRoYXQgd2UgY2FuIGFjY2VzcyAkY291bnQgZm9yIGdldHRpbmcgdGhlIG51bWJlclxuXHRcdC8vIG9mIGVudHJpZXMgaW4gdGhlIGZpeGVkIHZhbHVlIGxpc3QgYW5kIHNldCB0aGlzIGFzIG51bWJlciBvZiByYWRpbyBidXR0b24gY29sdW1uc1xuXHRcdC8vIGluIGNhc2UgaG9yaXpvbnRhbCBsYXlvdXQgaXMgY29uZmlndXJlZFxuXHRcdGxldCBidXR0b25zQmluZGluZ0NvbnRleHQ6IEFnZ3JlZ2F0aW9uQmluZGluZ0luZm8gfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHRoaXMucG9zc2libGVWYWx1ZXMpIHtcblx0XHRcdGJ1dHRvbnNCaW5kaW5nQ29udGV4dCA9IHRoaXMuYmluZFN0YXRlKFwicG9zc2libGVWYWx1ZXNcIik7XG5cdFx0XHR0aGlzLnJhZGlvQnV0dG9uVGV4dFByb3BlcnR5ID0gcGF0aEluTW9kZWwoXCJ0ZXh0XCIsIFwiJGNvbXBvbmVudFN0YXRlXCIpO1xuXHRcdFx0dGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5ID0gcGF0aEluTW9kZWwoXCJrZXlcIiwgXCIkY29tcG9uZW50U3RhdGVcIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGJ1dHRvbnNCaW5kaW5nQ29udGV4dCA9IHtcblx0XHRcdFx0cGF0aDogYCR7dGhpcy5maXhlZFZhbHVlc1BhdGh9YCxcblx0XHRcdFx0cGFyYW1ldGVyczogeyAkY291bnQ6IHRydWUgfSxcblx0XHRcdFx0ZXZlbnRzOiB7XG5cdFx0XHRcdFx0ZGF0YVJlY2VpdmVkOiAoZXY6IEV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBjb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkID0gKGV2LmdldFNvdXJjZSgpIGFzIHVua25vd24gYXMgT0RhdGFMaXN0QmluZGluZyk/LmdldENvdW50KCk7XG5cdFx0XHRcdFx0XHRpZiAoY291bnQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmhvcml6b250YWxMYXlvdXQpIHtcblx0XHRcdFx0XHRcdFx0cmFkaW9CdXR0b25Hcm91cC5zZXRDb2x1bW5zKGNvdW50KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIENoZWNrIGlmIHRoZXJlIGlzIGEgdmFsdWUgc3RvcmVkIGZyb20gdGhlIGluaXRpYWxpemF0aW9uIGJ1dCB0aGUgcmFkaW9cblx0XHRcdFx0XHRcdC8vIGJ1dHRvbiBzZWxlY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBkb25lIGFuZCBkbyB0aGlzIG5vd1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiByYWRpb0J1dHRvbkdyb3VwLmdldFNlbGVjdGVkSW5kZXgoKSA9PT0gLTEpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlIGFzIHN0cmluZyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdHRoaXMub25SYWRpb0J1dHRvblNlbGVjdC5iaW5kKHRoaXMpO1xuXG5cdFx0Y29uc3QgcmFkaW9CdXR0b25Hcm91cCA9IChcblx0XHRcdDxSYWRpb0J1dHRvbkdyb3VwXG5cdFx0XHRcdGJ1dHRvbnM9e2J1dHRvbnNCaW5kaW5nQ29udGV4dH1cblx0XHRcdFx0c2VsZWN0PXt0aGlzLm9uUmFkaW9CdXR0b25TZWxlY3QuYmluZCh0aGlzKX1cblx0XHRcdFx0ZWRpdGFibGU9e3RoaXMuZWRpdGFibGVFeHByZXNzaW9ufVxuXHRcdFx0XHRlbmFibGVkPXt0aGlzLmVuYWJsZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRmaWVsZEdyb3VwSWRzPXt0aGlzLmZpZWxkR3JvdXBJZHN9XG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0XHR3aWR0aD17dGhpcy53aWR0aH1cblx0XHRcdFx0Y29sdW1ucz17dGhpcy5wb3NzaWJsZVZhbHVlcz8ubGVuZ3RoID8/IDF9XG5cdFx0XHQ+XG5cdFx0XHRcdDxSYWRpb0J1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdFx0Y3VzdG9tRGF0YT17PEN1c3RvbURhdGEga2V5PXtcImtleVwifSB2YWx1ZT17dGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5fSAvPn1cblx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5FbmRcIlxuXHRcdFx0XHRcdHRvb2x0aXA9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1JhZGlvQnV0dG9uR3JvdXA+XG5cdFx0KSBhcyBSYWRpb0J1dHRvbkdyb3VwO1xuXG5cdFx0cmV0dXJuIHJhZGlvQnV0dG9uR3JvdXA7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQnFCQSxZQUFZLElBQUFDLElBQUEsR0FEaENDLGNBQWMsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFBQyxLQUFBLEdBRXBEQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFO0VBQ1AsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHREYsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBR0RILFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU1ESixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRUksWUFBWSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHN0NOLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQU0sS0FBQSxHQU9EUCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZE8sV0FBVyxFQUFFO0VBQ2QsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHRFQsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRSxLQUFLO0lBQ1hTLGFBQWEsRUFBRTtFQUNoQixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdEWCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLEtBQUs7SUFDWFMsYUFBYSxFQUFFO0VBQ2hCLENBQUMsQ0FBQyxFQUFBRSxNQUFBLEdBR0RaLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQVksTUFBQSxHQUdEYixRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZFMsYUFBYSxFQUFFO0VBQ2hCLENBQUMsQ0FBQyxFQUFBSSxNQUFBLEdBR0RkLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUUsUUFBUTtJQUNkUyxhQUFhLEVBQUU7RUFDaEIsQ0FBQyxDQUFDLEVBQUFLLE1BQUEsR0FHRGYsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQyxFQUFBSixJQUFBLENBQUFtQixNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGNBQUE7SUFHRixTQUFBdEIsYUFBWXVCLFVBQXlELEVBQUVDLE1BQXlCLEVBQUU7TUFBQSxJQUFBQyxLQUFBO01BQ2pHQSxLQUFBLEdBQUFILGNBQUEsQ0FBQUksSUFBQSxPQUFNSCxVQUFVLEVBQUVDLE1BQU0sQ0FBQztNQUFDRywwQkFBQSxDQUFBRixLQUFBLFFBQUFHLFdBQUEsRUFBQUgsS0FBQTtNQUFBRSwwQkFBQSxDQUFBRixLQUFBLG1CQUFBSSxZQUFBLEVBQUFKLEtBQUE7TUFBQUUsMEJBQUEsQ0FBQUYsS0FBQSx3QkFBQUssWUFBQSxFQUFBTCxLQUFBO01BeEQzQjtNQUNBO01BQ0E7TUFBQUUsMEJBQUEsQ0FBQUYsS0FBQSxXQUFBTSxZQUFBLEVBQUFOLEtBQUE7TUFBQUUsMEJBQUEsQ0FBQUYsS0FBQSxxQkFBQU8sWUFBQSxFQUFBUCxLQUFBO01BU0E7QUFDRDtBQUNBO0FBQ0E7TUFIQ0UsMEJBQUEsQ0FBQUYsS0FBQSxvQkFBQVEsWUFBQSxFQUFBUixLQUFBO01BQUFFLDBCQUFBLENBQUFGLEtBQUEsNkJBQUFTLFlBQUEsRUFBQVQsS0FBQTtNQUFBRSwwQkFBQSxDQUFBRixLQUFBLDRCQUFBVSxZQUFBLEVBQUFWLEtBQUE7TUFBQUUsMEJBQUEsQ0FBQUYsS0FBQSxzQkFBQVcsWUFBQSxFQUFBWCxLQUFBO01BQUFFLDBCQUFBLENBQUFGLEtBQUEsdUJBQUFZLGFBQUEsRUFBQVosS0FBQTtNQUFBRSwwQkFBQSxDQUFBRixLQUFBLHdCQUFBYSxhQUFBLEVBQUFiLEtBQUE7TUFBQUUsMEJBQUEsQ0FBQUYsS0FBQSxXQUFBYyxhQUFBLEVBQUFkLEtBQUE7TUE4Q0NBLEtBQUEsQ0FBS2UsT0FBTyxHQUFHZixLQUFBLENBQUtnQixhQUFhLENBQUMsQ0FBQztNQUFDLE9BQUFoQixLQUFBO0lBQ3JDOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7SUFKQ2lCLFFBQUEsR0FBQTFDLFlBQUE7SUFBQTJDLGNBQUEsQ0FBQTNDLFlBQUEsRUFBQXNCLGNBQUE7SUFBQSxJQUFBc0IsTUFBQSxHQUFBNUMsWUFBQSxDQUFBNkMsU0FBQTtJQUFBRCxNQUFBLENBS0FFLG1CQUFtQixHQUFuQixTQUFBQSxtQkFBbUJBLENBQUNDLEtBQW1DLEVBQVE7TUFDOUQsTUFBTUMsZ0JBQWtDLEdBQUdELEtBQUssQ0FBQ0UsU0FBUyxDQUFDLENBQUM7TUFDNUQsTUFBTUMsYUFBYSxHQUFHSCxLQUFLLENBQUNJLFlBQVksQ0FBQyxlQUFlLENBQUM7TUFDekQsSUFBSUQsYUFBYSxLQUFLRSxTQUFTLEVBQUU7UUFDaEMsTUFBTUMsc0JBQThCLEdBQUdMLGdCQUFnQixFQUFFTSxVQUFVLENBQUMsQ0FBQyxDQUFDSixhQUFhLENBQUMsQ0FBQ0ssYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUM7UUFDbEg7UUFDQSxJQUFJLENBQUNDLFdBQVcsQ0FBQyxPQUFPLEVBQUVKLHNCQUFzQixDQUFDO1FBQ2pESyxXQUFXLENBQUNDLGFBQWEsQ0FBQ1gsZ0JBQWdCLENBQUMsRUFBRVksYUFBYSxDQUFDLENBQUMsRUFBRUMsWUFBWSxFQUFFQyxpQkFBaUIsQ0FBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQztNQUMzRztJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUxDO0lBQUFILE1BQUEsQ0FNQW1CLFlBQVksR0FBWixTQUFBQSxZQUFZQSxDQUFDQyxJQUFZLEVBQUVDLFdBQWdDLEVBQVE7TUFDbEUsSUFBSUQsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDQyxXQUFXLENBQUNDLFNBQVMsRUFBRTtRQUMvQztRQUNBRCxXQUFXLENBQUNFLFVBQVUsR0FBRyxLQUFLO01BQy9CO01BRUEsT0FBQTdDLGNBQUEsQ0FBQXVCLFNBQUEsQ0FBYWtCLFlBQVksQ0FBQXJDLElBQUEsT0FBQ3NDLElBQUksRUFBRUMsV0FBVztJQUM1Qzs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQXJCLE1BQUEsQ0FLQXdCLFFBQVEsR0FBUixTQUFBQSxRQUFRQSxDQUFDQyxRQUFtQyxFQUFRO01BQ25ELElBQUksQ0FBQ0MsS0FBSyxHQUFHRCxRQUFRO01BQ3JCLElBQUksSUFBSSxDQUFDN0IsT0FBTyxFQUFFO1FBQ2pCO1FBQ0EsTUFBTStCLFlBQVksR0FBRyxJQUFJLENBQUMvQixPQUFPLENBQUNjLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQUlpQixZQUFZLENBQUNDLE1BQU0sSUFBSSxDQUFDLEVBQUU7VUFDN0IsSUFBSUMsZ0JBQWdCLEdBQUcsQ0FBQztVQUN4QixLQUFLLE1BQU1DLFdBQVcsSUFBSUgsWUFBWSxFQUFFO1lBQ3ZDLE1BQU1JLGFBQWEsR0FBSUQsV0FBVyxDQUFDbkIsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ3FCLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBa0NwQixRQUFRLENBQUMsQ0FBQztZQUNySCxJQUFJbUIsYUFBYSxLQUFLTixRQUFRLEVBQUU7Y0FDL0IsSUFBSSxDQUFDN0IsT0FBTyxDQUFDcUMsZ0JBQWdCLENBQUNKLGdCQUFnQixDQUFDO2NBQy9DO1lBQ0Q7WUFDQUEsZ0JBQWdCLEVBQUU7VUFDbkI7UUFDRDtRQUNBO1FBQ0E7UUFDQSxJQUFJLENBQUNqQyxPQUFPLENBQUNxQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUNsQztJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQWpDLE1BQUEsQ0FJQUgsYUFBYSxHQUFiLFNBQUFBLGFBQWFBLENBQUEsRUFBcUI7TUFDakM7TUFDQTtNQUNBO01BQ0EsSUFBSXFDLHFCQUF5RDtNQUM3RCxJQUFJLElBQUksQ0FBQ0MsY0FBYyxFQUFFO1FBQ3hCRCxxQkFBcUIsR0FBRyxJQUFJLENBQUNFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUNDLHVCQUF1QixHQUFHQyxXQUFXLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDO1FBQ3JFLElBQUksQ0FBQ0Msc0JBQXNCLEdBQUdELFdBQVcsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUM7TUFDcEUsQ0FBQyxNQUFNO1FBQ05KLHFCQUFxQixHQUFHO1VBQ3ZCTSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUNDLGVBQWUsRUFBRTtVQUMvQkMsVUFBVSxFQUFFO1lBQUVDLE1BQU0sRUFBRTtVQUFLLENBQUM7VUFDNUJDLE1BQU0sRUFBRTtZQUNQQyxZQUFZLEVBQUdDLEVBQVMsSUFBVztjQUNsQyxNQUFNQyxLQUF5QixHQUFJRCxFQUFFLENBQUN6QyxTQUFTLENBQUMsQ0FBQyxFQUFrQzJDLFFBQVEsQ0FBQyxDQUFDO2NBQzdGLElBQUlELEtBQUssS0FBS3ZDLFNBQVMsSUFBSSxJQUFJLENBQUN5QyxnQkFBZ0IsRUFBRTtnQkFDakQ3QyxnQkFBZ0IsQ0FBQzhDLFVBQVUsQ0FBQ0gsS0FBSyxDQUFDO2NBQ25DO2NBQ0E7Y0FDQTtjQUNBLElBQUksSUFBSSxDQUFDckIsS0FBSyxLQUFLbEIsU0FBUyxJQUFJSixnQkFBZ0IsQ0FBQytDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDM0UsSUFBSSxDQUFDM0IsUUFBUSxDQUFDLElBQUksQ0FBQ0UsS0FBZSxDQUFDO2NBQ3BDO1lBQ0Q7VUFDRDtRQUNELENBQUM7TUFDRjtNQUVBLElBQUksQ0FBQ3hCLG1CQUFtQixDQUFDa0QsSUFBSSxDQUFDLElBQUksQ0FBQztNQUVuQyxNQUFNaEQsZ0JBQWdCLEdBQ3JCaUQsSUFBQSxDQUFDQyxnQkFBZ0I7UUFDaEJDLE9BQU8sRUFBRXJCLHFCQUFzQjtRQUMvQnNCLE1BQU0sRUFBRSxJQUFJLENBQUN0RCxtQkFBbUIsQ0FBQ2tELElBQUksQ0FBQyxJQUFJLENBQUU7UUFDNUNLLFFBQVEsRUFBRSxJQUFJLENBQUNDLGtCQUFtQjtRQUNsQ0MsT0FBTyxFQUFFLElBQUksQ0FBQ0MsaUJBQWtCO1FBQ2hDQyxhQUFhLEVBQUUsSUFBSSxDQUFDQSxhQUFjO1FBQ2xDQyxjQUFjLEVBQUUsSUFBSSxDQUFDQSxjQUFlO1FBQ3BDQyxLQUFLLEVBQUUsSUFBSSxDQUFDQSxLQUFNO1FBQ2xCQyxPQUFPLEVBQUUsSUFBSSxDQUFDN0IsY0FBYyxFQUFFUCxNQUFNLElBQUksQ0FBRTtRQUFBcUMsUUFBQSxFQUUxQ1osSUFBQSxDQUFDYSxXQUFXO1VBQ1hDLElBQUksRUFBRSxJQUFJLENBQUM5Qix1QkFBd0I7VUFDbkMrQixVQUFVLEVBQUVmLElBQUEsQ0FBQ2dCLFVBQVU7WUFBYTNDLEtBQUssRUFBRSxJQUFJLENBQUNhO1VBQXVCLEdBQTFDLEtBQTRDLENBQUU7VUFDM0UrQixLQUFLLEVBQUMscUJBQXFCO1VBQzNCQyxPQUFPLEVBQUUsSUFBSSxDQUFDbEM7UUFBd0IsQ0FDdEM7TUFBQyxDQUNlLENBQ0U7TUFFckIsT0FBT2pDLGdCQUFnQjtJQUN4QixDQUFDO0lBQUEsT0FBQWhELFlBQUE7RUFBQSxFQTlMd0NvSCxhQUFhLEdBQUF4RixXQUFBLEdBQUF5Rix5QkFBQSxDQUFBaEcsT0FBQSxDQUFBd0IsU0FBQSxTQUFBMUMsS0FBQTtJQUFBbUgsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE1RixZQUFBLEdBQUF3Rix5QkFBQSxDQUFBaEcsT0FBQSxDQUFBd0IsU0FBQSxvQkFBQXZDLEtBQUE7SUFBQWdILFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBM0YsWUFBQSxHQUFBdUYseUJBQUEsQ0FBQWhHLE9BQUEsQ0FBQXdCLFNBQUEseUJBQUF0QyxLQUFBO0lBQUErRyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQTFGLFlBQUEsR0FBQXNGLHlCQUFBLENBQUFoRyxPQUFBLENBQUF3QixTQUFBLFlBQUFyQyxLQUFBO0lBQUE4RyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXpGLFlBQUEsR0FBQXFGLHlCQUFBLENBQUFoRyxPQUFBLENBQUF3QixTQUFBLHNCQUFBbkMsS0FBQTtJQUFBNEcsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF4RixZQUFBLEdBQUFvRix5QkFBQSxDQUFBaEcsT0FBQSxDQUFBd0IsU0FBQSxxQkFBQWxDLEtBQUE7SUFBQTJHLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBdkYsWUFBQSxHQUFBbUYseUJBQUEsQ0FBQWhHLE9BQUEsQ0FBQXdCLFNBQUEsOEJBQUFoQyxLQUFBO0lBQUF5RyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXRGLFlBQUEsR0FBQWtGLHlCQUFBLENBQUFoRyxPQUFBLENBQUF3QixTQUFBLDZCQUFBOUIsS0FBQTtJQUFBdUcsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFyRixZQUFBLEdBQUFpRix5QkFBQSxDQUFBaEcsT0FBQSxDQUFBd0IsU0FBQSx1QkFBQTdCLE1BQUE7SUFBQXNHLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9Bb0Q1QixLQUFLO0lBQUE7RUFBQSxJQUFBcEYsYUFBQSxHQUFBZ0YseUJBQUEsQ0FBQWhHLE9BQUEsQ0FBQXdCLFNBQUEsd0JBQUE1QixNQUFBO0lBQUFxRyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQU1KLEVBQUU7SUFBQTtFQUFBLElBQUFuRixhQUFBLEdBQUErRSx5QkFBQSxDQUFBaEcsT0FBQSxDQUFBd0IsU0FBQSx5QkFBQTNCLE1BQUE7SUFBQW9HLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BTUQsRUFBRTtJQUFBO0VBQUEsSUFBQWxGLGFBQUEsR0FBQThFLHlCQUFBLENBQUFoRyxPQUFBLENBQUF3QixTQUFBLFlBQUExQixNQUFBO0lBQUFtRyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQUtmLE1BQU07SUFBQTtFQUFBLElBQUFwRyxPQUFBLE1BQUFELE1BQUE7RUFBQXNCLFFBQUEsR0FBQTFDLFlBQUE7RUFBQSxPQUFBMEMsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -70,10 +70,17 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup, { poss
70
70
  public horizontalLayout = false;
71
71
 
72
72
  @property({
73
- type: "string"
73
+ type: "string",
74
+ isBindingInfo: true
74
75
  })
75
76
  public enabledExpression = "";
76
77
 
78
+ @property({
79
+ type: "string",
80
+ isBindingInfo: true
81
+ })
82
+ public editableExpression = "";
83
+
77
84
  @property({
78
85
  type: "string"
79
86
  })
@@ -176,10 +183,12 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup, { poss
176
183
  }
177
184
 
178
185
  this.onRadioButtonSelect.bind(this);
186
+
179
187
  const radioButtonGroup = (
180
188
  <RadioButtonGroup
181
189
  buttons={buttonsBindingContext}
182
190
  select={this.onRadioButtonSelect.bind(this)}
191
+ editable={this.editableExpression}
183
192
  enabled={this.enabledExpression}
184
193
  fieldGroupIds={this.fieldGroupIds}
185
194
  ariaLabelledBy={this.ariaLabelledBy}