@seniorsistemas/angular-components 19.7.3-bugfix-ptfgap-1271-ddfd6e7b → 19.7.4

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 (646) hide show
  1. package/accordion/README.md +1 -0
  2. package/accordion/lib/accordion/accordion.component.d.ts +1 -1
  3. package/accordion/lib/accordion/accordion.module.d.ts +1 -6
  4. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +1 -1
  5. package/alert/README.md +1 -1
  6. package/alert/lib/alert/alert.component.d.ts +1 -1
  7. package/alert/lib/alert/alert.module.d.ts +1 -2
  8. package/autocomplete/README.md +1 -1
  9. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +1 -1
  10. package/badge/lib/badge/badge.component.d.ts +1 -1
  11. package/badge/lib/badge/badge.module.d.ts +3 -7
  12. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +1 -1
  13. package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +1 -2
  14. package/breadcrumb/README.md +9 -5
  15. package/button/README.md +1 -0
  16. package/calendar-mask/README.md +4 -2
  17. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +1 -1
  18. package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +1 -2
  19. package/card/lib/card/card.component.d.ts +1 -1
  20. package/card/lib/card/card.module.d.ts +1 -3
  21. package/chat/lib/chat/chat.component.d.ts +2 -1
  22. package/chat/lib/chat/chat.module.d.ts +3 -6
  23. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +1 -1
  24. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +1 -1
  25. package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +1 -3
  26. package/chips/lib/chips/chip-item/chip-item.component.d.ts +1 -1
  27. package/chips/lib/chips/chips/chips.component.d.ts +1 -1
  28. package/chips/lib/chips/chips.module.d.ts +1 -6
  29. package/code-editor/README.md +1 -1
  30. package/code-editor/lib/code-editor/code-editor.component.d.ts +1 -1
  31. package/code-editor/lib/code-editor/code-editor.module.d.ts +1 -3
  32. package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +1 -3
  33. package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +2 -12
  34. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +1 -1
  35. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +1 -2
  36. package/common/deprecated-selector/README.md +120 -47
  37. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +1 -1
  38. package/common/lib/svg-factory/components/senior-icon/senior-icon.component.d.ts +1 -1
  39. package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -1
  40. package/common/lib/svg-factory/svg-factory.module.d.ts +1 -4
  41. package/confirm-dialog/README.md +3 -1
  42. package/content-generator/README.md +2 -2
  43. package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -1
  44. package/content-generator/lib/content-generator/content-generator.module.d.ts +1 -10
  45. package/control-errors/lib/control-errors/control-errors.component.d.ts +2 -2
  46. package/control-errors/lib/control-errors/control-errors.module.d.ts +1 -3
  47. package/country-phone-picker/README.md +1 -1
  48. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -1
  49. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +1 -5
  50. package/currency/README.md +1 -1
  51. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +1 -1
  52. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +1 -7
  53. package/datepicker/README.md +44 -11
  54. package/datepicker/lib/datepicker/datepicker.component.d.ts +1 -0
  55. package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +3 -5
  56. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -0
  57. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +1 -1
  58. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +1 -2
  59. package/editor/README.md +8 -0
  60. package/empty-state/lib/empty-state/empty-state.component.d.ts +1 -1
  61. package/empty-state/lib/empty-state/empty-state.module.d.ts +1 -3
  62. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +1 -1
  63. package/esm2022/accordion/lib/accordion/accordion.component.mjs +3 -3
  64. package/esm2022/accordion/lib/accordion/accordion.module.mjs +4 -10
  65. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +17 -8
  66. package/esm2022/alert/lib/alert/alert.component.mjs +4 -4
  67. package/esm2022/alert/lib/alert/alert.module.mjs +4 -6
  68. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +4 -4
  69. package/esm2022/badge/lib/badge/badge.component.mjs +7 -6
  70. package/esm2022/badge/lib/badge/badge.module.mjs +4 -9
  71. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +3 -2
  72. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +4 -7
  73. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +6 -7
  74. package/esm2022/button/lib/button/button.component.mjs +3 -3
  75. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +3 -2
  76. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +4 -6
  77. package/esm2022/card/lib/card/card.component.mjs +4 -4
  78. package/esm2022/card/lib/card/card.module.mjs +4 -7
  79. package/esm2022/chat/lib/chat/chat.component.mjs +8 -7
  80. package/esm2022/chat/lib/chat/chat.module.mjs +7 -11
  81. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +6 -6
  82. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +4 -5
  83. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +6 -7
  84. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +4 -7
  85. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +5 -5
  86. package/esm2022/chips/lib/chips/chips/chips.component.mjs +7 -7
  87. package/esm2022/chips/lib/chips/chips.module.mjs +4 -10
  88. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +4 -4
  89. package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +8 -11
  90. package/esm2022/code-editor/lib/code-editor/core/facades/core-facade.mjs +1 -7
  91. package/esm2022/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.mjs +22 -47
  92. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +4 -4
  93. package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +4 -6
  94. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +3 -3
  95. package/esm2022/common/lib/svg-factory/components/senior-icon/senior-icon.component.mjs +3 -3
  96. package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +4 -3
  97. package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +4 -14
  98. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +28 -16
  99. package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +4 -42
  100. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
  101. package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +6 -9
  102. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +14 -14
  103. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +6 -28
  104. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +6 -6
  105. package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +9 -35
  106. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +6 -3
  107. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +3 -3
  108. package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +4 -6
  109. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +3 -3
  110. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
  111. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +5 -3
  112. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +3 -3
  113. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +3 -2
  114. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +4 -6
  115. package/esm2022/editor/lib/editor/editor.component.mjs +4 -4
  116. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +4 -4
  117. package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +4 -7
  118. package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +4 -4
  119. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +5 -5
  120. package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +4 -7
  121. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +10 -11
  122. package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +4 -11
  123. package/esm2022/gantt/lib/gantt/components/side-table/side-table.component.mjs +5 -5
  124. package/esm2022/gantt/lib/gantt/gantt.component.mjs +4 -4
  125. package/esm2022/gantt/lib/gantt/gantt.module.mjs +4 -12
  126. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +6 -7
  127. package/esm2022/global-search/lib/global-search/global-search.component.mjs +17 -10
  128. package/esm2022/global-search/lib/global-search/global-search.module.mjs +15 -33
  129. package/esm2022/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.mjs +5 -4
  130. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +4 -4
  131. package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +4 -7
  132. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +5 -5
  133. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +3 -2
  134. package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +5 -14
  135. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +7 -8
  136. package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +4 -10
  137. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +4 -3
  138. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +4 -6
  139. package/esm2022/info-sign/lib/info-sign/components/info-sign/info-sign.component.mjs +6 -6
  140. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +4 -3
  141. package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +4 -8
  142. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +14 -10
  143. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.mjs +7 -6
  144. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.mjs +6 -6
  145. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +34 -20
  146. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +6 -6
  147. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.mjs +7 -7
  148. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +16 -15
  149. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +3 -3
  150. package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +4 -89
  151. package/esm2022/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.mjs +6 -6
  152. package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +11 -10
  153. package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +7 -7
  154. package/esm2022/insights/lib/insights/insights.component.mjs +4 -5
  155. package/esm2022/insights/lib/insights/insights.module.mjs +4 -34
  156. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +18 -22
  157. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +9 -8
  158. package/esm2022/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +6 -6
  159. package/esm2022/kanban/lib/kanban/kanban.component.mjs +20 -11
  160. package/esm2022/kanban/lib/kanban/kanban.module.mjs +4 -41
  161. package/esm2022/label-value/lib/label-value/label-value.component.mjs +8 -8
  162. package/esm2022/label-value/lib/label-value/label-value.module.mjs +4 -10
  163. package/esm2022/lib/locale/fallback.mjs +3 -2
  164. package/esm2022/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.mjs +3 -3
  165. package/esm2022/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.mjs +4 -4
  166. package/esm2022/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.mjs +4 -4
  167. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +13 -7
  168. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +3 -2
  169. package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +4 -20
  170. package/esm2022/locale/lib/locale/locale.module.mjs +6 -8
  171. package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +6 -5
  172. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +16 -15
  173. package/esm2022/locale/lib/locale/pipes/localized-currency-impure.pipe.mjs +6 -5
  174. package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +11 -10
  175. package/esm2022/locale/lib/locale/pipes/localized-date-impure.pipe.mjs +6 -5
  176. package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +3 -2
  177. package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +10 -7
  178. package/esm2022/locale/lib/locale/pipes/localized-time-impure.pipe.mjs +6 -5
  179. package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +3 -2
  180. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +7 -4
  181. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +4 -6
  182. package/esm2022/mask/lib/mask/mask-formatter.module.mjs +3 -3
  183. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +3 -2
  184. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +3 -2
  185. package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +5 -7
  186. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +8 -8
  187. package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +4 -8
  188. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +3 -2
  189. package/esm2022/number-input/lib/number-input/number-input.module.mjs +4 -6
  190. package/esm2022/numeric/lib/numeric.module.mjs +4 -6
  191. package/esm2022/numeric/lib/numeric.pipe.mjs +6 -3
  192. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +8 -3
  193. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +7 -8
  194. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +6 -8
  195. package/esm2022/object-card/lib/object-card/object-card.component.mjs +6 -6
  196. package/esm2022/object-card/lib/object-card/object-card.module.mjs +4 -10
  197. package/esm2022/paginator/lib/paginator/paginator.component.mjs +3 -3
  198. package/esm2022/panel/lib/panel/panel.component.mjs +15 -7
  199. package/esm2022/panel/lib/panel/panel.module.mjs +7 -10
  200. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +4 -4
  201. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +4 -3
  202. package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +4 -7
  203. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +5 -6
  204. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +9 -10
  205. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +5 -11
  206. package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -6
  207. package/esm2022/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.mjs +4 -4
  208. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +5 -5
  209. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +4 -9
  210. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +5 -5
  211. package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +6 -14
  212. package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +3 -4
  213. package/esm2022/select/lib/select/select.component.mjs +3 -5
  214. package/esm2022/select-button/lib/select-button/components/select-button-item/select-button-item.component.mjs +5 -5
  215. package/esm2022/select-button/lib/select-button/select-button.component.mjs +6 -6
  216. package/esm2022/select-button/lib/select-button/select-button.module.mjs +6 -13
  217. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +5 -5
  218. package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +7 -10
  219. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +5 -5
  220. package/esm2022/sidebar/lib/sidebar/sidebar.module.mjs +4 -7
  221. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +6 -6
  222. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +7 -9
  223. package/esm2022/slider/lib/slider/slider.component.mjs +6 -6
  224. package/esm2022/slider/lib/slider/slider.module.mjs +6 -9
  225. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +4 -5
  226. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +5 -13
  227. package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -5
  228. package/esm2022/split-button/lib/split-button/split-button.module.mjs +4 -6
  229. package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
  230. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +6 -6
  231. package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +4 -8
  232. package/esm2022/stepper/lib/stepper/stepper.component.mjs +6 -6
  233. package/esm2022/stepper/lib/stepper/stepper.module.mjs +4 -7
  234. package/esm2022/structure/lib/structure/footer.component.mjs +3 -2
  235. package/esm2022/structure/lib/structure/header.component.mjs +5 -4
  236. package/esm2022/structure/lib/structure/structure.module.mjs +5 -7
  237. package/esm2022/switch/lib/switch/switch.component.mjs +4 -5
  238. package/esm2022/switch/lib/switch/switch.module.mjs +4 -6
  239. package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +6 -3
  240. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +17 -9
  241. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +4 -4
  242. package/esm2022/table/lib/table/table.module.mjs +4 -34
  243. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +19 -16
  244. package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +4 -8
  245. package/esm2022/template/lib/template/template.module.mjs +4 -5
  246. package/esm2022/text-area/lib/text-area/text-area.component.mjs +9 -9
  247. package/esm2022/text-area/lib/text-area.module.mjs +5 -24
  248. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +5 -5
  249. package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +7 -9
  250. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.mjs +6 -6
  251. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.mjs +9 -9
  252. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +25 -14
  253. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +4 -4
  254. package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +6 -14
  255. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +7 -7
  256. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.mjs +3 -3
  257. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +4 -4
  258. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +6 -6
  259. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +4 -3
  260. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +4 -20
  261. package/esm2022/tile/lib/tile/tile.component.mjs +6 -6
  262. package/esm2022/tile/lib/tile/tile.module.mjs +4 -7
  263. package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.mjs +6 -6
  264. package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.mjs +5 -5
  265. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.mjs +4 -4
  266. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.mjs +5 -5
  267. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.mjs +3 -3
  268. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.mjs +5 -5
  269. package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.mjs +7 -7
  270. package/esm2022/timeline/lib/timeline/timeline.component.mjs +5 -6
  271. package/esm2022/timeline/lib/timeline/timeline.module.mjs +4 -20
  272. package/esm2022/toast/lib/toast/toast.component.mjs +4 -4
  273. package/esm2022/toast/lib/toast/toast.module.mjs +6 -7
  274. package/esm2022/token-list/lib/token-list/token-list.component.mjs +4 -4
  275. package/esm2022/token-list/lib/token-list/token-list.module.mjs +4 -6
  276. package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +3 -4
  277. package/esm2022/topbar/lib/topbar/topbar.component.mjs +3 -3
  278. package/esm2022/topbar/lib/topbar/topbar.module.mjs +7 -10
  279. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +6 -5
  280. package/esm2022/tree/lib/tree/tree.component.mjs +5 -5
  281. package/esm2022/tree/lib/tree/tree.module.mjs +4 -10
  282. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +5 -5
  283. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +4 -6
  284. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +20 -17
  285. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  286. package/fesm2022/seniorsistemas-angular-components-alert.mjs +6 -8
  287. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  288. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +3 -3
  289. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  290. package/fesm2022/seniorsistemas-angular-components-badge.mjs +8 -12
  291. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  292. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +5 -7
  293. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -6
  295. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
  297. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +5 -6
  299. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-card.mjs +7 -9
  301. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-chat.mjs +15 -16
  303. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -10
  305. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +3 -4
  307. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-chips.mjs +14 -18
  309. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +26 -59
  311. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +6 -8
  313. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-common.mjs +9 -16
  315. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +28 -52
  317. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +5 -8
  319. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -37
  321. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +12 -35
  323. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +5 -2
  325. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +2 -2
  327. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +12 -11
  329. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +5 -6
  331. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-editor.mjs +3 -3
  333. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +8 -11
  335. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +6 -9
  337. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +11 -18
  339. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +9 -16
  341. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -47
  343. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +8 -10
  345. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +10 -17
  347. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +8 -14
  349. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +5 -6
  351. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +9 -11
  353. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +64 -121
  355. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -47
  357. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +86 -113
  359. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +10 -16
  361. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +40 -46
  363. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-locale.mjs +40 -31
  365. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +9 -8
  367. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-mask.mjs +4 -3
  369. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  370. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +55 -56
  371. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  372. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +9 -13
  373. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  374. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +6 -6
  375. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  376. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +7 -2
  377. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  378. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +8 -7
  379. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  380. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +14 -21
  381. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  382. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +2 -2
  383. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  384. package/fesm2022/seniorsistemas-angular-components-panel.mjs +17 -11
  385. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  386. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +8 -9
  387. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  388. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +4 -5
  389. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  390. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +11 -17
  391. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  392. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +15 -15
  393. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  394. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +8 -15
  395. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  396. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +9 -15
  397. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  398. package/fesm2022/seniorsistemas-angular-components-select.mjs +4 -6
  399. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  400. package/fesm2022/seniorsistemas-angular-components-shared.mjs +8 -11
  401. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  402. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +7 -10
  403. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  404. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -9
  405. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  406. package/fesm2022/seniorsistemas-angular-components-slider.mjs +8 -11
  407. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  408. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -15
  409. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  410. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +6 -8
  411. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  412. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
  413. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  414. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +8 -12
  415. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  416. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +8 -11
  417. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  418. package/fesm2022/seniorsistemas-angular-components-structure.mjs +18 -18
  419. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  420. package/fesm2022/seniorsistemas-angular-components-switch.mjs +6 -9
  421. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  422. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +20 -21
  423. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  424. package/fesm2022/seniorsistemas-angular-components-table.mjs +27 -45
  425. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  426. package/fesm2022/seniorsistemas-angular-components-template.mjs +3 -4
  427. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  428. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +12 -30
  429. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  430. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -8
  431. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  432. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +45 -37
  433. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  434. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +14 -25
  435. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  436. package/fesm2022/seniorsistemas-angular-components-tile.mjs +8 -12
  437. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  438. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +58 -124
  439. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  440. package/fesm2022/seniorsistemas-angular-components-toast.mjs +4 -5
  441. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  442. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -8
  443. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  444. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -2
  445. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  446. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +5 -8
  447. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  448. package/fesm2022/seniorsistemas-angular-components-tree.mjs +10 -13
  449. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  450. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +6 -8
  451. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  452. package/fesm2022/seniorsistemas-angular-components.mjs +2 -1
  453. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  454. package/fieldset/lib/fieldset/fieldset.component.d.ts +1 -1
  455. package/fieldset/lib/fieldset/fieldset.module.d.ts +1 -3
  456. package/file-picker/lib/file-picker/file-picker.component.d.ts +1 -1
  457. package/file-picker/lib/file-picker/file-picker.module.d.ts +1 -7
  458. package/gantt/lib/gantt/components/side-table/side-table.component.d.ts +1 -1
  459. package/gantt/lib/gantt/gantt.component.d.ts +1 -1
  460. package/gantt/lib/gantt/gantt.module.d.ts +1 -4
  461. package/global-search/README.md +12 -1
  462. package/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.d.ts +1 -1
  463. package/global-search/lib/global-search/global-search.component.d.ts +1 -1
  464. package/global-search/lib/global-search/global-search.module.d.ts +8 -12
  465. package/grid-menu/README.md +27 -2
  466. package/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +1 -1
  467. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +1 -1
  468. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +1 -3
  469. package/help-popover/README.md +2 -2
  470. package/help-popover/lib/help-popover/help-popover/help-popover.component.d.ts +1 -1
  471. package/help-popover/lib/help-popover/help-popover.directive.d.ts +1 -1
  472. package/help-popover/lib/help-popover/help-popover.module.d.ts +2 -5
  473. package/ia-insight/README.md +1 -1
  474. package/image-cropper/README.md +2 -2
  475. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +1 -1
  476. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +3 -8
  477. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -1
  478. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +1 -2
  479. package/info-sign/README.md +1 -1
  480. package/info-sign/lib/info-sign/components/info-sign/info-sign.component.d.ts +2 -2
  481. package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -1
  482. package/info-sign/lib/info-sign/info-sign.module.d.ts +1 -4
  483. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +7 -6
  484. package/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.d.ts +4 -4
  485. package/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +4 -4
  486. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +5 -4
  487. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +4 -4
  488. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +4 -4
  489. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +5 -4
  490. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +1 -1
  491. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +1 -23
  492. package/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.d.ts +1 -1
  493. package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +2 -1
  494. package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +1 -1
  495. package/insights/lib/insights/insights.component.d.ts +1 -1
  496. package/insights/lib/insights/insights.module.d.ts +3 -12
  497. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +5 -5
  498. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +4 -4
  499. package/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +1 -1
  500. package/kanban/lib/kanban/kanban.component.d.ts +1 -1
  501. package/kanban/lib/kanban/kanban.module.d.ts +3 -13
  502. package/label-value/lib/label-value/label-value.component.d.ts +1 -1
  503. package/label-value/lib/label-value/label-value.module.d.ts +1 -6
  504. package/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.d.ts +1 -1
  505. package/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.d.ts +1 -1
  506. package/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.d.ts +1 -1
  507. package/loading-state/lib/loading-state/loading-state.component.d.ts +1 -1
  508. package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -1
  509. package/loading-state/lib/loading-state/loading-state.module.d.ts +1 -6
  510. package/locale/lib/locale/locale.module.d.ts +1 -2
  511. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +3 -3
  512. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +3 -3
  513. package/locale/lib/locale/pipes/localized-currency-impure.pipe.d.ts +3 -3
  514. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +3 -3
  515. package/locale/lib/locale/pipes/localized-date-impure.pipe.d.ts +3 -3
  516. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +1 -1
  517. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +2 -2
  518. package/locale/lib/locale/pipes/localized-time-impure.pipe.d.ts +3 -3
  519. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +1 -1
  520. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +2 -1
  521. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +1 -2
  522. package/mask/lib/mask/mask-formatter.module.d.ts +1 -1
  523. package/mask/lib/mask/mask-formatter.pipe.d.ts +1 -1
  524. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +1 -1
  525. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +3 -4
  526. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -1
  527. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +1 -4
  528. package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
  529. package/number-input/lib/number-input/number-input.module.d.ts +1 -2
  530. package/numeric/lib/numeric.module.d.ts +1 -2
  531. package/numeric/lib/numeric.pipe.d.ts +1 -1
  532. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +1 -0
  533. package/object-card/README.md +13 -1
  534. package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +1 -1
  535. package/object-card/lib/object-card/elements/main/object-card-main.component.d.ts +1 -1
  536. package/object-card/lib/object-card/object-card.component.d.ts +1 -1
  537. package/object-card/lib/object-card/object-card.module.d.ts +5 -10
  538. package/package.json +13 -13
  539. package/panel/lib/panel/panel.component.d.ts +6 -1
  540. package/panel/lib/panel/panel.module.d.ts +2 -4
  541. package/password-strength/lib/password-strength/password-strength.component.d.ts +1 -1
  542. package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -1
  543. package/password-strength/lib/password-strength/password-strength.module.d.ts +2 -4
  544. package/picklist/README.md +74 -2
  545. package/product-header/README.md +1 -1
  546. package/profile-picture-picker/README.md +1 -1
  547. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +1 -1
  548. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +1 -7
  549. package/progressbar/README.md +0 -1
  550. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +2 -1
  551. package/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +1 -1
  552. package/progressbar/lib/progressbar/progressbar.component.d.ts +1 -1
  553. package/progressbar/lib/progressbar/progressbar.module.d.ts +1 -5
  554. package/radio-button/README.md +0 -1
  555. package/rating-scale/README.md +1 -1
  556. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +2 -2
  557. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +1 -3
  558. package/select/lib/select/select.component.d.ts +1 -1
  559. package/select-button/README.md +1 -1
  560. package/select-button/lib/select-button/components/select-button-item/select-button-item.component.d.ts +1 -1
  561. package/select-button/lib/select-button/select-button.component.d.ts +1 -1
  562. package/select-button/lib/select-button/select-button.module.d.ts +1 -3
  563. package/shared/lib/shared/border-button/border-button.component.d.ts +1 -1
  564. package/shared/lib/shared/border-button/border-button.module.d.ts +1 -3
  565. package/sidebar/lib/sidebar/sidebar.component.d.ts +1 -1
  566. package/sidebar/lib/sidebar/sidebar.module.d.ts +2 -4
  567. package/slide-in-bar/README.md +1 -1
  568. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +1 -1
  569. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +1 -2
  570. package/slider/README.md +1 -1
  571. package/slider/lib/slider/slider.component.d.ts +1 -1
  572. package/slider/lib/slider/slider.module.d.ts +1 -3
  573. package/speech-recognition/README.md +1 -1
  574. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +1 -1
  575. package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +1 -3
  576. package/split-button/README.md +1 -1
  577. package/split-button/lib/split-button/split-button.component.d.ts +1 -1
  578. package/split-button/lib/split-button/split-button.module.d.ts +1 -2
  579. package/spotlight/README.md +1 -1
  580. package/star-rating/README.md +1 -1
  581. package/stats-card/README.md +1 -1
  582. package/stats-card/lib/stats-card/stats-card.component.d.ts +1 -1
  583. package/stats-card/lib/stats-card/stats-card.module.d.ts +1 -4
  584. package/stepper/lib/stepper/stepper.component.d.ts +1 -1
  585. package/stepper/lib/stepper/stepper.module.d.ts +1 -3
  586. package/structure/lib/structure/footer.component.d.ts +1 -1
  587. package/structure/lib/structure/header.component.d.ts +1 -1
  588. package/structure/lib/structure/structure.module.d.ts +1 -2
  589. package/switch/lib/switch/switch.component.d.ts +1 -1
  590. package/switch/lib/switch/switch.module.d.ts +1 -2
  591. package/table/README.md +9 -8
  592. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
  593. package/table/lib/table/table-column/table-columns.component.d.ts +1 -1
  594. package/table/lib/table/table-paging/table-paging.component.d.ts +1 -1
  595. package/table/lib/table/table.module.d.ts +5 -12
  596. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
  597. package/table-header/lib/table-header/table-header-checkox.module.d.ts +1 -4
  598. package/template/README.md +177 -0
  599. package/template/lib/template/template.module.d.ts +2 -3
  600. package/text-area/lib/text-area/text-area.component.d.ts +1 -1
  601. package/text-area/lib/text-area.module.d.ts +1 -5
  602. package/text-area-ia/README.md +1 -1
  603. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +1 -1
  604. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +1 -2
  605. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
  606. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +2 -2
  607. package/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +5 -4
  608. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +1 -1
  609. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +1 -8
  610. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -1
  611. package/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +1 -1
  612. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +1 -1
  613. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +1 -1
  614. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -1
  615. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +1 -6
  616. package/tile/lib/tile/tile.component.d.ts +1 -1
  617. package/tile/lib/tile/tile.module.d.ts +3 -5
  618. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +1 -1
  619. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +1 -1
  620. package/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +1 -1
  621. package/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +1 -1
  622. package/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +1 -1
  623. package/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +1 -1
  624. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +1 -1
  625. package/timeline/lib/timeline/timeline.component.d.ts +1 -1
  626. package/timeline/lib/timeline/timeline.module.d.ts +1 -5
  627. package/toast/lib/toast/toast.component.d.ts +1 -1
  628. package/toast/lib/toast/toast.module.d.ts +3 -3
  629. package/token-list/lib/token-list/token-list.component.d.ts +1 -1
  630. package/token-list/lib/token-list/token-list.module.d.ts +1 -2
  631. package/tooltip/lib/tooltip/tooltip.module.d.ts +1 -2
  632. package/topbar/lib/topbar/topbar.component.d.ts +1 -1
  633. package/topbar/lib/topbar/topbar.module.d.ts +3 -5
  634. package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -1
  635. package/tree/lib/tree/tree.component.d.ts +1 -1
  636. package/tree/lib/tree/tree.module.d.ts +1 -6
  637. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -1
  638. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +1 -2
  639. package/esm2022/insights/lib/insights/components/insights-card/components/index.mjs +0 -2
  640. package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.mjs +0 -20
  641. package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.mjs +0 -19
  642. package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.mjs +0 -33
  643. package/insights/lib/insights/components/insights-card/components/index.d.ts +0 -1
  644. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +0 -10
  645. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +0 -9
  646. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +0 -13
@@ -1,7 +1,6 @@
1
1
  import { Component, EventEmitter, HostListener, Input, Output, ViewChild, forwardRef } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
4
  /**
6
5
  * @description Componente de chave tipo switch (liga/desliga) que implementa
7
6
  * `ControlValueAccessor` para uso em formulários Angular. Suporta rótulos
@@ -74,13 +73,13 @@ export class SwitchComponent {
74
73
  }
75
74
  }
76
75
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
77
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SwitchComponent, selector: "s-switch", inputs: { readonly: "readonly", trueLabel: "trueLabel", falseLabel: "falseLabel", inputId: "inputId", label: "label", inputName: "inputName", disabled: "disabled", value: "value", showStatusLabel: "showStatusLabel" }, outputs: { valueChanged: "valueChanged" }, host: { listeners: { "focusin": "onFocusIn()", "focusout": "onFocusOut()" } }, providers: [
76
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SwitchComponent, isStandalone: true, selector: "s-switch", inputs: { readonly: "readonly", trueLabel: "trueLabel", falseLabel: "falseLabel", inputId: "inputId", label: "label", inputName: "inputName", disabled: "disabled", value: "value", showStatusLabel: "showStatusLabel" }, outputs: { valueChanged: "valueChanged" }, host: { listeners: { "focusin": "onFocusIn()", "focusout": "onFocusOut()" } }, providers: [
78
77
  {
79
78
  provide: NG_VALUE_ACCESSOR,
80
79
  useExisting: forwardRef(() => SwitchComponent),
81
80
  multi: true,
82
81
  },
83
- ], viewQueries: [{ propertyName: "switchRef", first: true, predicate: ["switch"], descendants: true, static: true }], ngImport: i0, template: "<div\n #switch\n class=\"switch\"\n [ngClass]=\"{ 'switch--disabled': disabled }\"\n [attr.aria-disabled]=\"disabled || null\"\n>\n <label class=\"switch-toggle\">\n <input\n #input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"checkbox\"\n role=\"switch\"\n [attr.aria-checked]=\"value\"\n [attr.aria-label]=\"label || null\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-readonly]=\"readonly || null\"\n (change)=\"toggleCheck()\"\n />\n <span\n class=\"slider\"\n aria-hidden=\"true\"\n ></span>\n </label>\n @if (showStatusLabel) {\n <span class=\"label\">{{ value ? trueLabel : falseLabel }}</span>\n }\n</div>\n\n", styles: [".switch{display:inline-flex;align-items:center}.switch .switch-toggle{display:inline-block;height:24px;margin:0;position:relative;width:40px}.switch .switch-toggle input{height:0;opacity:0;width:0}.switch .switch-toggle input:focus-visible+.slider{box-shadow:0 0 0 2px #000;outline:2px solid #000;outline-offset:1px}.switch .switch-toggle input:checked+.slider{background-color:#428bca;border-radius:15px}.switch .switch-toggle input:checked+.slider:before{transform:translate(16px)}.switch .switch-toggle .slider{background-color:#a5a5b2;border-radius:15px;cursor:pointer;inset:0;position:absolute;transition:.4s}.switch .switch-toggle .slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:\"\";height:16px;left:4px;position:absolute;transition:.4s;width:16px}.switch .label{color:#212533;font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:400;line-height:150%;margin-left:12px}.switch .label.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.switch--disabled{opacity:.5}.switch--focus .switch-toggle .slider{box-shadow:0 0 0 2px #428bca80}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
82
+ ], viewQueries: [{ propertyName: "switchRef", first: true, predicate: ["switch"], descendants: true, static: true }], ngImport: i0, template: "<div\n #switch\n class=\"inline-flex items-center\"\n [class.opacity-50]=\"disabled\"\n [attr.aria-disabled]=\"disabled || null\"\n>\n <label class=\"inline-block h-6 m-0 relative w-10\">\n <input\n #input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"checkbox\"\n role=\"switch\"\n class=\"h-0 opacity-0 w-0\"\n [attr.aria-checked]=\"value\"\n [attr.aria-label]=\"label || null\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-readonly]=\"readonly || null\"\n (change)=\"toggleCheck()\"\n />\n <span\n class=\"slider bg-grayscale-40 rounded-[15px] inset-0 absolute cursor-pointer transition-all duration-[400ms]\"\n aria-hidden=\"true\"\n ></span>\n </label>\n @if (showStatusLabel) {\n <span class=\"text-grayscale-90 font-open-sans text-sm font-normal leading-[150%] ml-3\">{{ value ? trueLabel : falseLabel }}</span>\n }\n</div>\n\n", styles: [".slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:\"\";height:16px;left:4px;position:absolute;transition:.4s;width:16px}input:checked+.slider{background-color:#428bca}input:checked+.slider:before{transform:translate(16px)}input:focus-visible+.slider{box-shadow:0 0 0 2px #000;outline:2px solid #000;outline-offset:1px}.switch--focus .slider{box-shadow:0 0 0 2px #428bca80}\n"] });
84
83
  }
85
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchComponent, decorators: [{
86
85
  type: Component,
@@ -90,7 +89,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
90
89
  useExisting: forwardRef(() => SwitchComponent),
91
90
  multi: true,
92
91
  },
93
- ], template: "<div\n #switch\n class=\"switch\"\n [ngClass]=\"{ 'switch--disabled': disabled }\"\n [attr.aria-disabled]=\"disabled || null\"\n>\n <label class=\"switch-toggle\">\n <input\n #input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"checkbox\"\n role=\"switch\"\n [attr.aria-checked]=\"value\"\n [attr.aria-label]=\"label || null\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-readonly]=\"readonly || null\"\n (change)=\"toggleCheck()\"\n />\n <span\n class=\"slider\"\n aria-hidden=\"true\"\n ></span>\n </label>\n @if (showStatusLabel) {\n <span class=\"label\">{{ value ? trueLabel : falseLabel }}</span>\n }\n</div>\n\n", styles: [".switch{display:inline-flex;align-items:center}.switch .switch-toggle{display:inline-block;height:24px;margin:0;position:relative;width:40px}.switch .switch-toggle input{height:0;opacity:0;width:0}.switch .switch-toggle input:focus-visible+.slider{box-shadow:0 0 0 2px #000;outline:2px solid #000;outline-offset:1px}.switch .switch-toggle input:checked+.slider{background-color:#428bca;border-radius:15px}.switch .switch-toggle input:checked+.slider:before{transform:translate(16px)}.switch .switch-toggle .slider{background-color:#a5a5b2;border-radius:15px;cursor:pointer;inset:0;position:absolute;transition:.4s}.switch .switch-toggle .slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:\"\";height:16px;left:4px;position:absolute;transition:.4s;width:16px}.switch .label{color:#212533;font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:400;line-height:150%;margin-left:12px}.switch .label.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.switch--disabled{opacity:.5}.switch--focus .switch-toggle .slider{box-shadow:0 0 0 2px #428bca80}\n"] }]
92
+ ], standalone: true, imports: [], template: "<div\n #switch\n class=\"inline-flex items-center\"\n [class.opacity-50]=\"disabled\"\n [attr.aria-disabled]=\"disabled || null\"\n>\n <label class=\"inline-block h-6 m-0 relative w-10\">\n <input\n #input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"checkbox\"\n role=\"switch\"\n class=\"h-0 opacity-0 w-0\"\n [attr.aria-checked]=\"value\"\n [attr.aria-label]=\"label || null\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-readonly]=\"readonly || null\"\n (change)=\"toggleCheck()\"\n />\n <span\n class=\"slider bg-grayscale-40 rounded-[15px] inset-0 absolute cursor-pointer transition-all duration-[400ms]\"\n aria-hidden=\"true\"\n ></span>\n </label>\n @if (showStatusLabel) {\n <span class=\"text-grayscale-90 font-open-sans text-sm font-normal leading-[150%] ml-3\">{{ value ? trueLabel : falseLabel }}</span>\n }\n</div>\n\n", styles: [".slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:\"\";height:16px;left:4px;position:absolute;transition:.4s;width:16px}input:checked+.slider{background-color:#428bca}input:checked+.slider:before{transform:translate(16px)}input:focus-visible+.slider{box-shadow:0 0 0 2px #000;outline:2px solid #000;outline-offset:1px}.switch--focus .slider{box-shadow:0 0 0 2px #428bca80}\n"] }]
94
93
  }], propDecorators: { readonly: [{
95
94
  type: Input
96
95
  }], trueLabel: [{
@@ -121,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
121
120
  type: HostListener,
122
121
  args: ['focusout']
123
122
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zd2l0Y2gvc3JjL2xpYi9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zd2l0Y2gvc3JjL2xpYi9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFekU7Ozs7Ozs7Ozs7O0dBV0c7QUFhSCxNQUFNLE9BQU8sZUFBZTtJQUN4QiwwRkFBMEY7SUFFbkYsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV4Qiw2RUFBNkU7SUFFdEUsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUU1QixpRkFBaUY7SUFFMUUsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUVoQyxxRkFBcUY7SUFFOUUsT0FBTyxDQUFVO0lBQ3hCLGlHQUFpRztJQUUxRixLQUFLLENBQVU7SUFFdEIseURBQXlEO0lBRWxELFNBQVMsQ0FBVTtJQUUxQiw2RkFBNkY7SUFFdEYsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV4QixzRkFBc0Y7SUFFL0UsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFbEQseURBQXlEO0lBRWxELEtBQUssR0FBRyxLQUFLLENBQUM7SUFFckIsdUZBQXVGO0lBRWhGLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFHdkIsU0FBUyxDQUFjO0lBRXRCLFNBQVMsQ0FBNEI7SUFDckMsVUFBVSxDQUE0QjtJQUd2QyxTQUFTO1FBQ1osTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUErQixDQUFDO1FBQ3JFLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFHTSxVQUFVO1FBQ2IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUErQixDQUFDO1FBQ3JFLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxVQUFVLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsUUFBa0M7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFNBQW1DO1FBQ3hELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBRSxRQUFpQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQzt3R0ExRlEsZUFBZTs0RkFBZixlQUFlLHVYQVJiO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQzlDLEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSiw2SUN6QkwsMjBCQThCQTs7NEZESGEsZUFBZTtrQkFaM0IsU0FBUzsrQkFDSSxVQUFVLGFBR1Q7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzhCQUtNLFFBQVE7c0JBRGQsS0FBSztnQkFLQyxTQUFTO3NCQURmLEtBQUs7Z0JBS0MsVUFBVTtzQkFEaEIsS0FBSztnQkFLQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFLQyxRQUFRO3NCQURkLEtBQUs7Z0JBS0MsWUFBWTtzQkFEbEIsTUFBTTtnQkFLQSxLQUFLO3NCQURYLEtBQUs7Z0JBS0MsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxTQUFTO3NCQURmLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPOUIsU0FBUztzQkFEZixZQUFZO3VCQUFDLFNBQVM7Z0JBT2hCLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGNoYXZlIHRpcG8gc3dpdGNoIChsaWdhL2Rlc2xpZ2EpIHF1ZSBpbXBsZW1lbnRhXG4gKiBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIHBhcmEgdXNvIGVtIGZvcm11bMOhcmlvcyBBbmd1bGFyLiBTdXBvcnRhIHLDs3R1bG9zXG4gKiBwZXJzb25hbGl6YWRvcyBwYXJhIG9zIGVzdGFkb3MgdmVyZGFkZWlybyBlIGZhbHNvLCBhbMOpbSBkZSBtb2RvIHNvbWVudGUgbGVpdHVyYS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtc3dpdGNoIGZvcm1Db250cm9sTmFtZT1cImF0aXZvXCIgdHJ1ZUxhYmVsPVwiQXRpdm9cIiBmYWxzZUxhYmVsPVwiSW5hdGl2b1wiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1zd2l0Y2gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N3aXRjaC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN3aXRjaENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbXBlZGUgYWx0ZXJhw6fDtWVzIHBlbG8gdXN1w6FyaW8gc2VtIGRlc2FiaWxpdGFyIG8gY2FtcG8uIEBkZWZhdWx0IGZhbHNlICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgPSBmYWxzZTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gUsOzdHVsbyBleGliaWRvIHF1YW5kbyBvIHZhbG9yIMOpIGB0cnVlYC4gQGRlZmF1bHQgJ0xpZ2FkbycgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0cnVlTGFiZWwgPSAnTGlnYWRvJztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gUsOzdHVsbyBleGliaWRvIHF1YW5kbyBvIHZhbG9yIMOpIGBmYWxzZWAuIEBkZWZhdWx0ICdEZXNsaWdhZG8nICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmFsc2VMYWJlbCA9ICdEZXNsaWdhZG8nO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBgaWRgIGRvIGVsZW1lbnRvIGA8aW5wdXQ+YCBpbnRlcm5vIHBhcmEgYXNzb2NpYcOnw6NvIGNvbSBgPGxhYmVsPmAuICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5wdXRJZD86IHN0cmluZztcbiAgICAvKiogQGRlc2NyaXB0aW9uIE5vbWUgYWNlc3PDrXZlbCBkZXNjcml0aXZvIGRvIHN3aXRjaCBwYXJhIHRlY25vbG9naWFzIGFzc2lzdGl2YXMgKGFyaWEtbGFiZWwpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBdHJpYnV0byBgbmFtZWAgZG8gYDxpbnB1dD5gIGludGVybm8uICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5wdXROYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXNhYmlsaXRhIG8gY29tcG9uZW50ZSwgaW1wZWRpbmRvIGludGVyYcOnw6NvIGUgYWx0ZXJhw6fDtWVzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gdmFsb3IgZG8gc3dpdGNoIG11ZGEsIGNvbSBvIG5vdm8gZXN0YWRvIGJvb2xlYW5vLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFZhbG9yIGF0dWFsIGRvIHN3aXRjaC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb250cm9sYSBzZSBkZXZlIG91IG7Do28gZXhpYmlyIG8gdmFsdWUgZG8gY29tcG9uZW50ZS4gQGRlZmF1bHQgdHJ1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dTdGF0dXNMYWJlbCA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKCdzd2l0Y2gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBzd2l0Y2hSZWYhOiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2U/OiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkPzogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpXG4gICAgcHVibGljIG9uRm9jdXNJbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3dpdGNoRWxlbWVudCA9IHRoaXMuc3dpdGNoUmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICAgIHN3aXRjaEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnc3dpdGNoLS1mb2N1cycpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgICBwdWJsaWMgb25Gb2N1c091dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3dpdGNoRWxlbWVudCA9IHRoaXMuc3dpdGNoUmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICAgIHN3aXRjaEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc3dpdGNoLS1mb2N1cycpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlQ2hlY2soKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9ICF0aGlzLnZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMudmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9vbkNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fb25Ub3VjaGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9vblRvdWNoZWQodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICAjc3dpdGNoXG4gICAgY2xhc3M9XCJzd2l0Y2hcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3N3aXRjaC0tZGlzYWJsZWQnOiBkaXNhYmxlZCB9XCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIlxuPlxuICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaC10b2dnbGVcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImlucHV0TmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwidmFsdWVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCB8fCBudWxsXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5IHx8IG51bGxcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVDaGVjaygpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwic2xpZGVyXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgICBAaWYgKHNob3dTdGF0dXNMYWJlbCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgdmFsdWUgPyB0cnVlTGFiZWwgOiBmYWxzZUxhYmVsIH19PC9zcGFuPlxuICAgIH1cbjwvZGl2PlxuXG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zd2l0Y2gvc3JjL2xpYi9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zd2l0Y2gvc3JjL2xpYi9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUV6RTs7Ozs7Ozs7Ozs7R0FXRztBQWVILE1BQU0sT0FBTyxlQUFlO0lBQ3hCLDBGQUEwRjtJQUVuRixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRXhCLDZFQUE2RTtJQUV0RSxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBRTVCLGlGQUFpRjtJQUUxRSxVQUFVLEdBQUcsV0FBVyxDQUFDO0lBRWhDLHFGQUFxRjtJQUU5RSxPQUFPLENBQVU7SUFDeEIsaUdBQWlHO0lBRTFGLEtBQUssQ0FBVTtJQUV0Qix5REFBeUQ7SUFFbEQsU0FBUyxDQUFVO0lBRTFCLDZGQUE2RjtJQUV0RixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRXhCLHNGQUFzRjtJQUUvRSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVsRCx5REFBeUQ7SUFFbEQsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVyQix1RkFBdUY7SUFFaEYsZUFBZSxHQUFHLElBQUksQ0FBQztJQUd2QixTQUFTLENBQWM7SUFFdEIsU0FBUyxDQUE0QjtJQUNyQyxVQUFVLENBQTRCO0lBR3ZDLFNBQVM7UUFDWixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQStCLENBQUM7UUFDckUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUdNLFVBQVU7UUFDYixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQStCLENBQUM7UUFDckUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxRQUFrQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRU0saUJBQWlCLENBQUMsU0FBbUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVNLGdCQUFnQixDQUFFLFFBQWlCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO3dHQTFGUSxlQUFlOzRGQUFmLGVBQWUsMllBVmI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLDZJQ3pCTCw4aUNBK0JBOzs0RkRGYSxlQUFlO2tCQWQzQixTQUFTOytCQUNJLFVBQVUsYUFHVDt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osY0FDVyxJQUFJLFdBQ1AsRUFBRTs4QkFLSixRQUFRO3NCQURkLEtBQUs7Z0JBS0MsU0FBUztzQkFEZixLQUFLO2dCQUtDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBS0MsT0FBTztzQkFEYixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFLQyxTQUFTO3NCQURmLEtBQUs7Z0JBS0MsUUFBUTtzQkFEZCxLQUFLO2dCQUtDLFlBQVk7c0JBRGxCLE1BQU07Z0JBS0EsS0FBSztzQkFEWCxLQUFLO2dCQUtDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTzlCLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyxTQUFTO2dCQU9oQixVQUFVO3NCQURoQixZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGNoYXZlIHRpcG8gc3dpdGNoIChsaWdhL2Rlc2xpZ2EpIHF1ZSBpbXBsZW1lbnRhXHJcbiAqIGBDb250cm9sVmFsdWVBY2Nlc3NvcmAgcGFyYSB1c28gZW0gZm9ybXVsw6FyaW9zIEFuZ3VsYXIuIFN1cG9ydGEgcsOzdHVsb3NcclxuICogcGVyc29uYWxpemFkb3MgcGFyYSBvcyBlc3RhZG9zIHZlcmRhZGVpcm8gZSBmYWxzbywgYWzDqW0gZGUgbW9kbyBzb21lbnRlIGxlaXR1cmEuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtc3dpdGNoIGZvcm1Db250cm9sTmFtZT1cImF0aXZvXCIgdHJ1ZUxhYmVsPVwiQXRpdm9cIiBmYWxzZUxhYmVsPVwiSW5hdGl2b1wiIC8+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1zd2l0Y2gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zd2l0Y2guY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN3aXRjaENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbXBlZGUgYWx0ZXJhw6fDtWVzIHBlbG8gdXN1w6FyaW8gc2VtIGRlc2FiaWxpdGFyIG8gY2FtcG8uIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGV4aWJpZG8gcXVhbmRvIG8gdmFsb3Igw6kgYHRydWVgLiBAZGVmYXVsdCAnTGlnYWRvJyAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0cnVlTGFiZWwgPSAnTGlnYWRvJztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFLDs3R1bG8gZXhpYmlkbyBxdWFuZG8gbyB2YWxvciDDqSBgZmFsc2VgLiBAZGVmYXVsdCAnRGVzbGlnYWRvJyAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmYWxzZUxhYmVsID0gJ0Rlc2xpZ2Fkbyc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBgaWRgIGRvIGVsZW1lbnRvIGA8aW5wdXQ+YCBpbnRlcm5vIHBhcmEgYXNzb2NpYcOnw6NvIGNvbSBgPGxhYmVsPmAuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlucHV0SWQ/OiBzdHJpbmc7XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIE5vbWUgYWNlc3PDrXZlbCBkZXNjcml0aXZvIGRvIHN3aXRjaCBwYXJhIHRlY25vbG9naWFzIGFzc2lzdGl2YXMgKGFyaWEtbGFiZWwpLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEF0cmlidXRvIGBuYW1lYCBkbyBgPGlucHV0PmAgaW50ZXJuby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaW5wdXROYW1lPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVzYWJpbGl0YSBvIGNvbXBvbmVudGUsIGltcGVkaW5kbyBpbnRlcmHDp8OjbyBlIGFsdGVyYcOnw7Vlcy4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gdmFsb3IgZG8gc3dpdGNoIG11ZGEsIGNvbSBvIG5vdm8gZXN0YWRvIGJvb2xlYW5vLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gVmFsb3IgYXR1YWwgZG8gc3dpdGNoLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2YWx1ZSA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gQ29udHJvbGEgc2UgZGV2ZSBvdSBuw6NvIGV4aWJpciBvIHZhbHVlIGRvIGNvbXBvbmVudGUuIEBkZWZhdWx0IHRydWUgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1N0YXR1c0xhYmVsID0gdHJ1ZTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdzd2l0Y2gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIHN3aXRjaFJlZiE6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2U/OiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XHJcbiAgICBwcml2YXRlIF9vblRvdWNoZWQ/OiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpXHJcbiAgICBwdWJsaWMgb25Gb2N1c0luKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHN3aXRjaEVsZW1lbnQgPSB0aGlzLnN3aXRjaFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgICAgIHN3aXRjaEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnc3dpdGNoLS1mb2N1cycpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcclxuICAgIHB1YmxpYyBvbkZvY3VzT3V0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHN3aXRjaEVsZW1lbnQgPSB0aGlzLnN3aXRjaFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgICAgIHN3aXRjaEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc3dpdGNoLS1mb2N1cycpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gb25Ub3VjaGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9nZ2xlQ2hlY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlID0gIXRoaXMudmFsdWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh0aGlzLnZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29uVG91Y2hlZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vblRvdWNoZWQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXZcbiAgICAjc3dpdGNoXG4gICAgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXJcIlxuICAgIFtjbGFzcy5vcGFjaXR5LTUwXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIlxuPlxuICAgIDxsYWJlbCBjbGFzcz1cImlubGluZS1ibG9jayBoLTYgbS0wIHJlbGF0aXZlIHctMTBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImlucHV0TmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiXG4gICAgICAgICAgICBjbGFzcz1cImgtMCBvcGFjaXR5LTAgdy0wXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsIHx8IG51bGxcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwidmFsdWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgbnVsbFwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUNoZWNrKClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzbGlkZXIgYmctZ3JheXNjYWxlLTQwIHJvdW5kZWQtWzE1cHhdIGluc2V0LTAgYWJzb2x1dGUgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tWzQwMG1zXVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gICAgQGlmIChzaG93U3RhdHVzTGFiZWwpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWdyYXlzY2FsZS05MCBmb250LW9wZW4tc2FucyB0ZXh0LXNtIGZvbnQtbm9ybWFsIGxlYWRpbmctWzE1MCVdIG1sLTNcIj57eyB2YWx1ZSA/IHRydWVMYWJlbCA6IGZhbHNlTGFiZWwgfX08L3NwYW4+XG4gICAgfVxuPC9kaXY+XG5cbiJdfQ==
@@ -1,18 +1,16 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { SwitchComponent } from './switch.component';
4
3
  import * as i0 from "@angular/core";
5
4
  export class SwitchModule {
6
5
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SwitchModule, declarations: [SwitchComponent], imports: [CommonModule], exports: [SwitchComponent] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchModule, imports: [CommonModule] });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SwitchModule, imports: [SwitchComponent], exports: [SwitchComponent] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchModule });
9
8
  }
10
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchModule, decorators: [{
11
10
  type: NgModule,
12
11
  args: [{
13
- imports: [CommonModule],
14
- declarations: [SwitchComponent],
12
+ imports: [SwitchComponent],
15
13
  exports: [SwitchComponent],
16
14
  }]
17
15
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zd2l0Y2gvc3JjL2xpYi9zd2l0Y2gvc3dpdGNoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3JELE1BQU0sT0FBTyxZQUFZO3dHQUFaLFlBQVk7eUdBQVosWUFBWSxpQkFITixlQUFlLGFBRHBCLFlBQVksYUFFWixlQUFlO3lHQUVoQixZQUFZLFlBSlgsWUFBWTs7NEZBSWIsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBTd2l0Y2hDb21wb25lbnQgfSBmcm9tICcuL3N3aXRjaC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1N3aXRjaENvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1N3aXRjaENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaE1vZHVsZSB7fVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zd2l0Y2gvc3JjL2xpYi9zd2l0Y2gvc3dpdGNoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFNckQsTUFBTSxPQUFPLFlBQVk7d0dBQVosWUFBWTt5R0FBWixZQUFZLFlBSFgsZUFBZSxhQUNmLGVBQWU7eUdBRWhCLFlBQVk7OzRGQUFaLFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4vc3dpdGNoLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1N3aXRjaENvbXBvbmVudF0sXHJcbiAgICBleHBvcnRzOiBbU3dpdGNoQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN3aXRjaE1vZHVsZSB7fVxyXG4iXX0=
@@ -23,11 +23,14 @@ export class RowTogllerDirective extends RowToggler {
23
23
  }
24
24
  }
25
25
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowTogllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: RowTogllerDirective, selector: "[sRowToggler]", inputs: { data: ["sRowToggler", "data"] }, host: { listeners: { "keydown": "onKeydown($event)" } }, usesInheritance: true, ngImport: i0 });
26
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: RowTogllerDirective, isStandalone: true, selector: "[sRowToggler]", inputs: { data: ["sRowToggler", "data"] }, host: { listeners: { "keydown": "onKeydown($event)" } }, usesInheritance: true, ngImport: i0 });
27
27
  }
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowTogllerDirective, decorators: [{
29
29
  type: Directive,
30
- args: [{ selector: '[sRowToggler]' }]
30
+ args: [{
31
+ selector: '[sRowToggler]',
32
+ standalone: true,
33
+ }]
31
34
  }], ctorParameters: () => [], propDecorators: { data: [{
32
35
  type: Input,
33
36
  args: [{ alias: 'sRowToggler', required: true }]
@@ -35,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
35
38
  type: HostListener,
36
39
  args: ['keydown', ['$event']]
37
40
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXRvZ2dsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvdGFibGUvcm93LXRvZ2dsZXIvcm93LXRvZ2dsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR2xELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxVQUFVO0lBQzdCLEVBQUUsQ0FBUTtJQUdaLElBQUksR0FBUSxJQUFJLENBQUM7SUFFakM7UUFDSSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFFakIsQ0FBQztJQUdNLFNBQVMsQ0FBQyxLQUFvQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ25CLFFBQVEsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixLQUFLLE9BQU87b0JBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixNQUFNO2dCQUNWO29CQUNJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTTtZQUNkLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzt3R0EzQlEsbUJBQW1COzRGQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFO3dEQUtwQixJQUFJO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVl4QyxTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUm93VG9nZ2xlciwgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NSb3dUb2dnbGVyXScgfSlcbmV4cG9ydCBjbGFzcyBSb3dUb2dsbGVyRGlyZWN0aXZlIGV4dGVuZHMgUm93VG9nZ2xlciB7XG4gICAgb3ZlcnJpZGUgcmVhZG9ubHkgZHQ6IFRhYmxlO1xuXG4gICAgQElucHV0KHsgYWxpYXM6ICdzUm93VG9nZ2xlcicsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIG92ZXJyaWRlIGRhdGE6IGFueSA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3QgZHQgPSBpbmplY3QoVGFibGUpO1xuXG4gICAgICAgIHN1cGVyKGR0KTtcbiAgICAgICAgdGhpcy5kdCA9IGR0O1xuXG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHQudG9nZ2xlUm93KHRoaXMuZGF0YSwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXRvZ2dsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvdGFibGUvcm93LXRvZ2dsZXIvcm93LXRvZ2dsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWxELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxVQUFVO0lBQzdCLEVBQUUsQ0FBUTtJQUdaLElBQUksR0FBUSxJQUFJLENBQUM7SUFFakM7UUFDSSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUdNLFNBQVMsQ0FBQyxLQUFvQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ25CLFFBQVEsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixLQUFLLE9BQU87b0JBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixNQUFNO2dCQUNWO29CQUNJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTTtZQUNkLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzt3R0ExQlEsbUJBQW1COzRGQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3REFLbUIsSUFBSTtzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFXeEMsU0FBUztzQkFEZixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBSb3dUb2dnbGVyLCBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tzUm93VG9nZ2xlcl0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvd1RvZ2xsZXJEaXJlY3RpdmUgZXh0ZW5kcyBSb3dUb2dnbGVyIHtcclxuICAgIG92ZXJyaWRlIHJlYWRvbmx5IGR0OiBUYWJsZTtcclxuXHJcbiAgICBASW5wdXQoeyBhbGlhczogJ3NSb3dUb2dnbGVyJywgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyBvdmVycmlkZSBkYXRhOiBhbnkgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IGR0ID0gaW5qZWN0KFRhYmxlKTtcclxuXHJcbiAgICAgICAgc3VwZXIoZHQpO1xyXG4gICAgICAgIHRoaXMuZHQgPSBkdDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICAgIHB1YmxpYyBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWQoKSkge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHQudG9nZ2xlUm93KHRoaXMuZGF0YSwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,19 +1,19 @@
1
- import { Component, Input, ViewChild, ViewContainerRef, inject } from '@angular/core';
1
+ import { Component, Input, ViewChild, ViewContainerRef, inject, } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
3
  import { HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';
4
4
  import { applyLocalizedMask, LocaleService, } from '@seniorsistemas/angular-components/locale';
5
5
  import { NumericService } from '@seniorsistemas/angular-components/numeric';
6
+ import { TokenListComponent } from '@seniorsistemas/angular-components/token-list';
6
7
  import { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
7
8
  import BigNumber from 'bignumber.js';
8
9
  import moment from 'moment';
9
10
  import { convertToMomentDateFormat } from '../../locale-utils';
10
11
  import { EnumColumnFieldType } from './models';
12
+ import { NgStyle, NgClass, NgTemplateOutlet } from '@angular/common';
13
+ import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
14
+ import { BadgeComponent } from '@seniorsistemas/angular-components/badge';
15
+ import { InfoSignDirective } from '@seniorsistemas/angular-components/info-sign';
11
16
  import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/common";
13
- import * as i2 from "@seniorsistemas/angular-components/tooltip";
14
- import * as i3 from "@seniorsistemas/angular-components/token-list";
15
- import * as i4 from "@seniorsistemas/angular-components/info-sign";
16
- import * as i5 from "@seniorsistemas/angular-components/badge";
17
17
  /**
18
18
  * @description Componente interno que renderiza uma linha de colunas da tabela,
19
19
  * aplicando formatação localizada (data, número, moeda, token, etc.) para cada coluna.
@@ -303,11 +303,19 @@ export class TableColumnsComponent {
303
303
  return columns.sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));
304
304
  }
305
305
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
306
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableColumnsComponent, selector: "s-table-columns", inputs: { columns: "columns", rowValue: "rowValue", locale: "locale" }, viewQueries: [{ propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span\n [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue',\n }\"\n >{{ cellData.value }}</span\n >\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n\n", styles: [":host{display:none}.compact-column{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.column-cell-red{color:#c13018}.column-cell-orange{color:#f8931f}.column-cell-yellow{color:#fcbf10}.column-cell-green{color:#0c9348}.column-cell-blue{color:#428bca}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: i3.TokenListComponent, selector: "s-token-list", inputs: ["id", "tokens", "removableTokens", "hidePointerEvents"], outputs: ["tokenSelected", "tokenRemoved"] }, { kind: "directive", type: i4.InfoSignDirective, selector: "[sInfoSign]", inputs: ["sInfoSign", "sInfoSignDisplayTime", "sInfoSignFocusedInputRef", "sInfoSignUseFocusedInputRef"] }, { kind: "component", type: i5.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }] });
306
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TableColumnsComponent, isStandalone: true, selector: "s-table-columns", inputs: { columns: "columns", rowValue: "rowValue", locale: "locale" }, viewQueries: [{ propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span\n [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue',\n }\"\n >{{ cellData.value }}</span\n >\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n\n", styles: [":host{display:none}.compact-column{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.column-cell-red{color:#c13018}.column-cell-orange{color:#f8931f}.column-cell-yellow{color:#fcbf10}.column-cell-green{color:#0c9348}.column-cell-blue{color:#428bca}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "directive", type: InfoSignDirective, selector: "[sInfoSign]", inputs: ["sInfoSign", "sInfoSignDisplayTime", "sInfoSignFocusedInputRef", "sInfoSignUseFocusedInputRef"] }, { kind: "component", type: TokenListComponent, selector: "s-token-list", inputs: ["id", "tokens", "removableTokens", "hidePointerEvents"], outputs: ["tokenSelected", "tokenRemoved"] }] });
307
307
  }
308
308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableColumnsComponent, decorators: [{
309
309
  type: Component,
310
- args: [{ selector: 's-table-columns', template: "<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span\n [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue',\n }\"\n >{{ cellData.value }}</span\n >\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n\n", styles: [":host{display:none}.compact-column{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.column-cell-red{color:#c13018}.column-cell-orange{color:#f8931f}.column-cell-yellow{color:#fcbf10}.column-cell-green{color:#0c9348}.column-cell-blue{color:#428bca}\n"] }]
310
+ args: [{ selector: 's-table-columns', standalone: true, imports: [
311
+ NgStyle,
312
+ NgClass,
313
+ TooltipDirective,
314
+ NgTemplateOutlet,
315
+ BadgeComponent,
316
+ InfoSignDirective,
317
+ TokenListComponent,
318
+ ], template: "<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span\n [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue',\n }\"\n >{{ cellData.value }}</span\n >\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n\n", styles: [":host{display:none}.compact-column{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.column-cell-red{color:#c13018}.column-cell-orange{color:#f8931f}.column-cell-yellow{color:#fcbf10}.column-cell-green{color:#0c9348}.column-cell-blue{color:#428bca}\n"] }]
311
319
  }], ctorParameters: () => [], propDecorators: { columnsTemplate: [{
312
320
  type: ViewChild,
313
321
  args: ['columnsTemplate', { static: true }]
@@ -318,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
318
326
  }], locale: [{
319
327
  type: Input
320
328
  }] } });
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdGFibGUvc3JjL2xpYi90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdGFibGUvc3JjL2xpYi90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQXNCLGdDQUFnQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakgsT0FBTyxFQUNILGtCQUFrQixFQUNsQixhQUFhLEdBRWhCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RixPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ELE9BQU8sRUFBd0IsbUJBQW1CLEVBQTRCLE1BQU0sVUFBVSxDQUFDOzs7Ozs7O0FBRS9GOzs7Ozs7Ozs7OztHQVdHO0FBTUgsTUFBTSxPQUFPLHFCQUFxQjtJQUNiLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEMsZ0JBQWdC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TyxxQkFBcUIsQ0FBQyxPQUFpQjtRQUMzQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQzt3R0FuWFEscUJBQXFCOzRGQUFyQixxQkFBcUIsc1JDbkNsQyx3dEhBZ0ZBOzs0RkQ3Q2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUdJLGlCQUFpQjt3REFVcEIsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS3ZDLE9BQU87c0JBRGIsS0FBSztnQkFLQyxRQUFRO3NCQURkLEtBQUs7Z0JBS0MsTUFBTTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSG9zdFByb2plY3RDb25maWdzLCBIb3N0UHJvamVjdENvbmZpZ3NJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYXBwbHlMb2NhbGl6ZWRNYXNrLFxuICAgIExvY2FsZVNlcnZpY2UsXG4gICAgTG9jYWxpemVkQmlnbnVtYmVyT3B0aW9ucyxcbn0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2NhbGUnO1xuaW1wb3J0IHsgTnVtZXJpY1NlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL251bWVyaWMnO1xuaW1wb3J0IHsgSVRva2VuIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b2tlbi1saXN0JztcbmltcG9ydCB7IGRlZXBDbG9uZSwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgY29udmVydFRvTW9tZW50RGF0ZUZvcm1hdCB9IGZyb20gJy4uLy4uL2xvY2FsZS11dGlscyc7XG5pbXBvcnQgeyBDb2x1bW4sIENvbHVtblZhbHVlcywgRW51bUNvbHVtbkZpZWxkVHlwZSwgVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGludGVybm8gcXVlIHJlbmRlcml6YSB1bWEgbGluaGEgZGUgY29sdW5hcyBkYSB0YWJlbGEsXG4gKiBhcGxpY2FuZG8gZm9ybWF0YcOnw6NvIGxvY2FsaXphZGEgKGRhdGEsIG7Dum1lcm8sIG1vZWRhLCB0b2tlbiwgZXRjLikgcGFyYSBjYWRhIGNvbHVuYS5cbiAqIE5vcm1hbG1lbnRlIHVzYWRvIGRlbnRybyBkbyBjb250ZXh0byBkZSB1bWEgdGFiZWxhIFByaW1lTkcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLXRhYmxlLWNvbHVtbnMgW2NvbHVtbnNdPVwiY29sdW5hc1wiIFtyb3dWYWx1ZV09XCJsaW5oYVwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgRGF0YVxuICovXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuc2NzcyddLFxuICAgIHNlbGVjdG9yOiAncy10YWJsZS1jb2x1bW5zJyxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbnVtZXJpY1NlcnZpY2UgPSBpbmplY3QoTnVtZXJpY1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdFByb2plY3RDb25maWdzID0gaW5qZWN0PEhvc3RQcm9qZWN0Q29uZmlncz4oSG9zdFByb2plY3RDb25maWdzSW5qZWN0aW9uVG9rZW4pO1xuXG4gICAgQFZpZXdDaGlsZCgnY29sdW1uc1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgY29sdW1uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIExpc3RhIGRlIGNvbmZpZ3VyYcOnw7VlcyBkYXMgY29sdW5hcyBhIHNlcmVtIHJlbmRlcml6YWRhcy4gQGRlZmF1bHQgW10gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2x1bW5zOiBDb2x1bW5bXSA9IFtdO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPYmpldG8gZGEgbGluaGEgY29tIG9zIHZhbG9yZXMgYSBzZXJlbSBleGliaWRvcyBuYXMgY29sdW5hcy4gQ2FtcG8gb2JyaWdhdMOzcmlvLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd1ZhbHVlITogYW55O1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcMOnw7VlcyBkZSBsb2NhbGl6YcOnw6NvIChjYWxlbmTDoXJpbyBlIG7Dum1lcm8pIHVzYWRhcyBwYXJhIGZvcm1hdGHDp8Ojby4gQGRlZmF1bHQgbnVsbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjZWxsc0RhdGE6IChDZWxsRGF0YSB8IG51bGwpW10gPSBbXTtcblxuICAgIGZvcm1hdHRlZENvbHVtbnM6IENvbHVtblZhbHVlc1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB7XG4gICAgICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCk/LmNhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGNvbnZlcnRUb01vbWVudERhdGVGb3JtYXQodGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZU9wdGlvbnMoKT8uY2FsZW5kYXIuZGF0ZUZvcm1hdCA/PyAnJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbnVtYmVyOiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZU9wdGlvbnMoKT8ubnVtYmVyLFxuICAgICAgICAgICAgICAgIHNjYWxlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVDb21wb25lbnRBdHRyaWJ1dGVzKGNoYW5nZXMpO1xuXG4gICAgICAgIGlmIChjaGFuZ2VzWydjb2x1bW5zJ10gJiYgY2hhbmdlc1snY29sdW1ucyddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snY29sdW1ucyddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc29ydENvbHVtbnNCeVNlcXVlbmNlKGNoYW5nZXNbJ2NvbHVtbnMnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FycmF5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb2tlbnNCeUNvbHVtbihjb2x1bW46IENvbHVtblZhbHVlcykge1xuICAgICAgICByZXR1cm4gY29sdW1uLmNvbHVtblZhbHVlIGFzIElUb2tlbltdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2VsbERhdGEoY29sdW1uOiBDb2x1bW5WYWx1ZXMpOiBDZWxsRGF0YSB8IG51bGwge1xuICAgICAgICBjb25zdCB7IGNvbHVtblZhbHVlLCBzZXBhcmF0b3IsIHVuaW5mb3JtZWQgfSA9IGNvbHVtbjtcblxuICAgICAgICBpZiAodHlwZW9mIGNvbHVtblZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3Qgc3BsaXR0ZWRTdHJpbmcgPSBjb2x1bW5WYWx1ZS5zcGxpdChzZXBhcmF0b3IpO1xuXG4gICAgICAgICAgICByZXR1cm4gc3BsaXR0ZWRTdHJpbmcubWFwKChzdHJpbmcsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0SW5kZXggPSBzcGxpdHRlZFN0cmluZy5sZW5ndGggLSAxID09PSBpbmRleDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgIGlzVW5pbmZvcm1lZDogc3RyaW5nID09PSB1bmluZm9ybWVkLFxuICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3I6ICFpc0xhc3RJbmRleCA/IHNlcGFyYXRvciA6IG51bGwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUNvbXBvbmVudEF0dHJpYnV0ZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1ucyAmJiAhY2hhbmdlc1snY29sdW1ucyddPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSAnY29sdW1ucycgYXR0cmlidXRlIG11c3QgYmUgaW5mb3JtZWQhXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5yb3dWYWx1ZSAmJiAhY2hhbmdlc1sncm93VmFsdWUnXT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ3Jvd1ZhbHVlJyBhdHRyaWJ1dGUgbXVzdCBiZSBpbmZvcm1lZCFcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNvbHVtbnNUZW1wbGF0ZShjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gY2hhbmdlc1snY29sdW1ucyddPy5jdXJyZW50VmFsdWUgfHwgdGhpcy5jb2x1bW5zO1xuXG4gICAgICAgIGNvbnN0IHJvd1ZhbHVlOiBvYmplY3QgPSBkZWVwQ2xvbmUoY2hhbmdlc1sncm93VmFsdWUnXT8uY3VycmVudFZhbHVlID8/IHRoaXMucm93VmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zID0gY2hhbmdlc1snbG9jYWxlJ10/LmN1cnJlbnRWYWx1ZSB8fCB0aGlzLmxvY2FsZTtcblxuICAgICAgICB0aGlzLmZvcm1hdHRlZENvbHVtbnMgPSBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB0aGlzLmdldENvbHVtblZhbHVlKGNvbHVtbiwgcm93VmFsdWUsIGxvY2FsZSkpO1xuXG4gICAgICAgIHRoaXMuY2VsbHNEYXRhID0gdGhpcy5mb3JtYXR0ZWRDb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB0aGlzLmdldENlbGxEYXRhKGNvbHVtbikpO1xuXG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5jb2x1bW5zVGVtcGxhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY29sdW1uc1RlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uU2VwYXJhdG9yKGNvbHVtbjogQ29sdW1uKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4uc2VwYXJhdG9yID8gY29sdW1uLnNlcGFyYXRvciA6ICcgLSAnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VHJhbnNsYXRpb25QcmVmaXgoY29sdW1uOiBDb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5wcmVmaXggPyBjb2x1bW4ucHJlZml4IDogYCR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3MuZG9tYWlufS4ke3RoaXMuaG9zdFByb2plY3RDb25maWdzLnNlcnZpY2V9LmA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0F0dHJpYnV0ZVZhbHVlSW52YWxpZChhdHRyaWJ1dGVWYWx1ZTogYW55KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgKGF0dHJpYnV0ZVZhbHVlPy5vcHRpb25zPy5udW1iZXJGb3JtYXRPcHRpb25zICYmIGlzTnVsbE9yVW5kZWZpbmVkKGF0dHJpYnV0ZVZhbHVlPy52YWx1ZSkpIHx8XG4gICAgICAgICAgICAodGhpcy5pc0FycmF5KGF0dHJpYnV0ZVZhbHVlKSAmJiAhYXR0cmlidXRlVmFsdWUubGVuZ3RoKSB8fFxuICAgICAgICAgICAgKHR5cGVvZiBhdHRyaWJ1dGVWYWx1ZSA9PT0gJ3N0cmluZycgJiYgYXR0cmlidXRlVmFsdWUudHJpbSgpID09PSAnJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1hdHRlZENvbHVtblZhbHVlKFxuICAgICAgICBjb2x1bW46IENvbHVtbixcbiAgICAgICAgY29sdW1uVmFsdWU6IGFueVtdLFxuICAgICAgICB1bmlmaWVkQ29sdW1uVmFsdWVzOiBzdHJpbmcsXG4gICAgICAgIHVuaW5mb3JtZWRUZXh0OiBzdHJpbmcsXG4gICAgICAgIHVuaW5mb3JtZWROdW1iZXI6IG51bWJlcixcbiAgICApIHtcbiAgICAgICAgaWYgKHVuaW5mb3JtZWROdW1iZXIgPT09IGNvbHVtbi5hdHRyaWJ1dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWRUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSBFbnVtQ29sdW1uRmllbGRUeXBlLlRPS0VOUykge1xuICAgICAgICAgICAgcmV0dXJuIFtdLmNvbmNhdC5hcHBseShcbiAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZS5maWx0ZXIoKHZhbHVlcykgPT4gdmFsdWVzICE9PSB1bmluZm9ybWVkVGV4dCksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuaWZpZWRDb2x1bW5WYWx1ZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGU6IHN0cmluZywgcm93VmFsdWU6IGFueSkge1xuICAgICAgICBsZXQgYXR0cmlidXRlVmFsdWUhOiBhbnk7XG5cbiAgICAgICAgYXR0cmlidXRlLnNwbGl0KCcvJykuZm9yRWFjaCgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHZhbHVlLnNwbGl0KCcuJykuZm9yRWFjaCgodmFsOiBzdHJpbmcsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyb3dWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gcm93VmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gYXR0cmlidXRlVmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROdW1iZXJDb25maWdzKGNvbHVtbjogQ29sdW1uKTogTG9jYWxpemVkQmlnbnVtYmVyT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLmxvY2FsZT8ubnVtYmVyLFxuICAgICAgICAgICAgc2NhbGU6XG4gICAgICAgICAgICAgICAgY29sdW1uLnNjYWxlICE9PSBudWxsICYmIGNvbHVtbi5zY2FsZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5nZXRDb2x1bW5TY2FsZShjb2x1bW4uc2NhbGUpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5sb2NhbGU/Lm51bWJlci5zY2FsZSxcbiAgICAgICAgICAgIHByZWZpeDogYCR7dGhpcy5sb2NhbGU/Lm51bWJlci5jdXJyZW5jeVN5bWJvbH0gYCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVGb3JtYXQoY29sdW1uOiBDb2x1bW4sIGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4uZGF0ZUZvcm1hdCA/IGNvbHVtbi5kYXRlRm9ybWF0IDogbG9jYWxlLmNhbGVuZGFyLmRhdGVGb3JtYXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5WYWx1ZShjb2x1bW46IENvbHVtbiwgcm93VmFsdWU6IGFueSwgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMpOiBDb2x1bW5WYWx1ZXMge1xuICAgICAgICBjb25zdCBwcmVmaXggPSB0aGlzLmdldFRyYW5zbGF0aW9uUHJlZml4KGNvbHVtbik7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuZ2V0Q29sdW1uU2VwYXJhdG9yKGNvbHVtbik7XG4gICAgICAgIGNvbnN0IHVuaW5mb3JtZWQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHByZWZpeCArICdlbXB0eV9sYWJlbCcpO1xuICAgICAgICBjb25zdCBzdHlsZSA9IGNvbHVtbi5zdHlsZTtcblxuICAgICAgICBjb25zdCBjb2x1bW5WYWx1ZSA9IGNvbHVtbi5hdHRyaWJ1dGVzLm1hcCgoYXR0cmlidXRlOiBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGUgYXMgc3RyaW5nLCByb3dWYWx1ZSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzQXR0cmlidXRlVmFsdWVJbnZhbGlkKGF0dHJpYnV0ZVZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmluZm9ybWVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBudW1iZXJDb25maWdzID0gdGhpcy5nZXROdW1iZXJDb25maWdzKGNvbHVtbik7XG5cbiAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuRU5VTTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29sdW1uLmVudW1QcmVmaXggKyBhdHRyaWJ1dGVWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkNVUlJFTkNZOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlckZvcm1hdE9wdGlvbnMgPSBhdHRyaWJ1dGVWYWx1ZT8ub3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBhdHRyaWJ1dGVWYWx1ZS5vcHRpb25zLm51bWJlckZvcm1hdE9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdHlwZW9mIGNvbHVtbi5udW1iZXJGb3JtYXRPcHRpb25zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gY29sdW1uLm51bWJlckZvcm1hdE9wdGlvbnMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dEYXRhOiByb3dWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5udW1iZXJGb3JtYXRPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXRPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMubnVtZXJpY1NlcnZpY2UuaW5zdGFudChhdHRyaWJ1dGVWYWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwbHlMb2NhbGl6ZWRNYXNrKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlOiAyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm51bWJlckNvbmZpZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc051bWJlcihhdHRyaWJ1dGVWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkRBVEU6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSB0aGlzLmdldERhdGVGb3JtYXQoY29sdW1uLCBsb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9tZW50KGF0dHJpYnV0ZVZhbHVlKS5mb3JtYXQoZGF0ZUZvcm1hdCk7XG5cbiAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuQk9PTEVBTjpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZSA/ICd5ZXMnIDogJ25vJztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgdmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLk5VTUJFUjoge1xuICAgICAgICAgICAgICAgICAgICBudW1iZXJDb25maWdzLnByZWZpeCA9ICcnO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlckZvcm1hdE9wdGlvbnMgPSBhdHRyaWJ1dGVWYWx1ZT8ub3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBhdHRyaWJ1dGVWYWx1ZS5vcHRpb25zLm51bWJlckZvcm1hdE9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdHlwZW9mIGNvbHVtbi5udW1iZXJGb3JtYXRPcHRpb25zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gY29sdW1uLm51bWJlckZvcm1hdE9wdGlvbnMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dEYXRhOiByb3dWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5udW1iZXJGb3JtYXRPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXRPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMubnVtZXJpY1NlcnZpY2UuaW5zdGFudChhdHRyaWJ1dGVWYWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwbHlMb2NhbGl6ZWRNYXNrKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlOiAyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm51bWJlckNvbmZpZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc051bWJlcihhdHRyaWJ1dGVWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlM6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFRva2VucyhhdHRyaWJ1dGVWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHVuaWZpZWRDb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHVuaW5mb3JtZWROdW1iZXIgPSB1bmlmaWVkQ29sdW1uVmFsdWVzLnNwbGl0KHNlcGFyYXRvcikuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHVuaW5mb3JtZWQpLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkQ29sdW1uVmFsdWUgPSB0aGlzLmdldEZvcm1hdHRlZENvbHVtblZhbHVlKFxuICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgICAgY29sdW1uVmFsdWUsXG4gICAgICAgICAgICB1bmlmaWVkQ29sdW1uVmFsdWVzLFxuICAgICAgICAgICAgdW5pbmZvcm1lZCxcbiAgICAgICAgICAgIHVuaW5mb3JtZWROdW1iZXIsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgY29sdW1uVmFsdWU6IGZvcm1hdHRlZENvbHVtblZhbHVlLFxuICAgICAgICAgICAgc2VwYXJhdG9yLFxuICAgICAgICAgICAgdW5pbmZvcm1lZCxcbiAgICAgICAgICAgIGJhZGdlQ29uZmlnczogY29sdW1uPy5iYWRnZUNvbmZpZ3M/LmZpbmQoXG4gICAgICAgICAgICAgICAgKGJhZGdlQ29uZmlnKSA9PiBiYWRnZUNvbmZpZy5lbnVtVmFsdWUgPT09IHJvd1ZhbHVlW2NvbHVtbi5hdHRyaWJ1dGVzWzBdID8/IGNvbHVtbi5maWVsZF0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY29sb3I6IGNvbHVtbi5jb2xvcj8uKHJvd1ZhbHVlKSxcbiAgICAgICAgICAgIHR5cGU6IGNvbHVtbi50eXBlLFxuICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5nZXRDb2x1bW5Ub29sdGlwKGNvbHVtbi50b29sdGlwKSxcbiAgICAgICAgICAgIGluZm9TaWduOiB0aGlzLmdldENvbHVtbkluZm9TaWduKGNvbHVtbi5pbmZvU2lnbiksXG4gICAgICAgICAgICBvbkxpbmtDbGljazogY29sdW1uLm9uTGlua0NsaWNrLFxuICAgICAgICAgICAgb25Db2x1bW5DbGljazogY29sdW1uLm9uQ29sdW1uQ2xpY2ssXG4gICAgICAgICAgICBjb21wYWN0OiBjb2x1bW4uY29tcGFjdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblNjYWxlKHNjYWxlOiBudW1iZXIgfCAoKHJvd1ZhbHVlOiBhbnkpID0+IG51bWJlcikpOiBudW1iZXIge1xuICAgICAgICBpZiAodHlwZW9mIHNjYWxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gc2NhbGUoZGVlcENsb25lKHRoaXMucm93VmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5JbmZvU2lnbihpbmZvU2lnbj86IHN0cmluZyB8ICgocm93VmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgbnVsbCkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChpbmZvU2lnbikpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5mb1NpZ24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5mb1NpZ24oZGVlcENsb25lKHRoaXMucm93VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpbmZvU2lnbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblRvb2x0aXAodG9vbHRpcD86IHN0cmluZyB8ICgocm93VmFsdWU6IGFueSkgPT4gc3RyaW5nKSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodG9vbHRpcCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdG9vbHRpcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b29sdGlwKGRlZXBDbG9uZSh0aGlzLnJvd1ZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdG9vbHRpcDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc051bWJlcih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhbmV3IEJpZ051bWJlcih2YWx1ZSkuaXNOYU4oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRva2Vucyh2YWx1ZXM6IGFueSk6IElUb2tlbltdIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUbyB1c2UgdG9rZW5zIGFuIGFycmF5IG11c3QgYmUgaW5mb3JtZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkVG9rZW5BcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgJ05vdCBhIHZhbGlkIHRva2VuIGFycmF5LiBNdXN0IGJlIGEgcHJpbWl0aXZlIHZhbHVlcyBhcnJheSBvciBhbiBvYmplY3RzIHdpdGggbGFiZWwgYXR0cmlidXRlIGFycmF5JyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiBhbnkpID0+IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnID8gdmFsdWUudG9TdHJpbmcoKSA6IGAke3ZhbHVlfWA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ByaW1pdGl2ZVZhbHVlc0FycmF5KHZhbHVlcykgfHwgdGhpcy5pc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUHJpbWl0aXZlVmFsdWVzQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSBPYmplY3QodmFsdWUpKS5sZW5ndGggPT09IHZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlPy5sYWJlbCAhPT0gbnVsbCAmJiB2YWx1ZT8ubGFiZWwgIT09IHVuZGVmaW5lZCkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydENvbHVtbnNCeVNlcXVlbmNlKGNvbHVtbnM6IENvbHVtbltdKTogQ29sdW1uW10ge1xuICAgICAgICByZXR1cm4gY29sdW1ucy5zb3J0KChhLCBiKSA9PiAoYS5zZXF1ZW5jZSA/PyAwKSAtIChiLnNlcXVlbmNlID8/IDApKTtcbiAgICB9XG59XG5cbnR5cGUgQ2VsbERhdGEgPSB7IHZhbHVlOiBzdHJpbmc7IGlzVW5pbmZvcm1lZDogYm9vbGVhbjsgc2VwYXJhdG9yOiBzdHJpbmcgfCBudWxsIH1bXTtcblxuIiwiPG5nLXRlbXBsYXRlICNjb2x1bW5zVGVtcGxhdGU+XG4gICAgQGZvciAoY29sdW1uIG9mIGZvcm1hdHRlZENvbHVtbnM7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPHRkXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJjb2x1bW4uc3R5bGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5vbkNvbHVtbkNsaWNrID8gY29sdW1uLm9uQ29sdW1uQ2xpY2socm93VmFsdWUpIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoY29sdW1uLnR5cGUgIT09ICdUT0tFTlMnIHx8ICFpc0FycmF5KGNvbHVtbi5jb2x1bW5WYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2NvbXBhY3QtY29sdW1uJzogY29sdW1uLmNvbXBhY3QgfVwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbi50eXBlICE9PSAnTElOSycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NUb29sdGlwXT1cImNvbHVtbi50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXNjYXBlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uVmFsdWVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChjb2x1bW4udHlwZSA9PT0gJ0xJTksnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNlbGxzRGF0YVtpXT8uWzBdPy5pc1VuaW5mb3JtZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkcy1lbXB0eS12YWx1ZVwiPnt7IGNlbGxzRGF0YVtpXT8uWzBdPy52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlc2NhcGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29sdW1uLm9uTGlua0NsaWNrID8gY29sdW1uLm9uTGlua0NsaWNrKHJvd1ZhbHVlKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtblZhbHVlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtblZhbHVlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChjZWxsRGF0YSBvZiBjZWxsc0RhdGFbaV07IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY2VsbERhdGEuaXNVbmluZm9ybWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RzLWVtcHR5LXZhbHVlXCI+e3sgY2VsbERhdGEudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29sdW1uLmJhZGdlQ29uZmlncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHMtYmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2x1bW4uYmFkZ2VDb25maWdzLmNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJjZWxsRGF0YS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sdW1uLWNlbGwtcmVkJzogY29sdW1uLmNvbG9yID09PSAnUmVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbHVtbi1jZWxsLW9yYW5nZSc6IGNvbHVtbi5jb2xvciA9PT0gJ09yYW5nZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2x1bW4tY2VsbC15ZWxsb3cnOiBjb2x1bW4uY29sb3IgPT09ICdZZWxsb3cnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sdW1uLWNlbGwtZ3JlZW4nOiBjb2x1bW4uY29sb3IgPT09ICdHcmVlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2x1bW4tY2VsbC1ibHVlJzogY29sdW1uLmNvbG9yID09PSAnQmx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGNlbGxEYXRhLnZhbHVlIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNlbGxEYXRhLnNlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjZWxsRGF0YS5zZXBhcmF0b3IgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCEhY29sdW1uLmluZm9TaWduKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnNJbmZvU2lnbj1cImNvbHVtbi5pbmZvU2lnblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxzLXRva2VuLWxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3Rva2Vuc109XCJnZXRUb2tlbnNCeUNvbHVtbihjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVQb2ludGVyRXZlbnRzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L3MtdG9rZW4tbGlzdD5cblxuICAgICAgICAgICAgICAgIEBpZiAoISFjb2x1bW4uaW5mb1NpZ24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnNJbmZvU2lnbj1cImNvbHVtbi5pbmZvU2lnblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdGQ+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdGFibGUvc3JjL2xpYi90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvdGFibGUvc3JjL2xpYi90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQXNCLGdDQUFnQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakgsT0FBTyxFQUNILGtCQUFrQixFQUNsQixhQUFhLEdBRWhCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBVSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RixPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ELE9BQU8sRUFBd0IsbUJBQW1CLEVBQTRCLE1BQU0sVUFBVSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJB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ICAgIE9uQ2hhbmdlcyxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBUZW1wbGF0ZVJlZixcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBpbmplY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEhvc3RQcm9qZWN0Q29uZmlncywgSG9zdFByb2plY3RDb25maWdzSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgICBhcHBseUxvY2FsaXplZE1hc2ssXHJcbiAgICBMb2NhbGVTZXJ2aWNlLFxyXG4gICAgTG9jYWxpemVkQmlnbnVtYmVyT3B0aW9ucyxcclxufSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XHJcbmltcG9ydCB7IE51bWVyaWNTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9udW1lcmljJztcclxuaW1wb3J0IHsgSVRva2VuLCBUb2tlbkxpc3RDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rva2VuLWxpc3QnO1xyXG5pbXBvcnQgeyBkZWVwQ2xvbmUsIGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XHJcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5cclxuaW1wb3J0IHsgY29udmVydFRvTW9tZW50RGF0ZUZvcm1hdCB9IGZyb20gJy4uLy4uL2xvY2FsZS11dGlscyc7XHJcbmltcG9ydCB7IENvbHVtbiwgQ29sdW1uVmFsdWVzLCBFbnVtQ29sdW1uRmllbGRUeXBlLCBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IE5nU3R5bGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b29sdGlwJztcclxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2JhZGdlJztcclxuaW1wb3J0IHsgSW5mb1NpZ25EaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2luZm8tc2lnbic7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgaW50ZXJubyBxdWUgcmVuZGVyaXphIHVtYSBsaW5oYSBkZSBjb2x1bmFzIGRhIHRhYmVsYSxcclxuICogYXBsaWNhbmRvIGZvcm1hdGHDp8OjbyBsb2NhbGl6YWRhIChkYXRhLCBuw7ptZXJvLCBtb2VkYSwgdG9rZW4sIGV0Yy4pIHBhcmEgY2FkYSBjb2x1bmEuXHJcbiAqIE5vcm1hbG1lbnRlIHVzYWRvIGRlbnRybyBkbyBjb250ZXh0byBkZSB1bWEgdGFiZWxhIFByaW1lTkcuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtdGFibGUtY29sdW1ucyBbY29sdW1uc109XCJjb2x1bmFzXCIgW3Jvd1ZhbHVlXT1cImxpbmhhXCIgLz5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBEYXRhXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW5zLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLWNvbHVtbnMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHNlbGVjdG9yOiAncy10YWJsZS1jb2x1bW5zJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgTmdTdHlsZSxcclxuICAgICAgICBOZ0NsYXNzLFxyXG4gICAgICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgICAgICBCYWRnZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvU2lnbkRpcmVjdGl2ZSxcclxuICAgICAgICBUb2tlbkxpc3RDb21wb25lbnQsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZSA9IGluamVjdChMb2NhbGVTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBudW1lcmljU2VydmljZSA9IGluamVjdChOdW1lcmljU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RQcm9qZWN0Q29uZmlncyA9IGluamVjdDxIb3N0UHJvamVjdENvbmZpZ3M+KEhvc3RQcm9qZWN0Q29uZmlnc0luamVjdGlvblRva2VuKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdjb2x1bW5zVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIGNvbHVtbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgY29uZmlndXJhw6fDtWVzIGRhcyBjb2x1bmFzIGEgc2VyZW0gcmVuZGVyaXphZGFzLiBAZGVmYXVsdCBbXSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb2x1bW5zOiBDb2x1bW5bXSA9IFtdO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gT2JqZXRvIGRhIGxpbmhhIGNvbSBvcyB2YWxvcmVzIGEgc2VyZW0gZXhpYmlkb3MgbmFzIGNvbHVuYXMuIENhbXBvIG9icmlnYXTDs3Jpby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcm93VmFsdWUhOiBhbnk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcMOnw7VlcyBkZSBsb2NhbGl6YcOnw6NvIChjYWxlbmTDoXJpbyBlIG7Dum1lcm8pIHVzYWRhcyBwYXJhIGZvcm1hdGHDp8Ojby4gQGRlZmF1bHQgbnVsbCAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGNlbGxzRGF0YTogKENlbGxEYXRhIHwgbnVsbClbXSA9IFtdO1xyXG5cclxuICAgIGZvcm1hdHRlZENvbHVtbnM6IENvbHVtblZhbHVlc1tdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB7XHJcbiAgICAgICAgICAgIGNhbGVuZGFyOiB7XHJcbiAgICAgICAgICAgICAgICAuLi50aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlT3B0aW9ucygpPy5jYWxlbmRhcixcclxuICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQ6IGNvbnZlcnRUb01vbWVudERhdGVGb3JtYXQodGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZU9wdGlvbnMoKT8uY2FsZW5kYXIuZGF0ZUZvcm1hdCA/PyAnJyksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG51bWJlcjoge1xyXG4gICAgICAgICAgICAgICAgLi4udGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZU9wdGlvbnMoKT8ubnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgc2NhbGU6IDAsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZUNvbXBvbmVudEF0dHJpYnV0ZXMoY2hhbmdlcyk7XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzWydjb2x1bW5zJ10gJiYgY2hhbmdlc1snY29sdW1ucyddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snY29sdW1ucyddLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy5zb3J0Q29sdW1uc0J5U2VxdWVuY2UoY2hhbmdlc1snY29sdW1ucyddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0FycmF5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFRva2Vuc0J5Q29sdW1uKGNvbHVtbjogQ29sdW1uVmFsdWVzKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5jb2x1bW5WYWx1ZSBhcyBJVG9rZW5bXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENlbGxEYXRhKGNvbHVtbjogQ29sdW1uVmFsdWVzKTogQ2VsbERhdGEgfCBudWxsIHtcclxuICAgICAgICBjb25zdCB7IGNvbHVtblZhbHVlLCBzZXBhcmF0b3IsIHVuaW5mb3JtZWQgfSA9IGNvbHVtbjtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW5WYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3BsaXR0ZWRTdHJpbmcgPSBjb2x1bW5WYWx1ZS5zcGxpdChzZXBhcmF0b3IpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHNwbGl0dGVkU3RyaW5nLm1hcCgoc3RyaW5nLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0SW5kZXggPSBzcGxpdHRlZFN0cmluZy5sZW5ndGggLSAxID09PSBpbmRleDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgaXNVbmluZm9ybWVkOiBzdHJpbmcgPT09IHVuaW5mb3JtZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAhaXNMYXN0SW5kZXggPyBzZXBhcmF0b3IgOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRlQ29tcG9uZW50QXR0cmlidXRlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbnMgJiYgIWNoYW5nZXNbJ2NvbHVtbnMnXT8uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSAnY29sdW1ucycgYXR0cmlidXRlIG11c3QgYmUgaW5mb3JtZWQhXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMucm93VmFsdWUgJiYgIWNoYW5nZXNbJ3Jvd1ZhbHVlJ10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ3Jvd1ZhbHVlJyBhdHRyaWJ1dGUgbXVzdCBiZSBpbmZvcm1lZCFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sdW1uczogQ29sdW1uW10gPSBjaGFuZ2VzWydjb2x1bW5zJ10/LmN1cnJlbnRWYWx1ZSB8fCB0aGlzLmNvbHVtbnM7XHJcblxyXG4gICAgICAgIGNvbnN0IHJvd1ZhbHVlOiBvYmplY3QgPSBkZWVwQ2xvbmUoY2hhbmdlc1sncm93VmFsdWUnXT8uY3VycmVudFZhbHVlID8/IHRoaXMucm93VmFsdWUpO1xyXG5cclxuICAgICAgICBjb25zdCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyA9IGNoYW5nZXNbJ2xvY2FsZSddPy5jdXJyZW50VmFsdWUgfHwgdGhpcy5sb2NhbGU7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVkQ29sdW1ucyA9IGNvbHVtbnMubWFwKChjb2x1bW4pID0+IHRoaXMuZ2V0Q29sdW1uVmFsdWUoY29sdW1uLCByb3dWYWx1ZSwgbG9jYWxlKSk7XHJcblxyXG4gICAgICAgIHRoaXMuY2VsbHNEYXRhID0gdGhpcy5mb3JtYXR0ZWRDb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB0aGlzLmdldENlbGxEYXRhKGNvbHVtbikpO1xyXG5cclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuY29sdW1uc1RlbXBsYXRlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY29sdW1uc1RlbXBsYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5TZXBhcmF0b3IoY29sdW1uOiBDb2x1bW4pIHtcclxuICAgICAgICByZXR1cm4gY29sdW1uLnNlcGFyYXRvciA/IGNvbHVtbi5zZXBhcmF0b3IgOiAnIC0gJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFRyYW5zbGF0aW9uUHJlZml4KGNvbHVtbjogQ29sdW1uKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5wcmVmaXggPyBjb2x1bW4ucHJlZml4IDogYCR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3MuZG9tYWlufS4ke3RoaXMuaG9zdFByb2plY3RDb25maWdzLnNlcnZpY2V9LmA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0F0dHJpYnV0ZVZhbHVlSW52YWxpZChhdHRyaWJ1dGVWYWx1ZTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPT09IG51bGwgfHxcclxuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAoYXR0cmlidXRlVmFsdWU/Lm9wdGlvbnM/Lm51bWJlckZvcm1hdE9wdGlvbnMgJiYgaXNOdWxsT3JVbmRlZmluZWQoYXR0cmlidXRlVmFsdWU/LnZhbHVlKSkgfHxcclxuICAgICAgICAgICAgKHRoaXMuaXNBcnJheShhdHRyaWJ1dGVWYWx1ZSkgJiYgIWF0dHJpYnV0ZVZhbHVlLmxlbmd0aCkgfHxcclxuICAgICAgICAgICAgKHR5cGVvZiBhdHRyaWJ1dGVWYWx1ZSA9PT0gJ3N0cmluZycgJiYgYXR0cmlidXRlVmFsdWUudHJpbSgpID09PSAnJylcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Rm9ybWF0dGVkQ29sdW1uVmFsdWUoXHJcbiAgICAgICAgY29sdW1uOiBDb2x1bW4sXHJcbiAgICAgICAgY29sdW1uVmFsdWU6IGFueVtdLFxyXG4gICAgICAgIHVuaWZpZWRDb2x1bW5WYWx1ZXM6IHN0cmluZyxcclxuICAgICAgICB1bmluZm9ybWVkVGV4dDogc3RyaW5nLFxyXG4gICAgICAgIHVuaW5mb3JtZWROdW1iZXI6IG51bWJlcixcclxuICAgICkge1xyXG4gICAgICAgIGlmICh1bmluZm9ybWVkTnVtYmVyID09PSBjb2x1bW4uYXR0cmlidXRlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWRUZXh0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSBFbnVtQ29sdW1uRmllbGRUeXBlLlRPS0VOUykge1xyXG4gICAgICAgICAgICByZXR1cm4gW10uY29uY2F0LmFwcGx5KFxyXG4gICAgICAgICAgICAgICAgW10sXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZS5maWx0ZXIoKHZhbHVlcykgPT4gdmFsdWVzICE9PSB1bmluZm9ybWVkVGV4dCksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdW5pZmllZENvbHVtblZhbHVlcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEF0dHJpYnV0ZVZhbHVlKGF0dHJpYnV0ZTogc3RyaW5nLCByb3dWYWx1ZTogYW55KSB7XHJcbiAgICAgICAgbGV0IGF0dHJpYnV0ZVZhbHVlITogYW55O1xyXG5cclxuICAgICAgICBhdHRyaWJ1dGUuc3BsaXQoJy8nKS5mb3JFYWNoKCh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghYXR0cmlidXRlVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlLnNwbGl0KCcuJykuZm9yRWFjaCgodmFsOiBzdHJpbmcsIGkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJvd1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gcm93VmFsdWVbdmFsXTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gYXR0cmlidXRlVmFsdWVbdmFsXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE51bWJlckNvbmZpZ3MoY29sdW1uOiBDb2x1bW4pOiBMb2NhbGl6ZWRCaWdudW1iZXJPcHRpb25zIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi50aGlzLmxvY2FsZT8ubnVtYmVyLFxyXG4gICAgICAgICAgICBzY2FsZTpcclxuICAgICAgICAgICAgICAgIGNvbHVtbi5zY2FsZSAhPT0gbnVsbCAmJiBjb2x1bW4uc2NhbGUgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5nZXRDb2x1bW5TY2FsZShjb2x1bW4uc2NhbGUpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmxvY2FsZT8ubnVtYmVyLnNjYWxlLFxyXG4gICAgICAgICAgICBwcmVmaXg6IGAke3RoaXMubG9jYWxlPy5udW1iZXIuY3VycmVuY3lTeW1ib2x9IGAsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERhdGVGb3JtYXQoY29sdW1uOiBDb2x1bW4sIGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5kYXRlRm9ybWF0ID8gY29sdW1uLmRhdGVGb3JtYXQgOiBsb2NhbGUuY2FsZW5kYXIuZGF0ZUZvcm1hdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbHVtblZhbHVlKGNvbHVtbjogQ29sdW1uLCByb3dWYWx1ZTogYW55LCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyk6IENvbHVtblZhbHVlcyB7XHJcbiAgICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5nZXRUcmFuc2xhdGlvblByZWZpeChjb2x1bW4pO1xyXG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuZ2V0Q29sdW1uU2VwYXJhdG9yKGNvbHVtbik7XHJcbiAgICAgICAgY29uc3QgdW5pbmZvcm1lZCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgJ2VtcHR5X2xhYmVsJyk7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBjb2x1bW4uc3R5bGU7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbHVtblZhbHVlID0gY29sdW1uLmF0dHJpYnV0ZXMubWFwKChhdHRyaWJ1dGU6IHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlVmFsdWUoYXR0cmlidXRlIGFzIHN0cmluZywgcm93VmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNBdHRyaWJ1dGVWYWx1ZUludmFsaWQoYXR0cmlidXRlVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5pbmZvcm1lZDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQ29uZmlncyA9IHRoaXMuZ2V0TnVtYmVyQ29uZmlncyhjb2x1bW4pO1xyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChjb2x1bW4udHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkVOVU06XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29sdW1uLmVudW1QcmVmaXggKyBhdHRyaWJ1dGVWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5DVVJSRU5DWToge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlckZvcm1hdE9wdGlvbnMgPSBhdHRyaWJ1dGVWYWx1ZT8ub3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGF0dHJpYnV0ZVZhbHVlLm9wdGlvbnMubnVtYmVyRm9ybWF0T3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiBjb2x1bW4ubnVtYmVyRm9ybWF0T3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gY29sdW1uLm51bWJlckZvcm1hdE9wdGlvbnMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd0RhdGE6IHJvd1ZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5udW1iZXJGb3JtYXRPcHRpb25zO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0T3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMubnVtZXJpY1NlcnZpY2UuaW5zdGFudChhdHRyaWJ1dGVWYWx1ZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJGb3JtYXRPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwbHlMb2NhbGl6ZWRNYXNrKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiAnLCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZTogMixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXg6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm51bWJlckNvbmZpZ3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNOdW1iZXIoYXR0cmlidXRlVmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkRBVEU6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IHRoaXMuZ2V0RGF0ZUZvcm1hdChjb2x1bW4sIGxvY2FsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbWVudChhdHRyaWJ1dGVWYWx1ZSkuZm9ybWF0KGRhdGVGb3JtYXQpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5CT09MRUFOOlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXR0cmlidXRlVmFsdWUgPyAneWVzJyA6ICdubyc7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgdmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5OVU1CRVI6IHtcclxuICAgICAgICAgICAgICAgICAgICBudW1iZXJDb25maWdzLnByZWZpeCA9ICcnO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBudW1iZXJGb3JtYXRPcHRpb25zID0gYXR0cmlidXRlVmFsdWU/Lm9wdGlvbnM/Lm51bWJlckZvcm1hdE9wdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBhdHRyaWJ1dGVWYWx1ZS5vcHRpb25zLm51bWJlckZvcm1hdE9wdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgY29sdW1uLm51bWJlckZvcm1hdE9wdGlvbnMgPT09ICdmdW5jdGlvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbHVtbi5udW1iZXJGb3JtYXRPcHRpb25zKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dEYXRhOiByb3dWYWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4ubnVtYmVyRm9ybWF0T3B0aW9ucztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdE9wdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLm51bWVyaWNTZXJ2aWNlLmluc3RhbnQoYXR0cmlidXRlVmFsdWUsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0T3B0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGFwcGx5TG9jYWxpemVkTWFzayhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6ICcuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJywnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGU6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXg6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4OiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5udW1iZXJDb25maWdzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTnVtYmVyKGF0dHJpYnV0ZVZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLlRPS0VOUzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbnMoYXR0cmlidXRlVmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHVuaWZpZWRDb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZS5qb2luKHNlcGFyYXRvcik7XHJcbiAgICAgICAgY29uc3QgdW5pbmZvcm1lZE51bWJlciA9IHVuaWZpZWRDb2x1bW5WYWx1ZXMuc3BsaXQoc2VwYXJhdG9yKS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gdW5pbmZvcm1lZCkubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZENvbHVtblZhbHVlID0gdGhpcy5nZXRGb3JtYXR0ZWRDb2x1bW5WYWx1ZShcclxuICAgICAgICAgICAgY29sdW1uLFxyXG4gICAgICAgICAgICBjb2x1bW5WYWx1ZSxcclxuICAgICAgICAgICAgdW5pZmllZENvbHVtblZhbHVlcyxcclxuICAgICAgICAgICAgdW5pbmZvcm1lZCxcclxuICAgICAgICAgICAgdW5pbmZvcm1lZE51bWJlcixcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBzdHlsZSxcclxuICAgICAgICAgICAgY29sdW1uVmFsdWU6IGZvcm1hdHRlZENvbHVtblZhbHVlLFxyXG4gICAgICAgICAgICBzZXBhcmF0b3IsXHJcbiAgICAgICAgICAgIHVuaW5mb3JtZWQsXHJcbiAgICAgICAgICAgIGJhZGdlQ29uZmlnczogY29sdW1uPy5iYWRnZUNvbmZpZ3M/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoYmFkZ2VDb25maWcpID0+IGJhZGdlQ29uZmlnLmVudW1WYWx1ZSA9PT0gcm93VmFsdWVbY29sdW1uLmF0dHJpYnV0ZXNbMF0gPz8gY29sdW1uLmZpZWxkXSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgY29sb3I6IGNvbHVtbi5jb2xvcj8uKHJvd1ZhbHVlKSxcclxuICAgICAgICAgICAgdHlwZTogY29sdW1uLnR5cGUsXHJcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0Q29sdW1uVG9vbHRpcChjb2x1bW4udG9vbHRpcCksXHJcbiAgICAgICAgICAgIGluZm9TaWduOiB0aGlzLmdldENvbHVtbkluZm9TaWduKGNvbHVtbi5pbmZvU2lnbiksXHJcbiAgICAgICAgICAgIG9uTGlua0NsaWNrOiBjb2x1bW4ub25MaW5rQ2xpY2ssXHJcbiAgICAgICAgICAgIG9uQ29sdW1uQ2xpY2s6IGNvbHVtbi5vbkNvbHVtbkNsaWNrLFxyXG4gICAgICAgICAgICBjb21wYWN0OiBjb2x1bW4uY29tcGFjdCxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q29sdW1uU2NhbGUoc2NhbGU6IG51bWJlciB8ICgocm93VmFsdWU6IGFueSkgPT4gbnVtYmVyKSk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBzY2FsZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICByZXR1cm4gc2NhbGUoZGVlcENsb25lKHRoaXMucm93VmFsdWUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHNjYWxlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q29sdW1uSW5mb1NpZ24oaW5mb1NpZ24/OiBzdHJpbmcgfCAoKHJvd1ZhbHVlOiBhbnkpID0+IHN0cmluZyB8IG51bGwpKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChpbmZvU2lnbikpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbmZvU2lnbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZm9TaWduKGRlZXBDbG9uZSh0aGlzLnJvd1ZhbHVlKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGluZm9TaWduO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbHVtblRvb2x0aXAodG9vbHRpcD86IHN0cmluZyB8ICgocm93VmFsdWU6IGFueSkgPT4gc3RyaW5nKSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0b29sdGlwKSkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvb2x0aXAgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0b29sdGlwKGRlZXBDbG9uZSh0aGlzLnJvd1ZhbHVlKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRvb2x0aXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIW5ldyBCaWdOdW1iZXIodmFsdWUpLmlzTmFOKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRUb2tlbnModmFsdWVzOiBhbnkpOiBJVG9rZW5bXSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXkodmFsdWVzKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RvIHVzZSB0b2tlbnMgYW4gYXJyYXkgbXVzdCBiZSBpbmZvcm1lZCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWRUb2tlbkFycmF5KHZhbHVlcykpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgJ05vdCBhIHZhbGlkIHRva2VuIGFycmF5LiBNdXN0IGJlIGEgcHJpbWl0aXZlIHZhbHVlcyBhcnJheSBvciBhbiBvYmplY3RzIHdpdGggbGFiZWwgYXR0cmlidXRlIGFycmF5JyxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzTGFiZWxPYmplY3RBcnJheSh2YWx1ZXMpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWVzXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiBhbnkpID0+IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpXHJcbiAgICAgICAgICAgIC5tYXAoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJyA/IHZhbHVlLnRvU3RyaW5nKCkgOiBgJHt2YWx1ZX1gO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzUHJpbWl0aXZlVmFsdWVzQXJyYXkodmFsdWVzKSB8fCB0aGlzLmlzTGFiZWxPYmplY3RBcnJheSh2YWx1ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNQcmltaXRpdmVWYWx1ZXNBcnJheSh2YWx1ZXM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gT2JqZWN0KHZhbHVlKSkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlPy5sYWJlbCAhPT0gbnVsbCAmJiB2YWx1ZT8ubGFiZWwgIT09IHVuZGVmaW5lZCkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc29ydENvbHVtbnNCeVNlcXVlbmNlKGNvbHVtbnM6IENvbHVtbltdKTogQ29sdW1uW10ge1xyXG4gICAgICAgIHJldHVybiBjb2x1bW5zLnNvcnQoKGEsIGIpID0+IChhLnNlcXVlbmNlID8/IDApIC0gKGIuc2VxdWVuY2UgPz8gMCkpO1xyXG4gICAgfVxyXG59XHJcblxyXG50eXBlIENlbGxEYXRhID0geyB2YWx1ZTogc3RyaW5nOyBpc1VuaW5mb3JtZWQ6IGJvb2xlYW47IHNlcGFyYXRvcjogc3RyaW5nIHwgbnVsbCB9W107XHJcbiIsIjxuZy10ZW1wbGF0ZSAjY29sdW1uc1RlbXBsYXRlPlxuICAgIEBmb3IgKGNvbHVtbiBvZiBmb3JtYXR0ZWRDb2x1bW5zOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgW25nU3R5bGVdPVwiY29sdW1uLnN0eWxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb2x1bW4ub25Db2x1bW5DbGljayA/IGNvbHVtbi5vbkNvbHVtbkNsaWNrKHJvd1ZhbHVlKSA6IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGNvbHVtbi50eXBlICE9PSAnVE9LRU5TJyB8fCAhaXNBcnJheShjb2x1bW4uY29sdW1uVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICdjb21wYWN0LWNvbHVtbic6IGNvbHVtbi5jb21wYWN0IH1cIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChjb2x1bW4udHlwZSAhPT0gJ0xJTksnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VzY2FwZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtblZhbHVlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoY29sdW1uLnR5cGUgPT09ICdMSU5LJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjZWxsc0RhdGFbaV0/LlswXT8uaXNVbmluZm9ybWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZHMtZW1wdHktdmFsdWVcIj57eyBjZWxsc0RhdGFbaV0/LlswXT8udmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXNjYXBlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5vbkxpbmtDbGljayA/IGNvbHVtbi5vbkxpbmtDbGljayhyb3dWYWx1ZSkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5WYWx1ZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5WYWx1ZVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoY2VsbERhdGEgb2YgY2VsbHNEYXRhW2ldOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNlbGxEYXRhLmlzVW5pbmZvcm1lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkcy1lbXB0eS12YWx1ZVwiPnt7IGNlbGxEYXRhLnZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbi5iYWRnZUNvbmZpZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NUb29sdGlwXT1cImNvbHVtbi50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sdW1uLmJhZGdlQ29uZmlncy5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiY2VsbERhdGEudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcy1iYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbHVtbi1jZWxsLXJlZCc6IGNvbHVtbi5jb2xvciA9PT0gJ1JlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2x1bW4tY2VsbC1vcmFuZ2UnOiBjb2x1bW4uY29sb3IgPT09ICdPcmFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sdW1uLWNlbGwteWVsbG93JzogY29sdW1uLmNvbG9yID09PSAnWWVsbG93JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbHVtbi1jZWxsLWdyZWVuJzogY29sdW1uLmNvbG9yID09PSAnR3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sdW1uLWNlbGwtYmx1ZSc6IGNvbHVtbi5jb2xvciA9PT0gJ0JsdWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBjZWxsRGF0YS52YWx1ZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjZWxsRGF0YS5zZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY2VsbERhdGEuc2VwYXJhdG9yIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghIWNvbHVtbi5pbmZvU2lnbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpzSW5mb1NpZ249XCJjb2x1bW4uaW5mb1NpZ25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8cy10b2tlbi1saXN0XG4gICAgICAgICAgICAgICAgICAgIFt0b2tlbnNdPVwiZ2V0VG9rZW5zQnlDb2x1bW4oY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlUG9pbnRlckV2ZW50c109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9zLXRva2VuLWxpc3Q+XG5cbiAgICAgICAgICAgICAgICBAaWYgKCEhY29sdW1uLmluZm9TaWduKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpzSW5mb1NpZ249XCJjb2x1bW4uaW5mb1NpZ25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L3RkPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==