ngx-bootstrap 5.6.1 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/README.md +8 -1
  3. package/accordion/accordion-group.component.d.ts +3 -2
  4. package/accordion/accordion.module.d.ts +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +5 -2
  6. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  7. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  8. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  9. package/accordion/esm2015/accordion.config.js +6 -2
  10. package/accordion/esm2015/accordion.module.js +2 -3
  11. package/accordion/esm5/accordion.config.js +6 -2
  12. package/accordion/esm5/accordion.module.js +2 -3
  13. package/accordion/fesm2015/ngx-bootstrap-accordion.js +6 -3
  14. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  15. package/accordion/fesm5/ngx-bootstrap-accordion.js +6 -3
  16. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  17. package/accordion/ngx-bootstrap-accordion.metadata.json +1 -1
  18. package/accordion/package.json +2 -2
  19. package/alert/alert.module.d.ts +1 -1
  20. package/alert/bundles/ngx-bootstrap-alert.umd.js +5 -2
  21. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  22. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +2 -2
  23. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  24. package/alert/esm2015/alert.component.js +3 -3
  25. package/alert/esm2015/alert.config.js +6 -2
  26. package/alert/esm2015/alert.module.js +2 -3
  27. package/alert/esm5/alert.component.js +3 -3
  28. package/alert/esm5/alert.config.js +6 -2
  29. package/alert/esm5/alert.module.js +2 -3
  30. package/alert/fesm2015/ngx-bootstrap-alert.js +6 -3
  31. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  32. package/alert/fesm5/ngx-bootstrap-alert.js +6 -3
  33. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  34. package/alert/ngx-bootstrap-alert.metadata.json +1 -1
  35. package/alert/package.json +2 -2
  36. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +293 -16
  37. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  38. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  39. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  40. package/buttons/button-checkbox.directive.d.ts +2 -2
  41. package/buttons/button-radio-group.directive.d.ts +12 -1
  42. package/buttons/button-radio.directive.d.ts +19 -7
  43. package/buttons/buttons.module.d.ts +1 -1
  44. package/buttons/esm2015/button-radio-group.directive.js +140 -3
  45. package/buttons/esm2015/button-radio.directive.js +98 -18
  46. package/buttons/esm2015/buttons.module.js +1 -1
  47. package/buttons/esm5/button-radio-group.directive.js +171 -3
  48. package/buttons/esm5/button-radio.directive.js +126 -17
  49. package/buttons/esm5/buttons.module.js +1 -1
  50. package/buttons/fesm2015/ngx-bootstrap-buttons.js +235 -18
  51. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  52. package/buttons/fesm5/ngx-bootstrap-buttons.js +294 -17
  53. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  54. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  55. package/buttons/package.json +2 -2
  56. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +5 -3
  57. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  58. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +1 -1
  59. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  60. package/carousel/carousel.component.d.ts +7 -5
  61. package/carousel/carousel.module.d.ts +1 -1
  62. package/carousel/esm2015/carousel.config.js +6 -2
  63. package/carousel/esm2015/carousel.module.js +2 -4
  64. package/carousel/esm5/carousel.component.js +4 -4
  65. package/carousel/esm5/carousel.config.js +6 -2
  66. package/carousel/esm5/carousel.module.js +2 -4
  67. package/carousel/fesm2015/ngx-bootstrap-carousel.js +6 -4
  68. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  69. package/carousel/fesm5/ngx-bootstrap-carousel.js +6 -4
  70. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  71. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  72. package/carousel/package.json +2 -2
  73. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +90 -73
  74. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  75. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +69 -1
  76. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  77. package/chronos/esm2015/create/from-anything.js +2 -2
  78. package/chronos/esm2015/duration/valid.js +4 -6
  79. package/chronos/esm2015/i18n/ar.js +1 -4
  80. package/chronos/esm2015/i18n/bg.js +18 -20
  81. package/chronos/esm2015/i18n/cs.js +45 -47
  82. package/chronos/esm2015/i18n/et.js +1 -3
  83. package/chronos/esm2015/i18n/th-be.js +21 -1
  84. package/chronos/esm2015/locale/locale.class.js +5 -3
  85. package/chronos/esm5/create/from-anything.js +2 -2
  86. package/chronos/esm5/duration/valid.js +4 -6
  87. package/chronos/esm5/i18n/ar.js +1 -4
  88. package/chronos/esm5/i18n/bg.js +18 -20
  89. package/chronos/esm5/i18n/cs.js +45 -47
  90. package/chronos/esm5/i18n/et.js +1 -3
  91. package/chronos/esm5/i18n/th-be.js +21 -1
  92. package/chronos/esm5/locale/locale.class.js +6 -3
  93. package/chronos/esm5/test/chain.js +4 -4
  94. package/chronos/fesm2015/ngx-bootstrap-chronos.js +89 -73
  95. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  96. package/chronos/fesm5/ngx-bootstrap-chronos.js +90 -73
  97. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  98. package/chronos/locale/locale.class.d.ts +4 -3
  99. package/chronos/package.json +2 -2
  100. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  101. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  102. package/collapse/collapse.directive.d.ts +3 -2
  103. package/collapse/collapse.module.d.ts +1 -1
  104. package/collapse/esm2015/collapse.module.js +1 -1
  105. package/collapse/esm5/collapse.module.js +1 -1
  106. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  107. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  108. package/collapse/package.json +2 -2
  109. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +5 -4
  110. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  111. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  112. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  113. package/component-loader/component-loader.class.d.ts +4 -3
  114. package/component-loader/esm2015/component-loader.class.js +5 -5
  115. package/component-loader/esm5/component-loader.class.js +6 -5
  116. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +4 -4
  117. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  118. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +5 -4
  119. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  120. package/component-loader/package.json +2 -2
  121. package/datepicker/base/bs-datepicker-container.d.ts +20 -8
  122. package/datepicker/bs-datepicker-inline.component.d.ts +6 -2
  123. package/datepicker/bs-datepicker.component.d.ts +14 -5
  124. package/datepicker/bs-datepicker.config.d.ts +41 -1
  125. package/datepicker/bs-datepicker.css +126 -5
  126. package/datepicker/bs-datepicker.css.map +4 -4
  127. package/datepicker/bs-datepicker.module.d.ts +1 -1
  128. package/datepicker/bs-datepicker.scss +25 -5
  129. package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
  130. package/datepicker/bs-daterangepicker.component.d.ts +9 -4
  131. package/datepicker/bs-locale.service.d.ts +3 -3
  132. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +604 -93
  133. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  134. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +2 -2
  135. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  136. package/datepicker/datepicker-inner.component.d.ts +2 -1
  137. package/datepicker/datepicker.component.d.ts +2 -1
  138. package/datepicker/datepicker.module.d.ts +1 -1
  139. package/datepicker/daypicker.component.d.ts +1 -1
  140. package/datepicker/engine/flag-days-calendar.d.ts +2 -1
  141. package/datepicker/engine/flag-months-calendar.d.ts +1 -0
  142. package/datepicker/engine/flag-years-calendar.d.ts +1 -0
  143. package/datepicker/esm2015/base/bs-datepicker-container.js +38 -1
  144. package/datepicker/esm2015/bs-datepicker-inline.component.js +12 -1
  145. package/datepicker/esm2015/bs-datepicker-inline.config.js +6 -2
  146. package/datepicker/esm2015/bs-datepicker-input.directive.js +9 -1
  147. package/datepicker/esm2015/bs-datepicker.component.js +45 -6
  148. package/datepicker/esm2015/bs-datepicker.config.js +88 -2
  149. package/datepicker/esm2015/bs-datepicker.module.js +3 -10
  150. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +3 -2
  151. package/datepicker/esm2015/bs-daterangepicker-inline.config.js +6 -2
  152. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +11 -3
  153. package/datepicker/esm2015/bs-daterangepicker.component.js +36 -7
  154. package/datepicker/esm2015/bs-daterangepicker.config.js +6 -2
  155. package/datepicker/esm2015/datepicker.config.js +6 -2
  156. package/datepicker/esm2015/datepicker.module.js +1 -1
  157. package/datepicker/esm2015/engine/flag-days-calendar.js +22 -3
  158. package/datepicker/esm2015/engine/flag-months-calendar.js +14 -3
  159. package/datepicker/esm2015/engine/flag-years-calendar.js +14 -3
  160. package/datepicker/esm2015/models/index.js +13 -1
  161. package/datepicker/esm2015/public_api.js +1 -1
  162. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  163. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +27 -33
  164. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +10 -2
  165. package/datepicker/esm2015/reducer/bs-datepicker.state.js +3 -1
  166. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +5 -2
  167. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +57 -5
  168. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  169. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +73 -4
  170. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  171. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +42 -4
  172. package/datepicker/esm5/base/bs-datepicker-container.js +52 -1
  173. package/datepicker/esm5/bs-datepicker-inline.component.js +12 -1
  174. package/datepicker/esm5/bs-datepicker-inline.config.js +8 -4
  175. package/datepicker/esm5/bs-datepicker-input.directive.js +9 -1
  176. package/datepicker/esm5/bs-datepicker.component.js +58 -8
  177. package/datepicker/esm5/bs-datepicker.config.js +88 -2
  178. package/datepicker/esm5/bs-datepicker.module.js +3 -10
  179. package/datepicker/esm5/bs-daterangepicker-inline.component.js +3 -2
  180. package/datepicker/esm5/bs-daterangepicker-inline.config.js +8 -4
  181. package/datepicker/esm5/bs-daterangepicker-input.directive.js +11 -3
  182. package/datepicker/esm5/bs-daterangepicker.component.js +49 -9
  183. package/datepicker/esm5/bs-daterangepicker.config.js +8 -4
  184. package/datepicker/esm5/datepicker.config.js +6 -2
  185. package/datepicker/esm5/datepicker.module.js +1 -1
  186. package/datepicker/esm5/engine/flag-days-calendar.js +22 -3
  187. package/datepicker/esm5/engine/flag-months-calendar.js +14 -3
  188. package/datepicker/esm5/engine/flag-years-calendar.js +14 -3
  189. package/datepicker/esm5/engine/format-days-calendar.js +3 -3
  190. package/datepicker/esm5/models/index.js +13 -1
  191. package/datepicker/esm5/public_api.js +1 -1
  192. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  193. package/datepicker/esm5/reducer/bs-datepicker.effects.js +33 -35
  194. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +10 -2
  195. package/datepicker/esm5/reducer/bs-datepicker.state.js +3 -1
  196. package/datepicker/esm5/reducer/bs-datepicker.store.js +3 -3
  197. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +5 -2
  198. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +74 -8
  199. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +4 -4
  200. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +92 -7
  201. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +4 -4
  202. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +25 -2
  203. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +549 -96
  204. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  205. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +606 -94
  206. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  207. package/datepicker/models/index.d.ts +5 -0
  208. package/datepicker/monthpicker.component.d.ts +1 -1
  209. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  210. package/datepicker/package.json +2 -2
  211. package/datepicker/public_api.d.ts +1 -1
  212. package/datepicker/reducer/bs-datepicker.actions.d.ts +3 -1
  213. package/datepicker/reducer/bs-datepicker.effects.d.ts +2 -1
  214. package/datepicker/reducer/bs-datepicker.state.d.ts +2 -1
  215. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
  216. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +9 -5
  217. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +9 -5
  218. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +2 -0
  219. package/datepicker/utils/scss/mixins.css.map +2 -2
  220. package/datepicker/utils/scss/mixins.scss +98 -0
  221. package/datepicker/utils/scss/variables.css.map +1 -1
  222. package/datepicker/utils/scss/variables.scss +14 -0
  223. package/datepicker/yearpicker.component.d.ts +1 -1
  224. package/dropdown/bs-dropdown-container.component.d.ts +1 -1
  225. package/dropdown/bs-dropdown.directive.d.ts +12 -7
  226. package/dropdown/bs-dropdown.module.d.ts +1 -1
  227. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +13 -8
  228. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  229. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +1 -1
  230. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  231. package/dropdown/esm2015/bs-dropdown.config.js +6 -2
  232. package/dropdown/esm2015/bs-dropdown.directive.js +8 -3
  233. package/dropdown/esm2015/bs-dropdown.module.js +2 -7
  234. package/dropdown/esm5/bs-dropdown-toggle.directive.js +3 -3
  235. package/dropdown/esm5/bs-dropdown.config.js +6 -2
  236. package/dropdown/esm5/bs-dropdown.directive.js +11 -5
  237. package/dropdown/esm5/bs-dropdown.module.js +2 -7
  238. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +13 -9
  239. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  240. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +14 -9
  241. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  242. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  243. package/dropdown/package.json +2 -2
  244. package/locale/package.json +2 -2
  245. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  246. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  247. package/mini-ngrx/esm5/state.class.js +3 -3
  248. package/mini-ngrx/esm5/store.class.js +3 -3
  249. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  250. package/mini-ngrx/package.json +2 -2
  251. package/modal/bs-modal-ref.service.d.ts +15 -2
  252. package/modal/bs-modal.service.d.ts +7 -4
  253. package/modal/bundles/ngx-bootstrap-modal.umd.js +154 -59
  254. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  255. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
  256. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  257. package/modal/esm2015/bs-modal-ref.service.js +20 -1
  258. package/modal/esm2015/bs-modal.service.js +102 -47
  259. package/modal/esm2015/modal-container.component.js +10 -2
  260. package/modal/esm2015/modal-options.class.js +14 -3
  261. package/modal/esm2015/modal.directive.js +10 -7
  262. package/modal/esm2015/modal.module.js +1 -1
  263. package/modal/esm2015/models/index.js +3 -1
  264. package/modal/esm2015/ngx-bootstrap-modal.js +2 -2
  265. package/modal/esm2015/public_api.js +2 -2
  266. package/modal/esm5/bs-modal-ref.service.js +19 -1
  267. package/modal/esm5/bs-modal.service.js +109 -57
  268. package/modal/esm5/modal-container.component.js +13 -2
  269. package/modal/esm5/modal-options.class.js +14 -3
  270. package/modal/esm5/modal.directive.js +9 -7
  271. package/modal/esm5/modal.module.js +1 -1
  272. package/modal/esm5/models/index.js +3 -1
  273. package/modal/esm5/ngx-bootstrap-modal.js +2 -2
  274. package/modal/esm5/public_api.js +2 -2
  275. package/modal/fesm2015/ngx-bootstrap-modal.js +148 -52
  276. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  277. package/modal/fesm5/ngx-bootstrap-modal.js +155 -61
  278. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  279. package/modal/modal-backdrop.component.d.ts +4 -2
  280. package/modal/modal-container.component.d.ts +1 -0
  281. package/modal/modal-options.class.d.ts +8 -3
  282. package/modal/modal.directive.d.ts +5 -4
  283. package/modal/modal.module.d.ts +2 -2
  284. package/modal/models/index.d.ts +1 -0
  285. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  286. package/modal/package.json +2 -2
  287. package/modal/public_api.d.ts +1 -1
  288. package/package.json +2 -2
  289. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +5 -2
  290. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  291. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  292. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  293. package/pagination/esm2015/pagination.config.js +6 -2
  294. package/pagination/esm2015/pagination.module.js +2 -3
  295. package/pagination/esm5/pagination.config.js +6 -2
  296. package/pagination/esm5/pagination.module.js +2 -3
  297. package/pagination/fesm2015/ngx-bootstrap-pagination.js +6 -3
  298. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  299. package/pagination/fesm5/ngx-bootstrap-pagination.js +6 -3
  300. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  301. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  302. package/pagination/package.json +2 -2
  303. package/pagination/pager.component.d.ts +8 -4
  304. package/pagination/pagination.component.d.ts +8 -4
  305. package/pagination/pagination.module.d.ts +1 -1
  306. package/popover/bundles/ngx-bootstrap-popover.umd.js +55 -3
  307. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  308. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  309. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  310. package/popover/esm2015/popover-container.component.js +4 -1
  311. package/popover/esm2015/popover.config.js +6 -2
  312. package/popover/esm2015/popover.directive.js +39 -2
  313. package/popover/esm2015/popover.module.js +2 -3
  314. package/popover/esm5/popover-container.component.js +4 -1
  315. package/popover/esm5/popover.config.js +6 -2
  316. package/popover/esm5/popover.directive.js +48 -2
  317. package/popover/esm5/popover.module.js +2 -3
  318. package/popover/fesm2015/ngx-bootstrap-popover.js +47 -4
  319. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  320. package/popover/fesm5/ngx-bootstrap-popover.js +56 -4
  321. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  322. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  323. package/popover/package.json +2 -2
  324. package/popover/popover-container.component.d.ts +2 -1
  325. package/popover/popover.directive.d.ts +10 -1
  326. package/popover/popover.module.d.ts +1 -1
  327. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +7 -7
  328. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  329. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +1 -1
  330. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  331. package/positioning/esm2015/modifiers/flip.js +3 -3
  332. package/positioning/esm2015/modifiers/preventOverflow.js +2 -2
  333. package/positioning/esm2015/modifiers/shift.js +2 -2
  334. package/positioning/esm2015/utils/computeAutoPlacement.js +2 -2
  335. package/positioning/esm2015/utils/getClientRect.js +2 -2
  336. package/positioning/esm5/modifiers/flip.js +4 -4
  337. package/positioning/esm5/modifiers/preventOverflow.js +4 -4
  338. package/positioning/esm5/modifiers/shift.js +3 -3
  339. package/positioning/esm5/utils/computeAutoPlacement.js +3 -3
  340. package/positioning/esm5/utils/getClientRect.js +3 -3
  341. package/positioning/fesm2015/ngx-bootstrap-positioning.js +6 -6
  342. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  343. package/positioning/fesm5/ngx-bootstrap-positioning.js +7 -7
  344. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  345. package/positioning/package.json +2 -2
  346. package/positioning/positioning.service.d.ts +1 -1
  347. package/progressbar/bar.component.d.ts +4 -5
  348. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +45 -66
  349. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  350. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  351. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  352. package/progressbar/esm2015/bar.component.js +33 -48
  353. package/progressbar/esm2015/progressbar.component.js +5 -8
  354. package/progressbar/esm2015/progressbar.config.js +6 -2
  355. package/progressbar/esm2015/progressbar.module.js +2 -3
  356. package/progressbar/esm5/bar.component.js +37 -58
  357. package/progressbar/esm5/progressbar.component.js +5 -8
  358. package/progressbar/esm5/progressbar.config.js +6 -2
  359. package/progressbar/esm5/progressbar.module.js +2 -3
  360. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +42 -57
  361. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  362. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +46 -67
  363. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  364. package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -1
  365. package/progressbar/package.json +2 -2
  366. package/progressbar/progressbar.component.d.ts +7 -6
  367. package/progressbar/progressbar.module.d.ts +1 -1
  368. package/rating/bundles/ngx-bootstrap-rating.umd.js +5 -2
  369. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  370. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  371. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  372. package/rating/esm2015/rating.config.js +6 -2
  373. package/rating/esm2015/rating.module.js +2 -3
  374. package/rating/esm5/rating.config.js +6 -2
  375. package/rating/esm5/rating.module.js +2 -3
  376. package/rating/fesm2015/ngx-bootstrap-rating.js +6 -3
  377. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  378. package/rating/fesm5/ngx-bootstrap-rating.js +6 -3
  379. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  380. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  381. package/rating/package.json +2 -2
  382. package/rating/rating.module.d.ts +1 -1
  383. package/schematics/ng-add/index.spec.js +30 -27
  384. package/schematics/ng-add/index.spec.js.map +1 -1
  385. package/schematics/utils/index.js +18 -5
  386. package/schematics/utils/index.js.map +1 -1
  387. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  388. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  389. package/sortable/esm2015/sortable.module.js +1 -1
  390. package/sortable/esm5/sortable.component.js +4 -4
  391. package/sortable/esm5/sortable.module.js +1 -1
  392. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  393. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  394. package/sortable/package.json +2 -2
  395. package/sortable/sortable.component.d.ts +2 -1
  396. package/sortable/sortable.module.d.ts +1 -1
  397. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +40 -3
  398. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  399. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  400. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  401. package/tabs/esm2015/tab.directive.js +2 -2
  402. package/tabs/esm2015/tabs.module.js +2 -3
  403. package/tabs/esm2015/tabset.component.js +22 -1
  404. package/tabs/esm2015/tabset.config.js +15 -2
  405. package/tabs/esm5/tab.directive.js +2 -2
  406. package/tabs/esm5/tabs.module.js +2 -3
  407. package/tabs/esm5/tabset.component.js +26 -1
  408. package/tabs/esm5/tabset.config.js +15 -2
  409. package/tabs/fesm2015/ngx-bootstrap-tabs.js +37 -4
  410. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  411. package/tabs/fesm5/ngx-bootstrap-tabs.js +41 -4
  412. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  413. package/tabs/ng-transclude.directive.d.ts +2 -2
  414. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  415. package/tabs/package.json +2 -2
  416. package/tabs/tab.directive.d.ts +5 -3
  417. package/tabs/tabs.module.d.ts +1 -1
  418. package/tabs/tabset.component.d.ts +9 -3
  419. package/tabs/tabset.config.d.ts +2 -0
  420. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +11 -6
  421. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  422. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +1 -1
  423. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  424. package/timepicker/esm2015/timepicker-controls.util.js +4 -2
  425. package/timepicker/esm2015/timepicker.component.js +2 -2
  426. package/timepicker/esm2015/timepicker.config.js +8 -4
  427. package/timepicker/esm2015/timepicker.module.js +2 -3
  428. package/timepicker/esm5/reducer/timepicker.store.js +3 -3
  429. package/timepicker/esm5/timepicker-controls.util.js +4 -2
  430. package/timepicker/esm5/timepicker.component.js +2 -2
  431. package/timepicker/esm5/timepicker.config.js +8 -4
  432. package/timepicker/esm5/timepicker.module.js +2 -3
  433. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +12 -7
  434. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  435. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +12 -7
  436. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  437. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  438. package/timepicker/package.json +2 -2
  439. package/timepicker/timepicker.component.d.ts +3 -3
  440. package/timepicker/timepicker.config.d.ts +1 -1
  441. package/timepicker/timepicker.module.d.ts +1 -1
  442. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +5 -2
  443. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  444. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +1 -1
  445. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  446. package/tooltip/esm2015/tooltip.config.js +6 -2
  447. package/tooltip/esm2015/tooltip.directive.js +3 -3
  448. package/tooltip/esm2015/tooltip.module.js +2 -3
  449. package/tooltip/esm5/tooltip.config.js +6 -2
  450. package/tooltip/esm5/tooltip.directive.js +3 -3
  451. package/tooltip/esm5/tooltip.module.js +2 -3
  452. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +6 -3
  453. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  454. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +6 -3
  455. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  456. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  457. package/tooltip/package.json +2 -2
  458. package/tooltip/tooltip-container.component.d.ts +1 -1
  459. package/tooltip/tooltip.directive.d.ts +15 -10
  460. package/tooltip/tooltip.module.d.ts +1 -1
  461. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +170 -19
  462. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  463. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +1 -1
  464. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  465. package/typeahead/esm2015/typeahead-utils.js +35 -4
  466. package/typeahead/esm2015/typeahead.config.js +6 -2
  467. package/typeahead/esm2015/typeahead.directive.js +121 -16
  468. package/typeahead/esm2015/typeahead.module.js +2 -3
  469. package/typeahead/esm5/typeahead-utils.js +37 -6
  470. package/typeahead/esm5/typeahead.config.js +6 -2
  471. package/typeahead/esm5/typeahead.directive.js +135 -18
  472. package/typeahead/esm5/typeahead.module.js +2 -3
  473. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +160 -21
  474. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  475. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +172 -21
  476. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  477. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  478. package/typeahead/package.json +2 -2
  479. package/typeahead/typeahead-container.component.d.ts +14 -12
  480. package/typeahead/typeahead-utils.d.ts +1 -1
  481. package/typeahead/typeahead.directive.d.ts +20 -1
  482. package/typeahead/typeahead.module.d.ts +1 -1
  483. package/utils/package.json +2 -2
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/operators'), require('ngx-bootstrap/chronos'), require('rxjs'), require('ngx-bootstrap/mini-ngrx'), require('ngx-bootstrap/positioning'), require('@angular/animations'), require('ngx-bootstrap/component-loader'), require('@angular/forms'), require('@angular/common'), require('ngx-bootstrap/utils')) :
3
- typeof define === 'function' && define.amd ? define('ngx-bootstrap/datepicker', ['exports', '@angular/core', 'rxjs/operators', 'ngx-bootstrap/chronos', 'rxjs', 'ngx-bootstrap/mini-ngrx', 'ngx-bootstrap/positioning', '@angular/animations', 'ngx-bootstrap/component-loader', '@angular/forms', '@angular/common', 'ngx-bootstrap/utils'], factory) :
4
- (global = global || self, factory((global['ngx-bootstrap'] = global['ngx-bootstrap'] || {}, global['ngx-bootstrap'].datepicker = {}), global.ng.core, global.rxjs.operators, global.chronos, global.rxjs, global.miniNgrx, global.positioning, global.ng.animations, global.componentLoader, global.ng.forms, global.ng.common, global.utils));
5
- }(this, (function (exports, core, operators, chronos, rxjs, miniNgrx, positioning, animations, componentLoader, forms, common, utils) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/operators'), require('ngx-bootstrap/chronos'), require('ngx-bootstrap/positioning'), require('@angular/animations'), require('rxjs'), require('ngx-bootstrap/mini-ngrx'), require('ngx-bootstrap/component-loader'), require('@angular/forms'), require('@angular/common'), require('ngx-bootstrap/tooltip'), require('ngx-bootstrap/utils')) :
3
+ typeof define === 'function' && define.amd ? define('ngx-bootstrap/datepicker', ['exports', '@angular/core', 'rxjs/operators', 'ngx-bootstrap/chronos', 'ngx-bootstrap/positioning', '@angular/animations', 'rxjs', 'ngx-bootstrap/mini-ngrx', 'ngx-bootstrap/component-loader', '@angular/forms', '@angular/common', 'ngx-bootstrap/tooltip', 'ngx-bootstrap/utils'], factory) :
4
+ (global = global || self, factory((global['ngx-bootstrap'] = global['ngx-bootstrap'] || {}, global['ngx-bootstrap'].datepicker = {}), global.ng.core, global.rxjs.operators, global.chronos, global.positioning, global.ng.animations, global.rxjs, global.miniNgrx, global.componentLoader, global.ng.forms, global.ng.common, global.tooltip, global.utils));
5
+ }(this, (function (exports, core, operators, chronos, positioning, animations, rxjs, miniNgrx, componentLoader, forms, common, tooltip, utils) { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
8
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -213,6 +213,10 @@
213
213
  * turn on/off animation
214
214
  */
215
215
  this.isAnimated = false;
216
+ /**
217
+ * The view that the datepicker should start in
218
+ */
219
+ this.startView = 'day';
216
220
  /**
217
221
  * If true, returns focus to the datepicker / daterangepicker input after date selection
218
222
  */
@@ -242,10 +246,41 @@
242
246
  this.monthLabel = 'MMMM';
243
247
  this.yearLabel = 'YYYY';
244
248
  this.weekNumbers = 'w';
249
+ /**
250
+ * Shows 'today' button
251
+ */
252
+ this.showTodayButton = false;
253
+ /**
254
+ * Shows clear button
255
+ */
256
+ this.showClearButton = false;
257
+ /**
258
+ * Positioning of 'today' button
259
+ */
260
+ this.todayPosition = 'center';
261
+ /**
262
+ * Positioning of 'clear' button
263
+ */
264
+ this.clearPosition = 'right';
265
+ /**
266
+ * Label for 'today' button
267
+ */
268
+ this.todayButtonLabel = 'Today';
269
+ /**
270
+ * Label for 'clear' button
271
+ */
272
+ this.clearButtonLabel = 'Clear';
273
+ /**
274
+ * Label for 'custom range' button
275
+ */
276
+ this.customRangeButtonLabel = 'Custom Range';
245
277
  }
246
278
  BsDatepickerConfig.decorators = [
247
- { type: core.Injectable }
279
+ { type: core.Injectable, args: [{
280
+ providedIn: 'root'
281
+ },] }
248
282
  ];
283
+ /** @nocollapse */ BsDatepickerConfig.ɵprov = core["ɵɵdefineInjectable"]({ factory: function BsDatepickerConfig_Factory() { return new BsDatepickerConfig(); }, token: BsDatepickerConfig, providedIn: "root" });
249
284
  return BsDatepickerConfig;
250
285
  }());
251
286
  if (false) {
@@ -278,11 +313,21 @@
278
313
  * @type {?}
279
314
  */
280
315
  BsDatepickerConfig.prototype.maxDate;
316
+ /**
317
+ * The view that the datepicker should start in
318
+ * @type {?}
319
+ */
320
+ BsDatepickerConfig.prototype.startView;
281
321
  /**
282
322
  * Default date custom classes for all date/range pickers
283
323
  * @type {?}
284
324
  */
285
325
  BsDatepickerConfig.prototype.dateCustomClasses;
326
+ /**
327
+ * Default tooltip text for all date/range pickers
328
+ * @type {?}
329
+ */
330
+ BsDatepickerConfig.prototype.dateTooltipTexts;
286
331
  /**
287
332
  * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
288
333
  * @type {?}
@@ -367,6 +412,11 @@
367
412
  * @type {?}
368
413
  */
369
414
  BsDatepickerConfig.prototype.ranges;
415
+ /**
416
+ * Max Date Range in days
417
+ * @type {?}
418
+ */
419
+ BsDatepickerConfig.prototype.maxDateRange;
370
420
  /** @type {?} */
371
421
  BsDatepickerConfig.prototype.monthTitle;
372
422
  /** @type {?} */
@@ -379,8 +429,64 @@
379
429
  BsDatepickerConfig.prototype.yearLabel;
380
430
  /** @type {?} */
381
431
  BsDatepickerConfig.prototype.weekNumbers;
432
+ /**
433
+ * Shows 'today' button
434
+ * @type {?}
435
+ */
436
+ BsDatepickerConfig.prototype.showTodayButton;
437
+ /**
438
+ * Shows clear button
439
+ * @type {?}
440
+ */
441
+ BsDatepickerConfig.prototype.showClearButton;
442
+ /**
443
+ * Positioning of 'today' button
444
+ * @type {?}
445
+ */
446
+ BsDatepickerConfig.prototype.todayPosition;
447
+ /**
448
+ * Positioning of 'clear' button
449
+ * @type {?}
450
+ */
451
+ BsDatepickerConfig.prototype.clearPosition;
452
+ /**
453
+ * Label for 'today' button
454
+ * @type {?}
455
+ */
456
+ BsDatepickerConfig.prototype.todayButtonLabel;
457
+ /**
458
+ * Label for 'clear' button
459
+ * @type {?}
460
+ */
461
+ BsDatepickerConfig.prototype.clearButtonLabel;
462
+ /**
463
+ * Label for 'custom range' button
464
+ * @type {?}
465
+ */
466
+ BsDatepickerConfig.prototype.customRangeButtonLabel;
382
467
  }
383
468
 
469
+ /**
470
+ * @fileoverview added by tsickle
471
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
472
+ */
473
+ /** @type {?} */
474
+ var DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';
475
+ /** @type {?} */
476
+ var datepickerAnimation = animations.trigger('datepickerAnimation', [
477
+ animations.state('animated-down', animations.style({ height: '*', overflow: 'hidden' })),
478
+ animations.transition('* => animated-down', [
479
+ animations.style({ height: 0, overflow: 'hidden' }),
480
+ animations.animate(DATEPICKER_ANIMATION_TIMING)
481
+ ]),
482
+ animations.state('animated-up', animations.style({ height: '*', overflow: 'hidden' })),
483
+ animations.transition('* => animated-up', [
484
+ animations.style({ height: '*', overflow: 'hidden' }),
485
+ animations.animate(DATEPICKER_ANIMATION_TIMING)
486
+ ]),
487
+ animations.transition('* => unanimated', animations.animate('0s'))
488
+ ]);
489
+
384
490
  /**
385
491
  * @fileoverview added by tsickle
386
492
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -394,6 +500,7 @@
394
500
  BsDatepickerAbstractComponent = /** @class */ (function () {
395
501
  function BsDatepickerAbstractComponent() {
396
502
  this.customRanges = [];
503
+ this.chosenRange = [];
397
504
  }
398
505
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "minDate", {
399
506
  set: /**
@@ -472,6 +579,17 @@
472
579
  enumerable: true,
473
580
  configurable: true
474
581
  });
582
+ Object.defineProperty(BsDatepickerAbstractComponent.prototype, "dateTooltipTexts", {
583
+ set: /**
584
+ * @param {?} value
585
+ * @return {?}
586
+ */
587
+ function (value) {
588
+ this._effects.setDateTooltipTexts(value);
589
+ },
590
+ enumerable: true,
591
+ configurable: true
592
+ });
475
593
  /**
476
594
  * @param {?} event
477
595
  * @return {?}
@@ -553,6 +671,29 @@
553
671
  * @return {?}
554
672
  */
555
673
  function (event) { };
674
+ /**
675
+ * @param {?} dates
676
+ * @return {?}
677
+ */
678
+ BsDatepickerAbstractComponent.prototype.setRangeOnCalendar = /**
679
+ * @param {?} dates
680
+ * @return {?}
681
+ */
682
+ function (dates) { };
683
+ /**
684
+ * @return {?}
685
+ */
686
+ BsDatepickerAbstractComponent.prototype.setToday = /**
687
+ * @return {?}
688
+ */
689
+ function () { };
690
+ /**
691
+ * @return {?}
692
+ */
693
+ BsDatepickerAbstractComponent.prototype.clearDate = /**
694
+ * @return {?}
695
+ */
696
+ function () { };
556
697
  /* tslint:disable-next-line: no-any */
557
698
  /* tslint:disable-next-line: no-any */
558
699
  /**
@@ -575,10 +716,26 @@
575
716
  /** @type {?} */
576
717
  BsDatepickerAbstractComponent.prototype.isOtherMonthsActive;
577
718
  /** @type {?} */
719
+ BsDatepickerAbstractComponent.prototype.showTodayBtn;
720
+ /** @type {?} */
721
+ BsDatepickerAbstractComponent.prototype.todayBtnLbl;
722
+ /** @type {?} */
723
+ BsDatepickerAbstractComponent.prototype.todayPos;
724
+ /** @type {?} */
725
+ BsDatepickerAbstractComponent.prototype.showClearBtn;
726
+ /** @type {?} */
727
+ BsDatepickerAbstractComponent.prototype.clearBtnLbl;
728
+ /** @type {?} */
729
+ BsDatepickerAbstractComponent.prototype.clearPos;
730
+ /** @type {?} */
578
731
  BsDatepickerAbstractComponent.prototype._effects;
579
732
  /** @type {?} */
580
733
  BsDatepickerAbstractComponent.prototype.customRanges;
581
734
  /** @type {?} */
735
+ BsDatepickerAbstractComponent.prototype.customRangeBtnLbl;
736
+ /** @type {?} */
737
+ BsDatepickerAbstractComponent.prototype.chosenRange;
738
+ /** @type {?} */
582
739
  BsDatepickerAbstractComponent.prototype.viewMode;
583
740
  /** @type {?} */
584
741
  BsDatepickerAbstractComponent.prototype.daysCalendar;
@@ -824,6 +981,20 @@
824
981
  payload: value
825
982
  };
826
983
  };
984
+ /**
985
+ * @param {?} value
986
+ * @return {?}
987
+ */
988
+ BsDatepickerActions.prototype.setDateTooltipTexts = /**
989
+ * @param {?} value
990
+ * @return {?}
991
+ */
992
+ function (value) {
993
+ return {
994
+ type: BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS,
995
+ payload: value
996
+ };
997
+ };
827
998
  /**
828
999
  * @param {?} locale
829
1000
  * @return {?}
@@ -854,6 +1025,7 @@
854
1025
  BsDatepickerActions.SET_DATESENABLED = '[datepicker] set dates enabled';
855
1026
  BsDatepickerActions.SET_IS_DISABLED = '[datepicker] set is disabled';
856
1027
  BsDatepickerActions.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';
1028
+ BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS = '[datepicker] set date tooltip texts';
857
1029
  BsDatepickerActions.SET_LOCALE = '[datepicker] set datepicker locale';
858
1030
  BsDatepickerActions.SELECT_RANGE = '[daterangepicker] select dates range';
859
1031
  BsDatepickerActions.decorators = [
@@ -895,6 +1067,8 @@
895
1067
  /** @type {?} */
896
1068
  BsDatepickerActions.SET_DATE_CUSTOM_CLASSES;
897
1069
  /** @type {?} */
1070
+ BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS;
1071
+ /** @type {?} */
898
1072
  BsDatepickerActions.SET_LOCALE;
899
1073
  /** @type {?} */
900
1074
  BsDatepickerActions.SELECT_RANGE;
@@ -1108,6 +1282,18 @@
1108
1282
  this._store.dispatch(this._actions.setDateCustomClasses(value));
1109
1283
  return this;
1110
1284
  };
1285
+ /**
1286
+ * @param {?} value
1287
+ * @return {?}
1288
+ */
1289
+ BsDatepickerEffects.prototype.setDateTooltipTexts = /**
1290
+ * @param {?} value
1291
+ * @return {?}
1292
+ */
1293
+ function (value) {
1294
+ this._store.dispatch(this._actions.setDateTooltipTexts(value));
1295
+ return this;
1296
+ };
1111
1297
  /* Set rendering options */
1112
1298
  /* Set rendering options */
1113
1299
  /**
@@ -1244,37 +1430,6 @@
1244
1430
  function (event) {
1245
1431
  event.cell.isHovered = event.isHovered;
1246
1432
  });
1247
- container.monthSelectHandler = (/**
1248
- * @param {?} event
1249
- * @return {?}
1250
- */
1251
- function (event) {
1252
- if (event.isDisabled) {
1253
- return;
1254
- }
1255
- _this._store.dispatch(_this._actions.navigateTo({
1256
- unit: {
1257
- month: chronos.getMonth(event.date),
1258
- year: chronos.getFullYear(event.date)
1259
- },
1260
- viewMode: 'day'
1261
- }));
1262
- });
1263
- container.yearSelectHandler = (/**
1264
- * @param {?} event
1265
- * @return {?}
1266
- */
1267
- function (event) {
1268
- if (event.isDisabled) {
1269
- return;
1270
- }
1271
- _this._store.dispatch(_this._actions.navigateTo({
1272
- unit: {
1273
- year: chronos.getFullYear(event.date)
1274
- },
1275
- viewMode: 'month'
1276
- }));
1277
- });
1278
1433
  return this;
1279
1434
  };
1280
1435
  /**
@@ -1425,6 +1580,23 @@
1425
1580
  * @return {?}
1426
1581
  */
1427
1582
  function (dateCustomClasses) { return _this._store.dispatch(_this._actions.flag()); })));
1583
+ // date tooltip texts
1584
+ this._subs.push(this._store
1585
+ .select((/**
1586
+ * @param {?} state
1587
+ * @return {?}
1588
+ */
1589
+ function (state) { return state.dateTooltipTexts; }))
1590
+ .pipe(operators.filter((/**
1591
+ * @param {?} dateTooltipTexts
1592
+ * @return {?}
1593
+ */
1594
+ function (dateTooltipTexts) { return !!dateTooltipTexts; })))
1595
+ .subscribe((/**
1596
+ * @param {?} dateTooltipTexts
1597
+ * @return {?}
1598
+ */
1599
+ function (dateTooltipTexts) { return _this._store.dispatch(_this._actions.flag()); })));
1428
1600
  // on locale change
1429
1601
  this._subs.push(this._localeService.localeChange
1430
1602
  .subscribe((/**
@@ -1552,6 +1724,8 @@
1552
1724
  /** @type {?} */
1553
1725
  BsDatepickerState.prototype.dateCustomClasses;
1554
1726
  /** @type {?} */
1727
+ BsDatepickerState.prototype.dateTooltipTexts;
1728
+ /** @type {?} */
1555
1729
  BsDatepickerState.prototype.hoveredDate;
1556
1730
  /** @type {?} */
1557
1731
  BsDatepickerState.prototype.hoveredMonth;
@@ -1878,6 +2052,8 @@
1878
2052
  FlagDaysCalendarOptions.prototype.monthIndex;
1879
2053
  /** @type {?} */
1880
2054
  FlagDaysCalendarOptions.prototype.dateCustomClasses;
2055
+ /** @type {?} */
2056
+ FlagDaysCalendarOptions.prototype.dateTooltipTexts;
1881
2057
  }
1882
2058
  /**
1883
2059
  * @param {?} formattedMonth
@@ -1945,6 +2121,21 @@
1945
2121
  function (previousValue, currentValue) { return previousValue.concat(currentValue); }), [])
1946
2122
  .join(' ')
1947
2123
  || '';
2124
+ /** @type {?} */
2125
+ var tooltipText = options.dateTooltipTexts && options.dateTooltipTexts
2126
+ .map((/**
2127
+ * @param {?} tt
2128
+ * @return {?}
2129
+ */
2130
+ function (tt) { return chronos.isSameDay(day.date, tt.date) ? tt.tooltipText : ''; }))
2131
+ .reduce((/**
2132
+ * @param {?} previousValue
2133
+ * @param {?} currentValue
2134
+ * @return {?}
2135
+ */
2136
+ function (previousValue, currentValue) { return previousValue.concat(currentValue); }), [])
2137
+ .join(' ')
2138
+ || '';
1948
2139
  // decide update or not
1949
2140
  /** @type {?} */
1950
2141
  var newDay = Object.assign({}, day, {
@@ -1956,7 +2147,8 @@
1956
2147
  isInRange: isInRange,
1957
2148
  isDisabled: isDisabled,
1958
2149
  isToday: isToday,
1959
- customClasses: customClasses
2150
+ customClasses: customClasses,
2151
+ tooltipText: tooltipText
1960
2152
  });
1961
2153
  if (day.isOtherMonth !== newDay.isOtherMonth ||
1962
2154
  day.isHovered !== newDay.isHovered ||
@@ -1965,7 +2157,8 @@
1965
2157
  day.isSelectionEnd !== newDay.isSelectionEnd ||
1966
2158
  day.isDisabled !== newDay.isDisabled ||
1967
2159
  day.isInRange !== newDay.isInRange ||
1968
- day.customClasses !== newDay.customClasses) {
2160
+ day.customClasses !== newDay.customClasses ||
2161
+ day.tooltipText !== newDay.tooltipText) {
1969
2162
  week.days[dayIndex] = newDay;
1970
2163
  }
1971
2164
  }));
@@ -2070,6 +2263,8 @@
2070
2263
  /** @type {?} */
2071
2264
  FlagMonthCalendarOptions.prototype.selectedDate;
2072
2265
  /** @type {?} */
2266
+ FlagMonthCalendarOptions.prototype.selectedRange;
2267
+ /** @type {?} */
2073
2268
  FlagMonthCalendarOptions.prototype.displayMonths;
2074
2269
  /** @type {?} */
2075
2270
  FlagMonthCalendarOptions.prototype.monthIndex;
@@ -2092,13 +2287,22 @@
2092
2287
  * @return {?}
2093
2288
  */
2094
2289
  function (month, monthIndex) {
2290
+ /** @type {?} */
2291
+ var isSelected;
2095
2292
  /** @type {?} */
2096
2293
  var isHovered = chronos.isSameMonth(month.date, options.hoveredMonth);
2097
2294
  /** @type {?} */
2098
2295
  var isDisabled = options.isDisabled ||
2099
2296
  isMonthDisabled(month.date, options.minDate, options.maxDate);
2100
- /** @type {?} */
2101
- var isSelected = chronos.isSameMonth(month.date, options.selectedDate);
2297
+ if (!options.selectedDate && options.selectedRange) {
2298
+ isSelected = chronos.isSameMonth(month.date, options.selectedRange[0]);
2299
+ if (!isSelected) {
2300
+ isSelected = chronos.isSameMonth(month.date, options.selectedRange[1]);
2301
+ }
2302
+ }
2303
+ else {
2304
+ isSelected = chronos.isSameMonth(month.date, options.selectedDate);
2305
+ }
2102
2306
  /** @type {?} */
2103
2307
  var newMonth = Object.assign(/*{},*/ month, {
2104
2308
  isHovered: isHovered,
@@ -2211,6 +2415,8 @@
2211
2415
  /** @type {?} */
2212
2416
  FlagYearsCalendarOptions.prototype.selectedDate;
2213
2417
  /** @type {?} */
2418
+ FlagYearsCalendarOptions.prototype.selectedRange;
2419
+ /** @type {?} */
2214
2420
  FlagYearsCalendarOptions.prototype.displayMonths;
2215
2421
  /** @type {?} */
2216
2422
  FlagYearsCalendarOptions.prototype.yearIndex;
@@ -2233,13 +2439,22 @@
2233
2439
  * @return {?}
2234
2440
  */
2235
2441
  function (year, yearIndex) {
2442
+ /** @type {?} */
2443
+ var isSelected;
2236
2444
  /** @type {?} */
2237
2445
  var isHovered = chronos.isSameYear(year.date, options.hoveredYear);
2238
2446
  /** @type {?} */
2239
2447
  var isDisabled = options.isDisabled ||
2240
2448
  isYearDisabled(year.date, options.minDate, options.maxDate);
2241
- /** @type {?} */
2242
- var isSelected = chronos.isSameYear(year.date, options.selectedDate);
2449
+ if (!options.selectedDate && options.selectedRange) {
2450
+ isSelected = chronos.isSameYear(year.date, options.selectedRange[0]);
2451
+ if (!isSelected) {
2452
+ isSelected = chronos.isSameYear(year.date, options.selectedRange[1]);
2453
+ }
2454
+ }
2455
+ else {
2456
+ isSelected = chronos.isSameYear(year.date, options.selectedDate);
2457
+ }
2243
2458
  /** @type {?} */
2244
2459
  var newMonth = Object.assign(/*{},*/ year, { isHovered: isHovered, isDisabled: isDisabled, isSelected: isSelected });
2245
2460
  if (year.isHovered !== newMonth.isHovered ||
@@ -2402,6 +2617,11 @@
2402
2617
  dateCustomClasses: action.payload
2403
2618
  });
2404
2619
  }
2620
+ case BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS: {
2621
+ return Object.assign({}, state, {
2622
+ dateTooltipTexts: action.payload
2623
+ });
2624
+ }
2405
2625
  default:
2406
2626
  return state;
2407
2627
  }
@@ -2419,7 +2639,7 @@
2419
2639
  /** @type {?} */
2420
2640
  var viewDate = state.view.date;
2421
2641
  if (state.view.mode === 'day') {
2422
- if (state.showPreviousMonth && state.selectedRange.length === 0) {
2642
+ if (state.showPreviousMonth && state.selectedRange && state.selectedRange.length === 0) {
2423
2643
  viewDate = chronos.shiftDate(viewDate, { month: -1 });
2424
2644
  }
2425
2645
  state.monthViewOptions.firstDayOfWeek = chronos.getLocale(state.locale).firstDayOfWeek();
@@ -2529,6 +2749,7 @@
2529
2749
  selectedRange: state.selectedRange,
2530
2750
  displayMonths: displayMonths,
2531
2751
  dateCustomClasses: state.dateCustomClasses,
2752
+ dateTooltipTexts: state.dateTooltipTexts,
2532
2753
  monthIndex: monthIndex
2533
2754
  });
2534
2755
  }));
@@ -2548,6 +2769,7 @@
2548
2769
  maxDate: state.maxDate,
2549
2770
  hoveredMonth: state.hoveredMonth,
2550
2771
  selectedDate: state.selectedDate,
2772
+ selectedRange: state.selectedRange,
2551
2773
  displayMonths: displayMonths,
2552
2774
  monthIndex: monthIndex
2553
2775
  });
@@ -2568,6 +2790,7 @@
2568
2790
  maxDate: state.maxDate,
2569
2791
  hoveredYear: state.hoveredYear,
2570
2792
  selectedDate: state.selectedDate,
2793
+ selectedRange: state.selectedRange,
2571
2794
  displayMonths: displayMonths,
2572
2795
  yearIndex: yearIndex
2573
2796
  });
@@ -2683,27 +2906,6 @@
2683
2906
  return BsDatepickerStore;
2684
2907
  }(miniNgrx.MiniStore));
2685
2908
 
2686
- /**
2687
- * @fileoverview added by tsickle
2688
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2689
- */
2690
- /** @type {?} */
2691
- var DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';
2692
- /** @type {?} */
2693
- var datepickerAnimation = animations.trigger('datepickerAnimation', [
2694
- animations.state('animated-down', animations.style({ height: '*', overflow: 'hidden' })),
2695
- animations.transition('* => animated-down', [
2696
- animations.style({ height: 0, overflow: 'hidden' }),
2697
- animations.animate(DATEPICKER_ANIMATION_TIMING)
2698
- ]),
2699
- animations.state('animated-up', animations.style({ height: '*', overflow: 'hidden' })),
2700
- animations.transition('* => animated-up', [
2701
- animations.style({ height: '*', overflow: 'hidden' }),
2702
- animations.animate(DATEPICKER_ANIMATION_TIMING)
2703
- ]),
2704
- animations.transition('* => unanimated', animations.animate('0s'))
2705
- ]);
2706
-
2707
2909
  /**
2708
2910
  * @fileoverview added by tsickle
2709
2911
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -2763,6 +2965,13 @@
2763
2965
  }));
2764
2966
  this.isOtherMonthsActive = this._config.selectFromOtherMonth;
2765
2967
  this.containerClass = this._config.containerClass;
2968
+ this.showTodayBtn = this._config.showTodayButton;
2969
+ this.todayBtnLbl = this._config.todayButtonLabel;
2970
+ this.todayPos = this._config.todayPosition;
2971
+ this.showClearBtn = this._config.showClearButton;
2972
+ this.clearBtnLbl = this._config.clearButtonLabel;
2973
+ this.clearPos = this._config.clearPosition;
2974
+ this.customRangeBtnLbl = this._config.customRangeButtonLabel;
2766
2975
  this._effects
2767
2976
  .init(this._store)
2768
2977
  // intial state options
@@ -2787,6 +2996,7 @@
2787
2996
  * @return {?}
2788
2997
  */
2789
2998
  function (date) { return _this.valueChange.emit(date); })));
2999
+ this._store.dispatch(this._actions.changeViewMode(this._config.startView));
2790
3000
  };
2791
3001
  Object.defineProperty(BsDatepickerContainerComponent.prototype, "isTopPosition", {
2792
3002
  get: /**
@@ -2826,6 +3036,63 @@
2826
3036
  }
2827
3037
  this._store.dispatch(this._actions.select(day.date));
2828
3038
  };
3039
+ /**
3040
+ * @param {?} day
3041
+ * @return {?}
3042
+ */
3043
+ BsDatepickerContainerComponent.prototype.monthSelectHandler = /**
3044
+ * @param {?} day
3045
+ * @return {?}
3046
+ */
3047
+ function (day) {
3048
+ if (!day || day.isDisabled) {
3049
+ return;
3050
+ }
3051
+ this._store.dispatch(this._actions.navigateTo({
3052
+ unit: {
3053
+ month: chronos.getMonth(day.date),
3054
+ year: chronos.getFullYear(day.date)
3055
+ },
3056
+ viewMode: 'day'
3057
+ }));
3058
+ };
3059
+ /**
3060
+ * @param {?} day
3061
+ * @return {?}
3062
+ */
3063
+ BsDatepickerContainerComponent.prototype.yearSelectHandler = /**
3064
+ * @param {?} day
3065
+ * @return {?}
3066
+ */
3067
+ function (day) {
3068
+ if (!day || day.isDisabled) {
3069
+ return;
3070
+ }
3071
+ this._store.dispatch(this._actions.navigateTo({
3072
+ unit: {
3073
+ year: chronos.getFullYear(day.date)
3074
+ },
3075
+ viewMode: 'month'
3076
+ }));
3077
+ };
3078
+ /**
3079
+ * @return {?}
3080
+ */
3081
+ BsDatepickerContainerComponent.prototype.setToday = /**
3082
+ * @return {?}
3083
+ */
3084
+ function () {
3085
+ this._store.dispatch(this._actions.select(new Date()));
3086
+ };
3087
+ /**
3088
+ * @return {?}
3089
+ */
3090
+ BsDatepickerContainerComponent.prototype.clearDate = /**
3091
+ * @return {?}
3092
+ */
3093
+ function () {
3094
+ this._store.dispatch(this._actions.select(undefined));
3095
+ };
2829
3096
  /**
2830
3097
  * @return {?}
2831
3098
  */
@@ -2853,7 +3120,7 @@
2853
3120
  { type: core.Component, args: [{
2854
3121
  selector: 'bs-datepicker-container',
2855
3122
  providers: [BsDatepickerStore, BsDatepickerEffects],
2856
- template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view \n [selectedRange]=\"chosenRange\" \n [ranges]=\"customRanges\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
3123
+ template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\"\n [class.today-left]=\"todayPos === 'left'\"\n [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\"\n *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\"\n [class.clear-left]=\"clearPos === 'left'\"\n [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\"\n *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view\n [selectedRange]=\"chosenRange\"\n [ranges]=\"customRanges\"\n [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
2857
3124
  host: {
2858
3125
  class: 'bottom',
2859
3126
  '(click)': '_stopPropagation($event)',
@@ -2941,6 +3208,7 @@
2941
3208
  */
2942
3209
  this.bsValueChange = new core.EventEmitter();
2943
3210
  this._subs = [];
3211
+ this._dateInputFormat$ = new rxjs.Subject();
2944
3212
  // todo: assign only subset of fields
2945
3213
  Object.assign(this, this._config);
2946
3214
  this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
@@ -2988,6 +3256,39 @@
2988
3256
  enumerable: true,
2989
3257
  configurable: true
2990
3258
  });
3259
+ Object.defineProperty(BsDatepickerDirective.prototype, "bsConfig", {
3260
+ get: /**
3261
+ * @return {?}
3262
+ */
3263
+ function () {
3264
+ return this._bsConfig;
3265
+ },
3266
+ /**
3267
+ * Config object for datepicker
3268
+ */
3269
+ set: /**
3270
+ * Config object for datepicker
3271
+ * @param {?} bsConfig
3272
+ * @return {?}
3273
+ */
3274
+ function (bsConfig) {
3275
+ this._bsConfig = bsConfig;
3276
+ this.setConfig();
3277
+ this._dateInputFormat$.next(bsConfig && bsConfig.dateInputFormat);
3278
+ },
3279
+ enumerable: true,
3280
+ configurable: true
3281
+ });
3282
+ Object.defineProperty(BsDatepickerDirective.prototype, "dateInputFormat$", {
3283
+ get: /**
3284
+ * @return {?}
3285
+ */
3286
+ function () {
3287
+ return this._dateInputFormat$;
3288
+ },
3289
+ enumerable: true,
3290
+ configurable: true
3291
+ });
2991
3292
  /**
2992
3293
  * @return {?}
2993
3294
  */
@@ -3041,6 +3342,9 @@
3041
3342
  if (changes.dateCustomClasses) {
3042
3343
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3043
3344
  }
3345
+ if (changes.dateTooltipTexts) {
3346
+ this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;
3347
+ }
3044
3348
  };
3045
3349
  /**
3046
3350
  * @return {?}
@@ -3179,6 +3483,7 @@
3179
3483
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
3180
3484
  daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3181
3485
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3486
+ dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,
3182
3487
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3183
3488
  datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
3184
3489
  minMode: this.minMode || this.bsConfig && this.bsConfig.minMode
@@ -3231,6 +3536,7 @@
3231
3536
  datesDisabled: [{ type: core.Input }],
3232
3537
  datesEnabled: [{ type: core.Input }],
3233
3538
  dateCustomClasses: [{ type: core.Input }],
3539
+ dateTooltipTexts: [{ type: core.Input }],
3234
3540
  bsValueChange: [{ type: core.Output }]
3235
3541
  };
3236
3542
  return BsDatepickerDirective;
@@ -3275,11 +3581,6 @@
3275
3581
  BsDatepickerDirective.prototype.isOpen$;
3276
3582
  /** @type {?} */
3277
3583
  BsDatepickerDirective.prototype.isDestroy$;
3278
- /**
3279
- * Config object for datepicker
3280
- * @type {?}
3281
- */
3282
- BsDatepickerDirective.prototype.bsConfig;
3283
3584
  /**
3284
3585
  * Indicates whether datepicker's content is enabled or not
3285
3586
  * @type {?}
@@ -3320,6 +3621,11 @@
3320
3621
  * @type {?}
3321
3622
  */
3322
3623
  BsDatepickerDirective.prototype.dateCustomClasses;
3624
+ /**
3625
+ * Date tooltip text
3626
+ * @type {?}
3627
+ */
3628
+ BsDatepickerDirective.prototype.dateTooltipTexts;
3323
3629
  /**
3324
3630
  * Emits when datepicker value has been changed
3325
3631
  * @type {?}
@@ -3340,6 +3646,16 @@
3340
3646
  * @private
3341
3647
  */
3342
3648
  BsDatepickerDirective.prototype._datepickerRef;
3649
+ /**
3650
+ * @type {?}
3651
+ * @private
3652
+ */
3653
+ BsDatepickerDirective.prototype._bsConfig;
3654
+ /**
3655
+ * @type {?}
3656
+ * @private
3657
+ */
3658
+ BsDatepickerDirective.prototype._dateInputFormat$;
3343
3659
  /** @type {?} */
3344
3660
  BsDatepickerDirective.prototype._config;
3345
3661
  /**
@@ -3364,8 +3680,11 @@
3364
3680
  return _super !== null && _super.apply(this, arguments) || this;
3365
3681
  }
3366
3682
  BsDatepickerInlineConfig.decorators = [
3367
- { type: core.Injectable }
3683
+ { type: core.Injectable, args: [{
3684
+ providedIn: 'root'
3685
+ },] }
3368
3686
  ];
3687
+ /** @nocollapse */ BsDatepickerInlineConfig.ɵprov = core["ɵɵdefineInjectable"]({ factory: function BsDatepickerInlineConfig_Factory() { return new BsDatepickerInlineConfig(); }, token: BsDatepickerInlineConfig, providedIn: "root" });
3369
3688
  return BsDatepickerInlineConfig;
3370
3689
  }(BsDatepickerConfig));
3371
3690
 
@@ -3385,7 +3704,7 @@
3385
3704
  { type: core.Component, args: [{
3386
3705
  selector: 'bs-datepicker-inline-container',
3387
3706
  providers: [BsDatepickerStore, BsDatepickerEffects],
3388
- template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view \n [selectedRange]=\"chosenRange\" \n [ranges]=\"customRanges\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
3707
+ template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\"\n [class.today-left]=\"todayPos === 'left'\"\n [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\"\n *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\"\n [class.clear-left]=\"clearPos === 'left'\"\n [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\"\n *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view\n [selectedRange]=\"chosenRange\"\n [ranges]=\"customRanges\"\n [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
3389
3708
  host: {
3390
3709
  '(click)': '_stopPropagation($event)'
3391
3710
  },
@@ -3503,6 +3822,10 @@
3503
3822
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3504
3823
  this.setConfig();
3505
3824
  }
3825
+ if (changes.dateTooltipTexts) {
3826
+ this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;
3827
+ this.setConfig();
3828
+ }
3506
3829
  };
3507
3830
  /**
3508
3831
  * Set config for datepicker
@@ -3525,6 +3848,7 @@
3525
3848
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3526
3849
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
3527
3850
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3851
+ dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,
3528
3852
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3529
3853
  datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled
3530
3854
  });
@@ -3564,6 +3888,7 @@
3564
3888
  minDate: [{ type: core.Input }],
3565
3889
  maxDate: [{ type: core.Input }],
3566
3890
  dateCustomClasses: [{ type: core.Input }],
3891
+ dateTooltipTexts: [{ type: core.Input }],
3567
3892
  datesEnabled: [{ type: core.Input }],
3568
3893
  datesDisabled: [{ type: core.Input }],
3569
3894
  bsValueChange: [{ type: core.Output }]
@@ -3598,6 +3923,11 @@
3598
3923
  * @type {?}
3599
3924
  */
3600
3925
  BsDatepickerInlineDirective.prototype.dateCustomClasses;
3926
+ /**
3927
+ * Date tooltip text
3928
+ * @type {?}
3929
+ */
3930
+ BsDatepickerInlineDirective.prototype.dateTooltipTexts;
3601
3931
  /**
3602
3932
  * Disable specific dates
3603
3933
  * @type {?}
@@ -3654,8 +3984,11 @@
3654
3984
  return _this;
3655
3985
  }
3656
3986
  BsDaterangepickerInlineConfig.decorators = [
3657
- { type: core.Injectable }
3987
+ { type: core.Injectable, args: [{
3988
+ providedIn: 'root'
3989
+ },] }
3658
3990
  ];
3991
+ /** @nocollapse */ BsDaterangepickerInlineConfig.ɵprov = core["ɵɵdefineInjectable"]({ factory: function BsDaterangepickerInlineConfig_Factory() { return new BsDaterangepickerInlineConfig(); }, token: BsDaterangepickerInlineConfig, providedIn: "root" });
3659
3992
  return BsDaterangepickerInlineConfig;
3660
3993
  }(BsDatepickerConfig));
3661
3994
  if (false) {
@@ -3688,6 +4021,7 @@
3688
4021
  _this._subs = [];
3689
4022
  _this._effects = _effects;
3690
4023
  _this.customRanges = _this._config.ranges;
4024
+ _this.customRangeBtnLbl = _this._config.customRangeButtonLabel;
3691
4025
  _renderer.setStyle(_element.nativeElement, 'display', 'block');
3692
4026
  _renderer.setStyle(_element.nativeElement, 'position', 'absolute');
3693
4027
  return _this;
@@ -3793,6 +4127,72 @@
3793
4127
  if (isDisabled) {
3794
4128
  return;
3795
4129
  }
4130
+ this.rangesProcessing(day);
4131
+ };
4132
+ /**
4133
+ * @param {?} day
4134
+ * @return {?}
4135
+ */
4136
+ BsDaterangepickerContainerComponent.prototype.monthSelectHandler = /**
4137
+ * @param {?} day
4138
+ * @return {?}
4139
+ */
4140
+ function (day) {
4141
+ if (!day) {
4142
+ return;
4143
+ }
4144
+ day.isSelected = true;
4145
+ if (this._config.minMode !== 'month') {
4146
+ if (day.isDisabled) {
4147
+ return;
4148
+ }
4149
+ this._store.dispatch(this._actions.navigateTo({
4150
+ unit: {
4151
+ month: chronos.getMonth(day.date),
4152
+ year: chronos.getFullYear(day.date)
4153
+ },
4154
+ viewMode: 'day'
4155
+ }));
4156
+ return;
4157
+ }
4158
+ this.rangesProcessing(day);
4159
+ };
4160
+ /**
4161
+ * @param {?} day
4162
+ * @return {?}
4163
+ */
4164
+ BsDaterangepickerContainerComponent.prototype.yearSelectHandler = /**
4165
+ * @param {?} day
4166
+ * @return {?}
4167
+ */
4168
+ function (day) {
4169
+ if (!day) {
4170
+ return;
4171
+ }
4172
+ day.isSelected = true;
4173
+ if (this._config.minMode !== 'year') {
4174
+ if (day.isDisabled) {
4175
+ return;
4176
+ }
4177
+ this._store.dispatch(this._actions.navigateTo({
4178
+ unit: {
4179
+ year: chronos.getFullYear(day.date)
4180
+ },
4181
+ viewMode: 'month'
4182
+ }));
4183
+ return;
4184
+ }
4185
+ this.rangesProcessing(day);
4186
+ };
4187
+ /**
4188
+ * @param {?} day
4189
+ * @return {?}
4190
+ */
4191
+ BsDaterangepickerContainerComponent.prototype.rangesProcessing = /**
4192
+ * @param {?} day
4193
+ * @return {?}
4194
+ */
4195
+ function (day) {
3796
4196
  // if only one date is already selected
3797
4197
  // and user clicks on previous date
3798
4198
  // start selection from new date
@@ -3806,6 +4206,9 @@
3806
4206
  }
3807
4207
  if (this._rangeStack.length === 0) {
3808
4208
  this._rangeStack = [day.date];
4209
+ if (this._config.maxDateRange) {
4210
+ this.setMaxDateRangeOnCalendar(day.date);
4211
+ }
3809
4212
  }
3810
4213
  this._store.dispatch(this._actions.selectRange(this._rangeStack));
3811
4214
  if (this._rangeStack.length === 2) {
@@ -3847,11 +4250,25 @@
3847
4250
  this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
3848
4251
  this._store.dispatch(this._actions.selectRange(this._rangeStack));
3849
4252
  };
4253
+ /**
4254
+ * @param {?} currentSelection
4255
+ * @return {?}
4256
+ */
4257
+ BsDaterangepickerContainerComponent.prototype.setMaxDateRangeOnCalendar = /**
4258
+ * @param {?} currentSelection
4259
+ * @return {?}
4260
+ */
4261
+ function (currentSelection) {
4262
+ /** @type {?} */
4263
+ var maxDateRange = new Date(currentSelection);
4264
+ maxDateRange.setDate(currentSelection.getDate() + this._config.maxDateRange);
4265
+ this._effects.setMaxDate(maxDateRange);
4266
+ };
3850
4267
  BsDaterangepickerContainerComponent.decorators = [
3851
4268
  { type: core.Component, args: [{
3852
4269
  selector: 'bs-daterangepicker-container',
3853
4270
  providers: [BsDatepickerStore, BsDatepickerEffects],
3854
- template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view \n [selectedRange]=\"chosenRange\" \n [ranges]=\"customRanges\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
4271
+ template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\"\n [class.today-left]=\"todayPos === 'left'\"\n [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\"\n *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\"\n [class.clear-left]=\"clearPos === 'left'\"\n [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\"\n *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view\n [selectedRange]=\"chosenRange\"\n [ranges]=\"customRanges\"\n [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
3855
4272
  host: {
3856
4273
  class: 'bottom',
3857
4274
  '(click)': '_stopPropagation($event)',
@@ -3927,7 +4344,7 @@
3927
4344
  { type: core.Component, args: [{
3928
4345
  selector: 'bs-daterangepicker-inline-container',
3929
4346
  providers: [BsDatepickerStore, BsDatepickerEffects],
3930
- template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view \n [selectedRange]=\"chosenRange\" \n [ranges]=\"customRanges\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
4347
+ template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n\n <div class=\"bs-datepicker-buttons\" *ngIf=\"showTodayBtn || showClearBtn\">\n <div class=\"btn-today-wrapper\"\n [class.today-left]=\"todayPos === 'left'\"\n [class.today-right]=\"todayPos === 'right'\"\n [class.today-center]=\"todayPos === 'center'\"\n *ngIf=\"showTodayBtn\">\n <button class=\"btn btn-success\" (click)=\"setToday()\">{{todayBtnLbl}}</button>\n </div>\n\n <div class=\"btn-clear-wrapper\"\n [class.clear-left]=\"clearPos === 'left'\"\n [class.clear-right]=\"clearPos === 'right'\"\n [class.clear-center]=\"clearPos === 'center'\"\n *ngIf=\"showClearBtn\">\n <button class=\"btn btn-success\" (click)=\"clearDate()\">{{clearBtnLbl}}</button>\n </div>\n </div>\n\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view\n [selectedRange]=\"chosenRange\"\n [ranges]=\"customRanges\"\n [customRangeLabel]=\"customRangeBtnLbl\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
3931
4348
  host: {
3932
4349
  '(click)': '_stopPropagation($event)'
3933
4350
  },
@@ -4079,7 +4496,8 @@
4079
4496
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
4080
4497
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4081
4498
  datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4082
- ranges: this.bsConfig && this.bsConfig.ranges
4499
+ ranges: this.bsConfig && this.bsConfig.ranges,
4500
+ maxDateRange: this.bsConfig && this.bsConfig.maxDateRange
4083
4501
  });
4084
4502
  this._datepickerRef = this._datepicker
4085
4503
  .provide({ provide: BsDatepickerConfig, useValue: this._config })
@@ -4253,6 +4671,13 @@
4253
4671
  function () {
4254
4672
  _this._setInputValue(_this._value);
4255
4673
  }));
4674
+ // update input value on format change
4675
+ this._picker.dateInputFormat$.pipe(operators.distinctUntilChanged()).subscribe((/**
4676
+ * @return {?}
4677
+ */
4678
+ function () {
4679
+ _this._setInputValue(_this._value);
4680
+ }));
4256
4681
  }
4257
4682
  /**
4258
4683
  * @param {?} event
@@ -4510,8 +4935,11 @@
4510
4935
  return _this;
4511
4936
  }
4512
4937
  BsDaterangepickerConfig.decorators = [
4513
- { type: core.Injectable }
4938
+ { type: core.Injectable, args: [{
4939
+ providedIn: 'root'
4940
+ },] }
4514
4941
  ];
4942
+ /** @nocollapse */ BsDaterangepickerConfig.ɵprov = core["ɵɵdefineInjectable"]({ factory: function BsDaterangepickerConfig_Factory() { return new BsDaterangepickerConfig(); }, token: BsDaterangepickerConfig, providedIn: "root" });
4515
4943
  return BsDaterangepickerConfig;
4516
4944
  }(BsDatepickerConfig));
4517
4945
  if (false) {
@@ -4551,6 +4979,7 @@
4551
4979
  */
4552
4980
  this.bsValueChange = new core.EventEmitter();
4553
4981
  this._subs = [];
4982
+ this._rangeInputFormat$ = new rxjs.Subject();
4554
4983
  this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
4555
4984
  Object.assign(this, _config);
4556
4985
  this.onShown = this._datepicker.onShown;
@@ -4597,6 +5026,39 @@
4597
5026
  enumerable: true,
4598
5027
  configurable: true
4599
5028
  });
5029
+ Object.defineProperty(BsDaterangepickerDirective.prototype, "bsConfig", {
5030
+ get: /**
5031
+ * @return {?}
5032
+ */
5033
+ function () {
5034
+ return this._bsConfig;
5035
+ },
5036
+ /**
5037
+ * Config object for daterangepicker
5038
+ */
5039
+ set: /**
5040
+ * Config object for daterangepicker
5041
+ * @param {?} bsConfig
5042
+ * @return {?}
5043
+ */
5044
+ function (bsConfig) {
5045
+ this._bsConfig = bsConfig;
5046
+ this.setConfig();
5047
+ this._rangeInputFormat$.next(bsConfig && bsConfig.rangeInputFormat);
5048
+ },
5049
+ enumerable: true,
5050
+ configurable: true
5051
+ });
5052
+ Object.defineProperty(BsDaterangepickerDirective.prototype, "rangeInputFormat$", {
5053
+ get: /**
5054
+ * @return {?}
5055
+ */
5056
+ function () {
5057
+ return this._rangeInputFormat$;
5058
+ },
5059
+ enumerable: true,
5060
+ configurable: true
5061
+ });
4600
5062
  /**
4601
5063
  * @return {?}
4602
5064
  */
@@ -4740,7 +5202,8 @@
4740
5202
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
4741
5203
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4742
5204
  datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4743
- ranges: this.bsConfig && this.bsConfig.ranges
5205
+ ranges: this.bsConfig && this.bsConfig.ranges,
5206
+ maxDateRange: this.bsConfig && this.bsConfig.maxDateRange
4744
5207
  });
4745
5208
  };
4746
5209
  /**
@@ -4889,11 +5352,6 @@
4889
5352
  BsDaterangepickerDirective.prototype.isOpen$;
4890
5353
  /** @type {?} */
4891
5354
  BsDaterangepickerDirective.prototype.isDestroy$;
4892
- /**
4893
- * Config object for daterangepicker
4894
- * @type {?}
4895
- */
4896
- BsDaterangepickerDirective.prototype.bsConfig;
4897
5355
  /**
4898
5356
  * Indicates whether daterangepicker's content is enabled or not
4899
5357
  * @type {?}
@@ -4949,6 +5407,16 @@
4949
5407
  * @private
4950
5408
  */
4951
5409
  BsDaterangepickerDirective.prototype._datepickerRef;
5410
+ /**
5411
+ * @type {?}
5412
+ * @private
5413
+ */
5414
+ BsDaterangepickerDirective.prototype._bsConfig;
5415
+ /**
5416
+ * @type {?}
5417
+ * @private
5418
+ */
5419
+ BsDaterangepickerDirective.prototype._rangeInputFormat$;
4952
5420
  /** @type {?} */
4953
5421
  BsDaterangepickerDirective.prototype._config;
4954
5422
  /**
@@ -5020,6 +5488,13 @@
5020
5488
  function () {
5021
5489
  _this._setInputValue(_this._value);
5022
5490
  }));
5491
+ // update input value on format change
5492
+ this._picker.rangeInputFormat$.pipe(operators.distinctUntilChanged()).subscribe((/**
5493
+ * @return {?}
5494
+ */
5495
+ function () {
5496
+ _this._setInputValue(_this._value);
5497
+ }));
5023
5498
  }
5024
5499
  /**
5025
5500
  * @param {?} event
@@ -5166,9 +5641,9 @@
5166
5641
  */
5167
5642
  function (_val) {
5168
5643
  if (_this._picker._config.useUtc) {
5169
- return chronos.utcAsLocal(chronos.parseDate(_val, _this._picker._config.dateInputFormat, _this._localeService.currentLocale));
5644
+ return chronos.utcAsLocal(chronos.parseDate(_val, _this._picker._config.rangeInputFormat, _this._localeService.currentLocale));
5170
5645
  }
5171
- return chronos.parseDate(_val, _this._picker._config.dateInputFormat, _this._localeService.currentLocale);
5646
+ return chronos.parseDate(_val, _this._picker._config.rangeInputFormat, _this._localeService.currentLocale);
5172
5647
  }))
5173
5648
  .map((/**
5174
5649
  * @param {?} date
@@ -5400,13 +5875,14 @@
5400
5875
  BsCustomDatesViewComponent.decorators = [
5401
5876
  { type: core.Component, args: [{
5402
5877
  selector: 'bs-custom-date-view',
5403
- template: "\n <div class=\"bs-datepicker-predefined-btns\">\n <button *ngFor=\"let range of ranges\"\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(range)\"\n [class.selected]=\"range.value === selectedRange\">\n {{ range.label }}\n </button>\n <button\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(customRange)\"\n [class.selected]=\"!checkRange()\">\n Custom Range\n </button>\n </div>\n ",
5878
+ template: "\n <div class=\"bs-datepicker-predefined-btns\">\n <button *ngFor=\"let range of ranges\"\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(range)\"\n [class.selected]=\"range.value === selectedRange\">\n {{ range.label }}\n </button>\n <button\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(customRange)\"\n [class.selected]=\"!checkRange()\">\n {{customRangeLabel}}\n </button>\n </div>\n ",
5404
5879
  changeDetection: core.ChangeDetectionStrategy.OnPush
5405
5880
  }] }
5406
5881
  ];
5407
5882
  BsCustomDatesViewComponent.propDecorators = {
5408
5883
  ranges: [{ type: core.Input }],
5409
5884
  selectedRange: [{ type: core.Input }],
5885
+ customRangeLabel: [{ type: core.Input }],
5410
5886
  onSelect: [{ type: core.Output }]
5411
5887
  };
5412
5888
  return BsCustomDatesViewComponent;
@@ -5417,6 +5893,8 @@
5417
5893
  /** @type {?} */
5418
5894
  BsCustomDatesViewComponent.prototype.selectedRange;
5419
5895
  /** @type {?} */
5896
+ BsCustomDatesViewComponent.prototype.customRangeLabel;
5897
+ /** @type {?} */
5420
5898
  BsCustomDatesViewComponent.prototype.onSelect;
5421
5899
  /** @type {?} */
5422
5900
  BsCustomDatesViewComponent.prototype.customRange;
@@ -5567,6 +6045,8 @@
5567
6045
  /** @type {?|undefined} */
5568
6046
  DayViewModel.prototype.customClasses;
5569
6047
  /** @type {?|undefined} */
6048
+ DayViewModel.prototype.tooltipText;
6049
+ /** @type {?|undefined} */
5570
6050
  DayViewModel.prototype.monthIndex;
5571
6051
  /** @type {?|undefined} */
5572
6052
  DayViewModel.prototype.weekIndex;
@@ -5680,6 +6160,16 @@
5680
6160
  /** @type {?} */
5681
6161
  DatepickerDateCustomClasses.prototype.classes;
5682
6162
  }
6163
+ /**
6164
+ * @record
6165
+ */
6166
+ function DatepickerDateTooltipText() { }
6167
+ if (false) {
6168
+ /** @type {?} */
6169
+ DatepickerDateTooltipText.prototype.date;
6170
+ /** @type {?} */
6171
+ DatepickerDateTooltipText.prototype.tooltipText;
6172
+ }
5683
6173
  /** @enum {number} */
5684
6174
  var BsNavigationDirection = {
5685
6175
  UP: 0,
@@ -5784,6 +6274,11 @@
5784
6274
  this.onSelect = new core.EventEmitter();
5785
6275
  this.onHover = new core.EventEmitter();
5786
6276
  this.onHoverWeek = new core.EventEmitter();
6277
+ this.isiOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||
6278
+ (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));
6279
+ if (this._config.dateTooltipTexts && this._config.dateTooltipTexts.length > 0) {
6280
+ this.isShowTooltip = true;
6281
+ }
5787
6282
  }
5788
6283
  /**
5789
6284
  * @param {?} event
@@ -5914,13 +6409,26 @@
5914
6409
  if (this._config.selectFromOtherMonth && cell.isOtherMonth) {
5915
6410
  cell.isOtherMonthHovered = isHovered;
5916
6411
  }
6412
+ if (this._config.dateTooltipTexts) {
6413
+ cell.tooltipText = '';
6414
+ this._config.dateTooltipTexts.forEach((/**
6415
+ * @param {?} dateData
6416
+ * @return {?}
6417
+ */
6418
+ function (dateData) {
6419
+ if (chronos.isSameDay(dateData.date, cell.date)) {
6420
+ cell.tooltipText = dateData.tooltipText;
6421
+ return;
6422
+ }
6423
+ }));
6424
+ }
5917
6425
  this.onHover.emit({ cell: cell, isHovered: isHovered });
5918
6426
  };
5919
6427
  BsDaysCalendarViewComponent.decorators = [
5920
6428
  { type: core.Component, args: [{
5921
6429
  selector: 'bs-days-calendar-view',
5922
6430
  // changeDetection: ChangeDetectionStrategy.OnPush,
5923
- template: "\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <!--days matrix-->\n <table role=\"grid\" class=\"days weeks\">\n <thead>\n <tr>\n <!--if show weeks-->\n <th *ngIf=\"options.showWeekNumbers\"></th>\n <th *ngFor=\"let weekday of calendar.weekdays; let i = index\"\n aria-label=\"weekday\">{{ calendar.weekdays[i] }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of calendar.weeks; let i = index\">\n <td class=\"week\" [class.active-week]=\"isWeekHovered\" *ngIf=\"options.showWeekNumbers\">\n <span\n (click)=\"selectWeek(week)\"\n (mouseenter)=\"weekHoverHandler(week, true)\"\n (mouseleave)=\"weekHoverHandler(week, false)\">{{ calendar.weekNumbers[i] }}</span>\n </td>\n <td *ngFor=\"let day of week.days\" role=\"gridcell\">\n <span bsDatepickerDayDecorator\n [day]=\"day\"\n (click)=\"selectDay(day)\"\n (mouseenter)=\"hoverDay(day, true)\"\n (mouseleave)=\"hoverDay(day, false)\">{{ day.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n\n </bs-calendar-layout>\n "
6431
+ template: "\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <!--days matrix-->\n <table role=\"grid\" class=\"days weeks\">\n <thead>\n <tr>\n <!--if show weeks-->\n <th *ngIf=\"options.showWeekNumbers\"></th>\n <th *ngFor=\"let weekday of calendar.weekdays; let i = index\"\n aria-label=\"weekday\">{{ calendar.weekdays[i] }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of calendar.weeks; let i = index\">\n <td class=\"week\" [class.active-week]=\"isWeekHovered\" *ngIf=\"options.showWeekNumbers\">\n <span *ngIf=\"isiOS\" (click)=\"selectWeek(week)\">{{ calendar.weekNumbers[i] }}</span>\n <span *ngIf=\"!isiOS\"\n (click)=\"selectWeek(week)\"\n (mouseenter)=\"weekHoverHandler(week, true)\"\n (mouseleave)=\"weekHoverHandler(week, false)\">{{ calendar.weekNumbers[i] }}</span>\n </td>\n <td *ngFor=\"let day of week.days\" role=\"gridcell\">\n\n <!-- When we want to show tooltips for dates -->\n <span *ngIf=\"!isiOS && isShowTooltip\" bsDatepickerDayDecorator\n [day]=\"day\"\n (click)=\"selectDay(day)\"\n tooltip=\"{{day.tooltipText}}\"\n (mouseenter)=\"hoverDay(day, true)\"\n (mouseleave)=\"hoverDay(day, false)\">{{ day.label }} 3</span>\n <!-- When tooltips for dates are disabled -->\n <span *ngIf=\"!isiOS && !isShowTooltip\" bsDatepickerDayDecorator\n [day]=\"day\"\n (click)=\"selectDay(day)\"\n (mouseenter)=\"hoverDay(day, true)\"\n (mouseleave)=\"hoverDay(day, false)\">{{ day.label }} 2</span>\n\n <!-- For mobile iOS view, tooltips are not needed -->\n <span *ngIf=\"isiOS\" bsDatepickerDayDecorator\n [day]=\"day\"\n (click)=\"selectDay(day)\">{{ day.label }} 1</span>\n </td>\n </tr>\n </tbody>\n </table>\n\n </bs-calendar-layout>\n "
5924
6432
  }] }
5925
6433
  ];
5926
6434
  /** @nocollapse */
@@ -5955,6 +6463,10 @@
5955
6463
  BsDaysCalendarViewComponent.prototype.onHoverWeek;
5956
6464
  /** @type {?} */
5957
6465
  BsDaysCalendarViewComponent.prototype.isWeekHovered;
6466
+ /** @type {?} */
6467
+ BsDaysCalendarViewComponent.prototype.isiOS;
6468
+ /** @type {?} */
6469
+ BsDaysCalendarViewComponent.prototype.isShowTooltip;
5958
6470
  /**
5959
6471
  * @type {?}
5960
6472
  * @private
@@ -6184,10 +6696,6 @@
6184
6696
  positioning.PositioningService,
6185
6697
  BsDatepickerStore,
6186
6698
  BsDatepickerActions,
6187
- BsDatepickerConfig,
6188
- BsDaterangepickerConfig,
6189
- BsDatepickerInlineConfig,
6190
- BsDaterangepickerInlineConfig,
6191
6699
  BsDatepickerEffects,
6192
6700
  BsLocaleService
6193
6701
  ]
@@ -6195,7 +6703,7 @@
6195
6703
  };
6196
6704
  BsDatepickerModule.decorators = [
6197
6705
  { type: core.NgModule, args: [{
6198
- imports: [common.CommonModule],
6706
+ imports: [common.CommonModule, tooltip.TooltipModule.forRoot()],
6199
6707
  declarations: [
6200
6708
  BsCalendarLayoutComponent,
6201
6709
  BsCurrentDateViewComponent,
@@ -6912,8 +7420,11 @@
6912
7420
  this.shortcutPropagation = false;
6913
7421
  }
6914
7422
  DatepickerConfig.decorators = [
6915
- { type: core.Injectable }
7423
+ { type: core.Injectable, args: [{
7424
+ providedIn: 'root'
7425
+ },] }
6916
7426
  ];
7427
+ /** @nocollapse */ DatepickerConfig.ɵprov = core["ɵɵdefineInjectable"]({ factory: function DatepickerConfig_Factory() { return new DatepickerConfig(); }, token: DatepickerConfig, providedIn: "root" });
6917
7428
  return DatepickerConfig;
6918
7429
  }());
6919
7430
  if (false) {