ngx-tethys 18.1.0-next.0 → 18.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/action/action.component.d.ts +1 -2
  3. package/affix/affix.component.d.ts +2 -4
  4. package/anchor/anchor-link.component.d.ts +2 -4
  5. package/anchor/anchor.component.d.ts +1 -4
  6. package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
  7. package/autocomplete/autocomplete.component.d.ts +1 -2
  8. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
  9. package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
  10. package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
  11. package/avatar/avatar.component.d.ts +1 -3
  12. package/avatar/avatar.pipe.d.ts +0 -2
  13. package/back-top/back-top.component.d.ts +2 -4
  14. package/badge/badge.component.d.ts +5 -14
  15. package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
  16. package/breadcrumb/breadcrumb.component.d.ts +1 -2
  17. package/button/button.component.d.ts +1 -2
  18. package/calendar/calendar-header.component.d.ts +1 -2
  19. package/calendar/calendar.component.d.ts +1 -2
  20. package/carousel/carousel-item.directive.d.ts +1 -2
  21. package/carousel/carousel.component.d.ts +1 -4
  22. package/carousel/carousel.service.d.ts +1 -2
  23. package/cascader/cascader.component.d.ts +4 -4
  24. package/checkbox/checkbox.component.d.ts +0 -2
  25. package/collapse/collapse-item.component.d.ts +2 -4
  26. package/color-picker/color-picker-panel.component.d.ts +2 -3
  27. package/color-picker/color-picker.component.d.ts +2 -4
  28. package/color-picker/coordinates.directive.d.ts +1 -2
  29. package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
  30. package/color-picker/parts/hue/hue.component.d.ts +1 -2
  31. package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
  32. package/copy/copy.directive.d.ts +0 -2
  33. package/core/click-positioner.d.ts +0 -2
  34. package/core/scroll.d.ts +1 -2
  35. package/core/update-host-class.service.d.ts +1 -2
  36. package/date-picker/abstract-picker.component.d.ts +1 -1
  37. package/date-picker/abstract-picker.directive.d.ts +2 -3
  38. package/date-picker/base-picker.component.d.ts +2 -3
  39. package/date-picker/date-picker.component.d.ts +2 -2
  40. package/date-picker/date-picker.directive.d.ts +1 -3
  41. package/date-picker/date-picker.service.d.ts +2 -2
  42. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
  43. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
  44. package/date-picker/lib/date/date-header.component.d.ts +0 -3
  45. package/date-picker/lib/date/date-table.component.d.ts +1 -3
  46. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
  47. package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
  48. package/date-picker/lib/month/month-header.component.d.ts +0 -3
  49. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  50. package/date-picker/lib/popups/date-popup.component.d.ts +1 -3
  51. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -4
  52. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
  53. package/date-picker/lib/year/year-header.component.d.ts +0 -1
  54. package/date-picker/month-picker.component.d.ts +2 -2
  55. package/date-picker/picker.component.d.ts +1 -3
  56. package/date-picker/picker.pipes.d.ts +0 -3
  57. package/date-picker/quarter-picker.component.d.ts +2 -2
  58. package/date-picker/range-picker.component.d.ts +2 -2
  59. package/date-picker/range-picker.directive.d.ts +2 -3
  60. package/date-picker/week-picker.component.d.ts +2 -2
  61. package/date-picker/year-picker.component.d.ts +2 -2
  62. package/date-range/date-range.component.d.ts +1 -3
  63. package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
  64. package/dialog/body/dialog-body.component.d.ts +0 -2
  65. package/dialog/confirm/confirm.component.d.ts +2 -3
  66. package/dialog/dialog-container.component.d.ts +4 -5
  67. package/dialog/dialog.service.d.ts +4 -4
  68. package/dialog/footer/dialog-footer.component.d.ts +2 -2
  69. package/dialog/header/dialog-header.component.d.ts +2 -6
  70. package/dot/dot.component.d.ts +1 -2
  71. package/drag-drop/drag-content.directive.d.ts +2 -3
  72. package/drag-drop/drag-handle.directive.d.ts +2 -3
  73. package/drag-drop/drag.directive.d.ts +4 -5
  74. package/drag-drop/drop-container.directive.d.ts +6 -3
  75. package/dropdown/dropdown-active.directive.d.ts +3 -4
  76. package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
  77. package/dropdown/dropdown-submenu.component.d.ts +1 -3
  78. package/dropdown/dropdown.directive.d.ts +3 -5
  79. package/empty/empty.component.d.ts +6 -6
  80. package/esm2022/action/action.component.mjs +18 -18
  81. package/esm2022/affix/affix.component.mjs +11 -14
  82. package/esm2022/anchor/anchor-link.component.mjs +9 -10
  83. package/esm2022/anchor/anchor.component.mjs +11 -16
  84. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +22 -22
  85. package/esm2022/autocomplete/autocomplete.component.mjs +7 -7
  86. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
  87. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
  88. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
  89. package/esm2022/avatar/avatar.component.mjs +24 -25
  90. package/esm2022/avatar/avatar.pipe.mjs +6 -7
  91. package/esm2022/back-top/back-top.component.mjs +11 -15
  92. package/esm2022/badge/badge.component.mjs +6 -6
  93. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  94. package/esm2022/breadcrumb/breadcrumb.component.mjs +12 -12
  95. package/esm2022/button/button.component.mjs +12 -12
  96. package/esm2022/calendar/calendar-header.component.mjs +12 -12
  97. package/esm2022/calendar/calendar.component.mjs +12 -12
  98. package/esm2022/carousel/carousel-item.directive.mjs +7 -6
  99. package/esm2022/carousel/carousel.component.mjs +10 -12
  100. package/esm2022/carousel/carousel.service.mjs +7 -9
  101. package/esm2022/cascader/cascader.component.mjs +11 -16
  102. package/esm2022/checkbox/checkbox.component.mjs +7 -9
  103. package/esm2022/collapse/collapse-item.component.mjs +18 -21
  104. package/esm2022/color-picker/color-picker-panel.component.mjs +11 -12
  105. package/esm2022/color-picker/color-picker.component.mjs +10 -11
  106. package/esm2022/color-picker/coordinates.directive.mjs +10 -10
  107. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
  108. package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
  109. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
  110. package/esm2022/copy/copy.directive.mjs +8 -12
  111. package/esm2022/core/click-positioner.mjs +6 -7
  112. package/esm2022/core/scroll.mjs +7 -9
  113. package/esm2022/core/store/store.mjs +1 -1
  114. package/esm2022/core/update-host-class.service.mjs +6 -6
  115. package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
  116. package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
  117. package/esm2022/date-picker/base-picker.component.mjs +26 -26
  118. package/esm2022/date-picker/date-picker.component.mjs +6 -6
  119. package/esm2022/date-picker/date-picker.directive.mjs +6 -8
  120. package/esm2022/date-picker/date-picker.service.mjs +6 -10
  121. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  122. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
  123. package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -9
  124. package/esm2022/date-picker/lib/date/date-table.component.mjs +7 -9
  125. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +12 -12
  126. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +5 -8
  127. package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -9
  128. package/esm2022/date-picker/lib/month/month-table.component.mjs +6 -7
  129. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +12 -13
  130. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +12 -13
  131. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +6 -7
  132. package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -9
  133. package/esm2022/date-picker/month-picker.component.mjs +6 -7
  134. package/esm2022/date-picker/picker.component.mjs +21 -22
  135. package/esm2022/date-picker/picker.pipes.mjs +10 -11
  136. package/esm2022/date-picker/quarter-picker.component.mjs +6 -7
  137. package/esm2022/date-picker/range-picker.component.mjs +6 -7
  138. package/esm2022/date-picker/range-picker.directive.mjs +6 -8
  139. package/esm2022/date-picker/week-picker.component.mjs +6 -7
  140. package/esm2022/date-picker/year-picker.component.mjs +6 -7
  141. package/esm2022/date-range/date-range.component.mjs +14 -15
  142. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +8 -9
  143. package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
  144. package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
  145. package/esm2022/dialog/dialog-container.component.mjs +13 -18
  146. package/esm2022/dialog/dialog.service.mjs +10 -17
  147. package/esm2022/dialog/footer/dialog-footer.component.mjs +7 -11
  148. package/esm2022/dialog/header/dialog-header.component.mjs +14 -19
  149. package/esm2022/dot/dot.component.mjs +7 -7
  150. package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
  151. package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
  152. package/esm2022/drag-drop/drag.directive.mjs +13 -16
  153. package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
  154. package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
  155. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
  156. package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
  157. package/esm2022/dropdown/dropdown.directive.mjs +12 -10
  158. package/esm2022/empty/empty.component.mjs +14 -17
  159. package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
  160. package/esm2022/form/form-group-error/form-group-error.component.mjs +9 -12
  161. package/esm2022/form/form-group-label.directive.mjs +9 -10
  162. package/esm2022/form/form-group.component.mjs +15 -19
  163. package/esm2022/form/form-submit.directive.mjs +6 -7
  164. package/esm2022/form/form-validator-loader.mjs +1 -1
  165. package/esm2022/form/form-validator.service.mjs +12 -13
  166. package/esm2022/form/form.directive.mjs +11 -16
  167. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +10 -16
  168. package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
  169. package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
  170. package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
  171. package/esm2022/grid/thy-col.directive.mjs +9 -14
  172. package/esm2022/grid/thy-grid-item.component.mjs +8 -14
  173. package/esm2022/grid/thy-grid.component.mjs +7 -8
  174. package/esm2022/guider/guider.directive.mjs +8 -9
  175. package/esm2022/guider/guider.service.mjs +12 -19
  176. package/esm2022/icon/icon-registry.mjs +11 -16
  177. package/esm2022/icon/icon.component.mjs +8 -9
  178. package/esm2022/image/image-group.component.mjs +7 -7
  179. package/esm2022/image/image.directive.mjs +11 -12
  180. package/esm2022/image/image.service.mjs +8 -14
  181. package/esm2022/image/preview/image-preview.component.mjs +34 -38
  182. package/esm2022/input/input-count.component.mjs +7 -10
  183. package/esm2022/input/input-group.component.mjs +12 -13
  184. package/esm2022/input/input-search.component.mjs +7 -7
  185. package/esm2022/input/input.component.mjs +14 -14
  186. package/esm2022/input/input.directive.mjs +12 -17
  187. package/esm2022/input-number/input-number.component.mjs +6 -6
  188. package/esm2022/layout/sidebar.component.mjs +45 -51
  189. package/esm2022/list/selection/selection-list.mjs +25 -25
  190. package/esm2022/loading/loading.component.mjs +8 -8
  191. package/esm2022/mention/mention.directive.mjs +9 -14
  192. package/esm2022/mention/suggestions/suggestions.component.mjs +8 -9
  193. package/esm2022/menu/group/menu-group.component.mjs +34 -35
  194. package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
  195. package/esm2022/menu/item/menu-item.component.mjs +6 -6
  196. package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
  197. package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
  198. package/esm2022/message/message-container.component.mjs +9 -11
  199. package/esm2022/message/message-queue.service.mjs +6 -8
  200. package/esm2022/message/message.component.mjs +7 -7
  201. package/esm2022/message/message.service.mjs +10 -11
  202. package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
  203. package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
  204. package/esm2022/nav/nav-item.directive.mjs +8 -11
  205. package/esm2022/nav/nav.component.mjs +32 -33
  206. package/esm2022/nav/nav.pipe.mjs +6 -7
  207. package/esm2022/notify/notify-container.component.mjs +8 -11
  208. package/esm2022/notify/notify-queue.service.mjs +6 -8
  209. package/esm2022/notify/notify.component.mjs +7 -7
  210. package/esm2022/notify/notify.service.mjs +11 -12
  211. package/esm2022/pagination/pagination.component.mjs +38 -43
  212. package/esm2022/pagination/pagination.pipe.mjs +6 -7
  213. package/esm2022/popover/header/popover-header.component.mjs +12 -14
  214. package/esm2022/popover/popover-container.component.mjs +11 -13
  215. package/esm2022/popover/popover.directive.mjs +13 -12
  216. package/esm2022/popover/popover.service.mjs +14 -26
  217. package/esm2022/progress/progress-strip.component.mjs +10 -13
  218. package/esm2022/property/property-item.component.mjs +10 -13
  219. package/esm2022/property-operation/property-operation.component.mjs +24 -25
  220. package/esm2022/radio/button/radio-button.component.mjs +9 -15
  221. package/esm2022/radio/group/radio-group.component.mjs +17 -17
  222. package/esm2022/radio/radio.component.mjs +8 -14
  223. package/esm2022/rate/rate.component.mjs +6 -6
  224. package/esm2022/resizable/resizable.directive.mjs +10 -12
  225. package/esm2022/resizable/resizable.service.mjs +7 -9
  226. package/esm2022/resizable/resize-handle.component.mjs +7 -8
  227. package/esm2022/segment/segment-item.component.mjs +12 -15
  228. package/esm2022/segment/segment.component.mjs +26 -26
  229. package/esm2022/select/custom-select/custom-select.component.mjs +14 -28
  230. package/esm2022/select/native-select/native-select.component.mjs +6 -6
  231. package/esm2022/shared/base-form-check.component.mjs +7 -8
  232. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
  233. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
  234. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
  235. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
  236. package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
  237. package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
  238. package/esm2022/shared/directives/thy-show.mjs +11 -11
  239. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
  240. package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
  241. package/esm2022/shared/ng-transclude.directive.mjs +6 -5
  242. package/esm2022/shared/option/group/option-group.component.mjs +10 -10
  243. package/esm2022/shared/option/list-option/list-option.component.mjs +12 -19
  244. package/esm2022/shared/option/option.component.mjs +9 -19
  245. package/esm2022/shared/select/select-control/select-control.component.mjs +23 -23
  246. package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
  247. package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
  248. package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
  249. package/esm2022/slide/slide-container.component.mjs +12 -16
  250. package/esm2022/slide/slide-header/slide-header.component.mjs +10 -11
  251. package/esm2022/slide/slide-ref.service.mjs +1 -1
  252. package/esm2022/slide/slide.service.mjs +8 -12
  253. package/esm2022/slider/slider.component.mjs +8 -8
  254. package/esm2022/space/space.component.mjs +13 -13
  255. package/esm2022/statistic/statistic.component.mjs +20 -20
  256. package/esm2022/stepper/step.component.mjs +6 -11
  257. package/esm2022/stepper/stepper-button.directive.mjs +10 -11
  258. package/esm2022/strength/strength.component.mjs +11 -12
  259. package/esm2022/switch/switch.component.mjs +6 -6
  260. package/esm2022/table/table-column.component.mjs +58 -63
  261. package/esm2022/table/table-skeleton.component.mjs +32 -32
  262. package/esm2022/table/table.component.mjs +16 -24
  263. package/esm2022/tabs/tabs.component.mjs +19 -19
  264. package/esm2022/tag/tag.component.mjs +22 -22
  265. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +10 -9
  266. package/esm2022/time-picker/time-picker-panel.component.mjs +27 -27
  267. package/esm2022/time-picker/time-picker.component.mjs +29 -29
  268. package/esm2022/timeline/timeline-item.component.mjs +12 -13
  269. package/esm2022/timeline/timeline.component.mjs +7 -8
  270. package/esm2022/tooltip/tooltip.component.mjs +14 -14
  271. package/esm2022/tooltip/tooltip.directive.mjs +11 -10
  272. package/esm2022/tooltip/tooltip.service.mjs +9 -13
  273. package/esm2022/transfer/transfer-list.component.mjs +6 -6
  274. package/esm2022/tree/tree-node.component.mjs +13 -17
  275. package/esm2022/tree/tree.component.mjs +86 -90
  276. package/esm2022/tree-select/tree-select.component.mjs +22 -27
  277. package/esm2022/typography/bg-color.directive.mjs +9 -9
  278. package/esm2022/typography/text-color.directive.mjs +9 -9
  279. package/esm2022/upload/file-drop.directive.mjs +1 -1
  280. package/esm2022/upload/file-select-base.mjs +5 -6
  281. package/esm2022/upload/file-select.component.mjs +4 -3
  282. package/esm2022/upload/upload.service.mjs +6 -7
  283. package/esm2022/version.mjs +2 -2
  284. package/esm2022/watermark/watermark.directive.mjs +12 -12
  285. package/fesm2022/ngx-tethys-action.mjs +17 -17
  286. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  287. package/fesm2022/ngx-tethys-affix.mjs +12 -14
  288. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  289. package/fesm2022/ngx-tethys-anchor.mjs +19 -22
  290. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  291. package/fesm2022/ngx-tethys-arrow-switcher.mjs +21 -21
  292. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  293. package/fesm2022/ngx-tethys-autocomplete.mjs +59 -71
  294. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  295. package/fesm2022/ngx-tethys-avatar.mjs +27 -27
  296. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  297. package/fesm2022/ngx-tethys-back-top.mjs +12 -15
  298. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  299. package/fesm2022/ngx-tethys-badge.mjs +5 -5
  300. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  301. package/fesm2022/ngx-tethys-breadcrumb.mjs +16 -16
  302. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  303. package/fesm2022/ngx-tethys-button.mjs +11 -11
  304. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  305. package/fesm2022/ngx-tethys-calendar.mjs +21 -21
  306. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  307. package/fesm2022/ngx-tethys-carousel.mjs +20 -21
  308. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  309. package/fesm2022/ngx-tethys-cascader.mjs +11 -15
  310. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  311. package/fesm2022/ngx-tethys-checkbox.mjs +6 -7
  312. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  313. package/fesm2022/ngx-tethys-collapse.mjs +17 -19
  314. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  315. package/fesm2022/ngx-tethys-color-picker.mjs +44 -42
  316. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  317. package/fesm2022/ngx-tethys-copy.mjs +8 -12
  318. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  319. package/fesm2022/ngx-tethys-core.mjs +14 -16
  320. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  321. package/fesm2022/ngx-tethys-date-picker.mjs +192 -216
  322. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  323. package/fesm2022/ngx-tethys-date-range.mjs +20 -20
  324. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  325. package/fesm2022/ngx-tethys-dialog.mjs +56 -72
  326. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  327. package/fesm2022/ngx-tethys-dot.mjs +6 -6
  328. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  329. package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
  330. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  331. package/fesm2022/ngx-tethys-dropdown.mjs +39 -37
  332. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  333. package/fesm2022/ngx-tethys-empty.mjs +15 -15
  334. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  335. package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
  336. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  337. package/fesm2022/ngx-tethys-form.mjs +67 -82
  338. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  339. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
  340. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  341. package/fesm2022/ngx-tethys-grid.mjs +20 -29
  342. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  343. package/fesm2022/ngx-tethys-guider.mjs +17 -23
  344. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  345. package/fesm2022/ngx-tethys-icon.mjs +18 -22
  346. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  347. package/fesm2022/ngx-tethys-image.mjs +57 -62
  348. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  349. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  350. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  351. package/fesm2022/ngx-tethys-input.mjs +46 -53
  352. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  353. package/fesm2022/ngx-tethys-layout.mjs +45 -50
  354. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  355. package/fesm2022/ngx-tethys-list.mjs +24 -24
  356. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  357. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  358. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  359. package/fesm2022/ngx-tethys-mention.mjs +16 -21
  360. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  361. package/fesm2022/ngx-tethys-menu.mjs +51 -52
  362. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  363. package/fesm2022/ngx-tethys-message.mjs +33 -35
  364. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  365. package/fesm2022/ngx-tethys-nav.mjs +55 -64
  366. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  367. package/fesm2022/ngx-tethys-notify.mjs +26 -29
  368. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  369. package/fesm2022/ngx-tethys-pagination.mjs +44 -49
  370. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  371. package/fesm2022/ngx-tethys-popover.mjs +48 -54
  372. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  373. package/fesm2022/ngx-tethys-progress.mjs +9 -12
  374. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  375. package/fesm2022/ngx-tethys-property-operation.mjs +24 -24
  376. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  377. package/fesm2022/ngx-tethys-property.mjs +11 -11
  378. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  379. package/fesm2022/ngx-tethys-radio.mjs +29 -35
  380. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  381. package/fesm2022/ngx-tethys-rate.mjs +5 -5
  382. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  383. package/fesm2022/ngx-tethys-resizable.mjs +22 -25
  384. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  385. package/fesm2022/ngx-tethys-segment.mjs +35 -38
  386. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  387. package/fesm2022/ngx-tethys-select.mjs +20 -34
  388. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  389. package/fesm2022/ngx-tethys-shared.mjs +128 -143
  390. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  391. package/fesm2022/ngx-tethys-skeleton.mjs +11 -25
  392. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  393. package/fesm2022/ngx-tethys-slide.mjs +30 -34
  394. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  395. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  396. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  397. package/fesm2022/ngx-tethys-space.mjs +13 -13
  398. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  399. package/fesm2022/ngx-tethys-statistic.mjs +19 -19
  400. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  401. package/fesm2022/ngx-tethys-stepper.mjs +13 -18
  402. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  403. package/fesm2022/ngx-tethys-strength.mjs +11 -11
  404. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  405. package/fesm2022/ngx-tethys-switch.mjs +5 -5
  406. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  407. package/fesm2022/ngx-tethys-table.mjs +103 -115
  408. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  409. package/fesm2022/ngx-tethys-tabs.mjs +19 -19
  410. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  411. package/fesm2022/ngx-tethys-tag.mjs +21 -21
  412. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  413. package/fesm2022/ngx-tethys-time-picker.mjs +61 -58
  414. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  415. package/fesm2022/ngx-tethys-timeline.mjs +16 -16
  416. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  417. package/fesm2022/ngx-tethys-tooltip.mjs +32 -33
  418. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-transfer.mjs +5 -5
  420. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-tree-select.mjs +23 -28
  422. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  423. package/fesm2022/ngx-tethys-tree.mjs +96 -102
  424. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  425. package/fesm2022/ngx-tethys-typography.mjs +15 -15
  426. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-upload.mjs +11 -12
  428. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  430. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  431. package/fesm2022/ngx-tethys.mjs +1 -1
  432. package/fesm2022/ngx-tethys.mjs.map +1 -1
  433. package/flexible-text/flexible-text.component.d.ts +1 -3
  434. package/form/form-group-error/form-group-error.component.d.ts +1 -3
  435. package/form/form-group-label.directive.d.ts +0 -2
  436. package/form/form-group.component.d.ts +1 -4
  437. package/form/form-submit.directive.d.ts +0 -2
  438. package/form/form-validator.service.d.ts +0 -2
  439. package/form/form.directive.d.ts +4 -4
  440. package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
  441. package/form/validator/unique-validator.directive.d.ts +1 -4
  442. package/fullscreen/fullscreen.component.d.ts +0 -2
  443. package/fullscreen/fullscreen.service.d.ts +0 -2
  444. package/grid/thy-col.directive.d.ts +1 -2
  445. package/grid/thy-grid-item.component.d.ts +2 -4
  446. package/grid/thy-grid.component.d.ts +1 -3
  447. package/guider/guider.directive.d.ts +1 -3
  448. package/guider/guider.service.d.ts +0 -7
  449. package/icon/icon-registry.d.ts +1 -3
  450. package/icon/icon.component.d.ts +1 -3
  451. package/image/image-group.component.d.ts +1 -2
  452. package/image/image.directive.d.ts +1 -3
  453. package/image/image.service.d.ts +2 -2
  454. package/image/preview/image-preview.component.d.ts +1 -4
  455. package/input/input-count.component.d.ts +3 -4
  456. package/input/input-group.component.d.ts +1 -3
  457. package/input/input-search.component.d.ts +2 -2
  458. package/input/input.component.d.ts +1 -2
  459. package/input/input.directive.d.ts +2 -3
  460. package/input-number/input-number.component.d.ts +2 -2
  461. package/layout/sidebar.component.d.ts +44 -13
  462. package/list/selection/selection-list.d.ts +1 -2
  463. package/loading/loading.component.d.ts +0 -2
  464. package/loading/styles/loading.scss +3 -1
  465. package/mention/mention.directive.d.ts +4 -5
  466. package/mention/suggestions/suggestions.component.d.ts +2 -3
  467. package/menu/group/menu-group.component.d.ts +12 -26
  468. package/menu/item/action/menu-item-action.component.d.ts +2 -3
  469. package/menu/item/menu-item.component.d.ts +1 -2
  470. package/message/abstract/abstract-message-container.component.d.ts +1 -2
  471. package/message/abstract/abstract-message.component.d.ts +2 -2
  472. package/message/message-container.component.d.ts +1 -3
  473. package/message/message-queue.service.d.ts +1 -2
  474. package/message/message.component.d.ts +1 -3
  475. package/message/message.service.d.ts +3 -5
  476. package/nav/icon-nav/icon-nav.component.d.ts +2 -2
  477. package/nav/nav-ink-bar.directive.d.ts +2 -4
  478. package/nav/nav-item.directive.d.ts +3 -4
  479. package/nav/nav.component.d.ts +1 -3
  480. package/nav/nav.pipe.d.ts +0 -2
  481. package/notify/notify-container.component.d.ts +1 -3
  482. package/notify/notify-queue.service.d.ts +1 -2
  483. package/notify/notify.component.d.ts +2 -3
  484. package/notify/notify.service.d.ts +1 -4
  485. package/package.json +1 -1
  486. package/pagination/pagination.component.d.ts +7 -19
  487. package/pagination/pagination.pipe.d.ts +0 -2
  488. package/popover/header/popover-header.component.d.ts +0 -3
  489. package/popover/popover-container.component.d.ts +3 -4
  490. package/popover/popover.directive.d.ts +2 -5
  491. package/popover/popover.service.d.ts +4 -6
  492. package/progress/progress-strip.component.d.ts +0 -1
  493. package/property/property-item.component.d.ts +6 -6
  494. package/property-operation/property-operation.component.d.ts +1 -3
  495. package/radio/button/radio-button.component.d.ts +2 -5
  496. package/radio/group/radio-group.component.d.ts +1 -2
  497. package/radio/radio.component.d.ts +2 -3
  498. package/rate/rate.component.d.ts +2 -2
  499. package/resizable/resizable.directive.d.ts +2 -4
  500. package/resizable/resizable.service.d.ts +2 -2
  501. package/resizable/resize-handle.component.d.ts +1 -3
  502. package/schematics/version.d.ts +1 -1
  503. package/schematics/version.js +1 -1
  504. package/segment/segment-item.component.d.ts +4 -5
  505. package/segment/segment.component.d.ts +1 -2
  506. package/select/custom-select/custom-select.component.d.ts +5 -5
  507. package/select/native-select/native-select.component.d.ts +1 -1
  508. package/shared/base-form-check.component.d.ts +1 -1
  509. package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
  510. package/shared/directives/thy-autofocus.directive.d.ts +0 -2
  511. package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
  512. package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
  513. package/shared/directives/thy-enter.directive.d.ts +1 -2
  514. package/shared/directives/thy-scroll.directive.d.ts +1 -2
  515. package/shared/directives/thy-show.d.ts +1 -2
  516. package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
  517. package/shared/directives/view-outlet.directive.d.ts +1 -2
  518. package/shared/ng-transclude.directive.d.ts +1 -1
  519. package/shared/option/group/option-group.component.d.ts +1 -2
  520. package/shared/option/list-option/list-option.component.d.ts +5 -10
  521. package/shared/option/option.component.d.ts +5 -5
  522. package/shared/select/select-control/select-control.component.d.ts +1 -2
  523. package/skeleton/skeleton-circle.component.d.ts +1 -4
  524. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  525. package/slide/drawer/drawer-container.directive.d.ts +1 -2
  526. package/slide/slide-container.component.d.ts +3 -4
  527. package/slide/slide-header/slide-header.component.d.ts +0 -2
  528. package/slide/slide.service.d.ts +3 -3
  529. package/slider/slider.component.d.ts +2 -2
  530. package/space/space.component.d.ts +1 -2
  531. package/statistic/statistic.component.d.ts +1 -2
  532. package/stepper/step.component.d.ts +1 -2
  533. package/stepper/stepper-button.directive.d.ts +0 -3
  534. package/strength/strength.component.d.ts +0 -1
  535. package/switch/switch.component.d.ts +1 -1
  536. package/table/table-column.component.d.ts +32 -8
  537. package/table/table-skeleton.component.d.ts +3 -12
  538. package/table/table.component.d.ts +3 -5
  539. package/tabs/tabs.component.d.ts +1 -2
  540. package/tag/tag.component.d.ts +7 -3
  541. package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
  542. package/time-picker/time-picker-panel.component.d.ts +1 -2
  543. package/time-picker/time-picker.component.d.ts +1 -2
  544. package/timeline/timeline-item.component.d.ts +1 -3
  545. package/timeline/timeline.component.d.ts +1 -3
  546. package/tooltip/tooltip.component.d.ts +1 -2
  547. package/tooltip/tooltip.directive.d.ts +6 -9
  548. package/tooltip/tooltip.service.d.ts +2 -4
  549. package/transfer/transfer-list.component.d.ts +1 -2
  550. package/tree/tree-node.component.d.ts +5 -21
  551. package/tree/tree.component.d.ts +1 -2
  552. package/tree-select/tree-select.component.d.ts +5 -6
  553. package/typography/bg-color.directive.d.ts +0 -2
  554. package/typography/text-color.directive.d.ts +1 -2
  555. package/upload/file-select-base.d.ts +2 -3
  556. package/upload/file-select.component.d.ts +1 -0
  557. package/upload/upload.service.d.ts +0 -2
  558. package/watermark/watermark.directive.d.ts +1 -2
@@ -1,12 +1,10 @@
1
1
  import { ThySelectionList, ThyListModule } from 'ngx-tethys/list';
2
2
  import { ThyLoading, ThyLoadingModule } from 'ngx-tethys/loading';
3
- import * as i1 from 'ngx-tethys/popover';
4
- import { ThyPopoverModule } from 'ngx-tethys/popover';
3
+ import { ThyPopoverRef, ThyPopover, ThyPopoverModule } from 'ngx-tethys/popover';
5
4
  import { NgTemplateOutlet, SlicePipe, CommonModule } from '@angular/common';
6
5
  import * as i0 from '@angular/core';
7
- import { Component, HostBinding, EventEmitter, Directive, Optional, Self, Input, Output, NgModule } from '@angular/core';
8
- import * as i2 from '@angular/forms';
9
- import { FormsModule } from '@angular/forms';
6
+ import { inject, ElementRef, NgZone, Component, HostBinding, EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';
7
+ import { NgControl, FormsModule } from '@angular/forms';
10
8
  import { Subject, Observable, of, fromEvent, EMPTY } from 'rxjs';
11
9
  import { switchMap, debounceTime, catchError, take, takeUntil } from 'rxjs/operators';
12
10
  import { isInputOrTextarea, getElementOffset } from 'ngx-tethys/util';
@@ -343,10 +341,10 @@ class CaretPositioner {
343
341
  * @private
344
342
  */
345
343
  class ThyMentionSuggestions {
346
- constructor(elementRef, ngZone, popoverRef) {
347
- this.elementRef = elementRef;
348
- this.ngZone = ngZone;
349
- this.popoverRef = popoverRef;
344
+ constructor() {
345
+ this.elementRef = inject(ElementRef);
346
+ this.ngZone = inject(NgZone);
347
+ this.popoverRef = inject(ThyPopoverRef);
350
348
  this.suggestionSelect$ = new Subject();
351
349
  this.debounce = 150;
352
350
  this.loadingDone = true;
@@ -399,13 +397,13 @@ class ThyMentionSuggestions {
399
397
  ngOnDestroy() {
400
398
  this.search$.complete();
401
399
  }
402
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMentionSuggestions, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMentionSuggestions, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
403
401
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyMentionSuggestions, isStandalone: true, selector: "thy-mention-suggestions", host: { properties: { "class.thy-mention-suggestions": "this.suggestionsClass" } }, ngImport: i0, template: "@if (mention.suggestionsTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"mention.suggestionsTemplateRef\" [ngTemplateOutletContext]=\"{ data: data }\"></ng-container>\n} @else {\n <thy-loading [thyDone]=\"loadingDone\"></thy-loading>\n @if (loadingDone) {\n @if (data?.length > 0) {\n <thy-selection-list\n thyBindKeyEventContainer=\"body\"\n thyMultiple=\"false\"\n thyAutoActiveFirstItem=\"true\"\n thySpaceKeyEnabled=\"false\"\n [thyScrollContainer]=\"elementRef\"\n (thySelectionChange)=\"selectionChange($event)\">\n @for (item of data | slice: 0 : mention.limit; track $index) {\n <thy-list-option [thyValue]=\"item\">\n @if (mention?.displayTemplateRef) {\n <ng-template *ngTemplateOutlet=\"mention?.displayTemplateRef; context: { $implicit: item }\"></ng-template>\n } @else {\n {{ item['name'] || '' }}\n }\n </thy-list-option>\n }\n </thy-selection-list>\n } @else {\n <div class=\"text-desc p-3\">\n {{ mention?.emptyText }}\n </div>\n }\n }\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyLoading, selector: "thy-loading", inputs: ["thyDone", "thyTip", "thyIsMask"] }, { kind: "component", type: ThySelectionList, selector: "thy-selection-list,[thy-selection-list]", inputs: ["thyMultiple", "thyBindKeyEventContainer", "thyScrollContainer", "thyBeforeKeydown", "thyUniqueKey", "thyCompareWith", "thyLayout", "thyAutoActiveFirstItem", "thySize", "thySpaceKeyEnabled"], outputs: ["thySelectionChange"] }, { kind: "component", type: ThyListOption, selector: "thy-list-option,[thy-list-option]", inputs: ["id", "thyValue", "thyDisabled"] }, { kind: "pipe", type: SlicePipe, name: "slice" }] }); }
404
402
  }
405
403
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMentionSuggestions, decorators: [{
406
404
  type: Component,
407
405
  args: [{ selector: 'thy-mention-suggestions', standalone: true, imports: [NgTemplateOutlet, ThyLoading, ThySelectionList, ThyListOption, SlicePipe], template: "@if (mention.suggestionsTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"mention.suggestionsTemplateRef\" [ngTemplateOutletContext]=\"{ data: data }\"></ng-container>\n} @else {\n <thy-loading [thyDone]=\"loadingDone\"></thy-loading>\n @if (loadingDone) {\n @if (data?.length > 0) {\n <thy-selection-list\n thyBindKeyEventContainer=\"body\"\n thyMultiple=\"false\"\n thyAutoActiveFirstItem=\"true\"\n thySpaceKeyEnabled=\"false\"\n [thyScrollContainer]=\"elementRef\"\n (thySelectionChange)=\"selectionChange($event)\">\n @for (item of data | slice: 0 : mention.limit; track $index) {\n <thy-list-option [thyValue]=\"item\">\n @if (mention?.displayTemplateRef) {\n <ng-template *ngTemplateOutlet=\"mention?.displayTemplateRef; context: { $implicit: item }\"></ng-template>\n } @else {\n {{ item['name'] || '' }}\n }\n </thy-list-option>\n }\n </thy-selection-list>\n } @else {\n <div class=\"text-desc p-3\">\n {{ mention?.emptyText }}\n </div>\n }\n }\n}\n" }]
408
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.ThyPopoverRef }], propDecorators: { suggestionsClass: [{
406
+ }], ctorParameters: () => [], propDecorators: { suggestionsClass: [{
409
407
  type: HostBinding,
410
408
  args: ['class.thy-mention-suggestions']
411
409
  }] } });
@@ -450,10 +448,10 @@ class ThyMentionDirective {
450
448
  get isOpened() {
451
449
  return !!this.openedSuggestionsRef;
452
450
  }
453
- constructor(elementRef, thyPopover, ngControl) {
454
- this.elementRef = elementRef;
455
- this.thyPopover = thyPopover;
456
- this.ngControl = ngControl;
451
+ constructor() {
452
+ this.elementRef = inject(ElementRef);
453
+ this.thyPopover = inject(ThyPopover);
454
+ this.ngControl = inject(NgControl, { optional: true, self: true });
457
455
  this.adapter = null;
458
456
  /**
459
457
  * 选择后的回调函数
@@ -461,6 +459,7 @@ class ThyMentionDirective {
461
459
  this.select = new EventEmitter();
462
460
  this.destroy$ = new Subject();
463
461
  this.openedSuggestionsRef$ = new Subject();
462
+ const elementRef = this.elementRef;
464
463
  this.adapter = createMentionAdapter(elementRef.nativeElement);
465
464
  }
466
465
  ngOnInit() {
@@ -539,7 +538,7 @@ class ThyMentionDirective {
539
538
  this.openedSuggestionsRef.close();
540
539
  }
541
540
  }
542
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMentionDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopover }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
541
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMentionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
543
542
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyMentionDirective, isStandalone: true, selector: "[thyMention]", inputs: { mentions: ["thyMention", "mentions"], popoverConfig: ["thyPopoverConfig", "popoverConfig"] }, outputs: { select: "thySelectSuggestion" }, ngImport: i0 }); }
544
543
  }
545
544
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMentionDirective, decorators: [{
@@ -548,11 +547,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
548
547
  selector: '[thyMention]',
549
548
  standalone: true
550
549
  }]
551
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ThyPopover }, { type: i2.NgControl, decorators: [{
552
- type: Optional
553
- }, {
554
- type: Self
555
- }] }], propDecorators: { mentions: [{
550
+ }], ctorParameters: () => [], propDecorators: { mentions: [{
556
551
  type: Input,
557
552
  args: ['thyMention']
558
553
  }], popoverConfig: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-mention.mjs","sources":["../../../src/mention/adapter/adapter.ts","../../../src/mention/adapter/textarea.adapter.ts","../../../src/mention/adapter/editable.adapter.ts","../../../src/mention/adapter/index.ts","../../../src/mention/caret-positioner.ts","../../../src/mention/suggestions/suggestions.component.ts","../../../src/mention/suggestions/suggestions.component.html","../../../src/mention/mention.directive.ts","../../../src/mention/mention.module.ts","../../../src/mention/ngx-tethys-mention.ts"],"sourcesContent":["import { MentionDefaultDataItem, Mention } from '../interfaces';\n\nexport interface SeekQueryResult {\n term: string;\n start: number;\n end: number;\n}\n\nexport interface MatchedMention<T = MentionDefaultDataItem> {\n query: SeekQueryResult;\n mention: Mention<T>;\n}\n\nexport type MentionInputorElement = HTMLTextAreaElement | HTMLInputElement;\nexport abstract class MentionAdapter {\n inputor: MentionInputorElement;\n\n matchedMention: MatchedMention;\n\n constructor(inputor: MentionInputorElement) {\n this.inputor = inputor;\n }\n\n abstract seekQuery(event: Event, mention: Mention): SeekQueryResult;\n\n abstract insertMention(item: MentionDefaultDataItem): string;\n\n lookup(event: Event, mentions: Mention[]) {\n this.matchedMention = null;\n for (const mention of mentions) {\n const query = this.seekQuery(event, mention);\n if (query) {\n this.matchedMention = {\n query: query,\n mention: mention\n };\n break;\n }\n }\n return this.matchedMention;\n }\n}\n","import { MentionAdapter, MentionInputorElement, SeekQueryResult } from './adapter';\nimport { Mention, MentionDefaultDataItem } from '../interfaces';\n\nexport class TextareaMentionAdapter extends MentionAdapter {\n inputor: MentionInputorElement;\n\n constructor(inputor: MentionInputorElement) {\n super(inputor);\n }\n\n public seekQuery(event: Event, mention: Mention): SeekQueryResult {\n const selectionStart = this.inputor.selectionStart;\n const value = this.inputor.value.replace(/[\\r\\n]/g, ' ');\n // @123 | @456 => 0(start) => @123\n // @123 @456 | => 5(start) => @456\n const start = value.lastIndexOf(mention.trigger, selectionStart);\n const fistSpaceIndexFromStart = value.indexOf(' ', selectionStart);\n const end = fistSpaceIndexFromStart > -1 ? fistSpaceIndexFromStart : value.length;\n const termWithTrigger = value.substring(start, end);\n const startBeforeHasSpace = start > 0 && value[start - 1] === ' ';\n if ((startBeforeHasSpace || start === 0) && !termWithTrigger.includes(' ') && !termWithTrigger.includes(mention.trigger, 1)) {\n return {\n start: start,\n end: end,\n term: termWithTrigger.substring(mention.trigger.length)\n };\n } else {\n return null;\n }\n }\n\n public insertMention(item: MentionDefaultDataItem): string {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this.matchedMention) {\n throw new Error(`matchedMention is null`);\n }\n const insertValue = this.getInsertValue(item);\n const value: string = this.inputor.value;\n const newValue = [\n value.slice(0, this.matchedMention.query.start),\n insertValue,\n value.slice(this.matchedMention.query.end, value.length)\n ].join('');\n this.inputor.value = newValue;\n this.focus(this.matchedMention.query.start + insertValue.length);\n return newValue;\n }\n\n private getInsertValue(item: MentionDefaultDataItem) {\n if (this.matchedMention.mention.insertTransform) {\n return this.matchedMention.mention.insertTransform(item).trim() + ' ';\n } else {\n return `${this.matchedMention.mention.trigger}${item['name']}`.trim() + ' ';\n }\n }\n\n private focus(caretPosition?: number): void {\n this.inputor.focus();\n this.inputor.setSelectionRange(caretPosition, caretPosition);\n }\n\n private isEditable() {\n return !this.inputor.readOnly && !this.inputor.disabled;\n }\n}\n","import { MentionAdapter, MentionInputorElement, SeekQueryResult } from './adapter';\nimport { Mention, MentionDefaultDataItem } from '../interfaces';\n\nexport class EditableMentionAdapter extends MentionAdapter {\n inputor: MentionInputorElement;\n\n constructor(inputor: MentionInputorElement) {\n super(inputor);\n }\n\n seekQuery(event: Event, mention: Mention): SeekQueryResult {\n const selectionStart = getSelection().focusOffset;\n const value = this.inputor.innerText.replace(/[\\r\\n]/g, ' ');\n const start = value.lastIndexOf(mention.trigger, selectionStart);\n const fistSpaceIndexFromStart = value.indexOf(' ', selectionStart);\n const end = fistSpaceIndexFromStart > -1 ? fistSpaceIndexFromStart : value.length;\n const termWithTrigger = value.substring(start, end);\n const startBeforeHasSpace = start > 0 && value[start - 1] === ' ';\n if ((startBeforeHasSpace || start === 0) && !termWithTrigger.includes(' ') && !termWithTrigger.includes(mention.trigger, 1)) {\n return {\n start: start,\n end: end,\n term: termWithTrigger.substring(mention.trigger.length)\n };\n } else {\n return null;\n }\n }\n\n insertMention(item: MentionDefaultDataItem): string {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this.matchedMention) {\n throw new Error(`matchedMention is null`);\n }\n const insertValue = this.getInsertValue(item);\n const value: string = this.inputor.innerText;\n const newValue = [\n value.slice(0, this.matchedMention.query.start),\n insertValue,\n value.slice(this.matchedMention.query.end, value.length)\n ].join('');\n this.inputor.value = newValue;\n return newValue;\n }\n\n private getInsertValue(item: MentionDefaultDataItem) {\n if (this.matchedMention.mention.insertTransform) {\n return this.matchedMention.mention.insertTransform(item).trim() + ' ';\n } else {\n return `${this.matchedMention.mention.trigger}${item['name']}`.trim() + ' ';\n }\n }\n}\n","import { isInputOrTextarea } from 'ngx-tethys/util';\nimport { Mention } from '../interfaces';\nimport { TextareaMentionAdapter } from './textarea.adapter';\nimport { EditableMentionAdapter } from './editable.adapter';\nimport { MentionInputorElement } from './adapter';\n\nexport function createMentionAdapter(element: MentionInputorElement) {\n if (isInputOrTextarea(element)) {\n return new TextareaMentionAdapter(element);\n } else {\n element.contentEditable = 'true';\n return new EditableMentionAdapter(element);\n }\n}\n\nexport * from './editable.adapter';\nexport * from './textarea.adapter';\nexport * from './adapter';\n","import { Injectable } from '@angular/core';\nimport { getElementOffset } from 'ngx-tethys/util';\n\nexport interface CaretCoordinates {\n top: number;\n left: number;\n height: number;\n}\n\nexport interface CaretOptions {\n debug: boolean;\n}\n\n// We'll copy the properties below into the mirror div.\n// Note that some browsers, such as Firefox, do not concatenate properties\n// into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n// so we have to list every single property explicitly.\nconst properties = [\n 'direction', // RTL support\n 'boxSizing',\n 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n 'height',\n 'overflowX',\n 'overflowY', // copy the scrollbar for IE\n\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration', // might not make a difference, but better be safe\n\n 'letterSpacing',\n 'wordSpacing',\n\n 'tabSize',\n 'MozTabSize'\n];\n\nconst isBrowser = typeof window !== 'undefined';\nconst isFirefox = isBrowser && window['mozInnerScreenX'] != null;\n\nexport type InputOrTextAreaElement = HTMLInputElement | HTMLTextAreaElement;\nexport type AllElement = InputOrTextAreaElement | HTMLElement;\n\nexport class CaretPositioner {\n // get caret coordinates in input or textarea\n // copy from repo: https://github.com/component/textarea-caret-position\n static getTextareaCaretCoordinates(element: InputOrTextAreaElement, position: number, options?: CaretOptions): CaretCoordinates {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !isBrowser) {\n throw new Error('textarea-caret-position#getCaretCoordinates should only be called in a browser');\n }\n\n const debug = (options && options.debug) || false;\n if (debug) {\n const el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if (el) {\n el.parentNode.removeChild(el);\n }\n }\n\n // The mirror div will replicate the textarea's style\n const div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n\n const style = div.style;\n const computed = window.getComputedStyle ? window.getComputedStyle(element) : element['currentStyle']; // currentStyle for IE < 9\n const isInput = element.nodeName === 'INPUT';\n\n // Default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (!isInput) {\n style.wordWrap = 'break-word'; // only for textarea-s\n }\n\n // Position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug) {\n style.visibility = 'hidden'; // not 'display: none' because we want rendering\n }\n // Transfer the element's properties to the div\n properties.forEach(function (prop) {\n if (isInput && prop === 'lineHeight') {\n // Special case for <input>s because text is rendered centered and line height may be != height\n if (computed.boxSizing === 'border-box') {\n const height = parseInt(computed.height, 10);\n const outerHeight =\n parseInt(computed.paddingTop, 10) +\n parseInt(computed.paddingBottom, 10) +\n parseInt(computed.borderTopWidth, 10) +\n parseInt(computed.borderBottomWidth, 10);\n const targetHeight = outerHeight + parseInt(computed.lineHeight, 10);\n if (height > targetHeight) {\n style.lineHeight = height - outerHeight + 'px';\n } else if (height === targetHeight) {\n style.lineHeight = computed.lineHeight;\n } else {\n style.lineHeight = '0';\n }\n } else {\n style.lineHeight = computed.height;\n }\n } else {\n style[prop] = computed[prop];\n }\n });\n\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height, 10)) {\n style.overflowY = 'scroll';\n }\n } else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n\n div.textContent = element.value.substring(0, position);\n // The second special handling for input type=\"text\" vs textarea:\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (isInput) {\n div.textContent = div.textContent.replace(/\\s/g, '\\u00a0');\n }\n\n const span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the <span> created at the caret position.\n // For inputs, just '.' would be enough, but no need to bother.\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n\n const coordinates = {\n top: span.offsetTop + parseInt(computed['borderTopWidth'], 10),\n left: span.offsetLeft + parseInt(computed['borderLeftWidth'], 10),\n height: parseInt(computed['lineHeight'], 10)\n };\n\n if (debug) {\n span.style.backgroundColor = '#aaa';\n } else {\n document.body.removeChild(div);\n }\n\n return coordinates;\n }\n\n static getEditableCaretCoordinates(element: HTMLElement): CaretCoordinates {\n if (window.getSelection().rangeCount) {\n const range = window.getSelection().getRangeAt(0);\n const rect = range.getBoundingClientRect();\n // using the start or endcontainer is... uhm yeah... difficult...? :D\n let height: string | number =\n range.startContainer.nodeType === 1\n ? getComputedStyle(range.startContainer as Element).lineHeight\n : getComputedStyle(range.startContainer.parentNode as Element).lineHeight;\n if (isNaN(height as any)) {\n let node = range.startContainer as HTMLElement;\n if (range.startContainer.nodeType !== 1) {\n node = node.parentNode as HTMLElement;\n }\n const current = node.style.lineHeight;\n node.style.lineHeight = '1em';\n height = parseInt(getComputedStyle(node).lineHeight, 10);\n node.style.lineHeight = current != null ? current : '';\n if (!node.getAttribute('style').length) {\n // clean up if empty\n node.removeAttribute('style');\n }\n }\n const editableRect = element.getBoundingClientRect();\n return {\n top: rect.top - editableRect.top,\n left: rect.left - editableRect.left,\n height: height as number\n };\n } else {\n return {\n top: 0,\n left: 0,\n height: 0\n };\n }\n }\n\n static getCaretCoordinates(element: AllElement, position: number, options?: CaretOptions) {\n const isInput = ['INPUT', 'TEXTAREA'].indexOf(element.nodeName) >= 0;\n if (isInput) {\n return this.getTextareaCaretCoordinates(element as InputOrTextAreaElement, position, options);\n } else {\n return this.getEditableCaretCoordinates(element);\n }\n }\n\n // get caret position in view window\n static getCaretPosition(element: AllElement, position: number, options?: CaretOptions) {\n const coordinates = CaretPositioner.getCaretCoordinates(element, position, options);\n const elementOffset = getElementOffset(element);\n return {\n top: coordinates.top + elementOffset.top,\n left: coordinates.left + elementOffset.left\n };\n }\n}\n","import { ThySelectionListChange, ThySelectionList } from 'ngx-tethys/list';\nimport { ThyPopoverRef } from 'ngx-tethys/popover';\nimport { Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, switchMap, take } from 'rxjs/operators';\n\nimport { Component, ElementRef, HostBinding, NgZone, OnDestroy, OnInit } from '@angular/core';\n\nimport { SeekQueryResult } from '../adapter/adapter';\nimport { Mention, MentionDefaultDataItem, MentionSuggestionSelectEvent } from '../interfaces';\nimport { ThyListOption } from 'ngx-tethys/shared';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { NgTemplateOutlet, SlicePipe } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-mention-suggestions',\n templateUrl: './suggestions.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, ThyLoading, ThySelectionList, ThyListOption, SlicePipe]\n})\nexport class ThyMentionSuggestions<TItem = MentionDefaultDataItem> implements OnInit, OnDestroy {\n data: TItem[];\n\n mention: Mention<TItem>;\n\n suggestionSelect$ = new Subject<MentionSuggestionSelectEvent>();\n\n debounce = 150;\n\n loadingDone = true;\n\n private search$ = new Subject<SeekQueryResult>();\n\n @HostBinding('class.thy-mention-suggestions') suggestionsClass = true;\n\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n private ngZone: NgZone,\n private popoverRef: ThyPopoverRef<any>\n ) {\n this.search$\n .pipe(\n switchMap(query => {\n const data = this.mention.search(query.term, this.mention.data);\n if (data instanceof Observable) {\n this.loadingDone = false;\n return (data as Observable<TItem[]>).pipe(debounceTime(this.debounce));\n } else {\n return of(data as TItem[]);\n }\n }),\n catchError(() => {\n this.loadingDone = false;\n return [];\n })\n )\n .subscribe(data => {\n this.loadingDone = true;\n this.data = data || [];\n\n if (this.popoverRef) {\n if (this.mention.autoClose && this.data.length === 0) {\n this.popoverRef.close();\n }\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.popoverRef.updatePosition();\n });\n }\n });\n }\n\n ngOnInit(): void {\n if (this.mention.popoverClass) {\n this.elementRef.nativeElement.classList.add(this.mention.popoverClass);\n }\n }\n\n search(query: SeekQueryResult) {\n this.search$.next(query);\n }\n\n select(item: TItem, event: Event) {\n this.suggestionSelect$.next({\n event,\n item\n });\n }\n\n selectionChange(event: ThySelectionListChange<TItem>) {\n this.select(event.value, event.event);\n }\n\n ngOnDestroy() {\n this.search$.complete();\n }\n}\n","@if (mention.suggestionsTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"mention.suggestionsTemplateRef\" [ngTemplateOutletContext]=\"{ data: data }\"></ng-container>\n} @else {\n <thy-loading [thyDone]=\"loadingDone\"></thy-loading>\n @if (loadingDone) {\n @if (data?.length > 0) {\n <thy-selection-list\n thyBindKeyEventContainer=\"body\"\n thyMultiple=\"false\"\n thyAutoActiveFirstItem=\"true\"\n thySpaceKeyEnabled=\"false\"\n [thyScrollContainer]=\"elementRef\"\n (thySelectionChange)=\"selectionChange($event)\">\n @for (item of data | slice: 0 : mention.limit; track $index) {\n <thy-list-option [thyValue]=\"item\">\n @if (mention?.displayTemplateRef) {\n <ng-template *ngTemplateOutlet=\"mention?.displayTemplateRef; context: { $implicit: item }\"></ng-template>\n } @else {\n {{ item['name'] || '' }}\n }\n </thy-list-option>\n }\n </thy-selection-list>\n } @else {\n <div class=\"text-desc p-3\">\n {{ mention?.emptyText }}\n </div>\n }\n }\n}\n","import { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { EMPTY, fromEvent, Subject } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\n\nimport { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { createMentionAdapter, MatchedMention, MentionAdapter, MentionInputorElement } from './adapter';\nimport { CaretPositioner } from './caret-positioner';\nimport { Mention, MentionDefaultDataItem, MentionSuggestionSelectEvent } from './interfaces';\nimport { ThyMentionSuggestions } from './suggestions/suggestions.component';\nimport { isInputOrTextarea } from 'ngx-tethys/util';\n\nconst SUGGESTION_BACKDROP_CLASS = 'thy-mention-suggestions-backdrop';\n\nconst POPOVER_DEFAULT_CONFIG = {\n backdropClass: SUGGESTION_BACKDROP_CLASS,\n placement: 'bottomLeft'\n};\n\nconst DEFAULT_MENTION_CONFIG: Partial<Mention> = {\n autoClose: true,\n emptyText: '无匹配数据,按空格完成输入',\n search: (term: string, data: MentionDefaultDataItem[]) => {\n return data.filter(item => {\n return !item.name || item.name.toLowerCase().includes(term.toLowerCase());\n });\n }\n};\n\n/**\n * @name thyMention\n * @order 10\n */\n@Directive({\n selector: '[thyMention]',\n standalone: true\n})\nexport class ThyMentionDirective implements OnInit, OnDestroy {\n private adapter: MentionAdapter = null;\n\n public openedSuggestionsRef: ThyPopoverRef<ThyMentionSuggestions>;\n\n private _mentions: Mention<any>[];\n get mentions() {\n return this._mentions;\n }\n\n /**\n * 提及输入配置参数,同时支持多个提及规则\n * @type Mention<any>[]\n */\n @Input('thyMention') set mentions(value: Mention<any>[]) {\n this._mentions = value;\n if (this._mentions) {\n this._mentions = this._mentions.map(mention => {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !mention.trigger) {\n throw new Error(`mention trigger is required`);\n }\n return Object.assign({}, DEFAULT_MENTION_CONFIG, mention);\n });\n }\n }\n\n /**\n * Popover 弹出层参数配置\n */\n @Input('thyPopoverConfig') popoverConfig: ThyPopoverConfig;\n\n /**\n * 选择后的回调函数\n */\n @Output('thySelectSuggestion') select = new EventEmitter<MentionSuggestionSelectEvent>();\n\n get isOpened() {\n return !!this.openedSuggestionsRef;\n }\n\n private destroy$ = new Subject<void>();\n\n private openedSuggestionsRef$ = new Subject<ThyPopoverRef<ThyMentionSuggestions> | null>();\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private thyPopover: ThyPopover,\n @Optional() @Self() private ngControl: NgControl\n ) {\n this.adapter = createMentionAdapter(elementRef.nativeElement as MentionInputorElement);\n }\n\n ngOnInit() {\n fromEvent(this.elementRef.nativeElement, 'input')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => this.onInput(event));\n\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => this.onClick(event));\n\n this.openedSuggestionsRef$\n .pipe(\n switchMap(openedSuggestionsRef =>\n // Re-subscribe to `suggestionSelect$` every time the suggestions component is re-created,\n // otherwise, unsubscribe, if it gets closed.\n openedSuggestionsRef ? openedSuggestionsRef.componentInstance.suggestionSelect$ : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(event => {\n const newValue = this.adapter.insertMention(event.item);\n if (isInputOrTextarea(this.elementRef.nativeElement)) {\n if (this.ngControl && this.ngControl.control) {\n this.ngControl.control.setValue(newValue);\n }\n } else {\n this.elementRef.nativeElement.innerText = newValue;\n }\n this.openedSuggestionsRef.close();\n this.select.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n onClick(event: Event) {\n this.lookup(event);\n }\n\n onInput(event: Event) {\n this.lookup(event);\n }\n\n private lookup(event: Event) {\n const matched = this.adapter.lookup(event, this.mentions);\n if (matched) {\n this.openSuggestions(matched);\n } else {\n this.closeSuggestions();\n }\n }\n\n private openSuggestions(matched: MatchedMention) {\n if (!this.openedSuggestionsRef) {\n const inputElement = this.elementRef.nativeElement as HTMLInputElement;\n const position = CaretPositioner.getCaretPosition(inputElement, matched.query.start);\n const fontSize = parseInt(getComputedStyle(this.elementRef.nativeElement).fontSize, 10);\n this.openedSuggestionsRef = this.thyPopover.open(\n ThyMentionSuggestions,\n Object.assign(\n {},\n POPOVER_DEFAULT_CONFIG,\n {\n origin: this.elementRef,\n originPosition: {\n x: position.left,\n y: position.top,\n width: fontSize,\n height: fontSize\n },\n initialState: {\n mention: matched.mention\n }\n },\n this.popoverConfig\n )\n );\n this.openedSuggestionsRef.afterClosed().subscribe(() => {\n this.openedSuggestionsRef = null;\n this.openedSuggestionsRef$.next(null);\n });\n\n this.openedSuggestionsRef$.next(this.openedSuggestionsRef);\n }\n\n if (this.openedSuggestionsRef) {\n this.openedSuggestionsRef.componentInstance.search(matched.query);\n }\n }\n\n private closeSuggestions() {\n if (this.openedSuggestionsRef) {\n this.openedSuggestionsRef.close();\n }\n }\n}\n","import { ThyListModule } from 'ngx-tethys/list';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyMentionDirective } from './mention.directive';\nimport { ThyMentionSuggestions } from './suggestions/suggestions.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionDirective, ThyMentionSuggestions],\n exports: [ThyMentionDirective],\n providers: []\n})\nexport class ThyMentionModule {}\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-mention.mjs","sources":["../../../src/mention/adapter/adapter.ts","../../../src/mention/adapter/textarea.adapter.ts","../../../src/mention/adapter/editable.adapter.ts","../../../src/mention/adapter/index.ts","../../../src/mention/caret-positioner.ts","../../../src/mention/suggestions/suggestions.component.ts","../../../src/mention/suggestions/suggestions.component.html","../../../src/mention/mention.directive.ts","../../../src/mention/mention.module.ts","../../../src/mention/ngx-tethys-mention.ts"],"sourcesContent":["import { MentionDefaultDataItem, Mention } from '../interfaces';\n\nexport interface SeekQueryResult {\n term: string;\n start: number;\n end: number;\n}\n\nexport interface MatchedMention<T = MentionDefaultDataItem> {\n query: SeekQueryResult;\n mention: Mention<T>;\n}\n\nexport type MentionInputorElement = HTMLTextAreaElement | HTMLInputElement;\nexport abstract class MentionAdapter {\n inputor: MentionInputorElement;\n\n matchedMention: MatchedMention;\n\n constructor(inputor: MentionInputorElement) {\n this.inputor = inputor;\n }\n\n abstract seekQuery(event: Event, mention: Mention): SeekQueryResult;\n\n abstract insertMention(item: MentionDefaultDataItem): string;\n\n lookup(event: Event, mentions: Mention[]) {\n this.matchedMention = null;\n for (const mention of mentions) {\n const query = this.seekQuery(event, mention);\n if (query) {\n this.matchedMention = {\n query: query,\n mention: mention\n };\n break;\n }\n }\n return this.matchedMention;\n }\n}\n","import { MentionAdapter, MentionInputorElement, SeekQueryResult } from './adapter';\nimport { Mention, MentionDefaultDataItem } from '../interfaces';\n\nexport class TextareaMentionAdapter extends MentionAdapter {\n inputor: MentionInputorElement;\n\n constructor(inputor: MentionInputorElement) {\n super(inputor);\n }\n\n public seekQuery(event: Event, mention: Mention): SeekQueryResult {\n const selectionStart = this.inputor.selectionStart;\n const value = this.inputor.value.replace(/[\\r\\n]/g, ' ');\n // @123 | @456 => 0(start) => @123\n // @123 @456 | => 5(start) => @456\n const start = value.lastIndexOf(mention.trigger, selectionStart);\n const fistSpaceIndexFromStart = value.indexOf(' ', selectionStart);\n const end = fistSpaceIndexFromStart > -1 ? fistSpaceIndexFromStart : value.length;\n const termWithTrigger = value.substring(start, end);\n const startBeforeHasSpace = start > 0 && value[start - 1] === ' ';\n if ((startBeforeHasSpace || start === 0) && !termWithTrigger.includes(' ') && !termWithTrigger.includes(mention.trigger, 1)) {\n return {\n start: start,\n end: end,\n term: termWithTrigger.substring(mention.trigger.length)\n };\n } else {\n return null;\n }\n }\n\n public insertMention(item: MentionDefaultDataItem): string {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this.matchedMention) {\n throw new Error(`matchedMention is null`);\n }\n const insertValue = this.getInsertValue(item);\n const value: string = this.inputor.value;\n const newValue = [\n value.slice(0, this.matchedMention.query.start),\n insertValue,\n value.slice(this.matchedMention.query.end, value.length)\n ].join('');\n this.inputor.value = newValue;\n this.focus(this.matchedMention.query.start + insertValue.length);\n return newValue;\n }\n\n private getInsertValue(item: MentionDefaultDataItem) {\n if (this.matchedMention.mention.insertTransform) {\n return this.matchedMention.mention.insertTransform(item).trim() + ' ';\n } else {\n return `${this.matchedMention.mention.trigger}${item['name']}`.trim() + ' ';\n }\n }\n\n private focus(caretPosition?: number): void {\n this.inputor.focus();\n this.inputor.setSelectionRange(caretPosition, caretPosition);\n }\n\n private isEditable() {\n return !this.inputor.readOnly && !this.inputor.disabled;\n }\n}\n","import { MentionAdapter, MentionInputorElement, SeekQueryResult } from './adapter';\nimport { Mention, MentionDefaultDataItem } from '../interfaces';\n\nexport class EditableMentionAdapter extends MentionAdapter {\n inputor: MentionInputorElement;\n\n constructor(inputor: MentionInputorElement) {\n super(inputor);\n }\n\n seekQuery(event: Event, mention: Mention): SeekQueryResult {\n const selectionStart = getSelection().focusOffset;\n const value = this.inputor.innerText.replace(/[\\r\\n]/g, ' ');\n const start = value.lastIndexOf(mention.trigger, selectionStart);\n const fistSpaceIndexFromStart = value.indexOf(' ', selectionStart);\n const end = fistSpaceIndexFromStart > -1 ? fistSpaceIndexFromStart : value.length;\n const termWithTrigger = value.substring(start, end);\n const startBeforeHasSpace = start > 0 && value[start - 1] === ' ';\n if ((startBeforeHasSpace || start === 0) && !termWithTrigger.includes(' ') && !termWithTrigger.includes(mention.trigger, 1)) {\n return {\n start: start,\n end: end,\n term: termWithTrigger.substring(mention.trigger.length)\n };\n } else {\n return null;\n }\n }\n\n insertMention(item: MentionDefaultDataItem): string {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this.matchedMention) {\n throw new Error(`matchedMention is null`);\n }\n const insertValue = this.getInsertValue(item);\n const value: string = this.inputor.innerText;\n const newValue = [\n value.slice(0, this.matchedMention.query.start),\n insertValue,\n value.slice(this.matchedMention.query.end, value.length)\n ].join('');\n this.inputor.value = newValue;\n return newValue;\n }\n\n private getInsertValue(item: MentionDefaultDataItem) {\n if (this.matchedMention.mention.insertTransform) {\n return this.matchedMention.mention.insertTransform(item).trim() + ' ';\n } else {\n return `${this.matchedMention.mention.trigger}${item['name']}`.trim() + ' ';\n }\n }\n}\n","import { isInputOrTextarea } from 'ngx-tethys/util';\nimport { Mention } from '../interfaces';\nimport { TextareaMentionAdapter } from './textarea.adapter';\nimport { EditableMentionAdapter } from './editable.adapter';\nimport { MentionInputorElement } from './adapter';\n\nexport function createMentionAdapter(element: MentionInputorElement) {\n if (isInputOrTextarea(element)) {\n return new TextareaMentionAdapter(element);\n } else {\n element.contentEditable = 'true';\n return new EditableMentionAdapter(element);\n }\n}\n\nexport * from './editable.adapter';\nexport * from './textarea.adapter';\nexport * from './adapter';\n","import { Injectable } from '@angular/core';\nimport { getElementOffset } from 'ngx-tethys/util';\n\nexport interface CaretCoordinates {\n top: number;\n left: number;\n height: number;\n}\n\nexport interface CaretOptions {\n debug: boolean;\n}\n\n// We'll copy the properties below into the mirror div.\n// Note that some browsers, such as Firefox, do not concatenate properties\n// into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n// so we have to list every single property explicitly.\nconst properties = [\n 'direction', // RTL support\n 'boxSizing',\n 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n 'height',\n 'overflowX',\n 'overflowY', // copy the scrollbar for IE\n\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration', // might not make a difference, but better be safe\n\n 'letterSpacing',\n 'wordSpacing',\n\n 'tabSize',\n 'MozTabSize'\n];\n\nconst isBrowser = typeof window !== 'undefined';\nconst isFirefox = isBrowser && window['mozInnerScreenX'] != null;\n\nexport type InputOrTextAreaElement = HTMLInputElement | HTMLTextAreaElement;\nexport type AllElement = InputOrTextAreaElement | HTMLElement;\n\nexport class CaretPositioner {\n // get caret coordinates in input or textarea\n // copy from repo: https://github.com/component/textarea-caret-position\n static getTextareaCaretCoordinates(element: InputOrTextAreaElement, position: number, options?: CaretOptions): CaretCoordinates {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !isBrowser) {\n throw new Error('textarea-caret-position#getCaretCoordinates should only be called in a browser');\n }\n\n const debug = (options && options.debug) || false;\n if (debug) {\n const el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if (el) {\n el.parentNode.removeChild(el);\n }\n }\n\n // The mirror div will replicate the textarea's style\n const div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n\n const style = div.style;\n const computed = window.getComputedStyle ? window.getComputedStyle(element) : element['currentStyle']; // currentStyle for IE < 9\n const isInput = element.nodeName === 'INPUT';\n\n // Default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (!isInput) {\n style.wordWrap = 'break-word'; // only for textarea-s\n }\n\n // Position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug) {\n style.visibility = 'hidden'; // not 'display: none' because we want rendering\n }\n // Transfer the element's properties to the div\n properties.forEach(function (prop) {\n if (isInput && prop === 'lineHeight') {\n // Special case for <input>s because text is rendered centered and line height may be != height\n if (computed.boxSizing === 'border-box') {\n const height = parseInt(computed.height, 10);\n const outerHeight =\n parseInt(computed.paddingTop, 10) +\n parseInt(computed.paddingBottom, 10) +\n parseInt(computed.borderTopWidth, 10) +\n parseInt(computed.borderBottomWidth, 10);\n const targetHeight = outerHeight + parseInt(computed.lineHeight, 10);\n if (height > targetHeight) {\n style.lineHeight = height - outerHeight + 'px';\n } else if (height === targetHeight) {\n style.lineHeight = computed.lineHeight;\n } else {\n style.lineHeight = '0';\n }\n } else {\n style.lineHeight = computed.height;\n }\n } else {\n style[prop] = computed[prop];\n }\n });\n\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height, 10)) {\n style.overflowY = 'scroll';\n }\n } else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n\n div.textContent = element.value.substring(0, position);\n // The second special handling for input type=\"text\" vs textarea:\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (isInput) {\n div.textContent = div.textContent.replace(/\\s/g, '\\u00a0');\n }\n\n const span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the <span> created at the caret position.\n // For inputs, just '.' would be enough, but no need to bother.\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n\n const coordinates = {\n top: span.offsetTop + parseInt(computed['borderTopWidth'], 10),\n left: span.offsetLeft + parseInt(computed['borderLeftWidth'], 10),\n height: parseInt(computed['lineHeight'], 10)\n };\n\n if (debug) {\n span.style.backgroundColor = '#aaa';\n } else {\n document.body.removeChild(div);\n }\n\n return coordinates;\n }\n\n static getEditableCaretCoordinates(element: HTMLElement): CaretCoordinates {\n if (window.getSelection().rangeCount) {\n const range = window.getSelection().getRangeAt(0);\n const rect = range.getBoundingClientRect();\n // using the start or endcontainer is... uhm yeah... difficult...? :D\n let height: string | number =\n range.startContainer.nodeType === 1\n ? getComputedStyle(range.startContainer as Element).lineHeight\n : getComputedStyle(range.startContainer.parentNode as Element).lineHeight;\n if (isNaN(height as any)) {\n let node = range.startContainer as HTMLElement;\n if (range.startContainer.nodeType !== 1) {\n node = node.parentNode as HTMLElement;\n }\n const current = node.style.lineHeight;\n node.style.lineHeight = '1em';\n height = parseInt(getComputedStyle(node).lineHeight, 10);\n node.style.lineHeight = current != null ? current : '';\n if (!node.getAttribute('style').length) {\n // clean up if empty\n node.removeAttribute('style');\n }\n }\n const editableRect = element.getBoundingClientRect();\n return {\n top: rect.top - editableRect.top,\n left: rect.left - editableRect.left,\n height: height as number\n };\n } else {\n return {\n top: 0,\n left: 0,\n height: 0\n };\n }\n }\n\n static getCaretCoordinates(element: AllElement, position: number, options?: CaretOptions) {\n const isInput = ['INPUT', 'TEXTAREA'].indexOf(element.nodeName) >= 0;\n if (isInput) {\n return this.getTextareaCaretCoordinates(element as InputOrTextAreaElement, position, options);\n } else {\n return this.getEditableCaretCoordinates(element);\n }\n }\n\n // get caret position in view window\n static getCaretPosition(element: AllElement, position: number, options?: CaretOptions) {\n const coordinates = CaretPositioner.getCaretCoordinates(element, position, options);\n const elementOffset = getElementOffset(element);\n return {\n top: coordinates.top + elementOffset.top,\n left: coordinates.left + elementOffset.left\n };\n }\n}\n","import { ThySelectionListChange, ThySelectionList } from 'ngx-tethys/list';\nimport { ThyPopoverRef } from 'ngx-tethys/popover';\nimport { Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, switchMap, take } from 'rxjs/operators';\n\nimport { Component, ElementRef, HostBinding, NgZone, OnDestroy, OnInit, inject } from '@angular/core';\n\nimport { SeekQueryResult } from '../adapter/adapter';\nimport { Mention, MentionDefaultDataItem, MentionSuggestionSelectEvent } from '../interfaces';\nimport { ThyListOption } from 'ngx-tethys/shared';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { NgTemplateOutlet, SlicePipe } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-mention-suggestions',\n templateUrl: './suggestions.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, ThyLoading, ThySelectionList, ThyListOption, SlicePipe]\n})\nexport class ThyMentionSuggestions<TItem = MentionDefaultDataItem> implements OnInit, OnDestroy {\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n private popoverRef = inject<ThyPopoverRef<any>>(ThyPopoverRef);\n\n data: TItem[];\n\n mention: Mention<TItem>;\n\n suggestionSelect$ = new Subject<MentionSuggestionSelectEvent>();\n\n debounce = 150;\n\n loadingDone = true;\n\n private search$ = new Subject<SeekQueryResult>();\n\n @HostBinding('class.thy-mention-suggestions') suggestionsClass = true;\n\n constructor() {\n this.search$\n .pipe(\n switchMap(query => {\n const data = this.mention.search(query.term, this.mention.data);\n if (data instanceof Observable) {\n this.loadingDone = false;\n return (data as Observable<TItem[]>).pipe(debounceTime(this.debounce));\n } else {\n return of(data as TItem[]);\n }\n }),\n catchError(() => {\n this.loadingDone = false;\n return [];\n })\n )\n .subscribe(data => {\n this.loadingDone = true;\n this.data = data || [];\n\n if (this.popoverRef) {\n if (this.mention.autoClose && this.data.length === 0) {\n this.popoverRef.close();\n }\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.popoverRef.updatePosition();\n });\n }\n });\n }\n\n ngOnInit(): void {\n if (this.mention.popoverClass) {\n this.elementRef.nativeElement.classList.add(this.mention.popoverClass);\n }\n }\n\n search(query: SeekQueryResult) {\n this.search$.next(query);\n }\n\n select(item: TItem, event: Event) {\n this.suggestionSelect$.next({\n event,\n item\n });\n }\n\n selectionChange(event: ThySelectionListChange<TItem>) {\n this.select(event.value, event.event);\n }\n\n ngOnDestroy() {\n this.search$.complete();\n }\n}\n","@if (mention.suggestionsTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"mention.suggestionsTemplateRef\" [ngTemplateOutletContext]=\"{ data: data }\"></ng-container>\n} @else {\n <thy-loading [thyDone]=\"loadingDone\"></thy-loading>\n @if (loadingDone) {\n @if (data?.length > 0) {\n <thy-selection-list\n thyBindKeyEventContainer=\"body\"\n thyMultiple=\"false\"\n thyAutoActiveFirstItem=\"true\"\n thySpaceKeyEnabled=\"false\"\n [thyScrollContainer]=\"elementRef\"\n (thySelectionChange)=\"selectionChange($event)\">\n @for (item of data | slice: 0 : mention.limit; track $index) {\n <thy-list-option [thyValue]=\"item\">\n @if (mention?.displayTemplateRef) {\n <ng-template *ngTemplateOutlet=\"mention?.displayTemplateRef; context: { $implicit: item }\"></ng-template>\n } @else {\n {{ item['name'] || '' }}\n }\n </thy-list-option>\n }\n </thy-selection-list>\n } @else {\n <div class=\"text-desc p-3\">\n {{ mention?.emptyText }}\n </div>\n }\n }\n}\n","import { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { EMPTY, fromEvent, Subject } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\n\nimport { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { createMentionAdapter, MatchedMention, MentionAdapter, MentionInputorElement } from './adapter';\nimport { CaretPositioner } from './caret-positioner';\nimport { Mention, MentionDefaultDataItem, MentionSuggestionSelectEvent } from './interfaces';\nimport { ThyMentionSuggestions } from './suggestions/suggestions.component';\nimport { isInputOrTextarea } from 'ngx-tethys/util';\n\nconst SUGGESTION_BACKDROP_CLASS = 'thy-mention-suggestions-backdrop';\n\nconst POPOVER_DEFAULT_CONFIG = {\n backdropClass: SUGGESTION_BACKDROP_CLASS,\n placement: 'bottomLeft'\n};\n\nconst DEFAULT_MENTION_CONFIG: Partial<Mention> = {\n autoClose: true,\n emptyText: '无匹配数据,按空格完成输入',\n search: (term: string, data: MentionDefaultDataItem[]) => {\n return data.filter(item => {\n return !item.name || item.name.toLowerCase().includes(term.toLowerCase());\n });\n }\n};\n\n/**\n * @name thyMention\n * @order 10\n */\n@Directive({\n selector: '[thyMention]',\n standalone: true\n})\nexport class ThyMentionDirective implements OnInit, OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private thyPopover = inject(ThyPopover);\n private ngControl = inject(NgControl, { optional: true, self: true })!;\n\n private adapter: MentionAdapter = null;\n\n public openedSuggestionsRef: ThyPopoverRef<ThyMentionSuggestions>;\n\n private _mentions: Mention<any>[];\n get mentions() {\n return this._mentions;\n }\n\n /**\n * 提及输入配置参数,同时支持多个提及规则\n * @type Mention<any>[]\n */\n @Input('thyMention') set mentions(value: Mention<any>[]) {\n this._mentions = value;\n if (this._mentions) {\n this._mentions = this._mentions.map(mention => {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !mention.trigger) {\n throw new Error(`mention trigger is required`);\n }\n return Object.assign({}, DEFAULT_MENTION_CONFIG, mention);\n });\n }\n }\n\n /**\n * Popover 弹出层参数配置\n */\n @Input('thyPopoverConfig') popoverConfig: ThyPopoverConfig;\n\n /**\n * 选择后的回调函数\n */\n @Output('thySelectSuggestion') select = new EventEmitter<MentionSuggestionSelectEvent>();\n\n get isOpened() {\n return !!this.openedSuggestionsRef;\n }\n\n private destroy$ = new Subject<void>();\n\n private openedSuggestionsRef$ = new Subject<ThyPopoverRef<ThyMentionSuggestions> | null>();\n\n constructor() {\n const elementRef = this.elementRef;\n\n this.adapter = createMentionAdapter(elementRef.nativeElement as MentionInputorElement);\n }\n\n ngOnInit() {\n fromEvent(this.elementRef.nativeElement, 'input')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => this.onInput(event));\n\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => this.onClick(event));\n\n this.openedSuggestionsRef$\n .pipe(\n switchMap(openedSuggestionsRef =>\n // Re-subscribe to `suggestionSelect$` every time the suggestions component is re-created,\n // otherwise, unsubscribe, if it gets closed.\n openedSuggestionsRef ? openedSuggestionsRef.componentInstance.suggestionSelect$ : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(event => {\n const newValue = this.adapter.insertMention(event.item);\n if (isInputOrTextarea(this.elementRef.nativeElement)) {\n if (this.ngControl && this.ngControl.control) {\n this.ngControl.control.setValue(newValue);\n }\n } else {\n this.elementRef.nativeElement.innerText = newValue;\n }\n this.openedSuggestionsRef.close();\n this.select.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n onClick(event: Event) {\n this.lookup(event);\n }\n\n onInput(event: Event) {\n this.lookup(event);\n }\n\n private lookup(event: Event) {\n const matched = this.adapter.lookup(event, this.mentions);\n if (matched) {\n this.openSuggestions(matched);\n } else {\n this.closeSuggestions();\n }\n }\n\n private openSuggestions(matched: MatchedMention) {\n if (!this.openedSuggestionsRef) {\n const inputElement = this.elementRef.nativeElement as HTMLInputElement;\n const position = CaretPositioner.getCaretPosition(inputElement, matched.query.start);\n const fontSize = parseInt(getComputedStyle(this.elementRef.nativeElement).fontSize, 10);\n this.openedSuggestionsRef = this.thyPopover.open(\n ThyMentionSuggestions,\n Object.assign(\n {},\n POPOVER_DEFAULT_CONFIG,\n {\n origin: this.elementRef,\n originPosition: {\n x: position.left,\n y: position.top,\n width: fontSize,\n height: fontSize\n },\n initialState: {\n mention: matched.mention\n }\n },\n this.popoverConfig\n )\n );\n this.openedSuggestionsRef.afterClosed().subscribe(() => {\n this.openedSuggestionsRef = null;\n this.openedSuggestionsRef$.next(null);\n });\n\n this.openedSuggestionsRef$.next(this.openedSuggestionsRef);\n }\n\n if (this.openedSuggestionsRef) {\n this.openedSuggestionsRef.componentInstance.search(matched.query);\n }\n }\n\n private closeSuggestions() {\n if (this.openedSuggestionsRef) {\n this.openedSuggestionsRef.close();\n }\n }\n}\n","import { ThyListModule } from 'ngx-tethys/list';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyMentionDirective } from './mention.directive';\nimport { ThyMentionSuggestions } from './suggestions/suggestions.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionDirective, ThyMentionSuggestions],\n exports: [ThyMentionDirective],\n providers: []\n})\nexport class ThyMentionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { NgClass, NgTemplateOutlet, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, HostBinding, EventEmitter, ChangeDetectionStrategy, ViewChild, ContentChild, Input, Output, ElementRef, NgModule } from '@angular/core';
3
+ import { Component, HostBinding, inject, EventEmitter, ChangeDetectionStrategy, ViewChild, ContentChild, Input, Output, Renderer2, ElementRef, NgModule } from '@angular/core';
4
4
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
5
- import * as i1 from 'ngx-tethys/popover';
6
- import { ThyPopoverModule } from 'ngx-tethys/popover';
5
+ import { ThyPopover, ThyPopoverModule } from 'ngx-tethys/popover';
7
6
  import { trigger, state, style, transition, animate } from '@angular/animations';
8
7
  import { coerceBooleanProperty } from 'ngx-tethys/util';
9
8
  import { useHostRenderer } from '@tethys/cdk/dom';
@@ -33,6 +32,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
33
32
  * @order 30
34
33
  */
35
34
  class ThyMenuGroup {
35
+ constructor() {
36
+ this.popover = inject(ThyPopover);
37
+ this.rightIconClass = 'more';
38
+ this.iconClass = 'folder-bold';
39
+ this.groupHeaderPaddingLeft = 0;
40
+ this.isThyMenuGroup = true;
41
+ this.showIcon = false;
42
+ this.isCollapsed = false;
43
+ /**
44
+ * 分组标题
45
+ */
46
+ this.thyTitle = '';
47
+ /**
48
+ * 是否支持展开收起
49
+ */
50
+ this.thyCollapsible = false;
51
+ /**
52
+ *是否显示操作
53
+ */
54
+ this.thyShowAction = false;
55
+ /**
56
+ * 操作阻止冒泡事件
57
+ */
58
+ this.thyActionStopPropagation = true;
59
+ /**
60
+ * Action 点击事件
61
+ */
62
+ this.thyOnActionClick = new EventEmitter();
63
+ this.thyCollapsedChange = new EventEmitter();
64
+ }
36
65
  /**
37
66
  * 已废弃,请使用 thyCollapsed
38
67
  * @deprecated
@@ -71,36 +100,6 @@ class ThyMenuGroup {
71
100
  set thyActionMenu(value) {
72
101
  this._actionMenu = value;
73
102
  }
74
- constructor(popover) {
75
- this.popover = popover;
76
- this.rightIconClass = 'more';
77
- this.iconClass = 'folder-bold';
78
- this.groupHeaderPaddingLeft = 0;
79
- this.isThyMenuGroup = true;
80
- this.showIcon = false;
81
- this.isCollapsed = false;
82
- /**
83
- * 分组标题
84
- */
85
- this.thyTitle = '';
86
- /**
87
- * 是否支持展开收起
88
- */
89
- this.thyCollapsible = false;
90
- /**
91
- *是否显示操作
92
- */
93
- this.thyShowAction = false;
94
- /**
95
- * 操作阻止冒泡事件
96
- */
97
- this.thyActionStopPropagation = true;
98
- /**
99
- * Action 点击事件
100
- */
101
- this.thyOnActionClick = new EventEmitter();
102
- this.thyCollapsedChange = new EventEmitter();
103
- }
104
103
  ngOnInit() { }
105
104
  collapseGroup() {
106
105
  if (!this.thyCollapsible) {
@@ -124,7 +123,7 @@ class ThyMenuGroup {
124
123
  this.thyOnActionClick.emit(event);
125
124
  }
126
125
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMenuGroup, deps: [{ token: i1.ThyPopover }], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
127
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyMenuGroup, isStandalone: true, selector: "thy-menu-group,[thy-menu-group],[thyMenuGroup]", inputs: { thyTitle: "thyTitle", thyExpand: ["thyExpand", "thyExpand", coerceBooleanProperty], thyCollapsed: ["thyCollapsed", "thyCollapsed", coerceBooleanProperty], thyCollapsible: ["thyCollapsible", "thyCollapsible", coerceBooleanProperty], thyShowIcon: ["thyShowIcon", "thyShowIcon", coerceBooleanProperty], thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyShowAction: ["thyShowAction", "thyShowAction", coerceBooleanProperty], thyActionStopPropagation: ["thyActionStopPropagation", "thyActionStopPropagation", coerceBooleanProperty], thyActionMenu: "thyActionMenu" }, outputs: { thyOnActionClick: "thyOnActionClick", thyCollapsedChange: "thyCollapsedChange" }, host: { properties: { "class.thy-menu-group": "this.isThyMenuGroup", "class.has-icon": "this.showIcon", "class.collapsed": "this.isCollapsed" } }, queries: [{ propertyName: "headerContentTemplateRef", first: true, predicate: ["headerContent"], descendants: true }], viewQueries: [{ propertyName: "_thyMenuGroup", first: true, predicate: ["thyMenuGroup"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"thy-menu-group-header\" [ngClass]=\"{ 'thy-menu-group-collapsible': thyCollapsible }\" (click)=\"collapseGroup()\">\n <div class=\"thy-menu-group-header-content\">\n @if (headerContentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"headerContentTemplateRef\"></ng-template>\n } @else {\n <span class=\"thy-menu-group-title\">\n @if (showIcon) {\n <thy-icon class=\"thy-menu-group-title-icon mr-2\" [thyIconName]=\"iconClass\"></thy-icon>\n }\n <span class=\"thy-menu-group-title-text\">{{ thyTitle }}</span>\n </span>\n }\n </div>\n @if (thyShowAction) {\n <thy-icon\n class=\"thy-menu-group-operation\"\n [thyIconName]=\"rightIconClass\"\n (click)=\"onActionClick($event)\"\n ></thy-icon>\n }\n @if (thyCollapsible) {\n <thy-icon thyIconName=\"angle-up\" class=\"thy-menu-group-arrow\"></thy-icon>\n }\n</div>\n<div class=\"thy-menu-group-body\" #thyMenuGroup [@detailsContentAnimation]=\"isCollapsed\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], animations: [
129
128
  trigger('detailsContentAnimation', [
130
129
  state('void', style({
@@ -158,7 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
158
157
  transition('* => *', animate('0ms ease-out'))
159
158
  ])
160
159
  ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgTemplateOutlet, ThyIcon], template: "<div class=\"thy-menu-group-header\" [ngClass]=\"{ 'thy-menu-group-collapsible': thyCollapsible }\" (click)=\"collapseGroup()\">\n <div class=\"thy-menu-group-header-content\">\n @if (headerContentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"headerContentTemplateRef\"></ng-template>\n } @else {\n <span class=\"thy-menu-group-title\">\n @if (showIcon) {\n <thy-icon class=\"thy-menu-group-title-icon mr-2\" [thyIconName]=\"iconClass\"></thy-icon>\n }\n <span class=\"thy-menu-group-title-text\">{{ thyTitle }}</span>\n </span>\n }\n </div>\n @if (thyShowAction) {\n <thy-icon\n class=\"thy-menu-group-operation\"\n [thyIconName]=\"rightIconClass\"\n (click)=\"onActionClick($event)\"\n ></thy-icon>\n }\n @if (thyCollapsible) {\n <thy-icon thyIconName=\"angle-up\" class=\"thy-menu-group-arrow\"></thy-icon>\n }\n</div>\n<div class=\"thy-menu-group-body\" #thyMenuGroup [@detailsContentAnimation]=\"isCollapsed\">\n <ng-content></ng-content>\n</div>\n" }]
161
- }], ctorParameters: () => [{ type: i1.ThyPopover }], propDecorators: { _thyMenuGroup: [{
160
+ }], propDecorators: { _thyMenuGroup: [{
162
161
  type: ViewChild,
163
162
  args: ['thyMenuGroup', { static: true }]
164
163
  }], headerContentTemplateRef: [{
@@ -213,6 +212,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
213
212
  * @order 25
214
213
  */
215
214
  class ThyMenuItemAction {
215
+ constructor() {
216
+ this.popover = inject(ThyPopover);
217
+ this.renderer = inject(Renderer2);
218
+ this.elementRef = inject(ElementRef);
219
+ this._boundEvent = false;
220
+ /**
221
+ * 是否阻止事件冒泡
222
+ */
223
+ this.thyStopPropagation = true;
224
+ this.removeClickListenerFn = null;
225
+ }
216
226
  /**
217
227
  * 设置 Action 菜单
218
228
  */
@@ -247,21 +257,10 @@ class ThyMenuItemAction {
247
257
  }
248
258
  });
249
259
  }
250
- constructor(popover, renderer, elementRef) {
251
- this.popover = popover;
252
- this.renderer = renderer;
253
- this.elementRef = elementRef;
254
- this._boundEvent = false;
255
- /**
256
- * 是否阻止事件冒泡
257
- */
258
- this.thyStopPropagation = true;
259
- this.removeClickListenerFn = null;
260
- }
261
260
  ngOnDestroy() {
262
261
  this.removeClickListenerFn?.();
263
262
  }
264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMenuItemAction, deps: [{ token: i1.ThyPopover }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMenuItemAction, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
265
264
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyMenuItemAction, isStandalone: true, selector: "thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]", inputs: { thyActionMenu: "thyActionMenu", thyStopPropagation: ["thyStopPropagation", "thyStopPropagation", coerceBooleanProperty], thyPopoverOptions: "thyPopoverOptions" }, host: { classAttribute: "thy-menu-item-action" }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
266
265
  }
267
266
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMenuItemAction, decorators: [{
@@ -269,7 +268,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
269
268
  args: [{ selector: 'thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]', host: {
270
269
  class: 'thy-menu-item-action'
271
270
  }, standalone: true, template: "<ng-content></ng-content>\n" }]
272
- }], ctorParameters: () => [{ type: i1.ThyPopover }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { thyActionMenu: [{
271
+ }], propDecorators: { thyActionMenu: [{
273
272
  type: Input
274
273
  }], thyStopPropagation: [{
275
274
  type: Input,
@@ -314,8 +313,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
314
313
  * @order 10
315
314
  */
316
315
  class ThyMenuItem {
317
- constructor(renderer) {
318
- this.renderer = renderer;
316
+ constructor() {
317
+ this.renderer = inject(Renderer2);
319
318
  }
320
319
  ngOnInit() { }
321
320
  ngAfterViewInit() {
@@ -332,7 +331,7 @@ class ThyMenuItem {
332
331
  }
333
332
  });
334
333
  }
335
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMenuItem, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
336
335
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyMenuItem, isStandalone: true, selector: "thy-menu-item,[thy-menu-item],[thyMenuItem]", inputs: { thyIcon: "thyIcon" }, host: { classAttribute: "thy-menu-item" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"thy-menu-item-content\" #content>\n @if (thyIcon) {\n <thy-icon class=\"thy-menu-item-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
337
336
  }
338
337
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyMenuItem, decorators: [{
@@ -340,7 +339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
340
339
  args: [{ selector: 'thy-menu-item,[thy-menu-item],[thyMenuItem]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
341
340
  class: 'thy-menu-item'
342
341
  }, standalone: true, imports: [ThyIcon], template: "<div class=\"thy-menu-item-content\" #content>\n @if (thyIcon) {\n <thy-icon class=\"thy-menu-item-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n" }]
343
- }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { content: [{
342
+ }], propDecorators: { content: [{
344
343
  type: ViewChild,
345
344
  args: ['content', { read: ElementRef }]
346
345
  }], thyIcon: [{