ngx-tethys 17.0.10 → 17.0.11

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 (349) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/action/action.component.d.ts +3 -3
  3. package/alert/alert.component.d.ts +1 -1
  4. package/anchor/anchor.component.d.ts +3 -1
  5. package/autocomplete/autocomplete.component.d.ts +1 -1
  6. package/autocomplete/autocomplete.trigger.directive.d.ts +1 -1
  7. package/avatar/avatar.component.d.ts +4 -4
  8. package/badge/badge.component.d.ts +3 -3
  9. package/button/button-icon.component.d.ts +2 -2
  10. package/button/button.component.d.ts +2 -2
  11. package/card/card.component.d.ts +3 -3
  12. package/card/content.component.d.ts +1 -1
  13. package/carousel/carousel.component.d.ts +4 -4
  14. package/cascader/cascader-li.component.d.ts +5 -5
  15. package/cascader/cascader-search-option.component.d.ts +3 -3
  16. package/cascader/cascader.component.d.ts +8 -8
  17. package/checkbox/checkbox.component.d.ts +1 -1
  18. package/collapse/collapse-item.component.d.ts +2 -2
  19. package/collapse/collapse.component.d.ts +1 -1
  20. package/color-picker/color-picker-panel.component.d.ts +1 -1
  21. package/color-picker/color-picker.component.d.ts +3 -3
  22. package/copy/copy.directive.d.ts +1 -1
  23. package/core/behaviors/decorators.d.ts +1 -1
  24. package/date-picker/abstract-picker.component.d.ts +7 -7
  25. package/date-picker/abstract-picker.directive.d.ts +3 -3
  26. package/date-picker/base-picker.component.d.ts +2 -2
  27. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
  28. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
  29. package/date-picker/picker.component.d.ts +1 -1
  30. package/date-range/date-range.component.d.ts +8 -2
  31. package/dialog/body/dialog-body.component.d.ts +1 -1
  32. package/dialog/footer/dialog-footer.component.d.ts +1 -1
  33. package/dialog/header/dialog-header.component.d.ts +1 -1
  34. package/divider/divider.component.d.ts +2 -2
  35. package/drag-drop/drag-handle.directive.d.ts +1 -1
  36. package/drag-drop/drag.directive.d.ts +1 -1
  37. package/drag-drop/drop-container.directive.d.ts +1 -1
  38. package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
  39. package/dropdown/dropdown-menu.component.d.ts +1 -1
  40. package/dropdown/dropdown.directive.d.ts +1 -1
  41. package/empty/empty.component.d.ts +1 -1
  42. package/esm2022/action/action.component.mjs +7 -6
  43. package/esm2022/alert/alert.component.mjs +5 -5
  44. package/esm2022/anchor/anchor.component.mjs +5 -5
  45. package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
  46. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
  47. package/esm2022/avatar/avatar.component.mjs +8 -8
  48. package/esm2022/badge/badge.component.mjs +7 -6
  49. package/esm2022/button/button-icon.component.mjs +6 -5
  50. package/esm2022/button/button.component.mjs +6 -6
  51. package/esm2022/card/card.component.mjs +7 -6
  52. package/esm2022/card/content.component.mjs +5 -4
  53. package/esm2022/carousel/carousel.component.mjs +8 -7
  54. package/esm2022/cascader/cascader-li.component.mjs +9 -8
  55. package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
  56. package/esm2022/cascader/cascader.component.mjs +12 -12
  57. package/esm2022/checkbox/checkbox.component.mjs +5 -4
  58. package/esm2022/collapse/collapse-item.component.mjs +6 -6
  59. package/esm2022/collapse/collapse.component.mjs +5 -4
  60. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
  61. package/esm2022/color-picker/color-picker.component.mjs +7 -6
  62. package/esm2022/copy/copy.directive.mjs +5 -4
  63. package/esm2022/core/behaviors/decorators.mjs +2 -2
  64. package/esm2022/date-picker/abstract-picker.component.mjs +11 -10
  65. package/esm2022/date-picker/abstract-picker.directive.mjs +6 -6
  66. package/esm2022/date-picker/base-picker.component.mjs +5 -5
  67. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  68. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
  69. package/esm2022/date-picker/picker.component.mjs +5 -5
  70. package/esm2022/date-range/date-range.component.mjs +6 -5
  71. package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
  72. package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
  73. package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
  74. package/esm2022/divider/divider.component.mjs +6 -5
  75. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
  76. package/esm2022/drag-drop/drag.directive.mjs +5 -4
  77. package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
  78. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
  79. package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
  80. package/esm2022/dropdown/dropdown.directive.mjs +5 -5
  81. package/esm2022/empty/empty.component.mjs +5 -4
  82. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
  83. package/esm2022/form/form-group-label.directive.mjs +5 -4
  84. package/esm2022/form/form-group.component.mjs +7 -6
  85. package/esm2022/icon/icon.component.mjs +6 -5
  86. package/esm2022/image/image.directive.mjs +6 -5
  87. package/esm2022/input/input-search.component.mjs +5 -4
  88. package/esm2022/input/input.component.mjs +6 -5
  89. package/esm2022/input-number/input-number.component.mjs +6 -6
  90. package/esm2022/layout/header.component.mjs +7 -6
  91. package/esm2022/layout/sidebar-header.component.mjs +5 -4
  92. package/esm2022/layout/sidebar.component.mjs +12 -11
  93. package/esm2022/list/list.component.mjs +5 -4
  94. package/esm2022/list/selection/selection-list.mjs +7 -7
  95. package/esm2022/loading/loading.component.mjs +6 -5
  96. package/esm2022/menu/group/menu-group.component.mjs +10 -9
  97. package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -4
  98. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
  99. package/esm2022/menu/menu.component.mjs +5 -4
  100. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
  101. package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
  102. package/esm2022/nav/nav-item.directive.mjs +7 -6
  103. package/esm2022/nav/nav.component.mjs +8 -7
  104. package/esm2022/pagination/pagination.component.mjs +9 -9
  105. package/esm2022/popover/popover.directive.mjs +6 -5
  106. package/esm2022/property/property-item.component.mjs +5 -4
  107. package/esm2022/property-operation/property-operation.component.mjs +9 -9
  108. package/esm2022/radio/group/radio-group.component.mjs +5 -4
  109. package/esm2022/rate/rate-item.component.mjs +5 -4
  110. package/esm2022/rate/rate.component.mjs +7 -7
  111. package/esm2022/resizable/resizable.directive.mjs +7 -6
  112. package/esm2022/resizable/resize-handle.component.mjs +5 -4
  113. package/esm2022/resizable/resize-handles.component.mjs +5 -4
  114. package/esm2022/segment/segment-item.component.mjs +5 -5
  115. package/esm2022/segment/segment.component.mjs +5 -4
  116. package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
  117. package/esm2022/select/native-select/native-select.component.mjs +5 -5
  118. package/esm2022/shared/base-form-check.component.mjs +6 -5
  119. package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
  120. package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
  121. package/esm2022/shared/directives/thy-show.mjs +5 -4
  122. package/esm2022/shared/option/group/option-group.component.mjs +5 -4
  123. package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
  124. package/esm2022/shared/option/option.component.mjs +5 -5
  125. package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
  126. package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
  127. package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
  128. package/esm2022/skeleton/skeleton.component.mjs +5 -4
  129. package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
  130. package/esm2022/skeleton/stylized/list.component.mjs +5 -4
  131. package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
  132. package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
  133. package/esm2022/slider/slider.component.mjs +6 -6
  134. package/esm2022/space/space.component.mjs +5 -4
  135. package/esm2022/stepper/step-header.component.mjs +6 -5
  136. package/esm2022/stepper/stepper.component.mjs +5 -4
  137. package/esm2022/switch/switch.component.mjs +6 -5
  138. package/esm2022/table/table-column.component.mjs +9 -9
  139. package/esm2022/table/table-skeleton.component.mjs +6 -5
  140. package/esm2022/table/table.component.mjs +14 -14
  141. package/esm2022/tabs/tab.component.mjs +5 -4
  142. package/esm2022/tabs/tabs.component.mjs +6 -6
  143. package/esm2022/tag/tag.component.mjs +5 -5
  144. package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
  145. package/esm2022/time-picker/time-picker.component.mjs +9 -9
  146. package/esm2022/timeline/timeline.component.mjs +5 -4
  147. package/esm2022/tooltip/tooltip.directive.mjs +6 -6
  148. package/esm2022/tree/tree-node.component.mjs +9 -8
  149. package/esm2022/tree/tree.component.mjs +10 -10
  150. package/esm2022/tree-select/tree-select.component.mjs +11 -11
  151. package/esm2022/upload/file-select.component.mjs +6 -5
  152. package/esm2022/version.mjs +2 -2
  153. package/esm2022/vote/vote.component.mjs +7 -6
  154. package/esm2022/watermark/watermark.directive.mjs +5 -4
  155. package/fesm2022/ngx-tethys-action.mjs +6 -5
  156. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-alert.mjs +4 -4
  158. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-anchor.mjs +4 -4
  160. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
  162. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-avatar.mjs +7 -7
  164. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-badge.mjs +6 -5
  166. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-button.mjs +8 -8
  168. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-card.mjs +8 -7
  170. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-carousel.mjs +7 -6
  172. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  173. package/fesm2022/ngx-tethys-cascader.mjs +21 -21
  174. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  175. package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
  176. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  177. package/fesm2022/ngx-tethys-collapse.mjs +7 -7
  178. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  179. package/fesm2022/ngx-tethys-color-picker.mjs +8 -7
  180. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  181. package/fesm2022/ngx-tethys-copy.mjs +4 -3
  182. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  183. package/fesm2022/ngx-tethys-core.mjs +1 -1
  184. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  185. package/fesm2022/ngx-tethys-date-picker.mjs +26 -26
  186. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  187. package/fesm2022/ngx-tethys-date-range.mjs +5 -4
  188. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  189. package/fesm2022/ngx-tethys-dialog.mjs +8 -7
  190. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  191. package/fesm2022/ngx-tethys-divider.mjs +5 -4
  192. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  193. package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
  194. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  195. package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
  196. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  197. package/fesm2022/ngx-tethys-empty.mjs +4 -3
  198. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  199. package/fesm2022/ngx-tethys-form.mjs +10 -10
  200. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  201. package/fesm2022/ngx-tethys-icon.mjs +5 -5
  202. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  203. package/fesm2022/ngx-tethys-image.mjs +5 -5
  204. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  205. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  206. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  207. package/fesm2022/ngx-tethys-input.mjs +7 -6
  208. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  209. package/fesm2022/ngx-tethys-layout.mjs +17 -16
  210. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  211. package/fesm2022/ngx-tethys-list.mjs +8 -8
  212. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  213. package/fesm2022/ngx-tethys-loading.mjs +5 -4
  214. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  215. package/fesm2022/ngx-tethys-menu.mjs +15 -14
  216. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  217. package/fesm2022/ngx-tethys-nav.mjs +16 -16
  218. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  219. package/fesm2022/ngx-tethys-pagination.mjs +8 -8
  220. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  221. package/fesm2022/ngx-tethys-popover.mjs +5 -5
  222. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  223. package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
  224. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  225. package/fesm2022/ngx-tethys-property.mjs +4 -3
  226. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  227. package/fesm2022/ngx-tethys-radio.mjs +7 -6
  228. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  229. package/fesm2022/ngx-tethys-rate.mjs +8 -8
  230. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  231. package/fesm2022/ngx-tethys-resizable.mjs +10 -10
  232. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  233. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  234. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  235. package/fesm2022/ngx-tethys-select.mjs +15 -15
  236. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  237. package/fesm2022/ngx-tethys-shared.mjs +25 -25
  238. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  239. package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
  240. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  241. package/fesm2022/ngx-tethys-slide.mjs +4 -4
  242. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  243. package/fesm2022/ngx-tethys-slider.mjs +5 -5
  244. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  245. package/fesm2022/ngx-tethys-space.mjs +4 -3
  246. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  247. package/fesm2022/ngx-tethys-stepper.mjs +7 -6
  248. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  249. package/fesm2022/ngx-tethys-switch.mjs +5 -4
  250. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  251. package/fesm2022/ngx-tethys-table.mjs +22 -22
  252. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  253. package/fesm2022/ngx-tethys-tabs.mjs +7 -7
  254. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  255. package/fesm2022/ngx-tethys-tag.mjs +4 -4
  256. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  257. package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
  258. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  259. package/fesm2022/ngx-tethys-timeline.mjs +4 -3
  260. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  261. package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
  262. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  263. package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
  264. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  265. package/fesm2022/ngx-tethys-tree.mjs +15 -15
  266. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  267. package/fesm2022/ngx-tethys-upload.mjs +5 -5
  268. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  269. package/fesm2022/ngx-tethys-vote.mjs +6 -5
  270. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  271. package/fesm2022/ngx-tethys-watermark.mjs +4 -3
  272. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  273. package/fesm2022/ngx-tethys.mjs +1 -1
  274. package/fesm2022/ngx-tethys.mjs.map +1 -1
  275. package/form/form-group-error/form-group-error.component.d.ts +1 -1
  276. package/form/form-group-label.directive.d.ts +1 -1
  277. package/form/form-group.component.d.ts +3 -3
  278. package/icon/icon.component.d.ts +2 -2
  279. package/image/image.directive.d.ts +2 -2
  280. package/input/input-search.component.d.ts +1 -1
  281. package/input/input.component.d.ts +2 -2
  282. package/input-number/input-number.component.d.ts +2 -2
  283. package/layout/header.component.d.ts +3 -3
  284. package/layout/sidebar-header.component.d.ts +1 -1
  285. package/layout/sidebar.component.d.ts +7 -7
  286. package/list/list.component.d.ts +1 -1
  287. package/list/selection/selection-list.d.ts +3 -3
  288. package/loading/loading.component.d.ts +2 -2
  289. package/menu/group/menu-group.component.d.ts +6 -6
  290. package/menu/item/action/menu-item-action.component.d.ts +1 -1
  291. package/menu/item/name/menu-item-name.component.d.ts +1 -1
  292. package/menu/menu.component.d.ts +1 -1
  293. package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
  294. package/nav/nav-ink-bar.directive.d.ts +2 -2
  295. package/nav/nav-item.directive.d.ts +3 -3
  296. package/nav/nav.component.d.ts +4 -4
  297. package/package.json +1 -1
  298. package/pagination/pagination.component.d.ts +5 -5
  299. package/popover/popover.directive.d.ts +2 -2
  300. package/property/property-item.component.d.ts +4 -1
  301. package/property-operation/property-operation.component.d.ts +5 -5
  302. package/radio/group/radio-group.component.d.ts +1 -1
  303. package/rate/rate-item.component.d.ts +1 -1
  304. package/rate/rate.component.d.ts +3 -3
  305. package/resizable/resizable.directive.d.ts +3 -3
  306. package/resizable/resize-handle.component.d.ts +1 -1
  307. package/resizable/resize-handles.component.d.ts +1 -1
  308. package/schematics/version.d.ts +1 -1
  309. package/schematics/version.js +1 -1
  310. package/segment/segment-item.component.d.ts +1 -1
  311. package/segment/segment.component.d.ts +5 -1
  312. package/select/custom-select/custom-select.component.d.ts +10 -10
  313. package/select/native-select/native-select.component.d.ts +1 -1
  314. package/shared/base-form-check.component.d.ts +2 -2
  315. package/shared/directives/thy-autofocus.directive.d.ts +2 -2
  316. package/shared/directives/thy-scroll.directive.d.ts +1 -1
  317. package/shared/directives/thy-show.d.ts +1 -1
  318. package/shared/option/group/option-group.component.d.ts +1 -1
  319. package/shared/option/list-option/list-option.component.d.ts +1 -1
  320. package/shared/option/option.component.d.ts +1 -1
  321. package/shared/select/select-control/select-control.component.d.ts +6 -6
  322. package/skeleton/skeleton-circle.component.d.ts +1 -1
  323. package/skeleton/skeleton-rectangle.component.d.ts +1 -1
  324. package/skeleton/skeleton.component.d.ts +1 -1
  325. package/skeleton/stylized/bullet-list.component.d.ts +1 -1
  326. package/skeleton/stylized/list.component.d.ts +1 -1
  327. package/skeleton/stylized/paragraph.component.d.ts +1 -1
  328. package/slide/slide-body/slide-body-section.component.d.ts +1 -1
  329. package/slider/slider.component.d.ts +2 -2
  330. package/space/space.component.d.ts +1 -1
  331. package/stepper/step-header.component.d.ts +2 -2
  332. package/stepper/stepper.component.d.ts +1 -1
  333. package/switch/switch.component.d.ts +2 -2
  334. package/table/table-column.component.d.ts +5 -5
  335. package/table/table-skeleton.component.d.ts +2 -2
  336. package/table/table.component.d.ts +10 -10
  337. package/tabs/tab.component.d.ts +1 -1
  338. package/tabs/tabs.component.d.ts +2 -2
  339. package/tag/tag.component.d.ts +1 -1
  340. package/time-picker/time-picker-panel.component.d.ts +2 -2
  341. package/time-picker/time-picker.component.d.ts +5 -5
  342. package/timeline/timeline.component.d.ts +1 -1
  343. package/tooltip/tooltip.directive.d.ts +10 -2
  344. package/tree/tree-node.component.d.ts +20 -5
  345. package/tree/tree.component.d.ts +6 -6
  346. package/tree-select/tree-select.component.d.ts +7 -7
  347. package/upload/file-select.component.d.ts +2 -2
  348. package/vote/vote.component.d.ts +3 -3
  349. package/watermark/watermark.directive.d.ts +1 -1
@@ -1,8 +1,9 @@
1
- import { Directive, Input, ElementRef, inject, DestroyRef, booleanAttribute } from '@angular/core';
1
+ import { Directive, Input, ElementRef, inject, DestroyRef } from '@angular/core';
2
2
  import { Subject, Observable } from 'rxjs';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { DEFAULT_WATERMARK_CONFIG, DEFAULT_CANVAS_CONFIG } from './config';
5
5
  import { MutationObserverFactory } from '@angular/cdk/observers';
6
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * 水印指令
@@ -150,7 +151,7 @@ export class ThyWatermarkDirective {
150
151
  });
151
152
  }
152
153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyWatermarkDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
153
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyWatermarkDirective, isStandalone: true, selector: "[thyWatermark]", inputs: { thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyWatermark: "thyWatermark", thyCanvasConfig: "thyCanvasConfig" }, usesOnChanges: true, ngImport: i0 }); }
154
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyWatermarkDirective, isStandalone: true, selector: "[thyWatermark]", inputs: { thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyWatermark: "thyWatermark", thyCanvasConfig: "thyCanvasConfig" }, usesOnChanges: true, ngImport: i0 }); }
154
155
  }
155
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyWatermarkDirective, decorators: [{
156
157
  type: Directive,
@@ -160,10 +161,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
160
161
  }]
161
162
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { thyDisabled: [{
162
163
  type: Input,
163
- args: [{ transform: booleanAttribute }]
164
+ args: [{ transform: coerceBooleanProperty }]
164
165
  }], thyWatermark: [{
165
166
  type: Input
166
167
  }], thyCanvasConfig: [{
167
168
  type: Input
168
169
  }] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJtYXJrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy93YXRlcm1hcmsvd2F0ZXJtYXJrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQW9DLE1BQU0sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckksT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVVqRTs7O0dBR0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBUTlCOztPQUVHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBYTtRQUMxQixLQUFLLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBaUJELFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBL0JsQzs7V0FFRztRQUVILGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBaUJyQixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBUWhDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFWixDQUFDO0lBRXRDLFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLElBQUks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ZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBpbmplY3QsIERlc3Ryb3lSZWYsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IERFRkFVTFRfV0FURVJNQVJLX0NPTkZJRywgREVGQVVMVF9DQU5WQVNfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgTXV0YXRpb25PYnNlcnZlckZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcblxuZXhwb3J0IGludGVyZmFjZSBUaHlDYW52YXNDb25maWdUeXBlIHtcbiAgICBkZWdyZWU/OiBudW1iZXI7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgZm9udFNpemU/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgdGV4dExpbmVIZWlnaHQ/OiBudW1iZXI7XG4gICAgZ3V0dGVyPzogbnVtYmVyW107XG59XG5cbi8qKlxuICog5rC05Y2w5oyH5LukXG4gKiBAbmFtZSB0aHlXYXRlcm1hcmtcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5V2F0ZXJtYXJrXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlXYXRlcm1hcmtEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55So77yM6buY6K6k5Li6IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgdGh5RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiDmsLTljbDlhoXlrrlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlXYXRlcm1hcmsodmFsdWU6IHN0cmluZykge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlPy5yZXBsYWNlKC9eXFxcInxcXFwiJC9nLCAnJyk7XG4gICAgICAgIHRoaXMuY29udGVudCA9ICEhdmFsdWUgPyB2YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNhbnZhc+agt+W8j+mFjee9rlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNhbnZhc0NvbmZpZzogVGh5Q2FudmFzQ29uZmlnVHlwZTtcblxuICAgIHByaXZhdGUgY3JlYXRlV2F0ZXJtYXJrJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG5cbiAgICBwcml2YXRlIHdtRGl2OiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVdhdGVybWFyayQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVBdHRyaWJ1dGVzKClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVdhdGVybWFyaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRoeVdhdGVybWFyaywgdGh5RGlzYWJsZWQgfSA9IGNoYW5nZXM7XG4gICAgICAgIGNvbnN0IHRoeVdhdGVybWFya0NoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aHlXYXRlcm1hcmsuZmlyc3RDaGFuZ2UpIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0aHlXYXRlcm1hcmsuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoV2F0ZXJtYXJrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRoeURpc2FibGVkQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoeURpc2FibGVkLmZpcnN0Q2hhbmdlKSByZXR1cm47XG4gICAgICAgICAgICB0aHlEaXNhYmxlZD8uY3VycmVudFZhbHVlID8gdGhpcy5yZW1vdmVXYXRlcm1hcmsoKSA6IHRoaXMucmVmcmVzaFdhdGVybWFyaygpO1xuICAgICAgICB9O1xuICAgICAgICB0aHlXYXRlcm1hcmsgJiYgdGh5V2F0ZXJtYXJrQ2hhbmdlKCk7XG4gICAgICAgIHRoeURpc2FibGVkICYmIHRoeURpc2FibGVkQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoV2F0ZXJtYXJrKCkge1xuICAgICAgICB0aGlzLnJlbW92ZVdhdGVybWFyaygpO1xuICAgICAgICB0aGlzLmNyZWF0ZVdhdGVybWFyaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlV2F0ZXJtYXJrKCkge1xuICAgICAgICBpZiAodGhpcy53bURpdikge1xuICAgICAgICAgICAgdGhpcy53bURpdi5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMud21EaXYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlQ2FudmFzKCkge1xuICAgICAgICBsZXQgeyBndXR0ZXIsIGZvbnRTaXplLCBjb2xvciwgZGVncmVlLCB0ZXh0TGluZUhlaWdodCB9ID0ge1xuICAgICAgICAgICAgLi4uREVGQVVMVF9DQU5WQVNfQ09ORklHLFxuICAgICAgICAgICAgLi4uKHRoaXMudGh5Q2FudmFzQ29uZmlnIHx8IHt9KVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IFt4R3V0dGVyLCB5R3V0dGVyXSA9IGd1dHRlcjtcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG4gICAgICAgIGNvbnN0IGdldEZha2VTaXplID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmFrZUJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgY29uc3QgZmFrZUJveFN0eWxlID0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgICAgICAgICAgICdmb250LXNpemUnOiBgJHtwYXJzZUZsb2F0KCcnICsgZm9udFNpemUpfXB4YCxcbiAgICAgICAgICAgICAgICAnd29yZC13cmFwJzogJ2JyZWFrLXdvcmQnLFxuICAgICAgICAgICAgICAgICdmb250LWZhbWlseSc6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAnd2hpdGUtc3BhY2UnOiAncHJlLWxpbmUnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgc3R5bGVTdHIgPSBPYmplY3Qua2V5cyhmYWtlQm94U3R5bGUpLnJlZHVjZSgocHJlLCBuZXh0KSA9PiAoKHByZSArPSBgJHtuZXh0fToke2Zha2VCb3hTdHlsZVtuZXh0XX07YCksIHByZSksICcnKTtcbiAgICAgICAgICAgIGZha2VCb3guc2V0QXR0cmlidXRlKCdzdHlsZScsIHN0eWxlU3RyKTtcblxuICAgICAgICAgICAgZmFrZUJveC5pbm5lckhUTUwgPSB0aGlzLmNvbnRlbnQucmVwbGFjZSgvKFxcXFxuKS9nbSwgJzwvYnI+Jyk7XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuaW5zZXJ0QmVmb3JlKGZha2VCb3gsIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5maXJzdENoaWxkKTtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZmFrZUJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGZha2VCb3gucmVtb3ZlKCk7XG4gICAgICAgICAgICByZXR1cm4geyB3aWR0aCwgaGVpZ2h0IH07XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgd2lkdGg6IGZha2VCb3hXaWR0aCwgaGVpZ2h0OiBmYWtlQm94SGVpZ2h0IH0gPSBnZXRGYWtlU2l6ZSgpO1xuXG4gICAgICAgIGNvbnN0IGFuZ2xlID0gKGRlZ3JlZSAqIE1hdGguUEkpIC8gMTgwO1xuICAgICAgICBjb25zdCBjb250ZW50QXJyID0gdGhpcy5jb250ZW50LnNwbGl0KCdcXFxcbicpO1xuICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSBNYXRoLnNpbihhbmdsZSkgKiBmYWtlQm94V2lkdGggKyBmYWtlQm94SGVpZ2h0O1xuXG4gICAgICAgIGxldCBzdGFydCA9IE1hdGguY2VpbChNYXRoLnNpbihhbmdsZSkgKiBmYWtlQm94V2lkdGggKiBNYXRoLnNpbihhbmdsZSkpO1xuICAgICAgICBjb25zdCBjYW52YXNXaWR0aCA9IHN0YXJ0ICsgZmFrZUJveFdpZHRoO1xuICAgICAgICBjYW52YXMuc2V0QXR0cmlidXRlKCd3aWR0aCcsICcnICsgKGNhbnZhc1dpZHRoICsgeEd1dHRlcikpO1xuICAgICAgICBjYW52YXMuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnJyArIChjYW52YXNIZWlnaHQgKyB5R3V0dGVyKSk7XG5cbiAgICAgICAgY3R4LmZvbnQgPSBgJHtwYXJzZUZsb2F0KCcnICsgZm9udFNpemUpfXB4IG1pY3Jvc29mdCB5YWhlaWA7XG4gICAgICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgICBjdHguZmlsbFN0eWxlID0gY29sb3I7XG4gICAgICAgIGN0eC5yb3RhdGUoMCAtIChkZWdyZWUgKiBNYXRoLlBJKSAvIDE4MCk7XG4gICAgICAgIGNvbnRlbnRBcnIubWFwKChrLCBpKSA9PiB7XG4gICAgICAgICAgICBjdHguZmlsbFRleHQoaywgLXN0YXJ0ICsgTWF0aC5jZWlsKGNhbnZhc1dpZHRoIC8gMiksIE1hdGguc2luKGFuZ2xlKSAqIGNhbnZhc1dpZHRoICsgdGV4dExpbmVIZWlnaHQgKiBpKTtcbiAgICAgICAgICAgIHN0YXJ0ICs9IE1hdGguc2luKGFuZ2xlKSAqIHRleHRMaW5lSGVpZ2h0O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYW52YXMgPSBjYW52YXM7XG4gICAgICAgIHJldHVybiBjYW52YXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVXYXRlcm1hcmsoaXNSZWZyZXNoID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCB3YXRlcm1hcmtEaXYgPSB0aGlzLndtRGl2IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGNvbnN0IGJhY2tncm91bmQgPSAhaXNSZWZyZXNoID8gdGhpcy5jYW52YXMudG9EYXRhVVJMKCkgOiB0aGlzLmNyZWF0ZUNhbnZhcygpLnRvRGF0YVVSTCgpO1xuICAgICAgICBjb25zdCB3YXRlcm1hcmtTdHlsZSA9IHtcbiAgICAgICAgICAgIC4uLkRFRkFVTFRfV0FURVJNQVJLX0NPTkZJRyxcbiAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogYHVybCgke2JhY2tncm91bmR9KWBcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzdHlsZVN0ciA9IE9iamVjdC5rZXlzKHdhdGVybWFya1N0eWxlKS5yZWR1Y2UoKHByZSwgbmV4dCkgPT4gKChwcmUgKz0gYCR7bmV4dH06JHt3YXRlcm1hcmtTdHlsZVtuZXh0XX07YCksIHByZSksICcnKTtcbiAgICAgICAgd2F0ZXJtYXJrRGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZVN0cik7XG5cbiAgICAgICAgaWYgKCF0aGlzLndtRGl2KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgd2F0ZXJtYXJrRGl2LmNsYXNzTGlzdC5hZGQoYF92bWApO1xuICAgICAgICAgICAgdGhpcy53bURpdiA9IHdhdGVybWFya0RpdjtcbiAgICAgICAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdhdGVybWFya0RpdiwgcGFyZW50Tm9kZS5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyZWF0ZVdhdGVybWFyayQubmV4dCgnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQXR0cmlidXRlcygpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdHJlYW0gPSBuZXcgU3ViamVjdDxNdXRhdGlvblJlY29yZFtdPigpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyRmFjdG9yeSgpLmNyZWF0ZShtdXRhdGlvbnMgPT4gc3RyZWFtLm5leHQobXV0YXRpb25zKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLndtRGl2LCB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0cmVhbS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLndtRGl2KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXM/Lm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlV2F0ZXJtYXJrKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChzdHJlYW0pO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJtYXJrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy93YXRlcm1hcmsvd2F0ZXJtYXJrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQW9DLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVV4RDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBUTlCOztPQUVHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBYTtRQUMxQixLQUFLLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBaUJELFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBL0JsQzs7V0FFRztRQUVILGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBaUJyQixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBUWhDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFWixDQUFDO0lBRXRDLFFBQVE7UUFDSixJQUFJLENBQUMsSUFB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O2dCQVF2QyxZQUFZO3NCQURmLEtBQUs7Z0JBU0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBpbmplY3QsIERlc3Ryb3lSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IERFRkFVTFRfV0FURVJNQVJLX0NPTkZJRywgREVGQVVMVF9DQU5WQVNfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgTXV0YXRpb25PYnNlcnZlckZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGh5Q2FudmFzQ29uZmlnVHlwZSB7XG4gICAgZGVncmVlPzogbnVtYmVyO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGZvbnRTaXplPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIHRleHRMaW5lSGVpZ2h0PzogbnVtYmVyO1xuICAgIGd1dHRlcj86IG51bWJlcltdO1xufVxuXG4vKipcbiAqIOawtOWNsOaMh+S7pFxuICogQG5hbWUgdGh5V2F0ZXJtYXJrXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoeVdhdGVybWFya10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5V2F0ZXJtYXJrRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqO+8jOm7mOiupOS4uiBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgdGh5RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiDmsLTljbDlhoXlrrlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlXYXRlcm1hcmsodmFsdWU6IHN0cmluZykge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlPy5yZXBsYWNlKC9eXFxcInxcXFwiJC9nLCAnJyk7XG4gICAgICAgIHRoaXMuY29udGVudCA9ICEhdmFsdWUgPyB2YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNhbnZhc+agt+W8j+mFjee9rlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNhbnZhc0NvbmZpZzogVGh5Q2FudmFzQ29uZmlnVHlwZTtcblxuICAgIHByaXZhdGUgY3JlYXRlV2F0ZXJtYXJrJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG5cbiAgICBwcml2YXRlIHdtRGl2OiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVdhdGVybWFyayQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVBdHRyaWJ1dGVzKClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVdhdGVybWFyaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRoeVdhdGVybWFyaywgdGh5RGlzYWJsZWQgfSA9IGNoYW5nZXM7XG4gICAgICAgIGNvbnN0IHRoeVdhdGVybWFya0NoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aHlXYXRlcm1hcmsuZmlyc3RDaGFuZ2UpIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0aHlXYXRlcm1hcmsuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoV2F0ZXJtYXJrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRoeURpc2FibGVkQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoeURpc2FibGVkLmZpcnN0Q2hhbmdlKSByZXR1cm47XG4gICAgICAgICAgICB0aHlEaXNhYmxlZD8uY3VycmVudFZhbHVlID8gdGhpcy5yZW1vdmVXYXRlcm1hcmsoKSA6IHRoaXMucmVmcmVzaFdhdGVybWFyaygpO1xuICAgICAgICB9O1xuICAgICAgICB0aHlXYXRlcm1hcmsgJiYgdGh5V2F0ZXJtYXJrQ2hhbmdlKCk7XG4gICAgICAgIHRoeURpc2FibGVkICYmIHRoeURpc2FibGVkQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoV2F0ZXJtYXJrKCkge1xuICAgICAgICB0aGlzLnJlbW92ZVdhdGVybWFyaygpO1xuICAgICAgICB0aGlzLmNyZWF0ZVdhdGVybWFyaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlV2F0ZXJtYXJrKCkge1xuICAgICAgICBpZiAodGhpcy53bURpdikge1xuICAgICAgICAgICAgdGhpcy53bURpdi5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMud21EaXYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlQ2FudmFzKCkge1xuICAgICAgICBsZXQgeyBndXR0ZXIsIGZvbnRTaXplLCBjb2xvciwgZGVncmVlLCB0ZXh0TGluZUhlaWdodCB9ID0ge1xuICAgICAgICAgICAgLi4uREVGQVVMVF9DQU5WQVNfQ09ORklHLFxuICAgICAgICAgICAgLi4uKHRoaXMudGh5Q2FudmFzQ29uZmlnIHx8IHt9KVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IFt4R3V0dGVyLCB5R3V0dGVyXSA9IGd1dHRlcjtcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG4gICAgICAgIGNvbnN0IGdldEZha2VTaXplID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmFrZUJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgY29uc3QgZmFrZUJveFN0eWxlID0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgICAgICAgICAgICdmb250LXNpemUnOiBgJHtwYXJzZUZsb2F0KCcnICsgZm9udFNpemUpfXB4YCxcbiAgICAgICAgICAgICAgICAnd29yZC13cmFwJzogJ2JyZWFrLXdvcmQnLFxuICAgICAgICAgICAgICAgICdmb250LWZhbWlseSc6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAnd2hpdGUtc3BhY2UnOiAncHJlLWxpbmUnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgc3R5bGVTdHIgPSBPYmplY3Qua2V5cyhmYWtlQm94U3R5bGUpLnJlZHVjZSgocHJlLCBuZXh0KSA9PiAoKHByZSArPSBgJHtuZXh0fToke2Zha2VCb3hTdHlsZVtuZXh0XX07YCksIHByZSksICcnKTtcbiAgICAgICAgICAgIGZha2VCb3guc2V0QXR0cmlidXRlKCdzdHlsZScsIHN0eWxlU3RyKTtcblxuICAgICAgICAgICAgZmFrZUJveC5pbm5lckhUTUwgPSB0aGlzLmNvbnRlbnQucmVwbGFjZSgvKFxcXFxuKS9nbSwgJzwvYnI+Jyk7XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuaW5zZXJ0QmVmb3JlKGZha2VCb3gsIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5maXJzdENoaWxkKTtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZmFrZUJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGZha2VCb3gucmVtb3ZlKCk7XG4gICAgICAgICAgICByZXR1cm4geyB3aWR0aCwgaGVpZ2h0IH07XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgd2lkdGg6IGZha2VCb3hXaWR0aCwgaGVpZ2h0OiBmYWtlQm94SGVpZ2h0IH0gPSBnZXRGYWtlU2l6ZSgpO1xuXG4gICAgICAgIGNvbnN0IGFuZ2xlID0gKGRlZ3JlZSAqIE1hdGguUEkpIC8gMTgwO1xuICAgICAgICBjb25zdCBjb250ZW50QXJyID0gdGhpcy5jb250ZW50LnNwbGl0KCdcXFxcbicpO1xuICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSBNYXRoLnNpbihhbmdsZSkgKiBmYWtlQm94V2lkdGggKyBmYWtlQm94SGVpZ2h0O1xuXG4gICAgICAgIGxldCBzdGFydCA9IE1hdGguY2VpbChNYXRoLnNpbihhbmdsZSkgKiBmYWtlQm94V2lkdGggKiBNYXRoLnNpbihhbmdsZSkpO1xuICAgICAgICBjb25zdCBjYW52YXNXaWR0aCA9IHN0YXJ0ICsgZmFrZUJveFdpZHRoO1xuICAgICAgICBjYW52YXMuc2V0QXR0cmlidXRlKCd3aWR0aCcsICcnICsgKGNhbnZhc1dpZHRoICsgeEd1dHRlcikpO1xuICAgICAgICBjYW52YXMuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnJyArIChjYW52YXNIZWlnaHQgKyB5R3V0dGVyKSk7XG5cbiAgICAgICAgY3R4LmZvbnQgPSBgJHtwYXJzZUZsb2F0KCcnICsgZm9udFNpemUpfXB4IG1pY3Jvc29mdCB5YWhlaWA7XG4gICAgICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgICBjdHguZmlsbFN0eWxlID0gY29sb3I7XG4gICAgICAgIGN0eC5yb3RhdGUoMCAtIChkZWdyZWUgKiBNYXRoLlBJKSAvIDE4MCk7XG4gICAgICAgIGNvbnRlbnRBcnIubWFwKChrLCBpKSA9PiB7XG4gICAgICAgICAgICBjdHguZmlsbFRleHQoaywgLXN0YXJ0ICsgTWF0aC5jZWlsKGNhbnZhc1dpZHRoIC8gMiksIE1hdGguc2luKGFuZ2xlKSAqIGNhbnZhc1dpZHRoICsgdGV4dExpbmVIZWlnaHQgKiBpKTtcbiAgICAgICAgICAgIHN0YXJ0ICs9IE1hdGguc2luKGFuZ2xlKSAqIHRleHRMaW5lSGVpZ2h0O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYW52YXMgPSBjYW52YXM7XG4gICAgICAgIHJldHVybiBjYW52YXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVXYXRlcm1hcmsoaXNSZWZyZXNoID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCB3YXRlcm1hcmtEaXYgPSB0aGlzLndtRGl2IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGNvbnN0IGJhY2tncm91bmQgPSAhaXNSZWZyZXNoID8gdGhpcy5jYW52YXMudG9EYXRhVVJMKCkgOiB0aGlzLmNyZWF0ZUNhbnZhcygpLnRvRGF0YVVSTCgpO1xuICAgICAgICBjb25zdCB3YXRlcm1hcmtTdHlsZSA9IHtcbiAgICAgICAgICAgIC4uLkRFRkFVTFRfV0FURVJNQVJLX0NPTkZJRyxcbiAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogYHVybCgke2JhY2tncm91bmR9KWBcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzdHlsZVN0ciA9IE9iamVjdC5rZXlzKHdhdGVybWFya1N0eWxlKS5yZWR1Y2UoKHByZSwgbmV4dCkgPT4gKChwcmUgKz0gYCR7bmV4dH06JHt3YXRlcm1hcmtTdHlsZVtuZXh0XX07YCksIHByZSksICcnKTtcbiAgICAgICAgd2F0ZXJtYXJrRGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZVN0cik7XG5cbiAgICAgICAgaWYgKCF0aGlzLndtRGl2KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgd2F0ZXJtYXJrRGl2LmNsYXNzTGlzdC5hZGQoYF92bWApO1xuICAgICAgICAgICAgdGhpcy53bURpdiA9IHdhdGVybWFya0RpdjtcbiAgICAgICAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdhdGVybWFya0RpdiwgcGFyZW50Tm9kZS5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyZWF0ZVdhdGVybWFyayQubmV4dCgnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQXR0cmlidXRlcygpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdHJlYW0gPSBuZXcgU3ViamVjdDxNdXRhdGlvblJlY29yZFtdPigpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyRmFjdG9yeSgpLmNyZWF0ZShtdXRhdGlvbnMgPT4gc3RyZWFtLm5leHQobXV0YXRpb25zKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLndtRGl2LCB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0cmVhbS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLndtRGl2KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXM/Lm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlV2F0ZXJtYXJrKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChzdHJlYW0pO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,9 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { booleanAttribute, Component, ChangeDetectionStrategy, Input, ContentChildren, NgModule } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Input, ContentChildren, NgModule } from '@angular/core';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
4
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
5
5
  import { NgIf, CommonModule } from '@angular/common';
6
6
  import { timer } from 'rxjs';
7
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
7
8
  import { getNumericSize } from 'ngx-tethys/core';
8
9
 
9
10
  const defaultFeedbackOptions = {
@@ -142,7 +143,7 @@ class ThyAction {
142
143
  this.feedbackTimer?.unsubscribe();
143
144
  }
144
145
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAction, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAction, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: "thyType", thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyActive: ["thyActive", "thyActive", booleanAttribute], thyActionActive: ["thyActionActive", "thyActionActive", booleanAttribute], thyTheme: "thyTheme", thyHoverIcon: "thyHoverIcon", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute] }, 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 }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", 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 }); }
146
147
  }
147
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAction, decorators: [{
148
149
  type: Component,
@@ -161,17 +162,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
161
162
  type: Input
162
163
  }], thyActive: [{
163
164
  type: Input,
164
- args: [{ transform: booleanAttribute }]
165
+ args: [{ transform: coerceBooleanProperty }]
165
166
  }], thyActionActive: [{
166
167
  type: Input,
167
- args: [{ transform: booleanAttribute }]
168
+ args: [{ transform: coerceBooleanProperty }]
168
169
  }], thyTheme: [{
169
170
  type: Input
170
171
  }], thyHoverIcon: [{
171
172
  type: Input
172
173
  }], thyDisabled: [{
173
174
  type: Input,
174
- args: [{ transform: booleanAttribute }]
175
+ args: [{ transform: coerceBooleanProperty }]
175
176
  }] } });
176
177
 
177
178
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-action.mjs","sources":["../../../src/action/action.component.ts","../../../src/action/action.component.html","../../../src/action/actions.component.ts","../../../src/action/action.module.ts","../../../src/action/ngx-tethys-action.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n AfterViewInit,\n OnChanges,\n ElementRef,\n Renderer2,\n SimpleChanges,\n ChangeDetectorRef,\n OnDestroy,\n booleanAttribute\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf } from '@angular/common';\nimport { Subscription, timer } from 'rxjs';\n\nexport type ThyActionType = 'primary' | 'success' | 'danger' | 'warning';\n\nexport type ThyActionFeedback = 'success' | 'error';\n\nexport interface ThyActionFeedbackOptions {\n icon?: string;\n class?: string;\n duration?: number;\n}\n\nconst defaultFeedbackOptions: Record<ThyActionFeedback, ThyActionFeedbackOptions> = {\n success: {\n icon: 'check-circle-fill',\n class: 'text-success',\n duration: 3000\n },\n error: {\n icon: 'close-circle-fill',\n class: 'text-danger',\n duration: 3000\n }\n};\n/**\n * 立即操作组件\n * @name thy-action,[thyAction]\n */\n@Component({\n selector: 'thy-action, [thyAction]',\n templateUrl: './action.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-action',\n '[class.active]': 'active',\n '[class.thy-action-hover-icon]': 'thyHoverIcon',\n '[class.thy-action-has-feedback]': '!!feedback',\n '[class.disabled]': 'thyDisabled'\n },\n standalone: true,\n imports: [NgIf, ThyIcon]\n})\nexport class ThyAction implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n icon: string;\n\n feedback: ThyActionFeedback = null;\n\n feedbackOptions: ThyActionFeedbackOptions;\n\n active = false;\n\n private type: string = 'primary';\n\n private hostRenderer = useHostRenderer();\n\n private feedbackTimer: Subscription;\n\n /**\n * 操作图标的类型\n * @type primary | success | danger | warning\n * @default primary\n */\n @Input()\n set thyType(value: ThyActionType) {\n this.setActionType(value || 'primary');\n }\n\n /**\n * 操作图标,支持传参同时也支持在投影中写 thy-icon 组件\n */\n @Input()\n set thyIcon(icon: string) {\n this.icon = icon;\n }\n\n /**\n * 操作图标,当 thyIcon 和其他指令参数名有冲突时使用 thyActionIcon\n */\n @Input()\n set thyActionIcon(icon: string) {\n this.icon = icon;\n }\n\n /**\n * 操作的图标 Active 状态,设置为 true 时会在 Item 上添加 active class\n * @default false\n */\n @Input({ transform: booleanAttribute })\n set thyActive(value: boolean) {\n this.active = value;\n }\n\n /**\n * 操作的图标 Active 状态,当 thyActive 和其他指令参数名有冲突时使用 thyActionActive\n * @default false\n */\n @Input({ transform: booleanAttribute })\n set thyActionActive(value: boolean) {\n this.active = value;\n }\n\n /**\n * 操作图标的主题\n * @type fill(背景色填充) | lite(简单文本颜色变化)\n */\n @Input() thyTheme: 'fill' | 'lite' = 'fill';\n\n /**\n * Hover 展示的图标\n */\n @Input() thyHoverIcon: string;\n\n /**\n * 是否处于禁用状态\n * @default false\n */\n @Input({ transform: booleanAttribute })\n thyDisabled: boolean;\n\n constructor(private elementRef: ElementRef<HTMLElement>, private renderer: Renderer2, private cdr: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.elementRef.nativeElement.childNodes);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes.thyType && !changes.thyType.firstChange) || (changes.thyTheme && !changes.thyTheme.firstChange)) {\n this.updateClasses();\n }\n }\n\n setMarginRight(marginRight: string) {\n this.elementRef.nativeElement.style.marginRight = marginRight;\n }\n\n /**\n * 触发成功反馈操作\n */\n success(options?: ThyActionFeedbackOptions) {\n this.setFeedback('success', options);\n }\n\n /**\n * 触发失败反馈操作\n */\n error(options?: ThyActionFeedbackOptions) {\n this.setFeedback('error', options);\n }\n\n private setFeedback(feedback: ThyActionFeedback, options: ThyActionFeedbackOptions) {\n if (this.thyDisabled) {\n return;\n }\n options = Object.assign({}, defaultFeedbackOptions[feedback], options);\n this.feedback = feedback;\n this.feedbackOptions = options;\n this.cdr.markForCheck();\n if (options.duration) {\n if (this.feedbackTimer) {\n this.feedbackTimer.unsubscribe();\n }\n this.feedbackTimer = timer(options.duration).subscribe(() => {\n this.feedback = null;\n this.feedbackOptions = null;\n this.cdr.markForCheck();\n });\n }\n }\n\n private wrapSpanForText(nodes: NodeList): void {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = this.renderer.createElement('span');\n const parent = this.renderer.parentNode(node);\n // this.renderer.addClass(span, 'thy-action-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n\n private setActionType(value: ThyActionType) {\n this.type = value;\n }\n\n private updateClasses() {\n let classNames: string[] = [];\n classNames.push(`action-${this.type}`);\n if (this.thyTheme === 'lite') {\n classNames.push('thy-action-lite');\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n ngOnDestroy(): void {\n this.feedbackTimer?.unsubscribe();\n }\n}\n","<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","import {\n Component,\n OnInit,\n OnChanges,\n ChangeDetectionStrategy,\n Input,\n ContentChildren,\n QueryList,\n AfterContentInit,\n SimpleChanges\n} from '@angular/core';\nimport { ThySpacingSize, getNumericSize } from 'ngx-tethys/core';\nimport { ThyAction } from './action.component';\n\n/**\n * Actions 组件\n * @name thy-actions\n */\n@Component({\n selector: 'thy-actions',\n template: ` <ng-content></ng-content> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-actions'\n },\n standalone: true\n})\nexport class ThyActions implements OnInit, AfterContentInit, OnChanges {\n @ContentChildren(ThyAction) actions: QueryList<ThyAction>;\n\n /**\n * 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小\n * @type string | number\n */\n @Input() thySize: ThySpacingSize = 'md';\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thySize && !changes.thySize.firstChange && this.actions) {\n this.setActionsSize(this.actions.toArray());\n }\n }\n\n ngAfterContentInit(): void {\n this.actions.changes.subscribe((actions: ThyAction[]) => {\n this.setActionsSize(actions);\n });\n this.setActionsSize(this.actions.toArray());\n }\n\n private setActionsSize(actions: ThyAction[]) {\n actions.forEach((action: ThyAction, index) => {\n // can't set marginRight value for last item\n if (index !== actions.length - 1) {\n action.setMarginRight(getNumericSize(this.thySize, 'md') + 'px');\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyAction } from './action.component';\nimport { ThyActions } from './actions.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyAction, ThyActions],\n exports: [ThyAction, ThyActions]\n})\nexport class ThyActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-action.mjs","sources":["../../../src/action/action.component.ts","../../../src/action/action.component.html","../../../src/action/actions.component.ts","../../../src/action/action.module.ts","../../../src/action/ngx-tethys-action.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n AfterViewInit,\n OnChanges,\n ElementRef,\n Renderer2,\n SimpleChanges,\n ChangeDetectorRef,\n OnDestroy\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf } from '@angular/common';\nimport { Subscription, timer } from 'rxjs';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyActionType = 'primary' | 'success' | 'danger' | 'warning';\n\nexport type ThyActionFeedback = 'success' | 'error';\n\nexport interface ThyActionFeedbackOptions {\n icon?: string;\n class?: string;\n duration?: number;\n}\n\nconst defaultFeedbackOptions: Record<ThyActionFeedback, ThyActionFeedbackOptions> = {\n success: {\n icon: 'check-circle-fill',\n class: 'text-success',\n duration: 3000\n },\n error: {\n icon: 'close-circle-fill',\n class: 'text-danger',\n duration: 3000\n }\n};\n/**\n * 立即操作组件\n * @name thy-action,[thyAction]\n */\n@Component({\n selector: 'thy-action, [thyAction]',\n templateUrl: './action.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-action',\n '[class.active]': 'active',\n '[class.thy-action-hover-icon]': 'thyHoverIcon',\n '[class.thy-action-has-feedback]': '!!feedback',\n '[class.disabled]': 'thyDisabled'\n },\n standalone: true,\n imports: [NgIf, ThyIcon]\n})\nexport class ThyAction implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n icon: string;\n\n feedback: ThyActionFeedback = null;\n\n feedbackOptions: ThyActionFeedbackOptions;\n\n active = false;\n\n private type: string = 'primary';\n\n private hostRenderer = useHostRenderer();\n\n private feedbackTimer: Subscription;\n\n /**\n * 操作图标的类型\n * @type primary | success | danger | warning\n * @default primary\n */\n @Input()\n set thyType(value: ThyActionType) {\n this.setActionType(value || 'primary');\n }\n\n /**\n * 操作图标,支持传参同时也支持在投影中写 thy-icon 组件\n */\n @Input()\n set thyIcon(icon: string) {\n this.icon = icon;\n }\n\n /**\n * 操作图标,当 thyIcon 和其他指令参数名有冲突时使用 thyActionIcon\n */\n @Input()\n set thyActionIcon(icon: string) {\n this.icon = icon;\n }\n\n /**\n * 操作的图标 Active 状态,设置为 true 时会在 Item 上添加 active class\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyActive(value: boolean) {\n this.active = value;\n }\n\n /**\n * 操作的图标 Active 状态,当 thyActive 和其他指令参数名有冲突时使用 thyActionActive\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyActionActive(value: boolean) {\n this.active = value;\n }\n\n /**\n * 操作图标的主题\n * @type fill(背景色填充) | lite(简单文本颜色变化)\n */\n @Input() thyTheme: 'fill' | 'lite' = 'fill';\n\n /**\n * Hover 展示的图标\n */\n @Input() thyHoverIcon: string;\n\n /**\n * 是否处于禁用状态\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyDisabled: boolean;\n\n constructor(private elementRef: ElementRef<HTMLElement>, private renderer: Renderer2, private cdr: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.elementRef.nativeElement.childNodes);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes.thyType && !changes.thyType.firstChange) || (changes.thyTheme && !changes.thyTheme.firstChange)) {\n this.updateClasses();\n }\n }\n\n setMarginRight(marginRight: string) {\n this.elementRef.nativeElement.style.marginRight = marginRight;\n }\n\n /**\n * 触发成功反馈操作\n */\n success(options?: ThyActionFeedbackOptions) {\n this.setFeedback('success', options);\n }\n\n /**\n * 触发失败反馈操作\n */\n error(options?: ThyActionFeedbackOptions) {\n this.setFeedback('error', options);\n }\n\n private setFeedback(feedback: ThyActionFeedback, options: ThyActionFeedbackOptions) {\n if (this.thyDisabled) {\n return;\n }\n options = Object.assign({}, defaultFeedbackOptions[feedback], options);\n this.feedback = feedback;\n this.feedbackOptions = options;\n this.cdr.markForCheck();\n if (options.duration) {\n if (this.feedbackTimer) {\n this.feedbackTimer.unsubscribe();\n }\n this.feedbackTimer = timer(options.duration).subscribe(() => {\n this.feedback = null;\n this.feedbackOptions = null;\n this.cdr.markForCheck();\n });\n }\n }\n\n private wrapSpanForText(nodes: NodeList): void {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = this.renderer.createElement('span');\n const parent = this.renderer.parentNode(node);\n // this.renderer.addClass(span, 'thy-action-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n\n private setActionType(value: ThyActionType) {\n this.type = value;\n }\n\n private updateClasses() {\n let classNames: string[] = [];\n classNames.push(`action-${this.type}`);\n if (this.thyTheme === 'lite') {\n classNames.push('thy-action-lite');\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n ngOnDestroy(): void {\n this.feedbackTimer?.unsubscribe();\n }\n}\n","<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","import {\n Component,\n OnInit,\n OnChanges,\n ChangeDetectionStrategy,\n Input,\n ContentChildren,\n QueryList,\n AfterContentInit,\n SimpleChanges\n} from '@angular/core';\nimport { ThySpacingSize, getNumericSize } from 'ngx-tethys/core';\nimport { ThyAction } from './action.component';\n\n/**\n * Actions 组件\n * @name thy-actions\n */\n@Component({\n selector: 'thy-actions',\n template: ` <ng-content></ng-content> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-actions'\n },\n standalone: true\n})\nexport class ThyActions implements OnInit, AfterContentInit, OnChanges {\n @ContentChildren(ThyAction) actions: QueryList<ThyAction>;\n\n /**\n * 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小\n * @type string | number\n */\n @Input() thySize: ThySpacingSize = 'md';\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thySize && !changes.thySize.firstChange && this.actions) {\n this.setActionsSize(this.actions.toArray());\n }\n }\n\n ngAfterContentInit(): void {\n this.actions.changes.subscribe((actions: ThyAction[]) => {\n this.setActionsSize(actions);\n });\n this.setActionsSize(this.actions.toArray());\n }\n\n private setActionsSize(actions: ThyAction[]) {\n actions.forEach((action: ThyAction, index) => {\n // can't set marginRight value for last item\n if (index !== actions.length - 1) {\n action.setMarginRight(getNumericSize(this.thySize, 'md') + 'px');\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyAction } from './action.component';\nimport { ThyActions } from './actions.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyAction, ThyActions],\n exports: [ThyAction, ThyActions]\n})\nexport class ThyActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef, booleanAttribute, Component, ChangeDetectionStrategy, Input, ContentChild, Directive, HostBinding, NgModule } from '@angular/core';
2
+ import { TemplateRef, Component, ChangeDetectionStrategy, Input, ContentChild, Directive, HostBinding, NgModule } from '@angular/core';
3
3
  import { NgIf, NgTemplateOutlet, CommonModule } from '@angular/common';
4
- import { isString } from 'ngx-tethys/util';
4
+ import { isString, coerceBooleanProperty } from 'ngx-tethys/util';
5
5
  import { useHostRenderer } from '@tethys/cdk/dom';
6
6
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
7
7
 
@@ -99,7 +99,7 @@ class ThyAlert {
99
99
  this.hostRenderer.updateClass([`thy-alert-${theme}`, `thy-alert-${theme}-${type}`]);
100
100
  }
101
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAlert, isStandalone: true, selector: "thy-alert", inputs: { thyType: "thyType", thyTheme: "thyTheme", thyMessage: "thyMessage", thyIcon: "thyIcon", thyCloseable: ["thyCloseable", "thyCloseable", booleanAttribute] }, 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 }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", 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 }); }
103
103
  }
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAlert, decorators: [{
105
105
  type: Component,
@@ -117,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
117
117
  type: Input
118
118
  }], thyCloseable: [{
119
119
  type: Input,
120
- args: [{ transform: booleanAttribute }]
120
+ args: [{ transform: coerceBooleanProperty }]
121
121
  }], alertOperation: [{
122
122
  type: ContentChild,
123
123
  args: ['operation']
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-alert.mjs","sources":["../../../src/alert/alert.component.ts","../../../src/alert/alert.component.html","../../../src/alert/alert.directive.ts","../../../src/alert/alert.module.ts","../../../src/alert/ngx-tethys-alert.ts"],"sourcesContent":["import {\n Component,\n Input,\n OnInit,\n ContentChild,\n TemplateRef,\n OnChanges,\n ChangeDetectionStrategy,\n SimpleChanges,\n booleanAttribute\n} from '@angular/core';\nimport { isString } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\nconst weakTypes = ['primary-weak', 'success-weak', 'warning-weak', 'danger-weak'];\n\ntype ThyAlertType =\n | 'success'\n | 'warning'\n | 'danger'\n | 'info'\n | 'primary'\n | 'primary-weak'\n | 'success-weak'\n | 'warning-weak'\n | 'danger-weak';\n\nexport type ThyAlertTheme = 'fill' | 'bordered' | 'naked';\n\nconst typeIconsMap: Record<string, string> = {\n success: 'check-circle-fill',\n warning: 'waring-fill',\n danger: 'close-circle-fill',\n info: 'minus-circle-fill',\n primary: 'info-circle-fill',\n 'primary-weak': 'info-circle-fill',\n 'success-weak': 'check-circle-fill',\n 'warning-weak': 'waring-fill',\n 'danger-weak': 'close-circle-fill'\n};\n\n/**\n * 警告提示,展现需要关注的信息\n * @name thy-alert\n * @order 10\n */\n@Component({\n selector: 'thy-alert',\n templateUrl: './alert.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-alert',\n '[class.thy-alert-hidden]': 'hidden'\n },\n standalone: true,\n imports: [NgIf, ThyIcon, NgTemplateOutlet]\n})\nexport class ThyAlert implements OnInit, OnChanges {\n private hidden = false;\n\n private showIcon = true;\n\n private icon: string;\n\n private type: ThyAlertType = 'info';\n\n private hostRenderer = useHostRenderer();\n\n public theme: ThyAlertTheme = 'fill';\n\n messageTemplate: TemplateRef<HTMLElement>;\n\n messageText: string;\n\n /**\n * 指定警告提示的类型\n * @type success | warning | danger | info | primary | primary-weak | success-weak | warning-weak | danger-weak\n * @default info\n */\n @Input() set thyType(value: ThyAlertType) {\n this.type = value;\n }\n\n /**\n * 指定警告提示的主题\n * @type fill | bordered | naked\n * @default fill\n */\n @Input() set thyTheme(value: ThyAlertTheme) {\n this.theme = value;\n }\n\n /**\n * 显示警告提示的内容\n */\n @Input() set thyMessage(value: string | TemplateRef<HTMLElement>) {\n if (value instanceof TemplateRef) {\n this.messageTemplate = value;\n } else {\n this.messageText = value;\n }\n }\n\n /**\n * 显示自定义图标,可传 true/false 控制是否显示图标,或者传字符串去指定图标名称\n */\n @Input()\n set thyIcon(value: boolean | string) {\n if (value) {\n this.showIcon = true;\n this.icon = isString(value) ? value.toString() : null;\n } else {\n this.showIcon = false;\n }\n }\n\n get thyIcon() {\n if (this.showIcon) {\n return this.icon || typeIconsMap[this.type];\n } else {\n return null;\n }\n }\n\n /**\n * 是否显示关闭警告框按钮,默认不显示\n * @default false\n */\n @Input({ transform: booleanAttribute }) thyCloseable: boolean;\n\n /**\n * 警告框自定义操作\n * @type TemplateRef\n */\n @ContentChild('operation') alertOperation: TemplateRef<any>;\n\n constructor() {}\n\n ngOnInit() {\n this.updateClass();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes.thyTheme && !changes.thyTheme.firstChange) || (changes.thyType && !changes.thyType.firstChange)) {\n this.updateClass();\n }\n }\n\n closeAlert() {\n this.hidden = true;\n }\n\n private updateClass() {\n // 兼容 'primary-weak', 'success-weak', 'warning-weak', 'danger-weak' types\n let theme = this.theme;\n let type = this.type;\n if (weakTypes.includes(this.type)) {\n theme = 'bordered';\n type = this.type.split('-')[0] as ThyAlertType;\n }\n this.hostRenderer.updateClass([`thy-alert-${theme}`, `thy-alert-${theme}-${type}`]);\n }\n}\n","<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: </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","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * 操作按钮的样式指令,可为警告内容添加自定义操作按钮样式\n * @name thyAlertActionItem\n * @order 20\n */\n@Directive({\n selector: '[thyAlertActionItem]',\n standalone: true\n})\nexport class ThyAlertActionItemDirective {\n @HostBinding('class.thy-alert-action') class = true;\n\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyAlert } from './alert.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyAlertActionItemDirective } from './alert.directive';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyAlert, ThyAlertActionItemDirective],\n exports: [ThyAlert, ThyAlertActionItemDirective]\n})\nexport class ThyAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-alert.mjs","sources":["../../../src/alert/alert.component.ts","../../../src/alert/alert.component.html","../../../src/alert/alert.directive.ts","../../../src/alert/alert.module.ts","../../../src/alert/ngx-tethys-alert.ts"],"sourcesContent":["import { Component, Input, OnInit, ContentChild, TemplateRef, OnChanges, ChangeDetectionStrategy, SimpleChanges } from '@angular/core';\nimport { coerceBooleanProperty, isString } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\nconst weakTypes = ['primary-weak', 'success-weak', 'warning-weak', 'danger-weak'];\n\ntype ThyAlertType =\n | 'success'\n | 'warning'\n | 'danger'\n | 'info'\n | 'primary'\n | 'primary-weak'\n | 'success-weak'\n | 'warning-weak'\n | 'danger-weak';\n\nexport type ThyAlertTheme = 'fill' | 'bordered' | 'naked';\n\nconst typeIconsMap: Record<string, string> = {\n success: 'check-circle-fill',\n warning: 'waring-fill',\n danger: 'close-circle-fill',\n info: 'minus-circle-fill',\n primary: 'info-circle-fill',\n 'primary-weak': 'info-circle-fill',\n 'success-weak': 'check-circle-fill',\n 'warning-weak': 'waring-fill',\n 'danger-weak': 'close-circle-fill'\n};\n\n/**\n * 警告提示,展现需要关注的信息\n * @name thy-alert\n * @order 10\n */\n@Component({\n selector: 'thy-alert',\n templateUrl: './alert.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-alert',\n '[class.thy-alert-hidden]': 'hidden'\n },\n standalone: true,\n imports: [NgIf, ThyIcon, NgTemplateOutlet]\n})\nexport class ThyAlert implements OnInit, OnChanges {\n private hidden = false;\n\n private showIcon = true;\n\n private icon: string;\n\n private type: ThyAlertType = 'info';\n\n private hostRenderer = useHostRenderer();\n\n public theme: ThyAlertTheme = 'fill';\n\n messageTemplate: TemplateRef<HTMLElement>;\n\n messageText: string;\n\n /**\n * 指定警告提示的类型\n * @type success | warning | danger | info | primary | primary-weak | success-weak | warning-weak | danger-weak\n * @default info\n */\n @Input() set thyType(value: ThyAlertType) {\n this.type = value;\n }\n\n /**\n * 指定警告提示的主题\n * @type fill | bordered | naked\n * @default fill\n */\n @Input() set thyTheme(value: ThyAlertTheme) {\n this.theme = value;\n }\n\n /**\n * 显示警告提示的内容\n */\n @Input() set thyMessage(value: string | TemplateRef<HTMLElement>) {\n if (value instanceof TemplateRef) {\n this.messageTemplate = value;\n } else {\n this.messageText = value;\n }\n }\n\n /**\n * 显示自定义图标,可传 true/false 控制是否显示图标,或者传字符串去指定图标名称\n */\n @Input()\n set thyIcon(value: boolean | string) {\n if (value) {\n this.showIcon = true;\n this.icon = isString(value) ? value.toString() : null;\n } else {\n this.showIcon = false;\n }\n }\n\n get thyIcon() {\n if (this.showIcon) {\n return this.icon || typeIconsMap[this.type];\n } else {\n return null;\n }\n }\n\n /**\n * 是否显示关闭警告框按钮,默认不显示\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyCloseable: boolean;\n\n /**\n * 警告框自定义操作\n * @type TemplateRef\n */\n @ContentChild('operation') alertOperation: TemplateRef<any>;\n\n constructor() {}\n\n ngOnInit() {\n this.updateClass();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes.thyTheme && !changes.thyTheme.firstChange) || (changes.thyType && !changes.thyType.firstChange)) {\n this.updateClass();\n }\n }\n\n closeAlert() {\n this.hidden = true;\n }\n\n private updateClass() {\n // 兼容 'primary-weak', 'success-weak', 'warning-weak', 'danger-weak' types\n let theme = this.theme;\n let type = this.type;\n if (weakTypes.includes(this.type)) {\n theme = 'bordered';\n type = this.type.split('-')[0] as ThyAlertType;\n }\n this.hostRenderer.updateClass([`thy-alert-${theme}`, `thy-alert-${theme}-${type}`]);\n }\n}\n","<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: </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","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * 操作按钮的样式指令,可为警告内容添加自定义操作按钮样式\n * @name thyAlertActionItem\n * @order 20\n */\n@Directive({\n selector: '[thyAlertActionItem]',\n standalone: true\n})\nexport class ThyAlertActionItemDirective {\n @HostBinding('class.thy-alert-action') class = true;\n\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyAlert } from './alert.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyAlertActionItemDirective } from './alert.directive';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyAlert, ThyAlertActionItemDirective],\n exports: [ThyAlert, ThyAlertActionItemDirective]\n})\nexport class ThyAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, booleanAttribute, numberAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, Input, Output, TemplateRef, ContentChild, NgModule } from '@angular/core';
2
+ import { EventEmitter, numberAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, Input, Output, TemplateRef, ContentChild, NgModule } from '@angular/core';
3
3
  import { DOCUMENT, NgIf, NgTemplateOutlet, NgStyle, NgClass, CommonModule } from '@angular/common';
4
4
  import * as i1 from '@angular/cdk/platform';
5
5
  import { PlatformModule } from '@angular/cdk/platform';
@@ -7,7 +7,7 @@ import { Subject, fromEvent } from 'rxjs';
7
7
  import { throttleTime, takeUntil } from 'rxjs/operators';
8
8
  import { ThyAffix, ThyAffixModule } from 'ngx-tethys/affix';
9
9
  import * as i2 from 'ngx-tethys/core';
10
- import { getOffset } from 'ngx-tethys/util';
10
+ import { getOffset, coerceBooleanProperty } from 'ngx-tethys/util';
11
11
  import { useHostRenderer } from '@tethys/cdk/dom';
12
12
 
13
13
  const sharpMatcherRegx = /#([^#]+)$/;
@@ -190,7 +190,7 @@ class ThyAnchor {
190
190
  }
191
191
  }
192
192
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAnchor, deps: [{ token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i1.Platform }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i2.ThyScrollService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAnchor, isStandalone: true, selector: "thy-anchor", inputs: { thyAffix: ["thyAffix", "thyAffix", booleanAttribute], thyBounds: ["thyBounds", "thyBounds", numberAttribute], thyOffsetTop: ["thyOffsetTop", "thyOffsetTop", numberAttribute], thyContainer: "thyContainer", thyDirection: "thyDirection" }, outputs: { thyClick: "thyClick", thyScroll: "thyScroll" }, viewQueries: [{ propertyName: "ink", first: true, predicate: ["ink"], descendants: true }], exportAs: ["thyAnchor"], usesOnChanges: true, ngImport: i0, template: `
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAnchor, isStandalone: true, selector: "thy-anchor", inputs: { thyAffix: ["thyAffix", "thyAffix", coerceBooleanProperty], thyBounds: ["thyBounds", "thyBounds", numberAttribute], thyOffsetTop: ["thyOffsetTop", "thyOffsetTop", numberAttribute], thyContainer: "thyContainer", thyDirection: "thyDirection" }, outputs: { thyClick: "thyClick", thyScroll: "thyScroll" }, viewQueries: [{ propertyName: "ink", first: true, predicate: ["ink"], descendants: true }], exportAs: ["thyAnchor"], usesOnChanges: true, ngImport: i0, template: `
194
194
  <thy-affix *ngIf="thyAffix; else content" [thyOffsetTop]="thyOffsetTop" [thyContainer]="container">
195
195
  <ng-template [ngTemplateOutlet]="content"></ng-template>
196
196
  </thy-affix>
@@ -246,7 +246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
246
246
  args: ['ink']
247
247
  }], thyAffix: [{
248
248
  type: Input,
249
- args: [{ transform: booleanAttribute }]
249
+ args: [{ transform: coerceBooleanProperty }]
250
250
  }], thyBounds: [{
251
251
  type: Input,
252
252
  args: [{ transform: numberAttribute }]
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-anchor.mjs","sources":["../../../src/anchor/anchor.component.ts","../../../src/anchor/anchor-link.component.ts","../../../src/anchor/anchor.module.ts","../../../src/anchor/ngx-tethys-anchor.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute\n} from '@angular/core';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil, throttleTime } from 'rxjs/operators';\n\nimport { DOCUMENT, NgClass, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { ThyAffix } from 'ngx-tethys/affix';\nimport { ThyScrollService } from 'ngx-tethys/core';\nimport { getOffset } from 'ngx-tethys/util';\nimport { ThyAnchorLink } from './anchor-link.component';\n\ninterface Section {\n linkComponent: ThyAnchorLink;\n top: number;\n}\n\nconst sharpMatcherRegx = /#([^#]+)$/;\n\n/**\n * 锚点组件\n * @name thy-anchor\n */\n@Component({\n selector: 'thy-anchor',\n exportAs: 'thyAnchor',\n preserveWhitespaces: false,\n template: `\n <thy-affix *ngIf=\"thyAffix; else content\" [thyOffsetTop]=\"thyOffsetTop\" [thyContainer]=\"container\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </thy-affix>\n <ng-template #content>\n <div\n class=\"thy-anchor-wrapper\"\n [ngClass]=\"{ 'thy-anchor-wrapper-horizontal': thyDirection === 'horizontal' }\"\n [ngStyle]=\"wrapperStyle\">\n <div class=\"thy-anchor\">\n <div class=\"thy-anchor-ink\">\n <div class=\"thy-anchor-ink-full\" #ink></div>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf, ThyAffix, NgTemplateOutlet, NgStyle, NgClass]\n})\nexport class ThyAnchor implements OnDestroy, AfterViewInit, OnChanges {\n @ViewChild('ink') private ink!: ElementRef;\n\n /**\n * 固定模式\n */\n @Input({ transform: booleanAttribute }) thyAffix = true;\n\n /**\n * 锚点区域边界,单位:px\n */\n @Input({ transform: numberAttribute })\n thyBounds = 5;\n\n /**\n * 缓冲的偏移量阈值\n */\n @Input({ transform: numberAttribute })\n thyOffsetTop?: number = undefined;\n\n /**\n * 指定滚动的容器\n * @type string | HTMLElement\n */\n @Input() thyContainer?: string | HTMLElement;\n\n /**\n * 设置导航方向\n * @type 'vertical' | 'horizontal'\n */\n @Input() thyDirection: 'vertical' | 'horizontal' = 'vertical';\n\n /**\n * 点击项触发\n */\n @Output() readonly thyClick = new EventEmitter<ThyAnchorLink>();\n\n /**\n * 滚动到某锚点时触发\n */\n @Output() readonly thyScroll = new EventEmitter<ThyAnchorLink>();\n\n visible = false;\n\n wrapperStyle = { 'max-height': '100vh' };\n\n container?: HTMLElement | Window;\n\n private links: ThyAnchorLink[] = [];\n\n private animating = false;\n\n private destroy$ = new Subject<void>();\n\n private handleScrollTimeoutID = -1;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private cdr: ChangeDetectorRef,\n private platform: Platform,\n private zone: NgZone,\n private renderer: Renderer2,\n private scrollService: ThyScrollService,\n private elementRef: ElementRef\n ) {}\n\n registerLink(link: ThyAnchorLink): void {\n this.links.push(link);\n }\n\n unregisterLink(link: ThyAnchorLink): void {\n this.links.splice(this.links.indexOf(link), 1);\n }\n\n private getContainer(): HTMLElement | Window {\n return this.container || window;\n }\n\n ngAfterViewInit(): void {\n this.warningPrompt();\n this.registerScrollEvent();\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.handleScrollTimeoutID);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private warningPrompt() {\n if (this.thyDirection === 'horizontal') {\n const hasChildren = this.links.some(link =>\n Array.from(link?.elementRef?.nativeElement?.childNodes)?.some((item: HTMLElement) =>\n item?.className.includes('thy-anchor-link')\n )\n );\n if (hasChildren) {\n console.warn(\"Anchor link nesting is not supported when 'Anchor' direction is horizontal.\");\n }\n }\n }\n\n private registerScrollEvent(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.destroy$.next();\n this.zone.runOutsideAngular(() => {\n fromEvent(this.getContainer(), 'scroll', { passive: true })\n .pipe(throttleTime(50), takeUntil(this.destroy$))\n .subscribe(() => this.handleScroll());\n });\n // Browser would maintain the scrolling position when refreshing.\n // So we have to delay calculation in avoid of getting a incorrect result.\n this.handleScrollTimeoutID = setTimeout(() => this.handleScroll());\n }\n\n handleScroll(): void {\n if (typeof document === 'undefined' || this.animating) {\n return;\n }\n const container: HTMLElement = this.container instanceof HTMLElement ? this.container : this.document;\n\n const sections: Section[] = [];\n const scope = (this.thyOffsetTop || 0) + this.thyBounds;\n this.links.forEach(linkComponent => {\n const sharpLinkMatch = sharpMatcherRegx.exec(linkComponent.thyHref.toString());\n if (!sharpLinkMatch) {\n return;\n }\n const target = container.querySelector(`#${sharpLinkMatch[1]}`) as HTMLElement;\n if (target) {\n const top = getOffset(target, this.getContainer()).top;\n if (top < scope) {\n sections.push({\n top,\n linkComponent\n });\n }\n }\n });\n\n this.visible = !!sections.length;\n if (!this.visible) {\n this.clearActive();\n this.cdr.detectChanges();\n } else {\n const maxSection = sections.reduce((prev, curr) => (curr.top > prev.top ? curr : prev));\n this.handleActive(maxSection.linkComponent);\n }\n this.setVisible();\n }\n\n private clearActive(): void {\n this.links.forEach(i => {\n i.unsetActive();\n });\n }\n\n private handleActive(linkComponent: ThyAnchorLink): void {\n this.clearActive();\n linkComponent.setActive();\n const linkNode = linkComponent.getLinkTitleElement();\n const horizontalAnchor = this.thyDirection === 'horizontal';\n\n this.ink.nativeElement.style.top = horizontalAnchor ? '' : `${linkNode.offsetTop}px`;\n this.ink.nativeElement.style.height = horizontalAnchor ? '' : `${linkNode.clientHeight}px`;\n this.ink.nativeElement.style.left = horizontalAnchor ? `${linkNode.offsetLeft}px` : '';\n this.ink.nativeElement.style.width = horizontalAnchor ? `${linkNode.clientWidth}px` : '';\n this.visible = true;\n this.setVisible();\n this.thyScroll.emit(linkComponent);\n }\n\n private setVisible(): void {\n const visible = this.visible;\n const visibleClassname = 'visible';\n if (this.ink) {\n if (visible) {\n this.renderer.addClass(this.ink.nativeElement, visibleClassname);\n } else {\n this.renderer.removeClass(this.ink.nativeElement, visibleClassname);\n }\n }\n }\n\n handleScrollTo(linkComponent: ThyAnchorLink): void {\n const container: HTMLElement = this.container instanceof HTMLElement ? this.container : this.document;\n const linkElement: HTMLElement = container.querySelector(linkComponent.thyHref);\n if (!linkElement) {\n return;\n }\n\n this.animating = true;\n const containerScrollTop = this.scrollService.getScroll(this.getContainer());\n const elementOffsetTop = getOffset(linkElement, this.getContainer()).top;\n const targetScrollTop = containerScrollTop + elementOffsetTop - (this.thyOffsetTop || 0);\n this.scrollService.scrollTo(this.getContainer(), targetScrollTop, undefined, () => {\n this.animating = false;\n });\n this.handleActive(linkComponent);\n this.thyClick.emit(linkComponent);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyOffsetTop, thyContainer } = changes;\n if (thyOffsetTop) {\n this.wrapperStyle = {\n 'max-height': `calc(100vh - ${this.thyOffsetTop}px)`\n };\n }\n if (thyContainer && this.thyContainer) {\n const container = this.thyContainer;\n this.container = typeof container === 'string' ? this.document.querySelector(container) : container;\n this.registerScrollEvent();\n }\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ThyAnchor } from './anchor.component';\nimport { NgIf } from '@angular/common';\n\n/**\n * 锚点链接组件,可供锚点跳转\n * @name thy-anchor-link,thyAnchorLink\n */\n@Component({\n selector: 'thy-link,thy-anchor-link',\n exportAs: 'thyLink,thyAnchorLink',\n preserveWhitespaces: false,\n template: `\n <a #linkTitle (click)=\"goToClick($event)\" href=\"{{ thyHref }}\" class=\"thy-anchor-link-title\" title=\"{{ title }}\">\n <span *ngIf=\"title; else titleTemplate || thyTemplate\">{{ title }}</span>\n </a>\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyAnchorLink implements OnInit, OnDestroy {\n title: string | null = '';\n\n titleTemplate?: TemplateRef<any>;\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 锚点链接\n */\n @Input() thyHref = '#';\n\n /**\n * 文字内容\n */\n @Input()\n set thyTitle(value: string | TemplateRef<void>) {\n if (value instanceof TemplateRef) {\n this.title = null;\n this.titleTemplate = value;\n } else {\n this.title = value;\n }\n }\n\n @ContentChild('thyTemplate') thyTemplate!: TemplateRef<void>;\n\n @ViewChild('linkTitle', { static: true }) linkTitle!: ElementRef<HTMLAnchorElement>;\n\n constructor(public elementRef: ElementRef, private anchorComponent: ThyAnchor, private platform: Platform) {\n this.hostRenderer.addClass('thy-anchor-link');\n if (elementRef.nativeElement.tagName.toLowerCase() === 'thy-link') {\n console.warn(`'thy-link' and 'thyLink' are deprecated, please use 'thy-anchor-link' and 'thyAnchorLink' instead.`);\n }\n }\n\n ngOnInit(): void {\n this.anchorComponent.registerLink(this);\n }\n\n getLinkTitleElement(): HTMLAnchorElement {\n return this.linkTitle.nativeElement;\n }\n\n setActive(): void {\n this.hostRenderer.addClass('thy-anchor-link-active');\n }\n\n unsetActive(): void {\n this.hostRenderer.removeClass('thy-anchor-link-active');\n }\n\n goToClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n if (this.platform.isBrowser) {\n this.anchorComponent.handleScrollTo(this);\n }\n }\n\n ngOnDestroy(): void {\n this.anchorComponent.unregisterLink(this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { ThyAnchor } from './anchor.component';\nimport { ThyAnchorLink } from './anchor-link.component';\nimport { ThyAffixModule } from 'ngx-tethys/affix';\n\n@NgModule({\n exports: [ThyAnchor, ThyAnchorLink],\n imports: [CommonModule, PlatformModule, ThyAffixModule, ThyAnchor, ThyAnchorLink]\n})\nexport class ThyAnchorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyAnchor","i2"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-anchor.mjs","sources":["../../../src/anchor/anchor.component.ts","../../../src/anchor/anchor-link.component.ts","../../../src/anchor/anchor.module.ts","../../../src/anchor/ngx-tethys-anchor.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n numberAttribute\n} from '@angular/core';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil, throttleTime } from 'rxjs/operators';\n\nimport { DOCUMENT, NgClass, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { ThyAffix } from 'ngx-tethys/affix';\nimport { ThyScrollService } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, getOffset } from 'ngx-tethys/util';\nimport { ThyAnchorLink } from './anchor-link.component';\n\ninterface Section {\n linkComponent: ThyAnchorLink;\n top: number;\n}\n\nconst sharpMatcherRegx = /#([^#]+)$/;\n\n/**\n * 锚点组件\n * @name thy-anchor\n */\n@Component({\n selector: 'thy-anchor',\n exportAs: 'thyAnchor',\n preserveWhitespaces: false,\n template: `\n <thy-affix *ngIf=\"thyAffix; else content\" [thyOffsetTop]=\"thyOffsetTop\" [thyContainer]=\"container\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </thy-affix>\n <ng-template #content>\n <div\n class=\"thy-anchor-wrapper\"\n [ngClass]=\"{ 'thy-anchor-wrapper-horizontal': thyDirection === 'horizontal' }\"\n [ngStyle]=\"wrapperStyle\">\n <div class=\"thy-anchor\">\n <div class=\"thy-anchor-ink\">\n <div class=\"thy-anchor-ink-full\" #ink></div>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf, ThyAffix, NgTemplateOutlet, NgStyle, NgClass]\n})\nexport class ThyAnchor implements OnDestroy, AfterViewInit, OnChanges {\n @ViewChild('ink') private ink!: ElementRef;\n\n /**\n * 固定模式\n */\n @Input({ transform: coerceBooleanProperty }) thyAffix = true;\n\n /**\n * 锚点区域边界,单位:px\n */\n @Input({ transform: numberAttribute })\n thyBounds = 5;\n\n /**\n * 缓冲的偏移量阈值\n */\n @Input({ transform: numberAttribute })\n thyOffsetTop?: number = undefined;\n\n /**\n * 指定滚动的容器\n * @type string | HTMLElement\n */\n @Input() thyContainer?: string | HTMLElement;\n\n /**\n * 设置导航方向\n * @type 'vertical' | 'horizontal'\n */\n @Input() thyDirection: 'vertical' | 'horizontal' = 'vertical';\n\n /**\n * 点击项触发\n */\n @Output() readonly thyClick = new EventEmitter<ThyAnchorLink>();\n\n /**\n * 滚动到某锚点时触发\n */\n @Output() readonly thyScroll = new EventEmitter<ThyAnchorLink>();\n\n visible = false;\n\n wrapperStyle = { 'max-height': '100vh' };\n\n container?: HTMLElement | Window;\n\n private links: ThyAnchorLink[] = [];\n\n private animating = false;\n\n private destroy$ = new Subject<void>();\n\n private handleScrollTimeoutID = -1;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private cdr: ChangeDetectorRef,\n private platform: Platform,\n private zone: NgZone,\n private renderer: Renderer2,\n private scrollService: ThyScrollService,\n private elementRef: ElementRef\n ) {}\n\n registerLink(link: ThyAnchorLink): void {\n this.links.push(link);\n }\n\n unregisterLink(link: ThyAnchorLink): void {\n this.links.splice(this.links.indexOf(link), 1);\n }\n\n private getContainer(): HTMLElement | Window {\n return this.container || window;\n }\n\n ngAfterViewInit(): void {\n this.warningPrompt();\n this.registerScrollEvent();\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.handleScrollTimeoutID);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private warningPrompt() {\n if (this.thyDirection === 'horizontal') {\n const hasChildren = this.links.some(link =>\n Array.from(link?.elementRef?.nativeElement?.childNodes)?.some((item: HTMLElement) =>\n item?.className.includes('thy-anchor-link')\n )\n );\n if (hasChildren) {\n console.warn(\"Anchor link nesting is not supported when 'Anchor' direction is horizontal.\");\n }\n }\n }\n\n private registerScrollEvent(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.destroy$.next();\n this.zone.runOutsideAngular(() => {\n fromEvent(this.getContainer(), 'scroll', { passive: true })\n .pipe(throttleTime(50), takeUntil(this.destroy$))\n .subscribe(() => this.handleScroll());\n });\n // Browser would maintain the scrolling position when refreshing.\n // So we have to delay calculation in avoid of getting a incorrect result.\n this.handleScrollTimeoutID = setTimeout(() => this.handleScroll());\n }\n\n handleScroll(): void {\n if (typeof document === 'undefined' || this.animating) {\n return;\n }\n const container: HTMLElement = this.container instanceof HTMLElement ? this.container : this.document;\n\n const sections: Section[] = [];\n const scope = (this.thyOffsetTop || 0) + this.thyBounds;\n this.links.forEach(linkComponent => {\n const sharpLinkMatch = sharpMatcherRegx.exec(linkComponent.thyHref.toString());\n if (!sharpLinkMatch) {\n return;\n }\n const target = container.querySelector(`#${sharpLinkMatch[1]}`) as HTMLElement;\n if (target) {\n const top = getOffset(target, this.getContainer()).top;\n if (top < scope) {\n sections.push({\n top,\n linkComponent\n });\n }\n }\n });\n\n this.visible = !!sections.length;\n if (!this.visible) {\n this.clearActive();\n this.cdr.detectChanges();\n } else {\n const maxSection = sections.reduce((prev, curr) => (curr.top > prev.top ? curr : prev));\n this.handleActive(maxSection.linkComponent);\n }\n this.setVisible();\n }\n\n private clearActive(): void {\n this.links.forEach(i => {\n i.unsetActive();\n });\n }\n\n private handleActive(linkComponent: ThyAnchorLink): void {\n this.clearActive();\n linkComponent.setActive();\n const linkNode = linkComponent.getLinkTitleElement();\n const horizontalAnchor = this.thyDirection === 'horizontal';\n\n this.ink.nativeElement.style.top = horizontalAnchor ? '' : `${linkNode.offsetTop}px`;\n this.ink.nativeElement.style.height = horizontalAnchor ? '' : `${linkNode.clientHeight}px`;\n this.ink.nativeElement.style.left = horizontalAnchor ? `${linkNode.offsetLeft}px` : '';\n this.ink.nativeElement.style.width = horizontalAnchor ? `${linkNode.clientWidth}px` : '';\n this.visible = true;\n this.setVisible();\n this.thyScroll.emit(linkComponent);\n }\n\n private setVisible(): void {\n const visible = this.visible;\n const visibleClassname = 'visible';\n if (this.ink) {\n if (visible) {\n this.renderer.addClass(this.ink.nativeElement, visibleClassname);\n } else {\n this.renderer.removeClass(this.ink.nativeElement, visibleClassname);\n }\n }\n }\n\n handleScrollTo(linkComponent: ThyAnchorLink): void {\n const container: HTMLElement = this.container instanceof HTMLElement ? this.container : this.document;\n const linkElement: HTMLElement = container.querySelector(linkComponent.thyHref);\n if (!linkElement) {\n return;\n }\n\n this.animating = true;\n const containerScrollTop = this.scrollService.getScroll(this.getContainer());\n const elementOffsetTop = getOffset(linkElement, this.getContainer()).top;\n const targetScrollTop = containerScrollTop + elementOffsetTop - (this.thyOffsetTop || 0);\n this.scrollService.scrollTo(this.getContainer(), targetScrollTop, undefined, () => {\n this.animating = false;\n });\n this.handleActive(linkComponent);\n this.thyClick.emit(linkComponent);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyOffsetTop, thyContainer } = changes;\n if (thyOffsetTop) {\n this.wrapperStyle = {\n 'max-height': `calc(100vh - ${this.thyOffsetTop}px)`\n };\n }\n if (thyContainer && this.thyContainer) {\n const container = this.thyContainer;\n this.container = typeof container === 'string' ? this.document.querySelector(container) : container;\n this.registerScrollEvent();\n }\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ThyAnchor } from './anchor.component';\nimport { NgIf } from '@angular/common';\n\n/**\n * 锚点链接组件,可供锚点跳转\n * @name thy-anchor-link,thyAnchorLink\n */\n@Component({\n selector: 'thy-link,thy-anchor-link',\n exportAs: 'thyLink,thyAnchorLink',\n preserveWhitespaces: false,\n template: `\n <a #linkTitle (click)=\"goToClick($event)\" href=\"{{ thyHref }}\" class=\"thy-anchor-link-title\" title=\"{{ title }}\">\n <span *ngIf=\"title; else titleTemplate || thyTemplate\">{{ title }}</span>\n </a>\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyAnchorLink implements OnInit, OnDestroy {\n title: string | null = '';\n\n titleTemplate?: TemplateRef<any>;\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 锚点链接\n */\n @Input() thyHref = '#';\n\n /**\n * 文字内容\n */\n @Input()\n set thyTitle(value: string | TemplateRef<void>) {\n if (value instanceof TemplateRef) {\n this.title = null;\n this.titleTemplate = value;\n } else {\n this.title = value;\n }\n }\n\n @ContentChild('thyTemplate') thyTemplate!: TemplateRef<void>;\n\n @ViewChild('linkTitle', { static: true }) linkTitle!: ElementRef<HTMLAnchorElement>;\n\n constructor(public elementRef: ElementRef, private anchorComponent: ThyAnchor, private platform: Platform) {\n this.hostRenderer.addClass('thy-anchor-link');\n if (elementRef.nativeElement.tagName.toLowerCase() === 'thy-link') {\n console.warn(`'thy-link' and 'thyLink' are deprecated, please use 'thy-anchor-link' and 'thyAnchorLink' instead.`);\n }\n }\n\n ngOnInit(): void {\n this.anchorComponent.registerLink(this);\n }\n\n getLinkTitleElement(): HTMLAnchorElement {\n return this.linkTitle.nativeElement;\n }\n\n setActive(): void {\n this.hostRenderer.addClass('thy-anchor-link-active');\n }\n\n unsetActive(): void {\n this.hostRenderer.removeClass('thy-anchor-link-active');\n }\n\n goToClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n if (this.platform.isBrowser) {\n this.anchorComponent.handleScrollTo(this);\n }\n }\n\n ngOnDestroy(): void {\n this.anchorComponent.unregisterLink(this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { ThyAnchor } from './anchor.component';\nimport { ThyAnchorLink } from './anchor-link.component';\nimport { ThyAffixModule } from 'ngx-tethys/affix';\n\n@NgModule({\n exports: [ThyAnchor, ThyAnchorLink],\n imports: [CommonModule, PlatformModule, ThyAffixModule, ThyAnchor, ThyAnchorLink]\n})\nexport class ThyAnchorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyAnchor","i2"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { FlexibleConnectedPositionStrategy, OverlayModule } from '@angular/cdk/o
3
3
  import { PortalModule, ComponentPortal } from '@angular/cdk/portal';
4
4
  import { NgClass, NgIf, DOCUMENT, CommonModule } from '@angular/common';
5
5
  import * as i0 from '@angular/core';
6
- import { EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, ViewChild, ContentChildren, Input, Output, InjectionToken, Inject, Injector, Injectable, numberAttribute, Directive, Optional, HostBinding, NgModule } from '@angular/core';
6
+ import { EventEmitter, Component, ChangeDetectionStrategy, ViewChild, ContentChildren, Input, Output, InjectionToken, Inject, Injector, Injectable, numberAttribute, Directive, Optional, HostBinding, NgModule } from '@angular/core';
7
7
  import { FormsModule } from '@angular/forms';
8
8
  import { ThyEmpty, ThyEmptyModule } from 'ngx-tethys/empty';
9
9
  import { ThyIconModule } from 'ngx-tethys/icon';
@@ -14,6 +14,7 @@ import { Subject, defer, merge, timer, of, fromEvent } from 'rxjs';
14
14
  import { take, switchMap, startWith, takeUntil, filter, map, delay } from 'rxjs/operators';
15
15
  import { SelectionModel } from '@angular/cdk/collections';
16
16
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
17
+ import { coerceBooleanProperty, warnDeprecation, ESCAPE, ENTER, UP_ARROW, DOWN_ARROW, TAB } from 'ngx-tethys/util';
17
18
  import * as i2 from 'ngx-tethys/core';
18
19
  import { ThyAbstractOverlayConfig, ThyAbstractOverlayContainer, ThyPortalOutlet, ThyAbstractOverlayRef, ThyAbstractInternalOverlayRef, ThyAbstractOverlayService, getFlexiblePositions, ScrollToService } from 'ngx-tethys/core';
19
20
  import { Directionality } from '@angular/cdk/bidi';
@@ -21,7 +22,6 @@ import { coerceElement, coerceArray } from '@angular/cdk/coercion';
21
22
  import * as i3 from '@angular/cdk/platform';
22
23
  import * as i2$1 from '@angular/cdk/scrolling';
23
24
  import { state, style, trigger } from '@angular/animations';
24
- import { warnDeprecation, ESCAPE, ENTER, UP_ARROW, DOWN_ARROW, TAB } from 'ngx-tethys/util';
25
25
 
26
26
  /**
27
27
  * 自动完成组件
@@ -152,7 +152,7 @@ class ThyAutocomplete {
152
152
  this.ngUnsubscribe$.complete();
153
153
  }
154
154
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAutocomplete, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAutocomplete, isStandalone: true, selector: "thy-autocomplete", inputs: { thyEmptyText: "thyEmptyText", thyAutoActiveFirstOption: ["thyAutoActiveFirstOption", "thyAutoActiveFirstOption", booleanAttribute] }, outputs: { thyOptionSelected: "thyOptionSelected", thyOpened: "thyOpened", thyClosed: "thyClosed", thyOptionActivated: "thyOptionActivated" }, providers: [
155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAutocomplete, isStandalone: true, selector: "thy-autocomplete", inputs: { thyEmptyText: "thyEmptyText", thyAutoActiveFirstOption: ["thyAutoActiveFirstOption", "thyAutoActiveFirstOption", coerceBooleanProperty] }, outputs: { thyOptionSelected: "thyOptionSelected", thyOpened: "thyOpened", thyClosed: "thyClosed", thyOptionActivated: "thyOptionActivated" }, providers: [
156
156
  {
157
157
  provide: THY_OPTION_PARENT_COMPONENT,
158
158
  useExisting: ThyAutocomplete
@@ -180,7 +180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
180
180
  type: Input
181
181
  }], thyAutoActiveFirstOption: [{
182
182
  type: Input,
183
- args: [{ transform: booleanAttribute }]
183
+ args: [{ transform: coerceBooleanProperty }]
184
184
  }], thyOptionSelected: [{
185
185
  type: Output
186
186
  }], thyOpened: [{
@@ -636,7 +636,7 @@ class ThyAutocompleteTriggerDirective {
636
636
  this.destroyPanel();
637
637
  }
638
638
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAutocompleteTriggerDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.Overlay }, { token: ThyAutocompleteService }, { token: i0.ViewContainerRef }, { token: DOCUMENT, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
639
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyAutocompleteTriggerDirective, isStandalone: true, selector: "input[thyAutocompleteTrigger], textarea[thyAutocompleteTrigger], thy-input[thyAutocompleteTrigger], thy-input-search[thyAutocompleteTrigger], input[thyAutocomplete], textarea[thyAutocomplete], thy-input[thyAutocomplete], thy-input-search[thyAutocomplete]", inputs: { autocompleteComponent: ["thyAutocompleteComponent", "autocompleteComponent"], autocomplete: ["thyAutocomplete", "autocomplete"], thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyAutocompleteWidth: ["thyAutocompleteWidth", "thyAutocompleteWidth", numberAttribute], thyPlacement: "thyPlacement", thyIsFocusOpen: ["thyIsFocusOpen", "thyIsFocusOpen", booleanAttribute] }, host: { listeners: { "input": "handleInput($event)", "focusin": "onFocus()", "keydown": "onKeydown($event)" }, properties: { "class.thy-autocomplete-opened": "this.panelOpened" } }, exportAs: ["thyAutocompleteTrigger", "thyAutocomplete"], ngImport: i0 }); }
639
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyAutocompleteTriggerDirective, isStandalone: true, selector: "input[thyAutocompleteTrigger], textarea[thyAutocompleteTrigger], thy-input[thyAutocompleteTrigger], thy-input-search[thyAutocompleteTrigger], input[thyAutocomplete], textarea[thyAutocomplete], thy-input[thyAutocomplete], thy-input-search[thyAutocomplete]", inputs: { autocompleteComponent: ["thyAutocompleteComponent", "autocompleteComponent"], autocomplete: ["thyAutocomplete", "autocomplete"], thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyAutocompleteWidth: ["thyAutocompleteWidth", "thyAutocompleteWidth", numberAttribute], thyPlacement: "thyPlacement", thyIsFocusOpen: ["thyIsFocusOpen", "thyIsFocusOpen", coerceBooleanProperty] }, host: { listeners: { "input": "handleInput($event)", "focusin": "onFocus()", "keydown": "onKeydown($event)" }, properties: { "class.thy-autocomplete-opened": "this.panelOpened" } }, exportAs: ["thyAutocompleteTrigger", "thyAutocomplete"], ngImport: i0 }); }
640
640
  }
641
641
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAutocompleteTriggerDirective, decorators: [{
642
642
  type: Directive,
@@ -674,7 +674,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
674
674
  type: Input
675
675
  }], thyIsFocusOpen: [{
676
676
  type: Input,
677
- args: [{ transform: booleanAttribute }]
677
+ args: [{ transform: coerceBooleanProperty }]
678
678
  }] } });
679
679
 
680
680
  class ThyAutocompleteModule {