ngx-tethys 18.0.8 → 18.1.0-next.1

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 (607) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/action/action.component.d.ts +1 -2
  3. package/affix/affix.component.d.ts +2 -4
  4. package/alert/alert.component.d.ts +11 -19
  5. package/anchor/anchor-link.component.d.ts +2 -4
  6. package/anchor/anchor.component.d.ts +2 -7
  7. package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
  8. package/autocomplete/autocomplete.component.d.ts +1 -2
  9. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
  10. package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
  11. package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
  12. package/avatar/avatar.component.d.ts +1 -3
  13. package/avatar/avatar.pipe.d.ts +0 -2
  14. package/back-top/back-top.component.d.ts +2 -4
  15. package/badge/badge.component.d.ts +2 -2
  16. package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
  17. package/breadcrumb/breadcrumb.component.d.ts +1 -2
  18. package/button/button.component.d.ts +1 -2
  19. package/calendar/calendar-header.component.d.ts +1 -2
  20. package/calendar/calendar.component.d.ts +1 -2
  21. package/carousel/carousel-item.directive.d.ts +1 -2
  22. package/carousel/carousel.component.d.ts +1 -4
  23. package/carousel/carousel.service.d.ts +1 -2
  24. package/cascader/cascader.component.d.ts +4 -4
  25. package/checkbox/checkbox.component.d.ts +0 -2
  26. package/collapse/collapse-item.component.d.ts +2 -4
  27. package/color-picker/color-picker-panel.component.d.ts +2 -3
  28. package/color-picker/color-picker.component.d.ts +2 -4
  29. package/color-picker/coordinates.directive.d.ts +1 -2
  30. package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
  31. package/color-picker/parts/hue/hue.component.d.ts +1 -2
  32. package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
  33. package/copy/copy.directive.d.ts +0 -2
  34. package/core/click-positioner.d.ts +0 -2
  35. package/core/scroll.d.ts +1 -2
  36. package/core/update-host-class.service.d.ts +1 -2
  37. package/date-picker/abstract-picker.component.d.ts +1 -1
  38. package/date-picker/abstract-picker.directive.d.ts +2 -3
  39. package/date-picker/base-picker.component.d.ts +2 -3
  40. package/date-picker/date-picker.component.d.ts +2 -2
  41. package/date-picker/date-picker.directive.d.ts +1 -3
  42. package/date-picker/date-picker.service.d.ts +2 -2
  43. package/date-picker/index.d.ts +26 -27
  44. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
  45. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
  46. package/date-picker/lib/date/date-header.component.d.ts +0 -3
  47. package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
  48. package/date-picker/lib/date/date-table.component.d.ts +1 -3
  49. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
  50. package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
  51. package/date-picker/lib/month/month-header.component.d.ts +0 -3
  52. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  53. package/date-picker/lib/popups/date-popup.component.d.ts +1 -4
  54. package/date-picker/lib/popups/inner-popup.component.d.ts +0 -2
  55. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
  56. package/date-picker/lib/year/year-header.component.d.ts +0 -1
  57. package/date-picker/month-picker.component.d.ts +2 -2
  58. package/date-picker/picker.component.d.ts +1 -3
  59. package/date-picker/picker.pipes.d.ts +0 -3
  60. package/date-picker/quarter-picker.component.d.ts +2 -2
  61. package/date-picker/range-picker.component.d.ts +2 -2
  62. package/date-picker/range-picker.directive.d.ts +2 -3
  63. package/date-picker/week-picker.component.d.ts +2 -2
  64. package/date-picker/year-picker.component.d.ts +2 -2
  65. package/date-range/date-range.component.d.ts +3 -11
  66. package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
  67. package/dialog/body/dialog-body.component.d.ts +0 -2
  68. package/dialog/confirm/confirm.component.d.ts +2 -3
  69. package/dialog/dialog-container.component.d.ts +4 -5
  70. package/dialog/dialog.service.d.ts +4 -4
  71. package/dialog/footer/dialog-footer.component.d.ts +2 -2
  72. package/dialog/header/dialog-header.component.d.ts +2 -6
  73. package/divider/divider.component.d.ts +8 -2
  74. package/dot/dot.component.d.ts +1 -2
  75. package/drag-drop/drag-content.directive.d.ts +2 -3
  76. package/drag-drop/drag-handle.directive.d.ts +2 -3
  77. package/drag-drop/drag.directive.d.ts +4 -5
  78. package/drag-drop/drop-container.directive.d.ts +6 -3
  79. package/dropdown/dropdown-active.directive.d.ts +3 -4
  80. package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
  81. package/dropdown/dropdown-submenu.component.d.ts +1 -3
  82. package/dropdown/dropdown.directive.d.ts +3 -5
  83. package/empty/empty.component.d.ts +6 -6
  84. package/esm2022/action/action.component.mjs +20 -21
  85. package/esm2022/affix/affix.component.mjs +11 -14
  86. package/esm2022/alert/alert.component.mjs +55 -81
  87. package/esm2022/anchor/anchor-link.component.mjs +23 -16
  88. package/esm2022/anchor/anchor.component.mjs +27 -24
  89. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +25 -26
  90. package/esm2022/autocomplete/autocomplete.component.mjs +11 -11
  91. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
  92. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
  93. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
  94. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
  95. package/esm2022/avatar/avatar.component.mjs +27 -28
  96. package/esm2022/avatar/avatar.pipe.mjs +6 -7
  97. package/esm2022/back-top/back-top.component.mjs +14 -18
  98. package/esm2022/badge/badge.component.mjs +8 -9
  99. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  100. package/esm2022/breadcrumb/breadcrumb.component.mjs +15 -17
  101. package/esm2022/button/button-icon.component.mjs +4 -4
  102. package/esm2022/button/button.component.mjs +15 -15
  103. package/esm2022/calendar/calendar-header.component.mjs +15 -15
  104. package/esm2022/calendar/calendar.component.mjs +14 -15
  105. package/esm2022/card/header.component.mjs +4 -4
  106. package/esm2022/carousel/carousel-item.directive.mjs +7 -6
  107. package/esm2022/carousel/carousel.component.mjs +13 -15
  108. package/esm2022/carousel/carousel.service.mjs +7 -9
  109. package/esm2022/cascader/cascader-li.component.mjs +4 -4
  110. package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
  111. package/esm2022/cascader/cascader.component.mjs +15 -22
  112. package/esm2022/checkbox/checkbox.component.mjs +11 -13
  113. package/esm2022/collapse/collapse-item.component.mjs +21 -24
  114. package/esm2022/color-picker/color-picker-panel.component.mjs +14 -15
  115. package/esm2022/color-picker/color-picker.component.mjs +10 -11
  116. package/esm2022/color-picker/coordinates.directive.mjs +10 -10
  117. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
  118. package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
  119. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
  120. package/esm2022/comment/comment.component.mjs +4 -4
  121. package/esm2022/copy/copy.directive.mjs +8 -12
  122. package/esm2022/core/click-positioner.mjs +6 -7
  123. package/esm2022/core/scroll.mjs +7 -9
  124. package/esm2022/core/store/store.mjs +1 -1
  125. package/esm2022/core/update-host-class.service.mjs +6 -6
  126. package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
  127. package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
  128. package/esm2022/date-picker/base-picker.component.mjs +26 -26
  129. package/esm2022/date-picker/date-picker.component.mjs +10 -11
  130. package/esm2022/date-picker/date-picker.directive.mjs +6 -8
  131. package/esm2022/date-picker/date-picker.service.mjs +6 -10
  132. package/esm2022/date-picker/index.mjs +27 -28
  133. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +7 -8
  134. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
  135. package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -12
  136. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
  137. package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -12
  138. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +16 -16
  139. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +8 -11
  140. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
  141. package/esm2022/date-picker/lib/month/month-header.component.mjs +6 -12
  142. package/esm2022/date-picker/lib/month/month-table.component.mjs +9 -10
  143. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +14 -29
  144. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +14 -20
  145. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +9 -10
  146. package/esm2022/date-picker/lib/year/year-header.component.mjs +6 -12
  147. package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
  148. package/esm2022/date-picker/month-picker.component.mjs +9 -11
  149. package/esm2022/date-picker/picker.component.mjs +24 -35
  150. package/esm2022/date-picker/picker.pipes.mjs +10 -11
  151. package/esm2022/date-picker/quarter-picker.component.mjs +9 -11
  152. package/esm2022/date-picker/range-picker.component.mjs +9 -11
  153. package/esm2022/date-picker/range-picker.directive.mjs +6 -8
  154. package/esm2022/date-picker/week-picker.component.mjs +9 -11
  155. package/esm2022/date-picker/year-picker.component.mjs +9 -11
  156. package/esm2022/date-range/date-range.component.mjs +17 -18
  157. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +9 -13
  158. package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
  159. package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
  160. package/esm2022/dialog/dialog-container.component.mjs +13 -18
  161. package/esm2022/dialog/dialog.service.mjs +10 -17
  162. package/esm2022/dialog/footer/dialog-footer.component.mjs +10 -14
  163. package/esm2022/dialog/header/dialog-header.component.mjs +17 -22
  164. package/esm2022/divider/divider.component.mjs +21 -13
  165. package/esm2022/dot/dot.component.mjs +7 -7
  166. package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
  167. package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
  168. package/esm2022/drag-drop/drag.directive.mjs +13 -16
  169. package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
  170. package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
  171. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
  172. package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
  173. package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
  174. package/esm2022/dropdown/dropdown.directive.mjs +12 -10
  175. package/esm2022/empty/empty.component.mjs +17 -20
  176. package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
  177. package/esm2022/form/form-group-error/form-group-error.component.mjs +12 -15
  178. package/esm2022/form/form-group-label.directive.mjs +9 -10
  179. package/esm2022/form/form-group.component.mjs +18 -22
  180. package/esm2022/form/form-submit.directive.mjs +6 -7
  181. package/esm2022/form/form-validator-loader.mjs +1 -1
  182. package/esm2022/form/form-validator.service.mjs +12 -13
  183. package/esm2022/form/form.directive.mjs +11 -16
  184. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +13 -19
  185. package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
  186. package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
  187. package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
  188. package/esm2022/grid/thy-col.directive.mjs +9 -14
  189. package/esm2022/grid/thy-grid-item.component.mjs +8 -14
  190. package/esm2022/grid/thy-grid.component.mjs +7 -8
  191. package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
  192. package/esm2022/guider/guider.directive.mjs +8 -9
  193. package/esm2022/guider/guider.service.mjs +12 -19
  194. package/esm2022/icon/icon-registry.mjs +11 -16
  195. package/esm2022/icon/icon.component.mjs +8 -9
  196. package/esm2022/image/image-group.component.mjs +7 -7
  197. package/esm2022/image/image.directive.mjs +11 -12
  198. package/esm2022/image/image.service.mjs +8 -14
  199. package/esm2022/image/preview/image-preview.component.mjs +36 -41
  200. package/esm2022/input/input-count.component.mjs +7 -10
  201. package/esm2022/input/input-group.component.mjs +15 -16
  202. package/esm2022/input/input-search.component.mjs +9 -10
  203. package/esm2022/input/input.component.mjs +17 -17
  204. package/esm2022/input/input.directive.mjs +12 -17
  205. package/esm2022/input-number/input-number.component.mjs +6 -6
  206. package/esm2022/layout/header.component.mjs +4 -4
  207. package/esm2022/layout/sidebar-header.component.mjs +4 -4
  208. package/esm2022/layout/sidebar.component.mjs +125 -121
  209. package/esm2022/list/list-item-meta.component.mjs +4 -4
  210. package/esm2022/list/selection/selection-list.mjs +25 -25
  211. package/esm2022/loading/loading.component.mjs +10 -11
  212. package/esm2022/mention/mention.directive.mjs +9 -14
  213. package/esm2022/mention/suggestions/suggestions.component.mjs +11 -12
  214. package/esm2022/menu/group/menu-group.component.mjs +37 -38
  215. package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
  216. package/esm2022/menu/item/menu-item.component.mjs +8 -9
  217. package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
  218. package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
  219. package/esm2022/message/message-container.component.mjs +21 -15
  220. package/esm2022/message/message-queue.service.mjs +6 -8
  221. package/esm2022/message/message.component.mjs +9 -10
  222. package/esm2022/message/message.service.mjs +10 -11
  223. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
  224. package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
  225. package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
  226. package/esm2022/nav/nav-item.directive.mjs +8 -11
  227. package/esm2022/nav/nav.component.mjs +35 -38
  228. package/esm2022/nav/nav.pipe.mjs +6 -7
  229. package/esm2022/notify/notify-container.component.mjs +11 -14
  230. package/esm2022/notify/notify-queue.service.mjs +6 -8
  231. package/esm2022/notify/notify.component.mjs +10 -10
  232. package/esm2022/notify/notify.service.mjs +11 -12
  233. package/esm2022/pagination/pagination.component.mjs +41 -46
  234. package/esm2022/pagination/pagination.pipe.mjs +6 -7
  235. package/esm2022/popover/header/popover-header.component.mjs +15 -17
  236. package/esm2022/popover/popover-container.component.mjs +11 -13
  237. package/esm2022/popover/popover.directive.mjs +13 -12
  238. package/esm2022/popover/popover.service.mjs +14 -26
  239. package/esm2022/progress/progress-circle.component.mjs +4 -7
  240. package/esm2022/progress/progress-strip.component.mjs +10 -13
  241. package/esm2022/progress/progress.component.mjs +5 -8
  242. package/esm2022/property/property-item.component.mjs +13 -16
  243. package/esm2022/property-operation/property-operation.component.mjs +27 -28
  244. package/esm2022/radio/button/radio-button.component.mjs +9 -15
  245. package/esm2022/radio/group/radio-group.component.mjs +17 -17
  246. package/esm2022/radio/radio.component.mjs +12 -18
  247. package/esm2022/rate/rate.component.mjs +10 -10
  248. package/esm2022/resizable/resizable.directive.mjs +10 -12
  249. package/esm2022/resizable/resizable.service.mjs +7 -9
  250. package/esm2022/resizable/resize-handle.component.mjs +16 -14
  251. package/esm2022/resizable/resize-handles.component.mjs +12 -5
  252. package/esm2022/result/result.component.mjs +4 -4
  253. package/esm2022/segment/segment-item.component.mjs +15 -18
  254. package/esm2022/segment/segment.component.mjs +29 -30
  255. package/esm2022/select/custom-select/custom-select.component.mjs +19 -35
  256. package/esm2022/select/native-select/native-select.component.mjs +10 -11
  257. package/esm2022/shared/base-form-check.component.mjs +7 -8
  258. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
  259. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
  260. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
  261. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
  262. package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
  263. package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
  264. package/esm2022/shared/directives/thy-show.mjs +11 -11
  265. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
  266. package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
  267. package/esm2022/shared/ng-transclude.directive.mjs +6 -5
  268. package/esm2022/shared/option/group/option-group.component.mjs +10 -10
  269. package/esm2022/shared/option/list-option/list-option.component.mjs +14 -22
  270. package/esm2022/shared/option/option.component.mjs +11 -22
  271. package/esm2022/shared/select/select-control/select-control.component.mjs +27 -27
  272. package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
  273. package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
  274. package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
  275. package/esm2022/skeleton/stylized/list.component.mjs +8 -9
  276. package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
  277. package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
  278. package/esm2022/slide/slide-container.component.mjs +12 -16
  279. package/esm2022/slide/slide-header/slide-header.component.mjs +13 -14
  280. package/esm2022/slide/slide-ref.service.mjs +1 -1
  281. package/esm2022/slide/slide.service.mjs +8 -12
  282. package/esm2022/slider/slider.component.mjs +8 -8
  283. package/esm2022/space/space.component.mjs +16 -16
  284. package/esm2022/statistic/statistic.component.mjs +23 -23
  285. package/esm2022/stepper/step.component.mjs +6 -11
  286. package/esm2022/stepper/stepper-button.directive.mjs +10 -11
  287. package/esm2022/stepper/stepper.component.mjs +5 -5
  288. package/esm2022/strength/strength.component.mjs +11 -12
  289. package/esm2022/switch/switch.component.mjs +11 -11
  290. package/esm2022/table/table-column.component.mjs +58 -63
  291. package/esm2022/table/table-skeleton.component.mjs +35 -38
  292. package/esm2022/table/table.component.mjs +19 -29
  293. package/esm2022/tabs/tab-content.component.mjs +9 -9
  294. package/esm2022/tabs/tabs.component.mjs +22 -25
  295. package/esm2022/tag/tag.component.mjs +22 -22
  296. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +12 -12
  297. package/esm2022/time-picker/time-picker-panel.component.mjs +31 -34
  298. package/esm2022/time-picker/time-picker.component.mjs +33 -43
  299. package/esm2022/timeline/timeline-item.component.mjs +15 -16
  300. package/esm2022/timeline/timeline.component.mjs +15 -16
  301. package/esm2022/tooltip/tooltip.component.mjs +17 -17
  302. package/esm2022/tooltip/tooltip.directive.mjs +11 -10
  303. package/esm2022/tooltip/tooltip.service.mjs +9 -13
  304. package/esm2022/transfer/transfer-list.component.mjs +9 -9
  305. package/esm2022/transfer/transfer.component.mjs +4 -4
  306. package/esm2022/tree/tree-node.component.mjs +16 -20
  307. package/esm2022/tree/tree.component.mjs +90 -96
  308. package/esm2022/tree-select/tree-select.component.mjs +28 -36
  309. package/esm2022/typography/bg-color.directive.mjs +9 -9
  310. package/esm2022/typography/text/text.component.mjs +3 -4
  311. package/esm2022/typography/text-color.directive.mjs +9 -9
  312. package/esm2022/upload/file-drop.directive.mjs +1 -1
  313. package/esm2022/upload/file-select-base.mjs +5 -6
  314. package/esm2022/upload/file-select.component.mjs +4 -3
  315. package/esm2022/upload/upload.service.mjs +6 -7
  316. package/esm2022/version.mjs +2 -2
  317. package/esm2022/vote/vote.component.mjs +4 -4
  318. package/esm2022/watermark/watermark.directive.mjs +12 -12
  319. package/fesm2022/ngx-tethys-action.mjs +20 -20
  320. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  321. package/fesm2022/ngx-tethys-affix.mjs +12 -14
  322. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  323. package/fesm2022/ngx-tethys-alert.mjs +54 -80
  324. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  325. package/fesm2022/ngx-tethys-anchor.mjs +48 -35
  326. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  327. package/fesm2022/ngx-tethys-arrow-switcher.mjs +25 -25
  328. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  329. package/fesm2022/ngx-tethys-autocomplete.mjs +63 -75
  330. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  331. package/fesm2022/ngx-tethys-avatar.mjs +32 -32
  332. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  333. package/fesm2022/ngx-tethys-back-top.mjs +15 -18
  334. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  335. package/fesm2022/ngx-tethys-badge.mjs +8 -8
  336. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  337. package/fesm2022/ngx-tethys-breadcrumb.mjs +19 -21
  338. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  339. package/fesm2022/ngx-tethys-button.mjs +16 -16
  340. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  341. package/fesm2022/ngx-tethys-calendar.mjs +26 -26
  342. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  343. package/fesm2022/ngx-tethys-card.mjs +3 -3
  344. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  345. package/fesm2022/ngx-tethys-carousel.mjs +23 -24
  346. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  347. package/fesm2022/ngx-tethys-cascader.mjs +19 -25
  348. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  349. package/fesm2022/ngx-tethys-checkbox.mjs +10 -11
  350. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  351. package/fesm2022/ngx-tethys-collapse.mjs +20 -22
  352. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  353. package/fesm2022/ngx-tethys-color-picker.mjs +47 -45
  354. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  355. package/fesm2022/ngx-tethys-comment.mjs +3 -3
  356. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  357. package/fesm2022/ngx-tethys-copy.mjs +8 -12
  358. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  359. package/fesm2022/ngx-tethys-core.mjs +14 -16
  360. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  361. package/fesm2022/ngx-tethys-date-picker.mjs +2872 -2924
  362. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  363. package/fesm2022/ngx-tethys-date-range.mjs +24 -26
  364. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  365. package/fesm2022/ngx-tethys-dialog.mjs +61 -77
  366. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  367. package/fesm2022/ngx-tethys-divider.mjs +20 -12
  368. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  369. package/fesm2022/ngx-tethys-dot.mjs +6 -6
  370. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  371. package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
  372. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  373. package/fesm2022/ngx-tethys-dropdown.mjs +49 -43
  374. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  375. package/fesm2022/ngx-tethys-empty.mjs +18 -18
  376. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  377. package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
  378. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  379. package/fesm2022/ngx-tethys-form.mjs +74 -89
  380. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  381. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
  382. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  383. package/fesm2022/ngx-tethys-grid.mjs +20 -29
  384. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  385. package/fesm2022/ngx-tethys-guider.mjs +20 -26
  386. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  387. package/fesm2022/ngx-tethys-icon.mjs +18 -22
  388. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  389. package/fesm2022/ngx-tethys-image.mjs +60 -65
  390. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  391. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  392. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  393. package/fesm2022/ngx-tethys-input.mjs +53 -60
  394. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  395. package/fesm2022/ngx-tethys-layout.mjs +129 -124
  396. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  397. package/fesm2022/ngx-tethys-list.mjs +27 -27
  398. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  399. package/fesm2022/ngx-tethys-loading.mjs +10 -10
  400. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  401. package/fesm2022/ngx-tethys-mention.mjs +19 -24
  402. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  403. package/fesm2022/ngx-tethys-menu.mjs +56 -57
  404. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  405. package/fesm2022/ngx-tethys-message.mjs +47 -41
  406. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  407. package/fesm2022/ngx-tethys-nav.mjs +61 -72
  408. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  409. package/fesm2022/ngx-tethys-notify.mjs +31 -34
  410. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  411. package/fesm2022/ngx-tethys-pagination.mjs +46 -51
  412. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  413. package/fesm2022/ngx-tethys-popover.mjs +51 -57
  414. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  415. package/fesm2022/ngx-tethys-progress.mjs +15 -24
  416. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  417. package/fesm2022/ngx-tethys-property-operation.mjs +27 -27
  418. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-property.mjs +14 -14
  420. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-radio.mjs +33 -39
  422. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  423. package/fesm2022/ngx-tethys-rate.mjs +9 -9
  424. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  425. package/fesm2022/ngx-tethys-resizable.mjs +43 -34
  426. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-result.mjs +3 -3
  428. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-segment.mjs +41 -44
  430. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  431. package/fesm2022/ngx-tethys-select.mjs +28 -44
  432. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  433. package/fesm2022/ngx-tethys-shared.mjs +135 -150
  434. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  435. package/fesm2022/ngx-tethys-skeleton.mjs +33 -47
  436. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  437. package/fesm2022/ngx-tethys-slide.mjs +33 -37
  438. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  439. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  440. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  441. package/fesm2022/ngx-tethys-space.mjs +16 -16
  442. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  443. package/fesm2022/ngx-tethys-statistic.mjs +22 -22
  444. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  445. package/fesm2022/ngx-tethys-stepper.mjs +17 -22
  446. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  447. package/fesm2022/ngx-tethys-strength.mjs +11 -11
  448. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  449. package/fesm2022/ngx-tethys-switch.mjs +10 -10
  450. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  451. package/fesm2022/ngx-tethys-table.mjs +107 -124
  452. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  453. package/fesm2022/ngx-tethys-tabs.mjs +29 -32
  454. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  455. package/fesm2022/ngx-tethys-tag.mjs +21 -21
  456. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  457. package/fesm2022/ngx-tethys-time-picker.mjs +70 -80
  458. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  459. package/fesm2022/ngx-tethys-timeline.mjs +26 -26
  460. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  461. package/fesm2022/ngx-tethys-tooltip.mjs +35 -36
  462. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  463. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  464. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  465. package/fesm2022/ngx-tethys-tree-select.mjs +29 -37
  466. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  467. package/fesm2022/ngx-tethys-tree.mjs +102 -110
  468. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  469. package/fesm2022/ngx-tethys-typography.mjs +18 -18
  470. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  471. package/fesm2022/ngx-tethys-upload.mjs +11 -12
  472. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  473. package/fesm2022/ngx-tethys-vote.mjs +3 -3
  474. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  475. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  476. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  477. package/fesm2022/ngx-tethys.mjs +1 -1
  478. package/fesm2022/ngx-tethys.mjs.map +1 -1
  479. package/flexible-text/flexible-text.component.d.ts +1 -3
  480. package/form/form-group-error/form-group-error.component.d.ts +1 -3
  481. package/form/form-group-label.directive.d.ts +0 -2
  482. package/form/form-group.component.d.ts +1 -4
  483. package/form/form-submit.directive.d.ts +0 -2
  484. package/form/form-validator.service.d.ts +0 -2
  485. package/form/form.directive.d.ts +4 -4
  486. package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
  487. package/form/validator/unique-validator.directive.d.ts +1 -4
  488. package/fullscreen/fullscreen.component.d.ts +0 -2
  489. package/fullscreen/fullscreen.service.d.ts +0 -2
  490. package/grid/thy-col.directive.d.ts +1 -2
  491. package/grid/thy-grid-item.component.d.ts +2 -4
  492. package/grid/thy-grid.component.d.ts +1 -3
  493. package/guider/guider.directive.d.ts +1 -3
  494. package/guider/guider.service.d.ts +0 -7
  495. package/icon/icon-registry.d.ts +1 -3
  496. package/icon/icon.component.d.ts +1 -3
  497. package/image/image-group.component.d.ts +1 -2
  498. package/image/image.directive.d.ts +1 -3
  499. package/image/image.service.d.ts +2 -2
  500. package/image/preview/image-preview.component.d.ts +1 -4
  501. package/input/input-count.component.d.ts +3 -4
  502. package/input/input-group.component.d.ts +1 -3
  503. package/input/input-search.component.d.ts +2 -2
  504. package/input/input.component.d.ts +1 -2
  505. package/input/input.directive.d.ts +2 -3
  506. package/input-number/input-number.component.d.ts +2 -2
  507. package/layout/sidebar.component.d.ts +44 -13
  508. package/list/selection/selection-list.d.ts +1 -2
  509. package/loading/loading.component.d.ts +0 -2
  510. package/loading/styles/loading.scss +3 -1
  511. package/mention/mention.directive.d.ts +4 -5
  512. package/mention/suggestions/suggestions.component.d.ts +2 -3
  513. package/menu/group/menu-group.component.d.ts +30 -8
  514. package/menu/item/action/menu-item-action.component.d.ts +2 -3
  515. package/menu/item/menu-item.component.d.ts +1 -2
  516. package/message/abstract/abstract-message-container.component.d.ts +1 -2
  517. package/message/abstract/abstract-message.component.d.ts +2 -2
  518. package/message/message-container.component.d.ts +1 -3
  519. package/message/message-queue.service.d.ts +1 -2
  520. package/message/message.component.d.ts +1 -3
  521. package/message/message.service.d.ts +3 -5
  522. package/nav/icon-nav/icon-nav.component.d.ts +2 -2
  523. package/nav/nav-ink-bar.directive.d.ts +2 -4
  524. package/nav/nav-item.directive.d.ts +3 -4
  525. package/nav/nav.component.d.ts +1 -3
  526. package/nav/nav.pipe.d.ts +0 -2
  527. package/notify/notify-container.component.d.ts +1 -3
  528. package/notify/notify-queue.service.d.ts +1 -2
  529. package/notify/notify.component.d.ts +2 -3
  530. package/notify/notify.service.d.ts +1 -4
  531. package/package.json +1 -1
  532. package/pagination/pagination.component.d.ts +2 -4
  533. package/pagination/pagination.pipe.d.ts +0 -2
  534. package/popover/header/popover-header.component.d.ts +0 -3
  535. package/popover/popover-container.component.d.ts +3 -4
  536. package/popover/popover.directive.d.ts +2 -5
  537. package/popover/popover.service.d.ts +4 -6
  538. package/progress/progress-circle.component.d.ts +0 -1
  539. package/progress/progress-strip.component.d.ts +0 -1
  540. package/progress/progress.component.d.ts +0 -1
  541. package/property/property-item.component.d.ts +6 -9
  542. package/property-operation/property-operation.component.d.ts +1 -3
  543. package/radio/button/radio-button.component.d.ts +2 -5
  544. package/radio/group/radio-group.component.d.ts +1 -2
  545. package/radio/radio.component.d.ts +2 -3
  546. package/rate/rate.component.d.ts +2 -2
  547. package/resizable/resizable.directive.d.ts +2 -4
  548. package/resizable/resizable.service.d.ts +2 -2
  549. package/resizable/resize-handle.component.d.ts +2 -7
  550. package/schematics/version.d.ts +1 -1
  551. package/schematics/version.js +1 -1
  552. package/segment/segment-item.component.d.ts +4 -5
  553. package/segment/segment.component.d.ts +2 -7
  554. package/select/custom-select/custom-select.component.d.ts +5 -5
  555. package/select/native-select/native-select.component.d.ts +1 -1
  556. package/shared/base-form-check.component.d.ts +1 -1
  557. package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
  558. package/shared/directives/thy-autofocus.directive.d.ts +0 -2
  559. package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
  560. package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
  561. package/shared/directives/thy-enter.directive.d.ts +1 -2
  562. package/shared/directives/thy-scroll.directive.d.ts +1 -2
  563. package/shared/directives/thy-show.d.ts +1 -2
  564. package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
  565. package/shared/directives/view-outlet.directive.d.ts +1 -2
  566. package/shared/ng-transclude.directive.d.ts +1 -1
  567. package/shared/option/group/option-group.component.d.ts +1 -2
  568. package/shared/option/list-option/list-option.component.d.ts +6 -7
  569. package/shared/option/option.component.d.ts +5 -5
  570. package/shared/select/select-control/select-control.component.d.ts +1 -2
  571. package/skeleton/skeleton-circle.component.d.ts +1 -4
  572. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  573. package/skeleton/stylized/bullet-list.component.d.ts +9 -1
  574. package/slide/drawer/drawer-container.directive.d.ts +1 -2
  575. package/slide/slide-container.component.d.ts +3 -4
  576. package/slide/slide-header/slide-header.component.d.ts +0 -2
  577. package/slide/slide.service.d.ts +3 -3
  578. package/slider/slider.component.d.ts +2 -2
  579. package/space/space.component.d.ts +1 -2
  580. package/statistic/statistic.component.d.ts +1 -2
  581. package/stepper/step.component.d.ts +1 -2
  582. package/stepper/stepper-button.directive.d.ts +0 -3
  583. package/strength/strength.component.d.ts +0 -1
  584. package/switch/switch.component.d.ts +1 -1
  585. package/table/table-column.component.d.ts +32 -8
  586. package/table/table-skeleton.component.d.ts +1 -3
  587. package/table/table.component.d.ts +3 -5
  588. package/tabs/tabs.component.d.ts +1 -3
  589. package/tag/tag.component.d.ts +7 -3
  590. package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
  591. package/time-picker/time-picker-panel.component.d.ts +1 -3
  592. package/time-picker/time-picker.component.d.ts +1 -2
  593. package/timeline/timeline-item.component.d.ts +1 -3
  594. package/timeline/timeline.component.d.ts +1 -3
  595. package/tooltip/tooltip.component.d.ts +1 -2
  596. package/tooltip/tooltip.directive.d.ts +6 -9
  597. package/tooltip/tooltip.service.d.ts +2 -4
  598. package/transfer/transfer-list.component.d.ts +1 -2
  599. package/tree/tree-node.component.d.ts +5 -21
  600. package/tree/tree.component.d.ts +1 -2
  601. package/tree-select/tree-select.component.d.ts +5 -6
  602. package/typography/bg-color.directive.d.ts +0 -2
  603. package/typography/text-color.directive.d.ts +1 -2
  604. package/upload/file-select-base.d.ts +2 -3
  605. package/upload/file-select.component.d.ts +1 -0
  606. package/upload/upload.service.d.ts +0 -2
  607. package/watermark/watermark.directive.d.ts +1 -2
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { NgClass, NgFor, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
3
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
3
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild, ViewEncapsulation, inject } from '@angular/core';
4
4
  import { InputCssPixel } from 'ngx-tethys/core';
5
5
  import { ThySkeletonCircle, ThySkeletonRectangle } from 'ngx-tethys/skeleton';
6
6
  import { ThyViewOutletDirective } from 'ngx-tethys/shared';
@@ -13,37 +13,8 @@ const COLUMN_COUNT = 5;
13
13
  * @name thy-table-skeleton
14
14
  */
15
15
  export class ThyTableSkeleton {
16
- /**
17
- * 行数
18
- */
19
- set thyRowCount(value) {
20
- this.rowCount = Array.from({ length: +value });
21
- }
22
- /**
23
- * 表格列骨架的配置项,支持配置列宽、骨架类型
24
- * @type ThyTableSkeletonColumn[]
25
- */
26
- set thyColumns(columns) {
27
- if (columns && columns.length) {
28
- this.columns = columns;
29
- }
30
- else {
31
- this.columns = [...this.defaultColumns];
32
- }
33
- }
34
- get tableClassMap() {
35
- return {
36
- table: true,
37
- 'table-bordered': this.thyTheme === 'bordered',
38
- 'table-boxed': this.thyTheme === 'boxed',
39
- [`table-${this.thySize}`]: !!this.thySize
40
- };
41
- }
42
- trackByFn(index) {
43
- return index;
44
- }
45
- constructor(cdr) {
46
- this.cdr = cdr;
16
+ constructor() {
17
+ this.cdr = inject(ChangeDetectorRef);
47
18
  /**
48
19
  * 表格内容骨架高度
49
20
  */
@@ -98,6 +69,32 @@ export class ThyTableSkeleton {
98
69
  });
99
70
  this.columns = [...this.defaultColumns];
100
71
  }
72
+ /**
73
+ * 行数
74
+ */
75
+ set thyRowCount(value) {
76
+ this.rowCount = Array.from({ length: +value });
77
+ }
78
+ /**
79
+ * 表格列骨架的配置项,支持配置列宽、骨架类型
80
+ * @type ThyTableSkeletonColumn[]
81
+ */
82
+ set thyColumns(columns) {
83
+ if (columns && columns.length) {
84
+ this.columns = columns;
85
+ }
86
+ else {
87
+ this.columns = [...this.defaultColumns];
88
+ }
89
+ }
90
+ get tableClassMap() {
91
+ return {
92
+ table: true,
93
+ 'table-bordered': this.thyTheme === 'bordered',
94
+ 'table-boxed': this.thyTheme === 'boxed',
95
+ [`table-${this.thySize}`]: !!this.thySize
96
+ };
97
+ }
101
98
  ngAfterViewInit() {
102
99
  this.skeletonColumnsMap = {
103
100
  [ThyTableColumnSkeletonType.title]: this.titleTemplate,
@@ -106,8 +103,8 @@ export class ThyTableSkeleton {
106
103
  };
107
104
  this.cdr.detectChanges();
108
105
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTableSkeleton, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyTableSkeleton, isStandalone: true, selector: "thy-table-skeleton", inputs: { thyBorderRadius: "thyBorderRadius", thyRowHeight: "thyRowHeight", thyAnimated: ["thyAnimated", "thyAnimated", coerceBooleanProperty], thyAnimatedInterval: "thyAnimatedInterval", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor", thyRowCount: "thyRowCount", thyHeadless: ["thyHeadless", "thyHeadless", coerceBooleanProperty], thyTheme: "thyTheme", thySize: "thySize", thyMinWidth: "thyMinWidth", thyColumns: "thyColumns" }, host: { classAttribute: "thy-table-skeleton" }, viewQueries: [{ propertyName: "titleTemplate", first: true, predicate: ["titleTemplate"], descendants: true }, { propertyName: "memberTemplate", first: true, predicate: ["memberTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "checkboxTemplate", first: true, predicate: ["checkboxTemplate"], descendants: true }], ngImport: i0, template: "<table [ngClass]=\"tableClassMap\" [ngStyle]=\"{ 'min-width': thyMinWidth }\">\n <colgroup>\n <col *ngFor=\"let column of columns; trackBy: trackByFn\" [width]=\"column.width\" />\n </colgroup>\n <ng-container *ngIf=\"!thyHeadless\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n </tr>\n </thead>\n </ng-container>\n <tbody>\n <ng-container *ngFor=\"let item of rowCount; let i = index\">\n <tr>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate\n context:{\n trIndex: i,\n }\n \">\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"defaultTemplate;\n context:{\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : '',\n }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ThyViewOutletDirective, selector: "[thyViewOutlet]", inputs: ["thyViewOutlet", "thyViewOutletContext"] }, { kind: "component", type: ThySkeletonRectangle, selector: "thy-skeleton-rectangle", inputs: ["thyAnimated", "thyAnimatedInterval", "thyBorderRadius", "thyRowWidth", "thyRowHeight", "thyPrimaryColor", "thySecondaryColor"] }, { kind: "component", type: ThySkeletonCircle, selector: "thy-skeleton-circle", inputs: ["thyAnimatedInterval", "thySize", "thyPrimaryColor", "thySecondaryColor", "thyAnimated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTableSkeleton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTableSkeleton, isStandalone: true, selector: "thy-table-skeleton", inputs: { thyBorderRadius: "thyBorderRadius", thyRowHeight: "thyRowHeight", thyAnimated: ["thyAnimated", "thyAnimated", coerceBooleanProperty], thyAnimatedInterval: "thyAnimatedInterval", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor", thyRowCount: "thyRowCount", thyHeadless: ["thyHeadless", "thyHeadless", coerceBooleanProperty], thyTheme: "thyTheme", thySize: "thySize", thyMinWidth: "thyMinWidth", thyColumns: "thyColumns" }, host: { classAttribute: "thy-table-skeleton" }, viewQueries: [{ propertyName: "titleTemplate", first: true, predicate: ["titleTemplate"], descendants: true }, { propertyName: "memberTemplate", first: true, predicate: ["memberTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "checkboxTemplate", first: true, predicate: ["checkboxTemplate"], descendants: true }], ngImport: i0, template: "<table [ngClass]=\"tableClassMap\" [ngStyle]=\"{ 'min-width': thyMinWidth }\">\n <colgroup>\n @for (column of columns; track $index) {\n <col [width]=\"column.width\" />\n }\n </colgroup>\n @if (!thyHeadless) {\n <thead>\n <tr>\n @for (column of columns; track $index) {\n <th>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody>\n @for (item of rowCount; track $index; let i = $index) {\n <tr>\n @for (column of columns; track $index) {\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate;\n context: {\n trIndex: i\n }\n \">\n </ng-container>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"\n defaultTemplate;\n context: {\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : ''\n }\n \"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ThyViewOutletDirective, selector: "[thyViewOutlet]", inputs: ["thyViewOutlet", "thyViewOutletContext"] }, { kind: "component", type: ThySkeletonRectangle, selector: "thy-skeleton-rectangle", inputs: ["thyAnimated", "thyAnimatedInterval", "thyBorderRadius", "thyRowWidth", "thyRowHeight", "thyPrimaryColor", "thySecondaryColor"] }, { kind: "component", type: ThySkeletonCircle, selector: "thy-skeleton-circle", inputs: ["thyAnimatedInterval", "thySize", "thyPrimaryColor", "thySecondaryColor", "thyAnimated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
111
108
  }
112
109
  __decorate([
113
110
  InputCssPixel(),
@@ -125,8 +122,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
125
122
  type: Component,
126
123
  args: [{ selector: 'thy-table-skeleton', host: {
127
124
  class: 'thy-table-skeleton'
128
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgFor, NgClass, NgIf, NgStyle, NgTemplateOutlet, ThyViewOutletDirective, ThySkeletonRectangle, ThySkeletonCircle], template: "<table [ngClass]=\"tableClassMap\" [ngStyle]=\"{ 'min-width': thyMinWidth }\">\n <colgroup>\n <col *ngFor=\"let column of columns; trackBy: trackByFn\" [width]=\"column.width\" />\n </colgroup>\n <ng-container *ngIf=\"!thyHeadless\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n </tr>\n </thead>\n </ng-container>\n <tbody>\n <ng-container *ngFor=\"let item of rowCount; let i = index\">\n <tr>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate\n context:{\n trIndex: i,\n }\n \">\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"defaultTemplate;\n context:{\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : '',\n }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n" }]
129
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { titleTemplate: [{
125
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgClass, NgStyle, NgTemplateOutlet, ThyViewOutletDirective, ThySkeletonRectangle, ThySkeletonCircle], template: "<table [ngClass]=\"tableClassMap\" [ngStyle]=\"{ 'min-width': thyMinWidth }\">\n <colgroup>\n @for (column of columns; track $index) {\n <col [width]=\"column.width\" />\n }\n </colgroup>\n @if (!thyHeadless) {\n <thead>\n <tr>\n @for (column of columns; track $index) {\n <th>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody>\n @for (item of rowCount; track $index; let i = $index) {\n <tr>\n @for (column of columns; track $index) {\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate;\n context: {\n trIndex: i\n }\n \">\n </ng-container>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"\n defaultTemplate;\n context: {\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : ''\n }\n \"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n" }]
126
+ }], propDecorators: { titleTemplate: [{
130
127
  type: ViewChild,
131
128
  args: ['titleTemplate']
132
129
  }], memberTemplate: [{
@@ -165,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
165
162
  }], thyColumns: [{
166
163
  type: Input
167
164
  }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLXNrZWxldG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xGLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFeEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXZCOzs7R0FHRztBQVlILE1BQU0sT0FBTyxnQkFBZ0I7SUErQ3pCOztPQUVHO0lBQ0gsSUFDSSxXQUFXLENBQUMsS0FBc0I7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBNEJEOzs7T0FHRztJQUNILElBQWEsVUFBVSxDQUFDLE9BQWlDO1FBQ3JELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztJQWdCRCxJQUFJLGFBQWE7UUFDYixPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUk7WUFDWCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxLQUFLLFVBQVU7WUFDOUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTztZQUN4QyxDQUFDLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO1NBQzVDLENBQUM7SUFDTixDQUFDO0lBdUJNLFNBQVMsQ0FBQyxLQUFhO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTdIMUM7O1dBRUc7UUFHSCxpQkFBWSxHQUFvQixNQUFNLENBQUM7UUFFdkM7OztXQUdHO1FBRUgsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFpQjVCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFVeEI7OztXQUdHO1FBQzBDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRWpFOzs7V0FHRztRQUNNLGFBQVEsR0FBa0IsU0FBUyxDQUFDO1FBRTdDOzs7O1dBSUc7UUFDTSxZQUFPLEdBQWlCLElBQUksQ0FBQztRQXFCL0IsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFFckIsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUVwQixrQkFBYSxHQUFHLE1BQU0sQ0FBQztRQUV2QixlQUFVLEdBQUcsTUFBTSxDQUFDO1FBRXBCLGVBQVUsR0FBRywwQkFBMEIsQ0FBQztRQUV4Qyx1QkFBa0IsR0FFckIsRUFBRSxDQUFDO1FBV0MsbUJBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3RGLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNkLE9BQU87b0JBQ0gsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLDBCQUEwQixDQUFDLEtBQUs7aUJBQ3pDLENBQUM7WUFDTixDQUFDO2lCQUFNLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQixPQUFPO29CQUNILEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxNQUFNO2lCQUMxQyxDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU87b0JBQ0gsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLDBCQUEwQixDQUFDLE9BQU87aUJBQzNDLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSSxZQUFPLEdBQTZCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFNdkIsQ0FBQztJQUU5QyxlQUFlO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDdEQsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUN4RCxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDL0QsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0F0SlEsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsOEtBMkJMLHFCQUFxQixtTUFnQ3JCLHFCQUFxQiw0a0JDL0Y3QyxnNUdBK0ZBLDRDRDdEYyxLQUFLLG1IQUFFLE9BQU8sb0ZBQUUsSUFBSSw2RkFBRSxPQUFPLDJFQUFvQixzQkFBc0IsK0dBQUUsb0JBQW9CLDZNQUFFLGlCQUFpQjs7QUFnQjFIO0lBREMsYUFBYSxFQUFFOzt5REFDaUI7QUFPakM7SUFEQyxhQUFhLEVBQUU7O3NEQUN1QjtBQTBEdkM7SUFEQyxhQUFhLEVBQUU7O3FEQUNhOzJGQS9FcEIsZ0JBQWdCO2tCQVg1QixTQUFTOytCQUNJLG9CQUFvQixRQUV4Qjt3QkFDRixLQUFLLEVBQUUsb0JBQW9CO3FCQUM5QixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7c0ZBRy9GLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFFRyxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFFRyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFRyxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQU83QixlQUFlO3NCQUZkLEtBQUs7Z0JBU04sWUFBWTtzQkFGWCxLQUFLO2dCQVNOLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNbEMsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkFTdUMsV0FBVztzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNbEMsUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT04sV0FBVztzQkFGVixLQUFLO2dCQVFPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRDc3NQaXhlbCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlTa2VsZXRvbkNpcmNsZSwgVGh5U2tlbGV0b25SZWN0YW5nbGUgfSBmcm9tICduZ3gtdGV0aHlzL3NrZWxldG9uJztcbmltcG9ydCB7IFRoeVRhYmxlU2tlbGV0b25Db2x1bW4gfSBmcm9tICcuL3RhYmxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHlWaWV3T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7IFRoeVRhYmxlU2l6ZSwgVGh5VGFibGVUaGVtZSB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmNvbnN0IENPTFVNTl9DT1VOVCA9IDU7XG5cbi8qKlxuICog6KGo5qC855qE6aqo5p625bGP57uE5Lu2XG4gKiBAbmFtZSB0aHktdGFibGUtc2tlbGV0b25cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdGFibGUtc2tlbGV0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10YWJsZS1za2VsZXRvbidcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdGb3IsIE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeVZpZXdPdXRsZXREaXJlY3RpdmUsIFRoeVNrZWxldG9uUmVjdGFuZ2xlLCBUaHlTa2VsZXRvbkNpcmNsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VGFibGVTa2VsZXRvbiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3RpdGxlVGVtcGxhdGUnKSB0aXRsZVRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ21lbWJlclRlbXBsYXRlJykgbWVtYmVyVGVtcGxhdGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdFRlbXBsYXRlJykgZGVmYXVsdFRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NoZWNrYm94VGVtcGxhdGUnKSBjaGVja2JveFRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIOmqqOaetui+ueahhuWchuinklxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeUJvcmRlclJhZGl1czogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6KGo5qC85YaF5a656aqo5p626auY5bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5Um93SGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgPSAnMjBweCc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblvIDlkK/liqjnlLtcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICB0aHlBbmltYXRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDliqjnlLvpgJ/luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlBbmltYXRlZEludGVydmFsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrbkuLvoibJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmltYXJ5Q29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuasoeiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZGFyeUNvbG9yOiBzdHJpbmc7XG5cbiAgICByb3dDb3VudDogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIOihjOaVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVJvd0NvdW50KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IEFycmF5LmZyb20oeyBsZW5ndGg6ICt2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrpqqjmnrblpLRcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUhlYWRsZXNzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrblsY/nmoTpo47moLxcbiAgICAgKiBAdHlwZSBkZWZhdWx0IHwgYm9yZGVyZWQgfCBib3hlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRoZW1lOiBUaHlUYWJsZVRoZW1lID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625bGP55qE5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGcgfCB4bGcgfCBkZWZhdWx0XG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBUaHlUYWJsZVNpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6KGo5qC85pyA5bCP5a695bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5TWluV2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOihqOagvOWIl+mqqOaetueahOmFjee9rumhue+8jOaUr+aMgemFjee9ruWIl+WuveOAgemqqOaetuexu+Wei1xuICAgICAqIEB0eXBlIFRoeVRhYmxlU2tlbGV0b25Db2x1bW5bXVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlDb2x1bW5zKGNvbHVtbnM6IFRoeVRhYmxlU2tlbGV0b25Db2x1bW5bXSkge1xuICAgICAgICBpZiAoY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IFsuLi50aGlzLmRlZmF1bHRDb2x1bW5zXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0aXRsZUhlaWdodCA9ICcyMHB4JztcblxuICAgIHB1YmxpYyB0aXRsZVdpZHRoID0gJzUwcHgnO1xuXG4gICAgcHVibGljIGNoZWNrYm94V2lkdGggPSAnMjBweCc7XG5cbiAgICBwdWJsaWMgYXZhdGFyU2l6ZSA9ICcyNHB4JztcblxuICAgIHB1YmxpYyBjb2x1bW5UeXBlID0gVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGU7XG5cbiAgICBwdWJsaWMgc2tlbGV0b25Db2x1bW5zTWFwOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIH0gPSB7fTtcblxuICAgIGdldCB0YWJsZUNsYXNzTWFwKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFibGU6IHRydWUsXG4gICAgICAgICAgICAndGFibGUtYm9yZGVyZWQnOiB0aGlzLnRoeVRoZW1lID09PSAnYm9yZGVyZWQnLFxuICAgICAgICAgICAgJ3RhYmxlLWJveGVkJzogdGhpcy50aHlUaGVtZSA9PT0gJ2JveGVkJyxcbiAgICAgICAgICAgIFtgdGFibGUtJHt0aGlzLnRoeVNpemV9YF06ICEhdGhpcy50aHlTaXplXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhdWx0Q29sdW1ucyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IENPTFVNTl9DT1VOVCB9KS5tYXAoKGl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnNDAlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS50aXRsZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJzE3JScsXG4gICAgICAgICAgICAgICAgdHlwZTogVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUubWVtYmVyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIHR5cGU6IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLmRlZmF1bHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHB1YmxpYyBjb2x1bW5zOiBUaHlUYWJsZVNrZWxldG9uQ29sdW1uW10gPSBbLi4udGhpcy5kZWZhdWx0Q29sdW1uc107XG5cbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5za2VsZXRvbkNvbHVtbnNNYXAgPSB7XG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUudGl0bGVdOiB0aGlzLnRpdGxlVGVtcGxhdGUsXG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUubWVtYmVyXTogdGhpcy5tZW1iZXJUZW1wbGF0ZSxcbiAgICAgICAgICAgIFtUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS5jaGVja2JveF06IHRoaXMuY2hlY2tib3hUZW1wbGF0ZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRhYmxlIFtuZ0NsYXNzXT1cInRhYmxlQ2xhc3NNYXBcIiBbbmdTdHlsZV09XCJ7ICdtaW4td2lkdGgnOiB0aHlNaW5XaWR0aCB9XCI+XG4gIDxjb2xncm91cD5cbiAgICA8Y29sICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUZuXCIgW3dpZHRoXT1cImNvbHVtbi53aWR0aFwiIC8+XG4gIDwvY29sZ3JvdXA+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGh5SGVhZGxlc3NcIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgICAgICAgICBbdGh5Um93V2lkdGhdPVwiY29sdW1uPy50eXBlID09PSBjb2x1bW5UeXBlLmNoZWNrYm94ID8gY2hlY2tib3hXaWR0aCA6IHRpdGxlV2lkdGhcIlxuICAgICAgICAgICAgW3RoeVJvd0hlaWdodF09XCJ0aXRsZUhlaWdodFwiXG4gICAgICAgICAgICBbdGh5Qm9yZGVyUmFkaXVzXT1cInRoeUJvcmRlclJhZGl1c1wiXG4gICAgICAgICAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgICAgICAgICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgICAgICAgICBbdGh5UHJpbWFyeUNvbG9yXT1cInRoeVRoZW1lID09PSAnYm9yZGVyZWQnIHx8IHRoeVRoZW1lID09PSAnYm94ZWQnID8gJyNlZWUnIDogdGh5UHJpbWFyeUNvbG9yXCJcbiAgICAgICAgICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDx0Ym9keT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd0NvdW50OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8dHI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICp0aHlWaWV3T3V0bGV0PVwiXG4gICAgICAgICAgICAgIHNrZWxldG9uQ29sdW1uc01hcFtjb2x1bW4udHlwZV0gfHwgZGVmYXVsdFRlbXBsYXRlXG4gICAgICAgICAgICAgIGNvbnRleHQ6e1xuICAgICAgICAgICAgICAgICAgdHJJbmRleDogaSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48bmctdGVtcGxhdGUgI3RpdGxlVGVtcGxhdGUgbGV0LXRySW5kZXg9XCJ0ckluZGV4XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPHRoeS1za2VsZXRvbi1yZWN0YW5nbGVcbiAgICAgIGNsYXNzPVwibXItMiBmbGV4LXNocmluay0wXCJcbiAgICAgIFt0aHlSb3dXaWR0aF09XCJjaGVja2JveFdpZHRoXCJcbiAgICAgIFt0aHlSb3dIZWlnaHRdPVwidGh5Um93SGVpZ2h0XCJcbiAgICAgIFt0aHlCb3JkZXJSYWRpdXNdPVwidGh5Qm9yZGVyUmFkaXVzXCJcbiAgICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgICBbdGh5QW5pbWF0ZWRJbnRlcnZhbF09XCJ0aHlBbmltYXRlZEludGVydmFsXCJcbiAgICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICp0aHlWaWV3T3V0bGV0PVwiZGVmYXVsdFRlbXBsYXRlO1xuICAgICAgY29udGV4dDp7XG4gICAgICAgIHJvd1dpZHRoOiB0ckluZGV4ICUgMyA9PT0gMCA/ICc3NSUnIDogdHJJbmRleCAlIDMgPT09IDEgPyAnMTAwJScgOiB0ckluZGV4ICUgMyA9PT0gMiA/ICc2NSUnIDogJycsXG4gICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjaGVja2JveFRlbXBsYXRlPlxuICA8dGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICAgIFt0aHlSb3dXaWR0aF09XCJjaGVja2JveFdpZHRoXCJcbiAgICBbdGh5Um93SGVpZ2h0XT1cInRoeVJvd0hlaWdodFwiXG4gICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWVtYmVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPHRoeS1za2VsZXRvbi1jaXJjbGVcbiAgICAgIGNsYXNzPVwibXItMiBmbGV4LXNocmluay0wXCJcbiAgICAgIFt0aHlTaXplXT1cImF2YXRhclNpemVcIlxuICAgICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgICAgW3RoeVNlY29uZGFyeUNvbG9yXT1cInRoeVNlY29uZGFyeUNvbG9yXCI+PC90aHktc2tlbGV0b24tY2lyY2xlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqdGh5Vmlld091dGxldD1cImRlZmF1bHRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlIGxldC1yb3dXaWR0aD1cInJvd1dpZHRoXCI+XG4gIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgW3RoeVJvd1dpZHRoXT1cInJvd1dpZHRoXCJcbiAgICBbdGh5Um93SGVpZ2h0XT1cInRoeVJvd0hlaWdodFwiXG4gICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLXNrZWxldG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV4RCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFFdkI7OztHQUdHO0FBWUgsTUFBTSxPQUFPLGdCQUFnQjtJQVg3QjtRQVlZLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQWlCeEM7O1dBRUc7UUFHSCxpQkFBWSxHQUFvQixNQUFNLENBQUM7UUFFdkM7OztXQUdHO1FBRUgsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFpQjVCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFVeEI7OztXQUdHO1FBQzBDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRWpFOzs7V0FHRztRQUNNLGFBQVEsR0FBa0IsU0FBUyxDQUFDO1FBRTdDOzs7O1dBSUc7UUFDTSxZQUFPLEdBQWlCLElBQUksQ0FBQztRQXFCL0IsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFFckIsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUVwQixrQkFBYSxHQUFHLE1BQU0sQ0FBQztRQUV2QixlQUFVLEdBQUcsTUFBTSxDQUFDO1FBRXBCLGVBQVUsR0FBRywwQkFBMEIsQ0FBQztRQUV4Qyx1QkFBa0IsR0FFckIsRUFBRSxDQUFDO1FBV0MsbUJBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3RGLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNkLE9BQU87b0JBQ0gsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLDBCQUEwQixDQUFDLEtBQUs7aUJBQ3pDLENBQUM7WUFDTixDQUFDO2lCQUFNLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQixPQUFPO29CQUNILEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxNQUFNO2lCQUMxQyxDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU87b0JBQ0gsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLDBCQUEwQixDQUFDLE9BQU87aUJBQzNDLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSSxZQUFPLEdBQTZCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7S0FVdkU7SUFsR0c7O09BRUc7SUFDSCxJQUNJLFdBQVcsQ0FBQyxLQUFzQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUE0QkQ7OztPQUdHO0lBQ0gsSUFBYSxVQUFVLENBQUMsT0FBaUM7UUFDckQsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDO0lBZ0JELElBQUksYUFBYTtRQUNiLE9BQU87WUFDSCxLQUFLLEVBQUUsSUFBSTtZQUNYLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVTtZQUM5QyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPO1lBQ3hDLENBQUMsU0FBUyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87U0FDNUMsQ0FBQztJQUNOLENBQUM7SUF1QkQsZUFBZTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsR0FBRztZQUN0QixDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ3RELENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDeEQsQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQy9ELENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBbEpRLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLDhLQTZCTCxxQkFBcUIsbU1BZ0NyQixxQkFBcUIsNGtCQ2xHN0MsbTNHQXFHQSw0Q0RsRWMsT0FBTyxvRkFBRSxPQUFPLDJFQUFvQixzQkFBc0IsK0dBQUUsb0JBQW9CLDZNQUFFLGlCQUFpQjs7QUFrQjdHO0lBREMsYUFBYSxFQUFFOzt5REFDaUI7QUFPakM7SUFEQyxhQUFhLEVBQUU7O3NEQUN1QjtBQTBEdkM7SUFEQyxhQUFhLEVBQUU7O3FEQUNhOzJGQWpGcEIsZ0JBQWdCO2tCQVg1QixTQUFTOytCQUNJLG9CQUFvQixRQUV4Qjt3QkFDRixLQUFLLEVBQUUsb0JBQW9CO3FCQUM5QixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDOzhCQUtsRixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBRUcsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBRUcsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRUcsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFPN0IsZUFBZTtzQkFGZCxLQUFLO2dCQVNOLFlBQVk7c0JBRlgsS0FBSztnQkFTTixXQUFXO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTWxDLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRRixXQUFXO3NCQURkLEtBQUs7Z0JBU3VDLFdBQVc7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTWxDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQU9OLFdBQVc7c0JBRlYsS0FBSztnQkFRTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0Q3NzUGl4ZWwgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5U2tlbGV0b25DaXJjbGUsIFRoeVNrZWxldG9uUmVjdGFuZ2xlIH0gZnJvbSAnbmd4LXRldGh5cy9za2VsZXRvbic7XG5pbXBvcnQgeyBUaHlUYWJsZVNrZWxldG9uQ29sdW1uIH0gZnJvbSAnLi90YWJsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGh5Vmlld091dGxldERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBUaHlUYWJsZVNpemUsIFRoeVRhYmxlVGhlbWUgfSBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5jb25zdCBDT0xVTU5fQ09VTlQgPSA1O1xuXG4vKipcbiAqIOihqOagvOeahOmqqOaetuWxj+e7hOS7tlxuICogQG5hbWUgdGh5LXRhYmxlLXNrZWxldG9uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRhYmxlLXNrZWxldG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtc2tlbGV0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktdGFibGUtc2tlbGV0b24nXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeVZpZXdPdXRsZXREaXJlY3RpdmUsIFRoeVNrZWxldG9uUmVjdGFuZ2xlLCBUaHlTa2VsZXRvbkNpcmNsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VGFibGVTa2VsZXRvbiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RpdGxlVGVtcGxhdGUnKSB0aXRsZVRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ21lbWJlclRlbXBsYXRlJykgbWVtYmVyVGVtcGxhdGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdFRlbXBsYXRlJykgZGVmYXVsdFRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NoZWNrYm94VGVtcGxhdGUnKSBjaGVja2JveFRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIOmqqOaetui+ueahhuWchuinklxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeUJvcmRlclJhZGl1czogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6KGo5qC85YaF5a656aqo5p626auY5bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5Um93SGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgPSAnMjBweCc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblvIDlkK/liqjnlLtcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICB0aHlBbmltYXRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDliqjnlLvpgJ/luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlBbmltYXRlZEludGVydmFsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrbkuLvoibJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmltYXJ5Q29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuasoeiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZGFyeUNvbG9yOiBzdHJpbmc7XG5cbiAgICByb3dDb3VudDogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIOihjOaVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVJvd0NvdW50KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IEFycmF5LmZyb20oeyBsZW5ndGg6ICt2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrpqqjmnrblpLRcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUhlYWRsZXNzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrblsY/nmoTpo47moLxcbiAgICAgKiBAdHlwZSBkZWZhdWx0IHwgYm9yZGVyZWQgfCBib3hlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRoZW1lOiBUaHlUYWJsZVRoZW1lID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625bGP55qE5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGcgfCB4bGcgfCBkZWZhdWx0XG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBUaHlUYWJsZVNpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6KGo5qC85pyA5bCP5a695bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5TWluV2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOihqOagvOWIl+mqqOaetueahOmFjee9rumhue+8jOaUr+aMgemFjee9ruWIl+WuveOAgemqqOaetuexu+Wei1xuICAgICAqIEB0eXBlIFRoeVRhYmxlU2tlbGV0b25Db2x1bW5bXVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlDb2x1bW5zKGNvbHVtbnM6IFRoeVRhYmxlU2tlbGV0b25Db2x1bW5bXSkge1xuICAgICAgICBpZiAoY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IFsuLi50aGlzLmRlZmF1bHRDb2x1bW5zXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0aXRsZUhlaWdodCA9ICcyMHB4JztcblxuICAgIHB1YmxpYyB0aXRsZVdpZHRoID0gJzUwcHgnO1xuXG4gICAgcHVibGljIGNoZWNrYm94V2lkdGggPSAnMjBweCc7XG5cbiAgICBwdWJsaWMgYXZhdGFyU2l6ZSA9ICcyNHB4JztcblxuICAgIHB1YmxpYyBjb2x1bW5UeXBlID0gVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGU7XG5cbiAgICBwdWJsaWMgc2tlbGV0b25Db2x1bW5zTWFwOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIH0gPSB7fTtcblxuICAgIGdldCB0YWJsZUNsYXNzTWFwKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFibGU6IHRydWUsXG4gICAgICAgICAgICAndGFibGUtYm9yZGVyZWQnOiB0aGlzLnRoeVRoZW1lID09PSAnYm9yZGVyZWQnLFxuICAgICAgICAgICAgJ3RhYmxlLWJveGVkJzogdGhpcy50aHlUaGVtZSA9PT0gJ2JveGVkJyxcbiAgICAgICAgICAgIFtgdGFibGUtJHt0aGlzLnRoeVNpemV9YF06ICEhdGhpcy50aHlTaXplXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhdWx0Q29sdW1ucyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IENPTFVNTl9DT1VOVCB9KS5tYXAoKGl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnNDAlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS50aXRsZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJzE3JScsXG4gICAgICAgICAgICAgICAgdHlwZTogVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUubWVtYmVyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIHR5cGU6IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLmRlZmF1bHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHB1YmxpYyBjb2x1bW5zOiBUaHlUYWJsZVNrZWxldG9uQ29sdW1uW10gPSBbLi4udGhpcy5kZWZhdWx0Q29sdW1uc107XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2tlbGV0b25Db2x1bW5zTWFwID0ge1xuICAgICAgICAgICAgW1RoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLnRpdGxlXTogdGhpcy50aXRsZVRlbXBsYXRlLFxuICAgICAgICAgICAgW1RoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLm1lbWJlcl06IHRoaXMubWVtYmVyVGVtcGxhdGUsXG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUuY2hlY2tib3hdOiB0aGlzLmNoZWNrYm94VGVtcGxhdGVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjx0YWJsZSBbbmdDbGFzc109XCJ0YWJsZUNsYXNzTWFwXCIgW25nU3R5bGVdPVwieyAnbWluLXdpZHRoJzogdGh5TWluV2lkdGggfVwiPlxuICA8Y29sZ3JvdXA+XG4gICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGNvbCBbd2lkdGhdPVwiY29sdW1uLndpZHRoXCIgLz5cbiAgICB9XG4gIDwvY29sZ3JvdXA+XG4gIEBpZiAoIXRoeUhlYWRsZXNzKSB7XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPHRoPlxuICAgICAgICAgICAgPHRoeS1za2VsZXRvbi1yZWN0YW5nbGVcbiAgICAgICAgICAgICAgW3RoeVJvd1dpZHRoXT1cImNvbHVtbj8udHlwZSA9PT0gY29sdW1uVHlwZS5jaGVja2JveCA/IGNoZWNrYm94V2lkdGggOiB0aXRsZVdpZHRoXCJcbiAgICAgICAgICAgICAgW3RoeVJvd0hlaWdodF09XCJ0aXRsZUhlaWdodFwiXG4gICAgICAgICAgICAgIFt0aHlCb3JkZXJSYWRpdXNdPVwidGh5Qm9yZGVyUmFkaXVzXCJcbiAgICAgICAgICAgICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICAgICAgICAgICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgICAgICAgICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5VGhlbWUgPT09ICdib3JkZXJlZCcgfHwgdGh5VGhlbWUgPT09ICdib3hlZCcgPyAnI2VlZScgOiB0aHlQcmltYXJ5Q29sb3JcIlxuICAgICAgICAgICAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgfVxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICB9XG4gIDx0Ym9keT5cbiAgICBAZm9yIChpdGVtIG9mIHJvd0NvdW50OyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICA8dHI+XG4gICAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICp0aHlWaWV3T3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgc2tlbGV0b25Db2x1bW5zTWFwW2NvbHVtbi50eXBlXSB8fCBkZWZhdWx0VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgdHJJbmRleDogaVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICB9XG4gICAgICA8L3RyPlxuICAgIH1cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVUZW1wbGF0ZSBsZXQtdHJJbmRleD1cInRySW5kZXhcIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8dGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICAgICAgY2xhc3M9XCJtci0yIGZsZXgtc2hyaW5rLTBcIlxuICAgICAgW3RoeVJvd1dpZHRoXT1cImNoZWNrYm94V2lkdGhcIlxuICAgICAgW3RoeVJvd0hlaWdodF09XCJ0aHlSb3dIZWlnaHRcIlxuICAgICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgICAgW3RoeVNlY29uZGFyeUNvbG9yXT1cInRoeVNlY29uZGFyeUNvbG9yXCI+PC90aHktc2tlbGV0b24tcmVjdGFuZ2xlPlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKnRoeVZpZXdPdXRsZXQ9XCJcbiAgICAgICAgZGVmYXVsdFRlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgcm93V2lkdGg6IHRySW5kZXggJSAzID09PSAwID8gJzc1JScgOiB0ckluZGV4ICUgMyA9PT0gMSA/ICcxMDAlJyA6IHRySW5kZXggJSAzID09PSAyID8gJzY1JScgOiAnJ1xuICAgICAgICB9XG4gICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NoZWNrYm94VGVtcGxhdGU+XG4gIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgW3RoeVJvd1dpZHRoXT1cImNoZWNrYm94V2lkdGhcIlxuICAgIFt0aHlSb3dIZWlnaHRdPVwidGh5Um93SGVpZ2h0XCJcbiAgICBbdGh5Qm9yZGVyUmFkaXVzXT1cInRoeUJvcmRlclJhZGl1c1wiXG4gICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICBbdGh5QW5pbWF0ZWRJbnRlcnZhbF09XCJ0aHlBbmltYXRlZEludGVydmFsXCJcbiAgICBbdGh5UHJpbWFyeUNvbG9yXT1cInRoeVByaW1hcnlDb2xvclwiXG4gICAgW3RoeVNlY29uZGFyeUNvbG9yXT1cInRoeVNlY29uZGFyeUNvbG9yXCI+PC90aHktc2tlbGV0b24tcmVjdGFuZ2xlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtZW1iZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8dGh5LXNrZWxldG9uLWNpcmNsZVxuICAgICAgY2xhc3M9XCJtci0yIGZsZXgtc2hyaW5rLTBcIlxuICAgICAgW3RoeVNpemVdPVwiYXZhdGFyU2l6ZVwiXG4gICAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgICBbdGh5UHJpbWFyeUNvbG9yXT1cInRoeVByaW1hcnlDb2xvclwiXG4gICAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1jaXJjbGU+XG5cbiAgICA8bmctY29udGFpbmVyICp0aHlWaWV3T3V0bGV0PVwiZGVmYXVsdFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGUgbGV0LXJvd1dpZHRoPVwicm93V2lkdGhcIj5cbiAgPHRoeS1za2VsZXRvbi1yZWN0YW5nbGVcbiAgICBbdGh5Um93V2lkdGhdPVwicm93V2lkdGhcIlxuICAgIFt0aHlSb3dIZWlnaHRdPVwidGh5Um93SGVpZ2h0XCJcbiAgICBbdGh5Qm9yZGVyUmFkaXVzXT1cInRoeUJvcmRlclJhZGl1c1wiXG4gICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICBbdGh5QW5pbWF0ZWRJbnRlcnZhbF09XCJ0aHlBbmltYXRlZEludGVydmFsXCJcbiAgICBbdGh5UHJpbWFyeUNvbG9yXT1cInRoeVByaW1hcnlDb2xvclwiXG4gICAgW3RoeVNlY29uZGFyeUNvbG9yXT1cInRoeVNlY29uZGFyeUNvbG9yXCI+PC90aHktc2tlbGV0b24tcmVjdGFuZ2xlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==