ngx-tethys 18.0.7 → 18.1.0-next.0

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 (273) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/alert/alert.component.d.ts +11 -19
  3. package/anchor/anchor.component.d.ts +1 -3
  4. package/badge/badge.component.d.ts +12 -3
  5. package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
  6. package/date-picker/lib/popups/date-popup.component.d.ts +0 -1
  7. package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
  8. package/date-range/date-range.component.d.ts +2 -8
  9. package/divider/divider.component.d.ts +8 -2
  10. package/esm2022/action/action.component.mjs +3 -4
  11. package/esm2022/alert/alert.component.mjs +55 -81
  12. package/esm2022/anchor/anchor-link.component.mjs +15 -7
  13. package/esm2022/anchor/anchor.component.mjs +17 -9
  14. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +4 -5
  15. package/esm2022/autocomplete/autocomplete.component.mjs +5 -5
  16. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
  17. package/esm2022/avatar/avatar.component.mjs +4 -4
  18. package/esm2022/back-top/back-top.component.mjs +4 -4
  19. package/esm2022/badge/badge.component.mjs +3 -4
  20. package/esm2022/breadcrumb/breadcrumb.component.mjs +4 -6
  21. package/esm2022/button/button-icon.component.mjs +4 -4
  22. package/esm2022/button/button.component.mjs +4 -4
  23. package/esm2022/calendar/calendar-header.component.mjs +4 -4
  24. package/esm2022/calendar/calendar.component.mjs +3 -4
  25. package/esm2022/card/header.component.mjs +4 -4
  26. package/esm2022/carousel/carousel.component.mjs +4 -4
  27. package/esm2022/cascader/cascader-li.component.mjs +4 -4
  28. package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
  29. package/esm2022/cascader/cascader.component.mjs +5 -7
  30. package/esm2022/checkbox/checkbox.component.mjs +5 -5
  31. package/esm2022/collapse/collapse-item.component.mjs +4 -4
  32. package/esm2022/color-picker/color-picker-panel.component.mjs +4 -4
  33. package/esm2022/comment/comment.component.mjs +4 -4
  34. package/esm2022/date-picker/date-picker.component.mjs +5 -6
  35. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +3 -4
  36. package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
  37. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
  38. package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
  39. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +5 -5
  40. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
  41. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
  42. package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
  43. package/esm2022/date-picker/lib/month/month-table.component.mjs +4 -4
  44. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +4 -18
  45. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +3 -8
  46. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +4 -4
  47. package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
  48. package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
  49. package/esm2022/date-picker/month-picker.component.mjs +4 -5
  50. package/esm2022/date-picker/picker.component.mjs +4 -14
  51. package/esm2022/date-picker/quarter-picker.component.mjs +4 -5
  52. package/esm2022/date-picker/range-picker.component.mjs +4 -5
  53. package/esm2022/date-picker/week-picker.component.mjs +4 -5
  54. package/esm2022/date-picker/year-picker.component.mjs +4 -5
  55. package/esm2022/date-range/date-range.component.mjs +4 -4
  56. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +3 -6
  57. package/esm2022/dialog/footer/dialog-footer.component.mjs +4 -4
  58. package/esm2022/dialog/header/dialog-header.component.mjs +4 -4
  59. package/esm2022/divider/divider.component.mjs +21 -13
  60. package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
  61. package/esm2022/empty/empty.component.mjs +4 -4
  62. package/esm2022/form/form-group-error/form-group-error.component.mjs +4 -4
  63. package/esm2022/form/form-group.component.mjs +4 -4
  64. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
  65. package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
  66. package/esm2022/image/preview/image-preview.component.mjs +3 -4
  67. package/esm2022/input/input-group.component.mjs +4 -4
  68. package/esm2022/input/input-search.component.mjs +3 -4
  69. package/esm2022/input/input.component.mjs +4 -4
  70. package/esm2022/layout/header.component.mjs +4 -4
  71. package/esm2022/layout/sidebar-header.component.mjs +4 -4
  72. package/esm2022/layout/sidebar.component.mjs +81 -71
  73. package/esm2022/list/list-item-meta.component.mjs +4 -4
  74. package/esm2022/loading/loading.component.mjs +3 -4
  75. package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
  76. package/esm2022/menu/group/menu-group.component.mjs +4 -4
  77. package/esm2022/menu/item/menu-item.component.mjs +3 -4
  78. package/esm2022/message/message-container.component.mjs +13 -5
  79. package/esm2022/message/message.component.mjs +3 -4
  80. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
  81. package/esm2022/nav/nav.component.mjs +4 -6
  82. package/esm2022/notify/notify-container.component.mjs +4 -4
  83. package/esm2022/notify/notify.component.mjs +4 -4
  84. package/esm2022/pagination/pagination.component.mjs +4 -4
  85. package/esm2022/popover/header/popover-header.component.mjs +4 -4
  86. package/esm2022/progress/progress-circle.component.mjs +4 -7
  87. package/esm2022/progress/progress.component.mjs +5 -8
  88. package/esm2022/property/property-item.component.mjs +4 -4
  89. package/esm2022/property-operation/property-operation.component.mjs +4 -4
  90. package/esm2022/radio/radio.component.mjs +5 -5
  91. package/esm2022/rate/rate.component.mjs +5 -5
  92. package/esm2022/resizable/resize-handle.component.mjs +10 -7
  93. package/esm2022/resizable/resize-handles.component.mjs +12 -5
  94. package/esm2022/result/result.component.mjs +4 -4
  95. package/esm2022/segment/segment-item.component.mjs +4 -4
  96. package/esm2022/segment/segment.component.mjs +4 -5
  97. package/esm2022/select/custom-select/custom-select.component.mjs +6 -8
  98. package/esm2022/select/native-select/native-select.component.mjs +5 -6
  99. package/esm2022/shared/option/list-option/list-option.component.mjs +3 -4
  100. package/esm2022/shared/option/option.component.mjs +3 -4
  101. package/esm2022/shared/select/select-control/select-control.component.mjs +5 -5
  102. package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
  103. package/esm2022/skeleton/stylized/list.component.mjs +8 -9
  104. package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
  105. package/esm2022/slide/slide-header/slide-header.component.mjs +4 -4
  106. package/esm2022/space/space.component.mjs +4 -4
  107. package/esm2022/statistic/statistic.component.mjs +4 -4
  108. package/esm2022/stepper/stepper.component.mjs +5 -5
  109. package/esm2022/switch/switch.component.mjs +6 -6
  110. package/esm2022/table/table-skeleton.component.mjs +4 -7
  111. package/esm2022/table/table.component.mjs +5 -7
  112. package/esm2022/tabs/tab-content.component.mjs +9 -9
  113. package/esm2022/tabs/tabs.component.mjs +4 -7
  114. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +3 -4
  115. package/esm2022/time-picker/time-picker-panel.component.mjs +5 -8
  116. package/esm2022/time-picker/time-picker.component.mjs +5 -15
  117. package/esm2022/timeline/timeline-item.component.mjs +4 -4
  118. package/esm2022/timeline/timeline.component.mjs +9 -9
  119. package/esm2022/tooltip/tooltip.component.mjs +4 -4
  120. package/esm2022/transfer/transfer-list.component.mjs +4 -4
  121. package/esm2022/transfer/transfer.component.mjs +4 -4
  122. package/esm2022/tree/tree-node.component.mjs +4 -4
  123. package/esm2022/tree/tree.component.mjs +5 -7
  124. package/esm2022/tree-select/tree-select.component.mjs +7 -10
  125. package/esm2022/typography/text/text.component.mjs +3 -4
  126. package/esm2022/version.mjs +2 -2
  127. package/esm2022/vote/vote.component.mjs +4 -4
  128. package/fesm2022/ngx-tethys-action.mjs +3 -3
  129. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-alert.mjs +54 -80
  131. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-anchor.mjs +29 -13
  133. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-arrow-switcher.mjs +4 -4
  135. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-autocomplete.mjs +4 -4
  137. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-avatar.mjs +5 -5
  139. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-back-top.mjs +3 -3
  141. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-badge.mjs +3 -3
  143. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-breadcrumb.mjs +3 -5
  145. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-button.mjs +5 -5
  147. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  148. package/fesm2022/ngx-tethys-calendar.mjs +5 -5
  149. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  150. package/fesm2022/ngx-tethys-card.mjs +3 -3
  151. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  152. package/fesm2022/ngx-tethys-carousel.mjs +3 -3
  153. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  154. package/fesm2022/ngx-tethys-cascader.mjs +8 -10
  155. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  156. package/fesm2022/ngx-tethys-checkbox.mjs +4 -4
  157. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  158. package/fesm2022/ngx-tethys-collapse.mjs +3 -3
  159. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  160. package/fesm2022/ngx-tethys-color-picker.mjs +3 -3
  161. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  162. package/fesm2022/ngx-tethys-comment.mjs +3 -3
  163. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  164. package/fesm2022/ngx-tethys-date-picker.mjs +51 -79
  165. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  166. package/fesm2022/ngx-tethys-date-range.mjs +5 -7
  167. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  168. package/fesm2022/ngx-tethys-dialog.mjs +5 -5
  169. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  170. package/fesm2022/ngx-tethys-divider.mjs +20 -12
  171. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-dropdown.mjs +10 -6
  173. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-empty.mjs +3 -3
  175. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-form.mjs +7 -7
  177. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-guider.mjs +3 -3
  179. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-image.mjs +3 -3
  181. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-input.mjs +7 -7
  183. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-layout.mjs +84 -74
  185. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-list.mjs +3 -3
  187. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-loading.mjs +3 -3
  189. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  190. package/fesm2022/ngx-tethys-mention.mjs +3 -3
  191. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-menu.mjs +5 -5
  193. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-message.mjs +14 -6
  195. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-nav.mjs +6 -8
  197. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-notify.mjs +5 -5
  199. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-pagination.mjs +3 -3
  201. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-popover.mjs +3 -3
  203. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-progress.mjs +6 -12
  205. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-property-operation.mjs +3 -3
  207. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-property.mjs +3 -3
  209. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-radio.mjs +4 -4
  211. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-rate.mjs +4 -4
  213. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-resizable.mjs +21 -9
  215. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-result.mjs +3 -3
  217. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  219. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-select.mjs +9 -11
  221. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-shared.mjs +8 -8
  223. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
  225. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-slide.mjs +3 -3
  227. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-space.mjs +3 -3
  229. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-statistic.mjs +3 -3
  231. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-stepper.mjs +4 -4
  233. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-switch.mjs +5 -5
  235. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-table.mjs +6 -11
  237. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-tabs.mjs +10 -13
  239. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-time-picker.mjs +9 -22
  241. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-timeline.mjs +10 -10
  243. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-tooltip.mjs +3 -3
  245. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-transfer.mjs +5 -5
  247. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-tree-select.mjs +6 -9
  249. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-tree.mjs +6 -8
  251. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-typography.mjs +3 -3
  253. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-vote.mjs +3 -3
  255. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys.mjs +1 -1
  257. package/fesm2022/ngx-tethys.mjs.map +1 -1
  258. package/menu/group/menu-group.component.d.ts +42 -6
  259. package/package.json +1 -1
  260. package/pagination/pagination.component.d.ts +15 -5
  261. package/progress/progress-circle.component.d.ts +0 -1
  262. package/progress/progress.component.d.ts +0 -1
  263. package/property/property-item.component.d.ts +1 -4
  264. package/resizable/resize-handle.component.d.ts +1 -4
  265. package/schematics/version.d.ts +1 -1
  266. package/schematics/version.js +1 -1
  267. package/segment/segment.component.d.ts +1 -5
  268. package/shared/option/list-option/list-option.component.d.ts +5 -1
  269. package/skeleton/stylized/bullet-list.component.d.ts +9 -1
  270. package/table/table-skeleton.component.d.ts +10 -3
  271. package/tabs/tabs.component.d.ts +0 -1
  272. package/time-picker/time-picker-panel.component.d.ts +0 -1
  273. package/tree/tree-node.component.d.ts +10 -10
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ # [18.1.0-next.0](https://github.com/atinc/ngx-tethys/compare/18.0.8...18.1.0-next.0) (2024-10-22)
6
+
7
+
8
+ ### Reverts
9
+
10
+ * Revert "feat(date-picker): export picker util (#3212)" (#3214) ([f6e6a55](https://github.com/atinc/ngx-tethys/commit/f6e6a5543274589293faba6871ce5f449d56a2ba)), closes [#3212](https://github.com/atinc/ngx-tethys/issues/3212) [#3214](https://github.com/atinc/ngx-tethys/issues/3214)
11
+
12
+
13
+
14
+ ## [18.0.8](https://github.com/atinc/ngx-tethys/compare/18.0.7...18.0.8) (2024-09-26)
15
+
16
+
17
+ ### Features
18
+
19
+ * **date-picker:** export picker util ([#3212](https://github.com/atinc/ngx-tethys/issues/3212)) ([804eb36](https://github.com/atinc/ngx-tethys/commit/804eb364c8ea7e3bb645d5dfd2dfdab50a031c9c))
20
+
21
+
22
+
5
23
  ## [18.0.7](https://github.com/atinc/ngx-tethys/compare/18.0.6...18.0.7) (2024-09-20)
6
24
 
7
25
 
@@ -1,4 +1,4 @@
1
- import { OnInit, TemplateRef, OnChanges, SimpleChanges } from '@angular/core';
1
+ import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  type ThyAlertType = 'success' | 'warning' | 'danger' | 'info' | 'primary' | 'primary-weak' | 'success-weak' | 'warning-weak' | 'danger-weak';
4
4
  export type ThyAlertTheme = 'fill' | 'bordered' | 'naked';
@@ -7,53 +7,45 @@ export type ThyAlertTheme = 'fill' | 'bordered' | 'naked';
7
7
  * @name thy-alert
8
8
  * @order 10
9
9
  */
10
- export declare class ThyAlert implements OnInit, OnChanges {
10
+ export declare class ThyAlert {
11
11
  private hidden;
12
- private showIcon;
13
- private icon;
14
- private type;
15
12
  private hostRenderer;
16
- theme: ThyAlertTheme;
17
- messageTemplate: TemplateRef<HTMLElement>;
18
- messageText: string;
13
+ messageIsTemplate: import("@angular/core").Signal<boolean>;
19
14
  /**
20
15
  * 指定警告提示的类型
21
16
  * @type success | warning | danger | info | primary | primary-weak | success-weak | warning-weak | danger-weak
22
17
  * @default info
23
18
  */
24
- set thyType(value: ThyAlertType);
19
+ thyType: import("@angular/core").InputSignal<ThyAlertType>;
25
20
  /**
26
21
  * 指定警告提示的主题
27
22
  * @type fill | bordered | naked
28
23
  * @default fill
29
24
  */
30
- set thyTheme(value: ThyAlertTheme);
25
+ thyTheme: import("@angular/core").InputSignal<ThyAlertTheme>;
31
26
  /**
32
27
  * 显示警告提示的内容
33
28
  */
34
- set thyMessage(value: string | TemplateRef<HTMLElement>);
29
+ thyMessage: import("@angular/core").InputSignal<string | TemplateRef<HTMLElement>>;
35
30
  /**
36
31
  * 显示自定义图标,可传 true/false 控制是否显示图标,或者传字符串去指定图标名称
37
32
  */
38
- set thyIcon(value: boolean | string);
39
- get thyIcon(): boolean | string;
33
+ thyIcon: import("@angular/core").InputSignal<string | boolean>;
34
+ icon: import("@angular/core").Signal<string>;
40
35
  /**
41
36
  * 是否显示关闭警告框按钮,默认不显示
42
37
  * @default false
43
38
  */
44
- thyCloseable: boolean;
39
+ thyCloseable: import("@angular/core").InputSignalWithTransform<boolean, string | number | boolean>;
45
40
  /**
46
41
  * 警告框自定义操作
47
42
  * @type TemplateRef
48
43
  */
49
- alertOperation: TemplateRef<any>;
44
+ alertOperation: import("@angular/core").Signal<TemplateRef<any>>;
50
45
  constructor();
51
- ngOnInit(): void;
52
- ngOnChanges(changes: SimpleChanges): void;
53
46
  closeAlert(): void;
54
47
  private updateClass;
55
48
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyAlert, never>;
56
- static ɵcmp: i0.ɵɵComponentDeclaration<ThyAlert, "thy-alert", never, { "thyType": { "alias": "thyType"; "required": false; }; "thyTheme": { "alias": "thyTheme"; "required": false; }; "thyMessage": { "alias": "thyMessage"; "required": false; }; "thyIcon": { "alias": "thyIcon"; "required": false; }; "thyCloseable": { "alias": "thyCloseable"; "required": false; }; }, {}, ["alertOperation"], never, true, never>;
57
- static ngAcceptInputType_thyCloseable: boolean | string | number;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<ThyAlert, "thy-alert", never, { "thyType": { "alias": "thyType"; "required": false; "isSignal": true; }; "thyTheme": { "alias": "thyTheme"; "required": false; "isSignal": true; }; "thyMessage": { "alias": "thyMessage"; "required": false; "isSignal": true; }; "thyIcon": { "alias": "thyIcon"; "required": false; "isSignal": true; }; "thyCloseable": { "alias": "thyCloseable"; "required": false; "isSignal": true; }; }, {}, ["alertOperation"], never, true, never>;
58
50
  }
59
51
  export {};
@@ -70,9 +70,7 @@ export declare class ThyAnchor implements OnDestroy, AfterViewInit, OnChanges {
70
70
  ngOnChanges(changes: SimpleChanges): void;
71
71
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyAnchor, never>;
72
72
  static ɵcmp: i0.ɵɵComponentDeclaration<ThyAnchor, "thy-anchor", ["thyAnchor"], { "thyAffix": { "alias": "thyAffix"; "required": false; }; "thyBounds": { "alias": "thyBounds"; "required": false; }; "thyOffsetTop": { "alias": "thyOffsetTop"; "required": false; }; "thyContainer": { "alias": "thyContainer"; "required": false; }; "thyDirection": { "alias": "thyDirection"; "required": false; }; }, { "thyClick": "thyClick"; "thyScroll": "thyScroll"; }, never, ["*"], true, never>;
73
- static ngAcceptInputType_thyAffix: boolean | string /**
74
- * 固定模式
75
- */ | number;
73
+ static ngAcceptInputType_thyAffix: boolean | string | number;
76
74
  static ngAcceptInputType_thyBounds: unknown;
77
75
  static ngAcceptInputType_thyOffsetTop: unknown;
78
76
  }
@@ -91,7 +91,16 @@ export declare class ThyBadge implements OnInit {
91
91
  static ɵcmp: i0.ɵɵComponentDeclaration<ThyBadge, "thy-badge,[thyBadge]", never, { "thyType": { "alias": "thyType"; "required": false; }; "thyCount": { "alias": "thyCount"; "required": false; }; "thyContent": { "alias": "thyContent"; "required": false; }; "thyContext": { "alias": "thyContext"; "required": false; }; "thyMaxCount": { "alias": "thyMaxCount"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyIsDot": { "alias": "thyIsDot"; "required": false; }; "thyIsHollow": { "alias": "thyIsHollow"; "required": false; }; "thyKeepShow": { "alias": "thyKeepShow"; "required": false; }; "thyTextColor": { "alias": "thyTextColor"; "required": false; }; "thyBackgroundColor": { "alias": "thyBackgroundColor"; "required": false; }; }, {}, never, ["*"], true, never>;
92
92
  static ngAcceptInputType_thyCount: unknown;
93
93
  static ngAcceptInputType_thyMaxCount: unknown;
94
- static ngAcceptInputType_thyIsDot: boolean | string | number;
95
- static ngAcceptInputType_thyIsHollow: boolean | string | number;
96
- static ngAcceptInputType_thyKeepShow: boolean | string | number;
94
+ static ngAcceptInputType_thyIsDot: boolean | string /**
95
+ * 徽标内容文本
96
+ * @type string
97
+ */ | number;
98
+ static ngAcceptInputType_thyIsHollow: boolean | string /**
99
+ * 徽标内容文本
100
+ * @type string
101
+ */ | number;
102
+ static ngAcceptInputType_thyKeepShow: boolean | string /**
103
+ * 徽标内容文本
104
+ * @type string
105
+ */ | number;
97
106
  }
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
6
6
  */
7
7
  export declare class DateTableCell {
8
8
  isTemplateRef: typeof isTemplateRef;
9
- prefixCls: 'thy-calendar';
9
+ prefixCls: 'thy-calendar' | 'thy-calendar-full';
10
10
  cell: DateCell;
11
11
  isNonEmptyString: (v: any) => boolean;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<DateTableCell, never>;
@@ -91,7 +91,6 @@ export declare class DatePopup implements OnChanges, OnInit {
91
91
  private isDisableTimeConfirm;
92
92
  private getSelectedShortcutPreset;
93
93
  shortcutSetValue(shortcutPresets: ThyShortcutPreset): void;
94
- trackByFn(index: number): number;
95
94
  static ɵfac: i0.ɵɵFactoryDeclaration<DatePopup, never>;
96
95
  static ɵcmp: i0.ɵɵComponentDeclaration<DatePopup, "date-popup", ["datePopup"], { "isRange": { "alias": "isRange"; "required": false; }; "showWeek": { "alias": "showWeek"; "required": false; }; "format": { "alias": "format"; "required": false; }; "disabledDate": { "alias": "disabledDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "showToday": { "alias": "showToday"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "mustShowTime": { "alias": "mustShowTime"; "required": false; }; "dateRender": { "alias": "dateRender"; "required": false; }; "className": { "alias": "className"; "required": false; }; "panelMode": { "alias": "panelMode"; "required": false; }; "value": { "alias": "value"; "required": false; }; "defaultPickerValue": { "alias": "defaultPickerValue"; "required": false; }; "showShortcut": { "alias": "showShortcut"; "required": false; }; "shortcutPresets": { "alias": "shortcutPresets"; "required": false; }; "shortcutPosition": { "alias": "shortcutPosition"; "required": false; }; "flexible": { "alias": "flexible"; "required": false; }; "flexibleDateGranularity": { "alias": "flexibleDateGranularity"; "required": false; }; "timestampPrecision": { "alias": "timestampPrecision"; "required": false; }; }, { "panelModeChange": "panelModeChange"; "calendarChange": "calendarChange"; "valueChange": "valueChange"; "resultOk": "resultOk"; "showTimePickerChange": "showTimePickerChange"; "dateValueChange": "dateValueChange"; }, never, never, true, never>;
97
96
  }
@@ -44,5 +44,6 @@ export declare class InnerPopup implements OnChanges {
44
44
  enableSuperPrevNext(direction: 'prev' | 'next', panelMode: ThyPanelMode): boolean;
45
45
  static ɵfac: i0.ɵɵFactoryDeclaration<InnerPopup, never>;
46
46
  static ɵcmp: i0.ɵɵComponentDeclaration<InnerPopup, "inner-popup", ["innerPopup"], { "showWeek": { "alias": "showWeek"; "required": false; }; "isRange": { "alias": "isRange"; "required": false; }; "activeDate": { "alias": "activeDate"; "required": false; }; "rangeActiveDate": { "alias": "rangeActiveDate"; "required": false; }; "enablePrev": { "alias": "enablePrev"; "required": false; }; "enableNext": { "alias": "enableNext"; "required": false; }; "disabledDate": { "alias": "disabledDate"; "required": false; }; "dateRender": { "alias": "dateRender"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; "hoverValue": { "alias": "hoverValue"; "required": false; }; "panelMode": { "alias": "panelMode"; "required": false; }; "showDateRangeInput": { "alias": "showDateRangeInput"; "required": false; }; "partType": { "alias": "partType"; "required": false; }; "endPanelMode": { "alias": "endPanelMode"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "panelModeChange": "panelModeChange"; "headerChange": "headerChange"; "selectDate": "selectDate"; "dayHover": "dayHover"; }, never, never, true, never>;
47
- static ngAcceptInputType_showDateRangeInput: boolean | string | number;
47
+ static ngAcceptInputType_showDateRangeInput: boolean | // Range ONLY
48
+ string | number;
48
49
  }
@@ -80,12 +80,6 @@ export declare class ThyDateRange implements OnInit, ControlValueAccessor {
80
80
  openOptionalDateRangesMenu(event: Event): void;
81
81
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyDateRange, never>;
82
82
  static ɵcmp: i0.ɵɵComponentDeclaration<ThyDateRange, "thy-date-range", never, { "thyOptionalDateRanges": { "alias": "thyOptionalDateRanges"; "required": false; }; "thyHiddenMenu": { "alias": "thyHiddenMenu"; "required": false; }; "thyDisabledSwitch": { "alias": "thyDisabledSwitch"; "required": false; }; "thyCustomTextValue": { "alias": "thyCustomTextValue"; "required": false; }; "thyMinDate": { "alias": "thyMinDate"; "required": false; }; "thyMaxDate": { "alias": "thyMaxDate"; "required": false; }; "thyCustomKey": { "alias": "thyCustomKey"; "required": false; }; "thyPickerFormat": { "alias": "thyPickerFormat"; "required": false; }; "thyDisabledDate": { "alias": "thyDisabledDate"; "required": false; }; }, { "thyOnCalendarChange": "thyOnCalendarChange"; }, never, never, true, never>;
83
- static ngAcceptInputType_thyHiddenMenu: /**
84
- * 自定义日期选择中可选择的最大时间
85
- * @type Date | number
86
- */ boolean | string | number;
87
- static ngAcceptInputType_thyDisabledSwitch: /**
88
- * 自定义日期选择中可选择的最大时间
89
- * @type Date | number
90
- */ boolean | string | number;
83
+ static ngAcceptInputType_thyHiddenMenu: boolean | string | number;
84
+ static ngAcceptInputType_thyDisabledSwitch: boolean | string | number;
91
85
  }
@@ -46,6 +46,12 @@ export declare class ThyDivider implements OnChanges, OnInit {
46
46
  setColor(color: ThyDividerColor): void;
47
47
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyDivider, never>;
48
48
  static ɵcmp: i0.ɵɵComponentDeclaration<ThyDivider, "thy-divider", never, { "thyVertical": { "alias": "thyVertical"; "required": false; }; "thyStyle": { "alias": "thyStyle"; "required": false; }; "thyColor": { "alias": "thyColor"; "required": false; }; "thyText": { "alias": "thyText"; "required": false; }; "thyTextDirection": { "alias": "thyTextDirection"; "required": false; }; "thyDeeper": { "alias": "thyDeeper"; "required": false; }; }, {}, never, never, true, never>;
49
- static ngAcceptInputType_thyVertical: boolean | string | number;
50
- static ngAcceptInputType_thyDeeper: boolean | string | number;
49
+ static ngAcceptInputType_thyVertical: boolean /**
50
+ * 是否垂直方向
51
+ * @default false
52
+ */ | string | number;
53
+ static ngAcceptInputType_thyDeeper: boolean /**
54
+ * 是否垂直方向
55
+ * @default false
56
+ */ | string | number;
51
57
  }
@@ -1,7 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, ElementRef, Renderer2, ChangeDetectorRef } from '@angular/core';
2
2
  import { useHostRenderer } from '@tethys/cdk/dom';
3
3
  import { ThyIcon } from 'ngx-tethys/icon';
4
- import { NgIf } from '@angular/common';
5
4
  import { timer } from 'rxjs';
6
5
  import { coerceBooleanProperty } from 'ngx-tethys/util';
7
6
  import * as i0 from "@angular/core";
@@ -141,7 +140,7 @@ export class ThyAction {
141
140
  this.feedbackTimer?.unsubscribe();
142
141
  }
143
142
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyAction, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyAction, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: "thyType", thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyActive: ["thyActive", "thyActive", coerceBooleanProperty], thyActionActive: ["thyActionActive", "thyActionActive", coerceBooleanProperty], thyTheme: "thyTheme", thyHoverIcon: "thyHoverIcon", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, host: { properties: { "class.active": "active", "class.thy-action-hover-icon": "thyHoverIcon", "class.thy-action-has-feedback": "!!feedback", "class.disabled": "thyDisabled" }, classAttribute: "thy-action" }, usesOnChanges: true, ngImport: i0, template: "<thy-icon *ngIf=\"icon && !feedback\" [thyIconName]=\"icon\"></thy-icon>\n<thy-icon *ngIf=\"feedbackOptions?.icon\" [class]=\"feedbackOptions.class\" [thyIconName]=\"feedbackOptions.icon\"></thy-icon>\n<thy-icon class=\"hover-icon\" *ngIf=\"thyHoverIcon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
143
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyAction, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: "thyType", thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyActive: ["thyActive", "thyActive", coerceBooleanProperty], thyActionActive: ["thyActionActive", "thyActionActive", coerceBooleanProperty], thyTheme: "thyTheme", thyHoverIcon: "thyHoverIcon", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, host: { properties: { "class.active": "active", "class.thy-action-hover-icon": "thyHoverIcon", "class.thy-action-has-feedback": "!!feedback", "class.disabled": "thyDisabled" }, classAttribute: "thy-action" }, usesOnChanges: true, ngImport: i0, template: "@if (icon && !feedback) {\n <thy-icon [thyIconName]=\"icon\"></thy-icon>\n}\n@if (feedbackOptions?.icon) {\n <thy-icon [class]=\"feedbackOptions.class\" [thyIconName]=\"feedbackOptions.icon\"></thy-icon>\n}\n@if (thyHoverIcon) {\n <thy-icon class=\"hover-icon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
144
  }
146
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyAction, decorators: [{
147
146
  type: Component,
@@ -151,7 +150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
151
150
  '[class.thy-action-hover-icon]': 'thyHoverIcon',
152
151
  '[class.thy-action-has-feedback]': '!!feedback',
153
152
  '[class.disabled]': 'thyDisabled'
154
- }, standalone: true, imports: [NgIf, ThyIcon], template: "<thy-icon *ngIf=\"icon && !feedback\" [thyIconName]=\"icon\"></thy-icon>\n<thy-icon *ngIf=\"feedbackOptions?.icon\" [class]=\"feedbackOptions.class\" [thyIconName]=\"feedbackOptions.icon\"></thy-icon>\n<thy-icon class=\"hover-icon\" *ngIf=\"thyHoverIcon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n<ng-content></ng-content>\n" }]
153
+ }, standalone: true, imports: [ThyIcon], template: "@if (icon && !feedback) {\n <thy-icon [thyIconName]=\"icon\"></thy-icon>\n}\n@if (feedbackOptions?.icon) {\n <thy-icon [class]=\"feedbackOptions.class\" [thyIconName]=\"feedbackOptions.icon\"></thy-icon>\n}\n@if (thyHoverIcon) {\n <thy-icon class=\"hover-icon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n}\n<ng-content></ng-content>\n" }]
155
154
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { thyType: [{
156
155
  type: Input
157
156
  }], thyIcon: [{
@@ -172,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
172
171
  type: Input,
173
172
  args: [{ transform: coerceBooleanProperty }]
174
173
  }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxVQUFVLEVBQ1YsU0FBUyxFQUVULGlCQUFpQixFQUVwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFZeEQsTUFBTSxzQkFBc0IsR0FBd0Q7SUFDaEYsT0FBTyxFQUFFO1FBQ0wsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixLQUFLLEVBQUUsY0FBYztRQUNyQixRQUFRLEVBQUUsSUFBSTtLQUNqQjtJQUNELEtBQUssRUFBRTtRQUNILElBQUksRUFBRSxtQkFBbUI7UUFDekIsS0FBSyxFQUFFLGFBQWE7UUFDcEIsUUFBUSxFQUFFLElBQUk7S0FDakI7Q0FDSixDQUFDO0FBQ0Y7OztHQUdHO0FBZUgsTUFBTSxPQUFPLFNBQVM7SUFlbEI7Ozs7T0FJRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQW9CO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksT0FBTyxDQUFDLElBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxhQUFhLENBQUMsSUFBWTtRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxTQUFTLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxlQUFlLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBb0JELFlBQ1ksVUFBbUMsRUFDbkMsUUFBbUIsRUFDbkIsR0FBc0I7UUFGdEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTdFbEMsYUFBUSxHQUFzQixJQUFJLENBQUM7UUFJbkMsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVQLFNBQUksR0FBVyxTQUFTLENBQUM7UUFFekIsaUJBQVksR0FBRyxlQUFlLEVBQUUsQ0FBQztRQWdEekM7OztXQUdHO1FBQ00sYUFBUSxHQUFvQixNQUFNLENBQUM7SUFrQnpDLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDM0csSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQW1CO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxPQUFrQztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsT0FBa0M7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUEyQixFQUFFLE9BQWlDO1FBQzlFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDWCxDQUFDO1FBQ0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckMsQ0FBQztZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFlO1FBQ25DLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLHdEQUF3RDtnQkFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxVQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0FsS1EsU0FBUztrR0FBVCxTQUFTLG1MQTZDRSxxQkFBcUIsMkRBU3JCLHFCQUFxQixtR0FvQnJCLHFCQUFxQixtUUNySTdDLHlVQUlBLDRDRHFEYyxJQUFJLDZGQUFFLE9BQU87OzJGQUVkLFNBQVM7a0JBZHJCLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxZQUFZO3dCQUNuQixnQkFBZ0IsRUFBRSxRQUFRO3dCQUMxQiwrQkFBK0IsRUFBRSxjQUFjO3dCQUMvQyxpQ0FBaUMsRUFBRSxZQUFZO3dCQUMvQyxrQkFBa0IsRUFBRSxhQUFhO3FCQUNwQyxjQUNXLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7dUlBdUJwQixPQUFPO3NCQURWLEtBQUs7Z0JBU0YsT0FBTztzQkFEVixLQUFLO2dCQVNGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBVUYsU0FBUztzQkFEWixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVV2QyxlQUFlO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVNsQyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT04sV0FBVztzQkFEVixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBUaHlBY3Rpb25UeXBlID0gJ3ByaW1hcnknIHwgJ3N1Y2Nlc3MnIHwgJ2RhbmdlcicgfCAnd2FybmluZyc7XG5cbmV4cG9ydCB0eXBlIFRoeUFjdGlvbkZlZWRiYWNrID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcblxuZXhwb3J0IGludGVyZmFjZSBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMge1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgZHVyYXRpb24/OiBudW1iZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRGZWVkYmFja09wdGlvbnM6IFJlY29yZDxUaHlBY3Rpb25GZWVkYmFjaywgVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zPiA9IHtcbiAgICBzdWNjZXNzOiB7XG4gICAgICAgIGljb246ICdjaGVjay1jaXJjbGUtZmlsbCcsXG4gICAgICAgIGNsYXNzOiAndGV4dC1zdWNjZXNzJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICB9LFxuICAgIGVycm9yOiB7XG4gICAgICAgIGljb246ICdjbG9zZS1jaXJjbGUtZmlsbCcsXG4gICAgICAgIGNsYXNzOiAndGV4dC1kYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMFxuICAgIH1cbn07XG4vKipcbiAqIOeri+WNs+aTjeS9nOe7hOS7tlxuICogQG5hbWUgdGh5LWFjdGlvbixbdGh5QWN0aW9uXVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1hY3Rpb24sIFt0aHlBY3Rpb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWFjdGlvbicsXG4gICAgICAgICdbY2xhc3MuYWN0aXZlXSc6ICdhY3RpdmUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1hY3Rpb24taG92ZXItaWNvbl0nOiAndGh5SG92ZXJJY29uJyxcbiAgICAgICAgJ1tjbGFzcy50aHktYWN0aW9uLWhhcy1mZWVkYmFja10nOiAnISFmZWVkYmFjaycsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ3RoeURpc2FibGVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QWN0aW9uIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaWNvbjogc3RyaW5nO1xuXG4gICAgZmVlZGJhY2s6IFRoeUFjdGlvbkZlZWRiYWNrID0gbnVsbDtcblxuICAgIGZlZWRiYWNrT3B0aW9uczogVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zO1xuXG4gICAgYWN0aXZlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHR5cGU6IHN0cmluZyA9ICdwcmltYXJ5JztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBwcml2YXRlIGZlZWRiYWNrVGltZXI6IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh+eahOexu+Wei1xuICAgICAqIEB0eXBlIHByaW1hcnkgfCBzdWNjZXNzIHwgZGFuZ2VyIHwgd2FybmluZ1xuICAgICAqIEBkZWZhdWx0IHByaW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBUaHlBY3Rpb25UeXBlKSB7XG4gICAgICAgIHRoaXMuc2V0QWN0aW9uVHlwZSh2YWx1ZSB8fCAncHJpbWFyeScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh++8jOaUr+aMgeS8oOWPguWQjOaXtuS5n+aUr+aMgeWcqOaKleW9seS4reWGmSB0aHktaWNvbiDnu4Tku7ZcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlJY29uKGljb246IHN0cmluZykge1xuICAgICAgICB0aGlzLmljb24gPSBpY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh++8jOW9kyB0aHlJY29uIOWSjOWFtuS7luaMh+S7pOWPguaVsOWQjeacieWGsueqgeaXtuS9v+eUqCB0aHlBY3Rpb25JY29uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QWN0aW9uSWNvbihpY29uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pY29uID0gaWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZznmoTlm77moIcgQWN0aXZlIOeKtuaAge+8jOiuvue9ruS4uiB0cnVlIOaXtuS8muWcqCBJdGVtIOS4iua3u+WKoCBhY3RpdmUgY2xhc3NcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOeahOWbvuaghyBBY3RpdmUg54q25oCB77yM5b2TIHRoeUFjdGl2ZSDlkozlhbbku5bmjIfku6Tlj4LmlbDlkI3mnInlhrLnqoHml7bkvb/nlKggdGh5QWN0aW9uQWN0aXZlXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlBY3Rpb25BY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfnmoTkuLvpophcbiAgICAgKiBAdHlwZSBmaWxsKOiDjOaZr+iJsuWhq+WFhSkgfCBsaXRlKOeugOWNleaWh+acrOminOiJsuWPmOWMlilcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogJ2ZpbGwnIHwgJ2xpdGUnID0gJ2ZpbGwnO1xuXG4gICAgLyoqXG4gICAgICogSG92ZXIg5bGV56S655qE5Zu+5qCHXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SG92ZXJJY29uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblpITkuo7npoHnlKjnirbmgIFcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgdGh5RGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLndyYXBTcGFuRm9yVGV4dCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgoY2hhbmdlcy50aHlUeXBlICYmICFjaGFuZ2VzLnRoeVR5cGUuZmlyc3RDaGFuZ2UpIHx8IChjaGFuZ2VzLnRoeVRoZW1lICYmICFjaGFuZ2VzLnRoeVRoZW1lLmZpcnN0Q2hhbmdlKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRNYXJnaW5SaWdodChtYXJnaW5SaWdodDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpblJpZ2h0ID0gbWFyZ2luUmlnaHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6Kem5Y+R5oiQ5Yqf5Y+N6aaI5pON5L2cXG4gICAgICovXG4gICAgc3VjY2VzcyhvcHRpb25zPzogVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuc2V0RmVlZGJhY2soJ3N1Y2Nlc3MnLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDop6blj5HlpLHotKXlj43ppojmk43kvZxcbiAgICAgKi9cbiAgICBlcnJvcihvcHRpb25zPzogVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuc2V0RmVlZGJhY2soJ2Vycm9yJywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGZWVkYmFjayhmZWVkYmFjazogVGh5QWN0aW9uRmVlZGJhY2ssIG9wdGlvbnM6IFRoeUFjdGlvbkZlZWRiYWNrT3B0aW9ucykge1xuICAgICAgICBpZiAodGhpcy50aHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0RmVlZGJhY2tPcHRpb25zW2ZlZWRiYWNrXSwgb3B0aW9ucyk7XG4gICAgICAgIHRoaXMuZmVlZGJhY2sgPSBmZWVkYmFjaztcbiAgICAgICAgdGhpcy5mZWVkYmFja09wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZHVyYXRpb24pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZlZWRiYWNrVGltZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZlZWRiYWNrVGltZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tUaW1lciA9IHRpbWVyKG9wdGlvbnMuZHVyYXRpb24pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWVkYmFjayA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWVkYmFja09wdGlvbnMgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHdyYXBTcGFuRm9yVGV4dChub2RlczogTm9kZUxpc3QpOiB2b2lkIHtcbiAgICAgICAgbm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09PSAnI3RleHQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZShub2RlKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHNwYW4sICd0aHktYWN0aW9uLXdyYXAtc3BhbicpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHBhcmVudCwgc3Bhbiwgbm9kZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzcGFuLCBub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRBY3Rpb25UeXBlKHZhbHVlOiBUaHlBY3Rpb25UeXBlKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ2xhc3NlcygpIHtcbiAgICAgICAgbGV0IGNsYXNzTmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGNsYXNzTmFtZXMucHVzaChgYWN0aW9uLSR7dGhpcy50eXBlfWApO1xuICAgICAgICBpZiAodGhpcy50aHlUaGVtZSA9PT0gJ2xpdGUnKSB7XG4gICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goJ3RoeS1hY3Rpb24tbGl0ZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKGNsYXNzTmFtZXMpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZlZWRiYWNrVGltZXI/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIiwiPHRoeS1pY29uICpuZ0lmPVwiaWNvbiAmJiAhZmVlZGJhY2tcIiBbdGh5SWNvbk5hbWVdPVwiaWNvblwiPjwvdGh5LWljb24+XG48dGh5LWljb24gKm5nSWY9XCJmZWVkYmFja09wdGlvbnM/Lmljb25cIiBbY2xhc3NdPVwiZmVlZGJhY2tPcHRpb25zLmNsYXNzXCIgW3RoeUljb25OYW1lXT1cImZlZWRiYWNrT3B0aW9ucy5pY29uXCI+PC90aHktaWNvbj5cbjx0aHktaWNvbiBjbGFzcz1cImhvdmVyLWljb25cIiAqbmdJZj1cInRoeUhvdmVySWNvblwiIFt0aHlJY29uTmFtZV09XCJ0aHlIb3Zlckljb25cIj48L3RoeS1pY29uPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxVQUFVLEVBQ1YsU0FBUyxFQUVULGlCQUFpQixFQUVwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVl4RCxNQUFNLHNCQUFzQixHQUF3RDtJQUNoRixPQUFPLEVBQUU7UUFDTCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixLQUFLLEVBQUUsYUFBYTtRQUNwQixRQUFRLEVBQUUsSUFBSTtLQUNqQjtDQUNKLENBQUM7QUFDRjs7O0dBR0c7QUFlSCxNQUFNLE9BQU8sU0FBUztJQWVsQjs7OztPQUlHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsSUFBWTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLGFBQWEsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLFNBQVMsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLGVBQWUsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFvQkQsWUFDWSxVQUFtQyxFQUNuQyxRQUFtQixFQUNuQixHQUFzQjtRQUZ0QixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBN0VsQyxhQUFRLEdBQXNCLElBQUksQ0FBQztRQUluQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRVAsU0FBSSxHQUFXLFNBQVMsQ0FBQztRQUV6QixpQkFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDO1FBZ0R6Qzs7O1dBR0c7UUFDTSxhQUFRLEdBQW9CLE1BQU0sQ0FBQztJQWtCekMsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMzRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBbUI7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLE9BQWtDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFrQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQTJCLEVBQUUsT0FBaUM7UUFDOUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNYLENBQUM7UUFDRCxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztnQkFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWU7UUFDbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUMsd0RBQXdEO2dCQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFvQjtRQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRU8sYUFBYTtRQUNqQixJQUFJLFVBQVUsR0FBYSxFQUFFLENBQUM7UUFDOUIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzhHQWxLUSxTQUFTO2tHQUFULFNBQVMsbUxBNkNFLHFCQUFxQiwyREFTckIscUJBQXFCLG1HQW9CckIscUJBQXFCLG1RQ3JJN0MscVZBVUEsNENEK0NjLE9BQU87OzJGQUVSLFNBQVM7a0JBZHJCLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxZQUFZO3dCQUNuQixnQkFBZ0IsRUFBRSxRQUFRO3dCQUMxQiwrQkFBK0IsRUFBRSxjQUFjO3dCQUMvQyxpQ0FBaUMsRUFBRSxZQUFZO3dCQUMvQyxrQkFBa0IsRUFBRSxhQUFhO3FCQUNwQyxjQUNXLElBQUksV0FDUCxDQUFDLE9BQU8sQ0FBQzt1SUF1QmQsT0FBTztzQkFEVixLQUFLO2dCQVNGLE9BQU87c0JBRFYsS0FBSztnQkFTRixhQUFhO3NCQURoQixLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFVdkMsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFTbEMsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBFbGVtZW50UmVmLFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuZXhwb3J0IHR5cGUgVGh5QWN0aW9uVHlwZSA9ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnO1xuXG5leHBvcnQgdHlwZSBUaHlBY3Rpb25GZWVkYmFjayA9ICdzdWNjZXNzJyB8ICdlcnJvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zIHtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGNsYXNzPzogc3RyaW5nO1xuICAgIGR1cmF0aW9uPzogbnVtYmVyO1xufVxuXG5jb25zdCBkZWZhdWx0RmVlZGJhY2tPcHRpb25zOiBSZWNvcmQ8VGh5QWN0aW9uRmVlZGJhY2ssIFRoeUFjdGlvbkZlZWRiYWNrT3B0aW9ucz4gPSB7XG4gICAgc3VjY2Vzczoge1xuICAgICAgICBpY29uOiAnY2hlY2stY2lyY2xlLWZpbGwnLFxuICAgICAgICBjbGFzczogJ3RleHQtc3VjY2VzcycsXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwXG4gICAgfSxcbiAgICBlcnJvcjoge1xuICAgICAgICBpY29uOiAnY2xvc2UtY2lyY2xlLWZpbGwnLFxuICAgICAgICBjbGFzczogJ3RleHQtZGFuZ2VyJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICB9XG59O1xuLyoqXG4gKiDnq4vljbPmk43kvZznu4Tku7ZcbiAqIEBuYW1lIHRoeS1hY3Rpb24sW3RoeUFjdGlvbl1cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYWN0aW9uLCBbdGh5QWN0aW9uXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1hY3Rpb24nLFxuICAgICAgICAnW2NsYXNzLmFjdGl2ZV0nOiAnYWN0aXZlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktYWN0aW9uLWhvdmVyLWljb25dJzogJ3RoeUhvdmVySWNvbicsXG4gICAgICAgICdbY2xhc3MudGh5LWFjdGlvbi1oYXMtZmVlZGJhY2tdJzogJyEhZmVlZGJhY2snLFxuICAgICAgICAnW2NsYXNzLmRpc2FibGVkXSc6ICd0aHlEaXNhYmxlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUljb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeUFjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIGljb246IHN0cmluZztcblxuICAgIGZlZWRiYWNrOiBUaHlBY3Rpb25GZWVkYmFjayA9IG51bGw7XG5cbiAgICBmZWVkYmFja09wdGlvbnM6IFRoeUFjdGlvbkZlZWRiYWNrT3B0aW9ucztcblxuICAgIGFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB0eXBlOiBzdHJpbmcgPSAncHJpbWFyeSc7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgcHJpdmF0ZSBmZWVkYmFja1RpbWVyOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfnmoTnsbvlnotcbiAgICAgKiBAdHlwZSBwcmltYXJ5IHwgc3VjY2VzcyB8IGRhbmdlciB8IHdhcm5pbmdcbiAgICAgKiBAZGVmYXVsdCBwcmltYXJ5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VHlwZSh2YWx1ZTogVGh5QWN0aW9uVHlwZSkge1xuICAgICAgICB0aGlzLnNldEFjdGlvblR5cGUodmFsdWUgfHwgJ3ByaW1hcnknKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfvvIzmlK/mjIHkvKDlj4LlkIzml7bkuZ/mlK/mjIHlnKjmipXlvbHkuK3lhpkgdGh5LWljb24g57uE5Lu2XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SWNvbihpY29uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pY29uID0gaWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfvvIzlvZMgdGh5SWNvbiDlkozlhbbku5bmjIfku6Tlj4LmlbDlkI3mnInlhrLnqoHml7bkvb/nlKggdGh5QWN0aW9uSWNvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUFjdGlvbkljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaWNvbiA9IGljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pON5L2c55qE5Zu+5qCHIEFjdGl2ZSDnirbmgIHvvIzorr7nva7kuLogdHJ1ZSDml7bkvJrlnKggSXRlbSDkuIrmt7vliqAgYWN0aXZlIGNsYXNzXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZznmoTlm77moIcgQWN0aXZlIOeKtuaAge+8jOW9kyB0aHlBY3RpdmUg5ZKM5YW25LuW5oyH5Luk5Y+C5pWw5ZCN5pyJ5Yay56qB5pe25L2/55SoIHRoeUFjdGlvbkFjdGl2ZVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5QWN0aW9uQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pON5L2c5Zu+5qCH55qE5Li76aKYXG4gICAgICogQHR5cGUgZmlsbCjog4zmma/oibLloavlhYUpIHwgbGl0ZSjnroDljZXmlofmnKzpopzoibLlj5jljJYpXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGhlbWU6ICdmaWxsJyB8ICdsaXRlJyA9ICdmaWxsJztcblxuICAgIC8qKlxuICAgICAqIEhvdmVyIOWxleekuueahOWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUhvdmVySWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5aSE5LqO56aB55So54q25oCBXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy53cmFwU3BhbkZvclRleHQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcyk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoKGNoYW5nZXMudGh5VHlwZSAmJiAhY2hhbmdlcy50aHlUeXBlLmZpcnN0Q2hhbmdlKSB8fCAoY2hhbmdlcy50aHlUaGVtZSAmJiAhY2hhbmdlcy50aHlUaGVtZS5maXJzdENoYW5nZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0TWFyZ2luUmlnaHQobWFyZ2luUmlnaHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW5SaWdodCA9IG1hcmdpblJpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOinpuWPkeaIkOWKn+WPjemmiOaTjeS9nFxuICAgICAqL1xuICAgIHN1Y2Nlc3Mob3B0aW9ucz86IFRoeUFjdGlvbkZlZWRiYWNrT3B0aW9ucykge1xuICAgICAgICB0aGlzLnNldEZlZWRiYWNrKCdzdWNjZXNzJywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6Kem5Y+R5aSx6LSl5Y+N6aaI5pON5L2cXG4gICAgICovXG4gICAgZXJyb3Iob3B0aW9ucz86IFRoeUFjdGlvbkZlZWRiYWNrT3B0aW9ucykge1xuICAgICAgICB0aGlzLnNldEZlZWRiYWNrKCdlcnJvcicsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RmVlZGJhY2soZmVlZGJhY2s6IFRoeUFjdGlvbkZlZWRiYWNrLCBvcHRpb25zOiBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdEZlZWRiYWNrT3B0aW9uc1tmZWVkYmFja10sIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmZlZWRiYWNrID0gZmVlZGJhY2s7XG4gICAgICAgIHRoaXMuZmVlZGJhY2tPcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGlmIChvcHRpb25zLmR1cmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mZWVkYmFja1RpbWVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWVkYmFja1RpbWVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZlZWRiYWNrVGltZXIgPSB0aW1lcihvcHRpb25zLmR1cmF0aW9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmVlZGJhY2sgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tPcHRpb25zID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3cmFwU3BhbkZvclRleHQobm9kZXM6IE5vZGVMaXN0KTogdm9pZCB7XG4gICAgICAgIG5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PT0gJyN0ZXh0Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUobm9kZSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhzcGFuLCAndGh5LWFjdGlvbi13cmFwLXNwYW4nKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShwYXJlbnQsIHNwYW4sIG5vZGUpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3Bhbiwgbm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0QWN0aW9uVHlwZSh2YWx1ZTogVGh5QWN0aW9uVHlwZSkge1xuICAgICAgICB0aGlzLnR5cGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzZXMoKSB7XG4gICAgICAgIGxldCBjbGFzc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjbGFzc05hbWVzLnB1c2goYGFjdGlvbi0ke3RoaXMudHlwZX1gKTtcbiAgICAgICAgaWYgKHRoaXMudGh5VGhlbWUgPT09ICdsaXRlJykge1xuICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKCd0aHktYWN0aW9uLWxpdGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc05hbWVzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mZWVkYmFja1RpbWVyPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiIsIkBpZiAoaWNvbiAmJiAhZmVlZGJhY2spIHtcbiAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJpY29uXCI+PC90aHktaWNvbj5cbn1cbkBpZiAoZmVlZGJhY2tPcHRpb25zPy5pY29uKSB7XG4gIDx0aHktaWNvbiBbY2xhc3NdPVwiZmVlZGJhY2tPcHRpb25zLmNsYXNzXCIgW3RoeUljb25OYW1lXT1cImZlZWRiYWNrT3B0aW9ucy5pY29uXCI+PC90aHktaWNvbj5cbn1cbkBpZiAodGh5SG92ZXJJY29uKSB7XG4gIDx0aHktaWNvbiBjbGFzcz1cImhvdmVyLWljb25cIiBbdGh5SWNvbk5hbWVdPVwidGh5SG92ZXJJY29uXCI+PC90aHktaWNvbj5cbn1cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -1,8 +1,8 @@
1
- import { Component, Input, ContentChild, TemplateRef, ChangeDetectionStrategy } from '@angular/core';
1
+ import { Component, TemplateRef, ChangeDetectionStrategy, input, contentChild, effect, computed } from '@angular/core';
2
2
  import { coerceBooleanProperty, isString } from 'ngx-tethys/util';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
4
  import { ThyIcon } from 'ngx-tethys/icon';
5
- import { NgIf, NgTemplateOutlet } from '@angular/common';
5
+ import { NgTemplateOutlet } from '@angular/common';
6
6
  import * as i0 from "@angular/core";
7
7
  const weakTypes = ['primary-weak', 'success-weak', 'warning-weak', 'danger-weak'];
8
8
  const typeIconsMap = {
@@ -22,103 +22,77 @@ const typeIconsMap = {
22
22
  * @order 10
23
23
  */
24
24
  export class ThyAlert {
25
- /**
26
- * 指定警告提示的类型
27
- * @type success | warning | danger | info | primary | primary-weak | success-weak | warning-weak | danger-weak
28
- * @default info
29
- */
30
- set thyType(value) {
31
- this.type = value;
32
- }
33
- /**
34
- * 指定警告提示的主题
35
- * @type fill | bordered | naked
36
- * @default fill
37
- */
38
- set thyTheme(value) {
39
- this.theme = value;
40
- }
41
- /**
42
- * 显示警告提示的内容
43
- */
44
- set thyMessage(value) {
45
- if (value instanceof TemplateRef) {
46
- this.messageTemplate = value;
47
- }
48
- else {
49
- this.messageText = value;
50
- }
51
- }
52
- /**
53
- * 显示自定义图标,可传 true/false 控制是否显示图标,或者传字符串去指定图标名称
54
- */
55
- set thyIcon(value) {
56
- if (value) {
57
- this.showIcon = true;
58
- this.icon = isString(value) ? value.toString() : null;
59
- }
60
- else {
61
- this.showIcon = false;
62
- }
63
- }
64
- get thyIcon() {
65
- if (this.showIcon) {
66
- return this.icon || typeIconsMap[this.type];
67
- }
68
- else {
69
- return null;
70
- }
71
- }
72
25
  constructor() {
73
26
  this.hidden = false;
74
- this.showIcon = true;
75
- this.type = 'info';
76
27
  this.hostRenderer = useHostRenderer();
77
- this.theme = 'fill';
78
- }
79
- ngOnInit() {
80
- this.updateClass();
81
- }
82
- ngOnChanges(changes) {
83
- if ((changes.thyTheme && !changes.thyTheme.firstChange) || (changes.thyType && !changes.thyType.firstChange)) {
28
+ this.messageIsTemplate = computed(() => {
29
+ const value = this.thyMessage();
30
+ return value instanceof TemplateRef;
31
+ });
32
+ /**
33
+ * 指定警告提示的类型
34
+ * @type success | warning | danger | info | primary | primary-weak | success-weak | warning-weak | danger-weak
35
+ * @default info
36
+ */
37
+ this.thyType = input('info');
38
+ /**
39
+ * 指定警告提示的主题
40
+ * @type fill | bordered | naked
41
+ * @default fill
42
+ */
43
+ this.thyTheme = input('fill');
44
+ /**
45
+ * 显示警告提示的内容
46
+ */
47
+ this.thyMessage = input();
48
+ /**
49
+ * 显示自定义图标,可传 true/false 控制是否显示图标,或者传字符串去指定图标名称
50
+ */
51
+ this.thyIcon = input();
52
+ this.icon = computed(() => {
53
+ const icon = this.thyIcon();
54
+ if (icon) {
55
+ return isString(icon) ? icon : typeIconsMap[this.thyType()];
56
+ }
57
+ else {
58
+ return icon === 'false' || icon === false ? '' : typeIconsMap[this.thyType()];
59
+ }
60
+ });
61
+ /**
62
+ * 是否显示关闭警告框按钮,默认不显示
63
+ * @default false
64
+ */
65
+ this.thyCloseable = input(false, { transform: coerceBooleanProperty });
66
+ /**
67
+ * 警告框自定义操作
68
+ * @type TemplateRef
69
+ */
70
+ this.alertOperation = contentChild('operation');
71
+ effect(() => {
84
72
  this.updateClass();
85
- }
73
+ });
86
74
  }
87
75
  closeAlert() {
88
76
  this.hidden = true;
89
77
  }
90
78
  updateClass() {
91
79
  // 兼容 'primary-weak', 'success-weak', 'warning-weak', 'danger-weak' types
92
- let theme = this.theme;
93
- let type = this.type;
94
- if (weakTypes.includes(this.type)) {
80
+ let theme = this.thyTheme();
81
+ let type = this.thyType();
82
+ if (weakTypes.includes(type)) {
95
83
  theme = 'bordered';
96
- type = this.type.split('-')[0];
84
+ type = type.split('-')[0];
97
85
  }
98
86
  this.hostRenderer.updateClass([`thy-alert-${theme}`, `thy-alert-${theme}-${type}`]);
99
87
  }
100
88
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyAlert, isStandalone: true, selector: "thy-alert", inputs: { thyType: "thyType", thyTheme: "thyTheme", thyMessage: "thyMessage", thyIcon: "thyIcon", thyCloseable: ["thyCloseable", "thyCloseable", coerceBooleanProperty] }, host: { properties: { "class.thy-alert-hidden": "hidden" }, classAttribute: "thy-alert" }, queries: [{ propertyName: "alertOperation", first: true, predicate: ["operation"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-alert-content\">\n <thy-icon *ngIf=\"thyIcon\" class=\"thy-alert-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n <span *ngIf=\"theme === 'naked'\" class=\"thy-alert-tips\">Tips\uFF1A </span>\n <ng-container *ngIf=\"messageTemplate\">\n <ng-template *ngTemplateOutlet=\"messageTemplate\"></ng-template>\n </ng-container>\n <span *ngIf=\"messageText\">{{ messageText }}</span>\n <div class=\"thy-alert-operation\" *ngIf=\"alertOperation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation\"></ng-container>\n </div>\n</div>\n<a href=\"javascript:;\" class=\"thy-alert-close\" *ngIf=\"thyCloseable\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n</a>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyAlert, isStandalone: true, selector: "thy-alert", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thyMessage: { classPropertyName: "thyMessage", publicName: "thyMessage", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null }, thyCloseable: { classPropertyName: "thyCloseable", publicName: "thyCloseable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-alert-hidden": "hidden" }, classAttribute: "thy-alert" }, queries: [{ propertyName: "alertOperation", first: true, predicate: ["operation"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"thy-alert-content\">\n @if (icon()) {\n <thy-icon class=\"thy-alert-icon\" [thyIconName]=\"icon()\"></thy-icon>\n }\n @if (thyTheme() === 'naked') {\n <span class=\"thy-alert-tips\">Tips\uFF1A </span>\n }\n @if (messageIsTemplate()) {\n <ng-template *ngTemplateOutlet=\"thyMessage()\"></ng-template>\n } @else if (thyMessage()) {\n <span>{{ thyMessage() }}</span>\n }\n @if (alertOperation()) {\n <div class=\"thy-alert-operation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation()\"></ng-container>\n </div>\n }\n</div>\n@if (thyCloseable()) {\n <a href=\"javascript:;\" class=\"thy-alert-close\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
90
  }
103
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyAlert, decorators: [{
104
92
  type: Component,
105
93
  args: [{ selector: 'thy-alert', changeDetection: ChangeDetectionStrategy.OnPush, host: {
106
94
  class: 'thy-alert',
107
95
  '[class.thy-alert-hidden]': 'hidden'
108
- }, standalone: true, imports: [NgIf, ThyIcon, NgTemplateOutlet], template: "<div class=\"thy-alert-content\">\n <thy-icon *ngIf=\"thyIcon\" class=\"thy-alert-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n <span *ngIf=\"theme === 'naked'\" class=\"thy-alert-tips\">Tips\uFF1A </span>\n <ng-container *ngIf=\"messageTemplate\">\n <ng-template *ngTemplateOutlet=\"messageTemplate\"></ng-template>\n </ng-container>\n <span *ngIf=\"messageText\">{{ messageText }}</span>\n <div class=\"thy-alert-operation\" *ngIf=\"alertOperation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation\"></ng-container>\n </div>\n</div>\n<a href=\"javascript:;\" class=\"thy-alert-close\" *ngIf=\"thyCloseable\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n</a>\n" }]
109
- }], ctorParameters: () => [], propDecorators: { thyType: [{
110
- type: Input
111
- }], thyTheme: [{
112
- type: Input
113
- }], thyMessage: [{
114
- type: Input
115
- }], thyIcon: [{
116
- type: Input
117
- }], thyCloseable: [{
118
- type: Input,
119
- args: [{ transform: coerceBooleanProperty }]
120
- }], alertOperation: [{
121
- type: ContentChild,
122
- args: ['operation']
123
- }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hbGVydC9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxZQUFZLEVBQUUsV0FBVyxFQUFhLHVCQUF1QixFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXpELE1BQU0sU0FBUyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFlbEYsTUFBTSxZQUFZLEdBQTJCO0lBQ3pDLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsT0FBTyxFQUFFLGFBQWE7SUFDdEIsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxrQkFBa0I7SUFDM0IsY0FBYyxFQUFFLGtCQUFrQjtJQUNsQyxjQUFjLEVBQUUsbUJBQW1CO0lBQ25DLGNBQWMsRUFBRSxhQUFhO0lBQzdCLGFBQWEsRUFBRSxtQkFBbUI7Q0FDckMsQ0FBQztBQUVGOzs7O0dBSUc7QUFZSCxNQUFNLE9BQU8sUUFBUTtJQWlCakI7Ozs7T0FJRztJQUNILElBQWEsT0FBTyxDQUFDLEtBQW1CO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7OztPQUlH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SUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQzt3REF3QjdCLE9BQU87c0JBQW5CLEtBQUs7Z0JBU08sUUFBUTtzQkFBcEIsS0FBSztnQkFPTyxVQUFVO3NCQUF0QixLQUFLO2dCQVlGLE9BQU87c0JBRFYsS0FBSztnQkFzQnVDLFlBQVk7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTWhCLGNBQWM7c0JBQXhDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiwgT25DaGFuZ2VzLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBpc1N0cmluZyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuY29uc3Qgd2Vha1R5cGVzID0gWydwcmltYXJ5LXdlYWsnLCAnc3VjY2Vzcy13ZWFrJywgJ3dhcm5pbmctd2VhaycsICdkYW5nZXItd2VhayddO1xuXG50eXBlIFRoeUFsZXJ0VHlwZSA9XG4gICAgfCAnc3VjY2VzcydcbiAgICB8ICd3YXJuaW5nJ1xuICAgIHwgJ2RhbmdlcidcbiAgICB8ICdpbmZvJ1xuICAgIHwgJ3ByaW1hcnknXG4gICAgfCAncHJpbWFyeS13ZWFrJ1xuICAgIHwgJ3N1Y2Nlc3Mtd2VhaydcbiAgICB8ICd3YXJuaW5nLXdlYWsnXG4gICAgfCAnZGFuZ2VyLXdlYWsnO1xuXG5leHBvcnQgdHlwZSBUaHlBbGVydFRoZW1lID0gJ2ZpbGwnIHwgJ2JvcmRlcmVkJyB8ICduYWtlZCc7XG5cbmNvbnN0IHR5cGVJY29uc01hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBzdWNjZXNzOiAnY2hlY2stY2lyY2xlLWZpbGwnLFxuICAgIHdhcm5pbmc6ICd3YXJpbmctZmlsbCcsXG4gICAgZGFuZ2VyOiAnY2xvc2UtY2lyY2xlLWZpbGwnLFxuICAgIGluZm86ICdtaW51cy1jaXJjbGUtZmlsbCcsXG4gICAgcHJpbWFyeTogJ2luZm8tY2lyY2xlLWZpbGwnLFxuICAgICdwcmltYXJ5LXdlYWsnOiAnaW5mby1jaXJjbGUtZmlsbCcsXG4gICAgJ3N1Y2Nlc3Mtd2Vhayc6ICdjaGVjay1jaXJjbGUtZmlsbCcsXG4gICAgJ3dhcm5pbmctd2Vhayc6ICd3YXJpbmctZmlsbCcsXG4gICAgJ2Rhbmdlci13ZWFrJzogJ2Nsb3NlLWNpcmNsZS1maWxsJ1xufTtcblxuLyoqXG4gKiDorablkYrmj5DnpLrvvIzlsZXnjrDpnIDopoHlhbPms6jnmoTkv6Hmga9cbiAqIEBuYW1lIHRoeS1hbGVydFxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWFsZXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktYWxlcnQnLFxuICAgICAgICAnW2NsYXNzLnRoeS1hbGVydC1oaWRkZW5dJzogJ2hpZGRlbidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb24sIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUFsZXJ0IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgaGlkZGVuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHNob3dJY29uID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgaWNvbjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSB0eXBlOiBUaHlBbGVydFR5cGUgPSAnaW5mbyc7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgcHVibGljIHRoZW1lOiBUaHlBbGVydFRoZW1lID0gJ2ZpbGwnO1xuXG4gICAgbWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBtZXNzYWdlVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5oyH5a6a6K2m5ZGK5o+Q56S655qE57G75Z6LXG4gICAgICogQHR5cGUgc3VjY2VzcyB8IHdhcm5pbmcgfCBkYW5nZXIgfCBpbmZvIHwgcHJpbWFyeSB8IHByaW1hcnktd2VhayB8IHN1Y2Nlc3Mtd2VhayB8IHdhcm5pbmctd2VhayB8IGRhbmdlci13ZWFrXG4gICAgICogQGRlZmF1bHQgaW5mb1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlUeXBlKHZhbHVlOiBUaHlBbGVydFR5cGUpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oyH5a6a6K2m5ZGK5o+Q56S655qE5Li76aKYXG4gICAgICogQHR5cGUgZmlsbCB8IGJvcmRlcmVkIHwgbmFrZWRcbiAgICAgKiBAZGVmYXVsdCBmaWxsXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVRoZW1lKHZhbHVlOiBUaHlBbGVydFRoZW1lKSB7XG4gICAgICAgIHRoaXMudGhlbWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmL7npLrorablkYrmj5DnpLrnmoTlhoXlrrlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWVzc2FnZSh2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VUZW1wbGF0ZSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlVGV4dCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pi+56S66Ieq5a6a5LmJ5Zu+5qCH77yM5Y+v5LygIHRydWUvZmFsc2Ug5o6n5Yi25piv5ZCm5pi+56S65Zu+5qCH77yM5oiW6ICF5Lyg5a2X56ym5Liy5Y675oyH5a6a5Zu+5qCH5ZCN56ewXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SWNvbih2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0ljb24gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pY29uID0gaXNTdHJpbmcodmFsdWUpID8gdmFsdWUudG9TdHJpbmcoKSA6IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNob3dJY29uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5SWNvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd0ljb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmljb24gfHwgdHlwZUljb25zTWFwW3RoaXMudHlwZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYvuekuuWFs+mXreitpuWRiuahhuaMiemSru+8jOm7mOiupOS4jeaYvuekulxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5Q2xvc2VhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog6K2m5ZGK5qGG6Ieq5a6a5LmJ5pON5L2cXG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdvcGVyYXRpb24nKSBhbGVydE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoKGNoYW5nZXMudGh5VGhlbWUgJiYgIWNoYW5nZXMudGh5VGhlbWUuZmlyc3RDaGFuZ2UpIHx8IChjaGFuZ2VzLnRoeVR5cGUgJiYgIWNoYW5nZXMudGh5VHlwZS5maXJzdENoYW5nZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3MoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlQWxlcnQoKSB7XG4gICAgICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzKCkge1xuICAgICAgICAvLyDlhbzlrrkgJ3ByaW1hcnktd2VhaycsICdzdWNjZXNzLXdlYWsnLCAnd2FybmluZy13ZWFrJywgJ2Rhbmdlci13ZWFrJyB0eXBlc1xuICAgICAgICBsZXQgdGhlbWUgPSB0aGlzLnRoZW1lO1xuICAgICAgICBsZXQgdHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgaWYgKHdlYWtUeXBlcy5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XG4gICAgICAgICAgICB0aGVtZSA9ICdib3JkZXJlZCc7XG4gICAgICAgICAgICB0eXBlID0gdGhpcy50eXBlLnNwbGl0KCctJylbMF0gYXMgVGh5QWxlcnRUeXBlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWFsZXJ0LSR7dGhlbWV9YCwgYHRoeS1hbGVydC0ke3RoZW1lfS0ke3R5cGV9YF0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktYWxlcnQtY29udGVudFwiPlxuICA8dGh5LWljb24gKm5nSWY9XCJ0aHlJY29uXCIgY2xhc3M9XCJ0aHktYWxlcnQtaWNvblwiIFt0aHlJY29uTmFtZV09XCJ0aHlJY29uXCI+PC90aHktaWNvbj5cbiAgPHNwYW4gKm5nSWY9XCJ0aGVtZSA9PT0gJ25ha2VkJ1wiIGNsYXNzPVwidGh5LWFsZXJ0LXRpcHNcIj5UaXBz77yaIDwvc3Bhbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lc3NhZ2VUZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1lc3NhZ2VUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8c3BhbiAqbmdJZj1cIm1lc3NhZ2VUZXh0XCI+e3sgbWVzc2FnZVRleHQgfX08L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJ0aHktYWxlcnQtb3BlcmF0aW9uXCIgKm5nSWY9XCJhbGVydE9wZXJhdGlvblwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWxlcnRPcGVyYXRpb25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBjbGFzcz1cInRoeS1hbGVydC1jbG9zZVwiICpuZ0lmPVwidGh5Q2xvc2VhYmxlXCIgKGNsaWNrKT1cImNsb3NlQWxlcnQoKVwiPlxuICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZVwiPjwvdGh5LWljb24+XG48L2E+XG4iXX0=
96
+ }, standalone: true, imports: [ThyIcon, NgTemplateOutlet], template: "<div class=\"thy-alert-content\">\n @if (icon()) {\n <thy-icon class=\"thy-alert-icon\" [thyIconName]=\"icon()\"></thy-icon>\n }\n @if (thyTheme() === 'naked') {\n <span class=\"thy-alert-tips\">Tips\uFF1A </span>\n }\n @if (messageIsTemplate()) {\n <ng-template *ngTemplateOutlet=\"thyMessage()\"></ng-template>\n } @else if (thyMessage()) {\n <span>{{ thyMessage() }}</span>\n }\n @if (alertOperation()) {\n <div class=\"thy-alert-operation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation()\"></ng-container>\n </div>\n }\n</div>\n@if (thyCloseable()) {\n <a href=\"javascript:;\" class=\"thy-alert-close\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n" }]
97
+ }], ctorParameters: () => [] });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hbGVydC9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRW5ELE1BQU0sU0FBUyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFlbEYsTUFBTSxZQUFZLEdBQTJCO0lBQ3pDLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsT0FBTyxFQUFFLGFBQWE7SUFDdEIsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxrQkFBa0I7SUFDM0IsY0FBYyxFQUFFLGtCQUFrQjtJQUNsQyxjQUFjLEVBQUUsbUJBQW1CO0lBQ25DLGNBQWMsRUFBRSxhQUFhO0lBQzdCLGFBQWEsRUFBRSxtQkFBbUI7Q0FDckMsQ0FBQztBQUVGOzs7O0dBSUc7QUFZSCxNQUFNLE9BQU8sUUFBUTtJQXVEakI7UUF0RFEsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFFekMsc0JBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUg7Ozs7V0FJRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQWUsTUFBTSxDQUFDLENBQUM7UUFFdEM7Ozs7V0FJRztRQUNILGFBQVEsR0FBRyxLQUFLLENBQWdCLE1BQU0sQ0FBQyxDQUFDO1FBRXhDOztXQUVHO1FBQ0gsZUFBVSxHQUFHLEtBQUssRUFBcUMsQ0FBQztRQUV4RDs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFFcEMsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1AsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbEYsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUg7OztXQUdHO1FBQ0gsaUJBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUVsRTs7O1dBR0c7UUFDSCxtQkFBYyxHQUFHLFlBQVksQ0FBbUIsV0FBVyxDQUFDLENBQUM7UUFHekQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVPLFdBQVc7UUFDZix5RUFBeUU7UUFDekUsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQixLQUFLLEdBQUcsVUFBVSxDQUFDO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBaUIsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxhQUFhLEtBQUssRUFBRSxFQUFFLGFBQWEsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDOzhHQTFFUSxRQUFRO2tHQUFSLFFBQVEsczdCQ2pEckIsa3VCQXVCQSw0Q0R3QmMsT0FBTyxzTUFBRSxnQkFBZ0I7OzJGQUUxQixRQUFRO2tCQVhwQixTQUFTOytCQUNJLFdBQVcsbUJBRUosdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsMEJBQTBCLEVBQUUsUUFBUTtxQkFDdkMsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgaW5wdXQsIGNvbnRlbnRDaGlsZCwgZWZmZWN0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBpc1N0cmluZyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuY29uc3Qgd2Vha1R5cGVzID0gWydwcmltYXJ5LXdlYWsnLCAnc3VjY2Vzcy13ZWFrJywgJ3dhcm5pbmctd2VhaycsICdkYW5nZXItd2VhayddO1xuXG50eXBlIFRoeUFsZXJ0VHlwZSA9XG4gICAgfCAnc3VjY2VzcydcbiAgICB8ICd3YXJuaW5nJ1xuICAgIHwgJ2RhbmdlcidcbiAgICB8ICdpbmZvJ1xuICAgIHwgJ3ByaW1hcnknXG4gICAgfCAncHJpbWFyeS13ZWFrJ1xuICAgIHwgJ3N1Y2Nlc3Mtd2VhaydcbiAgICB8ICd3YXJuaW5nLXdlYWsnXG4gICAgfCAnZGFuZ2VyLXdlYWsnO1xuXG5leHBvcnQgdHlwZSBUaHlBbGVydFRoZW1lID0gJ2ZpbGwnIHwgJ2JvcmRlcmVkJyB8ICduYWtlZCc7XG5cbmNvbnN0IHR5cGVJY29uc01hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBzdWNjZXNzOiAnY2hlY2stY2lyY2xlLWZpbGwnLFxuICAgIHdhcm5pbmc6ICd3YXJpbmctZmlsbCcsXG4gICAgZGFuZ2VyOiAnY2xvc2UtY2lyY2xlLWZpbGwnLFxuICAgIGluZm86ICdtaW51cy1jaXJjbGUtZmlsbCcsXG4gICAgcHJpbWFyeTogJ2luZm8tY2lyY2xlLWZpbGwnLFxuICAgICdwcmltYXJ5LXdlYWsnOiAnaW5mby1jaXJjbGUtZmlsbCcsXG4gICAgJ3N1Y2Nlc3Mtd2Vhayc6ICdjaGVjay1jaXJjbGUtZmlsbCcsXG4gICAgJ3dhcm5pbmctd2Vhayc6ICd3YXJpbmctZmlsbCcsXG4gICAgJ2Rhbmdlci13ZWFrJzogJ2Nsb3NlLWNpcmNsZS1maWxsJ1xufTtcblxuLyoqXG4gKiDorablkYrmj5DnpLrvvIzlsZXnjrDpnIDopoHlhbPms6jnmoTkv6Hmga9cbiAqIEBuYW1lIHRoeS1hbGVydFxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWFsZXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktYWxlcnQnLFxuICAgICAgICAnW2NsYXNzLnRoeS1hbGVydC1oaWRkZW5dJzogJ2hpZGRlbidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUljb24sIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUFsZXJ0IHtcbiAgICBwcml2YXRlIGhpZGRlbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIG1lc3NhZ2VJc1RlbXBsYXRlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudGh5TWVzc2FnZSgpO1xuICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIOaMh+WumuitpuWRiuaPkOekuueahOexu+Wei1xuICAgICAqIEB0eXBlIHN1Y2Nlc3MgfCB3YXJuaW5nIHwgZGFuZ2VyIHwgaW5mbyB8IHByaW1hcnkgfCBwcmltYXJ5LXdlYWsgfCBzdWNjZXNzLXdlYWsgfCB3YXJuaW5nLXdlYWsgfCBkYW5nZXItd2Vha1xuICAgICAqIEBkZWZhdWx0IGluZm9cbiAgICAgKi9cbiAgICB0aHlUeXBlID0gaW5wdXQ8VGh5QWxlcnRUeXBlPignaW5mbycpO1xuXG4gICAgLyoqXG4gICAgICog5oyH5a6a6K2m5ZGK5o+Q56S655qE5Li76aKYXG4gICAgICogQHR5cGUgZmlsbCB8IGJvcmRlcmVkIHwgbmFrZWRcbiAgICAgKiBAZGVmYXVsdCBmaWxsXG4gICAgICovXG4gICAgdGh5VGhlbWUgPSBpbnB1dDxUaHlBbGVydFRoZW1lPignZmlsbCcpO1xuXG4gICAgLyoqXG4gICAgICog5pi+56S66K2m5ZGK5o+Q56S655qE5YaF5a65XG4gICAgICovXG4gICAgdGh5TWVzc2FnZSA9IGlucHV0PHN0cmluZyB8IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oKTtcblxuICAgIC8qKlxuICAgICAqIOaYvuekuuiHquWumuS5ieWbvuagh++8jOWPr+S8oCB0cnVlL2ZhbHNlIOaOp+WItuaYr+WQpuaYvuekuuWbvuagh++8jOaIluiAheS8oOWtl+espuS4suWOu+aMh+WumuWbvuagh+WQjeensFxuICAgICAqL1xuICAgIHRoeUljb24gPSBpbnB1dDxib29sZWFuIHwgc3RyaW5nPigpO1xuXG4gICAgaWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMudGh5SWNvbigpO1xuICAgICAgICBpZiAoaWNvbikge1xuICAgICAgICAgICAgcmV0dXJuIGlzU3RyaW5nKGljb24pID8gaWNvbiA6IHR5cGVJY29uc01hcFt0aGlzLnRoeVR5cGUoKV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaWNvbiA9PT0gJ2ZhbHNlJyB8fCBpY29uID09PSBmYWxzZSA/ICcnIDogdHlwZUljb25zTWFwW3RoaXMudGh5VHlwZSgpXTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S65YWz6Zet6K2m5ZGK5qGG5oyJ6ZKu77yM6buY6K6k5LiN5pi+56S6XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICB0aHlDbG9zZWFibGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KTtcblxuICAgIC8qKlxuICAgICAqIOitpuWRiuahhuiHquWumuS5ieaTjeS9nFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgYWxlcnRPcGVyYXRpb24gPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ29wZXJhdGlvbicpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsb3NlQWxlcnQoKSB7XG4gICAgICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzKCkge1xuICAgICAgICAvLyDlhbzlrrkgJ3ByaW1hcnktd2VhaycsICdzdWNjZXNzLXdlYWsnLCAnd2FybmluZy13ZWFrJywgJ2Rhbmdlci13ZWFrJyB0eXBlc1xuICAgICAgICBsZXQgdGhlbWUgPSB0aGlzLnRoeVRoZW1lKCk7XG4gICAgICAgIGxldCB0eXBlID0gdGhpcy50aHlUeXBlKCk7XG4gICAgICAgIGlmICh3ZWFrVHlwZXMuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgICAgIHRoZW1lID0gJ2JvcmRlcmVkJztcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLnNwbGl0KCctJylbMF0gYXMgVGh5QWxlcnRUeXBlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWFsZXJ0LSR7dGhlbWV9YCwgYHRoeS1hbGVydC0ke3RoZW1lfS0ke3R5cGV9YF0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktYWxlcnQtY29udGVudFwiPlxuICBAaWYgKGljb24oKSkge1xuICAgIDx0aHktaWNvbiBjbGFzcz1cInRoeS1hbGVydC1pY29uXCIgW3RoeUljb25OYW1lXT1cImljb24oKVwiPjwvdGh5LWljb24+XG4gIH1cbiAgQGlmICh0aHlUaGVtZSgpID09PSAnbmFrZWQnKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJ0aHktYWxlcnQtdGlwc1wiPlRpcHPvvJogPC9zcGFuPlxuICB9XG4gIEBpZiAobWVzc2FnZUlzVGVtcGxhdGUoKSkge1xuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInRoeU1lc3NhZ2UoKVwiPjwvbmctdGVtcGxhdGU+XG4gIH0gQGVsc2UgaWYgKHRoeU1lc3NhZ2UoKSkge1xuICAgIDxzcGFuPnt7IHRoeU1lc3NhZ2UoKSB9fTwvc3Bhbj5cbiAgfVxuICBAaWYgKGFsZXJ0T3BlcmF0aW9uKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwidGh5LWFsZXJ0LW9wZXJhdGlvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhbGVydE9wZXJhdGlvbigpXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuQGlmICh0aHlDbG9zZWFibGUoKSkge1xuICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJ0aHktYWxlcnQtY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VBbGVydCgpXCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiY2xvc2VcIj48L3RoeS1pY29uPlxuICA8L2E+XG59XG4iXX0=