ngx-tethys 17.0.1 → 17.0.2

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 (381) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/action/action.component.d.ts +3 -0
  3. package/affix/affix.component.d.ts +2 -0
  4. package/alert/alert.component.d.ts +1 -0
  5. package/anchor/anchor.component.d.ts +3 -0
  6. package/arrow-switcher/arrow-switcher.component.d.ts +1 -0
  7. package/autocomplete/autocomplete.component.d.ts +2 -3
  8. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -0
  9. package/avatar/avatar.component.d.ts +4 -0
  10. package/back-top/back-top.component.d.ts +1 -0
  11. package/badge/badge.component.d.ts +5 -0
  12. package/button/button-icon.component.d.ts +2 -0
  13. package/button/button.component.d.ts +2 -0
  14. package/card/card.component.d.ts +3 -0
  15. package/card/content.component.d.ts +2 -1
  16. package/carousel/carousel.component.d.ts +5 -0
  17. package/cascader/cascader-li.component.d.ts +9 -2
  18. package/cascader/cascader-search-option.component.d.ts +7 -2
  19. package/cascader/cascader.component.d.ts +23 -2
  20. package/cascader/styles/cascader.scss +1 -0
  21. package/cascader/types.d.ts +1 -0
  22. package/checkbox/checkbox.component.d.ts +1 -0
  23. package/collapse/collapse-item.component.d.ts +2 -0
  24. package/collapse/collapse.component.d.ts +1 -0
  25. package/color-picker/color-picker-panel.component.d.ts +1 -0
  26. package/color-picker/color-picker.component.d.ts +7 -1
  27. package/copy/copy.directive.d.ts +1 -0
  28. package/core/behaviors/decorators.d.ts +6 -0
  29. package/date-picker/abstract-picker.component.d.ts +8 -1
  30. package/date-picker/abstract-picker.directive.d.ts +4 -0
  31. package/date-picker/base-picker.component.d.ts +2 -0
  32. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -0
  33. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -0
  34. package/date-picker/picker.component.d.ts +1 -0
  35. package/date-range/date-range.component.d.ts +2 -0
  36. package/dialog/body/dialog-body.component.d.ts +2 -1
  37. package/dialog/footer/dialog-footer.component.d.ts +1 -0
  38. package/dialog/header/dialog-header.component.d.ts +1 -0
  39. package/divider/divider.component.d.ts +2 -0
  40. package/drag-drop/drag-handle.directive.d.ts +1 -0
  41. package/drag-drop/drag.directive.d.ts +1 -0
  42. package/drag-drop/drop-container.directive.d.ts +1 -0
  43. package/dropdown/dropdown-menu-item.directive.d.ts +3 -1
  44. package/dropdown/dropdown-menu.component.d.ts +1 -0
  45. package/dropdown/dropdown.directive.d.ts +3 -0
  46. package/empty/empty.component.d.ts +1 -0
  47. package/esm2022/action/action.component.mjs +9 -22
  48. package/esm2022/affix/affix.component.mjs +8 -15
  49. package/esm2022/alert/alert.component.mjs +5 -10
  50. package/esm2022/anchor/anchor.component.mjs +10 -20
  51. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +5 -11
  52. package/esm2022/autocomplete/autocomplete.component.mjs +5 -23
  53. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +9 -20
  54. package/esm2022/avatar/avatar.component.mjs +14 -30
  55. package/esm2022/back-top/back-top.component.mjs +6 -10
  56. package/esm2022/badge/badge.component.mjs +15 -37
  57. package/esm2022/button/button-icon.component.mjs +9 -20
  58. package/esm2022/button/button.component.mjs +7 -16
  59. package/esm2022/card/card.component.mjs +6 -20
  60. package/esm2022/card/content.component.mjs +5 -6
  61. package/esm2022/carousel/carousel.component.mjs +13 -30
  62. package/esm2022/cascader/cascader-li.component.mjs +16 -31
  63. package/esm2022/cascader/cascader-search-option.component.mjs +12 -21
  64. package/esm2022/cascader/cascader.component.mjs +32 -52
  65. package/esm2022/cascader/types.mjs +1 -1
  66. package/esm2022/checkbox/checkbox.component.mjs +7 -13
  67. package/esm2022/collapse/collapse-item.component.mjs +8 -15
  68. package/esm2022/collapse/collapse.component.mjs +5 -10
  69. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -10
  70. package/esm2022/color-picker/color-picker.component.mjs +17 -37
  71. package/esm2022/copy/copy.directive.mjs +5 -10
  72. package/esm2022/core/behaviors/decorators.mjs +7 -44
  73. package/esm2022/date-picker/abstract-picker.component.mjs +21 -45
  74. package/esm2022/date-picker/abstract-picker.directive.mjs +11 -27
  75. package/esm2022/date-picker/base-picker.component.mjs +8 -15
  76. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -10
  77. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +7 -6
  78. package/esm2022/date-picker/picker.component.mjs +6 -10
  79. package/esm2022/date-range/date-range.component.mjs +7 -15
  80. package/esm2022/dialog/body/dialog-body.component.mjs +6 -6
  81. package/esm2022/dialog/footer/dialog-footer.component.mjs +6 -13
  82. package/esm2022/dialog/header/dialog-header.component.mjs +6 -10
  83. package/esm2022/divider/divider.component.mjs +7 -15
  84. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -13
  85. package/esm2022/drag-drop/drag.directive.mjs +5 -11
  86. package/esm2022/drag-drop/drop-container.directive.mjs +5 -10
  87. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +9 -19
  88. package/esm2022/dropdown/dropdown-menu.component.mjs +6 -9
  89. package/esm2022/dropdown/dropdown.directive.mjs +8 -22
  90. package/esm2022/empty/empty.component.mjs +7 -13
  91. package/esm2022/flexible-text/flexible-text.component.mjs +4 -11
  92. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -10
  93. package/esm2022/form/form-group-label.directive.mjs +6 -6
  94. package/esm2022/form/form-group.component.mjs +13 -17
  95. package/esm2022/icon/icon.component.mjs +6 -20
  96. package/esm2022/image/image.directive.mjs +7 -15
  97. package/esm2022/input/input-search.component.mjs +6 -11
  98. package/esm2022/input/input.component.mjs +7 -15
  99. package/esm2022/input-number/input-number.component.mjs +12 -25
  100. package/esm2022/layout/header.component.mjs +9 -19
  101. package/esm2022/layout/sidebar-header.component.mjs +5 -10
  102. package/esm2022/layout/sidebar.component.mjs +22 -45
  103. package/esm2022/list/list.component.mjs +5 -11
  104. package/esm2022/list/selection/selection-list.mjs +13 -10
  105. package/esm2022/loading/loading.component.mjs +9 -20
  106. package/esm2022/menu/group/menu-group.component.mjs +12 -38
  107. package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -10
  108. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -10
  109. package/esm2022/menu/menu.component.mjs +5 -10
  110. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +6 -6
  111. package/esm2022/nav/nav-ink-bar.directive.mjs +7 -15
  112. package/esm2022/nav/nav-item.directive.mjs +10 -20
  113. package/esm2022/nav/nav.component.mjs +12 -25
  114. package/esm2022/pagination/pagination.component.mjs +18 -68
  115. package/esm2022/popover/popover.directive.mjs +12 -33
  116. package/esm2022/progress/progress-circle.component.mjs +9 -20
  117. package/esm2022/progress/progress-strip.component.mjs +5 -11
  118. package/esm2022/progress/progress.component.mjs +11 -23
  119. package/esm2022/property/properties.component.mjs +5 -10
  120. package/esm2022/property/property-item.component.mjs +8 -15
  121. package/esm2022/property-operation/property-operation.component.mjs +16 -37
  122. package/esm2022/radio/group/radio-group.component.mjs +6 -21
  123. package/esm2022/rate/rate-item.component.mjs +5 -10
  124. package/esm2022/rate/rate.component.mjs +16 -25
  125. package/esm2022/resizable/resizable.directive.mjs +24 -55
  126. package/esm2022/resizable/resize-handle.component.mjs +6 -10
  127. package/esm2022/resizable/resize-handles.component.mjs +5 -10
  128. package/esm2022/segment/segment-item.component.mjs +5 -10
  129. package/esm2022/segment/segment.component.mjs +7 -16
  130. package/esm2022/select/custom-select/custom-select.component.mjs +30 -65
  131. package/esm2022/select/native-select/native-select.component.mjs +6 -10
  132. package/esm2022/shared/base-form-check.component.mjs +10 -20
  133. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -15
  134. package/esm2022/shared/directives/thy-scroll.directive.mjs +6 -13
  135. package/esm2022/shared/directives/thy-show.mjs +5 -11
  136. package/esm2022/shared/option/group/option-group.component.mjs +5 -10
  137. package/esm2022/shared/option/list-option/list-option.component.mjs +6 -13
  138. package/esm2022/shared/option/option.component.mjs +5 -11
  139. package/esm2022/shared/select/select-control/select-control.component.mjs +17 -44
  140. package/esm2022/skeleton/skeleton-circle.component.mjs +6 -9
  141. package/esm2022/skeleton/skeleton-rectangle.component.mjs +6 -9
  142. package/esm2022/skeleton/skeleton.component.mjs +5 -10
  143. package/esm2022/skeleton/stylized/bullet-list.component.mjs +6 -9
  144. package/esm2022/skeleton/stylized/list.component.mjs +6 -9
  145. package/esm2022/skeleton/stylized/paragraph.component.mjs +6 -9
  146. package/esm2022/slide/slide-body/slide-body-section.component.mjs +6 -6
  147. package/esm2022/slider/slider.component.mjs +18 -35
  148. package/esm2022/space/space.component.mjs +6 -10
  149. package/esm2022/stepper/step-header.component.mjs +9 -20
  150. package/esm2022/stepper/stepper.component.mjs +7 -16
  151. package/esm2022/switch/switch.component.mjs +12 -17
  152. package/esm2022/table/table-column.component.mjs +9 -31
  153. package/esm2022/table/table-skeleton.component.mjs +8 -14
  154. package/esm2022/table/table.component.mjs +32 -83
  155. package/esm2022/tabs/tab.component.mjs +5 -10
  156. package/esm2022/tabs/tabs.component.mjs +8 -15
  157. package/esm2022/tag/tag.component.mjs +6 -10
  158. package/esm2022/time-picker/time-picker-panel.component.mjs +8 -15
  159. package/esm2022/time-picker/time-picker.component.mjs +20 -46
  160. package/esm2022/timeline/timeline.component.mjs +5 -10
  161. package/esm2022/tooltip/tooltip.directive.mjs +11 -34
  162. package/esm2022/tree/tree-node.component.mjs +17 -40
  163. package/esm2022/tree/tree.component.mjs +19 -47
  164. package/esm2022/tree-select/tree-select.component.mjs +18 -40
  165. package/esm2022/upload/file-select-base.mjs +7 -6
  166. package/esm2022/upload/file-select.component.mjs +11 -26
  167. package/esm2022/version.mjs +2 -2
  168. package/esm2022/vote/vote.component.mjs +11 -33
  169. package/esm2022/watermark/watermark.directive.mjs +6 -10
  170. package/fesm2022/ngx-tethys-action.mjs +9 -21
  171. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-affix.mjs +6 -14
  173. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-alert.mjs +4 -9
  175. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-anchor.mjs +8 -19
  177. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-arrow-switcher.mjs +4 -10
  179. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-autocomplete.mjs +14 -39
  181. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-avatar.mjs +14 -29
  183. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-back-top.mjs +5 -9
  185. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-badge.mjs +14 -36
  187. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-button.mjs +13 -30
  189. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  190. package/fesm2022/ngx-tethys-card.mjs +8 -23
  191. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-carousel.mjs +12 -29
  193. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-cascader.mjs +55 -95
  195. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-checkbox.mjs +5 -12
  197. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-collapse.mjs +10 -20
  199. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-color-picker.mjs +19 -42
  201. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-copy.mjs +4 -9
  203. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-core.mjs +6 -43
  205. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-date-picker.mjs +45 -93
  207. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-date-range.mjs +6 -14
  209. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-dialog.mjs +13 -21
  211. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-divider.mjs +6 -14
  213. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-drag-drop.mjs +10 -25
  215. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-dropdown.mjs +19 -42
  217. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-empty.mjs +5 -12
  219. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-flexible-text.mjs +3 -10
  221. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-form.mjs +19 -25
  223. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-icon.mjs +5 -19
  225. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-image.mjs +7 -14
  227. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-input-number.mjs +11 -24
  229. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-input.mjs +10 -21
  231. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-layout.mjs +31 -64
  233. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-list.mjs +16 -18
  235. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-loading.mjs +8 -19
  237. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-menu.mjs +20 -55
  239. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-nav.mjs +28 -55
  241. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-pagination.mjs +17 -67
  243. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-popover.mjs +11 -32
  245. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-progress.mjs +20 -45
  247. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-property-operation.mjs +14 -36
  249. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-property.mjs +10 -21
  251. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-radio.mjs +5 -19
  253. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-rate.mjs +18 -30
  255. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-resizable.mjs +29 -66
  257. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-segment.mjs +10 -21
  259. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-select.mjs +32 -70
  261. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-shared.mjs +49 -105
  263. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-skeleton.mjs +20 -38
  265. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-slide.mjs +6 -5
  267. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-slider.mjs +17 -34
  269. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-space.mjs +5 -9
  271. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-stepper.mjs +13 -31
  273. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-switch.mjs +11 -16
  275. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys-table.mjs +43 -120
  277. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  278. package/fesm2022/ngx-tethys-tabs.mjs +10 -20
  279. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  280. package/fesm2022/ngx-tethys-tag.mjs +5 -9
  281. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  282. package/fesm2022/ngx-tethys-time-picker.mjs +24 -55
  283. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  284. package/fesm2022/ngx-tethys-timeline.mjs +4 -9
  285. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  286. package/fesm2022/ngx-tethys-tooltip.mjs +10 -33
  287. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  288. package/fesm2022/ngx-tethys-tree-select.mjs +17 -39
  289. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  290. package/fesm2022/ngx-tethys-tree.mjs +33 -82
  291. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  292. package/fesm2022/ngx-tethys-upload.mjs +15 -28
  293. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  294. package/fesm2022/ngx-tethys-vote.mjs +10 -32
  295. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  296. package/fesm2022/ngx-tethys-watermark.mjs +5 -9
  297. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  298. package/fesm2022/ngx-tethys.mjs +1 -1
  299. package/fesm2022/ngx-tethys.mjs.map +1 -1
  300. package/flexible-text/flexible-text.component.d.ts +1 -0
  301. package/form/form-group-error/form-group-error.component.d.ts +1 -0
  302. package/form/form-group-label.directive.d.ts +2 -1
  303. package/form/form-group.component.d.ts +5 -2
  304. package/icon/icon.component.d.ts +3 -0
  305. package/image/image.directive.d.ts +2 -0
  306. package/input/input-search.component.d.ts +1 -0
  307. package/input/input.component.d.ts +2 -0
  308. package/input-number/input-number.component.d.ts +4 -0
  309. package/layout/header.component.d.ts +5 -2
  310. package/layout/sidebar-header.component.d.ts +1 -0
  311. package/layout/sidebar.component.d.ts +14 -4
  312. package/list/list.component.d.ts +1 -0
  313. package/list/selection/selection-list.d.ts +4 -1
  314. package/loading/loading.component.d.ts +4 -2
  315. package/menu/group/menu-group.component.d.ts +6 -0
  316. package/menu/item/action/menu-item-action.component.d.ts +1 -0
  317. package/menu/item/name/menu-item-name.component.d.ts +1 -0
  318. package/menu/menu.component.d.ts +1 -0
  319. package/nav/icon-nav/icon-nav-link.directive.d.ts +2 -1
  320. package/nav/nav-ink-bar.directive.d.ts +2 -0
  321. package/nav/nav-item.directive.d.ts +3 -0
  322. package/nav/nav.component.d.ts +4 -0
  323. package/package.json +1 -1
  324. package/pagination/pagination.component.d.ts +11 -0
  325. package/popover/popover.directive.d.ts +5 -0
  326. package/progress/progress-circle.component.d.ts +3 -0
  327. package/progress/progress-strip.component.d.ts +1 -0
  328. package/progress/progress.component.d.ts +3 -0
  329. package/property/properties.component.d.ts +1 -0
  330. package/property/property-item.component.d.ts +2 -0
  331. package/property-operation/property-operation.component.d.ts +5 -0
  332. package/radio/group/radio-group.component.d.ts +2 -2
  333. package/rate/rate-item.component.d.ts +1 -0
  334. package/rate/rate.component.d.ts +5 -1
  335. package/resizable/resizable.directive.d.ts +10 -0
  336. package/resizable/resize-handle.component.d.ts +1 -0
  337. package/resizable/resize-handles.component.d.ts +1 -0
  338. package/schematics/version.d.ts +1 -1
  339. package/schematics/version.js +1 -1
  340. package/segment/segment-item.component.d.ts +1 -0
  341. package/segment/segment.component.d.ts +2 -0
  342. package/select/custom-select/custom-select.component.d.ts +12 -1
  343. package/select/native-select/native-select.component.d.ts +1 -0
  344. package/shared/base-form-check.component.d.ts +2 -0
  345. package/shared/directives/thy-autofocus.directive.d.ts +3 -1
  346. package/shared/directives/thy-scroll.directive.d.ts +1 -0
  347. package/shared/directives/thy-show.d.ts +1 -0
  348. package/shared/option/group/option-group.component.d.ts +1 -0
  349. package/shared/option/list-option/list-option.component.d.ts +1 -0
  350. package/shared/option/option.component.d.ts +1 -0
  351. package/shared/option/styles/select-dropdown.scss +1 -0
  352. package/shared/select/select-control/select-control.component.d.ts +7 -0
  353. package/skeleton/skeleton-circle.component.d.ts +1 -0
  354. package/skeleton/skeleton-rectangle.component.d.ts +1 -0
  355. package/skeleton/skeleton.component.d.ts +1 -0
  356. package/skeleton/stylized/bullet-list.component.d.ts +1 -0
  357. package/skeleton/stylized/list.component.d.ts +1 -0
  358. package/skeleton/stylized/paragraph.component.d.ts +1 -0
  359. package/slide/slide-body/slide-body-section.component.d.ts +2 -1
  360. package/slider/slider.component.d.ts +6 -1
  361. package/space/space.component.d.ts +1 -0
  362. package/stepper/step-header.component.d.ts +3 -0
  363. package/stepper/stepper.component.d.ts +2 -0
  364. package/switch/switch.component.d.ts +3 -1
  365. package/table/table-column.component.d.ts +7 -2
  366. package/table/table-skeleton.component.d.ts +2 -0
  367. package/table/table.component.d.ts +14 -0
  368. package/tabs/tab.component.d.ts +1 -0
  369. package/tabs/tabs.component.d.ts +2 -0
  370. package/tag/tag.component.d.ts +1 -0
  371. package/time-picker/time-picker-panel.component.d.ts +2 -0
  372. package/time-picker/time-picker.component.d.ts +6 -2
  373. package/timeline/timeline.component.d.ts +1 -0
  374. package/tooltip/tooltip.directive.d.ts +5 -0
  375. package/tree/tree-node.component.d.ts +7 -0
  376. package/tree/tree.component.d.ts +8 -0
  377. package/tree-select/tree-select.component.d.ts +7 -0
  378. package/upload/file-select-base.d.ts +1 -0
  379. package/upload/file-select.component.d.ts +3 -0
  380. package/vote/vote.component.d.ts +4 -2
  381. package/watermark/watermark.directive.d.ts +1 -0
@@ -1,12 +1,10 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core';
3
- import { coerceBooleanProperty, isString } from 'ngx-tethys/util';
1
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output, booleanAttribute } from '@angular/core';
2
+ import { isString } from 'ngx-tethys/util';
4
3
  import { useHostRenderer } from '@tethys/cdk/dom';
5
4
  import { ThyAvatarService } from './avatar.service';
6
5
  import { AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe } from './avatar.pipe';
7
6
  import { ThyIcon } from 'ngx-tethys/icon';
8
7
  import { NgIf, NgClass, NgStyle } from '@angular/common';
9
- import { InputBoolean } from 'ngx-tethys/core';
10
8
  import * as i0 from "@angular/core";
11
9
  import * as i1 from "./avatar.service";
12
10
  const sizeArray = [16, 22, 24, 28, 32, 36, 44, 48, 68, 110, 160];
@@ -57,14 +55,14 @@ export class ThyAvatar {
57
55
  * @default false
58
56
  */
59
57
  set thyShowRemove(value) {
60
- this._showRemove = coerceBooleanProperty(value);
58
+ this._showRemove = value;
61
59
  }
62
60
  /**
63
61
  * 是否展示移除按钮
64
62
  * @default false
65
63
  */
66
64
  set thyRemovable(value) {
67
- this._showRemove = coerceBooleanProperty(value);
65
+ this._showRemove = value;
68
66
  }
69
67
  _setAvatarSize(size) {
70
68
  if (sizeArray.indexOf(size) > -1) {
@@ -140,26 +138,8 @@ export class ThyAvatar {
140
138
  this.thyError.emit($event);
141
139
  }
142
140
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAvatar, deps: [{ token: i1.ThyAvatarService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyAvatar, isStandalone: true, selector: "thy-avatar", inputs: { thyShowName: "thyShowName", thySrc: "thySrc", thyName: "thyName", thySize: "thySize", thyShowRemove: "thyShowRemove", thyRemovable: "thyRemovable", thyImgClass: "thyImgClass", thyDisabled: "thyDisabled", thyLoading: "thyLoading", thyFetchPriority: "thyFetchPriority" }, outputs: { thyOnRemove: "thyOnRemove", thyRemove: "thyRemove", thyError: "thyError" }, host: { properties: { "class.thy-avatar": "this._isAvatar" } }, ngImport: i0, template: "<img\n *ngIf=\"_src; else noSrc\"\n [src]=\"_src | thyAvatarSrc: _size\"\n class=\"avatar-avatar\"\n [ngClass]=\"thyImgClass\"\n alt=\"{{ avatarName || '' }}\"\n [attr.loading]=\"thyLoading\"\n [attr.fetchpriority]=\"thyFetchPriority\"\n (error)=\"avatarImgError($event)\"\n/>\n\n<ng-template #noSrc>\n <span class=\"avatar-default\" [ngStyle]=\"avatarName | avatarBgColor\">\n <div>{{ avatarName | avatarShortName }}</div>\n </span>\n</ng-template>\n\n<ng-template [ngIf]=\"thyShowName\">\n <div *ngIf=\"avatarNameSafeHtml; else noAvatarNameSafeHtml\" class=\"avatar-name\" [innerHtml]=\"avatarNameSafeHtml\"></div>\n <ng-template #noAvatarNameSafeHtml>\n <div class=\"avatar-name\">{{ avatarName }}</div>\n </ng-template>\n</ng-template>\n\n<a *ngIf=\"_showRemove\" (click)=\"remove($event)\" href=\"javascript:;\" class=\"remove-link avatar-remove\">\n <thy-icon class=\"remove-link-icon\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</a>\n<div *ngIf=\"thyDisabled\" class=\"thy-avatar-disabled\">\n <thy-icon class=\"thy-avatar-disabled-icon\" thyIconName=\"ban\"></thy-icon>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "pipe", type: AvatarShortNamePipe, name: "avatarShortName" }, { kind: "pipe", type: AvatarBgColorPipe, name: "avatarBgColor" }, { kind: "pipe", type: AvatarSrcPipe, name: "thyAvatarSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAvatar, isStandalone: true, selector: "thy-avatar", inputs: { thyShowName: ["thyShowName", "thyShowName", booleanAttribute], thySrc: "thySrc", thyName: "thyName", thySize: "thySize", thyShowRemove: ["thyShowRemove", "thyShowRemove", booleanAttribute], thyRemovable: ["thyRemovable", "thyRemovable", booleanAttribute], thyImgClass: "thyImgClass", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyLoading: "thyLoading", thyFetchPriority: "thyFetchPriority" }, outputs: { thyOnRemove: "thyOnRemove", thyRemove: "thyRemove", thyError: "thyError" }, host: { properties: { "class.thy-avatar": "this._isAvatar" } }, ngImport: i0, template: "<img\n *ngIf=\"_src; else noSrc\"\n [src]=\"_src | thyAvatarSrc: _size\"\n class=\"avatar-avatar\"\n [ngClass]=\"thyImgClass\"\n alt=\"{{ avatarName || '' }}\"\n [attr.loading]=\"thyLoading\"\n [attr.fetchpriority]=\"thyFetchPriority\"\n (error)=\"avatarImgError($event)\"\n/>\n\n<ng-template #noSrc>\n <span class=\"avatar-default\" [ngStyle]=\"avatarName | avatarBgColor\">\n <div>{{ avatarName | avatarShortName }}</div>\n </span>\n</ng-template>\n\n<ng-template [ngIf]=\"thyShowName\">\n <div *ngIf=\"avatarNameSafeHtml; else noAvatarNameSafeHtml\" class=\"avatar-name\" [innerHtml]=\"avatarNameSafeHtml\"></div>\n <ng-template #noAvatarNameSafeHtml>\n <div class=\"avatar-name\">{{ avatarName }}</div>\n </ng-template>\n</ng-template>\n\n<a *ngIf=\"_showRemove\" (click)=\"remove($event)\" href=\"javascript:;\" class=\"remove-link avatar-remove\">\n <thy-icon class=\"remove-link-icon\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</a>\n<div *ngIf=\"thyDisabled\" class=\"thy-avatar-disabled\">\n <thy-icon class=\"thy-avatar-disabled-icon\" thyIconName=\"ban\"></thy-icon>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "pipe", type: AvatarShortNamePipe, name: "avatarShortName" }, { kind: "pipe", type: AvatarBgColorPipe, name: "avatarBgColor" }, { kind: "pipe", type: AvatarSrcPipe, name: "thyAvatarSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
144
142
  }
145
- __decorate([
146
- InputBoolean(),
147
- __metadata("design:type", Boolean)
148
- ], ThyAvatar.prototype, "thyShowName", void 0);
149
- __decorate([
150
- InputBoolean(),
151
- __metadata("design:type", Boolean),
152
- __metadata("design:paramtypes", [Boolean])
153
- ], ThyAvatar.prototype, "thyShowRemove", null);
154
- __decorate([
155
- InputBoolean(),
156
- __metadata("design:type", Boolean),
157
- __metadata("design:paramtypes", [Boolean])
158
- ], ThyAvatar.prototype, "thyRemovable", null);
159
- __decorate([
160
- InputBoolean(),
161
- __metadata("design:type", Boolean)
162
- ], ThyAvatar.prototype, "thyDisabled", void 0);
163
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAvatar, decorators: [{
164
144
  type: Component,
165
145
  args: [{ selector: 'thy-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgClass, NgStyle, ThyIcon, AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe], template: "<img\n *ngIf=\"_src; else noSrc\"\n [src]=\"_src | thyAvatarSrc: _size\"\n class=\"avatar-avatar\"\n [ngClass]=\"thyImgClass\"\n alt=\"{{ avatarName || '' }}\"\n [attr.loading]=\"thyLoading\"\n [attr.fetchpriority]=\"thyFetchPriority\"\n (error)=\"avatarImgError($event)\"\n/>\n\n<ng-template #noSrc>\n <span class=\"avatar-default\" [ngStyle]=\"avatarName | avatarBgColor\">\n <div>{{ avatarName | avatarShortName }}</div>\n </span>\n</ng-template>\n\n<ng-template [ngIf]=\"thyShowName\">\n <div *ngIf=\"avatarNameSafeHtml; else noAvatarNameSafeHtml\" class=\"avatar-name\" [innerHtml]=\"avatarNameSafeHtml\"></div>\n <ng-template #noAvatarNameSafeHtml>\n <div class=\"avatar-name\">{{ avatarName }}</div>\n </ng-template>\n</ng-template>\n\n<a *ngIf=\"_showRemove\" (click)=\"remove($event)\" href=\"javascript:;\" class=\"remove-link avatar-remove\">\n <thy-icon class=\"remove-link-icon\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</a>\n<div *ngIf=\"thyDisabled\" class=\"thy-avatar-disabled\">\n <thy-icon class=\"thy-avatar-disabled-icon\" thyIconName=\"ban\"></thy-icon>\n</div>\n" }]
@@ -173,7 +153,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
173
153
  }], thyError: [{
174
154
  type: Output
175
155
  }], thyShowName: [{
176
- type: Input
156
+ type: Input,
157
+ args: [{ transform: booleanAttribute }]
177
158
  }], thySrc: [{
178
159
  type: Input
179
160
  }], thyName: [{
@@ -181,16 +162,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
181
162
  }], thySize: [{
182
163
  type: Input
183
164
  }], thyShowRemove: [{
184
- type: Input
165
+ type: Input,
166
+ args: [{ transform: booleanAttribute }]
185
167
  }], thyRemovable: [{
186
- type: Input
168
+ type: Input,
169
+ args: [{ transform: booleanAttribute }]
187
170
  }], thyImgClass: [{
188
171
  type: Input
189
172
  }], thyDisabled: [{
190
- type: Input
173
+ type: Input,
174
+ args: [{ transform: booleanAttribute }]
191
175
  }], thyLoading: [{
192
176
  type: Input
193
177
  }], thyFetchPriority: [{
194
178
  type: Input
195
179
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakksT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUUvQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLEdBQUcsRUFBRSxFQUFFO0lBQ1AsRUFBRSxFQUFFLEVB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bXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBpc1N0cmluZyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5QXZhdGFyU2VydmljZSB9IGZyb20gJy4vYXZhdGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXZhdGFyU2hvcnROYW1lUGlwZSwgQXZhdGFyQmdDb2xvclBpcGUsIEF2YXRhclNyY1BpcGUgfSBmcm9tICcuL2F2YXRhci5waXBlJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdJZiwgTmdDbGFzcywgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuXG5jb25zdCBzaXplQXJyYXkgPSBbMTYsIDIyLCAyNCwgMjgsIDMyLCAzNiwgNDQsIDQ4LCA2OCwgMTEwLCAxNjBdO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSVpFID0gMzY7XG5cbmV4cG9ydCBjb25zdCB0aHlBdmF0YXJTaXplTWFwID0ge1xuICAgIHh4czogMjIsXG4gICAgeHM6IDI0LFxuICAgIHNtOiAzMixcbiAgICBtZDogMzYsXG4gICAgbGc6IDQ4XG59O1xuXG4vKiogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZW1iZWRkZWQtY29udGVudC5odG1sI2F0dHItaW1nLWxvYWRpbmcgKi9cbmV4cG9ydCB0eXBlIFRoeUF2YXRhckxvYWRpbmcgPSAnZWFnZXInIHwgJ2xhenknO1xuXG4vKiogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9wcmlvcml0eS1oaW50cy8jaWRsLWluZGV4ICovXG5leHBvcnQgdHlwZSBUaHlBdmF0YXJGZXRjaFByaW9yaXR5ID0gJ2hpZ2gnIHwgJ2xvdycgfCAnYXV0byc7XG5cbi8qKlxuICog5aS05YOP57uE5Lu2XG4gKiBAbmFtZSB0aHktYXZhdGFyXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ0NsYXNzLCBOZ1N0eWxlLCBUaHlJY29uLCBBdmF0YXJTaG9ydE5hbWVQaXBlLCBBdmF0YXJCZ0NvbG9yUGlwZSwgQXZhdGFyU3JjUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QXZhdGFyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBfc3JjOiBzdHJpbmc7XG4gICAgX25hbWU6IHN0cmluZztcbiAgICBfc2l6ZTogbnVtYmVyO1xuICAgIF9zaG93UmVtb3ZlID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmc7XG4gICAgcHVibGljIGF2YXRhck5hbWU/OiBzdHJpbmc7XG4gICAgcHVibGljIGF2YXRhck5hbWVTYWZlSHRtbD86IFNhZmVIdG1sO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktYXZhdGFyJykgX2lzQXZhdGFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqICog5bey5bqf5byD77yM6K+35L2/55SoIHRoeVJlbW92ZVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeU9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogIOenu+mZpOaMiemSrueahOS6i+S7tiwg5b2TIHRoeVJlbW92YWJsZSDkuLogdHJ1ZSDml7botbfkvZznlKhcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5UmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogIOWktOWDjyBpbWcg5Yqg6L29IGVycm9yIOaXtuinpuWPkVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlFcnJvcjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrkurrlkZjlkI3np7BcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0aHlTaG93TmFtZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWktOWDj+i3r+W+hOWcsOWdgCwg6buY6K6k5Li65YWo6Lev5b6E77yM5aaC5p6c5LiN5piv5YWo6Lev5b6E77yM5Y+v5Lul6YCa6L+H6Ieq5a6a5LmJ5pyN5YqhIFRoeUF2YXRhclNlcnZpY2XvvIzph43lhpkgc3JjVHJhbnNmb3JtIOaWueazleWunueOsOi9rOaNolxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0QXZhdGFyU3JjKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkurrlkZjlkI3np7DvvIjlj6/orr7nva7oh6rlrprkuYnlkI3np7DvvIzpnIDpgJrov4foh6rlrprkuYnmnI3liqEgVGh5QXZhdGFyU2VydmljZe+8jOmHjeWGmSBuYW1lVHJhbnNmb3JtIOaWueazleWOu+WunueOsOi9rOaNou+8iVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyB0aGlzLl9uYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldEF2YXRhck5hbWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWktOWDj+Wkp+Wwj1xuICAgICAqIEB0eXBlIDE2IHwgMjIgfCAyNCB8IDI4IHwgMzIgfCAzNiB8IDQ0IHwgNDggfCA2OCB8IDExMCB8IDE2MCB8IHh4cygyMnB4KSB8IHhzKDI0cHgpIHwgc20oMzJweCkgfCBtZCgzNnB4KSB8IGxnKDQ4cHgpXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRBdmF0YXJTaXplKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF2YXRhclNpemUoKHZhbHVlIGFzIG51bWJlcikgKiAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlSZW1vdmFibGVcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICBzZXQgdGh5U2hvd1JlbW92ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93UmVtb3ZlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrnp7vpmaTmjInpkq5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgc2V0IHRoeVJlbW92YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93UmVtb3ZlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlm77niYfoh6rlrprkuYnnsbtcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlJbWdDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55SoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5RGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDlm77niYfliqDovb3nrZbnlaVcbiAgICAgKiBAdHlwZSBlYWdlcijnq4vljbPliqDovb0pIHwgbGF6eSjlu7bov5/liqDovb0pXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TG9hZGluZz86IFRoeUF2YXRhckxvYWRpbmc7XG5cbiAgICAvKipcbiAgICAgKiDlm77niYfliqDovb3kvJjlhYjnuqdcbiAgICAgKiBAdHlwZSBhdXRvKOm7mOiupCkgfCBoaWdoKOmrmCkgfCBsb3co5L2OKVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUZldGNoUHJpb3JpdHk/OiBUaHlBdmF0YXJGZXRjaFByaW9yaXR5O1xuXG4gICAgcHJpdmF0ZSBfc2V0QXZhdGFyU2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHNpemVBcnJheS5pbmRleE9mKHNpemUpID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSBzaXplO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2l6ZSA9IHRoaXMuZmluZENsb3Nlc3RTaXplKHNpemVBcnJheSwgc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoW2B0aHktYXZhdGFyLSR7dGhpcy5fc2l6ZX1gXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kQ2xvc2VzdFNpemUoc2l6ZUFycmF5OiBudW1iZXJbXSwgY3VycmVudFNpemU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBjbG9zZXN0VmFsdWUgPSBzaXplQXJyYXlbMF07XG4gICAgICAgIGxldCBjbG9zZXN0RGlmZmVyZW5jZSA9IE1hdGguYWJzKGNsb3Nlc3RWYWx1ZSAtIGN1cnJlbnRTaXplKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHNpemVBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERpZmZlcmVuY2UgPSBNYXRoLmFicyhzaXplQXJyYXlbaV0gLSBjdXJyZW50U2l6ZSk7XG4gICAgICAgICAgICBpZiAoY3VycmVudERpZmZlcmVuY2UgPD0gY2xvc2VzdERpZmZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICBjbG9zZXN0VmFsdWUgPSBzaXplQXJyYXlbaV07XG4gICAgICAgICAgICAgICAgY2xvc2VzdERpZmZlcmVuY2UgPSBjdXJyZW50RGlmZmVyZW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbG9zZXN0VmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0QXZhdGFyU3JjKHNyYzogc3RyaW5nKSB7XG4gICAgICAgIGlmIChzcmMgJiYgdGhpcy50aHlBdmF0YXJTZXJ2aWNlLmlnbm9yZUF2YXRhclNyY1BhdGhzLmluZGV4T2Yoc3JjKSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3NyYyA9IHNyYztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NyYyA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRBdmF0YXJOYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMudGh5QXZhdGFyU2VydmljZS5uYW1lVHJhbnNmb3JtKHZhbHVlKTtcbiAgICAgICAgaWYgKGlzU3RyaW5nKG5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhck5hbWUgPSBuYW1lIGFzIHN0cmluZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXZhdGFyTmFtZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJOYW1lU2FmZUh0bWwgPSBuYW1lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGh5QXZhdGFyU2VydmljZTogVGh5QXZhdGFyU2VydmljZSwgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zaXplKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRBdmF0YXJTaXplKERFRkFVTFRfU0laRSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoW2B0aHktYXZhdGFyLSR7dGhpcy5fc2l6ZX1gXSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlKCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy50aHlPblJlbW92ZS5lbWl0KCRldmVudCk7XG4gICAgICAgIHRoaXMudGh5UmVtb3ZlLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBhdmF0YXJJbWdFcnJvcigkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuX3NldEF2YXRhclNyYyhudWxsKTtcbiAgICAgICAgdGhpcy50aHlFcnJvci5lbWl0KCRldmVudCk7XG4gICAgfVxufVxuIiwiPGltZ1xuICAqbmdJZj1cIl9zcmM7IGVsc2Ugbm9TcmNcIlxuICBbc3JjXT1cIl9zcmMgfCB0aHlBdmF0YXJTcmM6IF9zaXplXCJcbiAgY2xhc3M9XCJhdmF0YXItYXZhdGFyXCJcbiAgW25nQ2xhc3NdPVwidGh5SW1nQ2xhc3NcIlxuICBhbHQ9XCJ7eyBhdmF0YXJOYW1lIHx8ICcnIH19XCJcbiAgW2F0dHIubG9hZGluZ109XCJ0aHlMb2FkaW5nXCJcbiAgW2F0dHIuZmV0Y2hwcmlvcml0eV09XCJ0aHlGZXRjaFByaW9yaXR5XCJcbiAgKGVycm9yKT1cImF2YXRhckltZ0Vycm9yKCRldmVudClcIlxuLz5cblxuPG5nLXRlbXBsYXRlICNub1NyYz5cbiAgPHNwYW4gY2xhc3M9XCJhdmF0YXItZGVmYXVsdFwiIFtuZ1N0eWxlXT1cImF2YXRhck5hbWUgfCBhdmF0YXJCZ0NvbG9yXCI+XG4gICAgPGRpdj57eyBhdmF0YXJOYW1lIHwgYXZhdGFyU2hvcnROYW1lIH19PC9kaXY+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ0aHlTaG93TmFtZVwiPlxuICA8ZGl2ICpuZ0lmPVwiYXZhdGFyTmFtZVNhZmVIdG1sOyBlbHNlIG5vQXZhdGFyTmFtZVNhZmVIdG1sXCIgY2xhc3M9XCJhdmF0YXItbmFtZVwiIFtpbm5lckh0bWxdPVwiYXZhdGFyTmFtZVNhZmVIdG1sXCI+PC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjbm9BdmF0YXJOYW1lU2FmZUh0bWw+XG4gICAgPGRpdiBjbGFzcz1cImF2YXRhci1uYW1lXCI+e3sgYXZhdGFyTmFtZSB9fTwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGEgKm5nSWY9XCJfc2hvd1JlbW92ZVwiIChjbGljayk9XCJyZW1vdmUoJGV2ZW50KVwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBjbGFzcz1cInJlbW92ZS1saW5rIGF2YXRhci1yZW1vdmVcIj5cbiAgPHRoeS1pY29uIGNsYXNzPVwicmVtb3ZlLWxpbmstaWNvblwiIHRoeUljb25OYW1lPVwiY2xvc2UtY2lyY2xlLWJvbGQtZmlsbFwiPjwvdGh5LWljb24+XG48L2E+XG48ZGl2ICpuZ0lmPVwidGh5RGlzYWJsZWRcIiBjbGFzcz1cInRoeS1hdmF0YXItZGlzYWJsZWRcIj5cbiAgPHRoeS1pY29uIGNsYXNzPVwidGh5LWF2YXRhci1kaXNhYmxlZC1pY29uXCIgdGh5SWNvbk5hbWU9XCJiYW5cIj48L3RoeS1pY29uPlxuPC9kaXY+XG4iXX0=
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV6RCxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLEdBQUcsRUFBRSxFQUFFO0lBQ1AsRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFF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LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IFRoeUF2YXRhclNlcnZpY2UgfSBmcm9tICcuL2F2YXRhci5zZXJ2aWNlJztcbmltcG9ydCB7IEF2YXRhclNob3J0TmFtZVBpcGUsIEF2YXRhckJnQ29sb3JQaXBlLCBBdmF0YXJTcmNQaXBlIH0gZnJvbSAnLi9hdmF0YXIucGlwZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYsIE5nQ2xhc3MsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jb25zdCBzaXplQXJyYXkgPSBbMTYsIDIyLCAyNCwgMjgsIDMyLCAzNiwgNDQsIDQ4LCA2OCwgMTEwLCAxNjBdO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSVpFID0gMzY7XG5cbmV4cG9ydCBjb25zdCB0aHlBdmF0YXJTaXplTWFwID0ge1xuICAgIHh4czogMjIsXG4gICAgeHM6IDI0LFxuICAgIHNtOiAzMixcbiAgICBtZDogMzYsXG4gICAgbGc6IDQ4XG59O1xuXG4vKiogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZW1iZWRkZWQtY29udGVudC5odG1sI2F0dHItaW1nLWxvYWRpbmcgKi9cbmV4cG9ydCB0eXBlIFRoeUF2YXRhckxvYWRpbmcgPSAnZWFnZXInIHwgJ2xhenknO1xuXG4vKiogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9wcmlvcml0eS1oaW50cy8jaWRsLWluZGV4ICovXG5leHBvcnQgdHlwZSBUaHlBdmF0YXJGZXRjaFByaW9yaXR5ID0gJ2hpZ2gnIHwgJ2xvdycgfCAnYXV0byc7XG5cbi8qKlxuICog5aS05YOP57uE5Lu2XG4gKiBAbmFtZSB0aHktYXZhdGFyXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ0NsYXNzLCBOZ1N0eWxlLCBUaHlJY29uLCBBdmF0YXJTaG9ydE5hbWVQaXBlLCBBdmF0YXJCZ0NvbG9yUGlwZSwgQXZhdGFyU3JjUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QXZhdGFyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBfc3JjOiBzdHJpbmc7XG4gICAgX25hbWU6IHN0cmluZztcbiAgICBfc2l6ZTogbnVtYmVyO1xuICAgIF9zaG93UmVtb3ZlID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmc7XG4gICAgcHVibGljIGF2YXRhck5hbWU/OiBzdHJpbmc7XG4gICAgcHVibGljIGF2YXRhck5hbWVTYWZlSHRtbD86IFNhZmVIdG1sO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktYXZhdGFyJykgX2lzQXZhdGFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqICog5bey5bqf5byD77yM6K+35L2/55SoIHRoeVJlbW92ZVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeU9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogIOenu+mZpOaMiemSrueahOS6i+S7tiwg5b2TIHRoeVJlbW92YWJsZSDkuLogdHJ1ZSDml7botbfkvZznlKhcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5UmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogIOWktOWDjyBpbWcg5Yqg6L29IGVycm9yIOaXtuinpuWPkVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlFcnJvcjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrkurrlkZjlkI3np7BcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlTaG93TmFtZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWktOWDj+i3r+W+hOWcsOWdgCwg6buY6K6k5Li65YWo6Lev5b6E77yM5aaC5p6c5LiN5piv5YWo6Lev5b6E77yM5Y+v5Lul6YCa6L+H6Ieq5a6a5LmJ5pyN5YqhIFRoeUF2YXRhclNlcnZpY2XvvIzph43lhpkgc3JjVHJhbnNmb3JtIOaWueazleWunueOsOi9rOaNolxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0QXZhdGFyU3JjKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkurrlkZjlkI3np7DvvIjlj6/orr7nva7oh6rlrprkuYnlkI3np7DvvIzpnIDpgJrov4foh6rlrprkuYnmnI3liqEgVGh5QXZhdGFyU2VydmljZe+8jOmHjeWGmSBuYW1lVHJhbnNmb3JtIOaWueazleWOu+WunueOsOi9rOaNou+8iVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyB0aGlzLl9uYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldEF2YXRhck5hbWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWktOWDj+Wkp+Wwj1xuICAgICAqIEB0eXBlIDE2IHwgMjIgfCAyNCB8IDI4IHwgMzIgfCAzNiB8IDQ0IHwgNDggfCA2OCB8IDExMCB8IDE2MCB8IHh4cygyMnB4KSB8IHhzKDI0cHgpIHwgc20oMzJweCkgfCBtZCgzNnB4KSB8IGxnKDQ4cHgpXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRBdmF0YXJTaXplKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF2YXRhclNpemUoKHZhbHVlIGFzIG51bWJlcikgKiAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlSZW1vdmFibGVcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVNob3dSZW1vdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd1JlbW92ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuuenu+mZpOaMiemSrlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVJlbW92YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93UmVtb3ZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Zu+54mH6Ieq5a6a5LmJ57G7XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SW1nQ2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L29562W55WlXG4gICAgICogQHR5cGUgZWFnZXIo56uL5Y2z5Yqg6L29KSB8IGxhenko5bu26L+f5Yqg6L29KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxvYWRpbmc/OiBUaHlBdmF0YXJMb2FkaW5nO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L295LyY5YWI57qnXG4gICAgICogQHR5cGUgYXV0byjpu5jorqQpIHwgaGlnaCjpq5gpIHwgbG93KOS9jilcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlGZXRjaFByaW9yaXR5PzogVGh5QXZhdGFyRmV0Y2hQcmlvcml0eTtcblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmIChzaXplQXJyYXkuaW5kZXhPZihzaXplKSA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSB0aGlzLmZpbmRDbG9zZXN0U2l6ZShzaXplQXJyYXksIHNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZENsb3Nlc3RTaXplKHNpemVBcnJheTogbnVtYmVyW10sIGN1cnJlbnRTaXplOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5WzBdO1xuICAgICAgICBsZXQgY2xvc2VzdERpZmZlcmVuY2UgPSBNYXRoLmFicyhjbG9zZXN0VmFsdWUgLSBjdXJyZW50U2l6ZSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzaXplQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREaWZmZXJlbmNlID0gTWF0aC5hYnMoc2l6ZUFycmF5W2ldIC0gY3VycmVudFNpemUpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnREaWZmZXJlbmNlIDw9IGNsb3Nlc3REaWZmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5W2ldO1xuICAgICAgICAgICAgICAgIGNsb3Nlc3REaWZmZXJlbmNlID0gY3VycmVudERpZmZlcmVuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xvc2VzdFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNyYyhzcmM6IHN0cmluZykge1xuICAgICAgICBpZiAoc3JjICYmIHRoaXMudGh5QXZhdGFyU2VydmljZS5pZ25vcmVBdmF0YXJTcmNQYXRocy5pbmRleE9mKHNyYykgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBzcmM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0QXZhdGFyTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRoeUF2YXRhclNlcnZpY2UubmFtZVRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIGlmIChpc1N0cmluZyhuYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJOYW1lID0gbmFtZSBhcyBzdHJpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYXZhdGFyTmFtZVNhZmVIdG1sID0gbmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoeUF2YXRhclNlcnZpY2U6IFRoeUF2YXRhclNlcnZpY2UsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0QXZhdGFyU2l6ZShERUZBVUxUX1NJWkUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHJlbW92ZSgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5T25SZW1vdmUuZW1pdCgkZXZlbnQpO1xuICAgICAgICB0aGlzLnRoeVJlbW92ZS5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgYXZhdGFySW1nRXJyb3IoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLl9zZXRBdmF0YXJTcmMobnVsbCk7XG4gICAgICAgIHRoaXMudGh5RXJyb3IuZW1pdCgkZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxpbWdcbiAgKm5nSWY9XCJfc3JjOyBlbHNlIG5vU3JjXCJcbiAgW3NyY109XCJfc3JjIHwgdGh5QXZhdGFyU3JjOiBfc2l6ZVwiXG4gIGNsYXNzPVwiYXZhdGFyLWF2YXRhclwiXG4gIFtuZ0NsYXNzXT1cInRoeUltZ0NsYXNzXCJcbiAgYWx0PVwie3sgYXZhdGFyTmFtZSB8fCAnJyB9fVwiXG4gIFthdHRyLmxvYWRpbmddPVwidGh5TG9hZGluZ1wiXG4gIFthdHRyLmZldGNocHJpb3JpdHldPVwidGh5RmV0Y2hQcmlvcml0eVwiXG4gIChlcnJvcik9XCJhdmF0YXJJbWdFcnJvcigkZXZlbnQpXCJcbi8+XG5cbjxuZy10ZW1wbGF0ZSAjbm9TcmM+XG4gIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWRlZmF1bHRcIiBbbmdTdHlsZV09XCJhdmF0YXJOYW1lIHwgYXZhdGFyQmdDb2xvclwiPlxuICAgIDxkaXY+e3sgYXZhdGFyTmFtZSB8IGF2YXRhclNob3J0TmFtZSB9fTwvZGl2PlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgW25nSWZdPVwidGh5U2hvd05hbWVcIj5cbiAgPGRpdiAqbmdJZj1cImF2YXRhck5hbWVTYWZlSHRtbDsgZWxzZSBub0F2YXRhck5hbWVTYWZlSHRtbFwiIGNsYXNzPVwiYXZhdGFyLW5hbWVcIiBbaW5uZXJIdG1sXT1cImF2YXRhck5hbWVTYWZlSHRtbFwiPjwvZGl2PlxuICA8bmctdGVtcGxhdGUgI25vQXZhdGFyTmFtZVNhZmVIdG1sPlxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItbmFtZVwiPnt7IGF2YXRhck5hbWUgfX08L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxhICpuZ0lmPVwiX3Nob3dSZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIiBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJyZW1vdmUtbGluayBhdmF0YXItcmVtb3ZlXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInJlbW92ZS1saW5rLWljb25cIiB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIj48L3RoeS1pY29uPlxuPC9hPlxuPGRpdiAqbmdJZj1cInRoeURpc2FibGVkXCIgY2xhc3M9XCJ0aHktYXZhdGFyLWRpc2FibGVkXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInRoeS1hdmF0YXItZGlzYWJsZWQtaWNvblwiIHRoeUljb25OYW1lPVwiYmFuXCI+PC90aHktaWNvbj5cbjwvZGl2PlxuIl19
@@ -1,10 +1,9 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, TemplateRef, EventEmitter, Output, HostBinding, NgZone, ChangeDetectorRef, Inject, ViewChild, ElementRef } from '@angular/core';
1
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, TemplateRef, EventEmitter, Output, HostBinding, NgZone, ChangeDetectorRef, Inject, ViewChild, ElementRef, numberAttribute } from '@angular/core';
3
2
  import { Subject, fromEvent, BehaviorSubject, EMPTY, Observable } from 'rxjs';
4
3
  import { Platform } from '@angular/cdk/platform';
5
4
  import { throttleTime, takeUntil, switchMap } from 'rxjs/operators';
6
5
  import { DOCUMENT, NgIf, NgTemplateOutlet } from '@angular/common';
7
- import { fadeMotion, InputNumber, ThyScrollService } from 'ngx-tethys/core';
6
+ import { fadeMotion, ThyScrollService } from 'ngx-tethys/core';
8
7
  import { ThyIcon } from 'ngx-tethys/icon';
9
8
  import * as i0 from "@angular/core";
10
9
  import * as i1 from "ngx-tethys/core";
@@ -102,12 +101,8 @@ export class ThyBackTop {
102
101
  }
103
102
  }
104
103
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyBackTop, deps: [{ token: DOCUMENT }, { token: i1.ThyScrollService }, { token: i2.Platform }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyBackTop, isStandalone: true, selector: "thy-back-top,[thyBackTop]", inputs: { thyTemplate: "thyTemplate", thyContainer: "thyContainer", thyVisibilityHeight: "thyVisibilityHeight" }, outputs: { thyClick: "thyClick", visibleChange: "visibleChange" }, host: { properties: { "class.thy-back-top-container": "this.classNames" } }, viewQueries: [{ propertyName: "backTop", first: true, predicate: ["backTop"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-back-top\" #backTop @fadeMotion *ngIf=\"visible\">\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [fadeMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyBackTop, isStandalone: true, selector: "thy-back-top,[thyBackTop]", inputs: { thyTemplate: "thyTemplate", thyContainer: "thyContainer", thyVisibilityHeight: ["thyVisibilityHeight", "thyVisibilityHeight", numberAttribute] }, outputs: { thyClick: "thyClick", visibleChange: "visibleChange" }, host: { properties: { "class.thy-back-top-container": "this.classNames" } }, viewQueries: [{ propertyName: "backTop", first: true, predicate: ["backTop"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-back-top\" #backTop @fadeMotion *ngIf=\"visible\">\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [fadeMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
106
105
  }
107
- __decorate([
108
- InputNumber(),
109
- __metadata("design:type", Object)
110
- ], ThyBackTop.prototype, "thyVisibilityHeight", void 0);
111
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyBackTop, decorators: [{
112
107
  type: Component,
113
108
  args: [{ selector: 'thy-back-top,[thyBackTop]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [fadeMotion], standalone: true, imports: [NgIf, ThyIcon, NgTemplateOutlet], template: "<div class=\"thy-back-top\" #backTop @fadeMotion *ngIf=\"visible\">\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n</div>\n" }]
@@ -122,7 +117,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
122
117
  }], thyContainer: [{
123
118
  type: Input
124
119
  }], thyVisibilityHeight: [{
125
- type: Input
120
+ type: Input,
121
+ args: [{ transform: numberAttribute }]
126
122
  }], thyClick: [{
127
123
  type: Output
128
124
  }], visibleChange: [{
@@ -131,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
131
127
  type: ViewChild,
132
128
  args: ['backTop', { static: false }]
133
129
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhY2stdG9wL2JhY2stdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iYWNrLXRvcC9iYWNrLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUNOLGlCQUFpQixFQUdqQixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUxQzs7O0dBR0c7QUFVSCxNQUFNLE9BQU8sVUFBVTtJQStCbkIsNkRBQTZEO0lBQzdELElBQ0ksT0FBTyxDQUFDLE9BQTRDO1FBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFpQkQsWUFDOEIsR0FBUSxFQUMxQixnQkFBa0MsRUFDbEMs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QVM7K0JBQ0ksMkJBQTJCLG1CQUVwQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLENBQUMsVUFBVSxDQUFDLGNBQ1osSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQzs7MEJBdURyQyxNQUFNOzJCQUFDLFFBQVE7b0pBcER5QixVQUFVO3NCQUF0RCxXQUFXO3VCQUFDLDhCQUE4QjtnQkFLbEMsV0FBVztzQkFBbkIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1rQixtQkFBbUI7c0JBQTFDLEtBQUs7Z0JBS2EsUUFBUTtzQkFBMUIsTUFBTTtnQkFLVSxhQUFhO3NCQUE3QixNQUFNO2dCQUlILE9BQU87c0JBRFYsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPdXRwdXQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgTmdab25lLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkNoYW5nZXMsXG4gICAgSW5qZWN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyB0aHJvdHRsZVRpbWUsIHRha2VVbnRpbCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRE9DVU1FTlQsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgZmFkZU1vdGlvbiwgSW5wdXROdW1iZXIsIFRoeVNjcm9sbFNlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5cbi8qKlxuICog5Zue5Yiw6aG26YOo57uE5Lu2XG4gKiBAbmFtZSB0aHktYmFjay10b3BcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYmFjay10b3AsW3RoeUJhY2tUb3BdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFjay10b3AuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgYW5pbWF0aW9uczogW2ZhZGVNb3Rpb25dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb24sIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUJhY2tUb3AgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1iYWNrLXRvcC1jb250YWluZXInKSBjbGFzc05hbWVzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieaMiemSruaYvuekuuaooeadv1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiDmjIflrprlr7nlk6rkuKogRE9NIOWFg+e0oOi/lOWbnumhtumDqFxuICAgICAqIEB0eXBlIHN0cmluZyB8IEhUTUxFbGVtZW50XG4gICAgICogQGRlZmF1bHQgd2luZG93XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29udGFpbmVyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKipcbiAgICAgKiDmu5rliqjpq5jluqbovr7liLDmraTlj4LmlbDlgLzmiY3lh7rnjrAgdGh5LWJhY2stdG9wXG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgdGh5VmlzaWJpbGl0eUhlaWdodCA9IDQwMDtcblxuICAgIC8qKlxuICAgICAqIOeCueWHu+aMiemSrueahOWbnuiwg+WHveaVsFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlDbGljazogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICog55uR5ZCs5oyJ6ZKu5pi+56S654q25oCB55qE5Zue6LCD5Ye95pWwXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogVGhlIG5hdGl2ZSBgPGRpdiBjbGFzcz1cInRoeS1iYWNrLXRvcFwiPjwvZGl2PmAgZWxlbWVudC4gKi9cbiAgICBAVmlld0NoaWxkKCdiYWNrVG9wJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgc2V0IGJhY2tUb3AoYmFja1RvcDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5iYWNrVG9wJC5uZXh0KGJhY2tUb3ApO1xuICAgIH1cblxuICAgIHB1YmxpYyB2aXNpYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc3ViamVjdCB1c2VkIHRvIHN0b3JlIHRoZSBuYXRpdmUgYDxkaXYgY2xhc3M9XCJ0aHktYmFjay10b3BcIj48L2Rpdj5gIHNpbmNlXG4gICAgICogaXQncyBsb2NhdGVkIHdpdGhpbiB0aGUgYG5nSWZgIGRpcmVjdGl2ZS4gSXQgbWlnaHQgYmUgc2V0IGFzeW5jaHJvbm91c2x5IHdoZW5ldmVyIHRoZSBjb25kaXRpb25cbiAgICAgKiBpcyBtZXQuIEhhdmluZyBzdWJqZWN0IG1ha2VzIHRoZSBjb2RlIHJlYWN0aXZlIGFuZCBjYW5jZWxsYWJsZSAoZS5nLiBldmVudCBsaXN0ZW5lcnMgd2lsbCBiZVxuICAgICAqIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCBhbmQgcmUtYWRkZWQgdGhyb3VnaCB0aGUgYHN3aXRjaE1hcGAgYmVsb3cpLlxuICAgICAqL1xuICAgIHByaXZhdGUgYmFja1RvcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBzY3JvbGxMaXN0ZW5lckRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgdGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnksXG4gICAgICAgIHByaXZhdGUgdGh5U2Nyb2xsU2VydmljZTogVGh5U2Nyb2xsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgdGhpcy5iYWNrVG9wJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGJhY2tUb3AgPT5cbiAgICAgICAgICAgICAgICAgICAgYmFja1RvcFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IGZyb21FdmVudChiYWNrVG9wLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnN1YnNjcmliZShzdWJzY3JpYmVyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBFTVBUWVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVNjcm9sbFNlcnZpY2Uuc2Nyb2xsVG8odGhpcy5nZXRUYXJnZXQoKSwgMCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGh5Q2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB6b25lLnJ1bigoKSA9PiB0aGlzLnRoeUNsaWNrLmVtaXQodHJ1ZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU2Nyb2xsRXZlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRhcmdldCgpOiBIVE1MRWxlbWVudCB8IFdpbmRvdyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhcmdldCB8fCB3aW5kb3c7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnZpc2libGUgPT09IHRoaXMudGh5U2Nyb2xsU2VydmljZS5nZXRTY3JvbGwodGhpcy5nZXRUYXJnZXQoKSkgPiB0aGlzLnRoeVZpc2liaWxpdHlIZWlnaHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmICh0aGlzLnZpc2libGVDaGFuZ2Uub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMudmlzaWJsZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTY3JvbGxFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXJEZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5nZXRUYXJnZXQoKSwgJ3Njcm9sbCcsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIC5waXBlKHRocm90dGxlVGltZSg1MCksIHRha2VVbnRpbCh0aGlzLnNjcm9sbExpc3RlbmVyRGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oYW5kbGVTY3JvbGwoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxMaXN0ZW5lckRlc3Ryb3kkLm5leHQoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0aHlDb250YWluZXIgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0aHlDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0ID0gdHlwZW9mIHRoaXMudGh5Q29udGFpbmVyID09PSAnc3RyaW5nJyA/IHRoaXMuZG9jLnF1ZXJ5U2VsZWN0b3IodGhpcy50aHlDb250YWluZXIpIDogdGhpcy50aHlDb250YWluZXI7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyU2Nyb2xsRXZlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktYmFjay10b3BcIiAjYmFja1RvcCBAZmFkZU1vdGlvbiAqbmdJZj1cInZpc2libGVcIj5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwidGh5LWJhY2stdG9wLWNvbnRlbnRcIj5cbiAgICAgIDx0aHktaWNvbiBjbGFzcz1cImJhY2stdG9wLWljb24gdGV4dC1tdXRlZCBmb250LXNpemUtbGdcIiB0aHlJY29uTmFtZT1cImFycm93LXVwXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoeVRlbXBsYXRlIHx8IGRlZmF1bHRDb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhY2stdG9wL2JhY2stdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iYWNrLXRvcC9iYWNrLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBQ04saUJBQWlCLEVBR2pCLE1BQU0sRUFDTixTQUFTLEVBQ1QsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUxQzs7O0dBR0c7QUFVSCxNQUFNLE9BQU8sVUFBVTtJQStCbkIsNkRBQTZEO0lBQzdELElBQ0ksT0FBTyxDQUFDLE9BQTRDO1FBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFpQkQsWUFDOEIsR0FBUSxFQUMxQixnQkFBa0MsRUFDbEMs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RXBCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxVQUFVLENBQUMsY0FDWixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDOzswQkF1RHJDLE1BQU07MkJBQUMsUUFBUTtvSkFwRHlCLFVBQVU7c0JBQXRELFdBQVc7dUJBQUMsOEJBQThCO2dCQUtsQyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTWlDLG1CQUFtQjtzQkFBekQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBS2xCLFFBQVE7c0JBQTFCLE1BQU07Z0JBS1UsYUFBYTtzQkFBN0IsTUFBTTtnQkFJSCxPQUFPO3NCQURWLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE5nWm9uZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25DaGFuZ2VzLFxuICAgIEluamVjdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IHRocm90dGxlVGltZSwgdGFrZVVudGlsLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBET0NVTUVOVCwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBmYWRlTW90aW9uLCBUaHlTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuXG4vKipcbiAqIOWbnuWIsOmhtumDqOe7hOS7tlxuICogQG5hbWUgdGh5LWJhY2stdG9wXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWJhY2stdG9wLFt0aHlCYWNrVG9wXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhY2stdG9wLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGFuaW1hdGlvbnM6IFtmYWRlTW90aW9uXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUaHlJY29uLCBOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlCYWNrVG9wIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktYmFjay10b3AtY29udGFpbmVyJykgY2xhc3NOYW1lcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnmjInpkq7mmL7npLrmqKHmnb9cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICog5oyH5a6a5a+55ZOq5LiqIERPTSDlhYPntKDov5Tlm57pobbpg6hcbiAgICAgKiBAdHlwZSBzdHJpbmcgfCBIVE1MRWxlbWVudFxuICAgICAqIEBkZWZhdWx0IHdpbmRvd1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvbnRhaW5lcj86IHN0cmluZyB8IEhUTUxFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICog5rua5Yqo6auY5bqm6L6+5Yiw5q2k5Y+C5pWw5YC85omN5Ye6546wIHRoeS1iYWNrLXRvcFxuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeVZpc2liaWxpdHlIZWlnaHQgPSA0MDA7XG5cbiAgICAvKipcbiAgICAgKiDngrnlh7vmjInpkq7nmoTlm57osIPlh73mlbBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5Q2xpY2s6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOebkeWQrOaMiemSruaYvuekuueKtuaAgeeahOWbnuiwg+WHveaVsFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIFRoZSBuYXRpdmUgYDxkaXYgY2xhc3M9XCJ0aHktYmFjay10b3BcIj48L2Rpdj5gIGVsZW1lbnQuICovXG4gICAgQFZpZXdDaGlsZCgnYmFja1RvcCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHNldCBiYWNrVG9wKGJhY2tUb3A6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYmFja1RvcCQubmV4dChiYWNrVG9wKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHN1YmplY3QgdXNlZCB0byBzdG9yZSB0aGUgbmF0aXZlIGA8ZGl2IGNsYXNzPVwidGh5LWJhY2stdG9wXCI+PC9kaXY+YCBzaW5jZVxuICAgICAqIGl0J3MgbG9jYXRlZCB3aXRoaW4gdGhlIGBuZ0lmYCBkaXJlY3RpdmUuIEl0IG1pZ2h0IGJlIHNldCBhc3luY2hyb25vdXNseSB3aGVuZXZlciB0aGUgY29uZGl0aW9uXG4gICAgICogaXMgbWV0LiBIYXZpbmcgc3ViamVjdCBtYWtlcyB0aGUgY29kZSByZWFjdGl2ZSBhbmQgY2FuY2VsbGFibGUgKGUuZy4gZXZlbnQgbGlzdGVuZXJzIHdpbGwgYmVcbiAgICAgKiBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgYW5kIHJlLWFkZGVkIHRocm91Z2ggdGhlIGBzd2l0Y2hNYXBgIGJlbG93KS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGJhY2tUb3AkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgc2Nyb2xsTGlzdGVuZXJEZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIHRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogYW55LFxuICAgICAgICBwcml2YXRlIHRoeVNjcm9sbFNlcnZpY2U6IFRoeVNjcm9sbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICAgKSB7XG4gICAgICAgIHRoaXMuYmFja1RvcCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChiYWNrVG9wID0+XG4gICAgICAgICAgICAgICAgICAgIGJhY2tUb3BcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBmcm9tRXZlbnQoYmFja1RvcC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRU1QVFlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlTY3JvbGxTZXJ2aWNlLnNjcm9sbFRvKHRoaXMuZ2V0VGFyZ2V0KCksIDApO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRoeUNsaWNrLm9ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgem9uZS5ydW4oKCkgPT4gdGhpcy50aHlDbGljay5lbWl0KHRydWUpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlclNjcm9sbEV2ZW50KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYXJnZXQoKTogSFRNTEVsZW1lbnQgfCBXaW5kb3cge1xuICAgICAgICByZXR1cm4gdGhpcy50YXJnZXQgfHwgd2luZG93O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52aXNpYmxlID09PSB0aGlzLnRoeVNjcm9sbFNlcnZpY2UuZ2V0U2Nyb2xsKHRoaXMuZ2V0VGFyZ2V0KCkpID4gdGhpcy50aHlWaXNpYmlsaXR5SGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAodGhpcy52aXNpYmxlQ2hhbmdlLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyU2Nyb2xsRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbExpc3RlbmVyRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmhhbmRsZVNjcm9sbCgpO1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZ2V0VGFyZ2V0KCksICdzY3JvbGwnLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAucGlwZSh0aHJvdHRsZVRpbWUoNTApLCB0YWtlVW50aWwodGhpcy5zY3JvbGxMaXN0ZW5lckRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGFuZGxlU2Nyb2xsKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXJEZXN0cm95JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5Q29udGFpbmVyIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAodGh5Q29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnRhcmdldCA9IHR5cGVvZiB0aGlzLnRoeUNvbnRhaW5lciA9PT0gJ3N0cmluZycgPyB0aGlzLmRvYy5xdWVyeVNlbGVjdG9yKHRoaXMudGh5Q29udGFpbmVyKSA6IHRoaXMudGh5Q29udGFpbmVyO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlclNjcm9sbEV2ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGh5LWJhY2stdG9wXCIgI2JhY2tUb3AgQGZhZGVNb3Rpb24gKm5nSWY9XCJ2aXNpYmxlXCI+XG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1iYWNrLXRvcC1jb250ZW50XCI+XG4gICAgICA8dGh5LWljb24gY2xhc3M9XCJiYWNrLXRvcC1pY29uIHRleHQtbXV0ZWQgZm9udC1zaXplLWxnXCIgdGh5SWNvbk5hbWU9XCJhcnJvdy11cFwiPjwvdGh5LWljb24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUZW1wbGF0ZSB8fCBkZWZhdWx0Q29udGVudFwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -1,7 +1,5 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { InputBoolean, InputNumber, isTextColor } from 'ngx-tethys/core';
3
- import { coerceBooleanProperty } from 'ngx-tethys/util';
4
- import { ChangeDetectionStrategy, Component, ElementRef, Input } from '@angular/core';
1
+ import { isTextColor } from 'ngx-tethys/core';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, Input, booleanAttribute, numberAttribute } from '@angular/core';
5
3
  import { NgIf } from '@angular/common';
6
4
  import * as i0 from "@angular/core";
7
5
  /**
@@ -112,7 +110,7 @@ export class ThyBadge {
112
110
  * @default false
113
111
  */
114
112
  set thyKeepShow(value) {
115
- this.keepShowValue = coerceBooleanProperty(value);
113
+ this.keepShowValue = value;
116
114
  if (this.initialized) {
117
115
  this.combineBadgeDisplayContent();
118
116
  }
@@ -201,33 +199,8 @@ export class ThyBadge {
201
199
  }
202
200
  }
203
201
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyBadge, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyBadge, isStandalone: true, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: "thyCount", thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: "thyMaxCount", thySize: "thySize", thyIsDot: "thyIsDot", thyIsHollow: "thyIsHollow", thyKeepShow: "thyKeepShow", thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-wrapper": "isWrapper" }, classAttribute: "thy-badge-container" }, ngImport: i0, template: "<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
202
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyBadge, isStandalone: true, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: ["thyCount", "thyCount", numberAttribute], thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thySize: "thySize", thyIsDot: ["thyIsDot", "thyIsDot", booleanAttribute], thyIsHollow: ["thyIsHollow", "thyIsHollow", booleanAttribute], thyKeepShow: ["thyKeepShow", "thyKeepShow", booleanAttribute], thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-wrapper": "isWrapper" }, classAttribute: "thy-badge-container" }, ngImport: i0, template: "<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
205
203
  }
206
- __decorate([
207
- InputNumber(),
208
- __metadata("design:type", Number),
209
- __metadata("design:paramtypes", [Number])
210
- ], ThyBadge.prototype, "thyCount", null);
211
- __decorate([
212
- InputNumber(),
213
- __metadata("design:type", Number),
214
- __metadata("design:paramtypes", [Number])
215
- ], ThyBadge.prototype, "thyMaxCount", null);
216
- __decorate([
217
- InputBoolean(),
218
- __metadata("design:type", Boolean),
219
- __metadata("design:paramtypes", [Boolean])
220
- ], ThyBadge.prototype, "thyIsDot", null);
221
- __decorate([
222
- InputBoolean(),
223
- __metadata("design:type", Boolean),
224
- __metadata("design:paramtypes", [Boolean])
225
- ], ThyBadge.prototype, "thyIsHollow", null);
226
- __decorate([
227
- InputBoolean(),
228
- __metadata("design:type", Boolean),
229
- __metadata("design:paramtypes", [Boolean])
230
- ], ThyBadge.prototype, "thyKeepShow", null);
231
204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyBadge, decorators: [{
232
205
  type: Component,
233
206
  args: [{ selector: 'thy-badge,[thyBadge]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
@@ -237,24 +210,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
237
210
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { thyType: [{
238
211
  type: Input
239
212
  }], thyCount: [{
240
- type: Input
213
+ type: Input,
214
+ args: [{ transform: numberAttribute }]
241
215
  }], thyContent: [{
242
216
  type: Input
243
217
  }], thyContext: [{
244
218
  type: Input
245
219
  }], thyMaxCount: [{
246
- type: Input
220
+ type: Input,
221
+ args: [{ transform: numberAttribute }]
247
222
  }], thySize: [{
248
223
  type: Input
249
224
  }], thyIsDot: [{
250
- type: Input
225
+ type: Input,
226
+ args: [{ transform: booleanAttribute }]
251
227
  }], thyIsHollow: [{
252
- type: Input
228
+ type: Input,
229
+ args: [{ transform: booleanAttribute }]
253
230
  }], thyKeepShow: [{
254
- type: Input
231
+ type: Input,
232
+ args: [{ transform: booleanAttribute }]
255
233
  }], thyTextColor: [{
256
234
  type: Input
257
235
  }], thyBackgroundColor: [{
258
236
  type: Input
259
237
  }] } });
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJdkM7OztHQUdHO0FBWUgsTUFBTSxPQUFPLFFBQVE7SUF3Q2pCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF2QzFDLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBSVosZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUIsV0FBVztRQUNELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFckIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFdEIsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFFNUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFvQnRCLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFHaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsV0FB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QUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDOzhHQTFQUSxRQUFRO2tHQUFSLFFBQVEseWVDdkJyQix3TkFJQSw0Q0RpQmMsSUFBSTs7QUErRGQ7SUFDQyxXQUFXLEVBQUU7Ozt3Q0FRYjtBQTZCRDtJQUNDLFdBQVcsRUFBRTs7OzJDQU9iO0FBb0JEO0lBQ0MsWUFBWSxFQUFFOzs7d0NBTWQ7QUFNRDtJQUNDLFlBQVksRUFBRTs7OzJDQU1kO0FBTUQ7SUFDQyxZQUFZLEVBQUU7OzsyQ0FNZDsyRkFoS1EsUUFBUTtrQkFYcEIsU0FBUzsrQkFDSSxzQkFBc0IsbUJBRWYsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QiwyQkFBMkIsRUFBRSxXQUFXO3FCQUMzQyxjQUNXLElBQUksV0FDUCxDQUFDLElBQUksQ0FBQzsrRUFvRFgsT0FBTztzQkFEVixLQUFLO2dCQWNGLFFBQVE7c0JBRlgsS0FBSztnQkFnQkYsVUFBVTtzQkFEYixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSztnQkFXRixXQUFXO3NCQUZkLEtBQUs7Z0JBZ0JGLE9BQU87c0JBRFYsS0FBSztnQkFlRixRQUFRO3NCQUZYLEtBQUs7Z0JBZUYsV0FBVztzQkFGZCxLQUFLO2dCQWVGLFdBQVc7c0JBRmQsS0FBSztnQkFjRixZQUFZO3NCQURmLEtBQUs7Z0JBbUJGLGtCQUFrQjtzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0Qm9vbGVhbiwgSW5wdXROdW1iZXIsIGlzVGV4dENvbG9yIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgdHlwZSBUaHlCYWRnZVNpemUgPSAnbWQnIHwgJ3NtJyB8ICdsZyc7XG5cbi8qKlxuICog5b695qCH57uE5Lu277yM5pSv5oyB57uE5Lu2YHRoeS1iYWRnZWDlkoxgdGh5QmFkZ2Vg5oyH5Luk5Lik56eN5L2/55So5pa55byPXG4gKiBAbmFtZSB0aHktYmFkZ2UsW3RoeUJhZGdlXVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1iYWRnZSxbdGh5QmFkZ2VdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktYmFkZ2UtY29udGFpbmVyJyxcbiAgICAgICAgJ1tjbGFzcy50aHktYmFkZ2Utd3JhcHBlcl0nOiAnaXNXcmFwcGVyJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QmFkZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGRpc3BsYXlDb250ZW50ID0gJyc7XG5cbiAgICBiYWRnZUNsYXNzTmFtZSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBuYXRpdmVFbGVtZW50OiBhbnk7XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICAvLyDmmK/lkKbljIXoo7nlnKjlhYPntKDkuIpcbiAgICBwcm90ZWN0ZWQgaXNXcmFwcGVyID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaXNTaG93QmFkZ2UgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBrZWVwU2hvd1ZhbHVlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgPSAnJztcblxuICAgIHByaXZhdGUgdmFsdWVIYXNCZWVuU2V0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG1heENvdW50OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIHR5cGU6IHN0cmluZztcblxuICAgIHByaXZhdGUgc2l6ZTogVGh5QmFkZ2VTaXplO1xuXG4gICAgcHJpdmF0ZSBpc0RvdDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgaXNIb2xsb3c6IGJvb2xlYW47XG5cbiAgICBwcm90ZWN0ZWQgdGV4dENvbG9yOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgYnVpbHRJblRleHRDb2xvckNsYXNzOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgc3VwQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIfnsbvlnotcbiAgICAgKiBAdHlwZSBkZWZhdWx0IHwgcHJpbWFyeSB8IGRhbmdlciB8IHdhcm5pbmcgfCBzdWNjZXNzXG4gICAgICogQGRlZmF1bHQgZGFuZ2VyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VHlwZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIflhoXlrrnmlbDlrZdcbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dE51bWJlcigpXG4gICAgc2V0IHRoeUNvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlSGFzQmVlblNldCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+WGheWuueaWh+acrFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbnRlbnQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVIYXNCZWVuU2V0ID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5YaF5a655paH5pys77yM5ZG95ZCN6ZSZ6K+v77yM6K+35L2/55SoIHRoeUNvbnRlbnRcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbnRleHQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRoeUNvbnRlbnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIfmmL7npLrnmoTmnIDlpKflgLwsIOS4jiB0aHlDb3VudCDkuIDotbfkvb/nlKgsdGh5Q291bnQg6LaF6L+H5LqGIHRoeU1heENvdW50IOiuvue9rueahOWAvOaXtu+8jOW+veagh+WGheWuueS4uiB0aHlNYXhDb3VudCtcbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dE51bWJlcigpXG4gICAgc2V0IHRoeU1heENvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5tYXhDb3VudCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VEaXNwbGF5Q29udGVudCgpO1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIfmmL7npLrnmoTlpKflsI9cbiAgICAgKiBAdHlwZSBtZCB8IHNtIHwgbGdcbiAgICAgKiBAZGVmYXVsdCBtZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVNpemUodmFsdWU6IFRoeUJhZGdlU2l6ZSkge1xuICAgICAgICB0aGlzLnNpemUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlt7Llup/lvIPvvIzlvr3moIfmmK/kuIDkuKrlrp7lv4PngrnvvIzlt7Lnu4/ooqvlup/lvINcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgc2V0IHRoeUlzRG90KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNEb3QgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5piv5LiA5Liq56m65b+D54K5XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIHNldCB0aHlJc0hvbGxvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzSG9sbG93ID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoeUNvdW50IOS4uiAwIOaXtu+8jOW8uuWItuaYvuekuuaVsOWtlyAw77yM6buY6K6k5LiN5pi+56S6XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIHNldCB0aHlLZWVwU2hvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmtlZXBTaG93VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VEaXNwbGF5Q29udGVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5b695qCH5a2X5L2T55qE6aKc6Imy77yM5pSv5oyB5YaF572u6aKc6Imy5ZKM6Ieq5a6a5LmJ6aKc6ImyICdwcmltYXJ5JyB8ICcjODdkMDY4JyB8IC4uLlxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRleHRDb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmIChpc1RleHRDb2xvcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbHRJblRleHRDb2xvckNsYXNzID0gYHRleHQtJHt2YWx1ZX1gO1xuICAgICAgICAgICAgdGhpcy50ZXh0Q29sb3IgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50ZXh0Q29sb3IgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYnVpbHRJblRleHRDb2xvckNsYXNzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lvr3moIfnmoTog4zmma/popzoibLvvIzmlK/mjIHlhoXnva7popzoibLlkozoh6rlrprkuYnpopzoibIgJ3ByaW1hcnknIHwgJyM4N2QwNjgnIHwgLi4uXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QmFja2dyb3VuZENvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlzVGV4dENvbG9yKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5idWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3MgPSBgYmctJHt2YWx1ZX1gO1xuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgbGV0IGNoaWxkTm9kZUNvdW50ID0gMDtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMuZm9yRWFjaCgobjogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChbJyNjb21tZW50J10uaW5kZXhPZihuLm5vZGVOYW1lKSA8IDApIHtcbiAgICAgICAgICAgICAgICBjaGlsZE5vZGVDb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pc1dyYXBwZXIgPSBjaGlsZE5vZGVDb3VudCA+IDA7XG5cbiAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWVIYXNCZWVuU2V0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbWJpbmVCYWRnZUNsYXNzZXMoKSB7XG4gICAgICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGNsYXNzZXMucHVzaChgdGh5LWJhZGdlLSR7dGhpcy50eXBlIHx8ICdkYW5nZXInfWApO1xuICAgICAgICBpZiAodGhpcy5zaXplKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS0ke3RoaXMuc2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0RvdCkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGB0aHktYmFkZ2UtZG90YCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0hvbGxvdykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGB0aHktYmFkZ2UtaG9sbG93YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS1jb3VudGApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYnVpbHRJblRleHRDb2xvckNsYXNzKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2godGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmJ1aWx0SW5CYWNrZ3JvdW5kQ29sb3JDbGFzcykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJhZGdlQ2xhc3NOYW1lID0gY2xhc3Nlcy5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21iaW5lQmFkZ2VEaXNwbGF5Q29udGVudCgpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCA9IHRoaXMudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLm1heENvdW50ICE9IHVuZGVmaW5lZCAmJiAodGhpcy52YWx1ZSBhcyBudW1iZXIpID4gdGhpcy5tYXhDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCA9IGAke3RoaXMubWF4Q291bnR9K2A7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMudmFsdWUgJiYgIXRoaXMua2VlcFNob3dWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dCYWRnZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dCYWRnZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNTaG93QmFkZ2VcIiBjbGFzcz1cInRoeS1iYWRnZSB7eyBiYWRnZUNsYXNzTmFtZSB9fVwiIFtzdHlsZS5jb2xvcl09XCJ0ZXh0Q29sb3JcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImJhY2tncm91bmRDb2xvclwiPlxuICA8c3Bhbj57eyBkaXNwbGF5Q29udGVudCB9fTwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSXZDOzs7R0FHRztBQVlILE1BQU0sT0FBTyxRQUFRO0lBd0NqQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkMxQyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUlaLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTVCLFdBQVc7UUFDRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRWxCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTVCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBb0J0QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBR2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFD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RSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7OEdBclBRLFFBQVE7a0dBQVIsUUFBUSx5SEE2REcsZUFBZSxtR0FxQ2YsZUFBZSwwREEyQmYsZ0JBQWdCLCtDQVloQixnQkFBZ0IsK0NBWWhCLGdCQUFnQiw4TUMzS3hDLHdOQUlBLDRDRGdCYyxJQUFJOzsyRkFFTCxRQUFRO2tCQVhwQixTQUFTOytCQUNJLHNCQUFzQixtQkFFZix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxxQkFBcUI7d0JBQzVCLDJCQUEyQixFQUFFLFdBQVc7cUJBQzNDLGNBQ1csSUFBSSxXQUNQLENBQUMsSUFBSSxDQUFDOytFQW9EWCxPQUFPO3NCQURWLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFlakMsVUFBVTtzQkFEYixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSztnQkFVRixXQUFXO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQWVqQyxPQUFPO3NCQURWLEtBQUs7Z0JBY0YsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWFsQyxXQUFXO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBYWxDLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFhbEMsWUFBWTtzQkFEZixLQUFLO2dCQW1CRixrQkFBa0I7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1RleHRDb2xvciB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIGJvb2xlYW5BdHRyaWJ1dGUsIG51bWJlckF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCB0eXBlIFRoeUJhZGdlU2l6ZSA9ICdtZCcgfCAnc20nIHwgJ2xnJztcblxuLyoqXG4gKiDlvr3moIfnu4Tku7bvvIzmlK/mjIHnu4Tku7ZgdGh5LWJhZGdlYOWSjGB0aHlCYWRnZWDmjIfku6TkuKTnp43kvb/nlKjmlrnlvI9cbiAqIEBuYW1lIHRoeS1iYWRnZSxbdGh5QmFkZ2VdXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWJhZGdlLFt0aHlCYWRnZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1iYWRnZS1jb250YWluZXInLFxuICAgICAgICAnW2NsYXNzLnRoeS1iYWRnZS13cmFwcGVyXSc6ICdpc1dyYXBwZXInXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlCYWRnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgZGlzcGxheUNvbnRlbnQgPSAnJztcblxuICAgIGJhZGdlQ2xhc3NOYW1lID0gJyc7XG5cbiAgICBwcml2YXRlIG5hdGl2ZUVsZW1lbnQ6IGFueTtcblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIC8vIOaYr+WQpuWMheijueWcqOWFg+e0oOS4ilxuICAgIHByb3RlY3RlZCBpc1dyYXBwZXIgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc1Nob3dCYWRnZSA9IHRydWU7XG5cbiAgICBwcml2YXRlIGtlZXBTaG93VmFsdWUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgdmFsdWU6IG51bWJlciB8IHN0cmluZyA9ICcnO1xuXG4gICAgcHJpdmF0ZSB2YWx1ZUhhc0JlZW5TZXQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbWF4Q291bnQ6IG51bWJlcjtcblxuICAgIHByaXZhdGUgdHlwZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBzaXplOiBUaHlCYWRnZVNpemU7XG5cbiAgICBwcml2YXRlIGlzRG90OiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBpc0hvbGxvdzogYm9vbGVhbjtcblxuICAgIHByb3RlY3RlZCB0ZXh0Q29sb3I6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBidWlsdEluVGV4dENvbG9yQ2xhc3M6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBidWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3M6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBzdXBDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+exu+Wei1xuICAgICAqIEB0eXBlIGRlZmF1bHQgfCBwcmltYXJ5IHwgZGFuZ2VyIHwgd2FybmluZyB8IHN1Y2Nlc3NcbiAgICAgKiBAZGVmYXVsdCBkYW5nZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+WGheWuueaVsOWtl1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUNvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlSGFzQmVlblNldCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+WGheWuueaWh+acrFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbnRlbnQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVIYXNCZWVuU2V0ID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5YaF5a655paH5pys77yM5ZG95ZCN6ZSZ6K+v77yM6K+35L2/55SoIHRoeUNvbnRlbnRcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbnRleHQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRoeUNvbnRlbnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIfmmL7npLrnmoTmnIDlpKflgLwsIOS4jiB0aHlDb3VudCDkuIDotbfkvb/nlKgsdGh5Q291bnQg6LaF6L+H5LqGIHRoeU1heENvdW50IOiuvue9rueahOWAvOaXtu+8jOW+veagh+WGheWuueS4uiB0aHlNYXhDb3VudCtcbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlNYXhDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWF4Q291bnQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5b695qCH5pi+56S655qE5aSn5bCPXG4gICAgICogQHR5cGUgbWQgfCBzbSB8IGxnXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBUaHlCYWRnZVNpemUpIHtcbiAgICAgICAgdGhpcy5zaXplID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5piv5LiA5Liq5a6e5b+D54K577yM5bey57uP6KKr5bqf5byDXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5SXNEb3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0RvdCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlt7Llup/lvIPvvIzlvr3moIfmmK/kuIDkuKrnqbrlv4PngrlcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlJc0hvbGxvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzSG9sbG93ID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoeUNvdW50IOS4uiAwIOaXtu+8jOW8uuWItuaYvuekuuaVsOWtlyAw77yM6buY6K6k5LiN5pi+56S6XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5S2VlcFNob3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5rZWVwU2hvd1ZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lvr3moIflrZfkvZPnmoTpopzoibLvvIzmlK/mjIHlhoXnva7popzoibLlkozoh6rlrprkuYnpopzoibIgJ3ByaW1hcnknIHwgJyM4N2QwNjgnIHwgLi4uXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGV4dENvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlzVGV4dENvbG9yKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MgPSBgdGV4dC0ke3ZhbHVlfWA7XG4gICAgICAgICAgICB0aGlzLnRleHRDb2xvciA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRleHRDb2xvciA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruW+veagh+eahOiDjOaZr+minOiJsu+8jOaUr+aMgeWGhee9ruminOiJsuWSjOiHquWumuS5ieminOiJsiAncHJpbWFyeScgfCAnIzg3ZDA2OCcgfCAuLi5cbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlCYWNrZ3JvdW5kQ29sb3IodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoaXNUZXh0Q29sb3IodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWx0SW5CYWNrZ3JvdW5kQ29sb3JDbGFzcyA9IGBiZy0ke3ZhbHVlfWA7XG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5idWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBsZXQgY2hpbGROb2RlQ291bnQgPSAwO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChuOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFsnI2NvbW1lbnQnXS5pbmRleE9mKG4ubm9kZU5hbWUpIDwgMCkge1xuICAgICAgICAgICAgICAgIGNoaWxkTm9kZUNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlzV3JhcHBlciA9IGNoaWxkTm9kZUNvdW50ID4gMDtcblxuICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZUhhc0JlZW5TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tYmluZUJhZGdlQ2xhc3NlcygpIHtcbiAgICAgICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKGB0aHktYmFkZ2UtJHt0aGlzLnR5cGUgfHwgJ2Rhbmdlcid9YCk7XG4gICAgICAgIGlmICh0aGlzLnNpemUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChgdGh5LWJhZGdlLSR7dGhpcy5zaXplfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzRG90KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS1kb3RgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSG9sbG93KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS1ob2xsb3dgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChgdGh5LWJhZGdlLWNvdW50YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCh0aGlzLmJ1aWx0SW5UZXh0Q29sb3JDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2godGhpcy5idWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYmFkZ2VDbGFzc05hbWUgPSBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gdGhpcy52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMubWF4Q291bnQgIT0gdW5kZWZpbmVkICYmICh0aGlzLnZhbHVlIGFzIG51bWJlcikgPiB0aGlzLm1heENvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gYCR7dGhpcy5tYXhDb3VudH0rYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSAmJiAhdGhpcy5rZWVwU2hvd1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0JhZGdlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0JhZGdlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc1Nob3dCYWRnZVwiIGNsYXNzPVwidGh5LWJhZGdlIHt7IGJhZGdlQ2xhc3NOYW1lIH19XCIgW3N0eWxlLmNvbG9yXT1cInRleHRDb2xvclwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYmFja2dyb3VuZENvbG9yXCI+XG4gIDxzcGFuPnt7IGRpc3BsYXlDb250ZW50IH19PC9zcGFuPlxuPC9kaXY+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -1,10 +1,7 @@
1
- import { __decorate, __metadata } from "tslib";
2
1
  import { NgClass, NgIf } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';
4
3
  import { useHostRenderer } from '@tethys/cdk/dom';
5
- import { InputBoolean } from 'ngx-tethys/core';
6
4
  import { ThyIcon } from 'ngx-tethys/icon';
7
- import { coerceBooleanProperty } from 'ngx-tethys/util';
8
5
  import * as i0 from "@angular/core";
9
6
  const sizeClassesMap = {
10
7
  lg: ['btn-icon-lg'],
@@ -61,14 +58,14 @@ export class ThyButtonIcon {
61
58
  * @default false
62
59
  */
63
60
  set thyLight(value) {
64
- this._isLighted = coerceBooleanProperty(value);
61
+ this._isLighted = value;
65
62
  }
66
63
  /**
67
64
  * 设置为选中状态
68
65
  * @default false
69
66
  */
70
67
  set thyActive(value) {
71
- this._isActive = coerceBooleanProperty(value);
68
+ this._isActive = value;
72
69
  }
73
70
  /**
74
71
  * 按钮展示类型,默认图标移上去显示主色, danger-weak 鼠标移上去显示 danger 红色
@@ -129,18 +126,8 @@ export class ThyButtonIcon {
129
126
  this.initialized = true;
130
127
  }
131
128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyButtonIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyButtonIcon, isStandalone: true, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: { thySize: "thySize", thyIcon: "thyIcon", thyButtonIcon: "thyButtonIcon", thyShape: "thyShape", thyLight: "thyLight", thyActive: "thyActive", thyTheme: "thyTheme", thyColor: "thyColor" }, host: { properties: { "class.btn": "this._isBtn", "class.btn-icon": "this._isBtnIcon", "class.btn-icon-light": "this._isLighted", "class.btn-icon-active": "this._isActive" } }, ngImport: i0, template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClasses\" *ngIf=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n</ng-template>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyButtonIcon, isStandalone: true, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: { thySize: "thySize", thyIcon: "thyIcon", thyButtonIcon: "thyButtonIcon", thyShape: "thyShape", thyLight: ["thyLight", "thyLight", booleanAttribute], thyActive: ["thyActive", "thyActive", booleanAttribute], thyTheme: "thyTheme", thyColor: "thyColor" }, host: { properties: { "class.btn": "this._isBtn", "class.btn-icon": "this._isBtnIcon", "class.btn-icon-light": "this._isLighted", "class.btn-icon-active": "this._isActive" } }, ngImport: i0, template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClasses\" *ngIf=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n</ng-template>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
133
130
  }
134
- __decorate([
135
- InputBoolean(),
136
- __metadata("design:type", Boolean),
137
- __metadata("design:paramtypes", [Boolean])
138
- ], ThyButtonIcon.prototype, "thyLight", null);
139
- __decorate([
140
- InputBoolean(),
141
- __metadata("design:type", Boolean),
142
- __metadata("design:paramtypes", [Boolean])
143
- ], ThyButtonIcon.prototype, "thyActive", null);
144
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyButtonIcon, decorators: [{
145
132
  type: Component,
146
133
  args: [{ selector: 'thy-button-icon,[thy-button-icon],[thyButtonIcon]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ThyIcon, NgClass], template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClasses\" *ngIf=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n</ng-template>\n<ng-content></ng-content>\n" }]
@@ -153,9 +140,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
153
140
  }], thyShape: [{
154
141
  type: Input
155
142
  }], thyLight: [{
156
- type: Input
143
+ type: Input,
144
+ args: [{ transform: booleanAttribute }]
157
145
  }], thyActive: [{
158
- type: Input
146
+ type: Input,
147
+ args: [{ transform: booleanAttribute }]
159
148
  }], thyTheme: [{
160
149
  type: Input
161
150
  }], _isBtn: [{
@@ -173,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
173
162
  }], thyColor: [{
174
163
  type: Input
175
164
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1dHRvbi9idXR0b24taWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvYnV0dG9uL2J1dHRvbi1pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJeEQsTUFBTSxjQUFjLEdBQUc7SUFDbkIsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ25CLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUNuQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDbkIsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDO0NBQ3RCLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRztJQUNwQixlQUFlLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUM7SUFDckQsY0FBYyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDO0lBQ25ELHFCQUFxQixFQUFFLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQztJQUMzRSxvQkFBb0IsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUM7SUFDekUsV0FBVyxFQUFF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VixLQUFLO2dCQVVGLE9BQU87c0JBRFYsS0FBSztnQkFTRixhQUFhO3NCQURoQixLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFZRixRQUFRO3NCQUZYLEtBQUs7Z0JBWUYsU0FBUztzQkFGWixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkEwQm9CLE1BQU07c0JBQS9CLFdBQVc7dUJBQUMsV0FBVztnQkFDTyxVQUFVO3NCQUF4QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDUSxVQUFVO3NCQUE5QyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFDRyxTQUFTO3NCQUE5QyxXQUFXO3VCQUFDLHVCQUF1QjtnQkFFM0IsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuZXhwb3J0IHR5cGUgVGh5QnV0dG9uSWNvblNoYXBlID0gJycgfCAnY2lyY2xlLWRhc2hlZCcgfCAnY2lyY2xlLXNvbGlkJyB8ICdjaXJjbGUtdGhpY2stZGFzaGVkJyB8ICdjaXJjbGUtdGhpY2stc29saWQnIHwgJ3NlbGYtaWNvbic7XG5cbmNvbnN0IHNpemVDbGFzc2VzTWFwID0ge1xuICAgIGxnOiBbJ2J0bi1pY29uLWxnJ10sXG4gICAgbWQ6IFsnYnRuLWljb24tbWQnXSxcbiAgICBzbTogWydidG4taWNvbi1zbSddLFxuICAgIHhzOiBbJ2J0bi1pY29uLXhzJ11cbn07XG5cbmNvbnN0IHNoYXBlQ2xhc3Nlc01hcCA9IHtcbiAgICAnY2lyY2xlLWRhc2hlZCc6IFsnYnRuLWljb24tY2lyY2xlJywgJ2NpcmNsZS1kYXNoZWQnXSxcbiAgICAnY2lyY2xlLXNvbGlkJzogWydidG4taWNvbi1jaXJjbGUnLCAnY2lyY2xlLXNvbGlkJ10sXG4gICAgJ2NpcmNsZS10aGljay1kYXNoZWQnOiBbJ2J0bi1pY29uLWNpcmNsZScsICdjaXJjbGUtZGFzaGVkJywgJ2JvcmRlci10aGljayddLFxuICAgICdjaXJjbGUtdGhpY2stc29saWQnOiBbJ2J0bi1pY29uLWNpcmNsZScsICdjaXJjbGUtc29saWQnLCAnYm9yZGVyLXRoaWNrJ10sXG4gICAgJ3NlbGYtaWNvbic6IFsnYnRuLWljb24tc2VsZi1jaXJjbGUnXVxufTtcblxuY29uc3QgdGhlbWVDbGFzc2VzTWFwOiBhbnkgPSB7XG4gICAgJ2Rhbmdlci13ZWFrJzogWydidG4taWNvbi1kYW5nZXItd2VhayddXG59O1xuXG4vKipcbiAqIOaTjeS9nOaMiemSruWbvuagh++8jOaUr+aMgWB0aHktYnV0dG9uLWljb25g57uE5Lu25ZKMYHRoeUJ1dHRvbkljb25g5oyH5Luk5Lik56eN5b2i5byPXG4gKiBAbmFtZSB0aHktYnV0dG9uLWljb24sW3RoeS1idXR0b24taWNvbl0sW3RoeUJ1dHRvbkljb25dXG4gKiBAb3JkZXIgMjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYnV0dG9uLWljb24sW3RoeS1idXR0b24taWNvbl0sW3RoeUJ1dHRvbkljb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLWljb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbiwgTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgVGh5QnV0dG9uSWNvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGdcbiAgICAgKiBAZGVmYXVsdCAzNnB4XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZShzaXplOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Zu+5qCHLCDlkoxgdGh5QnV0dG9uSWNvbmDnm7jlkIzvvIzlvZPkvb/nlKhgdGh5LWJ1dHRvbi1pY29uYOaXtu+8jOWPquiDveS9v+eUqCB0aHlJY29uIOiuvue9ruWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0SWNvbkNsYXNzKGljb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWbvuagh+aMiemSrueahOWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUJ1dHRvbkljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0SWNvbkNsYXNzKGljb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWxleekuueahOW9oueKtu+8jOm7mOiupOWPquaYvuekuuWtl+S9k+Wbvuagh+Wbvuagh++8jGNpcmNsZS1kYXNoZWQsIGNpcmNsZS1zb2xpZCDlsZXnpLrmiJDomZrnur8s5a6e57q/6L655qGG5ZyG5b2i5Zu+5qCHLCBjaXJjbGUtdGhpY2stZGFzaGVkLCBjaXJjbGUtdGhpY2stc29saWQg6L655qGG5Yqg57KXXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2hhcGUodmFsdWU6IFRoeUJ1dHRvbkljb25TaGFwZSkge1xuICAgICAgICB0aGlzLnNoYXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS6ruiJsu+8jOminOiJsuabtOa1he+8jOmAguWQiOW3puS+p+WvvOiIqumhtumDqOeahOaMiemSrlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICBzZXQgdGh5TGlnaHQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNMaWdodGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7kuLrpgInkuK3nirbmgIFcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgc2V0IHRoeUFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0FjdGl2ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKu5bGV56S657G75Z6L77yM6buY6K6k5Zu+5qCH56e75LiK5Y675pi+56S65Li76Imy77yMIGRhbmdlci13ZWFrIOm8oOagh+enu+S4iuWOu+aYvuekuiBkYW5nZXIg57qi6ImyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGhlbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRoZW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc2hhcGU6IFRoeUJ1dHRvbkljb25TaGFwZTtcblxuICAgIHByaXZhdGUgc2l6ZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIGljb25QcmVmaXggPSAnd3RmJztcblxuICAgIGljb25DbGFzc2VzOiBzdHJpbmdbXTtcblxuICAgIGljb246IHN0cmluZztcblxuICAgIHRoZW1lOiBzdHJpbmc7XG5cbiAgICBzdmdJY29uTmFtZTogc3RyaW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5idG4nKSBfaXNCdG4gPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYnRuLWljb24nKSBfaXNCdG5JY29uID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ0bi1pY29uLWxpZ2h0JykgX2lzTGlnaHRlZCA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYnRuLWljb24tYWN0aXZlJykgX2lzQWN0aXZlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSB0aHlDb2xvcjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBzZXRJY29uQ2xhc3MoaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIGlmIChpY29uKSB7XG4gICAgICAgICAgICBpZiAoaWNvbi5pbmNsdWRlcygnd3RmJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc2VzID0gaWNvbi5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGlmIChjbGFzc2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLnVuc2hpZnQoJ3d0ZicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmljb25DbGFzc2VzID0gY2xhc3NlcztcbiAgICAgICAgICAgICAgICB0aGlzLnN2Z0ljb25OYW1lID0gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdmdJY29uTmFtZSA9IGljb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmljb25DbGFzc2VzID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuc3ZnSWNvbk5hbWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDbGFzc2VzKGZpcnN0ID0gZmFsc2UpIHtcbiAgICAgICAgLy8g6K6+572u5qC35byP5Yik5pat5piv5ZCm5bey57uP5Yid5aeL5YyW77yM5pyq5Yid5aeL5YyW55u05o6l6L+U5Zue77yM6Zmk6Z2e5piv5Yid5qyh6LCD55SoXG4gICAgICAgIC8vIOWPquaciSBuZ09uSW5pdCDosIPnlKjkvJrkvKDlhaUgZmlyc3QgPSB0cnVlXG4gICAgICAgIGlmICghZmlyc3QgJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbGFzc2VzID0gc2l6ZUNsYXNzZXNNYXBbdGhpcy5zaXplXSA/IFsuLi5zaXplQ2xhc3Nlc01hcFt0aGlzLnNpemVdXSA6IFtdO1xuICAgICAgICBpZiAodGhpcy5zaGFwZSAmJiBzaGFwZUNsYXNzZXNNYXBbdGhpcy5zaGFwZV0pIHtcbiAgICAgICAgICAgIHNoYXBlQ2xhc3Nlc01hcFt0aGlzLnNoYXBlXS5mb3JFYWNoKChjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaChjbGFzc05hbWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGhlbWUgJiYgdGhlbWVDbGFzc2VzTWFwW3RoaXMudGhlbWVdKSB7XG4gICAgICAgICAgICB0aGVtZUNsYXNzZXNNYXBbdGhpcy50aGVtZV0uZm9yRWFjaCgoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKGNsYXNzZXMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldENsYXNzZXModHJ1ZSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbn1cbiIsIjx0aHktaWNvbiAqbmdJZj1cInN2Z0ljb25OYW1lOyBlbHNlIGljb25Gb250XCIgW3RoeUljb25OYW1lXT1cInN2Z0ljb25OYW1lXCIgW3N0eWxlLmNvbG9yXT1cInRoeUNvbG9yXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cInRoeUNvbG9yXCI+PC90aHktaWNvbj5cbjxuZy10ZW1wbGF0ZSAjaWNvbkZvbnQ+XG4gIDxpIFtuZ0NsYXNzXT1cImljb25DbGFzc2VzXCIgKm5nSWY9XCJpY29uQ2xhc3Nlc1wiIFtzdHlsZS5jb2xvcl09XCJ0aHlDb2xvclwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJ0aHlDb2xvclwiPjwvaT5cbjwvbmctdGVtcGxhdGU+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1dHRvbi9idXR0b24taWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvYnV0dG9uL2J1dHRvbi1pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSTFDLE1BQU0sY0FBYyxHQUFHO0lBQ25CLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUNuQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDbkIsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ25CLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztDQUN0QixDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUc7SUFDcEIsZUFBZSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDO0lBQ3JELGNBQWMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQztJQUNuRCxxQkFBcUIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUM7SUFDM0Usb0JBQW9CLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDO0lBQ3pFLFdBQVcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0NBQ3hDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBUTtJQUN6QixhQUFhLEVBQUUsQ0FBQyxzQkFBc0Is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c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTbEMsUUFBUTtzQkFEWCxLQUFLO2dCQTBCb0IsTUFBTTtzQkFBL0IsV0FBVzt1QkFBQyxXQUFXO2dCQUNPLFVBQVU7c0JBQXhDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNRLFVBQVU7c0JBQTlDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUNHLFNBQVM7c0JBQTlDLFdBQVc7dUJBQUMsdUJBQXVCO2dCQUUzQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24sIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcblxuZXhwb3J0IHR5cGUgVGh5QnV0dG9uSWNvblNoYXBlID0gJycgfCAnY2lyY2xlLWRhc2hlZCcgfCAnY2lyY2xlLXNvbGlkJyB8ICdjaXJjbGUtdGhpY2stZGFzaGVkJyB8ICdjaXJjbGUtdGhpY2stc29saWQnIHwgJ3NlbGYtaWNvbic7XG5cbmNvbnN0IHNpemVDbGFzc2VzTWFwID0ge1xuICAgIGxnOiBbJ2J0bi1pY29uLWxnJ10sXG4gICAgbWQ6IFsnYnRuLWljb24tbWQnXSxcbiAgICBzbTogWydidG4taWNvbi1zbSddLFxuICAgIHhzOiBbJ2J0bi1pY29uLXhzJ11cbn07XG5cbmNvbnN0IHNoYXBlQ2xhc3Nlc01hcCA9IHtcbiAgICAnY2lyY2xlLWRhc2hlZCc6IFsnYnRuLWljb24tY2lyY2xlJywgJ2NpcmNsZS1kYXNoZWQnXSxcbiAgICAnY2lyY2xlLXNvbGlkJzogWydidG4taWNvbi1jaXJjbGUnLCAnY2lyY2xlLXNvbGlkJ10sXG4gICAgJ2NpcmNsZS10aGljay1kYXNoZWQnOiBbJ2J0bi1pY29uLWNpcmNsZScsICdjaXJjbGUtZGFzaGVkJywgJ2JvcmRlci10aGljayddLFxuICAgICdjaXJjbGUtdGhpY2stc29saWQnOiBbJ2J0bi1pY29uLWNpcmNsZScsICdjaXJjbGUtc29saWQnLCAnYm9yZGVyLXRoaWNrJ10sXG4gICAgJ3NlbGYtaWNvbic6IFsnYnRuLWljb24tc2VsZi1jaXJjbGUnXVxufTtcblxuY29uc3QgdGhlbWVDbGFzc2VzTWFwOiBhbnkgPSB7XG4gICAgJ2Rhbmdlci13ZWFrJzogWydidG4taWNvbi1kYW5nZXItd2VhayddXG59O1xuXG4vKipcbiAqIOaTjeS9nOaMiemSruWbvuagh++8jOaUr+aMgWB0aHktYnV0dG9uLWljb25g57uE5Lu25ZKMYHRoeUJ1dHRvbkljb25g5oyH5Luk5Lik56eN5b2i5byPXG4gKiBAbmFtZSB0aHktYnV0dG9uLWljb24sW3RoeS1idXR0b24taWNvbl0sW3RoeUJ1dHRvbkljb25dXG4gKiBAb3JkZXIgMjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYnV0dG9uLWljb24sW3RoeS1idXR0b24taWNvbl0sW3RoeUJ1dHRvbkljb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLWljb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbiwgTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgVGh5QnV0dG9uSWNvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGdcbiAgICAgKiBAZGVmYXVsdCAzNnB4XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZShzaXplOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Zu+5qCHLCDlkoxgdGh5QnV0dG9uSWNvbmDnm7jlkIzvvIzlvZPkvb/nlKhgdGh5LWJ1dHRvbi1pY29uYOaXtu+8jOWPquiDveS9v+eUqCB0aHlJY29uIOiuvue9ruWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0SWNvbkNsYXNzKGljb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWbvuagh+aMiemSrueahOWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUJ1dHRvbkljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0SWNvbkNsYXNzKGljb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWxleekuueahOW9oueKtu+8jOm7mOiupOWPquaYvuekuuWtl+S9k+Wbvuagh+Wbvuagh++8jGNpcmNsZS1kYXNoZWQsIGNpcmNsZS1zb2xpZCDlsZXnpLrmiJDomZrnur8s5a6e57q/6L655qGG5ZyG5b2i5Zu+5qCHLCBjaXJjbGUtdGhpY2stZGFzaGVkLCBjaXJjbGUtdGhpY2stc29saWQg6L655qGG5Yqg57KXXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2hhcGUodmFsdWU6IFRoeUJ1dHRvbkljb25TaGFwZSkge1xuICAgICAgICB0aGlzLnNoYXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS6ruiJsu+8jOminOiJsuabtOa1he+8jOmAguWQiOW3puS+p+WvvOiIqumhtumDqOeahOaMiemSrlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUxpZ2h0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzTGlnaHRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruS4uumAieS4reeKtuaAgVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0FjdGl2ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaMiemSruWxleekuuexu+Wei++8jOm7mOiupOWbvuagh+enu+S4iuWOu+aYvuekuuS4u+iJsu+8jCBkYW5nZXItd2VhayDpvKDmoIfnp7vkuIrljrvmmL7npLogZGFuZ2VyIOe6ouiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRoZW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50aGVtZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldENsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHNoYXBlOiBUaHlCdXR0b25JY29uU2hhcGU7XG5cbiAgICBwcml2YXRlIHNpemU6IHN0cmluZztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBpY29uUHJlZml4ID0gJ3d0Zic7XG5cbiAgICBpY29uQ2xhc3Nlczogc3RyaW5nW107XG5cbiAgICBpY29uOiBzdHJpbmc7XG5cbiAgICB0aGVtZTogc3RyaW5nO1xuXG4gICAgc3ZnSWNvbk5hbWU6IHN0cmluZztcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYnRuJykgX2lzQnRuID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ0bi1pY29uJykgX2lzQnRuSWNvbiA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5idG4taWNvbi1saWdodCcpIF9pc0xpZ2h0ZWQgPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ0bi1pY29uLWFjdGl2ZScpIF9pc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGh5Q29sb3I6IHN0cmluZztcblxuICAgIHByaXZhdGUgc2V0SWNvbkNsYXNzKGljb246IHN0cmluZykge1xuICAgICAgICBpZiAoaWNvbikge1xuICAgICAgICAgICAgaWYgKGljb24uaW5jbHVkZXMoJ3d0ZicpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xhc3NlcyA9IGljb24uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAoY2xhc3Nlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy51bnNoaWZ0KCd3dGYnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pY29uQ2xhc3NlcyA9IGNsYXNzZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5zdmdJY29uTmFtZSA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ZnSWNvbk5hbWUgPSBpY29uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pY29uQ2xhc3NlcyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnN2Z0ljb25OYW1lID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2xhc3NlcyhmaXJzdCA9IGZhbHNlKSB7XG4gICAgICAgIC8vIOiuvue9ruagt+W8j+WIpOaWreaYr+WQpuW3sue7j+WIneWni+WMlu+8jOacquWIneWni+WMluebtOaOpei/lOWbnu+8jOmZpOmdnuaYr+WIneasoeiwg+eUqFxuICAgICAgICAvLyDlj6rmnIkgbmdPbkluaXQg6LCD55So5Lya5Lyg5YWlIGZpcnN0ID0gdHJ1ZVxuICAgICAgICBpZiAoIWZpcnN0ICYmICF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IHNpemVDbGFzc2VzTWFwW3RoaXMuc2l6ZV0gPyBbLi4uc2l6ZUNsYXNzZXNNYXBbdGhpcy5zaXplXV0gOiBbXTtcbiAgICAgICAgaWYgKHRoaXMuc2hhcGUgJiYgc2hhcGVDbGFzc2VzTWFwW3RoaXMuc2hhcGVdKSB7XG4gICAgICAgICAgICBzaGFwZUNsYXNzZXNNYXBbdGhpcy5zaGFwZV0uZm9yRWFjaCgoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoZW1lICYmIHRoZW1lQ2xhc3Nlc01hcFt0aGlzLnRoZW1lXSkge1xuICAgICAgICAgICAgdGhlbWVDbGFzc2VzTWFwW3RoaXMudGhlbWVdLmZvckVhY2goKGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc2VzKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKHRydWUpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG59XG4iLCI8dGh5LWljb24gKm5nSWY9XCJzdmdJY29uTmFtZTsgZWxzZSBpY29uRm9udFwiIFt0aHlJY29uTmFtZV09XCJzdmdJY29uTmFtZVwiIFtzdHlsZS5jb2xvcl09XCJ0aHlDb2xvclwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJ0aHlDb2xvclwiPjwvdGh5LWljb24+XG48bmctdGVtcGxhdGUgI2ljb25Gb250PlxuICA8aSBbbmdDbGFzc109XCJpY29uQ2xhc3Nlc1wiICpuZ0lmPVwiaWNvbkNsYXNzZXNcIiBbc3R5bGUuY29sb3JdPVwidGh5Q29sb3JcIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwidGh5Q29sb3JcIj48L2k+XG48L25nLXRlbXBsYXRlPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19