ngx-tethys 18.0.0 → 18.0.2

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 (614) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/action/styles/action.scss +1 -1
  3. package/action/styles/mixin.scss +8 -3
  4. package/alert/styles/mixin.scss +3 -10
  5. package/back-top/examples/custom/custom.scss +3 -1
  6. package/badge/examples/basic/basic.component.scss +3 -1
  7. package/badge/examples/custom-color/custom-color.component.scss +3 -1
  8. package/badge/examples/overflow/overflow.component.scss +3 -1
  9. package/badge/examples/state-point/state-point.component.scss +3 -1
  10. package/badge/examples/type/type.component.scss +3 -1
  11. package/badge/styles/badge.scss +1 -1
  12. package/badge/styles/mixin.scss +2 -16
  13. package/button/styles/button.scss +8 -7
  14. package/button/styles/mixin.scss +22 -15
  15. package/carousel/styles/variables.scss +1 -1
  16. package/cascader/cascader.service.d.ts +1 -1
  17. package/cascader/styles/cascader.scss +3 -6
  18. package/collapse/examples/custom/custom.component.scss +3 -1
  19. package/color-picker/parts/inputs/inputs.component.d.ts +1 -0
  20. package/color-picker/styles/inputs.scss +8 -1
  21. package/color-picker/styles/saturation.scss +3 -3
  22. package/core/debounce-time.d.ts +8 -0
  23. package/core/index.d.ts +1 -0
  24. package/date-picker/styles/decade-panel.scss +1 -1
  25. package/date-picker/styles/mixin.scss +1 -1
  26. package/date-picker/styles/picker.scss +3 -0
  27. package/date-picker/styles/variables.scss +1 -4
  28. package/date-picker/styles/year-panel.scss +1 -1
  29. package/drag-drop/examples/tree-drag/tree-drag.component.scss +0 -1
  30. package/dropdown/styles/dropdown.scss +1 -1
  31. package/esm2022/action/action.component.mjs +4 -4
  32. package/esm2022/action/action.module.mjs +4 -4
  33. package/esm2022/action/actions.component.mjs +3 -3
  34. package/esm2022/affix/affix.component.mjs +4 -4
  35. package/esm2022/affix/affix.module.mjs +4 -4
  36. package/esm2022/alert/alert.component.mjs +3 -3
  37. package/esm2022/alert/alert.directive.mjs +3 -3
  38. package/esm2022/alert/alert.module.mjs +4 -4
  39. package/esm2022/anchor/anchor-link.component.mjs +4 -4
  40. package/esm2022/anchor/anchor.component.mjs +4 -4
  41. package/esm2022/anchor/anchor.module.mjs +4 -4
  42. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +3 -3
  43. package/esm2022/arrow-switcher/module.mjs +4 -4
  44. package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
  45. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +3 -3
  46. package/esm2022/autocomplete/module.mjs +4 -4
  47. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +3 -3
  48. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +3 -3
  49. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +3 -3
  50. package/esm2022/avatar/avatar.component.mjs +4 -4
  51. package/esm2022/avatar/avatar.module.mjs +4 -4
  52. package/esm2022/avatar/avatar.pipe.mjs +9 -9
  53. package/esm2022/avatar/avatar.service.mjs +3 -3
  54. package/esm2022/back-top/back-top.component.mjs +3 -3
  55. package/esm2022/back-top/back-top.module.mjs +4 -4
  56. package/esm2022/badge/badge.component.mjs +3 -3
  57. package/esm2022/badge/badge.module.mjs +4 -4
  58. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +4 -4
  59. package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
  60. package/esm2022/breadcrumb/module.mjs +4 -4
  61. package/esm2022/button/button-group.component.mjs +3 -3
  62. package/esm2022/button/button-icon.component.mjs +3 -3
  63. package/esm2022/button/button.component.mjs +4 -4
  64. package/esm2022/button/button.module.mjs +4 -4
  65. package/esm2022/calendar/calendar-cells.mjs +6 -6
  66. package/esm2022/calendar/calendar-header.component.mjs +3 -3
  67. package/esm2022/calendar/calendar.component.mjs +3 -3
  68. package/esm2022/calendar/module.mjs +4 -4
  69. package/esm2022/card/card.component.mjs +3 -3
  70. package/esm2022/card/card.module.mjs +4 -4
  71. package/esm2022/card/content.component.mjs +3 -3
  72. package/esm2022/card/header.component.mjs +3 -3
  73. package/esm2022/carousel/carousel-item.directive.mjs +4 -4
  74. package/esm2022/carousel/carousel.component.mjs +7 -7
  75. package/esm2022/carousel/carousel.service.mjs +4 -4
  76. package/esm2022/carousel/module.mjs +4 -4
  77. package/esm2022/cascader/cascader-li.component.mjs +3 -3
  78. package/esm2022/cascader/cascader-search-option.component.mjs +6 -6
  79. package/esm2022/cascader/cascader.component.mjs +7 -7
  80. package/esm2022/cascader/cascader.service.mjs +9 -21
  81. package/esm2022/cascader/module.mjs +4 -4
  82. package/esm2022/checkbox/checkbox.component.mjs +3 -3
  83. package/esm2022/checkbox/module.mjs +4 -4
  84. package/esm2022/collapse/collapse-item.component.mjs +4 -4
  85. package/esm2022/collapse/collapse.component.mjs +3 -3
  86. package/esm2022/collapse/module.mjs +4 -4
  87. package/esm2022/color-picker/color-picker-custom-panel.component.mjs +3 -3
  88. package/esm2022/color-picker/color-picker-panel.component.mjs +3 -3
  89. package/esm2022/color-picker/color-picker.component.mjs +4 -4
  90. package/esm2022/color-picker/coordinates.directive.mjs +3 -3
  91. package/esm2022/color-picker/helpers/rgba.class.mjs +1 -1
  92. package/esm2022/color-picker/module.mjs +4 -4
  93. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +3 -3
  94. package/esm2022/color-picker/parts/hue/hue.component.mjs +3 -3
  95. package/esm2022/color-picker/parts/indicator/indicator.component.mjs +3 -3
  96. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +20 -10
  97. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +3 -3
  98. package/esm2022/comment/comment-actions.directive.mjs +3 -3
  99. package/esm2022/comment/comment-content.directive.mjs +3 -3
  100. package/esm2022/comment/comment.component.mjs +3 -3
  101. package/esm2022/comment/comment.module.mjs +4 -4
  102. package/esm2022/copy/copy.directive.mjs +3 -3
  103. package/esm2022/copy/module.mjs +4 -4
  104. package/esm2022/core/click-positioner.mjs +3 -3
  105. package/esm2022/core/debounce-time.mjs +11 -0
  106. package/esm2022/core/index.mjs +2 -1
  107. package/esm2022/core/overlay/abstract-overlay-container.mjs +1 -1
  108. package/esm2022/core/overlay/overlay.directive.mjs +1 -1
  109. package/esm2022/core/overlay/portal-directives.mjs +3 -3
  110. package/esm2022/core/scroll.mjs +4 -4
  111. package/esm2022/core/store/store.mjs +3 -3
  112. package/esm2022/core/translate.mjs +3 -3
  113. package/esm2022/core/update-host-class.service.mjs +3 -3
  114. package/esm2022/date-picker/abstract-picker.component.mjs +3 -3
  115. package/esm2022/date-picker/abstract-picker.directive.mjs +4 -4
  116. package/esm2022/date-picker/base-picker.component.mjs +4 -4
  117. package/esm2022/date-picker/date-helper.service.mjs +3 -3
  118. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  119. package/esm2022/date-picker/date-picker.directive.mjs +3 -3
  120. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  121. package/esm2022/date-picker/date-picker.service.mjs +3 -3
  122. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +3 -3
  123. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -3
  124. package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -3
  125. package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -3
  126. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +3 -3
  127. package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
  128. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +3 -3
  129. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
  130. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +3 -3
  131. package/esm2022/date-picker/lib/lib-packer.module.mjs +4 -4
  132. package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -3
  133. package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -3
  134. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +4 -4
  135. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +3 -3
  136. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +3 -3
  137. package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
  138. package/esm2022/date-picker/lib/year/year-table.component.mjs +3 -3
  139. package/esm2022/date-picker/month-picker.component.mjs +4 -4
  140. package/esm2022/date-picker/picker.component.mjs +5 -5
  141. package/esm2022/date-picker/picker.pipes.mjs +12 -12
  142. package/esm2022/date-picker/picker.validators.mjs +6 -6
  143. package/esm2022/date-picker/quarter-picker.component.mjs +4 -4
  144. package/esm2022/date-picker/range-picker.component.mjs +4 -4
  145. package/esm2022/date-picker/range-picker.directive.mjs +3 -3
  146. package/esm2022/date-picker/week-picker.component.mjs +4 -4
  147. package/esm2022/date-picker/year-picker.component.mjs +4 -4
  148. package/esm2022/date-range/date-range.component.mjs +4 -4
  149. package/esm2022/date-range/module.mjs +4 -4
  150. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +3 -3
  151. package/esm2022/dialog/body/dialog-body.component.mjs +3 -3
  152. package/esm2022/dialog/confirm/confirm.component.mjs +3 -3
  153. package/esm2022/dialog/dialog-container.component.mjs +3 -3
  154. package/esm2022/dialog/dialog.module.mjs +4 -4
  155. package/esm2022/dialog/dialog.service.mjs +3 -3
  156. package/esm2022/dialog/footer/dialog-footer.component.mjs +3 -3
  157. package/esm2022/dialog/header/dialog-header.component.mjs +3 -3
  158. package/esm2022/divider/divider.component.mjs +3 -3
  159. package/esm2022/divider/divider.module.mjs +4 -4
  160. package/esm2022/dot/dot.component.mjs +4 -4
  161. package/esm2022/dot/dot.module.mjs +4 -4
  162. package/esm2022/drag-drop/drag-content.directive.mjs +4 -4
  163. package/esm2022/drag-drop/drag-drop.service.mjs +3 -3
  164. package/esm2022/drag-drop/drag-handle.directive.mjs +4 -4
  165. package/esm2022/drag-drop/drag.directive.mjs +3 -3
  166. package/esm2022/drag-drop/drop-container.directive.mjs +3 -3
  167. package/esm2022/drag-drop/module.mjs +4 -4
  168. package/esm2022/dropdown/dropdown-active.directive.mjs +4 -4
  169. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +21 -21
  170. package/esm2022/dropdown/dropdown-menu.component.mjs +12 -12
  171. package/esm2022/dropdown/dropdown-submenu.component.mjs +4 -4
  172. package/esm2022/dropdown/dropdown.directive.mjs +3 -3
  173. package/esm2022/dropdown/module.mjs +4 -4
  174. package/esm2022/empty/empty.component.mjs +3 -3
  175. package/esm2022/empty/empty.config.mjs +3 -3
  176. package/esm2022/empty/empty.module.mjs +4 -4
  177. package/esm2022/flexible-text/flexible-text.component.mjs +3 -3
  178. package/esm2022/flexible-text/flexible-text.module.mjs +4 -4
  179. package/esm2022/form/form-group-error/form-group-error.component.mjs +3 -3
  180. package/esm2022/form/form-group-label.directive.mjs +3 -3
  181. package/esm2022/form/form-group.component.mjs +4 -4
  182. package/esm2022/form/form-submit.directive.mjs +3 -3
  183. package/esm2022/form/form-validator-loader.mjs +3 -3
  184. package/esm2022/form/form-validator.service.mjs +3 -3
  185. package/esm2022/form/form.directive.mjs +3 -3
  186. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
  187. package/esm2022/form/module.mjs +4 -4
  188. package/esm2022/form/validator/confirm-validator.directive.mjs +3 -3
  189. package/esm2022/form/validator/max-validator.directive.mjs +3 -3
  190. package/esm2022/form/validator/min-validator.directive.mjs +3 -3
  191. package/esm2022/form/validator/unique-validator.directive.mjs +4 -4
  192. package/esm2022/fullscreen/fullscreen-launch.directive.mjs +3 -3
  193. package/esm2022/fullscreen/fullscreen-ref.mjs +3 -2
  194. package/esm2022/fullscreen/fullscreen.component.mjs +4 -4
  195. package/esm2022/fullscreen/fullscreen.module.mjs +4 -4
  196. package/esm2022/fullscreen/fullscreen.service.mjs +4 -4
  197. package/esm2022/grid/flex.mjs +12 -12
  198. package/esm2022/grid/module.mjs +4 -4
  199. package/esm2022/grid/thy-col.directive.mjs +3 -3
  200. package/esm2022/grid/thy-grid-item.component.mjs +4 -4
  201. package/esm2022/grid/thy-grid.component.mjs +7 -7
  202. package/esm2022/grid/thy-row.directive.mjs +3 -3
  203. package/esm2022/guider/guider-hint/guider-hint.component.mjs +3 -3
  204. package/esm2022/guider/guider-manager.mjs +3 -3
  205. package/esm2022/guider/guider.directive.mjs +4 -4
  206. package/esm2022/guider/guider.module.mjs +4 -4
  207. package/esm2022/guider/guider.service.mjs +3 -3
  208. package/esm2022/icon/icon-registry.mjs +4 -4
  209. package/esm2022/icon/icon.component.mjs +4 -4
  210. package/esm2022/icon/icon.module.mjs +4 -4
  211. package/esm2022/image/image-group.component.mjs +4 -4
  212. package/esm2022/image/image.directive.mjs +4 -4
  213. package/esm2022/image/image.service.mjs +3 -3
  214. package/esm2022/image/module.mjs +4 -4
  215. package/esm2022/image/preview/image-preview.component.mjs +4 -4
  216. package/esm2022/input/input-count.component.mjs +4 -4
  217. package/esm2022/input/input-group.component.mjs +4 -4
  218. package/esm2022/input/input-search.component.mjs +4 -4
  219. package/esm2022/input/input.component.mjs +4 -4
  220. package/esm2022/input/input.directive.mjs +4 -4
  221. package/esm2022/input/module.mjs +4 -4
  222. package/esm2022/input-number/input-number.component.mjs +3 -3
  223. package/esm2022/input-number/module.mjs +4 -4
  224. package/esm2022/layout/content-main.component.mjs +6 -6
  225. package/esm2022/layout/content-section.component.mjs +6 -6
  226. package/esm2022/layout/content.component.mjs +6 -6
  227. package/esm2022/layout/header.component.mjs +6 -6
  228. package/esm2022/layout/layout.component.mjs +6 -6
  229. package/esm2022/layout/layout.module.mjs +4 -4
  230. package/esm2022/layout/sidebar-content.component.mjs +6 -6
  231. package/esm2022/layout/sidebar-footer.component.mjs +6 -6
  232. package/esm2022/layout/sidebar-header.component.mjs +6 -6
  233. package/esm2022/layout/sidebar.component.mjs +7 -7
  234. package/esm2022/list/list-item-meta.component.mjs +3 -3
  235. package/esm2022/list/list-item.component.mjs +3 -3
  236. package/esm2022/list/list.component.mjs +3 -3
  237. package/esm2022/list/list.module.mjs +4 -4
  238. package/esm2022/list/selection/selection-list.mjs +3 -3
  239. package/esm2022/loading/loading.component.mjs +3 -3
  240. package/esm2022/loading/loading.module.mjs +4 -4
  241. package/esm2022/mention/mention.directive.mjs +3 -3
  242. package/esm2022/mention/mention.module.mjs +4 -4
  243. package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
  244. package/esm2022/menu/divider/menu-divider.component.mjs +3 -3
  245. package/esm2022/menu/group/menu-group.component.mjs +3 -3
  246. package/esm2022/menu/item/action/menu-item-action.component.mjs +4 -4
  247. package/esm2022/menu/item/icon/menu-item-icon.component.mjs +3 -3
  248. package/esm2022/menu/item/menu-item.component.mjs +3 -3
  249. package/esm2022/menu/item/name/menu-item-name.component.mjs +3 -3
  250. package/esm2022/menu/menu.component.mjs +3 -3
  251. package/esm2022/menu/menu.module.mjs +4 -4
  252. package/esm2022/message/abstract/abstract-message-container.component.mjs +4 -4
  253. package/esm2022/message/abstract/abstract-message.component.mjs +4 -4
  254. package/esm2022/message/abstract/abstract-message.service.mjs +1 -1
  255. package/esm2022/message/message-container.component.mjs +3 -3
  256. package/esm2022/message/message-queue.service.mjs +3 -3
  257. package/esm2022/message/message.component.mjs +3 -3
  258. package/esm2022/message/message.service.mjs +3 -3
  259. package/esm2022/message/module.mjs +4 -4
  260. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +3 -3
  261. package/esm2022/nav/icon-nav/icon-nav.component.mjs +3 -3
  262. package/esm2022/nav/nav-ink-bar.directive.mjs +3 -3
  263. package/esm2022/nav/nav-item.directive.mjs +4 -4
  264. package/esm2022/nav/nav.component.mjs +3 -3
  265. package/esm2022/nav/nav.module.mjs +4 -4
  266. package/esm2022/nav/nav.pipe.mjs +3 -3
  267. package/esm2022/notify/module.mjs +4 -4
  268. package/esm2022/notify/notify-container.component.mjs +3 -3
  269. package/esm2022/notify/notify-queue.service.mjs +3 -3
  270. package/esm2022/notify/notify.component.mjs +5 -5
  271. package/esm2022/notify/notify.service.mjs +3 -3
  272. package/esm2022/pagination/pagination.component.mjs +29 -29
  273. package/esm2022/pagination/pagination.module.mjs +4 -4
  274. package/esm2022/pagination/pagination.pipe.mjs +3 -3
  275. package/esm2022/popover/body/popover-body.component.mjs +3 -3
  276. package/esm2022/popover/header/popover-header.component.mjs +4 -4
  277. package/esm2022/popover/module.mjs +4 -4
  278. package/esm2022/popover/popover-container.component.mjs +3 -3
  279. package/esm2022/popover/popover.directive.mjs +3 -3
  280. package/esm2022/popover/popover.service.mjs +3 -3
  281. package/esm2022/progress/progress-circle.component.mjs +3 -3
  282. package/esm2022/progress/progress-strip.component.mjs +3 -3
  283. package/esm2022/progress/progress.component.mjs +3 -3
  284. package/esm2022/progress/progress.module.mjs +4 -4
  285. package/esm2022/property/module.mjs +4 -4
  286. package/esm2022/property/properties.component.mjs +3 -3
  287. package/esm2022/property/property-item.component.mjs +4 -4
  288. package/esm2022/property-operation/group/property-operation-group.component.mjs +3 -3
  289. package/esm2022/property-operation/module.mjs +4 -4
  290. package/esm2022/property-operation/property-operation.component.mjs +4 -4
  291. package/esm2022/radio/button/radio-button.component.mjs +3 -3
  292. package/esm2022/radio/group/radio-group.component.mjs +3 -3
  293. package/esm2022/radio/module.mjs +4 -4
  294. package/esm2022/radio/radio.component.mjs +3 -3
  295. package/esm2022/rate/module.mjs +4 -4
  296. package/esm2022/rate/rate-item.component.mjs +3 -3
  297. package/esm2022/rate/rate.component.mjs +3 -3
  298. package/esm2022/resizable/module.mjs +4 -4
  299. package/esm2022/resizable/resizable.directive.mjs +3 -3
  300. package/esm2022/resizable/resizable.service.mjs +4 -4
  301. package/esm2022/resizable/resize-handle.component.mjs +4 -4
  302. package/esm2022/resizable/resize-handles.component.mjs +3 -3
  303. package/esm2022/result/result.component.mjs +3 -3
  304. package/esm2022/result/result.module.mjs +4 -4
  305. package/esm2022/segment/segment-item.component.mjs +3 -3
  306. package/esm2022/segment/segment.component.mjs +4 -4
  307. package/esm2022/segment/segment.module.mjs +4 -4
  308. package/esm2022/select/custom-select/custom-select.component.mjs +3 -3
  309. package/esm2022/select/module.mjs +4 -4
  310. package/esm2022/select/native-select/native-select.component.mjs +3 -3
  311. package/esm2022/shared/base-form-check.component.mjs +4 -4
  312. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +4 -4
  313. package/esm2022/shared/directives/thy-autofocus.directive.mjs +4 -4
  314. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +4 -4
  315. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +4 -4
  316. package/esm2022/shared/directives/thy-drag-drop.directive.mjs +4 -4
  317. package/esm2022/shared/directives/thy-enter.directive.mjs +4 -4
  318. package/esm2022/shared/directives/thy-scroll.directive.mjs +4 -4
  319. package/esm2022/shared/directives/thy-show.mjs +4 -4
  320. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +3 -3
  321. package/esm2022/shared/directives/view-outlet.directive.mjs +4 -4
  322. package/esm2022/shared/ng-transclude.directive.mjs +3 -3
  323. package/esm2022/shared/option/group/option-group.component.mjs +4 -4
  324. package/esm2022/shared/option/list-option/list-option.component.mjs +3 -3
  325. package/esm2022/shared/option/module.mjs +4 -4
  326. package/esm2022/shared/option/option-group.component.mjs +3 -3
  327. package/esm2022/shared/option/option.component.mjs +4 -4
  328. package/esm2022/shared/option/options-container.component.mjs +3 -3
  329. package/esm2022/shared/select/module.mjs +4 -4
  330. package/esm2022/shared/select/select-control/select-control.component.mjs +3 -3
  331. package/esm2022/shared/shared.module.mjs +4 -4
  332. package/esm2022/skeleton/module.mjs +4 -4
  333. package/esm2022/skeleton/skeleton-circle.component.mjs +3 -3
  334. package/esm2022/skeleton/skeleton-rectangle.component.mjs +3 -3
  335. package/esm2022/skeleton/skeleton.component.mjs +3 -3
  336. package/esm2022/skeleton/stylized/bullet-list.component.mjs +3 -3
  337. package/esm2022/skeleton/stylized/list.component.mjs +3 -3
  338. package/esm2022/skeleton/stylized/paragraph.component.mjs +3 -3
  339. package/esm2022/slide/drawer/drawer-container.directive.mjs +3 -3
  340. package/esm2022/slide/slide-body/slide-body-section.component.mjs +3 -3
  341. package/esm2022/slide/slide-body/slide-body.component.mjs +3 -3
  342. package/esm2022/slide/slide-container.component.mjs +3 -3
  343. package/esm2022/slide/slide-footer/slide-footer.component.mjs +3 -3
  344. package/esm2022/slide/slide-header/slide-header.component.mjs +3 -3
  345. package/esm2022/slide/slide-layout/slide-layout.component.mjs +3 -3
  346. package/esm2022/slide/slide-ref.service.mjs +3 -3
  347. package/esm2022/slide/slide.module.mjs +4 -4
  348. package/esm2022/slide/slide.service.mjs +3 -3
  349. package/esm2022/slider/slider.component.mjs +4 -4
  350. package/esm2022/slider/slider.module.mjs +4 -4
  351. package/esm2022/space/space.component.mjs +6 -6
  352. package/esm2022/space/space.module.mjs +4 -4
  353. package/esm2022/statistic/statistic.component.mjs +3 -3
  354. package/esm2022/statistic/statistic.module.mjs +4 -4
  355. package/esm2022/stepper/step-header.component.mjs +3 -3
  356. package/esm2022/stepper/step.component.mjs +3 -3
  357. package/esm2022/stepper/stepper-button.directive.mjs +6 -6
  358. package/esm2022/stepper/stepper.component.mjs +3 -3
  359. package/esm2022/stepper/stepper.module.mjs +4 -4
  360. package/esm2022/strength/strength.component.mjs +3 -3
  361. package/esm2022/strength/strength.module.mjs +4 -4
  362. package/esm2022/switch/switch.component.mjs +3 -3
  363. package/esm2022/switch/switch.module.mjs +4 -4
  364. package/esm2022/table/pipes/drag.pipe.mjs +3 -3
  365. package/esm2022/table/pipes/table.pipe.mjs +3 -3
  366. package/esm2022/table/table-column.component.mjs +3 -3
  367. package/esm2022/table/table-skeleton.component.mjs +3 -3
  368. package/esm2022/table/table.component.mjs +5 -5
  369. package/esm2022/table/table.module.mjs +4 -4
  370. package/esm2022/tabs/tab-content.component.mjs +3 -3
  371. package/esm2022/tabs/tab.component.mjs +3 -3
  372. package/esm2022/tabs/tabs.component.mjs +4 -4
  373. package/esm2022/tabs/tabs.module.mjs +4 -4
  374. package/esm2022/tag/tag.component.mjs +3 -3
  375. package/esm2022/tag/tag.module.mjs +4 -4
  376. package/esm2022/tag/tags.component.mjs +3 -3
  377. package/esm2022/testing/data-transfer.mjs +1 -1
  378. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +4 -4
  379. package/esm2022/time-picker/inner/inner-time-picker.config.mjs +3 -3
  380. package/esm2022/time-picker/inner/inner-time-picker.store.mjs +3 -3
  381. package/esm2022/time-picker/time-picker-panel.component.mjs +4 -4
  382. package/esm2022/time-picker/time-picker.component.mjs +4 -4
  383. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  384. package/esm2022/timeline/timeline-item.component.mjs +4 -4
  385. package/esm2022/timeline/timeline.component.mjs +4 -4
  386. package/esm2022/timeline/timeline.module.mjs +4 -4
  387. package/esm2022/timeline/timeline.service.mjs +3 -3
  388. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  389. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  390. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  391. package/esm2022/tooltip/tooltip.service.mjs +3 -3
  392. package/esm2022/transfer/transfer-list.component.mjs +4 -4
  393. package/esm2022/transfer/transfer.component.mjs +3 -3
  394. package/esm2022/transfer/transfer.module.mjs +4 -4
  395. package/esm2022/tree/tree-node.component.mjs +4 -4
  396. package/esm2022/tree/tree.component.mjs +5 -5
  397. package/esm2022/tree/tree.module.mjs +4 -4
  398. package/esm2022/tree/tree.pipe.mjs +3 -3
  399. package/esm2022/tree/tree.service.mjs +3 -3
  400. package/esm2022/tree-select/module.mjs +4 -4
  401. package/esm2022/tree-select/tree-select.component.mjs +13 -12
  402. package/esm2022/typography/bg-color.directive.mjs +3 -3
  403. package/esm2022/typography/module.mjs +4 -4
  404. package/esm2022/typography/text/text.component.mjs +3 -3
  405. package/esm2022/typography/text-color.directive.mjs +3 -3
  406. package/esm2022/upload/file-drop.directive.mjs +7 -6
  407. package/esm2022/upload/file-select-base.mjs +3 -3
  408. package/esm2022/upload/file-select.component.mjs +4 -4
  409. package/esm2022/upload/module.mjs +4 -4
  410. package/esm2022/upload/upload.service.mjs +3 -3
  411. package/esm2022/util/logger/logger.mjs +1 -1
  412. package/esm2022/version.mjs +2 -2
  413. package/esm2022/vote/vote.component.mjs +3 -3
  414. package/esm2022/vote/vote.module.mjs +4 -4
  415. package/esm2022/watermark/watermark.directive.mjs +3 -3
  416. package/esm2022/watermark/watermark.module.mjs +4 -4
  417. package/fesm2022/ngx-tethys-action.mjs +10 -10
  418. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-affix.mjs +7 -7
  420. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-alert.mjs +10 -10
  422. package/fesm2022/ngx-tethys-anchor.mjs +10 -10
  423. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  424. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  425. package/fesm2022/ngx-tethys-autocomplete.mjs +16 -16
  426. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-avatar.mjs +22 -22
  428. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  430. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  431. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  432. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  433. package/fesm2022/ngx-tethys-button.mjs +13 -13
  434. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  435. package/fesm2022/ngx-tethys-calendar.mjs +16 -16
  436. package/fesm2022/ngx-tethys-card.mjs +13 -13
  437. package/fesm2022/ngx-tethys-carousel.mjs +16 -16
  438. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  439. package/fesm2022/ngx-tethys-cascader.mjs +25 -37
  440. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  441. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  442. package/fesm2022/ngx-tethys-collapse.mjs +10 -10
  443. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  444. package/fesm2022/ngx-tethys-color-picker.mjs +47 -37
  445. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  446. package/fesm2022/ngx-tethys-comment.mjs +13 -13
  447. package/fesm2022/ngx-tethys-copy.mjs +7 -7
  448. package/fesm2022/ngx-tethys-core.mjs +30 -20
  449. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  450. package/fesm2022/ngx-tethys-date-picker.mjs +117 -117
  451. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  452. package/fesm2022/ngx-tethys-date-range.mjs +10 -10
  453. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  454. package/fesm2022/ngx-tethys-dialog.mjs +22 -22
  455. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  456. package/fesm2022/ngx-tethys-dot.mjs +7 -7
  457. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  458. package/fesm2022/ngx-tethys-drag-drop.mjs +19 -19
  459. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  460. package/fesm2022/ngx-tethys-dropdown.mjs +46 -46
  461. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  462. package/fesm2022/ngx-tethys-empty.mjs +10 -10
  463. package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
  464. package/fesm2022/ngx-tethys-form.mjs +40 -40
  465. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  466. package/fesm2022/ngx-tethys-fullscreen.mjs +15 -14
  467. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  468. package/fesm2022/ngx-tethys-grid.mjs +31 -31
  469. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  470. package/fesm2022/ngx-tethys-guider.mjs +16 -16
  471. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  472. package/fesm2022/ngx-tethys-icon.mjs +10 -10
  473. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  474. package/fesm2022/ngx-tethys-image.mjs +16 -16
  475. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  476. package/fesm2022/ngx-tethys-input-number.mjs +7 -7
  477. package/fesm2022/ngx-tethys-input.mjs +19 -19
  478. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  479. package/fesm2022/ngx-tethys-layout.mjs +58 -58
  480. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  481. package/fesm2022/ngx-tethys-list.mjs +16 -16
  482. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  483. package/fesm2022/ngx-tethys-mention.mjs +10 -10
  484. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  485. package/fesm2022/ngx-tethys-menu.mjs +25 -25
  486. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  487. package/fesm2022/ngx-tethys-message.mjs +22 -22
  488. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  489. package/fesm2022/ngx-tethys-nav.mjs +22 -22
  490. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  491. package/fesm2022/ngx-tethys-notify.mjs +17 -17
  492. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  493. package/fesm2022/ngx-tethys-pagination.mjs +34 -34
  494. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  495. package/fesm2022/ngx-tethys-popover.mjs +19 -19
  496. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  497. package/fesm2022/ngx-tethys-progress.mjs +13 -13
  498. package/fesm2022/ngx-tethys-property-operation.mjs +10 -10
  499. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  500. package/fesm2022/ngx-tethys-property.mjs +10 -10
  501. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  502. package/fesm2022/ngx-tethys-radio.mjs +13 -13
  503. package/fesm2022/ngx-tethys-rate.mjs +10 -10
  504. package/fesm2022/ngx-tethys-resizable.mjs +16 -16
  505. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  506. package/fesm2022/ngx-tethys-result.mjs +7 -7
  507. package/fesm2022/ngx-tethys-segment.mjs +10 -10
  508. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  509. package/fesm2022/ngx-tethys-select.mjs +10 -10
  510. package/fesm2022/ngx-tethys-shared.mjs +66 -66
  511. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  512. package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
  513. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  514. package/fesm2022/ngx-tethys-slide.mjs +31 -31
  515. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  516. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  517. package/fesm2022/ngx-tethys-space.mjs +10 -10
  518. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  519. package/fesm2022/ngx-tethys-stepper.mjs +19 -19
  520. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  521. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  522. package/fesm2022/ngx-tethys-table.mjs +20 -20
  523. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  524. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  525. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  526. package/fesm2022/ngx-tethys-tag.mjs +10 -10
  527. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  528. package/fesm2022/ngx-tethys-time-picker.mjs +19 -19
  529. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  530. package/fesm2022/ngx-tethys-timeline.mjs +13 -13
  531. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  532. package/fesm2022/ngx-tethys-tooltip.mjs +13 -13
  533. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  534. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  535. package/fesm2022/ngx-tethys-tree-select.mjs +16 -15
  536. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  537. package/fesm2022/ngx-tethys-tree.mjs +17 -17
  538. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  539. package/fesm2022/ngx-tethys-typography.mjs +13 -13
  540. package/fesm2022/ngx-tethys-upload.mjs +18 -17
  541. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  542. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  543. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  544. package/fesm2022/ngx-tethys-watermark.mjs +7 -7
  545. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  546. package/fesm2022/ngx-tethys.mjs +1 -1
  547. package/fesm2022/ngx-tethys.mjs.map +1 -1
  548. package/flexible-text/examples/placement/placement.component.scss +3 -1
  549. package/form/styles/form-check.scss +2 -3
  550. package/form/styles/mixin.scss +1 -1
  551. package/grid/examples/basic/basic.component.scss +5 -3
  552. package/grid/examples/flex/flex.component.scss +5 -3
  553. package/grid/examples/gap/gap.component.scss +5 -3
  554. package/grid/examples/offset/offset.component.scss +5 -3
  555. package/grid/examples/responsive/responsive.component.scss +6 -4
  556. package/grid/examples/row-col/row-col.component.scss +5 -3
  557. package/grid/examples/span/span.component.scss +5 -3
  558. package/guider/styles/guider-tip.scss +6 -6
  559. package/loading/styles/loading.scss +3 -3
  560. package/menu/examples/basic/basic.component.scss +3 -1
  561. package/menu/examples/divider/divider.component.scss +3 -1
  562. package/menu/examples/group/group.component.scss +3 -1
  563. package/menu/examples/theme/theme.component.scss +2 -2
  564. package/nav/examples/basic/basic.component.scss +3 -5
  565. package/nav/examples/extra/extra.component.scss +3 -1
  566. package/nav/examples/fill/fill.component.scss +3 -1
  567. package/nav/examples/lite/lite.component.scss +3 -1
  568. package/nav/examples/pills/pills.component.scss +3 -1
  569. package/nav/examples/responsive/responsive.component.scss +3 -1
  570. package/nav/examples/size/size.component.scss +3 -1
  571. package/nav/examples/tabs/tabs.component.scss +3 -1
  572. package/nav/examples/type/type.component.scss +3 -4
  573. package/nav/examples/vertical/vertical.component.scss +3 -1
  574. package/nav/nav.component.d.ts +1 -1
  575. package/nav/styles/mixin.scss +26 -10
  576. package/notify/styles/notify.scss +2 -2
  577. package/package.json +1 -1
  578. package/pagination/pagination.component.d.ts +3 -3
  579. package/pagination/styles/pagination.scss +1 -0
  580. package/progress/styles/progress-strip.scss +1 -1
  581. package/property-operation/styles/property-operation.scss +1 -15
  582. package/resizable/examples/layout/layout.style.scss +7 -5
  583. package/resizable/examples/table/table.style.scss +3 -1
  584. package/resizable/resize-handle.component.d.ts +4 -1
  585. package/schematics/version.d.ts +1 -1
  586. package/schematics/version.js +1 -1
  587. package/segment/styles/mixin.scss +8 -5
  588. package/segment/styles/segment.scss +1 -1
  589. package/shared/option/styles/option.mixin.scss +6 -6
  590. package/shared/option/styles/select-dropdown.scss +3 -1
  591. package/shared/select/select-control/select-control.scss +1 -1
  592. package/space/examples/align/align.component.scss +3 -2
  593. package/statistic/examples/prefix-suffix/prefix-suffix.component.scss +3 -1
  594. package/styles/bootstrap/_type.scss +8 -8
  595. package/styles/bootstrap/mixins/_transition.scss +3 -1
  596. package/styles/mixins/close.scss +4 -1
  597. package/styles/mixins/shadow.scss +3 -1
  598. package/styles/mixins/tables.scss +3 -166
  599. package/styles/modules/cdk/drag-drop.scss +1 -1
  600. package/styles/modules/link.scss +1 -1
  601. package/styles/modules/tables.scss +0 -1
  602. package/styles/variables.scss +73 -41
  603. package/switch/styles/mixin.scss +1 -1
  604. package/table/styles/table.scss +1 -1
  605. package/tabs/styles/tabs.scss +1 -0
  606. package/tag/styles/mixin.scss +10 -5
  607. package/tag/styles/tag.scss +4 -4
  608. package/tree/styles/tree.scss +0 -8
  609. package/tree-select/styles/tree-select.scss +4 -1
  610. package/tree-select/tree-select.component.d.ts +3 -3
  611. package/watermark/examples/basic/basic.component.scss +3 -1
  612. package/watermark/examples/custom/custom.component.scss +8 -0
  613. package/watermark/styles/watermark.scss +1 -2
  614. package/tabs/examples/basic/basic.component.scss +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-time-picker.mjs","sources":["../../../src/time-picker/time-picker.utils.ts","../../../src/time-picker/time-picker-controls.util.ts","../../../src/time-picker/inner/inner-time-picker.config.ts","../../../src/time-picker/inner/inner-time-picker.store.ts","../../../src/time-picker/inner/inner-time-picker.component.ts","../../../src/time-picker/inner/inner-time-picker.component.html","../../../src/time-picker/time-picker-panel.component.ts","../../../src/time-picker/time-picker-panel.component.html","../../../src/time-picker/time-picker.component.ts","../../../src/time-picker/time-picker.component.html","../../../src/time-picker/time-picker.module.ts","../../../src/time-picker/ngx-tethys-time-picker.ts"],"sourcesContent":["import { Time, TimePickerComponentState } from './inner/inner-time-picker.class';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\n\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\n\nexport function isValidDate(value?: string | Date): boolean {\n if (!value) {\n return false;\n }\n\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n\n if (typeof value === 'string') {\n return isValidDate(new Date(value));\n }\n\n return true;\n}\n\nexport function isValidLimit(controls: TimePickerComponentState, newDate: Date): boolean {\n if (controls.min && newDate < controls.min) {\n return false;\n }\n\n if (controls.max && newDate > controls.max) {\n return false;\n }\n\n return true;\n}\n\nexport function parseHours(value: string | number, isPM = false): number {\n const hour = coerceNumberProperty(value);\n if (isNaN(hour) || hour < 0 || hour > (isPM ? hoursPerDayHalf : hoursPerDay)) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = coerceNumberProperty(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n\n return minute;\n}\n\nexport function parseSeconds(value: string | number): number {\n const seconds = coerceNumberProperty(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n\n return seconds;\n}\n\nexport function parseTime(value: string | Date): Date {\n if (typeof value === 'string') {\n return new Date(value);\n }\n\n return value;\n}\n\nexport function changeTime(value: Date, diff: Time): Date {\n if (!value) {\n return changeTime(createDate(new Date(), 0, 0, 0), diff);\n }\n\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n\n if (diff.hour) {\n hour = (hour + coerceNumberProperty(diff.hour)) % hoursPerDay;\n if (hour < 0) {\n hour += hoursPerDay;\n }\n }\n\n if (diff.minute) {\n minutes = minutes + coerceNumberProperty(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + coerceNumberProperty(diff.seconds);\n }\n\n return createDate(value, hour, minutes, seconds);\n}\n\nexport function setTime(value: Date, opts: Time): Date {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n\n if (opts.isPM && hour !== 12) {\n hour += hoursPerDayHalf;\n }\n\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new Date(), hour, minute, seconds);\n }\n\n return value;\n }\n\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n\n return createDate(value, hour, minute, seconds);\n}\n\nexport function createDate(value: Date, hours: number, minutes: number, seconds: number): Date {\n return new Date(value.getFullYear(), value.getMonth(), value.getDate(), hours, minutes, seconds, value.getMilliseconds());\n}\n\nexport function padNumber(value: number): string {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n\n return `0${_value}`;\n}\n\nexport function isHourInputValid(hours: string, isPM: boolean): boolean {\n return !isNaN(parseHours(hours, isPM));\n}\n\nexport function isMinuteInputValid(minutes: string): boolean {\n return !isNaN(parseMinutes(minutes));\n}\n\nexport function isSecondInputValid(seconds: string): boolean {\n return !isNaN(parseSeconds(seconds));\n}\n\nexport function isInputLimitValid(diff: Time, max: Date, min: Date): boolean {\n const newDate = setTime(new Date(), diff);\n\n if (max && newDate > max) {\n return false;\n }\n\n if (min && newDate < min) {\n return false;\n }\n\n return true;\n}\n\nexport function isInputValid(hours: string, minutes = '0', seconds = '0', isPM: boolean): boolean {\n return isHourInputValid(hours, isPM) && isMinuteInputValid(minutes) && isSecondInputValid(seconds);\n}\n","import { changeTime } from './time-picker.utils';\nimport { TimeChangeEvent, TimePickerComponentState, TimePickerControls } from './inner/inner-time-picker.class';\n\nexport function canChangeValue(state: TimePickerComponentState, event?: TimeChangeEvent): boolean {\n if (state.readonlyInput || state.disabled) {\n return false;\n }\n\n if (event) {\n if (event.source === 'wheel' && !state.mousewheel) {\n return false;\n }\n\n if (event.source === 'key' && !state.arrowKeys) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function canChangeHours(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeMinutes(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeSeconds(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n\n return true;\n}\n\nexport function getControlsValue(state: TimePickerComponentState): TimePickerComponentState {\n const {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowKeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n } = state;\n\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowKeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\n\nexport function timePickerControls(value: Date, state: TimePickerComponentState): TimePickerControls {\n const hoursPerDayHalf = 12;\n const { min, max, hourStep, minuteStep, secondsStep, showSeconds } = state;\n const res: TimePickerControls = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n };\n\n if (!value) {\n return res;\n }\n\n // compare dates\n if (max) {\n const _newHour = changeTime(value, { hour: hourStep });\n res.canIncrementHours = max > _newHour;\n\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, { minute: minuteStep });\n res.canIncrementMinutes = showSeconds ? max > _newMinutes : max >= _newMinutes;\n }\n\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: secondsStep });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;\n }\n }\n\n if (min) {\n const _newHour = changeTime(value, { hour: -hourStep });\n res.canDecrementHours = min < _newHour;\n\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, { minute: -minuteStep });\n res.canDecrementMinutes = showSeconds ? min < _newMinutes : min <= _newMinutes;\n }\n\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: -secondsStep });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;\n }\n }\n\n return res;\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class TimePickerConfig {\n /** hours change step */\n hourStep = 1;\n /** hours change step */\n minuteStep = 5;\n /** seconds changes step */\n secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n showMeridian = true;\n /** meridian labels based on locale */\n meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n arrowKeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n showSpinners = true;\n /** show seconds in timePicker */\n showSeconds = false;\n /** show minutes in timePicker */\n showMinutes = true;\n /** minimum time user can select */\n min: Date;\n /** maximum time user can select */\n max: Date;\n /** placeholder for hours field in timePicker */\n hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timePicker */\n minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timePicker */\n secondsPlaceholder = 'SS';\n}\n","import { MiniStore, MiniAction } from 'ngx-tethys/core';\nimport { TimeChangeEvent, TimePickerComponentState, Time, TimePickerControls } from './inner-time-picker.class';\nimport { canChangeHours, canChangeMinutes, canChangeSeconds, canChangeValue, timePickerControls } from '../time-picker-controls.util';\nimport { changeTime, setTime, isValidLimit } from '../time-picker.utils';\nimport { Injectable } from '@angular/core';\nimport { TimePickerConfig } from './inner-time-picker.config';\n\nexport interface TimePickerState {\n value: Date;\n config: TimePickerComponentState;\n controls: TimePickerControls;\n}\n\nexport const initialState: TimePickerState = {\n value: null,\n config: new TimePickerConfig(),\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n }\n};\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyTimePickerStore extends MiniStore<TimePickerState> {\n constructor() {\n super(initialState);\n }\n\n @MiniAction()\n writeValue(value: Date) {\n this.setState({ value: value });\n }\n\n @MiniAction()\n changeHours(event: TimeChangeEvent) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeHours(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: event.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n changeMinutes(event: TimeChangeEvent) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeMinutes(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: event.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n changeSeconds(event: TimeChangeEvent) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeSeconds(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, {\n seconds: event.step\n });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n setTime(value: Time) {\n const state = this.snapshot;\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, value);\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n updateControls(value: TimePickerComponentState) {\n const state = this.snapshot;\n const _newControlsState = timePickerControls(state.value, value);\n const _newState: TimePickerState = {\n value: state.value,\n config: value,\n controls: _newControlsState\n };\n\n if (state.config.showMeridian !== _newState.config.showMeridian) {\n if (state.value) {\n _newState.value = new Date(state.value);\n }\n }\n\n this.setState(_newState);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n StaticProvider\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { getControlsValue } from '../time-picker-controls.util';\nimport { TimePickerConfig } from './inner-time-picker.config';\n\nimport { TimeChangeSource, TimePickerComponentState, TimePickerControls } from './inner-time-picker.class';\n\nimport {\n isHourInputValid,\n isInputLimitValid,\n isInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isValidDate,\n padNumber,\n parseTime\n} from '../time-picker.utils';\n\nimport { Subscription } from 'rxjs';\n\nimport { NgIf } from '@angular/common';\nimport { ThyTimePickerStore } from './inner-time-picker.store';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: StaticProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInnerTimePicker),\n multi: true\n};\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-inner-time-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, ThyTimePickerStore],\n templateUrl: './inner-time-picker.component.html',\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyInnerTimePicker implements ControlValueAccessor, TimePickerComponentState, TimePickerControls, OnChanges, OnDestroy {\n /** hours change step */\n @Input() hourStep: number;\n /** hours change step */\n @Input() minuteStep: number;\n /** seconds change step */\n @Input() secondsStep: number;\n /** if true hours and minutes fields will be readonly */\n @Input() readonlyInput: boolean;\n /** if true hours and minutes fields will be disabled */\n @Input() disabled: boolean;\n /** if true scroll inside hours and minutes inputs will change time */\n @Input() mousewheel: boolean;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n @Input() arrowKeys: boolean;\n /** if true spinner arrows above and below the inputs will be shown */\n @Input() showSpinners: boolean;\n /** if true meridian button will be shown */\n @Input() showMeridian: boolean;\n /** show minutes in timePicker */\n @Input() showMinutes: boolean;\n /** show seconds in timePicker */\n @Input() showSeconds: boolean;\n /** meridian labels based on locale */\n @Input() meridians: string[];\n /** minimum time user can select */\n @Input() min: Date;\n /** maximum time user can select */\n @Input() max: Date;\n /** placeholder for hours field in timePicker */\n @Input() hoursPlaceholder: string;\n /** placeholder for minutes field in timePicker */\n @Input() minutesPlaceholder: string;\n /** placeholder for seconds field in timePicker */\n @Input() secondsPlaceholder: string;\n\n /** emits true if value is a valid date */\n @Output() isValid = new EventEmitter<boolean>();\n\n // ui variables\n hours: string;\n minutes: string;\n seconds: string;\n meridian: string;\n\n get isEditable(): boolean {\n return !(this.readonlyInput || this.disabled);\n }\n\n // min/max validation for input fields\n invalidHours = false;\n invalidMinutes = false;\n invalidSeconds = false;\n\n // time picker controls state\n canIncrementHours: boolean;\n canIncrementMinutes: boolean;\n canIncrementSeconds: boolean;\n\n canDecrementHours: boolean;\n canDecrementMinutes: boolean;\n canDecrementSeconds: boolean;\n\n canToggleMeridian: boolean;\n\n // control value accessor methods\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n private timerPickerSubscription = new Subscription();\n\n constructor(_config: TimePickerConfig, private _cd: ChangeDetectorRef, private _store: ThyTimePickerStore) {\n Object.assign(this, _config);\n\n this.timerPickerSubscription.add(\n _store\n .select(state => state.value)\n .subscribe((value: Date) => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n this._store.updateControls(getControlsValue(this));\n })\n );\n\n this.timerPickerSubscription.add(\n _store\n .select(state => state.controls)\n .subscribe((controlsState: TimePickerControls) => {\n this.isValid.emit(isInputValid(this.hours, this.minutes, this.seconds, this.isPM()));\n Object.assign(this, controlsState);\n _cd.markForCheck();\n })\n );\n }\n\n resetValidation(): void {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n\n isPM(): boolean {\n return this.showMeridian && this.meridian === this.meridians[1];\n }\n\n prevDef($event: Event) {\n $event.preventDefault();\n }\n\n wheelSign($event: WheelEventInit): number {\n return Math.sign($event.deltaY) * -1;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._store.updateControls(getControlsValue(this));\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeHours({ step, source });\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeMinutes({ step, source });\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeSeconds({ step, source });\n }\n\n updateHours(hours: string): void {\n this.resetValidation();\n this.hours = hours;\n\n const isValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateMinutes(minutes: string) {\n this.resetValidation();\n this.minutes = minutes;\n\n const isValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateSeconds(seconds: string) {\n this.resetValidation();\n this.seconds = seconds;\n\n const isValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n isValidLimit(): boolean {\n return isInputLimitValid(\n {\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n },\n this.max,\n this.min\n );\n }\n\n _updateTime() {\n const _seconds = this.showSeconds ? this.seconds : void 0;\n const _minutes = this.showMinutes ? this.minutes : void 0;\n if (!isInputValid(this.hours, _minutes, _seconds, this.isPM())) {\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._store.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n });\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n });\n }\n\n writeValue(obj: string | null | undefined | Date): void {\n if (isValidDate(obj)) {\n this._store.writeValue(parseTime(obj));\n } else if (obj == null) {\n this._store.writeValue(null);\n }\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.timerPickerSubscription.unsubscribe();\n }\n\n private _renderTime(value: string | Date): void {\n if (!isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians[0];\n\n return;\n }\n\n const _value = parseTime(value);\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n\n if (this.showMeridian) {\n this.meridian = this.meridians[_hours >= _hoursPerDayHalf ? 1 : 0];\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n}\n","<table>\n <tbody>\n <tr class=\"text-center\" [hidden]=\"!showSpinners\">\n <!-- increment hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementHours || !isEditable\" (click)=\"changeHours(hourStep)\"\n ><span class=\"thy-chevron thy-chevron-up\"></span\n ></a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\">&nbsp;&nbsp;&nbsp;</td>\n <!-- increment minutes button -->\n <td *ngIf=\"showMinutes\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementMinutes || !isEditable\" (click)=\"changeMinutes(minuteStep)\"\n ><span class=\"thy-chevron thy-chevron-up\"></span\n ></a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\">&nbsp;</td>\n <!-- increment seconds button -->\n <td *ngIf=\"showSeconds\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementSeconds || !isEditable\" (click)=\"changeSeconds(secondsStep)\">\n <span class=\"thy-chevron thy-chevron-up\"></span>\n </a>\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\">&nbsp;&nbsp;&nbsp;</td>\n <!-- meridian placeholder-->\n <td *ngIf=\"showMeridian\"></td>\n </tr>\n <tr>\n <!-- hours -->\n <td class=\"form-group\" [class.has-error]=\"invalidHours\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidHours\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"hoursPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"hours\"\n (wheel)=\"prevDef($event); changeHours(hourStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeHours(hourStep, 'key')\"\n (keydown.ArrowDown)=\"changeHours(-hourStep, 'key')\"\n (change)=\"updateHours($event.target.value)\"\n />\n </td>\n\n <!-- divider -->\n <td *ngIf=\"showMinutes\">&nbsp;:&nbsp;</td>\n <!-- minutes -->\n <td class=\"form-group\" *ngIf=\"showMinutes\" [class.has-error]=\"invalidMinutes\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidMinutes\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"minutesPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"minutes\"\n (wheel)=\"prevDef($event); changeMinutes(minuteStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeMinutes(minuteStep, 'key')\"\n (keydown.ArrowDown)=\"changeMinutes(-minuteStep, 'key')\"\n (change)=\"updateMinutes($event.target.value)\"\n />\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\">&nbsp;:&nbsp;</td>\n <!-- seconds -->\n <td class=\"form-group\" *ngIf=\"showSeconds\" [class.has-error]=\"invalidSeconds\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidSeconds\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"secondsPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"seconds\"\n (wheel)=\"prevDef($event); changeSeconds(secondsStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeSeconds(secondsStep, 'key')\"\n (keydown.ArrowDown)=\"changeSeconds(-secondsStep, 'key')\"\n (change)=\"updateSeconds($event.target.value)\"\n />\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\">&nbsp;&nbsp;&nbsp;</td>\n <!-- meridian -->\n <td *ngIf=\"showMeridian\">\n <button\n type=\"button\"\n class=\"btn btn-default text-center\"\n [disabled]=\"!isEditable || !canToggleMeridian\"\n [class.disabled]=\"!isEditable || !canToggleMeridian\"\n (click)=\"toggleMeridian()\"\n >\n {{ meridian }}\n </button>\n </td>\n </tr>\n <tr class=\"text-center\" [hidden]=\"!showSpinners\">\n <!-- decrement hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementHours || !isEditable\" (click)=\"changeHours(-hourStep)\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\">&nbsp;&nbsp;&nbsp;</td>\n <!-- decrement minutes button-->\n <td *ngIf=\"showMinutes\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementMinutes || !isEditable\" (click)=\"changeMinutes(-minuteStep)\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\">&nbsp;</td>\n <!-- decrement seconds button-->\n <td *ngIf=\"showSeconds\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementSeconds || !isEditable\" (click)=\"changeSeconds(-secondsStep)\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\">&nbsp;&nbsp;&nbsp;</td>\n <!-- meridian placeholder-->\n <td *ngIf=\"showMeridian\"></td>\n </tr>\n </tbody>\n</table>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isValid } from 'date-fns';\nimport { reqAnimFrame } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { NgIf, NgFor, DecimalPipe } from '@angular/common';\n\n/**\n * 时间选择面板组件\n * @name thy-time-picker-panel\n */\n@Component({\n selector: 'thy-time-picker-panel',\n templateUrl: './time-picker-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyTimePanel)\n }\n ],\n host: {\n class: 'thy-time-picker-panel',\n '[class.thy-time-picker-panel-has-bottom-operation]': `thyShowOperations`,\n '[class.thy-time-picker-panel-columns-2]': `showColumnCount === 2`,\n '[class.thy-time-picker-panel-columns-3]': `showColumnCount === 3`\n },\n standalone: true,\n imports: [NgIf, NgFor, ThyButton, DecimalPipe]\n})\nexport class ThyTimePanel implements OnInit, OnDestroy, ControlValueAccessor {\n @ViewChild('hourListElement', { static: false }) hourListRef: ElementRef<HTMLElement>;\n\n @ViewChild('minuteListElement', { static: false }) minuteListRef: ElementRef<HTMLElement>;\n\n @ViewChild('secondListElement', { static: false }) secondListRef: ElementRef<HTMLElement>;\n\n /**\n * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'\n * @type string\n * @default HH:mm:ss\n */\n @Input() set thyFormat(value: string) {\n if (value) {\n const formatSet = new Set(value);\n this.showHourColumn = formatSet.has('H') || formatSet.has('h');\n this.showMinuteColumn = formatSet.has('m');\n this.showSecondColumn = formatSet.has('s');\n } else {\n this.showHourColumn = true;\n this.showMinuteColumn = true;\n this.showSecondColumn = true;\n }\n this.showColumnCount = [this.showHourColumn, this.showMinuteColumn, this.showSecondColumn].filter(m => m).length;\n this.cdr.markForCheck();\n }\n\n /**\n * 小时间隔步长\n * @type number\n */\n @Input() thyHourStep: number = 1;\n\n /**\n * 分钟间隔步长\n * @type number\n */\n @Input() thyMinuteStep: number = 1;\n\n /**\n * 秒间隔步长\n * @type number\n */\n @Input() thySecondStep: number = 1;\n\n /**\n * 展示选择此刻\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowSelectNow = true;\n\n /**\n * 展示底部操作\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowOperations = true;\n\n /**\n * 选择时间触发的事件\n * @type EventEmitter<Date>\n */\n @Output() thyPickChange = new EventEmitter<Date>();\n\n /**\n * 关闭面板事件\n * @type EventEmitter<void>\n */\n @Output() thyClosePanel = new EventEmitter<void>();\n\n // margin-top + 1px border\n SCROLL_OFFSET_SPACING = 5;\n\n SCROLL_DEFAULT_DURATION = 120;\n\n prefixCls = 'thy-time-picker-panel';\n\n hourRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n minuteRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n secondRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n showHourColumn = true;\n\n showMinuteColumn = true;\n\n showSecondColumn = true;\n\n showColumnCount: number = 3;\n\n value: Date;\n\n hour: number;\n\n minute: number;\n\n second: number;\n\n initialScrollPosition: boolean;\n\n onValueChangeFn: (val: Date) => void = () => void 0;\n\n onTouchedFn: () => void = () => void 0;\n\n constructor(private cdr: ChangeDetectorRef, private ngZone: NgZone) {}\n\n ngOnInit(): void {\n this.generateTimeRange();\n this.initialValue();\n setTimeout(() => {\n this.initialScrollPosition = true;\n });\n }\n\n generateTimeRange() {\n this.hourRange = this.buildTimeRange(24, this.thyHourStep);\n this.minuteRange = this.buildTimeRange(60, this.thyMinuteStep);\n this.secondRange = this.buildTimeRange(60, this.thySecondStep);\n }\n\n pickHours(hours: { value: number; disabled: boolean }, index: number) {\n this.value.setHours(hours.value);\n this.hour = hours.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.hourListRef.nativeElement, index);\n }\n\n pickMinutes(minutes: { value: number; disabled: boolean }, index: number) {\n this.value.setMinutes(minutes.value);\n this.minute = minutes.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.minuteListRef.nativeElement, index);\n }\n\n pickSeconds(seconds: { value: number; disabled: boolean }, index: number) {\n this.value.setSeconds(seconds.value);\n this.second = seconds.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.secondListRef.nativeElement, index);\n }\n\n selectNow() {\n this.value = new Date();\n this.setHMSProperty();\n this.thyPickChange.emit(this.value);\n this.thyClosePanel.emit();\n }\n\n confirmPickTime() {\n this.onValueChangeFn(this.value || new Date());\n this.thyClosePanel.emit();\n }\n\n scrollTo(container: HTMLElement, index: number = 0, duration: number = this.SCROLL_DEFAULT_DURATION) {\n const offsetTop = (container.children[index] as HTMLElement).offsetTop - this.SCROLL_OFFSET_SPACING;\n this.runScrollAnimationFrame(container, offsetTop, duration);\n }\n\n writeValue(value: Date | number): void {\n if (value && isValid(value)) {\n this.value = new Date(value);\n this.setHMSProperty();\n } else {\n this.initialValue();\n }\n this.autoScroll(this.initialScrollPosition ? this.SCROLL_DEFAULT_DURATION : 0);\n\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: Date) => void): void {\n this.onValueChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n trackByFn(index: number): number {\n return index;\n }\n\n private initialValue() {\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n this.value = new TinyDate().setHms(0, 0, 0).nativeDate;\n }\n\n private buildTimeRange(length: number, step: number = 1, start: number = 0, disables: number[] = []) {\n return new Array(Math.ceil(length / step)).fill(0).map((_, i) => {\n const value = (i + start) * step;\n return {\n value: value,\n disabled: disables.indexOf(value) > -1\n };\n });\n }\n\n private setHMSProperty() {\n this.hour = this.value.getHours();\n this.minute = this.value.getMinutes();\n this.second = this.value.getSeconds();\n }\n\n private resetScrollPosition() {\n if (this.hourListRef) {\n this.hourListRef.nativeElement.scrollTop = 0;\n }\n if (this.minuteListRef) {\n this.minuteListRef.nativeElement.scrollTop = 0;\n }\n if (this.secondListRef) {\n this.secondListRef.nativeElement.scrollTop = 0;\n }\n this.initialScrollPosition = false;\n }\n\n private runScrollAnimationFrame(container: HTMLElement, to: number, duration: number = this.SCROLL_DEFAULT_DURATION) {\n if (duration <= 0) {\n container.scrollTop = to;\n return;\n }\n const offset = to - container.scrollTop;\n const frame = (offset / duration) * 10;\n this.ngZone.runOutsideAngular(() => {\n reqAnimFrame(() => {\n container.scrollTop += frame;\n if (container.scrollTop === to) {\n return;\n }\n this.runScrollAnimationFrame(container, to, duration - 10);\n });\n });\n }\n\n private autoScroll(duration: number = this.SCROLL_DEFAULT_DURATION) {\n if (this.hourListRef) {\n this.scrollTo(\n this.hourListRef.nativeElement,\n this.hourRange.findIndex(m => m.value === this.hour),\n duration\n );\n }\n if (this.minuteListRef) {\n this.scrollTo(\n this.minuteListRef.nativeElement,\n this.minuteRange.findIndex(m => m.value === this.minute),\n duration\n );\n }\n if (this.secondListRef) {\n this.scrollTo(\n this.secondListRef.nativeElement,\n this.secondRange.findIndex(m => m.value === this.second),\n duration\n );\n }\n }\n\n ngOnDestroy(): void {\n // 关闭面板时有 0.2s 的动画,所以延迟 200ms 再重置滚动位置\n setTimeout(() => {\n this.resetScrollPosition();\n }, 200);\n }\n}\n","<div class=\"{{ prefixCls }}-content\">\n <ul #hourListElement *ngIf=\"showHourColumn\" class=\"{{ prefixCls }}-time-column {{ prefixCls }}-hour-column\">\n <ng-container *ngFor=\"let time of hourRange; let i = index; trackBy: trackByFn\">\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"hour === time.value\"\n (click)=\"pickHours(time, i)\"\n >\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n </ng-container>\n </ul>\n <ul #minuteListElement *ngIf=\"showMinuteColumn\" class=\"{{ prefixCls }}-time-column {{ prefixCls }}-minute-column\">\n <ng-container *ngFor=\"let time of minuteRange; let i = index; trackBy: trackByFn\">\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"minute === time.value\"\n (click)=\"pickMinutes(time, i)\"\n >\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n </ng-container>\n </ul>\n <ul #secondListElement *ngIf=\"showSecondColumn\" class=\"{{ prefixCls }}-time-column {{ prefixCls }}-second-column\">\n <ng-container *ngFor=\"let time of secondRange; let i = index; trackBy: trackByFn\">\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"second === time.value\"\n (click)=\"pickSeconds(time, i)\"\n >\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n </ng-container>\n </ul>\n</div>\n\n<div *ngIf=\"thyShowOperations\" class=\"{{ prefixCls }}-bottom-operation\">\n <a *ngIf=\"thyShowSelectNow\" href=\"javascript:;\" class=\"{{ prefixCls }}-time-now\" (click)=\"selectNow()\">此刻</a>\n <button class=\"{{ prefixCls }}-time-confirm\" thyButton=\"primary\" thySize=\"xs\" class=\"confirm\" (click)=\"confirmPickTime()\">确定</button>\n</div>\n","import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { isValid } from 'date-fns';\nimport { getFlexiblePositions, ThyPlacement } from 'ngx-tethys/core';\nimport { TinyDate, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyTimePanel } from './time-picker-panel.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet, NgIf, NgClass } from '@angular/common';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\n\nexport type TimePickerSize = 'xs' | 'sm' | 'md' | 'lg' | 'default';\n\n/**\n * 时间选择组件\n * @name thy-time-picker\n */\n@Component({\n selector: 'thy-time-picker',\n templateUrl: './time-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyTimePicker)\n }\n ],\n host: {\n class: 'thy-time-picker',\n '[class.thy-time-picker-disabled]': `disabled`,\n '[class.thy-time-picker-readonly]': `thyReadonly`\n },\n standalone: true,\n imports: [\n CdkOverlayOrigin,\n ThyInputDirective,\n FormsModule,\n NgTemplateOutlet,\n NgIf,\n ThyIcon,\n NgClass,\n CdkConnectedOverlay,\n ThyTimePanel\n ],\n animations: [scaleXMotion, scaleYMotion, scaleMotion]\n})\nexport class ThyTimePicker implements OnInit, AfterViewInit, ControlValueAccessor {\n @ViewChild(CdkConnectedOverlay, { static: true }) cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('origin', { static: true }) origin: CdkOverlayOrigin;\n\n @ViewChild('pickerInput', { static: true }) inputRef: ElementRef<HTMLInputElement>;\n\n @ViewChild('overlayContainer', { static: false }) overlayContainer: ElementRef<HTMLElement>;\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'lg' | 'default'\n */\n @Input() thySize: TimePickerSize = 'default';\n\n /**\n * 输入框提示文字\n * @type string\n */\n @Input() thyPlaceholder: string = '选择时间';\n\n /**\n * 弹出位置\n * @type 'top' | 'topLeft'| 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom'\n */\n @Input() thyPlacement: ThyPlacement = 'bottomLeft';\n\n /**\n * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'\n * @type string\n * @default HH:mm:ss\n */\n @Input() set thyFormat(value: string) {\n this.format = value || 'HH:mm:ss';\n if (this.value && isValid(this.value)) {\n this.showText = new TinyDate(this.value).format(this.format);\n }\n }\n\n /**\n * 小时间隔步长\n * @type number\n */\n @Input() thyHourStep: number = 1;\n\n /**\n * 分钟间隔步长\n * @type number\n */\n @Input() thyMinuteStep: number = 1;\n\n /**\n * 秒间隔步长\n * @type number\n */\n @Input() thySecondStep: number = 1;\n\n /**\n * 弹出层组件 class\n * @type string\n */\n @Input() thyPopupClass: string;\n\n /**\n * 是否显示弹出层遮罩\n * @type boolean\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyBackdrop: boolean;\n\n /**\n * 禁用\n * @type boolean\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n get thyDisabled(): boolean {\n return this.disabled;\n }\n\n /**\n * 只读\n * @type boolean\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyReadonly: boolean;\n\n /**\n * 展示选择此刻\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowSelectNow = true;\n\n /**\n * 可清空值\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyAllowClear = true;\n\n /**\n * 打开/关闭弹窗事件\n * @type EventEmitter<boolean>\n */\n @Output() thyOpenChange = new EventEmitter<boolean>();\n\n prefixCls = 'thy-time-picker';\n\n overlayPositions = getFlexiblePositions(this.thyPlacement, 4);\n\n format: string = 'HH:mm:ss';\n\n disabled: boolean;\n\n showText: string = '';\n\n openState: boolean;\n\n value: Date = new TinyDate().setHms(0, 0, 0).nativeDate;\n\n originValue: Date;\n\n keepFocus: boolean;\n\n private isDisabledFirstChange = true;\n\n onValueChangeFn: (val: number | Date) => void = () => void 0;\n\n onTouchedFn: () => void = () => void 0;\n\n constructor(private cdr: ChangeDetectorRef, private elementRef: ElementRef) {}\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n this.overlayPositions = getFlexiblePositions(this.thyPlacement, 4);\n }\n\n onInputPickerClick() {\n if (this.disabledUserOperation()) {\n return;\n }\n this.openOverlay();\n }\n\n onInputPickerBlur() {\n if (this.keepFocus) {\n this.focus();\n } else {\n if (this.openState) {\n this.closeOverlay();\n }\n }\n }\n\n onPickTime(value: Date) {\n this.originValue = new Date(value);\n this.setValue(value);\n this.emitValue();\n }\n\n onPickTimeConfirm(value: Date) {\n this.originValue = new Date(value);\n this.confirmValue(value);\n }\n\n onClearTime(e: Event) {\n e.stopPropagation();\n this.originValue = null;\n this.setValue(null);\n this.emitValue();\n }\n\n onCustomizeInput(value: string) {\n this.formatInputValue(value);\n this.cdr.detectChanges();\n }\n\n onKeyupEnter() {\n this.confirmValue(this.value);\n this.closeOverlay();\n }\n\n onKeyupEsc() {\n this.closeOverlay();\n }\n\n onPositionChange(e: Event) {\n this.cdr.detectChanges();\n }\n\n onClickBackdrop() {\n this.closeOverlay();\n }\n\n onOverlayDetach() {\n this.closeOverlay();\n }\n\n onOutsideClick(event: Event) {\n if (\n this.openState &&\n !this.elementRef.nativeElement.contains(event.target) &&\n !this.overlayContainer.nativeElement.contains(event.target as Node)\n ) {\n this.closeOverlay();\n this.cdr.detectChanges();\n }\n }\n\n onOverlayAttach() {\n if (this.cdkConnectedOverlay && this.cdkConnectedOverlay.overlayRef) {\n this.cdkConnectedOverlay.overlayRef.updatePosition();\n }\n }\n\n openOverlay() {\n if (this.disabledUserOperation()) {\n return;\n }\n this.keepFocus = true;\n this.openState = true;\n this.thyOpenChange.emit(this.openState);\n }\n\n closeOverlay() {\n if (this.openState) {\n this.keepFocus = false;\n this.openState = false;\n this.blur();\n if (this.showText?.length) {\n if (!this.validateCustomizeInput(this.showText)) {\n this.setValue(this.originValue);\n } else {\n this.showText = new TinyDate(this.value).format(this.format);\n }\n } else {\n if (!this.thyAllowClear) {\n this.setValue(this.originValue);\n }\n }\n this.thyOpenChange.emit(this.openState);\n }\n }\n\n focus() {\n if (this.inputRef) {\n this.inputRef.nativeElement.focus();\n }\n }\n\n blur() {\n if (this.inputRef) {\n this.inputRef.nativeElement.blur();\n }\n }\n\n writeValue(value: Date | number): void {\n if (value && isValid(value)) {\n this.originValue = new Date(value);\n this.setValue(new TinyDate(value).nativeDate);\n } else {\n this.value = new TinyDate().setHms(0, 0, 0).nativeDate;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onValueChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = (this.isDisabledFirstChange && this.thyDisabled) || isDisabled;\n this.isDisabledFirstChange = false;\n }\n\n private setValue(value: Date, formatText: boolean = true) {\n if (value && isValid(value)) {\n this.value = new Date(value);\n if (formatText) {\n this.showText = new TinyDate(this.value).format(this.format);\n }\n } else {\n this.value = null;\n this.showText = '';\n }\n this.cdr.markForCheck();\n }\n\n private confirmValue(value: Date) {\n this.setValue(value);\n this.emitValue();\n this.cdr.markForCheck();\n }\n\n private emitValue() {\n if (this.onValueChangeFn) {\n this.onValueChangeFn(this.value);\n }\n if (this.onTouchedFn) {\n this.onTouchedFn();\n }\n }\n\n private formatInputValue(value: string) {\n if (!this.openState) {\n this.openOverlay();\n }\n if (value?.length) {\n if (this.validateCustomizeInput(value)) {\n const formatter = value.split(':');\n const hour = formatter[0] || 0;\n const minute = formatter[1] || 0;\n const second = formatter[2] || 0;\n this.setValue(new TinyDate().setHms(+hour, +minute, +second).nativeDate, false);\n this.originValue = new Date(this.value);\n this.emitValue();\n }\n } else {\n if (this.thyAllowClear) {\n this.originValue = null;\n this.setValue(null);\n this.emitValue();\n } else {\n this.value = new Date(this.originValue);\n this.showText = ``;\n this.cdr.markForCheck();\n }\n }\n }\n\n private validateCustomizeInput(value: string): boolean {\n let valid: boolean = false;\n if (value.length > this.format.length) {\n return valid;\n }\n const formatRule = this.format.split(':');\n const formatter = value.split(':');\n valid = !formatRule\n .map((m, i) => {\n return !!formatter[i];\n })\n .includes(false);\n return valid;\n }\n\n private disabledUserOperation() {\n return this.disabled || this.thyReadonly;\n }\n}\n","<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"thyReadonly\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [thySize]=\"thySize\"\n [disabled]=\"disabled\"\n [readonly]=\"thyReadonly\"\n [placeholder]=\"thyPlaceholder\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n <span class=\"{{ prefixCls }}-clear\" *ngIf=\"!disabled && thyAllowClear && !thyReadonly && showText\">\n <thy-icon thyIconName=\"close-circle-bold-fill\" (click)=\"onClearTime($event)\" ngClass=\"remove-link remove-link-{{ thySize }}\"></thy-icon>\n </span>\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [@scaleXMotion]=\"thyPlacement === 'left' || thyPlacement === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"thyPlacement === 'top' || thyPlacement === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"\n thyPlacement !== 'left' && thyPlacement !== 'right' && thyPlacement !== 'top' && thyPlacement !== 'bottom' ? 'enter' : 'void'\n \"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass\"\n [(ngModel)]=\"value\"\n [thyFormat]=\"format\"\n [thyHourStep]=\"thyHourStep\"\n [thyMinuteStep]=\"thyMinuteStep\"\n [thySecondStep]=\"thySecondStep\"\n [thyShowSelectNow]=\"thyShowSelectNow\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ThyInnerTimePicker } from './inner/inner-time-picker.component';\nimport { TimePickerConfig } from './inner/inner-time-picker.config';\nimport { ThyTimePickerStore } from './inner/inner-time-picker.store';\nimport { ThyTimePicker } from './time-picker.component';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyTimePanel } from './time-picker-panel.component';\nimport { ThyButtonModule } from 'ngx-tethys/button';\n\nconst COMPONENTS = [ThyInnerTimePicker, ThyTimePicker, ThyTimePanel];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThyInputModule,\n OverlayModule,\n ThyPopoverModule,\n ThyButtonModule,\n ...COMPONENTS\n ],\n exports: [...COMPONENTS],\n providers: [TimePickerConfig, ThyTimePickerStore]\n})\nexport class ThyTimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TimePickerConfig","i2.ThyTimePickerStore"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-time-picker.mjs","sources":["../../../src/time-picker/time-picker.utils.ts","../../../src/time-picker/time-picker-controls.util.ts","../../../src/time-picker/inner/inner-time-picker.config.ts","../../../src/time-picker/inner/inner-time-picker.store.ts","../../../src/time-picker/inner/inner-time-picker.component.ts","../../../src/time-picker/inner/inner-time-picker.component.html","../../../src/time-picker/time-picker-panel.component.ts","../../../src/time-picker/time-picker-panel.component.html","../../../src/time-picker/time-picker.component.ts","../../../src/time-picker/time-picker.component.html","../../../src/time-picker/time-picker.module.ts","../../../src/time-picker/ngx-tethys-time-picker.ts"],"sourcesContent":["import { Time, TimePickerComponentState } from './inner/inner-time-picker.class';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\n\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\n\nexport function isValidDate(value?: string | Date): boolean {\n if (!value) {\n return false;\n }\n\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n\n if (typeof value === 'string') {\n return isValidDate(new Date(value));\n }\n\n return true;\n}\n\nexport function isValidLimit(controls: TimePickerComponentState, newDate: Date): boolean {\n if (controls.min && newDate < controls.min) {\n return false;\n }\n\n if (controls.max && newDate > controls.max) {\n return false;\n }\n\n return true;\n}\n\nexport function parseHours(value: string | number, isPM = false): number {\n const hour = coerceNumberProperty(value);\n if (isNaN(hour) || hour < 0 || hour > (isPM ? hoursPerDayHalf : hoursPerDay)) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = coerceNumberProperty(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n\n return minute;\n}\n\nexport function parseSeconds(value: string | number): number {\n const seconds = coerceNumberProperty(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n\n return seconds;\n}\n\nexport function parseTime(value: string | Date): Date {\n if (typeof value === 'string') {\n return new Date(value);\n }\n\n return value;\n}\n\nexport function changeTime(value: Date, diff: Time): Date {\n if (!value) {\n return changeTime(createDate(new Date(), 0, 0, 0), diff);\n }\n\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n\n if (diff.hour) {\n hour = (hour + coerceNumberProperty(diff.hour)) % hoursPerDay;\n if (hour < 0) {\n hour += hoursPerDay;\n }\n }\n\n if (diff.minute) {\n minutes = minutes + coerceNumberProperty(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + coerceNumberProperty(diff.seconds);\n }\n\n return createDate(value, hour, minutes, seconds);\n}\n\nexport function setTime(value: Date, opts: Time): Date {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n\n if (opts.isPM && hour !== 12) {\n hour += hoursPerDayHalf;\n }\n\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new Date(), hour, minute, seconds);\n }\n\n return value;\n }\n\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n\n return createDate(value, hour, minute, seconds);\n}\n\nexport function createDate(value: Date, hours: number, minutes: number, seconds: number): Date {\n return new Date(value.getFullYear(), value.getMonth(), value.getDate(), hours, minutes, seconds, value.getMilliseconds());\n}\n\nexport function padNumber(value: number): string {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n\n return `0${_value}`;\n}\n\nexport function isHourInputValid(hours: string, isPM: boolean): boolean {\n return !isNaN(parseHours(hours, isPM));\n}\n\nexport function isMinuteInputValid(minutes: string): boolean {\n return !isNaN(parseMinutes(minutes));\n}\n\nexport function isSecondInputValid(seconds: string): boolean {\n return !isNaN(parseSeconds(seconds));\n}\n\nexport function isInputLimitValid(diff: Time, max: Date, min: Date): boolean {\n const newDate = setTime(new Date(), diff);\n\n if (max && newDate > max) {\n return false;\n }\n\n if (min && newDate < min) {\n return false;\n }\n\n return true;\n}\n\nexport function isInputValid(hours: string, minutes = '0', seconds = '0', isPM: boolean): boolean {\n return isHourInputValid(hours, isPM) && isMinuteInputValid(minutes) && isSecondInputValid(seconds);\n}\n","import { changeTime } from './time-picker.utils';\nimport { TimeChangeEvent, TimePickerComponentState, TimePickerControls } from './inner/inner-time-picker.class';\n\nexport function canChangeValue(state: TimePickerComponentState, event?: TimeChangeEvent): boolean {\n if (state.readonlyInput || state.disabled) {\n return false;\n }\n\n if (event) {\n if (event.source === 'wheel' && !state.mousewheel) {\n return false;\n }\n\n if (event.source === 'key' && !state.arrowKeys) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function canChangeHours(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeMinutes(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeSeconds(event: TimeChangeEvent, controls: TimePickerControls): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n\n return true;\n}\n\nexport function getControlsValue(state: TimePickerComponentState): TimePickerComponentState {\n const {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowKeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n } = state;\n\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowKeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\n\nexport function timePickerControls(value: Date, state: TimePickerComponentState): TimePickerControls {\n const hoursPerDayHalf = 12;\n const { min, max, hourStep, minuteStep, secondsStep, showSeconds } = state;\n const res: TimePickerControls = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n };\n\n if (!value) {\n return res;\n }\n\n // compare dates\n if (max) {\n const _newHour = changeTime(value, { hour: hourStep });\n res.canIncrementHours = max > _newHour;\n\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, { minute: minuteStep });\n res.canIncrementMinutes = showSeconds ? max > _newMinutes : max >= _newMinutes;\n }\n\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: secondsStep });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;\n }\n }\n\n if (min) {\n const _newHour = changeTime(value, { hour: -hourStep });\n res.canDecrementHours = min < _newHour;\n\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, { minute: -minuteStep });\n res.canDecrementMinutes = showSeconds ? min < _newMinutes : min <= _newMinutes;\n }\n\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: -secondsStep });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;\n }\n }\n\n return res;\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class TimePickerConfig {\n /** hours change step */\n hourStep = 1;\n /** hours change step */\n minuteStep = 5;\n /** seconds changes step */\n secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n showMeridian = true;\n /** meridian labels based on locale */\n meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n arrowKeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n showSpinners = true;\n /** show seconds in timePicker */\n showSeconds = false;\n /** show minutes in timePicker */\n showMinutes = true;\n /** minimum time user can select */\n min: Date;\n /** maximum time user can select */\n max: Date;\n /** placeholder for hours field in timePicker */\n hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timePicker */\n minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timePicker */\n secondsPlaceholder = 'SS';\n}\n","import { MiniStore, MiniAction } from 'ngx-tethys/core';\nimport { TimeChangeEvent, TimePickerComponentState, Time, TimePickerControls } from './inner-time-picker.class';\nimport { canChangeHours, canChangeMinutes, canChangeSeconds, canChangeValue, timePickerControls } from '../time-picker-controls.util';\nimport { changeTime, setTime, isValidLimit } from '../time-picker.utils';\nimport { Injectable } from '@angular/core';\nimport { TimePickerConfig } from './inner-time-picker.config';\n\nexport interface TimePickerState {\n value: Date;\n config: TimePickerComponentState;\n controls: TimePickerControls;\n}\n\nexport const initialState: TimePickerState = {\n value: null,\n config: new TimePickerConfig(),\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n }\n};\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyTimePickerStore extends MiniStore<TimePickerState> {\n constructor() {\n super(initialState);\n }\n\n @MiniAction()\n writeValue(value: Date) {\n this.setState({ value: value });\n }\n\n @MiniAction()\n changeHours(event: TimeChangeEvent) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeHours(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: event.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n changeMinutes(event: TimeChangeEvent) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeMinutes(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: event.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n changeSeconds(event: TimeChangeEvent) {\n const state = this.snapshot;\n if (!canChangeValue(state.config, event) || !canChangeSeconds(event, state.controls)) {\n return state;\n }\n\n const _newTime = changeTime(state.value, {\n seconds: event.step\n });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n setTime(value: Time) {\n const state = this.snapshot;\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, value);\n this.setState({ value: _newTime });\n }\n\n @MiniAction()\n updateControls(value: TimePickerComponentState) {\n const state = this.snapshot;\n const _newControlsState = timePickerControls(state.value, value);\n const _newState: TimePickerState = {\n value: state.value,\n config: value,\n controls: _newControlsState\n };\n\n if (state.config.showMeridian !== _newState.config.showMeridian) {\n if (state.value) {\n _newState.value = new Date(state.value);\n }\n }\n\n this.setState(_newState);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n StaticProvider\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { getControlsValue } from '../time-picker-controls.util';\nimport { TimePickerConfig } from './inner-time-picker.config';\n\nimport { TimeChangeSource, TimePickerComponentState, TimePickerControls } from './inner-time-picker.class';\n\nimport {\n isHourInputValid,\n isInputLimitValid,\n isInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isValidDate,\n padNumber,\n parseTime\n} from '../time-picker.utils';\n\nimport { Subscription } from 'rxjs';\n\nimport { NgIf } from '@angular/common';\nimport { ThyTimePickerStore } from './inner-time-picker.store';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: StaticProvider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInnerTimePicker),\n multi: true\n};\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-inner-time-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, ThyTimePickerStore],\n templateUrl: './inner-time-picker.component.html',\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyInnerTimePicker implements ControlValueAccessor, TimePickerComponentState, TimePickerControls, OnChanges, OnDestroy {\n /** hours change step */\n @Input() hourStep: number;\n /** hours change step */\n @Input() minuteStep: number;\n /** seconds change step */\n @Input() secondsStep: number;\n /** if true hours and minutes fields will be readonly */\n @Input() readonlyInput: boolean;\n /** if true hours and minutes fields will be disabled */\n @Input() disabled: boolean;\n /** if true scroll inside hours and minutes inputs will change time */\n @Input() mousewheel: boolean;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n @Input() arrowKeys: boolean;\n /** if true spinner arrows above and below the inputs will be shown */\n @Input() showSpinners: boolean;\n /** if true meridian button will be shown */\n @Input() showMeridian: boolean;\n /** show minutes in timePicker */\n @Input() showMinutes: boolean;\n /** show seconds in timePicker */\n @Input() showSeconds: boolean;\n /** meridian labels based on locale */\n @Input() meridians: string[];\n /** minimum time user can select */\n @Input() min: Date;\n /** maximum time user can select */\n @Input() max: Date;\n /** placeholder for hours field in timePicker */\n @Input() hoursPlaceholder: string;\n /** placeholder for minutes field in timePicker */\n @Input() minutesPlaceholder: string;\n /** placeholder for seconds field in timePicker */\n @Input() secondsPlaceholder: string;\n\n /** emits true if value is a valid date */\n @Output() isValid = new EventEmitter<boolean>();\n\n // ui variables\n hours: string;\n minutes: string;\n seconds: string;\n meridian: string;\n\n get isEditable(): boolean {\n return !(this.readonlyInput || this.disabled);\n }\n\n // min/max validation for input fields\n invalidHours = false;\n invalidMinutes = false;\n invalidSeconds = false;\n\n // time picker controls state\n canIncrementHours: boolean;\n canIncrementMinutes: boolean;\n canIncrementSeconds: boolean;\n\n canDecrementHours: boolean;\n canDecrementMinutes: boolean;\n canDecrementSeconds: boolean;\n\n canToggleMeridian: boolean;\n\n // control value accessor methods\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n private timerPickerSubscription = new Subscription();\n\n constructor(\n _config: TimePickerConfig,\n private _cd: ChangeDetectorRef,\n private _store: ThyTimePickerStore\n ) {\n Object.assign(this, _config);\n\n this.timerPickerSubscription.add(\n _store\n .select(state => state.value)\n .subscribe((value: Date) => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n this._store.updateControls(getControlsValue(this));\n })\n );\n\n this.timerPickerSubscription.add(\n _store\n .select(state => state.controls)\n .subscribe((controlsState: TimePickerControls) => {\n this.isValid.emit(isInputValid(this.hours, this.minutes, this.seconds, this.isPM()));\n Object.assign(this, controlsState);\n _cd.markForCheck();\n })\n );\n }\n\n resetValidation(): void {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n\n isPM(): boolean {\n return this.showMeridian && this.meridian === this.meridians[1];\n }\n\n prevDef($event: Event) {\n $event.preventDefault();\n }\n\n wheelSign($event: WheelEventInit): number {\n return Math.sign($event.deltaY) * -1;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._store.updateControls(getControlsValue(this));\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeHours({ step, source });\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeMinutes({ step, source });\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.changeSeconds({ step, source });\n }\n\n updateHours(hours: string): void {\n this.resetValidation();\n this.hours = hours;\n\n const isValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateMinutes(minutes: string) {\n this.resetValidation();\n this.minutes = minutes;\n\n const isValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateSeconds(seconds: string) {\n this.resetValidation();\n this.seconds = seconds;\n\n const isValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n isValidLimit(): boolean {\n return isInputLimitValid(\n {\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n },\n this.max,\n this.min\n );\n }\n\n _updateTime() {\n const _seconds = this.showSeconds ? this.seconds : void 0;\n const _minutes = this.showMinutes ? this.minutes : void 0;\n if (!isInputValid(this.hours, _minutes, _seconds, this.isPM())) {\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._store.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n });\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n });\n }\n\n writeValue(obj: string | null | undefined | Date): void {\n if (isValidDate(obj)) {\n this._store.writeValue(parseTime(obj));\n } else if (obj == null) {\n this._store.writeValue(null);\n }\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.timerPickerSubscription.unsubscribe();\n }\n\n private _renderTime(value: string | Date): void {\n if (!isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians[0];\n\n return;\n }\n\n const _value = parseTime(value);\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n\n if (this.showMeridian) {\n this.meridian = this.meridians[_hours >= _hoursPerDayHalf ? 1 : 0];\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n}\n","<table>\n <tbody>\n <tr class=\"text-center\" [hidden]=\"!showSpinners\">\n <!-- increment hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementHours || !isEditable\" (click)=\"changeHours(hourStep)\"\n ><span class=\"thy-chevron thy-chevron-up\"></span\n ></a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\">&nbsp;&nbsp;&nbsp;</td>\n <!-- increment minutes button -->\n <td *ngIf=\"showMinutes\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementMinutes || !isEditable\" (click)=\"changeMinutes(minuteStep)\"\n ><span class=\"thy-chevron thy-chevron-up\"></span\n ></a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\">&nbsp;</td>\n <!-- increment seconds button -->\n <td *ngIf=\"showSeconds\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementSeconds || !isEditable\" (click)=\"changeSeconds(secondsStep)\">\n <span class=\"thy-chevron thy-chevron-up\"></span>\n </a>\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\">&nbsp;&nbsp;&nbsp;</td>\n <!-- meridian placeholder-->\n <td *ngIf=\"showMeridian\"></td>\n </tr>\n <tr>\n <!-- hours -->\n <td class=\"form-group\" [class.has-error]=\"invalidHours\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidHours\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"hoursPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"hours\"\n (wheel)=\"prevDef($event); changeHours(hourStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeHours(hourStep, 'key')\"\n (keydown.ArrowDown)=\"changeHours(-hourStep, 'key')\"\n (change)=\"updateHours($event.target.value)\"\n />\n </td>\n\n <!-- divider -->\n <td *ngIf=\"showMinutes\">&nbsp;:&nbsp;</td>\n <!-- minutes -->\n <td class=\"form-group\" *ngIf=\"showMinutes\" [class.has-error]=\"invalidMinutes\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidMinutes\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"minutesPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"minutes\"\n (wheel)=\"prevDef($event); changeMinutes(minuteStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeMinutes(minuteStep, 'key')\"\n (keydown.ArrowDown)=\"changeMinutes(-minuteStep, 'key')\"\n (change)=\"updateMinutes($event.target.value)\"\n />\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\">&nbsp;:&nbsp;</td>\n <!-- seconds -->\n <td class=\"form-group\" *ngIf=\"showSeconds\" [class.has-error]=\"invalidSeconds\">\n <input\n type=\"text\"\n [class.is-invalid]=\"invalidSeconds\"\n class=\"form-control text-center thy-time-picker-field\"\n [placeholder]=\"secondsPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"seconds\"\n (wheel)=\"prevDef($event); changeSeconds(secondsStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeSeconds(secondsStep, 'key')\"\n (keydown.ArrowDown)=\"changeSeconds(-secondsStep, 'key')\"\n (change)=\"updateSeconds($event.target.value)\"\n />\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\">&nbsp;&nbsp;&nbsp;</td>\n <!-- meridian -->\n <td *ngIf=\"showMeridian\">\n <button\n type=\"button\"\n class=\"btn btn-default text-center\"\n [disabled]=\"!isEditable || !canToggleMeridian\"\n [class.disabled]=\"!isEditable || !canToggleMeridian\"\n (click)=\"toggleMeridian()\"\n >\n {{ meridian }}\n </button>\n </td>\n </tr>\n <tr class=\"text-center\" [hidden]=\"!showSpinners\">\n <!-- decrement hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementHours || !isEditable\" (click)=\"changeHours(-hourStep)\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\">&nbsp;&nbsp;&nbsp;</td>\n <!-- decrement minutes button-->\n <td *ngIf=\"showMinutes\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementMinutes || !isEditable\" (click)=\"changeMinutes(-minuteStep)\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\">&nbsp;</td>\n <!-- decrement seconds button-->\n <td *ngIf=\"showSeconds\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementSeconds || !isEditable\" (click)=\"changeSeconds(-secondsStep)\">\n <span class=\"thy-chevron thy-chevron-down\"></span>\n </a>\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\">&nbsp;&nbsp;&nbsp;</td>\n <!-- meridian placeholder-->\n <td *ngIf=\"showMeridian\"></td>\n </tr>\n </tbody>\n</table>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isValid } from 'date-fns';\nimport { reqAnimFrame } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { NgIf, NgFor, DecimalPipe } from '@angular/common';\n\n/**\n * 时间选择面板组件\n * @name thy-time-picker-panel\n */\n@Component({\n selector: 'thy-time-picker-panel',\n templateUrl: './time-picker-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyTimePanel)\n }\n ],\n host: {\n class: 'thy-time-picker-panel',\n '[class.thy-time-picker-panel-has-bottom-operation]': `thyShowOperations`,\n '[class.thy-time-picker-panel-columns-2]': `showColumnCount === 2`,\n '[class.thy-time-picker-panel-columns-3]': `showColumnCount === 3`\n },\n standalone: true,\n imports: [NgIf, NgFor, ThyButton, DecimalPipe]\n})\nexport class ThyTimePanel implements OnInit, OnDestroy, ControlValueAccessor {\n @ViewChild('hourListElement', { static: false }) hourListRef: ElementRef<HTMLElement>;\n\n @ViewChild('minuteListElement', { static: false }) minuteListRef: ElementRef<HTMLElement>;\n\n @ViewChild('secondListElement', { static: false }) secondListRef: ElementRef<HTMLElement>;\n\n /**\n * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'\n * @type string\n * @default HH:mm:ss\n */\n @Input() set thyFormat(value: string) {\n if (value) {\n const formatSet = new Set(value);\n this.showHourColumn = formatSet.has('H') || formatSet.has('h');\n this.showMinuteColumn = formatSet.has('m');\n this.showSecondColumn = formatSet.has('s');\n } else {\n this.showHourColumn = true;\n this.showMinuteColumn = true;\n this.showSecondColumn = true;\n }\n this.showColumnCount = [this.showHourColumn, this.showMinuteColumn, this.showSecondColumn].filter(m => m).length;\n this.cdr.markForCheck();\n }\n\n /**\n * 小时间隔步长\n * @type number\n */\n @Input() thyHourStep: number = 1;\n\n /**\n * 分钟间隔步长\n * @type number\n */\n @Input() thyMinuteStep: number = 1;\n\n /**\n * 秒间隔步长\n * @type number\n */\n @Input() thySecondStep: number = 1;\n\n /**\n * 展示选择此刻\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowSelectNow = true;\n\n /**\n * 展示底部操作\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowOperations = true;\n\n /**\n * 选择时间触发的事件\n * @type EventEmitter<Date>\n */\n @Output() thyPickChange = new EventEmitter<Date>();\n\n /**\n * 关闭面板事件\n * @type EventEmitter<void>\n */\n @Output() thyClosePanel = new EventEmitter<void>();\n\n // margin-top + 1px border\n SCROLL_OFFSET_SPACING = 5;\n\n SCROLL_DEFAULT_DURATION = 120;\n\n prefixCls = 'thy-time-picker-panel';\n\n hourRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n minuteRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n secondRange: ReadonlyArray<{ value: number; disabled: boolean }> = [];\n\n showHourColumn = true;\n\n showMinuteColumn = true;\n\n showSecondColumn = true;\n\n showColumnCount: number = 3;\n\n value: Date;\n\n hour: number;\n\n minute: number;\n\n second: number;\n\n initialScrollPosition: boolean;\n\n onValueChangeFn: (val: Date) => void = () => void 0;\n\n onTouchedFn: () => void = () => void 0;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.generateTimeRange();\n this.initialValue();\n setTimeout(() => {\n this.initialScrollPosition = true;\n });\n }\n\n generateTimeRange() {\n this.hourRange = this.buildTimeRange(24, this.thyHourStep);\n this.minuteRange = this.buildTimeRange(60, this.thyMinuteStep);\n this.secondRange = this.buildTimeRange(60, this.thySecondStep);\n }\n\n pickHours(hours: { value: number; disabled: boolean }, index: number) {\n this.value.setHours(hours.value);\n this.hour = hours.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.hourListRef.nativeElement, index);\n }\n\n pickMinutes(minutes: { value: number; disabled: boolean }, index: number) {\n this.value.setMinutes(minutes.value);\n this.minute = minutes.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.minuteListRef.nativeElement, index);\n }\n\n pickSeconds(seconds: { value: number; disabled: boolean }, index: number) {\n this.value.setSeconds(seconds.value);\n this.second = seconds.value;\n this.thyPickChange.emit(this.value);\n this.scrollTo(this.secondListRef.nativeElement, index);\n }\n\n selectNow() {\n this.value = new Date();\n this.setHMSProperty();\n this.thyPickChange.emit(this.value);\n this.thyClosePanel.emit();\n }\n\n confirmPickTime() {\n this.onValueChangeFn(this.value || new Date());\n this.thyClosePanel.emit();\n }\n\n scrollTo(container: HTMLElement, index: number = 0, duration: number = this.SCROLL_DEFAULT_DURATION) {\n const offsetTop = (container.children[index] as HTMLElement).offsetTop - this.SCROLL_OFFSET_SPACING;\n this.runScrollAnimationFrame(container, offsetTop, duration);\n }\n\n writeValue(value: Date | number): void {\n if (value && isValid(value)) {\n this.value = new Date(value);\n this.setHMSProperty();\n } else {\n this.initialValue();\n }\n this.autoScroll(this.initialScrollPosition ? this.SCROLL_DEFAULT_DURATION : 0);\n\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: Date) => void): void {\n this.onValueChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn;\n }\n\n trackByFn(index: number): number {\n return index;\n }\n\n private initialValue() {\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n this.value = new TinyDate().setHms(0, 0, 0).nativeDate;\n }\n\n private buildTimeRange(length: number, step: number = 1, start: number = 0, disables: number[] = []) {\n return new Array(Math.ceil(length / step)).fill(0).map((_, i) => {\n const value = (i + start) * step;\n return {\n value: value,\n disabled: disables.indexOf(value) > -1\n };\n });\n }\n\n private setHMSProperty() {\n this.hour = this.value.getHours();\n this.minute = this.value.getMinutes();\n this.second = this.value.getSeconds();\n }\n\n private resetScrollPosition() {\n if (this.hourListRef) {\n this.hourListRef.nativeElement.scrollTop = 0;\n }\n if (this.minuteListRef) {\n this.minuteListRef.nativeElement.scrollTop = 0;\n }\n if (this.secondListRef) {\n this.secondListRef.nativeElement.scrollTop = 0;\n }\n this.initialScrollPosition = false;\n }\n\n private runScrollAnimationFrame(container: HTMLElement, to: number, duration: number = this.SCROLL_DEFAULT_DURATION) {\n if (duration <= 0) {\n container.scrollTop = to;\n return;\n }\n const offset = to - container.scrollTop;\n const frame = (offset / duration) * 10;\n this.ngZone.runOutsideAngular(() => {\n reqAnimFrame(() => {\n container.scrollTop += frame;\n if (container.scrollTop === to) {\n return;\n }\n this.runScrollAnimationFrame(container, to, duration - 10);\n });\n });\n }\n\n private autoScroll(duration: number = this.SCROLL_DEFAULT_DURATION) {\n if (this.hourListRef) {\n this.scrollTo(\n this.hourListRef.nativeElement,\n this.hourRange.findIndex(m => m.value === this.hour),\n duration\n );\n }\n if (this.minuteListRef) {\n this.scrollTo(\n this.minuteListRef.nativeElement,\n this.minuteRange.findIndex(m => m.value === this.minute),\n duration\n );\n }\n if (this.secondListRef) {\n this.scrollTo(\n this.secondListRef.nativeElement,\n this.secondRange.findIndex(m => m.value === this.second),\n duration\n );\n }\n }\n\n ngOnDestroy(): void {\n // 关闭面板时有 0.2s 的动画,所以延迟 200ms 再重置滚动位置\n setTimeout(() => {\n this.resetScrollPosition();\n }, 200);\n }\n}\n","<div class=\"{{ prefixCls }}-content\">\n <ul #hourListElement *ngIf=\"showHourColumn\" class=\"{{ prefixCls }}-time-column {{ prefixCls }}-hour-column\">\n <ng-container *ngFor=\"let time of hourRange; let i = index; trackBy: trackByFn\">\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"hour === time.value\"\n (click)=\"pickHours(time, i)\"\n >\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n </ng-container>\n </ul>\n <ul #minuteListElement *ngIf=\"showMinuteColumn\" class=\"{{ prefixCls }}-time-column {{ prefixCls }}-minute-column\">\n <ng-container *ngFor=\"let time of minuteRange; let i = index; trackBy: trackByFn\">\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"minute === time.value\"\n (click)=\"pickMinutes(time, i)\"\n >\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n </ng-container>\n </ul>\n <ul #secondListElement *ngIf=\"showSecondColumn\" class=\"{{ prefixCls }}-time-column {{ prefixCls }}-second-column\">\n <ng-container *ngFor=\"let time of secondRange; let i = index; trackBy: trackByFn\">\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"second === time.value\"\n (click)=\"pickSeconds(time, i)\"\n >\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n </ng-container>\n </ul>\n</div>\n\n<div *ngIf=\"thyShowOperations\" class=\"{{ prefixCls }}-bottom-operation\">\n <a *ngIf=\"thyShowSelectNow\" href=\"javascript:;\" class=\"{{ prefixCls }}-time-now\" (click)=\"selectNow()\">此刻</a>\n <button class=\"{{ prefixCls }}-time-confirm\" thyButton=\"primary\" thySize=\"xs\" class=\"confirm\" (click)=\"confirmPickTime()\">确定</button>\n</div>\n","import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { isValid } from 'date-fns';\nimport { getFlexiblePositions, ThyPlacement } from 'ngx-tethys/core';\nimport { TinyDate, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyTimePanel } from './time-picker-panel.component';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet, NgIf, NgClass } from '@angular/common';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\n\nexport type TimePickerSize = 'xs' | 'sm' | 'md' | 'lg' | 'default';\n\n/**\n * 时间选择组件\n * @name thy-time-picker\n */\n@Component({\n selector: 'thy-time-picker',\n templateUrl: './time-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyTimePicker)\n }\n ],\n host: {\n class: 'thy-time-picker',\n '[class.thy-time-picker-disabled]': `disabled`,\n '[class.thy-time-picker-readonly]': `thyReadonly`\n },\n standalone: true,\n imports: [\n CdkOverlayOrigin,\n ThyInputDirective,\n FormsModule,\n NgTemplateOutlet,\n NgIf,\n ThyIcon,\n NgClass,\n CdkConnectedOverlay,\n ThyTimePanel\n ],\n animations: [scaleXMotion, scaleYMotion, scaleMotion]\n})\nexport class ThyTimePicker implements OnInit, AfterViewInit, ControlValueAccessor {\n @ViewChild(CdkConnectedOverlay, { static: true }) cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('origin', { static: true }) origin: CdkOverlayOrigin;\n\n @ViewChild('pickerInput', { static: true }) inputRef: ElementRef<HTMLInputElement>;\n\n @ViewChild('overlayContainer', { static: false }) overlayContainer: ElementRef<HTMLElement>;\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'lg' | 'default'\n */\n @Input() thySize: TimePickerSize = 'default';\n\n /**\n * 输入框提示文字\n * @type string\n */\n @Input() thyPlaceholder: string = '选择时间';\n\n /**\n * 弹出位置\n * @type 'top' | 'topLeft'| 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom'\n */\n @Input() thyPlacement: ThyPlacement = 'bottomLeft';\n\n /**\n * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'\n * @type string\n * @default HH:mm:ss\n */\n @Input() set thyFormat(value: string) {\n this.format = value || 'HH:mm:ss';\n if (this.value && isValid(this.value)) {\n this.showText = new TinyDate(this.value).format(this.format);\n }\n }\n\n /**\n * 小时间隔步长\n * @type number\n */\n @Input() thyHourStep: number = 1;\n\n /**\n * 分钟间隔步长\n * @type number\n */\n @Input() thyMinuteStep: number = 1;\n\n /**\n * 秒间隔步长\n * @type number\n */\n @Input() thySecondStep: number = 1;\n\n /**\n * 弹出层组件 class\n * @type string\n */\n @Input() thyPopupClass: string;\n\n /**\n * 是否显示弹出层遮罩\n * @type boolean\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyBackdrop: boolean;\n\n /**\n * 禁用\n * @type boolean\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n get thyDisabled(): boolean {\n return this.disabled;\n }\n\n /**\n * 只读\n * @type boolean\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyReadonly: boolean;\n\n /**\n * 展示选择此刻\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowSelectNow = true;\n\n /**\n * 可清空值\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyAllowClear = true;\n\n /**\n * 打开/关闭弹窗事件\n * @type EventEmitter<boolean>\n */\n @Output() thyOpenChange = new EventEmitter<boolean>();\n\n prefixCls = 'thy-time-picker';\n\n overlayPositions = getFlexiblePositions(this.thyPlacement, 4);\n\n format: string = 'HH:mm:ss';\n\n disabled: boolean;\n\n showText: string = '';\n\n openState: boolean;\n\n value: Date = new TinyDate().setHms(0, 0, 0).nativeDate;\n\n originValue: Date;\n\n keepFocus: boolean;\n\n private isDisabledFirstChange = true;\n\n onValueChangeFn: (val: number | Date) => void = () => void 0;\n\n onTouchedFn: () => void = () => void 0;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n this.overlayPositions = getFlexiblePositions(this.thyPlacement, 4);\n }\n\n onInputPickerClick() {\n if (this.disabledUserOperation()) {\n return;\n }\n this.openOverlay();\n }\n\n onInputPickerBlur() {\n if (this.keepFocus) {\n this.focus();\n } else {\n if (this.openState) {\n this.closeOverlay();\n }\n }\n }\n\n onPickTime(value: Date) {\n this.originValue = new Date(value);\n this.setValue(value);\n this.emitValue();\n }\n\n onPickTimeConfirm(value: Date) {\n this.originValue = new Date(value);\n this.confirmValue(value);\n }\n\n onClearTime(e: Event) {\n e.stopPropagation();\n this.originValue = null;\n this.setValue(null);\n this.emitValue();\n }\n\n onCustomizeInput(value: string) {\n this.formatInputValue(value);\n this.cdr.detectChanges();\n }\n\n onKeyupEnter() {\n this.confirmValue(this.value);\n this.closeOverlay();\n }\n\n onKeyupEsc() {\n this.closeOverlay();\n }\n\n onPositionChange(e: Event) {\n this.cdr.detectChanges();\n }\n\n onClickBackdrop() {\n this.closeOverlay();\n }\n\n onOverlayDetach() {\n this.closeOverlay();\n }\n\n onOutsideClick(event: Event) {\n if (\n this.openState &&\n !this.elementRef.nativeElement.contains(event.target) &&\n !this.overlayContainer.nativeElement.contains(event.target as Node)\n ) {\n this.closeOverlay();\n this.cdr.detectChanges();\n }\n }\n\n onOverlayAttach() {\n if (this.cdkConnectedOverlay && this.cdkConnectedOverlay.overlayRef) {\n this.cdkConnectedOverlay.overlayRef.updatePosition();\n }\n }\n\n openOverlay() {\n if (this.disabledUserOperation()) {\n return;\n }\n this.keepFocus = true;\n this.openState = true;\n this.thyOpenChange.emit(this.openState);\n }\n\n closeOverlay() {\n if (this.openState) {\n this.keepFocus = false;\n this.openState = false;\n this.blur();\n if (this.showText?.length) {\n if (!this.validateCustomizeInput(this.showText)) {\n this.setValue(this.originValue);\n } else {\n this.showText = new TinyDate(this.value).format(this.format);\n }\n } else {\n if (!this.thyAllowClear) {\n this.setValue(this.originValue);\n }\n }\n this.thyOpenChange.emit(this.openState);\n }\n }\n\n focus() {\n if (this.inputRef) {\n this.inputRef.nativeElement.focus();\n }\n }\n\n blur() {\n if (this.inputRef) {\n this.inputRef.nativeElement.blur();\n }\n }\n\n writeValue(value: Date | number): void {\n if (value && isValid(value)) {\n this.originValue = new Date(value);\n this.setValue(new TinyDate(value).nativeDate);\n } else {\n this.value = new TinyDate().setHms(0, 0, 0).nativeDate;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onValueChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = (this.isDisabledFirstChange && this.thyDisabled) || isDisabled;\n this.isDisabledFirstChange = false;\n }\n\n private setValue(value: Date, formatText: boolean = true) {\n if (value && isValid(value)) {\n this.value = new Date(value);\n if (formatText) {\n this.showText = new TinyDate(this.value).format(this.format);\n }\n } else {\n this.value = null;\n this.showText = '';\n }\n this.cdr.markForCheck();\n }\n\n private confirmValue(value: Date) {\n this.setValue(value);\n this.emitValue();\n this.cdr.markForCheck();\n }\n\n private emitValue() {\n if (this.onValueChangeFn) {\n this.onValueChangeFn(this.value);\n }\n if (this.onTouchedFn) {\n this.onTouchedFn();\n }\n }\n\n private formatInputValue(value: string) {\n if (!this.openState) {\n this.openOverlay();\n }\n if (value?.length) {\n if (this.validateCustomizeInput(value)) {\n const formatter = value.split(':');\n const hour = formatter[0] || 0;\n const minute = formatter[1] || 0;\n const second = formatter[2] || 0;\n this.setValue(new TinyDate().setHms(+hour, +minute, +second).nativeDate, false);\n this.originValue = new Date(this.value);\n this.emitValue();\n }\n } else {\n if (this.thyAllowClear) {\n this.originValue = null;\n this.setValue(null);\n this.emitValue();\n } else {\n this.value = new Date(this.originValue);\n this.showText = ``;\n this.cdr.markForCheck();\n }\n }\n }\n\n private validateCustomizeInput(value: string): boolean {\n let valid: boolean = false;\n if (value.length > this.format.length) {\n return valid;\n }\n const formatRule = this.format.split(':');\n const formatter = value.split(':');\n valid = !formatRule\n .map((m, i) => {\n return !!formatter[i];\n })\n .includes(false);\n return valid;\n }\n\n private disabledUserOperation() {\n return this.disabled || this.thyReadonly;\n }\n}\n","<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"thyReadonly\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [thySize]=\"thySize\"\n [disabled]=\"disabled\"\n [readonly]=\"thyReadonly\"\n [placeholder]=\"thyPlaceholder\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n <span class=\"{{ prefixCls }}-clear\" *ngIf=\"!disabled && thyAllowClear && !thyReadonly && showText\">\n <thy-icon thyIconName=\"close-circle-bold-fill\" (click)=\"onClearTime($event)\" ngClass=\"remove-link remove-link-{{ thySize }}\"></thy-icon>\n </span>\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [@scaleXMotion]=\"thyPlacement === 'left' || thyPlacement === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"thyPlacement === 'top' || thyPlacement === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"\n thyPlacement !== 'left' && thyPlacement !== 'right' && thyPlacement !== 'top' && thyPlacement !== 'bottom' ? 'enter' : 'void'\n \"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass\"\n [(ngModel)]=\"value\"\n [thyFormat]=\"format\"\n [thyHourStep]=\"thyHourStep\"\n [thyMinuteStep]=\"thyMinuteStep\"\n [thySecondStep]=\"thySecondStep\"\n [thyShowSelectNow]=\"thyShowSelectNow\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ThyInnerTimePicker } from './inner/inner-time-picker.component';\nimport { TimePickerConfig } from './inner/inner-time-picker.config';\nimport { ThyTimePickerStore } from './inner/inner-time-picker.store';\nimport { ThyTimePicker } from './time-picker.component';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyTimePanel } from './time-picker-panel.component';\nimport { ThyButtonModule } from 'ngx-tethys/button';\n\nconst COMPONENTS = [ThyInnerTimePicker, ThyTimePicker, ThyTimePanel];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThyInputModule,\n OverlayModule,\n ThyPopoverModule,\n ThyButtonModule,\n ...COMPONENTS\n ],\n exports: [...COMPONENTS],\n providers: [TimePickerConfig, ThyTimePickerStore]\n})\nexport class ThyTimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TimePickerConfig","i2.ThyTimePickerStore"],"mappings":"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"}
@@ -14,10 +14,10 @@ class ThyTimelineService {
14
14
  markForCheck() {
15
15
  this.check$.next();
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineService }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineService }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineService, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineService, decorators: [{
21
21
  type: Injectable
22
22
  }] });
23
23
 
@@ -52,10 +52,10 @@ class ThyTimelineItem {
52
52
  this.timelineService.markForCheck();
53
53
  }
54
54
  ngOnInit() { }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineItem, deps: [{ token: i0.ChangeDetectorRef }, { token: ThyTimelineService }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ThyTimelineItem, isStandalone: true, selector: "thy-timeline-item", inputs: { thyColor: "thyColor", thyPosition: "thyPosition" }, host: { properties: { "class": "this.className" } }, queries: [{ propertyName: "dot", first: true, predicate: ["dot"], descendants: true }, { propertyName: "description", first: true, predicate: ["description"], descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["timelineItem"], descendants: true }], exportAs: ["ThyTimelineItem"], usesOnChanges: true, ngImport: i0, template: "<ng-template #timelineItem>\n <div\n class=\"thy-timeline-item\"\n [class.thy-timeline-item-reverse-last]=\"isLast && reverse\"\n [class.thy-timeline-item-last]=\"isLast\"\n [class.thy-timeline-item-reverse-first]=\"isFirst && reverse\"\n [class.thy-timeline-item-right]=\"(thyPosition || position) === 'right'\"\n [class.thy-timeline-item-left]=\"(thyPosition || position) === 'left'\"\n >\n <div class=\"thy-timeline-item-tail\"></div>\n <div\n class=\"thy-timeline-item-dot\"\n [class.thy-timeline-item-dot-primary]=\"color === 'primary'\"\n [class.thy-timeline-item-dot-success]=\"color === 'success'\"\n [class.thy-timeline-item-dot-warning]=\"color === 'warning'\"\n [class.thy-timeline-item-dot-danger]=\"color === 'danger'\"\n [class.thy-timeline-item-dot-info]=\"color === 'info'\"\n [class.thy-timeline-item-dot-custom]=\"!!dot\"\n >\n <ng-template *ngIf=\"dot\" [ngTemplateOutlet]=\"dot\"></ng-template>\n </div>\n <div class=\"thy-timeline-item-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"thy-timeline-item-content-other-side\">\n <ng-template *ngIf=\"description\" [ngTemplateOutlet]=\"description\"></ng-template>\n </div>\n </div>\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineItem, deps: [{ token: i0.ChangeDetectorRef }, { token: ThyTimelineService }], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyTimelineItem, isStandalone: true, selector: "thy-timeline-item", inputs: { thyColor: "thyColor", thyPosition: "thyPosition" }, host: { properties: { "class": "this.className" } }, queries: [{ propertyName: "dot", first: true, predicate: ["dot"], descendants: true }, { propertyName: "description", first: true, predicate: ["description"], descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["timelineItem"], descendants: true }], exportAs: ["ThyTimelineItem"], usesOnChanges: true, ngImport: i0, template: "<ng-template #timelineItem>\n <div\n class=\"thy-timeline-item\"\n [class.thy-timeline-item-reverse-last]=\"isLast && reverse\"\n [class.thy-timeline-item-last]=\"isLast\"\n [class.thy-timeline-item-reverse-first]=\"isFirst && reverse\"\n [class.thy-timeline-item-right]=\"(thyPosition || position) === 'right'\"\n [class.thy-timeline-item-left]=\"(thyPosition || position) === 'left'\"\n >\n <div class=\"thy-timeline-item-tail\"></div>\n <div\n class=\"thy-timeline-item-dot\"\n [class.thy-timeline-item-dot-primary]=\"color === 'primary'\"\n [class.thy-timeline-item-dot-success]=\"color === 'success'\"\n [class.thy-timeline-item-dot-warning]=\"color === 'warning'\"\n [class.thy-timeline-item-dot-danger]=\"color === 'danger'\"\n [class.thy-timeline-item-dot-info]=\"color === 'info'\"\n [class.thy-timeline-item-dot-custom]=\"!!dot\"\n >\n <ng-template *ngIf=\"dot\" [ngTemplateOutlet]=\"dot\"></ng-template>\n </div>\n <div class=\"thy-timeline-item-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"thy-timeline-item-content-other-side\">\n <ng-template *ngIf=\"description\" [ngTemplateOutlet]=\"description\"></ng-template>\n </div>\n </div>\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineItem, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineItem, decorators: [{
59
59
  type: Component,
60
60
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'thy-timeline-item', exportAs: 'ThyTimelineItem', standalone: true, imports: [NgIf, NgTemplateOutlet], template: "<ng-template #timelineItem>\n <div\n class=\"thy-timeline-item\"\n [class.thy-timeline-item-reverse-last]=\"isLast && reverse\"\n [class.thy-timeline-item-last]=\"isLast\"\n [class.thy-timeline-item-reverse-first]=\"isFirst && reverse\"\n [class.thy-timeline-item-right]=\"(thyPosition || position) === 'right'\"\n [class.thy-timeline-item-left]=\"(thyPosition || position) === 'left'\"\n >\n <div class=\"thy-timeline-item-tail\"></div>\n <div\n class=\"thy-timeline-item-dot\"\n [class.thy-timeline-item-dot-primary]=\"color === 'primary'\"\n [class.thy-timeline-item-dot-success]=\"color === 'success'\"\n [class.thy-timeline-item-dot-warning]=\"color === 'warning'\"\n [class.thy-timeline-item-dot-danger]=\"color === 'danger'\"\n [class.thy-timeline-item-dot-info]=\"color === 'info'\"\n [class.thy-timeline-item-dot-custom]=\"!!dot\"\n >\n <ng-template *ngIf=\"dot\" [ngTemplateOutlet]=\"dot\"></ng-template>\n </div>\n <div class=\"thy-timeline-item-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"thy-timeline-item-content-other-side\">\n <ng-template *ngIf=\"description\" [ngTemplateOutlet]=\"description\"></ng-template>\n </div>\n </div>\n</ng-template>\n" }]
61
61
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: ThyTimelineService }], propDecorators: { template: [{
@@ -159,8 +159,8 @@ class ThyTimeline {
159
159
  }
160
160
  this.cdr.markForCheck();
161
161
  }
162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimeline, deps: [{ token: i0.ChangeDetectorRef }, { token: ThyTimelineService }], target: i0.ɵɵFactoryTarget.Component }); }
163
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.4", type: ThyTimeline, isStandalone: true, selector: "thy-timeline", inputs: { thyReverse: ["thyReverse", "thyReverse", coerceBooleanProperty], thyMode: "thyMode", thyDirection: "thyDirection" }, host: { properties: { "class.thy-timeline": "this.isTimeline", "class.thy-timeline-right": "this.rightTimeline", "class.thy-timeline-center": "this.centerTimeline", "class.thy-timeline-template": "this.templateTimeline", "class.thy-timeline-horizontal": "this.horizontal" } }, providers: [ThyTimelineService], queries: [{ propertyName: "listOfItems", predicate: ThyTimelineItem }], usesOnChanges: true, ngImport: i0, template: `
162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimeline, deps: [{ token: i0.ChangeDetectorRef }, { token: ThyTimelineService }], target: i0.ɵɵFactoryTarget.Component }); }
163
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyTimeline, isStandalone: true, selector: "thy-timeline", inputs: { thyReverse: ["thyReverse", "thyReverse", coerceBooleanProperty], thyMode: "thyMode", thyDirection: "thyDirection" }, host: { properties: { "class.thy-timeline": "this.isTimeline", "class.thy-timeline-right": "this.rightTimeline", "class.thy-timeline-center": "this.centerTimeline", "class.thy-timeline-template": "this.templateTimeline", "class.thy-timeline-horizontal": "this.horizontal" } }, providers: [ThyTimelineService], queries: [{ propertyName: "listOfItems", predicate: ThyTimelineItem }], usesOnChanges: true, ngImport: i0, template: `
164
164
  <ng-container>
165
165
  <ng-container *ngFor="let item of timelineItems">
166
166
  <ng-template [ngTemplateOutlet]="item.template"></ng-template>
@@ -171,7 +171,7 @@ class ThyTimeline {
171
171
  </ng-container>
172
172
  `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
173
173
  }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimeline, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimeline, decorators: [{
175
175
  type: Component,
176
176
  args: [{
177
177
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -225,11 +225,11 @@ function getTimelineItemPosition(index, mode) {
225
225
  }
226
226
 
227
227
  class ThyTimelineModule {
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
229
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyTimeline, ThyTimelineItem], exports: [ThyTimeline, ThyTimelineItem] }); }
230
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineModule, imports: [CommonModule, ThySharedModule, ThyIconModule] }); }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
229
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyTimeline, ThyTimelineItem], exports: [ThyTimeline, ThyTimelineItem] }); }
230
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineModule, imports: [CommonModule, ThySharedModule, ThyIconModule] }); }
231
231
  }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyTimelineModule, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineModule, decorators: [{
233
233
  type: NgModule,
234
234
  args: [{
235
235
  imports: [CommonModule, ThySharedModule, ThyIconModule, ThyTimeline, ThyTimelineItem],