ngx-tethys 19.1.13 → 20.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (827) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/action/index.d.ts +107 -3
  3. package/affix/index.d.ts +65 -2
  4. package/alert/index.d.ts +74 -3
  5. package/anchor/index.d.ts +118 -3
  6. package/arrow-switcher/index.d.ts +79 -2
  7. package/autocomplete/index.d.ts +280 -7
  8. package/avatar/index.d.ts +195 -5
  9. package/back-top/index.d.ts +68 -2
  10. package/badge/index.d.ts +87 -2
  11. package/breadcrumb/index.d.ts +71 -3
  12. package/button/index.d.ts +156 -4
  13. package/calendar/index.d.ts +161 -4
  14. package/card/index.d.ts +100 -4
  15. package/carousel/index.d.ts +210 -4
  16. package/cascader/index.d.ts +471 -5
  17. package/checkbox/index.d.ts +27 -2
  18. package/collapse/index.d.ts +108 -3
  19. package/color-picker/index.d.ts +494 -13
  20. package/comment/index.d.ts +53 -4
  21. package/copy/index.d.ts +59 -2
  22. package/core/index.d.ts +680 -15
  23. package/date-picker/index.d.ts +1148 -36
  24. package/date-range/index.d.ts +158 -4
  25. package/dialog/index.d.ts +393 -11
  26. package/divider/index.d.ts +60 -2
  27. package/dot/index.d.ts +56 -2
  28. package/drag-drop/index.d.ts +281 -9
  29. package/dropdown/index.d.ts +282 -6
  30. package/empty/index.d.ts +116 -3
  31. package/fesm2022/ngx-tethys-action.mjs +26 -26
  32. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-affix.mjs +14 -14
  34. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-alert.mjs +19 -19
  36. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys-anchor.mjs +25 -25
  38. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-arrow-switcher.mjs +20 -20
  40. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-autocomplete.mjs +41 -36
  42. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-avatar.mjs +45 -45
  44. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-back-top.mjs +15 -15
  46. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-badge.mjs +27 -27
  48. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-breadcrumb.mjs +20 -20
  50. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-button.mjs +57 -51
  52. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-calendar.mjs +29 -29
  54. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-card.mjs +28 -28
  56. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-carousel.mjs +29 -29
  58. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-cascader.mjs +93 -87
  60. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
  62. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys-collapse.mjs +24 -24
  64. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  65. package/fesm2022/ngx-tethys-color-picker.mjs +75 -73
  66. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  67. package/fesm2022/ngx-tethys-comment.mjs +17 -17
  68. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  69. package/fesm2022/ngx-tethys-copy.mjs +15 -15
  70. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  71. package/fesm2022/ngx-tethys-core.mjs +38 -38
  72. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  73. package/fesm2022/ngx-tethys-date-picker.mjs +323 -305
  74. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  75. package/fesm2022/ngx-tethys-date-range.mjs +23 -23
  76. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-dialog.mjs +56 -54
  78. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-divider.mjs +16 -16
  80. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-dot.mjs +20 -20
  82. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-drag-drop.mjs +20 -21
  84. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-dropdown.mjs +85 -83
  86. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-empty.mjs +28 -28
  88. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-flexible-text.mjs +13 -13
  90. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-form.mjs +99 -95
  92. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-fullscreen.mjs +22 -21
  94. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-grid.mjs +60 -60
  96. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-guider.mjs +20 -20
  98. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-i18n.mjs +4 -4
  100. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-icon.mjs +20 -20
  102. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-image.mjs +26 -26
  104. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-input-number.mjs +28 -24
  106. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  107. package/fesm2022/ngx-tethys-input.mjs +72 -71
  108. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  109. package/fesm2022/ngx-tethys-layout.mjs +128 -118
  110. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  111. package/fesm2022/ngx-tethys-list.mjs +37 -37
  112. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  113. package/fesm2022/ngx-tethys-loading.mjs +11 -11
  114. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  115. package/fesm2022/ngx-tethys-mention.mjs +18 -18
  116. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  117. package/fesm2022/ngx-tethys-menu.mjs +57 -57
  118. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  119. package/fesm2022/ngx-tethys-message.mjs +43 -40
  120. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  121. package/fesm2022/ngx-tethys-nav.mjs +58 -58
  122. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  123. package/fesm2022/ngx-tethys-notify.mjs +35 -32
  124. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  125. package/fesm2022/ngx-tethys-pagination.mjs +38 -38
  126. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  127. package/fesm2022/ngx-tethys-popover.mjs +46 -38
  128. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  129. package/fesm2022/ngx-tethys-progress.mjs +64 -57
  130. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  131. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  132. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  133. package/fesm2022/ngx-tethys-property.mjs +29 -29
  134. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  135. package/fesm2022/ngx-tethys-radio.mjs +23 -23
  136. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  137. package/fesm2022/ngx-tethys-rate.mjs +28 -28
  138. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  139. package/fesm2022/ngx-tethys-resizable.mjs +38 -38
  140. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  141. package/fesm2022/ngx-tethys-result.mjs +16 -16
  142. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  143. package/fesm2022/ngx-tethys-segment.mjs +23 -23
  144. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  145. package/fesm2022/ngx-tethys-select.mjs +76 -64
  146. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  147. package/fesm2022/ngx-tethys-shared.mjs +163 -155
  148. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-skeleton.mjs +84 -84
  150. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-slide.mjs +50 -46
  152. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-slider.mjs +21 -21
  154. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-space.mjs +16 -16
  156. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-statistic.mjs +29 -29
  158. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-stepper.mjs +37 -37
  160. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-strength.mjs +22 -22
  162. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-switch.mjs +19 -19
  164. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-table.mjs +22 -22
  166. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-tabs.mjs +31 -31
  168. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-tag.mjs +18 -18
  170. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-time-picker.mjs +75 -74
  173. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-timeline.mjs +28 -28
  175. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-tooltip.mjs +28 -28
  177. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-transfer.mjs +36 -36
  179. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-tree-select.mjs +58 -58
  181. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-tree.mjs +77 -72
  183. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-typography.mjs +19 -19
  185. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-upload.mjs +68 -68
  187. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  189. package/fesm2022/ngx-tethys-vote.mjs +25 -25
  190. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  191. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  192. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  193. package/fesm2022/ngx-tethys.mjs +1 -1
  194. package/fesm2022/ngx-tethys.mjs.map +1 -1
  195. package/flexible-text/index.d.ts +64 -2
  196. package/form/index.d.ts +405 -11
  197. package/fullscreen/index.d.ts +117 -6
  198. package/grid/index.d.ts +262 -7
  199. package/guider/index.d.ts +304 -8
  200. package/i18n/index.d.ts +1053 -6
  201. package/icon/index.d.ts +145 -4
  202. package/image/index.d.ts +263 -8
  203. package/index.d.ts +5 -5
  204. package/input/index.d.ts +281 -6
  205. package/input-number/index.d.ts +133 -2
  206. package/layout/index.d.ts +362 -10
  207. package/list/index.d.ts +182 -6
  208. package/loading/index.d.ts +34 -2
  209. package/mention/index.d.ts +147 -4
  210. package/menu/index.d.ts +191 -8
  211. package/message/index.d.ts +203 -8
  212. package/nav/index.d.ts +269 -6
  213. package/notify/index.d.ts +158 -7
  214. package/package.json +13 -13
  215. package/pagination/index.d.ts +248 -5
  216. package/popover/index.d.ts +339 -9
  217. package/progress/index.d.ts +154 -5
  218. package/property/index.d.ts +118 -3
  219. package/property-operation/index.d.ts +114 -3
  220. package/radio/index.d.ts +102 -4
  221. package/rate/index.d.ts +99 -3
  222. package/resizable/index.d.ts +197 -7
  223. package/result/index.d.ts +63 -2
  224. package/schematics/ng-update/migration-collection.json +4 -4
  225. package/schematics/ng-update/{update-19 → update-20}/index.js +1 -1
  226. package/schematics/ng-update/{update-19 → update-20}/index.spec.js +5 -5
  227. package/schematics/version.d.ts +1 -1
  228. package/schematics/version.js +1 -1
  229. package/segment/index.d.ts +119 -4
  230. package/select/index.d.ts +332 -4
  231. package/shared/index.d.ts +516 -16
  232. package/skeleton/index.d.ts +301 -8
  233. package/slide/index.d.ts +270 -12
  234. package/slider/index.d.ts +117 -2
  235. package/space/index.d.ts +48 -2
  236. package/statistic/index.d.ts +124 -2
  237. package/stepper/index.d.ts +112 -5
  238. package/strength/index.d.ts +77 -2
  239. package/switch/index.d.ts +69 -2
  240. package/table/index.d.ts +670 -9
  241. package/tabs/index.d.ts +114 -4
  242. package/tag/index.d.ts +71 -3
  243. package/testing/index.d.ts +178 -7
  244. package/time-picker/index.d.ts +468 -7
  245. package/timeline/index.d.ts +109 -5
  246. package/tooltip/index.d.ts +198 -8
  247. package/transfer/index.d.ts +212 -4
  248. package/tree/index.d.ts +469 -5
  249. package/tree-select/index.d.ts +231 -3
  250. package/types/index.d.ts +22 -3
  251. package/typography/index.d.ts +69 -4
  252. package/upload/index.d.ts +253 -6
  253. package/util/index.d.ts +595 -14
  254. package/vote/index.d.ts +66 -2
  255. package/watermark/index.d.ts +75 -2
  256. package/action/action.component.d.ts +0 -76
  257. package/action/action.module.d.ts +0 -10
  258. package/action/actions.component.d.ts +0 -21
  259. package/affix/affix.component.d.ts +0 -54
  260. package/affix/affix.module.d.ts +0 -9
  261. package/affix/respond-events.d.ts +0 -9
  262. package/alert/alert.component.d.ts +0 -51
  263. package/alert/alert.directive.d.ts +0 -12
  264. package/alert/alert.module.d.ts +0 -10
  265. package/anchor/anchor-link.component.d.ts +0 -34
  266. package/anchor/anchor.component.d.ts +0 -68
  267. package/anchor/anchor.module.d.ts +0 -11
  268. package/anchor/anchor.token.d.ts +0 -9
  269. package/arrow-switcher/arrow-switcher.component.d.ts +0 -64
  270. package/arrow-switcher/module.d.ts +0 -12
  271. package/autocomplete/autocomplete.component.d.ts +0 -79
  272. package/autocomplete/autocomplete.trigger.directive.d.ts +0 -77
  273. package/autocomplete/module.d.ts +0 -18
  274. package/autocomplete/overlay/autocomplete-animations.d.ts +0 -8
  275. package/autocomplete/overlay/autocomplete-container.component.d.ts +0 -33
  276. package/autocomplete/overlay/autocomplete-ref.d.ts +0 -14
  277. package/autocomplete/overlay/autocomplete.config.d.ts +0 -36
  278. package/autocomplete/overlay/autocomplete.options.d.ts +0 -2
  279. package/autocomplete/overlay/autocomplete.service.d.ts +0 -32
  280. package/avatar/avatar-list/avatar-list.component.d.ts +0 -41
  281. package/avatar/avatar.component.d.ts +0 -95
  282. package/avatar/avatar.module.d.ts +0 -11
  283. package/avatar/avatar.pipe.d.ts +0 -30
  284. package/avatar/avatar.service.d.ts +0 -21
  285. package/back-top/back-top.component.d.ts +0 -57
  286. package/back-top/back-top.module.d.ts +0 -9
  287. package/badge/badge.component.d.ts +0 -75
  288. package/badge/badge.module.d.ts +0 -9
  289. package/breadcrumb/breadcrumb-item.component.d.ts +0 -15
  290. package/breadcrumb/breadcrumb.component.d.ts +0 -44
  291. package/breadcrumb/module.d.ts +0 -12
  292. package/button/button-group.component.d.ts +0 -32
  293. package/button/button-icon.component.d.ts +0 -51
  294. package/button/button.component.d.ts +0 -61
  295. package/button/button.module.d.ts +0 -11
  296. package/calendar/calendar-cells.d.ts +0 -17
  297. package/calendar/calendar-header.component.d.ts +0 -51
  298. package/calendar/calendar.component.d.ts +0 -78
  299. package/calendar/module.d.ts +0 -18
  300. package/card/card.component.d.ts +0 -28
  301. package/card/card.module.d.ts +0 -10
  302. package/card/content.component.d.ts +0 -21
  303. package/card/header.component.d.ts +0 -42
  304. package/carousel/carousel-item.directive.d.ts +0 -14
  305. package/carousel/carousel.component.d.ts +0 -112
  306. package/carousel/carousel.service.d.ts +0 -19
  307. package/carousel/carousel.token.d.ts +0 -7
  308. package/carousel/engine/carousel-base.d.ts +0 -27
  309. package/carousel/engine/carousel-fade.d.ts +0 -15
  310. package/carousel/engine/carousel-noop.d.ts +0 -14
  311. package/carousel/engine/carousel-slide.d.ts +0 -16
  312. package/carousel/engine/index.d.ts +0 -4
  313. package/carousel/module.d.ts +0 -11
  314. package/carousel/typings.d.ts +0 -20
  315. package/cascader/cascader-li.component.d.ts +0 -24
  316. package/cascader/cascader-search-option.component.d.ts +0 -21
  317. package/cascader/cascader.component.d.ts +0 -284
  318. package/cascader/cascader.pipe.d.ts +0 -11
  319. package/cascader/cascader.service.d.ts +0 -97
  320. package/cascader/module.d.ts +0 -19
  321. package/cascader/types.d.ts +0 -23
  322. package/checkbox/checkbox.component.d.ts +0 -16
  323. package/checkbox/module.d.ts +0 -9
  324. package/collapse/collapse-item.component.d.ts +0 -52
  325. package/collapse/collapse.component.d.ts +0 -29
  326. package/collapse/collapse.token.d.ts +0 -15
  327. package/collapse/module.d.ts +0 -13
  328. package/color-picker/color-picker-custom-panel.component.d.ts +0 -17
  329. package/color-picker/color-picker-panel.component.d.ts +0 -28
  330. package/color-picker/color-picker.component.d.ts +0 -100
  331. package/color-picker/constant.d.ts +0 -1
  332. package/color-picker/coordinates.directive.d.ts +0 -28
  333. package/color-picker/helpers/color.class.d.ts +0 -32
  334. package/color-picker/helpers/colors-table.class.d.ts +0 -154
  335. package/color-picker/helpers/rgba.class.d.ts +0 -20
  336. package/color-picker/module.d.ts +0 -22
  337. package/color-picker/parts/alpha/alpha.component.d.ts +0 -28
  338. package/color-picker/parts/hue/hue.component.d.ts +0 -26
  339. package/color-picker/parts/indicator/indicator.component.d.ts +0 -13
  340. package/color-picker/parts/inputs/inputs.component.d.ts +0 -18
  341. package/color-picker/parts/saturation/saturation.component.d.ts +0 -28
  342. package/comment/comment-actions.directive.d.ts +0 -8
  343. package/comment/comment-content.directive.d.ts +0 -8
  344. package/comment/comment.component.d.ts +0 -24
  345. package/comment/comment.module.d.ts +0 -13
  346. package/copy/copy.directive.d.ts +0 -47
  347. package/copy/module.d.ts +0 -9
  348. package/core/animation/animation-consts.d.ts +0 -22
  349. package/core/animation/collapse.d.ts +0 -2
  350. package/core/animation/fade.d.ts +0 -2
  351. package/core/animation/index.d.ts +0 -1
  352. package/core/animation/public-api.d.ts +0 -5
  353. package/core/animation/thumb.d.ts +0 -6
  354. package/core/animation/zoom.d.ts +0 -4
  355. package/core/behaviors/constructor.d.ts +0 -5
  356. package/core/behaviors/control-value-accessor.d.ts +0 -7
  357. package/core/behaviors/decorators.d.ts +0 -9
  358. package/core/behaviors/disabled.d.ts +0 -7
  359. package/core/behaviors/focus-control.d.ts +0 -14
  360. package/core/behaviors/index.d.ts +0 -10
  361. package/core/behaviors/initialized.d.ts +0 -6
  362. package/core/behaviors/loading-done.d.ts +0 -5
  363. package/core/behaviors/mixin.d.ts +0 -5
  364. package/core/behaviors/tabindex.d.ts +0 -11
  365. package/core/behaviors/unsubscribe.d.ts +0 -11
  366. package/core/click-positioner.d.ts +0 -15
  367. package/core/color/color.d.ts +0 -9
  368. package/core/color/index.d.ts +0 -1
  369. package/core/debounce-time.d.ts +0 -8
  370. package/core/event-dispatchers/index.d.ts +0 -1
  371. package/core/overlay/abstract-overlay-container.d.ts +0 -43
  372. package/core/overlay/abstract-overlay-ref.d.ts +0 -101
  373. package/core/overlay/abstract-overlay.config.d.ts +0 -131
  374. package/core/overlay/abstract-overlay.service.d.ts +0 -56
  375. package/core/overlay/index.d.ts +0 -9
  376. package/core/overlay/interface.d.ts +0 -5
  377. package/core/overlay/overlay-position-map.d.ts +0 -5
  378. package/core/overlay/overlay.directive.d.ts +0 -51
  379. package/core/overlay/portal-directives.d.ts +0 -14
  380. package/core/overlay/utils.d.ts +0 -14
  381. package/core/request-animation.d.ts +0 -2
  382. package/core/scroll-to.service.d.ts +0 -4
  383. package/core/scroll.d.ts +0 -22
  384. package/core/spacing/index.d.ts +0 -1
  385. package/core/spacing/spacing.d.ts +0 -2
  386. package/core/store/action-state.d.ts +0 -5
  387. package/core/store/action.d.ts +0 -4
  388. package/core/store/actions-stream.d.ts +0 -14
  389. package/core/store/index.d.ts +0 -3
  390. package/core/store/store.d.ts +0 -43
  391. package/core/store/types.d.ts +0 -12
  392. package/core/store/utils.d.ts +0 -2
  393. package/core/theme/enum.d.ts +0 -5
  394. package/core/theme/index.d.ts +0 -3
  395. package/core/theme/store.d.ts +0 -12
  396. package/core/theme/theme.d.ts +0 -2
  397. package/core/translate.d.ts +0 -8
  398. package/core/update-host-class.service.d.ts +0 -15
  399. package/date-picker/abstract-picker.component.d.ts +0 -174
  400. package/date-picker/abstract-picker.directive.d.ts +0 -57
  401. package/date-picker/base-picker.component.d.ts +0 -49
  402. package/date-picker/date-helper.service.d.ts +0 -20
  403. package/date-picker/date-picker.component.d.ts +0 -15
  404. package/date-picker/date-picker.config.d.ts +0 -27
  405. package/date-picker/date-picker.directive.d.ts +0 -13
  406. package/date-picker/date-picker.module.d.ts +0 -24
  407. package/date-picker/date-picker.service.d.ts +0 -14
  408. package/date-picker/inner-types.d.ts +0 -19
  409. package/date-picker/lib/calendar/calendar-footer.component.d.ts +0 -37
  410. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -44
  411. package/date-picker/lib/calendar/calendar-table.component.d.ts +0 -41
  412. package/date-picker/lib/date/date-header.component.d.ts +0 -10
  413. package/date-picker/lib/date/date-table-cell.component.d.ts +0 -18
  414. package/date-picker/lib/date/date-table.component.d.ts +0 -23
  415. package/date-picker/lib/date/types.d.ts +0 -41
  416. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +0 -65
  417. package/date-picker/lib/decade/decade-header.component.d.ts +0 -14
  418. package/date-picker/lib/decade/decade-table.component.d.ts +0 -21
  419. package/date-picker/lib/lib-packer.module.d.ts +0 -28
  420. package/date-picker/lib/month/month-header.component.d.ts +0 -10
  421. package/date-picker/lib/month/month-table.component.d.ts +0 -22
  422. package/date-picker/lib/popups/date-popup.component.d.ts +0 -99
  423. package/date-picker/lib/popups/inner-popup.component.d.ts +0 -43
  424. package/date-picker/lib/quarter/quarter-table.component.d.ts +0 -21
  425. package/date-picker/lib/year/year-header.component.d.ts +0 -14
  426. package/date-picker/lib/year/year-table.component.d.ts +0 -21
  427. package/date-picker/month-picker.component.d.ts +0 -19
  428. package/date-picker/picker.component.d.ts +0 -76
  429. package/date-picker/picker.pipes.d.ts +0 -40
  430. package/date-picker/picker.util.d.ts +0 -30
  431. package/date-picker/picker.validators.d.ts +0 -22
  432. package/date-picker/quarter-picker.component.d.ts +0 -22
  433. package/date-picker/range-picker.component.d.ts +0 -16
  434. package/date-picker/range-picker.directive.d.ts +0 -14
  435. package/date-picker/standard-types.d.ts +0 -45
  436. package/date-picker/week-picker.component.d.ts +0 -15
  437. package/date-picker/year-picker.component.d.ts +0 -22
  438. package/date-range/date-range.class.d.ts +0 -29
  439. package/date-range/date-range.component.d.ts +0 -89
  440. package/date-range/module.d.ts +0 -15
  441. package/date-range/optional-dates/optional-dates.component.d.ts +0 -25
  442. package/dialog/body/dialog-body.component.d.ts +0 -18
  443. package/dialog/confirm/confirm.component.d.ts +0 -29
  444. package/dialog/confirm/token.d.ts +0 -8
  445. package/dialog/confirm.config.d.ts +0 -71
  446. package/dialog/dialog-animations.d.ts +0 -8
  447. package/dialog/dialog-container.component.d.ts +0 -46
  448. package/dialog/dialog-ref.d.ts +0 -32
  449. package/dialog/dialog.config.d.ts +0 -79
  450. package/dialog/dialog.module.d.ts +0 -20
  451. package/dialog/dialog.options.d.ts +0 -2
  452. package/dialog/dialog.service.d.ts +0 -52
  453. package/dialog/footer/dialog-footer.component.d.ts +0 -33
  454. package/dialog/header/dialog-header.component.d.ts +0 -47
  455. package/divider/divider.component.d.ts +0 -47
  456. package/divider/divider.module.d.ts +0 -10
  457. package/dot/dot.component.d.ts +0 -45
  458. package/dot/dot.module.d.ts +0 -8
  459. package/drag-drop/drag-content.directive.d.ts +0 -15
  460. package/drag-drop/drag-drop.class.d.ts +0 -36
  461. package/drag-drop/drag-drop.service.d.ts +0 -27
  462. package/drag-drop/drag-drop.token.d.ts +0 -24
  463. package/drag-drop/drag-handle.directive.d.ts +0 -24
  464. package/drag-drop/drag-ref.d.ts +0 -47
  465. package/drag-drop/drag.directive.d.ts +0 -39
  466. package/drag-drop/drop-container.directive.d.ts +0 -70
  467. package/drag-drop/module.d.ts +0 -14
  468. package/dropdown/dropdown-active.directive.d.ts +0 -27
  469. package/dropdown/dropdown-menu-item.directive.d.ts +0 -95
  470. package/dropdown/dropdown-menu.component.d.ts +0 -54
  471. package/dropdown/dropdown-submenu.component.d.ts +0 -23
  472. package/dropdown/dropdown.directive.d.ts +0 -77
  473. package/dropdown/module.d.ts +0 -13
  474. package/empty/empty.component.d.ts +0 -92
  475. package/empty/empty.config.d.ts +0 -10
  476. package/empty/empty.module.d.ts +0 -10
  477. package/empty/svgs.d.ts +0 -4
  478. package/flexible-text/flexible-text.component.d.ts +0 -53
  479. package/flexible-text/flexible-text.module.d.ts +0 -10
  480. package/form/form-group-error/form-group-error.component.d.ts +0 -21
  481. package/form/form-group-label.directive.d.ts +0 -18
  482. package/form/form-group.component.d.ts +0 -68
  483. package/form/form-submit.directive.d.ts +0 -18
  484. package/form/form-validator-loader.d.ts +0 -28
  485. package/form/form-validator.service.d.ts +0 -54
  486. package/form/form.class.d.ts +0 -54
  487. package/form/form.directive.d.ts +0 -56
  488. package/form/from-group-footer/form-group-footer.component.d.ts +0 -27
  489. package/form/module.d.ts +0 -25
  490. package/form/validator/confirm-validator.directive.d.ts +0 -17
  491. package/form/validator/index.d.ts +0 -4
  492. package/form/validator/max-validator.directive.d.ts +0 -15
  493. package/form/validator/min-validator.directive.d.ts +0 -15
  494. package/form/validator/unique-validator.directive.d.ts +0 -16
  495. package/fullscreen/fullscreen-launch.directive.d.ts +0 -9
  496. package/fullscreen/fullscreen-ref.d.ts +0 -25
  497. package/fullscreen/fullscreen.component.d.ts +0 -34
  498. package/fullscreen/fullscreen.config.d.ts +0 -23
  499. package/fullscreen/fullscreen.module.d.ts +0 -8
  500. package/fullscreen/fullscreen.service.d.ts +0 -20
  501. package/grid/flex.d.ts +0 -85
  502. package/grid/grid.token.d.ts +0 -7
  503. package/grid/grid.type.d.ts +0 -5
  504. package/grid/module.d.ts +0 -11
  505. package/grid/thy-col.directive.d.ts +0 -33
  506. package/grid/thy-grid-item.component.d.ts +0 -28
  507. package/grid/thy-grid.component.d.ts +0 -71
  508. package/grid/thy-row.directive.d.ts +0 -30
  509. package/guider/guider-hint/guider-hint.component.d.ts +0 -28
  510. package/guider/guider-manager.d.ts +0 -23
  511. package/guider/guider-ref.d.ts +0 -42
  512. package/guider/guider-step-ref.d.ts +0 -44
  513. package/guider/guider.class.d.ts +0 -95
  514. package/guider/guider.directive.d.ts +0 -21
  515. package/guider/guider.interface.d.ts +0 -26
  516. package/guider/guider.module.d.ts +0 -13
  517. package/guider/guider.service.d.ts +0 -25
  518. package/guider/utils.d.ts +0 -4
  519. package/i18n/i18n.d.ts +0 -191
  520. package/i18n/i18n.service.d.ts +0 -19
  521. package/i18n/i18n.token.d.ts +0 -8
  522. package/i18n/locale.d.ts +0 -4
  523. package/i18n/locales/de-de.d.ts +0 -162
  524. package/i18n/locales/en-us.d.ts +0 -183
  525. package/i18n/locales/index.d.ts +0 -5
  526. package/i18n/locales/ja-jp.d.ts +0 -162
  527. package/i18n/locales/zh-hans.d.ts +0 -162
  528. package/i18n/locales/zh-hant.d.ts +0 -162
  529. package/i18n/util.d.ts +0 -3
  530. package/icon/config.d.ts +0 -2
  531. package/icon/icon-registry.d.ts +0 -84
  532. package/icon/icon.component.d.ts +0 -47
  533. package/icon/icon.module.d.ts +0 -9
  534. package/image/image-group.component.d.ts +0 -16
  535. package/image/image.class.d.ts +0 -38
  536. package/image/image.config.d.ts +0 -21
  537. package/image/image.directive.d.ts +0 -50
  538. package/image/image.service.d.ts +0 -30
  539. package/image/image.token.d.ts +0 -17
  540. package/image/module.d.ts +0 -19
  541. package/image/preview/image-preview-ref.d.ts +0 -14
  542. package/image/preview/image-preview.component.d.ts +0 -73
  543. package/image/utils.d.ts +0 -1
  544. package/input/input-count.component.d.ts +0 -27
  545. package/input/input-group.component.d.ts +0 -71
  546. package/input/input-search.component.d.ts +0 -70
  547. package/input/input.component.d.ts +0 -82
  548. package/input/input.directive.d.ts +0 -26
  549. package/input/module.d.ts +0 -16
  550. package/input-number/input-number.component.d.ts +0 -115
  551. package/input-number/module.d.ts +0 -13
  552. package/layout/content-main.component.d.ts +0 -19
  553. package/layout/content-section.component.d.ts +0 -19
  554. package/layout/content.component.d.ts +0 -19
  555. package/layout/header.component.d.ts +0 -69
  556. package/layout/layout.component.d.ts +0 -22
  557. package/layout/layout.module.d.ts +0 -21
  558. package/layout/sidebar-content.component.d.ts +0 -19
  559. package/layout/sidebar-footer.component.d.ts +0 -19
  560. package/layout/sidebar-header.component.d.ts +0 -40
  561. package/layout/sidebar.component.d.ts +0 -123
  562. package/list/list-item-meta.component.d.ts +0 -25
  563. package/list/list-item.component.d.ts +0 -9
  564. package/list/list.component.d.ts +0 -14
  565. package/list/list.module.d.ts +0 -13
  566. package/list/selection/selection-list.d.ts +0 -116
  567. package/list/selection/selection.interface.d.ts +0 -8
  568. package/loading/loading.component.d.ts +0 -24
  569. package/loading/loading.module.d.ts +0 -8
  570. package/mention/adapter/adapter.d.ts +0 -19
  571. package/mention/adapter/editable.adapter.d.ts +0 -9
  572. package/mention/adapter/index.d.ts +0 -7
  573. package/mention/adapter/textarea.adapter.d.ts +0 -11
  574. package/mention/caret-positioner.d.ts +0 -19
  575. package/mention/interfaces.d.ts +0 -61
  576. package/mention/mention.directive.d.ts +0 -43
  577. package/mention/mention.module.d.ts +0 -13
  578. package/mention/suggestions/suggestions.component.d.ts +0 -28
  579. package/menu/divider/menu-divider.component.d.ts +0 -12
  580. package/menu/group/menu-group.component.d.ts +0 -61
  581. package/menu/item/action/menu-item-action.component.d.ts +0 -34
  582. package/menu/item/icon/menu-item-icon.component.d.ts +0 -18
  583. package/menu/item/menu-item.component.d.ts +0 -20
  584. package/menu/item/name/menu-item-name.component.d.ts +0 -17
  585. package/menu/menu.component.d.ts +0 -23
  586. package/menu/menu.module.d.ts +0 -16
  587. package/message/abstract/abstract-message-container.component.d.ts +0 -13
  588. package/message/abstract/abstract-message-queue.service.d.ts +0 -13
  589. package/message/abstract/abstract-message-ref.d.ts +0 -18
  590. package/message/abstract/abstract-message.component.d.ts +0 -35
  591. package/message/abstract/abstract-message.service.d.ts +0 -17
  592. package/message/abstract/index.d.ts +0 -5
  593. package/message/message-container.component.d.ts +0 -12
  594. package/message/message-queue.service.d.ts +0 -11
  595. package/message/message-ref.d.ts +0 -4
  596. package/message/message.component.d.ts +0 -13
  597. package/message/message.config.d.ts +0 -29
  598. package/message/message.service.d.ts +0 -36
  599. package/message/module.d.ts +0 -13
  600. package/nav/icon-nav/icon-nav-link.directive.d.ts +0 -10
  601. package/nav/icon-nav/icon-nav.component.d.ts +0 -15
  602. package/nav/nav-ink-bar.directive.d.ts +0 -22
  603. package/nav/nav-item.directive.d.ts +0 -60
  604. package/nav/nav.component.d.ts +0 -142
  605. package/nav/nav.module.d.ts +0 -17
  606. package/nav/nav.pipe.d.ts +0 -11
  607. package/notify/module.d.ts +0 -13
  608. package/notify/notify-container.component.d.ts +0 -12
  609. package/notify/notify-queue.service.d.ts +0 -15
  610. package/notify/notify-ref.d.ts +0 -4
  611. package/notify/notify.component.d.ts +0 -19
  612. package/notify/notify.config.d.ts +0 -55
  613. package/notify/notify.service.d.ts +0 -42
  614. package/pagination/pagination.class.d.ts +0 -79
  615. package/pagination/pagination.component.d.ts +0 -132
  616. package/pagination/pagination.config.d.ts +0 -8
  617. package/pagination/pagination.module.d.ts +0 -13
  618. package/pagination/pagination.pipe.d.ts +0 -17
  619. package/popover/body/popover-body.component.d.ts +0 -10
  620. package/popover/header/popover-header.component.d.ts +0 -35
  621. package/popover/module.d.ts +0 -14
  622. package/popover/popover-animations.d.ts +0 -8
  623. package/popover/popover-container.component.d.ts +0 -38
  624. package/popover/popover-ref.d.ts +0 -14
  625. package/popover/popover.config.d.ts +0 -110
  626. package/popover/popover.directive.d.ts +0 -67
  627. package/popover/popover.options.d.ts +0 -2
  628. package/popover/popover.service.d.ts +0 -58
  629. package/progress/interfaces.d.ts +0 -23
  630. package/progress/progress-circle.component.d.ts +0 -43
  631. package/progress/progress-strip.component.d.ts +0 -23
  632. package/progress/progress.component.d.ts +0 -59
  633. package/progress/progress.module.d.ts +0 -11
  634. package/property/module.d.ts +0 -11
  635. package/property/properties.component.d.ts +0 -25
  636. package/property/property-item.component.d.ts +0 -80
  637. package/property-operation/group/property-operation-group.component.d.ts +0 -10
  638. package/property-operation/module.d.ts +0 -12
  639. package/property-operation/property-operation.component.d.ts +0 -92
  640. package/public-api.d.ts +0 -1
  641. package/radio/button/radio-button.component.d.ts +0 -18
  642. package/radio/group/radio-group.component.d.ts +0 -46
  643. package/radio/module.d.ts +0 -11
  644. package/radio/radio.component.d.ts +0 -22
  645. package/radio/radio.token.d.ts +0 -12
  646. package/rate/module.d.ts +0 -13
  647. package/rate/rate-item.component.d.ts +0 -17
  648. package/rate/rate.component.d.ts +0 -69
  649. package/resizable/interface.d.ts +0 -12
  650. package/resizable/module.d.ts +0 -10
  651. package/resizable/resizable.directive.d.ts +0 -91
  652. package/resizable/resizable.service.d.ts +0 -32
  653. package/resizable/resize-handle.component.d.ts +0 -31
  654. package/resizable/resize-handles.component.d.ts +0 -21
  655. package/resizable/utils.d.ts +0 -3
  656. package/result/result.component.d.ts +0 -54
  657. package/result/result.module.d.ts +0 -8
  658. package/segment/segment-item.component.d.ts +0 -34
  659. package/segment/segment.component.d.ts +0 -55
  660. package/segment/segment.module.d.ts +0 -11
  661. package/segment/segment.token.d.ts +0 -16
  662. package/segment/types.d.ts +0 -5
  663. package/select/custom-select/custom-select.component.d.ts +0 -271
  664. package/select/module.d.ts +0 -16
  665. package/select/native-select/native-select.component.d.ts +0 -30
  666. package/select/select.config.d.ts +0 -34
  667. package/shared/base-form-check.component.d.ts +0 -51
  668. package/shared/directives/string-or-template-outlet.directive.d.ts +0 -17
  669. package/shared/directives/thy-autofocus.directive.d.ts +0 -23
  670. package/shared/directives/thy-contextmenu.directive.d.ts +0 -17
  671. package/shared/directives/thy-ctrl-enter.directive.d.ts +0 -17
  672. package/shared/directives/thy-drag-drop.directive.d.ts +0 -15
  673. package/shared/directives/thy-enter.directive.d.ts +0 -18
  674. package/shared/directives/thy-scroll.directive.d.ts +0 -39
  675. package/shared/directives/thy-show.d.ts +0 -19
  676. package/shared/directives/thy-stop-propagation.directive.d.ts +0 -17
  677. package/shared/directives/view-outlet.directive.d.ts +0 -27
  678. package/shared/ng-transclude.directive.d.ts +0 -14
  679. package/shared/option/group/option-group.component.d.ts +0 -22
  680. package/shared/option/index.d.ts +0 -8
  681. package/shared/option/list-option/list-option.component.d.ts +0 -32
  682. package/shared/option/module.d.ts +0 -13
  683. package/shared/option/option-group.component.d.ts +0 -12
  684. package/shared/option/option.component.d.ts +0 -51
  685. package/shared/option/option.token.d.ts +0 -30
  686. package/shared/option/options-container.component.d.ts +0 -9
  687. package/shared/option/select-option-base.d.ts +0 -5
  688. package/shared/select/index.d.ts +0 -2
  689. package/shared/select/module.d.ts +0 -11
  690. package/shared/select/select-control/select-control.component.d.ts +0 -73
  691. package/shared/shared.module.d.ts +0 -17
  692. package/shared/shared.type.d.ts +0 -1
  693. package/skeleton/module.d.ts +0 -16
  694. package/skeleton/skeleton-circle.component.d.ts +0 -45
  695. package/skeleton/skeleton-rectangle.component.d.ts +0 -55
  696. package/skeleton/skeleton.component.d.ts +0 -27
  697. package/skeleton/skeleton.config.d.ts +0 -8
  698. package/skeleton/stylized/bullet-list.component.d.ts +0 -55
  699. package/skeleton/stylized/list.component.d.ts +0 -44
  700. package/skeleton/stylized/paragraph.component.d.ts +0 -52
  701. package/slide/drawer/drawer-container.directive.d.ts +0 -11
  702. package/slide/slide-animations.d.ts +0 -4
  703. package/slide/slide-body/slide-body-section.component.d.ts +0 -16
  704. package/slide/slide-body/slide-body.component.d.ts +0 -10
  705. package/slide/slide-container.component.d.ts +0 -49
  706. package/slide/slide-footer/slide-footer.component.d.ts +0 -12
  707. package/slide/slide-header/slide-header.component.d.ts +0 -33
  708. package/slide/slide-layout/slide-layout.component.d.ts +0 -13
  709. package/slide/slide-ref.service.d.ts +0 -20
  710. package/slide/slide.config.d.ts +0 -73
  711. package/slide/slide.module.d.ts +0 -19
  712. package/slide/slide.service.d.ts +0 -28
  713. package/slider/slider.component.d.ts +0 -105
  714. package/slider/slider.module.d.ts +0 -9
  715. package/space/space.component.d.ts +0 -38
  716. package/space/space.module.d.ts +0 -8
  717. package/statistic/statistic.component.d.ts +0 -111
  718. package/statistic/statistic.module.d.ts +0 -10
  719. package/stepper/step-header.component.d.ts +0 -15
  720. package/stepper/step.component.d.ts +0 -28
  721. package/stepper/stepper-button.directive.d.ts +0 -25
  722. package/stepper/stepper.component.d.ts +0 -34
  723. package/stepper/stepper.module.d.ts +0 -11
  724. package/strength/strength.component.d.ts +0 -69
  725. package/strength/strength.module.d.ts +0 -7
  726. package/switch/switch.component.d.ts +0 -59
  727. package/switch/switch.module.d.ts +0 -8
  728. package/table/enums/column-skeleton-type.d.ts +0 -6
  729. package/table/enums/index.d.ts +0 -1
  730. package/table/pipes/drag.pipe.d.ts +0 -11
  731. package/table/pipes/table.pipe.d.ts +0 -10
  732. package/table/table-column.component.d.ts +0 -131
  733. package/table/table-skeleton.component.d.ts +0 -93
  734. package/table/table.component.d.ts +0 -333
  735. package/table/table.interface.d.ts +0 -87
  736. package/table/table.module.d.ts +0 -22
  737. package/table/table.type.d.ts +0 -3
  738. package/tabs/tab-content.component.d.ts +0 -12
  739. package/tabs/tab.component.d.ts +0 -31
  740. package/tabs/tabs.component.d.ts +0 -59
  741. package/tabs/tabs.module.d.ts +0 -12
  742. package/tabs/types.d.ts +0 -2
  743. package/tag/tag.component.d.ts +0 -48
  744. package/tag/tag.module.d.ts +0 -10
  745. package/tag/tags.component.d.ts +0 -11
  746. package/testing/data-transfer.d.ts +0 -22
  747. package/testing/dispatcher-events.d.ts +0 -32
  748. package/testing/element-focus.d.ts +0 -13
  749. package/testing/events.d.ts +0 -33
  750. package/testing/thy-icon.d.ts +0 -5
  751. package/testing/type-in-element.d.ts +0 -14
  752. package/testing/xhr-mock.d.ts +0 -51
  753. package/time-picker/inner/inner-time-picker.class.d.ts +0 -37
  754. package/time-picker/inner/inner-time-picker.component.d.ts +0 -91
  755. package/time-picker/inner/inner-time-picker.config.d.ts +0 -42
  756. package/time-picker/inner/inner-time-picker.store.d.ts +0 -23
  757. package/time-picker/time-picker-controls.util.d.ts +0 -7
  758. package/time-picker/time-picker-panel.component.d.ts +0 -113
  759. package/time-picker/time-picker.component.d.ts +0 -136
  760. package/time-picker/time-picker.module.d.ts +0 -17
  761. package/time-picker/time-picker.utils.d.ts +0 -16
  762. package/timeline/timeline-item.component.d.ts +0 -43
  763. package/timeline/timeline.component.d.ts +0 -47
  764. package/timeline/timeline.module.d.ts +0 -11
  765. package/timeline/timeline.service.d.ts +0 -8
  766. package/timeline/timeline.type.d.ts +0 -1
  767. package/tooltip/interface.d.ts +0 -5
  768. package/tooltip/tooltip-animations.d.ts +0 -4
  769. package/tooltip/tooltip-ref.d.ts +0 -31
  770. package/tooltip/tooltip.component.d.ts +0 -36
  771. package/tooltip/tooltip.config.d.ts +0 -22
  772. package/tooltip/tooltip.directive.d.ts +0 -81
  773. package/tooltip/tooltip.module.d.ts +0 -11
  774. package/tooltip/tooltip.service.d.ts +0 -16
  775. package/transfer/transfer-list.component.d.ts +0 -41
  776. package/transfer/transfer.component.d.ts +0 -90
  777. package/transfer/transfer.interface.d.ts +0 -66
  778. package/transfer/transfer.module.d.ts +0 -15
  779. package/tree/tree-abstract.d.ts +0 -19
  780. package/tree/tree-node.component.d.ts +0 -95
  781. package/tree/tree.class.d.ts +0 -106
  782. package/tree/tree.component.d.ts +0 -199
  783. package/tree/tree.module.d.ts +0 -20
  784. package/tree/tree.pipe.d.ts +0 -12
  785. package/tree/tree.service.d.ts +0 -34
  786. package/tree-select/module.d.ts +0 -14
  787. package/tree-select/tree-select.class.d.ts +0 -12
  788. package/tree-select/tree-select.component.d.ts +0 -203
  789. package/types/common.d.ts +0 -2
  790. package/types/dictionary.d.ts +0 -10
  791. package/types/pagination.d.ts +0 -6
  792. package/typography/bg-color.directive.d.ts +0 -20
  793. package/typography/module.d.ts +0 -11
  794. package/typography/text/text.component.d.ts +0 -17
  795. package/typography/text-color.directive.d.ts +0 -22
  796. package/upload/constant.d.ts +0 -73
  797. package/upload/file-drop.directive.d.ts +0 -32
  798. package/upload/file-select-base.d.ts +0 -22
  799. package/upload/file-select.component.d.ts +0 -34
  800. package/upload/module.d.ts +0 -9
  801. package/upload/types.d.ts +0 -11
  802. package/upload/upload.config.d.ts +0 -17
  803. package/upload/upload.service.d.ts +0 -140
  804. package/upload/util.d.ts +0 -1
  805. package/util/date/functions.d.ts +0 -85
  806. package/util/date/tiny-date.d.ts +0 -124
  807. package/util/dom.d.ts +0 -101
  808. package/util/helpers/helpers.d.ts +0 -55
  809. package/util/helpers/index.d.ts +0 -1
  810. package/util/immutable.d.ts +0 -70
  811. package/util/keycodes.d.ts +0 -2
  812. package/util/logger/index.d.ts +0 -1
  813. package/util/logger/logger.d.ts +0 -6
  814. package/util/ng.d.ts +0 -2
  815. package/util/references.d.ts +0 -58
  816. package/version.d.ts +0 -2
  817. package/vote/vote.component.d.ts +0 -53
  818. package/vote/vote.module.d.ts +0 -10
  819. package/watermark/config.d.ts +0 -19
  820. package/watermark/watermark.directive.d.ts +0 -63
  821. package/watermark/watermark.module.d.ts +0 -9
  822. /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.d.ts +0 -0
  823. /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.js +0 -0
  824. /package/schematics/ng-update/{update-19 → update-20}/index.d.ts +0 -0
  825. /package/schematics/ng-update/{update-19 → update-20}/index.spec.d.ts +0 -0
  826. /package/schematics/ng-update/{update-19 → update-20}/update-data.d.ts +0 -0
  827. /package/schematics/ng-update/{update-19 → update-20}/update-data.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-list.mjs","sources":["../../../src/list/list.component.ts","../../../src/list/list-item.component.ts","../../../src/list/selection/selection-list.ts","../../../src/list/list-item-meta.component.ts","../../../src/list/list-item-meta.component.html","../../../src/list/list.module.ts","../../../src/list/ngx-tethys-list.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 列表组件\n * @name thy-list\n * @order 10\n */\n@Component({\n selector: 'thy-list',\n host: {\n class: 'thy-list',\n '[class.thy-list-divided]': 'thyDivided()'\n },\n template: '<ng-content></ng-content>'\n})\nexport class ThyList {\n /**\n * 控制分割线的显示与隐藏\n */\n readonly thyDivided = input(false, { transform: coerceBooleanProperty });\n}\n","import { Component } from '@angular/core';\n\n/**\n * @name thy-list-item,[thy-list-item]\n * @order 15\n */\n@Component({\n selector: 'thy-list-item,[thy-list-item]',\n template: '<ng-content></ng-content>',\n host: {\n class: 'thy-list-item'\n }\n})\nexport class ThyListItem {}\n","import { ScrollToService } from 'ngx-tethys/core';\nimport { IThyListOptionParentComponent, THY_LIST_OPTION_PARENT_COMPONENT, ThyListOption } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, dom, helpers, keycodes, ThyBooleanInput } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n inject,\n input,\n computed,\n effect,\n output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyListLayout } from 'ngx-tethys/shared';\nimport { ThySelectionListChange } from './selection.interface';\nimport { startWith } from 'rxjs/operators';\n\nexport type ThyListSize = 'sm' | 'md' | 'lg';\n\nconst listSizesMap = {\n sm: 'thy-list-sm'\n};\n\n/**\n * @name thy-selection-list,[thy-selection-list]\n * @order 20\n */\n@Component({\n selector: 'thy-selection-list,[thy-selection-list]',\n template: '<ng-content></ng-content>',\n providers: [\n {\n provide: THY_LIST_OPTION_PARENT_COMPONENT,\n useExisting: ThySelectionList\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySelectionList),\n multi: true\n }\n ],\n host: {\n class: 'thy-list thy-selection-list',\n '[class.thy-multiple-selection-list]': 'multiple()',\n '[class.thy-grid-list]': 'isLayoutGrid()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThySelectionList implements OnInit, OnDestroy, AfterContentInit, IThyListOptionParentComponent, ControlValueAccessor {\n private renderer = inject(Renderer2);\n\n private elementRef = inject(ElementRef);\n\n private ngZone = inject(NgZone);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private keyManager: ActiveDescendantKeyManager<ThyListOption>;\n\n private bindKeyEventUnsubscribe: () => void;\n\n private modelValues: any[];\n\n private hostRenderer = useHostRenderer();\n\n /** The currently selected options. */\n selectionModel: SelectionModel<any>;\n\n disabled: boolean;\n\n /**\n * @internal\n */\n @ContentChildren(ThyListOption, { descendants: true }) options: QueryList<ThyListOption>;\n\n /**\n * 改变 grid item 的选择模式,使其支持多选\n */\n readonly multiple = input<boolean, ThyBooleanInput>(true, { alias: 'thyMultiple', transform: coerceBooleanProperty });\n\n /**\n * 绑定键盘事件的容器\n * @type HTMLElement | ElementRef | string\n * @default thy-selection-list 组件绑定的元素\n */\n readonly thyBindKeyEventContainer = input<HTMLElement | ElementRef | string>();\n\n /**\n * 出现滚动条的容器\n * @type HTMLElement | ElementRef | string\n * @default thy-selection-list 组件绑定的元素\n */\n readonly thyScrollContainer = input<HTMLElement | ElementRef | string>();\n\n /**\n * 键盘事件触发 Before 调用,如果返回 false 则停止继续执行\n */\n readonly thyBeforeKeydown = input<(event?: KeyboardEvent) => boolean>();\n\n /**\n * Option Value 唯一的 Key,用于存储哪些选择被选中的唯一值,只有 Option 的 thyValue 是对象的时才可以传入该选项\n */\n readonly thyUniqueKey = input<string>();\n\n /**\n * 比较2个选项的 Value 是否相同\n */\n readonly thyCompareWith = input<(o1: any, o2: any) => boolean>();\n\n /**\n * grid item 的展示样式\n * @type list | grid\n */\n readonly layout = input<ThyListLayout>('list', { alias: 'thyLayout' });\n\n readonly isLayoutGrid = computed<boolean>(() => this.layout() === 'grid');\n\n /**\n * 是否自动激活第一项\n */\n readonly thyAutoActiveFirstItem = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 改变 grid item 的大小,支持默认以及 sm 两种大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThyListSize>();\n\n /**\n * 是否按下空格切换聚焦选项\n */\n readonly thySpaceKeyEnabled = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 每当选项的选定状态发生更改时,都会触发更改事件\n */\n readonly thySelectionChange = output<ThySelectionListChange>();\n\n private onTouched: () => void = () => {};\n\n private onChange: (value: any) => void = (_: any) => {};\n\n constructor() {\n effect(() => {\n this.setListSize();\n });\n\n effect(() => {\n this.instanceSelectionModel();\n });\n }\n\n private emitChangeEvent(option: ThyListOption, event: Event) {\n this.thySelectionChange.emit({\n source: this,\n value: option.thyValue(),\n option: option,\n event: event,\n selected: this.isSelected(option)\n });\n }\n\n private emitModelValueChange() {\n const uniqueKey = this.thyUniqueKey();\n if (this.options) {\n let selectedValues = this.selectionModel.selected;\n if (uniqueKey) {\n selectedValues = selectedValues.map(selectedValue => {\n const selectedOption = this.options.find(option => {\n return option.thyValue()[uniqueKey] === selectedValue;\n });\n if (selectedOption) {\n return selectedOption.thyValue();\n } else {\n return this.modelValues.find(value => {\n return value[uniqueKey] === selectedValue;\n });\n }\n });\n }\n this.modelValues = selectedValues;\n let changeValue = selectedValues;\n if (!this.multiple() && selectedValues && selectedValues.length > 0) {\n changeValue = selectedValues[0];\n }\n this.onChange(changeValue);\n }\n }\n\n private toggleFocusedOption(event: KeyboardEvent): void {\n if (this.keyManager.activeItem) {\n this.ngZone.run(() => {\n this.toggleOption(this.keyManager.activeItem, event);\n });\n }\n }\n\n private initializeFocusKeyManager() {\n this.keyManager = new ActiveDescendantKeyManager<ThyListOption>(this.options)\n .withWrap()\n // .withTypeAhead()\n // Allow disabled items to be focusable. For accessibility reasons, there must be a way for\n // screenreader users, that allows reading the different options of the list.\n .skipPredicate(() => false);\n }\n\n private instanceSelectionModel() {\n this.selectionModel = new SelectionModel<any>(this.multiple());\n }\n\n private getElementBySelector(element: HTMLElement | ElementRef | string): HTMLElement {\n return dom.getHTMLElementBySelector(element, this.elementRef);\n }\n\n private compareValue(value1: any, value2: any) {\n const thyUniqueKey = this.thyUniqueKey();\n const thyCompareWith = this.thyCompareWith();\n if (thyCompareWith) {\n const compareFn = thyCompareWith as (o1: any, o2: any) => boolean;\n return compareFn(value1, value2);\n } else if (thyUniqueKey) {\n return value1 && value1[thyUniqueKey] === value2 && value2[thyUniqueKey];\n } else {\n return value1 === value2;\n }\n }\n\n private getOptionSelectionValue(option: ThyListOption) {\n const thyValue = option.thyValue();\n if (thyValue) {\n const thyUniqueKey = this.thyUniqueKey();\n return thyUniqueKey ? thyValue[thyUniqueKey] : thyValue;\n } else {\n return option;\n }\n }\n\n private setSelectionByValues(values: any[]) {\n this.selectionModel.clear();\n values.forEach(value => {\n const thyUniqueKey = this.thyUniqueKey();\n if (thyUniqueKey) {\n this.selectionModel.select(value[thyUniqueKey]);\n } else {\n this.selectionModel.select(value);\n }\n });\n }\n\n private setAllOptionsSelected(toIsSelected: boolean) {\n // Keep track of whether anything changed, because we only want to\n // emit the changed event when something actually changed.\n let hasChanged = false;\n\n this.options.forEach(option => {\n const fromIsSelected = this.selectionModel.isSelected(option.thyValue());\n if (fromIsSelected !== toIsSelected) {\n hasChanged = true;\n this.selectionModel.toggle(option.thyValue());\n }\n });\n\n if (hasChanged) {\n this.emitModelValueChange();\n }\n }\n\n private getOptionByValue(value: any) {\n return this.options.find(option => {\n return this.compareValue(option.thyValue(), value);\n });\n }\n\n private getActiveOption() {\n if (this.keyManager.activeItem) {\n return this.getOptionByValue(this.keyManager.activeItem.thyValue());\n } else {\n return null;\n }\n }\n\n private setListSize() {\n const size = this.thySize();\n for (const key in listSizesMap) {\n if (listSizesMap.hasOwnProperty(key)) {\n this.hostRenderer.removeClass(listSizesMap[key as keyof typeof listSizesMap]);\n }\n }\n if (size) {\n this.hostRenderer.addClass(listSizesMap[size as keyof typeof listSizesMap]);\n }\n }\n\n ngOnInit() {\n const bindKeyEventElement = this.getElementBySelector(this.thyBindKeyEventContainer());\n this.ngZone.runOutsideAngular(() => {\n this.bindKeyEventUnsubscribe = this.renderer.listen(bindKeyEventElement, 'keydown', this.onKeydown.bind(this));\n });\n this.instanceSelectionModel();\n }\n\n writeValue(value: any[] | any): void {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && value) {\n const multiple = this.multiple();\n if (multiple && !helpers.isArray(value)) {\n throw new Error(`The multiple selection ngModel must be an array.`);\n }\n if (!multiple && helpers.isArray(value)) {\n throw new Error(`The single selection ngModel should not be an array.`);\n }\n }\n const values = helpers.isArray(value) ? value : value ? [value] : [];\n this.modelValues = values;\n if (this.options) {\n this.setSelectionByValues(values);\n }\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onKeydown(event: KeyboardEvent) {\n const thyBeforeKeydown = this.thyBeforeKeydown();\n if (thyBeforeKeydown) {\n // stop key down event\n const isContinue = thyBeforeKeydown(event);\n if (!isContinue) {\n return;\n }\n }\n const keyCode = event.keyCode || event.which;\n const manager = this.keyManager;\n const previousFocusIndex = manager.activeItemIndex;\n\n switch (keyCode) {\n case keycodes.SPACE:\n case keycodes.ENTER:\n if (keyCode === keycodes.SPACE && !this.thySpaceKeyEnabled()) {\n return;\n }\n this.toggleFocusedOption(event);\n // Always prevent space from scrolling the page since the list has focus\n event.preventDefault();\n break;\n default:\n manager.onKeydown(event);\n }\n if (\n (keyCode === keycodes.UP_ARROW || keyCode === keycodes.DOWN_ARROW) &&\n event.shiftKey &&\n manager.activeItemIndex !== previousFocusIndex\n ) {\n this.toggleFocusedOption(event);\n }\n }\n\n toggleOption(option: ThyListOption, event?: Event) {\n if (option && !option.thyDisabled()) {\n this.selectionModel.toggle(this.getOptionSelectionValue(option));\n // Emit a change event because the focused option changed its state through user\n // interaction.\n this.emitModelValueChange();\n this.emitChangeEvent(option, event);\n }\n }\n\n setActiveOption(option: ThyListOption) {\n this.keyManager.updateActiveItem(option); // .updateActiveItemIndex(this._getOptionIndex(option));\n }\n\n scrollIntoView(option: ThyListOption) {\n const scrollContainerElement = dom.getHTMLElementBySelector(this.thyScrollContainer(), this.elementRef);\n ScrollToService.scrollToElement(option.element.nativeElement, scrollContainerElement);\n }\n\n isSelected(option: ThyListOption) {\n return this.selectionModel.isSelected(this.getOptionSelectionValue(option));\n }\n\n clearActiveItem() {\n if (this.keyManager.activeItem) {\n this.keyManager.setActiveItem(-1);\n }\n }\n\n determineClearActiveItem() {\n if (!this.getActiveOption()) {\n this.clearActiveItem();\n }\n }\n\n /** Selects all of the options. */\n selectAll() {\n this.setAllOptionsSelected(true);\n }\n\n /** Deselects all of the options. */\n deselectAll() {\n this.setAllOptionsSelected(false);\n }\n\n ngAfterContentInit(): void {\n this.initializeFocusKeyManager();\n this.options.changes.pipe(startWith(true)).subscribe(() => {\n if (this.thyAutoActiveFirstItem()) {\n if (!this.keyManager.activeItem || this.options.toArray().indexOf(this.keyManager.activeItem) < 0) {\n this.keyManager.setFirstItemActive();\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.bindKeyEventUnsubscribe) {\n this.bindKeyEventUnsubscribe();\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, TemplateRef, input, contentChild } from '@angular/core';\nimport { ThyAvatar } from 'ngx-tethys/avatar';\n\n/**\n * @name thy-list-item-meta,[thy-list-item-meta]\n * @order 40\n */\n@Component({\n selector: 'thy-list-item-meta,[thy-list-item-meta]',\n templateUrl: './list-item-meta.component.html',\n host: {\n class: 'thy-list-item-meta'\n },\n imports: [ThyAvatar, NgTemplateOutlet]\n})\nexport class ThyListItemMeta {\n /**\n * 列表项的左侧图片\n */\n readonly thyAvatar = input<string>();\n\n /**\n * 列表项的标题\n */\n readonly thyTitle = input<string>();\n\n /**\n * 列表项的描述文本\n */\n readonly thyDescription = input<string>();\n\n readonly avatarTemplateRef = contentChild<TemplateRef<any>>('metaAvatar');\n\n readonly titleTemplateRef = contentChild<TemplateRef<any>>('metaTitle');\n\n readonly descriptionTemplateRef = contentChild<TemplateRef<any>>('metaDescription');\n}\n","<div class=\"thy-list-item-meta-avatar\">\n @if (thyAvatar()) {\n <thy-avatar [thySrc]=\"thyAvatar()\"></thy-avatar>\n } @else {\n <ng-template [ngTemplateOutlet]=\"avatarTemplateRef()\"></ng-template>\n }\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n @if (thyTitle()) {\n {{ thyTitle() }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-template>\n }\n </div>\n <div class=\"thy-list-item-meta-description\">\n @if (thyDescription()) {\n {{ thyDescription() }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef()\"></ng-template>\n }\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyList } from './list.component';\nimport { ThyListItem } from './list-item.component';\nimport { ThySelectionList } from './selection/selection-list';\nimport { ThyOptionModule } from 'ngx-tethys/shared';\nimport { ThyListItemMeta } from './list-item-meta.component';\nimport { ThyAvatarModule } from 'ngx-tethys/avatar';\n\n@NgModule({\n imports: [CommonModule, ThyOptionModule, ThyAvatarModule, ThyList, ThyListItem, ThySelectionList, ThyListItemMeta],\n exports: [ThyList, ThyListItem, ThySelectionList, ThyListItemMeta, ThyOptionModule]\n})\nexport class ThyListModule {}\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-list.mjs","sources":["../../../src/list/list.component.ts","../../../src/list/list-item.component.ts","../../../src/list/selection/selection-list.ts","../../../src/list/list-item-meta.component.ts","../../../src/list/list-item-meta.component.html","../../../src/list/list.module.ts","../../../src/list/ngx-tethys-list.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 列表组件\n * @name thy-list\n * @order 10\n */\n@Component({\n selector: 'thy-list',\n host: {\n class: 'thy-list',\n '[class.thy-list-divided]': 'thyDivided()'\n },\n template: '<ng-content></ng-content>'\n})\nexport class ThyList {\n /**\n * 控制分割线的显示与隐藏\n */\n readonly thyDivided = input(false, { transform: coerceBooleanProperty });\n}\n","import { Component } from '@angular/core';\n\n/**\n * @name thy-list-item,[thy-list-item]\n * @order 15\n */\n@Component({\n selector: 'thy-list-item,[thy-list-item]',\n template: '<ng-content></ng-content>',\n host: {\n class: 'thy-list-item'\n }\n})\nexport class ThyListItem {}\n","import { ScrollToService } from 'ngx-tethys/core';\nimport { IThyListOptionParentComponent, THY_LIST_OPTION_PARENT_COMPONENT, ThyListOption } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, dom, helpers, keycodes, ThyBooleanInput } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n inject,\n input,\n computed,\n effect,\n output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyListLayout } from 'ngx-tethys/shared';\nimport { ThySelectionListChange } from './selection.interface';\nimport { startWith } from 'rxjs/operators';\n\nexport type ThyListSize = 'sm' | 'md' | 'lg';\n\nconst listSizesMap = {\n sm: 'thy-list-sm'\n};\n\n/**\n * @name thy-selection-list,[thy-selection-list]\n * @order 20\n */\n@Component({\n selector: 'thy-selection-list,[thy-selection-list]',\n template: '<ng-content></ng-content>',\n providers: [\n {\n provide: THY_LIST_OPTION_PARENT_COMPONENT,\n useExisting: ThySelectionList\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySelectionList),\n multi: true\n }\n ],\n host: {\n class: 'thy-list thy-selection-list',\n '[class.thy-multiple-selection-list]': 'multiple()',\n '[class.thy-grid-list]': 'isLayoutGrid()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThySelectionList implements OnInit, OnDestroy, AfterContentInit, IThyListOptionParentComponent, ControlValueAccessor {\n private renderer = inject(Renderer2);\n\n private elementRef = inject(ElementRef);\n\n private ngZone = inject(NgZone);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private keyManager: ActiveDescendantKeyManager<ThyListOption>;\n\n private bindKeyEventUnsubscribe: () => void;\n\n private modelValues: any[];\n\n private hostRenderer = useHostRenderer();\n\n /** The currently selected options. */\n selectionModel: SelectionModel<any>;\n\n disabled: boolean;\n\n /**\n * @internal\n */\n @ContentChildren(ThyListOption, { descendants: true }) options: QueryList<ThyListOption>;\n\n /**\n * 改变 grid item 的选择模式,使其支持多选\n */\n readonly multiple = input<boolean, ThyBooleanInput>(true, { alias: 'thyMultiple', transform: coerceBooleanProperty });\n\n /**\n * 绑定键盘事件的容器\n * @type HTMLElement | ElementRef | string\n * @default thy-selection-list 组件绑定的元素\n */\n readonly thyBindKeyEventContainer = input<HTMLElement | ElementRef | string>();\n\n /**\n * 出现滚动条的容器\n * @type HTMLElement | ElementRef | string\n * @default thy-selection-list 组件绑定的元素\n */\n readonly thyScrollContainer = input<HTMLElement | ElementRef | string>();\n\n /**\n * 键盘事件触发 Before 调用,如果返回 false 则停止继续执行\n */\n readonly thyBeforeKeydown = input<(event?: KeyboardEvent) => boolean>();\n\n /**\n * Option Value 唯一的 Key,用于存储哪些选择被选中的唯一值,只有 Option 的 thyValue 是对象的时才可以传入该选项\n */\n readonly thyUniqueKey = input<string>();\n\n /**\n * 比较2个选项的 Value 是否相同\n */\n readonly thyCompareWith = input<(o1: any, o2: any) => boolean>();\n\n /**\n * grid item 的展示样式\n * @type list | grid\n */\n readonly layout = input<ThyListLayout>('list', { alias: 'thyLayout' });\n\n readonly isLayoutGrid = computed<boolean>(() => this.layout() === 'grid');\n\n /**\n * 是否自动激活第一项\n */\n readonly thyAutoActiveFirstItem = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 改变 grid item 的大小,支持默认以及 sm 两种大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThyListSize>();\n\n /**\n * 是否按下空格切换聚焦选项\n */\n readonly thySpaceKeyEnabled = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 每当选项的选定状态发生更改时,都会触发更改事件\n */\n readonly thySelectionChange = output<ThySelectionListChange>();\n\n private onTouched: () => void = () => {};\n\n private onChange: (value: any) => void = (_: any) => {};\n\n constructor() {\n effect(() => {\n this.setListSize();\n });\n\n effect(() => {\n this.instanceSelectionModel();\n });\n }\n\n private emitChangeEvent(option: ThyListOption, event: Event) {\n this.thySelectionChange.emit({\n source: this,\n value: option.thyValue(),\n option: option,\n event: event,\n selected: this.isSelected(option)\n });\n }\n\n private emitModelValueChange() {\n const uniqueKey = this.thyUniqueKey();\n if (this.options) {\n let selectedValues = this.selectionModel.selected;\n if (uniqueKey) {\n selectedValues = selectedValues.map(selectedValue => {\n const selectedOption = this.options.find(option => {\n return option.thyValue()[uniqueKey] === selectedValue;\n });\n if (selectedOption) {\n return selectedOption.thyValue();\n } else {\n return this.modelValues.find(value => {\n return value[uniqueKey] === selectedValue;\n });\n }\n });\n }\n this.modelValues = selectedValues;\n let changeValue = selectedValues;\n if (!this.multiple() && selectedValues && selectedValues.length > 0) {\n changeValue = selectedValues[0];\n }\n this.onChange(changeValue);\n }\n }\n\n private toggleFocusedOption(event: KeyboardEvent): void {\n if (this.keyManager.activeItem) {\n this.ngZone.run(() => {\n this.toggleOption(this.keyManager.activeItem, event);\n });\n }\n }\n\n private initializeFocusKeyManager() {\n this.keyManager = new ActiveDescendantKeyManager<ThyListOption>(this.options)\n .withWrap()\n // .withTypeAhead()\n // Allow disabled items to be focusable. For accessibility reasons, there must be a way for\n // screenreader users, that allows reading the different options of the list.\n .skipPredicate(() => false);\n }\n\n private instanceSelectionModel() {\n this.selectionModel = new SelectionModel<any>(this.multiple());\n }\n\n private getElementBySelector(element: HTMLElement | ElementRef | string): HTMLElement {\n return dom.getHTMLElementBySelector(element, this.elementRef);\n }\n\n private compareValue(value1: any, value2: any) {\n const thyUniqueKey = this.thyUniqueKey();\n const thyCompareWith = this.thyCompareWith();\n if (thyCompareWith) {\n const compareFn = thyCompareWith as (o1: any, o2: any) => boolean;\n return compareFn(value1, value2);\n } else if (thyUniqueKey) {\n return value1 && value1[thyUniqueKey] === value2 && value2[thyUniqueKey];\n } else {\n return value1 === value2;\n }\n }\n\n private getOptionSelectionValue(option: ThyListOption) {\n const thyValue = option.thyValue();\n if (thyValue) {\n const thyUniqueKey = this.thyUniqueKey();\n return thyUniqueKey ? thyValue[thyUniqueKey] : thyValue;\n } else {\n return option;\n }\n }\n\n private setSelectionByValues(values: any[]) {\n this.selectionModel.clear();\n values.forEach(value => {\n const thyUniqueKey = this.thyUniqueKey();\n if (thyUniqueKey) {\n this.selectionModel.select(value[thyUniqueKey]);\n } else {\n this.selectionModel.select(value);\n }\n });\n }\n\n private setAllOptionsSelected(toIsSelected: boolean) {\n // Keep track of whether anything changed, because we only want to\n // emit the changed event when something actually changed.\n let hasChanged = false;\n\n this.options.forEach(option => {\n const fromIsSelected = this.selectionModel.isSelected(option.thyValue());\n if (fromIsSelected !== toIsSelected) {\n hasChanged = true;\n this.selectionModel.toggle(option.thyValue());\n }\n });\n\n if (hasChanged) {\n this.emitModelValueChange();\n }\n }\n\n private getOptionByValue(value: any) {\n return this.options.find(option => {\n return this.compareValue(option.thyValue(), value);\n });\n }\n\n private getActiveOption() {\n if (this.keyManager.activeItem) {\n return this.getOptionByValue(this.keyManager.activeItem.thyValue());\n } else {\n return null;\n }\n }\n\n private setListSize() {\n const size = this.thySize();\n for (const key in listSizesMap) {\n if (listSizesMap.hasOwnProperty(key)) {\n this.hostRenderer.removeClass(listSizesMap[key as keyof typeof listSizesMap]);\n }\n }\n if (size) {\n this.hostRenderer.addClass(listSizesMap[size as keyof typeof listSizesMap]);\n }\n }\n\n ngOnInit() {\n const bindKeyEventElement = this.getElementBySelector(this.thyBindKeyEventContainer());\n this.ngZone.runOutsideAngular(() => {\n this.bindKeyEventUnsubscribe = this.renderer.listen(bindKeyEventElement, 'keydown', this.onKeydown.bind(this));\n });\n this.instanceSelectionModel();\n }\n\n writeValue(value: any[] | any): void {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && value) {\n const multiple = this.multiple();\n if (multiple && !helpers.isArray(value)) {\n throw new Error(`The multiple selection ngModel must be an array.`);\n }\n if (!multiple && helpers.isArray(value)) {\n throw new Error(`The single selection ngModel should not be an array.`);\n }\n }\n const values = helpers.isArray(value) ? value : value ? [value] : [];\n this.modelValues = values;\n if (this.options) {\n this.setSelectionByValues(values);\n }\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onKeydown(event: KeyboardEvent) {\n const thyBeforeKeydown = this.thyBeforeKeydown();\n if (thyBeforeKeydown) {\n // stop key down event\n const isContinue = thyBeforeKeydown(event);\n if (!isContinue) {\n return;\n }\n }\n const keyCode = event.keyCode || event.which;\n const manager = this.keyManager;\n const previousFocusIndex = manager.activeItemIndex;\n\n switch (keyCode) {\n case keycodes.SPACE:\n case keycodes.ENTER:\n if (keyCode === keycodes.SPACE && !this.thySpaceKeyEnabled()) {\n return;\n }\n this.toggleFocusedOption(event);\n // Always prevent space from scrolling the page since the list has focus\n event.preventDefault();\n break;\n default:\n manager.onKeydown(event);\n }\n if (\n (keyCode === keycodes.UP_ARROW || keyCode === keycodes.DOWN_ARROW) &&\n event.shiftKey &&\n manager.activeItemIndex !== previousFocusIndex\n ) {\n this.toggleFocusedOption(event);\n }\n }\n\n toggleOption(option: ThyListOption, event?: Event) {\n if (option && !option.thyDisabled()) {\n this.selectionModel.toggle(this.getOptionSelectionValue(option));\n // Emit a change event because the focused option changed its state through user\n // interaction.\n this.emitModelValueChange();\n this.emitChangeEvent(option, event);\n }\n }\n\n setActiveOption(option: ThyListOption) {\n this.keyManager.updateActiveItem(option); // .updateActiveItemIndex(this._getOptionIndex(option));\n }\n\n scrollIntoView(option: ThyListOption) {\n const scrollContainerElement = dom.getHTMLElementBySelector(this.thyScrollContainer(), this.elementRef);\n ScrollToService.scrollToElement(option.element.nativeElement, scrollContainerElement);\n }\n\n isSelected(option: ThyListOption) {\n return this.selectionModel.isSelected(this.getOptionSelectionValue(option));\n }\n\n clearActiveItem() {\n if (this.keyManager.activeItem) {\n this.keyManager.setActiveItem(-1);\n }\n }\n\n determineClearActiveItem() {\n if (!this.getActiveOption()) {\n this.clearActiveItem();\n }\n }\n\n /** Selects all of the options. */\n selectAll() {\n this.setAllOptionsSelected(true);\n }\n\n /** Deselects all of the options. */\n deselectAll() {\n this.setAllOptionsSelected(false);\n }\n\n ngAfterContentInit(): void {\n this.initializeFocusKeyManager();\n this.options.changes.pipe(startWith(true)).subscribe(() => {\n if (this.thyAutoActiveFirstItem()) {\n if (!this.keyManager.activeItem || this.options.toArray().indexOf(this.keyManager.activeItem) < 0) {\n this.keyManager.setFirstItemActive();\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.bindKeyEventUnsubscribe) {\n this.bindKeyEventUnsubscribe();\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, TemplateRef, input, contentChild } from '@angular/core';\nimport { ThyAvatar } from 'ngx-tethys/avatar';\n\n/**\n * @name thy-list-item-meta,[thy-list-item-meta]\n * @order 40\n */\n@Component({\n selector: 'thy-list-item-meta,[thy-list-item-meta]',\n templateUrl: './list-item-meta.component.html',\n host: {\n class: 'thy-list-item-meta'\n },\n imports: [ThyAvatar, NgTemplateOutlet]\n})\nexport class ThyListItemMeta {\n /**\n * 列表项的左侧图片\n */\n readonly thyAvatar = input<string>();\n\n /**\n * 列表项的标题\n */\n readonly thyTitle = input<string>();\n\n /**\n * 列表项的描述文本\n */\n readonly thyDescription = input<string>();\n\n readonly avatarTemplateRef = contentChild<TemplateRef<any>>('metaAvatar');\n\n readonly titleTemplateRef = contentChild<TemplateRef<any>>('metaTitle');\n\n readonly descriptionTemplateRef = contentChild<TemplateRef<any>>('metaDescription');\n}\n","<div class=\"thy-list-item-meta-avatar\">\n @if (thyAvatar()) {\n <thy-avatar [thySrc]=\"thyAvatar()\"></thy-avatar>\n } @else {\n <ng-template [ngTemplateOutlet]=\"avatarTemplateRef()\"></ng-template>\n }\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n @if (thyTitle()) {\n {{ thyTitle() }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-template>\n }\n </div>\n <div class=\"thy-list-item-meta-description\">\n @if (thyDescription()) {\n {{ thyDescription() }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef()\"></ng-template>\n }\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyList } from './list.component';\nimport { ThyListItem } from './list-item.component';\nimport { ThySelectionList } from './selection/selection-list';\nimport { ThyOptionModule } from 'ngx-tethys/shared';\nimport { ThyListItemMeta } from './list-item-meta.component';\nimport { ThyAvatarModule } from 'ngx-tethys/avatar';\n\n@NgModule({\n imports: [CommonModule, ThyOptionModule, ThyAvatarModule, ThyList, ThyListItem, ThySelectionList, ThyListItemMeta],\n exports: [ThyList, ThyListItem, ThySelectionList, ThyListItemMeta, ThyOptionModule]\n})\nexport class ThyListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -14,34 +14,34 @@ class ThyLoading {
14
14
  * 数据是否加载完成
15
15
  * @default false
16
16
  */
17
- this.thyDone = input(false, { transform: coerceBooleanProperty });
17
+ this.thyDone = input(false, ...(ngDevMode ? [{ debugName: "thyDone", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
18
18
  /**
19
19
  * 自定义加载提示文案
20
20
  */
21
- this.thyTip = input('');
21
+ this.thyTip = input('', ...(ngDevMode ? [{ debugName: "thyTip" }] : []));
22
22
  /**
23
23
  * 加载时是否启用嵌套遮罩模式,不传或传 false,没有遮罩层,加载完成出现内容
24
24
  */
25
- this.thyIsMask = input(false, { transform: coerceBooleanProperty });
25
+ this.thyIsMask = input(false, ...(ngDevMode ? [{ debugName: "thyIsMask", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
26
26
  this.loadingClassName = true;
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyLoading, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyLoading, isStandalone: true, selector: "thy-loading", inputs: { thyDone: { classPropertyName: "thyDone", publicName: "thyDone", isSignal: true, isRequired: false, transformFunction: null }, thyTip: { classPropertyName: "thyTip", publicName: "thyTip", isSignal: true, isRequired: false, transformFunction: null }, thyIsMask: { classPropertyName: "thyIsMask", publicName: "thyIsMask", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-loading": "this.loadingClassName" } }, ngImport: i0, template: "<div [class.thy-loading-mask]=\"thyIsMask() && !thyDone()\">\n @if (!thyDone()) {\n <div class=\"thy-loading-indicator\">\n <h4>\n <span [style.display]=\"thyTip() ? 'inline' : 'none'\">{{ thyTip() }}</span>\n <div class=\"thy-loading-ellipsis\">\n <span class=\"thy-spot\"></span>\n </div>\n </h4>\n </div>\n }\n @if (thyIsMask() || thyDone()) {\n <ng-content></ng-content>\n }\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyLoading, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: ThyLoading, isStandalone: true, selector: "thy-loading", inputs: { thyDone: { classPropertyName: "thyDone", publicName: "thyDone", isSignal: true, isRequired: false, transformFunction: null }, thyTip: { classPropertyName: "thyTip", publicName: "thyTip", isSignal: true, isRequired: false, transformFunction: null }, thyIsMask: { classPropertyName: "thyIsMask", publicName: "thyIsMask", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-loading": "this.loadingClassName" } }, ngImport: i0, template: "<div [class.thy-loading-mask]=\"thyIsMask() && !thyDone()\">\n @if (!thyDone()) {\n <div class=\"thy-loading-indicator\">\n <h4>\n <span [style.display]=\"thyTip() ? 'inline' : 'none'\">{{ thyTip() }}</span>\n <div class=\"thy-loading-ellipsis\">\n <span class=\"thy-spot\"></span>\n </div>\n </h4>\n </div>\n }\n @if (thyIsMask() || thyDone()) {\n <ng-content></ng-content>\n }\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyLoading, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyLoading, decorators: [{
32
32
  type: Component,
33
33
  args: [{ selector: 'thy-loading', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], template: "<div [class.thy-loading-mask]=\"thyIsMask() && !thyDone()\">\n @if (!thyDone()) {\n <div class=\"thy-loading-indicator\">\n <h4>\n <span [style.display]=\"thyTip() ? 'inline' : 'none'\">{{ thyTip() }}</span>\n <div class=\"thy-loading-ellipsis\">\n <span class=\"thy-spot\"></span>\n </div>\n </h4>\n </div>\n }\n @if (thyIsMask() || thyDone()) {\n <ng-content></ng-content>\n }\n</div>\n" }]
34
- }], propDecorators: { loadingClassName: [{
34
+ }], propDecorators: { thyDone: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDone", required: false }] }], thyTip: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTip", required: false }] }], thyIsMask: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyIsMask", required: false }] }], loadingClassName: [{
35
35
  type: HostBinding,
36
36
  args: ['class.thy-loading']
37
37
  }] } });
38
38
 
39
39
  class ThyLoadingModule {
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
41
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: ThyLoadingModule, imports: [CommonModule, ThyLoading], exports: [ThyLoading] }); }
42
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyLoadingModule, imports: [CommonModule] }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
41
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: ThyLoadingModule, imports: [CommonModule, ThyLoading], exports: [ThyLoading] }); }
42
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyLoadingModule, imports: [CommonModule] }); }
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyLoadingModule, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyLoadingModule, decorators: [{
45
45
  type: NgModule,
46
46
  args: [{
47
47
  imports: [CommonModule, ThyLoading],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-loading.mjs","sources":["../../../src/loading/loading.component.ts","../../../src/loading/loading.component.html","../../../src/loading/loading.module.ts","../../../src/loading/ngx-tethys-loading.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\n\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 加载组件,页面调用接口等待请求时,给用户的反馈\n * @name thy-loading\n * @order 10\n */\n@Component({\n selector: 'thy-loading',\n templateUrl: './loading.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ThyLoading {\n /**\n * 数据是否加载完成\n * @default false\n */\n readonly thyDone = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 自定义加载提示文案\n */\n readonly thyTip = input<string>('');\n\n /**\n * 加载时是否启用嵌套遮罩模式,不传或传 false,没有遮罩层,加载完成出现内容\n */\n readonly thyIsMask = input(false, { transform: coerceBooleanProperty });\n\n @HostBinding('class.thy-loading') loadingClassName = true;\n}\n","<div [class.thy-loading-mask]=\"thyIsMask() && !thyDone()\">\n @if (!thyDone()) {\n <div class=\"thy-loading-indicator\">\n <h4>\n <span [style.display]=\"thyTip() ? 'inline' : 'none'\">{{ thyTip() }}</span>\n <div class=\"thy-loading-ellipsis\">\n <span class=\"thy-spot\"></span>\n </div>\n </h4>\n </div>\n }\n @if (thyIsMask() || thyDone()) {\n <ng-content></ng-content>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyLoading } from './loading.component';\n\n@NgModule({\n imports: [CommonModule, ThyLoading],\n exports: [ThyLoading]\n})\nexport class ThyLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;;;AAIG;MAOU,UAAU,CAAA;AANvB,IAAA,WAAA,GAAA;AAOI;;;AAGG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAErE;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,EAAE,CAAC;AAEnC;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;QAErC,IAAgB,CAAA,gBAAA,GAAG,IAAI;AAC5D;8GAlBY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,whBCfvB,2bAeA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDAa,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAEN,eAAA,EAAA,uBAAuB,CAAC,MAAM,WACtC,EAAE,EAAA,QAAA,EAAA,2bAAA,EAAA;8BAmBuB,gBAAgB,EAAA,CAAA;sBAAjD,WAAW;uBAAC,mBAAmB;;;MExBvB,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAHf,OAAA,EAAA,CAAA,YAAY,EAAE,UAAU,aACxB,UAAU,CAAA,EAAA,CAAA,CAAA;AAEX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHf,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAGb,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACnC,OAAO,EAAE,CAAC,UAAU;AACvB,iBAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys-loading.mjs","sources":["../../../src/loading/loading.component.ts","../../../src/loading/loading.component.html","../../../src/loading/loading.module.ts","../../../src/loading/ngx-tethys-loading.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\n\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 加载组件,页面调用接口等待请求时,给用户的反馈\n * @name thy-loading\n * @order 10\n */\n@Component({\n selector: 'thy-loading',\n templateUrl: './loading.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ThyLoading {\n /**\n * 数据是否加载完成\n * @default false\n */\n readonly thyDone = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 自定义加载提示文案\n */\n readonly thyTip = input<string>('');\n\n /**\n * 加载时是否启用嵌套遮罩模式,不传或传 false,没有遮罩层,加载完成出现内容\n */\n readonly thyIsMask = input(false, { transform: coerceBooleanProperty });\n\n @HostBinding('class.thy-loading') loadingClassName = true;\n}\n","<div [class.thy-loading-mask]=\"thyIsMask() && !thyDone()\">\n @if (!thyDone()) {\n <div class=\"thy-loading-indicator\">\n <h4>\n <span [style.display]=\"thyTip() ? 'inline' : 'none'\">{{ thyTip() }}</span>\n <div class=\"thy-loading-ellipsis\">\n <span class=\"thy-spot\"></span>\n </div>\n </h4>\n </div>\n }\n @if (thyIsMask() || thyDone()) {\n <ng-content></ng-content>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyLoading } from './loading.component';\n\n@NgModule({\n imports: [CommonModule, ThyLoading],\n exports: [ThyLoading]\n})\nexport class ThyLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;;;AAIG;MAOU,UAAU,CAAA;AANvB,IAAA,WAAA,GAAA;AAOI;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,2CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;AAErE;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,EAAE,kDAAC;AAEnC;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,6CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;QAErC,IAAA,CAAA,gBAAgB,GAAG,IAAI;AAC5D,IAAA;+GAlBY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,whBCfvB,2bAeA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDAa,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,WACtC,EAAE,EAAA,QAAA,EAAA,2bAAA,EAAA;;sBAmBV,WAAW;uBAAC,mBAAmB;;;MExBvB,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,OAAA,EAAA,CAHf,YAAY,EAAE,UAAU,aACxB,UAAU,CAAA,EAAA,CAAA,CAAA;AAEX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHf,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGb,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACnC,OAAO,EAAE,CAAC,UAAU;AACvB,iBAAA;;;ACPD;;AAEG;;;;"}
@@ -342,11 +342,11 @@ class CaretPositioner {
342
342
  */
343
343
  class ThyMentionSuggestions {
344
344
  constructor() {
345
- this.mention = input();
346
- this.data = signal([]);
345
+ this.mention = input(...(ngDevMode ? [undefined, { debugName: "mention" }] : []));
346
+ this.data = signal([], ...(ngDevMode ? [{ debugName: "data" }] : []));
347
347
  this.suggestionSelect$ = new Subject();
348
348
  this.debounce = 150;
349
- this.loadingDone = signal(true);
349
+ this.loadingDone = signal(true, ...(ngDevMode ? [{ debugName: "loadingDone" }] : []));
350
350
  this.search$ = new Subject();
351
351
  this.elementRef = inject(ElementRef);
352
352
  this.ngZone = inject(NgZone);
@@ -395,13 +395,13 @@ class ThyMentionSuggestions {
395
395
  ngOnDestroy() {
396
396
  this.search$.complete();
397
397
  }
398
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMentionSuggestions, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
399
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyMentionSuggestions, isStandalone: true, selector: "thy-mention-suggestions", inputs: { mention: { classPropertyName: "mention", publicName: "mention", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-mention-suggestions" }, 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" }] }); }
398
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyMentionSuggestions, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
399
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: ThyMentionSuggestions, isStandalone: true, selector: "thy-mention-suggestions", inputs: { mention: { classPropertyName: "mention", publicName: "mention", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-mention-suggestions" }, 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" }] }); }
400
400
  }
401
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMentionSuggestions, decorators: [{
401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyMentionSuggestions, decorators: [{
402
402
  type: Component,
403
403
  args: [{ selector: 'thy-mention-suggestions', imports: [NgTemplateOutlet, ThyLoading, ThySelectionList, ThyListOption, SlicePipe], host: { class: 'thy-mention-suggestions' }, 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" }]
404
- }], ctorParameters: () => [] });
404
+ }], ctorParameters: () => [], propDecorators: { mention: [{ type: i0.Input, args: [{ isSignal: true, alias: "mention", required: false }] }] } });
405
405
 
406
406
  const SUGGESTION_BACKDROP_CLASS = 'thy-mention-suggestions-backdrop';
407
407
  const POPOVER_DEFAULT_CONFIG = { backdropClass: SUGGESTION_BACKDROP_CLASS, placement: 'bottomLeft' };
@@ -431,11 +431,11 @@ class ThyMentionDirective {
431
431
  * 提及输入配置参数,同时支持多个提及规则
432
432
  * @type Mention<any>[]
433
433
  */
434
- this.thyMention = input([]);
434
+ this.thyMention = input([], ...(ngDevMode ? [{ debugName: "thyMention" }] : []));
435
435
  /**
436
436
  * Popover 弹出层参数配置
437
437
  */
438
- this.thyPopoverConfig = input();
438
+ this.thyPopoverConfig = input(...(ngDevMode ? [undefined, { debugName: "thyPopoverConfig" }] : []));
439
439
  /**
440
440
  * 选择后的回调函数
441
441
  */
@@ -452,7 +452,7 @@ class ThyMentionDirective {
452
452
  else {
453
453
  return [];
454
454
  }
455
- });
455
+ }, ...(ngDevMode ? [{ debugName: "mentions" }] : []));
456
456
  this.destroy$ = new Subject();
457
457
  this.openedSuggestionsRef$ = new Subject();
458
458
  const elementRef = this.elementRef;
@@ -527,20 +527,20 @@ class ThyMentionDirective {
527
527
  this.openedSuggestionsRef.close();
528
528
  }
529
529
  }
530
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMentionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
531
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: ThyMentionDirective, isStandalone: true, selector: "[thyMention]", inputs: { thyMention: { classPropertyName: "thyMention", publicName: "thyMention", isSignal: true, isRequired: false, transformFunction: null }, thyPopoverConfig: { classPropertyName: "thyPopoverConfig", publicName: "thyPopoverConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thySelectSuggestion: "thySelectSuggestion" }, ngImport: i0 }); }
530
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyMentionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
531
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.10", type: ThyMentionDirective, isStandalone: true, selector: "[thyMention]", inputs: { thyMention: { classPropertyName: "thyMention", publicName: "thyMention", isSignal: true, isRequired: false, transformFunction: null }, thyPopoverConfig: { classPropertyName: "thyPopoverConfig", publicName: "thyPopoverConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thySelectSuggestion: "thySelectSuggestion" }, ngImport: i0 }); }
532
532
  }
533
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMentionDirective, decorators: [{
533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyMentionDirective, decorators: [{
534
534
  type: Directive,
535
535
  args: [{ selector: '[thyMention]' }]
536
- }], ctorParameters: () => [] });
536
+ }], ctorParameters: () => [], propDecorators: { thyMention: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyMention", required: false }] }], thyPopoverConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPopoverConfig", required: false }] }], thySelectSuggestion: [{ type: i0.Output, args: ["thySelectSuggestion"] }] } });
537
537
 
538
538
  class ThyMentionModule {
539
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMentionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
540
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: ThyMentionModule, imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionDirective, ThyMentionSuggestions], exports: [ThyMentionDirective] }); }
541
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMentionModule, imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionSuggestions] }); }
539
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyMentionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
540
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: ThyMentionModule, imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionDirective, ThyMentionSuggestions], exports: [ThyMentionDirective] }); }
541
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyMentionModule, imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionSuggestions] }); }
542
542
  }
543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMentionModule, decorators: [{
543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyMentionModule, decorators: [{
544
544
  type: NgModule,
545
545
  args: [{
546
546
  imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionDirective, ThyMentionSuggestions],
@@ -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 { 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';\nimport { Component, ElementRef, NgZone, OnDestroy, OnInit, inject, signal, input } from '@angular/core';\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 imports: [NgTemplateOutlet, ThyLoading, ThySelectionList, ThyListOption, SlicePipe],\n host: { class: 'thy-mention-suggestions' }\n})\nexport class ThyMentionSuggestions<TItem = MentionDefaultDataItem> implements OnInit, OnDestroy {\n readonly mention = input<Mention<TItem>>();\n\n data = signal<TItem[]>([]);\n\n suggestionSelect$ = new Subject<MentionSuggestionSelectEvent>();\n\n debounce = 150;\n\n loadingDone = signal(true);\n\n private search$ = new Subject<SeekQueryResult>();\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private ngZone = inject(NgZone);\n\n private popoverRef = inject<ThyPopoverRef<any>>(ThyPopoverRef);\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.set(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.set(false);\n return of([]);\n })\n )\n .subscribe(data => {\n this.loadingDone.set(true);\n this.data.set(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({ event, item });\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, computed, inject, input, output } 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 = { backdropClass: SUGGESTION_BACKDROP_CLASS, placement: 'bottomLeft' };\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({ selector: '[thyMention]' })\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 /**\n * 提及输入配置参数,同时支持多个提及规则\n * @type Mention<any>[]\n */\n readonly thyMention = input<Mention<any>[]>([]);\n\n /**\n * Popover 弹出层参数配置\n */\n readonly thyPopoverConfig = input<ThyPopoverConfig>();\n\n /**\n * 选择后的回调函数\n */\n readonly thySelectSuggestion = output<MentionSuggestionSelectEvent>();\n\n get isOpened() {\n return !!this.openedSuggestionsRef;\n }\n\n mentions = computed(() => {\n if (this.thyMention()) {\n return this.thyMention().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 } else {\n return [];\n }\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.thySelectSuggestion.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: { x: position.left, y: position.top, width: fontSize, height: fontSize },\n initialState: { mention: matched.mention }\n },\n this.thyPopoverConfig()\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 { 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';\nimport { Component, ElementRef, NgZone, OnDestroy, OnInit, inject, signal, input } from '@angular/core';\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 imports: [NgTemplateOutlet, ThyLoading, ThySelectionList, ThyListOption, SlicePipe],\n host: { class: 'thy-mention-suggestions' }\n})\nexport class ThyMentionSuggestions<TItem = MentionDefaultDataItem> implements OnInit, OnDestroy {\n readonly mention = input<Mention<TItem>>();\n\n data = signal<TItem[]>([]);\n\n suggestionSelect$ = new Subject<MentionSuggestionSelectEvent>();\n\n debounce = 150;\n\n loadingDone = signal(true);\n\n private search$ = new Subject<SeekQueryResult>();\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private ngZone = inject(NgZone);\n\n private popoverRef = inject<ThyPopoverRef<any>>(ThyPopoverRef);\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.set(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.set(false);\n return of([]);\n })\n )\n .subscribe(data => {\n this.loadingDone.set(true);\n this.data.set(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({ event, item });\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, computed, inject, input, output } 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 = { backdropClass: SUGGESTION_BACKDROP_CLASS, placement: 'bottomLeft' };\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({ selector: '[thyMention]' })\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 /**\n * 提及输入配置参数,同时支持多个提及规则\n * @type Mention<any>[]\n */\n readonly thyMention = input<Mention<any>[]>([]);\n\n /**\n * Popover 弹出层参数配置\n */\n readonly thyPopoverConfig = input<ThyPopoverConfig>();\n\n /**\n * 选择后的回调函数\n */\n readonly thySelectSuggestion = output<MentionSuggestionSelectEvent>();\n\n get isOpened() {\n return !!this.openedSuggestionsRef;\n }\n\n mentions = computed(() => {\n if (this.thyMention()) {\n return this.thyMention().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 } else {\n return [];\n }\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.thySelectSuggestion.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: { x: position.left, y: position.top, width: fontSize, height: fontSize },\n initialState: { mention: matched.mention }\n },\n this.thyPopoverConfig()\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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"}