ngx-tethys 18.0.8 → 18.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/action/action.component.d.ts +1 -2
  3. package/affix/affix.component.d.ts +2 -4
  4. package/alert/alert.component.d.ts +11 -19
  5. package/anchor/anchor-link.component.d.ts +2 -4
  6. package/anchor/anchor.component.d.ts +2 -7
  7. package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
  8. package/autocomplete/autocomplete.component.d.ts +1 -2
  9. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
  10. package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
  11. package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
  12. package/avatar/avatar.component.d.ts +1 -3
  13. package/avatar/avatar.pipe.d.ts +0 -2
  14. package/back-top/back-top.component.d.ts +2 -4
  15. package/badge/badge.component.d.ts +2 -2
  16. package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
  17. package/breadcrumb/breadcrumb.component.d.ts +1 -2
  18. package/button/button.component.d.ts +1 -2
  19. package/calendar/calendar-header.component.d.ts +1 -2
  20. package/calendar/calendar.component.d.ts +1 -2
  21. package/carousel/carousel-item.directive.d.ts +1 -2
  22. package/carousel/carousel.component.d.ts +1 -4
  23. package/carousel/carousel.service.d.ts +1 -2
  24. package/cascader/cascader.component.d.ts +4 -4
  25. package/checkbox/checkbox.component.d.ts +0 -2
  26. package/collapse/collapse-item.component.d.ts +2 -4
  27. package/color-picker/color-picker-panel.component.d.ts +2 -3
  28. package/color-picker/color-picker.component.d.ts +2 -4
  29. package/color-picker/coordinates.directive.d.ts +1 -2
  30. package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
  31. package/color-picker/parts/hue/hue.component.d.ts +1 -2
  32. package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
  33. package/copy/copy.directive.d.ts +0 -2
  34. package/core/click-positioner.d.ts +0 -2
  35. package/core/scroll.d.ts +1 -2
  36. package/core/update-host-class.service.d.ts +1 -2
  37. package/date-picker/abstract-picker.component.d.ts +1 -1
  38. package/date-picker/abstract-picker.directive.d.ts +2 -3
  39. package/date-picker/base-picker.component.d.ts +2 -3
  40. package/date-picker/date-picker.component.d.ts +2 -2
  41. package/date-picker/date-picker.directive.d.ts +1 -3
  42. package/date-picker/date-picker.service.d.ts +2 -2
  43. package/date-picker/index.d.ts +26 -27
  44. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
  45. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
  46. package/date-picker/lib/date/date-header.component.d.ts +0 -3
  47. package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
  48. package/date-picker/lib/date/date-table.component.d.ts +1 -3
  49. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
  50. package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
  51. package/date-picker/lib/month/month-header.component.d.ts +0 -3
  52. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  53. package/date-picker/lib/popups/date-popup.component.d.ts +1 -4
  54. package/date-picker/lib/popups/inner-popup.component.d.ts +0 -2
  55. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
  56. package/date-picker/lib/year/year-header.component.d.ts +0 -1
  57. package/date-picker/month-picker.component.d.ts +2 -2
  58. package/date-picker/picker.component.d.ts +1 -3
  59. package/date-picker/picker.pipes.d.ts +0 -3
  60. package/date-picker/quarter-picker.component.d.ts +2 -2
  61. package/date-picker/range-picker.component.d.ts +2 -2
  62. package/date-picker/range-picker.directive.d.ts +2 -3
  63. package/date-picker/week-picker.component.d.ts +2 -2
  64. package/date-picker/year-picker.component.d.ts +2 -2
  65. package/date-range/date-range.component.d.ts +3 -11
  66. package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
  67. package/dialog/body/dialog-body.component.d.ts +0 -2
  68. package/dialog/confirm/confirm.component.d.ts +2 -3
  69. package/dialog/dialog-container.component.d.ts +4 -5
  70. package/dialog/dialog.service.d.ts +4 -4
  71. package/dialog/footer/dialog-footer.component.d.ts +2 -2
  72. package/dialog/header/dialog-header.component.d.ts +2 -6
  73. package/divider/divider.component.d.ts +8 -2
  74. package/dot/dot.component.d.ts +1 -2
  75. package/drag-drop/drag-content.directive.d.ts +2 -3
  76. package/drag-drop/drag-handle.directive.d.ts +2 -3
  77. package/drag-drop/drag.directive.d.ts +4 -5
  78. package/drag-drop/drop-container.directive.d.ts +6 -3
  79. package/dropdown/dropdown-active.directive.d.ts +3 -4
  80. package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
  81. package/dropdown/dropdown-submenu.component.d.ts +1 -3
  82. package/dropdown/dropdown.directive.d.ts +3 -5
  83. package/empty/empty.component.d.ts +6 -6
  84. package/esm2022/action/action.component.mjs +20 -21
  85. package/esm2022/affix/affix.component.mjs +11 -14
  86. package/esm2022/alert/alert.component.mjs +55 -81
  87. package/esm2022/anchor/anchor-link.component.mjs +23 -16
  88. package/esm2022/anchor/anchor.component.mjs +27 -24
  89. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +25 -26
  90. package/esm2022/autocomplete/autocomplete.component.mjs +11 -11
  91. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
  92. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
  93. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
  94. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
  95. package/esm2022/avatar/avatar.component.mjs +27 -28
  96. package/esm2022/avatar/avatar.pipe.mjs +6 -7
  97. package/esm2022/back-top/back-top.component.mjs +14 -18
  98. package/esm2022/badge/badge.component.mjs +8 -9
  99. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  100. package/esm2022/breadcrumb/breadcrumb.component.mjs +15 -17
  101. package/esm2022/button/button-icon.component.mjs +4 -4
  102. package/esm2022/button/button.component.mjs +15 -15
  103. package/esm2022/calendar/calendar-header.component.mjs +15 -15
  104. package/esm2022/calendar/calendar.component.mjs +14 -15
  105. package/esm2022/card/header.component.mjs +4 -4
  106. package/esm2022/carousel/carousel-item.directive.mjs +7 -6
  107. package/esm2022/carousel/carousel.component.mjs +13 -15
  108. package/esm2022/carousel/carousel.service.mjs +7 -9
  109. package/esm2022/cascader/cascader-li.component.mjs +4 -4
  110. package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
  111. package/esm2022/cascader/cascader.component.mjs +15 -22
  112. package/esm2022/checkbox/checkbox.component.mjs +11 -13
  113. package/esm2022/collapse/collapse-item.component.mjs +21 -24
  114. package/esm2022/color-picker/color-picker-panel.component.mjs +14 -15
  115. package/esm2022/color-picker/color-picker.component.mjs +10 -11
  116. package/esm2022/color-picker/coordinates.directive.mjs +10 -10
  117. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
  118. package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
  119. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
  120. package/esm2022/comment/comment.component.mjs +4 -4
  121. package/esm2022/copy/copy.directive.mjs +8 -12
  122. package/esm2022/core/click-positioner.mjs +6 -7
  123. package/esm2022/core/scroll.mjs +7 -9
  124. package/esm2022/core/store/store.mjs +1 -1
  125. package/esm2022/core/update-host-class.service.mjs +6 -6
  126. package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
  127. package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
  128. package/esm2022/date-picker/base-picker.component.mjs +26 -26
  129. package/esm2022/date-picker/date-picker.component.mjs +10 -11
  130. package/esm2022/date-picker/date-picker.directive.mjs +6 -8
  131. package/esm2022/date-picker/date-picker.service.mjs +6 -10
  132. package/esm2022/date-picker/index.mjs +27 -28
  133. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +7 -8
  134. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
  135. package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -12
  136. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
  137. package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -12
  138. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +16 -16
  139. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +8 -11
  140. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
  141. package/esm2022/date-picker/lib/month/month-header.component.mjs +6 -12
  142. package/esm2022/date-picker/lib/month/month-table.component.mjs +9 -10
  143. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +14 -29
  144. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +14 -20
  145. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +9 -10
  146. package/esm2022/date-picker/lib/year/year-header.component.mjs +6 -12
  147. package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
  148. package/esm2022/date-picker/month-picker.component.mjs +9 -11
  149. package/esm2022/date-picker/picker.component.mjs +24 -35
  150. package/esm2022/date-picker/picker.pipes.mjs +10 -11
  151. package/esm2022/date-picker/quarter-picker.component.mjs +9 -11
  152. package/esm2022/date-picker/range-picker.component.mjs +9 -11
  153. package/esm2022/date-picker/range-picker.directive.mjs +6 -8
  154. package/esm2022/date-picker/week-picker.component.mjs +9 -11
  155. package/esm2022/date-picker/year-picker.component.mjs +9 -11
  156. package/esm2022/date-range/date-range.component.mjs +17 -18
  157. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +9 -13
  158. package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
  159. package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
  160. package/esm2022/dialog/dialog-container.component.mjs +13 -18
  161. package/esm2022/dialog/dialog.service.mjs +10 -17
  162. package/esm2022/dialog/footer/dialog-footer.component.mjs +10 -14
  163. package/esm2022/dialog/header/dialog-header.component.mjs +17 -22
  164. package/esm2022/divider/divider.component.mjs +21 -13
  165. package/esm2022/dot/dot.component.mjs +7 -7
  166. package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
  167. package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
  168. package/esm2022/drag-drop/drag.directive.mjs +13 -16
  169. package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
  170. package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
  171. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
  172. package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
  173. package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
  174. package/esm2022/dropdown/dropdown.directive.mjs +12 -10
  175. package/esm2022/empty/empty.component.mjs +17 -20
  176. package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
  177. package/esm2022/form/form-group-error/form-group-error.component.mjs +12 -15
  178. package/esm2022/form/form-group-label.directive.mjs +9 -10
  179. package/esm2022/form/form-group.component.mjs +18 -22
  180. package/esm2022/form/form-submit.directive.mjs +6 -7
  181. package/esm2022/form/form-validator-loader.mjs +1 -1
  182. package/esm2022/form/form-validator.service.mjs +12 -13
  183. package/esm2022/form/form.directive.mjs +11 -16
  184. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +13 -19
  185. package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
  186. package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
  187. package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
  188. package/esm2022/grid/thy-col.directive.mjs +9 -14
  189. package/esm2022/grid/thy-grid-item.component.mjs +8 -14
  190. package/esm2022/grid/thy-grid.component.mjs +7 -8
  191. package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
  192. package/esm2022/guider/guider.directive.mjs +8 -9
  193. package/esm2022/guider/guider.service.mjs +12 -19
  194. package/esm2022/icon/icon-registry.mjs +11 -16
  195. package/esm2022/icon/icon.component.mjs +8 -9
  196. package/esm2022/image/image-group.component.mjs +7 -7
  197. package/esm2022/image/image.directive.mjs +11 -12
  198. package/esm2022/image/image.service.mjs +8 -14
  199. package/esm2022/image/preview/image-preview.component.mjs +36 -41
  200. package/esm2022/input/input-count.component.mjs +7 -10
  201. package/esm2022/input/input-group.component.mjs +15 -16
  202. package/esm2022/input/input-search.component.mjs +9 -10
  203. package/esm2022/input/input.component.mjs +17 -17
  204. package/esm2022/input/input.directive.mjs +12 -17
  205. package/esm2022/input-number/input-number.component.mjs +6 -6
  206. package/esm2022/layout/header.component.mjs +4 -4
  207. package/esm2022/layout/sidebar-header.component.mjs +4 -4
  208. package/esm2022/layout/sidebar.component.mjs +125 -121
  209. package/esm2022/list/list-item-meta.component.mjs +4 -4
  210. package/esm2022/list/selection/selection-list.mjs +25 -25
  211. package/esm2022/loading/loading.component.mjs +10 -11
  212. package/esm2022/mention/mention.directive.mjs +9 -14
  213. package/esm2022/mention/suggestions/suggestions.component.mjs +11 -12
  214. package/esm2022/menu/group/menu-group.component.mjs +37 -38
  215. package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
  216. package/esm2022/menu/item/menu-item.component.mjs +8 -9
  217. package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
  218. package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
  219. package/esm2022/message/message-container.component.mjs +21 -15
  220. package/esm2022/message/message-queue.service.mjs +6 -8
  221. package/esm2022/message/message.component.mjs +9 -10
  222. package/esm2022/message/message.service.mjs +10 -11
  223. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
  224. package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
  225. package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
  226. package/esm2022/nav/nav-item.directive.mjs +8 -11
  227. package/esm2022/nav/nav.component.mjs +35 -38
  228. package/esm2022/nav/nav.pipe.mjs +6 -7
  229. package/esm2022/notify/notify-container.component.mjs +11 -14
  230. package/esm2022/notify/notify-queue.service.mjs +6 -8
  231. package/esm2022/notify/notify.component.mjs +10 -10
  232. package/esm2022/notify/notify.service.mjs +11 -12
  233. package/esm2022/pagination/pagination.component.mjs +41 -46
  234. package/esm2022/pagination/pagination.pipe.mjs +6 -7
  235. package/esm2022/popover/header/popover-header.component.mjs +15 -17
  236. package/esm2022/popover/popover-container.component.mjs +11 -13
  237. package/esm2022/popover/popover.directive.mjs +13 -12
  238. package/esm2022/popover/popover.service.mjs +14 -26
  239. package/esm2022/progress/progress-circle.component.mjs +4 -7
  240. package/esm2022/progress/progress-strip.component.mjs +10 -13
  241. package/esm2022/progress/progress.component.mjs +5 -8
  242. package/esm2022/property/property-item.component.mjs +13 -16
  243. package/esm2022/property-operation/property-operation.component.mjs +27 -28
  244. package/esm2022/radio/button/radio-button.component.mjs +9 -15
  245. package/esm2022/radio/group/radio-group.component.mjs +17 -17
  246. package/esm2022/radio/radio.component.mjs +12 -18
  247. package/esm2022/rate/rate.component.mjs +10 -10
  248. package/esm2022/resizable/resizable.directive.mjs +10 -12
  249. package/esm2022/resizable/resizable.service.mjs +7 -9
  250. package/esm2022/resizable/resize-handle.component.mjs +16 -14
  251. package/esm2022/resizable/resize-handles.component.mjs +12 -5
  252. package/esm2022/result/result.component.mjs +4 -4
  253. package/esm2022/segment/segment-item.component.mjs +15 -18
  254. package/esm2022/segment/segment.component.mjs +29 -30
  255. package/esm2022/select/custom-select/custom-select.component.mjs +19 -35
  256. package/esm2022/select/native-select/native-select.component.mjs +10 -11
  257. package/esm2022/shared/base-form-check.component.mjs +7 -8
  258. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
  259. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
  260. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
  261. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
  262. package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
  263. package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
  264. package/esm2022/shared/directives/thy-show.mjs +11 -11
  265. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
  266. package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
  267. package/esm2022/shared/ng-transclude.directive.mjs +6 -5
  268. package/esm2022/shared/option/group/option-group.component.mjs +10 -10
  269. package/esm2022/shared/option/list-option/list-option.component.mjs +14 -22
  270. package/esm2022/shared/option/option.component.mjs +11 -22
  271. package/esm2022/shared/select/select-control/select-control.component.mjs +27 -27
  272. package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
  273. package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
  274. package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
  275. package/esm2022/skeleton/stylized/list.component.mjs +8 -9
  276. package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
  277. package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
  278. package/esm2022/slide/slide-container.component.mjs +12 -16
  279. package/esm2022/slide/slide-header/slide-header.component.mjs +13 -14
  280. package/esm2022/slide/slide-ref.service.mjs +1 -1
  281. package/esm2022/slide/slide.service.mjs +8 -12
  282. package/esm2022/slider/slider.component.mjs +8 -8
  283. package/esm2022/space/space.component.mjs +16 -16
  284. package/esm2022/statistic/statistic.component.mjs +23 -23
  285. package/esm2022/stepper/step.component.mjs +6 -11
  286. package/esm2022/stepper/stepper-button.directive.mjs +10 -11
  287. package/esm2022/stepper/stepper.component.mjs +5 -5
  288. package/esm2022/strength/strength.component.mjs +11 -12
  289. package/esm2022/switch/switch.component.mjs +11 -11
  290. package/esm2022/table/table-column.component.mjs +58 -63
  291. package/esm2022/table/table-skeleton.component.mjs +35 -38
  292. package/esm2022/table/table.component.mjs +19 -29
  293. package/esm2022/tabs/tab-content.component.mjs +9 -9
  294. package/esm2022/tabs/tabs.component.mjs +22 -25
  295. package/esm2022/tag/tag.component.mjs +22 -22
  296. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +12 -12
  297. package/esm2022/time-picker/time-picker-panel.component.mjs +31 -34
  298. package/esm2022/time-picker/time-picker.component.mjs +33 -43
  299. package/esm2022/timeline/timeline-item.component.mjs +15 -16
  300. package/esm2022/timeline/timeline.component.mjs +15 -16
  301. package/esm2022/tooltip/tooltip.component.mjs +17 -17
  302. package/esm2022/tooltip/tooltip.directive.mjs +11 -10
  303. package/esm2022/tooltip/tooltip.service.mjs +9 -13
  304. package/esm2022/transfer/transfer-list.component.mjs +9 -9
  305. package/esm2022/transfer/transfer.component.mjs +4 -4
  306. package/esm2022/tree/tree-node.component.mjs +16 -20
  307. package/esm2022/tree/tree.component.mjs +90 -96
  308. package/esm2022/tree-select/tree-select.component.mjs +28 -36
  309. package/esm2022/typography/bg-color.directive.mjs +9 -9
  310. package/esm2022/typography/text/text.component.mjs +3 -4
  311. package/esm2022/typography/text-color.directive.mjs +9 -9
  312. package/esm2022/upload/file-drop.directive.mjs +1 -1
  313. package/esm2022/upload/file-select-base.mjs +5 -6
  314. package/esm2022/upload/file-select.component.mjs +4 -3
  315. package/esm2022/upload/upload.service.mjs +6 -7
  316. package/esm2022/version.mjs +2 -2
  317. package/esm2022/vote/vote.component.mjs +4 -4
  318. package/esm2022/watermark/watermark.directive.mjs +12 -12
  319. package/fesm2022/ngx-tethys-action.mjs +20 -20
  320. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  321. package/fesm2022/ngx-tethys-affix.mjs +12 -14
  322. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  323. package/fesm2022/ngx-tethys-alert.mjs +54 -80
  324. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  325. package/fesm2022/ngx-tethys-anchor.mjs +48 -35
  326. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  327. package/fesm2022/ngx-tethys-arrow-switcher.mjs +25 -25
  328. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  329. package/fesm2022/ngx-tethys-autocomplete.mjs +63 -75
  330. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  331. package/fesm2022/ngx-tethys-avatar.mjs +32 -32
  332. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  333. package/fesm2022/ngx-tethys-back-top.mjs +15 -18
  334. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  335. package/fesm2022/ngx-tethys-badge.mjs +8 -8
  336. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  337. package/fesm2022/ngx-tethys-breadcrumb.mjs +19 -21
  338. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  339. package/fesm2022/ngx-tethys-button.mjs +16 -16
  340. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  341. package/fesm2022/ngx-tethys-calendar.mjs +26 -26
  342. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  343. package/fesm2022/ngx-tethys-card.mjs +3 -3
  344. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  345. package/fesm2022/ngx-tethys-carousel.mjs +23 -24
  346. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  347. package/fesm2022/ngx-tethys-cascader.mjs +19 -25
  348. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  349. package/fesm2022/ngx-tethys-checkbox.mjs +10 -11
  350. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  351. package/fesm2022/ngx-tethys-collapse.mjs +20 -22
  352. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  353. package/fesm2022/ngx-tethys-color-picker.mjs +47 -45
  354. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  355. package/fesm2022/ngx-tethys-comment.mjs +3 -3
  356. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  357. package/fesm2022/ngx-tethys-copy.mjs +8 -12
  358. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  359. package/fesm2022/ngx-tethys-core.mjs +14 -16
  360. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  361. package/fesm2022/ngx-tethys-date-picker.mjs +2872 -2924
  362. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  363. package/fesm2022/ngx-tethys-date-range.mjs +24 -26
  364. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  365. package/fesm2022/ngx-tethys-dialog.mjs +61 -77
  366. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  367. package/fesm2022/ngx-tethys-divider.mjs +20 -12
  368. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  369. package/fesm2022/ngx-tethys-dot.mjs +6 -6
  370. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  371. package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
  372. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  373. package/fesm2022/ngx-tethys-dropdown.mjs +49 -43
  374. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  375. package/fesm2022/ngx-tethys-empty.mjs +18 -18
  376. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  377. package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
  378. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  379. package/fesm2022/ngx-tethys-form.mjs +74 -89
  380. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  381. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
  382. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  383. package/fesm2022/ngx-tethys-grid.mjs +20 -29
  384. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  385. package/fesm2022/ngx-tethys-guider.mjs +20 -26
  386. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  387. package/fesm2022/ngx-tethys-icon.mjs +18 -22
  388. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  389. package/fesm2022/ngx-tethys-image.mjs +60 -65
  390. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  391. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  392. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  393. package/fesm2022/ngx-tethys-input.mjs +53 -60
  394. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  395. package/fesm2022/ngx-tethys-layout.mjs +129 -124
  396. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  397. package/fesm2022/ngx-tethys-list.mjs +27 -27
  398. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  399. package/fesm2022/ngx-tethys-loading.mjs +10 -10
  400. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  401. package/fesm2022/ngx-tethys-mention.mjs +19 -24
  402. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  403. package/fesm2022/ngx-tethys-menu.mjs +56 -57
  404. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  405. package/fesm2022/ngx-tethys-message.mjs +47 -41
  406. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  407. package/fesm2022/ngx-tethys-nav.mjs +61 -72
  408. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  409. package/fesm2022/ngx-tethys-notify.mjs +31 -34
  410. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  411. package/fesm2022/ngx-tethys-pagination.mjs +46 -51
  412. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  413. package/fesm2022/ngx-tethys-popover.mjs +51 -57
  414. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  415. package/fesm2022/ngx-tethys-progress.mjs +15 -24
  416. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  417. package/fesm2022/ngx-tethys-property-operation.mjs +27 -27
  418. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-property.mjs +14 -14
  420. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-radio.mjs +33 -39
  422. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  423. package/fesm2022/ngx-tethys-rate.mjs +9 -9
  424. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  425. package/fesm2022/ngx-tethys-resizable.mjs +43 -34
  426. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-result.mjs +3 -3
  428. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-segment.mjs +41 -44
  430. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  431. package/fesm2022/ngx-tethys-select.mjs +28 -44
  432. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  433. package/fesm2022/ngx-tethys-shared.mjs +135 -150
  434. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  435. package/fesm2022/ngx-tethys-skeleton.mjs +33 -47
  436. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  437. package/fesm2022/ngx-tethys-slide.mjs +33 -37
  438. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  439. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  440. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  441. package/fesm2022/ngx-tethys-space.mjs +16 -16
  442. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  443. package/fesm2022/ngx-tethys-statistic.mjs +22 -22
  444. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  445. package/fesm2022/ngx-tethys-stepper.mjs +17 -22
  446. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  447. package/fesm2022/ngx-tethys-strength.mjs +11 -11
  448. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  449. package/fesm2022/ngx-tethys-switch.mjs +10 -10
  450. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  451. package/fesm2022/ngx-tethys-table.mjs +107 -124
  452. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  453. package/fesm2022/ngx-tethys-tabs.mjs +29 -32
  454. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  455. package/fesm2022/ngx-tethys-tag.mjs +21 -21
  456. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  457. package/fesm2022/ngx-tethys-time-picker.mjs +70 -80
  458. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  459. package/fesm2022/ngx-tethys-timeline.mjs +26 -26
  460. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  461. package/fesm2022/ngx-tethys-tooltip.mjs +35 -36
  462. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  463. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  464. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  465. package/fesm2022/ngx-tethys-tree-select.mjs +29 -37
  466. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  467. package/fesm2022/ngx-tethys-tree.mjs +102 -110
  468. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  469. package/fesm2022/ngx-tethys-typography.mjs +18 -18
  470. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  471. package/fesm2022/ngx-tethys-upload.mjs +11 -12
  472. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  473. package/fesm2022/ngx-tethys-vote.mjs +3 -3
  474. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  475. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  476. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  477. package/fesm2022/ngx-tethys.mjs +1 -1
  478. package/fesm2022/ngx-tethys.mjs.map +1 -1
  479. package/flexible-text/flexible-text.component.d.ts +1 -3
  480. package/form/form-group-error/form-group-error.component.d.ts +1 -3
  481. package/form/form-group-label.directive.d.ts +0 -2
  482. package/form/form-group.component.d.ts +1 -4
  483. package/form/form-submit.directive.d.ts +0 -2
  484. package/form/form-validator.service.d.ts +0 -2
  485. package/form/form.directive.d.ts +4 -4
  486. package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
  487. package/form/validator/unique-validator.directive.d.ts +1 -4
  488. package/fullscreen/fullscreen.component.d.ts +0 -2
  489. package/fullscreen/fullscreen.service.d.ts +0 -2
  490. package/grid/thy-col.directive.d.ts +1 -2
  491. package/grid/thy-grid-item.component.d.ts +2 -4
  492. package/grid/thy-grid.component.d.ts +1 -3
  493. package/guider/guider.directive.d.ts +1 -3
  494. package/guider/guider.service.d.ts +0 -7
  495. package/icon/icon-registry.d.ts +1 -3
  496. package/icon/icon.component.d.ts +1 -3
  497. package/image/image-group.component.d.ts +1 -2
  498. package/image/image.directive.d.ts +1 -3
  499. package/image/image.service.d.ts +2 -2
  500. package/image/preview/image-preview.component.d.ts +1 -4
  501. package/input/input-count.component.d.ts +3 -4
  502. package/input/input-group.component.d.ts +1 -3
  503. package/input/input-search.component.d.ts +2 -2
  504. package/input/input.component.d.ts +1 -2
  505. package/input/input.directive.d.ts +2 -3
  506. package/input-number/input-number.component.d.ts +2 -2
  507. package/layout/sidebar.component.d.ts +44 -13
  508. package/list/selection/selection-list.d.ts +1 -2
  509. package/loading/loading.component.d.ts +0 -2
  510. package/loading/styles/loading.scss +3 -1
  511. package/mention/mention.directive.d.ts +4 -5
  512. package/mention/suggestions/suggestions.component.d.ts +2 -3
  513. package/menu/group/menu-group.component.d.ts +30 -8
  514. package/menu/item/action/menu-item-action.component.d.ts +2 -3
  515. package/menu/item/menu-item.component.d.ts +1 -2
  516. package/message/abstract/abstract-message-container.component.d.ts +1 -2
  517. package/message/abstract/abstract-message.component.d.ts +2 -2
  518. package/message/message-container.component.d.ts +1 -3
  519. package/message/message-queue.service.d.ts +1 -2
  520. package/message/message.component.d.ts +1 -3
  521. package/message/message.service.d.ts +3 -5
  522. package/nav/icon-nav/icon-nav.component.d.ts +2 -2
  523. package/nav/nav-ink-bar.directive.d.ts +2 -4
  524. package/nav/nav-item.directive.d.ts +3 -4
  525. package/nav/nav.component.d.ts +1 -3
  526. package/nav/nav.pipe.d.ts +0 -2
  527. package/notify/notify-container.component.d.ts +1 -3
  528. package/notify/notify-queue.service.d.ts +1 -2
  529. package/notify/notify.component.d.ts +2 -3
  530. package/notify/notify.service.d.ts +1 -4
  531. package/package.json +1 -1
  532. package/pagination/pagination.component.d.ts +2 -4
  533. package/pagination/pagination.pipe.d.ts +0 -2
  534. package/popover/header/popover-header.component.d.ts +0 -3
  535. package/popover/popover-container.component.d.ts +3 -4
  536. package/popover/popover.directive.d.ts +2 -5
  537. package/popover/popover.service.d.ts +4 -6
  538. package/progress/progress-circle.component.d.ts +0 -1
  539. package/progress/progress-strip.component.d.ts +0 -1
  540. package/progress/progress.component.d.ts +0 -1
  541. package/property/property-item.component.d.ts +6 -9
  542. package/property-operation/property-operation.component.d.ts +1 -3
  543. package/radio/button/radio-button.component.d.ts +2 -5
  544. package/radio/group/radio-group.component.d.ts +1 -2
  545. package/radio/radio.component.d.ts +2 -3
  546. package/rate/rate.component.d.ts +2 -2
  547. package/resizable/resizable.directive.d.ts +2 -4
  548. package/resizable/resizable.service.d.ts +2 -2
  549. package/resizable/resize-handle.component.d.ts +2 -7
  550. package/schematics/version.d.ts +1 -1
  551. package/schematics/version.js +1 -1
  552. package/segment/segment-item.component.d.ts +4 -5
  553. package/segment/segment.component.d.ts +2 -7
  554. package/select/custom-select/custom-select.component.d.ts +5 -5
  555. package/select/native-select/native-select.component.d.ts +1 -1
  556. package/shared/base-form-check.component.d.ts +1 -1
  557. package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
  558. package/shared/directives/thy-autofocus.directive.d.ts +0 -2
  559. package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
  560. package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
  561. package/shared/directives/thy-enter.directive.d.ts +1 -2
  562. package/shared/directives/thy-scroll.directive.d.ts +1 -2
  563. package/shared/directives/thy-show.d.ts +1 -2
  564. package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
  565. package/shared/directives/view-outlet.directive.d.ts +1 -2
  566. package/shared/ng-transclude.directive.d.ts +1 -1
  567. package/shared/option/group/option-group.component.d.ts +1 -2
  568. package/shared/option/list-option/list-option.component.d.ts +6 -7
  569. package/shared/option/option.component.d.ts +5 -5
  570. package/shared/select/select-control/select-control.component.d.ts +1 -2
  571. package/skeleton/skeleton-circle.component.d.ts +1 -4
  572. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  573. package/skeleton/stylized/bullet-list.component.d.ts +9 -1
  574. package/slide/drawer/drawer-container.directive.d.ts +1 -2
  575. package/slide/slide-container.component.d.ts +3 -4
  576. package/slide/slide-header/slide-header.component.d.ts +0 -2
  577. package/slide/slide.service.d.ts +3 -3
  578. package/slider/slider.component.d.ts +2 -2
  579. package/space/space.component.d.ts +1 -2
  580. package/statistic/statistic.component.d.ts +1 -2
  581. package/stepper/step.component.d.ts +1 -2
  582. package/stepper/stepper-button.directive.d.ts +0 -3
  583. package/strength/strength.component.d.ts +0 -1
  584. package/switch/switch.component.d.ts +1 -1
  585. package/table/table-column.component.d.ts +32 -8
  586. package/table/table-skeleton.component.d.ts +1 -3
  587. package/table/table.component.d.ts +3 -5
  588. package/tabs/tabs.component.d.ts +1 -3
  589. package/tag/tag.component.d.ts +7 -3
  590. package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
  591. package/time-picker/time-picker-panel.component.d.ts +1 -3
  592. package/time-picker/time-picker.component.d.ts +1 -2
  593. package/timeline/timeline-item.component.d.ts +1 -3
  594. package/timeline/timeline.component.d.ts +1 -3
  595. package/tooltip/tooltip.component.d.ts +1 -2
  596. package/tooltip/tooltip.directive.d.ts +6 -9
  597. package/tooltip/tooltip.service.d.ts +2 -4
  598. package/transfer/transfer-list.component.d.ts +1 -2
  599. package/tree/tree-node.component.d.ts +5 -21
  600. package/tree/tree.component.d.ts +1 -2
  601. package/tree-select/tree-select.component.d.ts +5 -6
  602. package/typography/bg-color.directive.d.ts +0 -2
  603. package/typography/text-color.directive.d.ts +1 -2
  604. package/upload/file-select-base.d.ts +2 -3
  605. package/upload/file-select.component.d.ts +1 -0
  606. package/upload/upload.service.d.ts +0 -2
  607. package/watermark/watermark.directive.d.ts +1 -2
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, numberAttribute, forwardRef, Component, ViewChild, Input, Output, NgModule } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, EventEmitter, numberAttribute, forwardRef, Component, ViewChild, Input, Output, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
@@ -49,9 +49,9 @@ class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
49
49
  get thyMin() {
50
50
  return this.innerMin;
51
51
  }
52
- constructor(cdr) {
52
+ constructor() {
53
53
  super();
54
- this.cdr = cdr;
54
+ this.cdr = inject(ChangeDetectorRef);
55
55
  this.hostFocusControl = useHostFocusControl();
56
56
  this.disabledUp = false;
57
57
  this.disabledDown = false;
@@ -306,7 +306,7 @@ class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
306
306
  ngOnDestroy() {
307
307
  this.hostFocusControl.destroy();
308
308
  }
309
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputNumber, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
309
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputNumber, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
310
310
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyInputNumber, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: ["thyAutoFocus", "thyAutoFocus", coerceBooleanProperty], thyPlaceholder: "thyPlaceholder", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyMax: "thyMax", thyMin: "thyMin", thyStep: ["thyStep", "thyStep", numberAttribute], thyStepDelay: ["thyStepDelay", "thyStepDelay", numberAttribute], thySize: "thySize", thyPrecision: "thyPrecision", thySuffix: "thySuffix" }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus", thyStepChange: "thyStepChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
311
311
  {
312
312
  provide: NG_VALUE_ACCESSOR,
@@ -327,7 +327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
327
327
  class: 'thy-input-number',
328
328
  '[attr.tabindex]': 'tabIndex'
329
329
  }, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n" }]
330
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { inputElement: [{
330
+ }], ctorParameters: () => [], propDecorators: { inputElement: [{
331
331
  type: ViewChild,
332
332
  args: ['input', { static: true }]
333
333
  }], thyAutoFocus: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-input-number.mjs","sources":["../../../src/input-number/input-number.component.ts","../../../src/input-number/input-number.component.html","../../../src/input-number/module.ts","../../../src/input-number/ngx-tethys-input-number.ts"],"sourcesContent":["import { TabIndexDisabledControlValueAccessorMixin, useHostFocusControl } from 'ngx-tethys/core';\nimport { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nenum Type {\n up,\n down\n}\n\n/**\n * 数字输入框\n * @name thy-input-number\n * @order 10\n */\n@Component({\n selector: 'thy-input-number',\n templateUrl: './input-number.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInputNumber),\n multi: true\n }\n ],\n standalone: true,\n imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyMinDirective, ThyMaxDirective],\n host: {\n class: 'thy-input-number',\n '[attr.tabindex]': 'tabIndex'\n }\n})\nexport class ThyInputNumber\n extends TabIndexDisabledControlValueAccessorMixin\n implements ControlValueAccessor, OnChanges, OnInit, OnDestroy\n{\n @ViewChild('input', { static: true }) inputElement: ElementRef<any>;\n\n private autoStepTimer: any;\n\n private hostFocusControl = useHostFocusControl();\n\n validValue: number | string;\n\n displayValue: number | string;\n\n disabledUp = false;\n\n disabledDown = false;\n\n activeValue: string = '';\n\n /**\n * 是否自动聚焦\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyAutoFocus: boolean;\n\n /**\n * 输入框的placeholder\n */\n @Input() thyPlaceholder: string = '';\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled: boolean;\n\n /**\n * 最大值\n * @default Infinity\n */\n @Input() set thyMax(value: number) {\n this.innerMax = isNumber(value) ? value : this.innerMax;\n if (this.displayValue || this.displayValue === 0) {\n const val = Number(this.displayValue);\n this.disabledUp = val >= this.innerMax;\n }\n }\n\n get thyMax() {\n return this.innerMax;\n }\n\n /**\n * 最小值\n * @default -Infinity\n */\n @Input() set thyMin(value: number) {\n this.innerMin = isNumber(value) ? value : this.innerMin;\n if (this.displayValue || this.displayValue === 0) {\n const val = Number(this.displayValue);\n this.disabledDown = val <= this.innerMin;\n }\n }\n\n get thyMin() {\n return this.innerMin;\n }\n\n /**\n * 每次改变步数,可以为小数\n */\n @Input({ transform: numberAttribute }) thyStep = 1;\n\n /**\n * 改变步数时的延迟毫秒数,值越小变化的速度越快\n * @default 300\n */\n @Input({ transform: numberAttribute }) thyStepDelay = 300;\n\n /**\n * 输入框大小\n * @type xs | sm | md | lg\n */\n @Input() thySize: InputSize;\n\n /**\n * 数值精度\n */\n @Input() thyPrecision: number;\n\n /**\n * 数值后缀\n */\n @Input() thySuffix: string;\n\n /**\n * 焦点失去事件\n */\n @Output() thyBlur = new EventEmitter<Event>();\n\n /**\n * 焦点激活事件\n */\n @Output() thyFocus = new EventEmitter<Event>();\n\n /**\n * 上下箭头点击事件\n */\n @Output() thyStepChange = new EventEmitter<{ value: number; type: Type }>();\n\n private innerMax: number = Infinity;\n\n private innerMin: number = -Infinity;\n\n private isFocused: boolean;\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.thyDisabled = isDisabled;\n }\n\n ngOnInit() {\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (this.thyDisabled) {\n return;\n }\n\n if (origin) {\n if (!this.isFocused) {\n this.inputElement.nativeElement.focus();\n }\n } else {\n if (this.isFocused) {\n this.displayValue = this.formatterValue(this.validValue);\n this.onTouchedFn();\n this.thyBlur.emit();\n this.isFocused = false;\n }\n }\n };\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.thySuffix && !changes.thySuffix.isFirstChange()) {\n const validValue = this.getCurrentValidValue(this.validValue);\n this.updateValidValue(validValue);\n this.displayValue = this.formatterValue(validValue);\n }\n }\n\n writeValue(value: number | string): void {\n const _value = this.getCurrentValidValue(value);\n this.updateValidValue(_value);\n this.displayValue = this.formatterValue(_value);\n this.cdr.markForCheck();\n }\n\n updateValidValue(value: number | string): void {\n if (this.isNotValid(value)) {\n this.validValue = '';\n } else if (this.validValue !== value) {\n this.validValue = value;\n }\n this.disabledUp = this.disabledDown = false;\n if (value || value === 0) {\n const val = Number(value);\n if (val >= this.thyMax) {\n this.disabledUp = true;\n }\n if (val <= this.thyMin) {\n this.disabledDown = true;\n }\n }\n }\n\n onModelChange(value: string): void {\n const parseValue = this.parser(value);\n if (this.isInputNumber(value)) {\n this.activeValue = value;\n } else {\n this.displayValue = parseValue;\n this.inputElement.nativeElement.value = parseValue;\n }\n const validValue = this.getCurrentValidValue(parseValue);\n if (`${this.validValue}` !== `${validValue}`) {\n this.updateValidValue(validValue);\n this.onChangeFn(validValue);\n }\n }\n\n onInputFocus(event?: Event) {\n this.activeValue = this.parser(this.displayValue.toString());\n if (!this.isFocused) {\n this.isFocused = true;\n this.thyFocus.emit(event);\n }\n }\n\n onKeyDown(e: KeyboardEvent): void {\n if (e.keyCode === UP_ARROW) {\n this.up(e);\n this.stop();\n } else if (e.keyCode === DOWN_ARROW) {\n this.down(e);\n this.stop();\n } else if (e.keyCode === ENTER) {\n this.displayValue = this.formatterValue(this.validValue);\n }\n }\n\n stop() {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n this.displayValue = this.toNumber(this.displayValue);\n }\n\n step(type: Type, e: MouseEvent | KeyboardEvent): void {\n this.stop();\n e.preventDefault();\n if (this.thyDisabled) {\n return;\n }\n const value = this.validValue as number;\n let val;\n if (type === Type.up) {\n val = this.upStep(value);\n } else if (type === Type.down) {\n val = this.downStep(value);\n }\n const outOfRange = val > this.thyMax || val < this.thyMin;\n val = this.getCurrentValidValue(val);\n this.updateValidValue(val);\n this.onChangeFn(this.validValue);\n this.thyStepChange.emit({ value: this.validValue as number, type });\n this.displayValue = this.formatterValue(val);\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(() => {\n (this[Type[type]] as (e: MouseEvent | KeyboardEvent) => void)(e);\n }, this.thyStepDelay);\n }\n\n upStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = this.getMaxPrecision(value);\n const result = ((precisionFactor * value + precisionFactor * this.thyStep) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n downStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = Math.abs(this.getMaxPrecision(value));\n const result = ((precisionFactor * value - precisionFactor * this.thyStep) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n getMaxPrecision(value: string | number): number {\n if (!isUndefinedOrNull(this.thyPrecision)) {\n return this.thyPrecision;\n }\n const stepPrecision = this.getPrecision(this.thyStep);\n const currentValuePrecision = this.getPrecision(value as number);\n if (!value) {\n return stepPrecision;\n }\n return Math.max(currentValuePrecision, stepPrecision);\n }\n\n getPrecisionFactor(activeValue: string | number): number {\n const precision = this.getMaxPrecision(activeValue);\n return Math.pow(10, precision);\n }\n\n getPrecision(value: number): number {\n const valueString = value.toString();\n // 0.0000000004.toString() = 4e10 => 10\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n let precision = 0;\n // 1.2222 => 4\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n }\n\n up(e: MouseEvent | KeyboardEvent) {\n this.inputElement.nativeElement.focus();\n this.step(Type.up, e);\n }\n\n down(e: MouseEvent | KeyboardEvent) {\n this.inputElement.nativeElement.focus();\n this.step(Type.down, e);\n }\n\n formatterValue(value: number | string) {\n const parseValue = this.parser(`${value}`);\n if (parseValue) {\n return this.thySuffix ? `${parseValue} ${this.thySuffix}` : parseValue;\n } else {\n return '';\n }\n }\n\n parser(value: string) {\n return value\n .trim()\n .replace(/。/g, '.')\n .replace(/[^\\w\\.-]+/g, '')\n .replace(this.thySuffix, '');\n }\n\n getCurrentValidValue(value: string | number): number | string {\n let val = value;\n if (value === '' || isUndefinedOrNull(value)) {\n return '';\n }\n val = parseFloat(value as string);\n if (this.isNotValid(val)) {\n val = this.validValue;\n }\n if ((val as number) < this.thyMin) {\n val = this.thyMin;\n }\n if ((val as number) > this.thyMax) {\n val = this.thyMax;\n }\n\n return this.toNumber(val);\n }\n\n isNotValid(num: string | number): boolean {\n return isNaN(num as number) || num === '' || num === null || !!(num && num.toString().indexOf('.') === num.toString().length - 1);\n }\n\n toNumber(num: string | number): number {\n if (this.isNotValid(num)) {\n return num as number;\n }\n const numStr = String(num);\n if (numStr.indexOf('.') >= 0 && !isUndefinedOrNull(this.thyPrecision)) {\n return Number(Number(num).toFixed(this.thyPrecision));\n }\n return Number(num);\n }\n\n isInputNumber(value: string) {\n return isFloat(value) || /^[-+Ee]$|^([-+.]?[0-9])*(([.]|[.eE])?[eE]?[+-]?)?$|^$/.test(value);\n }\n\n ngOnDestroy() {\n this.hostFocusControl.destroy();\n }\n}\n","<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputNumber } from './input-number.component';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyFormModule } from 'ngx-tethys/form';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyInputModule, ThyFormModule, ThyInputNumber],\n exports: [ThyInputNumber]\n})\nexport class ThyInputNumberModule {}\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-input-number.mjs","sources":["../../../src/input-number/input-number.component.ts","../../../src/input-number/input-number.component.html","../../../src/input-number/module.ts","../../../src/input-number/ngx-tethys-input-number.ts"],"sourcesContent":["import { TabIndexDisabledControlValueAccessorMixin, useHostFocusControl } from 'ngx-tethys/core';\nimport { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nenum Type {\n up,\n down\n}\n\n/**\n * 数字输入框\n * @name thy-input-number\n * @order 10\n */\n@Component({\n selector: 'thy-input-number',\n templateUrl: './input-number.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInputNumber),\n multi: true\n }\n ],\n standalone: true,\n imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyMinDirective, ThyMaxDirective],\n host: {\n class: 'thy-input-number',\n '[attr.tabindex]': 'tabIndex'\n }\n})\nexport class ThyInputNumber\n extends TabIndexDisabledControlValueAccessorMixin\n implements ControlValueAccessor, OnChanges, OnInit, OnDestroy\n{\n private cdr = inject(ChangeDetectorRef);\n\n @ViewChild('input', { static: true }) inputElement: ElementRef<any>;\n\n private autoStepTimer: any;\n\n private hostFocusControl = useHostFocusControl();\n\n validValue: number | string;\n\n displayValue: number | string;\n\n disabledUp = false;\n\n disabledDown = false;\n\n activeValue: string = '';\n\n /**\n * 是否自动聚焦\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyAutoFocus: boolean;\n\n /**\n * 输入框的placeholder\n */\n @Input() thyPlaceholder: string = '';\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled: boolean;\n\n /**\n * 最大值\n * @default Infinity\n */\n @Input() set thyMax(value: number) {\n this.innerMax = isNumber(value) ? value : this.innerMax;\n if (this.displayValue || this.displayValue === 0) {\n const val = Number(this.displayValue);\n this.disabledUp = val >= this.innerMax;\n }\n }\n\n get thyMax() {\n return this.innerMax;\n }\n\n /**\n * 最小值\n * @default -Infinity\n */\n @Input() set thyMin(value: number) {\n this.innerMin = isNumber(value) ? value : this.innerMin;\n if (this.displayValue || this.displayValue === 0) {\n const val = Number(this.displayValue);\n this.disabledDown = val <= this.innerMin;\n }\n }\n\n get thyMin() {\n return this.innerMin;\n }\n\n /**\n * 每次改变步数,可以为小数\n */\n @Input({ transform: numberAttribute }) thyStep = 1;\n\n /**\n * 改变步数时的延迟毫秒数,值越小变化的速度越快\n * @default 300\n */\n @Input({ transform: numberAttribute }) thyStepDelay = 300;\n\n /**\n * 输入框大小\n * @type xs | sm | md | lg\n */\n @Input() thySize: InputSize;\n\n /**\n * 数值精度\n */\n @Input() thyPrecision: number;\n\n /**\n * 数值后缀\n */\n @Input() thySuffix: string;\n\n /**\n * 焦点失去事件\n */\n @Output() thyBlur = new EventEmitter<Event>();\n\n /**\n * 焦点激活事件\n */\n @Output() thyFocus = new EventEmitter<Event>();\n\n /**\n * 上下箭头点击事件\n */\n @Output() thyStepChange = new EventEmitter<{ value: number; type: Type }>();\n\n private innerMax: number = Infinity;\n\n private innerMin: number = -Infinity;\n\n private isFocused: boolean;\n\n constructor() {\n super();\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.thyDisabled = isDisabled;\n }\n\n ngOnInit() {\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (this.thyDisabled) {\n return;\n }\n\n if (origin) {\n if (!this.isFocused) {\n this.inputElement.nativeElement.focus();\n }\n } else {\n if (this.isFocused) {\n this.displayValue = this.formatterValue(this.validValue);\n this.onTouchedFn();\n this.thyBlur.emit();\n this.isFocused = false;\n }\n }\n };\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.thySuffix && !changes.thySuffix.isFirstChange()) {\n const validValue = this.getCurrentValidValue(this.validValue);\n this.updateValidValue(validValue);\n this.displayValue = this.formatterValue(validValue);\n }\n }\n\n writeValue(value: number | string): void {\n const _value = this.getCurrentValidValue(value);\n this.updateValidValue(_value);\n this.displayValue = this.formatterValue(_value);\n this.cdr.markForCheck();\n }\n\n updateValidValue(value: number | string): void {\n if (this.isNotValid(value)) {\n this.validValue = '';\n } else if (this.validValue !== value) {\n this.validValue = value;\n }\n this.disabledUp = this.disabledDown = false;\n if (value || value === 0) {\n const val = Number(value);\n if (val >= this.thyMax) {\n this.disabledUp = true;\n }\n if (val <= this.thyMin) {\n this.disabledDown = true;\n }\n }\n }\n\n onModelChange(value: string): void {\n const parseValue = this.parser(value);\n if (this.isInputNumber(value)) {\n this.activeValue = value;\n } else {\n this.displayValue = parseValue;\n this.inputElement.nativeElement.value = parseValue;\n }\n const validValue = this.getCurrentValidValue(parseValue);\n if (`${this.validValue}` !== `${validValue}`) {\n this.updateValidValue(validValue);\n this.onChangeFn(validValue);\n }\n }\n\n onInputFocus(event?: Event) {\n this.activeValue = this.parser(this.displayValue.toString());\n if (!this.isFocused) {\n this.isFocused = true;\n this.thyFocus.emit(event);\n }\n }\n\n onKeyDown(e: KeyboardEvent): void {\n if (e.keyCode === UP_ARROW) {\n this.up(e);\n this.stop();\n } else if (e.keyCode === DOWN_ARROW) {\n this.down(e);\n this.stop();\n } else if (e.keyCode === ENTER) {\n this.displayValue = this.formatterValue(this.validValue);\n }\n }\n\n stop() {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n this.displayValue = this.toNumber(this.displayValue);\n }\n\n step(type: Type, e: MouseEvent | KeyboardEvent): void {\n this.stop();\n e.preventDefault();\n if (this.thyDisabled) {\n return;\n }\n const value = this.validValue as number;\n let val;\n if (type === Type.up) {\n val = this.upStep(value);\n } else if (type === Type.down) {\n val = this.downStep(value);\n }\n const outOfRange = val > this.thyMax || val < this.thyMin;\n val = this.getCurrentValidValue(val);\n this.updateValidValue(val);\n this.onChangeFn(this.validValue);\n this.thyStepChange.emit({ value: this.validValue as number, type });\n this.displayValue = this.formatterValue(val);\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(() => {\n (this[Type[type]] as (e: MouseEvent | KeyboardEvent) => void)(e);\n }, this.thyStepDelay);\n }\n\n upStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = this.getMaxPrecision(value);\n const result = ((precisionFactor * value + precisionFactor * this.thyStep) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n downStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = Math.abs(this.getMaxPrecision(value));\n const result = ((precisionFactor * value - precisionFactor * this.thyStep) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n getMaxPrecision(value: string | number): number {\n if (!isUndefinedOrNull(this.thyPrecision)) {\n return this.thyPrecision;\n }\n const stepPrecision = this.getPrecision(this.thyStep);\n const currentValuePrecision = this.getPrecision(value as number);\n if (!value) {\n return stepPrecision;\n }\n return Math.max(currentValuePrecision, stepPrecision);\n }\n\n getPrecisionFactor(activeValue: string | number): number {\n const precision = this.getMaxPrecision(activeValue);\n return Math.pow(10, precision);\n }\n\n getPrecision(value: number): number {\n const valueString = value.toString();\n // 0.0000000004.toString() = 4e10 => 10\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n let precision = 0;\n // 1.2222 => 4\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n }\n\n up(e: MouseEvent | KeyboardEvent) {\n this.inputElement.nativeElement.focus();\n this.step(Type.up, e);\n }\n\n down(e: MouseEvent | KeyboardEvent) {\n this.inputElement.nativeElement.focus();\n this.step(Type.down, e);\n }\n\n formatterValue(value: number | string) {\n const parseValue = this.parser(`${value}`);\n if (parseValue) {\n return this.thySuffix ? `${parseValue} ${this.thySuffix}` : parseValue;\n } else {\n return '';\n }\n }\n\n parser(value: string) {\n return value\n .trim()\n .replace(/。/g, '.')\n .replace(/[^\\w\\.-]+/g, '')\n .replace(this.thySuffix, '');\n }\n\n getCurrentValidValue(value: string | number): number | string {\n let val = value;\n if (value === '' || isUndefinedOrNull(value)) {\n return '';\n }\n val = parseFloat(value as string);\n if (this.isNotValid(val)) {\n val = this.validValue;\n }\n if ((val as number) < this.thyMin) {\n val = this.thyMin;\n }\n if ((val as number) > this.thyMax) {\n val = this.thyMax;\n }\n\n return this.toNumber(val);\n }\n\n isNotValid(num: string | number): boolean {\n return isNaN(num as number) || num === '' || num === null || !!(num && num.toString().indexOf('.') === num.toString().length - 1);\n }\n\n toNumber(num: string | number): number {\n if (this.isNotValid(num)) {\n return num as number;\n }\n const numStr = String(num);\n if (numStr.indexOf('.') >= 0 && !isUndefinedOrNull(this.thyPrecision)) {\n return Number(Number(num).toFixed(this.thyPrecision));\n }\n return Number(num);\n }\n\n isInputNumber(value: string) {\n return isFloat(value) || /^[-+Ee]$|^([-+.]?[0-9])*(([.]|[.eE])?[eE]?[+-]?)?$|^$/.test(value);\n }\n\n ngOnDestroy() {\n this.hostFocusControl.destroy();\n }\n}\n","<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputNumber } from './input-number.component';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyFormModule } from 'ngx-tethys/form';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyInputModule, ThyFormModule, ThyInputNumber],\n exports: [ThyInputNumber]\n})\nexport class ThyInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AA4BA,IAAK,IAGJ,CAAA;AAHD,CAAA,UAAK,IAAI,EAAA;AACL,IAAA,IAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,IAAA,CAAA,IAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACR,CAAC,EAHI,IAAI,KAAJ,IAAI,GAGR,EAAA,CAAA,CAAA,CAAA;AAED;;;;AAIG;AAkBG,MAAO,cACT,SAAQ,yCAAyC,CAAA;AAsCjD;;;AAGG;IACH,IAAa,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;YAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;SAC1C;KACJ;AAED,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AAED;;;AAGG;IACH,IAAa,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;YAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;SAC5C;KACJ;AAED,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AAkDD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AApHJ,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAMhC,IAAgB,CAAA,gBAAA,GAAG,mBAAmB,EAAE,CAAC;QAMjD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAQzB;;AAEG;QACM,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;AAwCrC;;AAEG;QACoC,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;AAEnD;;;AAGG;QACoC,IAAY,CAAA,YAAA,GAAG,GAAG,CAAC;AAkB1D;;AAEG;AACO,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAS,CAAC;AAE9C;;AAEG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAS,CAAC;AAE/C;;AAEG;AACO,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAiC,CAAC;QAEpE,IAAQ,CAAA,QAAA,GAAW,QAAQ,CAAC;QAE5B,IAAQ,CAAA,QAAA,GAAW,CAAC,QAAQ,CAAC;KAMpC;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KACjC;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,CAAC,MAAmB,KAAI;AACzD,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,OAAO;aACV;YAED,IAAI,MAAM,EAAE;AACR,gBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,oBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;iBAC3C;aACJ;iBAAM;AACH,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACzD,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBAC1B;aACJ;AACL,SAAC,CAAC;KACL;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9D,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;SACvD;KACJ;AAED,IAAA,UAAU,CAAC,KAAsB,EAAA;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED,IAAA,gBAAgB,CAAC,KAAsB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACxB;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;AAClC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SAC3B;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5C,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACpB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;AACD,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACpB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC5B;SACJ;KACJ;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;aAAM;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,GAAG,UAAU,CAAC;SACtD;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,CAAE,KAAK,CAAG,EAAA,UAAU,CAAE,CAAA,EAAE;AAC1C,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;SAC/B;KACJ;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;KACJ;AAED,IAAA,SAAS,CAAC,CAAgB,EAAA;AACtB,QAAA,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;AACxB,YAAA,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;AAAM,aAAA,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;AAAM,aAAA,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5D;KACJ;IAED,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACxD;IAED,IAAI,CAAC,IAAU,EAAE,CAA6B,EAAA;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC,CAAC,cAAc,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO;SACV;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAoB,CAAC;AACxC,QAAA,IAAI,GAAG,CAAC;AACR,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE;AAClB,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC5B;AAAM,aAAA,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC9B;AACD,QAAA,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1D,QAAA,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,UAAU,EAAE;YACZ,OAAO;SACV;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAA6C,CAAC,CAAC,CAAC,CAAC;AACrE,SAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACzB;AAED,IAAA,MAAM,CAAC,KAAa,EAAA;QAChB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,eAAe,GAAG,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACjH,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAChC;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;QAClB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACvD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,CAAC,CAAC,eAAe,GAAG,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACjH,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAChC;AAED,IAAA,eAAe,CAAC,KAAsB,EAAA;QAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAe,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,aAAa,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;KACzD;AAED,IAAA,kBAAkB,CAAC,WAA4B,EAAA;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;KAClC;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;AACtB,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;;QAErC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAChC,YAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACzE;QACD,IAAI,SAAS,GAAG,CAAC,CAAC;;QAElB,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC/B,YAAA,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACjE;AACD,QAAA,OAAO,SAAS,CAAC;KACpB;AAED,IAAA,EAAE,CAAC,CAA6B,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KACzB;AAED,IAAA,IAAI,CAAC,CAA6B,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC3B;AAED,IAAA,cAAc,CAAC,KAAsB,EAAA;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAG,EAAA,KAAK,CAAE,CAAA,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAG,EAAA,UAAU,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAA,CAAE,GAAG,UAAU,CAAC;SAC1E;aAAM;AACH,YAAA,OAAO,EAAE,CAAC;SACb;KACJ;AAED,IAAA,MAAM,CAAC,KAAa,EAAA;AAChB,QAAA,OAAO,KAAK;AACP,aAAA,IAAI,EAAE;AACN,aAAA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAClB,aAAA,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;KACpC;AAED,IAAA,oBAAoB,CAAC,KAAsB,EAAA;QACvC,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,KAAK,KAAK,EAAE,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;AAC1C,YAAA,OAAO,EAAE,CAAC;SACb;AACD,QAAA,GAAG,GAAG,UAAU,CAAC,KAAe,CAAC,CAAC;AAClC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;SACzB;AACD,QAAA,IAAK,GAAc,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/B,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;SACrB;AACD,QAAA,IAAK,GAAc,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/B,YAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;SACrB;AAED,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC7B;AAED,IAAA,UAAU,CAAC,GAAoB,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC,GAAa,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACrI;AAED,IAAA,QAAQ,CAAC,GAAoB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,OAAO,GAAa,CAAC;SACxB;AACD,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACnE,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;SACzD;AACD,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KACtB;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;QACvB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,uDAAuD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChG;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACnC;8GA1WQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EA0BH,qBAAqB,CAWrB,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,qBAAqB,uEAqCrB,eAAe,CAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAMf,eAAe,CA9FxB,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC7C,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;SACJ,EC/CL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iqCAsCA,4CDWc,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAE,QAAA,EAAA,uDAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,iIAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAM/D,cAAc,EAAA,UAAA,EAAA,CAAA;kBAjB1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAEjB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAC7C,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC,EACrG,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,kBAAkB;AACzB,wBAAA,iBAAiB,EAAE,UAAU;AAChC,qBAAA,EAAA,QAAA,EAAA,iqCAAA,EAAA,CAAA;wDAQqC,YAAY,EAAA,CAAA;sBAAjD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAoBS,YAAY,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAKlC,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAMuC,WAAW,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAM9B,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAgBO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAeiC,OAAO,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAME,YAAY,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAM5B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAKG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAKG,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MEzJE,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,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,oBAAoB,EAHnB,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,aACxG,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;AAEf,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,oBAAoB,EAHnB,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGzG,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,CAAC;oBACnH,OAAO,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
@@ -1,15 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Optional, Self, HostBinding, Input, forwardRef, EventEmitter, Component, ViewEncapsulation, Output, ContentChild, ViewChild, inject, DestroyRef, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
- import { NgIf, NgTemplateOutlet, CommonModule } from '@angular/common';
2
+ import { inject, ElementRef, Renderer2, Directive, HostBinding, Input, forwardRef, NgZone, EventEmitter, Component, ViewEncapsulation, Output, ContentChild, ViewChild, ChangeDetectorRef, DestroyRef, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
  import * as i1 from '@angular/forms';
5
- import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
5
+ import { NgControl, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
6
6
  import { useHostRenderer } from '@tethys/cdk/dom';
7
7
  import { take, throttleTime, filter, tap, switchMap } from 'rxjs/operators';
8
8
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
9
9
  import { ThyAutofocusDirective, ThySharedModule } from 'ngx-tethys/shared';
10
10
  import { coerceBooleanProperty } from 'ngx-tethys/util';
11
- import * as i1$1 from 'ngx-tethys/core';
12
- import { useHostFocusControl, mixinInitialized, mixinTabIndex, mixinDisabled, AbstractControlValueAccessor } from 'ngx-tethys/core';
11
+ import { ThyTranslate, useHostFocusControl, mixinInitialized, mixinTabIndex, mixinDisabled, AbstractControlValueAccessor } from 'ngx-tethys/core';
13
12
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
14
13
  import { of, Observable, Subject } from 'rxjs';
15
14
  import { ThyDividerModule } from 'ngx-tethys/divider';
@@ -26,6 +25,14 @@ const inputGroupSizeMap$1 = {
26
25
  * @order 10
27
26
  */
28
27
  class ThyInputDirective {
28
+ constructor() {
29
+ this.elementRef = inject(ElementRef);
30
+ this.render = inject(Renderer2);
31
+ this.control = inject(NgControl, { optional: true, self: true });
32
+ this.isFormControl = true;
33
+ this.initialized = false;
34
+ this.hostRenderer = useHostRenderer();
35
+ }
29
36
  /**
30
37
  * 输入框大小
31
38
  * @type 'xs' | 'sm' | 'md' | 'default' | 'lg'
@@ -45,18 +52,10 @@ class ThyInputDirective {
45
52
  get nativeElement() {
46
53
  return this.elementRef.nativeElement;
47
54
  }
48
- constructor(elementRef, render, control) {
49
- this.elementRef = elementRef;
50
- this.render = render;
51
- this.control = control;
52
- this.isFormControl = true;
53
- this.initialized = false;
54
- this.hostRenderer = useHostRenderer();
55
- }
56
55
  ngOnInit() {
57
56
  this.initialized = true;
58
57
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
59
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyInputDirective, isStandalone: true, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: { thySize: "thySize" }, host: { properties: { "class.form-control": "this.isFormControl" } }, exportAs: ["thyInput"], ngImport: i0 }); }
61
60
  }
62
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputDirective, decorators: [{
@@ -66,11 +65,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
66
65
  exportAs: 'thyInput',
67
66
  standalone: true
68
67
  }]
69
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.NgControl, decorators: [{
70
- type: Optional
71
- }, {
72
- type: Self
73
- }] }], propDecorators: { isFormControl: [{
68
+ }], propDecorators: { isFormControl: [{
74
69
  type: HostBinding,
75
70
  args: ['class.form-control']
76
71
  }], thySize: [{
@@ -90,16 +85,9 @@ const password = 'password';
90
85
  * @order 50
91
86
  */
92
87
  class ThyInput {
93
- /**
94
- * 输入框类型
95
- * @type 'number' | 'input'
96
- */
97
- set thyType(value) {
98
- this.type = value;
99
- }
100
- constructor(ngZone, elementRef) {
101
- this.ngZone = ngZone;
102
- this.elementRef = elementRef;
88
+ constructor() {
89
+ this.ngZone = inject(NgZone);
90
+ this.elementRef = inject(ElementRef);
103
91
  /**
104
92
  * Placeholder
105
93
  */
@@ -126,6 +114,13 @@ class ThyInput {
126
114
  this.onTouchedCallback = noop$1;
127
115
  this.onChangeCallback = noop$1;
128
116
  }
117
+ /**
118
+ * 输入框类型
119
+ * @type 'number' | 'input'
120
+ */
121
+ set thyType(value) {
122
+ this.type = value;
123
+ }
129
124
  ngOnInit() {
130
125
  this.ngZone.onStable.pipe(take(1)).subscribe(() => {
131
126
  if (this.isPassword(this.type)) {
@@ -168,8 +163,8 @@ class ThyInput {
168
163
  togglePasswordType() {
169
164
  this.type = this.isPassword(this.type) ? 'text' : 'password';
170
165
  }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInput, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
172
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyInput, isStandalone: true, selector: "thy-input", inputs: { placeholder: "placeholder", thySize: "thySize", thyAutofocus: ["thyAutofocus", "thyAutofocus", coerceBooleanProperty], thyType: "thyType", type: "type", thyLabelText: "thyLabelText", readonly: ["readonly", "readonly", coerceBooleanProperty] }, outputs: { focus: "focus", blur: "blur" }, host: { properties: { "class.form-control-active": "focused", "class.disabled": "disabled" }, classAttribute: "thy-input form-control" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], queries: [{ propertyName: "appendTemplate", first: true, predicate: ["append"], descendants: true }, { propertyName: "prependTemplate", first: true, predicate: ["prepend"], descendants: true }], viewQueries: [{ propertyName: "eyeTemplate", first: true, predicate: ["eye"], descendants: true, static: true }], ngImport: i0, template: "<div #prepend class=\"input-prepend\" *ngIf=\"prependTemplate\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n</div>\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n/>\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n<div #append class=\"input-append\" *ngIf=\"appendTemplate\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n</div>\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n <thy-icon *ngIf=\"isPassword(type)\" thyIconName=\"eye\"></thy-icon>\n <thy-icon *ngIf=\"!isPassword(type)\" thyIconName=\"eye-invisible\"></thy-icon>\n </a>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], encapsulation: i0.ViewEncapsulation.None }); }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyInput, isStandalone: true, selector: "thy-input", inputs: { placeholder: "placeholder", thySize: "thySize", thyAutofocus: ["thyAutofocus", "thyAutofocus", coerceBooleanProperty], thyType: "thyType", type: "type", thyLabelText: "thyLabelText", readonly: ["readonly", "readonly", coerceBooleanProperty] }, outputs: { focus: "focus", blur: "blur" }, host: { properties: { "class.form-control-active": "focused", "class.disabled": "disabled" }, classAttribute: "thy-input form-control" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], queries: [{ propertyName: "appendTemplate", first: true, predicate: ["append"], descendants: true }, { propertyName: "prependTemplate", first: true, predicate: ["prepend"], descendants: true }], viewQueries: [{ propertyName: "eyeTemplate", first: true, predicate: ["eye"], descendants: true, static: true }], ngImport: i0, template: "@if (prependTemplate) {\n <div #prepend class=\"input-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n />\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n@if (appendTemplate) {\n <div #append class=\"input-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n @if (isPassword(type)) {\n <thy-icon thyIconName=\"eye\"></thy-icon>\n }\n @if (!isPassword(type)) {\n <thy-icon thyIconName=\"eye-invisible\"></thy-icon>\n }\n </a>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], encapsulation: i0.ViewEncapsulation.None }); }
173
168
  }
174
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInput, decorators: [{
175
170
  type: Component,
@@ -177,8 +172,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
177
172
  class: 'thy-input form-control',
178
173
  '[class.form-control-active]': 'focused',
179
174
  '[class.disabled]': 'disabled'
180
- }, standalone: true, imports: [NgIf, NgTemplateOutlet, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyIcon], template: "<div #prepend class=\"input-prepend\" *ngIf=\"prependTemplate\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n</div>\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n/>\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n<div #append class=\"input-append\" *ngIf=\"appendTemplate\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n</div>\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n <thy-icon *ngIf=\"isPassword(type)\" thyIconName=\"eye\"></thy-icon>\n <thy-icon *ngIf=\"!isPassword(type)\" thyIconName=\"eye-invisible\"></thy-icon>\n </a>\n</ng-template>\n" }]
181
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }], propDecorators: { placeholder: [{
175
+ }, standalone: true, imports: [NgTemplateOutlet, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyIcon], template: "@if (prependTemplate) {\n <div #prepend class=\"input-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n />\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n@if (appendTemplate) {\n <div #append class=\"input-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n @if (isPassword(type)) {\n <thy-icon thyIconName=\"eye\"></thy-icon>\n }\n @if (!isPassword(type)) {\n <thy-icon thyIconName=\"eye-invisible\"></thy-icon>\n }\n </a>\n</ng-template>\n" }]
176
+ }], propDecorators: { placeholder: [{
182
177
  type: Input
183
178
  }], thySize: [{
184
179
  type: Input
@@ -220,6 +215,15 @@ const inputGroupSizeMap = {
220
215
  * @order 20
221
216
  */
222
217
  class ThyInputGroup {
218
+ constructor() {
219
+ this.thyTranslate = inject(ThyTranslate);
220
+ this.ngZone = inject(NgZone);
221
+ this.cdr = inject(ChangeDetectorRef);
222
+ this.hostRenderer = useHostRenderer();
223
+ this.hostFocusControl = useHostFocusControl();
224
+ this.destroyRef = inject(DestroyRef);
225
+ this.disabled = false;
226
+ }
223
227
  /**
224
228
  * 输入框上添加的后置文本
225
229
  */
@@ -261,15 +265,6 @@ class ThyInputGroup {
261
265
  this.hostRenderer.updateClass([]);
262
266
  }
263
267
  }
264
- constructor(thyTranslate, ngZone, cdr) {
265
- this.thyTranslate = thyTranslate;
266
- this.ngZone = ngZone;
267
- this.cdr = cdr;
268
- this.hostRenderer = useHostRenderer();
269
- this.hostFocusControl = useHostFocusControl();
270
- this.destroyRef = inject(DestroyRef);
271
- this.disabled = false;
272
- }
273
268
  ngOnInit() {
274
269
  this.hostFocusControl.focusChanged = (origin) => {
275
270
  if (origin) {
@@ -318,8 +313,8 @@ class ThyInputGroup {
318
313
  ngOnDestroy() {
319
314
  this.hostFocusControl.destroy();
320
315
  }
321
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputGroup, deps: [{ token: i1$1.ThyTranslate }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyInputGroup, isStandalone: true, selector: "thy-input-group", inputs: { thyAppendText: "thyAppendText", thyAppendTextTranslateKey: "thyAppendTextTranslateKey", thyPrependText: "thyPrependText", thyPrependTextTranslateKey: "thyPrependTextTranslateKey", thySize: "thySize" }, host: { properties: { "class.form-control": "prefixTemplate || suffixTemplate", "class.thy-input-group-with-prefix": "prefixTemplate", "class.thy-input-group-with-suffix": "suffixTemplate", "class.thy-input-group-with-textarea-suffix": "isTextareaSuffix", "class.thy-input-group-with-scroll-bar": "isTextareaSuffix && hasScrollbar", "class.disabled": "this.disabled" }, classAttribute: "thy-input-group" }, queries: [{ propertyName: "appendTemplate", first: true, predicate: ["append"], descendants: true }, { propertyName: "prependTemplate", first: true, predicate: ["prepend"], descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: ["prefix"], descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: ["suffix"], descendants: true }, { propertyName: "inputDirective", first: true, predicate: ThyInputDirective, descendants: true }], ngImport: i0, template: "<div class=\"input-group-prepend\" *ngIf=\"prependText\">\n <span class=\"input-group-text\">{{ prependText }}</span>\n</div>\n<div class=\"input-group-prepend\" *ngIf=\"prependTemplate\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n</div>\n\n<div class=\"input-group-prefix\" *ngIf=\"prefixTemplate\">\n <ng-template *ngTemplateOutlet=\"prefixTemplate\"></ng-template>\n</div>\n\n<ng-content></ng-content>\n\n<div class=\"input-group-append\" *ngIf=\"appendText\">\n <span class=\"input-group-text\">{{ appendText }}</span>\n</div>\n<div class=\"input-group-append\" *ngIf=\"appendTemplate\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n</div>\n\n<div class=\"input-group-suffix\" *ngIf=\"suffixTemplate\">\n <ng-template *ngTemplateOutlet=\"suffixTemplate\"></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
316
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
317
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyInputGroup, isStandalone: true, selector: "thy-input-group", inputs: { thyAppendText: "thyAppendText", thyAppendTextTranslateKey: "thyAppendTextTranslateKey", thyPrependText: "thyPrependText", thyPrependTextTranslateKey: "thyPrependTextTranslateKey", thySize: "thySize" }, host: { properties: { "class.form-control": "prefixTemplate || suffixTemplate", "class.thy-input-group-with-prefix": "prefixTemplate", "class.thy-input-group-with-suffix": "suffixTemplate", "class.thy-input-group-with-textarea-suffix": "isTextareaSuffix", "class.thy-input-group-with-scroll-bar": "isTextareaSuffix && hasScrollbar", "class.disabled": "this.disabled" }, classAttribute: "thy-input-group" }, queries: [{ propertyName: "appendTemplate", first: true, predicate: ["append"], descendants: true }, { propertyName: "prependTemplate", first: true, predicate: ["prepend"], descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: ["prefix"], descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: ["suffix"], descendants: true }, { propertyName: "inputDirective", first: true, predicate: ThyInputDirective, descendants: true }], ngImport: i0, template: "@if (prependText) {\n <div class=\"input-group-prepend\">\n <span class=\"input-group-text\">{{ prependText }}</span>\n </div>\n}\n@if (prependTemplate) {\n <div class=\"input-group-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n\n@if (prefixTemplate) {\n <div class=\"input-group-prefix\">\n <ng-template *ngTemplateOutlet=\"prefixTemplate\"></ng-template>\n </div>\n}\n\n<ng-content></ng-content>\n\n@if (appendText) {\n <div class=\"input-group-append\">\n <span class=\"input-group-text\">{{ appendText }}</span>\n </div>\n}\n@if (appendTemplate) {\n <div class=\"input-group-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n@if (suffixTemplate) {\n <div class=\"input-group-suffix\">\n <ng-template *ngTemplateOutlet=\"suffixTemplate\"></ng-template>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
323
318
  }
324
319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputGroup, decorators: [{
325
320
  type: Component,
@@ -330,8 +325,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
330
325
  '[class.thy-input-group-with-suffix]': 'suffixTemplate',
331
326
  '[class.thy-input-group-with-textarea-suffix]': 'isTextareaSuffix',
332
327
  '[class.thy-input-group-with-scroll-bar]': 'isTextareaSuffix && hasScrollbar'
333
- }, standalone: true, imports: [NgIf, NgTemplateOutlet], template: "<div class=\"input-group-prepend\" *ngIf=\"prependText\">\n <span class=\"input-group-text\">{{ prependText }}</span>\n</div>\n<div class=\"input-group-prepend\" *ngIf=\"prependTemplate\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n</div>\n\n<div class=\"input-group-prefix\" *ngIf=\"prefixTemplate\">\n <ng-template *ngTemplateOutlet=\"prefixTemplate\"></ng-template>\n</div>\n\n<ng-content></ng-content>\n\n<div class=\"input-group-append\" *ngIf=\"appendText\">\n <span class=\"input-group-text\">{{ appendText }}</span>\n</div>\n<div class=\"input-group-append\" *ngIf=\"appendTemplate\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n</div>\n\n<div class=\"input-group-suffix\" *ngIf=\"suffixTemplate\">\n <ng-template *ngTemplateOutlet=\"suffixTemplate\"></ng-template>\n</div>\n" }]
334
- }], ctorParameters: () => [{ type: i1$1.ThyTranslate }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
328
+ }, standalone: true, imports: [NgTemplateOutlet], template: "@if (prependText) {\n <div class=\"input-group-prepend\">\n <span class=\"input-group-text\">{{ prependText }}</span>\n </div>\n}\n@if (prependTemplate) {\n <div class=\"input-group-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n\n@if (prefixTemplate) {\n <div class=\"input-group-prefix\">\n <ng-template *ngTemplateOutlet=\"prefixTemplate\"></ng-template>\n </div>\n}\n\n<ng-content></ng-content>\n\n@if (appendText) {\n <div class=\"input-group-append\">\n <span class=\"input-group-text\">{{ appendText }}</span>\n </div>\n}\n@if (appendTemplate) {\n <div class=\"input-group-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n@if (suffixTemplate) {\n <div class=\"input-group-suffix\">\n <ng-template *ngTemplateOutlet=\"suffixTemplate\"></ng-template>\n </div>\n}\n" }]
329
+ }], propDecorators: { disabled: [{
335
330
  type: HostBinding,
336
331
  args: ['class.disabled']
337
332
  }], thyAppendText: [{
@@ -390,10 +385,10 @@ class ThyInputSearch extends _MixinBase {
390
385
  this.iconPosition = value || 'before';
391
386
  this.updateClasses();
392
387
  }
393
- constructor(cdr, elementRef) {
388
+ constructor() {
394
389
  super();
395
- this.cdr = cdr;
396
- this.elementRef = elementRef;
390
+ this.cdr = inject(ChangeDetectorRef);
391
+ this.elementRef = inject(ElementRef);
397
392
  this.hostRenderer = useHostRenderer();
398
393
  this.hostFocusControl = useHostFocusControl();
399
394
  this.disabled = false;
@@ -468,8 +463,8 @@ class ThyInputSearch extends _MixinBase {
468
463
  ngOnDestroy() {
469
464
  this.hostFocusControl.destroy();
470
465
  }
471
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputSearch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
472
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyInputSearch, isStandalone: true, selector: "thy-input-search", inputs: { name: "name", placeholder: "placeholder", thyTheme: "thyTheme", thySearchFocus: ["thySearchFocus", "thySearchFocus", coerceBooleanProperty], thyIconPosition: "thyIconPosition", thySize: "thySize" }, outputs: { clear: "clear", thyClear: "thyClear" }, host: { properties: { "class.thy-input-search-ellipse": "thyTheme === \"ellipse\"", "class.thy-input-search-transparent": "thyTheme === \"transparent\"", "class.thy-input-search-before-with-clear": "searchText && iconPosition === \"before\"", "class.form-control-active": "focused", "attr.tabindex": "tabIndex" }, classAttribute: "thy-input form-control thy-input-search" }, providers: [CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<thy-icon class=\"input-prepend\" *ngIf=\"iconPosition === 'before'\" thyIconName=\"search\"></thy-icon>\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n<ng-container *ngIf=\"iconPosition === 'after'\">\n <div class=\"input-append input-append-divider\">\n <a class=\"close\" *ngIf=\"searchText; else onlyIcon\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <ng-template #onlyIcon>\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n </ng-template>\n </div>\n</ng-container>\n\n<a *ngIf=\"searchText && iconPosition === 'before'\" class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n</a>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
466
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputSearch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
467
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyInputSearch, isStandalone: true, selector: "thy-input-search", inputs: { name: "name", placeholder: "placeholder", thyTheme: "thyTheme", thySearchFocus: ["thySearchFocus", "thySearchFocus", coerceBooleanProperty], thyIconPosition: "thyIconPosition", thySize: "thySize" }, outputs: { clear: "clear", thyClear: "thyClear" }, host: { properties: { "class.thy-input-search-ellipse": "thyTheme === \"ellipse\"", "class.thy-input-search-transparent": "thyTheme === \"transparent\"", "class.thy-input-search-before-with-clear": "searchText && iconPosition === \"before\"", "class.form-control-active": "focused", "attr.tabindex": "tabIndex" }, classAttribute: "thy-input form-control thy-input-search" }, providers: [CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "@if (iconPosition === 'before') {\n <thy-icon class=\"input-prepend\" thyIconName=\"search\"></thy-icon>\n}\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n@if (iconPosition === 'after') {\n <div class=\"input-append input-append-divider\">\n @if (searchText) {\n <a class=\"close\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n } @else {\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n }\n </div>\n}\n\n@if (searchText && iconPosition === 'before') {\n <a class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
473
468
  }
474
469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputSearch, decorators: [{
475
470
  type: Component,
@@ -480,8 +475,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
480
475
  '[class.thy-input-search-before-with-clear]': 'searchText && iconPosition === "before"',
481
476
  '[class.form-control-active]': 'focused',
482
477
  '[attr.tabindex]': 'tabIndex'
483
- }, standalone: true, imports: [NgIf, ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule], template: "<thy-icon class=\"input-prepend\" *ngIf=\"iconPosition === 'before'\" thyIconName=\"search\"></thy-icon>\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n<ng-container *ngIf=\"iconPosition === 'after'\">\n <div class=\"input-append input-append-divider\">\n <a class=\"close\" *ngIf=\"searchText; else onlyIcon\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <ng-template #onlyIcon>\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n </ng-template>\n </div>\n</ng-container>\n\n<a *ngIf=\"searchText && iconPosition === 'before'\" class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n</a>\n" }]
484
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { inputElement: [{
478
+ }, standalone: true, imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule], template: "@if (iconPosition === 'before') {\n <thy-icon class=\"input-prepend\" thyIconName=\"search\"></thy-icon>\n}\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n@if (iconPosition === 'after') {\n <div class=\"input-append input-append-divider\">\n @if (searchText) {\n <a class=\"close\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n } @else {\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n }\n </div>\n}\n\n@if (searchText && iconPosition === 'before') {\n <a class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n" }]
479
+ }], ctorParameters: () => [], propDecorators: { inputElement: [{
485
480
  type: ViewChild,
486
481
  args: ['input', { static: true }]
487
482
  }], name: [{
@@ -517,9 +512,9 @@ class ThyInputCount {
517
512
  this.hasInput = true;
518
513
  this.thyInput$.next(value);
519
514
  }
520
- constructor(changeDetectorRef, inputGroup) {
521
- this.changeDetectorRef = changeDetectorRef;
522
- this.inputGroup = inputGroup;
515
+ constructor() {
516
+ this.changeDetectorRef = inject(ChangeDetectorRef);
517
+ this.inputGroup = inject(ThyInputGroup, { optional: true });
523
518
  this.destroyRef = inject(DestroyRef);
524
519
  this.hasInput = false;
525
520
  this.inputLength = 0;
@@ -546,7 +541,7 @@ class ThyInputCount {
546
541
  this.thyInput$.next(this.inputGroup.inputDirective);
547
542
  }
548
543
  }
549
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputCount, deps: [{ token: i0.ChangeDetectorRef }, { token: ThyInputGroup, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
544
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputCount, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
550
545
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyInputCount, isStandalone: true, selector: "thy-input-count", inputs: { thyInput: "thyInput" }, host: { classAttribute: "thy-input-count text-muted" }, ngImport: i0, template: '{{inputLength}} / {{maxLength}}', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
551
546
  }
552
547
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputCount, decorators: [{
@@ -560,9 +555,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
560
555
  },
561
556
  standalone: true
562
557
  }]
563
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: ThyInputGroup, decorators: [{
564
- type: Optional
565
- }] }], propDecorators: { thyInput: [{
558
+ }], ctorParameters: () => [], propDecorators: { thyInput: [{
566
559
  type: Input
567
560
  }] } });
568
561