ngx-bootstrap 5.4.0 → 5.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/CHANGELOG.md +138 -99
  2. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +71 -2
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  4. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  6. package/accordion/fesm2015/ngx-bootstrap-accordion.js +79 -0
  7. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  8. package/accordion/fesm5/ngx-bootstrap-accordion.js +80 -1
  9. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  10. package/accordion/package.json +2 -2
  11. package/alert/bundles/ngx-bootstrap-alert.umd.js +224 -2
  12. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  13. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +15 -1
  14. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  15. package/alert/fesm2015/ngx-bootstrap-alert.js +71 -0
  16. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  17. package/alert/fesm5/ngx-bootstrap-alert.js +72 -1
  18. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  19. package/alert/package.json +2 -2
  20. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +208 -85
  21. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  22. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  23. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  24. package/buttons/button-radio-group.directive.d.ts +4 -1
  25. package/buttons/esm2015/button-radio-group.directive.js +26 -2
  26. package/buttons/esm5/button-radio-group.directive.js +30 -2
  27. package/buttons/fesm2015/ngx-bootstrap-buttons.js +194 -65
  28. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  29. package/buttons/fesm5/ngx-bootstrap-buttons.js +216 -83
  30. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  31. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  32. package/buttons/package.json +2 -2
  33. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +295 -4
  34. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  35. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +15 -1
  36. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  37. package/carousel/carousel.component.d.ts +2 -0
  38. package/carousel/esm2015/carousel.component.js +15 -2
  39. package/carousel/esm2015/slide.component.js +21 -2
  40. package/carousel/esm5/carousel.component.js +15 -2
  41. package/carousel/esm5/slide.component.js +6 -2
  42. package/carousel/fesm2015/ngx-bootstrap-carousel.js +169 -2
  43. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  44. package/carousel/fesm5/ngx-bootstrap-carousel.js +156 -4
  45. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  46. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  47. package/carousel/package.json +2 -2
  48. package/carousel/slide.component.d.ts +1 -0
  49. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +11172 -10061
  50. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  51. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  52. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  53. package/chronos/esm2015/format/format.js +1 -1
  54. package/chronos/esm2015/i18n/ka.js +108 -0
  55. package/chronos/esm2015/i18n/kk.js +89 -0
  56. package/chronos/esm2015/i18n/sq.js +62 -0
  57. package/chronos/esm2015/i18n/th-be.js +85 -0
  58. package/chronos/esm2015/index.js +2 -2
  59. package/chronos/esm2015/locale/locale.class.js +16 -2
  60. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  61. package/chronos/esm2015/public_api.js +5 -1
  62. package/chronos/esm2015/units/year.js +4 -1
  63. package/chronos/esm5/format/format.js +1 -1
  64. package/chronos/esm5/i18n/ka.js +108 -0
  65. package/chronos/esm5/i18n/kk.js +89 -0
  66. package/chronos/esm5/i18n/sq.js +62 -0
  67. package/chronos/esm5/i18n/th-be.js +86 -0
  68. package/chronos/esm5/index.js +2 -2
  69. package/chronos/esm5/locale/locale.class.js +22 -2
  70. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  71. package/chronos/esm5/public_api.js +5 -1
  72. package/chronos/esm5/units/year.js +4 -1
  73. package/chronos/fesm2015/ngx-bootstrap-chronos.js +1117 -13
  74. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  75. package/chronos/fesm5/ngx-bootstrap-chronos.js +1130 -13
  76. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  77. package/chronos/i18n/ka.d.ts +2 -0
  78. package/chronos/i18n/kk.d.ts +2 -0
  79. package/chronos/i18n/sq.d.ts +2 -0
  80. package/chronos/i18n/th-be.d.ts +2 -0
  81. package/chronos/locale/locale.class.d.ts +2 -0
  82. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  83. package/chronos/package.json +2 -2
  84. package/chronos/public_api.d.ts +4 -0
  85. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +100 -2
  86. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  87. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +1 -1
  88. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  89. package/collapse/collapse.directive.d.ts +1 -0
  90. package/collapse/esm2015/collapse.directive.js +14 -1
  91. package/collapse/esm5/collapse.directive.js +14 -1
  92. package/collapse/fesm2015/ngx-bootstrap-collapse.js +108 -0
  93. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  94. package/collapse/fesm5/ngx-bootstrap-collapse.js +109 -1
  95. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  96. package/collapse/ngx-bootstrap-collapse.metadata.json +1 -1
  97. package/collapse/package.json +2 -2
  98. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +169 -2
  99. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  100. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  101. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  102. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +177 -0
  103. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  104. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +178 -1
  105. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  106. package/component-loader/package.json +2 -2
  107. package/datepicker/base/bs-datepicker-container.d.ts +4 -1
  108. package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
  109. package/datepicker/bs-datepicker-input.directive.d.ts +1 -0
  110. package/datepicker/bs-datepicker.component.d.ts +12 -3
  111. package/datepicker/bs-datepicker.config.d.ts +26 -0
  112. package/datepicker/bs-datepicker.css +19 -1
  113. package/datepicker/bs-datepicker.css.map +3 -3
  114. package/datepicker/bs-datepicker.scss +0 -1
  115. package/datepicker/bs-daterangepicker-inline.component.d.ts +8 -0
  116. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -0
  117. package/datepicker/bs-daterangepicker.component.d.ts +16 -3
  118. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2116 -106
  119. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  120. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +15 -1
  121. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  122. package/datepicker/engine/flag-days-calendar.d.ts +1 -0
  123. package/datepicker/esm2015/base/bs-datepicker-container.js +18 -3
  124. package/datepicker/esm2015/bs-datepicker-inline.component.js +25 -9
  125. package/datepicker/esm2015/bs-datepicker-input.directive.js +19 -1
  126. package/datepicker/esm2015/bs-datepicker.component.js +55 -8
  127. package/datepicker/esm2015/bs-datepicker.config.js +36 -2
  128. package/datepicker/esm2015/bs-datepicker.module.js +23 -16
  129. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +37 -7
  130. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +34 -3
  131. package/datepicker/esm2015/bs-daterangepicker.component.js +66 -9
  132. package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
  133. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  134. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +15 -11
  135. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +25 -6
  136. package/datepicker/esm2015/reducer/bs-datepicker.state.js +5 -1
  137. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +46 -8
  138. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -2
  139. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  140. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +8 -7
  141. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +21 -3
  142. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  143. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +22 -8
  144. package/datepicker/esm2015/utils/bs-calendar-utils.js +18 -3
  145. package/datepicker/esm5/base/bs-datepicker-container.js +26 -3
  146. package/datepicker/esm5/bs-datepicker-inline.component.js +25 -9
  147. package/datepicker/esm5/bs-datepicker-input.directive.js +23 -1
  148. package/datepicker/esm5/bs-datepicker.component.js +59 -8
  149. package/datepicker/esm5/bs-datepicker.config.js +36 -2
  150. package/datepicker/esm5/bs-datepicker.module.js +26 -19
  151. package/datepicker/esm5/bs-daterangepicker-inline.component.js +37 -7
  152. package/datepicker/esm5/bs-daterangepicker-input.directive.js +38 -3
  153. package/datepicker/esm5/bs-daterangepicker.component.js +70 -9
  154. package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
  155. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  156. package/datepicker/esm5/reducer/bs-datepicker.effects.js +21 -17
  157. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +25 -6
  158. package/datepicker/esm5/reducer/bs-datepicker.state.js +5 -1
  159. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +39 -7
  160. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -2
  161. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  162. package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +2 -2
  163. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +25 -3
  164. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  165. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +22 -8
  166. package/datepicker/esm5/utils/bs-calendar-utils.js +18 -3
  167. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +1958 -91
  168. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  169. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +1989 -93
  170. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  171. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  172. package/datepicker/package.json +2 -2
  173. package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
  174. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
  175. package/datepicker/reducer/bs-datepicker.state.d.ts +2 -0
  176. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +6 -1
  177. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -0
  178. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  179. package/datepicker/utils/scss/mixins.css.map +1 -1
  180. package/datepicker/utils/scss/mixins.scss +9 -0
  181. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +395 -5
  182. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  183. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +15 -1
  184. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  185. package/dropdown/esm2015/bs-dropdown-container.component.js +2 -2
  186. package/dropdown/esm2015/bs-dropdown.directive.js +8 -3
  187. package/dropdown/esm5/bs-dropdown-container.component.js +2 -2
  188. package/dropdown/esm5/bs-dropdown.directive.js +9 -3
  189. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +241 -3
  190. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  191. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +242 -3
  192. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  193. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  194. package/dropdown/package.json +2 -2
  195. package/locale/bundles/ngx-bootstrap-locale.umd.js +36 -2
  196. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
  197. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
  198. package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
  199. package/locale/esm2015/public_api.js +5 -1
  200. package/locale/esm5/ngx-bootstrap-locale.js +2 -2
  201. package/locale/esm5/public_api.js +5 -1
  202. package/locale/fesm2015/ngx-bootstrap-locale.js +11 -1
  203. package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -1
  204. package/locale/fesm5/ngx-bootstrap-locale.js +11 -1
  205. package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -1
  206. package/locale/ngx-bootstrap-locale.metadata.json +1 -1
  207. package/locale/package.json +2 -2
  208. package/locale/public_api.d.ts +4 -0
  209. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +187 -2
  210. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  211. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +15 -1
  212. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  213. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +32 -0
  214. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -1
  215. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +32 -0
  216. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  217. package/mini-ngrx/package.json +2 -2
  218. package/modal/bs-modal.service.d.ts +1 -2
  219. package/modal/bundles/ngx-bootstrap-modal.umd.js +558 -16
  220. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  221. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +15 -1
  222. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  223. package/modal/esm2015/bs-modal.service.js +13 -4
  224. package/modal/esm2015/modal-container.component.js +24 -5
  225. package/modal/esm2015/modal-options.class.js +16 -1
  226. package/modal/esm2015/modal.directive.js +21 -4
  227. package/modal/esm2015/modal.module.js +10 -1
  228. package/modal/esm5/bs-modal.service.js +28 -8
  229. package/modal/esm5/modal-container.component.js +28 -5
  230. package/modal/esm5/modal-options.class.js +16 -1
  231. package/modal/esm5/modal.directive.js +25 -4
  232. package/modal/esm5/modal.module.js +13 -1
  233. package/modal/fesm2015/ngx-bootstrap-modal.js +354 -10
  234. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  235. package/modal/fesm5/ngx-bootstrap-modal.js +381 -15
  236. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  237. package/modal/modal-container.component.d.ts +3 -1
  238. package/modal/modal-options.class.d.ts +13 -0
  239. package/modal/modal.directive.d.ts +3 -1
  240. package/modal/modal.module.d.ts +1 -0
  241. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  242. package/modal/package.json +2 -2
  243. package/package.json +2 -2
  244. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +276 -4
  245. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  246. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  247. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  248. package/pagination/esm2015/models/index.js +49 -4
  249. package/pagination/esm2015/pager.component.js +2 -2
  250. package/pagination/esm2015/pagination.component.js +33 -3
  251. package/pagination/esm2015/public_api.js +1 -1
  252. package/pagination/esm5/models/index.js +49 -4
  253. package/pagination/esm5/pager.component.js +2 -2
  254. package/pagination/esm5/pagination.component.js +33 -3
  255. package/pagination/esm5/public_api.js +1 -1
  256. package/pagination/fesm2015/ngx-bootstrap-pagination.js +284 -2
  257. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  258. package/pagination/fesm5/ngx-bootstrap-pagination.js +285 -3
  259. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  260. package/pagination/models/index.d.ts +28 -0
  261. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  262. package/pagination/package.json +2 -2
  263. package/pagination/pagination.component.d.ts +12 -2
  264. package/pagination/public_api.d.ts +1 -0
  265. package/popover/bundles/ngx-bootstrap-popover.umd.js +215 -20
  266. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  267. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  268. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  269. package/popover/esm2015/popover.config.js +10 -1
  270. package/popover/esm2015/popover.directive.js +97 -16
  271. package/popover/esm5/popover.config.js +10 -1
  272. package/popover/esm5/popover.directive.js +98 -16
  273. package/popover/fesm2015/ngx-bootstrap-popover.js +221 -16
  274. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  275. package/popover/fesm5/ngx-bootstrap-popover.js +222 -16
  276. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  277. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  278. package/popover/package.json +2 -2
  279. package/popover/popover.config.d.ts +2 -0
  280. package/popover/popover.directive.d.ts +9 -1
  281. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +286 -13
  282. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  283. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +15 -1
  284. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  285. package/positioning/esm2015/modifiers/arrow.js +19 -5
  286. package/positioning/esm2015/modifiers/initData.js +12 -2
  287. package/positioning/esm2015/modifiers/shift.js +6 -4
  288. package/positioning/esm5/modifiers/arrow.js +19 -5
  289. package/positioning/esm5/modifiers/initData.js +12 -2
  290. package/positioning/esm5/modifiers/shift.js +8 -6
  291. package/positioning/fesm2015/ngx-bootstrap-positioning.js +128 -8
  292. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  293. package/positioning/fesm5/ngx-bootstrap-positioning.js +132 -10
  294. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  295. package/positioning/package.json +2 -2
  296. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +77 -2
  297. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  298. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  299. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  300. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +85 -0
  301. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  302. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +85 -0
  303. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  304. package/progressbar/package.json +2 -2
  305. package/rating/bundles/ngx-bootstrap-rating.umd.js +92 -7
  306. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  307. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  308. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  309. package/rating/esm2015/ngx-bootstrap-rating.js +2 -2
  310. package/rating/esm2015/public_api.js +2 -1
  311. package/rating/esm2015/rating.component.js +14 -5
  312. package/rating/esm2015/rating.config.js +27 -0
  313. package/rating/esm2015/rating.module.js +3 -2
  314. package/rating/esm5/ngx-bootstrap-rating.js +2 -2
  315. package/rating/esm5/public_api.js +2 -1
  316. package/rating/esm5/rating.component.js +13 -5
  317. package/rating/esm5/rating.config.js +29 -0
  318. package/rating/esm5/rating.module.js +3 -2
  319. package/rating/fesm2015/ngx-bootstrap-rating.js +101 -7
  320. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  321. package/rating/fesm5/ngx-bootstrap-rating.js +101 -7
  322. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  323. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  324. package/rating/package.json +2 -2
  325. package/rating/public_api.d.ts +1 -0
  326. package/rating/rating.component.d.ts +4 -1
  327. package/rating/rating.config.d.ts +5 -0
  328. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +254 -2
  329. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  330. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +15 -1
  331. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  332. package/sortable/fesm2015/ngx-bootstrap-sortable.js +113 -0
  333. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  334. package/sortable/fesm5/ngx-bootstrap-sortable.js +114 -1
  335. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  336. package/sortable/package.json +2 -2
  337. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +153 -4
  338. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  339. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  340. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  341. package/tabs/esm2015/tab.directive.js +13 -2
  342. package/tabs/esm2015/tabset.component.js +7 -2
  343. package/tabs/esm2015/tabset.config.js +10 -1
  344. package/tabs/esm5/tab.directive.js +17 -2
  345. package/tabs/esm5/tabset.component.js +7 -2
  346. package/tabs/esm5/tabset.config.js +10 -1
  347. package/tabs/fesm2015/ngx-bootstrap-tabs.js +157 -2
  348. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  349. package/tabs/fesm5/ngx-bootstrap-tabs.js +162 -3
  350. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  351. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  352. package/tabs/package.json +2 -2
  353. package/tabs/tab.directive.d.ts +2 -0
  354. package/tabs/tabset.component.d.ts +2 -0
  355. package/tabs/tabset.config.d.ts +2 -0
  356. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +464 -8
  357. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  358. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +15 -1
  359. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  360. package/timepicker/esm2015/timepicker.component.js +8 -2
  361. package/timepicker/esm2015/timepicker.config.js +28 -1
  362. package/timepicker/esm2015/timepicker.utils.js +9 -6
  363. package/timepicker/esm5/timepicker.component.js +8 -2
  364. package/timepicker/esm5/timepicker.config.js +28 -1
  365. package/timepicker/esm5/timepicker.utils.js +9 -6
  366. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +311 -6
  367. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  368. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +315 -7
  369. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  370. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  371. package/timepicker/package.json +2 -2
  372. package/timepicker/timepicker.component.d.ts +3 -0
  373. package/timepicker/timepicker.config.d.ts +6 -0
  374. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +355 -8
  375. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  376. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +15 -1
  377. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  378. package/tooltip/esm2015/tooltip.directive.js +47 -10
  379. package/tooltip/esm5/tooltip.directive.js +50 -10
  380. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +200 -7
  381. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  382. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +203 -7
  383. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  384. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  385. package/tooltip/package.json +2 -2
  386. package/tooltip/tooltip.directive.d.ts +3 -1
  387. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +719 -43
  388. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  389. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +15 -1
  390. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  391. package/typeahead/esm2015/models/index.js +87 -0
  392. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
  393. package/typeahead/esm2015/public_api.js +2 -1
  394. package/typeahead/esm2015/typeahead-container.component.js +52 -11
  395. package/typeahead/esm2015/typeahead-order.class.js +19 -0
  396. package/typeahead/esm2015/typeahead.config.js +10 -1
  397. package/typeahead/esm2015/typeahead.directive.js +133 -30
  398. package/typeahead/esm5/models/index.js +87 -0
  399. package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
  400. package/typeahead/esm5/public_api.js +2 -1
  401. package/typeahead/esm5/typeahead-container.component.js +59 -11
  402. package/typeahead/esm5/typeahead-order.class.js +23 -0
  403. package/typeahead/esm5/typeahead.config.js +10 -1
  404. package/typeahead/esm5/typeahead.directive.js +140 -36
  405. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +550 -37
  406. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  407. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +567 -43
  408. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  409. package/typeahead/models/index.d.ts +41 -0
  410. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  411. package/typeahead/package.json +2 -2
  412. package/typeahead/public_api.d.ts +2 -0
  413. package/typeahead/typeahead-container.component.d.ts +10 -5
  414. package/typeahead/typeahead-order.class.d.ts +6 -0
  415. package/typeahead/typeahead.config.d.ts +2 -0
  416. package/typeahead/typeahead.directive.d.ts +28 -10
  417. package/utils/bundles/ngx-bootstrap-utils.umd.js +54 -2
  418. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
  419. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +2 -2
  420. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
  421. package/utils/fesm2015/ngx-bootstrap-utils.js +62 -0
  422. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
  423. package/utils/fesm5/ngx-bootstrap-utils.js +62 -0
  424. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
  425. package/utils/package.json +2 -2
  426. package/bundles/ngx-bootstrap.umd.js +0 -1037
  427. package/bundles/ngx-bootstrap.umd.js.map +0 -1
  428. package/bundles/ngx-bootstrap.umd.min.js +0 -2
  429. package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
  430. package/esm2015/ngx-bootstrap.js +0 -9
  431. package/esm2015/public_api.js +0 -30
  432. package/esm5/ngx-bootstrap.js +0 -9
  433. package/esm5/public_api.js +0 -30
  434. package/fesm2015/ngx-bootstrap.js +0 -24
  435. package/fesm2015/ngx-bootstrap.js.map +0 -1
  436. package/fesm5/ngx-bootstrap.js +0 -24
  437. package/fesm5/ngx-bootstrap.js.map +0 -1
  438. package/ngx-bootstrap.d.ts +0 -4
  439. package/ngx-bootstrap.metadata.json +0 -1
  440. package/public_api.d.ts +0 -25
@@ -1,7 +1,7 @@
1
1
  import { Injectable, EventEmitter, Component, Renderer2, ElementRef, Directive, ViewContainerRef, Input, Output, forwardRef, Host, ChangeDetectorRef, ChangeDetectionStrategy, NgModule, ViewChild } from '@angular/core';
2
- import { filter, map, take } from 'rxjs/operators';
3
- import { getMonth, getFullYear, isFirstDayOfWeek, getDay, shiftDate, isBefore, endOf, isAfter, startOf, isSame, getFirstDayOfMonth, formatDate, getLocale, isSameMonth, isSameDay, isDisabledDay, isSameYear, setFullDate, isDateValid, isArray, isDate, parseDate, utcAsLocal } from 'ngx-bootstrap/chronos';
4
- import { BehaviorSubject } from 'rxjs';
2
+ import { filter, map, take, takeUntil } from 'rxjs/operators';
3
+ import { getMonth, getFullYear, isFirstDayOfWeek, getDay, shiftDate, isBefore, endOf, isAfter, startOf, isArray, isSame, getFirstDayOfMonth, formatDate, getLocale, isSameMonth, isSameDay, isDisabledDay, isSameYear, isDateValid, setFullDate, isDate, parseDate, utcAsLocal } from 'ngx-bootstrap/chronos';
4
+ import { BehaviorSubject, Subject } from 'rxjs';
5
5
  import { MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';
6
6
  import { PositioningService } from 'ngx-bootstrap/positioning';
7
7
  import { trigger, state, style, transition, animate } from '@angular/animations';
@@ -32,6 +32,10 @@ class BsDatepickerConfig {
32
32
  * turn on/off animation
33
33
  */
34
34
  this.isAnimated = false;
35
+ /**
36
+ * If true, returns focus to the datepicker / daterangepicker input after date selection
37
+ */
38
+ this.returnFocusToInput = false;
35
39
  /**
36
40
  * CSS class which will be applied to datepicker container,
37
41
  * usually used to set color theme
@@ -62,6 +66,138 @@ class BsDatepickerConfig {
62
66
  BsDatepickerConfig.decorators = [
63
67
  { type: Injectable }
64
68
  ];
69
+ if (false) {
70
+ /**
71
+ * sets use adaptive position
72
+ * @type {?}
73
+ */
74
+ BsDatepickerConfig.prototype.adaptivePosition;
75
+ /**
76
+ * sets use UTC date time format
77
+ * @type {?}
78
+ */
79
+ BsDatepickerConfig.prototype.useUtc;
80
+ /**
81
+ * turn on/off animation
82
+ * @type {?}
83
+ */
84
+ BsDatepickerConfig.prototype.isAnimated;
85
+ /** @type {?} */
86
+ BsDatepickerConfig.prototype.value;
87
+ /** @type {?} */
88
+ BsDatepickerConfig.prototype.isDisabled;
89
+ /**
90
+ * Default min date for all date/range pickers
91
+ * @type {?}
92
+ */
93
+ BsDatepickerConfig.prototype.minDate;
94
+ /**
95
+ * Default max date for all date/range pickers
96
+ * @type {?}
97
+ */
98
+ BsDatepickerConfig.prototype.maxDate;
99
+ /**
100
+ * Default date custom classes for all date/range pickers
101
+ * @type {?}
102
+ */
103
+ BsDatepickerConfig.prototype.dateCustomClasses;
104
+ /**
105
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
106
+ * @type {?}
107
+ */
108
+ BsDatepickerConfig.prototype.daysDisabled;
109
+ /**
110
+ * Disable specific dates
111
+ * @type {?}
112
+ */
113
+ BsDatepickerConfig.prototype.datesDisabled;
114
+ /**
115
+ * Show one months for special cases (only for dateRangePicker)
116
+ * 1. maxDate is equal to today's date
117
+ * 2. minDate's month is equal to maxDate's month
118
+ * @type {?}
119
+ */
120
+ BsDatepickerConfig.prototype.displayOneMonthRange;
121
+ /**
122
+ * Enable specific dates
123
+ * @type {?}
124
+ */
125
+ BsDatepickerConfig.prototype.datesEnabled;
126
+ /**
127
+ * Makes dates from other months active
128
+ * @type {?}
129
+ */
130
+ BsDatepickerConfig.prototype.selectFromOtherMonth;
131
+ /**
132
+ * Allows select first date of the week by click on week number
133
+ * @type {?}
134
+ */
135
+ BsDatepickerConfig.prototype.selectWeek;
136
+ /**
137
+ * Allows select daterange as first and last day of week by click on week number (dateRangePicker only)
138
+ * @type {?}
139
+ */
140
+ BsDatepickerConfig.prototype.selectWeekDateRange;
141
+ /**
142
+ * Shows previous and current month, instead of current and next (dateRangePicker only)
143
+ * @type {?}
144
+ */
145
+ BsDatepickerConfig.prototype.showPreviousMonth;
146
+ /**
147
+ * Add class to current day
148
+ * @type {?}
149
+ */
150
+ BsDatepickerConfig.prototype.customTodayClass;
151
+ /**
152
+ * Default mode for all date pickers
153
+ * @type {?}
154
+ */
155
+ BsDatepickerConfig.prototype.minMode;
156
+ /**
157
+ * If true, returns focus to the datepicker / daterangepicker input after date selection
158
+ * @type {?}
159
+ */
160
+ BsDatepickerConfig.prototype.returnFocusToInput;
161
+ /**
162
+ * CSS class which will be applied to datepicker container,
163
+ * usually used to set color theme
164
+ * @type {?}
165
+ */
166
+ BsDatepickerConfig.prototype.containerClass;
167
+ /** @type {?} */
168
+ BsDatepickerConfig.prototype.displayMonths;
169
+ /**
170
+ * Allows to hide week numbers in datepicker
171
+ * @type {?}
172
+ */
173
+ BsDatepickerConfig.prototype.showWeekNumbers;
174
+ /** @type {?} */
175
+ BsDatepickerConfig.prototype.dateInputFormat;
176
+ /** @type {?} */
177
+ BsDatepickerConfig.prototype.rangeSeparator;
178
+ /**
179
+ * Date format for date range input field
180
+ * @type {?}
181
+ */
182
+ BsDatepickerConfig.prototype.rangeInputFormat;
183
+ /**
184
+ * Predefined ranges
185
+ * @type {?}
186
+ */
187
+ BsDatepickerConfig.prototype.ranges;
188
+ /** @type {?} */
189
+ BsDatepickerConfig.prototype.monthTitle;
190
+ /** @type {?} */
191
+ BsDatepickerConfig.prototype.yearTitle;
192
+ /** @type {?} */
193
+ BsDatepickerConfig.prototype.dayLabel;
194
+ /** @type {?} */
195
+ BsDatepickerConfig.prototype.monthLabel;
196
+ /** @type {?} */
197
+ BsDatepickerConfig.prototype.yearLabel;
198
+ /** @type {?} */
199
+ BsDatepickerConfig.prototype.weekNumbers;
200
+ }
65
201
 
66
202
  /**
67
203
  * @fileoverview added by tsickle
@@ -72,7 +208,8 @@ BsDatepickerConfig.decorators = [
72
208
  */
73
209
  class BsDatepickerAbstractComponent {
74
210
  constructor() {
75
- this._customRangesFish = [];
211
+ this.customRanges = [];
212
+ this.chosenRange = [];
76
213
  }
77
214
  /**
78
215
  * @param {?} value
@@ -102,6 +239,13 @@ class BsDatepickerAbstractComponent {
102
239
  set datesDisabled(value) {
103
240
  this._effects.setDatesDisabled(value);
104
241
  }
242
+ /**
243
+ * @param {?} value
244
+ * @return {?}
245
+ */
246
+ set datesEnabled(value) {
247
+ this._effects.setDatesEnabled(value);
248
+ }
105
249
  /**
106
250
  * @param {?} value
107
251
  * @return {?}
@@ -161,6 +305,11 @@ class BsDatepickerAbstractComponent {
161
305
  * @return {?}
162
306
  */
163
307
  yearSelectHandler(event) { }
308
+ /**
309
+ * @param {?} dates
310
+ * @return {?}
311
+ */
312
+ setRangeOnCalendar(dates) { }
164
313
  /* tslint:disable-next-line: no-any */
165
314
  /**
166
315
  * @param {?} event
@@ -170,6 +319,28 @@ class BsDatepickerAbstractComponent {
170
319
  event.stopPropagation();
171
320
  }
172
321
  }
322
+ if (false) {
323
+ /** @type {?} */
324
+ BsDatepickerAbstractComponent.prototype.containerClass;
325
+ /** @type {?} */
326
+ BsDatepickerAbstractComponent.prototype.isOtherMonthsActive;
327
+ /** @type {?} */
328
+ BsDatepickerAbstractComponent.prototype._effects;
329
+ /** @type {?} */
330
+ BsDatepickerAbstractComponent.prototype.customRanges;
331
+ /** @type {?} */
332
+ BsDatepickerAbstractComponent.prototype.chosenRange;
333
+ /** @type {?} */
334
+ BsDatepickerAbstractComponent.prototype.viewMode;
335
+ /** @type {?} */
336
+ BsDatepickerAbstractComponent.prototype.daysCalendar;
337
+ /** @type {?} */
338
+ BsDatepickerAbstractComponent.prototype.monthsCalendar;
339
+ /** @type {?} */
340
+ BsDatepickerAbstractComponent.prototype.yearsCalendar;
341
+ /** @type {?} */
342
+ BsDatepickerAbstractComponent.prototype.options;
343
+ }
173
344
 
174
345
  /**
175
346
  * @fileoverview added by tsickle
@@ -305,6 +476,16 @@ class BsDatepickerActions {
305
476
  payload: dates
306
477
  };
307
478
  }
479
+ /**
480
+ * @param {?} dates
481
+ * @return {?}
482
+ */
483
+ datesEnabled(dates) {
484
+ return {
485
+ type: BsDatepickerActions.SET_DATESENABLED,
486
+ payload: dates
487
+ };
488
+ }
308
489
  /**
309
490
  * @param {?} value
310
491
  * @return {?}
@@ -349,6 +530,7 @@ BsDatepickerActions.SET_MIN_DATE = '[datepicker] set min date';
349
530
  BsDatepickerActions.SET_MAX_DATE = '[datepicker] set max date';
350
531
  BsDatepickerActions.SET_DAYSDISABLED = '[datepicker] set days disabled';
351
532
  BsDatepickerActions.SET_DATESDISABLED = '[datepicker] set dates disabled';
533
+ BsDatepickerActions.SET_DATESENABLED = '[datepicker] set dates enabled';
352
534
  BsDatepickerActions.SET_IS_DISABLED = '[datepicker] set is disabled';
353
535
  BsDatepickerActions.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';
354
536
  BsDatepickerActions.SET_LOCALE = '[datepicker] set datepicker locale';
@@ -356,6 +538,44 @@ BsDatepickerActions.SELECT_RANGE = '[daterangepicker] select dates range';
356
538
  BsDatepickerActions.decorators = [
357
539
  { type: Injectable }
358
540
  ];
541
+ if (false) {
542
+ /** @type {?} */
543
+ BsDatepickerActions.CALCULATE;
544
+ /** @type {?} */
545
+ BsDatepickerActions.FORMAT;
546
+ /** @type {?} */
547
+ BsDatepickerActions.FLAG;
548
+ /** @type {?} */
549
+ BsDatepickerActions.SELECT;
550
+ /** @type {?} */
551
+ BsDatepickerActions.NAVIGATE_OFFSET;
552
+ /** @type {?} */
553
+ BsDatepickerActions.NAVIGATE_TO;
554
+ /** @type {?} */
555
+ BsDatepickerActions.SET_OPTIONS;
556
+ /** @type {?} */
557
+ BsDatepickerActions.HOVER;
558
+ /** @type {?} */
559
+ BsDatepickerActions.CHANGE_VIEWMODE;
560
+ /** @type {?} */
561
+ BsDatepickerActions.SET_MIN_DATE;
562
+ /** @type {?} */
563
+ BsDatepickerActions.SET_MAX_DATE;
564
+ /** @type {?} */
565
+ BsDatepickerActions.SET_DAYSDISABLED;
566
+ /** @type {?} */
567
+ BsDatepickerActions.SET_DATESDISABLED;
568
+ /** @type {?} */
569
+ BsDatepickerActions.SET_DATESENABLED;
570
+ /** @type {?} */
571
+ BsDatepickerActions.SET_IS_DISABLED;
572
+ /** @type {?} */
573
+ BsDatepickerActions.SET_DATE_CUSTOM_CLASSES;
574
+ /** @type {?} */
575
+ BsDatepickerActions.SET_LOCALE;
576
+ /** @type {?} */
577
+ BsDatepickerActions.SELECT_RANGE;
578
+ }
359
579
 
360
580
  /**
361
581
  * @fileoverview added by tsickle
@@ -399,6 +619,23 @@ class BsLocaleService {
399
619
  BsLocaleService.decorators = [
400
620
  { type: Injectable }
401
621
  ];
622
+ if (false) {
623
+ /**
624
+ * @type {?}
625
+ * @private
626
+ */
627
+ BsLocaleService.prototype._defaultLocale;
628
+ /**
629
+ * @type {?}
630
+ * @private
631
+ */
632
+ BsLocaleService.prototype._locale;
633
+ /**
634
+ * @type {?}
635
+ * @private
636
+ */
637
+ BsLocaleService.prototype._localeChange;
638
+ }
402
639
 
403
640
  /**
404
641
  * @fileoverview added by tsickle
@@ -454,24 +691,28 @@ class BsDatepickerEffects {
454
691
  return this;
455
692
  }
456
693
  /**
457
- * @template THIS
458
- * @this {THIS}
459
694
  * @param {?} value
460
- * @return {THIS}
695
+ * @return {?}
461
696
  */
462
697
  setDaysDisabled(value) {
463
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.daysDisabled(value));
464
- return (/** @type {?} */ (this));
698
+ this._store.dispatch(this._actions.daysDisabled(value));
699
+ return this;
465
700
  }
466
701
  /**
467
- * @template THIS
468
- * @this {THIS}
469
702
  * @param {?} value
470
- * @return {THIS}
703
+ * @return {?}
471
704
  */
472
705
  setDatesDisabled(value) {
473
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.datesDisabled(value));
474
- return (/** @type {?} */ (this));
706
+ this._store.dispatch(this._actions.datesDisabled(value));
707
+ return this;
708
+ }
709
+ /**
710
+ * @param {?} value
711
+ * @return {?}
712
+ */
713
+ setDatesEnabled(value) {
714
+ this._store.dispatch(this._actions.datesEnabled(value));
715
+ return this;
475
716
  }
476
717
  /**
477
718
  * @param {?} value
@@ -809,6 +1050,38 @@ BsDatepickerEffects.ctorParameters = () => [
809
1050
  { type: BsDatepickerActions },
810
1051
  { type: BsLocaleService }
811
1052
  ];
1053
+ if (false) {
1054
+ /** @type {?} */
1055
+ BsDatepickerEffects.prototype.viewMode;
1056
+ /** @type {?} */
1057
+ BsDatepickerEffects.prototype.daysCalendar;
1058
+ /** @type {?} */
1059
+ BsDatepickerEffects.prototype.monthsCalendar;
1060
+ /** @type {?} */
1061
+ BsDatepickerEffects.prototype.yearsCalendar;
1062
+ /** @type {?} */
1063
+ BsDatepickerEffects.prototype.options;
1064
+ /**
1065
+ * @type {?}
1066
+ * @private
1067
+ */
1068
+ BsDatepickerEffects.prototype._store;
1069
+ /**
1070
+ * @type {?}
1071
+ * @private
1072
+ */
1073
+ BsDatepickerEffects.prototype._subs;
1074
+ /**
1075
+ * @type {?}
1076
+ * @private
1077
+ */
1078
+ BsDatepickerEffects.prototype._actions;
1079
+ /**
1080
+ * @type {?}
1081
+ * @private
1082
+ */
1083
+ BsDatepickerEffects.prototype._localeService;
1084
+ }
812
1085
 
813
1086
  /**
814
1087
  * @fileoverview added by tsickle
@@ -824,6 +1097,88 @@ const defaultMonthOptions = {
824
1097
  * @fileoverview added by tsickle
825
1098
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
826
1099
  */
1100
+ /**
1101
+ * @record
1102
+ */
1103
+ function BsDatepickerViewState() { }
1104
+ if (false) {
1105
+ /** @type {?} */
1106
+ BsDatepickerViewState.prototype.date;
1107
+ /** @type {?} */
1108
+ BsDatepickerViewState.prototype.mode;
1109
+ }
1110
+ class BsDatepickerState {
1111
+ }
1112
+ if (false) {
1113
+ /** @type {?} */
1114
+ BsDatepickerState.prototype.selectedDate;
1115
+ /** @type {?} */
1116
+ BsDatepickerState.prototype.selectedRange;
1117
+ /** @type {?} */
1118
+ BsDatepickerState.prototype.view;
1119
+ /** @type {?} */
1120
+ BsDatepickerState.prototype.isDisabled;
1121
+ /** @type {?} */
1122
+ BsDatepickerState.prototype.minDate;
1123
+ /** @type {?} */
1124
+ BsDatepickerState.prototype.maxDate;
1125
+ /** @type {?} */
1126
+ BsDatepickerState.prototype.daysDisabled;
1127
+ /** @type {?} */
1128
+ BsDatepickerState.prototype.datesDisabled;
1129
+ /** @type {?} */
1130
+ BsDatepickerState.prototype.datesEnabled;
1131
+ /** @type {?} */
1132
+ BsDatepickerState.prototype.minMode;
1133
+ /** @type {?} */
1134
+ BsDatepickerState.prototype.dateCustomClasses;
1135
+ /** @type {?} */
1136
+ BsDatepickerState.prototype.hoveredDate;
1137
+ /** @type {?} */
1138
+ BsDatepickerState.prototype.hoveredMonth;
1139
+ /** @type {?} */
1140
+ BsDatepickerState.prototype.hoveredYear;
1141
+ /** @type {?} */
1142
+ BsDatepickerState.prototype.monthsModel;
1143
+ /** @type {?} */
1144
+ BsDatepickerState.prototype.formattedMonths;
1145
+ /** @type {?} */
1146
+ BsDatepickerState.prototype.flaggedMonths;
1147
+ /** @type {?} */
1148
+ BsDatepickerState.prototype.selectFromOtherMonth;
1149
+ /** @type {?} */
1150
+ BsDatepickerState.prototype.showPreviousMonth;
1151
+ /** @type {?} */
1152
+ BsDatepickerState.prototype.displayOneMonthRange;
1153
+ /** @type {?} */
1154
+ BsDatepickerState.prototype.monthsCalendar;
1155
+ /** @type {?} */
1156
+ BsDatepickerState.prototype.flaggedMonthsCalendar;
1157
+ /** @type {?} */
1158
+ BsDatepickerState.prototype.yearsCalendarModel;
1159
+ /** @type {?} */
1160
+ BsDatepickerState.prototype.yearsCalendarFlagged;
1161
+ /** @type {?} */
1162
+ BsDatepickerState.prototype.monthViewOptions;
1163
+ /** @type {?} */
1164
+ BsDatepickerState.prototype.showWeekNumbers;
1165
+ /** @type {?} */
1166
+ BsDatepickerState.prototype.displayMonths;
1167
+ /** @type {?} */
1168
+ BsDatepickerState.prototype.locale;
1169
+ /** @type {?} */
1170
+ BsDatepickerState.prototype.monthTitle;
1171
+ /** @type {?} */
1172
+ BsDatepickerState.prototype.yearTitle;
1173
+ /** @type {?} */
1174
+ BsDatepickerState.prototype.dayLabel;
1175
+ /** @type {?} */
1176
+ BsDatepickerState.prototype.monthLabel;
1177
+ /** @type {?} */
1178
+ BsDatepickerState.prototype.yearLabel;
1179
+ /** @type {?} */
1180
+ BsDatepickerState.prototype.weekNumbers;
1181
+ }
827
1182
  /** @type {?} */
828
1183
  const _initialView = { date: new Date(), mode: 'day' };
829
1184
  /** @type {?} */
@@ -898,7 +1253,7 @@ function isYearDisabled(date, min, max) {
898
1253
  * @return {?}
899
1254
  */
900
1255
  function isDisabledDate(date, datesDisabled) {
901
- if (datesDisabled === undefined || !datesDisabled || !datesDisabled.length) {
1256
+ if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {
902
1257
  return false;
903
1258
  }
904
1259
  return datesDisabled.some((/**
@@ -907,6 +1262,21 @@ function isDisabledDate(date, datesDisabled) {
907
1262
  */
908
1263
  (dateDisabled) => isSame(date, dateDisabled, 'date')));
909
1264
  }
1265
+ /**
1266
+ * @param {?} date
1267
+ * @param {?} datesEnabled
1268
+ * @return {?}
1269
+ */
1270
+ function isEnabledDate(date, datesEnabled) {
1271
+ if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {
1272
+ return false;
1273
+ }
1274
+ return !datesEnabled.some((/**
1275
+ * @param {?} enabledDate
1276
+ * @return {?}
1277
+ */
1278
+ (enabledDate) => isSame(date, enabledDate, 'date')));
1279
+ }
910
1280
  /**
911
1281
  * @param {?} state
912
1282
  * @param {?=} calendarIndex
@@ -922,6 +1292,20 @@ function getYearsCalendarInitialDate(state, calendarIndex = 0) {
922
1292
  * @fileoverview added by tsickle
923
1293
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
924
1294
  */
1295
+ /**
1296
+ * @record
1297
+ */
1298
+ function MatrixOptions() { }
1299
+ if (false) {
1300
+ /** @type {?} */
1301
+ MatrixOptions.prototype.height;
1302
+ /** @type {?} */
1303
+ MatrixOptions.prototype.width;
1304
+ /** @type {?} */
1305
+ MatrixOptions.prototype.initialDate;
1306
+ /** @type {?} */
1307
+ MatrixOptions.prototype.shift;
1308
+ }
925
1309
  /**
926
1310
  * @template T
927
1311
  * @param {?} options
@@ -1045,6 +1429,36 @@ function getShiftedWeekdays(locale) {
1045
1429
  * @fileoverview added by tsickle
1046
1430
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1047
1431
  */
1432
+ /**
1433
+ * @record
1434
+ */
1435
+ function FlagDaysCalendarOptions() { }
1436
+ if (false) {
1437
+ /** @type {?} */
1438
+ FlagDaysCalendarOptions.prototype.isDisabled;
1439
+ /** @type {?} */
1440
+ FlagDaysCalendarOptions.prototype.minDate;
1441
+ /** @type {?} */
1442
+ FlagDaysCalendarOptions.prototype.maxDate;
1443
+ /** @type {?} */
1444
+ FlagDaysCalendarOptions.prototype.daysDisabled;
1445
+ /** @type {?} */
1446
+ FlagDaysCalendarOptions.prototype.datesDisabled;
1447
+ /** @type {?} */
1448
+ FlagDaysCalendarOptions.prototype.datesEnabled;
1449
+ /** @type {?} */
1450
+ FlagDaysCalendarOptions.prototype.hoveredDate;
1451
+ /** @type {?} */
1452
+ FlagDaysCalendarOptions.prototype.selectedDate;
1453
+ /** @type {?} */
1454
+ FlagDaysCalendarOptions.prototype.selectedRange;
1455
+ /** @type {?} */
1456
+ FlagDaysCalendarOptions.prototype.displayMonths;
1457
+ /** @type {?} */
1458
+ FlagDaysCalendarOptions.prototype.monthIndex;
1459
+ /** @type {?} */
1460
+ FlagDaysCalendarOptions.prototype.dateCustomClasses;
1461
+ }
1048
1462
  /**
1049
1463
  * @param {?} formattedMonth
1050
1464
  * @param {?} options
@@ -1090,7 +1504,8 @@ function flagDaysCalendar(formattedMonth, options) {
1090
1504
  isBefore(day.date, options.minDate, 'day') ||
1091
1505
  isAfter(day.date, options.maxDate, 'day') ||
1092
1506
  isDisabledDay(day.date, options.daysDisabled) ||
1093
- isDisabledDate(day.date, options.datesDisabled);
1507
+ isDisabledDate(day.date, options.datesDisabled) ||
1508
+ isEnabledDate(day.date, options.datesEnabled);
1094
1509
  /** @type {?} */
1095
1510
  const currentDate = new Date();
1096
1511
  /** @type {?} */
@@ -1219,6 +1634,26 @@ function formatMonthsCalendar(viewDate, formatOptions) {
1219
1634
  * @fileoverview added by tsickle
1220
1635
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1221
1636
  */
1637
+ /**
1638
+ * @record
1639
+ */
1640
+ function FlagMonthCalendarOptions() { }
1641
+ if (false) {
1642
+ /** @type {?} */
1643
+ FlagMonthCalendarOptions.prototype.isDisabled;
1644
+ /** @type {?} */
1645
+ FlagMonthCalendarOptions.prototype.minDate;
1646
+ /** @type {?} */
1647
+ FlagMonthCalendarOptions.prototype.maxDate;
1648
+ /** @type {?} */
1649
+ FlagMonthCalendarOptions.prototype.hoveredMonth;
1650
+ /** @type {?} */
1651
+ FlagMonthCalendarOptions.prototype.selectedDate;
1652
+ /** @type {?} */
1653
+ FlagMonthCalendarOptions.prototype.displayMonths;
1654
+ /** @type {?} */
1655
+ FlagMonthCalendarOptions.prototype.monthIndex;
1656
+ }
1222
1657
  /**
1223
1658
  * @param {?} monthCalendar
1224
1659
  * @param {?} options
@@ -1340,6 +1775,26 @@ function formatYearRangeTitle(yearsMatrix, formatOptions) {
1340
1775
  * @fileoverview added by tsickle
1341
1776
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1342
1777
  */
1778
+ /**
1779
+ * @record
1780
+ */
1781
+ function FlagYearsCalendarOptions() { }
1782
+ if (false) {
1783
+ /** @type {?} */
1784
+ FlagYearsCalendarOptions.prototype.isDisabled;
1785
+ /** @type {?} */
1786
+ FlagYearsCalendarOptions.prototype.minDate;
1787
+ /** @type {?} */
1788
+ FlagYearsCalendarOptions.prototype.maxDate;
1789
+ /** @type {?} */
1790
+ FlagYearsCalendarOptions.prototype.hoveredYear;
1791
+ /** @type {?} */
1792
+ FlagYearsCalendarOptions.prototype.selectedDate;
1793
+ /** @type {?} */
1794
+ FlagYearsCalendarOptions.prototype.displayMonths;
1795
+ /** @type {?} */
1796
+ FlagYearsCalendarOptions.prototype.yearIndex;
1797
+ }
1343
1798
  /**
1344
1799
  * @param {?} yearsCalendar
1345
1800
  * @param {?} options
@@ -1405,10 +1860,10 @@ function bsDatepickerReducer(state = initialDatepickerState, action) {
1405
1860
  return calculateReducer(state);
1406
1861
  }
1407
1862
  case BsDatepickerActions.FORMAT: {
1408
- return formatReducer(state);
1863
+ return formatReducer(state, action);
1409
1864
  }
1410
1865
  case BsDatepickerActions.FLAG: {
1411
- return flagReducer(state);
1866
+ return flagReducer(state, action);
1412
1867
  }
1413
1868
  case BsDatepickerActions.NAVIGATE_OFFSET: {
1414
1869
  return navigateOffsetReducer(state, action);
@@ -1537,7 +1992,8 @@ function bsDatepickerReducer(state = initialDatepickerState, action) {
1537
1992
  function calculateReducer(state) {
1538
1993
  // how many calendars
1539
1994
  /** @type {?} */
1540
- const displayMonths = state.displayMonths;
1995
+ const displayMonths = (state.displayOneMonthRange &&
1996
+ isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;
1541
1997
  // use selected date on initial rendering if set
1542
1998
  /** @type {?} */
1543
1999
  let viewDate = state.view.date;
@@ -1628,6 +2084,8 @@ function formatReducer(state, action) {
1628
2084
  * @return {?}
1629
2085
  */
1630
2086
  function flagReducer(state, action) {
2087
+ /** @type {?} */
2088
+ const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
1631
2089
  if (state.view.mode === 'day') {
1632
2090
  /** @type {?} */
1633
2091
  const flaggedMonths = state.formattedMonths.map((/**
@@ -1641,10 +2099,11 @@ function flagReducer(state, action) {
1641
2099
  maxDate: state.maxDate,
1642
2100
  daysDisabled: state.daysDisabled,
1643
2101
  datesDisabled: state.datesDisabled,
2102
+ datesEnabled: state.datesEnabled,
1644
2103
  hoveredDate: state.hoveredDate,
1645
2104
  selectedDate: state.selectedDate,
1646
2105
  selectedRange: state.selectedRange,
1647
- displayMonths: state.displayMonths,
2106
+ displayMonths,
1648
2107
  dateCustomClasses: state.dateCustomClasses,
1649
2108
  monthIndex
1650
2109
  })));
@@ -1663,7 +2122,7 @@ function flagReducer(state, action) {
1663
2122
  maxDate: state.maxDate,
1664
2123
  hoveredMonth: state.hoveredMonth,
1665
2124
  selectedDate: state.selectedDate,
1666
- displayMonths: state.displayMonths,
2125
+ displayMonths,
1667
2126
  monthIndex
1668
2127
  })));
1669
2128
  return Object.assign({}, state, { flaggedMonthsCalendar });
@@ -1681,7 +2140,7 @@ function flagReducer(state, action) {
1681
2140
  maxDate: state.maxDate,
1682
2141
  hoveredYear: state.hoveredYear,
1683
2142
  selectedDate: state.selectedDate,
1684
- displayMonths: state.displayMonths,
2143
+ displayMonths,
1685
2144
  yearIndex
1686
2145
  })));
1687
2146
  return Object.assign({}, state, { yearsCalendarFlagged });
@@ -1754,6 +2213,21 @@ function getViewDate(viewDate, minDate, maxDate) {
1754
2213
  }
1755
2214
  return _date;
1756
2215
  }
2216
+ /**
2217
+ * @param {?} viewDate
2218
+ * @param {?} minDate
2219
+ * @param {?} maxDate
2220
+ * @return {?}
2221
+ */
2222
+ function isDisplayOneMonth(viewDate, minDate, maxDate) {
2223
+ if (maxDate && isSame(maxDate, viewDate, 'day')) {
2224
+ return true;
2225
+ }
2226
+ if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {
2227
+ return true;
2228
+ }
2229
+ return false;
2230
+ }
1757
2231
 
1758
2232
  /**
1759
2233
  * @fileoverview added by tsickle
@@ -1897,6 +2371,9 @@ class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent {
1897
2371
  * @return {?}
1898
2372
  */
1899
2373
  daySelectHandler(day) {
2374
+ if (!day) {
2375
+ return;
2376
+ }
1900
2377
  /** @type {?} */
1901
2378
  const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
1902
2379
  if (isDisabled) {
@@ -1918,7 +2395,7 @@ BsDatepickerContainerComponent.decorators = [
1918
2395
  { type: Component, args: [{
1919
2396
  selector: 'bs-datepicker-container',
1920
2397
  providers: [BsDatepickerStore, BsDatepickerEffects],
1921
- 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=\"false\">\n <bs-custom-date-view [ranges]=\"_customRangesFish\"></bs-custom-date-view>\n </div>\n</div>\n",
2398
+ 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",
1922
2399
  host: {
1923
2400
  class: 'bottom',
1924
2401
  '(click)': '_stopPropagation($event)',
@@ -1938,6 +2415,39 @@ BsDatepickerContainerComponent.ctorParameters = () => [
1938
2415
  { type: BsDatepickerEffects },
1939
2416
  { type: PositioningService }
1940
2417
  ];
2418
+ if (false) {
2419
+ /** @type {?} */
2420
+ BsDatepickerContainerComponent.prototype.valueChange;
2421
+ /** @type {?} */
2422
+ BsDatepickerContainerComponent.prototype.animationState;
2423
+ /** @type {?} */
2424
+ BsDatepickerContainerComponent.prototype._subs;
2425
+ /**
2426
+ * @type {?}
2427
+ * @private
2428
+ */
2429
+ BsDatepickerContainerComponent.prototype._config;
2430
+ /**
2431
+ * @type {?}
2432
+ * @private
2433
+ */
2434
+ BsDatepickerContainerComponent.prototype._store;
2435
+ /**
2436
+ * @type {?}
2437
+ * @private
2438
+ */
2439
+ BsDatepickerContainerComponent.prototype._element;
2440
+ /**
2441
+ * @type {?}
2442
+ * @private
2443
+ */
2444
+ BsDatepickerContainerComponent.prototype._actions;
2445
+ /**
2446
+ * @type {?}
2447
+ * @private
2448
+ */
2449
+ BsDatepickerContainerComponent.prototype._positionService;
2450
+ }
1941
2451
 
1942
2452
  /**
1943
2453
  * @fileoverview added by tsickle
@@ -1953,6 +2463,8 @@ class BsDatepickerDirective {
1953
2463
  */
1954
2464
  constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
1955
2465
  this._config = _config;
2466
+ this._elementRef = _elementRef;
2467
+ this._renderer = _renderer;
1956
2468
  /**
1957
2469
  * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
1958
2470
  */
@@ -1981,6 +2493,7 @@ class BsDatepickerDirective {
1981
2493
  this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
1982
2494
  this.onShown = this._datepicker.onShown;
1983
2495
  this.onHidden = this._datepicker.onHidden;
2496
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
1984
2497
  }
1985
2498
  /**
1986
2499
  * Returns whether or not the datepicker is currently being shown
@@ -1994,12 +2507,7 @@ class BsDatepickerDirective {
1994
2507
  * @return {?}
1995
2508
  */
1996
2509
  set isOpen(value) {
1997
- if (value) {
1998
- this.show();
1999
- }
2000
- else {
2001
- this.hide();
2002
- }
2510
+ this.isOpen$.next(value);
2003
2511
  }
2004
2512
  /**
2005
2513
  * Initial value of datepicker
@@ -2007,7 +2515,7 @@ class BsDatepickerDirective {
2007
2515
  * @return {?}
2008
2516
  */
2009
2517
  set bsValue(value) {
2010
- if (this._bsValue === value) {
2518
+ if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {
2011
2519
  return;
2012
2520
  }
2013
2521
  this._bsValue = value;
@@ -2017,6 +2525,7 @@ class BsDatepickerDirective {
2017
2525
  * @return {?}
2018
2526
  */
2019
2527
  ngOnInit() {
2528
+ this.isDestroy$ = new Subject();
2020
2529
  this._datepicker.listen({
2021
2530
  outsideClick: this.outsideClick,
2022
2531
  outsideEsc: this.outsideEsc,
@@ -2048,6 +2557,9 @@ class BsDatepickerDirective {
2048
2557
  if (changes.datesDisabled) {
2049
2558
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
2050
2559
  }
2560
+ if (changes.datesEnabled) {
2561
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2562
+ }
2051
2563
  if (changes.isDisabled) {
2052
2564
  this._datepickerRef.instance.isDisabled = this.isDisabled;
2053
2565
  }
@@ -2055,6 +2567,20 @@ class BsDatepickerDirective {
2055
2567
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
2056
2568
  }
2057
2569
  }
2570
+ /**
2571
+ * @return {?}
2572
+ */
2573
+ ngAfterViewInit() {
2574
+ this.isOpen$.pipe(filter((/**
2575
+ * @param {?} isOpen
2576
+ * @return {?}
2577
+ */
2578
+ isOpen => isOpen !== this.isOpen)), takeUntil(this.isDestroy$))
2579
+ .subscribe((/**
2580
+ * @return {?}
2581
+ */
2582
+ () => this.toggle()));
2583
+ }
2058
2584
  /**
2059
2585
  * Opens an element’s datepicker. This is considered a “manual” triggering of
2060
2586
  * the datepicker.
@@ -2101,6 +2627,9 @@ class BsDatepickerDirective {
2101
2627
  for (const sub of this._subs) {
2102
2628
  sub.unsubscribe();
2103
2629
  }
2630
+ if (this._config.returnFocusToInput) {
2631
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
2632
+ }
2104
2633
  }
2105
2634
  /**
2106
2635
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -2126,6 +2655,7 @@ class BsDatepickerDirective {
2126
2655
  daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
2127
2656
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2128
2657
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
2658
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
2129
2659
  minMode: this.minMode || this.bsConfig && this.bsConfig.minMode
2130
2660
  });
2131
2661
  }
@@ -2134,6 +2664,11 @@ class BsDatepickerDirective {
2134
2664
  */
2135
2665
  ngOnDestroy() {
2136
2666
  this._datepicker.dispose();
2667
+ this.isOpen$.next(false);
2668
+ if (this.isDestroy$) {
2669
+ this.isDestroy$.next();
2670
+ this.isDestroy$.complete();
2671
+ }
2137
2672
  }
2138
2673
  }
2139
2674
  BsDatepickerDirective.decorators = [
@@ -2167,9 +2702,128 @@ BsDatepickerDirective.propDecorators = {
2167
2702
  minMode: [{ type: Input }],
2168
2703
  daysDisabled: [{ type: Input }],
2169
2704
  datesDisabled: [{ type: Input }],
2705
+ datesEnabled: [{ type: Input }],
2170
2706
  dateCustomClasses: [{ type: Input }],
2171
2707
  bsValueChange: [{ type: Output }]
2172
2708
  };
2709
+ if (false) {
2710
+ /**
2711
+ * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
2712
+ * @type {?}
2713
+ */
2714
+ BsDatepickerDirective.prototype.placement;
2715
+ /**
2716
+ * Specifies events that should trigger. Supports a space separated list of
2717
+ * event names.
2718
+ * @type {?}
2719
+ */
2720
+ BsDatepickerDirective.prototype.triggers;
2721
+ /**
2722
+ * Close datepicker on outside click
2723
+ * @type {?}
2724
+ */
2725
+ BsDatepickerDirective.prototype.outsideClick;
2726
+ /**
2727
+ * A selector specifying the element the datepicker should be appended to.
2728
+ * @type {?}
2729
+ */
2730
+ BsDatepickerDirective.prototype.container;
2731
+ /** @type {?} */
2732
+ BsDatepickerDirective.prototype.outsideEsc;
2733
+ /**
2734
+ * Emits an event when the datepicker is shown
2735
+ * @type {?}
2736
+ */
2737
+ BsDatepickerDirective.prototype.onShown;
2738
+ /**
2739
+ * Emits an event when the datepicker is hidden
2740
+ * @type {?}
2741
+ */
2742
+ BsDatepickerDirective.prototype.onHidden;
2743
+ /** @type {?} */
2744
+ BsDatepickerDirective.prototype._bsValue;
2745
+ /** @type {?} */
2746
+ BsDatepickerDirective.prototype.isOpen$;
2747
+ /** @type {?} */
2748
+ BsDatepickerDirective.prototype.isDestroy$;
2749
+ /**
2750
+ * Config object for datepicker
2751
+ * @type {?}
2752
+ */
2753
+ BsDatepickerDirective.prototype.bsConfig;
2754
+ /**
2755
+ * Indicates whether datepicker's content is enabled or not
2756
+ * @type {?}
2757
+ */
2758
+ BsDatepickerDirective.prototype.isDisabled;
2759
+ /**
2760
+ * Minimum date which is available for selection
2761
+ * @type {?}
2762
+ */
2763
+ BsDatepickerDirective.prototype.minDate;
2764
+ /**
2765
+ * Maximum date which is available for selection
2766
+ * @type {?}
2767
+ */
2768
+ BsDatepickerDirective.prototype.maxDate;
2769
+ /**
2770
+ * Minimum view mode : day, month, or year
2771
+ * @type {?}
2772
+ */
2773
+ BsDatepickerDirective.prototype.minMode;
2774
+ /**
2775
+ * Disable Certain days in the week
2776
+ * @type {?}
2777
+ */
2778
+ BsDatepickerDirective.prototype.daysDisabled;
2779
+ /**
2780
+ * Disable specific dates
2781
+ * @type {?}
2782
+ */
2783
+ BsDatepickerDirective.prototype.datesDisabled;
2784
+ /**
2785
+ * Enable specific dates
2786
+ * @type {?}
2787
+ */
2788
+ BsDatepickerDirective.prototype.datesEnabled;
2789
+ /**
2790
+ * Date custom classes
2791
+ * @type {?}
2792
+ */
2793
+ BsDatepickerDirective.prototype.dateCustomClasses;
2794
+ /**
2795
+ * Emits when datepicker value has been changed
2796
+ * @type {?}
2797
+ */
2798
+ BsDatepickerDirective.prototype.bsValueChange;
2799
+ /**
2800
+ * @type {?}
2801
+ * @protected
2802
+ */
2803
+ BsDatepickerDirective.prototype._subs;
2804
+ /**
2805
+ * @type {?}
2806
+ * @private
2807
+ */
2808
+ BsDatepickerDirective.prototype._datepicker;
2809
+ /**
2810
+ * @type {?}
2811
+ * @private
2812
+ */
2813
+ BsDatepickerDirective.prototype._datepickerRef;
2814
+ /** @type {?} */
2815
+ BsDatepickerDirective.prototype._config;
2816
+ /**
2817
+ * @type {?}
2818
+ * @private
2819
+ */
2820
+ BsDatepickerDirective.prototype._elementRef;
2821
+ /**
2822
+ * @type {?}
2823
+ * @private
2824
+ */
2825
+ BsDatepickerDirective.prototype._renderer;
2826
+ }
2173
2827
 
2174
2828
  /**
2175
2829
  * @fileoverview added by tsickle
@@ -2205,7 +2859,7 @@ BsDatepickerInlineContainerComponent.decorators = [
2205
2859
  { type: Component, args: [{
2206
2860
  selector: 'bs-datepicker-inline-container',
2207
2861
  providers: [BsDatepickerStore, BsDatepickerEffects],
2208
- 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=\"false\">\n <bs-custom-date-view [ranges]=\"_customRangesFish\"></bs-custom-date-view>\n </div>\n</div>\n",
2862
+ 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",
2209
2863
  host: {
2210
2864
  '(click)': '_stopPropagation($event)'
2211
2865
  },
@@ -2264,11 +2918,6 @@ class BsDatepickerInlineDirective {
2264
2918
  */
2265
2919
  ngOnInit() {
2266
2920
  this.setConfig();
2267
- this._datepickerRef = this._datepicker
2268
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
2269
- .attach(BsDatepickerInlineContainerComponent)
2270
- .to(this._elementRef)
2271
- .show();
2272
2921
  // if date changes from external source (model -> view)
2273
2922
  this._subs.push(this.bsValueChange.subscribe((/**
2274
2923
  * @param {?} value
@@ -2296,21 +2945,27 @@ class BsDatepickerInlineDirective {
2296
2945
  }
2297
2946
  if (changes.minDate) {
2298
2947
  this._datepickerRef.instance.minDate = this.minDate;
2299
- this._datepickerRef.instance.value = this._bsValue;
2948
+ this.setConfig();
2300
2949
  }
2301
2950
  if (changes.maxDate) {
2302
2951
  this._datepickerRef.instance.maxDate = this.maxDate;
2303
- this._datepickerRef.instance.value = this._bsValue;
2952
+ this.setConfig();
2304
2953
  }
2305
2954
  if (changes.datesDisabled) {
2306
2955
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
2956
+ this.setConfig();
2957
+ }
2958
+ if (changes.datesEnabled) {
2959
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2307
2960
  this._datepickerRef.instance.value = this._bsValue;
2308
2961
  }
2309
2962
  if (changes.isDisabled) {
2310
2963
  this._datepickerRef.instance.isDisabled = this.isDisabled;
2964
+ this.setConfig();
2311
2965
  }
2312
2966
  if (changes.dateCustomClasses) {
2313
2967
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
2968
+ this.setConfig();
2314
2969
  }
2315
2970
  }
2316
2971
  /**
@@ -2318,14 +2973,23 @@ class BsDatepickerInlineDirective {
2318
2973
  * @return {?}
2319
2974
  */
2320
2975
  setConfig() {
2976
+ if (this._datepicker) {
2977
+ this._datepicker.hide();
2978
+ }
2321
2979
  this._config = Object.assign({}, this._config, this.bsConfig, {
2322
2980
  value: this._bsValue,
2323
2981
  isDisabled: this.isDisabled,
2324
2982
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
2325
2983
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
2326
2984
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2327
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
2985
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
2986
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled
2328
2987
  });
2988
+ this._datepickerRef = this._datepicker
2989
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
2990
+ .attach(BsDatepickerInlineContainerComponent)
2991
+ .to(this._elementRef)
2992
+ .show();
2329
2993
  }
2330
2994
  /**
2331
2995
  * @return {?}
@@ -2355,9 +3019,76 @@ BsDatepickerInlineDirective.propDecorators = {
2355
3019
  minDate: [{ type: Input }],
2356
3020
  maxDate: [{ type: Input }],
2357
3021
  dateCustomClasses: [{ type: Input }],
3022
+ datesEnabled: [{ type: Input }],
2358
3023
  datesDisabled: [{ type: Input }],
2359
3024
  bsValueChange: [{ type: Output }]
2360
3025
  };
3026
+ if (false) {
3027
+ /** @type {?} */
3028
+ BsDatepickerInlineDirective.prototype._bsValue;
3029
+ /**
3030
+ * Config object for datepicker
3031
+ * @type {?}
3032
+ */
3033
+ BsDatepickerInlineDirective.prototype.bsConfig;
3034
+ /**
3035
+ * Indicates whether datepicker is enabled or not
3036
+ * @type {?}
3037
+ */
3038
+ BsDatepickerInlineDirective.prototype.isDisabled;
3039
+ /**
3040
+ * Minimum date which is available for selection
3041
+ * @type {?}
3042
+ */
3043
+ BsDatepickerInlineDirective.prototype.minDate;
3044
+ /**
3045
+ * Maximum date which is available for selection
3046
+ * @type {?}
3047
+ */
3048
+ BsDatepickerInlineDirective.prototype.maxDate;
3049
+ /**
3050
+ * Date custom classes
3051
+ * @type {?}
3052
+ */
3053
+ BsDatepickerInlineDirective.prototype.dateCustomClasses;
3054
+ /**
3055
+ * Disable specific dates
3056
+ * @type {?}
3057
+ */
3058
+ BsDatepickerInlineDirective.prototype.datesEnabled;
3059
+ /**
3060
+ * Enable specific dates
3061
+ * @type {?}
3062
+ */
3063
+ BsDatepickerInlineDirective.prototype.datesDisabled;
3064
+ /**
3065
+ * Emits when datepicker value has been changed
3066
+ * @type {?}
3067
+ */
3068
+ BsDatepickerInlineDirective.prototype.bsValueChange;
3069
+ /**
3070
+ * @type {?}
3071
+ * @protected
3072
+ */
3073
+ BsDatepickerInlineDirective.prototype._subs;
3074
+ /**
3075
+ * @type {?}
3076
+ * @private
3077
+ */
3078
+ BsDatepickerInlineDirective.prototype._datepicker;
3079
+ /**
3080
+ * @type {?}
3081
+ * @private
3082
+ */
3083
+ BsDatepickerInlineDirective.prototype._datepickerRef;
3084
+ /** @type {?} */
3085
+ BsDatepickerInlineDirective.prototype._config;
3086
+ /**
3087
+ * @type {?}
3088
+ * @private
3089
+ */
3090
+ BsDatepickerInlineDirective.prototype._elementRef;
3091
+ }
2361
3092
 
2362
3093
  /**
2363
3094
  * @fileoverview added by tsickle
@@ -2377,6 +3108,15 @@ class BsDaterangepickerInlineConfig extends BsDatepickerConfig {
2377
3108
  BsDaterangepickerInlineConfig.decorators = [
2378
3109
  { type: Injectable }
2379
3110
  ];
3111
+ if (false) {
3112
+ /** @type {?} */
3113
+ BsDaterangepickerInlineConfig.prototype.displayMonths;
3114
+ /**
3115
+ * turn on/off animation
3116
+ * @type {?}
3117
+ */
3118
+ BsDaterangepickerInlineConfig.prototype.isAnimated;
3119
+ }
2380
3120
 
2381
3121
  /**
2382
3122
  * @fileoverview added by tsickle
@@ -2402,8 +3142,10 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
2402
3142
  this.valueChange = new EventEmitter();
2403
3143
  this.animationState = 'void';
2404
3144
  this._rangeStack = [];
3145
+ this.chosenRange = [];
2405
3146
  this._subs = [];
2406
3147
  this._effects = _effects;
3148
+ this.customRanges = this._config.ranges;
2407
3149
  _renderer.setStyle(_element.nativeElement, 'display', 'block');
2408
3150
  _renderer.setStyle(_element.nativeElement, 'position', 'absolute');
2409
3151
  }
@@ -2459,7 +3201,10 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
2459
3201
  * @param {?} date
2460
3202
  * @return {?}
2461
3203
  */
2462
- date => this.valueChange.emit(date))));
3204
+ date => {
3205
+ this.valueChange.emit(date);
3206
+ this.chosenRange = date;
3207
+ })));
2463
3208
  }
2464
3209
  /**
2465
3210
  * @return {?}
@@ -2478,6 +3223,9 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
2478
3223
  * @return {?}
2479
3224
  */
2480
3225
  daySelectHandler(day) {
3226
+ if (!day) {
3227
+ return;
3228
+ }
2481
3229
  /** @type {?} */
2482
3230
  const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2483
3231
  if (isDisabled) {
@@ -2511,12 +3259,20 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
2511
3259
  }
2512
3260
  this._effects.destroy();
2513
3261
  }
3262
+ /**
3263
+ * @param {?} dates
3264
+ * @return {?}
3265
+ */
3266
+ setRangeOnCalendar(dates) {
3267
+ this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
3268
+ this._store.dispatch(this._actions.selectRange(this._rangeStack));
3269
+ }
2514
3270
  }
2515
3271
  BsDaterangepickerContainerComponent.decorators = [
2516
3272
  { type: Component, args: [{
2517
3273
  selector: 'bs-daterangepicker-container',
2518
3274
  providers: [BsDatepickerStore, BsDatepickerEffects],
2519
- 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=\"false\">\n <bs-custom-date-view [ranges]=\"_customRangesFish\"></bs-custom-date-view>\n </div>\n</div>\n",
3275
+ 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",
2520
3276
  host: {
2521
3277
  class: 'bottom',
2522
3278
  '(click)': '_stopPropagation($event)',
@@ -2536,6 +3292,43 @@ BsDaterangepickerContainerComponent.ctorParameters = () => [
2536
3292
  { type: BsDatepickerEffects },
2537
3293
  { type: PositioningService }
2538
3294
  ];
3295
+ if (false) {
3296
+ /** @type {?} */
3297
+ BsDaterangepickerContainerComponent.prototype.valueChange;
3298
+ /** @type {?} */
3299
+ BsDaterangepickerContainerComponent.prototype.animationState;
3300
+ /** @type {?} */
3301
+ BsDaterangepickerContainerComponent.prototype._rangeStack;
3302
+ /** @type {?} */
3303
+ BsDaterangepickerContainerComponent.prototype.chosenRange;
3304
+ /** @type {?} */
3305
+ BsDaterangepickerContainerComponent.prototype._subs;
3306
+ /**
3307
+ * @type {?}
3308
+ * @private
3309
+ */
3310
+ BsDaterangepickerContainerComponent.prototype._config;
3311
+ /**
3312
+ * @type {?}
3313
+ * @private
3314
+ */
3315
+ BsDaterangepickerContainerComponent.prototype._store;
3316
+ /**
3317
+ * @type {?}
3318
+ * @private
3319
+ */
3320
+ BsDaterangepickerContainerComponent.prototype._element;
3321
+ /**
3322
+ * @type {?}
3323
+ * @private
3324
+ */
3325
+ BsDaterangepickerContainerComponent.prototype._actions;
3326
+ /**
3327
+ * @type {?}
3328
+ * @private
3329
+ */
3330
+ BsDaterangepickerContainerComponent.prototype._positionService;
3331
+ }
2539
3332
 
2540
3333
  /**
2541
3334
  * @fileoverview added by tsickle
@@ -2561,7 +3354,7 @@ BsDaterangepickerInlineContainerComponent.decorators = [
2561
3354
  { type: Component, args: [{
2562
3355
  selector: 'bs-daterangepicker-inline-container',
2563
3356
  providers: [BsDatepickerStore, BsDatepickerEffects],
2564
- 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=\"false\">\n <bs-custom-date-view [ranges]=\"_customRangesFish\"></bs-custom-date-view>\n </div>\n</div>\n",
3357
+ 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",
2565
3358
  host: {
2566
3359
  '(click)': '_stopPropagation($event)'
2567
3360
  },
@@ -2620,11 +3413,6 @@ class BsDaterangepickerInlineDirective {
2620
3413
  */
2621
3414
  ngOnInit() {
2622
3415
  this.setConfig();
2623
- this._datepickerRef = this._datepicker
2624
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
2625
- .attach(BsDaterangepickerInlineContainerComponent)
2626
- .to(this._elementRef)
2627
- .show();
2628
3416
  // if date changes from external source (model -> view)
2629
3417
  this._subs.push(this.bsValueChange.subscribe((/**
2630
3418
  * @param {?} value
@@ -2658,18 +3446,30 @@ class BsDaterangepickerInlineDirective {
2658
3446
  }
2659
3447
  if (changes.minDate) {
2660
3448
  this._datepickerRef.instance.minDate = this.minDate;
3449
+ this.setConfig();
2661
3450
  }
2662
3451
  if (changes.maxDate) {
2663
3452
  this._datepickerRef.instance.maxDate = this.maxDate;
3453
+ this.setConfig();
3454
+ }
3455
+ if (changes.datesEnabled) {
3456
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2664
3457
  }
2665
3458
  if (changes.datesDisabled) {
2666
3459
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3460
+ this.setConfig();
3461
+ }
3462
+ if (changes.daysDisabled) {
3463
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
3464
+ this.setConfig();
2667
3465
  }
2668
3466
  if (changes.isDisabled) {
2669
3467
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3468
+ this.setConfig();
2670
3469
  }
2671
3470
  if (changes.dateCustomClasses) {
2672
3471
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3472
+ this.setConfig();
2673
3473
  }
2674
3474
  }
2675
3475
  /**
@@ -2677,14 +3477,25 @@ class BsDaterangepickerInlineDirective {
2677
3477
  * @return {?}
2678
3478
  */
2679
3479
  setConfig() {
3480
+ if (this._datepicker) {
3481
+ this._datepicker.hide();
3482
+ }
2680
3483
  this._config = Object.assign({}, this._config, this.bsConfig, {
2681
3484
  value: this._bsValue,
2682
3485
  isDisabled: this.isDisabled,
2683
3486
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
2684
3487
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
3488
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
2685
3489
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2686
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
3490
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3491
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
3492
+ ranges: this.bsConfig && this.bsConfig.ranges
2687
3493
  });
3494
+ this._datepickerRef = this._datepicker
3495
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
3496
+ .attach(BsDaterangepickerInlineContainerComponent)
3497
+ .to(this._elementRef)
3498
+ .show();
2688
3499
  }
2689
3500
  /**
2690
3501
  * @return {?}
@@ -2714,9 +3525,82 @@ BsDaterangepickerInlineDirective.propDecorators = {
2714
3525
  minDate: [{ type: Input }],
2715
3526
  maxDate: [{ type: Input }],
2716
3527
  dateCustomClasses: [{ type: Input }],
3528
+ daysDisabled: [{ type: Input }],
2717
3529
  datesDisabled: [{ type: Input }],
3530
+ datesEnabled: [{ type: Input }],
2718
3531
  bsValueChange: [{ type: Output }]
2719
3532
  };
3533
+ if (false) {
3534
+ /** @type {?} */
3535
+ BsDaterangepickerInlineDirective.prototype._bsValue;
3536
+ /**
3537
+ * Config object for datepicker
3538
+ * @type {?}
3539
+ */
3540
+ BsDaterangepickerInlineDirective.prototype.bsConfig;
3541
+ /**
3542
+ * Indicates whether datepicker is enabled or not
3543
+ * @type {?}
3544
+ */
3545
+ BsDaterangepickerInlineDirective.prototype.isDisabled;
3546
+ /**
3547
+ * Minimum date which is available for selection
3548
+ * @type {?}
3549
+ */
3550
+ BsDaterangepickerInlineDirective.prototype.minDate;
3551
+ /**
3552
+ * Maximum date which is available for selection
3553
+ * @type {?}
3554
+ */
3555
+ BsDaterangepickerInlineDirective.prototype.maxDate;
3556
+ /**
3557
+ * Date custom classes
3558
+ * @type {?}
3559
+ */
3560
+ BsDaterangepickerInlineDirective.prototype.dateCustomClasses;
3561
+ /**
3562
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
3563
+ * @type {?}
3564
+ */
3565
+ BsDaterangepickerInlineDirective.prototype.daysDisabled;
3566
+ /**
3567
+ * Disable specific dates
3568
+ * @type {?}
3569
+ */
3570
+ BsDaterangepickerInlineDirective.prototype.datesDisabled;
3571
+ /**
3572
+ * Disable specific dates
3573
+ * @type {?}
3574
+ */
3575
+ BsDaterangepickerInlineDirective.prototype.datesEnabled;
3576
+ /**
3577
+ * Emits when daterangepicker value has been changed
3578
+ * @type {?}
3579
+ */
3580
+ BsDaterangepickerInlineDirective.prototype.bsValueChange;
3581
+ /**
3582
+ * @type {?}
3583
+ * @protected
3584
+ */
3585
+ BsDaterangepickerInlineDirective.prototype._subs;
3586
+ /**
3587
+ * @type {?}
3588
+ * @private
3589
+ */
3590
+ BsDaterangepickerInlineDirective.prototype._datepicker;
3591
+ /**
3592
+ * @type {?}
3593
+ * @private
3594
+ */
3595
+ BsDaterangepickerInlineDirective.prototype._datepickerRef;
3596
+ /** @type {?} */
3597
+ BsDaterangepickerInlineDirective.prototype._config;
3598
+ /**
3599
+ * @type {?}
3600
+ * @private
3601
+ */
3602
+ BsDaterangepickerInlineDirective.prototype._elementRef;
3603
+ }
2720
3604
 
2721
3605
  /**
2722
3606
  * @fileoverview added by tsickle
@@ -2782,6 +3666,15 @@ class BsDatepickerInputDirective {
2782
3666
  this._setInputValue(this._value);
2783
3667
  }));
2784
3668
  }
3669
+ /**
3670
+ * @param {?} event
3671
+ * @return {?}
3672
+ */
3673
+ onKeydownEvent(event) {
3674
+ if (event.keyCode === 13 || event.code === 'Enter') {
3675
+ this.hide();
3676
+ }
3677
+ }
2785
3678
  /**
2786
3679
  * @param {?} value
2787
3680
  * @return {?}
@@ -2800,6 +3693,9 @@ class BsDatepickerInputDirective {
2800
3693
  /* tslint:disable-next-line: no-any*/
2801
3694
  this.writeValue(((/** @type {?} */ (event.target))).value);
2802
3695
  this._onChange(this._value);
3696
+ if (this._picker._config.returnFocusToInput) {
3697
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
3698
+ }
2803
3699
  this._onTouched();
2804
3700
  }
2805
3701
  /**
@@ -2820,9 +3716,11 @@ class BsDatepickerInputDirective {
2820
3716
  return { bsDate: { invalid: _value } };
2821
3717
  }
2822
3718
  if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {
3719
+ this.writeValue(this._picker.minDate);
2823
3720
  return { bsDate: { minDate: this._picker.minDate } };
2824
3721
  }
2825
3722
  if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {
3723
+ this.writeValue(this._picker.maxDate);
2826
3724
  return { bsDate: { maxDate: this._picker.maxDate } };
2827
3725
  }
2828
3726
  }
@@ -2895,6 +3793,9 @@ class BsDatepickerInputDirective {
2895
3793
  hide() {
2896
3794
  this._picker.hide();
2897
3795
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
3796
+ if (this._picker._config.returnFocusToInput) {
3797
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
3798
+ }
2898
3799
  }
2899
3800
  }
2900
3801
  BsDatepickerInputDirective.decorators = [
@@ -2903,6 +3804,7 @@ BsDatepickerInputDirective.decorators = [
2903
3804
  host: {
2904
3805
  '(change)': 'onChange($event)',
2905
3806
  '(keyup.esc)': 'hide()',
3807
+ '(keydown)': 'onKeydownEvent($event)',
2906
3808
  '(blur)': 'onBlur()'
2907
3809
  },
2908
3810
  providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]
@@ -2916,6 +3818,53 @@ BsDatepickerInputDirective.ctorParameters = () => [
2916
3818
  { type: ElementRef },
2917
3819
  { type: ChangeDetectorRef }
2918
3820
  ];
3821
+ if (false) {
3822
+ /**
3823
+ * @type {?}
3824
+ * @private
3825
+ */
3826
+ BsDatepickerInputDirective.prototype._onChange;
3827
+ /**
3828
+ * @type {?}
3829
+ * @private
3830
+ */
3831
+ BsDatepickerInputDirective.prototype._onTouched;
3832
+ /**
3833
+ * @type {?}
3834
+ * @private
3835
+ */
3836
+ BsDatepickerInputDirective.prototype._validatorChange;
3837
+ /**
3838
+ * @type {?}
3839
+ * @private
3840
+ */
3841
+ BsDatepickerInputDirective.prototype._value;
3842
+ /**
3843
+ * @type {?}
3844
+ * @private
3845
+ */
3846
+ BsDatepickerInputDirective.prototype._picker;
3847
+ /**
3848
+ * @type {?}
3849
+ * @private
3850
+ */
3851
+ BsDatepickerInputDirective.prototype._localeService;
3852
+ /**
3853
+ * @type {?}
3854
+ * @private
3855
+ */
3856
+ BsDatepickerInputDirective.prototype._renderer;
3857
+ /**
3858
+ * @type {?}
3859
+ * @private
3860
+ */
3861
+ BsDatepickerInputDirective.prototype._elRef;
3862
+ /**
3863
+ * @type {?}
3864
+ * @private
3865
+ */
3866
+ BsDatepickerInputDirective.prototype.changeDetection;
3867
+ }
2919
3868
 
2920
3869
  /**
2921
3870
  * @fileoverview added by tsickle
@@ -2931,6 +3880,10 @@ class BsDaterangepickerConfig extends BsDatepickerConfig {
2931
3880
  BsDaterangepickerConfig.decorators = [
2932
3881
  { type: Injectable }
2933
3882
  ];
3883
+ if (false) {
3884
+ /** @type {?} */
3885
+ BsDaterangepickerConfig.prototype.displayMonths;
3886
+ }
2934
3887
 
2935
3888
  /**
2936
3889
  * @fileoverview added by tsickle
@@ -2946,6 +3899,8 @@ class BsDaterangepickerDirective {
2946
3899
  */
2947
3900
  constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
2948
3901
  this._config = _config;
3902
+ this._elementRef = _elementRef;
3903
+ this._renderer = _renderer;
2949
3904
  /**
2950
3905
  * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
2951
3906
  */
@@ -2973,6 +3928,7 @@ class BsDaterangepickerDirective {
2973
3928
  Object.assign(this, _config);
2974
3929
  this.onShown = this._datepicker.onShown;
2975
3930
  this.onHidden = this._datepicker.onHidden;
3931
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
2976
3932
  }
2977
3933
  /**
2978
3934
  * Returns whether or not the daterangepicker is currently being shown
@@ -2986,12 +3942,7 @@ class BsDaterangepickerDirective {
2986
3942
  * @return {?}
2987
3943
  */
2988
3944
  set isOpen(value) {
2989
- if (value) {
2990
- this.show();
2991
- }
2992
- else {
2993
- this.hide();
2994
- }
3945
+ this.isOpen$.next(value);
2995
3946
  }
2996
3947
  /**
2997
3948
  * Initial value of daterangepicker
@@ -3009,6 +3960,7 @@ class BsDaterangepickerDirective {
3009
3960
  * @return {?}
3010
3961
  */
3011
3962
  ngOnInit() {
3963
+ this.isDestroy$ = new Subject();
3012
3964
  this._datepicker.listen({
3013
3965
  outsideClick: this.outsideClick,
3014
3966
  outsideEsc: this.outsideEsc,
@@ -3037,6 +3989,12 @@ class BsDaterangepickerDirective {
3037
3989
  if (changes.datesDisabled) {
3038
3990
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3039
3991
  }
3992
+ if (changes.datesEnabled) {
3993
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
3994
+ }
3995
+ if (changes.daysDisabled) {
3996
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
3997
+ }
3040
3998
  if (changes.isDisabled) {
3041
3999
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3042
4000
  }
@@ -3044,6 +4002,20 @@ class BsDaterangepickerDirective {
3044
4002
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3045
4003
  }
3046
4004
  }
4005
+ /**
4006
+ * @return {?}
4007
+ */
4008
+ ngAfterViewInit() {
4009
+ this.isOpen$.pipe(filter((/**
4010
+ * @param {?} isOpen
4011
+ * @return {?}
4012
+ */
4013
+ isOpen => isOpen !== this.isOpen)), takeUntil(this.isDestroy$))
4014
+ .subscribe((/**
4015
+ * @return {?}
4016
+ */
4017
+ () => this.toggle()));
4018
+ }
3047
4019
  /**
3048
4020
  * Opens an element’s datepicker. This is considered a “manual” triggering of
3049
4021
  * the datepicker.
@@ -3094,8 +4066,11 @@ class BsDaterangepickerDirective {
3094
4066
  isDisabled: this.isDisabled,
3095
4067
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3096
4068
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
4069
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3097
4070
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3098
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
4071
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4072
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4073
+ ranges: this.bsConfig && this.bsConfig.ranges
3099
4074
  });
3100
4075
  }
3101
4076
  /**
@@ -3110,6 +4085,9 @@ class BsDaterangepickerDirective {
3110
4085
  for (const sub of this._subs) {
3111
4086
  sub.unsubscribe();
3112
4087
  }
4088
+ if (this._config.returnFocusToInput) {
4089
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
4090
+ }
3113
4091
  }
3114
4092
  /**
3115
4093
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -3127,6 +4105,11 @@ class BsDaterangepickerDirective {
3127
4105
  */
3128
4106
  ngOnDestroy() {
3129
4107
  this._datepicker.dispose();
4108
+ this.isOpen$.next(false);
4109
+ if (this.isDestroy$) {
4110
+ this.isDestroy$.next();
4111
+ this.isDestroy$.complete();
4112
+ }
3130
4113
  }
3131
4114
  }
3132
4115
  BsDaterangepickerDirective.decorators = [
@@ -3158,9 +4141,124 @@ BsDaterangepickerDirective.propDecorators = {
3158
4141
  minDate: [{ type: Input }],
3159
4142
  maxDate: [{ type: Input }],
3160
4143
  dateCustomClasses: [{ type: Input }],
4144
+ daysDisabled: [{ type: Input }],
3161
4145
  datesDisabled: [{ type: Input }],
4146
+ datesEnabled: [{ type: Input }],
3162
4147
  bsValueChange: [{ type: Output }]
3163
4148
  };
4149
+ if (false) {
4150
+ /**
4151
+ * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
4152
+ * @type {?}
4153
+ */
4154
+ BsDaterangepickerDirective.prototype.placement;
4155
+ /**
4156
+ * Specifies events that should trigger. Supports a space separated list of
4157
+ * event names.
4158
+ * @type {?}
4159
+ */
4160
+ BsDaterangepickerDirective.prototype.triggers;
4161
+ /**
4162
+ * Close daterangepicker on outside click
4163
+ * @type {?}
4164
+ */
4165
+ BsDaterangepickerDirective.prototype.outsideClick;
4166
+ /**
4167
+ * A selector specifying the element the daterangepicker should be appended to.
4168
+ * @type {?}
4169
+ */
4170
+ BsDaterangepickerDirective.prototype.container;
4171
+ /** @type {?} */
4172
+ BsDaterangepickerDirective.prototype.outsideEsc;
4173
+ /**
4174
+ * Emits an event when the daterangepicker is shown
4175
+ * @type {?}
4176
+ */
4177
+ BsDaterangepickerDirective.prototype.onShown;
4178
+ /**
4179
+ * Emits an event when the daterangepicker is hidden
4180
+ * @type {?}
4181
+ */
4182
+ BsDaterangepickerDirective.prototype.onHidden;
4183
+ /** @type {?} */
4184
+ BsDaterangepickerDirective.prototype._bsValue;
4185
+ /** @type {?} */
4186
+ BsDaterangepickerDirective.prototype.isOpen$;
4187
+ /** @type {?} */
4188
+ BsDaterangepickerDirective.prototype.isDestroy$;
4189
+ /**
4190
+ * Config object for daterangepicker
4191
+ * @type {?}
4192
+ */
4193
+ BsDaterangepickerDirective.prototype.bsConfig;
4194
+ /**
4195
+ * Indicates whether daterangepicker's content is enabled or not
4196
+ * @type {?}
4197
+ */
4198
+ BsDaterangepickerDirective.prototype.isDisabled;
4199
+ /**
4200
+ * Minimum date which is available for selection
4201
+ * @type {?}
4202
+ */
4203
+ BsDaterangepickerDirective.prototype.minDate;
4204
+ /**
4205
+ * Maximum date which is available for selection
4206
+ * @type {?}
4207
+ */
4208
+ BsDaterangepickerDirective.prototype.maxDate;
4209
+ /**
4210
+ * Date custom classes
4211
+ * @type {?}
4212
+ */
4213
+ BsDaterangepickerDirective.prototype.dateCustomClasses;
4214
+ /**
4215
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
4216
+ * @type {?}
4217
+ */
4218
+ BsDaterangepickerDirective.prototype.daysDisabled;
4219
+ /**
4220
+ * Disable specific dates
4221
+ * @type {?}
4222
+ */
4223
+ BsDaterangepickerDirective.prototype.datesDisabled;
4224
+ /**
4225
+ * Enable specific dates
4226
+ * @type {?}
4227
+ */
4228
+ BsDaterangepickerDirective.prototype.datesEnabled;
4229
+ /**
4230
+ * Emits when daterangepicker value has been changed
4231
+ * @type {?}
4232
+ */
4233
+ BsDaterangepickerDirective.prototype.bsValueChange;
4234
+ /**
4235
+ * @type {?}
4236
+ * @protected
4237
+ */
4238
+ BsDaterangepickerDirective.prototype._subs;
4239
+ /**
4240
+ * @type {?}
4241
+ * @private
4242
+ */
4243
+ BsDaterangepickerDirective.prototype._datepicker;
4244
+ /**
4245
+ * @type {?}
4246
+ * @private
4247
+ */
4248
+ BsDaterangepickerDirective.prototype._datepickerRef;
4249
+ /** @type {?} */
4250
+ BsDaterangepickerDirective.prototype._config;
4251
+ /**
4252
+ * @type {?}
4253
+ * @private
4254
+ */
4255
+ BsDaterangepickerDirective.prototype._elementRef;
4256
+ /**
4257
+ * @type {?}
4258
+ * @private
4259
+ */
4260
+ BsDaterangepickerDirective.prototype._renderer;
4261
+ }
3164
4262
 
3165
4263
  /**
3166
4264
  * @fileoverview added by tsickle
@@ -3226,6 +4324,15 @@ class BsDaterangepickerInputDirective {
3226
4324
  this._setInputValue(this._value);
3227
4325
  }));
3228
4326
  }
4327
+ /**
4328
+ * @param {?} event
4329
+ * @return {?}
4330
+ */
4331
+ onKeydownEvent(event) {
4332
+ if (event.keyCode === 13 || event.code === 'Enter') {
4333
+ this.hide();
4334
+ }
4335
+ }
3229
4336
  /**
3230
4337
  * @param {?} date
3231
4338
  * @return {?}
@@ -3252,6 +4359,9 @@ class BsDaterangepickerInputDirective {
3252
4359
  /* tslint:disable-next-line: no-any*/
3253
4360
  this.writeValue(((/** @type {?} */ (event.target))).value);
3254
4361
  this._onChange(this._value);
4362
+ if (this._picker._config.returnFocusToInput) {
4363
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4364
+ }
3255
4365
  this._onTouched();
3256
4366
  }
3257
4367
  /**
@@ -3261,9 +4371,18 @@ class BsDaterangepickerInputDirective {
3261
4371
  validate(c) {
3262
4372
  /** @type {?} */
3263
4373
  const _value = c.value;
4374
+ /** @type {?} */
4375
+ const errors = [];
3264
4376
  if (_value === null || _value === undefined || !isArray(_value)) {
3265
4377
  return null;
3266
4378
  }
4379
+ // @ts-ignore
4380
+ _value.sort((/**
4381
+ * @param {?} a
4382
+ * @param {?} b
4383
+ * @return {?}
4384
+ */
4385
+ (a, b) => a - b));
3267
4386
  /** @type {?} */
3268
4387
  const _isFirstDateValid = isDateValid(_value[0]);
3269
4388
  /** @type {?} */
@@ -3275,10 +4394,16 @@ class BsDaterangepickerInputDirective {
3275
4394
  return { bsDate: { invalid: _value[1] } };
3276
4395
  }
3277
4396
  if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {
3278
- return { bsDate: { minDate: this._picker.minDate } };
4397
+ _value[0] = this._picker.minDate;
4398
+ errors.push({ bsDate: { minDate: this._picker.minDate } });
3279
4399
  }
3280
4400
  if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {
3281
- return { bsDate: { maxDate: this._picker.maxDate } };
4401
+ _value[1] = this._picker.maxDate;
4402
+ errors.push({ bsDate: { maxDate: this._picker.maxDate } });
4403
+ }
4404
+ if (errors.length > 0) {
4405
+ this.writeValue(_value);
4406
+ return errors;
3282
4407
  }
3283
4408
  }
3284
4409
  /**
@@ -3371,6 +4496,9 @@ class BsDaterangepickerInputDirective {
3371
4496
  hide() {
3372
4497
  this._picker.hide();
3373
4498
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
4499
+ if (this._picker._config.returnFocusToInput) {
4500
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4501
+ }
3374
4502
  }
3375
4503
  }
3376
4504
  BsDaterangepickerInputDirective.decorators = [
@@ -3379,6 +4507,7 @@ BsDaterangepickerInputDirective.decorators = [
3379
4507
  host: {
3380
4508
  '(change)': 'onChange($event)',
3381
4509
  '(keyup.esc)': 'hide()',
4510
+ '(keydown)': 'onKeydownEvent($event)',
3382
4511
  '(blur)': 'onBlur()'
3383
4512
  },
3384
4513
  providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]
@@ -3392,6 +4521,53 @@ BsDaterangepickerInputDirective.ctorParameters = () => [
3392
4521
  { type: ElementRef },
3393
4522
  { type: ChangeDetectorRef }
3394
4523
  ];
4524
+ if (false) {
4525
+ /**
4526
+ * @type {?}
4527
+ * @private
4528
+ */
4529
+ BsDaterangepickerInputDirective.prototype._onChange;
4530
+ /**
4531
+ * @type {?}
4532
+ * @private
4533
+ */
4534
+ BsDaterangepickerInputDirective.prototype._onTouched;
4535
+ /**
4536
+ * @type {?}
4537
+ * @private
4538
+ */
4539
+ BsDaterangepickerInputDirective.prototype._validatorChange;
4540
+ /**
4541
+ * @type {?}
4542
+ * @private
4543
+ */
4544
+ BsDaterangepickerInputDirective.prototype._value;
4545
+ /**
4546
+ * @type {?}
4547
+ * @private
4548
+ */
4549
+ BsDaterangepickerInputDirective.prototype._picker;
4550
+ /**
4551
+ * @type {?}
4552
+ * @private
4553
+ */
4554
+ BsDaterangepickerInputDirective.prototype._localeService;
4555
+ /**
4556
+ * @type {?}
4557
+ * @private
4558
+ */
4559
+ BsDaterangepickerInputDirective.prototype._renderer;
4560
+ /**
4561
+ * @type {?}
4562
+ * @private
4563
+ */
4564
+ BsDaterangepickerInputDirective.prototype._elRef;
4565
+ /**
4566
+ * @type {?}
4567
+ * @private
4568
+ */
4569
+ BsDaterangepickerInputDirective.prototype.changeDetection;
4570
+ }
3395
4571
 
3396
4572
  /**
3397
4573
  * @fileoverview added by tsickle
@@ -3436,29 +4612,87 @@ BsCurrentDateViewComponent.decorators = [
3436
4612
  BsCurrentDateViewComponent.propDecorators = {
3437
4613
  title: [{ type: Input }]
3438
4614
  };
4615
+ if (false) {
4616
+ /** @type {?} */
4617
+ BsCurrentDateViewComponent.prototype.title;
4618
+ }
3439
4619
 
3440
4620
  /**
3441
4621
  * @fileoverview added by tsickle
3442
4622
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3443
4623
  */
4624
+ /**
4625
+ * @record
4626
+ */
4627
+ function BsCustomDates() { }
4628
+ if (false) {
4629
+ /** @type {?} */
4630
+ BsCustomDates.prototype.label;
4631
+ /** @type {?} */
4632
+ BsCustomDates.prototype.value;
4633
+ }
3444
4634
  class BsCustomDatesViewComponent {
4635
+ constructor() {
4636
+ this.onSelect = new EventEmitter();
4637
+ this.customRange = null;
4638
+ }
4639
+ /**
4640
+ * @param {?} range
4641
+ * @return {?}
4642
+ */
4643
+ selectFromRanges(range) {
4644
+ this.onSelect.emit(range);
4645
+ }
4646
+ /**
4647
+ * @return {?}
4648
+ */
4649
+ checkRange() {
4650
+ return this.ranges ? this.ranges.filter((/**
4651
+ * @param {?} range
4652
+ * @return {?}
4653
+ */
4654
+ range => range.value === this.selectedRange)).length > 0 : false;
4655
+ }
3445
4656
  }
3446
4657
  BsCustomDatesViewComponent.decorators = [
3447
4658
  { type: Component, args: [{
3448
4659
  selector: 'bs-custom-date-view',
3449
4660
  template: `
3450
4661
  <div class="bs-datepicker-predefined-btns">
3451
- <button *ngFor="let range of ranges" type="button">{{ range.label }}</button>
3452
- <button *ngIf="isCustomRangeShown" type="button">Custom Range</button>
4662
+ <button *ngFor="let range of ranges"
4663
+ type="button"
4664
+ class="btn"
4665
+ (click)="selectFromRanges(range)"
4666
+ [class.selected]="range.value === selectedRange">
4667
+ {{ range.label }}
4668
+ </button>
4669
+ <button
4670
+ type="button"
4671
+ class="btn"
4672
+ (click)="selectFromRanges(customRange)"
4673
+ [class.selected]="!checkRange()">
4674
+ Custom Range
4675
+ </button>
3453
4676
  </div>
3454
4677
  `,
3455
4678
  changeDetection: ChangeDetectionStrategy.OnPush
3456
4679
  }] }
3457
4680
  ];
3458
4681
  BsCustomDatesViewComponent.propDecorators = {
3459
- isCustomRangeShown: [{ type: Input }],
3460
- ranges: [{ type: Input }]
4682
+ ranges: [{ type: Input }],
4683
+ selectedRange: [{ type: Input }],
4684
+ onSelect: [{ type: Output }]
3461
4685
  };
4686
+ if (false) {
4687
+ /** @type {?} */
4688
+ BsCustomDatesViewComponent.prototype.ranges;
4689
+ /** @type {?} */
4690
+ BsCustomDatesViewComponent.prototype.selectedRange;
4691
+ /** @type {?} */
4692
+ BsCustomDatesViewComponent.prototype.onSelect;
4693
+ /** @type {?} */
4694
+ BsCustomDatesViewComponent.prototype.customRange;
4695
+ }
3462
4696
 
3463
4697
  /**
3464
4698
  * @fileoverview added by tsickle
@@ -3525,11 +4759,199 @@ BsDatepickerDayDecoratorComponent.ctorParameters = () => [
3525
4759
  BsDatepickerDayDecoratorComponent.propDecorators = {
3526
4760
  day: [{ type: Input }]
3527
4761
  };
4762
+ if (false) {
4763
+ /** @type {?} */
4764
+ BsDatepickerDayDecoratorComponent.prototype.day;
4765
+ /**
4766
+ * @type {?}
4767
+ * @private
4768
+ */
4769
+ BsDatepickerDayDecoratorComponent.prototype._config;
4770
+ /**
4771
+ * @type {?}
4772
+ * @private
4773
+ */
4774
+ BsDatepickerDayDecoratorComponent.prototype._elRef;
4775
+ /**
4776
+ * @type {?}
4777
+ * @private
4778
+ */
4779
+ BsDatepickerDayDecoratorComponent.prototype._renderer;
4780
+ }
3528
4781
 
3529
4782
  /**
3530
- * @fileoverview added by tsickle
3531
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4783
+ * @fileoverview added by tsickle
4784
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4785
+ */
4786
+ /**
4787
+ * **************
4788
+ * @record
4789
+ */
4790
+ function NavigationViewModel() { }
4791
+ if (false) {
4792
+ /** @type {?} */
4793
+ NavigationViewModel.prototype.monthTitle;
4794
+ /** @type {?} */
4795
+ NavigationViewModel.prototype.yearTitle;
4796
+ /** @type {?|undefined} */
4797
+ NavigationViewModel.prototype.hideLeftArrow;
4798
+ /** @type {?|undefined} */
4799
+ NavigationViewModel.prototype.hideRightArrow;
4800
+ /** @type {?|undefined} */
4801
+ NavigationViewModel.prototype.disableLeftArrow;
4802
+ /** @type {?|undefined} */
4803
+ NavigationViewModel.prototype.disableRightArrow;
4804
+ }
4805
+ /**
4806
+ * @record
4807
+ */
4808
+ function CalendarCellViewModel() { }
4809
+ if (false) {
4810
+ /** @type {?} */
4811
+ CalendarCellViewModel.prototype.date;
4812
+ /** @type {?} */
4813
+ CalendarCellViewModel.prototype.label;
4814
+ /** @type {?|undefined} */
4815
+ CalendarCellViewModel.prototype.isDisabled;
4816
+ /** @type {?|undefined} */
4817
+ CalendarCellViewModel.prototype.isHovered;
4818
+ /** @type {?|undefined} */
4819
+ CalendarCellViewModel.prototype.isSelected;
4820
+ }
4821
+ /**
4822
+ * **************
4823
+ * @record
4824
+ */
4825
+ function DayViewModel() { }
4826
+ if (false) {
4827
+ /** @type {?|undefined} */
4828
+ DayViewModel.prototype.isOtherMonthHovered;
4829
+ /** @type {?|undefined} */
4830
+ DayViewModel.prototype.isOtherMonth;
4831
+ /** @type {?|undefined} */
4832
+ DayViewModel.prototype.isInRange;
4833
+ /** @type {?|undefined} */
4834
+ DayViewModel.prototype.isSelectionStart;
4835
+ /** @type {?|undefined} */
4836
+ DayViewModel.prototype.isSelectionEnd;
4837
+ /** @type {?|undefined} */
4838
+ DayViewModel.prototype.isToday;
4839
+ /** @type {?|undefined} */
4840
+ DayViewModel.prototype.customClasses;
4841
+ /** @type {?|undefined} */
4842
+ DayViewModel.prototype.monthIndex;
4843
+ /** @type {?|undefined} */
4844
+ DayViewModel.prototype.weekIndex;
4845
+ /** @type {?|undefined} */
4846
+ DayViewModel.prototype.dayIndex;
4847
+ }
4848
+ /**
4849
+ * @record
4850
+ */
4851
+ function WeekViewModel() { }
4852
+ if (false) {
4853
+ /** @type {?} */
4854
+ WeekViewModel.prototype.days;
4855
+ /** @type {?|undefined} */
4856
+ WeekViewModel.prototype.isHovered;
4857
+ }
4858
+ /**
4859
+ * @record
4860
+ */
4861
+ function DaysCalendarViewModel() { }
4862
+ if (false) {
4863
+ /** @type {?} */
4864
+ DaysCalendarViewModel.prototype.weeks;
4865
+ /** @type {?} */
4866
+ DaysCalendarViewModel.prototype.month;
4867
+ /** @type {?} */
4868
+ DaysCalendarViewModel.prototype.weekNumbers;
4869
+ /** @type {?} */
4870
+ DaysCalendarViewModel.prototype.weekdays;
4871
+ }
4872
+ /**
4873
+ * **************
4874
+ * @record
4875
+ */
4876
+ function MonthsCalendarViewModel() { }
4877
+ if (false) {
4878
+ /** @type {?} */
4879
+ MonthsCalendarViewModel.prototype.months;
4880
+ }
4881
+ /**
4882
+ * **************
4883
+ * @record
4884
+ */
4885
+ function YearsCalendarViewModel() { }
4886
+ if (false) {
4887
+ /** @type {?} */
4888
+ YearsCalendarViewModel.prototype.years;
4889
+ }
4890
+ /**
4891
+ * **************
4892
+ * @record
4893
+ */
4894
+ function DaysCalendarModel() { }
4895
+ if (false) {
4896
+ /** @type {?} */
4897
+ DaysCalendarModel.prototype.daysMatrix;
4898
+ /** @type {?} */
4899
+ DaysCalendarModel.prototype.month;
4900
+ }
4901
+ /**
4902
+ * **************
4903
+ * @record
4904
+ */
4905
+ function MonthViewOptions() { }
4906
+ if (false) {
4907
+ /** @type {?|undefined} */
4908
+ MonthViewOptions.prototype.width;
4909
+ /** @type {?|undefined} */
4910
+ MonthViewOptions.prototype.height;
4911
+ /** @type {?|undefined} */
4912
+ MonthViewOptions.prototype.firstDayOfWeek;
4913
+ }
4914
+ /**
4915
+ * **************
4916
+ * @record
4917
+ */
4918
+ function DatepickerFormatOptions() { }
4919
+ if (false) {
4920
+ /** @type {?} */
4921
+ DatepickerFormatOptions.prototype.locale;
4922
+ /** @type {?} */
4923
+ DatepickerFormatOptions.prototype.monthTitle;
4924
+ /** @type {?} */
4925
+ DatepickerFormatOptions.prototype.yearTitle;
4926
+ /** @type {?} */
4927
+ DatepickerFormatOptions.prototype.dayLabel;
4928
+ /** @type {?} */
4929
+ DatepickerFormatOptions.prototype.monthLabel;
4930
+ /** @type {?} */
4931
+ DatepickerFormatOptions.prototype.yearLabel;
4932
+ /** @type {?} */
4933
+ DatepickerFormatOptions.prototype.weekNumbers;
4934
+ }
4935
+ /**
4936
+ * @record
4937
+ */
4938
+ function DatepickerRenderOptions() { }
4939
+ if (false) {
4940
+ /** @type {?|undefined} */
4941
+ DatepickerRenderOptions.prototype.showWeekNumbers;
4942
+ /** @type {?|undefined} */
4943
+ DatepickerRenderOptions.prototype.displayMonths;
4944
+ }
4945
+ /**
4946
+ * @record
3532
4947
  */
4948
+ function DatepickerDateCustomClasses() { }
4949
+ if (false) {
4950
+ /** @type {?} */
4951
+ DatepickerDateCustomClasses.prototype.date;
4952
+ /** @type {?} */
4953
+ DatepickerDateCustomClasses.prototype.classes;
4954
+ }
3533
4955
  /** @enum {number} */
3534
4956
  const BsNavigationDirection = {
3535
4957
  UP: 0,
@@ -3537,6 +4959,36 @@ const BsNavigationDirection = {
3537
4959
  };
3538
4960
  BsNavigationDirection[BsNavigationDirection.UP] = 'UP';
3539
4961
  BsNavigationDirection[BsNavigationDirection.DOWN] = 'DOWN';
4962
+ /**
4963
+ * @record
4964
+ */
4965
+ function BsNavigationEvent() { }
4966
+ if (false) {
4967
+ /** @type {?|undefined} */
4968
+ BsNavigationEvent.prototype.direction;
4969
+ /** @type {?|undefined} */
4970
+ BsNavigationEvent.prototype.step;
4971
+ }
4972
+ /**
4973
+ * @record
4974
+ */
4975
+ function BsViewNavigationEvent() { }
4976
+ if (false) {
4977
+ /** @type {?|undefined} */
4978
+ BsViewNavigationEvent.prototype.unit;
4979
+ /** @type {?} */
4980
+ BsViewNavigationEvent.prototype.viewMode;
4981
+ }
4982
+ /**
4983
+ * @record
4984
+ */
4985
+ function CellHoverEvent() { }
4986
+ if (false) {
4987
+ /** @type {?} */
4988
+ CellHoverEvent.prototype.cell;
4989
+ /** @type {?} */
4990
+ CellHoverEvent.prototype.isHovered;
4991
+ }
3540
4992
 
3541
4993
  /**
3542
4994
  * @fileoverview added by tsickle
@@ -3575,15 +5027,16 @@ BsDatepickerNavigationViewComponent.decorators = [
3575
5027
  <span>&lsaquo;</span>
3576
5028
  </button>
3577
5029
 
3578
- &#8203; <!-- zero-width space needed for correct alignement
5030
+ <ng-container *ngIf="calendar.monthTitle">
5031
+ &#8203; <!-- zero-width space needed for correct alignement
3579
5032
  with preserveWhitespaces: false in Angular -->
3580
5033
 
3581
- <button class="current"
3582
- *ngIf="calendar.monthTitle"
5034
+ <button class="current"
3583
5035
  type="button"
3584
- (click)="view('month')">
3585
- <span>{{ calendar.monthTitle }}</span>
3586
- </button>
5036
+ (click)="view('month')"
5037
+ ><span>{{ calendar.monthTitle }}</span>
5038
+ </button>
5039
+ </ng-container>
3587
5040
 
3588
5041
  &#8203; <!-- zero-width space needed for correct alignement
3589
5042
  with preserveWhitespaces: false in Angular -->
@@ -3609,6 +5062,14 @@ BsDatepickerNavigationViewComponent.propDecorators = {
3609
5062
  onNavigate: [{ type: Output }],
3610
5063
  onViewMode: [{ type: Output }]
3611
5064
  };
5065
+ if (false) {
5066
+ /** @type {?} */
5067
+ BsDatepickerNavigationViewComponent.prototype.calendar;
5068
+ /** @type {?} */
5069
+ BsDatepickerNavigationViewComponent.prototype.onNavigate;
5070
+ /** @type {?} */
5071
+ BsDatepickerNavigationViewComponent.prototype.onViewMode;
5072
+ }
3612
5073
 
3613
5074
  /**
3614
5075
  * @fileoverview added by tsickle
@@ -3654,19 +5115,18 @@ class BsDaysCalendarViewComponent {
3654
5115
  * @return {?}
3655
5116
  */
3656
5117
  selectWeek(week) {
3657
- if (!this._config.selectWeek) {
5118
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
5119
+ return;
5120
+ }
5121
+ if (week.days.length === 0) {
3658
5122
  return;
3659
5123
  }
3660
- if (week.days
3661
- && week.days[0]
5124
+ if (this._config.selectWeek && week.days[0]
3662
5125
  && !week.days[0].isDisabled
3663
5126
  && this._config.selectFromOtherMonth) {
3664
5127
  this.onSelect.emit(week.days[0]);
3665
5128
  return;
3666
5129
  }
3667
- if (week.days.length === 0) {
3668
- return;
3669
- }
3670
5130
  /** @type {?} */
3671
5131
  const selectedDay = week.days.find((/**
3672
5132
  * @param {?} day
@@ -3678,6 +5138,21 @@ class BsDaysCalendarViewComponent {
3678
5138
  : !day.isOtherMonth && !day.isDisabled;
3679
5139
  }));
3680
5140
  this.onSelect.emit(selectedDay);
5141
+ if (this._config.selectWeekDateRange) {
5142
+ /** @type {?} */
5143
+ const days = week.days.slice(0);
5144
+ /** @type {?} */
5145
+ const lastDayOfRange = days.reverse().find((/**
5146
+ * @param {?} day
5147
+ * @return {?}
5148
+ */
5149
+ (day) => {
5150
+ return this._config.selectFromOtherMonth
5151
+ ? !day.isDisabled
5152
+ : !day.isOtherMonth && !day.isDisabled;
5153
+ }));
5154
+ this.onSelect.emit(lastDayOfRange);
5155
+ }
3681
5156
  }
3682
5157
  /**
3683
5158
  * @param {?} cell
@@ -3685,7 +5160,7 @@ class BsDaysCalendarViewComponent {
3685
5160
  * @return {?}
3686
5161
  */
3687
5162
  weekHoverHandler(cell, isHovered) {
3688
- if (!this._config.selectWeek) {
5163
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
3689
5164
  return;
3690
5165
  }
3691
5166
  /** @type {?} */
@@ -3775,6 +5250,29 @@ BsDaysCalendarViewComponent.propDecorators = {
3775
5250
  onHover: [{ type: Output }],
3776
5251
  onHoverWeek: [{ type: Output }]
3777
5252
  };
5253
+ if (false) {
5254
+ /** @type {?} */
5255
+ BsDaysCalendarViewComponent.prototype.calendar;
5256
+ /** @type {?} */
5257
+ BsDaysCalendarViewComponent.prototype.options;
5258
+ /** @type {?} */
5259
+ BsDaysCalendarViewComponent.prototype.onNavigate;
5260
+ /** @type {?} */
5261
+ BsDaysCalendarViewComponent.prototype.onViewMode;
5262
+ /** @type {?} */
5263
+ BsDaysCalendarViewComponent.prototype.onSelect;
5264
+ /** @type {?} */
5265
+ BsDaysCalendarViewComponent.prototype.onHover;
5266
+ /** @type {?} */
5267
+ BsDaysCalendarViewComponent.prototype.onHoverWeek;
5268
+ /** @type {?} */
5269
+ BsDaysCalendarViewComponent.prototype.isWeekHovered;
5270
+ /**
5271
+ * @type {?}
5272
+ * @private
5273
+ */
5274
+ BsDaysCalendarViewComponent.prototype._config;
5275
+ }
3778
5276
 
3779
5277
  /**
3780
5278
  * @fileoverview added by tsickle
@@ -3855,6 +5353,18 @@ BsMonthCalendarViewComponent.propDecorators = {
3855
5353
  onSelect: [{ type: Output }],
3856
5354
  onHover: [{ type: Output }]
3857
5355
  };
5356
+ if (false) {
5357
+ /** @type {?} */
5358
+ BsMonthCalendarViewComponent.prototype.calendar;
5359
+ /** @type {?} */
5360
+ BsMonthCalendarViewComponent.prototype.onNavigate;
5361
+ /** @type {?} */
5362
+ BsMonthCalendarViewComponent.prototype.onViewMode;
5363
+ /** @type {?} */
5364
+ BsMonthCalendarViewComponent.prototype.onSelect;
5365
+ /** @type {?} */
5366
+ BsMonthCalendarViewComponent.prototype.onHover;
5367
+ }
3858
5368
 
3859
5369
  /**
3860
5370
  * @fileoverview added by tsickle
@@ -3891,6 +5401,14 @@ BsTimepickerViewComponent.decorators = [
3891
5401
  `
3892
5402
  }] }
3893
5403
  ];
5404
+ if (false) {
5405
+ /** @type {?} */
5406
+ BsTimepickerViewComponent.prototype.ampm;
5407
+ /** @type {?} */
5408
+ BsTimepickerViewComponent.prototype.hours;
5409
+ /** @type {?} */
5410
+ BsTimepickerViewComponent.prototype.minutes;
5411
+ }
3894
5412
 
3895
5413
  /**
3896
5414
  * @fileoverview added by tsickle
@@ -3971,24 +5489,23 @@ BsYearsCalendarViewComponent.propDecorators = {
3971
5489
  onSelect: [{ type: Output }],
3972
5490
  onHover: [{ type: Output }]
3973
5491
  };
5492
+ if (false) {
5493
+ /** @type {?} */
5494
+ BsYearsCalendarViewComponent.prototype.calendar;
5495
+ /** @type {?} */
5496
+ BsYearsCalendarViewComponent.prototype.onNavigate;
5497
+ /** @type {?} */
5498
+ BsYearsCalendarViewComponent.prototype.onViewMode;
5499
+ /** @type {?} */
5500
+ BsYearsCalendarViewComponent.prototype.onSelect;
5501
+ /** @type {?} */
5502
+ BsYearsCalendarViewComponent.prototype.onHover;
5503
+ }
3974
5504
 
3975
5505
  /**
3976
5506
  * @fileoverview added by tsickle
3977
5507
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3978
5508
  */
3979
- /** @type {?} */
3980
- const _exports = [
3981
- BsDatepickerContainerComponent,
3982
- BsDatepickerDirective,
3983
- BsDatepickerInlineContainerComponent,
3984
- BsDatepickerInlineDirective,
3985
- BsDatepickerInputDirective,
3986
- BsDaterangepickerContainerComponent,
3987
- BsDaterangepickerDirective,
3988
- BsDaterangepickerInlineContainerComponent,
3989
- BsDaterangepickerInlineDirective,
3990
- BsDaterangepickerInputDirective
3991
- ];
3992
5509
  class BsDatepickerModule {
3993
5510
  /**
3994
5511
  * @return {?}
@@ -4024,7 +5541,16 @@ BsDatepickerModule.decorators = [
4024
5541
  BsMonthCalendarViewComponent,
4025
5542
  BsTimepickerViewComponent,
4026
5543
  BsYearsCalendarViewComponent,
4027
- ..._exports
5544
+ BsDatepickerContainerComponent,
5545
+ BsDatepickerDirective,
5546
+ BsDatepickerInlineContainerComponent,
5547
+ BsDatepickerInlineDirective,
5548
+ BsDatepickerInputDirective,
5549
+ BsDaterangepickerContainerComponent,
5550
+ BsDaterangepickerDirective,
5551
+ BsDaterangepickerInlineContainerComponent,
5552
+ BsDaterangepickerInlineDirective,
5553
+ BsDaterangepickerInputDirective
4028
5554
  ],
4029
5555
  entryComponents: [
4030
5556
  BsDatepickerContainerComponent,
@@ -4032,7 +5558,18 @@ BsDatepickerModule.decorators = [
4032
5558
  BsDatepickerInlineContainerComponent,
4033
5559
  BsDaterangepickerInlineContainerComponent
4034
5560
  ],
4035
- exports: _exports
5561
+ exports: [
5562
+ BsDatepickerContainerComponent,
5563
+ BsDatepickerDirective,
5564
+ BsDatepickerInlineContainerComponent,
5565
+ BsDatepickerInlineDirective,
5566
+ BsDatepickerInputDirective,
5567
+ BsDaterangepickerContainerComponent,
5568
+ BsDaterangepickerDirective,
5569
+ BsDaterangepickerInlineContainerComponent,
5570
+ BsDaterangepickerInlineDirective,
5571
+ BsDaterangepickerInputDirective
5572
+ ]
4036
5573
  },] }
4037
5574
  ];
4038
5575
 
@@ -4440,6 +5977,123 @@ DatePickerInnerComponent.propDecorators = {
4440
5977
  activeDateChange: [{ type: Output }],
4441
5978
  activeDate: [{ type: Input }]
4442
5979
  };
5980
+ if (false) {
5981
+ /** @type {?} */
5982
+ DatePickerInnerComponent.prototype.locale;
5983
+ /** @type {?} */
5984
+ DatePickerInnerComponent.prototype.datepickerMode;
5985
+ /** @type {?} */
5986
+ DatePickerInnerComponent.prototype.startingDay;
5987
+ /** @type {?} */
5988
+ DatePickerInnerComponent.prototype.yearRange;
5989
+ /** @type {?} */
5990
+ DatePickerInnerComponent.prototype.minDate;
5991
+ /** @type {?} */
5992
+ DatePickerInnerComponent.prototype.maxDate;
5993
+ /** @type {?} */
5994
+ DatePickerInnerComponent.prototype.minMode;
5995
+ /** @type {?} */
5996
+ DatePickerInnerComponent.prototype.maxMode;
5997
+ /** @type {?} */
5998
+ DatePickerInnerComponent.prototype.showWeeks;
5999
+ /** @type {?} */
6000
+ DatePickerInnerComponent.prototype.formatDay;
6001
+ /** @type {?} */
6002
+ DatePickerInnerComponent.prototype.formatMonth;
6003
+ /** @type {?} */
6004
+ DatePickerInnerComponent.prototype.formatYear;
6005
+ /** @type {?} */
6006
+ DatePickerInnerComponent.prototype.formatDayHeader;
6007
+ /** @type {?} */
6008
+ DatePickerInnerComponent.prototype.formatDayTitle;
6009
+ /** @type {?} */
6010
+ DatePickerInnerComponent.prototype.formatMonthTitle;
6011
+ /** @type {?} */
6012
+ DatePickerInnerComponent.prototype.onlyCurrentMonth;
6013
+ /** @type {?} */
6014
+ DatePickerInnerComponent.prototype.shortcutPropagation;
6015
+ /** @type {?} */
6016
+ DatePickerInnerComponent.prototype.customClass;
6017
+ /** @type {?} */
6018
+ DatePickerInnerComponent.prototype.monthColLimit;
6019
+ /** @type {?} */
6020
+ DatePickerInnerComponent.prototype.yearColLimit;
6021
+ /** @type {?} */
6022
+ DatePickerInnerComponent.prototype.dateDisabled;
6023
+ /** @type {?} */
6024
+ DatePickerInnerComponent.prototype.dayDisabled;
6025
+ /** @type {?} */
6026
+ DatePickerInnerComponent.prototype.initDate;
6027
+ /** @type {?} */
6028
+ DatePickerInnerComponent.prototype.selectionDone;
6029
+ /** @type {?} */
6030
+ DatePickerInnerComponent.prototype.update;
6031
+ /** @type {?} */
6032
+ DatePickerInnerComponent.prototype.activeDateChange;
6033
+ /** @type {?} */
6034
+ DatePickerInnerComponent.prototype.stepDay;
6035
+ /** @type {?} */
6036
+ DatePickerInnerComponent.prototype.stepMonth;
6037
+ /** @type {?} */
6038
+ DatePickerInnerComponent.prototype.stepYear;
6039
+ /** @type {?} */
6040
+ DatePickerInnerComponent.prototype.uniqueId;
6041
+ /**
6042
+ * @type {?}
6043
+ * @protected
6044
+ */
6045
+ DatePickerInnerComponent.prototype.modes;
6046
+ /**
6047
+ * @type {?}
6048
+ * @protected
6049
+ */
6050
+ DatePickerInnerComponent.prototype.dateFormatter;
6051
+ /**
6052
+ * @type {?}
6053
+ * @protected
6054
+ */
6055
+ DatePickerInnerComponent.prototype._activeDate;
6056
+ /**
6057
+ * @type {?}
6058
+ * @protected
6059
+ */
6060
+ DatePickerInnerComponent.prototype.selectedDate;
6061
+ /**
6062
+ * @type {?}
6063
+ * @protected
6064
+ */
6065
+ DatePickerInnerComponent.prototype.activeDateId;
6066
+ /**
6067
+ * @type {?}
6068
+ * @protected
6069
+ */
6070
+ DatePickerInnerComponent.prototype.refreshViewHandlerDay;
6071
+ /**
6072
+ * @type {?}
6073
+ * @protected
6074
+ */
6075
+ DatePickerInnerComponent.prototype.compareHandlerDay;
6076
+ /**
6077
+ * @type {?}
6078
+ * @protected
6079
+ */
6080
+ DatePickerInnerComponent.prototype.refreshViewHandlerMonth;
6081
+ /**
6082
+ * @type {?}
6083
+ * @protected
6084
+ */
6085
+ DatePickerInnerComponent.prototype.compareHandlerMonth;
6086
+ /**
6087
+ * @type {?}
6088
+ * @protected
6089
+ */
6090
+ DatePickerInnerComponent.prototype.refreshViewHandlerYear;
6091
+ /**
6092
+ * @type {?}
6093
+ * @protected
6094
+ */
6095
+ DatePickerInnerComponent.prototype.compareHandlerYear;
6096
+ }
4443
6097
 
4444
6098
  /**
4445
6099
  * @fileoverview added by tsickle
@@ -4469,6 +6123,42 @@ class DatepickerConfig {
4469
6123
  DatepickerConfig.decorators = [
4470
6124
  { type: Injectable }
4471
6125
  ];
6126
+ if (false) {
6127
+ /** @type {?} */
6128
+ DatepickerConfig.prototype.locale;
6129
+ /** @type {?} */
6130
+ DatepickerConfig.prototype.datepickerMode;
6131
+ /** @type {?} */
6132
+ DatepickerConfig.prototype.startingDay;
6133
+ /** @type {?} */
6134
+ DatepickerConfig.prototype.yearRange;
6135
+ /** @type {?} */
6136
+ DatepickerConfig.prototype.minMode;
6137
+ /** @type {?} */
6138
+ DatepickerConfig.prototype.maxMode;
6139
+ /** @type {?} */
6140
+ DatepickerConfig.prototype.showWeeks;
6141
+ /** @type {?} */
6142
+ DatepickerConfig.prototype.formatDay;
6143
+ /** @type {?} */
6144
+ DatepickerConfig.prototype.formatMonth;
6145
+ /** @type {?} */
6146
+ DatepickerConfig.prototype.formatYear;
6147
+ /** @type {?} */
6148
+ DatepickerConfig.prototype.formatDayHeader;
6149
+ /** @type {?} */
6150
+ DatepickerConfig.prototype.formatDayTitle;
6151
+ /** @type {?} */
6152
+ DatepickerConfig.prototype.formatMonthTitle;
6153
+ /** @type {?} */
6154
+ DatepickerConfig.prototype.onlyCurrentMonth;
6155
+ /** @type {?} */
6156
+ DatepickerConfig.prototype.monthColLimit;
6157
+ /** @type {?} */
6158
+ DatepickerConfig.prototype.yearColLimit;
6159
+ /** @type {?} */
6160
+ DatepickerConfig.prototype.shortcutPropagation;
6161
+ }
4472
6162
 
4473
6163
  /**
4474
6164
  * @fileoverview added by tsickle
@@ -4657,6 +6347,143 @@ DatePickerComponent.propDecorators = {
4657
6347
  activeDateChange: [{ type: Output }],
4658
6348
  _datePicker: [{ type: ViewChild, args: [DatePickerInnerComponent, { static: true },] }]
4659
6349
  };
6350
+ if (false) {
6351
+ /**
6352
+ * sets datepicker mode, supports: `day`, `month`, `year`
6353
+ * @type {?}
6354
+ */
6355
+ DatePickerComponent.prototype.datepickerMode;
6356
+ /**
6357
+ * default date to show if `ng-model` value is not specified
6358
+ * @type {?}
6359
+ */
6360
+ DatePickerComponent.prototype.initDate;
6361
+ /**
6362
+ * oldest selectable date
6363
+ * @type {?}
6364
+ */
6365
+ DatePickerComponent.prototype.minDate;
6366
+ /**
6367
+ * latest selectable date
6368
+ * @type {?}
6369
+ */
6370
+ DatePickerComponent.prototype.maxDate;
6371
+ /**
6372
+ * set lower datepicker mode, supports: `day`, `month`, `year`
6373
+ * @type {?}
6374
+ */
6375
+ DatePickerComponent.prototype.minMode;
6376
+ /**
6377
+ * sets upper datepicker mode, supports: `day`, `month`, `year`
6378
+ * @type {?}
6379
+ */
6380
+ DatePickerComponent.prototype.maxMode;
6381
+ /**
6382
+ * if false week numbers will be hidden
6383
+ * @type {?}
6384
+ */
6385
+ DatePickerComponent.prototype.showWeeks;
6386
+ /**
6387
+ * format of day in month
6388
+ * @type {?}
6389
+ */
6390
+ DatePickerComponent.prototype.formatDay;
6391
+ /**
6392
+ * format of month in year
6393
+ * @type {?}
6394
+ */
6395
+ DatePickerComponent.prototype.formatMonth;
6396
+ /**
6397
+ * format of year in year range
6398
+ * @type {?}
6399
+ */
6400
+ DatePickerComponent.prototype.formatYear;
6401
+ /**
6402
+ * format of day in week header
6403
+ * @type {?}
6404
+ */
6405
+ DatePickerComponent.prototype.formatDayHeader;
6406
+ /**
6407
+ * format of title when selecting day
6408
+ * @type {?}
6409
+ */
6410
+ DatePickerComponent.prototype.formatDayTitle;
6411
+ /**
6412
+ * format of title when selecting month
6413
+ * @type {?}
6414
+ */
6415
+ DatePickerComponent.prototype.formatMonthTitle;
6416
+ /**
6417
+ * starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday)
6418
+ * @type {?}
6419
+ */
6420
+ DatePickerComponent.prototype.startingDay;
6421
+ /**
6422
+ * number of years displayed in year selection
6423
+ * @type {?}
6424
+ */
6425
+ DatePickerComponent.prototype.yearRange;
6426
+ /**
6427
+ * if true only dates from the currently displayed month will be shown
6428
+ * @type {?}
6429
+ */
6430
+ DatePickerComponent.prototype.onlyCurrentMonth;
6431
+ /**
6432
+ * if true shortcut`s event propagation will be disabled
6433
+ * @type {?}
6434
+ */
6435
+ DatePickerComponent.prototype.shortcutPropagation;
6436
+ /**
6437
+ * number of months displayed in a single row of month picker
6438
+ * @type {?}
6439
+ */
6440
+ DatePickerComponent.prototype.monthColLimit;
6441
+ /**
6442
+ * number of years displayed in a single row of year picker
6443
+ * @type {?}
6444
+ */
6445
+ DatePickerComponent.prototype.yearColLimit;
6446
+ /**
6447
+ * array of custom css classes to be applied to targeted dates
6448
+ * @type {?}
6449
+ */
6450
+ DatePickerComponent.prototype.customClass;
6451
+ /**
6452
+ * array of disabled dates
6453
+ * @type {?}
6454
+ */
6455
+ DatePickerComponent.prototype.dateDisabled;
6456
+ /**
6457
+ * disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday)
6458
+ * @type {?}
6459
+ */
6460
+ DatePickerComponent.prototype.dayDisabled;
6461
+ /** @type {?} */
6462
+ DatePickerComponent.prototype.selectionDone;
6463
+ /**
6464
+ * callback to invoke when the activeDate is changed.
6465
+ * @type {?}
6466
+ */
6467
+ DatePickerComponent.prototype.activeDateChange;
6468
+ /** @type {?} */
6469
+ DatePickerComponent.prototype._datePicker;
6470
+ /** @type {?} */
6471
+ DatePickerComponent.prototype.onChange;
6472
+ /** @type {?} */
6473
+ DatePickerComponent.prototype.onTouched;
6474
+ /** @type {?} */
6475
+ DatePickerComponent.prototype.config;
6476
+ /**
6477
+ * @type {?}
6478
+ * @protected
6479
+ */
6480
+ DatePickerComponent.prototype._now;
6481
+ /**
6482
+ * @type {?}
6483
+ * @protected
6484
+ */
6485
+ DatePickerComponent.prototype._activeDate;
6486
+ }
4660
6487
 
4661
6488
  /**
4662
6489
  * @fileoverview added by tsickle
@@ -4879,6 +6706,18 @@ DayPickerComponent.decorators = [
4879
6706
  DayPickerComponent.ctorParameters = () => [
4880
6707
  { type: DatePickerInnerComponent }
4881
6708
  ];
6709
+ if (false) {
6710
+ /** @type {?} */
6711
+ DayPickerComponent.prototype.labels;
6712
+ /** @type {?} */
6713
+ DayPickerComponent.prototype.title;
6714
+ /** @type {?} */
6715
+ DayPickerComponent.prototype.rows;
6716
+ /** @type {?} */
6717
+ DayPickerComponent.prototype.weekNumbers;
6718
+ /** @type {?} */
6719
+ DayPickerComponent.prototype.datePicker;
6720
+ }
4882
6721
 
4883
6722
  /**
4884
6723
  * @fileoverview added by tsickle
@@ -4989,6 +6828,16 @@ MonthPickerComponent.decorators = [
4989
6828
  MonthPickerComponent.ctorParameters = () => [
4990
6829
  { type: DatePickerInnerComponent }
4991
6830
  ];
6831
+ if (false) {
6832
+ /** @type {?} */
6833
+ MonthPickerComponent.prototype.title;
6834
+ /** @type {?} */
6835
+ MonthPickerComponent.prototype.rows;
6836
+ /** @type {?} */
6837
+ MonthPickerComponent.prototype.datePicker;
6838
+ /** @type {?} */
6839
+ MonthPickerComponent.prototype.maxMode;
6840
+ }
4992
6841
 
4993
6842
  /**
4994
6843
  * @fileoverview added by tsickle
@@ -5105,6 +6954,14 @@ YearPickerComponent.decorators = [
5105
6954
  YearPickerComponent.ctorParameters = () => [
5106
6955
  { type: DatePickerInnerComponent }
5107
6956
  ];
6957
+ if (false) {
6958
+ /** @type {?} */
6959
+ YearPickerComponent.prototype.datePicker;
6960
+ /** @type {?} */
6961
+ YearPickerComponent.prototype.title;
6962
+ /** @type {?} */
6963
+ YearPickerComponent.prototype.rows;
6964
+ }
5108
6965
 
5109
6966
  /**
5110
6967
  * @fileoverview added by tsickle
@@ -5139,5 +6996,15 @@ DatepickerModule.decorators = [
5139
6996
  },] }
5140
6997
  ];
5141
6998
 
6999
+ /**
7000
+ * @fileoverview added by tsickle
7001
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7002
+ */
7003
+
7004
+ /**
7005
+ * @fileoverview added by tsickle
7006
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7007
+ */
7008
+
5142
7009
  export { BsDatepickerConfig, BsDatepickerContainerComponent, BsDatepickerDirective, BsDatepickerInlineConfig, BsDatepickerInlineContainerComponent, BsDatepickerInlineDirective, BsDatepickerInputDirective, BsDatepickerModule, BsDaterangepickerConfig, BsDaterangepickerContainerComponent, BsDaterangepickerDirective, BsDaterangepickerInlineConfig, BsDaterangepickerInlineContainerComponent, BsDaterangepickerInlineDirective, BsDaterangepickerInputDirective, BsLocaleService, DateFormatter, DatePickerComponent, DatePickerInnerComponent, DatepickerConfig, DatepickerModule, DayPickerComponent, MonthPickerComponent, YearPickerComponent, DATEPICKER_CONTROL_VALUE_ACCESSOR as ɵa, BsDatepickerAbstractComponent as ɵb, BsDatepickerStore as ɵc, BsDatepickerEffects as ɵd, BsDatepickerActions as ɵe, datepickerAnimation as ɵf, BsCalendarLayoutComponent as ɵg, BsCurrentDateViewComponent as ɵh, BsCustomDatesViewComponent as ɵi, BsDatepickerDayDecoratorComponent as ɵj, BsDatepickerNavigationViewComponent as ɵk, BsDaysCalendarViewComponent as ɵl, BsMonthCalendarViewComponent as ɵm, BsTimepickerViewComponent as ɵn, BsYearsCalendarViewComponent as ɵo };
5143
7010
  //# sourceMappingURL=ngx-bootstrap-datepicker.js.map