@seniorsistemas/angular-components 19.0.5 → 19.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/accordion/lib/accordion/accordion.component.d.ts +25 -0
  2. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +60 -0
  3. package/alert/lib/alert/alert.component.d.ts +40 -0
  4. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +51 -0
  5. package/badge/lib/badge/badge.component.d.ts +20 -0
  6. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +46 -1
  7. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +12 -0
  8. package/button/lib/button/button.component.d.ts +101 -0
  9. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
  10. package/card/lib/card/card.component.d.ts +18 -0
  11. package/chat/lib/chat/chat.component.d.ts +20 -2
  12. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
  13. package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
  14. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
  15. package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
  16. package/chips/lib/chips/chips/chips.component.d.ts +41 -0
  17. package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
  18. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
  19. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
  20. package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
  21. package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
  22. package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
  23. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
  24. package/currency/lib/currency.service.d.ts +15 -2
  25. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
  26. package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
  27. package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
  28. package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
  29. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
  30. package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
  31. package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
  32. package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
  33. package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
  34. package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
  35. package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
  36. package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
  37. package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
  38. package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
  39. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
  40. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
  41. package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
  42. package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
  43. package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
  44. package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
  45. package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
  46. package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
  47. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
  48. package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
  49. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
  50. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
  51. package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
  52. package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
  53. package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
  54. package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
  55. package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
  56. package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
  57. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
  58. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
  59. package/dynamic-form/public-api.d.ts +1 -0
  60. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
  61. package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
  62. package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
  63. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
  64. package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
  65. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
  66. package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
  67. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
  68. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +13 -1
  69. package/esm2022/button/lib/button/button.component.mjs +102 -1
  70. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
  71. package/esm2022/card/lib/card/card.component.mjs +21 -6
  72. package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
  73. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
  74. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
  75. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
  76. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
  77. package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
  78. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
  79. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
  80. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
  81. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +20 -1
  82. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +31 -1
  83. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
  84. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
  85. package/esm2022/currency/lib/currency.service.mjs +21 -8
  86. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
  87. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
  88. package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
  89. package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
  90. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +1 -1
  91. package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
  92. package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
  93. package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
  94. package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
  95. package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
  96. package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
  97. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
  98. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
  99. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
  100. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
  101. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
  102. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
  103. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
  104. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
  105. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
  106. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
  107. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
  108. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  109. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -2
  110. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  111. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  112. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.mjs +1 -1
  113. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
  114. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
  115. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
  116. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
  117. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
  118. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
  119. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  120. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
  121. package/esm2022/dynamic-form/public-api.mjs +2 -2
  122. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
  123. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +60 -1
  124. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
  125. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +48 -1
  126. package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
  127. package/esm2022/global-search/lib/global-search/global-search.component.mjs +30 -1
  128. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
  129. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
  130. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +40 -3
  131. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
  132. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
  133. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
  134. package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
  135. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
  136. package/esm2022/kanban/lib/kanban/kanban.component.mjs +35 -17
  137. package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
  138. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
  139. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
  140. package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
  141. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
  142. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
  143. package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
  144. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
  145. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +20 -1
  146. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
  147. package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
  148. package/esm2022/numeric/lib/numeric.service.mjs +21 -1
  149. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
  150. package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
  151. package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
  152. package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
  153. package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
  154. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
  155. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
  156. package/esm2022/picklist/lib/picklist/picklist.component.mjs +33 -2
  157. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
  158. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +86 -2
  159. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
  160. package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
  161. package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
  162. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
  163. package/esm2022/select/lib/select/select.component.mjs +35 -1
  164. package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
  165. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
  166. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
  167. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
  168. package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
  169. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
  170. package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
  171. package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
  172. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
  173. package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
  174. package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
  175. package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
  176. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
  177. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
  178. package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
  179. package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
  180. package/esm2022/template/lib/template/template.directive.mjs +14 -2
  181. package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
  182. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
  183. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
  184. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +30 -1
  185. package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
  186. package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
  187. package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
  188. package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
  189. package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
  190. package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
  191. package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
  192. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
  193. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
  194. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  195. package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
  196. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  197. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
  198. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  199. package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
  200. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  201. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
  202. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  203. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +12 -0
  204. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  205. package/fesm2022/seniorsistemas-angular-components-button.mjs +101 -0
  206. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  207. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
  208. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  209. package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
  210. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  211. package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
  212. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  213. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
  214. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  215. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
  216. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  217. package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
  218. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  219. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
  220. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  221. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
  222. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  223. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
  224. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  225. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +19 -0
  226. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  227. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +30 -0
  228. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  229. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
  230. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  231. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
  232. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  233. package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
  234. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  235. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
  236. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  237. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
  238. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  239. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +29 -4
  240. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  241. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
  242. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  243. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +59 -0
  244. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  245. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
  246. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  247. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +47 -0
  248. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  249. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
  250. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  251. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +29 -0
  252. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  253. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
  254. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  255. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +80 -24
  256. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  257. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +38 -1
  258. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  259. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
  260. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  261. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
  262. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  263. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +15 -0
  264. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  265. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
  266. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  267. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
  268. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  269. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +29 -11
  270. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  271. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
  272. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  273. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
  274. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  275. package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
  276. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  277. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
  278. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  279. package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
  280. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  281. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
  282. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  283. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +19 -0
  284. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  285. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
  286. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  287. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
  288. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  289. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
  290. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  291. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +23 -0
  292. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  293. package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
  295. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
  297. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
  299. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +32 -1
  301. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
  303. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +85 -1
  305. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
  307. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
  309. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
  311. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
  313. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
  315. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
  317. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
  319. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
  321. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
  323. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
  325. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
  327. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
  329. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
  331. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
  333. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
  335. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
  337. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
  339. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-table.mjs +15 -0
  341. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
  343. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
  345. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
  347. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
  349. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
  351. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +29 -0
  353. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
  355. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
  357. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
  359. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
  361. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
  363. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
  365. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
  367. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
  369. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  370. package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
  371. package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
  372. package/gantt/lib/gantt/gantt.component.d.ts +31 -0
  373. package/global-search/lib/global-search/global-search.component.d.ts +29 -0
  374. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
  375. package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
  376. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
  377. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
  378. package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
  379. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
  380. package/insights/lib/insights/insights.component.d.ts +22 -0
  381. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
  382. package/kanban/lib/kanban/kanban.component.d.ts +25 -5
  383. package/label-value/lib/label-value/label-value.component.d.ts +13 -0
  384. package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
  385. package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
  386. package/locale/lib/locale/locale.service.d.ts +7 -0
  387. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
  388. package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
  389. package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
  390. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
  391. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
  392. package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
  393. package/numeric/lib/numeric.pipe.d.ts +15 -0
  394. package/numeric/lib/numeric.service.d.ts +20 -0
  395. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
  396. package/object-card/lib/object-card/object-card.component.d.ts +23 -0
  397. package/optional-fields/editor/editor-field.d.ts +19 -0
  398. package/package.json +18 -18
  399. package/paginator/lib/paginator/paginator.component.d.ts +19 -0
  400. package/panel/lib/panel/panel.component.d.ts +24 -3
  401. package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
  402. package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
  403. package/picklist/lib/picklist/picklist.component.d.ts +29 -0
  404. package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
  405. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
  406. package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
  407. package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
  408. package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
  409. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
  410. package/select/lib/select/select.component.d.ts +34 -0
  411. package/select-button/lib/select-button/select-button.component.d.ts +34 -0
  412. package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
  413. package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
  414. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
  415. package/slider/lib/slider/slider.component.d.ts +72 -0
  416. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
  417. package/split-button/lib/split-button/split-button.component.d.ts +22 -0
  418. package/star-rating/star-rating/star-rating.component.d.ts +16 -0
  419. package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
  420. package/stepper/lib/stepper/stepper.component.d.ts +19 -0
  421. package/structure/lib/structure/footer.component.d.ts +10 -0
  422. package/switch/lib/switch/switch.component.d.ts +20 -0
  423. package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
  424. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
  425. package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
  426. package/tabs/lib/tabs/tabs.component.d.ts +28 -0
  427. package/template/lib/template/template.directive.d.ts +12 -0
  428. package/text-area/lib/text-area/text-area.component.d.ts +27 -0
  429. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
  430. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
  431. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +29 -0
  432. package/tile/lib/tile/tile.component.d.ts +25 -0
  433. package/timeline/lib/timeline/timeline.component.d.ts +24 -0
  434. package/toast/lib/toast/toast.component.d.ts +22 -2
  435. package/token-list/lib/token-list/token-list.component.d.ts +21 -0
  436. package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
  437. package/topbar/lib/topbar/topbar.component.d.ts +17 -0
  438. package/tree/lib/tree/tree.component.d.ts +27 -0
  439. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
@@ -1,17 +1,38 @@
1
- import { animate, style, transition, trigger } from "@angular/animations";
2
- import { Component, ContentChildren, EventEmitter, Input, Output } from "@angular/core";
3
- import { EnumSeverity } from "@seniorsistemas/angular-components/shared";
4
- import { TemplateDirective } from "@seniorsistemas/angular-components/template";
1
+ import { animate, style, transition, trigger } from '@angular/animations';
2
+ import { Component, ContentChildren, EventEmitter, Input, Output, } from '@angular/core';
3
+ import { EnumSeverity } from '@seniorsistemas/angular-components/shared';
4
+ import { TemplateDirective } from '@seniorsistemas/angular-components/template';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  import * as i2 from "@seniorsistemas/angular-components/shared";
8
+ /**
9
+ * @description Componente de painel com cabeçalho, corpo e rodapé customizáveis
10
+ * via `TemplateDirective`. Suporta colapsar/expandir com animação, nível de
11
+ * severidade para estilo visual e botão de borda configurável.
12
+ *
13
+ * @example
14
+ * ```html
15
+ * <s-panel header="Título" [toggleable]="true" severity="info">
16
+ * <p>Conteúdo</p>
17
+ * </s-panel>
18
+ * ```
19
+ *
20
+ * @category Data
21
+ */
8
22
  export class PanelComponent {
23
+ /** @description Título exibido no cabeçalho do painel. */
9
24
  header;
25
+ /** @description Habilita o botão de toggle para colapsar/expandir o painel. @default false */
10
26
  toggleable = false;
27
+ /** @description Define o estado inicial do painel como colapsado. @default false */
11
28
  collapsed = false;
29
+ /** @description Nível de severidade que altera o estilo visual do painel. @default 'default' */
12
30
  severity = 'default';
31
+ /** @description Opções de configuração do botão de borda lateral do painel. */
13
32
  borderButtonOptions;
33
+ /** @description Classes CSS adicionais aplicadas ao elemento raíz do painel. @default '' */
14
34
  class = '';
35
+ /** @description Emitido quando o estado de colapso muda, com o novo valor booleano. */
15
36
  collapsedChange = new EventEmitter();
16
37
  templates = null;
17
38
  headerTemplate = null;
@@ -29,13 +50,13 @@ export class PanelComponent {
29
50
  return this.templates?.find((template) => template.type === type)?.template;
30
51
  }
31
52
  _getHeaderTemplate() {
32
- return this._getCustomTemplate("header") ?? null;
53
+ return this._getCustomTemplate('header') ?? null;
33
54
  }
34
55
  _getBodyTemplate() {
35
- return this._getCustomTemplate("body") ?? null;
56
+ return this._getCustomTemplate('body') ?? null;
36
57
  }
37
58
  _getFooterTemplate() {
38
- return this._getCustomTemplate("footer") ?? null;
59
+ return this._getCustomTemplate('footer') ?? null;
39
60
  }
40
61
  _getTemplates() {
41
62
  this.headerTemplate = this._getHeaderTemplate();
@@ -44,29 +65,29 @@ export class PanelComponent {
44
65
  }
45
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
67
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PanelComponent, selector: "s-panel", inputs: { header: "header", toggleable: "toggleable", collapsed: "collapsed", severity: "severity", borderButtonOptions: "borderButtonOptions", class: "class" }, outputs: { collapsedChange: "collapsedChange" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], ngImport: i0, template: "<div\n [class]=\"class\"\n [ngClass]=\"{\n panel: true,\n 'panel--success': severity === EnumSeverity.Success,\n 'panel--info': severity === EnumSeverity.Info,\n 'panel--warn': severity === EnumSeverity.Warn,\n 'panel--error': severity === EnumSeverity.Error,\n 'panel--collapsed': collapsed,\n }\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"border-button\"\n [@BorderButtonAnimation]\n >\n </s-border-button>\n }\n\n @if (header || headerTemplate) {\n <div class=\"header\">\n <div class=\"header-content\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n } @else {\n <span>{{ header }}</span>\n }\n </div>\n\n @if (toggleable) {\n <button\n class=\"collapse-button fas\"\n [ngClass]=\"{\n 'fa-plus': collapsed,\n 'fa-minus': !collapsed,\n }\"\n (click)=\"toggleCollapsed()\"\n ></button>\n }\n </div>\n }\n\n @if (!toggleable || !collapsed) {\n <div class=\"panel-content\">\n <div class=\"body\">\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n </div>\n\n @if (footerTemplate) {\n <div class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".panel{background-color:#fff;border:1px solid #dedce5;padding:20px;position:relative;transition:border-color .5s ease}.panel .border-button{position:absolute;right:15px;top:-12px;z-index:10}.panel .header{border-bottom:1px solid #dedce5;display:flex;justify-content:space-between;padding-bottom:12px;margin-bottom:12px;text-transform:uppercase}.panel .header-content{flex-grow:1}.panel .header .collapse-button{background-color:transparent;border:none;color:#212533;cursor:pointer;height:24px;width:24px}.panel .panel-content .footer{border-top:1px solid #dedce5;padding-top:12px}.panel--success{border-color:#0c9348}.panel--info{border-color:#428bca}.panel--warn{border-color:#f8931f}.panel--error{border-color:#c13018}.panel--collapsed .header{border:none;padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.BorderButtonComponent, selector: "s-border-button", inputs: ["severity", "options"] }], animations: [
47
- trigger("BorderButtonAnimation", [
48
- transition(":enter", [
49
- style({ transform: "scaleY(0)", opacity: 0 }),
50
- animate("300ms ease", style({ transform: "scaleY(1)", opacity: 1 })),
68
+ trigger('BorderButtonAnimation', [
69
+ transition(':enter', [
70
+ style({ transform: 'scaleY(0)', opacity: 0 }),
71
+ animate('300ms ease', style({ transform: 'scaleY(1)', opacity: 1 })),
51
72
  ]),
52
- transition(":leave", [
53
- style({ transform: "scaleY(1)", opacity: 1 }),
54
- animate("300ms ease", style({ transform: "scaleY(0)", opacity: 0 })),
73
+ transition(':leave', [
74
+ style({ transform: 'scaleY(1)', opacity: 1 }),
75
+ animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),
55
76
  ]),
56
77
  ]),
57
78
  ] });
58
79
  }
59
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PanelComponent, decorators: [{
60
81
  type: Component,
61
- args: [{ selector: "s-panel", animations: [
62
- trigger("BorderButtonAnimation", [
63
- transition(":enter", [
64
- style({ transform: "scaleY(0)", opacity: 0 }),
65
- animate("300ms ease", style({ transform: "scaleY(1)", opacity: 1 })),
82
+ args: [{ selector: 's-panel', animations: [
83
+ trigger('BorderButtonAnimation', [
84
+ transition(':enter', [
85
+ style({ transform: 'scaleY(0)', opacity: 0 }),
86
+ animate('300ms ease', style({ transform: 'scaleY(1)', opacity: 1 })),
66
87
  ]),
67
- transition(":leave", [
68
- style({ transform: "scaleY(1)", opacity: 1 }),
69
- animate("300ms ease", style({ transform: "scaleY(0)", opacity: 0 })),
88
+ transition(':leave', [
89
+ style({ transform: 'scaleY(1)', opacity: 1 }),
90
+ animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),
70
91
  ]),
71
92
  ]),
72
93
  ], template: "<div\n [class]=\"class\"\n [ngClass]=\"{\n panel: true,\n 'panel--success': severity === EnumSeverity.Success,\n 'panel--info': severity === EnumSeverity.Info,\n 'panel--warn': severity === EnumSeverity.Warn,\n 'panel--error': severity === EnumSeverity.Error,\n 'panel--collapsed': collapsed,\n }\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"border-button\"\n [@BorderButtonAnimation]\n >\n </s-border-button>\n }\n\n @if (header || headerTemplate) {\n <div class=\"header\">\n <div class=\"header-content\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n } @else {\n <span>{{ header }}</span>\n }\n </div>\n\n @if (toggleable) {\n <button\n class=\"collapse-button fas\"\n [ngClass]=\"{\n 'fa-plus': collapsed,\n 'fa-minus': !collapsed,\n }\"\n (click)=\"toggleCollapsed()\"\n ></button>\n }\n </div>\n }\n\n @if (!toggleable || !collapsed) {\n <div class=\"panel-content\">\n <div class=\"body\">\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n </div>\n\n @if (footerTemplate) {\n <div class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".panel{background-color:#fff;border:1px solid #dedce5;padding:20px;position:relative;transition:border-color .5s ease}.panel .border-button{position:absolute;right:15px;top:-12px;z-index:10}.panel .header{border-bottom:1px solid #dedce5;display:flex;justify-content:space-between;padding-bottom:12px;margin-bottom:12px;text-transform:uppercase}.panel .header-content{flex-grow:1}.panel .header .collapse-button{background-color:transparent;border:none;color:#212533;cursor:pointer;height:24px;width:24px}.panel .panel-content .footer{border-top:1px solid #dedce5;padding-top:12px}.panel--success{border-color:#0c9348}.panel--info{border-color:#428bca}.panel--warn{border-color:#f8931f}.panel--error{border-color:#c13018}.panel--collapsed .header{border:none;padding:0;margin:0}\n"] }]
@@ -88,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
88
109
  type: ContentChildren,
89
110
  args: [TemplateDirective]
90
111
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3BhbmVsL3NyYy9saWIvcGFuZWwvcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3BhbmVsL3NyYy9saWIvcGFuZWwvcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBb0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUF1QixZQUFZLEVBQWMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7OztBQW1CaEYsTUFBTSxPQUFPLGNBQWM7SUFFaEIsTUFBTSxDQUFVO0lBR2hCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFHbkIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUdsQixRQUFRLEdBQWUsU0FBUyxDQUFDO0lBR2pDLG1CQUFtQixDQUF1QjtJQUcxQyxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBR25CLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRzlDLFNBQVMsR0FBd0MsSUFBSSxDQUFDO0lBRXRELGNBQWMsR0FBZ0MsSUFBSSxDQUFDO0lBRW5ELFlBQVksR0FBZ0MsSUFBSSxDQUFDO0lBRWpELGNBQWMsR0FBZ0MsSUFBSSxDQUFDO0lBRWpELFlBQVksR0FBRyxZQUFZLENBQUM7SUFFOUIsa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0s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O3NCQURYLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsTUFBTTtnQkFJQSxTQUFTO3NCQURmLGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCb3JkZXJCdXR0b25PcHRpb25zLCBFbnVtU2V2ZXJpdHksIFNldmVyaXRpZXMgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zaGFyZWRcIjtcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGVtcGxhdGVcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1wYW5lbFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcGFuZWwuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vcGFuZWwuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKFwiQm9yZGVyQnV0dG9uQW5pbWF0aW9uXCIsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXCIzMDBtcyBlYXNlXCIsIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgxKVwiLCBvcGFjaXR5OiAxIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIjpsZWF2ZVwiLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDEpXCIsIG9wYWNpdHk6IDEgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2VcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDApXCIsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVhZGVyPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9nZ2xlYWJsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sbGFwc2VkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXZlcml0eTogU2V2ZXJpdGllcyA9ICdkZWZhdWx0JztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJvcmRlckJ1dHRvbk9wdGlvbnM/OiBCb3JkZXJCdXR0b25PcHRpb25zO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgcHVibGljIHRlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlRGlyZWN0aXZlPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIGJvZHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICAgIHJlYWRvbmx5IEVudW1TZXZlcml0eSA9IEVudW1TZXZlcml0eTtcblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dldFRlbXBsYXRlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVDb2xsYXBzZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuY29sbGFwc2VkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRDdXN0b21UZW1wbGF0ZSh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzPy5maW5kKCh0ZW1wbGF0ZTogVGVtcGxhdGVEaXJlY3RpdmUpID0+IHRlbXBsYXRlLnR5cGUgPT09IHR5cGUpPy50ZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRIZWFkZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoXCJoZWFkZXJcIikgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRCb2R5VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKFwiYm9keVwiKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEZvb3RlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZShcImZvb3RlclwiKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFRlbXBsYXRlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IHRoaXMuX2dldEhlYWRlclRlbXBsYXRlKCk7XG4gICAgICAgIHRoaXMuYm9keVRlbXBsYXRlID0gdGhpcy5fZ2V0Qm9keVRlbXBsYXRlKCk7XG4gICAgICAgIHRoaXMuZm9vdGVyVGVtcGxhdGUgPSB0aGlzLl9nZXRGb290ZXJUZW1wbGF0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBbY2xhc3NdPVwiY2xhc3NcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgcGFuZWw6IHRydWUsXG4gICAgICAgICdwYW5lbC0tc3VjY2Vzcyc6IHNldmVyaXR5ID09PSBFbnVtU2V2ZXJpdHkuU3VjY2VzcyxcbiAgICAgICAgJ3BhbmVsLS1pbmZvJzogc2V2ZXJpdHkgPT09IEVudW1TZXZlcml0eS5JbmZvLFxuICAgICAgICAncGFuZWwtLXdhcm4nOiBzZXZlcml0eSA9PT0gRW51bVNldmVyaXR5Lldhcm4sXG4gICAgICAgICdwYW5lbC0tZXJyb3InOiBzZXZlcml0eSA9PT0gRW51bVNldmVyaXR5LkVycm9yLFxuICAgICAgICAncGFuZWwtLWNvbGxhcHNlZCc6IGNvbGxhcHNlZCxcbiAgICB9XCJcbj5cbiAgICBAaWYgKGJvcmRlckJ1dHRvbk9wdGlvbnM/LnZpc2libGUgPyBib3JkZXJCdXR0b25PcHRpb25zPy52aXNpYmxlKHNldmVyaXR5KSA6IGZhbHNlKSB7XG4gICAgICAgIDxzLWJvcmRlci1idXR0b25cbiAgICAgICAgICAgIFtzZXZlcml0eV09XCJzZXZlcml0eVwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJib3JkZXJCdXR0b25PcHRpb25zXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLWJ1dHRvblwiXG4gICAgICAgICAgICBbQEJvcmRlckJ1dHRvbkFuaW1hdGlvbl1cbiAgICAgICAgPlxuICAgICAgICA8L3MtYm9yZGVyLWJ1dHRvbj5cbiAgICB9XG5cbiAgICBAaWYgKGhlYWRlciB8fCBoZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGhlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBoZWFkZXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAodG9nZ2xlYWJsZSkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xsYXBzZS1idXR0b24gZmFzXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhLXBsdXMnOiBjb2xsYXBzZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZmEtbWludXMnOiAhY29sbGFwc2VkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlZCgpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoIXRvZ2dsZWFibGUgfHwgIWNvbGxhcHNlZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoZm9vdGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3BhbmVsL3NyYy9saWIvcGFuZWwvcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3BhbmVsL3NyYy9saWIvcGFuZWwvcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFFSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsWUFBWSxFQUFjLE1BQU0sMkNBQTJDLENBQUM7QUFDMUcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7QUFFaEY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQWtCSCxNQUFNLE9BQU8sY0FBYztJQUN2QiwwREFBMEQ7SUFFbkQsTUFBTSxDQUFVO0lBRXZCLDhGQUE4RjtJQUV2RixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRTFCLG9GQUFvRjtJQUU3RSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRXpCLGdHQUFnRztJQUV6RixRQUFRLEdBQWUsU0FBUyxDQUFDO0lBRXhDLCtFQUErRTtJQUV4RSxtQkFBbUIsQ0FBdUI7SUFFakQsNEZBQTRGO0lBRXJGLEtBQUssR0FBVyxFQUFFLENBQUM7SUFFMUIsdUZBQXVGO0lBRWhGLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRzlDLFNBQVMsR0FBd0MsSUFBSSxDQUFDO0lBRXRELGNBQWMsR0FBZ0MsSUFBSSxDQUFDO0lBRW5ELFlBQVksR0FBZ0MsSUFBSSxDQUFDO0lB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QURaLEtBQUs7Z0JBS0MsVUFBVTtzQkFEaEIsS0FBSztnQkFLQyxTQUFTO3NCQURmLEtBQUs7Z0JBS0MsUUFBUTtzQkFEZCxLQUFLO2dCQUtDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFLQyxLQUFLO3NCQURYLEtBQUs7Z0JBS0MsZUFBZTtzQkFEckIsTUFBTTtnQkFJQSxTQUFTO3NCQURmLGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvcmRlckJ1dHRvbk9wdGlvbnMsIEVudW1TZXZlcml0eSwgU2V2ZXJpdGllcyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90ZW1wbGF0ZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgcGFpbmVsIGNvbSBjYWJlw6dhbGhvLCBjb3JwbyBlIHJvZGFww6kgY3VzdG9taXrDoXZlaXNcbiAqIHZpYSBgVGVtcGxhdGVEaXJlY3RpdmVgLiBTdXBvcnRhIGNvbGFwc2FyL2V4cGFuZGlyIGNvbSBhbmltYcOnw6NvLCBuw612ZWwgZGVcbiAqIHNldmVyaWRhZGUgcGFyYSBlc3RpbG8gdmlzdWFsIGUgYm90w6NvIGRlIGJvcmRhIGNvbmZpZ3Vyw6F2ZWwuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLXBhbmVsIGhlYWRlcj1cIlTDrXR1bG9cIiBbdG9nZ2xlYWJsZV09XCJ0cnVlXCIgc2V2ZXJpdHk9XCJpbmZvXCI+XG4gKiAgIDxwPkNvbnRlw7pkbzwvcD5cbiAqIDwvcy1wYW5lbD5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBEYXRhXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignQm9yZGVyQnV0dG9uQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGVZKDApJywgb3BhY2l0eTogMCB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZVkoMSknLCBvcGFjaXR5OiAxIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGVZKDEpJywgb3BhY2l0eTogMSB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZVkoMCknLCBvcGFjaXR5OiAwIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVMOtdHVsbyBleGliaWRvIG5vIGNhYmXDp2FsaG8gZG8gcGFpbmVsLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlYWRlcj86IHN0cmluZztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgbyBib3TDo28gZGUgdG9nZ2xlIHBhcmEgY29sYXBzYXIvZXhwYW5kaXIgbyBwYWluZWwuIEBkZWZhdWx0IGZhbHNlICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9nZ2xlYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZWZpbmUgbyBlc3RhZG8gaW5pY2lhbCBkbyBwYWluZWwgY29tbyBjb2xhcHNhZG8uIEBkZWZhdWx0IGZhbHNlICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sbGFwc2VkID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIE7DrXZlbCBkZSBzZXZlcmlkYWRlIHF1ZSBhbHRlcmEgbyBlc3RpbG8gdmlzdWFsIGRvIHBhaW5lbC4gQGRlZmF1bHQgJ2RlZmF1bHQnICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V2ZXJpdHk6IFNldmVyaXRpZXMgPSAnZGVmYXVsdCc7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIE9ww6fDtWVzIGRlIGNvbmZpZ3VyYcOnw6NvIGRvIGJvdMOjbyBkZSBib3JkYSBsYXRlcmFsIGRvIHBhaW5lbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBib3JkZXJCdXR0b25PcHRpb25zPzogQm9yZGVyQnV0dG9uT3B0aW9ucztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gQ2xhc3NlcyBDU1MgYWRpY2lvbmFpcyBhcGxpY2FkYXMgYW8gZWxlbWVudG8gcmHDrXogZG8gcGFpbmVsLiBAZGVmYXVsdCAnJyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyBlc3RhZG8gZGUgY29sYXBzbyBtdWRhLCBjb20gbyBub3ZvIHZhbG9yIGJvb2xlYW5vLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjb2xsYXBzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgICByZWFkb25seSBFbnVtU2V2ZXJpdHkgPSBFbnVtU2V2ZXJpdHk7XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZXRUZW1wbGF0ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlQ29sbGFwc2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcbiAgICAgICAgdGhpcy5jb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmNvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q3VzdG9tVGVtcGxhdGUodHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlbXBsYXRlcz8uZmluZCgodGVtcGxhdGU6IFRlbXBsYXRlRGlyZWN0aXZlKSA9PiB0ZW1wbGF0ZS50eXBlID09PSB0eXBlKT8udGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0SGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKCdoZWFkZXInKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEJvZHlUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoJ2JvZHknKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEZvb3RlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZSgnZm9vdGVyJykgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRUZW1wbGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGVhZGVyVGVtcGxhdGUgPSB0aGlzLl9nZXRIZWFkZXJUZW1wbGF0ZSgpO1xuICAgICAgICB0aGlzLmJvZHlUZW1wbGF0ZSA9IHRoaXMuX2dldEJvZHlUZW1wbGF0ZSgpO1xuICAgICAgICB0aGlzLmZvb3RlclRlbXBsYXRlID0gdGhpcy5fZ2V0Rm9vdGVyVGVtcGxhdGUoKTtcbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBbY2xhc3NdPVwiY2xhc3NcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgcGFuZWw6IHRydWUsXG4gICAgICAgICdwYW5lbC0tc3VjY2Vzcyc6IHNldmVyaXR5ID09PSBFbnVtU2V2ZXJpdHkuU3VjY2VzcyxcbiAgICAgICAgJ3BhbmVsLS1pbmZvJzogc2V2ZXJpdHkgPT09IEVudW1TZXZlcml0eS5JbmZvLFxuICAgICAgICAncGFuZWwtLXdhcm4nOiBzZXZlcml0eSA9PT0gRW51bVNldmVyaXR5Lldhcm4sXG4gICAgICAgICdwYW5lbC0tZXJyb3InOiBzZXZlcml0eSA9PT0gRW51bVNldmVyaXR5LkVycm9yLFxuICAgICAgICAncGFuZWwtLWNvbGxhcHNlZCc6IGNvbGxhcHNlZCxcbiAgICB9XCJcbj5cbiAgICBAaWYgKGJvcmRlckJ1dHRvbk9wdGlvbnM/LnZpc2libGUgPyBib3JkZXJCdXR0b25PcHRpb25zPy52aXNpYmxlKHNldmVyaXR5KSA6IGZhbHNlKSB7XG4gICAgICAgIDxzLWJvcmRlci1idXR0b25cbiAgICAgICAgICAgIFtzZXZlcml0eV09XCJzZXZlcml0eVwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJib3JkZXJCdXR0b25PcHRpb25zXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLWJ1dHRvblwiXG4gICAgICAgICAgICBbQEJvcmRlckJ1dHRvbkFuaW1hdGlvbl1cbiAgICAgICAgPlxuICAgICAgICA8L3MtYm9yZGVyLWJ1dHRvbj5cbiAgICB9XG5cbiAgICBAaWYgKGhlYWRlciB8fCBoZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGhlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBoZWFkZXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAodG9nZ2xlYWJsZSkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xsYXBzZS1idXR0b24gZmFzXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhLXBsdXMnOiBjb2xsYXBzZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZmEtbWludXMnOiAhY29sbGFwc2VkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlZCgpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoIXRvZ2dsZWFibGUgfHwgIWNvbGxhcHNlZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoZm9vdGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
@@ -2,11 +2,35 @@ import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@ngx-translate/core";
4
4
  import * as i2 from "@angular/common";
5
+ /**
6
+ * @description Componente interno que exibe visualmente os indicadores de força de senha.
7
+ * Utilizado em conjunto com a diretiva {@link PasswordStrengthDirective} para fornecer
8
+ * feedback em tempo real enquanto o usuário digita, mostrando três níveis de força
9
+ * (fraca, média e forte) com títulos e indicadores visuais configuráveis.
10
+ *
11
+ * @category Inputs
12
+ */
5
13
  export class PasswordStrengthComponent {
6
14
  translate;
15
+ /**
16
+ * @description Texto personalizado exibido quando a senha é classificada como fraca.
17
+ * Se não informado, utiliza a tradução padrão do token `platform.angular_components.weak`.
18
+ */
7
19
  weakTitle;
20
+ /**
21
+ * @description Texto personalizado exibido quando a senha é classificada como média.
22
+ * Se não informado, utiliza a tradução padrão do token `platform.angular_components.medium`.
23
+ */
8
24
  mediumTitle;
25
+ /**
26
+ * @description Texto personalizado exibido quando a senha é classificada como forte.
27
+ * Se não informado, utiliza a tradução padrão do token `platform.angular_components.strong`.
28
+ */
9
29
  strongTitle;
30
+ /**
31
+ * @description Descrição complementar exibida abaixo dos indicadores de força,
32
+ * orientando o usuário sobre os requisitos esperados para a senha. Campo obrigatório.
33
+ */
10
34
  description;
11
35
  title;
12
36
  position = 'right';
@@ -89,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
89
113
  type: Input,
90
114
  args: [{ required: true }]
91
115
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL3NyYy9saWIvcGFzc3dvcmQtc3RyZW5ndGgvcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL3NyYy9saWIvcGFzc3dvcmQtc3RyZW5ndGgvcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFXekQsTUFBTSxPQUFPLHlCQUF5QjtJQW1CTDtJQWpCdEIsU0FBUyxDQUFVO0lBR25CLFdBQVcsQ0FBVTtJQUdyQixXQUFXLENBQVU7SUFHckIsV0FBVyxDQUFVO0lBRXJCLEtBQUssQ0FBVTtJQUNmLFFBQVEsR0FBOEIsT0FBTyxDQUFDO0lBQzlDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1IsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV2QixZQUE2QixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFckQsUUFBUTtRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sMkJBQTJCO1FBQzlCLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDWCxDQUFDO1FBRUQsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIs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QU1DLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBQYXNzd29yZFN0cmVuZ3RoUG9zaXRpb25zIH0gZnJvbSAnLi90eXBlcy9wYXNzd29yZC1wb3NpdGlvbnMnO1xuaW1wb3J0IHsgUGFzc3dvcmRTdHJlbmd0aHMgfSBmcm9tICcuL3R5cGVzL3Bhc3N3b3JkLXN0cmVuZ3Rocyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9wYXNzd29yZC1zdHJlbmd0aC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRTdHJlbmd0aENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgd2Vha1RpdGxlPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWVkaXVtVGl0bGU/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdHJvbmdUaXRsZT86IHN0cmluZztcblxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIGRlc2NyaXB0aW9uITogc3RyaW5nO1xuXG4gICAgcHVibGljIHRpdGxlPzogc3RyaW5nO1xuICAgIHB1YmxpYyBwb3NpdGlvbjogUGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9ucyA9ICdyaWdodCc7XG4gICAgcHVibGljIGxlZnQgPSAwO1xuICAgIHB1YmxpYyB0b3AgPSAwO1xuICAgIHB1YmxpYyB2aXNpYmxlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMud2Vha1RpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHBhc3N3b3JkU3RyZW5ndGggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGFzc3dvcmQtc3RyZW5ndGgnKTtcblxuICAgICAgICBpZiAoIXBhc3N3b3JkU3RyZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbikge1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICBwYXNzd29yZFN0cmVuZ3RoLmNsYXNzTGlzdC5hZGQoJ3Bhc3N3b3JkLXN0cmVuZ3RoLS10b3AnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICBwYXNzd29yZFN0cmVuZ3RoLmNsYXNzTGlzdC5hZGQoJ3Bhc3N3b3JkLXN0cmVuZ3RoLS1yaWdodCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgcGFzc3dvcmRTdHJlbmd0aC5jbGFzc0xpc3QuYWRkKCdwYXNzd29yZC1zdHJlbmd0aC0tbGVmdCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUluZGljYXRvcnMocGFzc3dvcmRTdHJlbmd0aDogUGFzc3dvcmRTdHJlbmd0aHMpIHtcbiAgICAgICAgY29uc3Qgc3RyZW5ndGhJbmRpY2F0b3IxID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3N0cmVuZ3RoLWluZGljYXRvci0xJyk7XG4gICAgICAgIGNvbnN0IHN0cmVuZ3RoSW5kaWNhdG9yMiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzdHJlbmd0aC1pbmRpY2F0b3ItMicpO1xuICAgICAgICBjb25zdCBzdHJlbmd0aEluZGljYXRvcjMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3RyZW5ndGgtaW5kaWNhdG9yLTMnKTtcblxuICAgICAgICBjb25zdCBvbkluZGljYXRvcnMgPSBbXTtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9ycyA9IFtzdHJlbmd0aEluZGljYXRvcjEsIHN0cmVuZ3RoSW5kaWNhdG9yMiwgc3RyZW5ndGhJbmRpY2F0b3IzXTtcblxuICAgICAgICBsZXQgc3RyZW5ndGhDbGFzczogc3RyaW5nO1xuXG4gICAgICAgIHN3aXRjaCAocGFzc3dvcmRTdHJlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAndmVyeVdlYWsnOlxuICAgICAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLndlYWtUaXRsZSA/PyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMud2VhaycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnd2Vhayc6XG4gICAgICAgICAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMud2Vha1RpdGxlID8/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy53ZWFrJyk7XG4gICAgICAgICAgICAgICAgc3RyZW5ndGhDbGFzcyA9ICdzdHJlbmd0aC1pbmRpY2F0b3ItLXdlYWsnO1xuICAgICAgICAgICAgICAgIG9uSW5kaWNhdG9ycy5wdXNoKHN0cmVuZ3RoSW5kaWNhdG9yMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLm1lZGl1bVRpdGxlID8/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5tZWRpdW0nKTtcbiAgICAgICAgICAgICAgICBzdHJlbmd0aENsYXNzID0gJ3N0cmVuZ3RoLWluZGljYXRvci0tbWVkaXVtJztcbiAgICAgICAgICAgICAgICBvbkluZGljYXRvcnMucHVzaChzdHJlbmd0aEluZGljYXRvcjEpO1xuICAgICAgICAgICAgICAgIG9uSW5kaWNhdG9ycy5wdXNoKHN0cmVuZ3RoSW5kaWNhdG9yMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdHJvbmcnOlxuICAgICAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLnN0cm9uZ1RpdGxlID8/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5zdHJvbmcnKTtcbiAgICAgICAgICAgICAgICBzdHJlbmd0aENsYXNzID0gJ3N0cmVuZ3RoLWluZGljYXRvci0tc3Ryb25nJztcbiAgICAgICAgICAgICAgICBvbkluZGljYXRvcnMucHVzaChzdHJlbmd0aEluZGljYXRvcjEpO1xuICAgICAgICAgICAgICAgIG9uSW5kaWNhdG9ycy5wdXNoKHN0cmVuZ3RoSW5kaWNhdG9yMik7XG4gICAgICAgICAgICAgICAgb25JbmRpY2F0b3JzLnB1c2goc3RyZW5ndGhJbmRpY2F0b3IzKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGluZGljYXRvcnMuZm9yRWFjaCgoaW5kaWNhdG9yKSA9PiB7XG4gICAgICAgICAgICBpbmRpY2F0b3I/LmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgICAgICAgICAgJ3N0cmVuZ3RoLWluZGljYXRvci0td2VhaycsXG4gICAgICAgICAgICAgICAgJ3N0cmVuZ3RoLWluZGljYXRvci0tbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAnc3RyZW5ndGgtaW5kaWNhdG9yLS1zdHJvbmcnLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgb25JbmRpY2F0b3JzLmZvckVhY2goKGluZGljYXRvcikgPT4ge1xuICAgICAgICAgICAgaW5kaWNhdG9yPy5jbGFzc0xpc3QuYWRkKHN0cmVuZ3RoQ2xhc3MpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJwYXNzd29yZC1zdHJlbmd0aFwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgICBsZWZ0OiBsZWZ0ICsgJ3B4JyxcbiAgICAgICAgdG9wOiB0b3AgKyAncHgnLFxuICAgIH1cIlxuICAgIFtuZ0NsYXNzXT1cIlsncGFzc3dvcmQtc3RyZW5ndGgtLScgKyBwb3NpdGlvbl1cIlxuPlxuICAgIDxzcGFuIGNsYXNzPVwicGFzc3dvcmQtc3RyZW5ndGgtdGl0bGVcIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwic3RyZW5ndGgtaW5kaWNhdG9yc1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzdHJlbmd0aC1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgaWQ9XCJzdHJlbmd0aC1pbmRpY2F0b3ItMVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInN0cmVuZ3RoLWluZGljYXRvclwiXG4gICAgICAgICAgICBpZD1cInN0cmVuZ3RoLWluZGljYXRvci0yXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwic3RyZW5ndGgtaW5kaWNhdG9yXCJcbiAgICAgICAgICAgIGlkPVwic3RyZW5ndGgtaW5kaWNhdG9yLTNcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwiY29udGVudFwiPnt7IGRlc2NyaXB0aW9uIH19PC9zcGFuPlxuPC9kaXY+XG4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL3NyYy9saWIvcGFzc3dvcmQtc3RyZW5ndGgvcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL3NyYy9saWIvcGFzc3dvcmQtc3RyZW5ndGgvcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekQ7Ozs7Ozs7R0FPRztBQUtILE1BQU0sT0FBTyx5QkFBeUI7SUFtQ0w7SUFsQzdCOzs7T0FHRztJQUVJLFNBQVMsQ0FBVTtJQUUxQjs7O09BR0c7SUFFSSxXQUFXLENBQVU7SUFFNUI7OztPQUdHO0lBRUksV0FBVyxDQUFVO0lBRTVCOzs7T0FHRztJQUVJLFdBQVcsQ0FBVTtJQUVyQixLQUFLLENBQVU7SUFDZixRQUFRLEdBQThCLE9BQU8sQ0FBQztJQUM5QyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNSLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFdkIsWUFBNkIsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRXJELFFBQVE7UUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVNLDJCQUEyQjtRQUM5QixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FB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QkFBeUI7NEZBQXpCLHlCQUF5Qiw0S0NuQnRDLG1zQkF5QkE7OzRGRE5hLHlCQUF5QjtrQkFKckMsU0FBUzs7cUZBVUMsU0FBUztzQkFEZixLQUFLO2dCQVFDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBUUMsV0FBVztzQkFEakIsS0FBSztnQkFRQyxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbnMgfSBmcm9tICcuL3R5cGVzL3Bhc3N3b3JkLXBvc2l0aW9ucyc7XG5pbXBvcnQgeyBQYXNzd29yZFN0cmVuZ3RocyB9IGZyb20gJy4vdHlwZXMvcGFzc3dvcmQtc3RyZW5ndGhzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBpbnRlcm5vIHF1ZSBleGliZSB2aXN1YWxtZW50ZSBvcyBpbmRpY2Fkb3JlcyBkZSBmb3LDp2EgZGUgc2VuaGEuXG4gKiBVdGlsaXphZG8gZW0gY29uanVudG8gY29tIGEgZGlyZXRpdmEge0BsaW5rIFBhc3N3b3JkU3RyZW5ndGhEaXJlY3RpdmV9IHBhcmEgZm9ybmVjZXJcbiAqIGZlZWRiYWNrIGVtIHRlbXBvIHJlYWwgZW5xdWFudG8gbyB1c3XDoXJpbyBkaWdpdGEsIG1vc3RyYW5kbyB0csOqcyBuw612ZWlzIGRlIGZvcsOnYVxuICogKGZyYWNhLCBtw6lkaWEgZSBmb3J0ZSkgY29tIHTDrXR1bG9zIGUgaW5kaWNhZG9yZXMgdmlzdWFpcyBjb25maWd1csOhdmVpcy5cbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9wYXNzd29yZC1zdHJlbmd0aC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRTdHJlbmd0aENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIHBlcnNvbmFsaXphZG8gZXhpYmlkbyBxdWFuZG8gYSBzZW5oYSDDqSBjbGFzc2lmaWNhZGEgY29tbyBmcmFjYS5cbiAgICAgKiBTZSBuw6NvIGluZm9ybWFkbywgdXRpbGl6YSBhIHRyYWR1w6fDo28gcGFkcsOjbyBkbyB0b2tlbiBgcGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLndlYWtgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdlYWtUaXRsZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0byBwZXJzb25hbGl6YWRvIGV4aWJpZG8gcXVhbmRvIGEgc2VuaGEgw6kgY2xhc3NpZmljYWRhIGNvbW8gbcOpZGlhLlxuICAgICAqIFNlIG7Do28gaW5mb3JtYWRvLCB1dGlsaXphIGEgdHJhZHXDp8OjbyBwYWRyw6NvIGRvIHRva2VuIGBwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubWVkaXVtYC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZWRpdW1UaXRsZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0byBwZXJzb25hbGl6YWRvIGV4aWJpZG8gcXVhbmRvIGEgc2VuaGEgw6kgY2xhc3NpZmljYWRhIGNvbW8gZm9ydGUuXG4gICAgICogU2UgbsOjbyBpbmZvcm1hZG8sIHV0aWxpemEgYSB0cmFkdcOnw6NvIHBhZHLDo28gZG8gdG9rZW4gYHBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5zdHJvbmdgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0cm9uZ1RpdGxlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlc2NyacOnw6NvIGNvbXBsZW1lbnRhciBleGliaWRhIGFiYWl4byBkb3MgaW5kaWNhZG9yZXMgZGUgZm9yw6dhLFxuICAgICAqIG9yaWVudGFuZG8gbyB1c3XDoXJpbyBzb2JyZSBvcyByZXF1aXNpdG9zIGVzcGVyYWRvcyBwYXJhIGEgc2VuaGEuIENhbXBvIG9icmlnYXTDs3Jpby5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBkZXNjcmlwdGlvbiE6IHN0cmluZztcblxuICAgIHB1YmxpYyB0aXRsZT86IHN0cmluZztcbiAgICBwdWJsaWMgcG9zaXRpb246IFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbnMgPSAncmlnaHQnO1xuICAgIHB1YmxpYyBsZWZ0ID0gMDtcbiAgICBwdWJsaWMgdG9wID0gMDtcbiAgICBwdWJsaWMgdmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLndlYWtUaXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uKCkge1xuICAgICAgICBjb25zdCBwYXNzd29yZFN0cmVuZ3RoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhc3N3b3JkLXN0cmVuZ3RoJyk7XG5cbiAgICAgICAgaWYgKCFwYXNzd29yZFN0cmVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgcGFzc3dvcmRTdHJlbmd0aC5jbGFzc0xpc3QuYWRkKCdwYXNzd29yZC1zdHJlbmd0aC0tdG9wJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgcGFzc3dvcmRTdHJlbmd0aC5jbGFzc0xpc3QuYWRkKCdwYXNzd29yZC1zdHJlbmd0aC0tcmlnaHQnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIHBhc3N3b3JkU3RyZW5ndGguY2xhc3NMaXN0LmFkZCgncGFzc3dvcmQtc3RyZW5ndGgtLWxlZnQnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVJbmRpY2F0b3JzKHBhc3N3b3JkU3RyZW5ndGg6IFBhc3N3b3JkU3RyZW5ndGhzKSB7XG4gICAgICAgIGNvbnN0IHN0cmVuZ3RoSW5kaWNhdG9yMSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzdHJlbmd0aC1pbmRpY2F0b3ItMScpO1xuICAgICAgICBjb25zdCBzdHJlbmd0aEluZGljYXRvcjIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3RyZW5ndGgtaW5kaWNhdG9yLTInKTtcbiAgICAgICAgY29uc3Qgc3RyZW5ndGhJbmRpY2F0b3IzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3N0cmVuZ3RoLWluZGljYXRvci0zJyk7XG5cbiAgICAgICAgY29uc3Qgb25JbmRpY2F0b3JzID0gW107XG4gICAgICAgIGNvbnN0IGluZGljYXRvcnMgPSBbc3RyZW5ndGhJbmRpY2F0b3IxLCBzdHJlbmd0aEluZGljYXRvcjIsIHN0cmVuZ3RoSW5kaWNhdG9yM107XG5cbiAgICAgICAgbGV0IHN0cmVuZ3RoQ2xhc3M6IHN0cmluZztcblxuICAgICAgICBzd2l0Y2ggKHBhc3N3b3JkU3RyZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgJ3ZlcnlXZWFrJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy53ZWFrVGl0bGUgPz8gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLndlYWsnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3dlYWsnOlxuICAgICAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLndlYWtUaXRsZSA/PyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMud2VhaycpO1xuICAgICAgICAgICAgICAgIHN0cmVuZ3RoQ2xhc3MgPSAnc3RyZW5ndGgtaW5kaWNhdG9yLS13ZWFrJztcbiAgICAgICAgICAgICAgICBvbkluZGljYXRvcnMucHVzaChzdHJlbmd0aEluZGljYXRvcjEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5tZWRpdW1UaXRsZSA/PyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMubWVkaXVtJyk7XG4gICAgICAgICAgICAgICAgc3RyZW5ndGhDbGFzcyA9ICdzdHJlbmd0aC1pbmRpY2F0b3ItLW1lZGl1bSc7XG4gICAgICAgICAgICAgICAgb25JbmRpY2F0b3JzLnB1c2goc3RyZW5ndGhJbmRpY2F0b3IxKTtcbiAgICAgICAgICAgICAgICBvbkluZGljYXRvcnMucHVzaChzdHJlbmd0aEluZGljYXRvcjIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3Ryb25nJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5zdHJvbmdUaXRsZSA/PyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuc3Ryb25nJyk7XG4gICAgICAgICAgICAgICAgc3RyZW5ndGhDbGFzcyA9ICdzdHJlbmd0aC1pbmRpY2F0b3ItLXN0cm9uZyc7XG4gICAgICAgICAgICAgICAgb25JbmRpY2F0b3JzLnB1c2goc3RyZW5ndGhJbmRpY2F0b3IxKTtcbiAgICAgICAgICAgICAgICBvbkluZGljYXRvcnMucHVzaChzdHJlbmd0aEluZGljYXRvcjIpO1xuICAgICAgICAgICAgICAgIG9uSW5kaWNhdG9ycy5wdXNoKHN0cmVuZ3RoSW5kaWNhdG9yMyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpbmRpY2F0b3JzLmZvckVhY2goKGluZGljYXRvcikgPT4ge1xuICAgICAgICAgICAgaW5kaWNhdG9yPy5jbGFzc0xpc3QucmVtb3ZlKFxuICAgICAgICAgICAgICAgICdzdHJlbmd0aC1pbmRpY2F0b3ItLXdlYWsnLFxuICAgICAgICAgICAgICAgICdzdHJlbmd0aC1pbmRpY2F0b3ItLW1lZGl1bScsXG4gICAgICAgICAgICAgICAgJ3N0cmVuZ3RoLWluZGljYXRvci0tc3Ryb25nJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG9uSW5kaWNhdG9ycy5mb3JFYWNoKChpbmRpY2F0b3IpID0+IHtcbiAgICAgICAgICAgIGluZGljYXRvcj8uY2xhc3NMaXN0LmFkZChzdHJlbmd0aENsYXNzKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJwYXNzd29yZC1zdHJlbmd0aFwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgICBsZWZ0OiBsZWZ0ICsgJ3B4JyxcbiAgICAgICAgdG9wOiB0b3AgKyAncHgnLFxuICAgIH1cIlxuICAgIFtuZ0NsYXNzXT1cIlsncGFzc3dvcmQtc3RyZW5ndGgtLScgKyBwb3NpdGlvbl1cIlxuPlxuICAgIDxzcGFuIGNsYXNzPVwicGFzc3dvcmQtc3RyZW5ndGgtdGl0bGVcIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwic3RyZW5ndGgtaW5kaWNhdG9yc1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzdHJlbmd0aC1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgaWQ9XCJzdHJlbmd0aC1pbmRpY2F0b3ItMVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInN0cmVuZ3RoLWluZGljYXRvclwiXG4gICAgICAgICAgICBpZD1cInN0cmVuZ3RoLWluZGljYXRvci0yXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwic3RyZW5ndGgtaW5kaWNhdG9yXCJcbiAgICAgICAgICAgIGlkPVwic3RyZW5ndGgtaW5kaWNhdG9yLTNcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwiY29udGVudFwiPnt7IGRlc2NyaXB0aW9uIH19PC9zcGFuPlxuPC9kaXY+XG4iXX0=
@@ -2,17 +2,70 @@ import { Directive, HostListener, Input, } from '@angular/core';
2
2
  import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
3
3
  import { PasswordStrengthComponent } from './password-strength.component';
4
4
  import * as i0 from "@angular/core";
5
+ /**
6
+ * @description Diretiva que adiciona o comportamento de verificação de força de senha
7
+ * a um campo de input existente. Ao receber foco ou a cada tecla digitada, exibe o
8
+ * componente {@link PasswordStrengthComponent} posicionado dinamicamente ao redor do campo,
9
+ * fornecendo feedback visual sobre a força da senha informada.
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <input
14
+ * type="password"
15
+ * [sPasswordStrength]="true"
16
+ * passwordStrengthDescription="A senha deve conter letras maiúsculas, números e caracteres especiais."
17
+ * [passwordStrengthValidation]="myValidator" />
18
+ * ```
19
+ *
20
+ * @category Inputs
21
+ */
5
22
  export class PasswordStrengthDirective {
6
23
  elementRef;
7
24
  appRef;
8
25
  componentFactoryResolver;
9
26
  injector;
27
+ /**
28
+ * @description Habilita ou desabilita o comportamento da diretiva.
29
+ * Quando `false`, o indicador de força não será exibido.
30
+ *
31
+ * @default true
32
+ */
10
33
  enabled = true;
34
+ /**
35
+ * @description Função customizada de validação da força da senha.
36
+ * Recebe o conteúdo atual do campo e deve retornar um valor do tipo {@link PasswordStrengths}
37
+ * (`'veryWeak'`, `'weak'`, `'medium'` ou `'strong'`).
38
+ * Se não informada, utiliza a validação padrão baseada em critérios de comprimento,
39
+ * letras maiúsculas/minúsculas, números e caracteres especiais.
40
+ */
11
41
  passwordStrengthValidation;
42
+ /**
43
+ * @description Posição preferencial onde o indicador de força será exibido em relação ao campo.
44
+ * Aceita `'right'`, `'left'` ou `'top'`. O componente tenta posicionar automaticamente
45
+ * em outro lado caso não haja espaço suficiente na posição especificada.
46
+ *
47
+ * @default 'right'
48
+ */
12
49
  passwordStrengthPosition = 'right';
50
+ /**
51
+ * @description Texto personalizado exibido quando a senha é classificada como fraca.
52
+ * Se não informado, utiliza a tradução padrão.
53
+ */
13
54
  passwordStrengthWeakTitle;
55
+ /**
56
+ * @description Texto personalizado exibido quando a senha é classificada como média.
57
+ * Se não informado, utiliza a tradução padrão.
58
+ */
14
59
  passwordStrengthMediumTitle;
60
+ /**
61
+ * @description Texto personalizado exibido quando a senha é classificada como forte.
62
+ * Se não informado, utiliza a tradução padrão.
63
+ */
15
64
  passwordStrengthStrongTitle;
65
+ /**
66
+ * @description Descrição complementar exibida no indicador de força de senha,
67
+ * orientando o usuário sobre os requisitos da senha. Campo obrigatório.
68
+ */
16
69
  passwordStrengthDescription;
17
70
  componentRef;
18
71
  constructor(elementRef, appRef,
@@ -207,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
207
260
  type: HostListener,
208
261
  args: ['blur']
209
262
  }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL3NyYy9saWIvcGFzc3dvcmQtc3RyZW5ndGgvcGFzc3dvcmQtc3RyZW5ndGguZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLSCxTQUFTLEVBR1QsWUFBWSxFQUVaLEtBQUssR0FFUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPMUUsTUFBTSxPQUFPLHlCQUF5QjtJQXlCYjtJQUNBO0lBRUE7SUFDQTtJQTNCZCxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBR2YsMEJBQTBCLENBQTBDO0lBR3BFLHdCQUF3QixHQUE4QixPQUFPLENBQUM7SUFHOUQseUJBQXlCLENBQVU7SUFHbkMsMkJBQTJCLENBQVU7SUFHckMsMkJBQTJCLENBQVU7SUFHckMsMkJBQTJCLENBQVU7SUFFcEMsWUFBWSxDQUFrRDtJQUV0RSxZQUNxQixVQUFzQixFQUN0QixNQUFzQjtJQUN2QyxzREFBc0Q7SUFDckMsd0JBQWtELEVBQ2xELFFBQWtCO1FBSmxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFFdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ3BDLENBQUM7SUFFRyxRQUFRO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUlNLE9BQU87UUFDVixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksRUFBRSxD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QUM7UUFDYixDQUFDO1FBRUQsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sRUFBRSxDQUFDO1lBQ2IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLEdBQUcsYUFBYSxFQUFFLENBQUM7WUFDekIsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLGVBQWUsRUFBRSxDQUFDO1lBQzNCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLE1BQU0sR0FBRyxlQUFlLEVBQUUsQ0FBQztZQUMzQixPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzt3R0FwTlEseUJBQXlCOzRGQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtpQkFDbEM7MEtBR1UsT0FBTztzQkFEYixLQUFLO3VCQUFDLG1CQUFtQjtnQkFJbkIsMEJBQTBCO3NCQURoQyxLQUFLO2dCQUlDLHdCQUF3QjtzQkFEOUIsS0FBSztnQkFJQyx5QkFBeUI7c0JBRC9CLEtBQUs7Z0JBSUMsMkJBQTJCO3NCQURqQyxLQUFLO2dCQUlDLDJCQUEyQjtzQkFEakMsS0FBSztnQkFJQywyQkFBMkI7c0JBRGpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQW1CbEIsT0FBTztzQkFGYixZQUFZO3VCQUFDLE9BQU87O3NCQUNwQixZQUFZO3VCQUFDLE9BQU87Z0JBbUJkLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICAvLyBOT1NPTkFSIC0gJ0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcicgaXMgZGVwcmVjYXRlZC5cbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5cbmltcG9ydCB7IFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXNzd29yZFN0cmVuZ3RoUG9zaXRpb25zIH0gZnJvbSAnLi90eXBlcy9wYXNzd29yZC1wb3NpdGlvbnMnO1xuaW1wb3J0IHsgUGFzc3dvcmRTdHJlbmd0aHMgfSBmcm9tICcuL3R5cGVzL3Bhc3N3b3JkLXN0cmVuZ3Rocyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3NQYXNzd29yZFN0cmVuZ3RoXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkU3RyZW5ndGhEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgnc1Bhc3N3b3JkU3RyZW5ndGgnKVxuICAgIHB1YmxpYyBlbmFibGVkID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0aW9uPzogKGNvbnRlbnQ6IHN0cmluZykgPT4gUGFzc3dvcmRTdHJlbmd0aHM7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYXNzd29yZFN0cmVuZ3RoUG9zaXRpb246IFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbnMgPSAncmlnaHQnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFzc3dvcmRTdHJlbmd0aFdlYWtUaXRsZT86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZT86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhTdHJvbmdUaXRsZT86IHN0cmluZztcblxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhEZXNjcmlwdGlvbiE6IHN0cmluZztcblxuICAgIHByaXZhdGUgY29tcG9uZW50UmVmPzogbnVsbCB8IENvbXBvbmVudFJlZjxQYXNzd29yZFN0cmVuZ3RoQ29tcG9uZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgLy8gTk9TT05BUiAtICdDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXInIGlzIGRlcHJlY2F0ZWQuXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZVByb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcpXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPz8gJyc7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVQYXNzd29yZFN0cmVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZTtcbiAgICAgICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udGVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQudXBkYXRlSW5kaWNhdG9ycyh0aGlzLnBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0aW9uKGNvbnRlbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC51cGRhdGVJbmRpY2F0b3JzKCd2ZXJ5V2VhaycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gICAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95UGFzc3dvcmRTdHJlbmd0aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlUGFzc3dvcmRTdHJlbmd0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlZCAmJiBpc051bGxPclVuZGVmaW5lZCh0aGlzLmNvbXBvbmVudFJlZikpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQYXNzd29yZFN0cmVuZ3RoQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gICAgICAgICAgICB0aGlzLnNldFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnRQcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dQYXNzd29yZFN0cmVuZ3RoKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dQYXNzd29yZFN0cmVuZ3RoKCkge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnZpc2libGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTk9TT05BUiAtIFJlZmFjdG9yIHRoaXMgZnVuY3Rpb24gdG8gcmVkdWNlIGl0cyBDb2duaXRpdmUgQ29tcGxleGl0eSBmcm9tIDE2IHRvIHRoZSAxNSBhbGxvd2VkLlxuICAgIHByaXZhdGUgc2V0UGFzc3dvcmRTdHJlbmd0aENvbXBvbmVudFByb3BlcnRpZXMoKSB7XG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLmNvbXBvbmVudFJlZikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnBvc2l0aW9uID0gdGhpcy5wYXNzd29yZFN0cmVuZ3RoUG9zaXRpb247XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLndlYWtUaXRsZSA9IHRoaXMucGFzc3dvcmRTdHJlbmd0aFdlYWtUaXRsZTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubWVkaXVtVGl0bGUgPSB0aGlzLnBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2Uuc3Ryb25nVGl0bGUgPSB0aGlzLnBhc3N3b3JkU3RyZW5ndGhTdHJvbmdUaXRsZTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZGVzY3JpcHRpb24gPSB0aGlzLnBhc3N3b3JkU3RyZW5ndGhEZXNjcmlwdGlvbjtcblxuICAgICAgICBjb25zdCB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgY29uc3QgbWFyZ2luID0gMjA7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWZIZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWZXaWR0aCA9IHJpZ2h0IC0gbGVmdDtcbiAgICAgICAgY29uc3Qgc2FmZVNwYWNlID0gMTUwO1xuXG4gICAgICAgIGxldCBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGludmFsaWRPcHRpb25zOiBQYXNzd29yZFN0cmVuZ3RoUG9zaXRpb25zW10gPSBbXTtcblxuICAgICAgICB3aGlsZSAoIXBvc2l0aW9uZWQpIHtcbiAgICAgICAgICAgIGlmIChpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcygndG9wJykgJiYgaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoJ3JpZ2h0JykgJiYgaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoJ2xlZnQnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveVBhc3N3b3JkU3RyZW5ndGgoKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHNwYWNlIHRvIHNob3cgcGFzc3dvcmQgc3RyZW5ndGgnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RvcCc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9wU2hpZnQgPSB0b3A7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0U2hpZnQgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIC0gcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRTaGlmdCA9IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgTUlOX0hPUklaT05UQUxfU0FGRV9TUEFDRSA9IDUwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcFNoaWZ0IDw9IGVsZW1lbnRSZWZIZWlnaHQgKyBzYWZlU3BhY2UgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0U2hpZnQgPCBNSU5fSE9SSVpPTlRBTF9TQUZFX1NQQUNFIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0U2hpZnQgPCBNSU5fSE9SSVpPTlRBTF9TQUZFX1NQQUNFXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24gPSAncmlnaHQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaCgndG9wJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wIC0gbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQoZWxlbWVudFJlZldpZHRoIC8gMiArIGxlZnQpO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0Jzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByaWdodFNoaWZ0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAtIHJpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyaWdodFNoaWZ0IDw9IGVsZW1lbnRSZWZXaWR0aCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24gPSAnbGVmdCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKCdyaWdodCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCArIGVsZW1lbnRSZWZIZWlnaHQgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQocmlnaHQgKyBtYXJnaW4pO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ2xlZnQnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRTaGlmdCA9IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRTaGlmdCA8PSBlbGVtZW50UmVmV2lkdGggKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uID0gJ3RvcCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKCdsZWZ0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgZWxlbWVudFJlZkhlaWdodCAvIDIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChsZWZ0IC0gbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UucG9zaXRpb24gPSB0aGlzLnBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVQcm9wZXJ0aWVzKCkge1xuICAgICAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0aW9uID0gdGhpcy5wYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbiB8fCB0aGlzLmRlZmF1bHRWYWxpZGF0b3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95UGFzc3dvcmRTdHJlbmd0aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdFZhbGlkYXRvcihjb250ZW50OiBzdHJpbmcpOiBQYXNzd29yZFN0cmVuZ3RocyB7XG4gICAgICAgIGxldCBwb2ludHMgPSAwO1xuICAgICAgICBjb25zdCBQQVNTV09SRF9NSU5fTEVOR1RIID0gNjtcbiAgICAgICAgY29uc3QgV0VFS19DUklURVJJQSA9IDE7XG4gICAgICAgIGNvbnN0IE1FRElVTV9DUklURVJJQSA9IDQ7XG4gICAgICAgIGNvbnN0IFNUUk9OR19DUklURVJJQSA9IDU7XG5cbiAgICAgICAgY29uc3QgcmVnRXhwVmFsaWRhdGlvbnMgPSBbXG4gICAgICAgICAgICAvKD89LipcXGQpLywgLy8gbnVtYmVyXG4gICAgICAgICAgICAvKD89LipbYS16XSkvLCAvLyBsb3dlcmNhc2VcbiAgICAgICAgICAgIC8oPz0uKltBLVpdKS8sIC8vIHVwcGVyY2FzZVxuICAgICAgICAgICAgLyg/PS4qWyFAIyQlJiouXFxcXD0rXn4tXSkvLCAvLyBzcGVjaWFsIGNoYXJhY3RlclxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChjb250ZW50Lmxlbmd0aCA+PSBQQVNTV09SRF9NSU5fTEVOR1RIKSB7XG4gICAgICAgICAgICBwb2ludHMrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJlZ0V4cFZhbGlkYXRpb25zLmZvckVhY2goKHZhbGlkYXRpb24pID0+IHtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0aW9uLnRlc3QoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICBwb2ludHMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHBvaW50cyA8IFdFRUtfQ1JJVEVSSUEpIHtcbiAgICAgICAgICAgIHJldHVybiAndmVyeVdlYWsnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwb2ludHMgPCBNRURJVU1fQ1JJVEVSSUEpIHtcbiAgICAgICAgICAgIHJldHVybiAnd2Vhayc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvaW50cyA8IFNUUk9OR19DUklURVJJQSkge1xuICAgICAgICAgICAgcmV0dXJuICdtZWRpdW0nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnc3Ryb25nJztcbiAgICB9XG59XG4iXX0=
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL3NyYy9saWIvcGFzc3dvcmQtc3RyZW5ndGgvcGFzc3dvcmQtc3RyZW5ndGguZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLSCxTQUFTLEVBR1QsWUFBWSxFQUVaLEtBQUssR0FFUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFJMUU7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFJSCxNQUFNLE9BQU8seUJBQXlCO0lBNkRiO0lBQ0E7SUFFQTtJQUNBO0lBaEVyQjs7Ozs7T0FLRztJQUVJLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFFdEI7Ozs7OztPQU1HO0lBRUksMEJBQTBCLENBQTBDO0lBRTNFOzs7Ozs7T0FNRztJQUVJLHdCQUF3QixHQUE4QixPQUFPLENBQUM7SUFFckU7OztPQUdHO0lBRUkseUJBQXlCLENBQVU7SUFFMUM7OztPQUdHO0lBRUksMkJBQTJCLENBQVU7SUFFNUM7OztPQUdHO0lBRUksMkJBQTJCLENBQVU7SUFFNUM7OztPQUdHO0lBRUksMkJBQTJCLENBQVU7SUFFcEMsWUFBWSxDQUFrRDtJQUV0RSxZQUNxQixVQUFzQixFQUN0QixNQUFzQjtJQUN2QyxzREFBc0Q7SUFDckMsd0JBQWtELEVBQ2xELFFBQWtCO1FBSmxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFFdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ3BDLENBQUM7SUFFRyxRQUFR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WUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICAvLyBOT1NPTkFSIC0gJ0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcicgaXMgZGVwcmVjYXRlZC5cbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5cbmltcG9ydCB7IFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXNzd29yZFN0cmVuZ3RoUG9zaXRpb25zIH0gZnJvbSAnLi90eXBlcy9wYXNzd29yZC1wb3NpdGlvbnMnO1xuaW1wb3J0IHsgUGFzc3dvcmRTdHJlbmd0aHMgfSBmcm9tICcuL3R5cGVzL3Bhc3N3b3JkLXN0cmVuZ3Rocyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERpcmV0aXZhIHF1ZSBhZGljaW9uYSBvIGNvbXBvcnRhbWVudG8gZGUgdmVyaWZpY2HDp8OjbyBkZSBmb3LDp2EgZGUgc2VuaGFcbiAqIGEgdW0gY2FtcG8gZGUgaW5wdXQgZXhpc3RlbnRlLiBBbyByZWNlYmVyIGZvY28gb3UgYSBjYWRhIHRlY2xhIGRpZ2l0YWRhLCBleGliZSBvXG4gKiBjb21wb25lbnRlIHtAbGluayBQYXNzd29yZFN0cmVuZ3RoQ29tcG9uZW50fSBwb3NpY2lvbmFkbyBkaW5hbWljYW1lbnRlIGFvIHJlZG9yIGRvIGNhbXBvLFxuICogZm9ybmVjZW5kbyBmZWVkYmFjayB2aXN1YWwgc29icmUgYSBmb3LDp2EgZGEgc2VuaGEgaW5mb3JtYWRhLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aW5wdXRcbiAqICAgdHlwZT1cInBhc3N3b3JkXCJcbiAqICAgW3NQYXNzd29yZFN0cmVuZ3RoXT1cInRydWVcIlxuICogICBwYXNzd29yZFN0cmVuZ3RoRGVzY3JpcHRpb249XCJBIHNlbmhhIGRldmUgY29udGVyIGxldHJhcyBtYWnDunNjdWxhcywgbsO6bWVyb3MgZSBjYXJhY3RlcmVzIGVzcGVjaWFpcy5cIlxuICogICBbcGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb25dPVwibXlWYWxpZGF0b3JcIiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IElucHV0c1xuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tzUGFzc3dvcmRTdHJlbmd0aF0nLFxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFN0cmVuZ3RoRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgb3UgZGVzYWJpbGl0YSBvIGNvbXBvcnRhbWVudG8gZGEgZGlyZXRpdmEuXG4gICAgICogUXVhbmRvIGBmYWxzZWAsIG8gaW5kaWNhZG9yIGRlIGZvcsOnYSBuw6NvIHNlcsOhIGV4aWJpZG8uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KCdzUGFzc3dvcmRTdHJlbmd0aCcpXG4gICAgcHVibGljIGVuYWJsZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZ1bsOnw6NvIGN1c3RvbWl6YWRhIGRlIHZhbGlkYcOnw6NvIGRhIGZvcsOnYSBkYSBzZW5oYS5cbiAgICAgKiBSZWNlYmUgbyBjb250ZcO6ZG8gYXR1YWwgZG8gY2FtcG8gZSBkZXZlIHJldG9ybmFyIHVtIHZhbG9yIGRvIHRpcG8ge0BsaW5rIFBhc3N3b3JkU3RyZW5ndGhzfVxuICAgICAqIChgJ3ZlcnlXZWFrJ2AsIGAnd2VhaydgLCBgJ21lZGl1bSdgIG91IGAnc3Ryb25nJ2ApLlxuICAgICAqIFNlIG7Do28gaW5mb3JtYWRhLCB1dGlsaXphIGEgdmFsaWRhw6fDo28gcGFkcsOjbyBiYXNlYWRhIGVtIGNyaXTDqXJpb3MgZGUgY29tcHJpbWVudG8sXG4gICAgICogbGV0cmFzIG1hacO6c2N1bGFzL21pbsO6c2N1bGFzLCBuw7ptZXJvcyBlIGNhcmFjdGVyZXMgZXNwZWNpYWlzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0aW9uPzogKGNvbnRlbnQ6IHN0cmluZykgPT4gUGFzc3dvcmRTdHJlbmd0aHM7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUG9zacOnw6NvIHByZWZlcmVuY2lhbCBvbmRlIG8gaW5kaWNhZG9yIGRlIGZvcsOnYSBzZXLDoSBleGliaWRvIGVtIHJlbGHDp8OjbyBhbyBjYW1wby5cbiAgICAgKiBBY2VpdGEgYCdyaWdodCdgLCBgJ2xlZnQnYCBvdSBgJ3RvcCdgLiBPIGNvbXBvbmVudGUgdGVudGEgcG9zaWNpb25hciBhdXRvbWF0aWNhbWVudGVcbiAgICAgKiBlbSBvdXRybyBsYWRvIGNhc28gbsOjbyBoYWphIGVzcGHDp28gc3VmaWNpZW50ZSBuYSBwb3Npw6fDo28gZXNwZWNpZmljYWRhLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ3JpZ2h0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbjogUGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9ucyA9ICdyaWdodCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gcGVyc29uYWxpemFkbyBleGliaWRvIHF1YW5kbyBhIHNlbmhhIMOpIGNsYXNzaWZpY2FkYSBjb21vIGZyYWNhLlxuICAgICAqIFNlIG7Do28gaW5mb3JtYWRvLCB1dGlsaXphIGEgdHJhZHXDp8OjbyBwYWRyw6NvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhXZWFrVGl0bGU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gcGVyc29uYWxpemFkbyBleGliaWRvIHF1YW5kbyBhIHNlbmhhIMOpIGNsYXNzaWZpY2FkYSBjb21vIG3DqWRpYS5cbiAgICAgKiBTZSBuw6NvIGluZm9ybWFkbywgdXRpbGl6YSBhIHRyYWR1w6fDo28gcGFkcsOjby5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYXNzd29yZFN0cmVuZ3RoTWVkaXVtVGl0bGU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gcGVyc29uYWxpemFkbyBleGliaWRvIHF1YW5kbyBhIHNlbmhhIMOpIGNsYXNzaWZpY2FkYSBjb21vIGZvcnRlLlxuICAgICAqIFNlIG7Do28gaW5mb3JtYWRvLCB1dGlsaXphIGEgdHJhZHXDp8OjbyBwYWRyw6NvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhTdHJvbmdUaXRsZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXNjcmnDp8OjbyBjb21wbGVtZW50YXIgZXhpYmlkYSBubyBpbmRpY2Fkb3IgZGUgZm9yw6dhIGRlIHNlbmhhLFxuICAgICAqIG9yaWVudGFuZG8gbyB1c3XDoXJpbyBzb2JyZSBvcyByZXF1aXNpdG9zIGRhIHNlbmhhLiBDYW1wbyBvYnJpZ2F0w7NyaW8uXG4gICAgICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgcGFzc3dvcmRTdHJlbmd0aERlc2NyaXB0aW9uITogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBjb21wb25lbnRSZWY/OiBudWxsIHwgQ29tcG9uZW50UmVmPFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICAvLyBOT1NPTkFSIC0gJ0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcicgaXMgZGVwcmVjYXRlZC5cbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJylcbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHVibGljIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA/PyAnJztcblxuICAgICAgICB0aGlzLmNyZWF0ZVBhc3N3b3JkU3RyZW5ndGgoKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlO1xuICAgICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC51cGRhdGVJbmRpY2F0b3JzKHRoaXMucGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb24oY29udGVudCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tcG9uZW50LnVwZGF0ZUluZGljYXRvcnMoJ3ZlcnlXZWFrJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBwdWJsaWMgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3lQYXNzd29yZFN0cmVuZ3RoKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQYXNzd29yZFN0cmVuZ3RoKCkge1xuICAgICAgICBpZiAodGhpcy5lbmFibGVkICYmIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuY29tcG9uZW50UmVmKSkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgY29uc3QgZG9tRWxlbSA9ICh0aGlzLmNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFzc3dvcmRTdHJlbmd0aENvbXBvbmVudFByb3BlcnRpZXMoKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Bhc3N3b3JkU3RyZW5ndGgoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd1Bhc3N3b3JkU3RyZW5ndGgoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOT1NPTkFSIC0gUmVmYWN0b3IgdGhpcyBmdW5jdGlvbiB0byByZWR1Y2UgaXRzIENvZ25pdGl2ZSBDb21wbGV4aXR5IGZyb20gMTYgdG8gdGhlIDE1IGFsbG93ZWQuXG4gICAgcHJpdmF0ZSBzZXRQYXNzd29yZFN0cmVuZ3RoQ29tcG9uZW50UHJvcGVydGllcygpIHtcbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuY29tcG9uZW50UmVmKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UucG9zaXRpb24gPSB0aGlzLnBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbjtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2Uud2Vha1RpdGxlID0gdGhpcy5wYXNzd29yZFN0cmVuZ3RoV2Vha1RpdGxlO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5tZWRpdW1UaXRsZSA9IHRoaXMucGFzc3dvcmRTdHJlbmd0aE1lZGl1bVRpdGxlO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5zdHJvbmdUaXRsZSA9IHRoaXMucGFzc3dvcmRTdHJlbmd0aFN0cm9uZ1RpdGxlO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXNjcmlwdGlvbiA9IHRoaXMucGFzc3dvcmRTdHJlbmd0aERlc2NyaXB0aW9uO1xuXG4gICAgICAgIGNvbnN0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBtYXJnaW4gPSAyMDtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlZkhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlZldpZHRoID0gcmlnaHQgLSBsZWZ0O1xuICAgICAgICBjb25zdCBzYWZlU3BhY2UgPSAxNTA7XG5cbiAgICAgICAgbGV0IHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgaW52YWxpZE9wdGlvbnM6IFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbnNbXSA9IFtdO1xuXG4gICAgICAgIHdoaWxlICghcG9zaXRpb25lZCkge1xuICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKCd0b3AnKSAmJiBpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcygncmlnaHQnKSAmJiBpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcygnbGVmdCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95UGFzc3dvcmRTdHJlbmd0aCgpO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc3BhY2UgdG8gc2hvdyBwYXNzd29yZCBzdHJlbmd0aCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMucGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3BTaGlmdCA9IHRvcDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmlnaHRTaGlmdCA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggLSByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdFNoaWZ0ID0gbGVmdDtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBNSU5fSE9SSVpPTlRBTF9TQUZFX1NQQUNFID0gNTA7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wU2hpZnQgPD0gZWxlbWVudFJlZkhlaWdodCArIHNhZmVTcGFjZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRTaGlmdCA8IE1JTl9IT1JJWk9OVEFMX1NBRkVfU1BBQ0UgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRTaGlmdCA8IE1JTl9IT1JJWk9OVEFMX1NBRkVfU1BBQ0VcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiA9ICdyaWdodCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKCd0b3AnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgLSBtYXJnaW4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChlbGVtZW50UmVmV2lkdGggLyAyICsgbGVmdCk7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAncmlnaHQnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0U2hpZnQgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIC0gcmlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0U2hpZnQgPD0gZWxlbWVudFJlZldpZHRoICsgc2FmZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goJ3JpZ2h0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgZWxlbWVudFJlZkhlaWdodCAvIDIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChyaWdodCArIG1hcmdpbik7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdFNoaWZ0ID0gbGVmdDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobGVmdFNoaWZ0IDw9IGVsZW1lbnRSZWZXaWR0aCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24gPSAndG9wJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goJ2xlZnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgKyBlbGVtZW50UmVmSGVpZ2h0IC8gMik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKGxlZnQgLSBtYXJnaW4pO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHRoaXMucGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZVByb3BlcnRpZXMoKSB7XG4gICAgICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb24gPSB0aGlzLnBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0aW9uIHx8IHRoaXMuZGVmYXVsdFZhbGlkYXRvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lQYXNzd29yZFN0cmVuZ3RoKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhdWx0VmFsaWRhdG9yKGNvbnRlbnQ6IHN0cmluZyk6IFBhc3N3b3JkU3RyZW5ndGhzIHtcbiAgICAgICAgbGV0IHBvaW50cyA9IDA7XG4gICAgICAgIGNvbnN0IFBBU1NXT1JEX01JTl9MRU5HVEggPSA2O1xuICAgICAgICBjb25zdCBXRUVLX0NSSVRFUklBID0gMTtcbiAgICAgICAgY29uc3QgTUVESVVNX0NSSVRFUklBID0gNDtcbiAgICAgICAgY29uc3QgU1RST05HX0NSSVRFUklBID0gNTtcblxuICAgICAgICBjb25zdCByZWdFeHBWYWxpZGF0aW9ucyA9IFtcbiAgICAgICAgICAgIC8oPz0uKlxcZCkvLCAvLyBudW1iZXJcbiAgICAgICAgICAgIC8oPz0uKlthLXpdKS8sIC8vIGxvd2VyY2FzZVxuICAgICAgICAgICAgLyg/PS4qW0EtWl0pLywgLy8gdXBwZXJjYXNlXG4gICAgICAgICAgICAvKD89LipbIUAjJCUmKi5cXFxcPStefi1dKS8sIC8vIHNwZWNpYWwgY2hhcmFjdGVyXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKGNvbnRlbnQubGVuZ3RoID49IFBBU1NXT1JEX01JTl9MRU5HVEgpIHtcbiAgICAgICAgICAgIHBvaW50cysrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVnRXhwVmFsaWRhdGlvbnMuZm9yRWFjaCgodmFsaWRhdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRpb24udGVzdChjb250ZW50KSkge1xuICAgICAgICAgICAgICAgIHBvaW50cysrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocG9pbnRzIDwgV0VFS19DUklURVJJQSkge1xuICAgICAgICAgICAgcmV0dXJuICd2ZXJ5V2Vhayc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvaW50cyA8IE1FRElVTV9DUklURVJJQSkge1xuICAgICAgICAgICAgcmV0dXJuICd3ZWFrJztcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9pbnRzIDwgU1RST05HX0NSSVRFUklBKSB7XG4gICAgICAgICAgICByZXR1cm4gJ21lZGl1bSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdzdHJvbmcnO1xuICAgIH1cbn1cblxuIl19