@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
@@ -6,20 +6,44 @@ import * as i3 from "./components/vertical-timeline/vertical-timeline.component"
6
6
  const HORIZONTAL = 'horizontal';
7
7
  const VERTICAL = 'vertical';
8
8
  const MIN_ITEM_SIZE = 200;
9
+ /**
10
+ * @description Componente de linha do tempo que renderiza itens de forma horizontal
11
+ * ou vertical (ou autodetectável por largura de tela). Suporta navegação entre
12
+ * etapas, destaque do item ativo e modo colapsável para muitos itens.
13
+ *
14
+ * @example
15
+ * ```html
16
+ * <s-timeline
17
+ * [items]="etapas"
18
+ * [activeIndex]="etapaAtiva"
19
+ * direction="horizontal" />
20
+ * ```
21
+ *
22
+ * @category Structure
23
+ */
9
24
  export class TimelineComponent {
10
25
  _innerWidth = 0;
11
26
  _items = [];
12
27
  get items() {
13
28
  return this._items;
14
29
  }
30
+ /**
31
+ * @description Lista de itens da linha do tempo. Campo obrigatório.
32
+ * IDs duplicados são rejeitados com exceção.
33
+ */
15
34
  set items(items) {
16
35
  this._items = items;
17
36
  this.checkDuplicateIds();
18
37
  }
38
+ /** @description Índice ativo (0-based) que define o item em destaque. Campo obrigatório. */
19
39
  activeIndex;
40
+ /** @description Aplica destaque visual ao item ativo. @default true */
20
41
  highlightActiveItem = true;
42
+ /** @description Direção de renderização: `'horizontal'` ou `'vertical'`. @default 'horizontal' */
21
43
  direction = HORIZONTAL;
44
+ /** @description Habilita o modo colapsável quando há muitos itens. @default true */
22
45
  collapsable = true;
46
+ /** @description Rótulo exibido no contador de itens colapsados. @default 'items' */
23
47
  counterLabel = 'items';
24
48
  ngOnInit() {
25
49
  this._innerWidth = window.innerWidth;
@@ -28,8 +52,7 @@ export class TimelineComponent {
28
52
  this._innerWidth = window.innerWidth;
29
53
  }
30
54
  changeToVertical() {
31
- return (this.direction === VERTICAL ||
32
- this._innerWidth / this.items.length < MIN_ITEM_SIZE);
55
+ return this.direction === VERTICAL || this._innerWidth / this.items.length < MIN_ITEM_SIZE;
33
56
  }
34
57
  checkDuplicateIds() {
35
58
  const ids = this.items.map((item) => {
@@ -63,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
63
86
  type: HostListener,
64
87
  args: ['window:resize', ['$event']]
65
88
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RpbWVsaW5lL3NyYy9saWIvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RpbWVsaW5lL3NyYy9saWIvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQUl2RSxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUFDaEMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQztBQU0xQixNQUFNLE9BQU8saUJBQWlCO0lBQ2xCLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsTUFBTSxHQUFtQixFQUFFLENBQUM7SUFFcEMsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUNXLEtBQUssQ0FBQyxLQUFxQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBR00sV0FBVyxDQUFVO0lBR3JCLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUczQixTQUFTLEdBQXdDLFVBQVUsQ0FBQztJQUc1RCxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBR25CLFlBQVksR0FBRyxPQUFPLENBQUM7SUFFdkIsUUFBUTtRQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUN6QyxDQUFDO0lBR00sUUFBUSxDQUFDLENBQU07UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxnQkFBZ0I7UUFDbkIsT0FBTyxDQUNILElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FDdkQsQ0FBQztJQUNOLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7SUFDTCxDQUFDO3dHQXJEUSxpQkFBaUI7NEZBQWpCLGlCQUFpQixzU0NaOUIsb3NCQXNCQTs7NEZEVmEsaUJBQWlCO2tCQUo3QixTQUFTOytCQUNJLFlBQVk7OEJBWVgsS0FBSztzQkFEZixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPbEIsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWxCLG1CQUFtQjtzQkFEekIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQVFDLFFBQVE7c0JBRGQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUaW1lbGluZUl0ZW0gfSBmcm9tICcuL21vZGVscy90aW1lbGluZS1pdGVtJztcblxuY29uc3QgSE9SSVpPTlRBTCA9ICdob3Jpem9udGFsJztcbmNvbnN0IFZFUlRJQ0FMID0gJ3ZlcnRpY2FsJztcbmNvbnN0IE1JTl9JVEVNX1NJWkUgPSAyMDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy10aW1lbGluZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgX2lubmVyV2lkdGggPSAwO1xuICAgIHByaXZhdGUgX2l0ZW1zOiBUaW1lbGluZUl0ZW1bXSA9IFtdO1xuXG4gICAgcHVibGljIGdldCBpdGVtcygpOiBUaW1lbGluZUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICB9XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBzZXQgaXRlbXMoaXRlbXM6IFRpbWVsaW5lSXRlbVtdKSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XG4gICAgICAgIHRoaXMuY2hlY2tEdXBsaWNhdGVJZHMoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBhY3RpdmVJbmRleCE6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhpZ2hsaWdodEFjdGl2ZUl0ZW0gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlyZWN0aW9uOiB0eXBlb2YgSE9SSVpPTlRBTCB8IHR5cGVvZiBWRVJUSUNBTCA9IEhPUklaT05UQUw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2xsYXBzYWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb3VudGVyTGFiZWwgPSAnaXRlbXMnO1xuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uUmVzaXplKF86IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVRvVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9PT0gVkVSVElDQUwgfHxcbiAgICAgICAgICAgIHRoaXMuX2lubmVyV2lkdGggLyB0aGlzLml0ZW1zLmxlbmd0aCA8IE1JTl9JVEVNX1NJWkVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tEdXBsaWNhdGVJZHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlkcyA9IHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKG5ldyBTZXQoaWRzKS5zaXplICE9PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgZHVwbGljYXRlIGlkIHdhcyBmb3VuZCBpbiB0aGUgaXRlbXMgbGlzdCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdj5cbiAgICBAaWYgKGNoYW5nZVRvVmVydGljYWwoKSkge1xuICAgICAgICA8cy12ZXJ0aWNhbC10aW1lbGluZVxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtcz8ubGVuZ3RoXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICBbYWN0aXZlSW5kZXhdPVwiYWN0aXZlSW5kZXhcIlxuICAgICAgICAgICAgW2hpZ2hsaWdodEFjdGl2ZUl0ZW1dPVwiaGlnaGxpZ2h0QWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbY291bnRlckxhYmVsXT1cImNvdW50ZXJMYWJlbFwiXG4gICAgICAgICAgICBbY29sbGFwc2FibGVdPVwiY29sbGFwc2FibGVcIlxuICAgICAgICAgICAgW2hpZ2hsaWdodEFjdGl2ZUl0ZW1dPVwiaGlnaGxpZ2h0QWN0aXZlSXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zLXZlcnRpY2FsLXRpbWVsaW5lPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8cy1ob3Jpem9udGFsLXRpbWVsaW5lXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW1zPy5sZW5ndGhcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICAgICAgICAgIFthY3RpdmVJbmRleF09XCJhY3RpdmVJbmRleFwiXG4gICAgICAgICAgICBbaGlnaGxpZ2h0QWN0aXZlSXRlbV09XCJoaWdobGlnaHRBY3RpdmVJdGVtXCJcbiAgICAgICAgPlxuICAgICAgICA8L3MtaG9yaXpvbnRhbC10aW1lbGluZT5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RpbWVsaW5lL3NyYy9saWIvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RpbWVsaW5lL3NyYy9saWIvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQUl2RSxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUFDaEMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQztBQUUxQjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFDbEIsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNoQixNQUFNLEdBQW1CLEVBQUUsQ0FBQztJQUVwQyxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQXFCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCw0RkFBNEY7SUFFckYsV0FBVyxDQUFVO0lBRTVCLHVFQUF1RTtJQUVoRSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFFbEMsa0dBQWtHO0lBRTNGLFNBQVMsR0FBd0MsVUFBVSxDQUFDO0lBRW5FLG9GQUFvRjtJQUU3RSxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRTFCLG9GQUFvRjtJQUU3RSxZQUFZLEdBQUcsT0FBTyxDQUFDO0lBRXZCLFFBQVE7UUFDWCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDekMsQ0FBQztJQUdNLFFBQVEsQ0FBQyxDQUFNO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7SUFDL0YsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNMLENBQUM7d0dBM0RRLGlCQUFpQjs0RkFBakIsaUJBQWlCLHNTQzNCOUIsb3NCQXNCQTs7NEZES2EsaUJBQWlCO2tCQUo3QixTQUFTOytCQUNJLFlBQVk7OEJBZ0JYLEtBQUs7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBUWxCLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUtsQixtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBS0MsU0FBUztzQkFEZixLQUFLO2dCQUtDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBS0MsWUFBWTtzQkFEbEIsS0FBSztnQkFRQyxRQUFRO3NCQURkLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGltZWxpbmVJdGVtIH0gZnJvbSAnLi9tb2RlbHMvdGltZWxpbmUtaXRlbSc7XG5cbmNvbnN0IEhPUklaT05UQUwgPSAnaG9yaXpvbnRhbCc7XG5jb25zdCBWRVJUSUNBTCA9ICd2ZXJ0aWNhbCc7XG5jb25zdCBNSU5fSVRFTV9TSVpFID0gMjAwO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGxpbmhhIGRvIHRlbXBvIHF1ZSByZW5kZXJpemEgaXRlbnMgZGUgZm9ybWEgaG9yaXpvbnRhbFxuICogb3UgdmVydGljYWwgKG91IGF1dG9kZXRlY3TDoXZlbCBwb3IgbGFyZ3VyYSBkZSB0ZWxhKS4gU3Vwb3J0YSBuYXZlZ2HDp8OjbyBlbnRyZVxuICogZXRhcGFzLCBkZXN0YXF1ZSBkbyBpdGVtIGF0aXZvIGUgbW9kbyBjb2xhcHPDoXZlbCBwYXJhIG11aXRvcyBpdGVucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtdGltZWxpbmVcbiAqICAgW2l0ZW1zXT1cImV0YXBhc1wiXG4gKiAgIFthY3RpdmVJbmRleF09XCJldGFwYUF0aXZhXCJcbiAqICAgZGlyZWN0aW9uPVwiaG9yaXpvbnRhbFwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgU3RydWN0dXJlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy10aW1lbGluZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgX2lubmVyV2lkdGggPSAwO1xuICAgIHByaXZhdGUgX2l0ZW1zOiBUaW1lbGluZUl0ZW1bXSA9IFtdO1xuXG4gICAgcHVibGljIGdldCBpdGVtcygpOiBUaW1lbGluZUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgaXRlbnMgZGEgbGluaGEgZG8gdGVtcG8uIENhbXBvIG9icmlnYXTDs3Jpby5cbiAgICAgKiBJRHMgZHVwbGljYWRvcyBzw6NvIHJlamVpdGFkb3MgY29tIGV4Y2XDp8Ojby5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBzZXQgaXRlbXMoaXRlbXM6IFRpbWVsaW5lSXRlbVtdKSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XG4gICAgICAgIHRoaXMuY2hlY2tEdXBsaWNhdGVJZHMoKTtcbiAgICB9XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIMONbmRpY2UgYXRpdm8gKDAtYmFzZWQpIHF1ZSBkZWZpbmUgbyBpdGVtIGVtIGRlc3RhcXVlLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgYWN0aXZlSW5kZXghOiBudW1iZXI7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEFwbGljYSBkZXN0YXF1ZSB2aXN1YWwgYW8gaXRlbSBhdGl2by4gQGRlZmF1bHQgdHJ1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhpZ2hsaWdodEFjdGl2ZUl0ZW0gPSB0cnVlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEaXJlw6fDo28gZGUgcmVuZGVyaXphw6fDo286IGAnaG9yaXpvbnRhbCdgIG91IGAndmVydGljYWwnYC4gQGRlZmF1bHQgJ2hvcml6b250YWwnICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlyZWN0aW9uOiB0eXBlb2YgSE9SSVpPTlRBTCB8IHR5cGVvZiBWRVJUSUNBTCA9IEhPUklaT05UQUw7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEhhYmlsaXRhIG8gbW9kbyBjb2xhcHPDoXZlbCBxdWFuZG8gaMOhIG11aXRvcyBpdGVucy4gQGRlZmF1bHQgdHJ1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbGxhcHNhYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gUsOzdHVsbyBleGliaWRvIG5vIGNvbnRhZG9yIGRlIGl0ZW5zIGNvbGFwc2Fkb3MuIEBkZWZhdWx0ICdpdGVtcycgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb3VudGVyTGFiZWwgPSAnaXRlbXMnO1xuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uUmVzaXplKF86IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVRvVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gVkVSVElDQUwgfHwgdGhpcy5faW5uZXJXaWR0aCAvIHRoaXMuaXRlbXMubGVuZ3RoIDwgTUlOX0lURU1fU0laRTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tEdXBsaWNhdGVJZHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlkcyA9IHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKG5ldyBTZXQoaWRzKS5zaXplICE9PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgZHVwbGljYXRlIGlkIHdhcyBmb3VuZCBpbiB0aGUgaXRlbXMgbGlzdCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCI8ZGl2PlxuICAgIEBpZiAoY2hhbmdlVG9WZXJ0aWNhbCgpKSB7XG4gICAgICAgIDxzLXZlcnRpY2FsLXRpbWVsaW5lXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW1zPy5sZW5ndGhcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICAgICAgICAgIFthY3RpdmVJbmRleF09XCJhY3RpdmVJbmRleFwiXG4gICAgICAgICAgICBbaGlnaGxpZ2h0QWN0aXZlSXRlbV09XCJoaWdobGlnaHRBY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtjb3VudGVyTGFiZWxdPVwiY291bnRlckxhYmVsXCJcbiAgICAgICAgICAgIFtjb2xsYXBzYWJsZV09XCJjb2xsYXBzYWJsZVwiXG4gICAgICAgICAgICBbaGlnaGxpZ2h0QWN0aXZlSXRlbV09XCJoaWdobGlnaHRBY3RpdmVJdGVtXCJcbiAgICAgICAgPlxuICAgICAgICA8L3MtdmVydGljYWwtdGltZWxpbmU+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxzLWhvcml6b250YWwtdGltZWxpbmVcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbXM/Lmxlbmd0aFwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgW2FjdGl2ZUluZGV4XT1cImFjdGl2ZUluZGV4XCJcbiAgICAgICAgICAgIFtoaWdobGlnaHRBY3RpdmVJdGVtXT1cImhpZ2hsaWdodEFjdGl2ZUl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgIDwvcy1ob3Jpem9udGFsLXRpbWVsaW5lPlxuICAgIH1cbjwvZGl2PlxuIl19
@@ -1,7 +1,27 @@
1
- import { Component, Input, Output, EventEmitter, HostBinding } from "@angular/core"; // Adicionado HostBinding, OnDestroy
1
+ import { Component, Input, Output, EventEmitter, HostBinding } from '@angular/core'; // Adicionado HostBinding, OnDestroy
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * @description Componente individual de notificação (toast) que exibe uma mensagem temporária na tela.
5
+ * Gerencia automaticamente o timer de dismiss quando `toast.sticky` é `false`.
6
+ * Recomenda-se utilizar o `ToastService` para criar e empilhar toasts na aplicação.
7
+ *
8
+ * @example
9
+ * ```html
10
+ * <s-toast [toast]="toastData" (dismiss)="onDismiss()" />
11
+ * ```
12
+ *
13
+ * @category Feedback
14
+ */
3
15
  export class ToastComponent {
16
+ /**
17
+ * @description Objeto com os dados da notificação a ser exibida.
18
+ * Inclui propriedades como `severity`, `summary`, `detail`, `duration` e `sticky`.
19
+ */
4
20
  toast;
21
+ /**
22
+ * @description Emitido quando a notificação é descartada, seja pelo timer automático
23
+ * (ao expirar `toast.duration`) ou pela ação manual do usuário.
24
+ */
5
25
  dismiss = new EventEmitter();
6
26
  isLeaving = false;
7
27
  timer = null;
@@ -34,13 +54,13 @@ export class ToastComponent {
34
54
  }
35
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, decorators: [{
36
56
  type: Component,
37
- args: [{ selector: "s-toast", template: "<div\n class=\"toast\"\n [class.toast--info]=\"toast.severity === 'info'\"\n [class.toast--success]=\"toast.severity === 'success'\"\n [class.toast--warning]=\"toast.severity === 'warning'\"\n [class.toast--error]=\"toast.severity === 'error'\"\n>\n <div class=\"toast-content\">\n <i\n class=\"toast-icon fas fa-info\"\n [class.fa-info]=\"toast.severity === 'info'\"\n [class.fa-check]=\"toast.severity === 'success'\"\n [class.fa-exclamation-triangle]=\"toast.severity === 'warning'\"\n [class.fa-times]=\"toast.severity === 'error'\"\n ></i>\n <div class=\"text-container\">\n @if(toast.title) {\n <span class=\"toast-summary\" [innerHTML]=\"toast.title\"></span>\n }\n @if(toast.text) {\n <span [innerHTML]=\"toast.text\"></span>\n }\n </div>\n </div>\n @if(toast.closable) {\n <button class=\"toast-close-button\" (click)=\"dismissToast()\"><i class=\"fas fa-times\"></i></button>\n }\n</div>\n", styles: [":host{display:block}.toast{align-items:center;animation:fadeInDown .3s forwards;border-left:3px solid #428bca;border-radius:3px;box-shadow:0 1px 5px #00000040;color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;opacity:0;padding:10px 15px;position:relative;transform:translateY(-20px);width:400px}.toast .toast-content{align-items:center;flex-grow:1;display:flex;gap:15px}.toast .toast-content .toast-icon{align-items:center;background-color:#428bca;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.toast .toast-content .text-container{display:flex;flex-direction:column}.toast .toast-content .text-container .toast-summary{font-weight:700}.toast--success{background-color:#e0f0f0;border-left:3px solid #0c9348}.toast--success .toast-content .toast-icon{background-color:#0c9348}.toast--error{background-color:#fef0f0;border-left:3px solid #c13018}.toast--error .toast-content .toast-icon{background-color:#c13018}.toast--info{background-color:#f1f7f8;border-left:3px solid #428bca}.toast--info .toast-content .toast-icon{background-color:#428bca}.toast--warning{background-color:#fef4e3;border-left:3px solid #fcbf10}.toast--warning .toast-content .toast-icon{background-color:#fcbf10;color:#212533}.toast-close-button{background:none;border:none;color:#212533;font-size:1rem;cursor:pointer;margin-left:15px;transition:transform .2s ease-in-out}.toast-close-button:hover{transform:scale(1.1)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}:host.toast--leaving{animation:fadeOutUp .3s forwards}@media (max-width: 440px){.toast{width:calc(100% - 40px)}}\n"] }]
57
+ args: [{ selector: 's-toast', template: "<div\n class=\"toast\"\n [class.toast--info]=\"toast.severity === 'info'\"\n [class.toast--success]=\"toast.severity === 'success'\"\n [class.toast--warning]=\"toast.severity === 'warning'\"\n [class.toast--error]=\"toast.severity === 'error'\"\n>\n <div class=\"toast-content\">\n <i\n class=\"toast-icon fas fa-info\"\n [class.fa-info]=\"toast.severity === 'info'\"\n [class.fa-check]=\"toast.severity === 'success'\"\n [class.fa-exclamation-triangle]=\"toast.severity === 'warning'\"\n [class.fa-times]=\"toast.severity === 'error'\"\n ></i>\n <div class=\"text-container\">\n @if(toast.title) {\n <span class=\"toast-summary\" [innerHTML]=\"toast.title\"></span>\n }\n @if(toast.text) {\n <span [innerHTML]=\"toast.text\"></span>\n }\n </div>\n </div>\n @if(toast.closable) {\n <button class=\"toast-close-button\" (click)=\"dismissToast()\"><i class=\"fas fa-times\"></i></button>\n }\n</div>\n", styles: [":host{display:block}.toast{align-items:center;animation:fadeInDown .3s forwards;border-left:3px solid #428bca;border-radius:3px;box-shadow:0 1px 5px #00000040;color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;opacity:0;padding:10px 15px;position:relative;transform:translateY(-20px);width:400px}.toast .toast-content{align-items:center;flex-grow:1;display:flex;gap:15px}.toast .toast-content .toast-icon{align-items:center;background-color:#428bca;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.toast .toast-content .text-container{display:flex;flex-direction:column}.toast .toast-content .text-container .toast-summary{font-weight:700}.toast--success{background-color:#e0f0f0;border-left:3px solid #0c9348}.toast--success .toast-content .toast-icon{background-color:#0c9348}.toast--error{background-color:#fef0f0;border-left:3px solid #c13018}.toast--error .toast-content .toast-icon{background-color:#c13018}.toast--info{background-color:#f1f7f8;border-left:3px solid #428bca}.toast--info .toast-content .toast-icon{background-color:#428bca}.toast--warning{background-color:#fef4e3;border-left:3px solid #fcbf10}.toast--warning .toast-content .toast-icon{background-color:#fcbf10;color:#212533}.toast-close-button{background:none;border:none;color:#212533;font-size:1rem;cursor:pointer;margin-left:15px;transition:transform .2s ease-in-out}.toast-close-button:hover{transform:scale(1.1)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}:host.toast--leaving{animation:fadeOutUp .3s forwards}@media (max-width: 440px){.toast{width:calc(100% - 40px)}}\n"] }]
38
58
  }], propDecorators: { toast: [{
39
59
  type: Input
40
60
  }], dismiss: [{
41
61
  type: Output
42
62
  }], isLeaving: [{
43
63
  type: HostBinding,
44
- args: ["class.toast--leaving"]
64
+ args: ['class.toast--leaving']
45
65
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sZUFBZSxDQUFDLENBQUMsb0NBQW9DOztBQVE1SSxNQUFNLE9BQU8sY0FBYztJQUVoQixLQUFLLENBQVM7SUFHZCxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUduQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWpCLEtBQUssR0FBeUMsSUFBSSxDQUFDO0lBRXBELFFBQVE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2pDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQjtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQzt3R0F2Q1EsY0FBYzs0RkFBZCxjQUFjLGdMQ1IzQixva0NBNEJBOzs0RkRwQmEsY0FBYztrQkFMMUIsU0FBUzsrQkFDSSxTQUFTOzhCQU1aLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxPQUFPO3NCQURiLE1BQU07Z0JBSUEsU0FBUztzQkFEZixXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiOyAvLyBBZGljaW9uYWRvIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3lcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSBcIi4vdHlwZXMvdG9hc3RcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy10b2FzdFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdG9hc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vdG9hc3QuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvYXN0ITogVG9hc3Q7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZGlzbWlzcyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLnRvYXN0LS1sZWF2aW5nXCIpXG4gICAgcHVibGljIGlzTGVhdmluZyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB0aW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRvYXN0LnN0aWNreSAmJiB0aGlzLnRvYXN0LmR1cmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydERpc21pc3NBbmltYXRpb24oKTtcbiAgICAgICAgICAgIH0sIHRoaXMudG9hc3QuZHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0RGlzbWlzc0FuaW1hdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xlYXZpbmcgPSB0cnVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNtaXNzLmVtaXQoKTtcbiAgICAgICAgfSwgMzAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzbWlzc1RvYXN0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhcnREaXNtaXNzQW5pbWF0aW9uKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidG9hc3RcIlxuICAgIFtjbGFzcy50b2FzdC0taW5mb109XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ2luZm8nXCJcbiAgICBbY2xhc3MudG9hc3QtLXN1Y2Nlc3NdPVwidG9hc3Quc2V2ZXJpdHkgPT09ICdzdWNjZXNzJ1wiXG4gICAgW2NsYXNzLnRvYXN0LS13YXJuaW5nXT1cInRvYXN0LnNldmVyaXR5ID09PSAnd2FybmluZydcIlxuICAgIFtjbGFzcy50b2FzdC0tZXJyb3JdPVwidG9hc3Quc2V2ZXJpdHkgPT09ICdlcnJvcidcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1jb250ZW50XCI+XG4gICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInRvYXN0LWljb24gZmFzIGZhLWluZm9cIlxuICAgICAgICAgICAgW2NsYXNzLmZhLWluZm9dPVwidG9hc3Quc2V2ZXJpdHkgPT09ICdpbmZvJ1wiXG4gICAgICAgICAgICBbY2xhc3MuZmEtY2hlY2tdPVwidG9hc3Quc2V2ZXJpdHkgPT09ICdzdWNjZXNzJ1wiXG4gICAgICAgICAgICBbY2xhc3MuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVdPVwidG9hc3Quc2V2ZXJpdHkgPT09ICd3YXJuaW5nJ1wiXG4gICAgICAgICAgICBbY2xhc3MuZmEtdGltZXNdPVwidG9hc3Quc2V2ZXJpdHkgPT09ICdlcnJvcidcIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIEBpZih0b2FzdC50aXRsZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9hc3Qtc3VtbWFyeVwiIFtpbm5lckhUTUxdPVwidG9hc3QudGl0bGVcIj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYodG9hc3QudGV4dCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwidG9hc3QudGV4dFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmKHRvYXN0LmNsb3NhYmxlKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ0b2FzdC1jbG9zZS1idXR0b25cIiAoY2xpY2spPVwiZGlzbWlzc1RvYXN0KClcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sZUFBZSxDQUFDLENBQUMsb0NBQW9DOztBQUc1STs7Ozs7Ozs7Ozs7R0FXRztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBQ3ZCOzs7T0FHRztJQUVJLEtBQUssQ0FBUztJQUVyQjs7O09BR0c7SUFFSSxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUduQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWpCLEtBQUssR0FBeUMsSUFBSSxDQUFDO0lBRXBELFFBQVE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2pDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQjtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQzt3R0EvQ1EsY0FBYzs0RkFBZCxjQUFjLGdMQ3BCM0Isb2tDQTRCQTs7NEZEUmEsY0FBYztrQkFMMUIsU0FBUzsrQkFDSSxTQUFTOzhCQVVaLEtBQUs7c0JBRFgsS0FBSztnQkFRQyxPQUFPO3NCQURiLE1BQU07Z0JBSUEsU0FBUztzQkFEZixXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsgLy8gQWRpY2lvbmFkbyBIb3N0QmluZGluZywgT25EZXN0cm95XG5pbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4vdHlwZXMvdG9hc3QnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGluZGl2aWR1YWwgZGUgbm90aWZpY2HDp8OjbyAodG9hc3QpIHF1ZSBleGliZSB1bWEgbWVuc2FnZW0gdGVtcG9yw6FyaWEgbmEgdGVsYS5cbiAqIEdlcmVuY2lhIGF1dG9tYXRpY2FtZW50ZSBvIHRpbWVyIGRlIGRpc21pc3MgcXVhbmRvIGB0b2FzdC5zdGlja3lgIMOpIGBmYWxzZWAuXG4gKiBSZWNvbWVuZGEtc2UgdXRpbGl6YXIgbyBgVG9hc3RTZXJ2aWNlYCBwYXJhIGNyaWFyIGUgZW1waWxoYXIgdG9hc3RzIG5hIGFwbGljYcOnw6NvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8cy10b2FzdCBbdG9hc3RdPVwidG9hc3REYXRhXCIgKGRpc21pc3MpPVwib25EaXNtaXNzKClcIiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IEZlZWRiYWNrXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy10b2FzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b2FzdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gT2JqZXRvIGNvbSBvcyBkYWRvcyBkYSBub3RpZmljYcOnw6NvIGEgc2VyIGV4aWJpZGEuXG4gICAgICogSW5jbHVpIHByb3ByaWVkYWRlcyBjb21vIGBzZXZlcml0eWAsIGBzdW1tYXJ5YCwgYGRldGFpbGAsIGBkdXJhdGlvbmAgZSBgc3RpY2t5YC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0b2FzdCE6IFRvYXN0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIGEgbm90aWZpY2HDp8OjbyDDqSBkZXNjYXJ0YWRhLCBzZWphIHBlbG8gdGltZXIgYXV0b23DoXRpY29cbiAgICAgKiAoYW8gZXhwaXJhciBgdG9hc3QuZHVyYXRpb25gKSBvdSBwZWxhIGHDp8OjbyBtYW51YWwgZG8gdXN1w6FyaW8uXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRvYXN0LS1sZWF2aW5nJylcbiAgICBwdWJsaWMgaXNMZWF2aW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudG9hc3Quc3RpY2t5ICYmIHRoaXMudG9hc3QuZHVyYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGlzbWlzc0FuaW1hdGlvbigpO1xuICAgICAgICAgICAgfSwgdGhpcy50b2FzdC5kdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhcnREaXNtaXNzQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTGVhdmluZyA9IHRydWU7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc21pc3MuZW1pdCgpO1xuICAgICAgICB9LCAzMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNtaXNzVG9hc3QoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGFydERpc21pc3NBbmltYXRpb24oKTtcbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBjbGFzcz1cInRvYXN0XCJcbiAgICBbY2xhc3MudG9hc3QtLWluZm9dPVwidG9hc3Quc2V2ZXJpdHkgPT09ICdpbmZvJ1wiXG4gICAgW2NsYXNzLnRvYXN0LS1zdWNjZXNzXT1cInRvYXN0LnNldmVyaXR5ID09PSAnc3VjY2VzcydcIlxuICAgIFtjbGFzcy50b2FzdC0td2FybmluZ109XCJ0b2FzdC5zZXZlcml0eSA9PT0gJ3dhcm5pbmcnXCJcbiAgICBbY2xhc3MudG9hc3QtLWVycm9yXT1cInRvYXN0LnNldmVyaXR5ID09PSAnZXJyb3InXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwidG9hc3QtY29udGVudFwiPlxuICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJ0b2FzdC1pY29uIGZhcyBmYS1pbmZvXCJcbiAgICAgICAgICAgIFtjbGFzcy5mYS1pbmZvXT1cInRvYXN0LnNldmVyaXR5ID09PSAnaW5mbydcIlxuICAgICAgICAgICAgW2NsYXNzLmZhLWNoZWNrXT1cInRvYXN0LnNldmVyaXR5ID09PSAnc3VjY2VzcydcIlxuICAgICAgICAgICAgW2NsYXNzLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXT1cInRvYXN0LnNldmVyaXR5ID09PSAnd2FybmluZydcIlxuICAgICAgICAgICAgW2NsYXNzLmZhLXRpbWVzXT1cInRvYXN0LnNldmVyaXR5ID09PSAnZXJyb3InXCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICBAaWYodG9hc3QudGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvYXN0LXN1bW1hcnlcIiBbaW5uZXJIVE1MXT1cInRvYXN0LnRpdGxlXCI+PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmKHRvYXN0LnRleHQpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInRvYXN0LnRleHRcIj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIEBpZih0b2FzdC5jbG9zYWJsZSkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwidG9hc3QtY2xvc2UtYnV0dG9uXCIgKGNsaWNrKT1cImRpc21pc3NUb2FzdCgpXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+PC9idXR0b24+XG4gICAgfVxuPC9kaXY+XG4iXX0=
@@ -1,13 +1,34 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
+ /**
5
+ * @description Componente de lista de tokens (etiquetas) clicáveis e opcionalmente
6
+ * removíveis. Emite eventos ao selecionar ou remover um token.
7
+ *
8
+ * @example
9
+ * ```html
10
+ * <s-token-list
11
+ * [tokens]="listaDeTokens"
12
+ * [removableTokens]="true"
13
+ * (tokenSelected)="onTokenSelecionado($event)"
14
+ * (tokenRemoved)="onTokenRemovido($event)" />
15
+ * ```
16
+ *
17
+ * @category Summary
18
+ */
4
19
  export class TokenListComponent {
5
20
  static nextId = 0;
21
+ /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
6
22
  id = `s-token-list-${TokenListComponent.nextId++}`;
23
+ /** @description Lista de tokens exibidos. Campo obrigatório. */
7
24
  tokens;
25
+ /** @description Exibe o botão de remoção em cada token. @default false */
8
26
  removableTokens = false;
27
+ /** @description Quando `true`, remove os eventos de ponteiro (hover/clique) dos tokens. @default false */
9
28
  hidePointerEvents = false;
29
+ /** @description Emitido quando o usuário clica em um token não desabilitado. */
10
30
  tokenSelected = new EventEmitter();
31
+ /** @description Emitido quando o usuário remove um token não desabilitado. */
11
32
  tokenRemoved = new EventEmitter();
12
33
  onTokenSelected(token) {
13
34
  if (!token.disabled) {
@@ -39,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
39
60
  }], tokenRemoved: [{
40
61
  type: Output
41
62
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdG9rZW4tbGlzdC9zcmMvbGliL3Rva2VuLWxpc3QvdG9rZW4tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdG9rZW4tbGlzdC9zcmMvbGliL3Rva2VuLWxpc3QvdG9rZW4tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTdkUsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUdsQixFQUFFLEdBQUcsZ0JBQWdCLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFHbkQsTUFBTSxDQUFZO0lBR2xCLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFHeEIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBRzFCLGFBQWEsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUd6RCxZQUFZLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFeEQsZUFBZSxDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNMLENBQUM7d0dBL0JRLGtCQUFrQjs0RkFBbEIsa0JBQWtCLG1QQ1QvQiwrM0JBK0JBOzs0RkR0QmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNJLGNBQWM7OEJBUWpCLEVBQUU7c0JBRFIsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixlQUFlO3NCQURyQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixNQUFNO2dCQUlBLFlBQVk7c0JBRGxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJVG9rZW4gfSBmcm9tICcuL21vZGVscy90b2tlbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy10b2tlbi1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9rZW4tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9rZW4tbGlzdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUb2tlbkxpc3RDb21wb25lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtdG9rZW4tbGlzdC0ke1Rva2VuTGlzdENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgdG9rZW5zITogSVRva2VuW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZW1vdmFibGVUb2tlbnMgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhpZGVQb2ludGVyRXZlbnRzID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdG9rZW5TZWxlY3RlZDogRXZlbnRFbWl0dGVyPElUb2tlbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdG9rZW5SZW1vdmVkOiBFdmVudEVtaXR0ZXI8SVRva2VuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBvblRva2VuU2VsZWN0ZWQodG9rZW46IElUb2tlbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRva2VuLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRva2VuU2VsZWN0ZWQubmV4dCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2tlblJlbW92ZWQodG9rZW46IElUb2tlbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRva2VuLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRva2VuUmVtb3ZlZC5uZXh0KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBbaWRdPVwiaWRcIlxuICAgIGNsYXNzPVwidG9rZW4tbGlzdFwiXG4+XG4gICAgQGZvciAodG9rZW4gb2YgdG9rZW5zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtpZF09XCJ0b2tlbi5pZFwiXG4gICAgICAgICAgICBjbGFzcz1cInRva2VuXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnbm8tcG9pbnRlci1ldmVudHMnOiBoaWRlUG9pbnRlckV2ZW50cyxcbiAgICAgICAgICAgICAgICAndG9rZW4tLWRpc2FibGVkJzogdG9rZW4uZGlzYWJsZWQsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaWRdPVwiKHRva2VuLmlkIHx8ICd0b2tlbicpICsgJy1sYWJlbCdcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidG9rZW4tbGFiZWxcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRva2VuU2VsZWN0ZWQodG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0b2tlbi5sYWJlbCB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgQGlmIChyZW1vdmFibGVUb2tlbnMgJiYgIXRva2VuLm5vdFJlbW92YWJsZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJ0b2tlbi5pZCArICctcmVtb3ZlJ1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFyIGZhLXRpbWVzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9rZW5SZW1vdmVkKHRva2VuKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbjwvZGl2PlxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdG9rZW4tbGlzdC9zcmMvbGliL3Rva2VuLWxpc3QvdG9rZW4tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdG9rZW4tbGlzdC9zcmMvbGliL3Rva2VuLWxpc3QvdG9rZW4tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJdkU7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRXpCLHNHQUFzRztJQUUvRixFQUFFLEdBQUcsZ0JBQWdCLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFFMUQsZ0VBQWdFO0lBRXpELE1BQU0sQ0FBWTtJQUV6QiwwRUFBMEU7SUFFbkUsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUUvQiwwR0FBMEc7SUFFbkcsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBRWpDLGdGQUFnRjtJQUV6RSxhQUFhLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFaEUsOEVBQThFO0lBRXZFLFlBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUV4RCxlQUFlLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQzt3R0FyQ1Esa0JBQWtCOzRGQUFsQixrQkFBa0IsbVBDeEIvQiwrM0JBK0JBOzs0RkRQYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksY0FBYzs4QkFTakIsRUFBRTtzQkFEUixLQUFLO2dCQUtDLE1BQU07c0JBRFosS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS2xCLGVBQWU7c0JBRHJCLEtBQUs7Z0JBS0MsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUtDLGFBQWE7c0JBRG5CLE1BQU07Z0JBS0EsWUFBWTtzQkFEbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElUb2tlbiB9IGZyb20gJy4vbW9kZWxzL3Rva2VuJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBsaXN0YSBkZSB0b2tlbnMgKGV0aXF1ZXRhcykgY2xpY8OhdmVpcyBlIG9wY2lvbmFsbWVudGVcbiAqIHJlbW92w612ZWlzLiBFbWl0ZSBldmVudG9zIGFvIHNlbGVjaW9uYXIgb3UgcmVtb3ZlciB1bSB0b2tlbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtdG9rZW4tbGlzdFxuICogICBbdG9rZW5zXT1cImxpc3RhRGVUb2tlbnNcIlxuICogICBbcmVtb3ZhYmxlVG9rZW5zXT1cInRydWVcIlxuICogICAodG9rZW5TZWxlY3RlZCk9XCJvblRva2VuU2VsZWNpb25hZG8oJGV2ZW50KVwiXG4gKiAgICh0b2tlblJlbW92ZWQpPVwib25Ub2tlblJlbW92aWRvKCRldmVudClcIiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IFN1bW1hcnlcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXRva2VuLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b2tlbi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b2tlbi1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRva2VuTGlzdENvbXBvbmVudCB7XG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBjb21wb25lbnRlIG5vIERPTS4gR2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBzZSBuw6NvIGluZm9ybWFkby4gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzLXRva2VuLWxpc3QtJHtUb2tlbkxpc3RDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgdG9rZW5zIGV4aWJpZG9zLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgdG9rZW5zITogSVRva2VuW107XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIG8gYm90w6NvIGRlIHJlbW/Dp8OjbyBlbSBjYWRhIHRva2VuLiBAZGVmYXVsdCBmYWxzZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlbW92YWJsZVRva2VucyA9IGZhbHNlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCByZW1vdmUgb3MgZXZlbnRvcyBkZSBwb250ZWlybyAoaG92ZXIvY2xpcXVlKSBkb3MgdG9rZW5zLiBAZGVmYXVsdCBmYWxzZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhpZGVQb2ludGVyRXZlbnRzID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gdXN1w6FyaW8gY2xpY2EgZW0gdW0gdG9rZW4gbsOjbyBkZXNhYmlsaXRhZG8uICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHRva2VuU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJVG9rZW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIHJlbW92ZSB1bSB0b2tlbiBuw6NvIGRlc2FiaWxpdGFkby4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdG9rZW5SZW1vdmVkOiBFdmVudEVtaXR0ZXI8SVRva2VuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBvblRva2VuU2VsZWN0ZWQodG9rZW46IElUb2tlbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRva2VuLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRva2VuU2VsZWN0ZWQubmV4dCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2tlblJlbW92ZWQodG9rZW46IElUb2tlbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRva2VuLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRva2VuUmVtb3ZlZC5uZXh0KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiPGRpdlxuICAgIFtpZF09XCJpZFwiXG4gICAgY2xhc3M9XCJ0b2tlbi1saXN0XCJcbj5cbiAgICBAZm9yICh0b2tlbiBvZiB0b2tlbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2lkXT1cInRva2VuLmlkXCJcbiAgICAgICAgICAgIGNsYXNzPVwidG9rZW5cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICduby1wb2ludGVyLWV2ZW50cyc6IGhpZGVQb2ludGVyRXZlbnRzLFxuICAgICAgICAgICAgICAgICd0b2tlbi0tZGlzYWJsZWQnOiB0b2tlbi5kaXNhYmxlZCxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtpZF09XCIodG9rZW4uaWQgfHwgJ3Rva2VuJykgKyAnLWxhYmVsJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0b2tlbi1sYWJlbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9rZW5TZWxlY3RlZCh0b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRva2VuLmxhYmVsIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICBAaWYgKHJlbW92YWJsZVRva2VucyAmJiAhdG9rZW4ubm90UmVtb3ZhYmxlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cInRva2VuLmlkICsgJy1yZW1vdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXIgZmEtdGltZXNcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub2tlblJlbW92ZWQodG9rZW4pXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9kaXY+XG4iXX0=
@@ -3,21 +3,86 @@ import { getElementLeftoverContentAvailable, getElementPositionInfo, isNullOrUnd
3
3
  import { TooltipComponent } from './tooltip.component';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@seniorsistemas/angular-components/common";
6
+ /**
7
+ * @description Diretiva que exibe um tooltip (dica de ferramenta) flutuante ao interagir com o elemento hospedeiro.
8
+ * Posiciona-se automaticamente considerando o espaço disponível na tela.
9
+ * Suporta eventos de hover, click e focus, além de comportamentos customizados para mobile.
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <button sTooltip="Clique aqui" tooltipPosition="top">Ação</button>
14
+ * ```
15
+ *
16
+ * @category Overlay
17
+ */
6
18
  export class TooltipDirective {
7
19
  elementRef;
8
20
  appRef;
9
21
  debounceUtils;
10
22
  renderer;
11
23
  viewContainerRef;
24
+ /**
25
+ * @description Texto exibido no tooltip. Quando vazio ou `undefined`, o tooltip não é renderizado.
26
+ */
12
27
  tooltip;
28
+ /**
29
+ * @description Posição preferencial do tooltip em relação ao elemento hospedeiro.
30
+ * O tooltip se reposiciona automaticamente se não houver espaço suficiente.
31
+ *
32
+ * @default 'top'
33
+ */
13
34
  tooltipPosition = 'top';
35
+ /**
36
+ * @description Tempo em milissegundos antes do tooltip aparecer após o evento de ativação.
37
+ *
38
+ * @default 500
39
+ */
14
40
  showDelay = 500;
41
+ /**
42
+ * @description Tempo em milissegundos que o tooltip permanece visível após aparecer.
43
+ * Quando não informado, o tooltip permanece até o usuário sair do elemento.
44
+ */
15
45
  displayTime;
46
+ /**
47
+ * @description Evento do elemento hospedeiro que dispara a exibição do tooltip.
48
+ * - `'hover'`: exibe ao passar o mouse (padrão).
49
+ * - `'click'`: exibe ao clicar.
50
+ * - `'focus'`: exibe ao focar no elemento.
51
+ *
52
+ * @default 'hover'
53
+ */
16
54
  tooltipEvent = 'hover';
55
+ /**
56
+ * @description Quando `true`, o conteúdo HTML do tooltip é escapado antes de ser renderizado.
57
+ *
58
+ * @default false
59
+ */
17
60
  escape = false;
61
+ /**
62
+ * @description Quando `false`, o tooltip nunca é exibido, mesmo que haja interação do usuário.
63
+ * Útil para desabilitar tooltips dinamicamente.
64
+ *
65
+ * @default true
66
+ */
18
67
  visible = true;
68
+ /**
69
+ * @description Comportamento do tooltip em dispositivos móveis (touch).
70
+ * - `'pressing'`: exibe ao pressionar e manter o toque (padrão).
71
+ * - `'none'`: desabilita o tooltip em dispositivos táteis.
72
+ *
73
+ * @default 'pressing'
74
+ */
19
75
  mobileBehavior = 'pressing';
76
+ /**
77
+ * @description Referência a um input HTML para sincronizar a exibição do tooltip com o foco no campo.
78
+ */
20
79
  focusedInputRef = null;
80
+ /**
81
+ * @description Quando `true`, o tooltip só é exibido se o texto do elemento estiver truncado (overflow).
82
+ * Útil para cells de tabela ou elementos com `text-overflow: ellipsis`.
83
+ *
84
+ * @default false
85
+ */
21
86
  checkTruncatedText = input(false);
22
87
  componentRef = null;
23
88
  showTimeout;
@@ -342,4 +407,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
342
407
  type: HostListener,
343
408
  args: ['touchend']
344
409
  }] } });
345
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcC9zcmMvbGliL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssR0FLUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsa0NBQWtDLEVBQ2xDLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDcEIsTUFBTSwwQ0FBMEMsQ0FBQztBQUlsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTXZELE1BQU0sT0FBTyxnQkFBZ0I7SUFzQ0o7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhDZCxPQUFPLENBQVU7SUFHakIsZUFBZSxHQUFxQixLQUFLLENBQUM7SUFHMUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUdoQixXQUFXLENBQVU7SUFHckIsWUFBWSxHQUFpQixPQUFPLENBQUM7SUFHckMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUdmLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFHZixjQUFjLEdBQW1CLFVBQVUsQ0FBQztJQUc1QyxlQUFlLEdBQTRCLElBQUksQ0FBQztJQUV2RCxrQkFBa0IsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFMUIsWUFBWSxHQUEwQyxJQUFJLENBQUM7SUFDM0QsV0FBVyxDQUFVO0lBQ3JCLFlBQVksQ0FBVTtJQUN0QixpQkFBaUIsR0FBdUIsSUFBSSxDQUFDO0lBQ3BDLDZCQUE2QixDQUFhO0lBQ25ELHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUV0QyxZQUNxQixVQUFzQixFQUN0QixNQUFzQixFQUN0QixhQUE0QixFQUM1QixRQUFtQixFQUNuQixnQkFBa0M7UUFKbEMsZUFBVSxHQUFWLFVB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WUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ25COytMQUdVLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxVQUFVO2dCQUlWLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkE2RUMsT0FBTztzQkFGYixZQUFZO3VCQUFDLE9BQU87O3NCQUNwQixZQUFZO3VCQUFDLFNBQVM7Z0JBWWhCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPO2dCQVFkLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNO2dCQVFiLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsWUFBWTtnQkFTbkIsWUFBWTtzQkFGbEIsWUFBWTt1QkFBQyxZQUFZOztzQkFDekIsWUFBWTt1QkFBQyxPQUFPO2dCQVFkLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsWUFBWTtnQkFZbkIsVUFBVTtzQkFEaEIsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGlucHV0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVib3VuY2VVdGlscyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgZ2V0RWxlbWVudExlZnRvdmVyQ29udGVudEF2YWlsYWJsZSxcbiAgICBnZXRFbGVtZW50UG9zaXRpb25JbmZvLFxuICAgIGlzTnVsbE9yVW5kZWZpbmVkLFxufSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IE1vYmlsZUJlaGF2aW9yIH0gZnJvbSAnLi9tb2RlbHMvbW9iaWxlLWJlaGF2aW9yJztcbmltcG9ydCB7IFRvb2x0aXBFdmVudCB9IGZyb20gJy4vbW9kZWxzL3Rvb2x0aXAtZXZlbnQnO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9ucyB9IGZyb20gJy4vbW9kZWxzL3Rvb2x0aXAtcG9zaXRpb24nO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tzVG9vbHRpcF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdzVG9vbHRpcCcpXG4gICAgcHVibGljIHRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0b29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbnMgPSAndG9wJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dEZWxheSA9IDUwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc3BsYXlUaW1lPzogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnaG92ZXInO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXNjYXBlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2aXNpYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1vYmlsZUJlaGF2aW9yOiBNb2JpbGVCZWhhdmlvciA9ICdwcmVzc2luZyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb2N1c2VkSW5wdXRSZWY6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGNoZWNrVHJ1bmNhdGVkVGV4dCA9IGlucHV0KGZhbHNlKTtcblxuICAgIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VG9vbHRpcENvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHNob3dUaW1lb3V0PzogbnVtYmVyO1xuICAgIHByaXZhdGUgdG91Y2hUaW1lb3V0PzogbnVtYmVyO1xuICAgIHByaXZhdGUgdG9vbHRpcERpdkVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWJvdW5jZUNyZWF0ZVRvb2x0aXBGdW5jdGlvbjogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHRvb2x0aXBDcmVhdGVkQnlGb2N1cyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlVXRpbHM6IERlYm91bmNlVXRpbHMsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICkge1xuICAgICAgICB0aGlzLmRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uID0gdGhpcy5kZWJvdW5jZVV0aWxzLmRlYm91bmNlTGVhZGluZygoKSA9PiB0aGlzLl9jcmVhdGVUb29sdGlwKHRydWUsIHRydWUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLnVwZGF0ZVRvb2x0aXBWaXNpYmlsaXR5V2hlbkZvY3VzT25JbnB1dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFuaXB1bGEgYSB2aXNpYmlsaWRhZGUgZG8gdG9vbHRpcCBxdWFuZG8gaG91dmVyIHVtYSByZWZlcsOqbmNpYSBkZSBpbnB1dC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVRvb2x0aXBWaXNpYmlsaXR5V2hlbkZvY3VzT25JbnB1dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZElucHV0UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dEZvY3VzID0gdGhpcy5mb2N1c2VkSW5wdXRSZWY7XG4gICAgICAgICAgICBjb25zdCBpY29uID0gdGhpcy5nZXRJY29uRnJvbUZvY3VzZWRJbnB1dCgpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oaW5wdXRGb2N1cywgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sdGlwQ3JlYXRlZEJ5Rm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oaW5wdXRGb2N1cywgJ2JsdXInLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVUb29sdGlwKGljb24pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sdGlwQ3JlYXRlZEJ5Rm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9idMOpbSBvIGVsZW1lbnRvIGRvIMOtY29uZSBhc3NvY2lhZG8gYW8gbGFiZWwgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICogQHJldHVybnMgTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJY29uRnJvbUZvY3VzZWRJbnB1dCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgbyB0b29sdGlwIGFzc29jaWFkbyBhbyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICogQHBhcmFtIGljb24gTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZW1vdmVUb29sdGlwKGljb246IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSBpY29uLnF1ZXJ5U2VsZWN0b3IoJy50b29sdGlwJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICh0b29sdGlwKSB7XG4gICAgICAgICAgICB0b29sdGlwLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIGlzIGNsaWNrZWQgSSBkZXN0cm95IHRoZSB0b29sdGlwLlxuICAgIC8vIHdoZW5ldmVyIGEga2V5IGlzIHByZXNzZWQgb24gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicpXG4gICAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcEV2ZW50ID09PSAnaG92ZXInICYmXG4gICAgICAgICAgICAhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQW5kcm9pZC9pKSAmJlxuICAgICAgICAgICAgIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQaG9uZS9pKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09ICdmb2N1cycpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBwdWJsaWMgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09ICdmb2N1cycpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gICAgcHVibGljIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSAnaG92ZXInIHx8IHRoaXMuZm9jdXNlZElucHV0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBASG9zdExpc3RlbmVyKCd3aGVlbCcpXG4gICAgcHVibGljIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCh0aGlzLnRvb2x0aXBFdmVudCA9PT0gJ2hvdmVyJyB8fCB0aGlzLmZvY3VzZWRJbnB1dFJlZikgJiYgIXRoaXMudG9vbHRpcENyZWF0ZWRCeUZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnKVxuICAgIHB1YmxpYyBvblRvdWNoU3RhcnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XG4gICAgICAgICAgICBjb25zdCBfZGVsYXkgPSB0aGlzLm1vYmlsZUJlaGF2aW9yID09PSAncHJlc3NpbmcnID8gdGhpcy5zaG93RGVsYXkgOiAwO1xuICAgICAgICAgICAgdGhpcy50b3VjaFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlVG9vbHRpcCh0cnVlLCB0cnVlKTtcbiAgICAgICAgICAgIH0sIF9kZWxheSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcpXG4gICAgcHVibGljIG9uVG91Y2hFbmQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9iaWxlQmVoYXZpb3IgPT09ICdwcmVzc2luZycpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lb3V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVQb3NpdGlvbigpIHtcbiAgICAgICAgY29uc3QgY29udGFpbnNQb3NpdGlvbiA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10uaW5jbHVkZXModGhpcy50b29sdGlwUG9zaXRpb24pO1xuXG4gICAgICAgIGlmICghY29udGFpbnNQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwUG9zaXRpb24gPSAndG9wJztcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVG9vbHRpcCAke3RoaXMudG9vbHRpcFBvc2l0aW9ufSBwb3NpdGlvbiBpcyB1bmV4cGVjdGVkYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERvbUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoVG9vbHRpcENvbXBvbmVudCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRvb2x0aXAodXNlU2hvd0RlbGF5ID0gZmFsc2UsIGF1dG9EZXN0cm95ID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBoYXNUZXh0ID0gKHRoaXMudG9vbHRpcCB8fCAnJykubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgaGFzQ29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRSZWYgIT09IG51bGw7XG4gICAgICAgIGlmICghaGFzVGV4dCB8fCBoYXNDb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBibG9ja0lmSXNOb3RUcnVuY2F0ZWRDb250ZW50ID0gdGhpcy5jaGVja1RydW5jYXRlZFRleHQoKSA/ICF0aGlzLmNvbnRlbnRJc1RydW5jYXRlZCA6IGZhbHNlO1xuICAgICAgICBpZiAoYmxvY2tJZklzTm90VHJ1bmNhdGVkQ29udGVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERvbUVsZW1lbnQoKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtZW50KTtcbiAgICAgICAgdGhpcy50b29sdGlwRGl2RWxlbWVudCA9IGRvbUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRvb2x0aXAnKTtcbiAgICAgICAgdGhpcy5zZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpO1xuICAgICAgICBjb25zdCBfc2hvd0RlbGF5ID0gdXNlU2hvd0RlbGF5ID8gdGhpcy5zaG93RGVsYXkgOiAwO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Rvb2x0aXAoKTtcbiAgICAgICAgfSwgX3Nob3dEZWxheSk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4od2luZG93LCAnc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRUb29sdGlwUG9zaXRpb25Qcm9wZXJ0eSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoYXV0b0Rlc3Ryb3kgJiYgdGhpcy5kaXNwbGF5VGltZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICB9LCB0aGlzLmRpc3BsYXlUaW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd1Rvb2x0aXAoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRoaXMudmlzaWJsZTtcblxuICAgICAgICAgICAgdGhpcy5zZXRUb29sdGlwUG9zaXRpb25Qcm9wZXJ0eSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUb29sdGlwUG9zaXRpb25Qcm9wZXJ0eSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFuY2hvclNpemUgPSA1O1xuICAgICAgICBjb25zdCB7IGxlZnQsIHJpZ2h0IH0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudFBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uSW5mbyh0aGlzLnRvb2x0aXBEaXZFbGVtZW50ISk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRMZWZ0b3ZlciA9IGdldEVsZW1lbnRMZWZ0b3ZlckNvbnRlbnRBdmFpbGFibGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBjb25zdCBlbGVtZW50VHJpZ2dlclBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uSW5mbyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxQb3NpdGlvbnM6IFRvb2x0aXBQb3NpdGlvbnNbXSA9IFsnbGVmdCcsICdyaWdodCddO1xuICAgICAgICBjb25zdCBpc1Bvc2l0aW9uSG9yaXpvbnRhbCA9IGhvcml6b250YWxQb3NpdGlvbnMuaW5jbHVkZXModGhpcy50b29sdGlwUG9zaXRpb24pO1xuICAgICAgICBjb25zdCBkaXN0YW5jZVRvQm9yZGVycyA9IGlzUG9zaXRpb25Ib3Jpem9udGFsXG4gICAgICAgICAgICA/IHRvb2x0aXBFbGVtZW50UG9zaXRpb24uZWxlbWVudFdpZHRoXG4gICAgICAgICAgICA6IHRvb2x0aXBFbGVtZW50UG9zaXRpb24uZWxlbWVudEhvcml6b250YWxDZW50ZXI7XG4gICAgICAgIGNvbnN0IGNhblNldEF0VG9wID0gZWxlbWVudExlZnRvdmVyLmZyZWVEaXN0YW5jZVRvVG9wID4gdG9vbHRpcEVsZW1lbnRQb3NpdGlvbi5lbGVtZW50SGVpZ2h0O1xuICAgICAgICBjb25zdCBjYW5TZXRBdExlZnQgPSBlbGVtZW50TGVmdG92ZXIuZnJlZURpc3RhbmNlVG9MZWZ0ID4gZGlzdGFuY2VUb0JvcmRlcnM7XG4gICAgICAgIGNvbnN0IGNhblNldEF0UmlnaHQgPSBlbGVtZW50TGVmdG92ZXIuZnJlZURpc3RhbmNlVG9SaWdodCA+IGRpc3RhbmNlVG9Cb3JkZXJzO1xuICAgICAgICBjb25zdCBjYW5TZXRBdEJvdHRvbSA9IGVsZW1lbnRMZWZ0b3Zlci5mcmVlRGlzdGFuY2VUb0JvdHRvbSA+IHRvb2x0aXBFbGVtZW50UG9zaXRpb24uZWxlbWVudEhlaWdodDtcbiAgICAgICAgY29uc3QgdG9wVmVydGljYWwgPSBlbGVtZW50VHJpZ2dlclBvc2l0aW9uLnRvcCArIGVsZW1lbnRUcmlnZ2VyUG9zaXRpb24uZWxlbWVudFZlcnRpY2FsQ2VudGVyO1xuICAgICAgICBjb25zdCBjaGVja1RvcFBvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNhblNldEF0VG9wICYmIGNhblNldEF0TGVmdCAmJiBjYW5TZXRBdFJpZ2h0O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjaGVja0JvdHRvbVBvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNhblNldEF0Qm90dG9tICYmIGNhblNldEF0TGVmdCAmJiBjYW5TZXRBdFJpZ2h0O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjaGVja0xlZnRQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjYW5TZXRBdExlZnQgJiYgY2FuU2V0QXRUb3AgJiYgY2FuU2V0QXRCb3R0b207XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY2hlY2tSaWdodFBvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNhblNldEF0UmlnaHQgJiYgY2FuU2V0QXRUb3AgJiYgY2FuU2V0QXRCb3R0b207XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2V0VG9wUG9zaXRpb24gPSAoKTogeyBsZWZ0OiBudW1iZXI7IHRvcDogbnVtYmVyIH0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBsZWZ0ICsgKHJpZ2h0IC0gbGVmdCkgLyAyLFxuICAgICAgICAgICAgICAgIHRvcDogZWxlbWVudFRyaWdnZXJQb3NpdGlvbi50b3AgLSBhbmNob3JTaXplLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZXRCb3R0b21Qb3NpdGlvbiA9ICgpOiB7IGxlZnQ6IG51bWJlcjsgdG9wOiBudW1iZXIgfSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGxlZnQgKyAocmlnaHQgLSBsZWZ0KSAvIDIsXG4gICAgICAgICAgICAgICAgdG9wOiBlbGVtZW50VHJpZ2dlclBvc2l0aW9uLnRvcCArIGVsZW1lbnRUcmlnZ2VyUG9zaXRpb24uZWxlbWVudEhlaWdodCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2V0TGVmdFBvc2l0aW9uID0gKCk6IHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGVmdDogbGVmdCxcbiAgICAgICAgICAgICAgICB0b3A6IHRvcFZlcnRpY2FsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZXRSaWdodFBvc2l0aW9uID0gKCk6IHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGVmdDogcmlnaHQsXG4gICAgICAgICAgICAgICAgdG9wOiB0b3BWZXJ0aWNhbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG5cbiAgICAgICAgdHlwZSBQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIHBvczogVG9vbHRpcFBvc2l0aW9ucztcbiAgICAgICAgICAgIGNoZWNrOiAoKSA9PiBib29sZWFuO1xuICAgICAgICAgICAgc2V0OiAoKSA9PiB7IGxlZnQ6IG51bWJlcjsgdG9wOiBudW1iZXIgfTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvbnM6IFBvc2l0aW9uW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcG9zOiAndG9wJyxcbiAgICAgICAgICAgICAgICBjaGVjazogY2hlY2tUb3BQb3NpdGlvbixcbiAgICAgICAgICAgICAgICBzZXQ6IHNldFRvcFBvc2l0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwb3M6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIGNoZWNrOiBjaGVja0JvdHRvbVBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIHNldDogc2V0Qm90dG9tUG9zaXRpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBvczogJ2xlZnQnLFxuICAgICAgICAgICAgICAgIGNoZWNrOiBjaGVja0xlZnRQb3NpdGlvbixcbiAgICAgICAgICAgICAgICBzZXQ6IHNldExlZnRQb3NpdGlvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcG9zOiAncmlnaHQnLFxuICAgICAgICAgICAgICAgIGNoZWNrOiBjaGVja1JpZ2h0UG9zaXRpb24sXG4gICAgICAgICAgICAgICAgc2V0OiBzZXRSaWdodFBvc2l0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvbkRlZmluZWQgPSBwb3NpdGlvbnMuZmluZCgocG9zaXRpb24pID0+IHBvc2l0aW9uLnBvcyA9PT0gdGhpcy50b29sdGlwUG9zaXRpb24pO1xuICAgICAgICBsZXQgdmFsaWRQb3NpdGlvbjogUG9zaXRpb24gfCB1bmRlZmluZWQgPSBwb3NpdGlvbkRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGNhblVzZURlZmluZWRQb3NpdGlvbiA9IHBvc2l0aW9uRGVmaW5lZD8uY2hlY2soKTtcbiAgICAgICAgaWYgKGNhblVzZURlZmluZWRQb3NpdGlvbikge1xuICAgICAgICAgICAgdmFsaWRQb3NpdGlvbiA9IHBvc2l0aW9uRGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmICghY2FuVXNlRGVmaW5lZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZEFsdGVybmF0aXZlUG9zaXRpb24gPSBwb3NpdGlvbnMuZmluZCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNoZWNrKCkpO1xuICAgICAgICAgICAgaWYgKHZhbGlkQWx0ZXJuYXRpdmVQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIHZhbGlkUG9zaXRpb24gPSB2YWxpZEFsdGVybmF0aXZlUG9zaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgX3Bvc2l0aW9uID0gdmFsaWRQb3NpdGlvbiEuc2V0KCk7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uTGVmdCA9IF9wb3NpdGlvbi5sZWZ0O1xuICAgICAgICBjb25zdCBwb3NpdGlvblRvcCA9IF9wb3NpdGlvbi50b3A7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHBvc2l0aW9uTGVmdCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQocG9zaXRpb25Ub3ApO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHZhbGlkUG9zaXRpb24hLnBvcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRvb2x0aXBDb21wb25lbnRQcm9wZXJ0aWVzKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbHRpcCA9IHRoaXMudG9vbHRpcCBhcyBzdHJpbmc7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVzY2FwZSA9IHRoaXMuZXNjYXBlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmNvbXBvbmVudFJlZikpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcERpdkVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29udGVudElzVHJ1bmNhdGVkKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHRydW5jYXRlZEJ5VmVydGljYWwgPSBlbGVtZW50LnNjcm9sbEhlaWdodCA+IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICBjb25zdCB0cnVuY2F0ZWRCeUhvcml6b250YWwgPSBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgcmV0dXJuIHRydW5jYXRlZEJ5SG9yaXpvbnRhbCB8fCB0cnVuY2F0ZWRCeVZlcnRpY2FsO1xuICAgIH1cbn1cblxuIl19
410
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcC9zcmMvbGliL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssR0FLUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsa0NBQWtDLEVBQ2xDLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDcEIsTUFBTSwwQ0FBMEMsQ0FBQztBQUlsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRXZEOzs7Ozs7Ozs7OztHQVdHO0FBS0gsTUFBTSxPQUFPLGdCQUFnQjtJQTJGSjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBOUZyQjs7T0FFRztJQUVJLE9BQU8sQ0FBVTtJQUV4Qjs7Ozs7T0FLRztJQUVJLGVBQWUsR0FBcUIsS0FBSyxDQUFDO0lBRWpEOzs7O09BSUc7SUFFSSxTQUFTLEdBQUcsR0FBRyxDQUFDO0lBRXZCOzs7T0FHRztJQUVJLFdBQVcsQ0FBVTtJQUU1Qjs7Ozs7OztPQU9HO0lBRUksWUFBWSxHQUFpQixPQUFPLENBQUM7SUFFNUM7Ozs7T0FJRztJQUVJLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFdEI7Ozs7O09BS0c7SUFFSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBRXRCOzs7Ozs7T0FNRztJQUVJLGNBQWMsR0FBbUIsVUFBVSxDQUFDO0lBRW5EOztPQUVHO0lBRUksZUFBZSxHQUE0QixJQUFJLENBQUM7SUFFdkQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFMUIsWUFBWSxHQUEwQyxJQUFJLENBQUM7SUFDM0QsV0FBVyxDQUFVO0lBQ3JCLFlBQVksQ0FBVTtJQUN0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QUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDeEUsT0FBTyxxQkFBcUIsSUFBSSxtQkFBbUIsQ0FBQztJQUN4RCxDQUFDO3dHQS9ZUSxnQkFBZ0I7NEZBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ25COytMQU1VLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxVQUFVO2dCQVVWLGVBQWU7c0JBRHJCLEtBQUs7Z0JBU0MsU0FBUztzQkFEZixLQUFLO2dCQVFDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBWUMsWUFBWTtzQkFEbEIsS0FBSztnQkFTQyxNQUFNO3NCQURaLEtBQUs7Z0JBVUMsT0FBTztzQkFEYixLQUFLO2dCQVdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsZUFBZTtzQkFEckIsS0FBSztnQkFtRkMsT0FBTztzQkFGYixZQUFZO3VCQUFDLE9BQU87O3NCQUNwQixZQUFZO3VCQUFDLFNBQVM7Z0JBWWhCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPO2dCQVFkLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNO2dCQVFiLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsWUFBWTtnQkFTbkIsWUFBWTtzQkFGbEIsWUFBWTt1QkFBQyxZQUFZOztzQkFDekIsWUFBWTt1QkFBQyxPQUFPO2dCQVFkLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsWUFBWTtnQkFZbkIsVUFBVTtzQkFEaEIsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGlucHV0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVib3VuY2VVdGlscyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgZ2V0RWxlbWVudExlZnRvdmVyQ29udGVudEF2YWlsYWJsZSxcbiAgICBnZXRFbGVtZW50UG9zaXRpb25JbmZvLFxuICAgIGlzTnVsbE9yVW5kZWZpbmVkLFxufSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IE1vYmlsZUJlaGF2aW9yIH0gZnJvbSAnLi9tb2RlbHMvbW9iaWxlLWJlaGF2aW9yJztcbmltcG9ydCB7IFRvb2x0aXBFdmVudCB9IGZyb20gJy4vbW9kZWxzL3Rvb2x0aXAtZXZlbnQnO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9ucyB9IGZyb20gJy4vbW9kZWxzL3Rvb2x0aXAtcG9zaXRpb24nO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEaXJldGl2YSBxdWUgZXhpYmUgdW0gdG9vbHRpcCAoZGljYSBkZSBmZXJyYW1lbnRhKSBmbHV0dWFudGUgYW8gaW50ZXJhZ2lyIGNvbSBvIGVsZW1lbnRvIGhvc3BlZGVpcm8uXG4gKiBQb3NpY2lvbmEtc2UgYXV0b21hdGljYW1lbnRlIGNvbnNpZGVyYW5kbyBvIGVzcGHDp28gZGlzcG9uw612ZWwgbmEgdGVsYS5cbiAqIFN1cG9ydGEgZXZlbnRvcyBkZSBob3ZlciwgY2xpY2sgZSBmb2N1cywgYWzDqW0gZGUgY29tcG9ydGFtZW50b3MgY3VzdG9taXphZG9zIHBhcmEgbW9iaWxlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIHNUb29sdGlwPVwiQ2xpcXVlIGFxdWlcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIj5Bw6fDo288L2J1dHRvbj5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBPdmVybGF5XG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3NUb29sdGlwXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gZXhpYmlkbyBubyB0b29sdGlwLiBRdWFuZG8gdmF6aW8gb3UgYHVuZGVmaW5lZGAsIG8gdG9vbHRpcCBuw6NvIMOpIHJlbmRlcml6YWRvLlxuICAgICAqL1xuICAgIEBJbnB1dCgnc1Rvb2x0aXAnKVxuICAgIHB1YmxpYyB0b29sdGlwPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBvc2nDp8OjbyBwcmVmZXJlbmNpYWwgZG8gdG9vbHRpcCBlbSByZWxhw6fDo28gYW8gZWxlbWVudG8gaG9zcGVkZWlyby5cbiAgICAgKiBPIHRvb2x0aXAgc2UgcmVwb3NpY2lvbmEgYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaG91dmVyIGVzcGHDp28gc3VmaWNpZW50ZS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICd0b3AnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb25zID0gJ3RvcCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGVtcG8gZW0gbWlsaXNzZWd1bmRvcyBhbnRlcyBkbyB0b29sdGlwIGFwYXJlY2VyIGFww7NzIG8gZXZlbnRvIGRlIGF0aXZhw6fDo28uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCA1MDBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93RGVsYXkgPSA1MDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGVtcG8gZW0gbWlsaXNzZWd1bmRvcyBxdWUgbyB0b29sdGlwIHBlcm1hbmVjZSB2aXPDrXZlbCBhcMOzcyBhcGFyZWNlci5cbiAgICAgKiBRdWFuZG8gbsOjbyBpbmZvcm1hZG8sIG8gdG9vbHRpcCBwZXJtYW5lY2UgYXTDqSBvIHVzdcOhcmlvIHNhaXIgZG8gZWxlbWVudG8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzcGxheVRpbWU/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnRvIGRvIGVsZW1lbnRvIGhvc3BlZGVpcm8gcXVlIGRpc3BhcmEgYSBleGliacOnw6NvIGRvIHRvb2x0aXAuXG4gICAgICogLSBgJ2hvdmVyJ2A6IGV4aWJlIGFvIHBhc3NhciBvIG1vdXNlIChwYWRyw6NvKS5cbiAgICAgKiAtIGAnY2xpY2snYDogZXhpYmUgYW8gY2xpY2FyLlxuICAgICAqIC0gYCdmb2N1cydgOiBleGliZSBhbyBmb2NhciBubyBlbGVtZW50by5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdob3ZlcidcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0b29sdGlwRXZlbnQ6IFRvb2x0aXBFdmVudCA9ICdob3Zlcic7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUXVhbmRvIGB0cnVlYCwgbyBjb250ZcO6ZG8gSFRNTCBkbyB0b29sdGlwIMOpIGVzY2FwYWRvIGFudGVzIGRlIHNlciByZW5kZXJpemFkby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXNjYXBlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUXVhbmRvIGBmYWxzZWAsIG8gdG9vbHRpcCBudW5jYSDDqSBleGliaWRvLCBtZXNtbyBxdWUgaGFqYSBpbnRlcmHDp8OjbyBkbyB1c3XDoXJpby5cbiAgICAgKiDDmnRpbCBwYXJhIGRlc2FiaWxpdGFyIHRvb2x0aXBzIGRpbmFtaWNhbWVudGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmlzaWJsZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcG9ydGFtZW50byBkbyB0b29sdGlwIGVtIGRpc3Bvc2l0aXZvcyBtw7N2ZWlzICh0b3VjaCkuXG4gICAgICogLSBgJ3ByZXNzaW5nJ2A6IGV4aWJlIGFvIHByZXNzaW9uYXIgZSBtYW50ZXIgbyB0b3F1ZSAocGFkcsOjbykuXG4gICAgICogLSBgJ25vbmUnYDogZGVzYWJpbGl0YSBvIHRvb2x0aXAgZW0gZGlzcG9zaXRpdm9zIHTDoXRlaXMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAncHJlc3NpbmcnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbW9iaWxlQmVoYXZpb3I6IE1vYmlsZUJlaGF2aW9yID0gJ3ByZXNzaW5nJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWZlcsOqbmNpYSBhIHVtIGlucHV0IEhUTUwgcGFyYSBzaW5jcm9uaXphciBhIGV4aWJpw6fDo28gZG8gdG9vbHRpcCBjb20gbyBmb2NvIG5vIGNhbXBvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvY3VzZWRJbnB1dFJlZjogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG8gdG9vbHRpcCBzw7Mgw6kgZXhpYmlkbyBzZSBvIHRleHRvIGRvIGVsZW1lbnRvIGVzdGl2ZXIgdHJ1bmNhZG8gKG92ZXJmbG93KS5cbiAgICAgKiDDmnRpbCBwYXJhIGNlbGxzIGRlIHRhYmVsYSBvdSBlbGVtZW50b3MgY29tIGB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpc2AuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGNoZWNrVHJ1bmNhdGVkVGV4dCA9IGlucHV0KGZhbHNlKTtcblxuICAgIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VG9vbHRpcENvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHNob3dUaW1lb3V0PzogbnVtYmVyO1xuICAgIHByaXZhdGUgdG91Y2hUaW1lb3V0PzogbnVtYmVyO1xuICAgIHByaXZhdGUgdG9vbHRpcERpdkVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWJvdW5jZUNyZWF0ZVRvb2x0aXBGdW5jdGlvbjogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHRvb2x0aXBDcmVhdGVkQnlGb2N1cyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlVXRpbHM6IERlYm91bmNlVXRpbHMsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICkge1xuICAgICAgICB0aGlzLmRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uID0gdGhpcy5kZWJvdW5jZVV0aWxzLmRlYm91bmNlTGVhZGluZygoKSA9PiB0aGlzLl9jcmVhdGVUb29sdGlwKHRydWUsIHRydWUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLnVwZGF0ZVRvb2x0aXBWaXNpYmlsaXR5V2hlbkZvY3VzT25JbnB1dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFuaXB1bGEgYSB2aXNpYmlsaWRhZGUgZG8gdG9vbHRpcCBxdWFuZG8gaG91dmVyIHVtYSByZWZlcsOqbmNpYSBkZSBpbnB1dC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVRvb2x0aXBWaXNpYmlsaXR5V2hlbkZvY3VzT25JbnB1dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZElucHV0UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dEZvY3VzID0gdGhpcy5mb2N1c2VkSW5wdXRSZWY7XG4gICAgICAgICAgICBjb25zdCBpY29uID0gdGhpcy5nZXRJY29uRnJvbUZvY3VzZWRJbnB1dCgpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oaW5wdXRGb2N1cywgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sdGlwQ3JlYXRlZEJ5Rm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oaW5wdXRGb2N1cywgJ2JsdXInLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVUb29sdGlwKGljb24pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sdGlwQ3JlYXRlZEJ5Rm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9idMOpbSBvIGVsZW1lbnRvIGRvIMOtY29uZSBhc3NvY2lhZG8gYW8gbGFiZWwgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICogQHJldHVybnMgTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJY29uRnJvbUZvY3VzZWRJbnB1dCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgbyB0b29sdGlwIGFzc29jaWFkbyBhbyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICogQHBhcmFtIGljb24gTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZW1vdmVUb29sdGlwKGljb246IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSBpY29uLnF1ZXJ5U2VsZWN0b3IoJy50b29sdGlwJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICh0b29sdGlwKSB7XG4gICAgICAgICAgICB0b29sdGlwLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIGlzIGNsaWNrZWQgSSBkZXN0cm95IHRoZSB0b29sdGlwLlxuICAgIC8vIHdoZW5ldmVyIGEga2V5IGlzIHByZXNzZWQgb24gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicpXG4gICAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcEV2ZW50ID09PSAnaG92ZXInICYmXG4gICAgICAgICAgICAhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQW5kcm9pZC9pKSAmJlxuICAgICAgICAgICAgIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQaG9uZS9pKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09ICdmb2N1cycpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBwdWJsaWMgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09ICdmb2N1cycpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gICAgcHVibGljIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSAnaG92ZXInIHx8IHRoaXMuZm9jdXNlZElucHV0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBASG9zdExpc3RlbmVyKCd3aGVlbCcpXG4gICAgcHVibGljIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCh0aGlzLnRvb2x0aXBFdmVudCA9PT0gJ2hvdmVyJyB8fCB0aGlzLmZvY3VzZWRJbnB1dFJlZikgJiYgIXRoaXMudG9vbHRpcENyZWF0ZWRCeUZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnKVxuICAgIHB1YmxpYyBvblRvdWNoU3RhcnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XG4gICAgICAgICAgICBjb25zdCBfZGVsYXkgPSB0aGlzLm1vYmlsZUJlaGF2aW9yID09PSAncHJlc3NpbmcnID8gdGhpcy5zaG93RGVsYXkgOiAwO1xuICAgICAgICAgICAgdGhpcy50b3VjaFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlVG9vbHRpcCh0cnVlLCB0cnVlKTtcbiAgICAgICAgICAgIH0sIF9kZWxheSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcpXG4gICAgcHVibGljIG9uVG91Y2hFbmQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9iaWxlQmVoYXZpb3IgPT09ICdwcmVzc2luZycpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lb3V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVQb3NpdGlvbigpIHtcbiAgICAgICAgY29uc3QgY29udGFpbnNQb3NpdGlvbiA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10uaW5jbHVkZXModGhpcy50b29sdGlwUG9zaXRpb24pO1xuXG4gICAgICAgIGlmICghY29udGFpbnNQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwUG9zaXRpb24gPSAndG9wJztcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVG9vbHRpcCAke3RoaXMudG9vbHRpcFBvc2l0aW9ufSBwb3NpdGlvbiBpcyB1bmV4cGVjdGVkYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERvbUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoVG9vbHRpcENvbXBvbmVudCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRvb2x0aXAodXNlU2hvd0RlbGF5ID0gZmFsc2UsIGF1dG9EZXN0cm95ID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBoYXNUZXh0ID0gKHRoaXMudG9vbHRpcCB8fCAnJykubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgaGFzQ29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRSZWYgIT09IG51bGw7XG4gICAgICAgIGlmICghaGFzVGV4dCB8fCBoYXNDb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBibG9ja0lmSXNOb3RUcnVuY2F0ZWRDb250ZW50ID0gdGhpcy5jaGVja1RydW5jYXRlZFRleHQoKSA/ICF0aGlzLmNvbnRlbnRJc1RydW5jYXRlZCA6IGZhbHNlO1xuICAgICAgICBpZiAoYmxvY2tJZklzTm90VHJ1bmNhdGVkQ29udGVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERvbUVsZW1lbnQoKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtZW50KTtcbiAgICAgICAgdGhpcy50b29sdGlwRGl2RWxlbWVudCA9IGRvbUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRvb2x0aXAnKTtcbiAgICAgICAgdGhpcy5zZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpO1xuICAgICAgICBjb25zdCBfc2hvd0RlbGF5ID0gdXNlU2hvd0RlbGF5ID8gdGhpcy5zaG93RGVsYXkgOiAwO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Rvb2x0aXAoKTtcbiAgICAgICAgfSwgX3Nob3dEZWxheSk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4od2luZG93LCAnc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRUb29sdGlwUG9zaXRpb25Qcm9wZXJ0eSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoYXV0b0Rlc3Ryb3kgJiYgdGhpcy5kaXNwbGF5VGltZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICB9LCB0aGlzLmRpc3BsYXlUaW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd1Rvb2x0aXAoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRoaXMudmlzaWJsZTtcblxuICAgICAgICAgICAgdGhpcy5zZXRUb29sdGlwUG9zaXRpb25Qcm9wZXJ0eSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUb29sdGlwUG9zaXRpb25Qcm9wZXJ0eSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFuY2hvclNpemUgPSA1O1xuICAgICAgICBjb25zdCB7IGxlZnQsIHJpZ2h0IH0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudFBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uSW5mbyh0aGlzLnRvb2x0aXBEaXZFbGVtZW50ISk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRMZWZ0b3ZlciA9IGdldEVsZW1lbnRMZWZ0b3ZlckNvbnRlbnRBdmFpbGFibGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBjb25zdCBlbGVtZW50VHJpZ2dlclBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uSW5mbyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxQb3NpdGlvbnM6IFRvb2x0aXBQb3NpdGlvbnNbXSA9IFsnbGVmdCcsICdyaWdodCddO1xuICAgICAgICBjb25zdCBpc1Bvc2l0aW9uSG9yaXpvbnRhbCA9IGhvcml6b250YWxQb3NpdGlvbnMuaW5jbHVkZXModGhpcy50b29sdGlwUG9zaXRpb24pO1xuICAgICAgICBjb25zdCBkaXN0YW5jZVRvQm9yZGVycyA9IGlzUG9zaXRpb25Ib3Jpem9udGFsXG4gICAgICAgICAgICA/IHRvb2x0aXBFbGVtZW50UG9zaXRpb24uZWxlbWVudFdpZHRoXG4gICAgICAgICAgICA6IHRvb2x0aXBFbGVtZW50UG9zaXRpb24uZWxlbWVudEhvcml6b250YWxDZW50ZXI7XG4gICAgICAgIGNvbnN0IGNhblNldEF0VG9wID0gZWxlbWVudExlZnRvdmVyLmZyZWVEaXN0YW5jZVRvVG9wID4gdG9vbHRpcEVsZW1lbnRQb3NpdGlvbi5lbGVtZW50SGVpZ2h0O1xuICAgICAgICBjb25zdCBjYW5TZXRBdExlZnQgPSBlbGVtZW50TGVmdG92ZXIuZnJlZURpc3RhbmNlVG9MZWZ0ID4gZGlzdGFuY2VUb0JvcmRlcnM7XG4gICAgICAgIGNvbnN0IGNhblNldEF0UmlnaHQgPSBlbGVtZW50TGVmdG92ZXIuZnJlZURpc3RhbmNlVG9SaWdodCA+IGRpc3RhbmNlVG9Cb3JkZXJzO1xuICAgICAgICBjb25zdCBjYW5TZXRBdEJvdHRvbSA9IGVsZW1lbnRMZWZ0b3Zlci5mcmVlRGlzdGFuY2VUb0JvdHRvbSA+IHRvb2x0aXBFbGVtZW50UG9zaXRpb24uZWxlbWVudEhlaWdodDtcbiAgICAgICAgY29uc3QgdG9wVmVydGljYWwgPSBlbGVtZW50VHJpZ2dlclBvc2l0aW9uLnRvcCArIGVsZW1lbnRUcmlnZ2VyUG9zaXRpb24uZWxlbWVudFZlcnRpY2FsQ2VudGVyO1xuICAgICAgICBjb25zdCBjaGVja1RvcFBvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNhblNldEF0VG9wICYmIGNhblNldEF0TGVmdCAmJiBjYW5TZXRBdFJpZ2h0O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjaGVja0JvdHRvbVBvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNhblNldEF0Qm90dG9tICYmIGNhblNldEF0TGVmdCAmJiBjYW5TZXRBdFJpZ2h0O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjaGVja0xlZnRQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjYW5TZXRBdExlZnQgJiYgY2FuU2V0QXRUb3AgJiYgY2FuU2V0QXRCb3R0b207XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY2hlY2tSaWdodFBvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNhblNldEF0UmlnaHQgJiYgY2FuU2V0QXRUb3AgJiYgY2FuU2V0QXRCb3R0b207XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2V0VG9wUG9zaXRpb24gPSAoKTogeyBsZWZ0OiBudW1iZXI7IHRvcDogbnVtYmVyIH0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBsZWZ0ICsgKHJpZ2h0IC0gbGVmdCkgLyAyLFxuICAgICAgICAgICAgICAgIHRvcDogZWxlbWVudFRyaWdnZXJQb3NpdGlvbi50b3AgLSBhbmNob3JTaXplLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZXRCb3R0b21Qb3NpdGlvbiA9ICgpOiB7IGxlZnQ6IG51bWJlcjsgdG9wOiBudW1iZXIgfSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGxlZnQgKyAocmlnaHQgLSBsZWZ0KSAvIDIsXG4gICAgICAgICAgICAgICAgdG9wOiBlbGVtZW50VHJpZ2dlclBvc2l0aW9uLnRvcCArIGVsZW1lbnRUcmlnZ2VyUG9zaXRpb24uZWxlbWVudEhlaWdodCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2V0TGVmdFBvc2l0aW9uID0gKCk6IHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGVmdDogbGVmdCxcbiAgICAgICAgICAgICAgICB0b3A6IHRvcFZlcnRpY2FsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZXRSaWdodFBvc2l0aW9uID0gKCk6IHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGVmdDogcmlnaHQsXG4gICAgICAgICAgICAgICAgdG9wOiB0b3BWZXJ0aWNhbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG5cbiAgICAgICAgdHlwZSBQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIHBvczogVG9vbHRpcFBvc2l0aW9ucztcbiAgICAgICAgICAgIGNoZWNrOiAoKSA9PiBib29sZWFuO1xuICAgICAgICAgICAgc2V0OiAoKSA9PiB7IGxlZnQ6IG51bWJlcjsgdG9wOiBudW1iZXIgfTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvbnM6IFBvc2l0aW9uW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcG9zOiAndG9wJyxcbiAgICAgICAgICAgICAgICBjaGVjazogY2hlY2tUb3BQb3NpdGlvbixcbiAgICAgICAgICAgICAgICBzZXQ6IHNldFRvcFBvc2l0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwb3M6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIGNoZWNrOiBjaGVja0JvdHRvbVBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIHNldDogc2V0Qm90dG9tUG9zaXRpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBvczogJ2xlZnQnLFxuICAgICAgICAgICAgICAgIGNoZWNrOiBjaGVja0xlZnRQb3NpdGlvbixcbiAgICAgICAgICAgICAgICBzZXQ6IHNldExlZnRQb3NpdGlvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcG9zOiAncmlnaHQnLFxuICAgICAgICAgICAgICAgIGNoZWNrOiBjaGVja1JpZ2h0UG9zaXRpb24sXG4gICAgICAgICAgICAgICAgc2V0OiBzZXRSaWdodFBvc2l0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvbkRlZmluZWQgPSBwb3NpdGlvbnMuZmluZCgocG9zaXRpb24pID0+IHBvc2l0aW9uLnBvcyA9PT0gdGhpcy50b29sdGlwUG9zaXRpb24pO1xuICAgICAgICBsZXQgdmFsaWRQb3NpdGlvbjogUG9zaXRpb24gfCB1bmRlZmluZWQgPSBwb3NpdGlvbkRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGNhblVzZURlZmluZWRQb3NpdGlvbiA9IHBvc2l0aW9uRGVmaW5lZD8uY2hlY2soKTtcbiAgICAgICAgaWYgKGNhblVzZURlZmluZWRQb3NpdGlvbikge1xuICAgICAgICAgICAgdmFsaWRQb3NpdGlvbiA9IHBvc2l0aW9uRGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmICghY2FuVXNlRGVmaW5lZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZEFsdGVybmF0aXZlUG9zaXRpb24gPSBwb3NpdGlvbnMuZmluZCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNoZWNrKCkpO1xuICAgICAgICAgICAgaWYgKHZhbGlkQWx0ZXJuYXRpdmVQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIHZhbGlkUG9zaXRpb24gPSB2YWxpZEFsdGVybmF0aXZlUG9zaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgX3Bvc2l0aW9uID0gdmFsaWRQb3NpdGlvbiEuc2V0KCk7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uTGVmdCA9IF9wb3NpdGlvbi5sZWZ0O1xuICAgICAgICBjb25zdCBwb3NpdGlvblRvcCA9IF9wb3NpdGlvbi50b3A7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHBvc2l0aW9uTGVmdCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQocG9zaXRpb25Ub3ApO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHZhbGlkUG9zaXRpb24hLnBvcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRvb2x0aXBDb21wb25lbnRQcm9wZXJ0aWVzKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbHRpcCA9IHRoaXMudG9vbHRpcCBhcyBzdHJpbmc7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVzY2FwZSA9IHRoaXMuZXNjYXBlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmNvbXBvbmVudFJlZikpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcERpdkVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29udGVudElzVHJ1bmNhdGVkKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHRydW5jYXRlZEJ5VmVydGljYWwgPSBlbGVtZW50LnNjcm9sbEhlaWdodCA+IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICBjb25zdCB0cnVuY2F0ZWRCeUhvcml6b250YWwgPSBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgcmV0dXJuIHRydW5jYXRlZEJ5SG9yaXpvbnRhbCB8fCB0cnVuY2F0ZWRCeVZlcnRpY2FsO1xuICAgIH1cbn1cblxuIl19
@@ -3,15 +3,32 @@ import { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/dep
3
3
  import { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@seniorsistemas/angular-components/common/deprecated-selector";
6
+ /**
7
+ * @description Componente de barra superior (topbar) com título e suporte a
8
+ * conteúdo transclusão. Também responde ao seletor legado `s-product-header`.
9
+ *
10
+ * @example
11
+ * ```html
12
+ * <s-topbar header="Minha Aplicação">
13
+ * <!-- ações e menus -->
14
+ * </s-topbar>
15
+ * ```
16
+ *
17
+ * @category Structure
18
+ */
6
19
  export class TopbarComponent {
7
20
  static nextIdSeed = 0;
8
21
  static _nextId = TopbarComponent.nextIdSeed;
9
22
  static getNextId() {
10
23
  return this._nextId++;
11
24
  }
25
+ /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
12
26
  id = `s-topbar-${TopbarComponent.getNextId()}`;
27
+ /** @description Título exibido na barra superior. Campo obrigatório. */
13
28
  header;
29
+ /** @description Z-index base aplicado ao componente. @default 0 */
14
30
  baseZIndex = 0;
31
+ /** @description Quando `true`, aplica borda inferior; quando `false`, aplica borda superior. @default true */
15
32
  isHeaderFrame = true;
16
33
  container = null;
17
34
  ngAfterViewInit() {
@@ -62,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
62
79
  type: ViewChild,
63
80
  args: ['headerContainer', { static: false }]
64
81
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90b3BiYXIvc3JjL2xpYi90b3BiYXIvdG9wYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90b3BiYXIvc3JjL2xpYi90b3BiYXIvdG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0RBQStELENBQUM7OztBQWtCNUcsTUFBTSxPQUFPLGVBQWU7SUFDakIsTUFBTSxDQUFVLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDOUIsTUFBTSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO0lBRTdDLE1BQU0sQ0FBQyxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFHTSxFQUFFLEdBQUcsWUFBWSxlQUFlLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUcvQyxNQUFNLENBQVU7SUFHaEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUdmLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFHckIsU0FBUyxHQUFzQixJQUFJLENBQUM7SUFFcEMsZUFBZTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7UUFDcEUsQ0FBQztJQUNMLENBQUM7d0dBakNRLGVBQWU7NEZBQWYsZUFBZSx1SkFYYjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFFBQVEsRUFBRTtvQkFDTixXQUFXLEVBQUUsa0JBQWtCO29CQUMvQixXQUFXLEVBQUUsVUFBVTtvQkFDdkIsY0FBYyxFQUFFLFFBQVE7aUJBQzNCO2FBQ0o7U0FDSix5TUNuQkwseVdBWUE7OzRGRFNhLGVBQWU7a0JBaEIzQixTQUFTOytCQUNJLDRCQUE0QixrQkFHdEIsQ0FBQywyQkFBMkIsQ0FBQyxhQUNsQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUU7Z0NBQ04sV0FBVyxFQUFFLGtCQUFrQjtnQ0FDL0IsV0FBVyxFQUFFLFVBQVU7Z0NBQ3ZCLGNBQWMsRUFBRSxRQUFROzZCQUMzQjt5QkFDSjtxQkFDSjs4QkFXTSxFQUFFO3NCQURSLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgREVQUkVDQVRFRF9DT05GSUcgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbW1vbi9kZXByZWNhdGVkLXNlbGVjdG9yJztcbmltcG9ydCB7IERlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uL2RlcHJlY2F0ZWQtc2VsZWN0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtdG9wYmFyLCBzLXByb2R1Y3QtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9wYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b3BiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0RGlyZWN0aXZlczogW0RlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZV0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERFUFJFQ0FURURfQ09ORklHLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgICBvbGRTZWxlY3RvcjogJ3MtcHJvZHVjdC1oZWFkZXInLFxuICAgICAgICAgICAgICAgIG5ld1NlbGVjdG9yOiAncy10b3BiYXInLFxuICAgICAgICAgICAgICAgIHJlbW92YWxWZXJzaW9uOiAnMjAuMC4wJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgXSwgICAgXG59KVxuZXhwb3J0IGNsYXNzIFRvcGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgbmV4dElkU2VlZCA9IDA7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX25leHRJZCA9IFRvcGJhckNvbXBvbmVudC5uZXh0SWRTZWVkO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXROZXh0SWQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25leHRJZCsrO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtdG9wYmFyLSR7VG9wYmFyQ29tcG9uZW50LmdldE5leHRJZCgpfWA7XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBoZWFkZXIhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiYXNlWkluZGV4ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzSGVhZGVyRnJhbWUgPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyQ29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIGNvbnRhaW5lcjogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNIZWFkZXJGcmFtZSkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXJCb3R0b20gPSAnMXB4IHNvbGlkICNkZGQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXJUb3AgPSAnMXB4IHNvbGlkICNkZGQnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBbaWRdPVwiaWRcIiBjbGFzcz1cImJveFwiPlxuICAgIDxkaXZcbiAgICAgICNoZWFkZXJDb250YWluZXJcbiAgICAgIGNsYXNzPVwic2RzLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwiaXNIZWFkZXJGcmFtZSA/ICdoZWFkZXItZnJhbWUnIDogJ3ByaW1hcnktaGVhZGVyJ1wiXG4gICAgPlxuICAgICAgPGgxIFtjbGFzc109XCJpc0hlYWRlckZyYW1lID8gJ3RpdGxlJyA6ICdwcmltYXJ5LXRpdGxlJ1wiPnt7IGhlYWRlciB9fTwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90b3BiYXIvc3JjL2xpYi90b3BiYXIvdG9wYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90b3BiYXIvc3JjL2xpYi90b3BiYXIvdG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0RBQStELENBQUM7OztBQUU1Rzs7Ozs7Ozs7Ozs7O0dBWUc7QUFpQkgsTUFBTSxPQUFPLGVBQWU7SUFDakIsTUFBTSxDQUFVLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDOUIsTUFBTSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO0lBRTdDLE1BQU0sQ0FBQyxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxzR0FBc0c7SUFFL0YsRUFBRSxHQUFHLFlBQVksZUFBZSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7SUFFdEQsd0VBQXdFO0lBRWpFLE1BQU0sQ0FBVTtJQUV2QixtRUFBbUU7SUFFNUQsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUV0Qiw4R0FBOEc7SUFFdkcsYUFBYSxHQUFHLElBQUksQ0FBQztJQUdyQixTQUFTLEdBQXNCLElBQUksQ0FBQztJQUVwQyxlQUFlO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFDO1FBQ3ZFLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwRSxDQUFDO0lBQ0wsQ0FBQzt3R0FyQ1EsZUFBZTs0RkFBZixlQUFlLHVKQVhiO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFO29CQUNOLFdBQVcsRUFBRSxrQkFBa0I7b0JBQy9CLFdBQVcsRUFBRSxVQUFVO29CQUN2QixjQUFjLEVBQUUsUUFBUTtpQkFDM0I7YUFDSjtTQUNKLHlNQ2hDTCx5V0FZQTs7NEZEc0JhLGVBQWU7a0JBaEIzQixTQUFTOytCQUNJLDRCQUE0QixrQkFHdEIsQ0FBQywyQkFBMkIsQ0FBQyxhQUNsQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUU7Z0NBQ04sV0FBVyxFQUFFLGtCQUFrQjtnQ0FDL0IsV0FBVyxFQUFFLFVBQVU7Z0NBQ3ZCLGNBQWMsRUFBRSxRQUFROzZCQUMzQjt5QkFDSjtxQkFDSjs4QkFZTSxFQUFFO3NCQURSLEtBQUs7Z0JBS0MsTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFLbEIsVUFBVTtzQkFEaEIsS0FBSztnQkFLQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgREVQUkVDQVRFRF9DT05GSUcgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbW1vbi9kZXByZWNhdGVkLXNlbGVjdG9yJztcbmltcG9ydCB7IERlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uL2RlcHJlY2F0ZWQtc2VsZWN0b3InO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGJhcnJhIHN1cGVyaW9yICh0b3BiYXIpIGNvbSB0w610dWxvIGUgc3Vwb3J0ZSBhXG4gKiBjb250ZcO6ZG8gdHJhbnNjbHVzw6NvLiBUYW1iw6ltIHJlc3BvbmRlIGFvIHNlbGV0b3IgbGVnYWRvIGBzLXByb2R1Y3QtaGVhZGVyYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtdG9wYmFyIGhlYWRlcj1cIk1pbmhhIEFwbGljYcOnw6NvXCI+XG4gKiAgIDwhLS0gYcOnw7VlcyBlIG1lbnVzIC0tPlxuICogPC9zLXRvcGJhcj5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBTdHJ1Y3R1cmVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXRvcGJhciwgcy1wcm9kdWN0LWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvcGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9wYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtEZXByZWNhdGVkU2VsZWN0b3JEaXJlY3RpdmVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBERVBSRUNBVEVEX0NPTkZJRyxcbiAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgICAgb2xkU2VsZWN0b3I6ICdzLXByb2R1Y3QtaGVhZGVyJyxcbiAgICAgICAgICAgICAgICBuZXdTZWxlY3RvcjogJ3MtdG9wYmFyJyxcbiAgICAgICAgICAgICAgICByZW1vdmFsVmVyc2lvbjogJzIwLjAuMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvcGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgbmV4dElkU2VlZCA9IDA7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX25leHRJZCA9IFRvcGJhckNvbXBvbmVudC5uZXh0SWRTZWVkO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXROZXh0SWQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25leHRJZCsrO1xuICAgIH1cblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWRlbnRpZmljYWRvciDDum5pY28gZG8gY29tcG9uZW50ZSBubyBET00uIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy10b3BiYXItJHtUb3BiYXJDb21wb25lbnQuZ2V0TmV4dElkKCl9YDtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gVMOtdHVsbyBleGliaWRvIG5hIGJhcnJhIHN1cGVyaW9yLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgaGVhZGVyITogc3RyaW5nO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBaLWluZGV4IGJhc2UgYXBsaWNhZG8gYW8gY29tcG9uZW50ZS4gQGRlZmF1bHQgMCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJhc2VaSW5kZXggPSAwO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCBhcGxpY2EgYm9yZGEgaW5mZXJpb3I7IHF1YW5kbyBgZmFsc2VgLCBhcGxpY2EgYm9yZGEgc3VwZXJpb3IuIEBkZWZhdWx0IHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc0hlYWRlckZyYW1lID0gdHJ1ZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlckNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBjb250YWluZXI6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzSGVhZGVyRnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQm90dG9tID0gJzFweCBzb2xpZCAjZGRkJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyVG9wID0gJzFweCBzb2xpZCAjZGRkJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiPGRpdiBbaWRdPVwiaWRcIiBjbGFzcz1cImJveFwiPlxuICAgIDxkaXZcbiAgICAgICNoZWFkZXJDb250YWluZXJcbiAgICAgIGNsYXNzPVwic2RzLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwiaXNIZWFkZXJGcmFtZSA/ICdoZWFkZXItZnJhbWUnIDogJ3ByaW1hcnktaGVhZGVyJ1wiXG4gICAgPlxuICAgICAgPGgxIFtjbGFzc109XCJpc0hlYWRlckZyYW1lID8gJ3RpdGxlJyA6ICdwcmltYXJ5LXRpdGxlJ1wiPnt7IGhlYWRlciB9fTwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4iXX0=