@ng-nest/ui 15.0.5 → 15.0.6

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 (482) hide show
  1. package/anchor/anchor.component.d.ts +5 -5
  2. package/api/api.component.d.ts +1 -1
  3. package/auto-complete/auto-complete.component.d.ts +1 -1
  4. package/avatar/avatar.component.d.ts +3 -3
  5. package/back-top/back-top.component.d.ts +2 -2
  6. package/badge/badge.component.d.ts +2 -2
  7. package/border/border.component.d.ts +1 -1
  8. package/button/button.component.d.ts +2 -2
  9. package/button/buttons.component.d.ts +1 -1
  10. package/calendar/calendar.component.d.ts +2 -2
  11. package/card/card.component.d.ts +2 -2
  12. package/carousel/carousel-panel.component.d.ts +2 -2
  13. package/carousel/carousel.component.d.ts +4 -4
  14. package/cascade/cascade.component.d.ts +1 -1
  15. package/checkbox/checkbox.component.d.ts +3 -3
  16. package/collapse/collapse-panel.component.d.ts +2 -2
  17. package/collapse/collapse.component.d.ts +2 -2
  18. package/color/color.component.d.ts +1 -1
  19. package/color-picker/color-picker-portal.component.d.ts +4 -4
  20. package/color-picker/color-picker.component.d.ts +1 -1
  21. package/comment/comment-reply.component.d.ts +2 -2
  22. package/comment/comment.component.d.ts +2 -2
  23. package/container/aside.component.d.ts +1 -1
  24. package/container/container.component.d.ts +1 -1
  25. package/container/footer.component.d.ts +1 -1
  26. package/container/header.component.d.ts +1 -1
  27. package/container/main.component.d.ts +1 -1
  28. package/core/config/config.d.ts +1 -0
  29. package/core/functions/chunk.d.ts +1 -0
  30. package/core/functions/flex.d.ts +1 -1
  31. package/core/functions/group-by.d.ts +1 -0
  32. package/core/functions/guid.d.ts +4 -0
  33. package/core/functions/public-api.d.ts +4 -0
  34. package/core/{util → functions}/resize.d.ts +0 -0
  35. package/core/util/public-api.d.ts +0 -4
  36. package/date-picker/date-picker.component.d.ts +1 -1
  37. package/date-picker/date-range.component.d.ts +1 -1
  38. package/dialog/dialog.component.d.ts +2 -2
  39. package/drawer/drawer.component.d.ts +2 -2
  40. package/dropdown/dropdown-portal.component.d.ts +2 -2
  41. package/dropdown/dropdown.component.d.ts +3 -3
  42. package/esm2020/anchor/anchor.component.mjs +1 -2
  43. package/esm2020/api/api.component.mjs +1 -1
  44. package/esm2020/auto-complete/auto-complete.component.mjs +1 -1
  45. package/esm2020/avatar/avatar.component.mjs +1 -1
  46. package/esm2020/back-top/back-top.component.mjs +1 -1
  47. package/esm2020/badge/badge.component.mjs +1 -1
  48. package/esm2020/base-form/base-form.component.mjs +3 -3
  49. package/esm2020/border/border.component.mjs +1 -1
  50. package/esm2020/button/button.component.mjs +1 -1
  51. package/esm2020/button/buttons.component.mjs +1 -1
  52. package/esm2020/calendar/calendar.component.mjs +1 -1
  53. package/esm2020/card/card.component.mjs +1 -1
  54. package/esm2020/carousel/carousel-panel.component.mjs +1 -1
  55. package/esm2020/carousel/carousel.component.mjs +1 -1
  56. package/esm2020/cascade/cascade.component.mjs +1 -1
  57. package/esm2020/checkbox/checkbox.component.mjs +1 -1
  58. package/esm2020/collapse/collapse-panel.component.mjs +1 -1
  59. package/esm2020/collapse/collapse.component.mjs +1 -1
  60. package/esm2020/color/color.component.mjs +1 -1
  61. package/esm2020/color-picker/color-picker-portal.component.mjs +1 -1
  62. package/esm2020/color-picker/color-picker.component.mjs +1 -1
  63. package/esm2020/comment/comment-reply.component.mjs +1 -1
  64. package/esm2020/comment/comment.component.mjs +1 -1
  65. package/esm2020/container/aside.component.mjs +1 -1
  66. package/esm2020/container/container.component.mjs +1 -1
  67. package/esm2020/container/footer.component.mjs +1 -1
  68. package/esm2020/container/header.component.mjs +1 -1
  69. package/esm2020/container/main.component.mjs +1 -1
  70. package/esm2020/core/config/config.mjs +1 -1
  71. package/esm2020/core/functions/chunk.mjs +14 -0
  72. package/esm2020/core/functions/flex.mjs +2 -2
  73. package/esm2020/core/functions/group-by.mjs +10 -0
  74. package/esm2020/core/functions/guid.mjs +10 -0
  75. package/esm2020/core/functions/order-by.mjs +24 -3
  76. package/esm2020/core/functions/public-api.mjs +5 -1
  77. package/esm2020/core/functions/resize.mjs +17 -0
  78. package/esm2020/core/util/public-api.mjs +1 -5
  79. package/esm2020/date-picker/date-picker-portal.component.mjs +2 -2
  80. package/esm2020/date-picker/date-picker.component.mjs +1 -1
  81. package/esm2020/date-picker/date-range.component.mjs +1 -1
  82. package/esm2020/date-picker/picker-date.component.mjs +3 -3
  83. package/esm2020/date-picker/picker-month.component.mjs +3 -3
  84. package/esm2020/date-picker/picker-year.component.mjs +3 -3
  85. package/esm2020/dialog/dialog.component.mjs +2 -2
  86. package/esm2020/drawer/drawer.component.mjs +1 -1
  87. package/esm2020/dropdown/dropdown-portal.component.mjs +1 -1
  88. package/esm2020/dropdown/dropdown.component.mjs +1 -1
  89. package/esm2020/find/find.component.mjs +1 -1
  90. package/esm2020/form/control.component.mjs +2 -2
  91. package/esm2020/form/form.component.mjs +8 -1
  92. package/esm2020/highlight/highlight.component.mjs +2 -2
  93. package/esm2020/i18n/i18n.property.mjs +1 -1
  94. package/esm2020/i18n/languages/en_GB.mjs +44 -18
  95. package/esm2020/i18n/languages/en_US.mjs +8 -2
  96. package/esm2020/i18n/languages/zh_CN.mjs +8 -2
  97. package/esm2020/i18n/languages/zh_TW.mjs +9 -3
  98. package/esm2020/icon/icon.component.mjs +1 -1
  99. package/esm2020/image/image-preview.component.mjs +1 -1
  100. package/esm2020/image/image.component.mjs +1 -1
  101. package/esm2020/inner/inner.component.mjs +1 -1
  102. package/esm2020/input/input-group.component.mjs +1 -1
  103. package/esm2020/input/input.component.mjs +1 -1
  104. package/esm2020/input-number/input-number.component.mjs +1 -1
  105. package/esm2020/link/link.component.mjs +1 -1
  106. package/esm2020/list/list-option.component.mjs +1 -1
  107. package/esm2020/list/list.component.mjs +2 -2
  108. package/esm2020/loading/loading.component.mjs +2 -2
  109. package/esm2020/menu/menu-node.component.mjs +1 -1
  110. package/esm2020/menu/menu.component.mjs +3 -3
  111. package/esm2020/message/message.component.mjs +1 -1
  112. package/esm2020/message-box/message-box.component.mjs +1 -1
  113. package/esm2020/notification/notification.component.mjs +1 -1
  114. package/esm2020/pagination/pagination.component.mjs +1 -1
  115. package/esm2020/popconfirm/popconfirm.component.mjs +1 -1
  116. package/esm2020/popover/popover-portal.component.mjs +1 -1
  117. package/esm2020/progress/progress.component.mjs +1 -1
  118. package/esm2020/radio/radio.component.mjs +1 -1
  119. package/esm2020/rate/rate.component.mjs +1 -1
  120. package/esm2020/result/result.component.mjs +1 -1
  121. package/esm2020/select/select.component.mjs +3 -3
  122. package/esm2020/skeleton/skeleton.component.mjs +1 -1
  123. package/esm2020/slider/slider.component.mjs +1 -1
  124. package/esm2020/slider-select/slider-select.component.mjs +1 -1
  125. package/esm2020/steps/steps.component.mjs +1 -1
  126. package/esm2020/switch/switch.component.mjs +1 -1
  127. package/esm2020/table/table-body.component.mjs +1 -1
  128. package/esm2020/table/table-foot.component.mjs +1 -1
  129. package/esm2020/table/table-head.component.mjs +1 -1
  130. package/esm2020/table/table.component.mjs +1 -1
  131. package/esm2020/tabs/tab-content.component.mjs +1 -1
  132. package/esm2020/tabs/tab.component.mjs +3 -3
  133. package/esm2020/tabs/tabs.component.mjs +3 -3
  134. package/esm2020/tag/tag.component.mjs +1 -1
  135. package/esm2020/text-retract/text-retract.component.mjs +1 -1
  136. package/esm2020/textarea/textarea.component.mjs +1 -1
  137. package/esm2020/time-picker/time-picker-frame.component.mjs +188 -55
  138. package/esm2020/time-picker/time-picker-portal.component.mjs +30 -8
  139. package/esm2020/time-picker/time-picker.component.mjs +36 -9
  140. package/esm2020/time-picker/time-picker.module.mjs +8 -4
  141. package/esm2020/time-picker/time-picker.property.mjs +37 -3
  142. package/esm2020/timeline/timeline.component.mjs +1 -1
  143. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  144. package/esm2020/transfer/transfer.component.mjs +3 -3
  145. package/esm2020/transfer/transfer.module.mjs +8 -4
  146. package/esm2020/tree/tree-node.component.mjs +1 -1
  147. package/esm2020/tree/tree.component.mjs +1 -1
  148. package/esm2020/tree-file/tree-file.component.mjs +1 -1
  149. package/esm2020/tree-select/tree-select.component.mjs +1 -1
  150. package/esm2020/upload/upload-portal.component.mjs +5 -1
  151. package/esm2020/upload/upload.component.mjs +1 -1
  152. package/fesm2015/ng-nest-ui-anchor.mjs +0 -2
  153. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  154. package/fesm2015/ng-nest-ui-api.mjs +0 -1
  155. package/fesm2015/ng-nest-ui-api.mjs.map +1 -1
  156. package/fesm2015/ng-nest-ui-auto-complete.mjs +0 -1
  157. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  158. package/fesm2015/ng-nest-ui-avatar.mjs +0 -1
  159. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  160. package/fesm2015/ng-nest-ui-back-top.mjs +0 -1
  161. package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
  162. package/fesm2015/ng-nest-ui-badge.mjs +0 -1
  163. package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
  164. package/fesm2015/ng-nest-ui-base-form.mjs +2 -3
  165. package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
  166. package/fesm2015/ng-nest-ui-border.mjs +0 -1
  167. package/fesm2015/ng-nest-ui-border.mjs.map +1 -1
  168. package/fesm2015/ng-nest-ui-button.mjs +0 -1
  169. package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
  170. package/fesm2015/ng-nest-ui-calendar.mjs +0 -1
  171. package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
  172. package/fesm2015/ng-nest-ui-card.mjs +0 -1
  173. package/fesm2015/ng-nest-ui-card.mjs.map +1 -1
  174. package/fesm2015/ng-nest-ui-carousel.mjs +0 -1
  175. package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
  176. package/fesm2015/ng-nest-ui-cascade.mjs +0 -1
  177. package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
  178. package/fesm2015/ng-nest-ui-checkbox.mjs +0 -1
  179. package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
  180. package/fesm2015/ng-nest-ui-collapse.mjs +0 -1
  181. package/fesm2015/ng-nest-ui-collapse.mjs.map +1 -1
  182. package/fesm2015/ng-nest-ui-color-picker.mjs +0 -1
  183. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  184. package/fesm2015/ng-nest-ui-color.mjs +0 -1
  185. package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
  186. package/fesm2015/ng-nest-ui-comment.mjs +0 -1
  187. package/fesm2015/ng-nest-ui-comment.mjs.map +1 -1
  188. package/fesm2015/ng-nest-ui-container.mjs +0 -1
  189. package/fesm2015/ng-nest-ui-container.mjs.map +1 -1
  190. package/fesm2015/ng-nest-ui-core.mjs +76 -56
  191. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  192. package/fesm2015/ng-nest-ui-date-picker.mjs +5 -6
  193. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  194. package/fesm2015/ng-nest-ui-dialog.mjs +1 -2
  195. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  196. package/fesm2015/ng-nest-ui-drawer.mjs +0 -1
  197. package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
  198. package/fesm2015/ng-nest-ui-dropdown.mjs +0 -1
  199. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  200. package/fesm2015/ng-nest-ui-find.mjs +0 -1
  201. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  202. package/fesm2015/ng-nest-ui-form.mjs +8 -2
  203. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  204. package/fesm2015/ng-nest-ui-highlight.mjs +1 -2
  205. package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
  206. package/fesm2015/ng-nest-ui-i18n.mjs +65 -22
  207. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  208. package/fesm2015/ng-nest-ui-icon.mjs +0 -1
  209. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  210. package/fesm2015/ng-nest-ui-image.mjs +0 -1
  211. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  212. package/fesm2015/ng-nest-ui-inner.mjs +0 -1
  213. package/fesm2015/ng-nest-ui-inner.mjs.map +1 -1
  214. package/fesm2015/ng-nest-ui-input-number.mjs +0 -1
  215. package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
  216. package/fesm2015/ng-nest-ui-input.mjs +0 -1
  217. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  218. package/fesm2015/ng-nest-ui-link.mjs +0 -1
  219. package/fesm2015/ng-nest-ui-link.mjs.map +1 -1
  220. package/fesm2015/ng-nest-ui-list.mjs +1 -2
  221. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  222. package/fesm2015/ng-nest-ui-loading.mjs +1 -2
  223. package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
  224. package/fesm2015/ng-nest-ui-menu.mjs +2 -3
  225. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  226. package/fesm2015/ng-nest-ui-message-box.mjs +0 -1
  227. package/fesm2015/ng-nest-ui-message-box.mjs.map +1 -1
  228. package/fesm2015/ng-nest-ui-message.mjs +0 -1
  229. package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
  230. package/fesm2015/ng-nest-ui-notification.mjs +0 -1
  231. package/fesm2015/ng-nest-ui-notification.mjs.map +1 -1
  232. package/fesm2015/ng-nest-ui-pagination.mjs +0 -1
  233. package/fesm2015/ng-nest-ui-pagination.mjs.map +1 -1
  234. package/fesm2015/ng-nest-ui-popconfirm.mjs +0 -1
  235. package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
  236. package/fesm2015/ng-nest-ui-popover.mjs +0 -1
  237. package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
  238. package/fesm2015/ng-nest-ui-progress.mjs +0 -1
  239. package/fesm2015/ng-nest-ui-progress.mjs.map +1 -1
  240. package/fesm2015/ng-nest-ui-radio.mjs +0 -1
  241. package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
  242. package/fesm2015/ng-nest-ui-rate.mjs +0 -1
  243. package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
  244. package/fesm2015/ng-nest-ui-result.mjs +0 -1
  245. package/fesm2015/ng-nest-ui-result.mjs.map +1 -1
  246. package/fesm2015/ng-nest-ui-select.mjs +2 -3
  247. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  248. package/fesm2015/ng-nest-ui-skeleton.mjs +0 -1
  249. package/fesm2015/ng-nest-ui-skeleton.mjs.map +1 -1
  250. package/fesm2015/ng-nest-ui-slider-select.mjs +0 -1
  251. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  252. package/fesm2015/ng-nest-ui-slider.mjs +0 -1
  253. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  254. package/fesm2015/ng-nest-ui-steps.mjs +0 -1
  255. package/fesm2015/ng-nest-ui-steps.mjs.map +1 -1
  256. package/fesm2015/ng-nest-ui-switch.mjs +0 -1
  257. package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
  258. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  259. package/fesm2015/ng-nest-ui-tabs.mjs +4 -5
  260. package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
  261. package/fesm2015/ng-nest-ui-tag.mjs +0 -1
  262. package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
  263. package/fesm2015/ng-nest-ui-text-retract.mjs +0 -1
  264. package/fesm2015/ng-nest-ui-text-retract.mjs.map +1 -1
  265. package/fesm2015/ng-nest-ui-textarea.mjs +0 -1
  266. package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
  267. package/fesm2015/ng-nest-ui-time-picker.mjs +292 -81
  268. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  269. package/fesm2015/ng-nest-ui-timeline.mjs +0 -1
  270. package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
  271. package/fesm2015/ng-nest-ui-tooltip.mjs +2 -3
  272. package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
  273. package/fesm2015/ng-nest-ui-transfer.mjs +9 -6
  274. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  275. package/fesm2015/ng-nest-ui-tree-file.mjs +0 -1
  276. package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
  277. package/fesm2015/ng-nest-ui-tree-select.mjs +0 -1
  278. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
  279. package/fesm2015/ng-nest-ui-tree.mjs +0 -1
  280. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  281. package/fesm2015/ng-nest-ui-upload.mjs +4 -1
  282. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  283. package/fesm2020/ng-nest-ui-anchor.mjs +0 -2
  284. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  285. package/fesm2020/ng-nest-ui-api.mjs +0 -1
  286. package/fesm2020/ng-nest-ui-api.mjs.map +1 -1
  287. package/fesm2020/ng-nest-ui-auto-complete.mjs +0 -1
  288. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  289. package/fesm2020/ng-nest-ui-avatar.mjs +0 -1
  290. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  291. package/fesm2020/ng-nest-ui-back-top.mjs +0 -1
  292. package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
  293. package/fesm2020/ng-nest-ui-badge.mjs +0 -1
  294. package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
  295. package/fesm2020/ng-nest-ui-base-form.mjs +2 -3
  296. package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
  297. package/fesm2020/ng-nest-ui-border.mjs +0 -1
  298. package/fesm2020/ng-nest-ui-border.mjs.map +1 -1
  299. package/fesm2020/ng-nest-ui-button.mjs +0 -1
  300. package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
  301. package/fesm2020/ng-nest-ui-calendar.mjs +0 -1
  302. package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
  303. package/fesm2020/ng-nest-ui-card.mjs +0 -1
  304. package/fesm2020/ng-nest-ui-card.mjs.map +1 -1
  305. package/fesm2020/ng-nest-ui-carousel.mjs +0 -1
  306. package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
  307. package/fesm2020/ng-nest-ui-cascade.mjs +0 -1
  308. package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
  309. package/fesm2020/ng-nest-ui-checkbox.mjs +0 -1
  310. package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
  311. package/fesm2020/ng-nest-ui-collapse.mjs +0 -1
  312. package/fesm2020/ng-nest-ui-collapse.mjs.map +1 -1
  313. package/fesm2020/ng-nest-ui-color-picker.mjs +0 -1
  314. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  315. package/fesm2020/ng-nest-ui-color.mjs +0 -1
  316. package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
  317. package/fesm2020/ng-nest-ui-comment.mjs +0 -1
  318. package/fesm2020/ng-nest-ui-comment.mjs.map +1 -1
  319. package/fesm2020/ng-nest-ui-container.mjs +0 -1
  320. package/fesm2020/ng-nest-ui-container.mjs.map +1 -1
  321. package/fesm2020/ng-nest-ui-core.mjs +76 -56
  322. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  323. package/fesm2020/ng-nest-ui-date-picker.mjs +5 -6
  324. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  325. package/fesm2020/ng-nest-ui-dialog.mjs +1 -2
  326. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  327. package/fesm2020/ng-nest-ui-drawer.mjs +0 -1
  328. package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
  329. package/fesm2020/ng-nest-ui-dropdown.mjs +0 -1
  330. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  331. package/fesm2020/ng-nest-ui-find.mjs +0 -1
  332. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  333. package/fesm2020/ng-nest-ui-form.mjs +8 -2
  334. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  335. package/fesm2020/ng-nest-ui-highlight.mjs +1 -2
  336. package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
  337. package/fesm2020/ng-nest-ui-i18n.mjs +65 -22
  338. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  339. package/fesm2020/ng-nest-ui-icon.mjs +0 -1
  340. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  341. package/fesm2020/ng-nest-ui-image.mjs +0 -1
  342. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  343. package/fesm2020/ng-nest-ui-inner.mjs +0 -1
  344. package/fesm2020/ng-nest-ui-inner.mjs.map +1 -1
  345. package/fesm2020/ng-nest-ui-input-number.mjs +0 -1
  346. package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
  347. package/fesm2020/ng-nest-ui-input.mjs +0 -1
  348. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  349. package/fesm2020/ng-nest-ui-link.mjs +0 -1
  350. package/fesm2020/ng-nest-ui-link.mjs.map +1 -1
  351. package/fesm2020/ng-nest-ui-list.mjs +1 -2
  352. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  353. package/fesm2020/ng-nest-ui-loading.mjs +1 -2
  354. package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
  355. package/fesm2020/ng-nest-ui-menu.mjs +2 -3
  356. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  357. package/fesm2020/ng-nest-ui-message-box.mjs +0 -1
  358. package/fesm2020/ng-nest-ui-message-box.mjs.map +1 -1
  359. package/fesm2020/ng-nest-ui-message.mjs +0 -1
  360. package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
  361. package/fesm2020/ng-nest-ui-notification.mjs +0 -1
  362. package/fesm2020/ng-nest-ui-notification.mjs.map +1 -1
  363. package/fesm2020/ng-nest-ui-pagination.mjs +0 -1
  364. package/fesm2020/ng-nest-ui-pagination.mjs.map +1 -1
  365. package/fesm2020/ng-nest-ui-popconfirm.mjs +0 -1
  366. package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
  367. package/fesm2020/ng-nest-ui-popover.mjs +0 -1
  368. package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
  369. package/fesm2020/ng-nest-ui-progress.mjs +0 -1
  370. package/fesm2020/ng-nest-ui-progress.mjs.map +1 -1
  371. package/fesm2020/ng-nest-ui-radio.mjs +0 -1
  372. package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
  373. package/fesm2020/ng-nest-ui-rate.mjs +0 -1
  374. package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
  375. package/fesm2020/ng-nest-ui-result.mjs +0 -1
  376. package/fesm2020/ng-nest-ui-result.mjs.map +1 -1
  377. package/fesm2020/ng-nest-ui-select.mjs +2 -3
  378. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  379. package/fesm2020/ng-nest-ui-skeleton.mjs +0 -1
  380. package/fesm2020/ng-nest-ui-skeleton.mjs.map +1 -1
  381. package/fesm2020/ng-nest-ui-slider-select.mjs +0 -1
  382. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  383. package/fesm2020/ng-nest-ui-slider.mjs +0 -1
  384. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  385. package/fesm2020/ng-nest-ui-steps.mjs +0 -1
  386. package/fesm2020/ng-nest-ui-steps.mjs.map +1 -1
  387. package/fesm2020/ng-nest-ui-switch.mjs +0 -1
  388. package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
  389. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  390. package/fesm2020/ng-nest-ui-tabs.mjs +4 -5
  391. package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
  392. package/fesm2020/ng-nest-ui-tag.mjs +0 -1
  393. package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
  394. package/fesm2020/ng-nest-ui-text-retract.mjs +0 -1
  395. package/fesm2020/ng-nest-ui-text-retract.mjs.map +1 -1
  396. package/fesm2020/ng-nest-ui-textarea.mjs +0 -1
  397. package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
  398. package/fesm2020/ng-nest-ui-time-picker.mjs +291 -78
  399. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  400. package/fesm2020/ng-nest-ui-timeline.mjs +0 -1
  401. package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
  402. package/fesm2020/ng-nest-ui-tooltip.mjs +2 -3
  403. package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
  404. package/fesm2020/ng-nest-ui-transfer.mjs +9 -6
  405. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  406. package/fesm2020/ng-nest-ui-tree-file.mjs +0 -1
  407. package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
  408. package/fesm2020/ng-nest-ui-tree-select.mjs +0 -1
  409. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
  410. package/fesm2020/ng-nest-ui-tree.mjs +0 -1
  411. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  412. package/fesm2020/ng-nest-ui-upload.mjs +4 -1
  413. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  414. package/find/find.component.d.ts +1 -1
  415. package/form/form.component.d.ts +1 -0
  416. package/highlight/highlight.component.d.ts +3 -3
  417. package/i18n/i18n.property.d.ts +6 -0
  418. package/i18n/languages/en_GB.d.ts +26 -0
  419. package/i18n/languages/en_US.d.ts +6 -0
  420. package/i18n/languages/zh_CN.d.ts +6 -0
  421. package/i18n/languages/zh_TW.d.ts +6 -0
  422. package/icon/icon.component.d.ts +2 -2
  423. package/image/image-preview.component.d.ts +2 -2
  424. package/image/image.component.d.ts +2 -2
  425. package/inner/inner.component.d.ts +1 -1
  426. package/input/input-group.component.d.ts +2 -2
  427. package/input/input.component.d.ts +5 -5
  428. package/input-number/input-number.component.d.ts +1 -1
  429. package/link/link.component.d.ts +2 -2
  430. package/list/list-option.component.d.ts +2 -2
  431. package/list/list.component.d.ts +7 -7
  432. package/loading/loading.component.d.ts +2 -2
  433. package/menu/menu-node.component.d.ts +2 -2
  434. package/menu/menu.component.d.ts +3 -3
  435. package/message/message.component.d.ts +2 -2
  436. package/message-box/message-box.component.d.ts +2 -2
  437. package/notification/notification.component.d.ts +2 -2
  438. package/package.json +1 -1
  439. package/pagination/pagination.component.d.ts +2 -2
  440. package/popconfirm/popconfirm.component.d.ts +2 -2
  441. package/popover/popover-portal.component.d.ts +2 -2
  442. package/progress/progress.component.d.ts +2 -2
  443. package/radio/radio.component.d.ts +3 -3
  444. package/rate/rate.component.d.ts +3 -3
  445. package/result/result.component.d.ts +2 -2
  446. package/select/select.component.d.ts +1 -1
  447. package/skeleton/skeleton.component.d.ts +2 -2
  448. package/slider/slider.component.d.ts +4 -4
  449. package/slider-select/slider-select.component.d.ts +6 -6
  450. package/steps/steps.component.d.ts +2 -2
  451. package/switch/switch.component.d.ts +1 -1
  452. package/table/table-body.component.d.ts +3 -3
  453. package/table/table-foot.component.d.ts +3 -3
  454. package/table/table-head.component.d.ts +3 -3
  455. package/table/table.component.d.ts +12 -12
  456. package/tabs/tab-content.component.d.ts +1 -1
  457. package/tabs/tabs.component.d.ts +1 -1
  458. package/tag/tag.component.d.ts +2 -2
  459. package/text-retract/text-retract.component.d.ts +2 -2
  460. package/textarea/textarea.component.d.ts +4 -4
  461. package/time-picker/time-picker-frame.component.d.ts +30 -23
  462. package/time-picker/time-picker-portal.component.d.ts +13 -3
  463. package/time-picker/time-picker.component.d.ts +6 -3
  464. package/time-picker/time-picker.module.d.ts +2 -1
  465. package/time-picker/time-picker.property.d.ts +38 -2
  466. package/timeline/timeline.component.d.ts +2 -2
  467. package/tooltip/tooltip-portal.component.d.ts +3 -3
  468. package/transfer/transfer.component.d.ts +2 -2
  469. package/transfer/transfer.module.d.ts +2 -1
  470. package/tree/tree-node.component.d.ts +2 -2
  471. package/tree/tree.component.d.ts +3 -3
  472. package/tree-file/tree-file.component.d.ts +2 -2
  473. package/tree-select/tree-select.component.d.ts +1 -1
  474. package/upload/upload-portal.component.d.ts +6 -6
  475. package/upload/upload.component.d.ts +3 -3
  476. package/core/util/chunk.d.ts +0 -1
  477. package/core/util/group-by.d.ts +0 -1
  478. package/core/util/guid.d.ts +0 -4
  479. package/esm2020/core/util/chunk.mjs +0 -14
  480. package/esm2020/core/util/group-by.mjs +0 -10
  481. package/esm2020/core/util/guid.mjs +0 -10
  482. package/esm2020/core/util/resize.mjs +0 -17
@@ -1,23 +1,26 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, HostBinding, HostListener, NgModule } from '@angular/core';
3
3
  import { __decorate } from 'tslib';
4
- import { XWithConfig, XInputBoolean, XIsChange, XIsEmpty, reqAnimFrame, XConnectBaseAnimation, XIsDate, XIsNumber, XIsString, XClearClass } from '@ng-nest/ui/core';
4
+ import { XWithConfig, XInputBoolean, XInputNumber, XDataConvert, XIsChange, XIsEmpty, reqAnimFrame, XConnectBaseAnimation, XIsDate, XIsNumber, XIsString, XClearClass } from '@ng-nest/ui/core';
5
5
  import { XControlValueAccessor, XValueAccessor, XBaseFormModule } from '@ng-nest/ui/base-form';
6
6
  import { Subject } from 'rxjs';
7
- import { takeUntil } from 'rxjs/operators';
8
- import * as i4 from '@angular/forms';
7
+ import { map, takeUntil } from 'rxjs/operators';
8
+ import * as i1 from '@ng-nest/ui/i18n';
9
+ import { XI18nModule } from '@ng-nest/ui/i18n';
10
+ import * as i2 from '@angular/common';
11
+ import { DatePipe, CommonModule } from '@angular/common';
12
+ import * as i3 from '@ng-nest/ui/button';
13
+ import { XButtonModule } from '@ng-nest/ui/button';
14
+ import * as i5 from '@angular/forms';
9
15
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
- import * as i2 from '@ng-nest/ui/list';
16
+ import * as i4 from '@ng-nest/ui/list';
11
17
  import { XListModule } from '@ng-nest/ui/list';
12
- import * as i1 from '@ng-nest/ui/portal';
18
+ import * as i1$1 from '@ng-nest/ui/portal';
13
19
  import { XPortalConnectedPosition, XPortalModule } from '@ng-nest/ui/portal';
14
- import * as i2$1 from '@angular/common';
15
- import { DatePipe, CommonModule } from '@angular/common';
16
- import * as i3 from '@angular/cdk/overlay';
17
- import * as i5 from '@ng-nest/ui/input';
20
+ import * as i3$1 from '@angular/cdk/overlay';
21
+ import * as i6 from '@ng-nest/ui/input';
18
22
  import { XInputModule } from '@ng-nest/ui/input';
19
23
  import { XIconModule } from '@ng-nest/ui/icon';
20
- import { XButtonModule } from '@ng-nest/ui/button';
21
24
 
22
25
  /**
23
26
  * TimePicker
@@ -37,6 +40,11 @@ class XTimePickerProperty extends XControlValueAccessor {
37
40
  * @en_US Time type
38
41
  */
39
42
  this.type = 'time';
43
+ /**
44
+ * @zh_CN 快捷选择按钮,支持此刻以及自定义
45
+ * @en_US Quick selection button, support now and custom
46
+ */
47
+ this.preset = [];
40
48
  /**
41
49
  * @zh_CN 节点点击的事件
42
50
  * @en_US Node click event
@@ -45,7 +53,7 @@ class XTimePickerProperty extends XControlValueAccessor {
45
53
  }
46
54
  }
47
55
  /** @nocollapse */ XTimePickerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
48
- /** @nocollapse */ XTimePickerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTimePickerProperty, selector: "ng-component", inputs: { type: "type", format: "format", placement: "placement", size: "size", bordered: "bordered" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
56
+ /** @nocollapse */ XTimePickerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTimePickerProperty, selector: "ng-component", inputs: { type: "type", format: "format", placement: "placement", size: "size", use12Hours: "use12Hours", bordered: "bordered", hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep", preset: "preset" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
49
57
  __decorate([
50
58
  XWithConfig(X_CONFIG_NAME, 'HH:mm:ss')
51
59
  ], XTimePickerProperty.prototype, "format", void 0);
@@ -55,10 +63,29 @@ __decorate([
55
63
  __decorate([
56
64
  XWithConfig(X_CONFIG_NAME, 'medium')
57
65
  ], XTimePickerProperty.prototype, "size", void 0);
66
+ __decorate([
67
+ XInputBoolean(),
68
+ XWithConfig(X_CONFIG_NAME, false)
69
+ ], XTimePickerProperty.prototype, "use12Hours", void 0);
58
70
  __decorate([
59
71
  XInputBoolean(),
60
72
  XWithConfig(X_CONFIG_NAME, true)
61
73
  ], XTimePickerProperty.prototype, "bordered", void 0);
74
+ __decorate([
75
+ XInputNumber(),
76
+ XWithConfig(X_CONFIG_NAME, 1)
77
+ ], XTimePickerProperty.prototype, "hourStep", void 0);
78
+ __decorate([
79
+ XInputNumber(),
80
+ XWithConfig(X_CONFIG_NAME, 1)
81
+ ], XTimePickerProperty.prototype, "minuteStep", void 0);
82
+ __decorate([
83
+ XInputNumber(),
84
+ XWithConfig(X_CONFIG_NAME, 1)
85
+ ], XTimePickerProperty.prototype, "secondStep", void 0);
86
+ __decorate([
87
+ XDataConvert()
88
+ ], XTimePickerProperty.prototype, "preset", void 0);
62
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerProperty, decorators: [{
63
90
  type: Component,
64
91
  args: [{ template: '' }]
@@ -70,8 +97,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
70
97
  type: Input
71
98
  }], size: [{
72
99
  type: Input
100
+ }], use12Hours: [{
101
+ type: Input
73
102
  }], bordered: [{
74
103
  type: Input
104
+ }], hourStep: [{
105
+ type: Input
106
+ }], minuteStep: [{
107
+ type: Input
108
+ }], secondStep: [{
109
+ type: Input
110
+ }], preset: [{
111
+ type: Input
75
112
  }], nodeEmit: [{
76
113
  type: Output
77
114
  }] } });
@@ -89,43 +126,99 @@ const XTimePickerPortalPrefix = 'x-time-picker-portal';
89
126
  const XTimePickerFramePrefix = 'x-time-picker-frame';
90
127
 
91
128
  class XTimePickerFrameComponent {
92
- constructor(cdr) {
129
+ constructor(cdr, i18n) {
93
130
  this.cdr = cdr;
131
+ this.i18n = i18n;
94
132
  this.type = 'time';
133
+ this.hourStep = 1;
134
+ this.minuteStep = 1;
135
+ this.secondStep = 1;
95
136
  this.nodeEmit = new EventEmitter();
96
137
  this.now = new Date();
97
138
  this.hour = 0;
98
139
  this.minute = 0;
99
140
  this.second = 0;
141
+ this.use12Hour = 'am';
100
142
  this.scrollAnimating = {};
101
- this.hourDate = Array.from({ length: 24 }).map((_, i) => {
102
- return {
103
- label: this.prefixZero(i, 2),
104
- id: i
105
- };
106
- });
107
- this.minuteDate = Array.from({ length: 60 }).map((_, i) => {
108
- return {
109
- label: this.prefixZero(i, 2),
110
- id: i
111
- };
112
- });
113
- this.secondDate = Array.from({ length: 60 }).map((_, i) => {
114
- return {
115
- label: this.prefixZero(i, 2),
116
- id: i
117
- };
118
- });
143
+ this.hourData = [];
144
+ this.minuteData = [];
145
+ this.secondData = [];
146
+ this.use12HoursData = [];
147
+ this.locale = {};
148
+ this.isInit = false;
149
+ this._unSubject = new Subject();
119
150
  }
120
151
  ngOnChanges(changes) {
121
152
  const { value } = changes;
122
153
  if (XIsChange(value)) {
123
154
  this.init();
124
- this.setScrollTop();
155
+ this.setScrollTop(true);
125
156
  }
126
157
  }
127
158
  ngOnInit() {
159
+ this.setHourData();
160
+ this.setMinuteData();
161
+ this.setSecondData();
162
+ this.setUse12HoursData();
128
163
  this.init();
164
+ this.i18n.localeChange
165
+ .pipe(map((x) => x.timePicker), takeUntil(this._unSubject))
166
+ .subscribe((x) => {
167
+ this.locale = x;
168
+ if (this.use12Hours) {
169
+ this.setUse12HoursData();
170
+ }
171
+ this.cdr.markForCheck();
172
+ });
173
+ }
174
+ ngAfterViewInit() {
175
+ this.setScrollTop();
176
+ }
177
+ setHourData() {
178
+ let length = this.use12Hours ? 12 : 24;
179
+ this.hourData = Array.from({ length: Math.ceil(length / this.hourStep) }).map((_, i) => {
180
+ if (this.use12Hours && i === 0) {
181
+ i = 12;
182
+ return {
183
+ label: this.prefixZero(i, 2),
184
+ id: i
185
+ };
186
+ }
187
+ else {
188
+ return {
189
+ label: this.prefixZero(i * this.hourStep, 2),
190
+ id: i * this.hourStep
191
+ };
192
+ }
193
+ });
194
+ }
195
+ setMinuteData() {
196
+ this.minuteData = Array.from({ length: Math.ceil(60 / this.minuteStep) }).map((_, i) => {
197
+ return {
198
+ label: this.prefixZero(i * this.minuteStep, 2),
199
+ id: i * this.minuteStep
200
+ };
201
+ });
202
+ }
203
+ setSecondData() {
204
+ this.secondData = Array.from({ length: Math.ceil(60 / this.secondStep) }).map((_, i) => {
205
+ return {
206
+ label: this.prefixZero(i * this.secondStep, 2),
207
+ id: i * this.secondStep
208
+ };
209
+ });
210
+ }
211
+ setUse12HoursData() {
212
+ this.use12HoursData = [
213
+ {
214
+ id: 'am',
215
+ label: this.locale.am
216
+ },
217
+ {
218
+ id: 'pm',
219
+ label: this.locale.pm
220
+ }
221
+ ];
129
222
  }
130
223
  init() {
131
224
  if (!XIsEmpty(this.value)) {
@@ -142,44 +235,106 @@ class XTimePickerFrameComponent {
142
235
  this.model = new Date(this.value);
143
236
  }
144
237
  setTime(date) {
145
- this.hour = date.getHours();
238
+ if (this.use12Hours) {
239
+ let hour = date.getHours();
240
+ if (hour > 12) {
241
+ this.hour = hour - 12;
242
+ this.use12Hour = 'pm';
243
+ }
244
+ else if (hour === 12) {
245
+ this.hour = 12;
246
+ this.use12Hour = 'pm';
247
+ }
248
+ else {
249
+ this.hour = hour === 0 ? 12 : hour;
250
+ this.use12Hour = 'am';
251
+ }
252
+ }
253
+ else {
254
+ this.hour = date.getHours();
255
+ }
146
256
  this.minute = date.getMinutes();
147
257
  this.second = date.getSeconds();
148
258
  }
149
259
  prefixZero(num, n) {
150
260
  return (Array(n).join('0') + num).slice(-n);
151
261
  }
152
- setScrollTop() {
153
- this.selected(this.hourRef.nativeElement, this.hour);
154
- this.selected(this.minuteRef.nativeElement, this.minute);
155
- this.selected(this.secondRef.nativeElement, this.second);
262
+ setScrollTop(animating = false) {
263
+ this.selected('hour', this.hourRef?.nativeElement, this.hour, animating);
264
+ this.selected('minute', this.minuteRef?.nativeElement, this.minute, animating);
265
+ this.selected('second', this.secondRef?.nativeElement, this.second, animating);
266
+ this.selected('use12Hour', this.use12HoursRef?.nativeElement, this.use12Hour, animating);
156
267
  }
157
- selected(ele, num) {
268
+ selected(type, ele, num, animating = false) {
269
+ if (!ele)
270
+ return;
158
271
  if (this.scrollAnimating[ele.className])
159
272
  return;
160
- let current = ele.querySelector(`.x-list x-list-option:nth-child(${num + 1})`);
273
+ let len = Number(num);
274
+ switch (type) {
275
+ case 'hour':
276
+ len = this.hourData.findIndex((x) => x.id === num);
277
+ break;
278
+ case 'minute':
279
+ len = this.minuteData.findIndex((x) => x.id === num);
280
+ break;
281
+ case 'second':
282
+ len = this.secondData.findIndex((x) => x.id === num);
283
+ break;
284
+ case 'use12Hour':
285
+ len = this.use12HoursData.findIndex((x) => x.id === num);
286
+ break;
287
+ }
288
+ let current = ele.querySelector(`.x-list x-list-option:nth-child(${len + 1})`);
161
289
  if (current) {
162
- ele.scrollTop = current.offsetTop;
290
+ if (animating) {
291
+ this.scrollTo(ele, current.offsetTop, 120);
292
+ }
293
+ else {
294
+ ele.scrollTop = current.offsetTop;
295
+ }
163
296
  }
164
297
  }
165
- hourClick(date) {
166
- this.hour = date.id;
167
- this.model.setHours(this.hour);
168
- this.scrollTo(this.hourRef.nativeElement, (date.event?.srcElement).offsetTop, 120);
169
- this.nodeEmit.emit(this.model);
170
- this.cdr.detectChanges();
171
- }
172
- minuteClick(date) {
173
- this.minute = date.id;
174
- this.model.setMinutes(this.minute);
175
- this.scrollTo(this.minuteRef.nativeElement, (date.event?.srcElement).offsetTop, 120);
176
- this.nodeEmit.emit(this.model);
177
- this.cdr.detectChanges();
178
- }
179
- secondClick(date) {
180
- this.second = date.id;
181
- this.model.setSeconds(this.second);
182
- this.scrollTo(this.secondRef.nativeElement, (date.event?.srcElement).offsetTop, 120);
298
+ isLastItem(data, item) {
299
+ return data.indexOf(item) === data.length - 1;
300
+ }
301
+ itemClick(type) {
302
+ switch (type) {
303
+ case 'minute':
304
+ this.model.setMinutes(this.minute);
305
+ break;
306
+ case 'second':
307
+ this.model.setSeconds(this.second);
308
+ break;
309
+ case 'hour':
310
+ if (this.use12Hours) {
311
+ if (this.use12Hour === 'pm' && this.hour !== 12) {
312
+ this.model.setHours(this.hour + 12);
313
+ }
314
+ else if (this.use12Hour === 'am' && this.hour === 12) {
315
+ this.model.setHours(0);
316
+ }
317
+ else {
318
+ this.model.setHours(this.hour);
319
+ }
320
+ }
321
+ else {
322
+ this.model.setHours(this.hour);
323
+ }
324
+ break;
325
+ case 'use12Hours':
326
+ if (this.use12Hour === 'pm' && this.hour !== 12) {
327
+ this.model.setHours(this.hour + 12);
328
+ }
329
+ else if (this.use12Hour === 'am' && this.hour === 12) {
330
+ this.model.setHours(0);
331
+ }
332
+ else {
333
+ this.model.setHours(this.hour);
334
+ }
335
+ break;
336
+ }
337
+ this.setScrollTop(true);
183
338
  this.nodeEmit.emit(this.model);
184
339
  this.cdr.detectChanges();
185
340
  }
@@ -200,33 +355,47 @@ class XTimePickerFrameComponent {
200
355
  });
201
356
  }
202
357
  }
203
- /** @nocollapse */ XTimePickerFrameComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerFrameComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
204
- /** @nocollapse */ XTimePickerFrameComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: { type: "type", value: "value" }, outputs: { nodeEmit: "nodeEmit" }, viewQueries: [{ propertyName: "hourRef", first: true, predicate: ["hourRef"], descendants: true }, { propertyName: "minuteRef", first: true, predicate: ["minuteRef"], descendants: true }, { propertyName: "secondRef", first: true, predicate: ["secondRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"x-time-picker-frame\">\r\n <div class=\"x-time-picker-frame-hour\" #hourRef>\r\n <x-list [data]=\"hourDate\" [(ngModel)]=\"hour\" (nodeClick)=\"hourClick($event)\"></x-list>\r\n </div>\r\n <div class=\"x-time-picker-frame-minute\" #minuteRef [hidden]=\"type === 'hour'\">\r\n <x-list [data]=\"minuteDate\" [(ngModel)]=\"minute\" (nodeClick)=\"minuteClick($event)\"></x-list>\r\n </div>\r\n <div class=\"x-time-picker-frame-second\" #secondRef [hidden]=\"type !== 'time'\">\r\n <x-list [data]=\"secondDate\" [(ngModel)]=\"second\" (nodeClick)=\"secondClick($event)\"></x-list>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-frame{margin:0;padding:0;margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);font-size:var(--x-font-size-small);display:block;height:100%}.x-time-picker-frame>div:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-time-picker-frame-hour,.x-time-picker-frame-minute,.x-time-picker-frame-second{position:relative;float:left;overflow:hidden;width:3.625rem;max-height:15rem;padding-bottom:13.125rem}.x-time-picker-frame-hour:hover,.x-time-picker-frame-minute:hover,.x-time-picker-frame-second:hover{overflow-y:auto}.x-time-picker-frame-hour>x-list>.x-list,.x-time-picker-frame-minute>x-list>.x-list,.x-time-picker-frame-second>x-list>.x-list{width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option{min-width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option{padding-left:.6rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option:not(:first-child){margin-top:0}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.XListComponent, selector: "x-list" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
358
+ /** @nocollapse */ XTimePickerFrameComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerFrameComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
359
+ /** @nocollapse */ XTimePickerFrameComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: { type: "type", value: "value", use12Hours: "use12Hours", hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep" }, outputs: { nodeEmit: "nodeEmit" }, viewQueries: [{ propertyName: "hourRef", first: true, predicate: ["hourRef"], descendants: true }, { propertyName: "minuteRef", first: true, predicate: ["minuteRef"], descendants: true }, { propertyName: "secondRef", first: true, predicate: ["secondRef"], descendants: true }, { propertyName: "use12HoursRef", first: true, predicate: ["use12HoursRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"x-time-picker-frame\">\r\n <div class=\"x-time-picker-frame-hour\" #hourRef>\r\n <x-list [data]=\"hourData\" [(ngModel)]=\"hour\" (nodeClick)=\"itemClick('hour')\"></x-list>\r\n </div>\r\n <div class=\"x-time-picker-frame-minute\" #minuteRef *ngIf=\"type !== 'hour'\">\r\n <x-list [data]=\"minuteData\" [(ngModel)]=\"minute\" (nodeClick)=\"itemClick('minute')\"></x-list>\r\n </div>\r\n <div class=\"x-time-picker-frame-second\" #secondRef *ngIf=\"type === 'time'\">\r\n <x-list [data]=\"secondData\" [(ngModel)]=\"second\" (nodeClick)=\"itemClick('second')\"></x-list>\r\n </div>\r\n <div *ngIf=\"use12Hours\" class=\"x-time-picker-frame-use12Hours\" #use12HoursRef>\r\n <x-list [data]=\"use12HoursData\" [(ngModel)]=\"use12Hour\" (nodeClick)=\"itemClick('use12Hours')\"></x-list>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-frame{margin:0;padding:0;margin:.0625rem 0;display:block;height:100%}.x-time-picker-frame>div:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-time-picker-frame-hour,.x-time-picker-frame-minute,.x-time-picker-frame-second,.x-time-picker-frame-use12Hours{position:relative;float:left;overflow:hidden;width:3.625rem;max-height:15rem;padding-bottom:calc(var(--x-border-width) * 2 + 13.125rem)}.x-time-picker-frame-hour:hover,.x-time-picker-frame-minute:hover,.x-time-picker-frame-second:hover,.x-time-picker-frame-use12Hours:hover{overflow-y:auto}.x-time-picker-frame-hour>x-list>.x-list,.x-time-picker-frame-minute>x-list>.x-list,.x-time-picker-frame-second>x-list>.x-list,.x-time-picker-frame-use12Hours>x-list>.x-list{width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option,.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option{min-width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option>.x-list-option{padding-left:.6rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option>.x-list-option:not(:first-child){margin-top:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XListComponent, selector: "x-list" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
205
360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerFrameComponent, decorators: [{
206
361
  type: Component,
207
- args: [{ selector: `${XTimePickerFramePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-time-picker-frame\">\r\n <div class=\"x-time-picker-frame-hour\" #hourRef>\r\n <x-list [data]=\"hourDate\" [(ngModel)]=\"hour\" (nodeClick)=\"hourClick($event)\"></x-list>\r\n </div>\r\n <div class=\"x-time-picker-frame-minute\" #minuteRef [hidden]=\"type === 'hour'\">\r\n <x-list [data]=\"minuteDate\" [(ngModel)]=\"minute\" (nodeClick)=\"minuteClick($event)\"></x-list>\r\n </div>\r\n <div class=\"x-time-picker-frame-second\" #secondRef [hidden]=\"type !== 'time'\">\r\n <x-list [data]=\"secondDate\" [(ngModel)]=\"second\" (nodeClick)=\"secondClick($event)\"></x-list>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-frame{margin:0;padding:0;margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);font-size:var(--x-font-size-small);display:block;height:100%}.x-time-picker-frame>div:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-time-picker-frame-hour,.x-time-picker-frame-minute,.x-time-picker-frame-second{position:relative;float:left;overflow:hidden;width:3.625rem;max-height:15rem;padding-bottom:13.125rem}.x-time-picker-frame-hour:hover,.x-time-picker-frame-minute:hover,.x-time-picker-frame-second:hover{overflow-y:auto}.x-time-picker-frame-hour>x-list>.x-list,.x-time-picker-frame-minute>x-list>.x-list,.x-time-picker-frame-second>x-list>.x-list{width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option{min-width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option{padding-left:.6rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option:not(:first-child){margin-top:0}\n"] }]
208
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
362
+ args: [{ selector: `${XTimePickerFramePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-time-picker-frame\">\r\n <div class=\"x-time-picker-frame-hour\" #hourRef>\r\n <x-list [data]=\"hourData\" [(ngModel)]=\"hour\" (nodeClick)=\"itemClick('hour')\"></x-list>\r\n </div>\r\n <div class=\"x-time-picker-frame-minute\" #minuteRef *ngIf=\"type !== 'hour'\">\r\n <x-list [data]=\"minuteData\" [(ngModel)]=\"minute\" (nodeClick)=\"itemClick('minute')\"></x-list>\r\n </div>\r\n <div class=\"x-time-picker-frame-second\" #secondRef *ngIf=\"type === 'time'\">\r\n <x-list [data]=\"secondData\" [(ngModel)]=\"second\" (nodeClick)=\"itemClick('second')\"></x-list>\r\n </div>\r\n <div *ngIf=\"use12Hours\" class=\"x-time-picker-frame-use12Hours\" #use12HoursRef>\r\n <x-list [data]=\"use12HoursData\" [(ngModel)]=\"use12Hour\" (nodeClick)=\"itemClick('use12Hours')\"></x-list>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-frame{margin:0;padding:0;margin:.0625rem 0;display:block;height:100%}.x-time-picker-frame>div:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-time-picker-frame-hour,.x-time-picker-frame-minute,.x-time-picker-frame-second,.x-time-picker-frame-use12Hours{position:relative;float:left;overflow:hidden;width:3.625rem;max-height:15rem;padding-bottom:calc(var(--x-border-width) * 2 + 13.125rem)}.x-time-picker-frame-hour:hover,.x-time-picker-frame-minute:hover,.x-time-picker-frame-second:hover,.x-time-picker-frame-use12Hours:hover{overflow-y:auto}.x-time-picker-frame-hour>x-list>.x-list,.x-time-picker-frame-minute>x-list>.x-list,.x-time-picker-frame-second>x-list>.x-list,.x-time-picker-frame-use12Hours>x-list>.x-list{width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option,.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option{min-width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option>.x-list-option{padding-left:.6rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option>.x-list-option:not(:first-child){margin-top:0}\n"] }]
363
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.XI18nService }]; }, propDecorators: { type: [{
209
364
  type: Input
210
365
  }], value: [{
211
366
  type: Input
367
+ }], use12Hours: [{
368
+ type: Input
369
+ }], hourStep: [{
370
+ type: Input
371
+ }], minuteStep: [{
372
+ type: Input
373
+ }], secondStep: [{
374
+ type: Input
212
375
  }], nodeEmit: [{
213
376
  type: Output
214
377
  }], hourRef: [{
215
378
  type: ViewChild,
216
- args: ['hourRef', { static: false }]
379
+ args: ['hourRef']
217
380
  }], minuteRef: [{
218
381
  type: ViewChild,
219
- args: ['minuteRef', { static: false }]
382
+ args: ['minuteRef']
220
383
  }], secondRef: [{
221
384
  type: ViewChild,
222
- args: ['secondRef', { static: false }]
385
+ args: ['secondRef']
386
+ }], use12HoursRef: [{
387
+ type: ViewChild,
388
+ args: ['use12HoursRef']
223
389
  }] } });
224
390
 
225
391
  class XTimePickerPortalComponent {
226
- constructor(renderer, cdr) {
392
+ constructor(renderer, cdr, i18n) {
227
393
  this.renderer = renderer;
228
394
  this.cdr = cdr;
395
+ this.i18n = i18n;
229
396
  this.type = 'time';
397
+ this.preset = [];
398
+ this.locale = {};
230
399
  this._unSubject = new Subject();
231
400
  }
232
401
  done(event) {
@@ -244,6 +413,12 @@ class XTimePickerPortalComponent {
244
413
  this.placement = x;
245
414
  this.cdr.detectChanges();
246
415
  });
416
+ this.i18n.localeChange
417
+ .pipe(map((x) => x.timePicker), takeUntil(this._unSubject))
418
+ .subscribe((x) => {
419
+ this.locale = x;
420
+ this.cdr.markForCheck();
421
+ });
247
422
  }
248
423
  ngOnDestroy() {
249
424
  this._unSubject.next();
@@ -252,13 +427,23 @@ class XTimePickerPortalComponent {
252
427
  stopPropagation(event) {
253
428
  event.stopPropagation();
254
429
  }
430
+ onPresetFunc(item) {
431
+ let date = item.func();
432
+ this.valueChange.next(date);
433
+ this.nodeEmit(date);
434
+ }
435
+ onNow() {
436
+ let date = new Date();
437
+ this.valueChange.next(date);
438
+ this.nodeEmit(date);
439
+ }
255
440
  }
256
- /** @nocollapse */ XTimePickerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerPortalComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
257
- /** @nocollapse */ XTimePickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTimePickerPortalComponent, selector: "x-time-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, ngImport: i0, template: "<div class=\"x-time-picker-portal\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <x-time-picker-frame [type]=\"type\" [value]=\"value\" (nodeEmit)=\"nodeEmit($event)\"></x-time-picker-frame>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-portal{display:block;height:100%}\n"], dependencies: [{ kind: "component", type: XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: ["type", "value"], outputs: ["nodeEmit"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
441
+ /** @nocollapse */ XTimePickerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerPortalComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
442
+ /** @nocollapse */ XTimePickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTimePickerPortalComponent, selector: "x-time-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, ngImport: i0, template: "<div class=\"x-time-picker-portal\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <x-time-picker-frame\r\n [type]=\"type\"\r\n [value]=\"value\"\r\n [use12Hours]=\"use12Hours\"\r\n [hourStep]=\"hourStep\"\r\n [minuteStep]=\"minuteStep\"\r\n [secondStep]=\"secondStep\"\r\n (nodeEmit)=\"nodeEmit($event)\"\r\n ></x-time-picker-frame>\r\n <div *ngIf=\"preset\" class=\"x-time-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-button type=\"text\" *ngIf=\"!item.func && item.id === 'now'\" (click)=\"onNow()\">{{ locale.now }}</x-button>\r\n <x-button type=\"text\" *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-button>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-portal{display:flex;flex-direction:column;height:100%;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background)}.x-time-picker-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-time-picker-portal-preset>x-button{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XButtonComponent, selector: "x-button" }, { kind: "component", type: XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: ["type", "value", "use12Hours", "hourStep", "minuteStep", "secondStep"], outputs: ["nodeEmit"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
258
443
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerPortalComponent, decorators: [{
259
444
  type: Component,
260
- args: [{ selector: `${XTimePickerPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div class=\"x-time-picker-portal\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <x-time-picker-frame [type]=\"type\" [value]=\"value\" (nodeEmit)=\"nodeEmit($event)\"></x-time-picker-frame>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-portal{display:block;height:100%}\n"] }]
261
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { placement: [{
445
+ args: [{ selector: `${XTimePickerPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div class=\"x-time-picker-portal\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <x-time-picker-frame\r\n [type]=\"type\"\r\n [value]=\"value\"\r\n [use12Hours]=\"use12Hours\"\r\n [hourStep]=\"hourStep\"\r\n [minuteStep]=\"minuteStep\"\r\n [secondStep]=\"secondStep\"\r\n (nodeEmit)=\"nodeEmit($event)\"\r\n ></x-time-picker-frame>\r\n <div *ngIf=\"preset\" class=\"x-time-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-button type=\"text\" *ngIf=\"!item.func && item.id === 'now'\" (click)=\"onNow()\">{{ locale.now }}</x-button>\r\n <x-button type=\"text\" *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-button>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-portal{display:flex;flex-direction:column;height:100%;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background)}.x-time-picker-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-time-picker-portal-preset>x-button{flex:1}\n"] }]
446
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.XI18nService }]; }, propDecorators: { placement: [{
262
447
  type: HostBinding,
263
448
  args: ['@x-connect-base-animation']
264
449
  }], done: [{
@@ -270,7 +455,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
270
455
  }] } });
271
456
 
272
457
  class XTimePickerComponent extends XTimePickerProperty {
273
- constructor(renderer, elementRef, cdr, portalService, viewContainerRef, datePipe, overlay) {
458
+ constructor(renderer, elementRef, cdr, portalService, viewContainerRef, datePipe, overlay, i18n) {
274
459
  super();
275
460
  this.renderer = renderer;
276
461
  this.elementRef = elementRef;
@@ -279,6 +464,7 @@ class XTimePickerComponent extends XTimePickerProperty {
279
464
  this.viewContainerRef = viewContainerRef;
280
465
  this.datePipe = datePipe;
281
466
  this.overlay = overlay;
467
+ this.i18n = i18n;
282
468
  this.readonly = true;
283
469
  this.clearable = false;
284
470
  this.enter = false;
@@ -292,6 +478,7 @@ class XTimePickerComponent extends XTimePickerProperty {
292
478
  this.positionChange = new Subject();
293
479
  this.closeSubject = new Subject();
294
480
  this.valueType = 'date';
481
+ this.locale = {};
295
482
  this._unSubject = new Subject();
296
483
  }
297
484
  writeValue(value) {
@@ -345,6 +532,15 @@ class XTimePickerComponent extends XTimePickerProperty {
345
532
  this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {
346
533
  this.closePortal();
347
534
  });
535
+ this.i18n.localeChange
536
+ .pipe(map((x) => x.timePicker), takeUntil(this._unSubject))
537
+ .subscribe((x) => {
538
+ this.locale = x;
539
+ if (this.use12Hours) {
540
+ this.setDisplayValue(this.value);
541
+ }
542
+ this.cdr.markForCheck();
543
+ });
348
544
  }
349
545
  menter() {
350
546
  if (this.disabled)
@@ -430,6 +626,11 @@ class XTimePickerComponent extends XTimePickerProperty {
430
626
  valueChange: this.valueChange,
431
627
  positionChange: this.positionChange,
432
628
  inputCom: this.inputCom,
629
+ use12Hours: this.use12Hours,
630
+ hourStep: this.hourStep,
631
+ minuteStep: this.minuteStep,
632
+ secondStep: this.secondStep,
633
+ preset: this.preset,
433
634
  closePortal: () => this.closeSubject.next(),
434
635
  destroyPortal: () => this.destroyPortal(),
435
636
  nodeEmit: (node) => this.onNodeClick(node),
@@ -450,7 +651,17 @@ class XTimePickerComponent extends XTimePickerProperty {
450
651
  return ['date', 'string'].includes(this.valueType) ? new Date(value) : value.getTime();
451
652
  }
452
653
  setDisplayValue(date) {
453
- this.displayValue = this.datePipe.transform(date, this.format);
654
+ if (!date)
655
+ return;
656
+ if (this.use12Hours) {
657
+ let dt = new Date(date);
658
+ let hour = dt.getHours();
659
+ let suffix = hour >= 12 ? this.locale.pm : this.locale.am;
660
+ this.displayValue = `${this.datePipe.transform(dt.setHours(hour === 0 ? 12 : hour > 12 ? hour - 12 : hour), this.format)} ${suffix}`;
661
+ }
662
+ else {
663
+ this.displayValue = this.datePipe.transform(date, this.format);
664
+ }
454
665
  }
455
666
  setPlacement() {
456
667
  return this.portalService.setPlacement({
@@ -469,12 +680,12 @@ class XTimePickerComponent extends XTimePickerProperty {
469
680
  this.cdr.detectChanges();
470
681
  }
471
682
  }
472
- /** @nocollapse */ XTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2$1.DatePipe }, { token: i3.Overlay }], target: i0.ɵɵFactoryTarget.Component });
473
- /** @nocollapse */ XTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTimePickerComponent, selector: "x-time-picker", providers: [XValueAccessor(XTimePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block;width:12rem}.x-time-picker{margin:0;padding:0;width:100%}.x-time-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
683
+ /** @nocollapse */ XTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.DatePipe }, { token: i3$1.Overlay }, { token: i1.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
684
+ /** @nocollapse */ XTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTimePickerComponent, selector: "x-time-picker", providers: [XValueAccessor(XTimePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block;width:12rem}.x-time-picker{margin:0;padding:0;width:100%}.x-time-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
474
685
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerComponent, decorators: [{
475
686
  type: Component,
476
687
  args: [{ selector: `${XTimePickerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTimePickerComponent), DatePipe], template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block;width:12rem}.x-time-picker{margin:0;padding:0;width:100%}.x-time-picker x-input{width:100%}\n"] }]
477
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2$1.DatePipe }, { type: i3.Overlay }]; }, propDecorators: { datePicker: [{
688
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2.DatePipe }, { type: i3$1.Overlay }, { type: i1.XI18nService }]; }, propDecorators: { datePicker: [{
478
689
  type: ViewChild,
479
690
  args: ['datePicker', { static: true }]
480
691
  }], inputCom: [{
@@ -493,7 +704,8 @@ class XTimePickerModule {
493
704
  XListModule,
494
705
  XButtonModule,
495
706
  XIconModule,
496
- XBaseFormModule], exports: [XTimePickerComponent, XTimePickerPortalComponent, XTimePickerFrameComponent] });
707
+ XBaseFormModule,
708
+ XI18nModule], exports: [XTimePickerComponent, XTimePickerPortalComponent, XTimePickerFrameComponent] });
497
709
  /** @nocollapse */ XTimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerModule, imports: [CommonModule,
498
710
  FormsModule,
499
711
  ReactiveFormsModule,
@@ -502,7 +714,8 @@ class XTimePickerModule {
502
714
  XListModule,
503
715
  XButtonModule,
504
716
  XIconModule,
505
- XBaseFormModule] });
717
+ XBaseFormModule,
718
+ XI18nModule] });
506
719
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTimePickerModule, decorators: [{
507
720
  type: NgModule,
508
721
  args: [{
@@ -517,7 +730,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
517
730
  XListModule,
518
731
  XButtonModule,
519
732
  XIconModule,
520
- XBaseFormModule
733
+ XBaseFormModule,
734
+ XI18nModule
521
735
  ]
522
736
  }]
523
737
  }] });
@@ -528,4 +742,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
528
742
 
529
743
  export { XTimePickerComponent, XTimePickerFrameComponent, XTimePickerFramePrefix, XTimePickerModule, XTimePickerPortalComponent, XTimePickerPortalPrefix, XTimePickerPrefix, XTimePickerProperty };
530
744
  //# sourceMappingURL=ng-nest-ui-time-picker.mjs.map
531
- //# sourceMappingURL=ng-nest-ui-time-picker.mjs.map