ngx-bootstrap 5.3.2 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/CHANGELOG.md +148 -99
  2. package/README.md +14 -10
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +71 -2
  4. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  6. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  7. package/accordion/fesm2015/ngx-bootstrap-accordion.js +79 -0
  8. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  9. package/accordion/fesm5/ngx-bootstrap-accordion.js +80 -1
  10. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  11. package/accordion/package.json +2 -2
  12. package/alert/bundles/ngx-bootstrap-alert.umd.js +224 -2
  13. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  14. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +15 -1
  15. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  16. package/alert/fesm2015/ngx-bootstrap-alert.js +71 -0
  17. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  18. package/alert/fesm5/ngx-bootstrap-alert.js +72 -1
  19. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  20. package/alert/package.json +2 -2
  21. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +208 -85
  22. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  23. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  24. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  25. package/buttons/button-radio-group.directive.d.ts +4 -1
  26. package/buttons/esm2015/button-radio-group.directive.js +26 -2
  27. package/buttons/esm5/button-radio-group.directive.js +30 -2
  28. package/buttons/fesm2015/ngx-bootstrap-buttons.js +194 -65
  29. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  30. package/buttons/fesm5/ngx-bootstrap-buttons.js +216 -83
  31. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  32. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  33. package/buttons/package.json +2 -2
  34. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +295 -4
  35. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  36. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +15 -1
  37. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  38. package/carousel/carousel.component.d.ts +2 -0
  39. package/carousel/esm2015/carousel.component.js +15 -2
  40. package/carousel/esm2015/slide.component.js +21 -2
  41. package/carousel/esm5/carousel.component.js +15 -2
  42. package/carousel/esm5/slide.component.js +6 -2
  43. package/carousel/fesm2015/ngx-bootstrap-carousel.js +169 -2
  44. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  45. package/carousel/fesm5/ngx-bootstrap-carousel.js +156 -4
  46. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  47. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  48. package/carousel/package.json +2 -2
  49. package/carousel/slide.component.d.ts +1 -0
  50. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +11172 -10061
  51. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  52. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  53. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  54. package/chronos/esm2015/format/format.js +1 -1
  55. package/chronos/esm2015/i18n/ka.js +108 -0
  56. package/chronos/esm2015/i18n/kk.js +89 -0
  57. package/chronos/esm2015/i18n/sq.js +62 -0
  58. package/chronos/esm2015/i18n/th-be.js +85 -0
  59. package/chronos/esm2015/index.js +2 -2
  60. package/chronos/esm2015/locale/locale.class.js +16 -2
  61. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  62. package/chronos/esm2015/public_api.js +5 -1
  63. package/chronos/esm2015/units/year.js +4 -1
  64. package/chronos/esm5/format/format.js +1 -1
  65. package/chronos/esm5/i18n/ka.js +108 -0
  66. package/chronos/esm5/i18n/kk.js +89 -0
  67. package/chronos/esm5/i18n/sq.js +62 -0
  68. package/chronos/esm5/i18n/th-be.js +86 -0
  69. package/chronos/esm5/index.js +2 -2
  70. package/chronos/esm5/locale/locale.class.js +22 -2
  71. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  72. package/chronos/esm5/public_api.js +5 -1
  73. package/chronos/esm5/units/year.js +4 -1
  74. package/chronos/fesm2015/ngx-bootstrap-chronos.js +1117 -13
  75. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  76. package/chronos/fesm5/ngx-bootstrap-chronos.js +1130 -13
  77. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  78. package/chronos/i18n/ka.d.ts +2 -0
  79. package/chronos/i18n/kk.d.ts +2 -0
  80. package/chronos/i18n/sq.d.ts +2 -0
  81. package/chronos/i18n/th-be.d.ts +2 -0
  82. package/chronos/locale/locale.class.d.ts +2 -0
  83. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  84. package/chronos/package.json +2 -2
  85. package/chronos/public_api.d.ts +4 -0
  86. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +100 -2
  87. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  88. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +1 -1
  89. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  90. package/collapse/collapse.directive.d.ts +1 -0
  91. package/collapse/esm2015/collapse.directive.js +14 -1
  92. package/collapse/esm5/collapse.directive.js +14 -1
  93. package/collapse/fesm2015/ngx-bootstrap-collapse.js +108 -0
  94. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  95. package/collapse/fesm5/ngx-bootstrap-collapse.js +109 -1
  96. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  97. package/collapse/ngx-bootstrap-collapse.metadata.json +1 -1
  98. package/collapse/package.json +2 -2
  99. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +169 -2
  100. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  101. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  102. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  103. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +177 -0
  104. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  105. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +178 -1
  106. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  107. package/component-loader/package.json +2 -2
  108. package/datepicker/base/bs-datepicker-container.d.ts +2 -1
  109. package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
  110. package/datepicker/bs-datepicker-input.directive.d.ts +1 -0
  111. package/datepicker/bs-datepicker.component.d.ts +12 -3
  112. package/datepicker/bs-datepicker.config.d.ts +31 -1
  113. package/datepicker/bs-datepicker.css +19 -1
  114. package/datepicker/bs-datepicker.css.map +3 -3
  115. package/datepicker/bs-datepicker.scss +0 -1
  116. package/datepicker/bs-daterangepicker-inline.component.d.ts +8 -0
  117. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -0
  118. package/datepicker/bs-daterangepicker.component.d.ts +16 -3
  119. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2100 -99
  120. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  121. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +15 -1
  122. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  123. package/datepicker/engine/flag-days-calendar.d.ts +1 -0
  124. package/datepicker/esm2015/base/bs-datepicker-container.js +10 -3
  125. package/datepicker/esm2015/bs-datepicker-inline.component.js +25 -9
  126. package/datepicker/esm2015/bs-datepicker-input.directive.js +19 -1
  127. package/datepicker/esm2015/bs-datepicker.component.js +55 -8
  128. package/datepicker/esm2015/bs-datepicker.config.js +42 -3
  129. package/datepicker/esm2015/bs-datepicker.module.js +23 -16
  130. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +37 -7
  131. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +34 -3
  132. package/datepicker/esm2015/bs-daterangepicker.component.js +66 -9
  133. package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
  134. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  135. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +15 -11
  136. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +28 -6
  137. package/datepicker/esm2015/reducer/bs-datepicker.state.js +7 -1
  138. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +46 -8
  139. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -2
  140. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  141. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +8 -7
  142. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +21 -3
  143. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  144. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +22 -8
  145. package/datepicker/esm2015/utils/bs-calendar-utils.js +18 -3
  146. package/datepicker/esm5/base/bs-datepicker-container.js +14 -3
  147. package/datepicker/esm5/bs-datepicker-inline.component.js +25 -9
  148. package/datepicker/esm5/bs-datepicker-input.directive.js +23 -1
  149. package/datepicker/esm5/bs-datepicker.component.js +59 -8
  150. package/datepicker/esm5/bs-datepicker.config.js +42 -3
  151. package/datepicker/esm5/bs-datepicker.module.js +26 -19
  152. package/datepicker/esm5/bs-daterangepicker-inline.component.js +37 -7
  153. package/datepicker/esm5/bs-daterangepicker-input.directive.js +38 -3
  154. package/datepicker/esm5/bs-daterangepicker.component.js +70 -9
  155. package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
  156. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  157. package/datepicker/esm5/reducer/bs-datepicker.effects.js +21 -17
  158. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +28 -6
  159. package/datepicker/esm5/reducer/bs-datepicker.state.js +7 -1
  160. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +39 -7
  161. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -2
  162. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  163. package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +2 -2
  164. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +25 -3
  165. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  166. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +22 -8
  167. package/datepicker/esm5/utils/bs-calendar-utils.js +18 -3
  168. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +1953 -91
  169. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  170. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +1985 -98
  171. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  172. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  173. package/datepicker/package.json +2 -2
  174. package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
  175. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
  176. package/datepicker/reducer/bs-datepicker.state.d.ts +3 -0
  177. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +6 -1
  178. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -0
  179. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  180. package/datepicker/utils/scss/mixins.css.map +1 -1
  181. package/datepicker/utils/scss/mixins.scss +9 -0
  182. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +387 -3
  183. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  184. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +15 -1
  185. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  186. package/dropdown/esm2015/bs-dropdown-container.component.js +2 -2
  187. package/dropdown/esm5/bs-dropdown-container.component.js +2 -2
  188. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +234 -1
  189. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  190. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +234 -1
  191. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  192. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  193. package/dropdown/package.json +2 -2
  194. package/locale/bundles/ngx-bootstrap-locale.umd.js +36 -2
  195. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
  196. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
  197. package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
  198. package/locale/esm2015/public_api.js +5 -1
  199. package/locale/esm5/ngx-bootstrap-locale.js +2 -2
  200. package/locale/esm5/public_api.js +5 -1
  201. package/locale/fesm2015/ngx-bootstrap-locale.js +11 -1
  202. package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -1
  203. package/locale/fesm5/ngx-bootstrap-locale.js +11 -1
  204. package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -1
  205. package/locale/ngx-bootstrap-locale.metadata.json +1 -1
  206. package/locale/package.json +2 -2
  207. package/locale/public_api.d.ts +4 -0
  208. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +187 -2
  209. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  210. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +15 -1
  211. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  212. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +32 -0
  213. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -1
  214. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +32 -0
  215. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  216. package/mini-ngrx/package.json +2 -2
  217. package/modal/bs-modal.service.d.ts +1 -2
  218. package/modal/bundles/ngx-bootstrap-modal.umd.js +558 -16
  219. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  220. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +15 -1
  221. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  222. package/modal/esm2015/bs-modal.service.js +13 -4
  223. package/modal/esm2015/modal-container.component.js +24 -5
  224. package/modal/esm2015/modal-options.class.js +16 -1
  225. package/modal/esm2015/modal.directive.js +21 -4
  226. package/modal/esm2015/modal.module.js +10 -1
  227. package/modal/esm5/bs-modal.service.js +28 -8
  228. package/modal/esm5/modal-container.component.js +28 -5
  229. package/modal/esm5/modal-options.class.js +16 -1
  230. package/modal/esm5/modal.directive.js +25 -4
  231. package/modal/esm5/modal.module.js +13 -1
  232. package/modal/fesm2015/ngx-bootstrap-modal.js +354 -10
  233. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  234. package/modal/fesm5/ngx-bootstrap-modal.js +381 -15
  235. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  236. package/modal/modal-container.component.d.ts +3 -1
  237. package/modal/modal-options.class.d.ts +13 -0
  238. package/modal/modal.directive.d.ts +3 -1
  239. package/modal/modal.module.d.ts +1 -0
  240. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  241. package/modal/package.json +2 -2
  242. package/package.json +2 -2
  243. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +276 -4
  244. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  245. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  246. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  247. package/pagination/esm2015/models/index.js +49 -4
  248. package/pagination/esm2015/pager.component.js +2 -2
  249. package/pagination/esm2015/pagination.component.js +33 -3
  250. package/pagination/esm2015/public_api.js +1 -1
  251. package/pagination/esm5/models/index.js +49 -4
  252. package/pagination/esm5/pager.component.js +2 -2
  253. package/pagination/esm5/pagination.component.js +33 -3
  254. package/pagination/esm5/public_api.js +1 -1
  255. package/pagination/fesm2015/ngx-bootstrap-pagination.js +284 -2
  256. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  257. package/pagination/fesm5/ngx-bootstrap-pagination.js +285 -3
  258. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  259. package/pagination/models/index.d.ts +28 -0
  260. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  261. package/pagination/package.json +2 -2
  262. package/pagination/pagination.component.d.ts +12 -2
  263. package/pagination/public_api.d.ts +1 -0
  264. package/popover/bundles/ngx-bootstrap-popover.umd.js +215 -20
  265. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  266. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  267. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  268. package/popover/esm2015/popover.config.js +10 -1
  269. package/popover/esm2015/popover.directive.js +97 -16
  270. package/popover/esm5/popover.config.js +10 -1
  271. package/popover/esm5/popover.directive.js +98 -16
  272. package/popover/fesm2015/ngx-bootstrap-popover.js +221 -16
  273. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  274. package/popover/fesm5/ngx-bootstrap-popover.js +222 -16
  275. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  276. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  277. package/popover/package.json +2 -2
  278. package/popover/popover.config.d.ts +2 -0
  279. package/popover/popover.directive.d.ts +9 -1
  280. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +286 -13
  281. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  282. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +15 -1
  283. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  284. package/positioning/esm2015/modifiers/arrow.js +19 -5
  285. package/positioning/esm2015/modifiers/initData.js +12 -2
  286. package/positioning/esm2015/modifiers/shift.js +6 -4
  287. package/positioning/esm5/modifiers/arrow.js +19 -5
  288. package/positioning/esm5/modifiers/initData.js +12 -2
  289. package/positioning/esm5/modifiers/shift.js +8 -6
  290. package/positioning/fesm2015/ngx-bootstrap-positioning.js +128 -8
  291. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  292. package/positioning/fesm5/ngx-bootstrap-positioning.js +132 -10
  293. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  294. package/positioning/package.json +2 -2
  295. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +77 -2
  296. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  297. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  298. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  299. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +85 -0
  300. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  301. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +85 -0
  302. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  303. package/progressbar/package.json +2 -2
  304. package/rating/bundles/ngx-bootstrap-rating.umd.js +92 -7
  305. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  306. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  307. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  308. package/rating/esm2015/ngx-bootstrap-rating.js +2 -2
  309. package/rating/esm2015/public_api.js +2 -1
  310. package/rating/esm2015/rating.component.js +14 -5
  311. package/rating/esm2015/rating.config.js +27 -0
  312. package/rating/esm2015/rating.module.js +3 -2
  313. package/rating/esm5/ngx-bootstrap-rating.js +2 -2
  314. package/rating/esm5/public_api.js +2 -1
  315. package/rating/esm5/rating.component.js +13 -5
  316. package/rating/esm5/rating.config.js +29 -0
  317. package/rating/esm5/rating.module.js +3 -2
  318. package/rating/fesm2015/ngx-bootstrap-rating.js +101 -7
  319. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  320. package/rating/fesm5/ngx-bootstrap-rating.js +101 -7
  321. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  322. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  323. package/rating/package.json +2 -2
  324. package/rating/public_api.d.ts +1 -0
  325. package/rating/rating.component.d.ts +4 -1
  326. package/rating/rating.config.d.ts +5 -0
  327. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +254 -2
  328. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  329. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +15 -1
  330. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  331. package/sortable/fesm2015/ngx-bootstrap-sortable.js +113 -0
  332. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  333. package/sortable/fesm5/ngx-bootstrap-sortable.js +114 -1
  334. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  335. package/sortable/package.json +2 -2
  336. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +153 -4
  337. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  338. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  339. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  340. package/tabs/esm2015/tab.directive.js +13 -2
  341. package/tabs/esm2015/tabset.component.js +7 -2
  342. package/tabs/esm2015/tabset.config.js +10 -1
  343. package/tabs/esm5/tab.directive.js +17 -2
  344. package/tabs/esm5/tabset.component.js +7 -2
  345. package/tabs/esm5/tabset.config.js +10 -1
  346. package/tabs/fesm2015/ngx-bootstrap-tabs.js +157 -2
  347. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  348. package/tabs/fesm5/ngx-bootstrap-tabs.js +162 -3
  349. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  350. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  351. package/tabs/package.json +2 -2
  352. package/tabs/tab.directive.d.ts +2 -0
  353. package/tabs/tabset.component.d.ts +2 -0
  354. package/tabs/tabset.config.d.ts +2 -0
  355. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +464 -8
  356. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  357. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +15 -1
  358. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  359. package/timepicker/esm2015/timepicker.component.js +8 -2
  360. package/timepicker/esm2015/timepicker.config.js +28 -1
  361. package/timepicker/esm2015/timepicker.utils.js +9 -6
  362. package/timepicker/esm5/timepicker.component.js +8 -2
  363. package/timepicker/esm5/timepicker.config.js +28 -1
  364. package/timepicker/esm5/timepicker.utils.js +9 -6
  365. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +311 -6
  366. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  367. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +315 -7
  368. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  369. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  370. package/timepicker/package.json +2 -2
  371. package/timepicker/timepicker.component.d.ts +3 -0
  372. package/timepicker/timepicker.config.d.ts +6 -0
  373. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +356 -8
  374. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  375. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +15 -1
  376. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  377. package/tooltip/esm2015/tooltip.directive.js +48 -10
  378. package/tooltip/esm5/tooltip.directive.js +51 -10
  379. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +201 -7
  380. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  381. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +204 -7
  382. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  383. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  384. package/tooltip/package.json +2 -2
  385. package/tooltip/tooltip.directive.d.ts +3 -1
  386. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +748 -69
  387. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  388. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +15 -1
  389. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  390. package/typeahead/esm2015/models/index.js +87 -0
  391. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
  392. package/typeahead/esm2015/public_api.js +2 -1
  393. package/typeahead/esm2015/typeahead-container.component.js +82 -37
  394. package/typeahead/esm2015/typeahead-order.class.js +19 -0
  395. package/typeahead/esm2015/typeahead.config.js +10 -1
  396. package/typeahead/esm2015/typeahead.directive.js +133 -30
  397. package/typeahead/esm5/models/index.js +87 -0
  398. package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
  399. package/typeahead/esm5/public_api.js +2 -1
  400. package/typeahead/esm5/typeahead-container.component.js +92 -37
  401. package/typeahead/esm5/typeahead-order.class.js +23 -0
  402. package/typeahead/esm5/typeahead.config.js +10 -1
  403. package/typeahead/esm5/typeahead.directive.js +140 -36
  404. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +574 -61
  405. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  406. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +594 -67
  407. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  408. package/typeahead/models/index.d.ts +41 -0
  409. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  410. package/typeahead/package.json +2 -2
  411. package/typeahead/public_api.d.ts +2 -0
  412. package/typeahead/typeahead-container.component.d.ts +15 -7
  413. package/typeahead/typeahead-order.class.d.ts +6 -0
  414. package/typeahead/typeahead.config.d.ts +2 -0
  415. package/typeahead/typeahead.directive.d.ts +28 -10
  416. package/utils/bundles/ngx-bootstrap-utils.umd.js +54 -2
  417. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
  418. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +2 -2
  419. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
  420. package/utils/fesm2015/ngx-bootstrap-utils.js +62 -0
  421. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
  422. package/utils/fesm5/ngx-bootstrap-utils.js +62 -0
  423. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
  424. package/utils/package.json +2 -2
  425. package/bundles/ngx-bootstrap.umd.js +0 -1037
  426. package/bundles/ngx-bootstrap.umd.js.map +0 -1
  427. package/bundles/ngx-bootstrap.umd.min.js +0 -2
  428. package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
  429. package/esm2015/ngx-bootstrap.js +0 -9
  430. package/esm2015/public_api.js +0 -30
  431. package/esm5/ngx-bootstrap.js +0 -9
  432. package/esm5/public_api.js +0 -30
  433. package/fesm2015/ngx-bootstrap.js +0 -24
  434. package/fesm2015/ngx-bootstrap.js.map +0 -1
  435. package/fesm5/ngx-bootstrap.js +0 -24
  436. package/fesm5/ngx-bootstrap.js.map +0 -1
  437. package/ngx-bootstrap.d.ts +0 -4
  438. package/ngx-bootstrap.metadata.json +0 -1
  439. package/public_api.d.ts +0 -25
@@ -1,4 +1,4 @@
1
- import { Injectable, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Input, Output, EventEmitter, NgModule } from '@angular/core';
1
+ import { Injectable, forwardRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Input, Output, NgModule } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { __extends } from 'tslib';
4
4
  import { BehaviorSubject } from 'rxjs';
@@ -107,6 +107,20 @@ var TimepickerActions = /** @class */ (function () {
107
107
  ];
108
108
  return TimepickerActions;
109
109
  }());
110
+ if (false) {
111
+ /** @type {?} */
112
+ TimepickerActions.WRITE_VALUE;
113
+ /** @type {?} */
114
+ TimepickerActions.CHANGE_HOURS;
115
+ /** @type {?} */
116
+ TimepickerActions.CHANGE_MINUTES;
117
+ /** @type {?} */
118
+ TimepickerActions.CHANGE_SECONDS;
119
+ /** @type {?} */
120
+ TimepickerActions.SET_TIME_UNIT;
121
+ /** @type {?} */
122
+ TimepickerActions.UPDATE_CONTROLS;
123
+ }
110
124
 
111
125
  /**
112
126
  * @fileoverview added by tsickle
@@ -162,6 +176,13 @@ function toNumber(value) {
162
176
  }
163
177
  return parseInt(value, dex);
164
178
  }
179
+ /**
180
+ * @param {?} value
181
+ * @return {?}
182
+ */
183
+ function isNumber(value) {
184
+ return !isNaN(toNumber(value));
185
+ }
165
186
  /**
166
187
  * @param {?} value
167
188
  * @param {?=} isPM
@@ -228,10 +249,7 @@ function changeTime(value, diff) {
228
249
  /** @type {?} */
229
250
  var seconds = value.getSeconds();
230
251
  if (diff.hour) {
231
- hour = (hour + toNumber(diff.hour)) % hoursPerDay;
232
- if (hour < 0) {
233
- hour += hoursPerDay;
234
- }
252
+ hour = hour + toNumber(diff.hour);
235
253
  }
236
254
  if (diff.minute) {
237
255
  minutes = minutes + toNumber(diff.minute);
@@ -275,7 +293,13 @@ function setTime(value, opts) {
275
293
  * @return {?}
276
294
  */
277
295
  function createDate(value, hours, minutes, seconds) {
278
- return new Date(value.getFullYear(), value.getMonth(), value.getDate(), hours, minutes, seconds, value.getMilliseconds());
296
+ /** @type {?} */
297
+ var newValue = new Date(value.getFullYear(), value.getMonth(), value.getDate(), hours, minutes, seconds, value.getMilliseconds());
298
+ // #3139 ensure date part remains unchanged
299
+ newValue.setFullYear(value.getFullYear());
300
+ newValue.setMonth(value.getMonth());
301
+ newValue.setDate(value.getDate());
302
+ return newValue;
279
303
  }
280
304
  /**
281
305
  * @param {?} value
@@ -574,17 +598,144 @@ var TimepickerConfig = /** @class */ (function () {
574
598
  * placeholder for seconds field in timepicker
575
599
  */
576
600
  this.secondsPlaceholder = 'SS';
601
+ /**
602
+ * hours aria label
603
+ */
604
+ this.ariaLabelHours = 'hours';
605
+ /**
606
+ * minutes aria label
607
+ */
608
+ this.ariaLabelMinutes = 'minutes';
609
+ /**
610
+ * seconds aria label
611
+ */
612
+ this.ariaLabelSeconds = 'seconds';
577
613
  }
578
614
  TimepickerConfig.decorators = [
579
615
  { type: Injectable }
580
616
  ];
581
617
  return TimepickerConfig;
582
618
  }());
619
+ if (false) {
620
+ /**
621
+ * hours change step
622
+ * @type {?}
623
+ */
624
+ TimepickerConfig.prototype.hourStep;
625
+ /**
626
+ * hours change step
627
+ * @type {?}
628
+ */
629
+ TimepickerConfig.prototype.minuteStep;
630
+ /**
631
+ * seconds changes step
632
+ * @type {?}
633
+ */
634
+ TimepickerConfig.prototype.secondsStep;
635
+ /**
636
+ * if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM
637
+ * @type {?}
638
+ */
639
+ TimepickerConfig.prototype.showMeridian;
640
+ /**
641
+ * meridian labels based on locale
642
+ * @type {?}
643
+ */
644
+ TimepickerConfig.prototype.meridians;
645
+ /**
646
+ * if true hours and minutes fields will be readonly
647
+ * @type {?}
648
+ */
649
+ TimepickerConfig.prototype.readonlyInput;
650
+ /**
651
+ * if true hours and minutes fields will be disabled
652
+ * @type {?}
653
+ */
654
+ TimepickerConfig.prototype.disabled;
655
+ /**
656
+ * if true scroll inside hours and minutes inputs will change time
657
+ * @type {?}
658
+ */
659
+ TimepickerConfig.prototype.mousewheel;
660
+ /**
661
+ * if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard
662
+ * @type {?}
663
+ */
664
+ TimepickerConfig.prototype.arrowkeys;
665
+ /**
666
+ * if true spinner arrows above and below the inputs will be shown
667
+ * @type {?}
668
+ */
669
+ TimepickerConfig.prototype.showSpinners;
670
+ /**
671
+ * show seconds in timepicker
672
+ * @type {?}
673
+ */
674
+ TimepickerConfig.prototype.showSeconds;
675
+ /**
676
+ * show minutes in timepicker
677
+ * @type {?}
678
+ */
679
+ TimepickerConfig.prototype.showMinutes;
680
+ /**
681
+ * minimum time user can select
682
+ * @type {?}
683
+ */
684
+ TimepickerConfig.prototype.min;
685
+ /**
686
+ * maximum time user can select
687
+ * @type {?}
688
+ */
689
+ TimepickerConfig.prototype.max;
690
+ /**
691
+ * placeholder for hours field in timepicker
692
+ * @type {?}
693
+ */
694
+ TimepickerConfig.prototype.hoursPlaceholder;
695
+ /**
696
+ * placeholder for minutes field in timepicker
697
+ * @type {?}
698
+ */
699
+ TimepickerConfig.prototype.minutesPlaceholder;
700
+ /**
701
+ * placeholder for seconds field in timepicker
702
+ * @type {?}
703
+ */
704
+ TimepickerConfig.prototype.secondsPlaceholder;
705
+ /**
706
+ * hours aria label
707
+ * @type {?}
708
+ */
709
+ TimepickerConfig.prototype.ariaLabelHours;
710
+ /**
711
+ * minutes aria label
712
+ * @type {?}
713
+ */
714
+ TimepickerConfig.prototype.ariaLabelMinutes;
715
+ /**
716
+ * seconds aria label
717
+ * @type {?}
718
+ */
719
+ TimepickerConfig.prototype.ariaLabelSeconds;
720
+ }
583
721
 
584
722
  /**
585
723
  * @fileoverview added by tsickle
586
724
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
587
725
  */
726
+ var TimepickerState = /** @class */ (function () {
727
+ function TimepickerState() {
728
+ }
729
+ return TimepickerState;
730
+ }());
731
+ if (false) {
732
+ /** @type {?} */
733
+ TimepickerState.prototype.value;
734
+ /** @type {?} */
735
+ TimepickerState.prototype.config;
736
+ /** @type {?} */
737
+ TimepickerState.prototype.controls;
738
+ }
588
739
  /** @type {?} */
589
740
  var initialState = {
590
741
  value: null,
@@ -1136,7 +1287,7 @@ var TimepickerComponent = /** @class */ (function () {
1136
1287
  selector: 'timepicker',
1137
1288
  changeDetection: ChangeDetectionStrategy.OnPush,
1138
1289
  providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore],
1139
- template: "<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\"\n (click)=\"changeHours(hourStep)\"\n ><span class=\"bs-chevron bs-chevron-up\"></span></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\"\n (click)=\"changeMinutes(minuteStep)\"\n ><span class=\"bs-chevron bs-chevron-up\"></span></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\"\n (click)=\"changeSeconds(secondsStep)\">\n <span class=\"bs-chevron bs-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 type=\"text\" [class.is-invalid]=\"invalidHours\"\n class=\"form-control text-center bs-timepicker-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)\"></td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\">&nbsp;:&nbsp;</td>\n <!-- minutes -->\n <td class=\"form-group\" *ngIf=\"showMinutes\" [class.has-error]=\"invalidMinutes\">\n <input type=\"text\" [class.is-invalid]=\"invalidMinutes\"\n class=\"form-control text-center bs-timepicker-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 </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 type=\"text\" [class.is-invalid]=\"invalidSeconds\"\n class=\"form-control text-center bs-timepicker-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 </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\">&nbsp;&nbsp;&nbsp;</td>\n <!-- meridian -->\n <td *ngIf=\"showMeridian\">\n <button type=\"button\" class=\"btn btn-default text-center\"\n [disabled]=\"!isEditable || !canToggleMeridian\"\n [class.disabled]=\"!isEditable || !canToggleMeridian\"\n (click)=\"toggleMeridian()\"\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\"\n (click)=\"changeHours(-hourStep)\">\n <span class=\"bs-chevron bs-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\"\n (click)=\"changeMinutes(-minuteStep)\">\n <span class=\"bs-chevron bs-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\"\n (click)=\"changeSeconds(-secondsStep)\">\n <span class=\"bs-chevron bs-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",
1290
+ template: "<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\"\n (click)=\"changeHours(hourStep)\"\n ><span class=\"bs-chevron bs-chevron-up\"></span></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\"\n (click)=\"changeMinutes(minuteStep)\"\n ><span class=\"bs-chevron bs-chevron-up\"></span></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\"\n (click)=\"changeSeconds(secondsStep)\">\n <span class=\"bs-chevron bs-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 type=\"text\" [class.is-invalid]=\"invalidHours\"\n class=\"form-control text-center bs-timepicker-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)\" [attr.aria-label]=\"labelHours\"></td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\">&nbsp;:&nbsp;</td>\n <!-- minutes -->\n <td class=\"form-group\" *ngIf=\"showMinutes\" [class.has-error]=\"invalidMinutes\">\n <input type=\"text\" [class.is-invalid]=\"invalidMinutes\"\n class=\"form-control text-center bs-timepicker-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)\" [attr.aria-label]=\"labelMinutes\">\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 type=\"text\" [class.is-invalid]=\"invalidSeconds\"\n class=\"form-control text-center bs-timepicker-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)\" [attr.aria-label]=\"labelSeconds\">\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\">&nbsp;&nbsp;&nbsp;</td>\n <!-- meridian -->\n <td *ngIf=\"showMeridian\">\n <button type=\"button\" class=\"btn btn-default text-center\"\n [disabled]=\"!isEditable || !canToggleMeridian\"\n [class.disabled]=\"!isEditable || !canToggleMeridian\"\n (click)=\"toggleMeridian()\"\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\"\n (click)=\"changeHours(-hourStep)\">\n <span class=\"bs-chevron bs-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\"\n (click)=\"changeMinutes(-minuteStep)\">\n <span class=\"bs-chevron bs-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\"\n (click)=\"changeSeconds(-secondsStep)\">\n <span class=\"bs-chevron bs-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",
1140
1291
  encapsulation: ViewEncapsulation.None,
1141
1292
  styles: ["\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n padding: .375rem .55rem;\n }\n "]
1142
1293
  }] }
@@ -1170,6 +1321,153 @@ var TimepickerComponent = /** @class */ (function () {
1170
1321
  };
1171
1322
  return TimepickerComponent;
1172
1323
  }());
1324
+ if (false) {
1325
+ /**
1326
+ * hours change step
1327
+ * @type {?}
1328
+ */
1329
+ TimepickerComponent.prototype.hourStep;
1330
+ /**
1331
+ * hours change step
1332
+ * @type {?}
1333
+ */
1334
+ TimepickerComponent.prototype.minuteStep;
1335
+ /**
1336
+ * seconds change step
1337
+ * @type {?}
1338
+ */
1339
+ TimepickerComponent.prototype.secondsStep;
1340
+ /**
1341
+ * if true hours and minutes fields will be readonly
1342
+ * @type {?}
1343
+ */
1344
+ TimepickerComponent.prototype.readonlyInput;
1345
+ /**
1346
+ * if true hours and minutes fields will be disabled
1347
+ * @type {?}
1348
+ */
1349
+ TimepickerComponent.prototype.disabled;
1350
+ /**
1351
+ * if true scroll inside hours and minutes inputs will change time
1352
+ * @type {?}
1353
+ */
1354
+ TimepickerComponent.prototype.mousewheel;
1355
+ /**
1356
+ * if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard
1357
+ * @type {?}
1358
+ */
1359
+ TimepickerComponent.prototype.arrowkeys;
1360
+ /**
1361
+ * if true spinner arrows above and below the inputs will be shown
1362
+ * @type {?}
1363
+ */
1364
+ TimepickerComponent.prototype.showSpinners;
1365
+ /**
1366
+ * if true meridian button will be shown
1367
+ * @type {?}
1368
+ */
1369
+ TimepickerComponent.prototype.showMeridian;
1370
+ /**
1371
+ * show minutes in timepicker
1372
+ * @type {?}
1373
+ */
1374
+ TimepickerComponent.prototype.showMinutes;
1375
+ /**
1376
+ * show seconds in timepicker
1377
+ * @type {?}
1378
+ */
1379
+ TimepickerComponent.prototype.showSeconds;
1380
+ /**
1381
+ * meridian labels based on locale
1382
+ * @type {?}
1383
+ */
1384
+ TimepickerComponent.prototype.meridians;
1385
+ /**
1386
+ * minimum time user can select
1387
+ * @type {?}
1388
+ */
1389
+ TimepickerComponent.prototype.min;
1390
+ /**
1391
+ * maximum time user can select
1392
+ * @type {?}
1393
+ */
1394
+ TimepickerComponent.prototype.max;
1395
+ /**
1396
+ * placeholder for hours field in timepicker
1397
+ * @type {?}
1398
+ */
1399
+ TimepickerComponent.prototype.hoursPlaceholder;
1400
+ /**
1401
+ * placeholder for minutes field in timepicker
1402
+ * @type {?}
1403
+ */
1404
+ TimepickerComponent.prototype.minutesPlaceholder;
1405
+ /**
1406
+ * placeholder for seconds field in timepicker
1407
+ * @type {?}
1408
+ */
1409
+ TimepickerComponent.prototype.secondsPlaceholder;
1410
+ /**
1411
+ * emits true if value is a valid date
1412
+ * @type {?}
1413
+ */
1414
+ TimepickerComponent.prototype.isValid;
1415
+ /** @type {?} */
1416
+ TimepickerComponent.prototype.hours;
1417
+ /** @type {?} */
1418
+ TimepickerComponent.prototype.minutes;
1419
+ /** @type {?} */
1420
+ TimepickerComponent.prototype.seconds;
1421
+ /** @type {?} */
1422
+ TimepickerComponent.prototype.meridian;
1423
+ /** @type {?} */
1424
+ TimepickerComponent.prototype.invalidHours;
1425
+ /** @type {?} */
1426
+ TimepickerComponent.prototype.invalidMinutes;
1427
+ /** @type {?} */
1428
+ TimepickerComponent.prototype.invalidSeconds;
1429
+ /** @type {?} */
1430
+ TimepickerComponent.prototype.labelHours;
1431
+ /** @type {?} */
1432
+ TimepickerComponent.prototype.labelMinutes;
1433
+ /** @type {?} */
1434
+ TimepickerComponent.prototype.labelSeconds;
1435
+ /** @type {?} */
1436
+ TimepickerComponent.prototype.canIncrementHours;
1437
+ /** @type {?} */
1438
+ TimepickerComponent.prototype.canIncrementMinutes;
1439
+ /** @type {?} */
1440
+ TimepickerComponent.prototype.canIncrementSeconds;
1441
+ /** @type {?} */
1442
+ TimepickerComponent.prototype.canDecrementHours;
1443
+ /** @type {?} */
1444
+ TimepickerComponent.prototype.canDecrementMinutes;
1445
+ /** @type {?} */
1446
+ TimepickerComponent.prototype.canDecrementSeconds;
1447
+ /** @type {?} */
1448
+ TimepickerComponent.prototype.canToggleMeridian;
1449
+ /** @type {?} */
1450
+ TimepickerComponent.prototype.onChange;
1451
+ /** @type {?} */
1452
+ TimepickerComponent.prototype.onTouched;
1453
+ /** @type {?} */
1454
+ TimepickerComponent.prototype.timepickerSub;
1455
+ /**
1456
+ * @type {?}
1457
+ * @private
1458
+ */
1459
+ TimepickerComponent.prototype._cd;
1460
+ /**
1461
+ * @type {?}
1462
+ * @private
1463
+ */
1464
+ TimepickerComponent.prototype._store;
1465
+ /**
1466
+ * @type {?}
1467
+ * @private
1468
+ */
1469
+ TimepickerComponent.prototype._timepickerActions;
1470
+ }
1173
1471
 
1174
1472
  /**
1175
1473
  * @fileoverview added by tsickle
@@ -1200,5 +1498,15 @@ var TimepickerModule = /** @class */ (function () {
1200
1498
  return TimepickerModule;
1201
1499
  }());
1202
1500
 
1501
+ /**
1502
+ * @fileoverview added by tsickle
1503
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1504
+ */
1505
+
1506
+ /**
1507
+ * @fileoverview added by tsickle
1508
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1509
+ */
1510
+
1203
1511
  export { TimepickerActions, TimepickerComponent, TimepickerConfig, TimepickerModule, TimepickerStore, TIMEPICKER_CONTROL_VALUE_ACCESSOR as ɵa };
1204
1512
  //# sourceMappingURL=ngx-bootstrap-timepicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-timepicker.js","sources":["ng://ngx-bootstrap/timepicker/reducer/timepicker.actions.ts","ng://ngx-bootstrap/timepicker/timepicker.utils.ts","ng://ngx-bootstrap/timepicker/timepicker-controls.util.ts","ng://ngx-bootstrap/timepicker/timepicker.config.ts","ng://ngx-bootstrap/timepicker/reducer/timepicker.reducer.ts","ng://ngx-bootstrap/timepicker/reducer/timepicker.store.ts","ng://ngx-bootstrap/timepicker/timepicker.component.ts","ng://ngx-bootstrap/timepicker/timepicker.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n Time\n} from '../timepicker.models';\n\n@Injectable()\nexport class TimepickerActions {\n static readonly WRITE_VALUE = '[timepicker] write value from ng model';\n static readonly CHANGE_HOURS = '[timepicker] change hours';\n static readonly CHANGE_MINUTES = '[timepicker] change minutes';\n static readonly CHANGE_SECONDS = '[timepicker] change seconds';\n static readonly SET_TIME_UNIT = '[timepicker] set time unit';\n static readonly UPDATE_CONTROLS = '[timepicker] update controls';\n\n writeValue(value: Date | string) {\n return {\n type: TimepickerActions.WRITE_VALUE,\n payload: value\n };\n }\n\n changeHours(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_HOURS,\n payload: event\n };\n }\n\n changeMinutes(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_MINUTES,\n payload: event\n };\n }\n\n changeSeconds(event: TimeChangeEvent): Action {\n return {\n type: TimepickerActions.CHANGE_SECONDS,\n payload: event\n };\n }\n\n setTime(value: Time): Action {\n return {\n type: TimepickerActions.SET_TIME_UNIT,\n payload: value\n };\n }\n\n updateControls(value: TimepickerComponentState): Action {\n return {\n type: TimepickerActions.UPDATE_CONTROLS,\n payload: value\n };\n }\n}\n","import { Time, TimepickerComponentState } from './timepicker.models';\n\nconst dex = 10;\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 toNumber(value: string | number): number {\n if (typeof value === 'number') {\n return value;\n }\n\n return parseInt(value, dex);\n}\n\nexport function isNumber(value: string | number): value is number {\n return !isNaN(toNumber(value));\n}\n\nexport function parseHours(\n value: string | number,\n isPM = false\n): number {\n const hour = toNumber(value);\n if (\n isNaN(hour) ||\n hour < 0 ||\n hour > (isPM ? hoursPerDayHalf : hoursPerDay)\n ) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = toNumber(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 = toNumber(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 + toNumber(diff.hour)) % hoursPerDay;\n if (hour < 0) {\n hour += hoursPerDay;\n }\n }\n\n if (diff.minute) {\n minutes = minutes + toNumber(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + toNumber(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(\n value: Date,\n hours: number,\n minutes: number,\n seconds: number\n): Date {\n return new Date(\n value.getFullYear(),\n value.getMonth(),\n value.getDate(),\n hours,\n minutes,\n seconds,\n value.getMilliseconds()\n );\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(\n hours: string,\n minutes = '0',\n seconds = '0',\n isPM: boolean\n): boolean {\n return isHourInputValid(hours, isPM)\n && isMinuteInputValid(minutes)\n && isSecondInputValid(seconds);\n}\n","import { changeTime } from './timepicker.utils';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nexport function canChangeValue(\n state: TimepickerComponentState,\n event?: TimeChangeEvent\n): 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(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): 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(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): 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(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): 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(\n state: TimepickerComponentState\n): 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(\n value: Date,\n state: TimepickerComponentState\n): 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\n ? max > _newMinutes\n : 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\n ? min < _newMinutes\n : 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/** Provides default configuration values for timepicker */\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 { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n canChangeHours,\n canChangeMinutes,\n canChangeSeconds,\n canChangeValue,\n timepickerControls\n} from '../timepicker-controls.util';\nimport { TimepickerConfig } from '../timepicker.config';\nimport {\n TimepickerComponentState,\n TimepickerControls\n} from '../timepicker.models';\nimport { changeTime, setTime, isValidLimit } from '../timepicker.utils';\nimport { TimepickerActions } from './timepicker.actions';\n\nexport class 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// tslint:disable-next-line:cyclomatic-complexity\nexport function timepickerReducer(state = initialState, action: Action) {\n switch (action.type) {\n case TimepickerActions.WRITE_VALUE: {\n return Object.assign({}, state, { value: action.payload });\n }\n\n case TimepickerActions.CHANGE_HOURS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeHours(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_MINUTES: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeMinutes(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_SECONDS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeSeconds(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, {\n seconds: action.payload.step\n });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.SET_TIME_UNIT: {\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, action.payload);\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.UPDATE_CONTROLS: {\n const _newControlsState = timepickerControls(state.value, action.payload);\n const _newState: TimepickerState = {\n value: state.value,\n config: action.payload,\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 return Object.assign({}, state, _newState);\n }\n\n default:\n return state;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n timepickerReducer,\n TimepickerState,\n initialState\n} from './timepicker.reducer';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action, MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';\n\n@Injectable()\nexport class TimepickerStore extends MiniStore<TimepickerState> {\n constructor() {\n const _dispatcher = new BehaviorSubject<Action>({\n type: '[mini-ngrx] dispatcher init'\n });\n const state = new MiniState<TimepickerState>(\n initialState,\n _dispatcher,\n timepickerReducer\n );\n super(_dispatcher, timepickerReducer, state);\n }\n}\n","/* tslint:disable:no-forward-ref max-file-line-count */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges, ViewEncapsulation\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerStore } from './reducer/timepicker.store';\nimport { getControlsValue } from './timepicker-controls.util';\nimport { TimepickerConfig } from './timepicker.config';\n\nimport {\n TimeChangeSource,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nimport {\n isValidDate,\n padNumber,\n parseTime,\n isInputValid,\n isHourInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isInputLimitValid\n} from './timepicker.utils';\n\nimport { Subscription } from 'rxjs';\n\nimport { ControlValueAccessorModel } from './models';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: ControlValueAccessorModel = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => TimepickerComponent),\n multi: true\n};\n\n@Component({\n selector: 'timepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore],\n templateUrl: './timepicker.component.html',\n styles: [`\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n padding: .375rem .55rem;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class TimepickerComponent\n implements ControlValueAccessor,\n TimepickerComponentState,\n TimepickerControls,\n OnChanges,\n 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 /** @deprecated - please use `isEditable` instead */\n get isSpinnersVisible(): boolean {\n return this.showSpinners && !this.readonlyInput;\n }\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 // tslint:disable-next-line:no-any\n onChange = Function.prototype;\n // tslint:disable-next-line:no-any\n onTouched = Function.prototype;\n\n timepickerSub: Subscription;\n\n constructor(\n _config: TimepickerConfig,\n private _cd: ChangeDetectorRef,\n private _store: TimepickerStore,\n private _timepickerActions: TimepickerActions\n ) {\n Object.assign(this, _config);\n\n this.timepickerSub = _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\n this._store.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n });\n\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 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.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeHours({ step, source }));\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeMinutes({ step, source })\n );\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeSeconds({ step, source })\n );\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 hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }, this.max, this.min);\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.dispatch(\n this._timepickerActions.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n })\n );\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.dispatch(\n this._timepickerActions.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n })\n );\n }\n\n /**\n * Write a new value to the element.\n */\n writeValue(obj: string | null | undefined | Date): void {\n if (isValidDate(obj)) {\n this._store.dispatch(this._timepickerActions.writeValue(parseTime(obj)));\n } else if (obj == null) {\n this._store.dispatch(this._timepickerActions.writeValue(null));\n }\n }\n\n /**\n * Set the function to be called when the control receives a change event.\n */\n // tslint:disable-next-line:no-any\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n /**\n * Set the function to be called when the control receives a touch event.\n */\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * This function is called when the control status changes to or from \"disabled\".\n * Depending on the value, it will enable or disable the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.timepickerSub.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","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TimepickerComponent } from './timepicker.component';\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerConfig } from './timepicker.config';\nimport { TimepickerStore } from './reducer/timepicker.store';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TimepickerComponent],\n exports: [TimepickerComponent]\n})\nexport class TimepickerModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TimepickerModule,\n providers: [TimepickerConfig, TimepickerActions, TimepickerStore]\n };\n }\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-bootstrap-timepicker.js","sources":["ng://ngx-bootstrap/timepicker/reducer/timepicker.actions.ts","ng://ngx-bootstrap/timepicker/timepicker.utils.ts","ng://ngx-bootstrap/timepicker/timepicker-controls.util.ts","ng://ngx-bootstrap/timepicker/timepicker.config.ts","ng://ngx-bootstrap/timepicker/reducer/timepicker.reducer.ts","ng://ngx-bootstrap/timepicker/reducer/timepicker.store.ts","ng://ngx-bootstrap/timepicker/timepicker.component.ts","ng://ngx-bootstrap/timepicker/timepicker.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n Time\n} from '../timepicker.models';\n\n@Injectable()\nexport class TimepickerActions {\n static readonly WRITE_VALUE = '[timepicker] write value from ng model';\n static readonly CHANGE_HOURS = '[timepicker] change hours';\n static readonly CHANGE_MINUTES = '[timepicker] change minutes';\n static readonly CHANGE_SECONDS = '[timepicker] change seconds';\n static readonly SET_TIME_UNIT = '[timepicker] set time unit';\n static readonly UPDATE_CONTROLS = '[timepicker] update controls';\n\n writeValue(value: Date | string) {\n return {\n type: TimepickerActions.WRITE_VALUE,\n payload: value\n };\n }\n\n changeHours(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_HOURS,\n payload: event\n };\n }\n\n changeMinutes(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_MINUTES,\n payload: event\n };\n }\n\n changeSeconds(event: TimeChangeEvent): Action {\n return {\n type: TimepickerActions.CHANGE_SECONDS,\n payload: event\n };\n }\n\n setTime(value: Time): Action {\n return {\n type: TimepickerActions.SET_TIME_UNIT,\n payload: value\n };\n }\n\n updateControls(value: TimepickerComponentState): Action {\n return {\n type: TimepickerActions.UPDATE_CONTROLS,\n payload: value\n };\n }\n}\n","import { Time, TimepickerComponentState } from './timepicker.models';\n\nconst dex = 10;\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 toNumber(value: string | number): number {\n if (typeof value === 'number') {\n return value;\n }\n\n return parseInt(value, dex);\n}\n\nexport function isNumber(value: string | number): value is number {\n return !isNaN(toNumber(value));\n}\n\nexport function parseHours(\n value: string | number,\n isPM = false\n): number {\n const hour = toNumber(value);\n if (\n isNaN(hour) ||\n hour < 0 ||\n hour > (isPM ? hoursPerDayHalf : hoursPerDay)\n ) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = toNumber(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 = toNumber(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 + toNumber(diff.hour);\n }\n\n if (diff.minute) {\n minutes = minutes + toNumber(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + toNumber(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(\n value: Date,\n hours: number,\n minutes: number,\n seconds: number\n): Date {\n const newValue = new Date(\n value.getFullYear(),\n value.getMonth(),\n value.getDate(),\n hours,\n minutes,\n seconds,\n value.getMilliseconds()\n );\n // #3139 ensure date part remains unchanged\n newValue.setFullYear(value.getFullYear());\n newValue.setMonth(value.getMonth());\n newValue.setDate(value.getDate());\n\n return newValue;\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(\n hours: string,\n minutes = '0',\n seconds = '0',\n isPM: boolean\n): boolean {\n return isHourInputValid(hours, isPM)\n && isMinuteInputValid(minutes)\n && isSecondInputValid(seconds);\n}\n","import { changeTime } from './timepicker.utils';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nexport function canChangeValue(\n state: TimepickerComponentState,\n event?: TimeChangeEvent\n): 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(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): 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(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): 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(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): 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(\n state: TimepickerComponentState\n): 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(\n value: Date,\n state: TimepickerComponentState\n): 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\n ? max > _newMinutes\n : 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\n ? min < _newMinutes\n : 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/** Provides default configuration values for timepicker */\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 /** hours aria label */\n ariaLabelHours = 'hours';\n /** minutes aria label */\n ariaLabelMinutes = 'minutes';\n /** seconds aria label */\n ariaLabelSeconds = 'seconds';\n}\n","import { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n canChangeHours,\n canChangeMinutes,\n canChangeSeconds,\n canChangeValue,\n timepickerControls\n} from '../timepicker-controls.util';\nimport { TimepickerConfig } from '../timepicker.config';\nimport {\n TimepickerComponentState,\n TimepickerControls\n} from '../timepicker.models';\nimport { changeTime, setTime, isValidLimit } from '../timepicker.utils';\nimport { TimepickerActions } from './timepicker.actions';\n\nexport class 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// tslint:disable-next-line:cyclomatic-complexity\nexport function timepickerReducer(state = initialState, action: Action) {\n switch (action.type) {\n case TimepickerActions.WRITE_VALUE: {\n return Object.assign({}, state, { value: action.payload });\n }\n\n case TimepickerActions.CHANGE_HOURS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeHours(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_MINUTES: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeMinutes(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_SECONDS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeSeconds(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, {\n seconds: action.payload.step\n });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.SET_TIME_UNIT: {\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, action.payload);\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.UPDATE_CONTROLS: {\n const _newControlsState = timepickerControls(state.value, action.payload);\n const _newState: TimepickerState = {\n value: state.value,\n config: action.payload,\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 return Object.assign({}, state, _newState);\n }\n\n default:\n return state;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n timepickerReducer,\n TimepickerState,\n initialState\n} from './timepicker.reducer';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action, MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';\n\n@Injectable()\nexport class TimepickerStore extends MiniStore<TimepickerState> {\n constructor() {\n const _dispatcher = new BehaviorSubject<Action>({\n type: '[mini-ngrx] dispatcher init'\n });\n const state = new MiniState<TimepickerState>(\n initialState,\n _dispatcher,\n timepickerReducer\n );\n super(_dispatcher, timepickerReducer, state);\n }\n}\n","/* tslint:disable:no-forward-ref max-file-line-count */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges, ViewEncapsulation\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerStore } from './reducer/timepicker.store';\nimport { getControlsValue } from './timepicker-controls.util';\nimport { TimepickerConfig } from './timepicker.config';\n\nimport {\n TimeChangeSource,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nimport {\n isValidDate,\n padNumber,\n parseTime,\n isInputValid,\n isHourInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isInputLimitValid\n} from './timepicker.utils';\n\nimport { Subscription } from 'rxjs';\n\nimport { ControlValueAccessorModel } from './models';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: ControlValueAccessorModel = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => TimepickerComponent),\n multi: true\n};\n\n@Component({\n selector: 'timepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore],\n templateUrl: './timepicker.component.html',\n styles: [`\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n padding: .375rem .55rem;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class TimepickerComponent\n implements ControlValueAccessor,\n TimepickerComponentState,\n TimepickerControls,\n OnChanges,\n 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 /** @deprecated - please use `isEditable` instead */\n get isSpinnersVisible(): boolean {\n return this.showSpinners && !this.readonlyInput;\n }\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 // aria-label variables\n labelHours: string;\n labelMinutes: string;\n labelSeconds: string;\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 // tslint:disable-next-line:no-any\n onChange = Function.prototype;\n // tslint:disable-next-line:no-any\n onTouched = Function.prototype;\n\n timepickerSub: Subscription;\n\n constructor(\n _config: TimepickerConfig,\n private _cd: ChangeDetectorRef,\n private _store: TimepickerStore,\n private _timepickerActions: TimepickerActions\n ) {\n Object.assign(this, _config);\n\n this.timepickerSub = _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\n this._store.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n });\n\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 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.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeHours({ step, source }));\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeMinutes({ step, source })\n );\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeSeconds({ step, source })\n );\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 hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }, this.max, this.min);\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.dispatch(\n this._timepickerActions.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n })\n );\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.dispatch(\n this._timepickerActions.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n })\n );\n }\n\n /**\n * Write a new value to the element.\n */\n writeValue(obj: string | null | undefined | Date): void {\n if (isValidDate(obj)) {\n this._store.dispatch(this._timepickerActions.writeValue(parseTime(obj)));\n } else if (obj == null) {\n this._store.dispatch(this._timepickerActions.writeValue(null));\n }\n }\n\n /**\n * Set the function to be called when the control receives a change event.\n */\n // tslint:disable-next-line:no-any\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n /**\n * Set the function to be called when the control receives a touch event.\n */\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * This function is called when the control status changes to or from \"disabled\".\n * Depending on the value, it will enable or disable the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.timepickerSub.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","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TimepickerComponent } from './timepicker.component';\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerConfig } from './timepicker.config';\nimport { TimepickerStore } from './reducer/timepicker.store';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TimepickerComponent],\n exports: [TimepickerComponent]\n})\nexport class TimepickerModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TimepickerModule,\n providers: [TimepickerConfig, TimepickerActions, TimepickerStore]\n };\n }\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"}