@seniorsistemas/angular-components 19.0.5 → 19.0.7

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 +35 -17
  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 +29 -11
  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 +18 -18
  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
@@ -1,17 +1,51 @@
1
1
  import { FieldConfig } from './field';
2
+ /**
3
+ * Representa uma opção individual exibida no grupo de radio buttons.
4
+ */
2
5
  export declare class RationButtonOption {
6
+ /** Label do texto exibido ao lado do radio button. */
3
7
  label: string;
8
+ /** Valor associado à opção. Armazenado no modelo quando selecionado. */
4
9
  value?: any;
5
10
  constructor(config: RationButtonOption);
6
11
  }
12
+ /**
13
+ * Configuração para campo de seleção única com radio buttons.
14
+ *
15
+ * Exibe um grupo de radio buttons onde o usuário pode selecionar exatamente uma opção.
16
+ * A lista de opções é definida estaticamente via `options`.
17
+ *
18
+ * Use quando o número de opções é pequeno (até ~5 itens) e todas devem estar visíveis.
19
+ * Para listas longas, prefira `type: 'enum'` com dropdown.
20
+ */
7
21
  export interface RadioButtonFieldConfig extends FieldConfig {
22
+ /** Tipo do campo: sempre `'radioButton'`. */
8
23
  type: 'radioButton';
24
+ /**
25
+ * Quando `true`, os radio buttons são exibidos verticalmente (empilhados).
26
+ * Por padrão, são exibidos horizontalmente.
27
+ */
9
28
  verticalAlignment?: boolean;
29
+ /**
30
+ * Label do botão de limpar a seleção. Exibido quando `showClear: true`.
31
+ * @example 'Limpar'
32
+ */
10
33
  clearLabel?: string;
34
+ /**
35
+ * Lista de opções disponíveis para seleção. Obrigatório.
36
+ * @example [{ label: 'Masculino', value: 'M' }, { label: 'Feminino', value: 'F' }]
37
+ */
11
38
  options: RationButtonOption[];
39
+ /** Callback chamado quando o campo perde o foco. */
12
40
  onBlur?: (event: Event) => void;
41
+ /** Callback chamado quando o campo recebe foco. */
13
42
  onFocus?: (event: FocusEvent) => void;
43
+ /** Callback chamado quando o usuário clica em uma opção. */
14
44
  onClick?: (event: any) => void;
45
+ /**
46
+ * Quando `true`, exibe um botão para limpar a seleção atual.
47
+ * O texto do botão é definido em `clearLabel`.
48
+ */
15
49
  showClear?: boolean;
16
50
  }
17
51
  declare module './field' {
@@ -1,27 +1,90 @@
1
1
  import { BadgeComponent } from '@seniorsistemas/angular-components/badge';
2
2
  import { FieldConfig } from './field';
3
3
  type selectOptionFn = () => SelectOption[];
4
+ /**
5
+ * Configuração para campo de seleção (dropdown/select).
6
+ *
7
+ * Exibe um dropdown com lista de opções estáticas ou dinâmicas.
8
+ * Suporta seleção múltipla, filtro de pesquisa, opções editadas, grupos hierárquicos
9
+ * e badges coloridos por opção.
10
+ *
11
+ * Para listas grandes com busca no servidor, prefira `type: 'autocomplete'` ou `type: 'lookup'`.
12
+ */
4
13
  export interface SelectFieldConfig extends FieldConfig {
14
+ /** Tipo do campo: sempre `'enum'`. */
5
15
  type: 'enum';
16
+ /**
17
+ * Nome da propriedade do objeto de opção usada como label visível.
18
+ * @default 'label'
19
+ */
6
20
  optionLabel?: string;
21
+ /**
22
+ * Nome da propriedade do objeto de opção usada como valor armazenado.
23
+ * @default 'value'
24
+ */
7
25
  optionValue?: string;
26
+ /**
27
+ * Chave única identificadora de cada opção. Usada para rastrear seleção corretamente.
28
+ * @example 'id'
29
+ */
8
30
  dataKey?: string;
31
+ /**
32
+ * Quando `true`, a primeira opção da lista é selecionada automaticamente.
33
+ */
9
34
  autoDisplayFirst?: boolean;
35
+ /**
36
+ * Lista de opções disponíveis. Pode ser um array estático ou uma função que retorna o array.
37
+ * Cada opção pode ter `label`, `value`, `items` (subgrupo) e `badge`.
38
+ * @example [{ label: 'Ativo', value: 'A' }, { label: 'Inativo', value: 'I' }]
39
+ */
10
40
  options: selectOptionFn | SelectOption[];
41
+ /**
42
+ * Quando `true`, permite selecionar múltiplas opções.
43
+ * O valor do campo será um array.
44
+ */
11
45
  multiple?: boolean;
46
+ /**
47
+ * Label exibida no campo quando múltiplas opções forem selecionadas.
48
+ * @example '{0} itens selecionados'
49
+ */
12
50
  multipleSelectedLabel?: string;
51
+ /** Callback chamado quando o usuário clica no dropdown. */
13
52
  onClick?: (event: any) => void;
53
+ /** Callback chamado quando o valor selecionado muda. */
14
54
  onChange?: (event: any) => void;
55
+ /**
56
+ * Mensagem exibida quando a lista está vazia ou a pesquisa não retorna resultados.
57
+ */
15
58
  emptyMessage?: string;
59
+ /**
60
+ * Quando `true`, o campo se torna um combobox editável, permitindo digitar um valor livre
61
+ * além das opções da lista.
62
+ */
16
63
  editable?: boolean;
64
+ /**
65
+ * Quando `true`, exibe um campo de pesquisa interno no dropdown para filtrar as opções.
66
+ */
17
67
  filter?: boolean;
68
+ /**
69
+ * Quando `true`, agrupa as opções por categoria usando a propriedade `items` de cada opção.
70
+ */
18
71
  group?: boolean;
72
+ /**
73
+ * Quando `true`, exibe um botão de limpar a seleção (X) no campo.
74
+ */
19
75
  showClear?: boolean;
20
76
  }
77
+ /**
78
+ * Representa uma opção individual ou grupo de opções no campo `enum`.
79
+ */
21
80
  export type SelectOption = {
81
+ /** Texto exibido na lista de opções. */
22
82
  label: string;
83
+ /** Valor armazenado no modelo ao selecionar esta opção. */
23
84
  value?: any;
85
+ /** Sub-opções para criar grupos hierárquicos (requer `group: true` na config). */
24
86
  items?: SelectOption[];
87
+ /** Badge visual exibido ao lado da opção na lista. */
25
88
  badge?: Partial<Pick<BadgeComponent, 'type' | 'color' | 'iconClass' | 'iconPosition'>>;
26
89
  };
27
90
  declare module './field' {
@@ -1,20 +1,66 @@
1
1
  import { FieldConfig } from './field';
2
+ /**
3
+ * Configuração para campo de controle deslizante (slider).
4
+ *
5
+ * Exibe um slider interativo para seleção de valor numérico dentro de um intervalo.
6
+ * Suporta modo de intervalo (range) com dois pontos de seleção, orientação
7
+ * horizontal/vertical, step configurado e exibição de prefixo/sufixo.
8
+ */
2
9
  export interface SliderFieldConfig extends FieldConfig {
10
+ /** Tipo do campo: sempre `'slider'`. */
3
11
  type: 'slider';
12
+ /** Callback chamado enquanto o usuário arrastar o slider (alteração contínua). */
4
13
  onChange?: (event: any) => void;
14
+ /** Callback chamado quando o usuário solta o slider (fim do arraste). */
5
15
  onSlideEnd?: (event: any) => void;
16
+ /**
17
+ * Quando `true`, exibe dois pontos de seleção para definir um intervalo (min-max).
18
+ * O valor do campo será um array `[min, max]` em vez de um número único.
19
+ */
6
20
  range?: boolean;
21
+ /**
22
+ * Valor mínimo do slider.
23
+ * @default 0
24
+ */
7
25
  min?: number;
26
+ /**
27
+ * Valor máximo do slider.
28
+ * @default 100
29
+ */
8
30
  max?: number;
31
+ /**
32
+ * Incremento de cada passo ao mover o slider.
33
+ * @default 1
34
+ */
9
35
  step?: number;
10
36
  /**
11
- * this property exist on primeng slider, currently not exist in s-slider, when it will be added, this property will be used
37
+ * Orientação do slider.
38
+ * `'horizontal'` — slider na horizontal (padrão).
39
+ * `'vertical'` — slider na vertical.
40
+ * @note suporte vertical pode depender da versão do componente.
12
41
  */
13
42
  orientation: 'horizontal' | 'vertical';
43
+ /**
44
+ * Quando `true`, o slider fica desabilitado (não interativo e sem alteração de valor).
45
+ */
14
46
  disabled?: boolean;
47
+ /**
48
+ * Texto exibido antes do valor do slider (ex: `'R$'`, `'>'`).
49
+ */
15
50
  prefix?: string;
51
+ /**
52
+ * Texto exibido após o valor do slider (ex: `'km'`, `'%'`).
53
+ */
16
54
  suffix?: string;
55
+ /**
56
+ * Texto exibido entre os dois valores quando `range: true`.
57
+ * @default ' - '
58
+ */
17
59
  rangeSeparator?: string;
60
+ /**
61
+ * Valor inicial do slider ao renderizar o formulário.
62
+ * Para modo range, passe um array `[min, max]`.
63
+ */
18
64
  defaultValue?: any;
19
65
  }
20
66
  declare module './field' {
@@ -1,11 +1,34 @@
1
1
  import { JustifyTypes } from '@seniorsistemas/angular-components/star-rating';
2
2
  import { FieldConfig } from './field';
3
3
  type booleanFn = () => boolean;
4
+ /**
5
+ * Configuração para campo de avaliação com estrelas.
6
+ *
7
+ * Renderiza um componente de rating visual com estrelas clicáveis.
8
+ * O valor do campo é um número inteiro correspondente à estrela selecionada.
9
+ */
4
10
  export interface StarRatingFieldConfig extends FieldConfig {
11
+ /** Tipo do campo: sempre `'starRating'`. */
5
12
  type: 'starRating';
13
+ /**
14
+ * Número total de estrelas exibidas.
15
+ * @example 5 para avaliação de 1 a 5 estrelas
16
+ */
6
17
  starRange: number;
18
+ /**
19
+ * Quando `true` ou função que retorna `true`, o componente fica desabilitado (somente leitura).
20
+ * Use função para controle dinâmico baseado no estado do formulário.
21
+ */
7
22
  disabled: boolean | booleanFn;
23
+ /**
24
+ * Alinhamento horizontal das estrelas dentro da célula do formulário.
25
+ * Importado de `@seniorsistemas/angular-components/star-rating`.
26
+ */
8
27
  justifyContent?: JustifyTypes;
28
+ /**
29
+ * Callback chamado quando a estrela selecionada muda.
30
+ * Recebe o valor numérico da estrela clicada.
31
+ */
9
32
  valueChange?: (star: number) => any;
10
33
  }
11
34
  declare module './field' {
@@ -1,14 +1,50 @@
1
1
  import { FieldConfig } from './field';
2
+ /**
3
+ * Configuração para campo de área de texto multilinha.
4
+ *
5
+ * Exibe um textarea com suporte a reconhecimento de voz, controle de linhas/colunas,
6
+ * modo somente-leitura e limite de caracteres.
7
+ *
8
+ * Para funcionalidades de geração de texto por IA, use `type: 'contentGenerator'`.
9
+ */
2
10
  export interface TextAreaFieldConfig extends FieldConfig {
11
+ /** Tipo do campo: sempre `'textArea'`. */
3
12
  type: 'textArea';
13
+ /**
14
+ * Número de colunas de texto do textarea (largura).
15
+ */
4
16
  cols?: number;
17
+ /**
18
+ * Número de linhas visíveis do textarea (altura inicial).
19
+ */
5
20
  rows?: number;
21
+ /**
22
+ * Filtro de teclas aceitas no campo. Aceita regex ou string.
23
+ */
6
24
  keyFilter?: any;
25
+ /**
26
+ * Estilos CSS inline aplicados diretamente no elemento textarea.
27
+ */
7
28
  style?: Partial<CSSStyleDeclaration>;
29
+ /**
30
+ * Função que retorna `true` quando o campo deve estar em modo somente-leitura.
31
+ */
8
32
  readonly?: () => boolean;
33
+ /**
34
+ * Quando `true`, exibe o botão de reconhecimento de voz (speech-to-text).
35
+ */
9
36
  speechRecognition?: boolean;
10
- keepContext: boolean;
37
+ /**
38
+ * Quando `true`, mantém o contexto das interações anteriores de voz/IA.
39
+ */
40
+ keepContext?: boolean;
41
+ /**
42
+ * Texto de placeholder exibido na área de reconhecimento de voz enquanto o microfone está ativo.
43
+ */
11
44
  speechRecognitionPlaceholder?: string;
45
+ /**
46
+ * Número máximo de caracteres permitidos no campo.
47
+ */
12
48
  maxLength?: number;
13
49
  }
14
50
  declare module './field' {
@@ -2,30 +2,93 @@ import { AddonConfig } from '../../addon-config';
2
2
  import { FieldConfig } from './field';
3
3
  type stringFn = () => string;
4
4
  type booleanFn = () => boolean;
5
+ /**
6
+ * Configuração para campos de texto simples.
7
+ *
8
+ * Use `type: 'string'` para texto livre geral.
9
+ * Use `type: 'binary'` para campos que armazenam dados binários como texto (ex: base64).
10
+ *
11
+ * Suporta máscaras de entrada, addons laterais, filtro de caracteres e eventos do input.
12
+ */
5
13
  export interface TextFieldConfig extends FieldConfig {
14
+ /**
15
+ * `'string'` — campo de texto livre padrão.
16
+ * `'binary'` — campo de texto tratado como dado binário (ex: base64 encoding).
17
+ */
6
18
  type: 'string' | 'binary';
19
+ /**
20
+ * Máscara de entrada aplicada ao campo. Pode ser uma string fixa ou uma função que retorna a máscara dinamicamente.
21
+ * Exemplo de máscara: `'999.999.999-99'` (CPF), `'(99) 99999-9999'` (telefone).
22
+ * Quando definida, `leftAddon` e `rightAddon` não funcionam.
23
+ */
7
24
  mask?: stringFn | string;
25
+ /**
26
+ * Função que retorna `true` quando o campo deve estar em modo somente-leitura.
27
+ * Use uma função para controle dinâmico baseado no estado do formulário.
28
+ * @example () => !this.model.editavel
29
+ */
8
30
  readonly?: () => boolean;
31
+ /**
32
+ * Padrão regex para filtrar os caracteres permitidos na digitação.
33
+ * Pode ser uma string de pattern ou uma função que retorna o padrão.
34
+ * Exemplo: `'[a-zA-Z]'` permite apenas letras.
35
+ */
9
36
  characterPattern?: stringFn | string;
37
+ /**
38
+ * Quando `true`, remove os caracteres da máscara do valor enviado ao modelo.
39
+ * Exemplo: com máscara CPF `'999.999.999-99'`, o valor armazenado será apenas os dígitos.
40
+ */
10
41
  unmask?: booleanFn | boolean;
42
+ /**
43
+ * Tipo HTML do input (ex: `'text'`, `'email'`, `'tel'`, `'url'`).
44
+ * Afeta o teclado exibido em dispositivos móveis e a validação nativa do browser.
45
+ */
11
46
  inputType?: string;
47
+ /**
48
+ * Filtro de teclas aceitas no campo. Aceita uma expressão regular ou string.
49
+ * Exemplo: `/[0-9]/` para aceitar apenas números.
50
+ */
12
51
  keyFilter?: any;
13
52
  /**
14
- * only works if 'mask' is disabled!
53
+ * Addon exibido à esquerda do input (ex: ícone, texto, botão).
54
+ * **Não funciona quando `mask` está definida.**
15
55
  */
16
56
  leftAddon?: AddonConfig;
17
57
  /**
18
- * only works if 'mask' is disabled!
58
+ * Addon exibido à direita do input (ex: ícone, texto, botão).
59
+ * **Não funciona quando `mask` está definida.**
19
60
  */
20
61
  rightAddon?: AddonConfig;
62
+ /**
63
+ * Número máximo de caracteres permitidos no campo.
64
+ */
21
65
  maxLength?: string | number;
66
+ /**
67
+ * Controla o autocomplete nativo do browser.
68
+ * `true` ativa o autocomplete; `false` desativa.
69
+ */
22
70
  browserAutocomplete?: boolean;
71
+ /**
72
+ * Estilos CSS inline aplicados diretamente no elemento de input.
73
+ */
23
74
  style?: {
24
75
  [klass: string]: any;
25
76
  };
77
+ /**
78
+ * Callback chamado quando o campo perde o foco.
79
+ */
26
80
  onBlur?: (event: Event) => void;
81
+ /**
82
+ * Callback chamado quando o campo recebe foco.
83
+ */
27
84
  onFocus?: (event: FocusEvent) => void;
85
+ /**
86
+ * Callback chamado quando a máscara é completamente preenchida.
87
+ */
28
88
  onComplete?: (event: FocusEvent) => void;
89
+ /**
90
+ * Callback chamado a cada alteração no valor do input.
91
+ */
29
92
  onInput?: (event: FocusEvent) => void;
30
93
  }
31
94
  declare module './field' {
@@ -3,6 +3,7 @@ export type { FieldsetConfig } from './dynamic-form/configurations/structure/fie
3
3
  export type { SectionConfig } from './dynamic-form/configurations/structure/section';
4
4
  export { FieldLabelComponent } from './dynamic-form/components/field-label/field-label.component';
5
5
  export { LookupComponent } from './dynamic-form/components/lookup/lookup.component';
6
+ export type { LookupSearchRequest } from './dynamic-form/components/lookup/models/lookup-api.model';
6
7
  export type { BaseFieldComponentConfig } from './dynamic-form/form-field/fields/base-field-component';
7
8
  export { type ExpandedDynamicType } from './dynamic-form/configurations/structure/row';
8
9
  export * from './dynamic-form/dynamic-form.component';
@@ -1,6 +1,22 @@
1
1
  import { AfterViewInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * @description Diretiva aplicada a um `p-table` do PrimeNG para corrigir o comportamento
5
+ * de clique fora da célula editável, evitando que cliques em overlays (como dropdowns e modais)
6
+ * fechem indevidamente o modo de edição da célula.
7
+ *
8
+ * @example
9
+ * ```html
10
+ * <p-table sEditableOverlay [table]="dt" #dt>...</p-table>
11
+ * ```
12
+ *
13
+ * @category Overlay
14
+ */
3
15
  export declare class EditableOverlayDirective implements AfterViewInit {
16
+ /**
17
+ * @description Referência direta à instância do `p-table` ao qual a diretiva está aplicada.
18
+ * Utilizada para sobrescrever o comportamento padrão de `bindDocumentEditListener`.
19
+ */
4
20
  table: any;
5
21
  ngAfterViewInit(): void;
6
22
  isFromOverlayTrigger(event: any): any;
@@ -1,20 +1,79 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';
3
3
  import * as i0 from "@angular/core";
4
+ /**
5
+ * @description Componente de estado vazio exibido quando não há conteúdo para mostrar.
6
+ * Apresenta um ícone, título, descrição e até duas ações configuráveis
7
+ * (primária com suporte a tiered menu e secundária simples).
8
+ *
9
+ * @example
10
+ * ```html
11
+ * <s-empty-state
12
+ * title="Nenhum resultado encontrado"
13
+ * description="Tente ajustar os filtros da busca."
14
+ * primaryActionLabel="Criar novo"
15
+ * (primaryAction)="onCreate()"
16
+ * />
17
+ * ```
18
+ *
19
+ * @category Feedback
20
+ */
4
21
  export declare class EmptyStateComponent {
5
22
  static readonly nextIdSeed = 0;
6
23
  private static _nextId;
7
24
  static getNextId(): number;
25
+ /**
26
+ * @description Identificador único do componente. Gerado automaticamente se não informado.
27
+ */
8
28
  id: string;
29
+ /**
30
+ * @description Título principal exibido no estado vazio. Campo obrigatório.
31
+ */
9
32
  title: string;
33
+ /**
34
+ * @description Classe CSS do ícone exibido no estado vazio.
35
+ * Aceita classes de bibliotecas de ícones como Font Awesome.
36
+ *
37
+ * @default 'fa fa-inbox'
38
+ */
10
39
  iconClass: string;
40
+ /**
41
+ * @description Texto descritivo exibido abaixo do título, explicando o motivo do estado vazio
42
+ * ou orientando o usuário sobre as próximas ações.
43
+ */
11
44
  description?: string;
45
+ /**
46
+ * @description Controla a visibilidade do botão de ação primária.
47
+ *
48
+ * @default true
49
+ */
12
50
  showPrimaryAction: boolean;
51
+ /**
52
+ * @description Controla a visibilidade do botão de ação secundária.
53
+ *
54
+ * @default true
55
+ */
13
56
  showSecondaryAction: boolean;
57
+ /**
58
+ * @description Texto do botão de ação primária.
59
+ * Quando `primaryModel` possui itens, o botão exibe um tiered menu ao clicar.
60
+ */
14
61
  primaryActionLabel?: string;
62
+ /** @description Texto do botão de ação secundária. */
15
63
  secondaryActionLabel?: string;
64
+ /**
65
+ * @description Lista de itens para o tiered menu da ação primária.
66
+ * Quando informado com itens, o botão primário exibe um menu de opções
67
+ * ao invés de emitir o evento `primaryAction` diretamente.
68
+ */
16
69
  primaryModel: TieredMenuItemData[];
70
+ /**
71
+ * @description Emitido quando o usuário clica no botão de ação primária e `primaryModel` está vazio.
72
+ */
17
73
  primaryAction: EventEmitter<void>;
74
+ /**
75
+ * @description Emitido quando o usuário clica no botão de ação secundária.
76
+ */
18
77
  secondaryAction: EventEmitter<void>;
19
78
  static ɵfac: i0.ɵɵFactoryDeclaration<EmptyStateComponent, never>;
20
79
  static ɵcmp: i0.ɵɵComponentDeclaration<EmptyStateComponent, "s-empty-state", never, { "id": { "alias": "id"; "required": false; }; "title": { "alias": "title"; "required": true; }; "iconClass": { "alias": "iconClass"; "required": false; }; "description": { "alias": "description"; "required": false; }; "showPrimaryAction": { "alias": "showPrimaryAction"; "required": false; }; "showSecondaryAction": { "alias": "showSecondaryAction"; "required": false; }; "primaryActionLabel": { "alias": "primaryActionLabel"; "required": false; }; "secondaryActionLabel": { "alias": "secondaryActionLabel"; "required": false; }; "primaryModel": { "alias": "primaryModel"; "required": false; }; }, { "primaryAction": "primaryAction"; "secondaryAction": "secondaryAction"; }, never, never, false, never>;
@@ -3,8 +3,33 @@ import { AccordionPanelComponent } from './components/accordion-panel/accordion-
3
3
  import { Subject } from 'rxjs';
4
4
  import { takeUntil } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
+ /**
7
+ * @description Componente de acordeão que gerencia a abertura e o fechamento de painéis
8
+ * {@link AccordionPanelComponent}. Suporta modo de painel único (apenas um aberto por vez)
9
+ * ou modo múltiplo (vários painéis abertos simultaneamente), configurável via input `multiple`.
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <s-accordion [multiple]="false" [activeIndex]="0">
14
+ * <s-accordion-panel header="Seção 1">Conteúdo 1</s-accordion-panel>
15
+ * <s-accordion-panel header="Seção 2">Conteúdo 2</s-accordion-panel>
16
+ * </s-accordion>
17
+ * ```
18
+ *
19
+ * @category Inputs
20
+ */
6
21
  export class AccordionComponent {
22
+ /**
23
+ * @description Índice (ou lista de índices) do(s) painel(is) que devem iniciar abertos.
24
+ * Aceita um número para painel único ou um array de números para o modo múltiplo.
25
+ */
7
26
  activeIndex;
27
+ /**
28
+ * @description Permite que múltiplos painéis estejam abertos ao mesmo tempo.
29
+ * Quando `false`, abrir um painel fecha automaticamente o anterior.
30
+ *
31
+ * @default false
32
+ */
8
33
  multiple = false;
9
34
  panelsComponents;
10
35
  _unsubscribe$ = new Subject();
@@ -87,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
87
112
  type: ContentChildren,
88
113
  args: [AccordionPanelComponent]
89
114
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssR0FJUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFFcEIsV0FBVyxDQUFxQjtJQUdoQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBR2pCLGdCQUFnQixDQUFzQztJQUU1QyxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUM3QyxPQUFPLEdBQThCLEVBQUUsQ0FBQztJQUN4QyxTQUFTLEdBQW1CLEVBQUUsQ0FBQztJQUVoQyxrQkFBa0I7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsWUFB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LENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0F0RlEsa0JBQWtCOzRGQUFsQixrQkFBa0Isa0pBT1YsdUJBQXVCLGtEQzNCNUMsb0VBR0E7OzRGRGlCYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksYUFBYTs4QkFNaEIsV0FBVztzQkFEakIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixlQUFlO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBJbnB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY2NvcmRpb25QYW5lbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLWFjY29yZGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY3RpdmVJbmRleD86IG51bWJlciB8IG51bWJlcltdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uUGFuZWxDb21wb25lbnQpXG4gICAgcHVibGljIHBhbmVsc0NvbXBvbmVudHM/OiBRdWVyeUxpc3Q8QWNjb3JkaW9uUGFuZWxDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9wYW5lbHM6IEFjY29yZGlvblBhbmVsQ29tcG9uZW50W10gPSBbXTtcbiAgICBwcml2YXRlIF9vcGVuU3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBhbmVsc0NvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhbmVscyA9IHRoaXMucGFuZWxzQ29tcG9uZW50cz8udG9BcnJheSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb3BlblN1YnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLl9wYW5lbHMubGVuZ3RoIH0pO1xuXG4gICAgICAgIHRoaXMuX3NldEJlaGF2aW9yKHRoaXMubXVsdGlwbGUpO1xuICAgICAgICB0aGlzLl9zZXR1cFRhYnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snbXVsdGlwbGUnXSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0QmVoYXZpb3IoY2hhbmdlc1snbXVsdGlwbGUnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXR1cFRhYnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9wYW5lbHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFjdGl2ZUluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVGFicyA9IEFycmF5LmlzQXJyYXkodGhpcy5hY3RpdmVJbmRleClcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl9wYW5lbHMuZmlsdGVyKChfLCBpbmRleCkgPT4gKHRoaXMuYWN0aXZlSW5kZXggYXMgbnVtYmVyW10pLmluY2x1ZGVzKGluZGV4KSlcbiAgICAgICAgICAgICAgICAgICAgOiBbdGhpcy5fcGFuZWxzW3RoaXMuYWN0aXZlSW5kZXhdXTtcblxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FjdGl2ZUluZGV4IGRvZXMgbm90IHJlcHJlc2VudCBhbnkgcGFuZWwuJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhY3RpdmVUYWIgb2YgYWN0aXZlVGFicykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZVRhYi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVGFiLmlzT3BlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbG9zZU90aGVyVGFicyhleGNlcHRpb246IG51bWJlcikge1xuICAgICAgICB0aGlzLl9wYW5lbHMuZm9yRWFjaCgocGFuZWwsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IGV4Y2VwdGlvbikge1xuICAgICAgICAgICAgICAgIHBhbmVsLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRCZWhhdmlvcihtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VuYWJsZU11bHRpcGxlUGFuZWxCZWhhdmlvcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW5hYmxlU2luZ2xlUGFuZWxCZWhhdmlvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW5hYmxlU2luZ2xlUGFuZWxCZWhhdmlvcigpIHtcbiAgICAgICAgdGhpcy5fcGFuZWxzLmZvckVhY2goKHBhbmVsLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fb3BlblN1YnNbaW5kZXhdID0gcGFuZWwucGFuZWxPcGVuZWQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jbG9zZU90aGVyVGFicyhpbmRleCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW5hYmxlTXVsdGlwbGVQYW5lbEJlaGF2aW9yKCkge1xuICAgICAgICB0aGlzLl9wYW5lbHMuZm9yRWFjaCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9vcGVuU3Vic1tpbmRleF0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVuU3Vic1tpbmRleF0udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFjY29yZGlvblwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssR0FJUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTNDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBTUgsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQjs7O09BR0c7SUFFSSxXQUFXLENBQXFCO0lBRXZDOzs7OztPQUtHO0lBRUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUdqQixnQkFBZ0IsQ0FBc0M7SUFFNUMsYUFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDN0MsT0FBTyxHQUE4QixFQUFFLENBQUM7SUFDeEMsU0FBUyxHQUFtQixFQUFFLENBQUM7SUFFaEMsa0JBQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDcEQsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUM5RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7b0JBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFFLElBQUksQ0FBQyxXQUF3QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDbkYsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7Z0JBQ2pFLENBQUM7Z0JBRUQsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDdEIsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQzVCLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUFpQjtRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFlBQVksQ0FBQyxRQUFpQjtRQUNsQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLDBCQUEwQjtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN6RixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sNEJBQTRCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBaEdRLGtCQUFrQjs0RkFBbEIsa0JBQWtCLGtKQWlCVix1QkFBdUIsa0RDcEQ1QyxvRUFHQTs7NEZEZ0NhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxhQUFhOzhCQVVoQixXQUFXO3NCQURqQixLQUFLO2dCQVVDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLGVBQWU7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIElucHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFjY29yZGlvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjY29yZGlvbi1wYW5lbC9hY2NvcmRpb24tcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGFjb3JkZcOjbyBxdWUgZ2VyZW5jaWEgYSBhYmVydHVyYSBlIG8gZmVjaGFtZW50byBkZSBwYWluw6lpc1xuICoge0BsaW5rIEFjY29yZGlvblBhbmVsQ29tcG9uZW50fS4gU3Vwb3J0YSBtb2RvIGRlIHBhaW5lbCDDum5pY28gKGFwZW5hcyB1bSBhYmVydG8gcG9yIHZleilcbiAqIG91IG1vZG8gbcO6bHRpcGxvICh2w6FyaW9zIHBhaW7DqWlzIGFiZXJ0b3Mgc2ltdWx0YW5lYW1lbnRlKSwgY29uZmlndXLDoXZlbCB2aWEgaW5wdXQgYG11bHRpcGxlYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtYWNjb3JkaW9uIFttdWx0aXBsZV09XCJmYWxzZVwiIFthY3RpdmVJbmRleF09XCIwXCI+XG4gKiAgIDxzLWFjY29yZGlvbi1wYW5lbCBoZWFkZXI9XCJTZcOnw6NvIDFcIj5Db250ZcO6ZG8gMTwvcy1hY2NvcmRpb24tcGFuZWw+XG4gKiAgIDxzLWFjY29yZGlvbi1wYW5lbCBoZWFkZXI9XCJTZcOnw6NvIDJcIj5Db250ZcO6ZG8gMjwvcy1hY2NvcmRpb24tcGFuZWw+XG4gKiA8L3MtYWNjb3JkaW9uPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IElucHV0c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtYWNjb3JkaW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hY2NvcmRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDDjW5kaWNlIChvdSBsaXN0YSBkZSDDrW5kaWNlcykgZG8ocykgcGFpbmVsKGlzKSBxdWUgZGV2ZW0gaW5pY2lhciBhYmVydG9zLlxuICAgICAqIEFjZWl0YSB1bSBuw7ptZXJvIHBhcmEgcGFpbmVsIMO6bmljbyBvdSB1bSBhcnJheSBkZSBuw7ptZXJvcyBwYXJhIG8gbW9kbyBtw7psdGlwbG8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWN0aXZlSW5kZXg/OiBudW1iZXIgfCBudW1iZXJbXTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQZXJtaXRlIHF1ZSBtw7psdGlwbG9zIHBhaW7DqWlzIGVzdGVqYW0gYWJlcnRvcyBhbyBtZXNtbyB0ZW1wby5cbiAgICAgKiBRdWFuZG8gYGZhbHNlYCwgYWJyaXIgdW0gcGFpbmVsIGZlY2hhIGF1dG9tYXRpY2FtZW50ZSBvIGFudGVyaW9yLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25QYW5lbENvbXBvbmVudClcbiAgICBwdWJsaWMgcGFuZWxzQ29tcG9uZW50cz86IFF1ZXJ5TGlzdDxBY2NvcmRpb25QYW5lbENvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX3BhbmVsczogQWNjb3JkaW9uUGFuZWxDb21wb25lbnRbXSA9IFtdO1xuICAgIHByaXZhdGUgX29wZW5TdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFuZWxzQ29tcG9uZW50cykge1xuICAgICAgICAgICAgdGhpcy5fcGFuZWxzID0gdGhpcy5wYW5lbHNDb21wb25lbnRzPy50b0FycmF5KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vcGVuU3VicyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuX3BhbmVscy5sZW5ndGggfSk7XG5cbiAgICAgICAgdGhpcy5fc2V0QmVoYXZpb3IodGhpcy5tdWx0aXBsZSk7XG4gICAgICAgIHRoaXMuX3NldHVwVGFicygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydtdWx0aXBsZSddKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRCZWhhdmlvcihjaGFuZ2VzWydtdWx0aXBsZSddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldHVwVGFicygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3BhbmVscz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYWN0aXZlSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVUYWJzID0gQXJyYXkuaXNBcnJheSh0aGlzLmFjdGl2ZUluZGV4KVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX3BhbmVscy5maWx0ZXIoKF8sIGluZGV4KSA9PiAodGhpcy5hY3RpdmVJbmRleCBhcyBudW1iZXJbXSkuaW5jbHVkZXMoaW5kZXgpKVxuICAgICAgICAgICAgICAgICAgICA6IFt0aGlzLl9wYW5lbHNbdGhpcy5hY3RpdmVJbmRleF1dO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVRhYnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWN0aXZlSW5kZXggZG9lcyBub3QgcmVwcmVzZW50IGFueSBwYW5lbC4nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFjdGl2ZVRhYiBvZiBhY3RpdmVUYWJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYWN0aXZlVGFiLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVUYWIuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Nsb3NlT3RoZXJUYWJzKGV4Y2VwdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3BhbmVscy5mb3JFYWNoKChwYW5lbCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gZXhjZXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgcGFuZWwuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEJlaGF2aW9yKG11bHRpcGxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5fZW5hYmxlTXVsdGlwbGVQYW5lbEJlaGF2aW9yKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbmFibGVTaW5nbGVQYW5lbEJlaGF2aW9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbmFibGVTaW5nbGVQYW5lbEJlaGF2aW9yKCkge1xuICAgICAgICB0aGlzLl9wYW5lbHMuZm9yRWFjaCgocGFuZWwsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9vcGVuU3Vic1tpbmRleF0gPSBwYW5lbC5wYW5lbE9wZW5lZC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nsb3NlT3RoZXJUYWJzKGluZGV4KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbmFibGVNdWx0aXBsZVBhbmVsQmVoYXZpb3IoKSB7XG4gICAgICAgIHRoaXMuX3BhbmVscy5mb3JFYWNoKChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX29wZW5TdWJzW2luZGV4XSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZW5TdWJzW2luZGV4XS51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJhY2NvcmRpb25cIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==