@seniorsistemas/angular-components 19.0.5 → 19.0.6

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 (439) hide show
  1. package/accordion/lib/accordion/accordion.component.d.ts +25 -0
  2. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +60 -0
  3. package/alert/lib/alert/alert.component.d.ts +40 -0
  4. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +51 -0
  5. package/badge/lib/badge/badge.component.d.ts +20 -0
  6. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +46 -1
  7. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +12 -0
  8. package/button/lib/button/button.component.d.ts +101 -0
  9. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
  10. package/card/lib/card/card.component.d.ts +18 -0
  11. package/chat/lib/chat/chat.component.d.ts +20 -2
  12. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
  13. package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
  14. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
  15. package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
  16. package/chips/lib/chips/chips/chips.component.d.ts +41 -0
  17. package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
  18. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
  19. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
  20. package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
  21. package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
  22. package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
  23. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
  24. package/currency/lib/currency.service.d.ts +15 -2
  25. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
  26. package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
  27. package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
  28. package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
  29. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
  30. package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
  31. package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
  32. package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
  33. package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
  34. package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
  35. package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
  36. package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
  37. package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
  38. package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
  39. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
  40. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
  41. package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
  42. package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
  43. package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
  44. package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
  45. package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
  46. package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
  47. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
  48. package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
  49. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
  50. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
  51. package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
  52. package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
  53. package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
  54. package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
  55. package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
  56. package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
  57. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
  58. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
  59. package/dynamic-form/public-api.d.ts +1 -0
  60. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
  61. package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
  62. package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
  63. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
  64. package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
  65. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
  66. package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
  67. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
  68. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +13 -1
  69. package/esm2022/button/lib/button/button.component.mjs +102 -1
  70. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
  71. package/esm2022/card/lib/card/card.component.mjs +21 -6
  72. package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
  73. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
  74. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
  75. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
  76. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
  77. package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
  78. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
  79. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
  80. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
  81. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +20 -1
  82. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +31 -1
  83. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
  84. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
  85. package/esm2022/currency/lib/currency.service.mjs +21 -8
  86. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
  87. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
  88. package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
  89. package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
  90. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +1 -1
  91. package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
  92. package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
  93. package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
  94. package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
  95. package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
  96. package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
  97. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
  98. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
  99. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
  100. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
  101. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
  102. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
  103. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
  104. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
  105. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
  106. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
  107. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
  108. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  109. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -2
  110. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  111. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  112. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.mjs +1 -1
  113. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
  114. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
  115. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
  116. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
  117. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
  118. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
  119. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  120. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
  121. package/esm2022/dynamic-form/public-api.mjs +2 -2
  122. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
  123. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +60 -1
  124. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
  125. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +48 -1
  126. package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
  127. package/esm2022/global-search/lib/global-search/global-search.component.mjs +30 -1
  128. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
  129. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
  130. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +40 -3
  131. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
  132. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
  133. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
  134. package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
  135. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
  136. package/esm2022/kanban/lib/kanban/kanban.component.mjs +34 -16
  137. package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
  138. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
  139. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
  140. package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
  141. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
  142. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
  143. package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
  144. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
  145. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +20 -1
  146. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
  147. package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
  148. package/esm2022/numeric/lib/numeric.service.mjs +21 -1
  149. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
  150. package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
  151. package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
  152. package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
  153. package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
  154. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
  155. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
  156. package/esm2022/picklist/lib/picklist/picklist.component.mjs +33 -2
  157. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
  158. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +86 -2
  159. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
  160. package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
  161. package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
  162. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
  163. package/esm2022/select/lib/select/select.component.mjs +35 -1
  164. package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
  165. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
  166. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
  167. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
  168. package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
  169. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
  170. package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
  171. package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
  172. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
  173. package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
  174. package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
  175. package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
  176. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
  177. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
  178. package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
  179. package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
  180. package/esm2022/template/lib/template/template.directive.mjs +14 -2
  181. package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
  182. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
  183. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
  184. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +30 -1
  185. package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
  186. package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
  187. package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
  188. package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
  189. package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
  190. package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
  191. package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
  192. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
  193. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
  194. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  195. package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
  196. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  197. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
  198. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  199. package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
  200. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  201. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
  202. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  203. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +12 -0
  204. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  205. package/fesm2022/seniorsistemas-angular-components-button.mjs +101 -0
  206. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  207. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
  208. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  209. package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
  210. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  211. package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
  212. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  213. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
  214. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  215. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
  216. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  217. package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
  218. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  219. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
  220. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  221. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
  222. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  223. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
  224. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  225. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +19 -0
  226. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  227. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +30 -0
  228. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  229. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
  230. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  231. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
  232. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  233. package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
  234. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  235. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
  236. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  237. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
  238. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  239. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +29 -4
  240. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  241. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
  242. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  243. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +59 -0
  244. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  245. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
  246. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  247. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +47 -0
  248. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  249. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
  250. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  251. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +29 -0
  252. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  253. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
  254. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  255. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +80 -24
  256. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  257. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +38 -1
  258. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  259. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
  260. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  261. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
  262. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  263. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +15 -0
  264. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  265. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
  266. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  267. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
  268. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  269. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +28 -10
  270. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  271. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
  272. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  273. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
  274. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  275. package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
  276. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  277. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
  278. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  279. package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
  280. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  281. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
  282. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  283. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +19 -0
  284. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  285. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
  286. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  287. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
  288. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  289. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
  290. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  291. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +23 -0
  292. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  293. package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
  295. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
  297. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
  299. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +32 -1
  301. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
  303. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +85 -1
  305. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
  307. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
  309. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
  311. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
  313. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
  315. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
  317. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
  319. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
  321. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
  323. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
  325. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
  327. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
  329. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
  331. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
  333. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
  335. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
  337. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
  339. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-table.mjs +15 -0
  341. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
  343. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
  345. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
  347. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
  349. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
  351. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +29 -0
  353. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
  355. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
  357. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
  359. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
  361. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
  363. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
  365. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
  367. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
  369. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  370. package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
  371. package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
  372. package/gantt/lib/gantt/gantt.component.d.ts +31 -0
  373. package/global-search/lib/global-search/global-search.component.d.ts +29 -0
  374. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
  375. package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
  376. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
  377. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
  378. package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
  379. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
  380. package/insights/lib/insights/insights.component.d.ts +22 -0
  381. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
  382. package/kanban/lib/kanban/kanban.component.d.ts +25 -5
  383. package/label-value/lib/label-value/label-value.component.d.ts +13 -0
  384. package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
  385. package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
  386. package/locale/lib/locale/locale.service.d.ts +7 -0
  387. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
  388. package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
  389. package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
  390. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
  391. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
  392. package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
  393. package/numeric/lib/numeric.pipe.d.ts +15 -0
  394. package/numeric/lib/numeric.service.d.ts +20 -0
  395. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
  396. package/object-card/lib/object-card/object-card.component.d.ts +23 -0
  397. package/optional-fields/editor/editor-field.d.ts +19 -0
  398. package/package.json +12 -12
  399. package/paginator/lib/paginator/paginator.component.d.ts +19 -0
  400. package/panel/lib/panel/panel.component.d.ts +24 -3
  401. package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
  402. package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
  403. package/picklist/lib/picklist/picklist.component.d.ts +29 -0
  404. package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
  405. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
  406. package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
  407. package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
  408. package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
  409. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
  410. package/select/lib/select/select.component.d.ts +34 -0
  411. package/select-button/lib/select-button/select-button.component.d.ts +34 -0
  412. package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
  413. package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
  414. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
  415. package/slider/lib/slider/slider.component.d.ts +72 -0
  416. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
  417. package/split-button/lib/split-button/split-button.component.d.ts +22 -0
  418. package/star-rating/star-rating/star-rating.component.d.ts +16 -0
  419. package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
  420. package/stepper/lib/stepper/stepper.component.d.ts +19 -0
  421. package/structure/lib/structure/footer.component.d.ts +10 -0
  422. package/switch/lib/switch/switch.component.d.ts +20 -0
  423. package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
  424. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
  425. package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
  426. package/tabs/lib/tabs/tabs.component.d.ts +28 -0
  427. package/template/lib/template/template.directive.d.ts +12 -0
  428. package/text-area/lib/text-area/text-area.component.d.ts +27 -0
  429. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
  430. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
  431. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +29 -0
  432. package/tile/lib/tile/tile.component.d.ts +25 -0
  433. package/timeline/lib/timeline/timeline.component.d.ts +24 -0
  434. package/toast/lib/toast/toast.component.d.ts +22 -2
  435. package/token-list/lib/token-list/token-list.component.d.ts +21 -0
  436. package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
  437. package/topbar/lib/topbar/topbar.component.d.ts +17 -0
  438. package/tree/lib/tree/tree.component.d.ts +27 -0
  439. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
@@ -2,19 +2,69 @@ import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./components/progressbar-determinate/progressbar-determinate.component";
4
4
  import * as i2 from "./components/progressbar-indeterminate/progressbar-indeterminate.component";
5
+ /**
6
+ * @description Componente de barra de progresso que representa visualmente o avanço de uma tarefa.
7
+ * Suporta modo determinado (valor percentual) e indeterminado (progresso desconhecido),
8
+ * além de um valor-alvo para comparação.
9
+ *
10
+ * @example
11
+ * ```html
12
+ * <s-progressbar
13
+ * [value]="75"
14
+ * activeColor="blue"
15
+ * label="Upload"
16
+ * [showValue]="true"
17
+ * />
18
+ * ```
19
+ *
20
+ * @category Feedback
21
+ */
5
22
  export class ProgressBarComponent {
23
+ /**
24
+ * @description Valor atual do progresso, em percentual (0 a 100).
25
+ * Não utilizado quando `mode` é `'indeterminate'`.
26
+ * Lança erro se o valor estiver fora do intervalo permitido.
27
+ */
6
28
  value;
29
+ /**
30
+ * @description Cor ativa da barra de progresso. Campo obrigatório.
31
+ * Valores aceitos: `'blue'`, `'green'`, `'red'`, `'yellow'`.
32
+ */
7
33
  activeColor;
34
+ /**
35
+ * @description Opções de formatação numérica utilizadas para exibir o valor percentual.
36
+ * Baseado na API `Intl.NumberFormat`.
37
+ *
38
+ * @default `{ style: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 2 }`
39
+ */
8
40
  numberFormatOptions = {
9
- style: "decimal",
41
+ style: 'decimal',
10
42
  minimumFractionDigits: 0,
11
43
  maximumFractionDigits: 2,
12
- roundingMode: "trunc",
44
+ roundingMode: 'trunc',
13
45
  };
46
+ /**
47
+ * @description Valor-alvo em percentual (0 a 100), exibido como marcador de referência na barra.
48
+ * Não utilizado quando `mode` é `'indeterminate'`.
49
+ */
14
50
  targetValue;
51
+ /** @description Rótulo descritivo exibido ao lado da barra de progresso principal. */
15
52
  label;
53
+ /** @description Rótulo descritivo exibido ao lado do marcador de valor-alvo. */
16
54
  targetLabel;
55
+ /**
56
+ * @description Quando `true`, exibe o valor percentual atual sobre ou próximo da barra.
57
+ *
58
+ * @default true
59
+ */
17
60
  showValue = true;
61
+ /**
62
+ * @description Modo de operação da barra de progresso.
63
+ * - `'determinate'`: exibe o progresso baseado em `value` (padrão).
64
+ * - `'indeterminate'`: animação contínua sem valor definido; `value`, `targetValue` e `targetLabel` não devem ser usados.
65
+ *
66
+ * @default 'determinate'
67
+ */
18
68
  mode = 'determinate';
19
69
  ngOnInit() {
20
70
  this.validateInputs();
@@ -54,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
54
104
  }], mode: [{
55
105
  type: Input
56
106
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Byb2dyZXNzYmFyL3NyYy9saWIvcHJvZ3Jlc3NiYXIvcHJvZ3Jlc3NiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Byb2dyZXNzYmFyL3NyYy9saWIvcHJvZ3Jlc3NiYXIvcHJvZ3Jlc3NiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTekQsTUFBTSxPQUFPLG9CQUFvQjtJQUV0QixLQUFLLENBQVU7SUFHZixXQUFXLENBQXFCO0lBR2hDLG1CQUFtQixHQUE2QjtRQUNuRCxLQUFLLEVBQUUsU0FBUztRQUNoQixxQkFBcUIsRUFBRSxDQUFDO1FBQ3hCLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsWUFBWSxFQUFFLE9BQU87S0FDeEIsQ0FBQztJQUdLLFdBQVcsQ0FBVTtJQUdyQixLQUFLLENBQVU7SUFHZixXQUFXLENBQVU7SUFHckIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUdqQixJQUFJLEdBQW9CLGFBQWEsQ0FBQztJQUV0QyxRQUFRO1FBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RSxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDeEYsTUFBTSxJQUFJLEtBQUssQ0FBQyxxR0FBcUcsQ0FBQyxDQUFDO1FBQzNILENBQUM7SUFDTCxDQUFDO3dHQTlDUSxvQkFBb0I7NEZBQXBCLG9CQUFvQix1UUNUakMsa2ZBaUJBOzs0RkRSYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksZUFBZTs4QkFNbEIsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBU0MsV0FBVztzQkFEakIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb2dyZXNzQmFyQ29sb3JzLCBQcm9ncmVzc0Jhck1vZGUgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXByb2dyZXNzYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3NiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2dyZXNzYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZSE6IG51bWJlcjtcblxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIGFjdGl2ZUNvbG9yITogUHJvZ3Jlc3NCYXJDb2xvcnM7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBudW1iZXJGb3JtYXRPcHRpb25zOiBJbnRsLk51bWJlckZvcm1hdE9wdGlvbnMgPSB7XG4gICAgICAgIHN0eWxlOiBcImRlY2ltYWxcIixcbiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwLFxuICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgICAgIHJvdW5kaW5nTW9kZTogXCJ0cnVuY1wiLFxuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0YXJnZXRWYWx1ZT86IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFyZ2V0TGFiZWw/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93VmFsdWUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbW9kZTogUHJvZ3Jlc3NCYXJNb2RlID0gJ2RldGVybWluYXRlJztcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUlucHV0cygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVJbnB1dHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlIDwgMCB8fCB0aGlzLnZhbHVlID4gMTAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHZhbHVlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXJnZXRWYWx1ZSAmJiAodGhpcy50YXJnZXRWYWx1ZSA8IDAgfHwgdGhpcy50YXJnZXRWYWx1ZSA+IDEwMCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgdGFyZ2V0VmFsdWUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdpbmRldGVybWluYXRlJyAmJiAodGhpcy52YWx1ZSB8fCB0aGlzLnRhcmdldFZhbHVlIHx8IHRoaXMudGFyZ2V0TGFiZWwpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1doZW4gdGhlIG1vZGUgaXMgaW5kZXRlcm1pbmF0ZSwgdGhlIHZhbHVlLCB0YXJnZXRWYWx1ZSBhbmQgdGFyZ2V0TGFiZWwgcGFyYW1ldGVycyBhcmUgbm90IGV4cGVjdGVkLicpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmIChtb2RlID09PSAnZGV0ZXJtaW5hdGUnKSB7XG4gICAgPHMtcHJvZ3Jlc3NiYXItZGV0ZXJtaW5hdGVcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgW251bWJlckZvcm1hdE9wdGlvbnNdPVwibnVtYmVyRm9ybWF0T3B0aW9uc1wiXG4gICAgICAgIFt0YXJnZXRWYWx1ZV09XCJ0YXJnZXRWYWx1ZVwiXG4gICAgICAgIFt0YXJnZXRMYWJlbF09XCJ0YXJnZXRMYWJlbFwiXG4gICAgICAgIFthY3RpdmVDb2xvcl09XCJhY3RpdmVDb2xvclwiXG4gICAgICAgIFtzaG93VmFsdWVdPVwic2hvd1ZhbHVlXCJcbiAgICA+XG4gICAgPC9zLXByb2dyZXNzYmFyLWRldGVybWluYXRlPlxufSBAZWxzZSB7XG4gICAgPHMtcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZVxuICAgICAgICBbYWN0aXZlQ29sb3JdPVwiYWN0aXZlQ29sb3JcIlxuICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgID5cbiAgICA8L3MtcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZT5cbn1cbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Byb2dyZXNzYmFyL3NyYy9saWIvcHJvZ3Jlc3NiYXIvcHJvZ3Jlc3NiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Byb2dyZXNzYmFyL3NyYy9saWIvcHJvZ3Jlc3NiYXIvcHJvZ3Jlc3NiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJekQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCOzs7O09BSUc7SUFFSSxLQUFLLENBQVU7SUFFdEI7OztPQUdHO0lBRUksV0FBVyxDQUFxQjtJQUV2Qzs7Ozs7T0FLRztJQUVJLG1CQUFtQixHQUE2QjtRQUNuRCxLQUFLLEVBQUUsU0FBUztRQUNoQixxQkFBcUIsRUFBRSxDQUFDO1FBQ3hCLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsWUFBWSxFQUFFLE9BQU87S0FDeEIsQ0FBQztJQUVGOzs7T0FHRztJQUVJLFdBQVcsQ0FBVTtJQUU1QixzRkFBc0Y7SUFFL0UsS0FBSyxDQUFVO0lBRXRCLGdGQUFnRjtJQUV6RSxXQUFXLENBQVU7SUFFNUI7Ozs7T0FJRztJQUVJLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFFeEI7Ozs7OztPQU1HO0lBRUksSUFBSSxHQUFvQixhQUFhLENBQUM7SUFFdEMsUUFBUTtRQUNYLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3hGLE1BQU0sSUFBSSxLQUFLLENBQ1gscUdBQXFHLENBQ3hHLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQzt3R0FqRlEsb0JBQW9COzRGQUFwQixvQkFBb0IsdVFDMUJqQyxrZkFpQkE7OzRGRFNhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxlQUFlOzhCQVdsQixLQUFLO3NCQURYLEtBQUs7Z0JBUUMsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBVWxCLG1CQUFtQjtzQkFEekIsS0FBSztnQkFhQyxXQUFXO3NCQURqQixLQUFLO2dCQUtDLEtBQUs7c0JBRFgsS0FBSztnQkFLQyxXQUFXO3NCQURqQixLQUFLO2dCQVNDLFNBQVM7c0JBRGYsS0FBSztnQkFXQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJDb2xvcnMsIFByb2dyZXNzQmFyTW9kZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGJhcnJhIGRlIHByb2dyZXNzbyBxdWUgcmVwcmVzZW50YSB2aXN1YWxtZW50ZSBvIGF2YW7Dp28gZGUgdW1hIHRhcmVmYS5cbiAqIFN1cG9ydGEgbW9kbyBkZXRlcm1pbmFkbyAodmFsb3IgcGVyY2VudHVhbCkgZSBpbmRldGVybWluYWRvIChwcm9ncmVzc28gZGVzY29uaGVjaWRvKSxcbiAqIGFsw6ltIGRlIHVtIHZhbG9yLWFsdm8gcGFyYSBjb21wYXJhw6fDo28uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLXByb2dyZXNzYmFyXG4gKiAgIFt2YWx1ZV09XCI3NVwiXG4gKiAgIGFjdGl2ZUNvbG9yPVwiYmx1ZVwiXG4gKiAgIGxhYmVsPVwiVXBsb2FkXCJcbiAqICAgW3Nob3dWYWx1ZV09XCJ0cnVlXCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgRmVlZGJhY2tcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXByb2dyZXNzYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3NiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2dyZXNzYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVmFsb3IgYXR1YWwgZG8gcHJvZ3Jlc3NvLCBlbSBwZXJjZW50dWFsICgwIGEgMTAwKS5cbiAgICAgKiBOw6NvIHV0aWxpemFkbyBxdWFuZG8gYG1vZGVgIMOpIGAnaW5kZXRlcm1pbmF0ZSdgLlxuICAgICAqIExhbsOnYSBlcnJvIHNlIG8gdmFsb3IgZXN0aXZlciBmb3JhIGRvIGludGVydmFsbyBwZXJtaXRpZG8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWUhOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29yIGF0aXZhIGRhIGJhcnJhIGRlIHByb2dyZXNzby4gQ2FtcG8gb2JyaWdhdMOzcmlvLlxuICAgICAqIFZhbG9yZXMgYWNlaXRvczogYCdibHVlJ2AsIGAnZ3JlZW4nYCwgYCdyZWQnYCwgYCd5ZWxsb3cnYC5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBhY3RpdmVDb2xvciE6IFByb2dyZXNzQmFyQ29sb3JzO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE9ww6fDtWVzIGRlIGZvcm1hdGHDp8OjbyBudW3DqXJpY2EgdXRpbGl6YWRhcyBwYXJhIGV4aWJpciBvIHZhbG9yIHBlcmNlbnR1YWwuXG4gICAgICogQmFzZWFkbyBuYSBBUEkgYEludGwuTnVtYmVyRm9ybWF0YC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGB7IHN0eWxlOiAnZGVjaW1hbCcsIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMCwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH1gXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbnVtYmVyRm9ybWF0T3B0aW9uczogSW50bC5OdW1iZXJGb3JtYXRPcHRpb25zID0ge1xuICAgICAgICBzdHlsZTogJ2RlY2ltYWwnLFxuICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsXG4gICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICAgICAgcm91bmRpbmdNb2RlOiAndHJ1bmMnLFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVmFsb3ItYWx2byBlbSBwZXJjZW50dWFsICgwIGEgMTAwKSwgZXhpYmlkbyBjb21vIG1hcmNhZG9yIGRlIHJlZmVyw6puY2lhIG5hIGJhcnJhLlxuICAgICAqIE7Do28gdXRpbGl6YWRvIHF1YW5kbyBgbW9kZWAgw6kgYCdpbmRldGVybWluYXRlJ2AuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFyZ2V0VmFsdWU/OiBudW1iZXI7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFLDs3R1bG8gZGVzY3JpdGl2byBleGliaWRvIGFvIGxhZG8gZGEgYmFycmEgZGUgcHJvZ3Jlc3NvIHByaW5jaXBhbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbD86IHN0cmluZztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gUsOzdHVsbyBkZXNjcml0aXZvIGV4aWJpZG8gYW8gbGFkbyBkbyBtYXJjYWRvciBkZSB2YWxvci1hbHZvLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRhcmdldExhYmVsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGV4aWJlIG8gdmFsb3IgcGVyY2VudHVhbCBhdHVhbCBzb2JyZSBvdSBwcsOzeGltbyBkYSBiYXJyYS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93VmFsdWUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE1vZG8gZGUgb3BlcmHDp8OjbyBkYSBiYXJyYSBkZSBwcm9ncmVzc28uXG4gICAgICogLSBgJ2RldGVybWluYXRlJ2A6IGV4aWJlIG8gcHJvZ3Jlc3NvIGJhc2VhZG8gZW0gYHZhbHVlYCAocGFkcsOjbykuXG4gICAgICogLSBgJ2luZGV0ZXJtaW5hdGUnYDogYW5pbWHDp8OjbyBjb250w61udWEgc2VtIHZhbG9yIGRlZmluaWRvOyBgdmFsdWVgLCBgdGFyZ2V0VmFsdWVgIGUgYHRhcmdldExhYmVsYCBuw6NvIGRldmVtIHNlciB1c2Fkb3MuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnZGV0ZXJtaW5hdGUnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbW9kZTogUHJvZ3Jlc3NCYXJNb2RlID0gJ2RldGVybWluYXRlJztcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUlucHV0cygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVJbnB1dHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlIDwgMCB8fCB0aGlzLnZhbHVlID4gMTAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHZhbHVlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXJnZXRWYWx1ZSAmJiAodGhpcy50YXJnZXRWYWx1ZSA8IDAgfHwgdGhpcy50YXJnZXRWYWx1ZSA+IDEwMCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgdGFyZ2V0VmFsdWUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdpbmRldGVybWluYXRlJyAmJiAodGhpcy52YWx1ZSB8fCB0aGlzLnRhcmdldFZhbHVlIHx8IHRoaXMudGFyZ2V0TGFiZWwpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgJ1doZW4gdGhlIG1vZGUgaXMgaW5kZXRlcm1pbmF0ZSwgdGhlIHZhbHVlLCB0YXJnZXRWYWx1ZSBhbmQgdGFyZ2V0TGFiZWwgcGFyYW1ldGVycyBhcmUgbm90IGV4cGVjdGVkLicsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJAaWYgKG1vZGUgPT09ICdkZXRlcm1pbmF0ZScpIHtcbiAgICA8cy1wcm9ncmVzc2Jhci1kZXRlcm1pbmF0ZVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbbnVtYmVyRm9ybWF0T3B0aW9uc109XCJudW1iZXJGb3JtYXRPcHRpb25zXCJcbiAgICAgICAgW3RhcmdldFZhbHVlXT1cInRhcmdldFZhbHVlXCJcbiAgICAgICAgW3RhcmdldExhYmVsXT1cInRhcmdldExhYmVsXCJcbiAgICAgICAgW2FjdGl2ZUNvbG9yXT1cImFjdGl2ZUNvbG9yXCJcbiAgICAgICAgW3Nob3dWYWx1ZV09XCJzaG93VmFsdWVcIlxuICAgID5cbiAgICA8L3MtcHJvZ3Jlc3NiYXItZGV0ZXJtaW5hdGU+XG59IEBlbHNlIHtcbiAgICA8cy1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlXG4gICAgICAgIFthY3RpdmVDb2xvcl09XCJhY3RpdmVDb2xvclwiXG4gICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgPlxuICAgIDwvcy1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlPlxufVxuIl19
@@ -4,6 +4,23 @@ import { FormsModule, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
4
4
  import { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';
5
5
  import { RadioButtonRegistryService } from '../services/radio-button-registry.service';
6
6
  import * as i0 from "@angular/core";
7
+ /**
8
+ * @description Componente de botão de opção (radio button) individual que implementa
9
+ * {@link ControlValueAccessor} para integração com formulários Angular.
10
+ * Pode ser usado de forma independente ou agrupado dentro de {@link RadioButtonGroupComponent}
11
+ * para garantir a exclusividade de seleção entre os itens do grupo.
12
+ *
13
+ * @example
14
+ * ```html
15
+ * <s-radiobutton
16
+ * name="opcao"
17
+ * label="Opção A"
18
+ * value="A"
19
+ * [(ngModel)]="selecionado" />
20
+ * ```
21
+ *
22
+ * @category Inputs
23
+ */
7
24
  export class RadioButtonComponent {
8
25
  static ID = 0;
9
26
  radioButtonRegistry = inject(RadioButtonRegistryService);
@@ -16,12 +33,22 @@ export class RadioButtonComponent {
16
33
  onTouched = () => { };
17
34
  checked = null;
18
35
  formItemDisabled = signal(false);
36
+ /** @description Controla o estado desabilitado do botão via two-way binding. @default false */
19
37
  buttonDisabled = model(false);
38
+ /** @description Texto do label exibido ao lado do botão de opção. Campo obrigatório. */
20
39
  label = input.required();
40
+ /** @description Nome do grupo de radio buttons. Deve ser igual para todos os botões do mesmo grupo. Campo obrigatório. */
21
41
  name = input.required();
42
+ /** @description Valor associado a este botão de opção. Emitido ao formulário quando o item é selecionado. Campo obrigatório. */
22
43
  value = model.required();
44
+ /**
45
+ * @description Identificador único do elemento `<input>` interno, usado para acessibilidade.
46
+ * Gerado automaticamente se não informado.
47
+ */
23
48
  inputId = input(`RadioButton_${RadioButtonComponent.ID++}`);
49
+ /** @description Emitido quando o campo interno recebe foco. */
24
50
  focusedInput = output();
51
+ /** @description Emitido quando o campo interno perde o foco. */
25
52
  inputFocusLost = output();
26
53
  registerOnChange(fn) {
27
54
  this.onChange = fn;
@@ -79,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
79
106
  },
80
107
  ], template: "<div\n class=\"flex items-center gap-3\"\n (sInteractiveContent)=\"activedContent($event)\"\n [stopPropagation]=\"true\"\n [disabled]=\"disabled()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n>\n <input\n type=\"radio\"\n [value]=\"value()\"\n [checked]=\"checked\"\n [name]=\"name()\"\n [id]=\"inputId()\"\n (change)=\"setValue()\"\n [disabled]=\"disabled()\"\n class=\"h-4 w-4 appearance-none rounded-[50%] transition-all ease-in-out disabled:opacity-50\"\n [ngClass]=\"{\n 'border-2 border-primary': checked,\n 'border-[1px] border-grayscale-30': !checked,\n 'cursor-pointer': !disabled(),\n 'focus-within:!border-primary hover:border-[1px] hover:border-[#063951]': !disabled() && checked,\n 'hover:border-grayscale-50': !disabled() && !checked,\n }\"\n [stopPropagation]=\"true\"\n (sInteractiveContent)=\"activedContent($event)\"\n (focus)=\"focusedInput.emit($event)\"\n (blur)=\"inputFocusLost.emit($event)\"\n />\n\n <label\n class=\"font-open-sans m-0 text-sm text-grayscale-90\"\n [disabled]=\"disabled()\"\n (sInteractiveContent)=\"activedContent($event)\"\n [stopPropagation]=\"true\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [ngClass]=\"{\n 'cursor-pointer': !disabled(),\n 'opacity-50': disabled(),\n }\"\n [for]=\"inputId()\"\n >\n {{ label() }}\n </label>\n</div>\n" }]
81
108
  }] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYWRpby1idXR0b24vc3JjL2xpYi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYWRpby1idXR0b24vc3JjL2xpYi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0gsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBZXZGLE1BQU0sT0FBTyxvQkFBb0I7SUFDckIsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDTCxtQkFBbUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN6RCxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sR0FBcUIsSUFBSSxDQUFDO0lBRXRCLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFD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LE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxhQUVqRDt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIGlucHV0LFxuICAgIG1vZGVsLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgb3V0cHV0LFxuICAgIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2ludGVyYWN0aXZlLWNvbnRlbnQnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yYWRpby1idXR0b24tcmVnaXN0cnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1yYWRpb2J1dHRvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIE5nQ2xhc3MsIEludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFkaW9CdXR0b25Db21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgc3RhdGljIElEID0gMDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJhZGlvQnV0dG9uUmVnaXN0cnkgPSBpbmplY3QoUmFkaW9CdXR0b25SZWdpc3RyeVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbkRpc2FibGVkKCkgfHwgdGhpcy5mb3JtSXRlbURpc2FibGVkKCk7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2U6ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIHByb3RlY3RlZCBvblRvdWNoZWQ6ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIHByb3RlY3RlZCBjaGVja2VkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG4gICAgcHJvdGVjdGVkIGZvcm1JdGVtRGlzYWJsZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgYnV0dG9uRGlzYWJsZWQgPSBtb2RlbChmYWxzZSk7XG4gICAgbGFiZWwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgbmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgICB2YWx1ZSA9IG1vZGVsLnJlcXVpcmVkPHVua25vd24+KCk7XG4gICAgaW5wdXRJZCA9IGlucHV0KGBSYWRpb0J1dHRvbl8ke1JhZGlvQnV0dG9uQ29tcG9uZW50LklEKyt9YCk7XG5cbiAgICBmb2N1c2VkSW5wdXQgPSBvdXRwdXQ8Rm9jdXNFdmVudD4oKTtcbiAgICBpbnB1dEZvY3VzTG9zdCA9IG91dHB1dDxGb2N1c0V2ZW50PigpO1xuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1JdGVtRGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gdmFsdWUgPT09IHRoaXMudmFsdWUoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvblJlZ2lzdHJ5LmFkZCh0aGlzLmNvbnRyb2wsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25SZWdpc3RyeS5yZW1vdmUodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XG4gICAgICAgIHRoaXMucmFkaW9CdXR0b25SZWdpc3RyeS5zZWxlY3QodGhpcyk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHRoaXMudmFsdWUoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFjdGl2ZWRDb250ZW50KGV2ZW50OiBFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiXG4gICAgKHNJbnRlcmFjdGl2ZUNvbnRlbnQpPVwiYWN0aXZlZENvbnRlbnQoJGV2ZW50KVwiXG4gICAgW3N0b3BQcm9wYWdhdGlvbl09XCJ0cnVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW3RhYmluZGV4XT1cImRpc2FibGVkKCkgPyAtMSA6IDBcIlxuPlxuICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICBbbmFtZV09XCJuYW1lKClcIlxuICAgICAgICBbaWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJzZXRWYWx1ZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBjbGFzcz1cImgtNCB3LTQgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtWzUwJV0gdHJhbnNpdGlvbi1hbGwgZWFzZS1pbi1vdXQgZGlzYWJsZWQ6b3BhY2l0eS01MFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdib3JkZXItMiBib3JkZXItcHJpbWFyeSc6IGNoZWNrZWQsXG4gICAgICAgICAgICAnYm9yZGVyLVsxcHhdIGJvcmRlci1ncmF5c2NhbGUtMzAnOiAhY2hlY2tlZCxcbiAgICAgICAgICAgICdjdXJzb3ItcG9pbnRlcic6ICFkaXNhYmxlZCgpLFxuICAgICAgICAgICAgJ2ZvY3VzLXdpdGhpbjohYm9yZGVyLXByaW1hcnkgaG92ZXI6Ym9yZGVyLVsxcHhdIGhvdmVyOmJvcmRlci1bIzA2Mzk1MV0nOiAhZGlzYWJsZWQoKSAmJiBjaGVja2VkLFxuICAgICAgICAgICAgJ2hvdmVyOmJvcmRlci1ncmF5c2NhbGUtNTAnOiAhZGlzYWJsZWQoKSAmJiAhY2hlY2tlZCxcbiAgICAgICAgfVwiXG4gICAgICAgIFtzdG9wUHJvcGFnYXRpb25dPVwidHJ1ZVwiXG4gICAgICAgIChzSW50ZXJhY3RpdmVDb250ZW50KT1cImFjdGl2ZWRDb250ZW50KCRldmVudClcIlxuICAgICAgICAoZm9jdXMpPVwiZm9jdXNlZElucHV0LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cImlucHV0Rm9jdXNMb3N0LmVtaXQoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cImZvbnQtb3Blbi1zYW5zIG0tMCB0ZXh0LXNtIHRleHQtZ3JheXNjYWxlLTkwXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAoc0ludGVyYWN0aXZlQ29udGVudCk9XCJhY3RpdmVkQ29udGVudCgkZXZlbnQpXCJcbiAgICAgICAgW3N0b3BQcm9wYWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgW3RhYmluZGV4XT1cImRpc2FibGVkKCkgPyAtMSA6IDBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnY3Vyc29yLXBvaW50ZXInOiAhZGlzYWJsZWQoKSxcbiAgICAgICAgICAgICdvcGFjaXR5LTUwJzogZGlzYWJsZWQoKSxcbiAgICAgICAgfVwiXG4gICAgICAgIFtmb3JdPVwiaW5wdXRJZCgpXCJcbiAgICA+XG4gICAgICAgIHt7IGxhYmVsKCkgfX1cbiAgICA8L2xhYmVsPlxuPC9kaXY+XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYWRpby1idXR0b24vc3JjL2xpYi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYWRpby1idXR0b24vc3JjL2xpYi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0gsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBRXZGOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBY0gsTUFBTSxPQUFPLG9CQUFvQjtJQUNyQixNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNMLG1CQUFtQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3pELFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsT0FBTyxHQUFxQixJQUFJLENBQUM7SUFFdEIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDeEMsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUks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QzlDTCx3Z0RBNENBLDJDRE5jLFdBQVcsK0JBQUUsT0FBTyxvRkFBRSwyQkFBMkI7OzRGQVVsRCxvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsMkJBQTJCLENBQUMsYUFFakQ7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBpbnB1dCxcbiAgICBtb2RlbCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIG91dHB1dCxcbiAgICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW50ZXJhY3RpdmVDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnRlcmFjdGl2ZS1jb250ZW50JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmFkaW8tYnV0dG9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGJvdMOjbyBkZSBvcMOnw6NvIChyYWRpbyBidXR0b24pIGluZGl2aWR1YWwgcXVlIGltcGxlbWVudGFcbiAqIHtAbGluayBDb250cm9sVmFsdWVBY2Nlc3Nvcn0gcGFyYSBpbnRlZ3Jhw6fDo28gY29tIGZvcm11bMOhcmlvcyBBbmd1bGFyLlxuICogUG9kZSBzZXIgdXNhZG8gZGUgZm9ybWEgaW5kZXBlbmRlbnRlIG91IGFncnVwYWRvIGRlbnRybyBkZSB7QGxpbmsgUmFkaW9CdXR0b25Hcm91cENvbXBvbmVudH1cbiAqIHBhcmEgZ2FyYW50aXIgYSBleGNsdXNpdmlkYWRlIGRlIHNlbGXDp8OjbyBlbnRyZSBvcyBpdGVucyBkbyBncnVwby5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtcmFkaW9idXR0b25cbiAqICAgbmFtZT1cIm9wY2FvXCJcbiAqICAgbGFiZWw9XCJPcMOnw6NvIEFcIlxuICogICB2YWx1ZT1cIkFcIlxuICogICBbKG5nTW9kZWwpXT1cInNlbGVjaW9uYWRvXCIgLz5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBJbnB1dHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXJhZGlvYnV0dG9uJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgTmdDbGFzcywgSW50ZXJhY3RpdmVDb250ZW50RGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0J1dHRvbkNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgSUQgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmFkaW9CdXR0b25SZWdpc3RyeSA9IGluamVjdChSYWRpb0J1dHRvblJlZ2lzdHJ5U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBkaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uRGlzYWJsZWQoKSB8fCB0aGlzLmZvcm1JdGVtRGlzYWJsZWQoKTtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCBvbkNoYW5nZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkID0gKCkgPT4ge307XG4gICAgcHJvdGVjdGVkIG9uVG91Y2hlZDogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkID0gKCkgPT4ge307XG4gICAgcHJvdGVjdGVkIGNoZWNrZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgICBwcm90ZWN0ZWQgZm9ybUl0ZW1EaXNhYmxlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbnRyb2xhIG8gZXN0YWRvIGRlc2FiaWxpdGFkbyBkbyBib3TDo28gdmlhIHR3by13YXkgYmluZGluZy4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgICBidXR0b25EaXNhYmxlZCA9IG1vZGVsKGZhbHNlKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gVGV4dG8gZG8gbGFiZWwgZXhpYmlkbyBhbyBsYWRvIGRvIGJvdMOjbyBkZSBvcMOnw6NvLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgbGFiZWwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIE5vbWUgZG8gZ3J1cG8gZGUgcmFkaW8gYnV0dG9ucy4gRGV2ZSBzZXIgaWd1YWwgcGFyYSB0b2RvcyBvcyBib3TDtWVzIGRvIG1lc21vIGdydXBvLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgbmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gVmFsb3IgYXNzb2NpYWRvIGEgZXN0ZSBib3TDo28gZGUgb3DDp8Ojby4gRW1pdGlkbyBhbyBmb3JtdWzDoXJpbyBxdWFuZG8gbyBpdGVtIMOpIHNlbGVjaW9uYWRvLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgdmFsdWUgPSBtb2RlbC5yZXF1aXJlZDx1bmtub3duPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGVsZW1lbnRvIGA8aW5wdXQ+YCBpbnRlcm5vLCB1c2FkbyBwYXJhIGFjZXNzaWJpbGlkYWRlLlxuICAgICAqIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uXG4gICAgICovXG4gICAgaW5wdXRJZCA9IGlucHV0KGBSYWRpb0J1dHRvbl8ke1JhZGlvQnV0dG9uQ29tcG9uZW50LklEKyt9YCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gY2FtcG8gaW50ZXJubyByZWNlYmUgZm9jby4gKi9cbiAgICBmb2N1c2VkSW5wdXQgPSBvdXRwdXQ8Rm9jdXNFdmVudD4oKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyBjYW1wbyBpbnRlcm5vIHBlcmRlIG8gZm9jby4gKi9cbiAgICBpbnB1dEZvY3VzTG9zdCA9IG91dHB1dDxGb2N1c0V2ZW50PigpO1xuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1JdGVtRGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gdmFsdWUgPT09IHRoaXMudmFsdWUoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5yYWRpb0J1dHRvblJlZ2lzdHJ5LmFkZCh0aGlzLmNvbnRyb2wsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25SZWdpc3RyeS5yZW1vdmUodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XG4gICAgICAgIHRoaXMucmFkaW9CdXR0b25SZWdpc3RyeS5zZWxlY3QodGhpcyk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHRoaXMudmFsdWUoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFjdGl2ZWRDb250ZW50KGV2ZW50OiBFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCJcbiAgICAoc0ludGVyYWN0aXZlQ29udGVudCk9XCJhY3RpdmVkQ29udGVudCgkZXZlbnQpXCJcbiAgICBbc3RvcFByb3BhZ2F0aW9uXT1cInRydWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICBbdGFiaW5kZXhdPVwiZGlzYWJsZWQoKSA/IC0xIDogMFwiXG4+XG4gICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSgpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWUoKVwiXG4gICAgICAgIFtpZF09XCJpbnB1dElkKClcIlxuICAgICAgICAoY2hhbmdlKT1cInNldFZhbHVlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIGNsYXNzPVwiaC00IHctNCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1bNTAlXSB0cmFuc2l0aW9uLWFsbCBlYXNlLWluLW91dCBkaXNhYmxlZDpvcGFjaXR5LTUwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2JvcmRlci0yIGJvcmRlci1wcmltYXJ5JzogY2hlY2tlZCxcbiAgICAgICAgICAgICdib3JkZXItWzFweF0gYm9yZGVyLWdyYXlzY2FsZS0zMCc6ICFjaGVja2VkLFxuICAgICAgICAgICAgJ2N1cnNvci1wb2ludGVyJzogIWRpc2FibGVkKCksXG4gICAgICAgICAgICAnZm9jdXMtd2l0aGluOiFib3JkZXItcHJpbWFyeSBob3Zlcjpib3JkZXItWzFweF0gaG92ZXI6Ym9yZGVyLVsjMDYzOTUxXSc6ICFkaXNhYmxlZCgpICYmIGNoZWNrZWQsXG4gICAgICAgICAgICAnaG92ZXI6Ym9yZGVyLWdyYXlzY2FsZS01MCc6ICFkaXNhYmxlZCgpICYmICFjaGVja2VkLFxuICAgICAgICB9XCJcbiAgICAgICAgW3N0b3BQcm9wYWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgKHNJbnRlcmFjdGl2ZUNvbnRlbnQpPVwiYWN0aXZlZENvbnRlbnQoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJmb2N1c2VkSW5wdXQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwiaW5wdXRGb2N1c0xvc3QuZW1pdCgkZXZlbnQpXCJcbiAgICAvPlxuXG4gICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiZm9udC1vcGVuLXNhbnMgbS0wIHRleHQtc20gdGV4dC1ncmF5c2NhbGUtOTBcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIChzSW50ZXJhY3RpdmVDb250ZW50KT1cImFjdGl2ZWRDb250ZW50KCRldmVudClcIlxuICAgICAgICBbc3RvcFByb3BhZ2F0aW9uXT1cInRydWVcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiZGlzYWJsZWQoKSA/IC0xIDogMFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdjdXJzb3ItcG9pbnRlcic6ICFkaXNhYmxlZCgpLFxuICAgICAgICAgICAgJ29wYWNpdHktNTAnOiBkaXNhYmxlZCgpLFxuICAgICAgICB9XCJcbiAgICAgICAgW2Zvcl09XCJpbnB1dElkKClcIlxuICAgID5cbiAgICAgICAge3sgbGFiZWwoKSB9fVxuICAgIDwvbGFiZWw+XG48L2Rpdj5cbiJdfQ==
@@ -4,13 +4,39 @@ import { randomHash } from '@seniorsistemas/angular-components/utils';
4
4
  import { RadioButtonComponent } from '../radio-button/radio-button.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/forms";
7
+ /**
8
+ * @description Componente de grupo de botões de opção (radio button group) que gerencia
9
+ * a seleção exclusiva entre múltiplas opções. Implementa {@link ControlValueAccessor}
10
+ * para uso com Reactive Forms e Template-driven Forms do Angular.
11
+ * Renderiza internamente componentes {@link RadioButtonComponent} para cada item configurado.
12
+ *
13
+ * @example
14
+ * ```html
15
+ * <s-radiobutton-group
16
+ * formControlName="opcao"
17
+ * inputName="plano"
18
+ * [items]="planos"
19
+ * viewMode="vertical" />
20
+ * ```
21
+ *
22
+ * @category Inputs
23
+ */
7
24
  export class RadioButtonGroupComponent {
8
25
  onChange = () => { };
9
26
  onTouched = () => { };
10
27
  modelValue = signal(undefined);
28
+ /** @description Controla o estado desabilitado de todos os botões do grupo via two-way binding. @default false */
11
29
  disabled = model(false);
30
+ /** @description Lista de itens que serão renderizados como opções do grupo. Campo obrigatório. */
12
31
  items = input.required();
32
+ /** @description Atributo `name` compartilhado entre todos os radio buttons do grupo, garantindo exclusividade. Campo obrigatório. */
13
33
  inputName = input.required();
34
+ /**
35
+ * @description Direção de layout dos botões de opção.
36
+ * `'horizontal'` exibe os botões lado a lado; `'vertical'` os empilha.
37
+ *
38
+ * @default 'horizontal'
39
+ */
14
40
  viewMode = input('horizontal');
15
41
  registerOnChange(fn) {
16
42
  this.onChange = fn;
@@ -59,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
59
85
  },
60
86
  ], template: "<section\n class=\"flex gap-2\"\n [class.flex-col]=\"viewMode() === 'horizontal'\"\n>\n @for (radioButtonItem of radioButtonItems(); track radioButtonItem.hash) {\n @let itemDisabled = disabled() ? true : radioButtonItem.disabled || false;\n\n <s-radiobutton\n [(ngModel)]=\"modelValue\"\n (ngModelChange)=\"setValue($event)\"\n [value]=\"radioButtonItem.value\"\n [buttonDisabled]=\"itemDisabled\"\n [name]=\"inputName()\"\n [label]=\"radioButtonItem.label\"\n >\n </s-radiobutton>\n }\n</section>\n" }]
61
87
  }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYWRpby1idXR0b24vc3JjL2xpYi9yYWRpby1idXR0b24tZ3JvdXAvcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYWRpby1idXR0b24vc3JjL2xpYi9yYWRpby1idXR0b24tZ3JvdXAvcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBZ0I5RSxNQUFNLE9BQU8seUJBQXlCO0lBQ3hCLFFBQVEsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzlDLFNBQVMsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQy9DLFVBQVUsR0FBRyxNQUFNLENBQVUsU0FBUyxDQUFDLENBQUM7SUFFekMsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBMEIsQ0FBQztJQUNqRCxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3JDLFFBQVEsR0FBRyxLQUFLLENBQTRCLFlBQVksQ0FBQyxDQUFDO0lBRW5FLGdCQUFnQixDQUFDLEVBQTRCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVTLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RCLE9BQU87Z0JBQ0gsR0FBRyxJQUFJO2dCQUNQLElBQUksRUFBRSxVQUFVLEVBQUU7YUFDckIsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYztRQUM3QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7d0dBM0NRLHlCQUF5Qjs0RkFBekIseUJBQXlCLG1uQkFSdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osMEJDakJMLGdtQkFrQkEsMkNEVGMsV0FBVywrVkFBRSxvQkFBb0I7OzRGQVVsQyx5QkFBeUI7a0JBYnJDLFNBQVM7K0JBQ0kscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxhQUVqQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBmb3J3YXJkUmVmLCBpbnB1dCwgbW9kZWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHJhbmRvbUhhc2ggfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Hcm91cEl0ZW0gfSBmcm9tICcuL21vZGVscy9yYWRpby1idXR0b24tZ3JvdXAubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXJhZGlvYnV0dG9uLWdyb3VwJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmFkaW9CdXR0b25Db21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQnV0dG9uR3JvdXBDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2U6ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIHByb3RlY3RlZCBvblRvdWNoZWQ6ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIHByb3RlY3RlZCBtb2RlbFZhbHVlID0gc2lnbmFsPHVua25vd24+KHVuZGVmaW5lZCk7XG5cbiAgICByZWFkb25seSBkaXNhYmxlZCA9IG1vZGVsKGZhbHNlKTtcbiAgICByZWFkb25seSBpdGVtcyA9IGlucHV0LnJlcXVpcmVkPFJhZGlvQnV0dG9uR3JvdXBJdGVtW10+KCk7XG4gICAgcmVhZG9ubHkgaW5wdXROYW1lID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICAgIHJlYWRvbmx5IHZpZXdNb2RlID0gaW5wdXQ8J2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJz4oJ2hvcml6b250YWwnKTtcblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZC5zZXQoaXNEaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsVmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmFkaW9CdXR0b25JdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zKCk7XG4gICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICBoYXNoOiByYW5kb21IYXNoKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCBzZXRWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQodmFsdWUpO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uXG4gICAgY2xhc3M9XCJmbGV4IGdhcC0yXCJcbiAgICBbY2xhc3MuZmxleC1jb2xdPVwidmlld01vZGUoKSA9PT0gJ2hvcml6b250YWwnXCJcbj5cbiAgICBAZm9yIChyYWRpb0J1dHRvbkl0ZW0gb2YgcmFkaW9CdXR0b25JdGVtcygpOyB0cmFjayByYWRpb0J1dHRvbkl0ZW0uaGFzaCkge1xuICAgICAgICBAbGV0IGl0ZW1EaXNhYmxlZCA9IGRpc2FibGVkKCkgPyB0cnVlIDogcmFkaW9CdXR0b25JdGVtLmRpc2FibGVkIHx8IGZhbHNlO1xuXG4gICAgICAgIDxzLXJhZGlvYnV0dG9uXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsVmFsdWVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwicmFkaW9CdXR0b25JdGVtLnZhbHVlXCJcbiAgICAgICAgICAgIFtidXR0b25EaXNhYmxlZF09XCJpdGVtRGlzYWJsZWRcIlxuICAgICAgICAgICAgW25hbWVdPVwiaW5wdXROYW1lKClcIlxuICAgICAgICAgICAgW2xhYmVsXT1cInJhZGlvQnV0dG9uSXRlbS5sYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgPC9zLXJhZGlvYnV0dG9uPlxuICAgIH1cbjwvc2VjdGlvbj5cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYWRpby1idXR0b24vc3JjL2xpYi9yYWRpby1idXR0b24tZ3JvdXAvcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYWRpby1idXR0b24vc3JjL2xpYi9yYWRpby1idXR0b24tZ3JvdXAvcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBRzlFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBY0gsTUFBTSxPQUFPLHlCQUF5QjtJQUN4QixRQUFRLEdBQTZCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUM5QyxTQUFTLEdBQTZCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUMvQyxVQUFVLEdBQUcsTUFBTSxDQUFVLFNBQVMsQ0FBQyxDQUFDO0lBRWxELGtIQUFrSDtJQUN6RyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpDLGtHQUFrRztJQUN6RixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBMEIsQ0FBQztJQUUxRCxxSUFBcUk7SUFDNUgsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUU5Qzs7Ozs7T0FLRztJQUNNLFFBQVEsR0FBRyxLQUFLLENBQTRCLFlBQVksQ0FBQyxDQUFDO0lBRW5FLGdCQUFnQixDQUFDLEVBQTRCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVTLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RCLE9BQU87Z0JBQ0gsR0FBRyxJQUFJO2dCQUNQLElBQUksRUFBRSxVQUFVLEVBQUU7YUFDckIsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYztRQUM3QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7d0dBdkRRLHlCQUF5Qjs0RkFBekIseUJBQXlCLG1uQkFSdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osMEJDbENMLGdtQkFrQkEsMkNEUWMsV0FBVywrVkFBRSxvQkFBb0I7OzRGQVVsQyx5QkFBeUI7a0JBYnJDLFNBQVM7K0JBQ0kscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxhQUVqQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBmb3J3YXJkUmVmLCBpbnB1dCwgbW9kZWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHJhbmRvbUhhc2ggfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Hcm91cEl0ZW0gfSBmcm9tICcuL21vZGVscy9yYWRpby1idXR0b24tZ3JvdXAubW9kZWxzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBncnVwbyBkZSBib3TDtWVzIGRlIG9ww6fDo28gKHJhZGlvIGJ1dHRvbiBncm91cCkgcXVlIGdlcmVuY2lhXG4gKiBhIHNlbGXDp8OjbyBleGNsdXNpdmEgZW50cmUgbcO6bHRpcGxhcyBvcMOnw7Vlcy4gSW1wbGVtZW50YSB7QGxpbmsgQ29udHJvbFZhbHVlQWNjZXNzb3J9XG4gKiBwYXJhIHVzbyBjb20gUmVhY3RpdmUgRm9ybXMgZSBUZW1wbGF0ZS1kcml2ZW4gRm9ybXMgZG8gQW5ndWxhci5cbiAqIFJlbmRlcml6YSBpbnRlcm5hbWVudGUgY29tcG9uZW50ZXMge0BsaW5rIFJhZGlvQnV0dG9uQ29tcG9uZW50fSBwYXJhIGNhZGEgaXRlbSBjb25maWd1cmFkby5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtcmFkaW9idXR0b24tZ3JvdXBcbiAqICAgZm9ybUNvbnRyb2xOYW1lPVwib3BjYW9cIlxuICogICBpbnB1dE5hbWU9XCJwbGFub1wiXG4gKiAgIFtpdGVtc109XCJwbGFub3NcIlxuICogICB2aWV3TW9kZT1cInZlcnRpY2FsXCIgLz5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBJbnB1dHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXJhZGlvYnV0dG9uLWdyb3VwJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmFkaW9CdXR0b25Db21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQnV0dG9uR3JvdXBDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2U6ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIHByb3RlY3RlZCBvblRvdWNoZWQ6ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIHByb3RlY3RlZCBtb2RlbFZhbHVlID0gc2lnbmFsPHVua25vd24+KHVuZGVmaW5lZCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIENvbnRyb2xhIG8gZXN0YWRvIGRlc2FiaWxpdGFkbyBkZSB0b2RvcyBvcyBib3TDtWVzIGRvIGdydXBvIHZpYSB0d28td2F5IGJpbmRpbmcuIEBkZWZhdWx0IGZhbHNlICovXG4gICAgcmVhZG9ubHkgZGlzYWJsZWQgPSBtb2RlbChmYWxzZSk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIExpc3RhIGRlIGl0ZW5zIHF1ZSBzZXLDo28gcmVuZGVyaXphZG9zIGNvbW8gb3DDp8O1ZXMgZG8gZ3J1cG8uIENhbXBvIG9icmlnYXTDs3Jpby4gKi9cbiAgICByZWFkb25seSBpdGVtcyA9IGlucHV0LnJlcXVpcmVkPFJhZGlvQnV0dG9uR3JvdXBJdGVtW10+KCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEF0cmlidXRvIGBuYW1lYCBjb21wYXJ0aWxoYWRvIGVudHJlIHRvZG9zIG9zIHJhZGlvIGJ1dHRvbnMgZG8gZ3J1cG8sIGdhcmFudGluZG8gZXhjbHVzaXZpZGFkZS4gQ2FtcG8gb2JyaWdhdMOzcmlvLiAqL1xuICAgIHJlYWRvbmx5IGlucHV0TmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEaXJlw6fDo28gZGUgbGF5b3V0IGRvcyBib3TDtWVzIGRlIG9ww6fDo28uXG4gICAgICogYCdob3Jpem9udGFsJ2AgZXhpYmUgb3MgYm90w7VlcyBsYWRvIGEgbGFkbzsgYCd2ZXJ0aWNhbCdgIG9zIGVtcGlsaGEuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnaG9yaXpvbnRhbCdcbiAgICAgKi9cbiAgICByZWFkb25seSB2aWV3TW9kZSA9IGlucHV0PCdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc+KCdob3Jpem9udGFsJyk7XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHVua25vd24pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbFZhbHVlLnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJhZGlvQnV0dG9uSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpO1xuICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgaGFzaDogcmFuZG9tSGFzaCgpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgc2V0VmFsdWUodmFsdWU6IHVua25vd24pIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHZhbHVlKTtcbiAgICB9XG59XG5cbiIsIjxzZWN0aW9uXG4gICAgY2xhc3M9XCJmbGV4IGdhcC0yXCJcbiAgICBbY2xhc3MuZmxleC1jb2xdPVwidmlld01vZGUoKSA9PT0gJ2hvcml6b250YWwnXCJcbj5cbiAgICBAZm9yIChyYWRpb0J1dHRvbkl0ZW0gb2YgcmFkaW9CdXR0b25JdGVtcygpOyB0cmFjayByYWRpb0J1dHRvbkl0ZW0uaGFzaCkge1xuICAgICAgICBAbGV0IGl0ZW1EaXNhYmxlZCA9IGRpc2FibGVkKCkgPyB0cnVlIDogcmFkaW9CdXR0b25JdGVtLmRpc2FibGVkIHx8IGZhbHNlO1xuXG4gICAgICAgIDxzLXJhZGlvYnV0dG9uXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsVmFsdWVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwicmFkaW9CdXR0b25JdGVtLnZhbHVlXCJcbiAgICAgICAgICAgIFtidXR0b25EaXNhYmxlZF09XCJpdGVtRGlzYWJsZWRcIlxuICAgICAgICAgICAgW25hbWVdPVwiaW5wdXROYW1lKClcIlxuICAgICAgICAgICAgW2xhYmVsXT1cInJhZGlvQnV0dG9uSXRlbS5sYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgPC9zLXJhZGlvYnV0dG9uPlxuICAgIH1cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -1,11 +1,39 @@
1
- import { Component, Input, forwardRef } from "@angular/core";
2
- import { NG_VALUE_ACCESSOR } from "@angular/forms";
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
+ /**
6
+ * @description Componente de escala de avaliação que permite ao usuário selecionar um nó de uma escala visual.
7
+ * Implementa `ControlValueAccessor` para integração com Reactive Forms e Template-Driven Forms.
8
+ * Ideal para pesquisas de satisfação (NPS, CSAT) e questionários de feedback.
9
+ *
10
+ * @example
11
+ * ```html
12
+ * <s-rating-scale
13
+ * [nodes]="ratingNodes"
14
+ * startLabel="Péssimo"
15
+ * endLabel="Ótimo"
16
+ * [(ngModel)]="rating"
17
+ * />
18
+ * ```
19
+ *
20
+ * @category Feedback
21
+ */
5
22
  export class RatingScaleComponent {
23
+ /**
24
+ * @description Lista de nós que compõem a escala de avaliação. Campo obrigatório.
25
+ * Cada `RatingScaleNode` define o valor, rótulo e cor do item na escala.
26
+ */
6
27
  nodes;
28
+ /** @description Rótulo exibido no início (extremidade esquerda) da escala. */
7
29
  startLabel;
30
+ /** @description Rótulo exibido no final (extremidade direita) da escala. */
8
31
  endLabel;
32
+ /**
33
+ * @description Quando `true`, a escala fica desabilitada e o usuário não pode selecionar nenhum nó.
34
+ *
35
+ * @default false
36
+ */
9
37
  disabled = false;
10
38
  value;
11
39
  _onChange;
@@ -28,19 +56,23 @@ export class RatingScaleComponent {
28
56
  }
29
57
  }
30
58
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RatingScaleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RatingScaleComponent, selector: "s-rating-scale", inputs: { nodes: "nodes", startLabel: "startLabel", endLabel: "endLabel", disabled: "disabled" }, providers: [{
59
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RatingScaleComponent, selector: "s-rating-scale", inputs: { nodes: "nodes", startLabel: "startLabel", endLabel: "endLabel", disabled: "disabled" }, providers: [
60
+ {
32
61
  provide: NG_VALUE_ACCESSOR,
33
62
  useExisting: forwardRef(() => RatingScaleComponent),
34
63
  multi: true,
35
- }], ngImport: i0, template: "<div\n class=\"rating-scale\"\n [ngClass]=\"{ 'rating-scale--disabled': disabled }\">\n <div class=\"nodes\">\n @for (node of nodes; track node.id) {\n <button\n class=\"node\"\n [ngClass]=\"{ 'node--selected': value?.id === node.id && !disabled }\"\n tabindex=\"0\"\n (click)=\"onSelect(node)\">\n @if (node.icon) {\n <span\n class=\"icon fas\"\n [ngClass]=\"node.icon\">\n </span>\n }\n @if (node.title) {\n <span class=\"label\">{{ node.title }}</span>\n }\n </button>\n }\n </div>\n <div class=\"labels\">\n <span>{{ startLabel }}</span>\n <span>{{ endLabel }}</span>\n </div>\n</div>", styles: [".rating-scale{display:flex;flex-direction:column}.rating-scale .nodes{display:flex}.rating-scale .nodes .node{align-items:center;background-color:#fff;border-color:#7892a1;border-radius:6px;border-style:solid;border-width:1px;display:flex;flex-grow:1;justify-content:center;margin:0 2px;padding:8px}.rating-scale .nodes .node .icon{color:#6e7280;font-size:1rem}.rating-scale .nodes .node .label{color:#212533;font-size:.875rem;font-weight:400;line-height:150%}.rating-scale .nodes .node .icon,.rating-scale .nodes .node .label{margin:6px}.rating-scale .nodes .node--selected{background-color:#d5e8ec;border-color:#428bca;color:#428bca}.rating-scale .nodes .node:first-child{margin-left:0}.rating-scale .nodes .node:last-child{margin-right:0}.rating-scale .labels{display:flex;justify-content:space-between;padding:12px 0}.rating-scale .labels span{color:#080808;font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:400;line-height:150%}.rating-scale--disabled{opacity:.5}.rating-scale:not(.rating-scale--disabled) .node{cursor:pointer}.rating-scale:not(.rating-scale--disabled) .node:hover{background-color:#dedce5}.rating-scale:not(.rating-scale--disabled) .node:focus{border-width:2px;outline:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
64
+ },
65
+ ], ngImport: i0, template: "<div\n class=\"rating-scale\"\n [ngClass]=\"{ 'rating-scale--disabled': disabled }\">\n <div class=\"nodes\">\n @for (node of nodes; track node.id) {\n <button\n class=\"node\"\n [ngClass]=\"{ 'node--selected': value?.id === node.id && !disabled }\"\n tabindex=\"0\"\n (click)=\"onSelect(node)\">\n @if (node.icon) {\n <span\n class=\"icon fas\"\n [ngClass]=\"node.icon\">\n </span>\n }\n @if (node.title) {\n <span class=\"label\">{{ node.title }}</span>\n }\n </button>\n }\n </div>\n <div class=\"labels\">\n <span>{{ startLabel }}</span>\n <span>{{ endLabel }}</span>\n </div>\n</div>", styles: [".rating-scale{display:flex;flex-direction:column}.rating-scale .nodes{display:flex}.rating-scale .nodes .node{align-items:center;background-color:#fff;border-color:#7892a1;border-radius:6px;border-style:solid;border-width:1px;display:flex;flex-grow:1;justify-content:center;margin:0 2px;padding:8px}.rating-scale .nodes .node .icon{color:#6e7280;font-size:1rem}.rating-scale .nodes .node .label{color:#212533;font-size:.875rem;font-weight:400;line-height:150%}.rating-scale .nodes .node .icon,.rating-scale .nodes .node .label{margin:6px}.rating-scale .nodes .node--selected{background-color:#d5e8ec;border-color:#428bca;color:#428bca}.rating-scale .nodes .node:first-child{margin-left:0}.rating-scale .nodes .node:last-child{margin-right:0}.rating-scale .labels{display:flex;justify-content:space-between;padding:12px 0}.rating-scale .labels span{color:#080808;font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:400;line-height:150%}.rating-scale--disabled{opacity:.5}.rating-scale:not(.rating-scale--disabled) .node{cursor:pointer}.rating-scale:not(.rating-scale--disabled) .node:hover{background-color:#dedce5}.rating-scale:not(.rating-scale--disabled) .node:focus{border-width:2px;outline:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
36
66
  }
37
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RatingScaleComponent, decorators: [{
38
68
  type: Component,
39
- args: [{ selector: "s-rating-scale", providers: [{
69
+ args: [{ selector: 's-rating-scale', providers: [
70
+ {
40
71
  provide: NG_VALUE_ACCESSOR,
41
72
  useExisting: forwardRef(() => RatingScaleComponent),
42
73
  multi: true,
43
- }], template: "<div\n class=\"rating-scale\"\n [ngClass]=\"{ 'rating-scale--disabled': disabled }\">\n <div class=\"nodes\">\n @for (node of nodes; track node.id) {\n <button\n class=\"node\"\n [ngClass]=\"{ 'node--selected': value?.id === node.id && !disabled }\"\n tabindex=\"0\"\n (click)=\"onSelect(node)\">\n @if (node.icon) {\n <span\n class=\"icon fas\"\n [ngClass]=\"node.icon\">\n </span>\n }\n @if (node.title) {\n <span class=\"label\">{{ node.title }}</span>\n }\n </button>\n }\n </div>\n <div class=\"labels\">\n <span>{{ startLabel }}</span>\n <span>{{ endLabel }}</span>\n </div>\n</div>", styles: [".rating-scale{display:flex;flex-direction:column}.rating-scale .nodes{display:flex}.rating-scale .nodes .node{align-items:center;background-color:#fff;border-color:#7892a1;border-radius:6px;border-style:solid;border-width:1px;display:flex;flex-grow:1;justify-content:center;margin:0 2px;padding:8px}.rating-scale .nodes .node .icon{color:#6e7280;font-size:1rem}.rating-scale .nodes .node .label{color:#212533;font-size:.875rem;font-weight:400;line-height:150%}.rating-scale .nodes .node .icon,.rating-scale .nodes .node .label{margin:6px}.rating-scale .nodes .node--selected{background-color:#d5e8ec;border-color:#428bca;color:#428bca}.rating-scale .nodes .node:first-child{margin-left:0}.rating-scale .nodes .node:last-child{margin-right:0}.rating-scale .labels{display:flex;justify-content:space-between;padding:12px 0}.rating-scale .labels span{color:#080808;font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:400;line-height:150%}.rating-scale--disabled{opacity:.5}.rating-scale:not(.rating-scale--disabled) .node{cursor:pointer}.rating-scale:not(.rating-scale--disabled) .node:hover{background-color:#dedce5}.rating-scale:not(.rating-scale--disabled) .node:focus{border-width:2px;outline:none}\n"] }]
74
+ },
75
+ ], template: "<div\n class=\"rating-scale\"\n [ngClass]=\"{ 'rating-scale--disabled': disabled }\">\n <div class=\"nodes\">\n @for (node of nodes; track node.id) {\n <button\n class=\"node\"\n [ngClass]=\"{ 'node--selected': value?.id === node.id && !disabled }\"\n tabindex=\"0\"\n (click)=\"onSelect(node)\">\n @if (node.icon) {\n <span\n class=\"icon fas\"\n [ngClass]=\"node.icon\">\n </span>\n }\n @if (node.title) {\n <span class=\"label\">{{ node.title }}</span>\n }\n </button>\n }\n </div>\n <div class=\"labels\">\n <span>{{ startLabel }}</span>\n <span>{{ endLabel }}</span>\n </div>\n</div>", styles: [".rating-scale{display:flex;flex-direction:column}.rating-scale .nodes{display:flex}.rating-scale .nodes .node{align-items:center;background-color:#fff;border-color:#7892a1;border-radius:6px;border-style:solid;border-width:1px;display:flex;flex-grow:1;justify-content:center;margin:0 2px;padding:8px}.rating-scale .nodes .node .icon{color:#6e7280;font-size:1rem}.rating-scale .nodes .node .label{color:#212533;font-size:.875rem;font-weight:400;line-height:150%}.rating-scale .nodes .node .icon,.rating-scale .nodes .node .label{margin:6px}.rating-scale .nodes .node--selected{background-color:#d5e8ec;border-color:#428bca;color:#428bca}.rating-scale .nodes .node:first-child{margin-left:0}.rating-scale .nodes .node:last-child{margin-right:0}.rating-scale .labels{display:flex;justify-content:space-between;padding:12px 0}.rating-scale .labels span{color:#080808;font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:400;line-height:150%}.rating-scale--disabled{opacity:.5}.rating-scale:not(.rating-scale--disabled) .node{cursor:pointer}.rating-scale:not(.rating-scale--disabled) .node:hover{background-color:#dedce5}.rating-scale:not(.rating-scale--disabled) .node:focus{border-width:2px;outline:none}\n"] }]
44
76
  }], propDecorators: { nodes: [{
45
77
  type: Input,
46
78
  args: [{ required: true }]
@@ -51,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
51
83
  }], disabled: [{
52
84
  type: Input
53
85
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLXNjYWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYXRpbmctc2NhbGUvc3JjL2xpYi9yYXRpbmctc2NhbGUvcmF0aW5nLXNjYWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYXRpbmctc2NhbGUvc3JjL2xpYi9yYXRpbmctc2NhbGUvcmF0aW5nLXNjYWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVl6RSxNQUFNLE9BQU8sb0JBQW9CO0lBRXRCLEtBQUssQ0FBcUI7SUFHMUIsVUFBVSxDQUFVO0lBR3BCLFFBQVEsQ0FBVTtJQUdsQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRWpCLEtBQUssQ0FBbUI7SUFDdkIsU0FBUyxDQUFvQztJQUM3QyxVQUFVLENBQW9DO0lBRS9DLFVBQVUsQ0FBQyxLQUFzQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBQ00sZ0JBQWdCLENBQUMsUUFBMEM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUNNLGlCQUFpQixDQUFDLFNBQTJDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxRQUFRLENBQUMsTUFBdUI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7d0dBbENRLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDJJQU5sQixDQUFDO2dCQUNSLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ2QsQ0FBQywwQkNiTixpM0JBMEJNOzs0RkRYTyxvQkFBb0I7a0JBVmhDLFNBQVM7K0JBQ0ksZ0JBQWdCLGFBR2YsQ0FBQzs0QkFDUixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ2QsQ0FBQzs4QkFJSyxLQUFLO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixVQUFVO3NCQURoQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgUmF0aW5nU2NhbGVOb2RlIH0gZnJvbSBcIi4vbW9kZWxzL3JhdGluZy1zY2FsZS1ub2RlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1yYXRpbmctc2NhbGVcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3JhdGluZy1zY2FsZS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9yYXRpbmctc2NhbGUuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbe1xuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmF0aW5nU2NhbGVDb21wb25lbnQpLFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XSxcbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nU2NhbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgbm9kZXMhOiBSYXRpbmdTY2FsZU5vZGVbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0YXJ0TGFiZWw/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbmRMYWJlbD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgdmFsdWU/OiBSYXRpbmdTY2FsZU5vZGU7XG4gICAgcHJpdmF0ZSBfb25DaGFuZ2U/OiAodmFsdWU6IFJhdGluZ1NjYWxlTm9kZSkgPT4gdm9pZDtcbiAgICBwcml2YXRlIF9vblRvdWNoZWQ/OiAodmFsdWU6IFJhdGluZ1NjYWxlTm9kZSkgPT4gdm9pZDtcblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBSYXRpbmdTY2FsZU5vZGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6ICh2YWx1ZTogUmF0aW5nU2NhbGVOb2RlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICh2YWx1ZTogUmF0aW5nU2NhbGVOb2RlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3QocmF0aW5nOiBSYXRpbmdTY2FsZU5vZGUpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHJhdGluZztcbiAgICAgICAgaWYgKHRoaXMuX29uQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInJhdGluZy1zY2FsZVwiXG4gICAgW25nQ2xhc3NdPVwieyAncmF0aW5nLXNjYWxlLS1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibm9kZXNcIj5cbiAgICAgICAgQGZvciAobm9kZSBvZiBub2RlczsgdHJhY2sgbm9kZS5pZCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm9kZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnbm9kZS0tc2VsZWN0ZWQnOiB2YWx1ZT8uaWQgPT09IG5vZGUuaWQgJiYgIWRpc2FibGVkIH1cIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KG5vZGUpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChub2RlLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbiBmYXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibm9kZS5pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChub2RlLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBub2RlLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxhYmVsc1wiPlxuICAgICAgICA8c3Bhbj57eyBzdGFydExhYmVsIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBlbmRMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLXNjYWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYXRpbmctc2NhbGUvc3JjL2xpYi9yYXRpbmctc2NhbGUvcmF0aW5nLXNjYWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9yYXRpbmctc2NhbGUvc3JjL2xpYi9yYXRpbmctc2NhbGUvcmF0aW5nLXNjYWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV6RTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQWFILE1BQU0sT0FBTyxvQkFBb0I7SUFDN0I7OztPQUdHO0lBRUksS0FBSyxDQUFxQjtJQUVqQyw4RUFBOEU7SUFFdkUsVUFBVSxDQUFVO0lBRTNCLDRFQUE0RTtJQUVyRSxRQUFRLENBQVU7SUFFekI7Ozs7T0FJRztJQUVJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFakIsS0FBSyxDQUFtQjtJQUN2QixTQUFTLENBQW9DO0lBQzdDLFVBQVUsQ0FBb0M7SUFFL0MsVUFBVSxDQUFDLEtBQXNCO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFDTSxnQkFBZ0IsQ0FBQyxRQUEwQztRQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBQ00saUJBQWlCLENBQUMsU0FBMkM7UUFDaEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUF1QjtRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQzt3R0E3Q1Esb0JBQW9COzRGQUFwQixvQkFBb0IsMklBUmxCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLDBCQ2hDTCxpM0JBMEJNOzs0RkRRTyxvQkFBb0I7a0JBWmhDLFNBQVM7K0JBQ0ksZ0JBQWdCLGFBR2Y7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzhCQVFNLEtBQUs7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS2xCLFVBQVU7c0JBRGhCLEtBQUs7Z0JBS0MsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmF0aW5nU2NhbGVOb2RlIH0gZnJvbSAnLi9tb2RlbHMvcmF0aW5nLXNjYWxlLW5vZGUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGVzY2FsYSBkZSBhdmFsaWHDp8OjbyBxdWUgcGVybWl0ZSBhbyB1c3XDoXJpbyBzZWxlY2lvbmFyIHVtIG7DsyBkZSB1bWEgZXNjYWxhIHZpc3VhbC5cbiAqIEltcGxlbWVudGEgYENvbnRyb2xWYWx1ZUFjY2Vzc29yYCBwYXJhIGludGVncmHDp8OjbyBjb20gUmVhY3RpdmUgRm9ybXMgZSBUZW1wbGF0ZS1Ecml2ZW4gRm9ybXMuXG4gKiBJZGVhbCBwYXJhIHBlc3F1aXNhcyBkZSBzYXRpc2Zhw6fDo28gKE5QUywgQ1NBVCkgZSBxdWVzdGlvbsOhcmlvcyBkZSBmZWVkYmFjay5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtcmF0aW5nLXNjYWxlXG4gKiAgIFtub2Rlc109XCJyYXRpbmdOb2Rlc1wiXG4gKiAgIHN0YXJ0TGFiZWw9XCJQw6lzc2ltb1wiXG4gKiAgIGVuZExhYmVsPVwiw5N0aW1vXCJcbiAqICAgWyhuZ01vZGVsKV09XCJyYXRpbmdcIlxuICogLz5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBGZWVkYmFja1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtcmF0aW5nLXNjYWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmF0aW5nLXNjYWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yYXRpbmctc2NhbGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYXRpbmdTY2FsZUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSYXRpbmdTY2FsZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgbsOzcyBxdWUgY29tcMO1ZW0gYSBlc2NhbGEgZGUgYXZhbGlhw6fDo28uIENhbXBvIG9icmlnYXTDs3Jpby5cbiAgICAgKiBDYWRhIGBSYXRpbmdTY2FsZU5vZGVgIGRlZmluZSBvIHZhbG9yLCByw7N0dWxvIGUgY29yIGRvIGl0ZW0gbmEgZXNjYWxhLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIG5vZGVzITogUmF0aW5nU2NhbGVOb2RlW107XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFLDs3R1bG8gZXhpYmlkbyBubyBpbsOtY2lvIChleHRyZW1pZGFkZSBlc3F1ZXJkYSkgZGEgZXNjYWxhLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0YXJ0TGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFLDs3R1bG8gZXhpYmlkbyBubyBmaW5hbCAoZXh0cmVtaWRhZGUgZGlyZWl0YSkgZGEgZXNjYWxhLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVuZExhYmVsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGEgZXNjYWxhIGZpY2EgZGVzYWJpbGl0YWRhIGUgbyB1c3XDoXJpbyBuw6NvIHBvZGUgc2VsZWNpb25hciBuZW5odW0gbsOzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHZhbHVlPzogUmF0aW5nU2NhbGVOb2RlO1xuICAgIHByaXZhdGUgX29uQ2hhbmdlPzogKHZhbHVlOiBSYXRpbmdTY2FsZU5vZGUpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkPzogKHZhbHVlOiBSYXRpbmdTY2FsZU5vZGUpID0+IHZvaWQ7XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogUmF0aW5nU2NhbGVOb2RlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IFJhdGluZ1NjYWxlTm9kZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICAgIH1cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAodmFsdWU6IFJhdGluZ1NjYWxlTm9kZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VsZWN0KHJhdGluZzogUmF0aW5nU2NhbGVOb2RlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSByYXRpbmc7XG4gICAgICAgIGlmICh0aGlzLl9vbkNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBjbGFzcz1cInJhdGluZy1zY2FsZVwiXG4gICAgW25nQ2xhc3NdPVwieyAncmF0aW5nLXNjYWxlLS1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibm9kZXNcIj5cbiAgICAgICAgQGZvciAobm9kZSBvZiBub2RlczsgdHJhY2sgbm9kZS5pZCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm9kZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnbm9kZS0tc2VsZWN0ZWQnOiB2YWx1ZT8uaWQgPT09IG5vZGUuaWQgJiYgIWRpc2FibGVkIH1cIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KG5vZGUpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChub2RlLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbiBmYXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibm9kZS5pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChub2RlLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBub2RlLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxhYmVsc1wiPlxuICAgICAgICA8c3Bhbj57eyBzdGFydExhYmVsIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBlbmRMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==