@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
@@ -24,7 +24,14 @@ import {
24
24
  type PropertiesOf
25
25
  } from "sap/fe/base/ClassSupport";
26
26
  import type AppComponent from "sap/fe/core/AppComponent";
27
+ import type PageController from "sap/fe/core/PageController";
28
+ import BuildingBlock from "sap/fe/core/buildingBlocks/BuildingBlock";
29
+ import { CollaborationFieldGroupPrefix } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
30
+ import FormElementWrapper from "sap/fe/core/controls/FormElementWrapper";
31
+ import * as CollaborationFormatters from "sap/fe/core/formatters/CollaborationFormatter";
27
32
  import { UI } from "sap/fe/core/helpers/BindingHelper";
33
+ import type MetaPath from "sap/fe/core/helpers/MetaPath";
34
+ import ModelHelper from "sap/fe/core/helpers/ModelHelper";
28
35
  import * as ID from "sap/fe/core/helpers/StableIdHelper";
29
36
  import {
30
37
  isMultipleNavigationProperty,
@@ -41,40 +48,29 @@ import {
41
48
  isPathDeletable,
42
49
  isPathInsertable
43
50
  } from "sap/fe/core/templating/DataModelPathHelper";
51
+ import { isReadOnlyExpression, isRequiredExpression } from "sap/fe/core/templating/FieldControlHelper";
44
52
  import type { DisplayMode } from "sap/fe/core/templating/UIFormatters";
45
- import { getCollaborationExpression, getDisplayMode } from "sap/fe/core/templating/UIFormatters";
53
+ import * as UIFormatters from "sap/fe/core/templating/UIFormatters";
54
+ import { getDisplayMode } from "sap/fe/core/templating/UIFormatters";
46
55
  import FieldHelper from "sap/fe/macros/field/FieldHelper";
56
+ import FieldRuntime from "sap/fe/macros/field/FieldRuntime";
47
57
  import { getValueBinding, getVisibleExpression } from "sap/fe/macros/field/FieldTemplating";
48
- import type Tokenizer from "sap/m/Tokenizer";
58
+ import FormatOptions from "sap/fe/macros/multivaluefield/FormatOptions";
59
+ import MultiValueFieldRuntime from "sap/fe/macros/multivaluefield/MultiValueFieldRuntime";
60
+ import HBox from "sap/m/HBox";
49
61
  import type { PropertyBindingInfo } from "sap/ui/base/ManagedObject";
50
62
  import type Control from "sap/ui/core/Control";
63
+ import type { $ControlSettings, Control$ValidateFieldGroupEvent } from "sap/ui/core/Control";
51
64
  import CustomData from "sap/ui/core/CustomData";
65
+ import Element from "sap/ui/core/Element";
52
66
  import MultiValueField from "sap/ui/mdc/MultiValueField";
67
+ import type { default as MdcValueHelp, ValueHelp$OpenedEvent } from "sap/ui/mdc/ValueHelp";
53
68
  import type FieldEditMode from "sap/ui/mdc/enums/FieldEditMode";
54
69
  import MultiValueFieldItem from "sap/ui/mdc/field/MultiValueFieldItem";
55
70
  import type Context from "sap/ui/model/odata/v4/Context";
56
-
57
- import type PageController from "sap/fe/core/PageController";
58
- import BuildingBlock from "sap/fe/core/buildingBlocks/BuildingBlock";
59
- import { CollaborationFieldGroupPrefix } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
60
- import FormElementWrapper from "sap/fe/core/controls/FormElementWrapper";
61
- import * as CollaborationFormatters from "sap/fe/core/formatters/CollaborationFormatter";
62
- import type MetaPath from "sap/fe/core/helpers/MetaPath";
63
- import ModelHelper from "sap/fe/core/helpers/ModelHelper";
64
- import { isReadOnlyExpression, isRequiredExpression } from "sap/fe/core/templating/FieldControlHelper";
65
- import * as UIFormatters from "sap/fe/core/templating/UIFormatters";
66
- import FieldRuntime from "sap/fe/macros/field/FieldRuntime";
67
- import FormatOptions from "sap/fe/macros/multivaluefield/FormatOptions";
68
- import MultiValueFieldRuntime from "sap/fe/macros/multivaluefield/MultiValueFieldRuntime";
69
- import Avatar from "sap/m/Avatar";
70
- import HBox from "sap/m/HBox";
71
- import UI5Event from "sap/ui/base/Event";
72
- import type { $ControlSettings } from "sap/ui/core/Control";
73
- import Element from "sap/ui/core/Element";
74
- import type { default as MdcValueHelp, ValueHelp$OpenedEvent } from "sap/ui/mdc/ValueHelp";
75
71
  import type { MetaModelType } from "../../../../../../types/metamodel_types";
72
+ import CollaborativeDraftHandler from "./CollaborativeDraftHandler";
76
73
  import ValueHelp from "./ValueHelp";
77
- import FieldRuntimeHelper from "./field/FieldRuntimeHelper";
78
74
 
79
75
  type MultiInputSettings = {
80
76
  description: BindingToolkitExpression<string> | CompiledBindingToolkitExpression;
@@ -199,11 +195,6 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
199
195
  */
200
196
  private dataModelPath!: DataModelObjectPath<Property>;
201
197
 
202
- /**
203
- * Property to be displayed
204
- */
205
- private property!: Property;
206
-
207
198
  /**
208
199
  * Edit Mode of the field.
209
200
  * If the editMode is undefined then we compute it based on the metadata
@@ -227,14 +218,8 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
227
218
 
228
219
  private enhancedMetaPath!: Context;
229
220
 
230
- private enableExpression: CompiledBindingToolkitExpression;
231
-
232
221
  private collaborationExpression!: BindingToolkitExpression<boolean>;
233
222
 
234
- private collaborationInitialsExpression!: CompiledBindingToolkitExpression;
235
-
236
- private collaborationColorExpression!: CompiledBindingToolkitExpression;
237
-
238
223
  private collaborationEnabled!: boolean;
239
224
 
240
225
  private dataSourcePath!: string;
@@ -413,7 +398,6 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
413
398
  (this.convertedDataField.Value as PathAnnotationExpression<string>).path
414
399
  );
415
400
  this.dataSourcePath = getTargetObjectPath(this.dataModelPath);
416
- this.property = this.dataModelPath.targetObject as Property;
417
401
 
418
402
  let insertable = isPathInsertable(this.dataModelPath);
419
403
  const deleteNavigationRestriction = isPathDeletable(this.dataModelPath, {
@@ -508,13 +492,6 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
508
492
  this.dataModelPath,
509
493
  CollaborationFormatters.hasCollaborationActivity
510
494
  );
511
-
512
- this.collaborationInitialsExpression = compileExpression(
513
- getCollaborationExpression(this.dataModelPath, CollaborationFormatters.getCollaborationActivityInitials)
514
- );
515
- this.collaborationColorExpression = compileExpression(
516
- getCollaborationExpression(this.dataModelPath, CollaborationFormatters.getCollaborationActivityColor)
517
- );
518
495
  }
519
496
  }
520
497
 
@@ -543,7 +520,6 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
543
520
  this.vhIdPrefix = this.createId("FieldValueHelp")!;
544
521
  }
545
522
  const controller = this._getOwner()?.getRootController() as PageController;
546
- const view = controller.getView();
547
523
  const odataMetaModel = this._getOwner()?.getMetaModel();
548
524
  const metaContext = odataMetaModel?.createBindingContext(metaContextPath.getPath());
549
525
  const context = odataMetaModel?.createBindingContext(metaContextPath.getContextPath());
@@ -589,7 +565,7 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
589
565
  required={compileExpression(and(UI.IsEditable, isRequiredExpression(this.convertedDataField)))}
590
566
  change={(MultiValueFieldRuntime.handleChange as unknown as Function).bind(MultiValueFieldRuntime, controller)}
591
567
  fieldGroupIds={this.fieldGroupIds}
592
- validateFieldGroup={FieldRuntime.onValidateFieldGroup}
568
+ validateFieldGroup={this.onValidateFieldGroup.bind(this)}
593
569
  >
594
570
  {{
595
571
  items: <MultiValueFieldItem key={this.item.key} description={this.item.description} />,
@@ -600,24 +576,16 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
600
576
 
601
577
  let formwrapper = null;
602
578
  if (this.collaborationEnabled) {
603
- const avatar = (
604
- <Avatar
605
- visible={this.collaborationExpression}
606
- initials={this.collaborationInitialsExpression}
607
- displaySize="Custom"
608
- customDisplaySize="1.5rem"
609
- customFontSize="0.8rem"
610
- backgroundColor={this.collaborationColorExpression}
611
- press={(): void => {
612
- FieldRuntimeHelper.showCollaborationEditUser(avatar, view);
613
- }}
614
- />
579
+ const propertyPath = getContextRelativeTargetObjectPath(this.dataModelPath);
580
+ const collDraftHandler = (
581
+ <CollaborativeDraftHandler metaPath={propertyPath} contextPath={this.contextPath} showAvatar={true} />
615
582
  );
583
+
616
584
  formwrapper = (
617
585
  <FormElementWrapper>
618
586
  <HBox width="100%" renderType="Bare" alignItems="End">
619
587
  {{
620
- items: [multiValueField, avatar]
588
+ items: [multiValueField, collDraftHandler]
621
589
  }}
622
590
  </HBox>
623
591
  </FormElementWrapper>
@@ -634,16 +602,6 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
634
602
  currentMultiValueField?.focus();
635
603
  });
636
604
  }
637
- },
638
- onfocusout: (evt: jQuery.Event & { srcControl: Control }) => {
639
- let currentMultiValueField = evt.srcControl.getParent() as MultiValueField;
640
- if (currentMultiValueField?.isA<Tokenizer>("sap.m.Tokenizer")) {
641
- currentMultiValueField = currentMultiValueField.getParent()?.getParent() as MultiValueField;
642
- }
643
- const event = new UI5Event("", currentMultiValueField, {
644
- fieldGroupIds: currentMultiValueField.getFieldGroupIds()
645
- });
646
- controller.collaborativeDraft.handleContentFocusOut(event);
647
605
  }
648
606
  },
649
607
  this
@@ -661,6 +619,16 @@ export default class MultiValueFieldBlock extends BuildingBlock<Control> {
661
619
  }
662
620
  }
663
621
 
622
+ /**
623
+ * Callback when the user leaves the MVF.
624
+ * @param event
625
+ */
626
+ onValidateFieldGroup(event: Control$ValidateFieldGroupEvent): void {
627
+ const controller = this._getOwner()?.getRootController() as PageController;
628
+ controller.collaborativeDraft.handleContentFocusOut(event);
629
+ FieldRuntime.onValidateFieldGroup(event);
630
+ }
631
+
664
632
  /**
665
633
  * Setter for the readOnly property.
666
634
  * @param readOnly
@@ -121,14 +121,14 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
121
121
  };
122
122
  /**
123
123
  * Method that returns the button customizations for the editor toolbar.
124
- * Because all values come as strings from XML, some parsing needs to be done to get attributes with the correct type.
124
+ * Because all values are returned as strings from XML, parsing is needed to return attributes with the correct type.
125
125
  * @returns The button groups.
126
126
  */
127
127
  _this.getButtonGroups = () => {
128
128
  if (_this.buttonGroups && _this.buttonGroups.length > 0) {
129
129
  return _this.buttonGroups.map(buttonGroup => ({
130
130
  name: buttonGroup.name ?? "",
131
- visible: buttonGroup.visible === "true",
131
+ visible: buttonGroup.visible?.toString() === "true",
132
132
  priority: buttonGroup.priority,
133
133
  row: buttonGroup.row,
134
134
  customToolbarPriority: buttonGroup.customToolbarPriority,
@@ -146,7 +146,6 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
146
146
  visible: true,
147
147
  customToolbar: true,
148
148
  editable: true,
149
- editorType: "TinyMCE6",
150
149
  showGroupFontStyle: true,
151
150
  showGroupTextAlign: true,
152
151
  showGroupStructure: true,
@@ -300,4 +299,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
300
299
  _exports = RichTextEditorBlock;
301
300
  return _exports;
302
301
  }, false);
303
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSaWNoVGV4dEVkaXRvckJsb2NrIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJyZXF1aXJlZCIsIl9kZWMzIiwiaXNCaW5kaW5nSW5mbyIsIl9kZWM0IiwiX2RlYzUiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiZGVmYXVsdENsYXNzIiwiQnV0dG9uR3JvdXAiLCJfZGVjNiIsIlBsdWdpbkRlZmluaXRpb24iLCJfZGVjNyIsIl9kZWM4IiwiYmluZGFibGUiLCJfZGVjOSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9jayIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJfdGhpcyIsIl9pc0luRWRpdE1vZGUiLCJjb21waWxlRXhwcmVzc2lvbiIsIlVJIiwiSXNFZGl0YWJsZSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiZ2V0UGx1Z2lucyIsInBsdWdpbnNBcnJheSIsImV4Y2x1ZGVEZWZhdWx0UGx1Z2lucyIsIm1hcCIsIm5hbWUiLCJwbHVnaW5zIiwibGVuZ3RoIiwicGx1Z2luIiwicHVzaCIsImdldEJ1dHRvbkdyb3VwcyIsImJ1dHRvbkdyb3VwcyIsImJ1dHRvbkdyb3VwIiwidmlzaWJsZSIsInByaW9yaXR5Iiwicm93IiwiY3VzdG9tVG9vbGJhclByaW9yaXR5IiwiYnV0dG9ucyIsInNwbGl0IiwiZ2V0RWRpdENvbnRlbnQiLCJfY2xlYW51cFByZXZpb3VzUlRFIiwiX2VkaXRDb250ZW50IiwiX2pzeCIsIlJpY2hUZXh0RWRpdG9yIiwiY2xhc3MiLCJpZCIsImNyZWF0ZUlkIiwidmFsdWUiLCJjdXN0b21Ub29sYmFyIiwiZWRpdGFibGUiLCJlZGl0b3JUeXBlIiwic2hvd0dyb3VwRm9udFN0eWxlIiwic2hvd0dyb3VwVGV4dEFsaWduIiwic2hvd0dyb3VwU3RydWN0dXJlIiwic2hvd0dyb3VwRm9udCIsInNob3dHcm91cENsaXBib2FyZCIsInNob3dHcm91cEluc2VydCIsInNob3dHcm91cExpbmsiLCJzaG93R3JvdXBVbmRvIiwic2FuaXRpemVWYWx1ZSIsIndyYXBwaW5nIiwid2lkdGgiLCJ1bmRlZmluZWQiLCJhdHRhY2hSZWFkeSIsImFkZEJ1dHRvbkdyb3VwcyIsImNsZWFyVGltZW91dCIsIl9idXR0b25Hcm91cHNUaW1lciIsInNldFRpbWVvdXQiLCJjcmVhdGVDb250ZW50RGVib3VuY2VkIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJfb3duZXJDb21wb25lbnQiLCJfY29udGVudFRpbWVyIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJleGl0IiwiX2Rpc3BsYXlDb250ZW50IiwiZGVzdHJveSIsInNldF9pc0luRWRpdE1vZGUiLCJpbkVkaXRNb2RlIiwic2V0UHJvcGVydHkiLCJzZXRSZWFkT25seSIsInJlYWRPbmx5IiwibGF0ZUJ1dHRvbkdyb3VwcyIsInJldmVyc2UiLCJsYXRlQnV0dG9uR3JvdXAiLCJhZGRCdXR0b25Hcm91cCIsImRldGFjaFJlYWR5IiwicmVtb3ZlU3R5bGVDbGFzcyIsIndpbmRvdyIsInRpbnltY2UiLCJnZXQiLCJnZXREaXNwbGF5Q29udGVudCIsIkZvcm1hdHRlZFRleHQiLCJodG1sVGV4dCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJpY2hUZXh0RWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHsgVUkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgQnV0dG9uR3JvdXAgZnJvbSBcInNhcC9mZS9tYWNyb3MvcmljaHRleHRlZGl0b3IvQnV0dG9uR3JvdXBcIjtcbmltcG9ydCBQbHVnaW5EZWZpbml0aW9uIGZyb20gXCJzYXAvZmUvbWFjcm9zL3JpY2h0ZXh0ZWRpdG9yL1BsdWdpblwiO1xuaW1wb3J0IEZvcm1hdHRlZFRleHQgZnJvbSBcInNhcC9tL0Zvcm1hdHRlZFRleHRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCBSaWNoVGV4dEVkaXRvciBmcm9tIFwic2FwL3VpL3JpY2h0ZXh0ZWRpdG9yL1JpY2hUZXh0RWRpdG9yXCI7XG5cbnR5cGUgUGx1Z2luRGVmaW5pdGlvbkRhdGEgPSB7XG5cdG5hbWU6IHN0cmluZztcbn07XG50eXBlIEJ1dHRvbkdyb3VwRGF0YSA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHR2aXNpYmxlOiBib29sZWFuO1xuXHRwcmlvcml0eT86IG51bWJlcjtcblx0cm93PzogbnVtYmVyO1xuXHRjdXN0b21Ub29sYmFyUHJpb3JpdHk/OiBudW1iZXI7XG5cdGJ1dHRvbnM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBCdWlsZGluZyBibG9jayB0aGF0IGV4cG9zZXMgdGhlIFJpY2hUZXh0RWRpdG9yIFVJNSBjb250cm9sLlxuICpcbiAqIEl0J3MgdXNlZCB0byBlbnRlciBmb3JtYXR0ZWQgdGV4dCwgYW5kIHVzZXMgdGhlIHRoaXJkLXBhcnR5IGNvbXBvbmVudCBjYWxsZWQgVGlueU1DRS5cbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjExNy4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuUmljaFRleHRFZGl0b3JcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJpY2hUZXh0RWRpdG9yQmxvY2sgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrPENvbnRyb2w+IHtcblx0LyoqXG5cdCAqIElEIG9mIHRoZSBlZGl0b3Jcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdGlkITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUaGUgdmFsdWUgY29udGFpbmVkIGluIHRoZSBlZGl0b3IuIFlvdSBjYW4gdXNlIHRoaXMgYXR0cmlidXRlIHRvIHNldCBhIGRlZmF1bHQgdmFsdWUuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYW55XCIsIGlzQmluZGluZ0luZm86IHRydWUgfSlcblx0dmFsdWU/OiBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdC8qKlxuXHQgKiBVc2UgdGhlIHJlYWRPbmx5IGF0dHJpYnV0ZSB0byBvdmVycmlkZSB0aGUgZWRpdCBmbG93IG9mIHRoZSBwYWdlLlxuXHQgKiBCeSBzZXR0aW5nICdyZWFkT25seScgdG8gdHJ1ZSwgYSBGb3JtYXR0ZWRUZXh0IHdpbGwgYmUgZGlzcGxheWVkIGluc3RlYWQgb2YgdGhlIGVkaXRvci5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cmVhZE9ubHk6IFByb3BlcnR5QmluZGluZ0luZm8gPSBmYWxzZTtcblxuXHQvKipcblx0ICogV2l0aCB0aGUgJ2J1dHRvbkdyb3VwcycgYXR0cmlidXRlIHlvdSBjYW4gY3VzdG9taXplIHRoZSBidXR0b25zIHRoYXQgYXJlIGRpc3BsYXllZCBvbiB0aGUgdG9vbGJhciBvZiB0aGUgZWRpdG9yLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5mZS5tYWNyb3MucmljaHRleHRlZGl0b3IuQnV0dG9uR3JvdXBcIiwgbXVsdGlwbGU6IHRydWUsIGRlZmF1bHRDbGFzczogQnV0dG9uR3JvdXAgfSlcblx0YnV0dG9uR3JvdXBzOiBCdXR0b25Hcm91cFtdID0gW107XG5cblx0LyoqXG5cdCAqIFdpdGggdGhlICdwbHVnaW5zJyBhdHRyaWJ1dGUgeW91IGNhbiBjdXN0b21pemUgdGhlIHBsdWdpbnMgdGhhdCB3aWxsIGJlIGxvYWRlZCBieSB0aGUgZWRpdG9yLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5mZS5tYWNyb3MucmljaHRleHRlZGl0b3IuUGx1Z2luXCIsIG11bHRpcGxlOiB0cnVlLCBkZWZhdWx0Q2xhc3M6IFBsdWdpbkRlZmluaXRpb24gfSlcblx0cGx1Z2lucz86IFBsdWdpbkRlZmluaXRpb25bXTtcblxuXHQvKipcblx0ICogV2l0aCB0aGUgJ2V4Y2x1ZGVEZWZhdWx0UGx1Z2lucycgeW91IGNhbiBhc2sgdG8gcmVtb3ZlIHRoZSBwbHVnaW5zIHRoYXQgd2lsbCBiZSBhZGRlZCBieSBkZWZhdWx0XG5cdCAqIFRoZSBkZWZhdWx0IHBsdWdpbnMgYXJlIFwiZW1vdGljb25zXCIgXCJkaXJlY3Rpb25hbGl0eVwiIFwiaW1hZ2VcIiBcInRhYmxlXCIgXCJsaW5rXCIgXCJwb3dlcnBhc3RlXCIuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdGV4Y2x1ZGVEZWZhdWx0UGx1Z2lucyA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBVc2UgdGhlICdyZXF1aXJlZCcgYXR0cmlidXRlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBlZGl0b3IgaXMgZmlsbGVkIHdpdGggc29tZSB0ZXh0LlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBiaW5kYWJsZTogZmFsc2UgfSlcblx0cmVxdWlyZWQ6IFByb3BlcnR5QmluZGluZ0luZm8gPSBmYWxzZTtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRfaXNJbkVkaXRNb2RlOiBQcm9wZXJ0eUJpbmRpbmdJbmZvID0gZmFsc2U7XG5cblx0cHJpdmF0ZSBfZGlzcGxheUNvbnRlbnQ/OiBGb3JtYXR0ZWRUZXh0O1xuXG5cdHByaXZhdGUgX2VkaXRDb250ZW50PzogUmljaFRleHRFZGl0b3I7XG5cblx0cHJpdmF0ZSBfY29udGVudFRpbWVyPzogbnVtYmVyO1xuXG5cdC8qKlxuXHQgKiBUaW1lciB0byBlbnN1cmUgdGhhdCBpZiB0aGUgYnV0dG9uIGdyb3VwcyBhcmUgbm90IGFkZGVkIHdlIHJlc3RhcnQgdGhlIHByb2Nlc3MuXG5cdCAqL1xuXHRwcml2YXRlIF9idXR0b25Hcm91cHNUaW1lcj86IG51bWJlcjtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPFJpY2hUZXh0RWRpdG9yQmxvY2s+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0cHJvcGVydGllcy5faXNJbkVkaXRNb2RlID0gY29tcGlsZUV4cHJlc3Npb24oVUkuSXNFZGl0YWJsZSk7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdHN1cGVyLm9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50KTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnREZWJvdW5jZWQoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuX2NvbnRlbnRUaW1lcikge1xuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuX2NvbnRlbnRUaW1lcik7XG5cdFx0fVxuXHRcdHRoaXMuX2NvbnRlbnRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdFx0fSwgMjAwKSBhcyB1bmtub3duIGFzIG51bWJlcjtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0dGhpcy5fZGlzcGxheUNvbnRlbnQ/LmRlc3Ryb3koKTtcblx0XHR0aGlzLl9lZGl0Q29udGVudD8uZGVzdHJveSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGJ1dHRvbiBjdXN0b21pemF0aW9ucyBmb3IgdGhlIGVkaXRvciB0b29sYmFyLlxuXHQgKiBCZWNhdXNlIGFsbCB2YWx1ZXMgY29tZSBhcyBzdHJpbmdzIGZyb20gWE1MLCBzb21lIHBhcnNpbmcgbmVlZHMgdG8gYmUgZG9uZSB0byBnZXQgYXR0cmlidXRlcyB3aXRoIHRoZSBjb3JyZWN0IHR5cGUuXG5cdCAqIEByZXR1cm5zIFRoZSBidXR0b24gZ3JvdXBzLlxuXHQgKi9cblx0Z2V0UGx1Z2lucyA9ICgpOiB7IHBsdWdpbnM/OiBQbHVnaW5EZWZpbml0aW9uRGF0YVtdIH0gPT4ge1xuXHRcdGxldCBwbHVnaW5zQXJyYXk6IFBsdWdpbkRlZmluaXRpb25EYXRhW10gfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHRoaXMuZXhjbHVkZURlZmF1bHRQbHVnaW5zKSB7XG5cdFx0XHRwbHVnaW5zQXJyYXkgPSBbXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cGx1Z2luc0FycmF5ID0gW1wiZW1vdGljb25zXCIsIFwiZGlyZWN0aW9uYWxpdHlcIiwgXCJpbWFnZVwiLCBcInRhYmxlXCIsIFwibGlua1wiLCBcInBvd2VycGFzdGVcIl0ubWFwKChuYW1lOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0cmV0dXJuIHsgbmFtZTogbmFtZSB9O1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnBsdWdpbnM/Lmxlbmd0aCkge1xuXHRcdFx0Zm9yIChjb25zdCBwbHVnaW4gb2YgdGhpcy5wbHVnaW5zKSB7XG5cdFx0XHRcdHBsdWdpbnNBcnJheS5wdXNoKHBsdWdpbik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB7IHBsdWdpbnM6IHBsdWdpbnNBcnJheSB9O1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBNZXRob2QgdGhhdCByZXR1cm5zIHRoZSBidXR0b24gY3VzdG9taXphdGlvbnMgZm9yIHRoZSBlZGl0b3IgdG9vbGJhci5cblx0ICogQmVjYXVzZSBhbGwgdmFsdWVzIGNvbWUgYXMgc3RyaW5ncyBmcm9tIFhNTCwgc29tZSBwYXJzaW5nIG5lZWRzIHRvIGJlIGRvbmUgdG8gZ2V0IGF0dHJpYnV0ZXMgd2l0aCB0aGUgY29ycmVjdCB0eXBlLlxuXHQgKiBAcmV0dXJucyBUaGUgYnV0dG9uIGdyb3Vwcy5cblx0ICovXG5cdGdldEJ1dHRvbkdyb3VwcyA9ICgpOiBCdXR0b25Hcm91cERhdGFbXSA9PiB7XG5cdFx0aWYgKHRoaXMuYnV0dG9uR3JvdXBzICYmIHRoaXMuYnV0dG9uR3JvdXBzLmxlbmd0aCA+IDApIHtcblx0XHRcdHJldHVybiB0aGlzLmJ1dHRvbkdyb3Vwcy5tYXAoKGJ1dHRvbkdyb3VwOiBCdXR0b25Hcm91cCkgPT4gKHtcblx0XHRcdFx0bmFtZTogYnV0dG9uR3JvdXAubmFtZSA/PyBcIlwiLFxuXHRcdFx0XHR2aXNpYmxlOiBidXR0b25Hcm91cC52aXNpYmxlID09PSBcInRydWVcIixcblx0XHRcdFx0cHJpb3JpdHk6IGJ1dHRvbkdyb3VwLnByaW9yaXR5LFxuXHRcdFx0XHRyb3c6IGJ1dHRvbkdyb3VwLnJvdyxcblx0XHRcdFx0Y3VzdG9tVG9vbGJhclByaW9yaXR5OiBidXR0b25Hcm91cC5jdXN0b21Ub29sYmFyUHJpb3JpdHksXG5cdFx0XHRcdGJ1dHRvbnM6IGJ1dHRvbkdyb3VwLmJ1dHRvbnM/LnNwbGl0KFwiLFwiKSB8fCBbXVxuXHRcdFx0fSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gW107XG5cdH07XG5cblx0c2V0X2lzSW5FZGl0TW9kZShpbkVkaXRNb2RlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0c3VwZXIuc2V0UHJvcGVydHkoXCJfaXNJbkVkaXRNb2RlXCIsIGluRWRpdE1vZGUpO1xuXHRcdHRoaXMuY3JlYXRlQ29udGVudERlYm91bmNlZCgpO1xuXHR9XG5cblx0c2V0UmVhZE9ubHkocmVhZE9ubHk6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRzdXBlci5zZXRQcm9wZXJ0eShcInJlYWRPbmx5XCIsIHJlYWRPbmx5KTtcblx0XHR0aGlzLmNyZWF0ZUNvbnRlbnREZWJvdW5jZWQoKTtcblx0fVxuXG5cdGdldEVkaXRDb250ZW50ID0gKCk6IFJpY2hUZXh0RWRpdG9yID0+IHtcblx0XHR0aGlzLl9jbGVhbnVwUHJldmlvdXNSVEUoKTtcblxuXHRcdHRoaXMuX2VkaXRDb250ZW50ID0gKFxuXHRcdFx0PFJpY2hUZXh0RWRpdG9yXG5cdFx0XHRcdGNsYXNzPXtcInNhcFVpSGlkZGVuXCJ9XG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiX3J0ZVwiKX1cblx0XHRcdFx0dmFsdWU9e3RoaXMudmFsdWV9XG5cdFx0XHRcdHZpc2libGU9e3RydWV9XG5cdFx0XHRcdGN1c3RvbVRvb2xiYXI9e3RydWV9XG5cdFx0XHRcdGVkaXRhYmxlPXt0cnVlfVxuXHRcdFx0XHRlZGl0b3JUeXBlPVwiVGlueU1DRTZcIlxuXHRcdFx0XHRzaG93R3JvdXBGb250U3R5bGU9e3RydWV9XG5cdFx0XHRcdHNob3dHcm91cFRleHRBbGlnbj17dHJ1ZX1cblx0XHRcdFx0c2hvd0dyb3VwU3RydWN0dXJlPXt0cnVlfVxuXHRcdFx0XHRzaG93R3JvdXBGb250PXtmYWxzZX1cblx0XHRcdFx0c2hvd0dyb3VwQ2xpcGJvYXJkPXt0cnVlfVxuXHRcdFx0XHRzaG93R3JvdXBJbnNlcnQ9e2ZhbHNlfVxuXHRcdFx0XHRzaG93R3JvdXBMaW5rPXtmYWxzZX1cblx0XHRcdFx0c2hvd0dyb3VwVW5kbz17ZmFsc2V9XG5cdFx0XHRcdHNhbml0aXplVmFsdWU9e3RydWV9XG5cdFx0XHRcdHdyYXBwaW5nPXt0cnVlfVxuXHRcdFx0XHR3aWR0aD17XCIxMDAlXCJ9XG5cdFx0XHRcdHJlcXVpcmVkPXt0aGlzLnJlcXVpcmVkfVxuXHRcdFx0XHR7Li4udGhpcy5nZXRQbHVnaW5zKCl9XG5cdFx0XHRcdGJ1dHRvbkdyb3Vwcz17dGhpcy5idXR0b25Hcm91cHMubGVuZ3RoID4gMCA/IFtdIDogdW5kZWZpbmVkfVxuXHRcdFx0Lz5cblx0XHQpIGFzIFJpY2hUZXh0RWRpdG9yO1xuXG5cdFx0dGhpcy5fZWRpdENvbnRlbnQuYXR0YWNoUmVhZHkodGhpcy5hZGRCdXR0b25Hcm91cHMsIHRoaXMpO1xuXHRcdC8vIEF0dGFjaCBhIHRpbWVyIHRvIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gZ3JvdXBzIGFyZSBhZGRlZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlYWR5XG5cdFx0Y2xlYXJUaW1lb3V0KHRoaXMuX2J1dHRvbkdyb3Vwc1RpbWVyKTtcblx0XHR0aGlzLl9idXR0b25Hcm91cHNUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5jcmVhdGVDb250ZW50RGVib3VuY2VkKCk7XG5cdFx0fSwgMjAwMCkgYXMgdW5rbm93biBhcyBudW1iZXI7XG5cdFx0cmV0dXJuIHRoaXMuX2VkaXRDb250ZW50O1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBCdXR0b25zIGdyb3VwcyBuZWVkIHRvIGJlIGFkZGVkIHdoZW4gdGhlIFJURSBpcyByZWFkeSwgb3RoZXJ3aXNlIHNvbWUgb2YgdGhlbSBhcmUgbm90IGF2YWlsYWJsZS5cblx0ICovXG5cdGFkZEJ1dHRvbkdyb3VwcygpOiB2b2lkIHtcblx0XHRjbGVhclRpbWVvdXQodGhpcy5fYnV0dG9uR3JvdXBzVGltZXIpO1xuXHRcdGNvbnN0IGxhdGVCdXR0b25Hcm91cHMgPSB0aGlzLmdldEJ1dHRvbkdyb3VwcygpLnJldmVyc2UoKTtcblx0XHQvLyBUaGV5IGFsc28gc29tZWhvdyBuZWVkIHRvIGJlIGFkZGVkIGluIHJldmVyc2UgYmVjYXVzZSB0aGV5IGFsc28gZ2V0IGFkZGVkIGluIHRoZSBmaXJzdCBwbGFjZSA6RFxuXHRcdGZvciAoY29uc3QgbGF0ZUJ1dHRvbkdyb3VwIG9mIGxhdGVCdXR0b25Hcm91cHMpIHtcblx0XHRcdHRoaXMuX2VkaXRDb250ZW50Py5hZGRCdXR0b25Hcm91cChsYXRlQnV0dG9uR3JvdXApO1xuXHRcdH1cblx0XHR0aGlzLl9lZGl0Q29udGVudD8uZGV0YWNoUmVhZHkodGhpcy5hZGRCdXR0b25Hcm91cHMsIHRoaXMpO1xuXHRcdHRoaXMuX2VkaXRDb250ZW50Py5yZW1vdmVTdHlsZUNsYXNzKFwic2FwVWlIaWRkZW5cIik7XG5cdH1cblxuXHQvKipcblx0ICogTWV0aG9kIHRoYXQgY2xlYW5zIHVwIHRoZSBwcmV2aW91cyByaWNoIHRleHQgZWRpdG9yIGluc3RhbmNlLlxuXHQgKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBSaWNoVGV4dEVkaXRvciBjb250cm9sIGRvZXMgbm90IGFsd2F5cyBkZXN0cm95IHRoZSBUaW55TUNFIGluc3RhbmNlLFxuXHQgKiB3aGljaCBjYW4gbGVhZCB0byBpc3N1ZXMgd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiBlZGl0IGFuZCBkaXNwbGF5IG1vZGVzLlxuXHQgKi9cblx0X2NsZWFudXBQcmV2aW91c1JURSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5fZWRpdENvbnRlbnQpIHtcblx0XHRcdC8vIEl0J3MgYmV0dGVyIHRvIGRlc3Ryb3kgdGhlIHJpY2ggdGV4dCBlZGl0b3IgYXMgaW4gc29tZSBjYXNlIHdpdGggc2xvdyBtYWNoaW5lIHN3aXRjaGluZyBiZXR3ZWVuIGVkaXQgYW5kIGRpc3BsYXkgbWF5IGJyZWFrIGl0XG5cdFx0XHR0aGlzLl9lZGl0Q29udGVudC5kZXN0cm95KCk7XG5cdFx0XHQvLyBEZXN0cm95IHRoZSBUaW55TUNFIGluc3RhbmNlIGFzIHdlbGxcblx0XHRcdC8vIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIFJpY2hUZXh0RWRpdG9yIGNvbnRyb2wgZG9lcyBub3QgYWx3YXlzIGRlc3Ryb3kgdGhlIFRpbnlNQ0UgaW5zdGFuY2Vcblx0XHR9XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHR3aW5kb3cudGlueW1jZT8uZ2V0KHRoaXMuY3JlYXRlSWQoXCJfcnRlXCIpICsgXCItdGV4dGFyZWFcIik/LmRlc3Ryb3koKTtcblx0fVxuXG5cdGdldERpc3BsYXlDb250ZW50KCk6IEZvcm1hdHRlZFRleHQge1xuXHRcdGlmICh0aGlzLl9kaXNwbGF5Q29udGVudCkge1xuXHRcdFx0dGhpcy5fZGlzcGxheUNvbnRlbnQuZGVzdHJveSgpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2NsZWFudXBQcmV2aW91c1JURSgpO1xuXG5cdFx0dGhpcy5fZGlzcGxheUNvbnRlbnQgPSAoPEZvcm1hdHRlZFRleHQgaHRtbFRleHQ9e3RoaXMudmFsdWV9IC8+KSBhcyBGb3JtYXR0ZWRUZXh0O1xuXHRcdHJldHVybiB0aGlzLl9kaXNwbGF5Q29udGVudDtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogUmljaFRleHRFZGl0b3IgfCBGb3JtYXR0ZWRUZXh0IHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5faXNJbkVkaXRNb2RlICYmICF0aGlzLnJlYWRPbmx5KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRFZGl0Q29udGVudCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXREaXNwbGF5Q29udGVudCgpO1xuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBWUE7RUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQU5BLElBUXFCQSxtQkFBbUIsSUFBQUMsSUFBQSxHQUR2Q0MsY0FBYyxDQUFDLDhCQUE4QixDQUFDLEVBQUFDLEtBQUEsR0FLN0NDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsUUFBUTtJQUFFQyxRQUFRLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU81Q0gsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxLQUFLO0lBQUVHLGFBQWEsRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBUTlDTCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFLLEtBQUEsR0FPN0JDLFdBQVcsQ0FBQztJQUFFTixJQUFJLEVBQUUsMENBQTBDO0lBQUVPLFFBQVEsRUFBRSxJQUFJO0lBQUVDLFlBQVksRUFBRUM7RUFBWSxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU81R0osV0FBVyxDQUFDO0lBQUVOLElBQUksRUFBRSxxQ0FBcUM7SUFBRU8sUUFBUSxFQUFFLElBQUk7SUFBRUMsWUFBWSxFQUFFRztFQUFpQixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQVE1R2IsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxFQUFBYSxLQUFBLEdBTzdCZCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRWMsUUFBUSxFQUFFO0VBQU0sQ0FBQyxDQUFDLEVBQUFD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
302
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSaWNoVGV4dEVkaXRvckJsb2NrIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJyZXF1aXJlZCIsIl9kZWMzIiwiaXNCaW5kaW5nSW5mbyIsIl9kZWM0IiwiX2RlYzUiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiZGVmYXVsdENsYXNzIiwiQnV0dG9uR3JvdXAiLCJfZGVjNiIsIlBsdWdpbkRlZmluaXRpb24iLCJfZGVjNyIsIl9kZWM4IiwiYmluZGFibGUiLCJfZGVjOSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9jayIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJfdGhpcyIsIl9pc0luRWRpdE1vZGUiLCJjb21waWxlRXhwcmVzc2lvbiIsIlVJIiwiSXNFZGl0YWJsZSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiZ2V0UGx1Z2lucyIsInBsdWdpbnNBcnJheSIsImV4Y2x1ZGVEZWZhdWx0UGx1Z2lucyIsIm1hcCIsIm5hbWUiLCJwbHVnaW5zIiwibGVuZ3RoIiwicGx1Z2luIiwicHVzaCIsImdldEJ1dHRvbkdyb3VwcyIsImJ1dHRvbkdyb3VwcyIsImJ1dHRvbkdyb3VwIiwidmlzaWJsZSIsInRvU3RyaW5nIiwicHJpb3JpdHkiLCJyb3ciLCJjdXN0b21Ub29sYmFyUHJpb3JpdHkiLCJidXR0b25zIiwic3BsaXQiLCJnZXRFZGl0Q29udGVudCIsIl9jbGVhbnVwUHJldmlvdXNSVEUiLCJfZWRpdENvbnRlbnQiLCJfanN4IiwiUmljaFRleHRFZGl0b3IiLCJjbGFzcyIsImlkIiwiY3JlYXRlSWQiLCJ2YWx1ZSIsImN1c3RvbVRvb2xiYXIiLCJlZGl0YWJsZSIsInNob3dHcm91cEZvbnRTdHlsZSIsInNob3dHcm91cFRleHRBbGlnbiIsInNob3dHcm91cFN0cnVjdHVyZSIsInNob3dHcm91cEZvbnQiLCJzaG93R3JvdXBDbGlwYm9hcmQiLCJzaG93R3JvdXBJbnNlcnQiLCJzaG93R3JvdXBMaW5rIiwic2hvd0dyb3VwVW5kbyIsInNhbml0aXplVmFsdWUiLCJ3cmFwcGluZyIsIndpZHRoIiwidW5kZWZpbmVkIiwiYXR0YWNoUmVhZHkiLCJhZGRCdXR0b25Hcm91cHMiLCJjbGVhclRpbWVvdXQiLCJfYnV0dG9uR3JvdXBzVGltZXIiLCJzZXRUaW1lb3V0IiwiY3JlYXRlQ29udGVudERlYm91bmNlZCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiX293bmVyQ29tcG9uZW50IiwiX2NvbnRlbnRUaW1lciIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiZXhpdCIsIl9kaXNwbGF5Q29udGVudCIsImRlc3Ryb3kiLCJzZXRfaXNJbkVkaXRNb2RlIiwiaW5FZGl0TW9kZSIsInNldFByb3BlcnR5Iiwic2V0UmVhZE9ubHkiLCJyZWFkT25seSIsImxhdGVCdXR0b25Hcm91cHMiLCJyZXZlcnNlIiwibGF0ZUJ1dHRvbkdyb3VwIiwiYWRkQnV0dG9uR3JvdXAiLCJkZXRhY2hSZWFkeSIsInJlbW92ZVN0eWxlQ2xhc3MiLCJ3aW5kb3ciLCJ0aW55bWNlIiwiZ2V0IiwiZ2V0RGlzcGxheUNvbnRlbnQiLCJGb3JtYXR0ZWRUZXh0IiwiaHRtbFRleHQiLCJCdWlsZGluZ0Jsb2NrIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSaWNoVGV4dEVkaXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCB7IFVJIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IEJ1dHRvbkdyb3VwIGZyb20gXCJzYXAvZmUvbWFjcm9zL3JpY2h0ZXh0ZWRpdG9yL0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgUGx1Z2luRGVmaW5pdGlvbiBmcm9tIFwic2FwL2ZlL21hY3Jvcy9yaWNodGV4dGVkaXRvci9QbHVnaW5cIjtcbmltcG9ydCBGb3JtYXR0ZWRUZXh0IGZyb20gXCJzYXAvbS9Gb3JtYXR0ZWRUZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5QmluZGluZ0luZm8gfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgUmljaFRleHRFZGl0b3IgZnJvbSBcInNhcC91aS9yaWNodGV4dGVkaXRvci9SaWNoVGV4dEVkaXRvclwiO1xuXG50eXBlIFBsdWdpbkRlZmluaXRpb25EYXRhID0ge1xuXHRuYW1lOiBzdHJpbmc7XG59O1xudHlwZSBCdXR0b25Hcm91cERhdGEgPSB7XG5cdG5hbWU6IHN0cmluZztcblx0dmlzaWJsZTogYm9vbGVhbjtcblx0cHJpb3JpdHk/OiBudW1iZXI7XG5cdHJvdz86IG51bWJlcjtcblx0Y3VzdG9tVG9vbGJhclByaW9yaXR5PzogbnVtYmVyO1xuXHRidXR0b25zOiBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgdGhhdCBleHBvc2VzIHRoZSBSaWNoVGV4dEVkaXRvciBVSTUgY29udHJvbC5cbiAqXG4gKiBJdCdzIHVzZWQgdG8gZW50ZXIgZm9ybWF0dGVkIHRleHQsIGFuZCB1c2VzIHRoZSB0aGlyZC1wYXJ0eSBjb21wb25lbnQgY2FsbGVkIFRpbnlNQ0UuXG4gKiBAcHVibGljXG4gKiBAc2luY2UgMS4xMTcuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLlJpY2hUZXh0RWRpdG9yXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSaWNoVGV4dEVkaXRvckJsb2NrIGV4dGVuZHMgQnVpbGRpbmdCbG9jazxDb250cm9sPiB7XG5cdC8qKlxuXHQgKiBJRCBvZiB0aGUgZWRpdG9yXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRpZCE6IHN0cmluZztcblxuXHQvKipcblx0ICogVGhlIHZhbHVlIGNvbnRhaW5lZCBpbiB0aGUgZWRpdG9yLiBZb3UgY2FuIHVzZSB0aGlzIGF0dHJpYnV0ZSB0byBzZXQgYSBkZWZhdWx0IHZhbHVlLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBpc0JpbmRpbmdJbmZvOiB0cnVlIH0pXG5cdHZhbHVlPzogUHJvcGVydHlCaW5kaW5nSW5mbztcblxuXHQvKipcblx0ICogVXNlIHRoZSByZWFkT25seSBhdHRyaWJ1dGUgdG8gb3ZlcnJpZGUgdGhlIGVkaXQgZmxvdyBvZiB0aGUgcGFnZS5cblx0ICogQnkgc2V0dGluZyAncmVhZE9ubHknIHRvIHRydWUsIGEgRm9ybWF0dGVkVGV4dCB3aWxsIGJlIGRpc3BsYXllZCBpbnN0ZWFkIG9mIHRoZSBlZGl0b3IuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHJlYWRPbmx5OiBQcm9wZXJ0eUJpbmRpbmdJbmZvID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFdpdGggdGhlICdidXR0b25Hcm91cHMnIGF0dHJpYnV0ZSB5b3UgY2FuIGN1c3RvbWl6ZSB0aGUgYnV0dG9ucyB0aGF0IGFyZSBkaXNwbGF5ZWQgb24gdGhlIHRvb2xiYXIgb2YgdGhlIGVkaXRvci5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAuZmUubWFjcm9zLnJpY2h0ZXh0ZWRpdG9yLkJ1dHRvbkdyb3VwXCIsIG11bHRpcGxlOiB0cnVlLCBkZWZhdWx0Q2xhc3M6IEJ1dHRvbkdyb3VwIH0pXG5cdGJ1dHRvbkdyb3VwczogQnV0dG9uR3JvdXBbXSA9IFtdO1xuXG5cdC8qKlxuXHQgKiBXaXRoIHRoZSAncGx1Z2lucycgYXR0cmlidXRlIHlvdSBjYW4gY3VzdG9taXplIHRoZSBwbHVnaW5zIHRoYXQgd2lsbCBiZSBsb2FkZWQgYnkgdGhlIGVkaXRvci5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAuZmUubWFjcm9zLnJpY2h0ZXh0ZWRpdG9yLlBsdWdpblwiLCBtdWx0aXBsZTogdHJ1ZSwgZGVmYXVsdENsYXNzOiBQbHVnaW5EZWZpbml0aW9uIH0pXG5cdHBsdWdpbnM/OiBQbHVnaW5EZWZpbml0aW9uW107XG5cblx0LyoqXG5cdCAqIFdpdGggdGhlICdleGNsdWRlRGVmYXVsdFBsdWdpbnMnIHlvdSBjYW4gYXNrIHRvIHJlbW92ZSB0aGUgcGx1Z2lucyB0aGF0IHdpbGwgYmUgYWRkZWQgYnkgZGVmYXVsdFxuXHQgKiBUaGUgZGVmYXVsdCBwbHVnaW5zIGFyZSBcImVtb3RpY29uc1wiIFwiZGlyZWN0aW9uYWxpdHlcIiBcImltYWdlXCIgXCJ0YWJsZVwiIFwibGlua1wiIFwicG93ZXJwYXN0ZVwiLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRleGNsdWRlRGVmYXVsdFBsdWdpbnMgPSBmYWxzZTtcblxuXHQvKipcblx0ICogVXNlIHRoZSAncmVxdWlyZWQnIGF0dHJpYnV0ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZWRpdG9yIGlzIGZpbGxlZCB3aXRoIHNvbWUgdGV4dC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJhbnlcIiwgYmluZGFibGU6IGZhbHNlIH0pXG5cdHJlcXVpcmVkOiBQcm9wZXJ0eUJpbmRpbmdJbmZvID0gZmFsc2U7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0X2lzSW5FZGl0TW9kZTogUHJvcGVydHlCaW5kaW5nSW5mbyA9IGZhbHNlO1xuXG5cdHByaXZhdGUgX2Rpc3BsYXlDb250ZW50PzogRm9ybWF0dGVkVGV4dDtcblxuXHRwcml2YXRlIF9lZGl0Q29udGVudD86IFJpY2hUZXh0RWRpdG9yO1xuXG5cdHByaXZhdGUgX2NvbnRlbnRUaW1lcj86IG51bWJlcjtcblxuXHQvKipcblx0ICogVGltZXIgdG8gZW5zdXJlIHRoYXQgaWYgdGhlIGJ1dHRvbiBncm91cHMgYXJlIG5vdCBhZGRlZCB3ZSByZXN0YXJ0IHRoZSBwcm9jZXNzLlxuXHQgKi9cblx0cHJpdmF0ZSBfYnV0dG9uR3JvdXBzVGltZXI/OiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxSaWNoVGV4dEVkaXRvckJsb2NrPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHByb3BlcnRpZXMuX2lzSW5FZGl0TW9kZSA9IGNvbXBpbGVFeHByZXNzaW9uKFVJLklzRWRpdGFibGUpO1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cdH1cblxuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKF9vd25lckNvbXBvbmVudDogVGVtcGxhdGVDb21wb25lbnQpOiB2b2lkIHtcblx0XHRzdXBlci5vbk1ldGFkYXRhQXZhaWxhYmxlKF9vd25lckNvbXBvbmVudCk7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50RGVib3VuY2VkKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLl9jb250ZW50VGltZXIpIHtcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLl9jb250ZW50VGltZXIpO1xuXHRcdH1cblx0XHR0aGlzLl9jb250ZW50VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdH0sIDIwMCkgYXMgdW5rbm93biBhcyBudW1iZXI7XG5cdH1cblxuXHRleGl0KCk6IHZvaWQge1xuXHRcdHRoaXMuX2Rpc3BsYXlDb250ZW50Py5kZXN0cm95KCk7XG5cdFx0dGhpcy5fZWRpdENvbnRlbnQ/LmRlc3Ryb3koKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNZXRob2QgdGhhdCByZXR1cm5zIHRoZSBidXR0b24gY3VzdG9taXphdGlvbnMgZm9yIHRoZSBlZGl0b3IgdG9vbGJhci5cblx0ICogQmVjYXVzZSBhbGwgdmFsdWVzIGNvbWUgYXMgc3RyaW5ncyBmcm9tIFhNTCwgc29tZSBwYXJzaW5nIG5lZWRzIHRvIGJlIGRvbmUgdG8gZ2V0IGF0dHJpYnV0ZXMgd2l0aCB0aGUgY29ycmVjdCB0eXBlLlxuXHQgKiBAcmV0dXJucyBUaGUgYnV0dG9uIGdyb3Vwcy5cblx0ICovXG5cdGdldFBsdWdpbnMgPSAoKTogeyBwbHVnaW5zPzogUGx1Z2luRGVmaW5pdGlvbkRhdGFbXSB9ID0+IHtcblx0XHRsZXQgcGx1Z2luc0FycmF5OiBQbHVnaW5EZWZpbml0aW9uRGF0YVtdIHwgdW5kZWZpbmVkO1xuXHRcdGlmICh0aGlzLmV4Y2x1ZGVEZWZhdWx0UGx1Z2lucykge1xuXHRcdFx0cGx1Z2luc0FycmF5ID0gW107XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBsdWdpbnNBcnJheSA9IFtcImVtb3RpY29uc1wiLCBcImRpcmVjdGlvbmFsaXR5XCIsIFwiaW1hZ2VcIiwgXCJ0YWJsZVwiLCBcImxpbmtcIiwgXCJwb3dlcnBhc3RlXCJdLm1hcCgobmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdHJldHVybiB7IG5hbWU6IG5hbWUgfTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRpZiAodGhpcy5wbHVnaW5zPy5sZW5ndGgpIHtcblx0XHRcdGZvciAoY29uc3QgcGx1Z2luIG9mIHRoaXMucGx1Z2lucykge1xuXHRcdFx0XHRwbHVnaW5zQXJyYXkucHVzaChwbHVnaW4pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4geyBwbHVnaW5zOiBwbHVnaW5zQXJyYXkgfTtcblx0fTtcblxuXHQvKipcblx0ICogTWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgYnV0dG9uIGN1c3RvbWl6YXRpb25zIGZvciB0aGUgZWRpdG9yIHRvb2xiYXIuXG5cdCAqIEJlY2F1c2UgYWxsIHZhbHVlcyBhcmUgcmV0dXJuZWQgYXMgc3RyaW5ncyBmcm9tIFhNTCwgcGFyc2luZyBpcyBuZWVkZWQgdG8gcmV0dXJuIGF0dHJpYnV0ZXMgd2l0aCB0aGUgY29ycmVjdCB0eXBlLlxuXHQgKiBAcmV0dXJucyBUaGUgYnV0dG9uIGdyb3Vwcy5cblx0ICovXG5cdGdldEJ1dHRvbkdyb3VwcyA9ICgpOiBCdXR0b25Hcm91cERhdGFbXSA9PiB7XG5cdFx0aWYgKHRoaXMuYnV0dG9uR3JvdXBzICYmIHRoaXMuYnV0dG9uR3JvdXBzLmxlbmd0aCA+IDApIHtcblx0XHRcdHJldHVybiB0aGlzLmJ1dHRvbkdyb3Vwcy5tYXAoKGJ1dHRvbkdyb3VwOiBCdXR0b25Hcm91cCkgPT4gKHtcblx0XHRcdFx0bmFtZTogYnV0dG9uR3JvdXAubmFtZSA/PyBcIlwiLFxuXHRcdFx0XHR2aXNpYmxlOiBidXR0b25Hcm91cC52aXNpYmxlPy50b1N0cmluZygpID09PSBcInRydWVcIixcblx0XHRcdFx0cHJpb3JpdHk6IGJ1dHRvbkdyb3VwLnByaW9yaXR5LFxuXHRcdFx0XHRyb3c6IGJ1dHRvbkdyb3VwLnJvdyxcblx0XHRcdFx0Y3VzdG9tVG9vbGJhclByaW9yaXR5OiBidXR0b25Hcm91cC5jdXN0b21Ub29sYmFyUHJpb3JpdHksXG5cdFx0XHRcdGJ1dHRvbnM6IGJ1dHRvbkdyb3VwLmJ1dHRvbnM/LnNwbGl0KFwiLFwiKSB8fCBbXVxuXHRcdFx0fSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gW107XG5cdH07XG5cblx0c2V0X2lzSW5FZGl0TW9kZShpbkVkaXRNb2RlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0c3VwZXIuc2V0UHJvcGVydHkoXCJfaXNJbkVkaXRNb2RlXCIsIGluRWRpdE1vZGUpO1xuXHRcdHRoaXMuY3JlYXRlQ29udGVudERlYm91bmNlZCgpO1xuXHR9XG5cblx0c2V0UmVhZE9ubHkocmVhZE9ubHk6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRzdXBlci5zZXRQcm9wZXJ0eShcInJlYWRPbmx5XCIsIHJlYWRPbmx5KTtcblx0XHR0aGlzLmNyZWF0ZUNvbnRlbnREZWJvdW5jZWQoKTtcblx0fVxuXG5cdGdldEVkaXRDb250ZW50ID0gKCk6IFJpY2hUZXh0RWRpdG9yID0+IHtcblx0XHR0aGlzLl9jbGVhbnVwUHJldmlvdXNSVEUoKTtcblxuXHRcdHRoaXMuX2VkaXRDb250ZW50ID0gKFxuXHRcdFx0PFJpY2hUZXh0RWRpdG9yXG5cdFx0XHRcdGNsYXNzPXtcInNhcFVpSGlkZGVuXCJ9XG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiX3J0ZVwiKX1cblx0XHRcdFx0dmFsdWU9e3RoaXMudmFsdWV9XG5cdFx0XHRcdHZpc2libGU9e3RydWV9XG5cdFx0XHRcdGN1c3RvbVRvb2xiYXI9e3RydWV9XG5cdFx0XHRcdGVkaXRhYmxlPXt0cnVlfVxuXHRcdFx0XHRzaG93R3JvdXBGb250U3R5bGU9e3RydWV9XG5cdFx0XHRcdHNob3dHcm91cFRleHRBbGlnbj17dHJ1ZX1cblx0XHRcdFx0c2hvd0dyb3VwU3RydWN0dXJlPXt0cnVlfVxuXHRcdFx0XHRzaG93R3JvdXBGb250PXtmYWxzZX1cblx0XHRcdFx0c2hvd0dyb3VwQ2xpcGJvYXJkPXt0cnVlfVxuXHRcdFx0XHRzaG93R3JvdXBJbnNlcnQ9e2ZhbHNlfVxuXHRcdFx0XHRzaG93R3JvdXBMaW5rPXtmYWxzZX1cblx0XHRcdFx0c2hvd0dyb3VwVW5kbz17ZmFsc2V9XG5cdFx0XHRcdHNhbml0aXplVmFsdWU9e3RydWV9XG5cdFx0XHRcdHdyYXBwaW5nPXt0cnVlfVxuXHRcdFx0XHR3aWR0aD17XCIxMDAlXCJ9XG5cdFx0XHRcdHJlcXVpcmVkPXt0aGlzLnJlcXVpcmVkfVxuXHRcdFx0XHR7Li4udGhpcy5nZXRQbHVnaW5zKCl9XG5cdFx0XHRcdGJ1dHRvbkdyb3Vwcz17dGhpcy5idXR0b25Hcm91cHMubGVuZ3RoID4gMCA/IFtdIDogdW5kZWZpbmVkfVxuXHRcdFx0Lz5cblx0XHQpIGFzIFJpY2hUZXh0RWRpdG9yO1xuXG5cdFx0dGhpcy5fZWRpdENvbnRlbnQuYXR0YWNoUmVhZHkodGhpcy5hZGRCdXR0b25Hcm91cHMsIHRoaXMpO1xuXHRcdC8vIEF0dGFjaCBhIHRpbWVyIHRvIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gZ3JvdXBzIGFyZSBhZGRlZCBhZnRlciB0aGUgZWRpdG9yIGlzIHJlYWR5XG5cdFx0Y2xlYXJUaW1lb3V0KHRoaXMuX2J1dHRvbkdyb3Vwc1RpbWVyKTtcblx0XHR0aGlzLl9idXR0b25Hcm91cHNUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5jcmVhdGVDb250ZW50RGVib3VuY2VkKCk7XG5cdFx0fSwgMjAwMCkgYXMgdW5rbm93biBhcyBudW1iZXI7XG5cdFx0cmV0dXJuIHRoaXMuX2VkaXRDb250ZW50O1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBCdXR0b25zIGdyb3VwcyBuZWVkIHRvIGJlIGFkZGVkIHdoZW4gdGhlIFJURSBpcyByZWFkeSwgb3RoZXJ3aXNlIHNvbWUgb2YgdGhlbSBhcmUgbm90IGF2YWlsYWJsZS5cblx0ICovXG5cdGFkZEJ1dHRvbkdyb3VwcygpOiB2b2lkIHtcblx0XHRjbGVhclRpbWVvdXQodGhpcy5fYnV0dG9uR3JvdXBzVGltZXIpO1xuXHRcdGNvbnN0IGxhdGVCdXR0b25Hcm91cHMgPSB0aGlzLmdldEJ1dHRvbkdyb3VwcygpLnJldmVyc2UoKTtcblx0XHQvLyBUaGV5IGFsc28gc29tZWhvdyBuZWVkIHRvIGJlIGFkZGVkIGluIHJldmVyc2UgYmVjYXVzZSB0aGV5IGFsc28gZ2V0IGFkZGVkIGluIHRoZSBmaXJzdCBwbGFjZSA6RFxuXHRcdGZvciAoY29uc3QgbGF0ZUJ1dHRvbkdyb3VwIG9mIGxhdGVCdXR0b25Hcm91cHMpIHtcblx0XHRcdHRoaXMuX2VkaXRDb250ZW50Py5hZGRCdXR0b25Hcm91cChsYXRlQnV0dG9uR3JvdXApO1xuXHRcdH1cblx0XHR0aGlzLl9lZGl0Q29udGVudD8uZGV0YWNoUmVhZHkodGhpcy5hZGRCdXR0b25Hcm91cHMsIHRoaXMpO1xuXHRcdHRoaXMuX2VkaXRDb250ZW50Py5yZW1vdmVTdHlsZUNsYXNzKFwic2FwVWlIaWRkZW5cIik7XG5cdH1cblxuXHQvKipcblx0ICogTWV0aG9kIHRoYXQgY2xlYW5zIHVwIHRoZSBwcmV2aW91cyByaWNoIHRleHQgZWRpdG9yIGluc3RhbmNlLlxuXHQgKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBSaWNoVGV4dEVkaXRvciBjb250cm9sIGRvZXMgbm90IGFsd2F5cyBkZXN0cm95IHRoZSBUaW55TUNFIGluc3RhbmNlLFxuXHQgKiB3aGljaCBjYW4gbGVhZCB0byBpc3N1ZXMgd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiBlZGl0IGFuZCBkaXNwbGF5IG1vZGVzLlxuXHQgKi9cblx0X2NsZWFudXBQcmV2aW91c1JURSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5fZWRpdENvbnRlbnQpIHtcblx0XHRcdC8vIEl0J3MgYmV0dGVyIHRvIGRlc3Ryb3kgdGhlIHJpY2ggdGV4dCBlZGl0b3IgYXMgaW4gc29tZSBjYXNlIHdpdGggc2xvdyBtYWNoaW5lIHN3aXRjaGluZyBiZXR3ZWVuIGVkaXQgYW5kIGRpc3BsYXkgbWF5IGJyZWFrIGl0XG5cdFx0XHR0aGlzLl9lZGl0Q29udGVudC5kZXN0cm95KCk7XG5cdFx0XHQvLyBEZXN0cm95IHRoZSBUaW55TUNFIGluc3RhbmNlIGFzIHdlbGxcblx0XHRcdC8vIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIFJpY2hUZXh0RWRpdG9yIGNvbnRyb2wgZG9lcyBub3QgYWx3YXlzIGRlc3Ryb3kgdGhlIFRpbnlNQ0UgaW5zdGFuY2Vcblx0XHR9XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHR3aW5kb3cudGlueW1jZT8uZ2V0KHRoaXMuY3JlYXRlSWQoXCJfcnRlXCIpICsgXCItdGV4dGFyZWFcIik/LmRlc3Ryb3koKTtcblx0fVxuXG5cdGdldERpc3BsYXlDb250ZW50KCk6IEZvcm1hdHRlZFRleHQge1xuXHRcdGlmICh0aGlzLl9kaXNwbGF5Q29udGVudCkge1xuXHRcdFx0dGhpcy5fZGlzcGxheUNvbnRlbnQuZGVzdHJveSgpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2NsZWFudXBQcmV2aW91c1JURSgpO1xuXG5cdFx0dGhpcy5fZGlzcGxheUNvbnRlbnQgPSAoPEZvcm1hdHRlZFRleHQgaHRtbFRleHQ9e3RoaXMudmFsdWV9IC8+KSBhcyBGb3JtYXR0ZWRUZXh0O1xuXHRcdHJldHVybiB0aGlzLl9kaXNwbGF5Q29udGVudDtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogUmljaFRleHRFZGl0b3IgfCBGb3JtYXR0ZWRUZXh0IHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5faXNJbkVkaXRNb2RlICYmICF0aGlzLnJlYWRPbmx5KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRFZGl0Q29udGVudCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXREaXNwbGF5Q29udGVudCgpO1xuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBWUE7RUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQU5BLElBUXFCQSxtQkFBbUIsSUFBQUMsSUFBQSxHQUR2Q0MsY0FBYyxDQUFDLDhCQUE4QixDQUFDLEVBQUFDLEtBQUEsR0FLN0NDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsUUFBUTtJQUFFQyxRQUFRLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU81Q0gsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxLQUFLO0lBQUVHLGFBQWEsRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBUTlDTCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFLLEtBQUEsR0FPN0JDLFdBQVcsQ0FBQztJQUFFTixJQUFJLEVBQUUsMENBQTBDO0lBQUVPLFFBQVEsRUFBRSxJQUFJO0lBQUVDLFlBQVksRUFBRUM7RUFBWSxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU81R0osV0FBVyxDQUFDO0lBQUVOLElBQUksRUFBRSxxQ0FBcUM7SUFBRU8sUUFBUSxFQUFFLElBQUk7SUFBRUMsWUFBWSxFQUFFRztFQUFpQixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQVE1R2IsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxFQUFBYSxLQUFBLEdBTzdCZCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRWMsUUFBUSxFQUFFO0VBQU0sQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHMUNoQixRQUFRLENBQUM7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
@@ -145,14 +145,14 @@ export default class RichTextEditorBlock extends BuildingBlock<Control> {
145
145
 
146
146
  /**
147
147
  * Method that returns the button customizations for the editor toolbar.
148
- * Because all values come as strings from XML, some parsing needs to be done to get attributes with the correct type.
148
+ * Because all values are returned as strings from XML, parsing is needed to return attributes with the correct type.
149
149
  * @returns The button groups.
150
150
  */
151
151
  getButtonGroups = (): ButtonGroupData[] => {
152
152
  if (this.buttonGroups && this.buttonGroups.length > 0) {
153
153
  return this.buttonGroups.map((buttonGroup: ButtonGroup) => ({
154
154
  name: buttonGroup.name ?? "",
155
- visible: buttonGroup.visible === "true",
155
+ visible: buttonGroup.visible?.toString() === "true",
156
156
  priority: buttonGroup.priority,
157
157
  row: buttonGroup.row,
158
158
  customToolbarPriority: buttonGroup.customToolbarPriority,
@@ -183,7 +183,6 @@ export default class RichTextEditorBlock extends BuildingBlock<Control> {
183
183
  visible={true}
184
184
  customToolbar={true}
185
185
  editable={true}
186
- editorType="TinyMCE6"
187
186
  showGroupFontStyle={true}
188
187
  showGroupTextAlign={true}
189
188
  showGroupStructure={true}