@sapui5/sap.fe.macros 1.139.0 → 1.141.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 (254) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/Chart.js +53 -2
  4. package/src/sap/fe/macros/Chart.tsx +55 -0
  5. package/src/sap/fe/macros/CollaborativeDraftHandler.js +230 -0
  6. package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +218 -0
  7. package/src/sap/fe/macros/CommonHelper.js +59 -15
  8. package/src/sap/fe/macros/CommonHelper.ts +65 -14
  9. package/src/sap/fe/macros/ConditionalSwitch.js +174 -0
  10. package/src/sap/fe/macros/ConditionalSwitch.tsx +141 -0
  11. package/src/sap/fe/macros/ConditionalSwitchProperty.js +78 -0
  12. package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +62 -0
  13. package/src/sap/fe/macros/Field.js +78 -64
  14. package/src/sap/fe/macros/Field.ts +97 -68
  15. package/src/sap/fe/macros/FooterContent.js +5 -2
  16. package/src/sap/fe/macros/FooterContent.tsx +4 -1
  17. package/src/sap/fe/macros/MacroAPI.js +9 -4
  18. package/src/sap/fe/macros/MacroAPI.ts +9 -4
  19. package/src/sap/fe/macros/MessageButton.js +1 -2
  20. package/src/sap/fe/macros/MessageButton.tsx +0 -1
  21. package/src/sap/fe/macros/MultiValueField.js +10 -7
  22. package/src/sap/fe/macros/MultiValueField.tsx +7 -3
  23. package/src/sap/fe/macros/Page.js +5 -7
  24. package/src/sap/fe/macros/Page.tsx +4 -6
  25. package/src/sap/fe/macros/Paginator.js +9 -4
  26. package/src/sap/fe/macros/Paginator.tsx +12 -3
  27. package/src/sap/fe/macros/RichTextEditor.js +3 -2
  28. package/src/sap/fe/macros/RichTextEditor.tsx +2 -1
  29. package/src/sap/fe/macros/Share.js +14 -2
  30. package/src/sap/fe/macros/Share.tsx +13 -0
  31. package/src/sap/fe/macros/Status.js +251 -0
  32. package/src/sap/fe/macros/Status.tsx +212 -0
  33. package/src/sap/fe/macros/ValueHelp.js +4 -28
  34. package/src/sap/fe/macros/ValueHelp.tsx +2 -42
  35. package/src/sap/fe/macros/ai/EasyFillDialog.js +11 -17
  36. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +11 -16
  37. package/src/sap/fe/macros/ai/EasyFilterBar.js +246 -97
  38. package/src/sap/fe/macros/ai/EasyFilterBar.tsx +302 -106
  39. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +76 -33
  40. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +89 -40
  41. package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
  42. package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
  43. package/src/sap/fe/macros/chart/Chart.js +2 -2
  44. package/src/sap/fe/macros/chart/Chart.tsx +1 -1
  45. package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
  46. package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
  47. package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
  48. package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
  49. package/src/sap/fe/macros/chart/MdcChartTemplate.js +5 -5
  50. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +5 -5
  51. package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.js +9 -2
  52. package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.tsx +8 -0
  53. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +5 -1
  54. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +4 -0
  55. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +4 -2
  56. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +3 -1
  57. package/src/sap/fe/macros/controls/FilterBar.js +14 -5
  58. package/src/sap/fe/macros/controls/FilterBar.ts +3 -0
  59. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
  60. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
  61. package/src/sap/fe/macros/controls/RadioButtons.js +61 -38
  62. package/src/sap/fe/macros/controls/RadioButtons.tsx +39 -18
  63. package/src/sap/fe/macros/controls/Section.js +4 -3
  64. package/src/sap/fe/macros/controls/Section.ts +3 -2
  65. package/src/sap/fe/macros/controls/section/SubSection.js +63 -8
  66. package/src/sap/fe/macros/controls/section/SubSection.ts +67 -1
  67. package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
  68. package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
  69. package/src/sap/fe/macros/designtime/Designtime.helper.js +28 -1
  70. package/src/sap/fe/macros/designtime/Designtime.helper.ts +27 -0
  71. package/src/sap/fe/macros/field/Field.js +2 -2
  72. package/src/sap/fe/macros/field/Field.tsx +1 -1
  73. package/src/sap/fe/macros/field/FieldBaseDelegate.js +13 -7
  74. package/src/sap/fe/macros/field/FieldBaseDelegate.ts +12 -8
  75. package/src/sap/fe/macros/field/FieldFormatOptions.js +25 -2
  76. package/src/sap/fe/macros/field/FieldFormatOptions.ts +13 -0
  77. package/src/sap/fe/macros/field/FieldHelper.js +2 -2
  78. package/src/sap/fe/macros/field/FieldHelper.ts +1 -4
  79. package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
  80. package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
  81. package/src/sap/fe/macros/field/FieldTemplating.js +3 -3
  82. package/src/sap/fe/macros/field/FieldTemplating.ts +4 -2
  83. package/src/sap/fe/macros/filter/FilterUtils.js +233 -5
  84. package/src/sap/fe/macros/filter/FilterUtils.ts +291 -7
  85. package/src/sap/fe/macros/filterBar/FilterBar.block.js +5 -3
  86. package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +4 -2
  87. package/src/sap/fe/macros/filterBar/FilterBar.js +2 -2
  88. package/src/sap/fe/macros/filterBar/FilterBar.tsx +1 -1
  89. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +63 -27
  90. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +49 -3
  91. package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +5 -3
  92. package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
  93. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +7 -2
  94. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +6 -1
  95. package/src/sap/fe/macros/form/Form.block.js +7 -8
  96. package/src/sap/fe/macros/form/Form.block.ts +4 -6
  97. package/src/sap/fe/macros/form/Form.js +1 -4
  98. package/src/sap/fe/macros/form/Form.tsx +0 -3
  99. package/src/sap/fe/macros/form/FormContainer.block.js +555 -5
  100. package/src/sap/fe/macros/form/FormContainer.block.ts +665 -7
  101. package/src/sap/fe/macros/form/FormContainer.fragment.xml +1 -0
  102. package/src/sap/fe/macros/form/FormDelegate.js +24 -8
  103. package/src/sap/fe/macros/form/FormDelegate.ts +29 -7
  104. package/src/sap/fe/macros/form/FormHelper.js +1 -2
  105. package/src/sap/fe/macros/form/FormHelper.ts +0 -1
  106. package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
  107. package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
  108. package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
  109. package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
  110. package/src/sap/fe/macros/internal/DataPoint.js +3 -2
  111. package/src/sap/fe/macros/internal/DataPoint.tsx +10 -1
  112. package/src/sap/fe/macros/internal/FilterField.block.js +19 -5
  113. package/src/sap/fe/macros/internal/FilterField.block.ts +16 -4
  114. package/src/sap/fe/macros/internal/field/DisplayStyle.js +9 -3
  115. package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +10 -2
  116. package/src/sap/fe/macros/internal/field/EditStyle.js +21 -4
  117. package/src/sap/fe/macros/internal/field/EditStyle.tsx +18 -4
  118. package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +3 -2
  119. package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +5 -1
  120. package/src/sap/fe/macros/internal/filterField/FilterFieldTemplate.fragment.xml +1 -0
  121. package/src/sap/fe/macros/internal/helpers/ActionHelper.js +36 -5
  122. package/src/sap/fe/macros/internal/helpers/ActionHelper.ts +34 -4
  123. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
  124. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
  125. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
  126. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
  127. package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -1
  128. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +10 -3
  129. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +13 -2
  130. package/src/sap/fe/macros/library.js +1 -1
  131. package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.js +2 -1
  132. package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.ts +1 -0
  133. package/src/sap/fe/macros/messagebundle.properties +24 -4
  134. package/src/sap/fe/macros/messagebundle_ar.properties +8 -2
  135. package/src/sap/fe/macros/messagebundle_bg.properties +8 -2
  136. package/src/sap/fe/macros/messagebundle_ca.properties +11 -5
  137. package/src/sap/fe/macros/messagebundle_cnr.properties +8 -2
  138. package/src/sap/fe/macros/messagebundle_cs.properties +7 -1
  139. package/src/sap/fe/macros/messagebundle_cy.properties +9 -3
  140. package/src/sap/fe/macros/messagebundle_da.properties +8 -2
  141. package/src/sap/fe/macros/messagebundle_de.properties +13 -7
  142. package/src/sap/fe/macros/messagebundle_el.properties +7 -1
  143. package/src/sap/fe/macros/messagebundle_en.properties +11 -5
  144. package/src/sap/fe/macros/messagebundle_en_GB.properties +9 -3
  145. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +11 -5
  146. package/src/sap/fe/macros/messagebundle_es.properties +10 -4
  147. package/src/sap/fe/macros/messagebundle_es_MX.properties +11 -5
  148. package/src/sap/fe/macros/messagebundle_et.properties +9 -3
  149. package/src/sap/fe/macros/messagebundle_fi.properties +7 -1
  150. package/src/sap/fe/macros/messagebundle_fr.properties +9 -3
  151. package/src/sap/fe/macros/messagebundle_fr_CA.properties +8 -2
  152. package/src/sap/fe/macros/messagebundle_hi.properties +8 -2
  153. package/src/sap/fe/macros/messagebundle_hr.properties +8 -2
  154. package/src/sap/fe/macros/messagebundle_hu.properties +7 -1
  155. package/src/sap/fe/macros/messagebundle_id.properties +15 -9
  156. package/src/sap/fe/macros/messagebundle_it.properties +7 -1
  157. package/src/sap/fe/macros/messagebundle_iw.properties +8 -2
  158. package/src/sap/fe/macros/messagebundle_ja.properties +13 -7
  159. package/src/sap/fe/macros/messagebundle_kk.properties +11 -5
  160. package/src/sap/fe/macros/messagebundle_ko.properties +8 -2
  161. package/src/sap/fe/macros/messagebundle_lt.properties +9 -3
  162. package/src/sap/fe/macros/messagebundle_lv.properties +8 -2
  163. package/src/sap/fe/macros/messagebundle_mk.properties +8 -2
  164. package/src/sap/fe/macros/messagebundle_ms.properties +7 -1
  165. package/src/sap/fe/macros/messagebundle_nl.properties +7 -1
  166. package/src/sap/fe/macros/messagebundle_no.properties +7 -1
  167. package/src/sap/fe/macros/messagebundle_pl.properties +8 -2
  168. package/src/sap/fe/macros/messagebundle_pt.properties +7 -1
  169. package/src/sap/fe/macros/messagebundle_pt_PT.properties +7 -1
  170. package/src/sap/fe/macros/messagebundle_ro.properties +8 -2
  171. package/src/sap/fe/macros/messagebundle_ru.properties +10 -4
  172. package/src/sap/fe/macros/messagebundle_sh.properties +8 -2
  173. package/src/sap/fe/macros/messagebundle_sk.properties +7 -1
  174. package/src/sap/fe/macros/messagebundle_sl.properties +7 -1
  175. package/src/sap/fe/macros/messagebundle_sr.properties +8 -2
  176. package/src/sap/fe/macros/messagebundle_sv.properties +7 -1
  177. package/src/sap/fe/macros/messagebundle_th.properties +8 -2
  178. package/src/sap/fe/macros/messagebundle_tr.properties +7 -1
  179. package/src/sap/fe/macros/messagebundle_uk.properties +10 -4
  180. package/src/sap/fe/macros/messagebundle_vi.properties +10 -4
  181. package/src/sap/fe/macros/messagebundle_zh_CN.properties +7 -1
  182. package/src/sap/fe/macros/messagebundle_zh_TW.properties +8 -2
  183. package/src/sap/fe/macros/messages/MessageButton.js +39 -18
  184. package/src/sap/fe/macros/messages/MessageButton.ts +42 -19
  185. package/src/sap/fe/macros/messages/MessagePopover.js +4 -2
  186. package/src/sap/fe/macros/messages/MessagePopover.ts +6 -4
  187. package/src/sap/fe/macros/microchart/MicroChart.js +2 -2
  188. package/src/sap/fe/macros/microchart/MicroChart.tsx +1 -1
  189. package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
  190. package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
  191. package/src/sap/fe/macros/microchart/MicroChartHelper.js +2 -3
  192. package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +1 -2
  193. package/src/sap/fe/macros/share/ShareAPI.js +4 -29
  194. package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
  195. package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
  196. package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
  197. package/src/sap/fe/macros/table/ActionsTemplating.js +4 -8
  198. package/src/sap/fe/macros/table/ActionsTemplating.tsx +5 -8
  199. package/src/sap/fe/macros/table/BasicSearch.js +1 -1
  200. package/src/sap/fe/macros/table/BasicSearch.ts +2 -1
  201. package/src/sap/fe/macros/table/Column.js +14 -2
  202. package/src/sap/fe/macros/table/Column.ts +7 -0
  203. package/src/sap/fe/macros/table/ColumnExportSettings.js +83 -15
  204. package/src/sap/fe/macros/table/ColumnExportSettings.ts +44 -0
  205. package/src/sap/fe/macros/table/ColumnOverride.js +14 -2
  206. package/src/sap/fe/macros/table/ColumnOverride.ts +7 -0
  207. package/src/sap/fe/macros/table/MdcTableTemplate.js +7 -5
  208. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +21 -11
  209. package/src/sap/fe/macros/table/QuickFilterSelector.js +12 -3
  210. package/src/sap/fe/macros/table/QuickFilterSelector.tsx +15 -2
  211. package/src/sap/fe/macros/table/Table.block.js +188 -147
  212. package/src/sap/fe/macros/table/Table.block.tsx +41 -11
  213. package/src/sap/fe/macros/table/Table.js +16 -10
  214. package/src/sap/fe/macros/table/Table.tsx +16 -10
  215. package/src/sap/fe/macros/table/TableAPI.js +224 -184
  216. package/src/sap/fe/macros/table/TableAPI.ts +63 -19
  217. package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -6
  218. package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +5 -4
  219. package/src/sap/fe/macros/table/TableHelper.js +2 -3
  220. package/src/sap/fe/macros/table/TableHelper.ts +1 -2
  221. package/src/sap/fe/macros/table/TableRuntime.js +24 -5
  222. package/src/sap/fe/macros/table/TableRuntime.ts +31 -3
  223. package/src/sap/fe/macros/table/TreeTable.js +16 -10
  224. package/src/sap/fe/macros/table/TreeTable.tsx +16 -10
  225. package/src/sap/fe/macros/table/Utils.js +8 -3
  226. package/src/sap/fe/macros/table/Utils.ts +12 -3
  227. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
  228. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
  229. package/src/sap/fe/macros/table/delegates/TableDelegate.js +69 -34
  230. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +75 -33
  231. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
  232. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
  233. package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +10 -10
  234. package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +11 -9
  235. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +14 -12
  236. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +11 -10
  237. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +34 -4
  238. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +45 -2
  239. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +55 -12
  240. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +71 -9
  241. package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +53 -2
  242. package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +55 -0
  243. package/src/sap/fe/macros/table/mixin/TableExport.js +22 -3
  244. package/src/sap/fe/macros/table/mixin/TableExport.ts +25 -4
  245. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +5 -1
  246. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +7 -0
  247. package/src/sap/fe/macros/table/mixin/TableSharing.js +4 -2
  248. package/src/sap/fe/macros/table/mixin/TableSharing.ts +10 -1
  249. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +36 -10
  250. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +44 -9
  251. package/src/sap/fe/macros/visualfilters/VisualFilter.js +5 -4
  252. package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +3 -2
  253. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +2 -3
  254. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +1 -2
@@ -42,7 +42,7 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
42
42
  }
43
43
  };
44
44
  _proto.shouldBeVisible = function shouldBeVisible(value) {
45
- return typeof value === "string" && value.trim() !== "";
45
+ return typeof value === "string" && value.trim() !== "" || typeof value === "number" && value !== 0;
46
46
  };
47
47
  _proto.createContent = function createContent() {
48
48
  return _jsxs(HBox, {
@@ -84,4 +84,4 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
84
84
  _exports = NumberWithUnitOrCurrency;
85
85
  return _exports;
86
86
  }, false);
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiYmluZFRvU3RhdGUiLCJfZGVjNCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJwcm9wZXJ0aWVzT3JJZCIsInByb3BlcnRpZXMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwic3RhdGUiLCJ2aXNpYmxlIiwic2hvdWxkQmVWaXNpYmxlIiwibnVtYmVyIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRLZXlzIiwiaW5jbHVkZXMiLCJ2YWx1ZSIsInRyaW0iLCJfanN4cyIsIkhCb3giLCJyZW5kZXJUeXBlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzcyIsImJpbmRTdGF0ZSIsImNoaWxkcmVuIiwiX2pzeCIsIlRleHQiLCJ0ZXh0RGlyZWN0aW9uIiwid3JhcHBpbmciLCJ0ZXh0QWxpZ24iLCJ0ZXh0Iiwid2lkdGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxcblx0SEJveCxcblx0eyBudW1iZXI6IHN0cmluZzsgdW5pdE9yQ3VycmVuY3k6IHN0cmluZzsgdmlzaWJsZTogYm9vbGVhbiB9XG4+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIHVuaXRPckN1cnJlbmN5ITogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXNPcklkOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8TnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5PiwgcHJvcGVydGllcz86IFByb3BlcnRpZXNPZjxOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3k+KSB7XG5cdFx0c3VwZXIocHJvcGVydGllc09ySWQsIHByb3BlcnRpZXMpO1xuXHRcdHRoaXMuc3RhdGUudmlzaWJsZSA9IHRoaXMuc2hvdWxkQmVWaXNpYmxlKHRoaXMuc3RhdGUubnVtYmVyKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdG9uU3RhdGVDaGFuZ2UoY2hhbmdlZEtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0aWYgKGNoYW5nZWRLZXlzPy5pbmNsdWRlcyhcIm51bWJlclwiKSkge1xuXHRcdFx0dGhpcy5zdGF0ZS52aXNpYmxlID0gdGhpcy5zaG91bGRCZVZpc2libGUodGhpcy5zdGF0ZS5udW1iZXIpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc2hvdWxkQmVWaXNpYmxlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS50cmltKCkgIT09IFwiXCI7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IEhCb3gge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8SEJveCByZW5kZXJUeXBlPVwiQmFyZVwiIGp1c3RpZnlDb250ZW50PVwiRW5kXCIgY2xhc3M9XCJzYXBGZUNvbnRyb2xzVW5pdEN1cnJlbmN5SGJveFwiIHZpc2libGU9e3RoaXMuYmluZFN0YXRlKFwidmlzaWJsZVwiKX0+XG5cdFx0XHRcdDxUZXh0IHRleHREaXJlY3Rpb249XCJMVFJcIiB3cmFwcGluZz1cImZhbHNlXCIgdGV4dEFsaWduPVwiRW5kXCIgdGV4dD17dGhpcy5iaW5kU3RhdGUoXCJudW1iZXJcIil9PjwvVGV4dD5cblx0XHRcdFx0PFRleHQgdGV4dERpcmVjdGlvbj1cIkxUUlwiIHdyYXBwaW5nPVwiZmFsc2VcIiB0ZXh0QWxpZ249XCJFbmRcIiB0ZXh0PXt0aGlzLmJpbmRTdGF0ZShcInVuaXRPckN1cnJlbmN5XCIpfSB3aWR0aD1cIjMuM2VtXCI+PC9UZXh0PlxuXHRcdFx0PC9IQm94PlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztNQU1xQkEsd0JBQXdCLElBQUFDLElBQUEsR0FENUNDLGNBQWMsQ0FBQyxpREFBaUQsQ0FBQyxFQUFBQyxLQUFBLEdBS2hFQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFO0VBQ1AsQ0FB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
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiYmluZFRvU3RhdGUiLCJfZGVjNCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJwcm9wZXJ0aWVzT3JJZCIsInByb3BlcnRpZXMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwic3RhdGUiLCJ2aXNpYmxlIiwic2hvdWxkQmVWaXNpYmxlIiwibnVtYmVyIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRLZXlzIiwiaW5jbHVkZXMiLCJ2YWx1ZSIsInRyaW0iLCJfanN4cyIsIkhCb3giLCJyZW5kZXJUeXBlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzcyIsImJpbmRTdGF0ZSIsImNoaWxkcmVuIiwiX2pzeCIsIlRleHQiLCJ0ZXh0RGlyZWN0aW9uIiwid3JhcHBpbmciLCJ0ZXh0QWxpZ24iLCJ0ZXh0Iiwid2lkdGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9iYXNlL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuTnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3kgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxcblx0SEJveCxcblx0eyBudW1iZXI6IHN0cmluZzsgdW5pdE9yQ3VycmVuY3k6IHN0cmluZzsgdmlzaWJsZTogYm9vbGVhbiB9XG4+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZyB8IG51bWJlcjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0YmluZFRvU3RhdGU6IHRydWVcblx0fSlcblx0cHVibGljIHVuaXRPckN1cnJlbmN5ITogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXNPcklkOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8TnVtYmVyV2l0aFVuaXRPckN1cnJlbmN5PiwgcHJvcGVydGllcz86IFByb3BlcnRpZXNPZjxOdW1iZXJXaXRoVW5pdE9yQ3VycmVuY3k+KSB7XG5cdFx0c3VwZXIocHJvcGVydGllc09ySWQsIHByb3BlcnRpZXMpO1xuXHRcdHRoaXMuc3RhdGUudmlzaWJsZSA9IHRoaXMuc2hvdWxkQmVWaXNpYmxlKHRoaXMuc3RhdGUubnVtYmVyKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdG9uU3RhdGVDaGFuZ2UoY2hhbmdlZEtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0aWYgKGNoYW5nZWRLZXlzPy5pbmNsdWRlcyhcIm51bWJlclwiKSkge1xuXHRcdFx0dGhpcy5zdGF0ZS52aXNpYmxlID0gdGhpcy5zaG91bGRCZVZpc2libGUodGhpcy5zdGF0ZS5udW1iZXIpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc2hvdWxkQmVWaXNpYmxlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudHJpbSgpICE9PSBcIlwiKSB8fCAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmIHZhbHVlICE9PSAwKTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogSEJveCB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxIQm94IHJlbmRlclR5cGU9XCJCYXJlXCIganVzdGlmeUNvbnRlbnQ9XCJFbmRcIiBjbGFzcz1cInNhcEZlQ29udHJvbHNVbml0Q3VycmVuY3lIYm94XCIgdmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJ2aXNpYmxlXCIpfT5cblx0XHRcdFx0PFRleHQgdGV4dERpcmVjdGlvbj1cIkxUUlwiIHdyYXBwaW5nPVwiZmFsc2VcIiB0ZXh0QWxpZ249XCJFbmRcIiB0ZXh0PXt0aGlzLmJpbmRTdGF0ZShcIm51bWJlclwiKX0+PC9UZXh0PlxuXHRcdFx0XHQ8VGV4dCB0ZXh0RGlyZWN0aW9uPVwiTFRSXCIgd3JhcHBpbmc9XCJmYWxzZVwiIHRleHRBbGlnbj1cIkVuZFwiIHRleHQ9e3RoaXMuYmluZFN0YXRlKFwidW5pdE9yQ3VycmVuY3lcIil9IHdpZHRoPVwiMy4zZW1cIj48L1RleHQ+XG5cdFx0XHQ8L0hCb3g+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O01BTXFCQSx3QkFBd0IsSUFBQUMsSUFBQSxHQUQ1Q0MsY0FBYyxDQUFDLGlEQUFp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
@@ -17,7 +17,7 @@ export default class NumberWithUnitOrCurrency extends BuildingBlockBase<
17
17
  type: "string",
18
18
  bindToState: true
19
19
  })
20
- public number!: string;
20
+ public number!: string | number;
21
21
 
22
22
  @property({
23
23
  type: "string",
@@ -38,7 +38,7 @@ export default class NumberWithUnitOrCurrency extends BuildingBlockBase<
38
38
  }
39
39
 
40
40
  private shouldBeVisible(value: unknown): boolean {
41
- return typeof value === "string" && value.trim() !== "";
41
+ return (typeof value === "string" && value.trim() !== "") || (typeof value === "number" && value !== 0);
42
42
  }
43
43
 
44
44
  createContent(): HBox {
@@ -2,13 +2,14 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/m/RadioButton", "sap/m/RadioButtonGroup", "sap/ui/core/CustomData", "sap/fe/base/jsx-runtime/jsx"], function (ClassSupport, CommonUtils, BuildingBlock, RadioButton, RadioButtonGroup, CustomData, _jsx) {
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, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10;
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;
9
9
  var _exports = {};
10
10
  var property = ClassSupport.property;
11
11
  var defineUI5Class = ClassSupport.defineUI5Class;
12
+ var pathInModel = BindingToolkit.pathInModel;
12
13
  function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
13
14
  function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
14
15
  function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
@@ -21,21 +22,25 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
21
22
  }), _dec4 = property({
22
23
  type: "string"
23
24
  }), _dec5 = property({
24
- type: "any"
25
+ type: "any",
26
+ defaultValue: null
25
27
  }), _dec6 = property({
26
28
  type: "string"
27
29
  }), _dec7 = property({
28
- type: "any",
29
- isBindingInfo: true
30
+ type: "object",
31
+ bindToState: true
30
32
  }), _dec8 = property({
31
33
  type: "any",
32
34
  isBindingInfo: true
33
35
  }), _dec9 = property({
34
- type: "boolean"
36
+ type: "any",
37
+ isBindingInfo: true
35
38
  }), _dec10 = property({
36
- type: "string"
39
+ type: "boolean"
37
40
  }), _dec11 = property({
38
41
  type: "string"
42
+ }), _dec12 = property({
43
+ type: "string"
39
44
  }), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlock) {
40
45
  function RadioButtons(properties, others) {
41
46
  var _this;
@@ -45,13 +50,19 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
45
50
  _initializerDefineProperty(_this, "requiredExpression", _descriptor3, _this);
46
51
  // We use type 'raw' here because otherwise the binding will refuse to update the value, as it doesn't know how to convert from any to string
47
52
  // Setting it to raw make sure that no conversion is attempted which then works
53
+ // Default value is set to null to allow having a radio button pointing to a `null` value
48
54
  _initializerDefineProperty(_this, "value", _descriptor4, _this);
49
55
  _initializerDefineProperty(_this, "fixedValuesPath", _descriptor5, _this);
50
- _initializerDefineProperty(_this, "radioButtonTextProperty", _descriptor6, _this);
51
- _initializerDefineProperty(_this, "radioButtonKeyProperty", _descriptor7, _this);
52
- _initializerDefineProperty(_this, "horizontalLayout", _descriptor8, _this);
53
- _initializerDefineProperty(_this, "enabledExpression", _descriptor9, _this);
54
- _initializerDefineProperty(_this, "width", _descriptor10, _this);
56
+ /**
57
+ * An array of possible, fixed value list object
58
+ * If this property is used, the fixedValuesPath property is ignored.
59
+ */
60
+ _initializerDefineProperty(_this, "possibleValues", _descriptor6, _this);
61
+ _initializerDefineProperty(_this, "radioButtonTextProperty", _descriptor7, _this);
62
+ _initializerDefineProperty(_this, "radioButtonKeyProperty", _descriptor8, _this);
63
+ _initializerDefineProperty(_this, "horizontalLayout", _descriptor9, _this);
64
+ _initializerDefineProperty(_this, "enabledExpression", _descriptor10, _this);
65
+ _initializerDefineProperty(_this, "width", _descriptor11, _this);
55
66
  _this.content = _this.createContent();
56
67
  return _this;
57
68
  }
@@ -124,25 +135,32 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
124
135
  // Setting up the binding so that we can access $count for getting the number
125
136
  // of entries in the fixed value list and set this as number of radio button columns
126
137
  // in case horizontal layout is configured
127
- const buttonsBindingContext = {
128
- path: `${this.fixedValuesPath}`,
129
- parameters: {
130
- $count: true
131
- },
132
- events: {
133
- dataReceived: ev => {
134
- const count = ev.getSource()?.getCount();
135
- if (count !== undefined && this.horizontalLayout) {
136
- radioButtonGroup.setColumns(count);
137
- }
138
- // Check if there is a value stored from the initialization but the radio
139
- // button selection has not yet been done and do this now
140
- if (this.value !== undefined && radioButtonGroup.getSelectedIndex() === -1) {
141
- this.setValue(this.value);
138
+ let buttonsBindingContext;
139
+ if (this.possibleValues) {
140
+ buttonsBindingContext = this.bindState("possibleValues");
141
+ this.radioButtonTextProperty = pathInModel("text", "$componentState");
142
+ this.radioButtonKeyProperty = pathInModel("key", "$componentState");
143
+ } else {
144
+ buttonsBindingContext = {
145
+ path: `${this.fixedValuesPath}`,
146
+ parameters: {
147
+ $count: true
148
+ },
149
+ events: {
150
+ dataReceived: ev => {
151
+ const count = ev.getSource()?.getCount();
152
+ if (count !== undefined && this.horizontalLayout) {
153
+ radioButtonGroup.setColumns(count);
154
+ }
155
+ // Check if there is a value stored from the initialization but the radio
156
+ // button selection has not yet been done and do this now
157
+ if (this.value !== undefined && radioButtonGroup.getSelectedIndex() === -1) {
158
+ this.setValue(this.value);
159
+ }
142
160
  }
143
161
  }
144
- }
145
- };
162
+ };
163
+ }
146
164
  this.onRadioButtonSelect.bind(this);
147
165
  const radioButtonGroup = _jsx(RadioButtonGroup, {
148
166
  buttons: buttonsBindingContext,
@@ -151,12 +169,12 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
151
169
  fieldGroupIds: this.fieldGroupIds,
152
170
  ariaLabelledBy: this.ariaLabelledBy,
153
171
  width: this.width,
172
+ columns: this.possibleValues?.length ?? 1,
154
173
  children: _jsx(RadioButton, {
155
174
  text: this.radioButtonTextProperty,
156
- customData: [new CustomData({
157
- key: "key",
175
+ customData: _jsx(CustomData, {
158
176
  value: this.radioButtonKeyProperty
159
- })],
177
+ }, "key"),
160
178
  class: "sapUiSmallMarginEnd",
161
179
  tooltip: this.radioButtonTextProperty
162
180
  })
@@ -189,31 +207,36 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
189
207
  enumerable: true,
190
208
  writable: true,
191
209
  initializer: null
192
- }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "radioButtonTextProperty", [_dec7], {
210
+ }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "possibleValues", [_dec7], {
211
+ configurable: true,
212
+ enumerable: true,
213
+ writable: true,
214
+ initializer: null
215
+ }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "radioButtonTextProperty", [_dec8], {
193
216
  configurable: true,
194
217
  enumerable: true,
195
218
  writable: true,
196
219
  initializer: null
197
- }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "radioButtonKeyProperty", [_dec8], {
220
+ }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "radioButtonKeyProperty", [_dec9], {
198
221
  configurable: true,
199
222
  enumerable: true,
200
223
  writable: true,
201
224
  initializer: null
202
- }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "horizontalLayout", [_dec9], {
225
+ }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "horizontalLayout", [_dec10], {
203
226
  configurable: true,
204
227
  enumerable: true,
205
228
  writable: true,
206
229
  initializer: function () {
207
230
  return false;
208
231
  }
209
- }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "enabledExpression", [_dec10], {
232
+ }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "enabledExpression", [_dec11], {
210
233
  configurable: true,
211
234
  enumerable: true,
212
235
  writable: true,
213
236
  initializer: function () {
214
237
  return "";
215
238
  }
216
- }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "width", [_dec11], {
239
+ }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "width", [_dec12], {
217
240
  configurable: true,
218
241
  enumerable: true,
219
242
  writable: true,
@@ -224,4 +247,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
224
247
  _exports = RadioButtons;
225
248
  return _exports;
226
249
  }, false);
227
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb0J1dHRvbnMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJpc0JpbmRpbmdJbmZvIiwiX2RlYzgiLCJfZGVjOSIsIl9kZWMxMCIsIl9kZWMxMSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9jayIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uUmFkaW9CdXR0b25TZWxlY3QiLCJldmVudCIsInJhZGlvQnV0dG9uR3JvdXAiLCJnZXRTb3VyY2UiLCJzZWxlY3RlZEluZGV4IiwiZ2V0UGFyYW1ldGVyIiwidW5kZWZpbmVkIiwic2VsZWN0ZWRSYWRpb0J1dHRvbktleSIsImdldEJ1dHRvbnMiLCJnZXRDdXN0b21EYXRhIiwiZ2V0VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJfc2lkZUVmZmVjdHMiLCJoYW5kbGVGaWVsZENoYW5nZSIsImJpbmRQcm9wZXJ0eSIsIm5hbWUiLCJiaW5kaW5nSW5mbyIsImZvcm1hdHRlciIsInRhcmdldFR5cGUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwidmFsdWUiLCJyYWRpb0J1dHRvbnMiLCJsZW5ndGgiLCJyYWRpb0J1dHRvbkluZGV4IiwicmFkaW9CdXR0b24iLCJrZXlDdXN0b21EYXRhIiwiZ2V0QmluZGluZyIsInNldFNlbGVjdGVkSW5kZXgiLCJidXR0b25zQmluZGluZ0NvbnRleHQiLCJwYXRoIiwiZml4ZWRWYWx1ZXNQYXRoIiwicGFyYW1ldGVycyIsIiRjb3VudCIsImV2ZW50cyIsImRhdGFSZWNlaXZlZCIsImV2IiwiY291bnQiLCJnZXRDb3VudCIsImhvcml6b250YWxMYXlvdXQiLCJzZXRDb2x1bW5zIiwiZ2V0U2VsZWN0ZWRJbmRleCIsImJpbmQiLCJfanN4IiwiUmFkaW9CdXR0b25Hcm91cCIsImJ1dHRvbnMiLCJzZWxlY3QiLCJlbmFibGVkIiwiZW5hYmxlZEV4cHJlc3Npb24iLCJmaWVsZEdyb3VwSWRzIiwiYXJpYUxhYmVsbGVkQnkiLCJ3aWR0aCIsImNoaWxkcmVuIiwiUmFkaW9CdXR0b24iLCJ0ZXh0IiwicmFkaW9CdXR0b25UZXh0UHJvcGVydHkiLCJjdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImtleSIsInJhZGlvQnV0dG9uS2V5UHJvcGVydHkiLCJjbGFzcyIsInRvb2x0aXAiLCJCdWlsZGluZ0Jsb2NrIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSYWRpb0J1dHRvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBSYWRpb0J1dHRvbiBmcm9tIFwic2FwL20vUmFkaW9CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUmFkaW9CdXR0b25Hcm91cCRTZWxlY3RFdmVudCB9IGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgUmFkaW9CdXR0b25Hcm91cCBmcm9tIFwic2FwL20vUmFkaW9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHR5cGUgRXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7IEFnZ3JlZ2F0aW9uQmluZGluZ0luZm8sIFByb3BlcnR5QmluZGluZ0luZm8gfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9Qcm9wZXJ0eUJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuUmFkaW9CdXR0b25zXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSYWRpb0J1dHRvbnMgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrPFJhZGlvQnV0dG9uR3JvdXA+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nW11cIlxuXHR9KVxuXHRwdWJsaWMgZmllbGRHcm91cElkcz86IHN0cmluZ1tdO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgcmVxdWlyZWRFeHByZXNzaW9uPzogc3RyaW5nO1xuXG5cdC8vIFdlIHVzZSB0eXBlICdyYXcnIGhlcmUgYmVjYXVzZSBvdGhlcndpc2UgdGhlIGJpbmRpbmcgd2lsbCByZWZ1c2UgdG8gdXBkYXRlIHRoZSB2YWx1ZSwgYXMgaXQgZG9lc24ndCBrbm93IGhvdyB0byBjb252ZXJ0IGZyb20gYW55IHRvIHN0cmluZ1xuXHQvLyBTZXR0aW5nIGl0IHRvIHJhdyBtYWtlIHN1cmUgdGhhdCBubyBjb252ZXJzaW9uIGlzIGF0dGVtcHRlZCB3aGljaCB0aGVuIHdvcmtzXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYW55XCIgfSlcblx0cHVibGljIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGZpeGVkVmFsdWVzUGF0aCE6IGB7JHtzdHJpbmd9fWA7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHJhZGlvQnV0dG9uVGV4dFByb3BlcnR5OiBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJhbnlcIixcblx0XHRpc0JpbmRpbmdJbmZvOiB0cnVlXG5cdH0pXG5cdHB1YmxpYyByYWRpb0J1dHRvbktleVByb3BlcnR5OiBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0cHVibGljIGhvcml6b250YWxMYXlvdXQgPSBmYWxzZTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGVuYWJsZWRFeHByZXNzaW9uID0gXCJcIjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIHdpZHRoID0gXCIxMDAlXCI7XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxSYWRpb0J1dHRvbnM+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIGZvciB0aGUgUmFkaW9CdXR0b25Hcm91cCdzIHNlbGVjdCBldmVudC5cblx0ICogV2UgbmVlZCB0byBwYXJzZSBmcm9tIHRoZSByYWRpbyBidXR0b24gZ3JvdXAgaW5kZXggdG8gdGhlIG1vZGVsIHZhbHVlLlxuXHQgKiBAcGFyYW0gZXZlbnRcblx0ICovXG5cdG9uUmFkaW9CdXR0b25TZWxlY3QoZXZlbnQ6IFJhZGlvQnV0dG9uR3JvdXAkU2VsZWN0RXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCByYWRpb0J1dHRvbkdyb3VwOiBSYWRpb0J1dHRvbkdyb3VwID0gZXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRJbmRleCA9IGV2ZW50LmdldFBhcmFtZXRlcihcInNlbGVjdGVkSW5kZXhcIik7XG5cdFx0aWYgKHNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3Qgc2VsZWN0ZWRSYWRpb0J1dHRvbktleTogc3RyaW5nID0gcmFkaW9CdXR0b25Hcm91cD8uZ2V0QnV0dG9ucygpW3NlbGVjdGVkSW5kZXhdLmdldEN1c3RvbURhdGEoKVswXS5nZXRWYWx1ZSgpO1xuXHRcdFx0Ly8gTm93IHdlIGhhdmUgdGhlIHZhbHVlID0+IHdyaXRlIGl0IHRvIHRoZSBtb2RlbCFcblx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXCJ2YWx1ZVwiLCBzZWxlY3RlZFJhZGlvQnV0dG9uS2V5KTtcblx0XHRcdENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcocmFkaW9CdXR0b25Hcm91cCk/LmdldENvbnRyb2xsZXIoKT8uX3NpZGVFZmZlY3RzPy5oYW5kbGVGaWVsZENoYW5nZShldmVudCwgdHJ1ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSB2YWx1ZSBwcm9wZXJ0eSB0eXBlIG5lZWRzIHRvIGJlIGluaXRpYWxseSAnYW55JyBidXQgaGFzIHRvIGJlIGNoYW5nZWQgdG8gJ3JhdycgdG8gYXZvaWQgcGFyc2luZyBlcnJvcnMuXG5cdCAqIEBwYXJhbSBuYW1lXG5cdCAqIEBwYXJhbSBiaW5kaW5nSW5mb1xuXHQgKiBAcmV0dXJucyBUaGlzXG5cdCAqL1xuXHRiaW5kUHJvcGVydHkobmFtZTogc3RyaW5nLCBiaW5kaW5nSW5mbzogUHJvcGVydHlCaW5kaW5nSW5mbyk6IHRoaXMge1xuXHRcdGlmIChuYW1lID09PSBcInZhbHVlXCIgJiYgIWJpbmRpbmdJbmZvLmZvcm1hdHRlcikge1xuXHRcdFx0Ly8gbm90IGlmIGEgZm9ybWF0dGVyIGlzIHVzZWQsIGFzIHRoaXMgbmVlZHMgdG8gYmUgZXhlY3V0ZWRcblx0XHRcdGJpbmRpbmdJbmZvLnRhcmdldFR5cGUgPSBcInJhd1wiO1xuXHRcdH1cblxuXHRcdHJldHVybiBzdXBlci5iaW5kUHJvcGVydHkobmFtZSwgYmluZGluZ0luZm8pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgaXMgYmVpbmcgY2FsbGVkIHdoZW4gdGhlIG1vZGVsIGZldGNoZXMgdGhlIGRhdGEgZnJvbSB0aGUgYmFja2VuZCBvciB3aGVuIHdlIGNhbGwgaXQgZGlyZWN0bHkuXG5cdCAqIFdlIG5lZWQgdG8gcGFyc2UgZnJvbSB0aGUgbW9kZWwgdmFsdWUgdG8gdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpbmRleC5cblx0ICogQHBhcmFtIG5ld1ZhbHVlXG5cdCAqL1xuXHRzZXRWYWx1ZShuZXdWYWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcblx0XHRpZiAodGhpcy5jb250ZW50KSB7XG5cdFx0XHQvLyBDb21wdXRlIHRoZSBuZXcgcmFkaW8gYnV0dG9uIGluZGV4XG5cdFx0XHRjb25zdCByYWRpb0J1dHRvbnMgPSB0aGlzLmNvbnRlbnQuZ2V0QnV0dG9ucygpO1xuXHRcdFx0aWYgKHJhZGlvQnV0dG9ucy5sZW5ndGggIT0gMCkge1xuXHRcdFx0XHRsZXQgcmFkaW9CdXR0b25JbmRleCA9IDA7XG5cdFx0XHRcdGZvciAoY29uc3QgcmFkaW9CdXR0b24gb2YgcmFkaW9CdXR0b25zKSB7XG5cdFx0XHRcdFx0Y29uc3Qga2V5Q3VzdG9tRGF0YSA9IChyYWRpb0J1dHRvbi5nZXRDdXN0b21EYXRhKClbMF0uZ2V0QmluZGluZyhcInZhbHVlXCIpIGFzIFByb3BlcnR5QmluZGluZyB8IHVuZGVmaW5lZCk/LmdldFZhbHVlKCk7XG5cdFx0XHRcdFx0aWYgKGtleUN1c3RvbURhdGEgPT09IG5ld1ZhbHVlKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmNvbnRlbnQuc2V0U2VsZWN0ZWRJbmRleChyYWRpb0J1dHRvbkluZGV4KTtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmFkaW9CdXR0b25JbmRleCsrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvLyBJZiBubyB2YWx1ZSBjb3VsZCBiZSBmb3VuZCBvciBpZiB0aGUgcmFkaW8gYnV0dG9uIGFnZ3JlZ2F0aW9uIHdhcyBlbXB0eSwgd2hpY2ggY2FuIGhhcHBlbiBkdWUgdG9cblx0XHRcdC8vIGEgdmVyeSBlYXJseSBjYWxsIG9mIHNldFZhbHVlLCBzZXQgdGhlIHNlbGVjdGVkIHRvIGluZGV4IHRvIC0xIHdoaWNoIHJlc3VsdHMgaW4gTk8gcmFkaW8gYnV0dG9uIHRvIGJlIHNlbGVjdGVkLlxuXHRcdFx0dGhpcy5jb250ZW50LnNldFNlbGVjdGVkSW5kZXgoLTEpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgYnVpbGRpbmcgYmxvY2sgcmVuZGVyIGZ1bmN0aW9uLlxuXHQgKiBAcmV0dXJucyBUaGUgcmFkaW8gYnV0dG9uIGdyb3VwXG5cdCAqL1xuXHRjcmVhdGVDb250ZW50KCk6IFJhZGlvQnV0dG9uR3JvdXAge1xuXHRcdC8vIFNldHRpbmcgdXAgdGhlIGJpbmRpbmcgc28gdGhhdCB3ZSBjYW4gYWNjZXNzICRjb3VudCBmb3IgZ2V0dGluZyB0aGUgbnVtYmVyXG5cdFx0Ly8gb2YgZW50cmllcyBpbiB0aGUgZml4ZWQgdmFsdWUgbGlzdCBhbmQgc2V0IHRoaXMgYXMgbnVtYmVyIG9mIHJhZGlvIGJ1dHRvbiBjb2x1bW5zXG5cdFx0Ly8gaW4gY2FzZSBob3Jpem9udGFsIGxheW91dCBpcyBjb25maWd1cmVkXG5cdFx0Y29uc3QgYnV0dG9uc0JpbmRpbmdDb250ZXh0OiBBZ2dyZWdhdGlvbkJpbmRpbmdJbmZvID0ge1xuXHRcdFx0cGF0aDogYCR7dGhpcy5maXhlZFZhbHVlc1BhdGh9YCxcblx0XHRcdHBhcmFtZXRlcnM6IHsgJGNvdW50OiB0cnVlIH0sXG5cdFx0XHRldmVudHM6IHtcblx0XHRcdFx0ZGF0YVJlY2VpdmVkOiAoZXY6IEV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IChldi5nZXRTb3VyY2UoKSBhcyB1bmtub3duIGFzIE9EYXRhTGlzdEJpbmRpbmcpPy5nZXRDb3VudCgpO1xuXHRcdFx0XHRcdGlmIChjb3VudCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaG9yaXpvbnRhbExheW91dCkge1xuXHRcdFx0XHRcdFx0cmFkaW9CdXR0b25Hcm91cC5zZXRDb2x1bW5zKGNvdW50KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgaWYgdGhlcmUgaXMgYSB2YWx1ZSBzdG9yZWQgZnJvbSB0aGUgaW5pdGlhbGl6YXRpb24gYnV0IHRoZSByYWRpb1xuXHRcdFx0XHRcdC8vIGJ1dHRvbiBzZWxlY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBkb25lIGFuZCBkbyB0aGlzIG5vd1xuXHRcdFx0XHRcdGlmICh0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcmFkaW9CdXR0b25Hcm91cC5nZXRTZWxlY3RlZEluZGV4KCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnNldFZhbHVlKHRoaXMudmFsdWUgYXMgc3RyaW5nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dGhpcy5vblJhZGlvQnV0dG9uU2VsZWN0LmJpbmQodGhpcyk7XG5cdFx0Y29uc3QgcmFkaW9CdXR0b25Hcm91cCA9IChcblx0XHRcdDxSYWRpb0J1dHRvbkdyb3VwXG5cdFx0XHRcdGJ1dHRvbnM9e2J1dHRvbnNCaW5kaW5nQ29udGV4dH1cblx0XHRcdFx0c2VsZWN0PXt0aGlzLm9uUmFkaW9CdXR0b25TZWxlY3QuYmluZCh0aGlzKX1cblx0XHRcdFx0ZW5hYmxlZD17dGhpcy5lbmFibGVkRXhwcmVzc2lvbn1cblx0XHRcdFx0ZmllbGRHcm91cElkcz17dGhpcy5maWVsZEdyb3VwSWRzfVxuXHRcdFx0XHRhcmlhTGFiZWxsZWRCeT17dGhpcy5hcmlhTGFiZWxsZWRCeX1cblx0XHRcdFx0d2lkdGg9e3RoaXMud2lkdGh9XG5cdFx0XHQ+XG5cdFx0XHRcdDxSYWRpb0J1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdFx0Y3VzdG9tRGF0YT17W25ldyBDdXN0b21EYXRhKHsga2V5OiBcImtleVwiLCB2YWx1ZTogdGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5IH0pXX1cblx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5FbmRcIlxuXHRcdFx0XHRcdHRvb2x0aXA9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1JhZGlvQnV0dG9uR3JvdXA+XG5cdFx0KSBhcyBSYWRpb0J1dHRvbkdyb3VwO1xuXG5cdFx0cmV0dXJuIHJh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QUEsR0FBQWdGLHlCQUFBLENBQUF6RixPQUFBLENBQUFzQixTQUFBLHlCQUFBaEMsS0FBQTtJQUFBb0csWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFuRixZQUFBLEdBQUErRSx5QkFBQSxDQUFBekYsT0FBQSxDQUFBc0IsU0FBQSxZQUFBL0IsS0FBQTtJQUFBbUcsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFsRixZQUFBLEdBQUE4RSx5QkFBQSxDQUFBekYsT0FBQSxDQUFBc0IsU0FBQSxzQkFBQTlCLEtBQUE7SUFBQWtHLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBakYsWUFBQSxHQUFBNkUseUJBQUEsQ0FBQXpGLE9BQUEsQ0FBQXNCLFNBQUEsOEJBQUE3QixLQUFBO0lBQUFpRyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQWhGLFlBQUEsR0FBQTRFLHlCQUFBLENBQUF6RixPQUFBLENBQUFzQixTQUFBLDZCQUFBM0IsS0FBQTtJQUFBK0YsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUEvRSxZQUFBLEdBQUEyRSx5QkFBQSxDQUFBekYsT0FBQSxDQUFBc0IsU0FBQSx1QkFBQTFCLEtBQUE7SUFBQThGLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BeUM1QixLQUFLO0lBQUE7RUFBQSxJQUFBOUUsWUFBQSxHQUFBMEUseUJBQUEsQ0FBQXpGLE9BQUEsQ0FBQXNCLFNBQUEsd0JBQUF6QixNQUFBO0lBQUE2RixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQUtKLEVBQUU7SUFBQTtFQUFBLElBQUE3RSxhQUFBLEdBQUF5RSx5QkFBQSxDQUFBekYsT0FBQSxDQUFBc0IsU0FBQSxZQUFBeEIsTUFBQTtJQUFBNEYsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQSxXQUFBQSxDQUFBO01BQUEsT0FLZCxNQUFNO0lBQUE7RUFBQSxJQUFBN0YsT0FBQSxNQUFBRCxNQUFBO0VBQUFvQixRQUFBLEdBQUFwQyxZQUFBO0VBQUEsT0FBQW9DLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
250
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb0J1dHRvbnMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJiaW5kVG9TdGF0ZSIsIl9kZWM4IiwiaXNCaW5kaW5nSW5mbyIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uUmFkaW9CdXR0b25TZWxlY3QiLCJldmVudCIsInJhZGlvQnV0dG9uR3JvdXAiLCJnZXRTb3VyY2UiLCJzZWxlY3RlZEluZGV4IiwiZ2V0UGFyYW1ldGVyIiwidW5kZWZpbmVkIiwic2VsZWN0ZWRSYWRpb0J1dHRvbktleSIsImdldEJ1dHRvbnMiLCJnZXRDdXN0b21EYXRhIiwiZ2V0VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJfc2lkZUVmZmVjdHMiLCJoYW5kbGVGaWVsZENoYW5nZSIsImJpbmRQcm9wZXJ0eSIsIm5hbWUiLCJiaW5kaW5nSW5mbyIsImZvcm1hdHRlciIsInRhcmdldFR5cGUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwidmFsdWUiLCJyYWRpb0J1dHRvbnMiLCJsZW5ndGgiLCJyYWRpb0J1dHRvbkluZGV4IiwicmFkaW9CdXR0b24iLCJrZXlDdXN0b21EYXRhIiwiZ2V0QmluZGluZyIsInNldFNlbGVjdGVkSW5kZXgiLCJidXR0b25zQmluZGluZ0NvbnRleHQiLCJwb3NzaWJsZVZhbHVlcyIsImJpbmRTdGF0ZSIsInJhZGlvQnV0dG9uVGV4dFByb3BlcnR5IiwicGF0aEluTW9kZWwiLCJyYWRpb0J1dHRvbktleVByb3BlcnR5IiwicGF0aCIsImZpeGVkVmFsdWVzUGF0aCIsInBhcmFtZXRlcnMiLCIkY291bnQiLCJldmVudHMiLCJkYXRhUmVjZWl2ZWQiLCJldiIsImNvdW50IiwiZ2V0Q291bnQiLCJob3Jpem9udGFsTGF5b3V0Iiwic2V0Q29sdW1ucyIsImdldFNlbGVjdGVkSW5kZXgiLCJiaW5kIiwiX2pzeCIsIlJhZGlvQnV0dG9uR3JvdXAiLCJidXR0b25zIiwic2VsZWN0IiwiZW5hYmxlZCIsImVuYWJsZWRFeHByZXNzaW9uIiwiZmllbGRHcm91cElkcyIsImFyaWFMYWJlbGxlZEJ5Iiwid2lkdGgiLCJjb2x1bW5zIiwiY2hpbGRyZW4iLCJSYWRpb0J1dHRvbiIsInRleHQiLCJjdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImNsYXNzIiwidG9vbHRpcCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJhZGlvQnV0dG9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBwYXRoSW5Nb2RlbCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IFJhZGlvQnV0dG9uIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBSYWRpb0J1dHRvbkdyb3VwJFNlbGVjdEV2ZW50IH0gZnJvbSBcInNhcC9tL1JhZGlvQnV0dG9uR3JvdXBcIjtcbmltcG9ydCBSYWRpb0J1dHRvbkdyb3VwIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgQWdncmVnYXRpb25CaW5kaW5nSW5mbywgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0N1c3RvbURhdGFcIjtcbmltcG9ydCB0eXBlIFByb3BlcnR5QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL1Byb3BlcnR5QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5SYWRpb0J1dHRvbnNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhZGlvQnV0dG9ucyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8UmFkaW9CdXR0b25Hcm91cCwgeyBwb3NzaWJsZVZhbHVlczogeyB0ZXh0OiBzdHJpbmc7IGtleTogbnVtYmVyIH1bXSB9PiB7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0cHVibGljIGZpZWxkR3JvdXBJZHM/OiBzdHJpbmdbXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIHJlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZztcblxuXHQvLyBXZSB1c2UgdHlwZSAncmF3JyBoZXJlIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBiaW5kaW5nIHdpbGwgcmVmdXNlIHRvIHVwZGF0ZSB0aGUgdmFsdWUsIGFzIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8gY29udmVydCBmcm9tIGFueSB0byBzdHJpbmdcblx0Ly8gU2V0dGluZyBpdCB0byByYXcgbWFrZSBzdXJlIHRoYXQgbm8gY29udmVyc2lvbiBpcyBhdHRlbXB0ZWQgd2hpY2ggdGhlbiB3b3Jrc1xuXHQvLyBEZWZhdWx0IHZhbHVlIGlzIHNldCB0byBudWxsIHRvIGFsbG93IGhhdmluZyBhIHJhZGlvIGJ1dHRvbiBwb2ludGluZyB0byBhIGBudWxsYCB2YWx1ZVxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0cHVibGljIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGZpeGVkVmFsdWVzUGF0aCE6IGB7JHtzdHJpbmd9fWA7XG5cblx0LyoqXG5cdCAqIEFuIGFycmF5IG9mIHBvc3NpYmxlLCBmaXhlZCB2YWx1ZSBsaXN0IG9iamVjdFxuXHQgKiBJZiB0aGlzIHByb3BlcnR5IGlzIHVzZWQsIHRoZSBmaXhlZFZhbHVlc1BhdGggcHJvcGVydHkgaXMgaWdub3JlZC5cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIixcblx0XHRiaW5kVG9TdGF0ZTogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcG9zc2libGVWYWx1ZXM/OiB7IGtleTogUHJpbWl0aXZlVHlwZTsgdGV4dDogc3RyaW5nIH1bXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYW55XCIsXG5cdFx0aXNCaW5kaW5nSW5mbzogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcmFkaW9CdXR0b25UZXh0UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHJhZGlvQnV0dG9uS2V5UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRwdWJsaWMgaG9yaXpvbnRhbExheW91dCA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgZW5hYmxlZEV4cHJlc3Npb24gPSBcIlwiO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgd2lkdGggPSBcIjEwMCVcIjtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPFJhZGlvQnV0dG9ucz4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wZXJ0aWVzLCBvdGhlcnMpO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgZm9yIHRoZSBSYWRpb0J1dHRvbkdyb3VwJ3Mgc2VsZWN0IGV2ZW50LlxuXHQgKiBXZSBuZWVkIHRvIHBhcnNlIGZyb20gdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpbmRleCB0byB0aGUgbW9kZWwgdmFsdWUuXG5cdCAqIEBwYXJhbSBldmVudFxuXHQgKi9cblx0b25SYWRpb0J1dHRvblNlbGVjdChldmVudDogUmFkaW9CdXR0b25Hcm91cCRTZWxlY3RFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHJhZGlvQnV0dG9uR3JvdXA6IFJhZGlvQnV0dG9uR3JvdXAgPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBzZWxlY3RlZEluZGV4ID0gZXZlbnQuZ2V0UGFyYW1ldGVyKFwic2VsZWN0ZWRJbmRleFwiKTtcblx0XHRpZiAoc2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZFJhZGlvQnV0dG9uS2V5OiBzdHJpbmcgPSByYWRpb0J1dHRvbkdyb3VwPy5nZXRCdXR0b25zKClbc2VsZWN0ZWRJbmRleF0uZ2V0Q3VzdG9tRGF0YSgpWzBdLmdldFZhbHVlKCk7XG5cdFx0XHQvLyBOb3cgd2UgaGF2ZSB0aGUgdmFsdWUgPT4gd3JpdGUgaXQgdG8gdGhlIG1vZGVsIVxuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIHNlbGVjdGVkUmFkaW9CdXR0b25LZXkpO1xuXHRcdFx0Q29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldyhyYWRpb0J1dHRvbkdyb3VwKT8uZ2V0Q29udHJvbGxlcigpPy5fc2lkZUVmZmVjdHM/LmhhbmRsZUZpZWxkQ2hhbmdlKGV2ZW50LCB0cnVlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhlIHZhbHVlIHByb3BlcnR5IHR5cGUgbmVlZHMgdG8gYmUgaW5pdGlhbGx5ICdhbnknIGJ1dCBoYXMgdG8gYmUgY2hhbmdlZCB0byAncmF3JyB0byBhdm9pZCBwYXJzaW5nIGVycm9ycy5cblx0ICogQHBhcmFtIG5hbWVcblx0ICogQHBhcmFtIGJpbmRpbmdJbmZvXG5cdCAqIEByZXR1cm5zIFRoaXNcblx0ICovXG5cdGJpbmRQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIGJpbmRpbmdJbmZvOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogdGhpcyB7XG5cdFx0aWYgKG5hbWUgPT09IFwidmFsdWVcIiAmJiAhYmluZGluZ0luZm8uZm9ybWF0dGVyKSB7XG5cdFx0XHQvLyBub3QgaWYgYSBmb3JtYXR0ZXIgaXMgdXNlZCwgYXMgdGhpcyBuZWVkcyB0byBiZSBleGVjdXRlZFxuXHRcdFx0YmluZGluZ0luZm8udGFyZ2V0VHlwZSA9IFwicmF3XCI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN1cGVyLmJpbmRQcm9wZXJ0eShuYW1lLCBiaW5kaW5nSW5mbyk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBpcyBiZWluZyBjYWxsZWQgd2hlbiB0aGUgbW9kZWwgZmV0Y2hlcyB0aGUgZGF0YSBmcm9tIHRoZSBiYWNrZW5kIG9yIHdoZW4gd2UgY2FsbCBpdCBkaXJlY3RseS5cblx0ICogV2UgbmVlZCB0byBwYXJzZSBmcm9tIHRoZSBtb2RlbCB2YWx1ZSB0byB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGluZGV4LlxuXHQgKiBAcGFyYW0gbmV3VmFsdWVcblx0ICovXG5cdHNldFZhbHVlKG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdGlmICh0aGlzLmNvbnRlbnQpIHtcblx0XHRcdC8vIENvbXB1dGUgdGhlIG5ldyByYWRpbyBidXR0b24gaW5kZXhcblx0XHRcdGNvbnN0IHJhZGlvQnV0dG9ucyA9IHRoaXMuY29udGVudC5nZXRCdXR0b25zKCk7XG5cdFx0XHRpZiAocmFkaW9CdXR0b25zLmxlbmd0aCAhPSAwKSB7XG5cdFx0XHRcdGxldCByYWRpb0J1dHRvbkluZGV4ID0gMDtcblx0XHRcdFx0Zm9yIChjb25zdCByYWRpb0J1dHRvbiBvZiByYWRpb0J1dHRvbnMpIHtcblx0XHRcdFx0XHRjb25zdCBrZXlDdXN0b21EYXRhID0gKHJhZGlvQnV0dG9uLmdldEN1c3RvbURhdGEoKVswXS5nZXRCaW5kaW5nKFwidmFsdWVcIikgYXMgUHJvcGVydHlCaW5kaW5nIHwgdW5kZWZpbmVkKT8uZ2V0VmFsdWUoKTtcblx0XHRcdFx0XHRpZiAoa2V5Q3VzdG9tRGF0YSA9PT0gbmV3VmFsdWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuY29udGVudC5zZXRTZWxlY3RlZEluZGV4KHJhZGlvQnV0dG9uSW5kZXgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyYWRpb0J1dHRvbkluZGV4Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIElmIG5vIHZhbHVlIGNvdWxkIGJlIGZvdW5kIG9yIGlmIHRoZSByYWRpbyBidXR0b24gYWdncmVnYXRpb24gd2FzIGVtcHR5LCB3aGljaCBjYW4gaGFwcGVuIGR1ZSB0b1xuXHRcdFx0Ly8gYSB2ZXJ5IGVhcmx5IGNhbGwgb2Ygc2V0VmFsdWUsIHNldCB0aGUgc2VsZWN0ZWQgdG8gaW5kZXggdG8gLTEgd2hpY2ggcmVzdWx0cyBpbiBOTyByYWRpbyBidXR0b24gdG8gYmUgc2VsZWN0ZWQuXG5cdFx0XHR0aGlzLmNvbnRlbnQuc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBidWlsZGluZyBibG9jayByZW5kZXIgZnVuY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRoZSByYWRpbyBidXR0b24gZ3JvdXBcblx0ICovXG5cdGNyZWF0ZUNvbnRlbnQoKTogUmFkaW9CdXR0b25Hcm91cCB7XG5cdFx0Ly8gU2V0dGluZyB1cCB0aGUgYmluZGluZyBzbyB0aGF0IHdlIGNhbiBhY2Nlc3MgJGNvdW50IGZvciBnZXR0aW5nIHRoZSBudW1iZXJcblx0XHQvLyBvZiBlbnRyaWVzIGluIHRoZSBmaXhlZCB2YWx1ZSBsaXN0IGFuZCBzZXQgdGhpcyBhcyBudW1iZXIgb2YgcmFkaW8gYnV0dG9uIGNvbHVtbnNcblx0XHQvLyBpbiBjYXNlIGhvcml6b250YWwgbGF5b3V0IGlzIGNvbmZpZ3VyZWRcblx0XHRsZXQgYnV0dG9uc0JpbmRpbmdDb250ZXh0OiBBZ2dyZWdhdGlvbkJpbmRpbmdJbmZvIHwgdW5kZWZpbmVkO1xuXHRcdGlmICh0aGlzLnBvc3NpYmxlVmFsdWVzKSB7XG5cdFx0XHRidXR0b25zQmluZGluZ0NvbnRleHQgPSB0aGlzLmJpbmRTdGF0ZShcInBvc3NpYmxlVmFsdWVzXCIpO1xuXHRcdFx0dGhpcy5yYWRpb0J1dHRvblRleHRQcm9wZXJ0eSA9IHBhdGhJbk1vZGVsKFwidGV4dFwiLCBcIiRjb21wb25lbnRTdGF0ZVwiKTtcblx0XHRcdHRoaXMucmFkaW9CdXR0b25LZXlQcm9wZXJ0eSA9IHBhdGhJbk1vZGVsKFwia2V5XCIsIFwiJGNvbXBvbmVudFN0YXRlXCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRidXR0b25zQmluZGluZ0NvbnRleHQgPSB7XG5cdFx0XHRcdHBhdGg6IGAke3RoaXMuZml4ZWRWYWx1ZXNQYXRofWAsXG5cdFx0XHRcdHBhcmFtZXRlcnM6IHsgJGNvdW50OiB0cnVlIH0sXG5cdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdGRhdGFSZWNlaXZlZDogKGV2OiBFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IChldi5nZXRTb3VyY2UoKSBhcyB1bmtub3duIGFzIE9EYXRhTGlzdEJpbmRpbmcpPy5nZXRDb3VudCgpO1xuXHRcdFx0XHRcdFx0aWYgKGNvdW50ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5ob3Jpem9udGFsTGF5b3V0KSB7XG5cdFx0XHRcdFx0XHRcdHJhZGlvQnV0dG9uR3JvdXAuc2V0Q29sdW1ucyhjb3VudCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBDaGVjayBpZiB0aGVyZSBpcyBhIHZhbHVlIHN0b3JlZCBmcm9tIHRoZSBpbml0aWFsaXphdGlvbiBidXQgdGhlIHJhZGlvXG5cdFx0XHRcdFx0XHQvLyBidXR0b24gc2VsZWN0aW9uIGhhcyBub3QgeWV0IGJlZW4gZG9uZSBhbmQgZG8gdGhpcyBub3dcblx0XHRcdFx0XHRcdGlmICh0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcmFkaW9CdXR0b25Hcm91cC5nZXRTZWxlY3RlZEluZGV4KCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHR0aGlzLm9uUmFkaW9CdXR0b25TZWxlY3QuYmluZCh0aGlzKTtcblx0XHRjb25zdCByYWRpb0J1dHRvbkdyb3VwID0gKFxuXHRcdFx0PFJhZGlvQnV0dG9uR3JvdXBcblx0XHRcdFx0YnV0dG9ucz17YnV0dG9uc0JpbmRpbmdDb250ZXh0fVxuXHRcdFx0XHRzZWxlY3Q9e3RoaXMub25SYWRpb0J1dHRvblNlbGVjdC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRlbmFibGVkPXt0aGlzLmVuYWJsZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRmaWVsZEdyb3VwSWRzPXt0aGlzLmZpZWxkR3JvdXBJZHN9XG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0XHR3aWR0aD17dGhpcy53aWR0aH1cblx0XHRcdFx0Y29sdW1ucz17dGhpcy5wb3NzaWJsZVZhbHVlcz8ubGVuZ3RoID8/IDF9XG5cdFx0XHQ+XG5cdFx0XHRcdDxSYWRpb0J1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdFx0Y3VzdG9tRGF0YT17PEN1c3RvbURhdGEga2V5PXtcImtleVwifSB2YWx1ZT17dGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5fSAvPn1cblx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5FbmRcIlxuXHRcdFx0XHRcdHRvb2x0aXA9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1JhZGlvQnV0dG9uR3JvdXA+XG5cdFx0KSBhcyBSYWRpb0J1dHRvbkdyb3VwO1xuXG5cdFx0cmV0dXJuIHJhZGlvQnV0dG9uR3JvdXA7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQnFCQSxZQUFZLElBQUFDLElBQUEsR0FEaENDLGNBQWMsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFBQyxLQUFBLEdBRXBEQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFO0VBQ1AsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHREYsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBR0RILFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU1ESixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRUksWUFBWSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHN0NOLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQU0sS0FBQSxHQU9EUCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZE8sV0FBVyxFQUFFO0VBQ2QsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHRFQsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRSxLQUFLO0lBQ1hTLGFBQWEsRUFBRTtFQUNoQixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdEWCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLEtBQUs7SUFDWFMsYUFBYSxFQUFFO0VBQ2hCLENBQUMsQ0FBQyxFQUFBRSxNQUFBLEdBR0RaLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFB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
@@ -1,3 +1,5 @@
1
+ import type { PrimitiveType } from "sap/fe/base/BindingToolkit";
2
+ import { pathInModel } from "sap/fe/base/BindingToolkit";
1
3
  import type { PropertiesOf } from "sap/fe/base/ClassSupport";
2
4
  import { defineUI5Class, property } from "sap/fe/base/ClassSupport";
3
5
  import CommonUtils from "sap/fe/core/CommonUtils";
@@ -13,7 +15,7 @@ import type PropertyBinding from "sap/ui/model/PropertyBinding";
13
15
  import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
14
16
 
15
17
  @defineUI5Class("sap.fe.macros.controls.RadioButtons")
16
- export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
18
+ export default class RadioButtons extends BuildingBlock<RadioButtonGroup, { possibleValues: { text: string; key: number }[] }> {
17
19
  @property({
18
20
  type: "string"
19
21
  })
@@ -31,7 +33,8 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
31
33
 
32
34
  // We use type 'raw' here because otherwise the binding will refuse to update the value, as it doesn't know how to convert from any to string
33
35
  // Setting it to raw make sure that no conversion is attempted which then works
34
- @property({ type: "any" })
36
+ // Default value is set to null to allow having a radio button pointing to a `null` value
37
+ @property({ type: "any", defaultValue: null })
35
38
  public value!: string | number | boolean;
36
39
 
37
40
  @property({
@@ -39,6 +42,16 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
39
42
  })
40
43
  public fixedValuesPath!: `{${string}}`;
41
44
 
45
+ /**
46
+ * An array of possible, fixed value list object
47
+ * If this property is used, the fixedValuesPath property is ignored.
48
+ */
49
+ @property({
50
+ type: "object",
51
+ bindToState: true
52
+ })
53
+ public possibleValues?: { key: PrimitiveType; text: string }[];
54
+
42
55
  @property({
43
56
  type: "any",
44
57
  isBindingInfo: true
@@ -137,23 +150,30 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
137
150
  // Setting up the binding so that we can access $count for getting the number
138
151
  // of entries in the fixed value list and set this as number of radio button columns
139
152
  // in case horizontal layout is configured
140
- const buttonsBindingContext: AggregationBindingInfo = {
141
- path: `${this.fixedValuesPath}`,
142
- parameters: { $count: true },
143
- events: {
144
- dataReceived: (ev: Event) => {
145
- const count: number | undefined = (ev.getSource() as unknown as ODataListBinding)?.getCount();
146
- if (count !== undefined && this.horizontalLayout) {
147
- radioButtonGroup.setColumns(count);
148
- }
149
- // Check if there is a value stored from the initialization but the radio
150
- // button selection has not yet been done and do this now
151
- if (this.value !== undefined && radioButtonGroup.getSelectedIndex() === -1) {
152
- this.setValue(this.value as string);
153
+ let buttonsBindingContext: AggregationBindingInfo | undefined;
154
+ if (this.possibleValues) {
155
+ buttonsBindingContext = this.bindState("possibleValues");
156
+ this.radioButtonTextProperty = pathInModel("text", "$componentState");
157
+ this.radioButtonKeyProperty = pathInModel("key", "$componentState");
158
+ } else {
159
+ buttonsBindingContext = {
160
+ path: `${this.fixedValuesPath}`,
161
+ parameters: { $count: true },
162
+ events: {
163
+ dataReceived: (ev: Event): void => {
164
+ const count: number | undefined = (ev.getSource() as unknown as ODataListBinding)?.getCount();
165
+ if (count !== undefined && this.horizontalLayout) {
166
+ radioButtonGroup.setColumns(count);
167
+ }
168
+ // Check if there is a value stored from the initialization but the radio
169
+ // button selection has not yet been done and do this now
170
+ if (this.value !== undefined && radioButtonGroup.getSelectedIndex() === -1) {
171
+ this.setValue(this.value as string);
172
+ }
153
173
  }
154
174
  }
155
- }
156
- };
175
+ };
176
+ }
157
177
 
158
178
  this.onRadioButtonSelect.bind(this);
159
179
  const radioButtonGroup = (
@@ -164,10 +184,11 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
164
184
  fieldGroupIds={this.fieldGroupIds}
165
185
  ariaLabelledBy={this.ariaLabelledBy}
166
186
  width={this.width}
187
+ columns={this.possibleValues?.length ?? 1}
167
188
  >
168
189
  <RadioButton
169
190
  text={this.radioButtonTextProperty}
170
- customData={[new CustomData({ key: "key", value: this.radioButtonKeyProperty })]}
191
+ customData={<CustomData key={"key"} value={this.radioButtonKeyProperty} />}
171
192
  class="sapUiSmallMarginEnd"
172
193
  tooltip={this.radioButtonTextProperty}
173
194
  />