ngx-tethys 17.0.0-next.1 → 17.0.0-next.3

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 (745) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/action/action.component.d.ts +3 -3
  3. package/action/action.module.d.ts +1 -1
  4. package/action/actions.component.d.ts +5 -5
  5. package/affix/affix.component.d.ts +3 -3
  6. package/affix/affix.module.d.ts +1 -1
  7. package/alert/alert.component.d.ts +3 -3
  8. package/alert/alert.module.d.ts +1 -1
  9. package/anchor/anchor-link.component.d.ts +5 -5
  10. package/anchor/anchor.component.d.ts +9 -9
  11. package/anchor/anchor.module.d.ts +1 -1
  12. package/arrow-switcher/arrow-switcher.component.d.ts +3 -3
  13. package/arrow-switcher/module.d.ts +1 -1
  14. package/autocomplete/autocomplete.component.d.ts +9 -9
  15. package/autocomplete/autocomplete.trigger.directive.d.ts +6 -6
  16. package/autocomplete/module.d.ts +1 -1
  17. package/autocomplete/overlay/autocomplete-container.component.d.ts +3 -3
  18. package/autocomplete/overlay/autocomplete-ref.d.ts +4 -4
  19. package/autocomplete/overlay/autocomplete.service.d.ts +5 -5
  20. package/avatar/avatar-list/avatar-list.component.d.ts +6 -6
  21. package/avatar/avatar.component.d.ts +3 -3
  22. package/avatar/avatar.module.d.ts +1 -1
  23. package/back-top/back-top.component.d.ts +3 -3
  24. package/back-top/back-top.module.d.ts +1 -1
  25. package/badge/badge.component.d.ts +3 -3
  26. package/badge/badge.module.d.ts +1 -1
  27. package/breadcrumb/breadcrumb-item.component.d.ts +3 -3
  28. package/breadcrumb/breadcrumb.component.d.ts +3 -3
  29. package/breadcrumb/module.d.ts +1 -1
  30. package/button/button-group.component.d.ts +3 -3
  31. package/button/button-icon.component.d.ts +3 -3
  32. package/button/button.component.d.ts +3 -3
  33. package/button/button.module.d.ts +1 -1
  34. package/calendar/calendar-header.component.d.ts +3 -3
  35. package/calendar/calendar.component.d.ts +3 -3
  36. package/calendar/module.d.ts +1 -1
  37. package/card/card.component.d.ts +3 -3
  38. package/card/card.module.d.ts +1 -1
  39. package/card/content.component.d.ts +3 -3
  40. package/card/header.component.d.ts +3 -3
  41. package/carousel/carousel.component.d.ts +3 -3
  42. package/carousel/engine/carousel-base.d.ts +3 -3
  43. package/carousel/engine/carousel-fade.d.ts +2 -2
  44. package/carousel/engine/carousel-noop.d.ts +2 -2
  45. package/carousel/engine/carousel-slide.d.ts +2 -2
  46. package/carousel/module.d.ts +1 -1
  47. package/cascader/cascader.component.d.ts +3 -3
  48. package/cascader/module.d.ts +1 -1
  49. package/checkbox/checkbox.component.d.ts +3 -3
  50. package/checkbox/module.d.ts +1 -1
  51. package/collapse/collapse-item.component.d.ts +5 -5
  52. package/collapse/collapse.component.d.ts +7 -7
  53. package/collapse/module.d.ts +1 -1
  54. package/color-picker/color-picker-custom-panel.component.d.ts +3 -3
  55. package/color-picker/color-picker-panel.component.d.ts +6 -6
  56. package/color-picker/color-picker.component.d.ts +3 -3
  57. package/color-picker/module.d.ts +1 -1
  58. package/color-picker/parts/alpha/alpha.component.d.ts +3 -3
  59. package/color-picker/parts/hue/hue.component.d.ts +3 -3
  60. package/color-picker/parts/indicator/indicator.component.d.ts +3 -3
  61. package/color-picker/parts/inputs/inputs.component.d.ts +3 -3
  62. package/color-picker/parts/saturation/saturation.component.d.ts +3 -3
  63. package/comment/comment.component.d.ts +3 -3
  64. package/comment/comment.module.d.ts +1 -1
  65. package/date-picker/abstract-picker.component.d.ts +2 -2
  66. package/date-picker/base-picker.component.d.ts +5 -5
  67. package/date-picker/date-picker.component.d.ts +4 -4
  68. package/date-picker/date-picker.module.d.ts +1 -1
  69. package/date-picker/lib/calendar/calendar-footer.component.d.ts +3 -3
  70. package/date-picker/lib/date/date-header.component.d.ts +3 -3
  71. package/date-picker/lib/date/date-table-cell.component.d.ts +3 -3
  72. package/date-picker/lib/date/date-table.component.d.ts +3 -3
  73. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +3 -3
  74. package/date-picker/lib/decade/decade-header.component.d.ts +3 -3
  75. package/date-picker/lib/decade/decade-table.component.d.ts +3 -3
  76. package/date-picker/lib/lib-packer.module.d.ts +1 -1
  77. package/date-picker/lib/month/month-header.component.d.ts +3 -3
  78. package/date-picker/lib/month/month-table.component.d.ts +3 -3
  79. package/date-picker/lib/popups/date-popup.component.d.ts +4 -4
  80. package/date-picker/lib/popups/inner-popup.component.d.ts +3 -3
  81. package/date-picker/lib/quarter/quarter-table.component.d.ts +3 -3
  82. package/date-picker/lib/year/year-header.component.d.ts +3 -3
  83. package/date-picker/lib/year/year-table.component.d.ts +3 -3
  84. package/date-picker/month-picker.component.d.ts +4 -4
  85. package/date-picker/picker.component.d.ts +3 -3
  86. package/date-picker/quarter-picker.component.d.ts +4 -4
  87. package/date-picker/range-picker.component.d.ts +4 -4
  88. package/date-picker/week-picker.component.d.ts +4 -4
  89. package/date-picker/year-picker.component.d.ts +4 -4
  90. package/date-range/date-range.component.d.ts +3 -3
  91. package/date-range/module.d.ts +1 -1
  92. package/date-range/optional-dates/optional-dates.component.d.ts +3 -3
  93. package/dialog/body/dialog-body.component.d.ts +3 -3
  94. package/dialog/confirm/confirm.component.d.ts +4 -4
  95. package/dialog/dialog-container.component.d.ts +3 -3
  96. package/dialog/dialog-ref.d.ts +4 -4
  97. package/dialog/dialog.module.d.ts +1 -1
  98. package/dialog/dialog.service.d.ts +5 -5
  99. package/dialog/footer/dialog-footer.component.d.ts +3 -3
  100. package/dialog/header/dialog-header.component.d.ts +5 -5
  101. package/dialog/index.d.ts +1 -1
  102. package/divider/divider.component.d.ts +3 -3
  103. package/divider/divider.module.d.ts +1 -1
  104. package/dot/dot.component.d.ts +3 -3
  105. package/dot/dot.module.d.ts +1 -1
  106. package/dropdown/dropdown-menu.component.d.ts +6 -6
  107. package/dropdown/dropdown-submenu.component.d.ts +3 -3
  108. package/dropdown/module.d.ts +1 -1
  109. package/empty/empty.component.d.ts +3 -3
  110. package/empty/empty.module.d.ts +1 -1
  111. package/esm2022/action/action.component.mjs +10 -10
  112. package/esm2022/action/action.module.mjs +7 -7
  113. package/esm2022/action/actions.component.mjs +7 -7
  114. package/esm2022/affix/affix.component.mjs +7 -7
  115. package/esm2022/affix/affix.module.mjs +5 -5
  116. package/esm2022/alert/alert.component.mjs +8 -8
  117. package/esm2022/alert/alert.module.mjs +6 -6
  118. package/esm2022/anchor/anchor-link.component.mjs +7 -7
  119. package/esm2022/anchor/anchor.component.mjs +11 -11
  120. package/esm2022/anchor/anchor.module.mjs +7 -7
  121. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +13 -13
  122. package/esm2022/arrow-switcher/module.mjs +6 -6
  123. package/esm2022/autocomplete/autocomplete.component.mjs +13 -13
  124. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +2 -2
  125. package/esm2022/autocomplete/module.mjs +10 -10
  126. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +5 -5
  127. package/esm2022/autocomplete/overlay/autocomplete-ref.mjs +1 -1
  128. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +4 -4
  129. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +8 -8
  130. package/esm2022/avatar/avatar.component.mjs +11 -11
  131. package/esm2022/avatar/avatar.module.mjs +7 -7
  132. package/esm2022/back-top/back-top.component.mjs +8 -8
  133. package/esm2022/back-top/back-top.module.mjs +6 -6
  134. package/esm2022/badge/badge.component.mjs +10 -10
  135. package/esm2022/badge/badge.module.mjs +5 -5
  136. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  137. package/esm2022/breadcrumb/breadcrumb.component.mjs +8 -8
  138. package/esm2022/breadcrumb/module.mjs +7 -7
  139. package/esm2022/button/button-group.component.mjs +5 -5
  140. package/esm2022/button/button-icon.component.mjs +9 -9
  141. package/esm2022/button/button.component.mjs +9 -9
  142. package/esm2022/button/button.module.mjs +8 -8
  143. package/esm2022/calendar/calendar-header.component.mjs +8 -8
  144. package/esm2022/calendar/calendar.component.mjs +8 -8
  145. package/esm2022/calendar/module.mjs +11 -11
  146. package/esm2022/card/card.component.mjs +8 -8
  147. package/esm2022/card/card.module.mjs +7 -7
  148. package/esm2022/card/content.component.mjs +5 -5
  149. package/esm2022/card/header.component.mjs +5 -5
  150. package/esm2022/carousel/carousel.component.mjs +13 -13
  151. package/esm2022/carousel/engine/carousel-base.mjs +1 -1
  152. package/esm2022/carousel/engine/carousel-fade.mjs +1 -1
  153. package/esm2022/carousel/engine/carousel-noop.mjs +1 -1
  154. package/esm2022/carousel/engine/carousel-slide.mjs +1 -1
  155. package/esm2022/carousel/module.mjs +5 -5
  156. package/esm2022/cascader/cascader-li.component.mjs +6 -6
  157. package/esm2022/cascader/cascader-search-option.component.mjs +7 -16
  158. package/esm2022/cascader/cascader.component.mjs +22 -22
  159. package/esm2022/cascader/module.mjs +7 -7
  160. package/esm2022/checkbox/checkbox.component.mjs +8 -8
  161. package/esm2022/checkbox/module.mjs +5 -5
  162. package/esm2022/collapse/collapse-item.component.mjs +11 -11
  163. package/esm2022/collapse/collapse.component.mjs +6 -6
  164. package/esm2022/collapse/module.mjs +7 -7
  165. package/esm2022/color-picker/color-picker-custom-panel.component.mjs +11 -11
  166. package/esm2022/color-picker/color-picker-panel.component.mjs +10 -10
  167. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  168. package/esm2022/color-picker/module.mjs +25 -25
  169. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +5 -5
  170. package/esm2022/color-picker/parts/hue/hue.component.mjs +5 -5
  171. package/esm2022/color-picker/parts/indicator/indicator.component.mjs +5 -5
  172. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +7 -7
  173. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +5 -5
  174. package/esm2022/comment/comment.component.mjs +7 -7
  175. package/esm2022/comment/comment.module.mjs +7 -7
  176. package/esm2022/date-picker/abstract-picker.component.mjs +4 -4
  177. package/esm2022/date-picker/abstract-picker.directive.mjs +3 -3
  178. package/esm2022/date-picker/base-picker.component.mjs +8 -8
  179. package/esm2022/date-picker/date-picker.component.mjs +12 -12
  180. package/esm2022/date-picker/date-picker.module.mjs +44 -44
  181. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +10 -10
  182. package/esm2022/date-picker/lib/date/date-header.component.mjs +7 -7
  183. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +5 -5
  184. package/esm2022/date-picker/lib/date/date-table.component.mjs +7 -7
  185. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +11 -11
  186. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +7 -7
  187. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +5 -5
  188. package/esm2022/date-picker/lib/lib-packer.module.mjs +79 -79
  189. package/esm2022/date-picker/lib/month/month-header.component.mjs +7 -7
  190. package/esm2022/date-picker/lib/month/month-table.component.mjs +5 -5
  191. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +15 -15
  192. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +23 -23
  193. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +5 -5
  194. package/esm2022/date-picker/lib/year/year-header.component.mjs +7 -7
  195. package/esm2022/date-picker/lib/year/year-table.component.mjs +5 -5
  196. package/esm2022/date-picker/month-picker.component.mjs +12 -12
  197. package/esm2022/date-picker/picker.component.mjs +8 -8
  198. package/esm2022/date-picker/quarter-picker.component.mjs +12 -12
  199. package/esm2022/date-picker/range-picker.component.mjs +12 -12
  200. package/esm2022/date-picker/week-picker.component.mjs +12 -12
  201. package/esm2022/date-picker/year-picker.component.mjs +12 -12
  202. package/esm2022/date-range/date-range.component.mjs +13 -13
  203. package/esm2022/date-range/module.mjs +10 -10
  204. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +7 -7
  205. package/esm2022/dialog/body/dialog-body.component.mjs +5 -5
  206. package/esm2022/dialog/confirm/confirm.component.mjs +10 -18
  207. package/esm2022/dialog/dialog-container.component.mjs +5 -5
  208. package/esm2022/dialog/dialog-ref.mjs +1 -1
  209. package/esm2022/dialog/dialog.module.mjs +22 -22
  210. package/esm2022/dialog/dialog.service.mjs +4 -4
  211. package/esm2022/dialog/footer/dialog-footer.component.mjs +6 -6
  212. package/esm2022/dialog/header/dialog-header.component.mjs +11 -11
  213. package/esm2022/dialog/index.mjs +2 -2
  214. package/esm2022/divider/divider.component.mjs +7 -7
  215. package/esm2022/divider/divider.module.mjs +5 -5
  216. package/esm2022/dot/dot.component.mjs +5 -5
  217. package/esm2022/dot/dot.module.mjs +5 -5
  218. package/esm2022/dropdown/dropdown-menu.component.mjs +9 -9
  219. package/esm2022/dropdown/dropdown-submenu.component.mjs +5 -5
  220. package/esm2022/dropdown/module.mjs +15 -15
  221. package/esm2022/empty/empty.component.mjs +8 -8
  222. package/esm2022/empty/empty.module.mjs +6 -6
  223. package/esm2022/flexible-text/flexible-text.component.mjs +7 -7
  224. package/esm2022/flexible-text/flexible-text.module.mjs +5 -5
  225. package/esm2022/form/form-group-error/form-group-error.component.mjs +8 -8
  226. package/esm2022/form/form-group.component.mjs +8 -8
  227. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +5 -5
  228. package/esm2022/form/module.mjs +18 -18
  229. package/esm2022/grid/module.mjs +6 -6
  230. package/esm2022/grid/thy-grid-item.component.mjs +5 -5
  231. package/esm2022/grid/thy-grid.component.mjs +4 -4
  232. package/esm2022/guider/guider-hint/guider-hint.component.mjs +6 -6
  233. package/esm2022/guider/guider.module.mjs +6 -24
  234. package/esm2022/icon/icon.component.mjs +8 -8
  235. package/esm2022/icon/icon.module.mjs +5 -5
  236. package/esm2022/icon/index.mjs +2 -2
  237. package/esm2022/image/image-group.component.mjs +5 -5
  238. package/esm2022/image/image.directive.mjs +3 -3
  239. package/esm2022/image/image.service.mjs +3 -3
  240. package/esm2022/image/module.mjs +9 -9
  241. package/esm2022/image/preview/image-preview-ref.mjs +1 -1
  242. package/esm2022/image/preview/image-preview.component.mjs +10 -21
  243. package/esm2022/input/input-count.component.mjs +7 -7
  244. package/esm2022/input/input-group.component.mjs +5 -5
  245. package/esm2022/input/input-search.component.mjs +9 -9
  246. package/esm2022/input/input.component.mjs +10 -10
  247. package/esm2022/input/module.mjs +16 -16
  248. package/esm2022/input-number/input-number.component.mjs +14 -14
  249. package/esm2022/input-number/module.mjs +6 -6
  250. package/esm2022/layout/content-main.component.mjs +5 -5
  251. package/esm2022/layout/content-section.component.mjs +5 -5
  252. package/esm2022/layout/content.component.mjs +5 -5
  253. package/esm2022/layout/header.component.mjs +7 -7
  254. package/esm2022/layout/layout.component.mjs +5 -5
  255. package/esm2022/layout/layout.module.mjs +48 -48
  256. package/esm2022/layout/sidebar-content.component.mjs +5 -5
  257. package/esm2022/layout/sidebar-footer.component.mjs +5 -5
  258. package/esm2022/layout/sidebar-header.component.mjs +5 -5
  259. package/esm2022/layout/sidebar.component.mjs +15 -24
  260. package/esm2022/list/list-item-meta.component.mjs +7 -7
  261. package/esm2022/list/list-item.component.mjs +5 -5
  262. package/esm2022/list/list.component.mjs +6 -6
  263. package/esm2022/list/list.module.mjs +9 -26
  264. package/esm2022/list/selection/selection-list.mjs +12 -12
  265. package/esm2022/list/selection/selection.interface.mjs +1 -1
  266. package/esm2022/loading/loading.component.mjs +7 -7
  267. package/esm2022/loading/loading.module.mjs +5 -5
  268. package/esm2022/mention/mention.directive.mjs +3 -3
  269. package/esm2022/mention/mention.module.mjs +5 -24
  270. package/esm2022/mention/suggestions/suggestions.component.mjs +9 -9
  271. package/esm2022/menu/divider/menu-divider.component.mjs +5 -5
  272. package/esm2022/menu/group/menu-group.component.mjs +13 -13
  273. package/esm2022/menu/item/action/menu-item-action.component.mjs +6 -6
  274. package/esm2022/menu/item/icon/menu-item-icon.component.mjs +5 -5
  275. package/esm2022/menu/item/menu-item.component.mjs +7 -7
  276. package/esm2022/menu/item/name/menu-item-name.component.mjs +6 -6
  277. package/esm2022/menu/menu.component.mjs +6 -6
  278. package/esm2022/menu/menu.module.mjs +25 -39
  279. package/esm2022/message/message-container.component.mjs +7 -7
  280. package/esm2022/message/message.component.mjs +7 -7
  281. package/esm2022/message/message.service.mjs +3 -3
  282. package/esm2022/message/module.mjs +7 -7
  283. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +7 -7
  284. package/esm2022/nav/icon-nav/icon-nav.component.mjs +5 -5
  285. package/esm2022/nav/nav.component.mjs +11 -11
  286. package/esm2022/nav/nav.module.mjs +14 -14
  287. package/esm2022/notify/module.mjs +7 -7
  288. package/esm2022/notify/notify-container.component.mjs +7 -7
  289. package/esm2022/notify/notify.component.mjs +7 -7
  290. package/esm2022/notify/notify.service.mjs +3 -3
  291. package/esm2022/pagination/pagination.component.mjs +20 -30
  292. package/esm2022/pagination/pagination.module.mjs +6 -25
  293. package/esm2022/popover/body/popover-body.component.mjs +5 -5
  294. package/esm2022/popover/header/popover-header.component.mjs +7 -7
  295. package/esm2022/popover/module.mjs +13 -13
  296. package/esm2022/popover/popover-container.component.mjs +5 -5
  297. package/esm2022/popover/popover-ref.mjs +1 -1
  298. package/esm2022/popover/popover.service.mjs +4 -4
  299. package/esm2022/progress/progress-circle.component.mjs +8 -8
  300. package/esm2022/progress/progress-strip.component.mjs +6 -6
  301. package/esm2022/progress/progress.component.mjs +15 -15
  302. package/esm2022/progress/progress.module.mjs +7 -7
  303. package/esm2022/property/module.mjs +7 -7
  304. package/esm2022/property/properties.component.mjs +6 -6
  305. package/esm2022/property/property-item.component.mjs +11 -11
  306. package/esm2022/property-operation/group/property-operation-group.component.mjs +5 -5
  307. package/esm2022/property-operation/module.mjs +7 -23
  308. package/esm2022/property-operation/property-operation.component.mjs +14 -14
  309. package/esm2022/radio/button/radio-button.component.mjs +8 -8
  310. package/esm2022/radio/group/radio-group.component.mjs +8 -8
  311. package/esm2022/radio/module.mjs +7 -7
  312. package/esm2022/radio/radio.component.mjs +9 -9
  313. package/esm2022/rate/module.mjs +7 -7
  314. package/esm2022/rate/rate-item.component.mjs +9 -9
  315. package/esm2022/rate/rate.component.mjs +13 -13
  316. package/esm2022/resizable/module.mjs +6 -6
  317. package/esm2022/resizable/resize-handle.component.mjs +6 -6
  318. package/esm2022/resizable/resize-handles.component.mjs +8 -8
  319. package/esm2022/result/result.component.mjs +5 -5
  320. package/esm2022/result/result.module.mjs +5 -5
  321. package/esm2022/segment/segment-item.component.mjs +8 -8
  322. package/esm2022/segment/segment.component.mjs +12 -12
  323. package/esm2022/segment/segment.module.mjs +7 -7
  324. package/esm2022/segment/segment.token.mjs +1 -1
  325. package/esm2022/select/custom-select/custom-select.component.mjs +37 -37
  326. package/esm2022/select/index.mjs +3 -3
  327. package/esm2022/select/module.mjs +10 -10
  328. package/esm2022/select/native-select/native-select.component.mjs +103 -0
  329. package/esm2022/shared/option/group/option-group.component.mjs +11 -11
  330. package/esm2022/shared/option/list-option/list-option.component.mjs +8 -8
  331. package/esm2022/shared/option/module.mjs +10 -37
  332. package/esm2022/shared/option/option-group.component.mjs +5 -5
  333. package/esm2022/shared/option/option.component.mjs +8 -8
  334. package/esm2022/shared/option/option.token.mjs +1 -1
  335. package/esm2022/shared/option/options-container.component.mjs +5 -5
  336. package/esm2022/shared/select/module.mjs +6 -6
  337. package/esm2022/shared/select/select-control/select-control.component.mjs +15 -15
  338. package/esm2022/skeleton/module.mjs +9 -26
  339. package/esm2022/skeleton/skeleton-circle.component.mjs +9 -9
  340. package/esm2022/skeleton/skeleton-rectangle.component.mjs +11 -11
  341. package/esm2022/skeleton/skeleton.component.mjs +6 -6
  342. package/esm2022/skeleton/stylized/bullet-list.component.mjs +14 -14
  343. package/esm2022/skeleton/stylized/list.component.mjs +12 -12
  344. package/esm2022/skeleton/stylized/paragraph.component.mjs +14 -14
  345. package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -5
  346. package/esm2022/slide/slide-body/slide-body.component.mjs +5 -5
  347. package/esm2022/slide/slide-container.component.mjs +5 -5
  348. package/esm2022/slide/slide-footer/slide-footer.component.mjs +5 -5
  349. package/esm2022/slide/slide-header/slide-header.component.mjs +8 -8
  350. package/esm2022/slide/slide-layout/slide-layout.component.mjs +5 -5
  351. package/esm2022/slide/slide-ref.service.mjs +4 -4
  352. package/esm2022/slide/slide.module.mjs +23 -35
  353. package/esm2022/slide/slide.service.mjs +4 -4
  354. package/esm2022/slider/slider.component.mjs +12 -12
  355. package/esm2022/slider/slider.module.mjs +5 -5
  356. package/esm2022/space/space.component.mjs +6 -6
  357. package/esm2022/space/space.module.mjs +5 -5
  358. package/esm2022/statistic/statistic.component.mjs +5 -5
  359. package/esm2022/statistic/statistic.module.mjs +5 -5
  360. package/esm2022/stepper/step-header.component.mjs +8 -8
  361. package/esm2022/stepper/step.component.mjs +5 -5
  362. package/esm2022/stepper/stepper-button.directive.mjs +6 -6
  363. package/esm2022/stepper/stepper.component.mjs +15 -15
  364. package/esm2022/stepper/stepper.module.mjs +7 -19
  365. package/esm2022/strength/strength.component.mjs +7 -7
  366. package/esm2022/strength/strength.module.mjs +5 -5
  367. package/esm2022/switch/switch.component.mjs +8 -8
  368. package/esm2022/switch/switch.module.mjs +5 -5
  369. package/esm2022/table/table-skeleton.component.mjs +12 -12
  370. package/esm2022/table/table.component.mjs +34 -34
  371. package/esm2022/table/table.module.mjs +10 -10
  372. package/esm2022/tabs/tab-content.component.mjs +5 -5
  373. package/esm2022/tabs/tab.component.mjs +6 -6
  374. package/esm2022/tabs/tabs.component.mjs +12 -12
  375. package/esm2022/tabs/tabs.module.mjs +8 -8
  376. package/esm2022/tag/tag.component.mjs +6 -6
  377. package/esm2022/tag/tag.module.mjs +6 -6
  378. package/esm2022/tag/tags.component.mjs +5 -5
  379. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +6 -6
  380. package/esm2022/time-picker/time-picker-panel.component.mjs +12 -12
  381. package/esm2022/time-picker/time-picker.component.mjs +17 -17
  382. package/esm2022/time-picker/time-picker.module.mjs +7 -7
  383. package/esm2022/timeline/timeline-item.component.mjs +5 -5
  384. package/esm2022/timeline/timeline.component.mjs +8 -8
  385. package/esm2022/timeline/timeline.module.mjs +6 -6
  386. package/esm2022/tooltip/tooltip-ref.mjs +3 -3
  387. package/esm2022/tooltip/tooltip.component.mjs +5 -5
  388. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  389. package/esm2022/transfer/transfer-list.component.mjs +7 -18
  390. package/esm2022/transfer/transfer.component.mjs +9 -9
  391. package/esm2022/transfer/transfer.module.mjs +10 -10
  392. package/esm2022/tree/tree-node.component.mjs +5 -5
  393. package/esm2022/tree/tree.component.mjs +17 -17
  394. package/esm2022/tree/tree.module.mjs +7 -7
  395. package/esm2022/tree-select/module.mjs +9 -9
  396. package/esm2022/tree-select/tree-select.component.mjs +29 -29
  397. package/esm2022/typography/module.mjs +6 -6
  398. package/esm2022/typography/text/text.component.mjs +7 -7
  399. package/esm2022/upload/file-select.component.mjs +8 -8
  400. package/esm2022/upload/module.mjs +5 -5
  401. package/esm2022/version.mjs +2 -2
  402. package/esm2022/vote/vote.component.mjs +10 -10
  403. package/esm2022/vote/vote.module.mjs +6 -6
  404. package/fesm2022/ngx-tethys-action.mjs +19 -19
  405. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  406. package/fesm2022/ngx-tethys-affix.mjs +10 -10
  407. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  408. package/fesm2022/ngx-tethys-alert.mjs +12 -12
  409. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  410. package/fesm2022/ngx-tethys-anchor.mjs +20 -20
  411. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  412. package/fesm2022/ngx-tethys-arrow-switcher.mjs +17 -17
  413. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  414. package/fesm2022/ngx-tethys-autocomplete.mjs +26 -26
  415. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  416. package/fesm2022/ngx-tethys-avatar.mjs +21 -21
  417. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  418. package/fesm2022/ngx-tethys-back-top.mjs +12 -12
  419. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  420. package/fesm2022/ngx-tethys-badge.mjs +13 -13
  421. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  422. package/fesm2022/ngx-tethys-breadcrumb.mjs +17 -17
  423. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  424. package/fesm2022/ngx-tethys-button.mjs +24 -24
  425. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  426. package/fesm2022/ngx-tethys-calendar.mjs +22 -22
  427. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  428. package/fesm2022/ngx-tethys-card.mjs +19 -19
  429. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  430. package/fesm2022/ngx-tethys-carousel.mjs +16 -16
  431. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  432. package/fesm2022/ngx-tethys-cascader.mjs +35 -44
  433. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  434. package/fesm2022/ngx-tethys-checkbox.mjs +11 -11
  435. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  436. package/fesm2022/ngx-tethys-collapse.mjs +19 -19
  437. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  438. package/fesm2022/ngx-tethys-color-picker.mjs +54 -54
  439. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  440. package/fesm2022/ngx-tethys-comment.mjs +12 -12
  441. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  442. package/fesm2022/ngx-tethys-date-picker.mjs +248 -248
  443. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  444. package/fesm2022/ngx-tethys-date-range.mjs +24 -24
  445. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  446. package/fesm2022/ngx-tethys-dialog.mjs +48 -56
  447. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  448. package/fesm2022/ngx-tethys-divider.mjs +10 -10
  449. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  450. package/fesm2022/ngx-tethys-dot.mjs +8 -8
  451. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  452. package/fesm2022/ngx-tethys-dropdown.mjs +25 -25
  453. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  454. package/fesm2022/ngx-tethys-empty.mjs +12 -12
  455. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  456. package/fesm2022/ngx-tethys-flexible-text.mjs +10 -10
  457. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  458. package/fesm2022/ngx-tethys-form.mjs +33 -33
  459. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  460. package/fesm2022/ngx-tethys-grid.mjs +11 -11
  461. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  462. package/fesm2022/ngx-tethys-guider.mjs +10 -28
  463. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  464. package/fesm2022/ngx-tethys-icon.mjs +11 -11
  465. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  466. package/fesm2022/ngx-tethys-image.mjs +22 -33
  467. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  468. package/fesm2022/ngx-tethys-input-number.mjs +18 -18
  469. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  470. package/fesm2022/ngx-tethys-input.mjs +37 -37
  471. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  472. package/fesm2022/ngx-tethys-layout.mjs +86 -95
  473. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  474. package/fesm2022/ngx-tethys-list.mjs +31 -48
  475. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  476. package/fesm2022/ngx-tethys-loading.mjs +10 -10
  477. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  478. package/fesm2022/ngx-tethys-mention.mjs +13 -32
  479. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  480. package/fesm2022/ngx-tethys-menu.mjs +58 -72
  481. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  482. package/fesm2022/ngx-tethys-message.mjs +17 -17
  483. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  484. package/fesm2022/ngx-tethys-nav.mjs +30 -30
  485. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  486. package/fesm2022/ngx-tethys-notify.mjs +17 -17
  487. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  488. package/fesm2022/ngx-tethys-pagination.mjs +24 -53
  489. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  490. package/fesm2022/ngx-tethys-popover.mjs +26 -26
  491. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  492. package/fesm2022/ngx-tethys-progress.mjs +28 -28
  493. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  494. package/fesm2022/ngx-tethys-property-operation.mjs +22 -38
  495. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  496. package/fesm2022/ngx-tethys-property.mjs +19 -19
  497. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  498. package/fesm2022/ngx-tethys-radio.mjs +23 -23
  499. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  500. package/fesm2022/ngx-tethys-rate.mjs +24 -24
  501. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  502. package/fesm2022/ngx-tethys-resizable.mjs +15 -15
  503. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  504. package/fesm2022/ngx-tethys-result.mjs +8 -8
  505. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  506. package/fesm2022/ngx-tethys-segment.mjs +22 -22
  507. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  508. package/fesm2022/ngx-tethys-select.mjs +58 -58
  509. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  510. package/fesm2022/ngx-tethys-shared.mjs +52 -79
  511. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  512. package/fesm2022/ngx-tethys-skeleton.mjs +57 -74
  513. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  514. package/fesm2022/ngx-tethys-slide.mjs +48 -60
  515. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  516. package/fesm2022/ngx-tethys-slider.mjs +15 -15
  517. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  518. package/fesm2022/ngx-tethys-space.mjs +9 -9
  519. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  520. package/fesm2022/ngx-tethys-statistic.mjs +8 -8
  521. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  522. package/fesm2022/ngx-tethys-stepper.mjs +31 -43
  523. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  524. package/fesm2022/ngx-tethys-strength.mjs +10 -10
  525. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  526. package/fesm2022/ngx-tethys-switch.mjs +11 -11
  527. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  528. package/fesm2022/ngx-tethys-table.mjs +51 -51
  529. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  530. package/fesm2022/ngx-tethys-tabs.mjs +23 -23
  531. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  532. package/fesm2022/ngx-tethys-tag.mjs +13 -13
  533. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  534. package/fesm2022/ngx-tethys-time-picker.mjs +35 -35
  535. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  536. package/fesm2022/ngx-tethys-timeline.mjs +14 -14
  537. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  538. package/fesm2022/ngx-tethys-tooltip.mjs +8 -8
  539. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  540. package/fesm2022/ngx-tethys-transfer.mjs +21 -32
  541. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  542. package/fesm2022/ngx-tethys-tree-select.mjs +36 -36
  543. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  544. package/fesm2022/ngx-tethys-tree.mjs +26 -26
  545. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  546. package/fesm2022/ngx-tethys-typography.mjs +11 -11
  547. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  548. package/fesm2022/ngx-tethys-upload.mjs +11 -11
  549. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  550. package/fesm2022/ngx-tethys-vote.mjs +14 -14
  551. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  552. package/fesm2022/ngx-tethys.mjs +1 -1
  553. package/fesm2022/ngx-tethys.mjs.map +1 -1
  554. package/flexible-text/flexible-text.component.d.ts +3 -3
  555. package/flexible-text/flexible-text.module.d.ts +1 -1
  556. package/form/form-group-error/form-group-error.component.d.ts +3 -3
  557. package/form/form-group.component.d.ts +3 -3
  558. package/form/from-group-footer/form-group-footer.component.d.ts +3 -3
  559. package/form/module.d.ts +1 -1
  560. package/grid/module.d.ts +1 -1
  561. package/grid/thy-grid-item.component.d.ts +4 -4
  562. package/grid/thy-grid.component.d.ts +2 -2
  563. package/guider/guider-hint/guider-hint.component.d.ts +3 -3
  564. package/guider/guider.module.d.ts +1 -1
  565. package/icon/icon.component.d.ts +3 -3
  566. package/icon/icon.module.d.ts +1 -1
  567. package/icon/index.d.ts +1 -1
  568. package/image/image-group.component.d.ts +3 -3
  569. package/image/module.d.ts +1 -1
  570. package/image/preview/image-preview-ref.d.ts +4 -4
  571. package/image/preview/image-preview.component.d.ts +4 -4
  572. package/input/input-count.component.d.ts +5 -5
  573. package/input/input-group.component.d.ts +4 -4
  574. package/input/input-search.component.d.ts +3 -3
  575. package/input/input.component.d.ts +3 -3
  576. package/input/module.d.ts +1 -1
  577. package/input-number/input-number.component.d.ts +3 -3
  578. package/input-number/module.d.ts +1 -1
  579. package/layout/content-main.component.d.ts +3 -3
  580. package/layout/content-section.component.d.ts +3 -3
  581. package/layout/content.component.d.ts +3 -3
  582. package/layout/header.component.d.ts +3 -3
  583. package/layout/layout.component.d.ts +3 -3
  584. package/layout/layout.module.d.ts +1 -1
  585. package/layout/sidebar-content.component.d.ts +3 -3
  586. package/layout/sidebar-footer.component.d.ts +3 -3
  587. package/layout/sidebar-header.component.d.ts +3 -3
  588. package/layout/sidebar.component.d.ts +3 -3
  589. package/list/list-item-meta.component.d.ts +3 -3
  590. package/list/list-item.component.d.ts +3 -3
  591. package/list/list.component.d.ts +3 -3
  592. package/list/list.module.d.ts +1 -1
  593. package/list/selection/selection-list.d.ts +9 -9
  594. package/list/selection/selection.interface.d.ts +4 -4
  595. package/loading/loading.component.d.ts +3 -3
  596. package/loading/loading.module.d.ts +1 -1
  597. package/mention/mention.directive.d.ts +2 -2
  598. package/mention/mention.module.d.ts +1 -1
  599. package/mention/suggestions/suggestions.component.d.ts +3 -3
  600. package/menu/divider/menu-divider.component.d.ts +3 -3
  601. package/menu/group/menu-group.component.d.ts +3 -3
  602. package/menu/item/action/menu-item-action.component.d.ts +3 -3
  603. package/menu/item/icon/menu-item-icon.component.d.ts +3 -3
  604. package/menu/item/menu-item.component.d.ts +3 -3
  605. package/menu/item/name/menu-item-name.component.d.ts +3 -3
  606. package/menu/menu.component.d.ts +3 -3
  607. package/menu/menu.module.d.ts +1 -1
  608. package/message/message-container.component.d.ts +3 -3
  609. package/message/message.component.d.ts +3 -3
  610. package/message/message.service.d.ts +2 -2
  611. package/message/module.d.ts +1 -1
  612. package/nav/icon-nav/icon-nav-link.directive.d.ts +3 -3
  613. package/nav/icon-nav/icon-nav.component.d.ts +3 -3
  614. package/nav/nav.component.d.ts +3 -3
  615. package/nav/nav.module.d.ts +1 -1
  616. package/notify/module.d.ts +1 -1
  617. package/notify/notify-container.component.d.ts +3 -3
  618. package/notify/notify.component.d.ts +3 -3
  619. package/notify/notify.service.d.ts +2 -2
  620. package/package.json +134 -134
  621. package/pagination/pagination.component.d.ts +3 -3
  622. package/pagination/pagination.module.d.ts +1 -1
  623. package/popover/body/popover-body.component.d.ts +3 -3
  624. package/popover/header/popover-header.component.d.ts +3 -3
  625. package/popover/module.d.ts +1 -1
  626. package/popover/popover-container.component.d.ts +3 -3
  627. package/popover/popover-ref.d.ts +4 -4
  628. package/popover/popover.service.d.ts +5 -5
  629. package/progress/progress-circle.component.d.ts +3 -3
  630. package/progress/progress-strip.component.d.ts +4 -4
  631. package/progress/progress.component.d.ts +6 -6
  632. package/progress/progress.module.d.ts +1 -1
  633. package/property/module.d.ts +1 -1
  634. package/property/properties.component.d.ts +3 -3
  635. package/property/property-item.component.d.ts +5 -5
  636. package/property-operation/group/property-operation-group.component.d.ts +3 -3
  637. package/property-operation/module.d.ts +1 -1
  638. package/property-operation/property-operation.component.d.ts +3 -3
  639. package/radio/button/radio-button.component.d.ts +6 -6
  640. package/radio/group/radio-group.component.d.ts +7 -7
  641. package/radio/module.d.ts +1 -1
  642. package/radio/radio.component.d.ts +6 -6
  643. package/rate/module.d.ts +1 -1
  644. package/rate/rate-item.component.d.ts +3 -3
  645. package/rate/rate.component.d.ts +3 -3
  646. package/resizable/module.d.ts +1 -1
  647. package/resizable/resize-handle.component.d.ts +3 -3
  648. package/resizable/resize-handles.component.d.ts +3 -3
  649. package/result/result.component.d.ts +3 -3
  650. package/result/result.module.d.ts +1 -1
  651. package/schematics/dependencies.js +1 -1
  652. package/schematics/ng-update/data/class-names.js +740 -4
  653. package/schematics/ng-update/update-17/index.spec.js +1 -1
  654. package/schematics/version.d.ts +1 -1
  655. package/schematics/version.js +1 -1
  656. package/segment/segment-item.component.d.ts +3 -3
  657. package/segment/segment.component.d.ts +7 -7
  658. package/segment/segment.module.d.ts +1 -1
  659. package/segment/segment.token.d.ts +3 -3
  660. package/select/custom-select/custom-select.component.d.ts +17 -17
  661. package/select/index.d.ts +2 -2
  662. package/select/module.d.ts +2 -2
  663. package/select/{select.component.d.ts → native-select/native-select.component.d.ts} +4 -4
  664. package/select/{custom-select/styles → styles}/custom-select.scss +1 -1
  665. package/select/{custom-select/styles → styles}/mixin.scss +2 -2
  666. package/select/styles/select.scss +4 -4
  667. package/shared/option/group/option-group.component.d.ts +5 -5
  668. package/shared/option/list-option/list-option.component.d.ts +3 -3
  669. package/shared/option/module.d.ts +1 -1
  670. package/shared/option/option-group.component.d.ts +3 -3
  671. package/shared/option/option.component.d.ts +6 -6
  672. package/shared/option/option.token.d.ts +7 -7
  673. package/shared/option/options-container.component.d.ts +3 -3
  674. package/shared/select/module.d.ts +1 -1
  675. package/shared/select/select-control/select-control.component.d.ts +3 -3
  676. package/shared/select/select-control/select-control.scss +1 -1
  677. package/skeleton/module.d.ts +1 -1
  678. package/skeleton/skeleton-circle.component.d.ts +5 -5
  679. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  680. package/skeleton/skeleton.component.d.ts +3 -3
  681. package/skeleton/stylized/bullet-list.component.d.ts +3 -3
  682. package/skeleton/stylized/list.component.d.ts +3 -3
  683. package/skeleton/stylized/paragraph.component.d.ts +3 -3
  684. package/slide/slide-body/slide-body-section.component.d.ts +3 -3
  685. package/slide/slide-body/slide-body.component.d.ts +3 -3
  686. package/slide/slide-container.component.d.ts +3 -3
  687. package/slide/slide-footer/slide-footer.component.d.ts +3 -3
  688. package/slide/slide-header/slide-header.component.d.ts +3 -3
  689. package/slide/slide-layout/slide-layout.component.d.ts +3 -3
  690. package/slide/slide-ref.service.d.ts +4 -4
  691. package/slide/slide.module.d.ts +1 -1
  692. package/slide/slide.service.d.ts +5 -5
  693. package/slider/slider.component.d.ts +3 -3
  694. package/slider/slider.module.d.ts +1 -1
  695. package/space/space.component.d.ts +3 -3
  696. package/space/space.module.d.ts +1 -1
  697. package/statistic/statistic.component.d.ts +3 -3
  698. package/statistic/statistic.module.d.ts +1 -1
  699. package/stepper/step-header.component.d.ts +3 -3
  700. package/stepper/step.component.d.ts +4 -4
  701. package/stepper/stepper-button.directive.d.ts +3 -3
  702. package/stepper/stepper.component.d.ts +10 -10
  703. package/stepper/stepper.module.d.ts +1 -1
  704. package/strength/strength.component.d.ts +3 -3
  705. package/strength/strength.module.d.ts +1 -1
  706. package/styles/index.scss +1 -1
  707. package/styles/mixins/index.scss +1 -1
  708. package/switch/switch.component.d.ts +3 -3
  709. package/switch/switch.module.d.ts +1 -1
  710. package/table/table-skeleton.component.d.ts +3 -3
  711. package/table/table.component.d.ts +3 -3
  712. package/table/table.module.d.ts +1 -1
  713. package/tabs/tab-content.component.d.ts +3 -3
  714. package/tabs/tab.component.d.ts +3 -3
  715. package/tabs/tabs.component.d.ts +7 -7
  716. package/tabs/tabs.module.d.ts +1 -1
  717. package/tag/tag.component.d.ts +3 -3
  718. package/tag/tag.module.d.ts +1 -1
  719. package/tag/tags.component.d.ts +3 -3
  720. package/time-picker/inner/inner-time-picker.component.d.ts +3 -3
  721. package/time-picker/time-picker-panel.component.d.ts +3 -3
  722. package/time-picker/time-picker.component.d.ts +3 -3
  723. package/time-picker/time-picker.module.d.ts +1 -1
  724. package/timeline/timeline-item.component.d.ts +3 -3
  725. package/timeline/timeline.component.d.ts +6 -6
  726. package/timeline/timeline.module.d.ts +1 -1
  727. package/tooltip/tooltip.component.d.ts +3 -3
  728. package/tooltip/tooltip.module.d.ts +1 -1
  729. package/transfer/transfer-list.component.d.ts +3 -3
  730. package/transfer/transfer.component.d.ts +3 -3
  731. package/transfer/transfer.module.d.ts +1 -1
  732. package/tree/tree.component.d.ts +3 -3
  733. package/tree/tree.module.d.ts +1 -1
  734. package/tree-select/module.d.ts +1 -1
  735. package/tree-select/tree-select.component.d.ts +8 -8
  736. package/typography/module.d.ts +1 -1
  737. package/typography/text/text.component.d.ts +3 -3
  738. package/upload/file-select.component.d.ts +3 -3
  739. package/upload/module.d.ts +1 -1
  740. package/vote/vote.component.d.ts +3 -3
  741. package/vote/vote.module.d.ts +1 -1
  742. package/divider/examples/color/color.component.scss +0 -5
  743. package/divider/examples/deeper/deeper.component.scss +0 -5
  744. package/divider/examples/with-text/with-text.component.scss +0 -5
  745. package/esm2022/select/select.component.mjs +0 -103
@@ -2,7 +2,7 @@ import { valueFunctionProp } from 'ngx-tethys/util';
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
3
3
  import { DateHelperService } from '../../date-helper.service';
4
4
  import { CalendarTable } from '../calendar/calendar-table.component';
5
- import { DateTableCellComponent } from './date-table-cell.component';
5
+ import { DateTableCell } from './date-table-cell.component';
6
6
  import { NgIf, NgFor, NgClass } from '@angular/common';
7
7
  import { ThyDatePickerConfigService } from '../../date-picker.service';
8
8
  import * as i0 from "@angular/core";
@@ -11,7 +11,7 @@ import * as i2 from "../../date-picker.service";
11
11
  /**
12
12
  * @private
13
13
  */
14
- export class DateTableComponent extends CalendarTable {
14
+ export class DateTable extends CalendarTable {
15
15
  constructor(dateHelper, datePickerConfigService) {
16
16
  super();
17
17
  this.dateHelper = dateHelper;
@@ -138,13 +138,13 @@ export class DateTableComponent extends CalendarTable {
138
138
  [`${this.prefixCls}-in-range-cell`]: !!cell.isInRange
139
139
  };
140
140
  }
141
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DateTableComponent, deps: [{ token: i1.DateHelperService }, { token: i2.ThyDatePickerConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
142
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: DateTableComponent, isStandalone: true, selector: "date-table", outputs: { dayHover: "dayHover" }, exportAs: ["dateTable"], usesInheritance: true, ngImport: i0, template: "<table class=\"{{ prefixCls }}-table\" cellSpacing=\"0\" role=\"grid\">\n <thead>\n <tr role=\"row\">\n <th *ngIf=\"showWeek\" role=\"columnheader\" title=\"\u5468\" class=\"{{ prefixCls }}-column-header {{ prefixCls }}-week-number-header\">\n <span class=\"{{ prefixCls }}-column-header-inner\">\u5468</span>\n </th>\n <th *ngFor=\"let cell of headRow\" role=\"columnheader\" title=\"{{ cell.title }}\" class=\"{{ prefixCls }}-column-header\">\n <span *ngIf=\"prefixCls === 'thy-calendar'\" class=\"{{ prefixCls }}-column-header-inner\">{{ cell.content }}</span>\n <span *ngIf=\"prefixCls === 'thy-calendar-full'\" class=\"{{ prefixCls }}-column-header-inner\">\u5468{{ cell.content }}</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"{{ prefixCls }}-tbody\">\n <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" [ngClass]=\"row.classMap\" role=\"row\">\n <td *ngIf=\"row.weekNum\" role=\"gridcell\" class=\"{{ prefixCls }}-week-number-cell\">\n {{ row.weekNum }}\n </td>\n <td\n *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n role=\"gridcell\"\n [ngClass]=\"cell.classMap\"\n (click)=\"cell.isDisabled ? null : cell.onClick()\"\n date-table-cell\n [prefixCls]=\"prefixCls\"\n [cell]=\"cell\"\n ></td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DateTableCellComponent, selector: "[date-table-cell]", inputs: ["prefixCls", "cell"], exportAs: ["dateTableCell"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DateTable, deps: [{ token: i1.DateHelperService }, { token: i2.ThyDatePickerConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: DateTable, isStandalone: true, selector: "date-table", outputs: { dayHover: "dayHover" }, exportAs: ["dateTable"], usesInheritance: true, ngImport: i0, template: "<table class=\"{{ prefixCls }}-table\" cellSpacing=\"0\" role=\"grid\">\n <thead>\n <tr role=\"row\">\n <th *ngIf=\"showWeek\" role=\"columnheader\" title=\"\u5468\" class=\"{{ prefixCls }}-column-header {{ prefixCls }}-week-number-header\">\n <span class=\"{{ prefixCls }}-column-header-inner\">\u5468</span>\n </th>\n <th *ngFor=\"let cell of headRow\" role=\"columnheader\" title=\"{{ cell.title }}\" class=\"{{ prefixCls }}-column-header\">\n <span *ngIf=\"prefixCls === 'thy-calendar'\" class=\"{{ prefixCls }}-column-header-inner\">{{ cell.content }}</span>\n <span *ngIf=\"prefixCls === 'thy-calendar-full'\" class=\"{{ prefixCls }}-column-header-inner\">\u5468{{ cell.content }}</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"{{ prefixCls }}-tbody\">\n <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" [ngClass]=\"row.classMap\" role=\"row\">\n <td *ngIf=\"row.weekNum\" role=\"gridcell\" class=\"{{ prefixCls }}-week-number-cell\">\n {{ row.weekNum }}\n </td>\n <td\n *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n role=\"gridcell\"\n [ngClass]=\"cell.classMap\"\n (click)=\"cell.isDisabled ? null : cell.onClick()\"\n date-table-cell\n [prefixCls]=\"prefixCls\"\n [cell]=\"cell\"\n ></td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DateTableCell, selector: "[date-table-cell]", inputs: ["prefixCls", "cell"], exportAs: ["dateTableCell"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
143
143
  }
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DateTableComponent, decorators: [{
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DateTable, decorators: [{
145
145
  type: Component,
146
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'date-table', exportAs: 'dateTable', standalone: true, imports: [NgIf, NgFor, NgClass, DateTableCellComponent], template: "<table class=\"{{ prefixCls }}-table\" cellSpacing=\"0\" role=\"grid\">\n <thead>\n <tr role=\"row\">\n <th *ngIf=\"showWeek\" role=\"columnheader\" title=\"\u5468\" class=\"{{ prefixCls }}-column-header {{ prefixCls }}-week-number-header\">\n <span class=\"{{ prefixCls }}-column-header-inner\">\u5468</span>\n </th>\n <th *ngFor=\"let cell of headRow\" role=\"columnheader\" title=\"{{ cell.title }}\" class=\"{{ prefixCls }}-column-header\">\n <span *ngIf=\"prefixCls === 'thy-calendar'\" class=\"{{ prefixCls }}-column-header-inner\">{{ cell.content }}</span>\n <span *ngIf=\"prefixCls === 'thy-calendar-full'\" class=\"{{ prefixCls }}-column-header-inner\">\u5468{{ cell.content }}</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"{{ prefixCls }}-tbody\">\n <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" [ngClass]=\"row.classMap\" role=\"row\">\n <td *ngIf=\"row.weekNum\" role=\"gridcell\" class=\"{{ prefixCls }}-week-number-cell\">\n {{ row.weekNum }}\n </td>\n <td\n *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n role=\"gridcell\"\n [ngClass]=\"cell.classMap\"\n (click)=\"cell.isDisabled ? null : cell.onClick()\"\n date-table-cell\n [prefixCls]=\"prefixCls\"\n [cell]=\"cell\"\n ></td>\n </tr>\n </tbody>\n</table>\n" }]
146
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'date-table', exportAs: 'dateTable', standalone: true, imports: [NgIf, NgFor, NgClass, DateTableCell], template: "<table class=\"{{ prefixCls }}-table\" cellSpacing=\"0\" role=\"grid\">\n <thead>\n <tr role=\"row\">\n <th *ngIf=\"showWeek\" role=\"columnheader\" title=\"\u5468\" class=\"{{ prefixCls }}-column-header {{ prefixCls }}-week-number-header\">\n <span class=\"{{ prefixCls }}-column-header-inner\">\u5468</span>\n </th>\n <th *ngFor=\"let cell of headRow\" role=\"columnheader\" title=\"{{ cell.title }}\" class=\"{{ prefixCls }}-column-header\">\n <span *ngIf=\"prefixCls === 'thy-calendar'\" class=\"{{ prefixCls }}-column-header-inner\">{{ cell.content }}</span>\n <span *ngIf=\"prefixCls === 'thy-calendar-full'\" class=\"{{ prefixCls }}-column-header-inner\">\u5468{{ cell.content }}</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"{{ prefixCls }}-tbody\">\n <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" [ngClass]=\"row.classMap\" role=\"row\">\n <td *ngIf=\"row.weekNum\" role=\"gridcell\" class=\"{{ prefixCls }}-week-number-cell\">\n {{ row.weekNum }}\n </td>\n <td\n *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n role=\"gridcell\"\n [ngClass]=\"cell.classMap\"\n (click)=\"cell.isDisabled ? null : cell.onClick()\"\n date-table-cell\n [prefixCls]=\"prefixCls\"\n [cell]=\"cell\"\n ></td>\n </tr>\n </tbody>\n</table>\n" }]
147
147
  }], ctorParameters: () => [{ type: i1.DateHelperService }, { type: i2.ThyDatePickerConfigService }], propDecorators: { dayHover: [{
148
148
  type: Output
149
149
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUvZGF0ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUvZGF0ZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBRXZFOztHQUVHO0FBVUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFHakQsWUFBb0IsVUFBNkIsRUFBVSx1QkFBbUQ7UUFDMUcsS0FBSyxFQUFFLENBQUM7UUFEUSxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUFVLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBNEI7UUFGM0YsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUMsQ0FBQyw2Q0FBNkM7SUFJekcsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFlO1FBQzlCLG1DQUFtQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENB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LFNBQVMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDekMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDM0QsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLHFCQUFxQixDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDOUQsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ25ELENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3BELENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3JFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1lBQ2pFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztTQUN4RCxDQUFDO0lBQ04sQ0FBQzs4R0ExSVEsa0JBQWtCO2tHQUFsQixrQkFBa0IseUpDckIvQix1M0NBNkJBLDRDRFZjLElBQUksNkZBQUUsS0FBSyxtSEFBRSxPQUFPLG9GQUFFLHNCQUFzQjs7MkZBRTdDLGtCQUFrQjtrQkFUOUIsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBRXJDLFlBQVksWUFDWixXQUFXLGNBRVQsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsc0JBQXNCLENBQUM7K0hBR3BDLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaW55RGF0ZSwgdmFsdWVGdW5jdGlvblByb3AgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGVDZWxsLCBEYXRlQm9keVJvdyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJUYWJsZSB9IGZyb20gJy4uL2NhbGVuZGFyL2NhbGVuZGFyLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXRhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYsIE5nRm9yLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRoeURhdGVQaWNrZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIuc2VydmljZSc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RhdGUtdGFibGUnLFxuICAgIGV4cG9ydEFzOiAnZGF0ZVRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RhdGUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBOZ0NsYXNzLCBEYXRlVGFibGVDZWxsQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGFibGVDb21wb25lbnQgZXh0ZW5kcyBDYWxlbmRhclRhYmxlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgZGF5SG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFRpbnlEYXRlPigpOyAvLyBFbWl0dGVkIHdoZW4gaG92ZXIgb24gYSBkYXkgYnkgbW91c2UgZW50ZXJcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUhlbHBlcjogRGF0ZUhlbHBlclNlcnZpY2UsIHByaXZhdGUgZGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2U6IFRoeURhdGVQaWNrZXJDb25maWdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaG9vc2VEYXRlKHZhbHVlOiBUaW55RGF0ZSk6IHZvaWQge1xuICAgICAgICAvLyBPbmx5IGNoYW5nZSBkYXRlIG5vdCBjaGFuZ2UgdGltZVxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuYWN0aXZlRGF0ZS5zZXRZZWFyKHZhbHVlLmdldFllYXIoKSkuc2V0TW9udGgodmFsdWUuZ2V0TW9udGgoKSkuc2V0RGF0ZSh2YWx1ZS5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIG1ha2VIZWFkUm93KCk6IERhdGVDZWxsW10ge1xuICAgICAgICBjb25zdCB3ZWVrRGF5czogRGF0ZUNlbGxbXSA9IFtdO1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuYWN0aXZlRGF0ZS5jYWxlbmRhclN0YXJ0KHsgd2Vla1N0YXJ0c09uOiB0aGlzLmRhdGVQaWNrZXJDb25maWdTZXJ2aWNlLmNvbmZpZy53ZWVrU3RhcnRzT24gfSk7XG4gICAgICAgIGZvciAobGV0IGNvbEluZGV4ID0gMDsgY29sSW5kZXggPCB0aGlzLk1BWF9DT0w7IGNvbEluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGRheSA9IHN0YXJ0LmFkZERheXMoY29sSW5kZXgpO1xuICAgICAgICAgICAgd2Vla0RheXNbY29sSW5kZXhdID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLmRhdGVIZWxwZXIuZm9ybWF0KGRheS5uYXRpdmVEYXRlLCB0aGlzLmRhdGVIZWxwZXIucmVseU9uRGF0ZVBpcGUgPyAnRScgOiAnZGRkJyksXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5kYXRlSGVscGVyLmZvcm1hdChkYXkubmF0aXZlRGF0ZSwgdGhpcy5nZXRWZXJ5U2hvcnRXZWVrRm9ybWF0KCkpLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2soKTogdm9pZCB7fSxcbiAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7fVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd2Vla0RheXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWZXJ5U2hvcnRXZWVrRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVIZWxwZXIucmVseU9uRGF0ZVBpcGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnRUVFRUUnOyAvLyBlZy4g5LqMXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdkZCc7XG4gICAgfVxuXG4gICAgbWFrZUJvZHlSb3dzKCk6IERhdGVCb2R5Um93W10ge1xuICAgICAgICBjb25zdCBkYXRlUm93czogRGF0ZUJvZHlSb3dbXSA9IFtdO1xuICAgICAgICBjb25zdCBmaXJzdERheU9mTW9udGggPSB0aGlzLmFjdGl2ZURhdGUuY2FsZW5kYXJTdGFydCh7IHdlZWtTdGFydHNPbjogdGhpcy5kYXRlUGlja2VyQ29uZmlnU2VydmljZS5jb25maWcud2Vla1N0YXJ0c09uIH0pO1xuICAgICAgICBmb3IgKGxldCB3ZWVrID0gMDsgd2VlayA8IHRoaXMuTUFYX1JPVzsgd2VlaysrKSB7XG4gICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSBmaXJzdERheU9mTW9udGguYWRkRGF5cyh3ZWVrICogNyk7XG4gICAgICAgICAgICBjb25zdCByb3c6IERhdGVCb2R5Um93ID0ge1xuICAgICAgICAgICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpc0N1cnJlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhdGVDZWxsczogW10sXG4gICAgICAgICAgICAgICAgeWVhcjogd2Vla1N0YXJ0LmdldFllYXIoKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChsZXQgZGF5ID0gMDsgZGF5IDwgNzsgZGF5KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gd2Vla1N0YXJ0LmFkZERheXMoZGF5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlRm9ybWF0ID0gdGhpcy5kYXRlSGVscGVyLnJlbHlPbkRhdGVQaXBlID8gJ2xvbmdEYXRlJyA6ICdZWVlZLU1NLUREJztcbiAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuZGF0ZUhlbHBlci5mb3JtYXQoZGF0ZS5uYXRpdmVEYXRlLCBkYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZGF0ZUhlbHBlci5mb3JtYXQoZGF0ZS5uYXRpdmVEYXRlLCB0aGlzLmRhdGVIZWxwZXIucmVseU9uRGF0ZVBpcGUgPyAnZGQnIDogJ0REJyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsOiBEYXRlQ2VsbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGRhdGUubmF0aXZlRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGlzVG9kYXk6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGRhdGVDZWxsUmVuZGVyOiB2YWx1ZUZ1bmN0aW9uUHJvcCh0aGlzLmNlbGxSZW5kZXIsIGRhdGUpLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgJHtkYXRlLmdldERhdGUoKX1gLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB0aGlzLmNob29zZURhdGUoZGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gdGhpcy5kYXlIb3Zlci5lbWl0KGRhdGUpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZENlbGxQcm9wZXJ0eShjZWxsLCBkYXRlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNob3dXZWVrICYmICFyb3cud2Vla051bSkge1xuICAgICAgICAgICAgICAgICAgICByb3cud2Vla051bSA9IHRoaXMuZGF0ZUhlbHBlci5nZXRJU09XZWVrKGRhdGUubmF0aXZlRGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGRhdGUuaXNUb2RheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNlbGwuaXNUb2RheSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5pc0N1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW3N0YXJ0U2VsZWN0ZWQsIGVuZFNlbGVjdGVkXSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGUuaXNTYW1lRGF5KHN0YXJ0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3cuaXNBY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRlLmlzU2FtZURheShlbmRTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5pc0FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGUuaXNTYW1lRGF5KHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5pc0FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcm93LmRhdGVDZWxscy5wdXNoKGNlbGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByb3cuY2xhc3NNYXAgPSB7XG4gICAgICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1jdXJyZW50LXdlZWtgXTogcm93LmlzQ3VycmVudCxcbiAgICAgICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWFjdGl2ZS13ZWVrYF06IHJvdy5pc0FjdGl2ZVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZGF0ZVJvd3MucHVzaChyb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGVSb3dzO1xuICAgIH1cblxuICAgIGFkZENlbGxQcm9wZXJ0eShjZWxsOiBEYXRlQ2VsbCwgZGF0ZTogVGlueURhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgW3N0YXJ0U2VsZWN0ZWQsIGVuZFNlbGVjdGVkXSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgICAgIGlmIChzdGFydFNlbGVjdGVkPy5pc1NhbWVEYXkoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVuZFNlbGVjdGVkPy5pc1NhbWVEYXkoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2VsbC5pc1N0YXJ0U2luZ2xlID0gc3RhcnRTZWxlY3RlZCAmJiAhZW5kU2VsZWN0ZWQ7XG4gICAgICAgICAgICBjZWxsLmlzRW5kU2luZ2xlID0gIXN0YXJ0U2VsZWN0ZWQgJiYgISFlbmRTZWxlY3RlZDtcbiAgICAgICAgICAgIGNlbGwuaXNJblJhbmdlID0gc3RhcnRTZWxlY3RlZD8uaXNCZWZvcmVEYXkoZGF0ZSkgJiYgZGF0ZS5pc0JlZm9yZURheShlbmRTZWxlY3RlZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWQgPSBkYXRlLmlzU2FtZURheSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjZWxsLmlzTGFzdE1vbnRoQ2VsbCA9IGRhdGUuaXNCZWZvcmVNb250aCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICBjZWxsLmlzTmV4dE1vbnRoQ2VsbCA9IGRhdGUuaXNBZnRlck1vbnRoKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGNlbGwuaXNUb2RheSA9IGRhdGUuaXNUb2RheSgpO1xuICAgICAgICBjZWxsLmlzRGlzYWJsZWQgPSAhIXRoaXMuZGlzYWJsZWREYXRlPy4oZGF0ZS5uYXRpdmVEYXRlKTtcbiAgICAgICAgY2VsbC5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoY2VsbCk7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3NNYXAoY2VsbDogRGF0ZUNlbGwpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWNlbGxgXTogdHJ1ZSxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tdG9kYXlgXTogY2VsbC5pc1RvZGF5LFxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1sYXN0LW1vbnRoLWNlbGxgXTogY2VsbC5pc0xhc3RNb250aENlbGwsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LW5leHQtbW9udGgtYnRuLWRheWBdOiBjZWxsLmlzTmV4dE1vbnRoQ2VsbCxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tc2VsZWN0ZWQtZGF5YF06IGNlbGwuaXNTZWxlY3RlZCxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tZGlzYWJsZWQtY2VsbGBdOiBjZWxsLmlzRGlzYWJsZWQsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LXNlbGVjdGVkLXN0YXJ0LWRhdGVgXTogISFjZWxsLmlzU2VsZWN0ZWRTdGFydERhdGUsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LXNlbGVjdGVkLWVuZC1kYXRlYF06ICEhY2VsbC5pc1NlbGVjdGVkRW5kRGF0ZSxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30taW4tcmFuZ2UtY2VsbGBdOiAhIWNlbGwuaXNJblJhbmdlXG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRhYmxlXCIgY2VsbFNwYWNpbmc9XCIwXCIgcm9sZT1cImdyaWRcIj5cbiAgPHRoZWFkPlxuICAgIDx0ciByb2xlPVwicm93XCI+XG4gICAgICA8dGggKm5nSWY9XCJzaG93V2Vla1wiIHJvbGU9XCJjb2x1bW5oZWFkZXJcIiB0aXRsZT1cIuWRqFwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWNvbHVtbi1oZWFkZXIge3sgcHJlZml4Q2xzIH19LXdlZWstbnVtYmVyLWhlYWRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1jb2x1bW4taGVhZGVyLWlubmVyXCI+5ZGoPC9zcGFuPlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY2VsbCBvZiBoZWFkUm93XCIgcm9sZT1cImNvbHVtbmhlYWRlclwiIHRpdGxlPVwie3sgY2VsbC50aXRsZSB9fVwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWNvbHVtbi1oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmVmaXhDbHMgPT09ICd0aHktY2FsZW5kYXInXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tY29sdW1uLWhlYWRlci1pbm5lclwiPnt7IGNlbGwuY29udGVudCB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmVmaXhDbHMgPT09ICd0aHktY2FsZW5kYXItZnVsbCdcIiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1jb2x1bW4taGVhZGVyLWlubmVyXCI+5ZGoe3sgY2VsbC5jb250ZW50IH19PC9zcGFuPlxuICAgICAgPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGJvZHlcIj5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBib2R5Um93czsgdHJhY2tCeTogdHJhY2tCeUJvZHlSb3dcIiBbbmdDbGFzc109XCJyb3cuY2xhc3NNYXBcIiByb2xlPVwicm93XCI+XG4gICAgICA8dGQgKm5nSWY9XCJyb3cud2Vla051bVwiIHJvbGU9XCJncmlkY2VsbFwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXdlZWstbnVtYmVyLWNlbGxcIj5cbiAgICAgICAge3sgcm93LndlZWtOdW0gfX1cbiAgICAgIDwvdGQ+XG4gICAgICA8dGRcbiAgICAgICAgKm5nRm9yPVwibGV0IGNlbGwgb2Ygcm93LmRhdGVDZWxsczsgdHJhY2tCeTogdHJhY2tCeUJvZHlDb2x1bW5cIlxuICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICBbbmdDbGFzc109XCJjZWxsLmNsYXNzTWFwXCJcbiAgICAgICAgKGNsaWNrKT1cImNlbGwuaXNEaXNhYmxlZCA/IG51bGwgOiBjZWxsLm9uQ2xpY2soKVwiXG4gICAgICAgIGRhdGUtdGFibGUtY2VsbFxuICAgICAgICBbcHJlZml4Q2xzXT1cInByZWZpeENsc1wiXG4gICAgICAgIFtjZWxsXT1cImNlbGxcIlxuICAgICAgPjwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUvZGF0ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUvZGF0ZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUV2RTs7R0FFRztBQVVILE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUd4QyxZQUFvQixVQUE2QixFQUFVLHVCQUFtRDtRQUMxRyxLQUFLLEVBQUUsQ0FBQztRQURRLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQVUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUE0QjtRQUYzRixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQyxDQUFDLDZDQUE2QztJQUl6RyxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWU7UUFDOUIsbUNBQW1DO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDOUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLFFBQVEsR0FBZSxFQUFFLENBQUM7UUFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDekQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDM0YsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzlFLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixVQUFVLEVBQUUsS0FBSztnQkFDakIsT0FBTyxLQUFVLENBQUM7Z0JBQ2xCLFlBQVksS0FBVSxDQUFDO2FBQzFCLENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDakMsT0FBTyxPQUFPLENBQUMsQ0FBQyxRQUFRO1FBQzVCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsWUFBWTtRQUNSLE1BQU0sUUFBUSxHQUFrQixFQUFFLENBQUM7UUFDbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzFILEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDN0MsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTSxHQUFHLEdBQWdCO2dCQUNyQixRQUFRLEVBQUUsS0FBSztnQkFDZixTQUFTLEVBQUUsS0FBSztnQkFDaEIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUU7YUFDNUIsQ0FBQztZQUVGLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUM5RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVwRyxNQUFNLElBQUksR0FBYTtvQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUN0QixLQUFLLEVBQUUsS0FBSztvQkFDWixVQUFVLEVBQUUsS0FBSztvQkFDakIsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLE9BQU8sRUFBRSxLQUFLO29CQUNkLEtBQUssRUFBRSxLQUFLO29CQUNaLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztvQkFDeEQsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQ3BDLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQy9DLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRWpDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDaEMsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzlELENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ3BCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ2pDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztvQkFDeEQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQ2hDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO29CQUN4QixDQUFDO29CQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO3dCQUM5QixHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDeEIsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLENBQUM7Z0JBRUQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUVELEdBQUcsQ0FBQyxRQUFRLEdBQUc7Z0JBQ1gsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGVBQWUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTO2dCQUNqRCxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsY0FBYyxDQUFDLEVBQUUsR0FBRyxDQUFDLFFBQVE7YUFDbEQsQ0FBQztZQUVGLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBYyxFQUFFLElBQWM7UUFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDeEQsSUFBSSxhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLFdBQVcsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDM0IsQ0FBQztZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWM7UUFDdEIsT0FBTztZQUNILENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxPQUFPLENBQUMsRUFBRSxJQUFJO1lBQ2hDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTztZQUN6QyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsa0JBQWtCLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUMzRCxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMscUJBQXFCLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUM5RCxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDbkQsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDcEQsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUI7WUFDckUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDakUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1NBQ3hELENBQUM7SUFDTixDQUFDOzhHQTFJUSxTQUFTO2tHQUFULFNBQVMseUpDckJ0Qix1M0NBNkJBLDRDRFZjLElBQUksNkZBQUUsS0FBSyxtSEFBRSxPQUFPLG9GQUFFLGFBQWE7OzJGQUVwQyxTQUFTO2tCQVRyQixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFFckMsWUFBWSxZQUNaLFdBQVcsY0FFVCxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUM7K0hBRzNCLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaW55RGF0ZSwgdmFsdWVGdW5jdGlvblByb3AgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGVDZWxsLCBEYXRlQm9keVJvdyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJUYWJsZSB9IGZyb20gJy4uL2NhbGVuZGFyL2NhbGVuZGFyLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlVGFibGVDZWxsIH0gZnJvbSAnLi9kYXRlLXRhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYsIE5nRm9yLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRoeURhdGVQaWNrZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIuc2VydmljZSc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RhdGUtdGFibGUnLFxuICAgIGV4cG9ydEFzOiAnZGF0ZVRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RhdGUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBOZ0NsYXNzLCBEYXRlVGFibGVDZWxsXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGFibGUgZXh0ZW5kcyBDYWxlbmRhclRhYmxlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgZGF5SG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFRpbnlEYXRlPigpOyAvLyBFbWl0dGVkIHdoZW4gaG92ZXIgb24gYSBkYXkgYnkgbW91c2UgZW50ZXJcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUhlbHBlcjogRGF0ZUhlbHBlclNlcnZpY2UsIHByaXZhdGUgZGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2U6IFRoeURhdGVQaWNrZXJDb25maWdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaG9vc2VEYXRlKHZhbHVlOiBUaW55RGF0ZSk6IHZvaWQge1xuICAgICAgICAvLyBPbmx5IGNoYW5nZSBkYXRlIG5vdCBjaGFuZ2UgdGltZVxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuYWN0aXZlRGF0ZS5zZXRZZWFyKHZhbHVlLmdldFllYXIoKSkuc2V0TW9udGgodmFsdWUuZ2V0TW9udGgoKSkuc2V0RGF0ZSh2YWx1ZS5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIG1ha2VIZWFkUm93KCk6IERhdGVDZWxsW10ge1xuICAgICAgICBjb25zdCB3ZWVrRGF5czogRGF0ZUNlbGxbXSA9IFtdO1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuYWN0aXZlRGF0ZS5jYWxlbmRhclN0YXJ0KHsgd2Vla1N0YXJ0c09uOiB0aGlzLmRhdGVQaWNrZXJDb25maWdTZXJ2aWNlLmNvbmZpZy53ZWVrU3RhcnRzT24gfSk7XG4gICAgICAgIGZvciAobGV0IGNvbEluZGV4ID0gMDsgY29sSW5kZXggPCB0aGlzLk1BWF9DT0w7IGNvbEluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGRheSA9IHN0YXJ0LmFkZERheXMoY29sSW5kZXgpO1xuICAgICAgICAgICAgd2Vla0RheXNbY29sSW5kZXhdID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLmRhdGVIZWxwZXIuZm9ybWF0KGRheS5uYXRpdmVEYXRlLCB0aGlzLmRhdGVIZWxwZXIucmVseU9uRGF0ZVBpcGUgPyAnRScgOiAnZGRkJyksXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5kYXRlSGVscGVyLmZvcm1hdChkYXkubmF0aXZlRGF0ZSwgdGhpcy5nZXRWZXJ5U2hvcnRXZWVrRm9ybWF0KCkpLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2soKTogdm9pZCB7fSxcbiAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7fVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd2Vla0RheXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWZXJ5U2hvcnRXZWVrRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVIZWxwZXIucmVseU9uRGF0ZVBpcGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnRUVFRUUnOyAvLyBlZy4g5LqMXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdkZCc7XG4gICAgfVxuXG4gICAgbWFrZUJvZHlSb3dzKCk6IERhdGVCb2R5Um93W10ge1xuICAgICAgICBjb25zdCBkYXRlUm93czogRGF0ZUJvZHlSb3dbXSA9IFtdO1xuICAgICAgICBjb25zdCBmaXJzdERheU9mTW9udGggPSB0aGlzLmFjdGl2ZURhdGUuY2FsZW5kYXJTdGFydCh7IHdlZWtTdGFydHNPbjogdGhpcy5kYXRlUGlja2VyQ29uZmlnU2VydmljZS5jb25maWcud2Vla1N0YXJ0c09uIH0pO1xuICAgICAgICBmb3IgKGxldCB3ZWVrID0gMDsgd2VlayA8IHRoaXMuTUFYX1JPVzsgd2VlaysrKSB7XG4gICAgICAgICAgICBjb25zdCB3ZWVrU3RhcnQgPSBmaXJzdERheU9mTW9udGguYWRkRGF5cyh3ZWVrICogNyk7XG4gICAgICAgICAgICBjb25zdCByb3c6IERhdGVCb2R5Um93ID0ge1xuICAgICAgICAgICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpc0N1cnJlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhdGVDZWxsczogW10sXG4gICAgICAgICAgICAgICAgeWVhcjogd2Vla1N0YXJ0LmdldFllYXIoKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChsZXQgZGF5ID0gMDsgZGF5IDwgNzsgZGF5KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gd2Vla1N0YXJ0LmFkZERheXMoZGF5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlRm9ybWF0ID0gdGhpcy5kYXRlSGVscGVyLnJlbHlPbkRhdGVQaXBlID8gJ2xvbmdEYXRlJyA6ICdZWVlZLU1NLUREJztcbiAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuZGF0ZUhlbHBlci5mb3JtYXQoZGF0ZS5uYXRpdmVEYXRlLCBkYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZGF0ZUhlbHBlci5mb3JtYXQoZGF0ZS5uYXRpdmVEYXRlLCB0aGlzLmRhdGVIZWxwZXIucmVseU9uRGF0ZVBpcGUgPyAnZGQnIDogJ0REJyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsOiBEYXRlQ2VsbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGRhdGUubmF0aXZlRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGlzVG9kYXk6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGRhdGVDZWxsUmVuZGVyOiB2YWx1ZUZ1bmN0aW9uUHJvcCh0aGlzLmNlbGxSZW5kZXIsIGRhdGUpLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgJHtkYXRlLmdldERhdGUoKX1gLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB0aGlzLmNob29zZURhdGUoZGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gdGhpcy5kYXlIb3Zlci5lbWl0KGRhdGUpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZENlbGxQcm9wZXJ0eShjZWxsLCBkYXRlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNob3dXZWVrICYmICFyb3cud2Vla051bSkge1xuICAgICAgICAgICAgICAgICAgICByb3cud2Vla051bSA9IHRoaXMuZGF0ZUhlbHBlci5nZXRJU09XZWVrKGRhdGUubmF0aXZlRGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGRhdGUuaXNUb2RheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNlbGwuaXNUb2RheSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5pc0N1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW3N0YXJ0U2VsZWN0ZWQsIGVuZFNlbGVjdGVkXSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGUuaXNTYW1lRGF5KHN0YXJ0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3cuaXNBY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRlLmlzU2FtZURheShlbmRTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5pc0FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGUuaXNTYW1lRGF5KHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5pc0FjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcm93LmRhdGVDZWxscy5wdXNoKGNlbGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByb3cuY2xhc3NNYXAgPSB7XG4gICAgICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1jdXJyZW50LXdlZWtgXTogcm93LmlzQ3VycmVudCxcbiAgICAgICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWFjdGl2ZS13ZWVrYF06IHJvdy5pc0FjdGl2ZVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZGF0ZVJvd3MucHVzaChyb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGVSb3dzO1xuICAgIH1cblxuICAgIGFkZENlbGxQcm9wZXJ0eShjZWxsOiBEYXRlQ2VsbCwgZGF0ZTogVGlueURhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgW3N0YXJ0U2VsZWN0ZWQsIGVuZFNlbGVjdGVkXSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgICAgIGlmIChzdGFydFNlbGVjdGVkPy5pc1NhbWVEYXkoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVuZFNlbGVjdGVkPy5pc1NhbWVEYXkoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2VsbC5pc1N0YXJ0U2luZ2xlID0gc3RhcnRTZWxlY3RlZCAmJiAhZW5kU2VsZWN0ZWQ7XG4gICAgICAgICAgICBjZWxsLmlzRW5kU2luZ2xlID0gIXN0YXJ0U2VsZWN0ZWQgJiYgISFlbmRTZWxlY3RlZDtcbiAgICAgICAgICAgIGNlbGwuaXNJblJhbmdlID0gc3RhcnRTZWxlY3RlZD8uaXNCZWZvcmVEYXkoZGF0ZSkgJiYgZGF0ZS5pc0JlZm9yZURheShlbmRTZWxlY3RlZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWQgPSBkYXRlLmlzU2FtZURheSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjZWxsLmlzTGFzdE1vbnRoQ2VsbCA9IGRhdGUuaXNCZWZvcmVNb250aCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICBjZWxsLmlzTmV4dE1vbnRoQ2VsbCA9IGRhdGUuaXNBZnRlck1vbnRoKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGNlbGwuaXNUb2RheSA9IGRhdGUuaXNUb2RheSgpO1xuICAgICAgICBjZWxsLmlzRGlzYWJsZWQgPSAhIXRoaXMuZGlzYWJsZWREYXRlPy4oZGF0ZS5uYXRpdmVEYXRlKTtcbiAgICAgICAgY2VsbC5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoY2VsbCk7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3NNYXAoY2VsbDogRGF0ZUNlbGwpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWNlbGxgXTogdHJ1ZSxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tdG9kYXlgXTogY2VsbC5pc1RvZGF5LFxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1sYXN0LW1vbnRoLWNlbGxgXTogY2VsbC5pc0xhc3RNb250aENlbGwsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LW5leHQtbW9udGgtYnRuLWRheWBdOiBjZWxsLmlzTmV4dE1vbnRoQ2VsbCxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tc2VsZWN0ZWQtZGF5YF06IGNlbGwuaXNTZWxlY3RlZCxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tZGlzYWJsZWQtY2VsbGBdOiBjZWxsLmlzRGlzYWJsZWQsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LXNlbGVjdGVkLXN0YXJ0LWRhdGVgXTogISFjZWxsLmlzU2VsZWN0ZWRTdGFydERhdGUsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LXNlbGVjdGVkLWVuZC1kYXRlYF06ICEhY2VsbC5pc1NlbGVjdGVkRW5kRGF0ZSxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30taW4tcmFuZ2UtY2VsbGBdOiAhIWNlbGwuaXNJblJhbmdlXG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRhYmxlXCIgY2VsbFNwYWNpbmc9XCIwXCIgcm9sZT1cImdyaWRcIj5cbiAgPHRoZWFkPlxuICAgIDx0ciByb2xlPVwicm93XCI+XG4gICAgICA8dGggKm5nSWY9XCJzaG93V2Vla1wiIHJvbGU9XCJjb2x1bW5oZWFkZXJcIiB0aXRsZT1cIuWRqFwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWNvbHVtbi1oZWFkZXIge3sgcHJlZml4Q2xzIH19LXdlZWstbnVtYmVyLWhlYWRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1jb2x1bW4taGVhZGVyLWlubmVyXCI+5ZGoPC9zcGFuPlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY2VsbCBvZiBoZWFkUm93XCIgcm9sZT1cImNvbHVtbmhlYWRlclwiIHRpdGxlPVwie3sgY2VsbC50aXRsZSB9fVwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWNvbHVtbi1oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmVmaXhDbHMgPT09ICd0aHktY2FsZW5kYXInXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tY29sdW1uLWhlYWRlci1pbm5lclwiPnt7IGNlbGwuY29udGVudCB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmVmaXhDbHMgPT09ICd0aHktY2FsZW5kYXItZnVsbCdcIiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1jb2x1bW4taGVhZGVyLWlubmVyXCI+5ZGoe3sgY2VsbC5jb250ZW50IH19PC9zcGFuPlxuICAgICAgPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGJvZHlcIj5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBib2R5Um93czsgdHJhY2tCeTogdHJhY2tCeUJvZHlSb3dcIiBbbmdDbGFzc109XCJyb3cuY2xhc3NNYXBcIiByb2xlPVwicm93XCI+XG4gICAgICA8dGQgKm5nSWY9XCJyb3cud2Vla051bVwiIHJvbGU9XCJncmlkY2VsbFwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXdlZWstbnVtYmVyLWNlbGxcIj5cbiAgICAgICAge3sgcm93LndlZWtOdW0gfX1cbiAgICAgIDwvdGQ+XG4gICAgICA8dGRcbiAgICAgICAgKm5nRm9yPVwibGV0IGNlbGwgb2Ygcm93LmRhdGVDZWxsczsgdHJhY2tCeTogdHJhY2tCeUJvZHlDb2x1bW5cIlxuICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICBbbmdDbGFzc109XCJjZWxsLmNsYXNzTWFwXCJcbiAgICAgICAgKGNsaWNrKT1cImNlbGwuaXNEaXNhYmxlZCA/IG51bGwgOiBjZWxsLm9uQ2xpY2soKVwiXG4gICAgICAgIGRhdGUtdGFibGUtY2VsbFxuICAgICAgICBbcHJlZml4Q2xzXT1cInByZWZpeENsc1wiXG4gICAgICAgIFtjZWxsXT1cImNlbGxcIlxuICAgICAgPjwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  import { NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostBinding, Input } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { ThyButtonComponent } from 'ngx-tethys/button';
5
- import { ThyIconComponent } from 'ngx-tethys/icon';
4
+ import { ThyButton } from 'ngx-tethys/button';
5
+ import { ThyIcon } from 'ngx-tethys/icon';
6
6
  import { TinyDate } from 'ngx-tethys/util';
7
7
  import { Subject } from 'rxjs';
8
8
  import { DatePickerAdvancedShowYearTipPipe } from '../../picker.pipes';
@@ -10,7 +10,7 @@ import * as i0 from "@angular/core";
10
10
  /**
11
11
  * @private
12
12
  */
13
- export class DateCarouselComponent {
13
+ export class DateCarousel {
14
14
  set defaultValue(value) {
15
15
  this.dateGranularity = value.dateGranularity;
16
16
  this.buildSelectableData(value.begin);
@@ -356,28 +356,28 @@ export class DateCarouselComponent {
356
356
  ngOnDestroy() {
357
357
  this.selectedValueChange$.complete();
358
358
  }
359
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DateCarouselComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
360
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: DateCarouselComponent, isStandalone: true, selector: "date-carousel", inputs: { activeDate: "activeDate" }, host: { properties: { "class": "this.className" } }, providers: [
359
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DateCarousel, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
360
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: DateCarousel, isStandalone: true, selector: "date-carousel", inputs: { activeDate: "activeDate" }, host: { properties: { "class": "this.className" } }, providers: [
361
361
  {
362
362
  provide: NG_VALUE_ACCESSOR,
363
363
  multi: true,
364
- useExisting: forwardRef(() => DateCarouselComponent)
364
+ useExisting: forwardRef(() => DateCarousel)
365
365
  }
366
- ], ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5E74\u4EFD', type: 'year', selectableData: selectableData.year }\"\n></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5B63\u5EA6', type: 'quarter', selectableData: selectableData.quarter }\"\n></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u6708\u4EFD', type: 'month', selectableData: selectableData.month }\"\n></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n <div\n class=\"selectable-button right-space\"\n *ngFor=\"let item of selectableData\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\"\n >\n <span class=\"year-tip\" *ngIf=\"item | showYearTip: type\">{{ item?.startValue?.getYear() }}</span>\n <thy-icon thyIconName=\"close\" *ngIf=\"item.isInRange && isSelected(item)\"></thy-icon>\n <thy-icon thyIconName=\"plus\" *ngIf=\"item.isInRange && !isSelected(item)\"></thy-icon>\n <span *ngIf=\"!item.isInRange\">{{ item?.content }}</span>\n </div>\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyButtonComponent, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { 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: "pipe", type: DatePickerAdvancedShowYearTipPipe, name: "showYearTip" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
366
+ ], ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5E74\u4EFD', type: 'year', selectableData: selectableData.year }\"\n></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5B63\u5EA6', type: 'quarter', selectableData: selectableData.quarter }\"\n></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u6708\u4EFD', type: 'month', selectableData: selectableData.month }\"\n></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n <div\n class=\"selectable-button right-space\"\n *ngFor=\"let item of selectableData\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\"\n >\n <span class=\"year-tip\" *ngIf=\"item | showYearTip: type\">{{ item?.startValue?.getYear() }}</span>\n <thy-icon thyIconName=\"close\" *ngIf=\"item.isInRange && isSelected(item)\"></thy-icon>\n <thy-icon thyIconName=\"plus\" *ngIf=\"item.isInRange && !isSelected(item)\"></thy-icon>\n <span *ngIf=\"!item.isInRange\">{{ item?.content }}</span>\n </div>\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { 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: "pipe", type: DatePickerAdvancedShowYearTipPipe, name: "showYearTip" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
367
367
  }
368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DateCarouselComponent, decorators: [{
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DateCarousel, decorators: [{
369
369
  type: Component,
370
370
  args: [{ selector: 'date-carousel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
371
371
  {
372
372
  provide: NG_VALUE_ACCESSOR,
373
373
  multi: true,
374
- useExisting: forwardRef(() => DateCarouselComponent)
374
+ useExisting: forwardRef(() => DateCarousel)
375
375
  }
376
- ], standalone: true, imports: [NgTemplateOutlet, ThyButtonComponent, ThyIconComponent, NgFor, NgClass, NgIf, DatePickerAdvancedShowYearTipPipe], template: "<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5E74\u4EFD', type: 'year', selectableData: selectableData.year }\"\n></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5B63\u5EA6', type: 'quarter', selectableData: selectableData.quarter }\"\n></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u6708\u4EFD', type: 'month', selectableData: selectableData.month }\"\n></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n <div\n class=\"selectable-button right-space\"\n *ngFor=\"let item of selectableData\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\"\n >\n <span class=\"year-tip\" *ngIf=\"item | showYearTip: type\">{{ item?.startValue?.getYear() }}</span>\n <thy-icon thyIconName=\"close\" *ngIf=\"item.isInRange && isSelected(item)\"></thy-icon>\n <thy-icon thyIconName=\"plus\" *ngIf=\"item.isInRange && !isSelected(item)\"></thy-icon>\n <span *ngIf=\"!item.isInRange\">{{ item?.content }}</span>\n </div>\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n" }]
376
+ ], standalone: true, imports: [NgTemplateOutlet, ThyButton, ThyIcon, NgFor, NgClass, NgIf, DatePickerAdvancedShowYearTipPipe], template: "<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5E74\u4EFD', type: 'year', selectableData: selectableData.year }\"\n></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5B63\u5EA6', type: 'quarter', selectableData: selectableData.quarter }\"\n></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u6708\u4EFD', type: 'month', selectableData: selectableData.month }\"\n></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n <div\n class=\"selectable-button right-space\"\n *ngFor=\"let item of selectableData\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\"\n >\n <span class=\"year-tip\" *ngIf=\"item | showYearTip: type\">{{ item?.startValue?.getYear() }}</span>\n <thy-icon thyIconName=\"close\" *ngIf=\"item.isInRange && isSelected(item)\"></thy-icon>\n <thy-icon thyIconName=\"plus\" *ngIf=\"item.isInRange && !isSelected(item)\"></thy-icon>\n <span *ngIf=\"!item.isInRange\">{{ item?.content }}</span>\n </div>\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n" }]
377
377
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { className: [{
378
378
  type: HostBinding,
379
379
  args: ['class']
380
380
  }], activeDate: [{
381
381
  type: Input
382
382
  }] } });
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUtY2Fyb3VzZWwvZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUtY2Fyb3VzZWwvZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN6SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBR3ZFOztHQUVHO0FBZ0JILE1BQU0sT0FBTyxxQkFBcUI7SUFLOUIsSUFBSSxZQUFZLENBQUMsS0FBeUI7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FB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QUFFLENBQUM7SUFDekMsQ0FBQzs4R0FwWFEscUJBQXFCO2tHQUFyQixxQkFBcUIsdUpBVm5CO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzthQUN2RDtTQUNKLDBCQ3pCTCxtekRBc0NBLDRDRFhjLGdCQUFnQixvSkFBRSxrQkFBa0Isb0xBQUUsZ0JBQWdCLHNNQUFFLEtBQUssbUhBQUUsT0FBTyxvRkFBRSxJQUFJLHdGQUFFLGlDQUFpQzs7MkZBRWhILHFCQUFxQjtrQkFmakMsU0FBUzsrQkFFSSxlQUFlLG1CQUVSLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7eUJBQ3ZEO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsaUNBQWlDLENBQUM7c0ZBR3BHLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTztnQkFFWCxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRoeUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ25neC10ZXRoeXMvYnV0dG9uJztcbmltcG9ydCB7IFRoeUljb25Db21wb25lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCwgUmFuZ2VBZHZhbmNlZFZhbHVlIH0gZnJvbSAnLi4vLi4vaW5uZXItdHlwZXMnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckFkdmFuY2VkU2hvd1llYXJUaXBQaXBlIH0gZnJvbSAnLi4vLi4vcGlja2VyLnBpcGVzJztcbmltcG9ydCB7IFRoeURhdGVHcmFudWxhcml0eSB9IGZyb20gJy4uLy4uL3N0YW5kYXJkLXR5cGVzJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGF0ZS1jYXJvdXNlbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUNhcm91c2VsQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBUaHlCdXR0b25Db21wb25lbnQsIFRoeUljb25Db21wb25lbnQsIE5nRm9yLCBOZ0NsYXNzLCBOZ0lmLCBEYXRlUGlja2VyQWR2YW5jZWRTaG93WWVhclRpcFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9ICd0aHktZGF0ZS1waWNrZXItYWR2YW5jZWQtY2Fyb3VzZWwnO1xuXG4gICAgQElucHV0KCkgYWN0aXZlRGF0ZTogVGlueURhdGU7XG5cbiAgICBzZXQgZGVmYXVsdFZhbHVlKHZhbHVlOiBSYW5nZUFkdmFuY2VkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSB2YWx1ZS5kYXRlR3JhbnVsYXJpdHk7XG4gICAgICAgIHRoaXMuYnVpbGRTZWxlY3RhYmxlRGF0YSh2YWx1ZS5iZWdpbik7XG5cbiAgICAgICAgaWYgKHZhbHVlLmJlZ2luICYmIHZhbHVlLmVuZCkge1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkQmVTZWxlY3RWYWx1ZSA9IHRoaXMuZ2V0U2hvdWxkQmVUb2dnbGVWYWx1ZSh2YWx1ZS5iZWdpbiwgdmFsdWUuZW5kKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KC4uLnNob3VsZEJlU2VsZWN0VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGVhclNlbGVjdCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzZWxlY3RhYmxlRGF0YTogeyB5ZWFyPzogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdOyBxdWFydGVyPzogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdOyBtb250aD86IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSB9ID0ge307XG5cbiAgICBkYXRlR3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eTtcblxuICAgIHNlbGVjdGVkVmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBzZWxlY3RlZFZhbHVlQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PFJhbmdlQWR2YW5jZWRWYWx1ZT4oKTtcblxuICAgIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IFJhbmdlQWR2YW5jZWRWYWx1ZSkgPT4gdm9pZDtcblxuICAgIHByaXZhdGUgX29uVG91Y2hlZDogKHZhbHVlOiBSYW5nZUFkdmFuY2VkVmFsdWUpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkU2VsZWN0YWJsZURhdGEodGhpcy5zZWxlY3RlZFZhbHVlWzBdPy5zdGFydFZhbHVlLCB0aGlzLmRhdGVHcmFudWxhcml0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLnllYXIuZm9yRWFjaChpdGVtID0+IChpdGVtLmNsYXNzTWFwID0gdGhpcy5nZXRDbGFzc01hcChpdGVtKSkpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEubW9udGguZm9yRWFjaChpdGVtID0+IChpdGVtLmNsYXNzTWFwID0gdGhpcy5nZXRDbGFzc01hcChpdGVtKSkpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1NlbGVjdEVtcHR5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUdyYW51bGFyaXR5OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsY3RlZFZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlR3JhbnVsYXJpdHk6IHRoaXMuZGF0ZUdyYW51bGFyaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IHNlbGN0ZWRWYWx1ZVswXT8uc3RhcnRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogc2VsY3RlZFZhbHVlW3NlbGN0ZWRWYWx1ZS5sZW5ndGggLSAxXT8uZW5kVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBSYW5nZUFkdmFuY2VkVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBnZXRDbGFzc01hcChjZWxsOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYGFjdGl2ZWBdOiB0aGlzLmlzU2VsZWN0ZWQoY2VsbCksXG4gICAgICAgICAgICBbYGluZGV0ZXJtaW5hdGVgXTogdGhpcy5pc0NlbGxJbmRldGVybWluYXRlKHRoaXMuc2VsZWN0ZWRWYWx1ZSwgY2VsbCksXG4gICAgICAgICAgICBbYHR5cGUtYWN0aXZlYF06IHRoaXMuaXNUeXBlQWN0aXZlKHRoaXMuc2VsZWN0ZWRWYWx1ZSwgY2VsbCksXG4gICAgICAgICAgICBbJ2luLWhvdmVyLXJhbmdlJ106IGNlbGwuaXNJblJhbmdlLFxuICAgICAgICAgICAgWydvdXQtcmFuZ2UnXTogY2VsbC5pc091dFJhbmdlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaXNUeXBlQWN0aXZlKG9yaWdpbmFsVmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSwgdmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsdWU/Lmxlbmd0aCAmJiBvcmlnaW5hbFZhbHVlWzBdLnR5cGUgPT09IHZhbHVlLnR5cGU7XG4gICAgfVxuXG4gICAgaXNDZWxsSW5kZXRlcm1pbmF0ZShvcmlnaW5hbFZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsW10sIHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIGlmIChvcmlnaW5hbFZhbHVlWzBdPy50eXBlID09PSB2YWx1ZS50eXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZVswXT8udHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhb3JpZ2luYWxWYWx1ZS5maW5kKGl0ZW0gPT4gaXRlbS5zdGFydFZhbHVlLmlzU2FtZVllYXIodmFsdWUuc3RhcnRWYWx1ZSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ3llYXInXG4gICAgICAgICAgICAgICAgICAgID8gISFvcmlnaW5hbFZhbHVlLmZpbmQoaXRlbSA9PiBpdGVtLnN0YXJ0VmFsdWUuaXNTYW1lWWVhcih2YWx1ZS5zdGFydFZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgOiAhIW9yaWdpbmFsVmFsdWUuZmluZChpdGVtID0+IGl0ZW0uc3RhcnRWYWx1ZS5pc1NhbWVRdWFydGVyKHZhbHVlLnN0YXJ0VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQodmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZS5maW5kKGl0ZW0gPT4gaXRlbS5zdGFydFZhbHVlLmlzU2FtZURheSh2YWx1ZS5zdGFydFZhbHVlKSkgJiYgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPT09IHZhbHVlLnR5cGU7XG4gICAgfVxuXG4gICAgaXNTZWxlY3RFbXB0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPT0gMDtcbiAgICB9XG5cbiAgICBzZWxlY3RTb3J0KCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUuc29ydCgoYSwgYikgPT4gYS5zdGFydFZhbHVlLmdldFRpbWUoKSAtIGIuc3RhcnRWYWx1ZS5nZXRUaW1lKCkpO1xuICAgIH1cblxuICAgIHNlbGVjdCguLi52YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChpdGVtKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5wdXNoKC4uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0U29ydCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBkZXNlbGVjdCguLi52YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWUuZmlsdGVyKHNlbGVjdGVkID0+ICFzZWxlY3RlZC5zdGFydFZhbHVlLmlzU2FtZURheShpdGVtLnN0YXJ0VmFsdWUpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0U29ydCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBjbGVhclNlbGVjdChoaWRkZW4/OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IFtdO1xuICAgICAgICBpZiAoIWhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTaG91bGRCZVRvZ2dsZVZhbHVlKGJlZ2luOiBUaW55RGF0ZSwgZW5kOiBUaW55RGF0ZSkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRWYWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdID0gW107XG4gICAgICAgIHN3aXRjaCAodGhpcy5kYXRlR3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gJ3llYXInO1xuICAgICAgICAgICAgICAgIGlmIChiZWdpbi5pc1NhbWVZZWFyKGVuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZVllYXIoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlWWVhcihiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWJlZ2luLmlzU2FtZVllYXIoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4gPSBiZWdpbi5hZGRZZWFycygxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVZZWFyKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSAnbW9udGgnO1xuICAgICAgICAgICAgICAgIGlmIChiZWdpbi5pc1NhbWVNb250aChlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVNb250aChiZWdpbikpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVNb250aChiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWJlZ2luLmlzU2FtZU1vbnRoKGVuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gYmVnaW4uYWRkTW9udGhzKDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZU1vbnRoKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVHcmFudWxhcml0eSA9ICdxdWFydGVyJztcbiAgICAgICAgICAgICAgICBpZiAoYmVnaW4uaXNTYW1lUXVhcnRlcihlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFiZWdpbi5pc1NhbWVRdWFydGVyKGVuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gYmVnaW4uYWRkUXVhcnRlcnMoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlUXVhcnRlcihiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3RlZFZhbHVlO1xuICAgIH1cblxuICAgIGJ1aWxkU2VsZWN0YWJsZURhdGEoc3RhcnREYXRlOiBUaW55RGF0ZSwgZXhjbHVkZUdyYW51bGFyaXR5PzogVGh5RGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgIGNvbnN0IGJ1aWxkR3JhbnVsYXJpdHkgPSBbJ3llYXInLCAnbW9udGgnLCAncXVhcnRlciddLmZpbHRlcihpdGVtID0+IGl0ZW0gIT09IGV4Y2x1ZGVHcmFudWxhcml0eSk7XG4gICAgICAgIGJ1aWxkR3JhbnVsYXJpdHkuZm9yRWFjaChncmFudWxhcml0eSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEueWVhciA9IFsuLi5BcnJheSgzKS5rZXlzKCldLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGFibGVZZWFyKHN0YXJ0RGF0ZSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlciA9IFsuLi5BcnJheSg0KS5rZXlzKCldLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKHN0YXJ0RGF0ZSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoID0gWy4uLkFycmF5KDQpLmtleXMoKV0ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0YWJsZU1vbnRoKHN0YXJ0RGF0ZSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RhYmxlWWVhcihjdXJyZW50RGF0ZTogVGlueURhdGUsIHByZU9yTmV4dGNvdW50OiBudW1iZXIgPSAwKTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCB7XG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgfHwgdGhpcy5hY3RpdmVEYXRlIHx8IG5ldyBUaW55RGF0ZSgpLnN0YXJ0T2ZZZWFyKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAneWVhcicsXG4gICAgICAgICAgICBjb250ZW50OiBgJHtjdXJyZW50RGF0ZS5hZGRZZWFycyhwcmVPck5leHRjb3VudCkuZ2V0WWVhcigpfWAsXG4gICAgICAgICAgICBzdGFydFZhbHVlOiBjdXJyZW50RGF0ZS5zdGFydE9mWWVhcigpLmFkZFllYXJzKHByZU9yTmV4dGNvdW50KSxcbiAgICAgICAgICAgIGVuZFZhbHVlOiBjdXJyZW50RGF0ZS5lbmRPZlllYXIoKS5hZGRZZWFycyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBjbGFzc01hcDoge31cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RhYmxlUXVhcnRlcihjdXJyZW50RGF0ZTogVGlueURhdGUsIHByZU9yTmV4dGNvdW50OiBudW1iZXIgPSAwKTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCB7XG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgfHwgdGhpcy5hY3RpdmVEYXRlIHx8IG5ldyBUaW55RGF0ZSgpLnN0YXJ0T2ZRdWFydGVyKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAncXVhcnRlcicsXG4gICAgICAgICAgICBjb250ZW50OiBgUSR7Y3VycmVudERhdGUuYWRkUXVhcnRlcnMocHJlT3JOZXh0Y291bnQpLmdldFF1YXJ0ZXIoKX1gLFxuICAgICAgICAgICAgc3RhcnRWYWx1ZTogY3VycmVudERhdGUuc3RhcnRPZlF1YXJ0ZXIoKS5hZGRRdWFydGVycyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBlbmRWYWx1ZTogY3VycmVudERhdGUuZW5kT2ZRdWFydGVyKCkuYWRkUXVhcnRlcnMocHJlT3JOZXh0Y291bnQpLFxuICAgICAgICAgICAgY2xhc3NNYXA6IHt9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0YWJsZU1vbnRoKGN1cnJlbnREYXRlOiBUaW55RGF0ZSwgcHJlT3JOZXh0Y291bnQ6IG51bWJlciA9IDApOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsIHtcbiAgICAgICAgY3VycmVudERhdGUgPSBjdXJyZW50RGF0ZSB8fCB0aGlzLmFjdGl2ZURhdGUgfHwgbmV3IFRpbnlEYXRlKCkuc3RhcnRPZk1vbnRoKCk7XG4gICAgICAgIGNvbnN0IGNlbGw6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwgPSB7XG4gICAgICAgICAgICB0eXBlOiAnbW9udGgnLFxuICAgICAgICAgICAgY29udGVudDogYCR7Y3VycmVudERhdGUuYWRkTW9udGhzKHByZU9yTmV4dGNvdW50KS5nZXRNb250aCgpICsgMX3mnIhgLFxuICAgICAgICAgICAgc3RhcnRWYWx1ZTogY3VycmVudERhdGUuc3RhcnRPZk1vbnRoKCkuYWRkTW9udGhzKHByZU9yTmV4dGNvdW50KSxcbiAgICAgICAgICAgIGVuZFZhbHVlOiBjdXJyZW50RGF0ZS5lbmRPZk1vbnRoKCkuYWRkTW9udGhzKHByZU9yTmV4dGNvdW50KSxcbiAgICAgICAgICAgIGNsYXNzTWFwOiB7fVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY2VsbDtcbiAgICB9XG5cbiAgICBwcmV2Q2xpY2sodHlwZTogVGh5RGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS55ZWFyID0gdGhpcy5zZWxlY3RhYmxlRGF0YS55ZWFyLm1hcChpdGVtID0+IHRoaXMuZ2V0U2VsZWN0YWJsZVllYXIoaXRlbS5zdGFydFZhbHVlLCAtMSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyID0gdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyLm1hcChpdGVtID0+IHRoaXMuZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoaXRlbS5zdGFydFZhbHVlLCAtMikpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEubW9udGggPSB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoLm1hcChpdGVtID0+IHRoaXMuZ2V0U2VsZWN0YWJsZU1vbnRoKGl0ZW0uc3RhcnRWYWx1ZSwgLTIpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICB9XG5cbiAgICBuZXh0Q2xpY2sodHlwZTogVGh5RGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS55ZWFyID0gdGhpcy5zZWxlY3RhYmxlRGF0YS55ZWFyLm1hcChpdGVtID0+IHRoaXMuZ2V0U2VsZWN0YWJsZVllYXIoaXRlbS5zdGFydFZhbHVlLCAxKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLnF1YXJ0ZXIgPSB0aGlzLnNlbGVjdGFibGVEYXRhLnF1YXJ0ZXIubWFwKGl0ZW0gPT4gdGhpcy5nZXRTZWxlY3RhYmxlUXVhcnRlcihpdGVtLnN0YXJ0VmFsdWUsIDIpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoID0gdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aC5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVNb250aChpdGVtLnN0YXJ0VmFsdWUsIDIpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICB9XG5cbiAgICBzZWxlY3REYXRlKHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSwgdmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaXRlbS5pc0luUmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0uaXNPdXRSYW5nZSA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdEVtcHR5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gdHlwZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KHZhbHVlKTtcbiAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZSQubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdCh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1NlbGVjdEVtcHR5KCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVHcmFudWxhcml0eSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRlR3JhbnVsYXJpdHkgPT09IHZhbHVlLnR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcmFuZ2VTdGFydCwgcmFuZ2VFbmQgfSA9IHRoaXMuZ2V0QWN0dWFsU3RhcnRBbmRFbmQodmFsdWUpO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkQmVTZWxlY3RWYWx1ZSA9IHRoaXMuZ2V0U2hvdWxkQmVUb2dnbGVWYWx1ZShyYW5nZVN0YXJ0LCByYW5nZUVuZCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCguLi5zaG91bGRCZVNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZSQubmV4dCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSB0eXBlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclNlbGVjdCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KHZhbHVlKTtcbiAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZSQubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRvZ2dsZVNlbGVjdCh2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBpZiAodmFsdWUuc3RhcnRWYWx1ZS5pc1NhbWVEYXkodGhpcy5zZWxlY3RlZFZhbHVlWzBdLnN0YXJ0VmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBvbmx5IGRlc2VsZWN0IGZpcnN0IG9uZVxuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBkZXNlbGVjdCBjdXJyZW50IGFuZCBhbGwgYWZ0ZXIgY3VycmVudFxuICAgICAgICAgICAgY29uc3QgcmFuZ2VTdGFydCA9IHZhbHVlLnN0YXJ0VmFsdWU7XG4gICAgICAgICAgICBjb25zdCByYW5nZUVuZCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZVt0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoIC0gMV0uZW5kVmFsdWU7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRCZURlc2VsZWN0VmFsdWUgPSB0aGlzLmdldFNob3VsZEJlVG9nZ2xlVmFsdWUocmFuZ2VTdGFydCwgcmFuZ2VFbmQpO1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdCguLi5zaG91bGRCZURlc2VsZWN0VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb3VzZWVudGVyKGV2ZW50OiBFdmVudCwgdHlwZTogVGh5RGF0ZUdyYW51bGFyaXR5LCB2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdEVtcHR5KCkgfHwgdGhpcy5kYXRlR3JhbnVsYXJpdHkgIT09IHR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuaXNJblJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydFZhbHVlLmlzU2FtZURheSh0aGlzLnNlbGVjdGVkVmFsdWVbMF0uc3RhcnRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5pc091dFJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VTdGFydCA9IHZhbHVlLnN0YXJ0VmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VFbmQgPSB0aGlzLnNlbGVjdGVkVmFsdWVbdGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aCAtIDFdLmVuZFZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaCgoaXRlbTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5zdGFydFZhbHVlLmdldFRpbWUoKSA+PSByYW5nZVN0YXJ0LmdldFRpbWUoKSAmJiBpdGVtLnN0YXJ0VmFsdWUuZ2V0VGltZSgpIDwgcmFuZ2VFbmQuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmlzT3V0UmFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pc091dFJhbmdlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcmFuZ2VTdGFydCwgcmFuZ2VFbmQgfSA9IHRoaXMuZ2V0QWN0dWFsU3RhcnRBbmRFbmQodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKChpdGVtOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uc3RhcnRWYWx1ZS5nZXRUaW1lKCkgPj0gcmFuZ2VTdGFydC5nZXRUaW1lKCkgJiYgaXRlbS5zdGFydFZhbHVlLmdldFRpbWUoKSA8IHJhbmdlRW5kLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmlzSW5SYW5nZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pc0luUmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICB9XG5cbiAgICBvbk1vdXNlbGVhdmUoZXZlbnQ6IEV2ZW50LCB0eXBlOiBUaHlEYXRlR3JhbnVsYXJpdHksIHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIGlmICh2YWx1ZS5pc0luUmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaChpdGVtID0+IChpdGVtLmlzSW5SYW5nZSA9IGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmlzT3V0UmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaChpdGVtID0+IChpdGVtLmlzT3V0UmFuZ2UgPSBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaChpdGVtID0+IChpdGVtLmNsYXNzTWFwID0gdGhpcy5nZXRDbGFzc01hcChpdGVtKSkpO1xuICAgIH1cblxuICAgIGdldEFjdHVhbFN0YXJ0QW5kRW5kKHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU3RhcnQgPSB0aGlzLnNlbGVjdGVkVmFsdWVbMF0uc3RhcnRWYWx1ZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbmQgPSB0aGlzLnNlbGVjdGVkVmFsdWVbdGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aCAtIDFdLmVuZFZhbHVlO1xuICAgICAgICBsZXQgcmFuZ2VTdGFydDogVGlueURhdGUsIHJhbmdlRW5kOiBUaW55RGF0ZTtcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0VmFsdWUuaXNCZWZvcmVEYXkoc2VsZWN0ZWRTdGFydCkpIHtcbiAgICAgICAgICAgIHJhbmdlU3RhcnQgPSB2YWx1ZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgcmFuZ2VFbmQgPSBzZWxlY3RlZFN0YXJ0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZS5zdGFydFZhbHVlLmlzQWZ0ZXJEYXkoc2VsZWN0ZWRFbmQpKSB7XG4gICAgICAgICAgICByYW5nZVN0YXJ0ID0gc2VsZWN0ZWRFbmQ7XG4gICAgICAgICAgICByYW5nZUVuZCA9IHZhbHVlLmVuZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHJhbmdlU3RhcnQsIHJhbmdlRW5kIH07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2Fyb3VzZWxJdGVtOyBjb250ZXh0OiB7IHRpdGxlOiAn5bm05Lu9JywgdHlwZTogJ3llYXInLCBzZWxlY3RhYmxlRGF0YTogc2VsZWN0YWJsZURhdGEueWVhciB9XCJcbj48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdUZW1wbGF0ZU91dGxldD1cImNhcm91c2VsSXRlbTsgY29udGV4dDogeyB0aXRsZTogJ+Wto+W6picsIHR5cGU6ICdxdWFydGVyJywgc2VsZWN0YWJsZURhdGE6IHNlbGVjdGFibGVEYXRhLnF1YXJ0ZXIgfVwiXG4+PC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJvdXNlbEl0ZW07IGNvbnRleHQ6IHsgdGl0bGU6ICfmnIjku70nLCB0eXBlOiAnbW9udGgnLCBzZWxlY3RhYmxlRGF0YTogc2VsZWN0YWJsZURhdGEubW9udGggfVwiXG4+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY2Fyb3VzZWxJdGVtIGxldC10aXRsZT1cInRpdGxlXCIgbGV0LXNlbGVjdGFibGVEYXRhPVwic2VsZWN0YWJsZURhdGFcIiBsZXQtdHlwZT1cInR5cGVcIj5cbiAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW0gY2Fyb3VzZWwtaXRlbS17eyB0eXBlIH19XCI+XG4gICAgPHAgY2xhc3M9XCJjYXJvdXNlbC1pdGVtLXRpdGxlXCI+e3sgdGl0bGUgfX08L3A+XG4gICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW0tY29udGVudFwiPlxuICAgICAgPGJ1dHRvbiB0aHlCdXR0b249XCJvdXRsaW5lLWRlZmF1bHRcIiB0aHlTaXplPVwic21cIiBjbGFzcz1cInJpZ2h0LXNwYWNlXCIgKGNsaWNrKT1cInByZXZDbGljayh0eXBlKVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1sZWZ0XCI+PC90aHktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNlbGVjdGFibGUtYnV0dG9uIHJpZ2h0LXNwYWNlXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0YWJsZURhdGFcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZSh0eXBlLCBpdGVtKVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VlbnRlcigkZXZlbnQsIHR5cGUsIGl0ZW0pXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZWxlYXZlKCRldmVudCwgdHlwZSwgaXRlbSlcIlxuICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzTWFwXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ5ZWFyLXRpcFwiICpuZ0lmPVwiaXRlbSB8IHNob3dZZWFyVGlwOiB0eXBlXCI+e3sgaXRlbT8uc3RhcnRWYWx1ZT8uZ2V0WWVhcigpIH19PC9zcGFuPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZVwiICpuZ0lmPVwiaXRlbS5pc0luUmFuZ2UgJiYgaXNTZWxlY3RlZChpdGVtKVwiPjwvdGh5LWljb24+XG4gICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInBsdXNcIiAqbmdJZj1cIml0ZW0uaXNJblJhbmdlICYmICFpc1NlbGVjdGVkKGl0ZW0pXCI+PC90aHktaWNvbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5pc0luUmFuZ2VcIj57eyBpdGVtPy5jb250ZW50IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cIm91dGxpbmUtZGVmYXVsdFwiIHRoeVNpemU9XCJzbVwiIChjbGljayk9XCJuZXh0Q2xpY2sodHlwZSlcIj5cbiAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUtY2Fyb3VzZWwvZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUtY2Fyb3VzZWwvZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN6SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHdkU7O0dBRUc7QUFnQkgsTUFBTSxPQUFPLFlBQVk7SUFLckIsSUFBSSxZQUFZLENBQUMsS0FBeUI7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxHQUFH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QUM7SUFDekMsQ0FBQzs4R0FwWFEsWUFBWTtrR0FBWixZQUFZLHVKQVZWO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDOUM7U0FDSiwwQkN6QkwsbXpEQXNDQSw0Q0RYYyxnQkFBZ0Isb0pBQUUsU0FBUyxvTEFBRSxPQUFPLHNNQUFFLEtBQUssbUhBQUUsT0FBTyxvRkFBRSxJQUFJLHdGQUFFLGlDQUFpQzs7MkZBRTlGLFlBQVk7a0JBZnhCLFNBQVM7K0JBRUksZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQzt5QkFDOUM7cUJBQ0osY0FDVyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlDQUFpQyxDQUFDO3NGQUdsRixTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBRVgsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlCdXR0b24gfSBmcm9tICduZ3gtdGV0aHlzL2J1dHRvbic7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwsIFJhbmdlQWR2YW5jZWRWYWx1ZSB9IGZyb20gJy4uLy4uL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IERhdGVQaWNrZXJBZHZhbmNlZFNob3dZZWFyVGlwUGlwZSB9IGZyb20gJy4uLy4uL3BpY2tlci5waXBlcyc7XG5pbXBvcnQgeyBUaHlEYXRlR3JhbnVsYXJpdHkgfSBmcm9tICcuLi8uLi9zdGFuZGFyZC10eXBlcyc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RhdGUtY2Fyb3VzZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLWNhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVDYXJvdXNlbClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgVGh5QnV0dG9uLCBUaHlJY29uLCBOZ0ZvciwgTmdDbGFzcywgTmdJZiwgRGF0ZVBpY2tlckFkdmFuY2VkU2hvd1llYXJUaXBQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2Fyb3VzZWwgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSAndGh5LWRhdGUtcGlja2VyLWFkdmFuY2VkLWNhcm91c2VsJztcblxuICAgIEBJbnB1dCgpIGFjdGl2ZURhdGU6IFRpbnlEYXRlO1xuXG4gICAgc2V0IGRlZmF1bHRWYWx1ZSh2YWx1ZTogUmFuZ2VBZHZhbmNlZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gdmFsdWUuZGF0ZUdyYW51bGFyaXR5O1xuICAgICAgICB0aGlzLmJ1aWxkU2VsZWN0YWJsZURhdGEodmFsdWUuYmVnaW4pO1xuXG4gICAgICAgIGlmICh2YWx1ZS5iZWdpbiAmJiB2YWx1ZS5lbmQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEJlU2VsZWN0VmFsdWUgPSB0aGlzLmdldFNob3VsZEJlVG9nZ2xlVmFsdWUodmFsdWUuYmVnaW4sIHZhbHVlLmVuZCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCguLi5zaG91bGRCZVNlbGVjdFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZWxlY3QodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgc2VsZWN0YWJsZURhdGE6IHsgeWVhcj86IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXTsgcXVhcnRlcj86IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXTsgbW9udGg/OiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsW10gfSA9IHt9O1xuXG4gICAgZGF0ZUdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHk7XG5cbiAgICBzZWxlY3RlZFZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsW10gPSBbXTtcblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc2VsZWN0ZWRWYWx1ZUNoYW5nZSQgPSBuZXcgU3ViamVjdDxSYW5nZUFkdmFuY2VkVmFsdWU+KCk7XG5cbiAgICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBSYW5nZUFkdmFuY2VkVmFsdWUpID0+IHZvaWQ7XG5cbiAgICBwcml2YXRlIF9vblRvdWNoZWQ6ICh2YWx1ZTogUmFuZ2VBZHZhbmNlZFZhbHVlKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZFNlbGVjdGFibGVEYXRhKHRoaXMuc2VsZWN0ZWRWYWx1ZVswXT8uc3RhcnRWYWx1ZSwgdGhpcy5kYXRlR3JhbnVsYXJpdHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS55ZWFyLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlci5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVHcmFudWxhcml0eTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGN0ZWRWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUdyYW51bGFyaXR5OiB0aGlzLmRhdGVHcmFudWxhcml0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBzZWxjdGVkVmFsdWVbMF0/LnN0YXJ0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IHNlbGN0ZWRWYWx1ZVtzZWxjdGVkVmFsdWUubGVuZ3RoIC0gMV0/LmVuZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogUmFuZ2VBZHZhbmNlZFZhbHVlKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3NNYXAoY2VsbDogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW2BhY3RpdmVgXTogdGhpcy5pc1NlbGVjdGVkKGNlbGwpLFxuICAgICAgICAgICAgW2BpbmRldGVybWluYXRlYF06IHRoaXMuaXNDZWxsSW5kZXRlcm1pbmF0ZSh0aGlzLnNlbGVjdGVkVmFsdWUsIGNlbGwpLFxuICAgICAgICAgICAgW2B0eXBlLWFjdGl2ZWBdOiB0aGlzLmlzVHlwZUFjdGl2ZSh0aGlzLnNlbGVjdGVkVmFsdWUsIGNlbGwpLFxuICAgICAgICAgICAgWydpbi1ob3Zlci1yYW5nZSddOiBjZWxsLmlzSW5SYW5nZSxcbiAgICAgICAgICAgIFsnb3V0LXJhbmdlJ106IGNlbGwuaXNPdXRSYW5nZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlzVHlwZUFjdGl2ZShvcmlnaW5hbFZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsW10sIHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbFZhbHVlPy5sZW5ndGggJiYgb3JpZ2luYWxWYWx1ZVswXS50eXBlID09PSB2YWx1ZS50eXBlO1xuICAgIH1cblxuICAgIGlzQ2VsbEluZGV0ZXJtaW5hdGUob3JpZ2luYWxWYWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdLCB2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZVswXT8udHlwZSA9PT0gdmFsdWUudHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG9yaWdpbmFsVmFsdWVbMF0/LnR5cGUgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIW9yaWdpbmFsVmFsdWUuZmluZChpdGVtID0+IGl0ZW0uc3RhcnRWYWx1ZS5pc1NhbWVZZWFyKHZhbHVlLnN0YXJ0VmFsdWUpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICd5ZWFyJ1xuICAgICAgICAgICAgICAgICAgICA/ICEhb3JpZ2luYWxWYWx1ZS5maW5kKGl0ZW0gPT4gaXRlbS5zdGFydFZhbHVlLmlzU2FtZVllYXIodmFsdWUuc3RhcnRWYWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgIDogISFvcmlnaW5hbFZhbHVlLmZpbmQoaXRlbSA9PiBpdGVtLnN0YXJ0VmFsdWUuaXNTYW1lUXVhcnRlcih2YWx1ZS5zdGFydFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkKHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWUuZmluZChpdGVtID0+IGl0ZW0uc3RhcnRWYWx1ZS5pc1NhbWVEYXkodmFsdWUuc3RhcnRWYWx1ZSkpICYmIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID09PSB2YWx1ZS50eXBlO1xuICAgIH1cblxuICAgIGlzU2VsZWN0RW1wdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoID09IDA7XG4gICAgfVxuXG4gICAgc2VsZWN0U29ydCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlLnNvcnQoKGEsIGIpID0+IGEuc3RhcnRWYWx1ZS5nZXRUaW1lKCkgLSBiLnN0YXJ0VmFsdWUuZ2V0VGltZSgpKTtcbiAgICB9XG5cbiAgICBzZWxlY3QoLi4udmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSkge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUucHVzaCguLi52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdFNvcnQoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgZGVzZWxlY3QoLi4udmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSkge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlLmZpbHRlcihzZWxlY3RlZCA9PiAhc2VsZWN0ZWQuc3RhcnRWYWx1ZS5pc1NhbWVEYXkoaXRlbS5zdGFydFZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdFNvcnQoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgY2xlYXJTZWxlY3QoaGlkZGVuPzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBbXTtcbiAgICAgICAgaWYgKCFoaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZSQubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U2hvdWxkQmVUb2dnbGVWYWx1ZShiZWdpbjogVGlueURhdGUsIGVuZDogVGlueURhdGUpIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkVmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSA9IFtdO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVHcmFudWxhcml0eSA9ICd5ZWFyJztcbiAgICAgICAgICAgICAgICBpZiAoYmVnaW4uaXNTYW1lWWVhcihlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVZZWFyKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZVllYXIoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFiZWdpbi5pc1NhbWVZZWFyKGVuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gYmVnaW4uYWRkWWVhcnMoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlWWVhcihiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gJ21vbnRoJztcbiAgICAgICAgICAgICAgICBpZiAoYmVnaW4uaXNTYW1lTW9udGgoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlTW9udGgoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlTW9udGgoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFiZWdpbi5pc1NhbWVNb250aChlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGJlZ2luLmFkZE1vbnRocygxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVNb250aChiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSAncXVhcnRlcic7XG4gICAgICAgICAgICAgICAgaWYgKGJlZ2luLmlzU2FtZVF1YXJ0ZXIoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlUXVhcnRlcihiZWdpbikpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlICghYmVnaW4uaXNTYW1lUXVhcnRlcihlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGJlZ2luLmFkZFF1YXJ0ZXJzKDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBidWlsZFNlbGVjdGFibGVEYXRhKHN0YXJ0RGF0ZTogVGlueURhdGUsIGV4Y2x1ZGVHcmFudWxhcml0eT86IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBjb25zdCBidWlsZEdyYW51bGFyaXR5ID0gWyd5ZWFyJywgJ21vbnRoJywgJ3F1YXJ0ZXInXS5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBleGNsdWRlR3JhbnVsYXJpdHkpO1xuICAgICAgICBidWlsZEdyYW51bGFyaXR5LmZvckVhY2goZ3JhbnVsYXJpdHkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChncmFudWxhcml0eSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLnllYXIgPSBbLi4uQXJyYXkoMykua2V5cygpXS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RhYmxlWWVhcihzdGFydERhdGUsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLnF1YXJ0ZXIgPSBbLi4uQXJyYXkoNCkua2V5cygpXS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RhYmxlUXVhcnRlcihzdGFydERhdGUsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aCA9IFsuLi5BcnJheSg0KS5rZXlzKCldLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGFibGVNb250aChzdGFydERhdGUsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0YWJsZVllYXIoY3VycmVudERhdGU6IFRpbnlEYXRlLCBwcmVPck5leHRjb3VudDogbnVtYmVyID0gMCk6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwge1xuICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlIHx8IHRoaXMuYWN0aXZlRGF0ZSB8fCBuZXcgVGlueURhdGUoKS5zdGFydE9mWWVhcigpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3llYXInLFxuICAgICAgICAgICAgY29udGVudDogYCR7Y3VycmVudERhdGUuYWRkWWVhcnMocHJlT3JOZXh0Y291bnQpLmdldFllYXIoKX1gLFxuICAgICAgICAgICAgc3RhcnRWYWx1ZTogY3VycmVudERhdGUuc3RhcnRPZlllYXIoKS5hZGRZZWFycyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBlbmRWYWx1ZTogY3VycmVudERhdGUuZW5kT2ZZZWFyKCkuYWRkWWVhcnMocHJlT3JOZXh0Y291bnQpLFxuICAgICAgICAgICAgY2xhc3NNYXA6IHt9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoY3VycmVudERhdGU6IFRpbnlEYXRlLCBwcmVPck5leHRjb3VudDogbnVtYmVyID0gMCk6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwge1xuICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlIHx8IHRoaXMuYWN0aXZlRGF0ZSB8fCBuZXcgVGlueURhdGUoKS5zdGFydE9mUXVhcnRlcigpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3F1YXJ0ZXInLFxuICAgICAgICAgICAgY29udGVudDogYFEke2N1cnJlbnREYXRlLmFkZFF1YXJ0ZXJzKHByZU9yTmV4dGNvdW50KS5nZXRRdWFydGVyKCl9YCxcbiAgICAgICAgICAgIHN0YXJ0VmFsdWU6IGN1cnJlbnREYXRlLnN0YXJ0T2ZRdWFydGVyKCkuYWRkUXVhcnRlcnMocHJlT3JOZXh0Y291bnQpLFxuICAgICAgICAgICAgZW5kVmFsdWU6IGN1cnJlbnREYXRlLmVuZE9mUXVhcnRlcigpLmFkZFF1YXJ0ZXJzKHByZU9yTmV4dGNvdW50KSxcbiAgICAgICAgICAgIGNsYXNzTWFwOiB7fVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldFNlbGVjdGFibGVNb250aChjdXJyZW50RGF0ZTogVGlueURhdGUsIHByZU9yTmV4dGNvdW50OiBudW1iZXIgPSAwKTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCB7XG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgfHwgdGhpcy5hY3RpdmVEYXRlIHx8IG5ldyBUaW55RGF0ZSgpLnN0YXJ0T2ZNb250aCgpO1xuICAgICAgICBjb25zdCBjZWxsOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsID0ge1xuICAgICAgICAgICAgdHlwZTogJ21vbnRoJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGAke2N1cnJlbnREYXRlLmFkZE1vbnRocyhwcmVPck5leHRjb3VudCkuZ2V0TW9udGgoKSArIDF95pyIYCxcbiAgICAgICAgICAgIHN0YXJ0VmFsdWU6IGN1cnJlbnREYXRlLnN0YXJ0T2ZNb250aCgpLmFkZE1vbnRocyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBlbmRWYWx1ZTogY3VycmVudERhdGUuZW5kT2ZNb250aCgpLmFkZE1vbnRocyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBjbGFzc01hcDoge31cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgfVxuXG4gICAgcHJldkNsaWNrKHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEueWVhciA9IHRoaXMuc2VsZWN0YWJsZURhdGEueWVhci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVZZWFyKGl0ZW0uc3RhcnRWYWx1ZSwgLTEpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlciA9IHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKGl0ZW0uc3RhcnRWYWx1ZSwgLTIpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoID0gdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aC5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVNb250aChpdGVtLnN0YXJ0VmFsdWUsIC0yKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgbmV4dENsaWNrKHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEueWVhciA9IHRoaXMuc2VsZWN0YWJsZURhdGEueWVhci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVZZWFyKGl0ZW0uc3RhcnRWYWx1ZSwgMSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyID0gdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyLm1hcChpdGVtID0+IHRoaXMuZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoaXRlbS5zdGFydFZhbHVlLCAyKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aCA9IHRoaXMuc2VsZWN0YWJsZURhdGEubW9udGgubWFwKGl0ZW0gPT4gdGhpcy5nZXRTZWxlY3RhYmxlTW9udGgoaXRlbS5zdGFydFZhbHVlLCAyKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgc2VsZWN0RGF0ZSh0eXBlOiBUaHlEYXRlR3JhbnVsYXJpdHksIHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmlzT3V0UmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVHcmFudWxhcml0eSA9IHR5cGU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCh2YWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3QodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0ZUdyYW51bGFyaXR5ID09PSB2YWx1ZS50eXBlKSB7XG4gICAgICAgICAgICBjb25zdCB7IHJhbmdlU3RhcnQsIHJhbmdlRW5kIH0gPSB0aGlzLmdldEFjdHVhbFN0YXJ0QW5kRW5kKHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEJlU2VsZWN0VmFsdWUgPSB0aGlzLmdldFNob3VsZEJlVG9nZ2xlVmFsdWUocmFuZ2VTdGFydCwgcmFuZ2VFbmQpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3QoLi4uc2hvdWxkQmVTZWxlY3RWYWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gdHlwZTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZWxlY3QodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCh2YWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b2dnbGVTZWxlY3QodmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0VmFsdWUuaXNTYW1lRGF5KHRoaXMuc2VsZWN0ZWRWYWx1ZVswXS5zdGFydFZhbHVlKSkge1xuICAgICAgICAgICAgLy8gb25seSBkZXNlbGVjdCBmaXJzdCBvbmVcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3QodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZGVzZWxlY3QgY3VycmVudCBhbmQgYWxsIGFmdGVyIGN1cnJlbnRcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlU3RhcnQgPSB2YWx1ZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2VFbmQgPSB0aGlzLnNlbGVjdGVkVmFsdWVbdGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aCAtIDFdLmVuZFZhbHVlO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkQmVEZXNlbGVjdFZhbHVlID0gdGhpcy5nZXRTaG91bGRCZVRvZ2dsZVZhbHVlKHJhbmdlU3RhcnQsIHJhbmdlRW5kKTtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3QoLi4uc2hvdWxkQmVEZXNlbGVjdFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW91c2VlbnRlcihldmVudDogRXZlbnQsIHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSwgdmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpIHx8IHRoaXMuZGF0ZUdyYW51bGFyaXR5ICE9PSB0eXBlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLmlzSW5SYW5nZSA9IHRydWU7XG4gICAgICAgICAgICBpZiAodmFsdWUuc3RhcnRWYWx1ZS5pc1NhbWVEYXkodGhpcy5zZWxlY3RlZFZhbHVlWzBdLnN0YXJ0VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUuaXNPdXRSYW5nZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlU3RhcnQgPSB2YWx1ZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlRW5kID0gdGhpcy5zZWxlY3RlZFZhbHVlW3RoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggLSAxXS5lbmRWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goKGl0ZW06IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uc3RhcnRWYWx1ZS5nZXRUaW1lKCkgPj0gcmFuZ2VTdGFydC5nZXRUaW1lKCkgJiYgaXRlbS5zdGFydFZhbHVlLmdldFRpbWUoKSA8IHJhbmdlRW5kLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pc091dFJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNPdXRSYW5nZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB7IHJhbmdlU3RhcnQsIHJhbmdlRW5kIH0gPSB0aGlzLmdldEFjdHVhbFN0YXJ0QW5kRW5kKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaCgoaXRlbTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnN0YXJ0VmFsdWUuZ2V0VGltZSgpID49IHJhbmdlU3RhcnQuZ2V0VGltZSgpICYmIGl0ZW0uc3RhcnRWYWx1ZS5nZXRUaW1lKCkgPCByYW5nZUVuZC5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pc0luUmFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgb25Nb3VzZWxlYXZlKGV2ZW50OiBFdmVudCwgdHlwZTogVGh5RGF0ZUdyYW51bGFyaXR5LCB2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBpZiAodmFsdWUuaXNJblJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5pc0luUmFuZ2UgPSBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZS5pc091dFJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5pc091dFJhbmdlID0gZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICB9XG5cbiAgICBnZXRBY3R1YWxTdGFydEFuZEVuZCh2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFN0YXJ0ID0gdGhpcy5zZWxlY3RlZFZhbHVlWzBdLnN0YXJ0VmFsdWU7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRW5kID0gdGhpcy5zZWxlY3RlZFZhbHVlW3RoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggLSAxXS5lbmRWYWx1ZTtcbiAgICAgICAgbGV0IHJhbmdlU3RhcnQ6IFRpbnlEYXRlLCByYW5nZUVuZDogVGlueURhdGU7XG4gICAgICAgIGlmICh2YWx1ZS5zdGFydFZhbHVlLmlzQmVmb3JlRGF5KHNlbGVjdGVkU3RhcnQpKSB7XG4gICAgICAgICAgICByYW5nZVN0YXJ0ID0gdmFsdWUuc3RhcnRWYWx1ZTtcbiAgICAgICAgICAgIHJhbmdlRW5kID0gc2VsZWN0ZWRTdGFydDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUuc3RhcnRWYWx1ZS5pc0FmdGVyRGF5KHNlbGVjdGVkRW5kKSkge1xuICAgICAgICAgICAgcmFuZ2VTdGFydCA9IHNlbGVjdGVkRW5kO1xuICAgICAgICAgICAgcmFuZ2VFbmQgPSB2YWx1ZS5lbmRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByYW5nZVN0YXJ0LCByYW5nZUVuZCB9O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAqbmdUZW1wbGF0ZU91dGxldD1cImNhcm91c2VsSXRlbTsgY29udGV4dDogeyB0aXRsZTogJ+W5tOS7vScsIHR5cGU6ICd5ZWFyJywgc2VsZWN0YWJsZURhdGE6IHNlbGVjdGFibGVEYXRhLnllYXIgfVwiXG4+PC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJvdXNlbEl0ZW07IGNvbnRleHQ6IHsgdGl0bGU6ICflraPluqYnLCB0eXBlOiAncXVhcnRlcicsIHNlbGVjdGFibGVEYXRhOiBzZWxlY3RhYmxlRGF0YS5xdWFydGVyIH1cIlxuPjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyXG4gICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2Fyb3VzZWxJdGVtOyBjb250ZXh0OiB7IHRpdGxlOiAn5pyI5Lu9JywgdHlwZTogJ21vbnRoJywgc2VsZWN0YWJsZURhdGE6IHNlbGVjdGFibGVEYXRhLm1vbnRoIH1cIlxuPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2Nhcm91c2VsSXRlbSBsZXQtdGl0bGU9XCJ0aXRsZVwiIGxldC1zZWxlY3RhYmxlRGF0YT1cInNlbGVjdGFibGVEYXRhXCIgbGV0LXR5cGU9XCJ0eXBlXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtIGNhcm91c2VsLWl0ZW0te3sgdHlwZSB9fVwiPlxuICAgIDxwIGNsYXNzPVwiY2Fyb3VzZWwtaXRlbS10aXRsZVwiPnt7IHRpdGxlIH19PC9wPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtLWNvbnRlbnRcIj5cbiAgICAgIDxidXR0b24gdGh5QnV0dG9uPVwib3V0bGluZS1kZWZhdWx0XCIgdGh5U2l6ZT1cInNtXCIgY2xhc3M9XCJyaWdodC1zcGFjZVwiIChjbGljayk9XCJwcmV2Q2xpY2sodHlwZSlcIj5cbiAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtbGVmdFwiPjwvdGh5LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzZWxlY3RhYmxlLWJ1dHRvbiByaWdodC1zcGFjZVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGFibGVEYXRhXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUodHlwZSwgaXRlbSlcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlZW50ZXIoJGV2ZW50LCB0eXBlLCBpdGVtKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VsZWF2ZSgkZXZlbnQsIHR5cGUsIGl0ZW0pXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc01hcFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwieWVhci10aXBcIiAqbmdJZj1cIml0ZW0gfCBzaG93WWVhclRpcDogdHlwZVwiPnt7IGl0ZW0/LnN0YXJ0VmFsdWU/LmdldFllYXIoKSB9fTwvc3Bhbj5cbiAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiY2xvc2VcIiAqbmdJZj1cIml0ZW0uaXNJblJhbmdlICYmIGlzU2VsZWN0ZWQoaXRlbSlcIj48L3RoeS1pY29uPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJwbHVzXCIgKm5nSWY9XCJpdGVtLmlzSW5SYW5nZSAmJiAhaXNTZWxlY3RlZChpdGVtKVwiPjwvdGh5LWljb24+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0uaXNJblJhbmdlXCI+e3sgaXRlbT8uY29udGVudCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiB0aHlCdXR0b249XCJvdXRsaW5lLWRlZmF1bHRcIiB0aHlTaXplPVwic21cIiAoY2xpY2spPVwibmV4dENsaWNrKHR5cGUpXCI+XG4gICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLXJpZ2h0XCI+PC90aHktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,14 +1,14 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { DateHelperService } from '../../../date-picker/date-helper.service';
3
3
  import { CalendarHeader } from '../calendar/calendar-header.component';
4
- import { ThyIconComponent } from 'ngx-tethys/icon';
4
+ import { ThyIcon } from 'ngx-tethys/icon';
5
5
  import { NgIf, NgFor } from '@angular/common';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../../../date-picker/date-helper.service";
8
8
  /**
9
9
  * @private
10
10
  */
11
- export class DecadeHeaderComponent extends CalendarHeader {
11
+ export class DecadeHeader extends CalendarHeader {
12
12
  constructor(dateHelper) {
13
13
  super(dateHelper);
14
14
  this.dateHelper = dateHelper;
@@ -35,11 +35,11 @@ export class DecadeHeaderComponent extends CalendarHeader {
35
35
  }
36
36
  ];
37
37
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DecadeHeaderComponent, deps: [{ token: i1.DateHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: DecadeHeaderComponent, isStandalone: true, selector: "decade-header", usesInheritance: true, ngImport: i0, template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative;\">\n <a *ngIf=\"showSuperPreBtn\" class=\"{{ prefixCls }}-prev-year-btn\" role=\"button\" (click)=\"superPrevious()\" title=\"\u4E0A\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a *ngIf=\"showPreBtn\" class=\"{{ prefixCls }}-prev-month-btn\" role=\"button\" (click)=\"previous()\" title=\"\u4E0A\u6708\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n <ng-container *ngFor=\"let selector of selectors\">\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n </ng-container>\n </span>\n\n <a *ngIf=\"showNextBtn\" class=\"{{ prefixCls }}-next-month-btn\" role=\"button\" (click)=\"next()\" title=\"\u4E0B\u4E2A\u6708\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a *ngIf=\"showSuperNextBtn\" class=\"{{ prefixCls }}-next-year-btn\" role=\"button\" (click)=\"superNext()\" title=\"\u4E0B\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DecadeHeader, deps: [{ token: i1.DateHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: DecadeHeader, isStandalone: true, selector: "decade-header", usesInheritance: true, ngImport: i0, template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative;\">\n <a *ngIf=\"showSuperPreBtn\" class=\"{{ prefixCls }}-prev-year-btn\" role=\"button\" (click)=\"superPrevious()\" title=\"\u4E0A\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a *ngIf=\"showPreBtn\" class=\"{{ prefixCls }}-prev-month-btn\" role=\"button\" (click)=\"previous()\" title=\"\u4E0A\u6708\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n <ng-container *ngFor=\"let selector of selectors\">\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n </ng-container>\n </span>\n\n <a *ngIf=\"showNextBtn\" class=\"{{ prefixCls }}-next-month-btn\" role=\"button\" (click)=\"next()\" title=\"\u4E0B\u4E2A\u6708\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a *ngIf=\"showSuperNextBtn\" class=\"{{ prefixCls }}-next-year-btn\" role=\"button\" (click)=\"superNext()\" title=\"\u4E0B\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\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: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DecadeHeaderComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DecadeHeader, decorators: [{
42
42
  type: Component,
43
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'decade-header', standalone: true, imports: [NgIf, ThyIconComponent, NgFor], template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative;\">\n <a *ngIf=\"showSuperPreBtn\" class=\"{{ prefixCls }}-prev-year-btn\" role=\"button\" (click)=\"superPrevious()\" title=\"\u4E0A\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a *ngIf=\"showPreBtn\" class=\"{{ prefixCls }}-prev-month-btn\" role=\"button\" (click)=\"previous()\" title=\"\u4E0A\u6708\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n <ng-container *ngFor=\"let selector of selectors\">\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n </ng-container>\n </span>\n\n <a *ngIf=\"showNextBtn\" class=\"{{ prefixCls }}-next-month-btn\" role=\"button\" (click)=\"next()\" title=\"\u4E0B\u4E2A\u6708\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a *ngIf=\"showSuperNextBtn\" class=\"{{ prefixCls }}-next-year-btn\" role=\"button\" (click)=\"superNext()\" title=\"\u4E0B\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n" }]
43
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'decade-header', standalone: true, imports: [NgIf, ThyIcon, NgFor], template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative;\">\n <a *ngIf=\"showSuperPreBtn\" class=\"{{ prefixCls }}-prev-year-btn\" role=\"button\" (click)=\"superPrevious()\" title=\"\u4E0A\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a *ngIf=\"showPreBtn\" class=\"{{ prefixCls }}-prev-month-btn\" role=\"button\" (click)=\"previous()\" title=\"\u4E0A\u6708\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n <ng-container *ngFor=\"let selector of selectors\">\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n </ng-container>\n </span>\n\n <a *ngIf=\"showNextBtn\" class=\"{{ prefixCls }}-next-month-btn\" role=\"button\" (click)=\"next()\" title=\"\u4E0B\u4E2A\u6708\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a *ngIf=\"showSuperNextBtn\" class=\"{{ prefixCls }}-next-year-btn\" role=\"button\" (click)=\"superNext()\" title=\"\u4E0B\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n" }]
44
44
  }], ctorParameters: () => [{ type: i1.DateHelperService }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWRlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RlY2FkZS9kZWNhZGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFOUM7O0dBRUc7QUFTSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsY0FBYztJQUNyRCxZQUFtQixVQUE2QjtRQUM1QyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFESCxlQUFVLEdBQVYsVUFBVSxDQUFtQjtJQUVoRCxDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTztZQUNIO2dCQUNJLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWE7Z0JBQ3pDLEtBQUssRUFBRSxFQUFFO2dCQUNULE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO2dCQUNqQixLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7YUFDN0M7U0FDSixDQUFDO0lBQ04sQ0FBQzs4R0E3QlEscUJBQXFCO2tHQUFyQixxQkFBcUIsZ0dDbEJsQyxpd0NBeUJBLDRDRFRjLElBQUksNkZBQUUsZ0JBQWdCLHNNQUFFLEtBQUs7OzJGQUU5QixxQkFBcUI7a0JBUmpDLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUVyQyxlQUFlLGNBRWIsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRlLXBpY2tlci9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyLCBQYW5lbFNlbGVjdG9yIH0gZnJvbSAnLi4vY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlJY29uQ29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGVjYWRlLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuLi9jYWxlbmRhci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb25Db21wb25lbnQsIE5nRm9yXVxufSlcbmV4cG9ydCBjbGFzcyBEZWNhZGVIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBDYWxlbmRhckhlYWRlciB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGVIZWxwZXI6IERhdGVIZWxwZXJTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGRhdGVIZWxwZXIpO1xuICAgIH1cbiAgICBnZXQgc3RhcnRZZWFyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwYXJzZUludChgJHt0aGlzLnZhbHVlLmdldFllYXIoKSAvIDEwMH1gLCAxMCkgKiAxMDA7XG4gICAgfVxuXG4gICAgZ2V0IGVuZFllYXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRZZWFyICsgOTk7XG4gICAgfVxuXG4gICAgc3VwZXJQcmV2aW91cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VWYWx1ZSh0aGlzLnZhbHVlLmFkZFllYXJzKC0xMDApKTtcbiAgICB9XG5cbiAgICBzdXBlck5leHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlVmFsdWUodGhpcy52YWx1ZS5hZGRZZWFycygxMDApKTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RvcnMoKTogUGFuZWxTZWxlY3RvcltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGAke3RoaXMucHJlZml4Q2xzfS1kZWNhZGUtYnRuYCxcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4ge30sXG4gICAgICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMuc3RhcnRZZWFyfS0ke3RoaXMuZW5kWWVhcn1gXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1oZWFkZXJcIj5cbiAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cbiAgICA8YSAqbmdJZj1cInNob3dTdXBlclByZUJ0blwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXByZXYteWVhci1idG5cIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInN1cGVyUHJldmlvdXMoKVwiIHRpdGxlPVwi5LiK5LiA5bm0XCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3VibGUtbGVmdFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuICAgIDxhICpuZ0lmPVwic2hvd1ByZUJ0blwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXByZXYtbW9udGgtYnRuXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91cygpXCIgdGl0bGU9XCLkuIrmnIhcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWxlZnRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cblxuICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LW15LXNlbGVjdFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VsZWN0b3Igb2Ygc2VsZWN0b3JzXCI+XG4gICAgICAgIDxhIGNsYXNzPVwie3sgc2VsZWN0b3IuY2xhc3NOYW1lIH19XCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJzZWxlY3RvckNsaWNrKCRldmVudCwgc2VsZWN0b3IpXCIgdGl0bGU9XCJ7eyBzZWxlY3Rvci50aXRsZSB8fCBudWxsIH19XCI+XG4gICAgICAgICAge3sgc2VsZWN0b3IubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9zcGFuPlxuXG4gICAgPGEgKm5nSWY9XCJzaG93TmV4dEJ0blwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LW5leHQtbW9udGgtYnRuXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJuZXh0KClcIiB0aXRsZT1cIuS4i+S4quaciFwiPlxuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cbiAgICA8YSAqbmdJZj1cInNob3dTdXBlck5leHRCdG5cIiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1uZXh0LXllYXItYnRuXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJzdXBlck5leHQoKVwiIHRpdGxlPVwi5LiL5LiA5bm0XCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3VibGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWRlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RlY2FkZS9kZWNhZGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRTlDOztHQUVHO0FBU0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxjQUFjO0lBQzVDLFlBQW1CLFVBQTZCO1FBQzVDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQURILGVBQVUsR0FBVixVQUFVLENBQW1CO0lBRWhELENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDVCxPQUFPLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPO1lBQ0g7Z0JBQ0ksU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYTtnQkFDekMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7Z0JBQ2pCLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTthQUM3QztTQUNKLENBQUM7SUFDTixDQUFDOzhHQTdCUSxZQUFZO2tHQUFaLFlBQVksZ0dDbEJ6Qixpd0NBeUJBLDRDRFRjLElBQUksNkZBQUUsT0FBTyxzTUFBRSxLQUFLOzsyRkFFckIsWUFBWTtrQkFSeEIsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBRXJDLGVBQWUsY0FFYixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRlLXBpY2tlci9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyLCBQYW5lbFNlbGVjdG9yIH0gZnJvbSAnLi4vY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGVjYWRlLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuLi9jYWxlbmRhci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb24sIE5nRm9yXVxufSlcbmV4cG9ydCBjbGFzcyBEZWNhZGVIZWFkZXIgZXh0ZW5kcyBDYWxlbmRhckhlYWRlciB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGVIZWxwZXI6IERhdGVIZWxwZXJTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGRhdGVIZWxwZXIpO1xuICAgIH1cbiAgICBnZXQgc3RhcnRZZWFyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwYXJzZUludChgJHt0aGlzLnZhbHVlLmdldFllYXIoKSAvIDEwMH1gLCAxMCkgKiAxMDA7XG4gICAgfVxuXG4gICAgZ2V0IGVuZFllYXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRZZWFyICsgOTk7XG4gICAgfVxuXG4gICAgc3VwZXJQcmV2aW91cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VWYWx1ZSh0aGlzLnZhbHVlLmFkZFllYXJzKC0xMDApKTtcbiAgICB9XG5cbiAgICBzdXBlck5leHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlVmFsdWUodGhpcy52YWx1ZS5hZGRZZWFycygxMDApKTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RvcnMoKTogUGFuZWxTZWxlY3RvcltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGAke3RoaXMucHJlZml4Q2xzfS1kZWNhZGUtYnRuYCxcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4ge30sXG4gICAgICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMuc3RhcnRZZWFyfS0ke3RoaXMuZW5kWWVhcn1gXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1oZWFkZXJcIj5cbiAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cbiAgICA8YSAqbmdJZj1cInNob3dTdXBlclByZUJ0blwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXByZXYteWVhci1idG5cIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInN1cGVyUHJldmlvdXMoKVwiIHRpdGxlPVwi5LiK5LiA5bm0XCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3VibGUtbGVmdFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuICAgIDxhICpuZ0lmPVwic2hvd1ByZUJ0blwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXByZXYtbW9udGgtYnRuXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91cygpXCIgdGl0bGU9XCLkuIrmnIhcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWxlZnRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cblxuICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LW15LXNlbGVjdFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VsZWN0b3Igb2Ygc2VsZWN0b3JzXCI+XG4gICAgICAgIDxhIGNsYXNzPVwie3sgc2VsZWN0b3IuY2xhc3NOYW1lIH19XCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJzZWxlY3RvckNsaWNrKCRldmVudCwgc2VsZWN0b3IpXCIgdGl0bGU9XCJ7eyBzZWxlY3Rvci50aXRsZSB8fCBudWxsIH19XCI+XG4gICAgICAgICAge3sgc2VsZWN0b3IubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9zcGFuPlxuXG4gICAgPGEgKm5nSWY9XCJzaG93TmV4dEJ0blwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LW5leHQtbW9udGgtYnRuXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJuZXh0KClcIiB0aXRsZT1cIuS4i+S4quaciFwiPlxuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cbiAgICA8YSAqbmdJZj1cInNob3dTdXBlck5leHRCdG5cIiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1uZXh0LXllYXItYnRuXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJzdXBlck5leHQoKVwiIHRpdGxlPVwi5LiL5LiA5bm0XCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3VibGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
6
6
  /**
7
7
  * @private
8
8
  */
9
- export class DecadeTableComponent extends CalendarTable {
9
+ export class DecadeTable extends CalendarTable {
10
10
  get startYear() {
11
11
  return parseInt(`${this.activeDate.getYear() / 100}`, 10) * 100;
12
12
  }
@@ -71,11 +71,11 @@ export class DecadeTableComponent extends CalendarTable {
71
71
  event.stopPropagation();
72
72
  cell.onClick();
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DecadeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: DecadeTableComponent, isStandalone: true, selector: "decade-table", exportAs: ["decadeTable"], usesInheritance: true, ngImport: i0, template: "<table class=\"{{ prefixCls }}-decade-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixCls }}-decade-panel-tbody\">\n <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" role=\"row\">\n <td\n *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n role=\"gridcell\"\n title=\"{{ cell.title }}\"\n (click)=\"cellClick($event, cell)\"\n [ngClass]=\"cell.classMap\"\n >\n <a class=\"{{ prefixCls }}-decade-panel-decade\">{{ cell.content }}</a>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DecadeTable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: DecadeTable, isStandalone: true, selector: "decade-table", exportAs: ["decadeTable"], usesInheritance: true, ngImport: i0, template: "<table class=\"{{ prefixCls }}-decade-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixCls }}-decade-panel-tbody\">\n <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" role=\"row\">\n <td\n *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n role=\"gridcell\"\n title=\"{{ cell.title }}\"\n (click)=\"cellClick($event, cell)\"\n [ngClass]=\"cell.classMap\"\n >\n <a class=\"{{ prefixCls }}-decade-panel-decade\">{{ cell.content }}</a>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DecadeTableComponent, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DecadeTable, decorators: [{
78
78
  type: Component,
79
79
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'decade-table', exportAs: 'decadeTable', standalone: true, imports: [NgFor, NgClass], template: "<table class=\"{{ prefixCls }}-decade-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixCls }}-decade-panel-tbody\">\n <tr *ngFor=\"let row of bodyRows; trackBy: trackByBodyRow\" role=\"row\">\n <td\n *ngFor=\"let cell of row.dateCells; trackBy: trackByBodyColumn\"\n role=\"gridcell\"\n title=\"{{ cell.title }}\"\n (click)=\"cellClick($event, cell)\"\n [ngClass]=\"cell.classMap\"\n >\n <a class=\"{{ prefixCls }}-decade-panel-decade\">{{ cell.content }}</a>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
80
80
  }], ctorParameters: () => [] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWRlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvZGVjYWRlL2RlY2FkZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RlY2FkZS9kZWNhZGUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRWpEOztHQUVHO0FBVUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFJbkQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVhaLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixZQUFPLEdBQUcsQ0FBQyxDQUFDO0lBV1osQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUFpQjtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxX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QUMsTUFBTSxZQUVyQyxjQUFjLFlBQ2QsYUFBYSxjQUVYLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IENhbGVuZGFyVGFibGUgfSBmcm9tICcuLi9jYWxlbmRhci9jYWxlbmRhci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNlbGwsIERlY2FkZUNlbGwsIERhdGVCb2R5Um93IH0gZnJvbSAnLi4vZGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBOZ0ZvciwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RlY2FkZS10YWJsZScsXG4gICAgZXhwb3J0QXM6ICdkZWNhZGVUYWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICdkZWNhZGUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBOZ0NsYXNzXVxufSlcbmV4cG9ydCBjbGFzcyBEZWNhZGVUYWJsZUNvbXBvbmVudCBleHRlbmRzIENhbGVuZGFyVGFibGUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIE1BWF9ST1cgPSA0O1xuICAgIE1BWF9DT0wgPSAzO1xuXG4gICAgZ2V0IHN0YXJ0WWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoYCR7dGhpcy5hY3RpdmVEYXRlLmdldFllYXIoKSAvIDEwMH1gLCAxMCkgKiAxMDA7XG4gICAgfVxuICAgIGdldCBlbmRZZWFyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0WWVhciArIDk5O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hvb3NlRGVjYWRlKHN0YXJ0WWVhcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAodGhpcy52YWx1ZSB8fCBuZXcgVGlueURhdGUoKSkuc2V0WWVhcihzdGFydFllYXIpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgbWFrZUhlYWRSb3coKTogRGF0ZUNlbGxbXSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBtYWtlQm9keVJvd3MoKTogRGF0ZUJvZHlSb3dbXSB7XG4gICAgICAgIGNvbnN0IGRlY2FkZXM6IERhdGVCb2R5Um93W10gPSBbXTtcbiAgICAgICAgY29uc3QgY3VycmVudFllYXIgPSB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUuZ2V0WWVhcigpO1xuICAgICAgICBjb25zdCBzdGFydFllYXIgPSB0aGlzLnN0YXJ0WWVhcjtcbiAgICAgICAgY29uc3QgZW5kWWVhciA9IHRoaXMuZW5kWWVhcjtcbiAgICAgICAgY29uc3QgcHJldmlvdXNZZWFyID0gc3RhcnRZZWFyIC0gMTA7XG5cbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IHRoaXMuTUFYX1JPVzsgcm93SW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3Qgcm93OiBEYXRlQm9keVJvdyA9IHtcbiAgICAgICAgICAgICAgICBkYXRlQ2VsbHM6IFtdLFxuICAgICAgICAgICAgICAgIHRyYWNrQnlJbmRleDogcm93SW5kZXhcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3IgKGxldCBjb2xJbmRleCA9IDA7IGNvbEluZGV4IDwgdGhpcy5NQVhfQ09MOyBjb2xJbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBwcmV2aW91c1llYXIgKyBpbmRleCAqIDEwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHByZXZpb3VzWWVhciArIGluZGV4ICogMTAgKyA5O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBgJHtzdGFydH0tJHtlbmR9YDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGw6IERlY2FkZUNlbGwgPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkOiBjdXJyZW50WWVhciA+PSBzdGFydCAmJiBjdXJyZW50WWVhciA8PSBlbmQsXG4gICAgICAgICAgICAgICAgICAgIGlzTG93ZXJUaGFuU3RhcnQ6IGVuZCA8IHN0YXJ0WWVhcixcbiAgICAgICAgICAgICAgICAgICAgaXNCaWdnZXJUaGFuRW5kOiBzdGFydCA+IGVuZFllYXIsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTWFwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB0aGlzLmNob29zZURlY2FkZShzdGFydCksXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcigpOiB2b2lkIHt9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTWFwID0gdGhpcy5nZXRDbGFzc01hcChjZWxsKTtcblxuICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgcm93LmRhdGVDZWxscy5wdXNoKGNlbGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVjYWRlcy5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlY2FkZXM7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3NNYXAoY2VsbDogRGVjYWRlQ2VsbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tZGVjYWRlLXBhbmVsLWNlbGxgXTogdHJ1ZSxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tZGVjYWRlLXBhbmVsLXNlbGVjdGVkLWNlbGxgXTogY2VsbC5pc1NlbGVjdGVkLFxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1kZWNhZGUtcGFuZWwtbGFzdC1jZW50dXJ5LWNlbGxgXTogY2VsbC5pc0xvd2VyVGhhblN0YXJ0LFxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1kZWNhZGUtcGFuZWwtbmV4dC1jZW50dXJ5LWNlbGxgXTogY2VsbC5pc0JpZ2dlclRoYW5FbmRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjZWxsQ2xpY2soZXZlbnQ6IEV2ZW50LCBjZWxsOiBEZWNhZGVDZWxsKSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjZWxsLm9uQ2xpY2soKTtcbiAgICB9XG59XG4iLCI8dGFibGUgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tZGVjYWRlLXBhbmVsLXRhYmxlXCIgY2VsbFNwYWNpbmc9XCIwXCIgcm9sZT1cImdyaWRcIj5cbiAgPHRib2R5IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWRlY2FkZS1wYW5lbC10Ym9keVwiPlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIGJvZHlSb3dzOyB0cmFja0J5OiB0cmFja0J5Qm9keVJvd1wiIHJvbGU9XCJyb3dcIj5cbiAgICAgIDx0ZFxuICAgICAgICAqbmdGb3I9XCJsZXQgY2VsbCBvZiByb3cuZGF0ZUNlbGxzOyB0cmFja0J5OiB0cmFja0J5Qm9keUNvbHVtblwiXG4gICAgICAgIHJvbGU9XCJncmlkY2VsbFwiXG4gICAgICAgIHRpdGxlPVwie3sgY2VsbC50aXRsZSB9fVwiXG4gICAgICAgIChjbGljayk9XCJjZWxsQ2xpY2soJGV2ZW50LCBjZWxsKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNlbGwuY2xhc3NNYXBcIlxuICAgICAgPlxuICAgICAgICA8YSBjbGFzcz1cInt7IHByZWZpeENscyB9fS1kZWNhZGUtcGFuZWwtZGVjYWRlXCI+e3sgY2VsbC5jb250ZW50IH19PC9hPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWRlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvZGVjYWRlL2RlY2FkZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RlY2FkZS9kZWNhZGUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRWpEOztHQUVHO0FBVUgsTUFBTSxPQUFPLFdBQVksU0FBUSxhQUFhO0lBSTFDLElBQUksU0FBUztRQUNULE9BQU8sUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEUsQ0FBQztJQUNELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFYWixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osWUFBTyxHQUFHLENBQUMsQ0FBQztJQVdaLENBQUM7SUFFTyxZQUFZLENBQUMsU0FBaUI7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsV0FB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QUVyQyxjQUFjLFlBQ2QsYUFBYSxjQUVYLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IENhbGVuZGFyVGFibGUgfSBmcm9tICcuLi9jYWxlbmRhci9jYWxlbmRhci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNlbGwsIERlY2FkZUNlbGwsIERhdGVCb2R5Um93IH0gZnJvbSAnLi4vZGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBOZ0ZvciwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RlY2FkZS10YWJsZScsXG4gICAgZXhwb3J0QXM6ICdkZWNhZGVUYWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICdkZWNhZGUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBOZ0NsYXNzXVxufSlcbmV4cG9ydCBjbGFzcyBEZWNhZGVUYWJsZSBleHRlbmRzIENhbGVuZGFyVGFibGUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIE1BWF9ST1cgPSA0O1xuICAgIE1BWF9DT0wgPSAzO1xuXG4gICAgZ2V0IHN0YXJ0WWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoYCR7dGhpcy5hY3RpdmVEYXRlLmdldFllYXIoKSAvIDEwMH1gLCAxMCkgKiAxMDA7XG4gICAgfVxuICAgIGdldCBlbmRZZWFyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0WWVhciArIDk5O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hvb3NlRGVjYWRlKHN0YXJ0WWVhcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAodGhpcy52YWx1ZSB8fCBuZXcgVGlueURhdGUoKSkuc2V0WWVhcihzdGFydFllYXIpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgbWFrZUhlYWRSb3coKTogRGF0ZUNlbGxbXSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBtYWtlQm9keVJvd3MoKTogRGF0ZUJvZHlSb3dbXSB7XG4gICAgICAgIGNvbnN0IGRlY2FkZXM6IERhdGVCb2R5Um93W10gPSBbXTtcbiAgICAgICAgY29uc3QgY3VycmVudFllYXIgPSB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUuZ2V0WWVhcigpO1xuICAgICAgICBjb25zdCBzdGFydFllYXIgPSB0aGlzLnN0YXJ0WWVhcjtcbiAgICAgICAgY29uc3QgZW5kWWVhciA9IHRoaXMuZW5kWWVhcjtcbiAgICAgICAgY29uc3QgcHJldmlvdXNZZWFyID0gc3RhcnRZZWFyIC0gMTA7XG5cbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IHRoaXMuTUFYX1JPVzsgcm93SW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3Qgcm93OiBEYXRlQm9keVJvdyA9IHtcbiAgICAgICAgICAgICAgICBkYXRlQ2VsbHM6IFtdLFxuICAgICAgICAgICAgICAgIHRyYWNrQnlJbmRleDogcm93SW5kZXhcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3IgKGxldCBjb2xJbmRleCA9IDA7IGNvbEluZGV4IDwgdGhpcy5NQVhfQ09MOyBjb2xJbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBwcmV2aW91c1llYXIgKyBpbmRleCAqIDEwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHByZXZpb3VzWWVhciArIGluZGV4ICogMTAgKyA5O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBgJHtzdGFydH0tJHtlbmR9YDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGw6IERlY2FkZUNlbGwgPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkOiBjdXJyZW50WWVhciA+PSBzdGFydCAmJiBjdXJyZW50WWVhciA8PSBlbmQsXG4gICAgICAgICAgICAgICAgICAgIGlzTG93ZXJUaGFuU3RhcnQ6IGVuZCA8IHN0YXJ0WWVhcixcbiAgICAgICAgICAgICAgICAgICAgaXNCaWdnZXJUaGFuRW5kOiBzdGFydCA+IGVuZFllYXIsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTWFwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB0aGlzLmNob29zZURlY2FkZShzdGFydCksXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcigpOiB2b2lkIHt9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTWFwID0gdGhpcy5nZXRDbGFzc01hcChjZWxsKTtcblxuICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgcm93LmRhdGVDZWxscy5wdXNoKGNlbGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVjYWRlcy5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlY2FkZXM7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3NNYXAoY2VsbDogRGVjYWRlQ2VsbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tZGVjYWRlLXBhbmVsLWNlbGxgXTogdHJ1ZSxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tZGVjYWRlLXBhbmVsLXNlbGVjdGVkLWNlbGxgXTogY2VsbC5pc1NlbGVjdGVkLFxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1kZWNhZGUtcGFuZWwtbGFzdC1jZW50dXJ5LWNlbGxgXTogY2VsbC5pc0xvd2VyVGhhblN0YXJ0LFxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1kZWNhZGUtcGFuZWwtbmV4dC1jZW50dXJ5LWNlbGxgXTogY2VsbC5pc0JpZ2dlclRoYW5FbmRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjZWxsQ2xpY2soZXZlbnQ6IEV2ZW50LCBjZWxsOiBEZWNhZGVDZWxsKSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjZWxsLm9uQ2xpY2soKTtcbiAgICB9XG59XG4iLCI8dGFibGUgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tZGVjYWRlLXBhbmVsLXRhYmxlXCIgY2VsbFNwYWNpbmc9XCIwXCIgcm9sZT1cImdyaWRcIj5cbiAgPHRib2R5IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWRlY2FkZS1wYW5lbC10Ym9keVwiPlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIGJvZHlSb3dzOyB0cmFja0J5OiB0cmFja0J5Qm9keVJvd1wiIHJvbGU9XCJyb3dcIj5cbiAgICAgIDx0ZFxuICAgICAgICAqbmdGb3I9XCJsZXQgY2VsbCBvZiByb3cuZGF0ZUNlbGxzOyB0cmFja0J5OiB0cmFja0J5Qm9keUNvbHVtblwiXG4gICAgICAgIHJvbGU9XCJncmlkY2VsbFwiXG4gICAgICAgIHRpdGxlPVwie3sgY2VsbC50aXRsZSB9fVwiXG4gICAgICAgIChjbGljayk9XCJjZWxsQ2xpY2soJGV2ZW50LCBjZWxsKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNlbGwuY2xhc3NNYXBcIlxuICAgICAgPlxuICAgICAgICA8YSBjbGFzcz1cInt7IHByZWZpeENscyB9fS1kZWNhZGUtcGFuZWwtZGVjYWRlXCI+e3sgY2VsbC5jb250ZW50IH19PC9hPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==