ngx-tethys 18.0.8 → 18.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/action/action.component.d.ts +1 -2
  3. package/affix/affix.component.d.ts +2 -4
  4. package/alert/alert.component.d.ts +11 -19
  5. package/anchor/anchor-link.component.d.ts +2 -4
  6. package/anchor/anchor.component.d.ts +2 -7
  7. package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
  8. package/autocomplete/autocomplete.component.d.ts +1 -2
  9. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
  10. package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
  11. package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
  12. package/avatar/avatar.component.d.ts +1 -3
  13. package/avatar/avatar.pipe.d.ts +0 -2
  14. package/back-top/back-top.component.d.ts +2 -4
  15. package/badge/badge.component.d.ts +2 -2
  16. package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
  17. package/breadcrumb/breadcrumb.component.d.ts +1 -2
  18. package/button/button.component.d.ts +1 -2
  19. package/calendar/calendar-header.component.d.ts +1 -2
  20. package/calendar/calendar.component.d.ts +1 -2
  21. package/carousel/carousel-item.directive.d.ts +1 -2
  22. package/carousel/carousel.component.d.ts +1 -4
  23. package/carousel/carousel.service.d.ts +1 -2
  24. package/cascader/cascader.component.d.ts +4 -4
  25. package/checkbox/checkbox.component.d.ts +0 -2
  26. package/collapse/collapse-item.component.d.ts +2 -4
  27. package/color-picker/color-picker-panel.component.d.ts +2 -3
  28. package/color-picker/color-picker.component.d.ts +2 -4
  29. package/color-picker/coordinates.directive.d.ts +1 -2
  30. package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
  31. package/color-picker/parts/hue/hue.component.d.ts +1 -2
  32. package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
  33. package/copy/copy.directive.d.ts +0 -2
  34. package/core/click-positioner.d.ts +0 -2
  35. package/core/scroll.d.ts +1 -2
  36. package/core/update-host-class.service.d.ts +1 -2
  37. package/date-picker/abstract-picker.component.d.ts +1 -1
  38. package/date-picker/abstract-picker.directive.d.ts +2 -3
  39. package/date-picker/base-picker.component.d.ts +2 -3
  40. package/date-picker/date-picker.component.d.ts +2 -2
  41. package/date-picker/date-picker.directive.d.ts +1 -3
  42. package/date-picker/date-picker.service.d.ts +2 -2
  43. package/date-picker/index.d.ts +26 -27
  44. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
  45. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
  46. package/date-picker/lib/date/date-header.component.d.ts +0 -3
  47. package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
  48. package/date-picker/lib/date/date-table.component.d.ts +1 -3
  49. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
  50. package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
  51. package/date-picker/lib/month/month-header.component.d.ts +0 -3
  52. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  53. package/date-picker/lib/popups/date-popup.component.d.ts +1 -4
  54. package/date-picker/lib/popups/inner-popup.component.d.ts +0 -2
  55. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
  56. package/date-picker/lib/year/year-header.component.d.ts +0 -1
  57. package/date-picker/month-picker.component.d.ts +2 -2
  58. package/date-picker/picker.component.d.ts +1 -3
  59. package/date-picker/picker.pipes.d.ts +0 -3
  60. package/date-picker/quarter-picker.component.d.ts +2 -2
  61. package/date-picker/range-picker.component.d.ts +2 -2
  62. package/date-picker/range-picker.directive.d.ts +2 -3
  63. package/date-picker/week-picker.component.d.ts +2 -2
  64. package/date-picker/year-picker.component.d.ts +2 -2
  65. package/date-range/date-range.component.d.ts +3 -11
  66. package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
  67. package/dialog/body/dialog-body.component.d.ts +0 -2
  68. package/dialog/confirm/confirm.component.d.ts +2 -3
  69. package/dialog/dialog-container.component.d.ts +4 -5
  70. package/dialog/dialog.service.d.ts +4 -4
  71. package/dialog/footer/dialog-footer.component.d.ts +2 -2
  72. package/dialog/header/dialog-header.component.d.ts +2 -6
  73. package/divider/divider.component.d.ts +8 -2
  74. package/dot/dot.component.d.ts +1 -2
  75. package/drag-drop/drag-content.directive.d.ts +2 -3
  76. package/drag-drop/drag-handle.directive.d.ts +2 -3
  77. package/drag-drop/drag.directive.d.ts +4 -5
  78. package/drag-drop/drop-container.directive.d.ts +6 -3
  79. package/dropdown/dropdown-active.directive.d.ts +3 -4
  80. package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
  81. package/dropdown/dropdown-submenu.component.d.ts +1 -3
  82. package/dropdown/dropdown.directive.d.ts +3 -5
  83. package/empty/empty.component.d.ts +6 -6
  84. package/esm2022/action/action.component.mjs +20 -21
  85. package/esm2022/affix/affix.component.mjs +11 -14
  86. package/esm2022/alert/alert.component.mjs +55 -81
  87. package/esm2022/anchor/anchor-link.component.mjs +23 -16
  88. package/esm2022/anchor/anchor.component.mjs +27 -24
  89. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +25 -26
  90. package/esm2022/autocomplete/autocomplete.component.mjs +11 -11
  91. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
  92. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
  93. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
  94. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
  95. package/esm2022/avatar/avatar.component.mjs +27 -28
  96. package/esm2022/avatar/avatar.pipe.mjs +6 -7
  97. package/esm2022/back-top/back-top.component.mjs +14 -18
  98. package/esm2022/badge/badge.component.mjs +8 -9
  99. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  100. package/esm2022/breadcrumb/breadcrumb.component.mjs +15 -17
  101. package/esm2022/button/button-icon.component.mjs +4 -4
  102. package/esm2022/button/button.component.mjs +15 -15
  103. package/esm2022/calendar/calendar-header.component.mjs +15 -15
  104. package/esm2022/calendar/calendar.component.mjs +14 -15
  105. package/esm2022/card/header.component.mjs +4 -4
  106. package/esm2022/carousel/carousel-item.directive.mjs +7 -6
  107. package/esm2022/carousel/carousel.component.mjs +13 -15
  108. package/esm2022/carousel/carousel.service.mjs +7 -9
  109. package/esm2022/cascader/cascader-li.component.mjs +4 -4
  110. package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
  111. package/esm2022/cascader/cascader.component.mjs +15 -22
  112. package/esm2022/checkbox/checkbox.component.mjs +11 -13
  113. package/esm2022/collapse/collapse-item.component.mjs +21 -24
  114. package/esm2022/color-picker/color-picker-panel.component.mjs +14 -15
  115. package/esm2022/color-picker/color-picker.component.mjs +10 -11
  116. package/esm2022/color-picker/coordinates.directive.mjs +10 -10
  117. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
  118. package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
  119. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
  120. package/esm2022/comment/comment.component.mjs +4 -4
  121. package/esm2022/copy/copy.directive.mjs +8 -12
  122. package/esm2022/core/click-positioner.mjs +6 -7
  123. package/esm2022/core/scroll.mjs +7 -9
  124. package/esm2022/core/store/store.mjs +1 -1
  125. package/esm2022/core/update-host-class.service.mjs +6 -6
  126. package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
  127. package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
  128. package/esm2022/date-picker/base-picker.component.mjs +26 -26
  129. package/esm2022/date-picker/date-picker.component.mjs +10 -11
  130. package/esm2022/date-picker/date-picker.directive.mjs +6 -8
  131. package/esm2022/date-picker/date-picker.service.mjs +6 -10
  132. package/esm2022/date-picker/index.mjs +27 -28
  133. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +7 -8
  134. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
  135. package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -12
  136. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
  137. package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -12
  138. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +16 -16
  139. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +8 -11
  140. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
  141. package/esm2022/date-picker/lib/month/month-header.component.mjs +6 -12
  142. package/esm2022/date-picker/lib/month/month-table.component.mjs +9 -10
  143. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +14 -29
  144. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +14 -20
  145. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +9 -10
  146. package/esm2022/date-picker/lib/year/year-header.component.mjs +6 -12
  147. package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
  148. package/esm2022/date-picker/month-picker.component.mjs +9 -11
  149. package/esm2022/date-picker/picker.component.mjs +24 -35
  150. package/esm2022/date-picker/picker.pipes.mjs +10 -11
  151. package/esm2022/date-picker/quarter-picker.component.mjs +9 -11
  152. package/esm2022/date-picker/range-picker.component.mjs +9 -11
  153. package/esm2022/date-picker/range-picker.directive.mjs +6 -8
  154. package/esm2022/date-picker/week-picker.component.mjs +9 -11
  155. package/esm2022/date-picker/year-picker.component.mjs +9 -11
  156. package/esm2022/date-range/date-range.component.mjs +17 -18
  157. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +9 -13
  158. package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
  159. package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
  160. package/esm2022/dialog/dialog-container.component.mjs +13 -18
  161. package/esm2022/dialog/dialog.service.mjs +10 -17
  162. package/esm2022/dialog/footer/dialog-footer.component.mjs +10 -14
  163. package/esm2022/dialog/header/dialog-header.component.mjs +17 -22
  164. package/esm2022/divider/divider.component.mjs +21 -13
  165. package/esm2022/dot/dot.component.mjs +7 -7
  166. package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
  167. package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
  168. package/esm2022/drag-drop/drag.directive.mjs +13 -16
  169. package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
  170. package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
  171. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
  172. package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
  173. package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
  174. package/esm2022/dropdown/dropdown.directive.mjs +12 -10
  175. package/esm2022/empty/empty.component.mjs +17 -20
  176. package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
  177. package/esm2022/form/form-group-error/form-group-error.component.mjs +12 -15
  178. package/esm2022/form/form-group-label.directive.mjs +9 -10
  179. package/esm2022/form/form-group.component.mjs +18 -22
  180. package/esm2022/form/form-submit.directive.mjs +6 -7
  181. package/esm2022/form/form-validator-loader.mjs +1 -1
  182. package/esm2022/form/form-validator.service.mjs +12 -13
  183. package/esm2022/form/form.directive.mjs +11 -16
  184. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +13 -19
  185. package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
  186. package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
  187. package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
  188. package/esm2022/grid/thy-col.directive.mjs +9 -14
  189. package/esm2022/grid/thy-grid-item.component.mjs +8 -14
  190. package/esm2022/grid/thy-grid.component.mjs +7 -8
  191. package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
  192. package/esm2022/guider/guider.directive.mjs +8 -9
  193. package/esm2022/guider/guider.service.mjs +12 -19
  194. package/esm2022/icon/icon-registry.mjs +11 -16
  195. package/esm2022/icon/icon.component.mjs +8 -9
  196. package/esm2022/image/image-group.component.mjs +7 -7
  197. package/esm2022/image/image.directive.mjs +11 -12
  198. package/esm2022/image/image.service.mjs +8 -14
  199. package/esm2022/image/preview/image-preview.component.mjs +36 -41
  200. package/esm2022/input/input-count.component.mjs +7 -10
  201. package/esm2022/input/input-group.component.mjs +15 -16
  202. package/esm2022/input/input-search.component.mjs +9 -10
  203. package/esm2022/input/input.component.mjs +17 -17
  204. package/esm2022/input/input.directive.mjs +12 -17
  205. package/esm2022/input-number/input-number.component.mjs +6 -6
  206. package/esm2022/layout/header.component.mjs +4 -4
  207. package/esm2022/layout/sidebar-header.component.mjs +4 -4
  208. package/esm2022/layout/sidebar.component.mjs +125 -121
  209. package/esm2022/list/list-item-meta.component.mjs +4 -4
  210. package/esm2022/list/selection/selection-list.mjs +25 -25
  211. package/esm2022/loading/loading.component.mjs +10 -11
  212. package/esm2022/mention/mention.directive.mjs +9 -14
  213. package/esm2022/mention/suggestions/suggestions.component.mjs +11 -12
  214. package/esm2022/menu/group/menu-group.component.mjs +37 -38
  215. package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
  216. package/esm2022/menu/item/menu-item.component.mjs +8 -9
  217. package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
  218. package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
  219. package/esm2022/message/message-container.component.mjs +21 -15
  220. package/esm2022/message/message-queue.service.mjs +6 -8
  221. package/esm2022/message/message.component.mjs +9 -10
  222. package/esm2022/message/message.service.mjs +10 -11
  223. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
  224. package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
  225. package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
  226. package/esm2022/nav/nav-item.directive.mjs +8 -11
  227. package/esm2022/nav/nav.component.mjs +35 -38
  228. package/esm2022/nav/nav.pipe.mjs +6 -7
  229. package/esm2022/notify/notify-container.component.mjs +11 -14
  230. package/esm2022/notify/notify-queue.service.mjs +6 -8
  231. package/esm2022/notify/notify.component.mjs +10 -10
  232. package/esm2022/notify/notify.service.mjs +11 -12
  233. package/esm2022/pagination/pagination.component.mjs +41 -46
  234. package/esm2022/pagination/pagination.pipe.mjs +6 -7
  235. package/esm2022/popover/header/popover-header.component.mjs +15 -17
  236. package/esm2022/popover/popover-container.component.mjs +11 -13
  237. package/esm2022/popover/popover.directive.mjs +13 -12
  238. package/esm2022/popover/popover.service.mjs +14 -26
  239. package/esm2022/progress/progress-circle.component.mjs +4 -7
  240. package/esm2022/progress/progress-strip.component.mjs +10 -13
  241. package/esm2022/progress/progress.component.mjs +5 -8
  242. package/esm2022/property/property-item.component.mjs +13 -16
  243. package/esm2022/property-operation/property-operation.component.mjs +27 -28
  244. package/esm2022/radio/button/radio-button.component.mjs +9 -15
  245. package/esm2022/radio/group/radio-group.component.mjs +17 -17
  246. package/esm2022/radio/radio.component.mjs +12 -18
  247. package/esm2022/rate/rate.component.mjs +10 -10
  248. package/esm2022/resizable/resizable.directive.mjs +10 -12
  249. package/esm2022/resizable/resizable.service.mjs +7 -9
  250. package/esm2022/resizable/resize-handle.component.mjs +16 -14
  251. package/esm2022/resizable/resize-handles.component.mjs +12 -5
  252. package/esm2022/result/result.component.mjs +4 -4
  253. package/esm2022/segment/segment-item.component.mjs +15 -18
  254. package/esm2022/segment/segment.component.mjs +29 -30
  255. package/esm2022/select/custom-select/custom-select.component.mjs +19 -35
  256. package/esm2022/select/native-select/native-select.component.mjs +10 -11
  257. package/esm2022/shared/base-form-check.component.mjs +7 -8
  258. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
  259. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
  260. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
  261. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
  262. package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
  263. package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
  264. package/esm2022/shared/directives/thy-show.mjs +11 -11
  265. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
  266. package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
  267. package/esm2022/shared/ng-transclude.directive.mjs +6 -5
  268. package/esm2022/shared/option/group/option-group.component.mjs +10 -10
  269. package/esm2022/shared/option/list-option/list-option.component.mjs +14 -22
  270. package/esm2022/shared/option/option.component.mjs +11 -22
  271. package/esm2022/shared/select/select-control/select-control.component.mjs +27 -27
  272. package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
  273. package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
  274. package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
  275. package/esm2022/skeleton/stylized/list.component.mjs +8 -9
  276. package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
  277. package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
  278. package/esm2022/slide/slide-container.component.mjs +12 -16
  279. package/esm2022/slide/slide-header/slide-header.component.mjs +13 -14
  280. package/esm2022/slide/slide-ref.service.mjs +1 -1
  281. package/esm2022/slide/slide.service.mjs +8 -12
  282. package/esm2022/slider/slider.component.mjs +8 -8
  283. package/esm2022/space/space.component.mjs +16 -16
  284. package/esm2022/statistic/statistic.component.mjs +23 -23
  285. package/esm2022/stepper/step.component.mjs +6 -11
  286. package/esm2022/stepper/stepper-button.directive.mjs +10 -11
  287. package/esm2022/stepper/stepper.component.mjs +5 -5
  288. package/esm2022/strength/strength.component.mjs +11 -12
  289. package/esm2022/switch/switch.component.mjs +11 -11
  290. package/esm2022/table/table-column.component.mjs +58 -63
  291. package/esm2022/table/table-skeleton.component.mjs +35 -38
  292. package/esm2022/table/table.component.mjs +19 -29
  293. package/esm2022/tabs/tab-content.component.mjs +9 -9
  294. package/esm2022/tabs/tabs.component.mjs +22 -25
  295. package/esm2022/tag/tag.component.mjs +22 -22
  296. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +12 -12
  297. package/esm2022/time-picker/time-picker-panel.component.mjs +31 -34
  298. package/esm2022/time-picker/time-picker.component.mjs +33 -43
  299. package/esm2022/timeline/timeline-item.component.mjs +15 -16
  300. package/esm2022/timeline/timeline.component.mjs +15 -16
  301. package/esm2022/tooltip/tooltip.component.mjs +17 -17
  302. package/esm2022/tooltip/tooltip.directive.mjs +11 -10
  303. package/esm2022/tooltip/tooltip.service.mjs +9 -13
  304. package/esm2022/transfer/transfer-list.component.mjs +9 -9
  305. package/esm2022/transfer/transfer.component.mjs +4 -4
  306. package/esm2022/tree/tree-node.component.mjs +16 -20
  307. package/esm2022/tree/tree.component.mjs +90 -96
  308. package/esm2022/tree-select/tree-select.component.mjs +28 -36
  309. package/esm2022/typography/bg-color.directive.mjs +9 -9
  310. package/esm2022/typography/text/text.component.mjs +3 -4
  311. package/esm2022/typography/text-color.directive.mjs +9 -9
  312. package/esm2022/upload/file-drop.directive.mjs +1 -1
  313. package/esm2022/upload/file-select-base.mjs +5 -6
  314. package/esm2022/upload/file-select.component.mjs +4 -3
  315. package/esm2022/upload/upload.service.mjs +6 -7
  316. package/esm2022/version.mjs +2 -2
  317. package/esm2022/vote/vote.component.mjs +4 -4
  318. package/esm2022/watermark/watermark.directive.mjs +12 -12
  319. package/fesm2022/ngx-tethys-action.mjs +20 -20
  320. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  321. package/fesm2022/ngx-tethys-affix.mjs +12 -14
  322. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  323. package/fesm2022/ngx-tethys-alert.mjs +54 -80
  324. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  325. package/fesm2022/ngx-tethys-anchor.mjs +48 -35
  326. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  327. package/fesm2022/ngx-tethys-arrow-switcher.mjs +25 -25
  328. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  329. package/fesm2022/ngx-tethys-autocomplete.mjs +63 -75
  330. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  331. package/fesm2022/ngx-tethys-avatar.mjs +32 -32
  332. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  333. package/fesm2022/ngx-tethys-back-top.mjs +15 -18
  334. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  335. package/fesm2022/ngx-tethys-badge.mjs +8 -8
  336. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  337. package/fesm2022/ngx-tethys-breadcrumb.mjs +19 -21
  338. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  339. package/fesm2022/ngx-tethys-button.mjs +16 -16
  340. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  341. package/fesm2022/ngx-tethys-calendar.mjs +26 -26
  342. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  343. package/fesm2022/ngx-tethys-card.mjs +3 -3
  344. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  345. package/fesm2022/ngx-tethys-carousel.mjs +23 -24
  346. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  347. package/fesm2022/ngx-tethys-cascader.mjs +19 -25
  348. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  349. package/fesm2022/ngx-tethys-checkbox.mjs +10 -11
  350. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  351. package/fesm2022/ngx-tethys-collapse.mjs +20 -22
  352. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  353. package/fesm2022/ngx-tethys-color-picker.mjs +47 -45
  354. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  355. package/fesm2022/ngx-tethys-comment.mjs +3 -3
  356. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  357. package/fesm2022/ngx-tethys-copy.mjs +8 -12
  358. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  359. package/fesm2022/ngx-tethys-core.mjs +14 -16
  360. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  361. package/fesm2022/ngx-tethys-date-picker.mjs +2872 -2924
  362. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  363. package/fesm2022/ngx-tethys-date-range.mjs +24 -26
  364. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  365. package/fesm2022/ngx-tethys-dialog.mjs +61 -77
  366. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  367. package/fesm2022/ngx-tethys-divider.mjs +20 -12
  368. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  369. package/fesm2022/ngx-tethys-dot.mjs +6 -6
  370. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  371. package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
  372. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  373. package/fesm2022/ngx-tethys-dropdown.mjs +49 -43
  374. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  375. package/fesm2022/ngx-tethys-empty.mjs +18 -18
  376. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  377. package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
  378. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  379. package/fesm2022/ngx-tethys-form.mjs +74 -89
  380. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  381. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
  382. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  383. package/fesm2022/ngx-tethys-grid.mjs +20 -29
  384. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  385. package/fesm2022/ngx-tethys-guider.mjs +20 -26
  386. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  387. package/fesm2022/ngx-tethys-icon.mjs +18 -22
  388. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  389. package/fesm2022/ngx-tethys-image.mjs +60 -65
  390. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  391. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  392. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  393. package/fesm2022/ngx-tethys-input.mjs +53 -60
  394. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  395. package/fesm2022/ngx-tethys-layout.mjs +129 -124
  396. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  397. package/fesm2022/ngx-tethys-list.mjs +27 -27
  398. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  399. package/fesm2022/ngx-tethys-loading.mjs +10 -10
  400. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  401. package/fesm2022/ngx-tethys-mention.mjs +19 -24
  402. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  403. package/fesm2022/ngx-tethys-menu.mjs +56 -57
  404. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  405. package/fesm2022/ngx-tethys-message.mjs +47 -41
  406. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  407. package/fesm2022/ngx-tethys-nav.mjs +61 -72
  408. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  409. package/fesm2022/ngx-tethys-notify.mjs +31 -34
  410. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  411. package/fesm2022/ngx-tethys-pagination.mjs +46 -51
  412. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  413. package/fesm2022/ngx-tethys-popover.mjs +51 -57
  414. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  415. package/fesm2022/ngx-tethys-progress.mjs +15 -24
  416. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  417. package/fesm2022/ngx-tethys-property-operation.mjs +27 -27
  418. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-property.mjs +14 -14
  420. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-radio.mjs +33 -39
  422. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  423. package/fesm2022/ngx-tethys-rate.mjs +9 -9
  424. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  425. package/fesm2022/ngx-tethys-resizable.mjs +43 -34
  426. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-result.mjs +3 -3
  428. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-segment.mjs +41 -44
  430. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  431. package/fesm2022/ngx-tethys-select.mjs +28 -44
  432. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  433. package/fesm2022/ngx-tethys-shared.mjs +135 -150
  434. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  435. package/fesm2022/ngx-tethys-skeleton.mjs +33 -47
  436. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  437. package/fesm2022/ngx-tethys-slide.mjs +33 -37
  438. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  439. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  440. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  441. package/fesm2022/ngx-tethys-space.mjs +16 -16
  442. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  443. package/fesm2022/ngx-tethys-statistic.mjs +22 -22
  444. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  445. package/fesm2022/ngx-tethys-stepper.mjs +17 -22
  446. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  447. package/fesm2022/ngx-tethys-strength.mjs +11 -11
  448. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  449. package/fesm2022/ngx-tethys-switch.mjs +10 -10
  450. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  451. package/fesm2022/ngx-tethys-table.mjs +107 -124
  452. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  453. package/fesm2022/ngx-tethys-tabs.mjs +29 -32
  454. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  455. package/fesm2022/ngx-tethys-tag.mjs +21 -21
  456. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  457. package/fesm2022/ngx-tethys-time-picker.mjs +70 -80
  458. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  459. package/fesm2022/ngx-tethys-timeline.mjs +26 -26
  460. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  461. package/fesm2022/ngx-tethys-tooltip.mjs +35 -36
  462. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  463. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  464. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  465. package/fesm2022/ngx-tethys-tree-select.mjs +29 -37
  466. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  467. package/fesm2022/ngx-tethys-tree.mjs +102 -110
  468. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  469. package/fesm2022/ngx-tethys-typography.mjs +18 -18
  470. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  471. package/fesm2022/ngx-tethys-upload.mjs +11 -12
  472. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  473. package/fesm2022/ngx-tethys-vote.mjs +3 -3
  474. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  475. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  476. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  477. package/fesm2022/ngx-tethys.mjs +1 -1
  478. package/fesm2022/ngx-tethys.mjs.map +1 -1
  479. package/flexible-text/flexible-text.component.d.ts +1 -3
  480. package/form/form-group-error/form-group-error.component.d.ts +1 -3
  481. package/form/form-group-label.directive.d.ts +0 -2
  482. package/form/form-group.component.d.ts +1 -4
  483. package/form/form-submit.directive.d.ts +0 -2
  484. package/form/form-validator.service.d.ts +0 -2
  485. package/form/form.directive.d.ts +4 -4
  486. package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
  487. package/form/validator/unique-validator.directive.d.ts +1 -4
  488. package/fullscreen/fullscreen.component.d.ts +0 -2
  489. package/fullscreen/fullscreen.service.d.ts +0 -2
  490. package/grid/thy-col.directive.d.ts +1 -2
  491. package/grid/thy-grid-item.component.d.ts +2 -4
  492. package/grid/thy-grid.component.d.ts +1 -3
  493. package/guider/guider.directive.d.ts +1 -3
  494. package/guider/guider.service.d.ts +0 -7
  495. package/icon/icon-registry.d.ts +1 -3
  496. package/icon/icon.component.d.ts +1 -3
  497. package/image/image-group.component.d.ts +1 -2
  498. package/image/image.directive.d.ts +1 -3
  499. package/image/image.service.d.ts +2 -2
  500. package/image/preview/image-preview.component.d.ts +1 -4
  501. package/input/input-count.component.d.ts +3 -4
  502. package/input/input-group.component.d.ts +1 -3
  503. package/input/input-search.component.d.ts +2 -2
  504. package/input/input.component.d.ts +1 -2
  505. package/input/input.directive.d.ts +2 -3
  506. package/input-number/input-number.component.d.ts +2 -2
  507. package/layout/sidebar.component.d.ts +44 -13
  508. package/list/selection/selection-list.d.ts +1 -2
  509. package/loading/loading.component.d.ts +0 -2
  510. package/loading/styles/loading.scss +3 -1
  511. package/mention/mention.directive.d.ts +4 -5
  512. package/mention/suggestions/suggestions.component.d.ts +2 -3
  513. package/menu/group/menu-group.component.d.ts +30 -8
  514. package/menu/item/action/menu-item-action.component.d.ts +2 -3
  515. package/menu/item/menu-item.component.d.ts +1 -2
  516. package/message/abstract/abstract-message-container.component.d.ts +1 -2
  517. package/message/abstract/abstract-message.component.d.ts +2 -2
  518. package/message/message-container.component.d.ts +1 -3
  519. package/message/message-queue.service.d.ts +1 -2
  520. package/message/message.component.d.ts +1 -3
  521. package/message/message.service.d.ts +3 -5
  522. package/nav/icon-nav/icon-nav.component.d.ts +2 -2
  523. package/nav/nav-ink-bar.directive.d.ts +2 -4
  524. package/nav/nav-item.directive.d.ts +3 -4
  525. package/nav/nav.component.d.ts +1 -3
  526. package/nav/nav.pipe.d.ts +0 -2
  527. package/notify/notify-container.component.d.ts +1 -3
  528. package/notify/notify-queue.service.d.ts +1 -2
  529. package/notify/notify.component.d.ts +2 -3
  530. package/notify/notify.service.d.ts +1 -4
  531. package/package.json +1 -1
  532. package/pagination/pagination.component.d.ts +2 -4
  533. package/pagination/pagination.pipe.d.ts +0 -2
  534. package/popover/header/popover-header.component.d.ts +0 -3
  535. package/popover/popover-container.component.d.ts +3 -4
  536. package/popover/popover.directive.d.ts +2 -5
  537. package/popover/popover.service.d.ts +4 -6
  538. package/progress/progress-circle.component.d.ts +0 -1
  539. package/progress/progress-strip.component.d.ts +0 -1
  540. package/progress/progress.component.d.ts +0 -1
  541. package/property/property-item.component.d.ts +6 -9
  542. package/property-operation/property-operation.component.d.ts +1 -3
  543. package/radio/button/radio-button.component.d.ts +2 -5
  544. package/radio/group/radio-group.component.d.ts +1 -2
  545. package/radio/radio.component.d.ts +2 -3
  546. package/rate/rate.component.d.ts +2 -2
  547. package/resizable/resizable.directive.d.ts +2 -4
  548. package/resizable/resizable.service.d.ts +2 -2
  549. package/resizable/resize-handle.component.d.ts +2 -7
  550. package/schematics/version.d.ts +1 -1
  551. package/schematics/version.js +1 -1
  552. package/segment/segment-item.component.d.ts +4 -5
  553. package/segment/segment.component.d.ts +2 -7
  554. package/select/custom-select/custom-select.component.d.ts +5 -5
  555. package/select/native-select/native-select.component.d.ts +1 -1
  556. package/shared/base-form-check.component.d.ts +1 -1
  557. package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
  558. package/shared/directives/thy-autofocus.directive.d.ts +0 -2
  559. package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
  560. package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
  561. package/shared/directives/thy-enter.directive.d.ts +1 -2
  562. package/shared/directives/thy-scroll.directive.d.ts +1 -2
  563. package/shared/directives/thy-show.d.ts +1 -2
  564. package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
  565. package/shared/directives/view-outlet.directive.d.ts +1 -2
  566. package/shared/ng-transclude.directive.d.ts +1 -1
  567. package/shared/option/group/option-group.component.d.ts +1 -2
  568. package/shared/option/list-option/list-option.component.d.ts +6 -7
  569. package/shared/option/option.component.d.ts +5 -5
  570. package/shared/select/select-control/select-control.component.d.ts +1 -2
  571. package/skeleton/skeleton-circle.component.d.ts +1 -4
  572. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  573. package/skeleton/stylized/bullet-list.component.d.ts +9 -1
  574. package/slide/drawer/drawer-container.directive.d.ts +1 -2
  575. package/slide/slide-container.component.d.ts +3 -4
  576. package/slide/slide-header/slide-header.component.d.ts +0 -2
  577. package/slide/slide.service.d.ts +3 -3
  578. package/slider/slider.component.d.ts +2 -2
  579. package/space/space.component.d.ts +1 -2
  580. package/statistic/statistic.component.d.ts +1 -2
  581. package/stepper/step.component.d.ts +1 -2
  582. package/stepper/stepper-button.directive.d.ts +0 -3
  583. package/strength/strength.component.d.ts +0 -1
  584. package/switch/switch.component.d.ts +1 -1
  585. package/table/table-column.component.d.ts +32 -8
  586. package/table/table-skeleton.component.d.ts +1 -3
  587. package/table/table.component.d.ts +3 -5
  588. package/tabs/tabs.component.d.ts +1 -3
  589. package/tag/tag.component.d.ts +7 -3
  590. package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
  591. package/time-picker/time-picker-panel.component.d.ts +1 -3
  592. package/time-picker/time-picker.component.d.ts +1 -2
  593. package/timeline/timeline-item.component.d.ts +1 -3
  594. package/timeline/timeline.component.d.ts +1 -3
  595. package/tooltip/tooltip.component.d.ts +1 -2
  596. package/tooltip/tooltip.directive.d.ts +6 -9
  597. package/tooltip/tooltip.service.d.ts +2 -4
  598. package/transfer/transfer-list.component.d.ts +1 -2
  599. package/tree/tree-node.component.d.ts +5 -21
  600. package/tree/tree.component.d.ts +1 -2
  601. package/tree-select/tree-select.component.d.ts +5 -6
  602. package/typography/bg-color.directive.d.ts +0 -2
  603. package/typography/text-color.directive.d.ts +1 -2
  604. package/upload/file-select-base.d.ts +2 -3
  605. package/upload/file-select.component.d.ts +1 -0
  606. package/upload/upload.service.d.ts +0 -2
  607. package/watermark/watermark.directive.d.ts +1 -2
@@ -1,12 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, HostBinding, Input, Output, ViewChild, NgModule } from '@angular/core';
3
- import { DOCUMENT, NgIf, NgTemplateOutlet, CommonModule } from '@angular/common';
2
+ import { inject, ChangeDetectorRef, NgZone, EventEmitter, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, HostBinding, Input, Output, ViewChild, NgModule } from '@angular/core';
3
+ import { DOCUMENT, NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
5
5
  import { BehaviorSubject, Subject, Observable, fromEvent, EMPTY } from 'rxjs';
6
- import * as i2 from '@angular/cdk/platform';
6
+ import { Platform } from '@angular/cdk/platform';
7
7
  import { switchMap, takeUntil, throttleTime } from 'rxjs/operators';
8
- import * as i1 from 'ngx-tethys/core';
9
- import { fadeMotion } from 'ngx-tethys/core';
8
+ import { ThyScrollService, fadeMotion } from 'ngx-tethys/core';
10
9
 
11
10
  /**
12
11
  * 回到顶部组件
@@ -17,12 +16,12 @@ class ThyBackTop {
17
16
  set backTop(backTop) {
18
17
  this.backTop$.next(backTop);
19
18
  }
20
- constructor(doc, thyScrollService, platform, cdr, zone) {
21
- this.doc = doc;
22
- this.thyScrollService = thyScrollService;
23
- this.platform = platform;
24
- this.cdr = cdr;
25
- this.zone = zone;
19
+ constructor() {
20
+ this.doc = inject(DOCUMENT);
21
+ this.thyScrollService = inject(ThyScrollService);
22
+ this.platform = inject(Platform);
23
+ this.cdr = inject(ChangeDetectorRef);
24
+ this.zone = inject(NgZone);
26
25
  this.classNames = true;
27
26
  /**
28
27
  * 滚动高度达到此参数值才出现 thy-back-top
@@ -48,6 +47,7 @@ class ThyBackTop {
48
47
  this.destroy$ = new Subject();
49
48
  this.scrollListenerDestroy$ = new Subject();
50
49
  this.target = null;
50
+ const zone = this.zone;
51
51
  this.backTop$
52
52
  .pipe(switchMap(backTop => backTop
53
53
  ? new Observable(subscriber => zone.runOutsideAngular(() => fromEvent(backTop.nativeElement, 'click').subscribe(subscriber)))
@@ -100,16 +100,13 @@ class ThyBackTop {
100
100
  this.registerScrollEvent();
101
101
  }
102
102
  }
103
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBackTop, deps: [{ token: DOCUMENT }, { token: i1.ThyScrollService }, { token: i2.Platform }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyBackTop, isStandalone: true, selector: "thy-back-top,[thyBackTop]", inputs: { thyTemplate: "thyTemplate", thyContainer: "thyContainer", thyVisibilityHeight: ["thyVisibilityHeight", "thyVisibilityHeight", numberAttribute] }, outputs: { thyClick: "thyClick", visibleChange: "visibleChange" }, host: { properties: { "class.thy-back-top-container": "this.classNames" } }, viewQueries: [{ propertyName: "backTop", first: true, predicate: ["backTop"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-back-top\" #backTop @fadeMotion *ngIf=\"visible\">\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [fadeMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBackTop, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyBackTop, isStandalone: true, selector: "thy-back-top,[thyBackTop]", inputs: { thyTemplate: "thyTemplate", thyContainer: "thyContainer", thyVisibilityHeight: ["thyVisibilityHeight", "thyVisibilityHeight", numberAttribute] }, outputs: { thyClick: "thyClick", visibleChange: "visibleChange" }, host: { properties: { "class.thy-back-top-container": "this.classNames" } }, viewQueries: [{ propertyName: "backTop", first: true, predicate: ["backTop"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (visible) {\n <div class=\"thy-back-top\" #backTop @fadeMotion>\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n </div>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [fadeMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
105
105
  }
106
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBackTop, decorators: [{
107
107
  type: Component,
108
- args: [{ selector: 'thy-back-top,[thyBackTop]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [fadeMotion], standalone: true, imports: [NgIf, ThyIcon, NgTemplateOutlet], template: "<div class=\"thy-back-top\" #backTop @fadeMotion *ngIf=\"visible\">\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n</div>\n" }]
109
- }], ctorParameters: () => [{ type: undefined, decorators: [{
110
- type: Inject,
111
- args: [DOCUMENT]
112
- }] }, { type: i1.ThyScrollService }, { type: i2.Platform }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { classNames: [{
108
+ args: [{ selector: 'thy-back-top,[thyBackTop]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [fadeMotion], standalone: true, imports: [ThyIcon, NgTemplateOutlet], template: "@if (visible) {\n <div class=\"thy-back-top\" #backTop @fadeMotion>\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n </div>\n}\n" }]
109
+ }], ctorParameters: () => [], propDecorators: { classNames: [{
113
110
  type: HostBinding,
114
111
  args: ['class.thy-back-top-container']
115
112
  }], thyTemplate: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-back-top.mjs","sources":["../../../src/back-top/back-top.component.ts","../../../src/back-top/back-top.component.html","../../../src/back-top/back-top.module.ts","../../../src/back-top/ngx-tethys-back-top.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n TemplateRef,\n EventEmitter,\n Output,\n HostBinding,\n NgZone,\n ChangeDetectorRef,\n OnDestroy,\n OnChanges,\n Inject,\n ViewChild,\n ElementRef,\n numberAttribute\n} from '@angular/core';\nimport { Subject, fromEvent, BehaviorSubject, EMPTY, Observable } from 'rxjs';\nimport { Platform } from '@angular/cdk/platform';\nimport { throttleTime, takeUntil, switchMap } from 'rxjs/operators';\nimport { DOCUMENT, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { fadeMotion, ThyScrollService } from 'ngx-tethys/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 回到顶部组件\n * @name thy-back-top\n */\n@Component({\n selector: 'thy-back-top,[thyBackTop]',\n templateUrl: './back-top.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [fadeMotion],\n standalone: true,\n imports: [NgIf, ThyIcon, NgTemplateOutlet]\n})\nexport class ThyBackTop implements OnInit, OnDestroy, OnChanges {\n @HostBinding('class.thy-back-top-container') classNames = true;\n\n /**\n * 自定义按钮显示模板\n */\n @Input() thyTemplate?: TemplateRef<void>;\n\n /**\n * 指定对哪个 DOM 元素返回顶部\n * @type string | HTMLElement\n * @default window\n */\n @Input() thyContainer?: string | HTMLElement;\n\n /**\n * 滚动高度达到此参数值才出现 thy-back-top\n * @type number\n */\n @Input({ transform: numberAttribute }) thyVisibilityHeight = 400;\n\n /**\n * 点击按钮的回调函数\n */\n @Output() readonly thyClick: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * 监听按钮显示状态的回调函数\n */\n @Output() public visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /** The native `<div class=\"thy-back-top\"></div>` element. */\n @ViewChild('backTop', { static: false })\n set backTop(backTop: ElementRef<HTMLElement> | undefined) {\n this.backTop$.next(backTop);\n }\n\n public visible = false;\n\n /**\n * The subject used to store the native `<div class=\"thy-back-top\"></div>` since\n * it's located within the `ngIf` directive. It might be set asynchronously whenever the condition\n * is met. Having subject makes the code reactive and cancellable (e.g. event listeners will be\n * automatically removed and re-added through the `switchMap` below).\n */\n private backTop$ = new BehaviorSubject<ElementRef<HTMLElement> | undefined>(undefined);\n\n private destroy$ = new Subject<void>();\n private scrollListenerDestroy$ = new Subject<void>();\n\n private target: HTMLElement | null = null;\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n private thyScrollService: ThyScrollService,\n private platform: Platform,\n private cdr: ChangeDetectorRef,\n private zone: NgZone\n ) {\n this.backTop$\n .pipe(\n switchMap(backTop =>\n backTop\n ? new Observable(subscriber =>\n zone.runOutsideAngular(() => fromEvent(backTop.nativeElement, 'click').subscribe(subscriber))\n )\n : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.thyScrollService.scrollTo(this.getTarget(), 0);\n if (this.thyClick.observers.length) {\n zone.run(() => this.thyClick.emit(true));\n }\n });\n }\n\n ngOnInit(): void {\n this.registerScrollEvent();\n }\n\n private getTarget(): HTMLElement | Window {\n return this.target || window;\n }\n\n private handleScroll(): void {\n if (this.visible === this.thyScrollService.getScroll(this.getTarget()) > this.thyVisibilityHeight) {\n return;\n }\n this.visible = !this.visible;\n this.cdr.detectChanges();\n if (this.visibleChange.observers.length > 0) {\n this.zone.run(() => {\n this.visibleChange.emit(this.visible);\n });\n }\n }\n\n private registerScrollEvent(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.scrollListenerDestroy$.next();\n this.handleScroll();\n this.zone.runOutsideAngular(() => {\n fromEvent(this.getTarget(), 'scroll', { passive: true })\n .pipe(throttleTime(50), takeUntil(this.scrollListenerDestroy$))\n .subscribe(() => this.handleScroll());\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.scrollListenerDestroy$.next();\n }\n\n ngOnChanges(changes: any): void {\n const { thyContainer } = changes;\n if (thyContainer) {\n this.target = typeof this.thyContainer === 'string' ? this.doc.querySelector(this.thyContainer) : this.thyContainer;\n this.registerScrollEvent();\n }\n }\n}\n","<div class=\"thy-back-top\" #backTop @fadeMotion *ngIf=\"visible\">\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyBackTop } from './back-top.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyBackTop],\n exports: [ThyBackTop]\n})\nexport class ThyBackTopModule {}\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-back-top.mjs","sources":["../../../src/back-top/back-top.component.ts","../../../src/back-top/back-top.component.html","../../../src/back-top/back-top.module.ts","../../../src/back-top/ngx-tethys-back-top.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n TemplateRef,\n EventEmitter,\n Output,\n HostBinding,\n NgZone,\n ChangeDetectorRef,\n OnDestroy,\n OnChanges,\n ViewChild,\n ElementRef,\n numberAttribute,\n inject\n} from '@angular/core';\nimport { Subject, fromEvent, BehaviorSubject, EMPTY, Observable } from 'rxjs';\nimport { Platform } from '@angular/cdk/platform';\nimport { throttleTime, takeUntil, switchMap } from 'rxjs/operators';\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport { fadeMotion, ThyScrollService } from 'ngx-tethys/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 回到顶部组件\n * @name thy-back-top\n */\n@Component({\n selector: 'thy-back-top,[thyBackTop]',\n templateUrl: './back-top.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [fadeMotion],\n standalone: true,\n imports: [ThyIcon, NgTemplateOutlet]\n})\nexport class ThyBackTop implements OnInit, OnDestroy, OnChanges {\n private doc = inject(DOCUMENT);\n private thyScrollService = inject(ThyScrollService);\n private platform = inject(Platform);\n private cdr = inject(ChangeDetectorRef);\n private zone = inject(NgZone);\n\n @HostBinding('class.thy-back-top-container') classNames = true;\n\n /**\n * 自定义按钮显示模板\n */\n @Input() thyTemplate?: TemplateRef<void>;\n\n /**\n * 指定对哪个 DOM 元素返回顶部\n * @type string | HTMLElement\n * @default window\n */\n @Input() thyContainer?: string | HTMLElement;\n\n /**\n * 滚动高度达到此参数值才出现 thy-back-top\n * @type number\n */\n @Input({ transform: numberAttribute }) thyVisibilityHeight = 400;\n\n /**\n * 点击按钮的回调函数\n */\n @Output() readonly thyClick: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * 监听按钮显示状态的回调函数\n */\n @Output() public visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /** The native `<div class=\"thy-back-top\"></div>` element. */\n @ViewChild('backTop', { static: false })\n set backTop(backTop: ElementRef<HTMLElement> | undefined) {\n this.backTop$.next(backTop);\n }\n\n public visible = false;\n\n /**\n * The subject used to store the native `<div class=\"thy-back-top\"></div>` since\n * it's located within the `ngIf` directive. It might be set asynchronously whenever the condition\n * is met. Having subject makes the code reactive and cancellable (e.g. event listeners will be\n * automatically removed and re-added through the `switchMap` below).\n */\n private backTop$ = new BehaviorSubject<ElementRef<HTMLElement> | undefined>(undefined);\n\n private destroy$ = new Subject<void>();\n private scrollListenerDestroy$ = new Subject<void>();\n\n private target: HTMLElement | null = null;\n\n constructor() {\n const zone = this.zone;\n\n this.backTop$\n .pipe(\n switchMap(backTop =>\n backTop\n ? new Observable(subscriber =>\n zone.runOutsideAngular(() => fromEvent(backTop.nativeElement, 'click').subscribe(subscriber))\n )\n : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.thyScrollService.scrollTo(this.getTarget(), 0);\n if (this.thyClick.observers.length) {\n zone.run(() => this.thyClick.emit(true));\n }\n });\n }\n\n ngOnInit(): void {\n this.registerScrollEvent();\n }\n\n private getTarget(): HTMLElement | Window {\n return this.target || window;\n }\n\n private handleScroll(): void {\n if (this.visible === this.thyScrollService.getScroll(this.getTarget()) > this.thyVisibilityHeight) {\n return;\n }\n this.visible = !this.visible;\n this.cdr.detectChanges();\n if (this.visibleChange.observers.length > 0) {\n this.zone.run(() => {\n this.visibleChange.emit(this.visible);\n });\n }\n }\n\n private registerScrollEvent(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.scrollListenerDestroy$.next();\n this.handleScroll();\n this.zone.runOutsideAngular(() => {\n fromEvent(this.getTarget(), 'scroll', { passive: true })\n .pipe(throttleTime(50), takeUntil(this.scrollListenerDestroy$))\n .subscribe(() => this.handleScroll());\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.scrollListenerDestroy$.next();\n }\n\n ngOnChanges(changes: any): void {\n const { thyContainer } = changes;\n if (thyContainer) {\n this.target = typeof this.thyContainer === 'string' ? this.doc.querySelector(this.thyContainer) : this.thyContainer;\n this.registerScrollEvent();\n }\n }\n}\n","@if (visible) {\n <div class=\"thy-back-top\" #backTop @fadeMotion>\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyBackTop } from './back-top.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyBackTop],\n exports: [ThyBackTop]\n})\nexport class ThyBackTopModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { numberAttribute, Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
3
- import { NgIf, CommonModule } from '@angular/common';
2
+ import { inject, ElementRef, numberAttribute, Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
4
  import { isTextColor } from 'ngx-tethys/core';
5
5
  import { coerceBooleanProperty } from 'ngx-tethys/util';
6
6
 
@@ -9,8 +9,8 @@ import { coerceBooleanProperty } from 'ngx-tethys/util';
9
9
  * @name thy-badge,[thyBadge]
10
10
  */
11
11
  class ThyBadge {
12
- constructor(elementRef) {
13
- this.elementRef = elementRef;
12
+ constructor() {
13
+ this.elementRef = inject(ElementRef);
14
14
  this.displayContent = '';
15
15
  this.badgeClassName = '';
16
16
  this.initialized = false;
@@ -200,16 +200,16 @@ class ThyBadge {
200
200
  this.isShowBadge = true;
201
201
  }
202
202
  }
203
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBadge, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyBadge, isStandalone: true, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: ["thyCount", "thyCount", numberAttribute], thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thySize: "thySize", thyIsDot: ["thyIsDot", "thyIsDot", coerceBooleanProperty], thyIsHollow: ["thyIsHollow", "thyIsHollow", coerceBooleanProperty], thyKeepShow: ["thyKeepShow", "thyKeepShow", coerceBooleanProperty], thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-wrapper": "isWrapper" }, classAttribute: "thy-badge-container" }, ngImport: i0, template: "<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
203
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBadge, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyBadge, isStandalone: true, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: ["thyCount", "thyCount", numberAttribute], thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thySize: "thySize", thyIsDot: ["thyIsDot", "thyIsDot", coerceBooleanProperty], thyIsHollow: ["thyIsHollow", "thyIsHollow", coerceBooleanProperty], thyKeepShow: ["thyKeepShow", "thyKeepShow", coerceBooleanProperty], thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-wrapper": "isWrapper" }, classAttribute: "thy-badge-container" }, ngImport: i0, template: "@if (isShowBadge) {\n <div class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n </div>\n}\n<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
205
205
  }
206
206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBadge, decorators: [{
207
207
  type: Component,
208
208
  args: [{ selector: 'thy-badge,[thyBadge]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
209
209
  class: 'thy-badge-container',
210
210
  '[class.thy-badge-wrapper]': 'isWrapper'
211
- }, standalone: true, imports: [NgIf], template: "<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n" }]
212
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { thyType: [{
211
+ }, standalone: true, imports: [], template: "@if (isShowBadge) {\n <div class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n </div>\n}\n<ng-content></ng-content>\n" }]
212
+ }], ctorParameters: () => [], propDecorators: { thyType: [{
213
213
  type: Input
214
214
  }], thyCount: [{
215
215
  type: Input,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-badge.mjs","sources":["../../../src/badge/badge.component.ts","../../../src/badge/badge.component.html","../../../src/badge/badge.module.ts","../../../src/badge/ngx-tethys-badge.ts"],"sourcesContent":["import { isTextColor } from 'ngx-tethys/core';\n\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, numberAttribute } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyBadgeSize = 'md' | 'sm' | 'lg';\n\n/**\n * 徽标组件,支持组件`thy-badge`和`thyBadge`指令两种使用方式\n * @name thy-badge,[thyBadge]\n */\n@Component({\n selector: 'thy-badge,[thyBadge]',\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-badge-container',\n '[class.thy-badge-wrapper]': 'isWrapper'\n },\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyBadge implements OnInit {\n displayContent = '';\n\n badgeClassName = '';\n\n private nativeElement: any;\n\n private initialized = false;\n\n // 是否包裹在元素上\n protected isWrapper = false;\n\n public isShowBadge = true;\n\n private keepShowValue = false;\n\n private value: number | string = '';\n\n private valueHasBeenSet = false;\n\n private maxCount: number;\n\n private type: string;\n\n private size: ThyBadgeSize;\n\n private isDot: boolean;\n\n private isHollow: boolean;\n\n protected textColor: string;\n\n protected builtInTextColorClass: string;\n\n protected backgroundColor: string;\n\n protected builtInBackgroundColorClass: string;\n\n protected supClasses: string[] = [];\n\n constructor(private elementRef: ElementRef) {\n this.nativeElement = this.elementRef.nativeElement;\n }\n\n /**\n * 徽标类型\n * @type default | primary | danger | warning | success\n * @default danger\n */\n @Input()\n set thyType(value: string) {\n this.type = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标内容数字\n * @type number\n */\n @Input({ transform: numberAttribute })\n set thyCount(value: number) {\n this.value = value;\n this.valueHasBeenSet = true;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标内容文本\n * @type string\n */\n @Input()\n set thyContent(value: string) {\n this.value = value;\n this.valueHasBeenSet = true;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标内容文本,命名错误,请使用 thyContent\n * @deprecated\n */\n @Input()\n set thyContext(value: string) {\n this.thyContent = value;\n }\n\n /**\n * 徽标显示的最大值, 与 thyCount 一起使用,thyCount 超过了 thyMaxCount 设置的值时,徽标内容为 thyMaxCount+\n * @type number\n */\n @Input({ transform: numberAttribute })\n set thyMaxCount(value: number) {\n this.maxCount = value;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标显示的大小\n * @type md | sm | lg\n * @default md\n */\n @Input()\n set thySize(value: ThyBadgeSize) {\n this.size = value;\n\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标是一个实心点,已经被废弃\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyIsDot(value: boolean) {\n this.isDot = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标是一个空心点\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyIsHollow(value: boolean) {\n this.isHollow = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * thyCount 为 0 时,强制显示数字 0,默认不显示\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyKeepShow(value: boolean) {\n this.keepShowValue = value;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n }\n }\n\n /**\n * 设置徽标字体的颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...\n * @type string\n */\n @Input()\n set thyTextColor(value: string) {\n if (isTextColor(value)) {\n this.builtInTextColorClass = `text-${value}`;\n this.textColor = null;\n } else {\n this.textColor = value;\n this.builtInTextColorClass = null;\n }\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 设置徽标的背景颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...\n * @type string\n */\n @Input()\n set thyBackgroundColor(value: string) {\n if (isTextColor(value)) {\n this.builtInBackgroundColorClass = `bg-${value}`;\n this.backgroundColor = null;\n } else {\n this.backgroundColor = value;\n this.builtInBackgroundColorClass = null;\n }\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n ngOnInit() {\n let childNodeCount = 0;\n this.nativeElement.childNodes.forEach((n: HTMLElement) => {\n if (['#comment'].indexOf(n.nodeName) < 0) {\n childNodeCount++;\n }\n });\n this.isWrapper = childNodeCount > 0;\n\n this.combineBadgeClasses();\n\n if (this.valueHasBeenSet) {\n this.combineBadgeDisplayContent();\n }\n\n this.initialized = true;\n }\n\n private combineBadgeClasses() {\n const classes: string[] = [];\n classes.push(`thy-badge-${this.type || 'danger'}`);\n if (this.size) {\n classes.push(`thy-badge-${this.size}`);\n }\n if (this.isDot) {\n classes.push(`thy-badge-dot`);\n } else if (this.isHollow) {\n classes.push(`thy-badge-hollow`);\n } else {\n classes.push(`thy-badge-count`);\n }\n\n if (this.builtInTextColorClass) {\n classes.push(this.builtInTextColorClass);\n }\n if (this.builtInBackgroundColorClass) {\n classes.push(this.builtInBackgroundColorClass);\n }\n this.badgeClassName = classes.join(' ');\n }\n\n private combineBadgeDisplayContent() {\n this.displayContent = this.value as string;\n if (this.value && this.maxCount != undefined && (this.value as number) > this.maxCount) {\n this.displayContent = `${this.maxCount}+`;\n }\n\n if (!this.value && !this.keepShowValue) {\n this.isShowBadge = false;\n } else {\n this.isShowBadge = true;\n }\n }\n}\n","<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyBadge } from './badge.component';\n\n@NgModule({\n imports: [CommonModule, ThyBadge],\n exports: [ThyBadge]\n})\nexport class ThyBadgeModule {\n constructor() {}\n}\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-badge.mjs","sources":["../../../src/badge/badge.component.ts","../../../src/badge/badge.component.html","../../../src/badge/badge.module.ts","../../../src/badge/ngx-tethys-badge.ts"],"sourcesContent":["import { isTextColor } from 'ngx-tethys/core';\n\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, numberAttribute, inject } from '@angular/core';\n\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyBadgeSize = 'md' | 'sm' | 'lg';\n\n/**\n * 徽标组件,支持组件`thy-badge`和`thyBadge`指令两种使用方式\n * @name thy-badge,[thyBadge]\n */\n@Component({\n selector: 'thy-badge,[thyBadge]',\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-badge-container',\n '[class.thy-badge-wrapper]': 'isWrapper'\n },\n standalone: true,\n imports: []\n})\nexport class ThyBadge implements OnInit {\n private elementRef = inject(ElementRef);\n\n displayContent = '';\n\n badgeClassName = '';\n\n private nativeElement: any;\n\n private initialized = false;\n\n // 是否包裹在元素上\n protected isWrapper = false;\n\n public isShowBadge = true;\n\n private keepShowValue = false;\n\n private value: number | string = '';\n\n private valueHasBeenSet = false;\n\n private maxCount: number;\n\n private type: string;\n\n private size: ThyBadgeSize;\n\n private isDot: boolean;\n\n private isHollow: boolean;\n\n protected textColor: string;\n\n protected builtInTextColorClass: string;\n\n protected backgroundColor: string;\n\n protected builtInBackgroundColorClass: string;\n\n protected supClasses: string[] = [];\n\n constructor() {\n this.nativeElement = this.elementRef.nativeElement;\n }\n\n /**\n * 徽标类型\n * @type default | primary | danger | warning | success\n * @default danger\n */\n @Input()\n set thyType(value: string) {\n this.type = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标内容数字\n * @type number\n */\n @Input({ transform: numberAttribute })\n set thyCount(value: number) {\n this.value = value;\n this.valueHasBeenSet = true;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标内容文本\n * @type string\n */\n @Input()\n set thyContent(value: string) {\n this.value = value;\n this.valueHasBeenSet = true;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标内容文本,命名错误,请使用 thyContent\n * @deprecated\n */\n @Input()\n set thyContext(value: string) {\n this.thyContent = value;\n }\n\n /**\n * 徽标显示的最大值, 与 thyCount 一起使用,thyCount 超过了 thyMaxCount 设置的值时,徽标内容为 thyMaxCount+\n * @type number\n */\n @Input({ transform: numberAttribute })\n set thyMaxCount(value: number) {\n this.maxCount = value;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标显示的大小\n * @type md | sm | lg\n * @default md\n */\n @Input()\n set thySize(value: ThyBadgeSize) {\n this.size = value;\n\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标是一个实心点,已经被废弃\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyIsDot(value: boolean) {\n this.isDot = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标是一个空心点\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyIsHollow(value: boolean) {\n this.isHollow = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * thyCount 为 0 时,强制显示数字 0,默认不显示\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyKeepShow(value: boolean) {\n this.keepShowValue = value;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n }\n }\n\n /**\n * 设置徽标字体的颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...\n * @type string\n */\n @Input()\n set thyTextColor(value: string) {\n if (isTextColor(value)) {\n this.builtInTextColorClass = `text-${value}`;\n this.textColor = null;\n } else {\n this.textColor = value;\n this.builtInTextColorClass = null;\n }\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 设置徽标的背景颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...\n * @type string\n */\n @Input()\n set thyBackgroundColor(value: string) {\n if (isTextColor(value)) {\n this.builtInBackgroundColorClass = `bg-${value}`;\n this.backgroundColor = null;\n } else {\n this.backgroundColor = value;\n this.builtInBackgroundColorClass = null;\n }\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n ngOnInit() {\n let childNodeCount = 0;\n this.nativeElement.childNodes.forEach((n: HTMLElement) => {\n if (['#comment'].indexOf(n.nodeName) < 0) {\n childNodeCount++;\n }\n });\n this.isWrapper = childNodeCount > 0;\n\n this.combineBadgeClasses();\n\n if (this.valueHasBeenSet) {\n this.combineBadgeDisplayContent();\n }\n\n this.initialized = true;\n }\n\n private combineBadgeClasses() {\n const classes: string[] = [];\n classes.push(`thy-badge-${this.type || 'danger'}`);\n if (this.size) {\n classes.push(`thy-badge-${this.size}`);\n }\n if (this.isDot) {\n classes.push(`thy-badge-dot`);\n } else if (this.isHollow) {\n classes.push(`thy-badge-hollow`);\n } else {\n classes.push(`thy-badge-count`);\n }\n\n if (this.builtInTextColorClass) {\n classes.push(this.builtInTextColorClass);\n }\n if (this.builtInBackgroundColorClass) {\n classes.push(this.builtInBackgroundColorClass);\n }\n this.badgeClassName = classes.join(' ');\n }\n\n private combineBadgeDisplayContent() {\n this.displayContent = this.value as string;\n if (this.value && this.maxCount != undefined && (this.value as number) > this.maxCount) {\n this.displayContent = `${this.maxCount}+`;\n }\n\n if (!this.value && !this.keepShowValue) {\n this.isShowBadge = false;\n } else {\n this.isShowBadge = true;\n }\n }\n}\n","@if (isShowBadge) {\n <div class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n </div>\n}\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyBadge } from './badge.component';\n\n@NgModule({\n imports: [CommonModule, ThyBadge],\n exports: [ThyBadge]\n})\nexport class ThyBadgeModule {\n constructor() {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, numberAttribute, Input, ContentChild, NgModule } from '@angular/core';
3
- import { NgIf, NgFor, NgClass, NgTemplateOutlet, CommonModule } from '@angular/common';
2
+ import { inject, Renderer2, ElementRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, numberAttribute, Input, ContentChild, NgModule } from '@angular/core';
3
+ import { NgClass, NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
5
5
  import { ThyDropdownDirective, ThyDropdownMenuItemDirective, ThyDropdownMenuComponent, ThyDropdownMenuItemNameDirective, ThyDropdownModule } from 'ngx-tethys/dropdown';
6
6
  import { ThyAction, ThyActionModule } from 'ngx-tethys/action';
@@ -12,9 +12,9 @@ import { coerceBooleanProperty } from 'ngx-tethys/util';
12
12
  * @order 20
13
13
  */
14
14
  class ThyBreadcrumbItem {
15
- constructor(renderer, elementRef) {
16
- this.renderer = renderer;
17
- this.elementRef = elementRef;
15
+ constructor() {
16
+ this.renderer = inject(Renderer2);
17
+ this.elementRef = inject(ElementRef);
18
18
  }
19
19
  ngAfterViewInit() {
20
20
  this.wrapSpanForText(this.elementRef.nativeElement.childNodes);
@@ -34,7 +34,7 @@ class ThyBreadcrumbItem {
34
34
  }
35
35
  });
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBreadcrumbItem, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBreadcrumbItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
38
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyBreadcrumbItem, isStandalone: true, selector: "thy-breadcrumb-item,[thyBreadcrumbItem]", host: { classAttribute: "thy-breadcrumb-item" }, exportAs: ["ThyBreadcrumbItem"], ngImport: i0, template: '<ng-content></ng-content><thy-icon class="separator-icon" thyIconName="angle-right"></thy-icon>', isInline: true, dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
39
  }
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBreadcrumbItem, decorators: [{
@@ -50,7 +50,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
50
50
  standalone: true,
51
51
  imports: [ThyIcon]
52
52
  }]
53
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }] });
53
+ }] });
54
54
 
55
55
  const THY_BREADCRUMB_ITEM_ELLIPSIS_ID = 'THY_BREADCRUMB_ITEM_ELLIPSIS_ID';
56
56
  const ELLIPSIS_ITEM = { _id: THY_BREADCRUMB_ITEM_ELLIPSIS_ID };
@@ -60,14 +60,8 @@ const ELLIPSIS_ITEM = { _id: THY_BREADCRUMB_ITEM_ELLIPSIS_ID };
60
60
  * @order 10
61
61
  */
62
62
  class ThyBreadcrumb {
63
- /**
64
- * 面包屑的前缀 展示图标,如 folder-fill
65
- */
66
- set thyIcon(icon) {
67
- this.setIcon(icon);
68
- }
69
- constructor(cdr) {
70
- this.cdr = cdr;
63
+ constructor() {
64
+ this.cdr = inject(ChangeDetectorRef);
71
65
  /**
72
66
  * 最大显示数量,超出此数量后,面包屑会被省略, 0 表示不省略(仅当传入 thyItems 时有效)
73
67
  */
@@ -78,6 +72,12 @@ class ThyBreadcrumb {
78
72
  this.thyExpandable = true;
79
73
  this.ellipsisItemId = THY_BREADCRUMB_ITEM_ELLIPSIS_ID;
80
74
  }
75
+ /**
76
+ * 面包屑的前缀 展示图标,如 folder-fill
77
+ */
78
+ set thyIcon(icon) {
79
+ this.setIcon(icon);
80
+ }
81
81
  ngOnInit() {
82
82
  this.resetItems();
83
83
  }
@@ -118,8 +118,8 @@ class ThyBreadcrumb {
118
118
  this.ellipsisItems = [];
119
119
  }
120
120
  }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
122
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyBreadcrumb, isStandalone: true, selector: "thy-breadcrumb", inputs: { thyIcon: "thyIcon", thySeparator: "thySeparator", items: ["thyItems", "items"], thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thyExpandable: ["thyExpandable", "thyExpandable", coerceBooleanProperty] }, host: { properties: { "class.thy-breadcrumb-separator": "!!thySeparator", "class.thy-breadcrumb-separator-slash": "thySeparator === \"slash\"", "class.thy-breadcrumb-separator-backslash": "thySeparator === \"backslash\"", "class.thy-breadcrumb-separator-vertical-line": "thySeparator === \"vertical-line\"" }, classAttribute: "thy-breadcrumb" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"], descendants: true }], exportAs: ["ThyBreadcrumb"], usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-breadcrumb-icon\" *ngIf=\"svgIconName || iconClasses\">\n <thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\"></thy-icon>\n <ng-template #iconFont>\n <i [ngClass]=\"iconClasses\"></i>\n </ng-template>\n</div>\n\n<ng-container *ngFor=\"let item of showItems\">\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n <ng-container *ngIf=\"item?._id !== ellipsisItemId; else ellipsisTpl\">\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-template #ellipsisTpl>\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"\n ></a>\n </ng-template>\n </thy-breadcrumb-item>\n</ng-container>\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n <a thyDropdownMenuItem *ngFor=\"let item of ellipsisItems\" href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n </ng-container>\n <ng-template #defaultItemTpl>\n <thy-icon *ngIf=\"item?.icon\" [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n <span *ngIf=\"item?.name\">{{ item.name }}</span>\n </ng-template>\n</ng-template>\n\n<ng-content></ng-content>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyBreadcrumbItem, selector: "thy-breadcrumb-item,[thyBreadcrumbItem]", exportAs: ["ThyBreadcrumbItem"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBreadcrumb, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyBreadcrumb, isStandalone: true, selector: "thy-breadcrumb", inputs: { thyIcon: "thyIcon", thySeparator: "thySeparator", items: ["thyItems", "items"], thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thyExpandable: ["thyExpandable", "thyExpandable", coerceBooleanProperty] }, host: { properties: { "class.thy-breadcrumb-separator": "!!thySeparator", "class.thy-breadcrumb-separator-slash": "thySeparator === \"slash\"", "class.thy-breadcrumb-separator-backslash": "thySeparator === \"backslash\"", "class.thy-breadcrumb-separator-vertical-line": "thySeparator === \"vertical-line\"" }, classAttribute: "thy-breadcrumb" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"], descendants: true }], exportAs: ["ThyBreadcrumb"], usesOnChanges: true, ngImport: i0, template: "@if (svgIconName || iconClasses) {\n <div class=\"thy-breadcrumb-icon\">\n @if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n } @else {\n <i [ngClass]=\"iconClasses\"></i>\n }\n </div>\n}\n\n@for (item of showItems; track $index) {\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n @if (item?._id !== ellipsisItemId) {\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n } @else {\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"></a>\n }\n </thy-breadcrumb-item>\n}\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n @for (item of ellipsisItems; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n }\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n @if (itemTemplate) {\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n } @else {\n @if (item?.icon) {\n <thy-icon [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n }\n @if (item?.name) {\n <span>{{ item.name }}</span>\n }\n }\n</ng-template>\n\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyBreadcrumbItem, selector: "thy-breadcrumb-item,[thyBreadcrumbItem]", exportAs: ["ThyBreadcrumbItem"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
123
123
  }
124
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBreadcrumb, decorators: [{
125
125
  type: Component,
@@ -130,8 +130,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
130
130
  '[class.thy-breadcrumb-separator-backslash]': 'thySeparator === "backslash"',
131
131
  '[class.thy-breadcrumb-separator-vertical-line]': 'thySeparator === "vertical-line"'
132
132
  }, standalone: true, imports: [
133
- NgIf,
134
- NgFor,
135
133
  ThyIcon,
136
134
  NgClass,
137
135
  ThyBreadcrumbItem,
@@ -142,8 +140,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
142
140
  ThyDropdownMenuItemNameDirective,
143
141
  ThyDropdownMenuComponent,
144
142
  ThyIcon
145
- ], template: "<div class=\"thy-breadcrumb-icon\" *ngIf=\"svgIconName || iconClasses\">\n <thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\"></thy-icon>\n <ng-template #iconFont>\n <i [ngClass]=\"iconClasses\"></i>\n </ng-template>\n</div>\n\n<ng-container *ngFor=\"let item of showItems\">\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n <ng-container *ngIf=\"item?._id !== ellipsisItemId; else ellipsisTpl\">\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-template #ellipsisTpl>\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"\n ></a>\n </ng-template>\n </thy-breadcrumb-item>\n</ng-container>\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n <a thyDropdownMenuItem *ngFor=\"let item of ellipsisItems\" href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n </ng-container>\n <ng-template #defaultItemTpl>\n <thy-icon *ngIf=\"item?.icon\" [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n <span *ngIf=\"item?.name\">{{ item.name }}</span>\n </ng-template>\n</ng-template>\n\n<ng-content></ng-content>" }]
146
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { thyIcon: [{
143
+ ], template: "@if (svgIconName || iconClasses) {\n <div class=\"thy-breadcrumb-icon\">\n @if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n } @else {\n <i [ngClass]=\"iconClasses\"></i>\n }\n </div>\n}\n\n@for (item of showItems; track $index) {\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n @if (item?._id !== ellipsisItemId) {\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n } @else {\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"></a>\n }\n </thy-breadcrumb-item>\n}\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n @for (item of ellipsisItems; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n }\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n @if (itemTemplate) {\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n } @else {\n @if (item?.icon) {\n <thy-icon [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n }\n @if (item?.name) {\n <span>{{ item.name }}</span>\n }\n }\n</ng-template>\n\n<ng-content></ng-content>\n" }]
144
+ }], propDecorators: { thyIcon: [{
147
145
  type: Input
148
146
  }], thySeparator: [{
149
147
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-breadcrumb.mjs","sources":["../../../src/breadcrumb/breadcrumb-item.component.ts","../../../src/breadcrumb/breadcrumb.component.ts","../../../src/breadcrumb/breadcrumb.component.html","../../../src/breadcrumb/module.ts","../../../src/breadcrumb/ngx-tethys-breadcrumb.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 面包屑 Item 组件\n * @name thy-breadcrumb-item,[thyBreadcrumbItem]\n * @order 20\n */\n@Component({\n selector: 'thy-breadcrumb-item,[thyBreadcrumbItem]',\n template: '<ng-content></ng-content><thy-icon class=\"separator-icon\" thyIconName=\"angle-right\"></thy-icon>',\n exportAs: 'ThyBreadcrumbItem',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-breadcrumb-item'\n },\n standalone: true,\n imports: [ThyIcon]\n})\nexport class ThyBreadcrumbItem implements AfterViewInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef\n ) {}\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.elementRef.nativeElement.childNodes);\n const link: HTMLElement = this.elementRef.nativeElement.querySelector('a');\n if (link && link.childNodes) {\n this.wrapSpanForText(link.childNodes);\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-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Input,\n ContentChild,\n TemplateRef,\n numberAttribute,\n OnChanges,\n SimpleChanges,\n OnInit,\n ChangeDetectorRef\n} from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgClass, NgTemplateOutlet, NgFor } from '@angular/common';\nimport { ThyBreadcrumbItem } from './breadcrumb-item.component';\nimport { SafeAny } from 'ngx-tethys/types';\nimport {\n ThyDropdownDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective\n} from 'ngx-tethys/dropdown';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst THY_BREADCRUMB_ITEM_ELLIPSIS_ID = 'THY_BREADCRUMB_ITEM_ELLIPSIS_ID';\n\nconst ELLIPSIS_ITEM = { _id: THY_BREADCRUMB_ITEM_ELLIPSIS_ID };\n\n/**\n * 面包屑组件\n * @name thy-breadcrumb\n * @order 10\n */\n@Component({\n selector: 'thy-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n exportAs: 'ThyBreadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-breadcrumb',\n '[class.thy-breadcrumb-separator]': '!!thySeparator',\n '[class.thy-breadcrumb-separator-slash]': 'thySeparator === \"slash\"',\n '[class.thy-breadcrumb-separator-backslash]': 'thySeparator === \"backslash\"',\n '[class.thy-breadcrumb-separator-vertical-line]': 'thySeparator === \"vertical-line\"'\n },\n standalone: true,\n imports: [\n NgIf,\n NgFor,\n ThyIcon,\n NgClass,\n ThyBreadcrumbItem,\n NgTemplateOutlet,\n ThyAction,\n ThyDropdownDirective,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuComponent,\n ThyIcon\n ]\n})\nexport class ThyBreadcrumb implements OnInit, OnChanges {\n iconClasses: string[];\n svgIconName: string;\n\n /**\n * 面包屑的前缀 展示图标,如 folder-fill\n */\n @Input()\n set thyIcon(icon: string) {\n this.setIcon(icon);\n }\n\n /**\n * 面包屑的分隔符,不传值默认为 \">\"\n * @type slash | backslash | vertical-line\n */\n @Input() thySeparator: 'slash' | 'backslash' | 'vertical-line';\n\n /**\n * 面包屑的每一项数据\n */\n @Input({ alias: 'thyItems' }) items: SafeAny[];\n\n /**\n * 最大显示数量,超出此数量后,面包屑会被省略, 0 表示不省略(仅当传入 thyItems 时有效)\n */\n @Input({ transform: numberAttribute }) thyMaxCount = 4;\n\n /**\n * 是否可点击弹出已被省略的面包屑项(仅当传入 thyItems 时有效)\n */\n @Input({ transform: coerceBooleanProperty }) thyExpandable = true;\n\n /**\n * 面包屑的每一项模板(仅当传入 thyItems 时有效)\n */\n @ContentChild('item') itemTemplate: TemplateRef<SafeAny>;\n\n public ellipsisItemId = THY_BREADCRUMB_ITEM_ELLIPSIS_ID;\n\n public ellipsisItems: SafeAny[];\n\n public showItems: SafeAny[];\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.resetItems();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ((changes.items && !changes.items.firstChange) || (changes.thyMaxCount && !changes.thyMaxCount.firstChange)) {\n this.resetItems();\n }\n }\n\n private setIcon(icon: string) {\n if (icon) {\n if (icon.includes('wtf')) {\n const classes = icon.split(' ');\n if (classes.length === 1) {\n classes.unshift('wtf');\n }\n this.iconClasses = classes;\n } else {\n this.svgIconName = icon;\n }\n } else {\n this.iconClasses = null;\n this.svgIconName = null;\n }\n }\n\n private resetItems() {\n if (!this.items?.length) {\n return;\n }\n if (this.thyMaxCount && this.items.length > this.thyMaxCount) {\n const ellipsisIndex = this.items.length - this.thyMaxCount + 2;\n this.ellipsisItems = this.items.slice(1, ellipsisIndex);\n this.showItems = [this.items[0], ELLIPSIS_ITEM, ...this.items.slice(ellipsisIndex)];\n } else {\n this.showItems = [...this.items];\n this.ellipsisItems = [];\n }\n }\n}\n","<div class=\"thy-breadcrumb-icon\" *ngIf=\"svgIconName || iconClasses\">\n <thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\"></thy-icon>\n <ng-template #iconFont>\n <i [ngClass]=\"iconClasses\"></i>\n </ng-template>\n</div>\n\n<ng-container *ngFor=\"let item of showItems\">\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n <ng-container *ngIf=\"item?._id !== ellipsisItemId; else ellipsisTpl\">\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-template #ellipsisTpl>\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"\n ></a>\n </ng-template>\n </thy-breadcrumb-item>\n</ng-container>\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n <a thyDropdownMenuItem *ngFor=\"let item of ellipsisItems\" href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n </ng-container>\n <ng-template #defaultItemTpl>\n <thy-icon *ngIf=\"item?.icon\" [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n <span *ngIf=\"item?.name\">{{ item.name }}</span>\n </ng-template>\n</ng-template>\n\n<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyBreadcrumb } from './breadcrumb.component';\nimport { ThyBreadcrumbItem } from './breadcrumb-item.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyActionModule } from 'ngx-tethys/action';\nimport { ThyDropdownModule } from 'ngx-tethys/dropdown';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyBreadcrumb, ThyBreadcrumbItem, ThyActionModule, ThyDropdownModule],\n exports: [ThyBreadcrumb, ThyBreadcrumbItem]\n})\nexport class ThyBreadcrumbModule {}\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-breadcrumb.mjs","sources":["../../../src/breadcrumb/breadcrumb-item.component.ts","../../../src/breadcrumb/breadcrumb.component.ts","../../../src/breadcrumb/breadcrumb.component.html","../../../src/breadcrumb/module.ts","../../../src/breadcrumb/ngx-tethys-breadcrumb.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, AfterViewInit, ElementRef, Renderer2, inject } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 面包屑 Item 组件\n * @name thy-breadcrumb-item,[thyBreadcrumbItem]\n * @order 20\n */\n@Component({\n selector: 'thy-breadcrumb-item,[thyBreadcrumbItem]',\n template: '<ng-content></ng-content><thy-icon class=\"separator-icon\" thyIconName=\"angle-right\"></thy-icon>',\n exportAs: 'ThyBreadcrumbItem',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-breadcrumb-item'\n },\n standalone: true,\n imports: [ThyIcon]\n})\nexport class ThyBreadcrumbItem implements AfterViewInit {\n private renderer = inject(Renderer2);\n private elementRef = inject(ElementRef);\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.elementRef.nativeElement.childNodes);\n const link: HTMLElement = this.elementRef.nativeElement.querySelector('a');\n if (link && link.childNodes) {\n this.wrapSpanForText(link.childNodes);\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-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Input,\n ContentChild,\n TemplateRef,\n numberAttribute,\n OnChanges,\n SimpleChanges,\n OnInit,\n ChangeDetectorRef,\n inject\n} from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyBreadcrumbItem } from './breadcrumb-item.component';\nimport { SafeAny } from 'ngx-tethys/types';\nimport {\n ThyDropdownDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective\n} from 'ngx-tethys/dropdown';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst THY_BREADCRUMB_ITEM_ELLIPSIS_ID = 'THY_BREADCRUMB_ITEM_ELLIPSIS_ID';\n\nconst ELLIPSIS_ITEM = { _id: THY_BREADCRUMB_ITEM_ELLIPSIS_ID };\n\n/**\n * 面包屑组件\n * @name thy-breadcrumb\n * @order 10\n */\n@Component({\n selector: 'thy-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n exportAs: 'ThyBreadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-breadcrumb',\n '[class.thy-breadcrumb-separator]': '!!thySeparator',\n '[class.thy-breadcrumb-separator-slash]': 'thySeparator === \"slash\"',\n '[class.thy-breadcrumb-separator-backslash]': 'thySeparator === \"backslash\"',\n '[class.thy-breadcrumb-separator-vertical-line]': 'thySeparator === \"vertical-line\"'\n },\n standalone: true,\n imports: [\n ThyIcon,\n NgClass,\n ThyBreadcrumbItem,\n NgTemplateOutlet,\n ThyAction,\n ThyDropdownDirective,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuComponent,\n ThyIcon\n ]\n})\nexport class ThyBreadcrumb implements OnInit, OnChanges {\n private cdr = inject(ChangeDetectorRef);\n\n iconClasses: string[];\n svgIconName: string;\n\n /**\n * 面包屑的前缀 展示图标,如 folder-fill\n */\n @Input()\n set thyIcon(icon: string) {\n this.setIcon(icon);\n }\n\n /**\n * 面包屑的分隔符,不传值默认为 \">\"\n * @type slash | backslash | vertical-line\n */\n @Input() thySeparator: 'slash' | 'backslash' | 'vertical-line';\n\n /**\n * 面包屑的每一项数据\n */\n @Input({ alias: 'thyItems' }) items: SafeAny[];\n\n /**\n * 最大显示数量,超出此数量后,面包屑会被省略, 0 表示不省略(仅当传入 thyItems 时有效)\n */\n @Input({ transform: numberAttribute }) thyMaxCount = 4;\n\n /**\n * 是否可点击弹出已被省略的面包屑项(仅当传入 thyItems 时有效)\n */\n @Input({ transform: coerceBooleanProperty }) thyExpandable = true;\n\n /**\n * 面包屑的每一项模板(仅当传入 thyItems 时有效)\n */\n @ContentChild('item') itemTemplate: TemplateRef<SafeAny>;\n\n public ellipsisItemId = THY_BREADCRUMB_ITEM_ELLIPSIS_ID;\n\n public ellipsisItems: SafeAny[];\n\n public showItems: SafeAny[];\n\n ngOnInit() {\n this.resetItems();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ((changes.items && !changes.items.firstChange) || (changes.thyMaxCount && !changes.thyMaxCount.firstChange)) {\n this.resetItems();\n }\n }\n\n private setIcon(icon: string) {\n if (icon) {\n if (icon.includes('wtf')) {\n const classes = icon.split(' ');\n if (classes.length === 1) {\n classes.unshift('wtf');\n }\n this.iconClasses = classes;\n } else {\n this.svgIconName = icon;\n }\n } else {\n this.iconClasses = null;\n this.svgIconName = null;\n }\n }\n\n private resetItems() {\n if (!this.items?.length) {\n return;\n }\n if (this.thyMaxCount && this.items.length > this.thyMaxCount) {\n const ellipsisIndex = this.items.length - this.thyMaxCount + 2;\n this.ellipsisItems = this.items.slice(1, ellipsisIndex);\n this.showItems = [this.items[0], ELLIPSIS_ITEM, ...this.items.slice(ellipsisIndex)];\n } else {\n this.showItems = [...this.items];\n this.ellipsisItems = [];\n }\n }\n}\n","@if (svgIconName || iconClasses) {\n <div class=\"thy-breadcrumb-icon\">\n @if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n } @else {\n <i [ngClass]=\"iconClasses\"></i>\n }\n </div>\n}\n\n@for (item of showItems; track $index) {\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n @if (item?._id !== ellipsisItemId) {\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n } @else {\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"></a>\n }\n </thy-breadcrumb-item>\n}\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n @for (item of ellipsisItems; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n }\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n @if (itemTemplate) {\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n } @else {\n @if (item?.icon) {\n <thy-icon [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n }\n @if (item?.name) {\n <span>{{ item.name }}</span>\n }\n }\n</ng-template>\n\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyBreadcrumb } from './breadcrumb.component';\nimport { ThyBreadcrumbItem } from './breadcrumb-item.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyActionModule } from 'ngx-tethys/action';\nimport { ThyDropdownModule } from 'ngx-tethys/dropdown';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyBreadcrumb, ThyBreadcrumbItem, ThyActionModule, ThyDropdownModule],\n exports: [ThyBreadcrumb, ThyBreadcrumbItem]\n})\nexport class ThyBreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { NgIf, NgClass, CommonModule } from '@angular/common';
1
+ import { NgClass, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, ViewEncapsulation, Input, HostBinding, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { Component, ViewEncapsulation, Input, HostBinding, ChangeDetectionStrategy, inject, ElementRef, Renderer2, NgModule } from '@angular/core';
4
4
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
5
5
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
6
6
  import { useHostRenderer } from '@tethys/cdk/dom';
@@ -215,11 +215,11 @@ class ThyButtonIcon {
215
215
  this.initialized = true;
216
216
  }
217
217
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButtonIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyButtonIcon, isStandalone: true, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: { thySize: "thySize", thyIcon: "thyIcon", thyButtonIcon: "thyButtonIcon", thyShape: "thyShape", thyLight: ["thyLight", "thyLight", coerceBooleanProperty$1], thyActive: ["thyActive", "thyActive", coerceBooleanProperty$1], thyTheme: "thyTheme", thyColor: "thyColor" }, host: { properties: { "class.btn": "this._isBtn", "class.btn-icon": "this._isBtnIcon", "class.btn-icon-light": "this._isLighted", "class.btn-icon-active": "this._isActive" } }, ngImport: i0, template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClasses\" *ngIf=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n</ng-template>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
218
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyButtonIcon, isStandalone: true, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: { thySize: "thySize", thyIcon: "thyIcon", thyButtonIcon: "thyButtonIcon", thyShape: "thyShape", thyLight: ["thyLight", "thyLight", coerceBooleanProperty$1], thyActive: ["thyActive", "thyActive", coerceBooleanProperty$1], thyTheme: "thyTheme", thyColor: "thyColor" }, host: { properties: { "class.btn": "this._isBtn", "class.btn-icon": "this._isBtnIcon", "class.btn-icon-light": "this._isLighted", "class.btn-icon-active": "this._isActive" } }, ngImport: i0, template: "@if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n} @else {\n @if (iconClasses) {\n <i [ngClass]=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n }\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
219
219
  }
220
220
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButtonIcon, decorators: [{
221
221
  type: Component,
222
- args: [{ selector: 'thy-button-icon,[thy-button-icon],[thyButtonIcon]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ThyIcon, NgClass], template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClasses\" *ngIf=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n</ng-template>\n<ng-content></ng-content>\n" }]
222
+ args: [{ selector: 'thy-button-icon,[thy-button-icon],[thyButtonIcon]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ThyIcon, NgClass], template: "@if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n} @else {\n @if (iconClasses) {\n <i [ngClass]=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n }\n}\n<ng-content></ng-content>\n" }]
223
223
  }], ctorParameters: () => [], propDecorators: { thySize: [{
224
224
  type: Input
225
225
  }], thyIcon: [{
@@ -274,6 +274,14 @@ const iconOnlyClass = 'thy-btn-icon-only';
274
274
  * @order 10
275
275
  */
276
276
  class ThyButton {
277
+ constructor() {
278
+ this.elementRef = inject(ElementRef);
279
+ this.renderer = inject(Renderer2);
280
+ this._initialized = false;
281
+ // 圆角方形
282
+ this._isRadiusSquare = false;
283
+ this.hostRenderer = useHostRenderer();
284
+ }
277
285
  get nativeElement() {
278
286
  return this.elementRef.nativeElement;
279
287
  }
@@ -401,14 +409,6 @@ class ThyButton {
401
409
  }
402
410
  this.hostRenderer.updateClass(classNames);
403
411
  }
404
- constructor(elementRef, renderer) {
405
- this.elementRef = elementRef;
406
- this.renderer = renderer;
407
- this._initialized = false;
408
- // 圆角方形
409
- this._isRadiusSquare = false;
410
- this.hostRenderer = useHostRenderer();
411
- }
412
412
  ngOnInit() {
413
413
  this.updateClasses();
414
414
  this._initialized = true;
@@ -433,15 +433,15 @@ class ThyButton {
433
433
  }
434
434
  });
435
435
  }
436
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButton, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
437
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyButton, isStandalone: true, selector: "thy-button,[thy-button],[thyButton]", inputs: { thyButton: "thyButton", thyType: "thyType", thyLoading: ["thyLoading", "thyLoading", coerceBooleanProperty$1], thyLoadingText: "thyLoadingText", thySize: "thySize", thyIcon: "thyIcon", thyBlock: ["thyBlock", "thyBlock", coerceBooleanProperty$1] }, host: { properties: { "class.btn-block": "this.thyBlock" }, classAttribute: "thy-btn btn" }, ngImport: i0, template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClass\" *ngIf=\"iconClass\"></i>\n</ng-template>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
436
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
437
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyButton, isStandalone: true, selector: "thy-button,[thy-button],[thyButton]", inputs: { thyButton: "thyButton", thyType: "thyType", thyLoading: ["thyLoading", "thyLoading", coerceBooleanProperty$1], thyLoadingText: "thyLoadingText", thySize: "thySize", thyIcon: "thyIcon", thyBlock: ["thyBlock", "thyBlock", coerceBooleanProperty$1] }, host: { properties: { "class.btn-block": "this.thyBlock" }, classAttribute: "thy-btn btn" }, ngImport: i0, template: "@if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n} @else {\n @if (iconClass) {\n <i [ngClass]=\"iconClass\"></i>\n }\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
438
438
  }
439
439
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButton, decorators: [{
440
440
  type: Component,
441
441
  args: [{ selector: 'thy-button,[thy-button],[thyButton]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
442
442
  class: 'thy-btn btn'
443
- }, standalone: true, imports: [NgIf, ThyIcon, NgClass], template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClass\" *ngIf=\"iconClass\"></i>\n</ng-template>\n<ng-content></ng-content>\n" }]
444
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { thyButton: [{
443
+ }, standalone: true, imports: [ThyIcon, NgClass], template: "@if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n} @else {\n @if (iconClass) {\n <i [ngClass]=\"iconClass\"></i>\n }\n}\n<ng-content></ng-content>\n" }]
444
+ }], propDecorators: { thyButton: [{
445
445
  type: Input
446
446
  }], thyType: [{
447
447
  type: Input