ngx-bootstrap 5.3.2 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/CHANGELOG.md +148 -99
  2. package/README.md +14 -10
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +71 -2
  4. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  6. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  7. package/accordion/fesm2015/ngx-bootstrap-accordion.js +79 -0
  8. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  9. package/accordion/fesm5/ngx-bootstrap-accordion.js +80 -1
  10. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  11. package/accordion/package.json +2 -2
  12. package/alert/bundles/ngx-bootstrap-alert.umd.js +224 -2
  13. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  14. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +15 -1
  15. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  16. package/alert/fesm2015/ngx-bootstrap-alert.js +71 -0
  17. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  18. package/alert/fesm5/ngx-bootstrap-alert.js +72 -1
  19. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  20. package/alert/package.json +2 -2
  21. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +208 -85
  22. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  23. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  24. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  25. package/buttons/button-radio-group.directive.d.ts +4 -1
  26. package/buttons/esm2015/button-radio-group.directive.js +26 -2
  27. package/buttons/esm5/button-radio-group.directive.js +30 -2
  28. package/buttons/fesm2015/ngx-bootstrap-buttons.js +194 -65
  29. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  30. package/buttons/fesm5/ngx-bootstrap-buttons.js +216 -83
  31. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  32. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  33. package/buttons/package.json +2 -2
  34. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +295 -4
  35. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  36. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +15 -1
  37. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  38. package/carousel/carousel.component.d.ts +2 -0
  39. package/carousel/esm2015/carousel.component.js +15 -2
  40. package/carousel/esm2015/slide.component.js +21 -2
  41. package/carousel/esm5/carousel.component.js +15 -2
  42. package/carousel/esm5/slide.component.js +6 -2
  43. package/carousel/fesm2015/ngx-bootstrap-carousel.js +169 -2
  44. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  45. package/carousel/fesm5/ngx-bootstrap-carousel.js +156 -4
  46. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  47. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  48. package/carousel/package.json +2 -2
  49. package/carousel/slide.component.d.ts +1 -0
  50. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +11172 -10061
  51. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  52. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  53. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  54. package/chronos/esm2015/format/format.js +1 -1
  55. package/chronos/esm2015/i18n/ka.js +108 -0
  56. package/chronos/esm2015/i18n/kk.js +89 -0
  57. package/chronos/esm2015/i18n/sq.js +62 -0
  58. package/chronos/esm2015/i18n/th-be.js +85 -0
  59. package/chronos/esm2015/index.js +2 -2
  60. package/chronos/esm2015/locale/locale.class.js +16 -2
  61. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  62. package/chronos/esm2015/public_api.js +5 -1
  63. package/chronos/esm2015/units/year.js +4 -1
  64. package/chronos/esm5/format/format.js +1 -1
  65. package/chronos/esm5/i18n/ka.js +108 -0
  66. package/chronos/esm5/i18n/kk.js +89 -0
  67. package/chronos/esm5/i18n/sq.js +62 -0
  68. package/chronos/esm5/i18n/th-be.js +86 -0
  69. package/chronos/esm5/index.js +2 -2
  70. package/chronos/esm5/locale/locale.class.js +22 -2
  71. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  72. package/chronos/esm5/public_api.js +5 -1
  73. package/chronos/esm5/units/year.js +4 -1
  74. package/chronos/fesm2015/ngx-bootstrap-chronos.js +1117 -13
  75. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  76. package/chronos/fesm5/ngx-bootstrap-chronos.js +1130 -13
  77. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  78. package/chronos/i18n/ka.d.ts +2 -0
  79. package/chronos/i18n/kk.d.ts +2 -0
  80. package/chronos/i18n/sq.d.ts +2 -0
  81. package/chronos/i18n/th-be.d.ts +2 -0
  82. package/chronos/locale/locale.class.d.ts +2 -0
  83. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  84. package/chronos/package.json +2 -2
  85. package/chronos/public_api.d.ts +4 -0
  86. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +100 -2
  87. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  88. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +1 -1
  89. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  90. package/collapse/collapse.directive.d.ts +1 -0
  91. package/collapse/esm2015/collapse.directive.js +14 -1
  92. package/collapse/esm5/collapse.directive.js +14 -1
  93. package/collapse/fesm2015/ngx-bootstrap-collapse.js +108 -0
  94. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  95. package/collapse/fesm5/ngx-bootstrap-collapse.js +109 -1
  96. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  97. package/collapse/ngx-bootstrap-collapse.metadata.json +1 -1
  98. package/collapse/package.json +2 -2
  99. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +169 -2
  100. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  101. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  102. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  103. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +177 -0
  104. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  105. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +178 -1
  106. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  107. package/component-loader/package.json +2 -2
  108. package/datepicker/base/bs-datepicker-container.d.ts +2 -1
  109. package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
  110. package/datepicker/bs-datepicker-input.directive.d.ts +1 -0
  111. package/datepicker/bs-datepicker.component.d.ts +12 -3
  112. package/datepicker/bs-datepicker.config.d.ts +31 -1
  113. package/datepicker/bs-datepicker.css +19 -1
  114. package/datepicker/bs-datepicker.css.map +3 -3
  115. package/datepicker/bs-datepicker.scss +0 -1
  116. package/datepicker/bs-daterangepicker-inline.component.d.ts +8 -0
  117. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -0
  118. package/datepicker/bs-daterangepicker.component.d.ts +16 -3
  119. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2100 -99
  120. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  121. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +15 -1
  122. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  123. package/datepicker/engine/flag-days-calendar.d.ts +1 -0
  124. package/datepicker/esm2015/base/bs-datepicker-container.js +10 -3
  125. package/datepicker/esm2015/bs-datepicker-inline.component.js +25 -9
  126. package/datepicker/esm2015/bs-datepicker-input.directive.js +19 -1
  127. package/datepicker/esm2015/bs-datepicker.component.js +55 -8
  128. package/datepicker/esm2015/bs-datepicker.config.js +42 -3
  129. package/datepicker/esm2015/bs-datepicker.module.js +23 -16
  130. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +37 -7
  131. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +34 -3
  132. package/datepicker/esm2015/bs-daterangepicker.component.js +66 -9
  133. package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
  134. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  135. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +15 -11
  136. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +28 -6
  137. package/datepicker/esm2015/reducer/bs-datepicker.state.js +7 -1
  138. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +46 -8
  139. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -2
  140. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  141. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +8 -7
  142. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +21 -3
  143. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  144. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +22 -8
  145. package/datepicker/esm2015/utils/bs-calendar-utils.js +18 -3
  146. package/datepicker/esm5/base/bs-datepicker-container.js +14 -3
  147. package/datepicker/esm5/bs-datepicker-inline.component.js +25 -9
  148. package/datepicker/esm5/bs-datepicker-input.directive.js +23 -1
  149. package/datepicker/esm5/bs-datepicker.component.js +59 -8
  150. package/datepicker/esm5/bs-datepicker.config.js +42 -3
  151. package/datepicker/esm5/bs-datepicker.module.js +26 -19
  152. package/datepicker/esm5/bs-daterangepicker-inline.component.js +37 -7
  153. package/datepicker/esm5/bs-daterangepicker-input.directive.js +38 -3
  154. package/datepicker/esm5/bs-daterangepicker.component.js +70 -9
  155. package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
  156. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  157. package/datepicker/esm5/reducer/bs-datepicker.effects.js +21 -17
  158. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +28 -6
  159. package/datepicker/esm5/reducer/bs-datepicker.state.js +7 -1
  160. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +39 -7
  161. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -2
  162. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  163. package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +2 -2
  164. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +25 -3
  165. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  166. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +22 -8
  167. package/datepicker/esm5/utils/bs-calendar-utils.js +18 -3
  168. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +1953 -91
  169. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  170. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +1985 -98
  171. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  172. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  173. package/datepicker/package.json +2 -2
  174. package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
  175. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
  176. package/datepicker/reducer/bs-datepicker.state.d.ts +3 -0
  177. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +6 -1
  178. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -0
  179. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  180. package/datepicker/utils/scss/mixins.css.map +1 -1
  181. package/datepicker/utils/scss/mixins.scss +9 -0
  182. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +387 -3
  183. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  184. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +15 -1
  185. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  186. package/dropdown/esm2015/bs-dropdown-container.component.js +2 -2
  187. package/dropdown/esm5/bs-dropdown-container.component.js +2 -2
  188. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +234 -1
  189. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  190. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +234 -1
  191. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  192. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  193. package/dropdown/package.json +2 -2
  194. package/locale/bundles/ngx-bootstrap-locale.umd.js +36 -2
  195. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
  196. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
  197. package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
  198. package/locale/esm2015/public_api.js +5 -1
  199. package/locale/esm5/ngx-bootstrap-locale.js +2 -2
  200. package/locale/esm5/public_api.js +5 -1
  201. package/locale/fesm2015/ngx-bootstrap-locale.js +11 -1
  202. package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -1
  203. package/locale/fesm5/ngx-bootstrap-locale.js +11 -1
  204. package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -1
  205. package/locale/ngx-bootstrap-locale.metadata.json +1 -1
  206. package/locale/package.json +2 -2
  207. package/locale/public_api.d.ts +4 -0
  208. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +187 -2
  209. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  210. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +15 -1
  211. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  212. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +32 -0
  213. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -1
  214. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +32 -0
  215. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  216. package/mini-ngrx/package.json +2 -2
  217. package/modal/bs-modal.service.d.ts +1 -2
  218. package/modal/bundles/ngx-bootstrap-modal.umd.js +558 -16
  219. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  220. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +15 -1
  221. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  222. package/modal/esm2015/bs-modal.service.js +13 -4
  223. package/modal/esm2015/modal-container.component.js +24 -5
  224. package/modal/esm2015/modal-options.class.js +16 -1
  225. package/modal/esm2015/modal.directive.js +21 -4
  226. package/modal/esm2015/modal.module.js +10 -1
  227. package/modal/esm5/bs-modal.service.js +28 -8
  228. package/modal/esm5/modal-container.component.js +28 -5
  229. package/modal/esm5/modal-options.class.js +16 -1
  230. package/modal/esm5/modal.directive.js +25 -4
  231. package/modal/esm5/modal.module.js +13 -1
  232. package/modal/fesm2015/ngx-bootstrap-modal.js +354 -10
  233. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  234. package/modal/fesm5/ngx-bootstrap-modal.js +381 -15
  235. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  236. package/modal/modal-container.component.d.ts +3 -1
  237. package/modal/modal-options.class.d.ts +13 -0
  238. package/modal/modal.directive.d.ts +3 -1
  239. package/modal/modal.module.d.ts +1 -0
  240. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  241. package/modal/package.json +2 -2
  242. package/package.json +2 -2
  243. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +276 -4
  244. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  245. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  246. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  247. package/pagination/esm2015/models/index.js +49 -4
  248. package/pagination/esm2015/pager.component.js +2 -2
  249. package/pagination/esm2015/pagination.component.js +33 -3
  250. package/pagination/esm2015/public_api.js +1 -1
  251. package/pagination/esm5/models/index.js +49 -4
  252. package/pagination/esm5/pager.component.js +2 -2
  253. package/pagination/esm5/pagination.component.js +33 -3
  254. package/pagination/esm5/public_api.js +1 -1
  255. package/pagination/fesm2015/ngx-bootstrap-pagination.js +284 -2
  256. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  257. package/pagination/fesm5/ngx-bootstrap-pagination.js +285 -3
  258. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  259. package/pagination/models/index.d.ts +28 -0
  260. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  261. package/pagination/package.json +2 -2
  262. package/pagination/pagination.component.d.ts +12 -2
  263. package/pagination/public_api.d.ts +1 -0
  264. package/popover/bundles/ngx-bootstrap-popover.umd.js +215 -20
  265. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  266. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  267. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  268. package/popover/esm2015/popover.config.js +10 -1
  269. package/popover/esm2015/popover.directive.js +97 -16
  270. package/popover/esm5/popover.config.js +10 -1
  271. package/popover/esm5/popover.directive.js +98 -16
  272. package/popover/fesm2015/ngx-bootstrap-popover.js +221 -16
  273. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  274. package/popover/fesm5/ngx-bootstrap-popover.js +222 -16
  275. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  276. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  277. package/popover/package.json +2 -2
  278. package/popover/popover.config.d.ts +2 -0
  279. package/popover/popover.directive.d.ts +9 -1
  280. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +286 -13
  281. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  282. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +15 -1
  283. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  284. package/positioning/esm2015/modifiers/arrow.js +19 -5
  285. package/positioning/esm2015/modifiers/initData.js +12 -2
  286. package/positioning/esm2015/modifiers/shift.js +6 -4
  287. package/positioning/esm5/modifiers/arrow.js +19 -5
  288. package/positioning/esm5/modifiers/initData.js +12 -2
  289. package/positioning/esm5/modifiers/shift.js +8 -6
  290. package/positioning/fesm2015/ngx-bootstrap-positioning.js +128 -8
  291. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  292. package/positioning/fesm5/ngx-bootstrap-positioning.js +132 -10
  293. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  294. package/positioning/package.json +2 -2
  295. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +77 -2
  296. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  297. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  298. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  299. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +85 -0
  300. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  301. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +85 -0
  302. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  303. package/progressbar/package.json +2 -2
  304. package/rating/bundles/ngx-bootstrap-rating.umd.js +92 -7
  305. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  306. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  307. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  308. package/rating/esm2015/ngx-bootstrap-rating.js +2 -2
  309. package/rating/esm2015/public_api.js +2 -1
  310. package/rating/esm2015/rating.component.js +14 -5
  311. package/rating/esm2015/rating.config.js +27 -0
  312. package/rating/esm2015/rating.module.js +3 -2
  313. package/rating/esm5/ngx-bootstrap-rating.js +2 -2
  314. package/rating/esm5/public_api.js +2 -1
  315. package/rating/esm5/rating.component.js +13 -5
  316. package/rating/esm5/rating.config.js +29 -0
  317. package/rating/esm5/rating.module.js +3 -2
  318. package/rating/fesm2015/ngx-bootstrap-rating.js +101 -7
  319. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  320. package/rating/fesm5/ngx-bootstrap-rating.js +101 -7
  321. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  322. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  323. package/rating/package.json +2 -2
  324. package/rating/public_api.d.ts +1 -0
  325. package/rating/rating.component.d.ts +4 -1
  326. package/rating/rating.config.d.ts +5 -0
  327. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +254 -2
  328. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  329. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +15 -1
  330. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  331. package/sortable/fesm2015/ngx-bootstrap-sortable.js +113 -0
  332. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  333. package/sortable/fesm5/ngx-bootstrap-sortable.js +114 -1
  334. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  335. package/sortable/package.json +2 -2
  336. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +153 -4
  337. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  338. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  339. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  340. package/tabs/esm2015/tab.directive.js +13 -2
  341. package/tabs/esm2015/tabset.component.js +7 -2
  342. package/tabs/esm2015/tabset.config.js +10 -1
  343. package/tabs/esm5/tab.directive.js +17 -2
  344. package/tabs/esm5/tabset.component.js +7 -2
  345. package/tabs/esm5/tabset.config.js +10 -1
  346. package/tabs/fesm2015/ngx-bootstrap-tabs.js +157 -2
  347. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  348. package/tabs/fesm5/ngx-bootstrap-tabs.js +162 -3
  349. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  350. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  351. package/tabs/package.json +2 -2
  352. package/tabs/tab.directive.d.ts +2 -0
  353. package/tabs/tabset.component.d.ts +2 -0
  354. package/tabs/tabset.config.d.ts +2 -0
  355. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +464 -8
  356. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  357. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +15 -1
  358. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  359. package/timepicker/esm2015/timepicker.component.js +8 -2
  360. package/timepicker/esm2015/timepicker.config.js +28 -1
  361. package/timepicker/esm2015/timepicker.utils.js +9 -6
  362. package/timepicker/esm5/timepicker.component.js +8 -2
  363. package/timepicker/esm5/timepicker.config.js +28 -1
  364. package/timepicker/esm5/timepicker.utils.js +9 -6
  365. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +311 -6
  366. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  367. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +315 -7
  368. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  369. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  370. package/timepicker/package.json +2 -2
  371. package/timepicker/timepicker.component.d.ts +3 -0
  372. package/timepicker/timepicker.config.d.ts +6 -0
  373. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +356 -8
  374. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  375. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +15 -1
  376. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  377. package/tooltip/esm2015/tooltip.directive.js +48 -10
  378. package/tooltip/esm5/tooltip.directive.js +51 -10
  379. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +201 -7
  380. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  381. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +204 -7
  382. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  383. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  384. package/tooltip/package.json +2 -2
  385. package/tooltip/tooltip.directive.d.ts +3 -1
  386. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +748 -69
  387. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  388. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +15 -1
  389. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  390. package/typeahead/esm2015/models/index.js +87 -0
  391. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
  392. package/typeahead/esm2015/public_api.js +2 -1
  393. package/typeahead/esm2015/typeahead-container.component.js +82 -37
  394. package/typeahead/esm2015/typeahead-order.class.js +19 -0
  395. package/typeahead/esm2015/typeahead.config.js +10 -1
  396. package/typeahead/esm2015/typeahead.directive.js +133 -30
  397. package/typeahead/esm5/models/index.js +87 -0
  398. package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
  399. package/typeahead/esm5/public_api.js +2 -1
  400. package/typeahead/esm5/typeahead-container.component.js +92 -37
  401. package/typeahead/esm5/typeahead-order.class.js +23 -0
  402. package/typeahead/esm5/typeahead.config.js +10 -1
  403. package/typeahead/esm5/typeahead.directive.js +140 -36
  404. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +574 -61
  405. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  406. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +594 -67
  407. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  408. package/typeahead/models/index.d.ts +41 -0
  409. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  410. package/typeahead/package.json +2 -2
  411. package/typeahead/public_api.d.ts +2 -0
  412. package/typeahead/typeahead-container.component.d.ts +15 -7
  413. package/typeahead/typeahead-order.class.d.ts +6 -0
  414. package/typeahead/typeahead.config.d.ts +2 -0
  415. package/typeahead/typeahead.directive.d.ts +28 -10
  416. package/utils/bundles/ngx-bootstrap-utils.umd.js +54 -2
  417. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
  418. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +2 -2
  419. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
  420. package/utils/fesm2015/ngx-bootstrap-utils.js +62 -0
  421. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
  422. package/utils/fesm5/ngx-bootstrap-utils.js +62 -0
  423. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
  424. package/utils/package.json +2 -2
  425. package/bundles/ngx-bootstrap.umd.js +0 -1037
  426. package/bundles/ngx-bootstrap.umd.js.map +0 -1
  427. package/bundles/ngx-bootstrap.umd.min.js +0 -2
  428. package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
  429. package/esm2015/ngx-bootstrap.js +0 -9
  430. package/esm2015/public_api.js +0 -30
  431. package/esm5/ngx-bootstrap.js +0 -9
  432. package/esm5/public_api.js +0 -30
  433. package/fesm2015/ngx-bootstrap.js +0 -24
  434. package/fesm2015/ngx-bootstrap.js.map +0 -1
  435. package/fesm5/ngx-bootstrap.js +0 -24
  436. package/fesm5/ngx-bootstrap.js.map +0 -1
  437. package/ngx-bootstrap.d.ts +0 -4
  438. package/ngx-bootstrap.metadata.json +0 -1
  439. package/public_api.d.ts +0 -25
@@ -1,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,7 @@ BsDatepickerConfig.decorators = [
72
208
  */
73
209
  class BsDatepickerAbstractComponent {
74
210
  constructor() {
75
- this._customRangesFish = [];
211
+ this.customRanges = [];
76
212
  }
77
213
  /**
78
214
  * @param {?} value
@@ -102,6 +238,13 @@ class BsDatepickerAbstractComponent {
102
238
  set datesDisabled(value) {
103
239
  this._effects.setDatesDisabled(value);
104
240
  }
241
+ /**
242
+ * @param {?} value
243
+ * @return {?}
244
+ */
245
+ set datesEnabled(value) {
246
+ this._effects.setDatesEnabled(value);
247
+ }
105
248
  /**
106
249
  * @param {?} value
107
250
  * @return {?}
@@ -170,6 +313,26 @@ class BsDatepickerAbstractComponent {
170
313
  event.stopPropagation();
171
314
  }
172
315
  }
316
+ if (false) {
317
+ /** @type {?} */
318
+ BsDatepickerAbstractComponent.prototype.containerClass;
319
+ /** @type {?} */
320
+ BsDatepickerAbstractComponent.prototype.isOtherMonthsActive;
321
+ /** @type {?} */
322
+ BsDatepickerAbstractComponent.prototype._effects;
323
+ /** @type {?} */
324
+ BsDatepickerAbstractComponent.prototype.customRanges;
325
+ /** @type {?} */
326
+ BsDatepickerAbstractComponent.prototype.viewMode;
327
+ /** @type {?} */
328
+ BsDatepickerAbstractComponent.prototype.daysCalendar;
329
+ /** @type {?} */
330
+ BsDatepickerAbstractComponent.prototype.monthsCalendar;
331
+ /** @type {?} */
332
+ BsDatepickerAbstractComponent.prototype.yearsCalendar;
333
+ /** @type {?} */
334
+ BsDatepickerAbstractComponent.prototype.options;
335
+ }
173
336
 
174
337
  /**
175
338
  * @fileoverview added by tsickle
@@ -305,6 +468,16 @@ class BsDatepickerActions {
305
468
  payload: dates
306
469
  };
307
470
  }
471
+ /**
472
+ * @param {?} dates
473
+ * @return {?}
474
+ */
475
+ datesEnabled(dates) {
476
+ return {
477
+ type: BsDatepickerActions.SET_DATESENABLED,
478
+ payload: dates
479
+ };
480
+ }
308
481
  /**
309
482
  * @param {?} value
310
483
  * @return {?}
@@ -349,6 +522,7 @@ BsDatepickerActions.SET_MIN_DATE = '[datepicker] set min date';
349
522
  BsDatepickerActions.SET_MAX_DATE = '[datepicker] set max date';
350
523
  BsDatepickerActions.SET_DAYSDISABLED = '[datepicker] set days disabled';
351
524
  BsDatepickerActions.SET_DATESDISABLED = '[datepicker] set dates disabled';
525
+ BsDatepickerActions.SET_DATESENABLED = '[datepicker] set dates enabled';
352
526
  BsDatepickerActions.SET_IS_DISABLED = '[datepicker] set is disabled';
353
527
  BsDatepickerActions.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';
354
528
  BsDatepickerActions.SET_LOCALE = '[datepicker] set datepicker locale';
@@ -356,6 +530,44 @@ BsDatepickerActions.SELECT_RANGE = '[daterangepicker] select dates range';
356
530
  BsDatepickerActions.decorators = [
357
531
  { type: Injectable }
358
532
  ];
533
+ if (false) {
534
+ /** @type {?} */
535
+ BsDatepickerActions.CALCULATE;
536
+ /** @type {?} */
537
+ BsDatepickerActions.FORMAT;
538
+ /** @type {?} */
539
+ BsDatepickerActions.FLAG;
540
+ /** @type {?} */
541
+ BsDatepickerActions.SELECT;
542
+ /** @type {?} */
543
+ BsDatepickerActions.NAVIGATE_OFFSET;
544
+ /** @type {?} */
545
+ BsDatepickerActions.NAVIGATE_TO;
546
+ /** @type {?} */
547
+ BsDatepickerActions.SET_OPTIONS;
548
+ /** @type {?} */
549
+ BsDatepickerActions.HOVER;
550
+ /** @type {?} */
551
+ BsDatepickerActions.CHANGE_VIEWMODE;
552
+ /** @type {?} */
553
+ BsDatepickerActions.SET_MIN_DATE;
554
+ /** @type {?} */
555
+ BsDatepickerActions.SET_MAX_DATE;
556
+ /** @type {?} */
557
+ BsDatepickerActions.SET_DAYSDISABLED;
558
+ /** @type {?} */
559
+ BsDatepickerActions.SET_DATESDISABLED;
560
+ /** @type {?} */
561
+ BsDatepickerActions.SET_DATESENABLED;
562
+ /** @type {?} */
563
+ BsDatepickerActions.SET_IS_DISABLED;
564
+ /** @type {?} */
565
+ BsDatepickerActions.SET_DATE_CUSTOM_CLASSES;
566
+ /** @type {?} */
567
+ BsDatepickerActions.SET_LOCALE;
568
+ /** @type {?} */
569
+ BsDatepickerActions.SELECT_RANGE;
570
+ }
359
571
 
360
572
  /**
361
573
  * @fileoverview added by tsickle
@@ -399,6 +611,23 @@ class BsLocaleService {
399
611
  BsLocaleService.decorators = [
400
612
  { type: Injectable }
401
613
  ];
614
+ if (false) {
615
+ /**
616
+ * @type {?}
617
+ * @private
618
+ */
619
+ BsLocaleService.prototype._defaultLocale;
620
+ /**
621
+ * @type {?}
622
+ * @private
623
+ */
624
+ BsLocaleService.prototype._locale;
625
+ /**
626
+ * @type {?}
627
+ * @private
628
+ */
629
+ BsLocaleService.prototype._localeChange;
630
+ }
402
631
 
403
632
  /**
404
633
  * @fileoverview added by tsickle
@@ -454,24 +683,28 @@ class BsDatepickerEffects {
454
683
  return this;
455
684
  }
456
685
  /**
457
- * @template THIS
458
- * @this {THIS}
459
686
  * @param {?} value
460
- * @return {THIS}
687
+ * @return {?}
461
688
  */
462
689
  setDaysDisabled(value) {
463
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.daysDisabled(value));
464
- return (/** @type {?} */ (this));
690
+ this._store.dispatch(this._actions.daysDisabled(value));
691
+ return this;
465
692
  }
466
693
  /**
467
- * @template THIS
468
- * @this {THIS}
469
694
  * @param {?} value
470
- * @return {THIS}
695
+ * @return {?}
471
696
  */
472
697
  setDatesDisabled(value) {
473
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.datesDisabled(value));
474
- return (/** @type {?} */ (this));
698
+ this._store.dispatch(this._actions.datesDisabled(value));
699
+ return this;
700
+ }
701
+ /**
702
+ * @param {?} value
703
+ * @return {?}
704
+ */
705
+ setDatesEnabled(value) {
706
+ this._store.dispatch(this._actions.datesEnabled(value));
707
+ return this;
475
708
  }
476
709
  /**
477
710
  * @param {?} value
@@ -809,6 +1042,38 @@ BsDatepickerEffects.ctorParameters = () => [
809
1042
  { type: BsDatepickerActions },
810
1043
  { type: BsLocaleService }
811
1044
  ];
1045
+ if (false) {
1046
+ /** @type {?} */
1047
+ BsDatepickerEffects.prototype.viewMode;
1048
+ /** @type {?} */
1049
+ BsDatepickerEffects.prototype.daysCalendar;
1050
+ /** @type {?} */
1051
+ BsDatepickerEffects.prototype.monthsCalendar;
1052
+ /** @type {?} */
1053
+ BsDatepickerEffects.prototype.yearsCalendar;
1054
+ /** @type {?} */
1055
+ BsDatepickerEffects.prototype.options;
1056
+ /**
1057
+ * @type {?}
1058
+ * @private
1059
+ */
1060
+ BsDatepickerEffects.prototype._store;
1061
+ /**
1062
+ * @type {?}
1063
+ * @private
1064
+ */
1065
+ BsDatepickerEffects.prototype._subs;
1066
+ /**
1067
+ * @type {?}
1068
+ * @private
1069
+ */
1070
+ BsDatepickerEffects.prototype._actions;
1071
+ /**
1072
+ * @type {?}
1073
+ * @private
1074
+ */
1075
+ BsDatepickerEffects.prototype._localeService;
1076
+ }
812
1077
 
813
1078
  /**
814
1079
  * @fileoverview added by tsickle
@@ -824,6 +1089,88 @@ const defaultMonthOptions = {
824
1089
  * @fileoverview added by tsickle
825
1090
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
826
1091
  */
1092
+ /**
1093
+ * @record
1094
+ */
1095
+ function BsDatepickerViewState() { }
1096
+ if (false) {
1097
+ /** @type {?} */
1098
+ BsDatepickerViewState.prototype.date;
1099
+ /** @type {?} */
1100
+ BsDatepickerViewState.prototype.mode;
1101
+ }
1102
+ class BsDatepickerState {
1103
+ }
1104
+ if (false) {
1105
+ /** @type {?} */
1106
+ BsDatepickerState.prototype.selectedDate;
1107
+ /** @type {?} */
1108
+ BsDatepickerState.prototype.selectedRange;
1109
+ /** @type {?} */
1110
+ BsDatepickerState.prototype.view;
1111
+ /** @type {?} */
1112
+ BsDatepickerState.prototype.isDisabled;
1113
+ /** @type {?} */
1114
+ BsDatepickerState.prototype.minDate;
1115
+ /** @type {?} */
1116
+ BsDatepickerState.prototype.maxDate;
1117
+ /** @type {?} */
1118
+ BsDatepickerState.prototype.daysDisabled;
1119
+ /** @type {?} */
1120
+ BsDatepickerState.prototype.datesDisabled;
1121
+ /** @type {?} */
1122
+ BsDatepickerState.prototype.datesEnabled;
1123
+ /** @type {?} */
1124
+ BsDatepickerState.prototype.minMode;
1125
+ /** @type {?} */
1126
+ BsDatepickerState.prototype.dateCustomClasses;
1127
+ /** @type {?} */
1128
+ BsDatepickerState.prototype.hoveredDate;
1129
+ /** @type {?} */
1130
+ BsDatepickerState.prototype.hoveredMonth;
1131
+ /** @type {?} */
1132
+ BsDatepickerState.prototype.hoveredYear;
1133
+ /** @type {?} */
1134
+ BsDatepickerState.prototype.monthsModel;
1135
+ /** @type {?} */
1136
+ BsDatepickerState.prototype.formattedMonths;
1137
+ /** @type {?} */
1138
+ BsDatepickerState.prototype.flaggedMonths;
1139
+ /** @type {?} */
1140
+ BsDatepickerState.prototype.selectFromOtherMonth;
1141
+ /** @type {?} */
1142
+ BsDatepickerState.prototype.showPreviousMonth;
1143
+ /** @type {?} */
1144
+ BsDatepickerState.prototype.displayOneMonthRange;
1145
+ /** @type {?} */
1146
+ BsDatepickerState.prototype.monthsCalendar;
1147
+ /** @type {?} */
1148
+ BsDatepickerState.prototype.flaggedMonthsCalendar;
1149
+ /** @type {?} */
1150
+ BsDatepickerState.prototype.yearsCalendarModel;
1151
+ /** @type {?} */
1152
+ BsDatepickerState.prototype.yearsCalendarFlagged;
1153
+ /** @type {?} */
1154
+ BsDatepickerState.prototype.monthViewOptions;
1155
+ /** @type {?} */
1156
+ BsDatepickerState.prototype.showWeekNumbers;
1157
+ /** @type {?} */
1158
+ BsDatepickerState.prototype.displayMonths;
1159
+ /** @type {?} */
1160
+ BsDatepickerState.prototype.locale;
1161
+ /** @type {?} */
1162
+ BsDatepickerState.prototype.monthTitle;
1163
+ /** @type {?} */
1164
+ BsDatepickerState.prototype.yearTitle;
1165
+ /** @type {?} */
1166
+ BsDatepickerState.prototype.dayLabel;
1167
+ /** @type {?} */
1168
+ BsDatepickerState.prototype.monthLabel;
1169
+ /** @type {?} */
1170
+ BsDatepickerState.prototype.yearLabel;
1171
+ /** @type {?} */
1172
+ BsDatepickerState.prototype.weekNumbers;
1173
+ }
827
1174
  /** @type {?} */
828
1175
  const _initialView = { date: new Date(), mode: 'day' };
829
1176
  /** @type {?} */
@@ -898,7 +1245,7 @@ function isYearDisabled(date, min, max) {
898
1245
  * @return {?}
899
1246
  */
900
1247
  function isDisabledDate(date, datesDisabled) {
901
- if (datesDisabled === undefined || !datesDisabled || !datesDisabled.length) {
1248
+ if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {
902
1249
  return false;
903
1250
  }
904
1251
  return datesDisabled.some((/**
@@ -907,6 +1254,21 @@ function isDisabledDate(date, datesDisabled) {
907
1254
  */
908
1255
  (dateDisabled) => isSame(date, dateDisabled, 'date')));
909
1256
  }
1257
+ /**
1258
+ * @param {?} date
1259
+ * @param {?} datesEnabled
1260
+ * @return {?}
1261
+ */
1262
+ function isEnabledDate(date, datesEnabled) {
1263
+ if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {
1264
+ return false;
1265
+ }
1266
+ return !datesEnabled.some((/**
1267
+ * @param {?} enabledDate
1268
+ * @return {?}
1269
+ */
1270
+ (enabledDate) => isSame(date, enabledDate, 'date')));
1271
+ }
910
1272
  /**
911
1273
  * @param {?} state
912
1274
  * @param {?=} calendarIndex
@@ -922,6 +1284,20 @@ function getYearsCalendarInitialDate(state, calendarIndex = 0) {
922
1284
  * @fileoverview added by tsickle
923
1285
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
924
1286
  */
1287
+ /**
1288
+ * @record
1289
+ */
1290
+ function MatrixOptions() { }
1291
+ if (false) {
1292
+ /** @type {?} */
1293
+ MatrixOptions.prototype.height;
1294
+ /** @type {?} */
1295
+ MatrixOptions.prototype.width;
1296
+ /** @type {?} */
1297
+ MatrixOptions.prototype.initialDate;
1298
+ /** @type {?} */
1299
+ MatrixOptions.prototype.shift;
1300
+ }
925
1301
  /**
926
1302
  * @template T
927
1303
  * @param {?} options
@@ -1045,6 +1421,36 @@ function getShiftedWeekdays(locale) {
1045
1421
  * @fileoverview added by tsickle
1046
1422
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1047
1423
  */
1424
+ /**
1425
+ * @record
1426
+ */
1427
+ function FlagDaysCalendarOptions() { }
1428
+ if (false) {
1429
+ /** @type {?} */
1430
+ FlagDaysCalendarOptions.prototype.isDisabled;
1431
+ /** @type {?} */
1432
+ FlagDaysCalendarOptions.prototype.minDate;
1433
+ /** @type {?} */
1434
+ FlagDaysCalendarOptions.prototype.maxDate;
1435
+ /** @type {?} */
1436
+ FlagDaysCalendarOptions.prototype.daysDisabled;
1437
+ /** @type {?} */
1438
+ FlagDaysCalendarOptions.prototype.datesDisabled;
1439
+ /** @type {?} */
1440
+ FlagDaysCalendarOptions.prototype.datesEnabled;
1441
+ /** @type {?} */
1442
+ FlagDaysCalendarOptions.prototype.hoveredDate;
1443
+ /** @type {?} */
1444
+ FlagDaysCalendarOptions.prototype.selectedDate;
1445
+ /** @type {?} */
1446
+ FlagDaysCalendarOptions.prototype.selectedRange;
1447
+ /** @type {?} */
1448
+ FlagDaysCalendarOptions.prototype.displayMonths;
1449
+ /** @type {?} */
1450
+ FlagDaysCalendarOptions.prototype.monthIndex;
1451
+ /** @type {?} */
1452
+ FlagDaysCalendarOptions.prototype.dateCustomClasses;
1453
+ }
1048
1454
  /**
1049
1455
  * @param {?} formattedMonth
1050
1456
  * @param {?} options
@@ -1090,7 +1496,8 @@ function flagDaysCalendar(formattedMonth, options) {
1090
1496
  isBefore(day.date, options.minDate, 'day') ||
1091
1497
  isAfter(day.date, options.maxDate, 'day') ||
1092
1498
  isDisabledDay(day.date, options.daysDisabled) ||
1093
- isDisabledDate(day.date, options.datesDisabled);
1499
+ isDisabledDate(day.date, options.datesDisabled) ||
1500
+ isEnabledDate(day.date, options.datesEnabled);
1094
1501
  /** @type {?} */
1095
1502
  const currentDate = new Date();
1096
1503
  /** @type {?} */
@@ -1219,6 +1626,26 @@ function formatMonthsCalendar(viewDate, formatOptions) {
1219
1626
  * @fileoverview added by tsickle
1220
1627
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1221
1628
  */
1629
+ /**
1630
+ * @record
1631
+ */
1632
+ function FlagMonthCalendarOptions() { }
1633
+ if (false) {
1634
+ /** @type {?} */
1635
+ FlagMonthCalendarOptions.prototype.isDisabled;
1636
+ /** @type {?} */
1637
+ FlagMonthCalendarOptions.prototype.minDate;
1638
+ /** @type {?} */
1639
+ FlagMonthCalendarOptions.prototype.maxDate;
1640
+ /** @type {?} */
1641
+ FlagMonthCalendarOptions.prototype.hoveredMonth;
1642
+ /** @type {?} */
1643
+ FlagMonthCalendarOptions.prototype.selectedDate;
1644
+ /** @type {?} */
1645
+ FlagMonthCalendarOptions.prototype.displayMonths;
1646
+ /** @type {?} */
1647
+ FlagMonthCalendarOptions.prototype.monthIndex;
1648
+ }
1222
1649
  /**
1223
1650
  * @param {?} monthCalendar
1224
1651
  * @param {?} options
@@ -1340,6 +1767,26 @@ function formatYearRangeTitle(yearsMatrix, formatOptions) {
1340
1767
  * @fileoverview added by tsickle
1341
1768
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1342
1769
  */
1770
+ /**
1771
+ * @record
1772
+ */
1773
+ function FlagYearsCalendarOptions() { }
1774
+ if (false) {
1775
+ /** @type {?} */
1776
+ FlagYearsCalendarOptions.prototype.isDisabled;
1777
+ /** @type {?} */
1778
+ FlagYearsCalendarOptions.prototype.minDate;
1779
+ /** @type {?} */
1780
+ FlagYearsCalendarOptions.prototype.maxDate;
1781
+ /** @type {?} */
1782
+ FlagYearsCalendarOptions.prototype.hoveredYear;
1783
+ /** @type {?} */
1784
+ FlagYearsCalendarOptions.prototype.selectedDate;
1785
+ /** @type {?} */
1786
+ FlagYearsCalendarOptions.prototype.displayMonths;
1787
+ /** @type {?} */
1788
+ FlagYearsCalendarOptions.prototype.yearIndex;
1789
+ }
1343
1790
  /**
1344
1791
  * @param {?} yearsCalendar
1345
1792
  * @param {?} options
@@ -1405,10 +1852,10 @@ function bsDatepickerReducer(state = initialDatepickerState, action) {
1405
1852
  return calculateReducer(state);
1406
1853
  }
1407
1854
  case BsDatepickerActions.FORMAT: {
1408
- return formatReducer(state);
1855
+ return formatReducer(state, action);
1409
1856
  }
1410
1857
  case BsDatepickerActions.FLAG: {
1411
- return flagReducer(state);
1858
+ return flagReducer(state, action);
1412
1859
  }
1413
1860
  case BsDatepickerActions.NAVIGATE_OFFSET: {
1414
1861
  return navigateOffsetReducer(state, action);
@@ -1537,11 +1984,15 @@ function bsDatepickerReducer(state = initialDatepickerState, action) {
1537
1984
  function calculateReducer(state) {
1538
1985
  // how many calendars
1539
1986
  /** @type {?} */
1540
- const displayMonths = state.displayMonths;
1987
+ const displayMonths = (state.displayOneMonthRange &&
1988
+ isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;
1541
1989
  // use selected date on initial rendering if set
1542
1990
  /** @type {?} */
1543
1991
  let viewDate = state.view.date;
1544
1992
  if (state.view.mode === 'day') {
1993
+ if (state.showPreviousMonth && state.selectedRange.length === 0) {
1994
+ viewDate = shiftDate(viewDate, { month: -1 });
1995
+ }
1545
1996
  state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();
1546
1997
  /** @type {?} */
1547
1998
  const monthsModel = new Array(displayMonths);
@@ -1625,6 +2076,8 @@ function formatReducer(state, action) {
1625
2076
  * @return {?}
1626
2077
  */
1627
2078
  function flagReducer(state, action) {
2079
+ /** @type {?} */
2080
+ const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
1628
2081
  if (state.view.mode === 'day') {
1629
2082
  /** @type {?} */
1630
2083
  const flaggedMonths = state.formattedMonths.map((/**
@@ -1638,10 +2091,11 @@ function flagReducer(state, action) {
1638
2091
  maxDate: state.maxDate,
1639
2092
  daysDisabled: state.daysDisabled,
1640
2093
  datesDisabled: state.datesDisabled,
2094
+ datesEnabled: state.datesEnabled,
1641
2095
  hoveredDate: state.hoveredDate,
1642
2096
  selectedDate: state.selectedDate,
1643
2097
  selectedRange: state.selectedRange,
1644
- displayMonths: state.displayMonths,
2098
+ displayMonths,
1645
2099
  dateCustomClasses: state.dateCustomClasses,
1646
2100
  monthIndex
1647
2101
  })));
@@ -1660,7 +2114,7 @@ function flagReducer(state, action) {
1660
2114
  maxDate: state.maxDate,
1661
2115
  hoveredMonth: state.hoveredMonth,
1662
2116
  selectedDate: state.selectedDate,
1663
- displayMonths: state.displayMonths,
2117
+ displayMonths,
1664
2118
  monthIndex
1665
2119
  })));
1666
2120
  return Object.assign({}, state, { flaggedMonthsCalendar });
@@ -1678,7 +2132,7 @@ function flagReducer(state, action) {
1678
2132
  maxDate: state.maxDate,
1679
2133
  hoveredYear: state.hoveredYear,
1680
2134
  selectedDate: state.selectedDate,
1681
- displayMonths: state.displayMonths,
2135
+ displayMonths,
1682
2136
  yearIndex
1683
2137
  })));
1684
2138
  return Object.assign({}, state, { yearsCalendarFlagged });
@@ -1751,6 +2205,21 @@ function getViewDate(viewDate, minDate, maxDate) {
1751
2205
  }
1752
2206
  return _date;
1753
2207
  }
2208
+ /**
2209
+ * @param {?} viewDate
2210
+ * @param {?} minDate
2211
+ * @param {?} maxDate
2212
+ * @return {?}
2213
+ */
2214
+ function isDisplayOneMonth(viewDate, minDate, maxDate) {
2215
+ if (maxDate && isSame(maxDate, viewDate, 'day')) {
2216
+ return true;
2217
+ }
2218
+ if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {
2219
+ return true;
2220
+ }
2221
+ return false;
2222
+ }
1754
2223
 
1755
2224
  /**
1756
2225
  * @fileoverview added by tsickle
@@ -1894,6 +2363,9 @@ class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent {
1894
2363
  * @return {?}
1895
2364
  */
1896
2365
  daySelectHandler(day) {
2366
+ if (!day) {
2367
+ return;
2368
+ }
1897
2369
  /** @type {?} */
1898
2370
  const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
1899
2371
  if (isDisabled) {
@@ -1915,7 +2387,7 @@ BsDatepickerContainerComponent.decorators = [
1915
2387
  { type: Component, args: [{
1916
2388
  selector: 'bs-datepicker-container',
1917
2389
  providers: [BsDatepickerStore, BsDatepickerEffects],
1918
- 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",
2390
+ 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",
1919
2391
  host: {
1920
2392
  class: 'bottom',
1921
2393
  '(click)': '_stopPropagation($event)',
@@ -1935,6 +2407,39 @@ BsDatepickerContainerComponent.ctorParameters = () => [
1935
2407
  { type: BsDatepickerEffects },
1936
2408
  { type: PositioningService }
1937
2409
  ];
2410
+ if (false) {
2411
+ /** @type {?} */
2412
+ BsDatepickerContainerComponent.prototype.valueChange;
2413
+ /** @type {?} */
2414
+ BsDatepickerContainerComponent.prototype.animationState;
2415
+ /** @type {?} */
2416
+ BsDatepickerContainerComponent.prototype._subs;
2417
+ /**
2418
+ * @type {?}
2419
+ * @private
2420
+ */
2421
+ BsDatepickerContainerComponent.prototype._config;
2422
+ /**
2423
+ * @type {?}
2424
+ * @private
2425
+ */
2426
+ BsDatepickerContainerComponent.prototype._store;
2427
+ /**
2428
+ * @type {?}
2429
+ * @private
2430
+ */
2431
+ BsDatepickerContainerComponent.prototype._element;
2432
+ /**
2433
+ * @type {?}
2434
+ * @private
2435
+ */
2436
+ BsDatepickerContainerComponent.prototype._actions;
2437
+ /**
2438
+ * @type {?}
2439
+ * @private
2440
+ */
2441
+ BsDatepickerContainerComponent.prototype._positionService;
2442
+ }
1938
2443
 
1939
2444
  /**
1940
2445
  * @fileoverview added by tsickle
@@ -1950,6 +2455,8 @@ class BsDatepickerDirective {
1950
2455
  */
1951
2456
  constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
1952
2457
  this._config = _config;
2458
+ this._elementRef = _elementRef;
2459
+ this._renderer = _renderer;
1953
2460
  /**
1954
2461
  * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
1955
2462
  */
@@ -1978,6 +2485,7 @@ class BsDatepickerDirective {
1978
2485
  this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
1979
2486
  this.onShown = this._datepicker.onShown;
1980
2487
  this.onHidden = this._datepicker.onHidden;
2488
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
1981
2489
  }
1982
2490
  /**
1983
2491
  * Returns whether or not the datepicker is currently being shown
@@ -1991,12 +2499,7 @@ class BsDatepickerDirective {
1991
2499
  * @return {?}
1992
2500
  */
1993
2501
  set isOpen(value) {
1994
- if (value) {
1995
- this.show();
1996
- }
1997
- else {
1998
- this.hide();
1999
- }
2502
+ this.isOpen$.next(value);
2000
2503
  }
2001
2504
  /**
2002
2505
  * Initial value of datepicker
@@ -2004,7 +2507,7 @@ class BsDatepickerDirective {
2004
2507
  * @return {?}
2005
2508
  */
2006
2509
  set bsValue(value) {
2007
- if (this._bsValue === value) {
2510
+ if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {
2008
2511
  return;
2009
2512
  }
2010
2513
  this._bsValue = value;
@@ -2014,6 +2517,7 @@ class BsDatepickerDirective {
2014
2517
  * @return {?}
2015
2518
  */
2016
2519
  ngOnInit() {
2520
+ this.isDestroy$ = new Subject();
2017
2521
  this._datepicker.listen({
2018
2522
  outsideClick: this.outsideClick,
2019
2523
  outsideEsc: this.outsideEsc,
@@ -2045,6 +2549,9 @@ class BsDatepickerDirective {
2045
2549
  if (changes.datesDisabled) {
2046
2550
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
2047
2551
  }
2552
+ if (changes.datesEnabled) {
2553
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2554
+ }
2048
2555
  if (changes.isDisabled) {
2049
2556
  this._datepickerRef.instance.isDisabled = this.isDisabled;
2050
2557
  }
@@ -2052,6 +2559,20 @@ class BsDatepickerDirective {
2052
2559
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
2053
2560
  }
2054
2561
  }
2562
+ /**
2563
+ * @return {?}
2564
+ */
2565
+ ngAfterViewInit() {
2566
+ this.isOpen$.pipe(filter((/**
2567
+ * @param {?} isOpen
2568
+ * @return {?}
2569
+ */
2570
+ isOpen => isOpen !== this.isOpen)), takeUntil(this.isDestroy$))
2571
+ .subscribe((/**
2572
+ * @return {?}
2573
+ */
2574
+ () => this.toggle()));
2575
+ }
2055
2576
  /**
2056
2577
  * Opens an element’s datepicker. This is considered a “manual” triggering of
2057
2578
  * the datepicker.
@@ -2098,6 +2619,9 @@ class BsDatepickerDirective {
2098
2619
  for (const sub of this._subs) {
2099
2620
  sub.unsubscribe();
2100
2621
  }
2622
+ if (this._config.returnFocusToInput) {
2623
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
2624
+ }
2101
2625
  }
2102
2626
  /**
2103
2627
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -2123,6 +2647,7 @@ class BsDatepickerDirective {
2123
2647
  daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
2124
2648
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2125
2649
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
2650
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
2126
2651
  minMode: this.minMode || this.bsConfig && this.bsConfig.minMode
2127
2652
  });
2128
2653
  }
@@ -2131,6 +2656,11 @@ class BsDatepickerDirective {
2131
2656
  */
2132
2657
  ngOnDestroy() {
2133
2658
  this._datepicker.dispose();
2659
+ this.isOpen$.next(false);
2660
+ if (this.isDestroy$) {
2661
+ this.isDestroy$.next();
2662
+ this.isDestroy$.complete();
2663
+ }
2134
2664
  }
2135
2665
  }
2136
2666
  BsDatepickerDirective.decorators = [
@@ -2164,9 +2694,128 @@ BsDatepickerDirective.propDecorators = {
2164
2694
  minMode: [{ type: Input }],
2165
2695
  daysDisabled: [{ type: Input }],
2166
2696
  datesDisabled: [{ type: Input }],
2697
+ datesEnabled: [{ type: Input }],
2167
2698
  dateCustomClasses: [{ type: Input }],
2168
2699
  bsValueChange: [{ type: Output }]
2169
2700
  };
2701
+ if (false) {
2702
+ /**
2703
+ * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
2704
+ * @type {?}
2705
+ */
2706
+ BsDatepickerDirective.prototype.placement;
2707
+ /**
2708
+ * Specifies events that should trigger. Supports a space separated list of
2709
+ * event names.
2710
+ * @type {?}
2711
+ */
2712
+ BsDatepickerDirective.prototype.triggers;
2713
+ /**
2714
+ * Close datepicker on outside click
2715
+ * @type {?}
2716
+ */
2717
+ BsDatepickerDirective.prototype.outsideClick;
2718
+ /**
2719
+ * A selector specifying the element the datepicker should be appended to.
2720
+ * @type {?}
2721
+ */
2722
+ BsDatepickerDirective.prototype.container;
2723
+ /** @type {?} */
2724
+ BsDatepickerDirective.prototype.outsideEsc;
2725
+ /**
2726
+ * Emits an event when the datepicker is shown
2727
+ * @type {?}
2728
+ */
2729
+ BsDatepickerDirective.prototype.onShown;
2730
+ /**
2731
+ * Emits an event when the datepicker is hidden
2732
+ * @type {?}
2733
+ */
2734
+ BsDatepickerDirective.prototype.onHidden;
2735
+ /** @type {?} */
2736
+ BsDatepickerDirective.prototype._bsValue;
2737
+ /** @type {?} */
2738
+ BsDatepickerDirective.prototype.isOpen$;
2739
+ /** @type {?} */
2740
+ BsDatepickerDirective.prototype.isDestroy$;
2741
+ /**
2742
+ * Config object for datepicker
2743
+ * @type {?}
2744
+ */
2745
+ BsDatepickerDirective.prototype.bsConfig;
2746
+ /**
2747
+ * Indicates whether datepicker's content is enabled or not
2748
+ * @type {?}
2749
+ */
2750
+ BsDatepickerDirective.prototype.isDisabled;
2751
+ /**
2752
+ * Minimum date which is available for selection
2753
+ * @type {?}
2754
+ */
2755
+ BsDatepickerDirective.prototype.minDate;
2756
+ /**
2757
+ * Maximum date which is available for selection
2758
+ * @type {?}
2759
+ */
2760
+ BsDatepickerDirective.prototype.maxDate;
2761
+ /**
2762
+ * Minimum view mode : day, month, or year
2763
+ * @type {?}
2764
+ */
2765
+ BsDatepickerDirective.prototype.minMode;
2766
+ /**
2767
+ * Disable Certain days in the week
2768
+ * @type {?}
2769
+ */
2770
+ BsDatepickerDirective.prototype.daysDisabled;
2771
+ /**
2772
+ * Disable specific dates
2773
+ * @type {?}
2774
+ */
2775
+ BsDatepickerDirective.prototype.datesDisabled;
2776
+ /**
2777
+ * Enable specific dates
2778
+ * @type {?}
2779
+ */
2780
+ BsDatepickerDirective.prototype.datesEnabled;
2781
+ /**
2782
+ * Date custom classes
2783
+ * @type {?}
2784
+ */
2785
+ BsDatepickerDirective.prototype.dateCustomClasses;
2786
+ /**
2787
+ * Emits when datepicker value has been changed
2788
+ * @type {?}
2789
+ */
2790
+ BsDatepickerDirective.prototype.bsValueChange;
2791
+ /**
2792
+ * @type {?}
2793
+ * @protected
2794
+ */
2795
+ BsDatepickerDirective.prototype._subs;
2796
+ /**
2797
+ * @type {?}
2798
+ * @private
2799
+ */
2800
+ BsDatepickerDirective.prototype._datepicker;
2801
+ /**
2802
+ * @type {?}
2803
+ * @private
2804
+ */
2805
+ BsDatepickerDirective.prototype._datepickerRef;
2806
+ /** @type {?} */
2807
+ BsDatepickerDirective.prototype._config;
2808
+ /**
2809
+ * @type {?}
2810
+ * @private
2811
+ */
2812
+ BsDatepickerDirective.prototype._elementRef;
2813
+ /**
2814
+ * @type {?}
2815
+ * @private
2816
+ */
2817
+ BsDatepickerDirective.prototype._renderer;
2818
+ }
2170
2819
 
2171
2820
  /**
2172
2821
  * @fileoverview added by tsickle
@@ -2202,7 +2851,7 @@ BsDatepickerInlineContainerComponent.decorators = [
2202
2851
  { type: Component, args: [{
2203
2852
  selector: 'bs-datepicker-inline-container',
2204
2853
  providers: [BsDatepickerStore, BsDatepickerEffects],
2205
- 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",
2854
+ 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",
2206
2855
  host: {
2207
2856
  '(click)': '_stopPropagation($event)'
2208
2857
  },
@@ -2261,11 +2910,6 @@ class BsDatepickerInlineDirective {
2261
2910
  */
2262
2911
  ngOnInit() {
2263
2912
  this.setConfig();
2264
- this._datepickerRef = this._datepicker
2265
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
2266
- .attach(BsDatepickerInlineContainerComponent)
2267
- .to(this._elementRef)
2268
- .show();
2269
2913
  // if date changes from external source (model -> view)
2270
2914
  this._subs.push(this.bsValueChange.subscribe((/**
2271
2915
  * @param {?} value
@@ -2293,21 +2937,27 @@ class BsDatepickerInlineDirective {
2293
2937
  }
2294
2938
  if (changes.minDate) {
2295
2939
  this._datepickerRef.instance.minDate = this.minDate;
2296
- this._datepickerRef.instance.value = this._bsValue;
2940
+ this.setConfig();
2297
2941
  }
2298
2942
  if (changes.maxDate) {
2299
2943
  this._datepickerRef.instance.maxDate = this.maxDate;
2300
- this._datepickerRef.instance.value = this._bsValue;
2944
+ this.setConfig();
2301
2945
  }
2302
2946
  if (changes.datesDisabled) {
2303
2947
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
2948
+ this.setConfig();
2949
+ }
2950
+ if (changes.datesEnabled) {
2951
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2304
2952
  this._datepickerRef.instance.value = this._bsValue;
2305
2953
  }
2306
2954
  if (changes.isDisabled) {
2307
2955
  this._datepickerRef.instance.isDisabled = this.isDisabled;
2956
+ this.setConfig();
2308
2957
  }
2309
2958
  if (changes.dateCustomClasses) {
2310
2959
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
2960
+ this.setConfig();
2311
2961
  }
2312
2962
  }
2313
2963
  /**
@@ -2315,14 +2965,23 @@ class BsDatepickerInlineDirective {
2315
2965
  * @return {?}
2316
2966
  */
2317
2967
  setConfig() {
2968
+ if (this._datepicker) {
2969
+ this._datepicker.hide();
2970
+ }
2318
2971
  this._config = Object.assign({}, this._config, this.bsConfig, {
2319
2972
  value: this._bsValue,
2320
2973
  isDisabled: this.isDisabled,
2321
2974
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
2322
2975
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
2323
2976
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2324
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
2977
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
2978
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled
2325
2979
  });
2980
+ this._datepickerRef = this._datepicker
2981
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
2982
+ .attach(BsDatepickerInlineContainerComponent)
2983
+ .to(this._elementRef)
2984
+ .show();
2326
2985
  }
2327
2986
  /**
2328
2987
  * @return {?}
@@ -2352,9 +3011,76 @@ BsDatepickerInlineDirective.propDecorators = {
2352
3011
  minDate: [{ type: Input }],
2353
3012
  maxDate: [{ type: Input }],
2354
3013
  dateCustomClasses: [{ type: Input }],
3014
+ datesEnabled: [{ type: Input }],
2355
3015
  datesDisabled: [{ type: Input }],
2356
3016
  bsValueChange: [{ type: Output }]
2357
3017
  };
3018
+ if (false) {
3019
+ /** @type {?} */
3020
+ BsDatepickerInlineDirective.prototype._bsValue;
3021
+ /**
3022
+ * Config object for datepicker
3023
+ * @type {?}
3024
+ */
3025
+ BsDatepickerInlineDirective.prototype.bsConfig;
3026
+ /**
3027
+ * Indicates whether datepicker is enabled or not
3028
+ * @type {?}
3029
+ */
3030
+ BsDatepickerInlineDirective.prototype.isDisabled;
3031
+ /**
3032
+ * Minimum date which is available for selection
3033
+ * @type {?}
3034
+ */
3035
+ BsDatepickerInlineDirective.prototype.minDate;
3036
+ /**
3037
+ * Maximum date which is available for selection
3038
+ * @type {?}
3039
+ */
3040
+ BsDatepickerInlineDirective.prototype.maxDate;
3041
+ /**
3042
+ * Date custom classes
3043
+ * @type {?}
3044
+ */
3045
+ BsDatepickerInlineDirective.prototype.dateCustomClasses;
3046
+ /**
3047
+ * Disable specific dates
3048
+ * @type {?}
3049
+ */
3050
+ BsDatepickerInlineDirective.prototype.datesEnabled;
3051
+ /**
3052
+ * Enable specific dates
3053
+ * @type {?}
3054
+ */
3055
+ BsDatepickerInlineDirective.prototype.datesDisabled;
3056
+ /**
3057
+ * Emits when datepicker value has been changed
3058
+ * @type {?}
3059
+ */
3060
+ BsDatepickerInlineDirective.prototype.bsValueChange;
3061
+ /**
3062
+ * @type {?}
3063
+ * @protected
3064
+ */
3065
+ BsDatepickerInlineDirective.prototype._subs;
3066
+ /**
3067
+ * @type {?}
3068
+ * @private
3069
+ */
3070
+ BsDatepickerInlineDirective.prototype._datepicker;
3071
+ /**
3072
+ * @type {?}
3073
+ * @private
3074
+ */
3075
+ BsDatepickerInlineDirective.prototype._datepickerRef;
3076
+ /** @type {?} */
3077
+ BsDatepickerInlineDirective.prototype._config;
3078
+ /**
3079
+ * @type {?}
3080
+ * @private
3081
+ */
3082
+ BsDatepickerInlineDirective.prototype._elementRef;
3083
+ }
2358
3084
 
2359
3085
  /**
2360
3086
  * @fileoverview added by tsickle
@@ -2374,6 +3100,15 @@ class BsDaterangepickerInlineConfig extends BsDatepickerConfig {
2374
3100
  BsDaterangepickerInlineConfig.decorators = [
2375
3101
  { type: Injectable }
2376
3102
  ];
3103
+ if (false) {
3104
+ /** @type {?} */
3105
+ BsDaterangepickerInlineConfig.prototype.displayMonths;
3106
+ /**
3107
+ * turn on/off animation
3108
+ * @type {?}
3109
+ */
3110
+ BsDaterangepickerInlineConfig.prototype.isAnimated;
3111
+ }
2377
3112
 
2378
3113
  /**
2379
3114
  * @fileoverview added by tsickle
@@ -2399,8 +3134,10 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
2399
3134
  this.valueChange = new EventEmitter();
2400
3135
  this.animationState = 'void';
2401
3136
  this._rangeStack = [];
3137
+ this.chosenRange = [];
2402
3138
  this._subs = [];
2403
3139
  this._effects = _effects;
3140
+ this.customRanges = this._config.ranges;
2404
3141
  _renderer.setStyle(_element.nativeElement, 'display', 'block');
2405
3142
  _renderer.setStyle(_element.nativeElement, 'position', 'absolute');
2406
3143
  }
@@ -2456,7 +3193,10 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
2456
3193
  * @param {?} date
2457
3194
  * @return {?}
2458
3195
  */
2459
- date => this.valueChange.emit(date))));
3196
+ date => {
3197
+ this.valueChange.emit(date);
3198
+ this.chosenRange = date;
3199
+ })));
2460
3200
  }
2461
3201
  /**
2462
3202
  * @return {?}
@@ -2475,6 +3215,9 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
2475
3215
  * @return {?}
2476
3216
  */
2477
3217
  daySelectHandler(day) {
3218
+ if (!day) {
3219
+ return;
3220
+ }
2478
3221
  /** @type {?} */
2479
3222
  const isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2480
3223
  if (isDisabled) {
@@ -2508,12 +3251,20 @@ class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent
2508
3251
  }
2509
3252
  this._effects.destroy();
2510
3253
  }
3254
+ /**
3255
+ * @param {?} dates
3256
+ * @return {?}
3257
+ */
3258
+ setRangeOnCalendar(dates) {
3259
+ this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
3260
+ this._store.dispatch(this._actions.selectRange(this._rangeStack));
3261
+ }
2511
3262
  }
2512
3263
  BsDaterangepickerContainerComponent.decorators = [
2513
3264
  { type: Component, args: [{
2514
3265
  selector: 'bs-daterangepicker-container',
2515
3266
  providers: [BsDatepickerStore, BsDatepickerEffects],
2516
- 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",
3267
+ 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",
2517
3268
  host: {
2518
3269
  class: 'bottom',
2519
3270
  '(click)': '_stopPropagation($event)',
@@ -2533,6 +3284,43 @@ BsDaterangepickerContainerComponent.ctorParameters = () => [
2533
3284
  { type: BsDatepickerEffects },
2534
3285
  { type: PositioningService }
2535
3286
  ];
3287
+ if (false) {
3288
+ /** @type {?} */
3289
+ BsDaterangepickerContainerComponent.prototype.valueChange;
3290
+ /** @type {?} */
3291
+ BsDaterangepickerContainerComponent.prototype.animationState;
3292
+ /** @type {?} */
3293
+ BsDaterangepickerContainerComponent.prototype._rangeStack;
3294
+ /** @type {?} */
3295
+ BsDaterangepickerContainerComponent.prototype.chosenRange;
3296
+ /** @type {?} */
3297
+ BsDaterangepickerContainerComponent.prototype._subs;
3298
+ /**
3299
+ * @type {?}
3300
+ * @private
3301
+ */
3302
+ BsDaterangepickerContainerComponent.prototype._config;
3303
+ /**
3304
+ * @type {?}
3305
+ * @private
3306
+ */
3307
+ BsDaterangepickerContainerComponent.prototype._store;
3308
+ /**
3309
+ * @type {?}
3310
+ * @private
3311
+ */
3312
+ BsDaterangepickerContainerComponent.prototype._element;
3313
+ /**
3314
+ * @type {?}
3315
+ * @private
3316
+ */
3317
+ BsDaterangepickerContainerComponent.prototype._actions;
3318
+ /**
3319
+ * @type {?}
3320
+ * @private
3321
+ */
3322
+ BsDaterangepickerContainerComponent.prototype._positionService;
3323
+ }
2536
3324
 
2537
3325
  /**
2538
3326
  * @fileoverview added by tsickle
@@ -2558,7 +3346,7 @@ BsDaterangepickerInlineContainerComponent.decorators = [
2558
3346
  { type: Component, args: [{
2559
3347
  selector: 'bs-daterangepicker-inline-container',
2560
3348
  providers: [BsDatepickerStore, BsDatepickerEffects],
2561
- 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",
3349
+ 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",
2562
3350
  host: {
2563
3351
  '(click)': '_stopPropagation($event)'
2564
3352
  },
@@ -2617,11 +3405,6 @@ class BsDaterangepickerInlineDirective {
2617
3405
  */
2618
3406
  ngOnInit() {
2619
3407
  this.setConfig();
2620
- this._datepickerRef = this._datepicker
2621
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
2622
- .attach(BsDaterangepickerInlineContainerComponent)
2623
- .to(this._elementRef)
2624
- .show();
2625
3408
  // if date changes from external source (model -> view)
2626
3409
  this._subs.push(this.bsValueChange.subscribe((/**
2627
3410
  * @param {?} value
@@ -2655,18 +3438,30 @@ class BsDaterangepickerInlineDirective {
2655
3438
  }
2656
3439
  if (changes.minDate) {
2657
3440
  this._datepickerRef.instance.minDate = this.minDate;
3441
+ this.setConfig();
2658
3442
  }
2659
3443
  if (changes.maxDate) {
2660
3444
  this._datepickerRef.instance.maxDate = this.maxDate;
3445
+ this.setConfig();
3446
+ }
3447
+ if (changes.datesEnabled) {
3448
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2661
3449
  }
2662
3450
  if (changes.datesDisabled) {
2663
3451
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3452
+ this.setConfig();
3453
+ }
3454
+ if (changes.daysDisabled) {
3455
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
3456
+ this.setConfig();
2664
3457
  }
2665
3458
  if (changes.isDisabled) {
2666
3459
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3460
+ this.setConfig();
2667
3461
  }
2668
3462
  if (changes.dateCustomClasses) {
2669
3463
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3464
+ this.setConfig();
2670
3465
  }
2671
3466
  }
2672
3467
  /**
@@ -2674,14 +3469,25 @@ class BsDaterangepickerInlineDirective {
2674
3469
  * @return {?}
2675
3470
  */
2676
3471
  setConfig() {
3472
+ if (this._datepicker) {
3473
+ this._datepicker.hide();
3474
+ }
2677
3475
  this._config = Object.assign({}, this._config, this.bsConfig, {
2678
3476
  value: this._bsValue,
2679
3477
  isDisabled: this.isDisabled,
2680
3478
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
2681
3479
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
3480
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
2682
3481
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2683
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
3482
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3483
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
3484
+ ranges: this.bsConfig && this.bsConfig.ranges
2684
3485
  });
3486
+ this._datepickerRef = this._datepicker
3487
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
3488
+ .attach(BsDaterangepickerInlineContainerComponent)
3489
+ .to(this._elementRef)
3490
+ .show();
2685
3491
  }
2686
3492
  /**
2687
3493
  * @return {?}
@@ -2711,9 +3517,82 @@ BsDaterangepickerInlineDirective.propDecorators = {
2711
3517
  minDate: [{ type: Input }],
2712
3518
  maxDate: [{ type: Input }],
2713
3519
  dateCustomClasses: [{ type: Input }],
3520
+ daysDisabled: [{ type: Input }],
2714
3521
  datesDisabled: [{ type: Input }],
3522
+ datesEnabled: [{ type: Input }],
2715
3523
  bsValueChange: [{ type: Output }]
2716
3524
  };
3525
+ if (false) {
3526
+ /** @type {?} */
3527
+ BsDaterangepickerInlineDirective.prototype._bsValue;
3528
+ /**
3529
+ * Config object for datepicker
3530
+ * @type {?}
3531
+ */
3532
+ BsDaterangepickerInlineDirective.prototype.bsConfig;
3533
+ /**
3534
+ * Indicates whether datepicker is enabled or not
3535
+ * @type {?}
3536
+ */
3537
+ BsDaterangepickerInlineDirective.prototype.isDisabled;
3538
+ /**
3539
+ * Minimum date which is available for selection
3540
+ * @type {?}
3541
+ */
3542
+ BsDaterangepickerInlineDirective.prototype.minDate;
3543
+ /**
3544
+ * Maximum date which is available for selection
3545
+ * @type {?}
3546
+ */
3547
+ BsDaterangepickerInlineDirective.prototype.maxDate;
3548
+ /**
3549
+ * Date custom classes
3550
+ * @type {?}
3551
+ */
3552
+ BsDaterangepickerInlineDirective.prototype.dateCustomClasses;
3553
+ /**
3554
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
3555
+ * @type {?}
3556
+ */
3557
+ BsDaterangepickerInlineDirective.prototype.daysDisabled;
3558
+ /**
3559
+ * Disable specific dates
3560
+ * @type {?}
3561
+ */
3562
+ BsDaterangepickerInlineDirective.prototype.datesDisabled;
3563
+ /**
3564
+ * Disable specific dates
3565
+ * @type {?}
3566
+ */
3567
+ BsDaterangepickerInlineDirective.prototype.datesEnabled;
3568
+ /**
3569
+ * Emits when daterangepicker value has been changed
3570
+ * @type {?}
3571
+ */
3572
+ BsDaterangepickerInlineDirective.prototype.bsValueChange;
3573
+ /**
3574
+ * @type {?}
3575
+ * @protected
3576
+ */
3577
+ BsDaterangepickerInlineDirective.prototype._subs;
3578
+ /**
3579
+ * @type {?}
3580
+ * @private
3581
+ */
3582
+ BsDaterangepickerInlineDirective.prototype._datepicker;
3583
+ /**
3584
+ * @type {?}
3585
+ * @private
3586
+ */
3587
+ BsDaterangepickerInlineDirective.prototype._datepickerRef;
3588
+ /** @type {?} */
3589
+ BsDaterangepickerInlineDirective.prototype._config;
3590
+ /**
3591
+ * @type {?}
3592
+ * @private
3593
+ */
3594
+ BsDaterangepickerInlineDirective.prototype._elementRef;
3595
+ }
2717
3596
 
2718
3597
  /**
2719
3598
  * @fileoverview added by tsickle
@@ -2779,6 +3658,15 @@ class BsDatepickerInputDirective {
2779
3658
  this._setInputValue(this._value);
2780
3659
  }));
2781
3660
  }
3661
+ /**
3662
+ * @param {?} event
3663
+ * @return {?}
3664
+ */
3665
+ onKeydownEvent(event) {
3666
+ if (event.keyCode === 13 || event.code === 'Enter') {
3667
+ this.hide();
3668
+ }
3669
+ }
2782
3670
  /**
2783
3671
  * @param {?} value
2784
3672
  * @return {?}
@@ -2797,6 +3685,9 @@ class BsDatepickerInputDirective {
2797
3685
  /* tslint:disable-next-line: no-any*/
2798
3686
  this.writeValue(((/** @type {?} */ (event.target))).value);
2799
3687
  this._onChange(this._value);
3688
+ if (this._picker._config.returnFocusToInput) {
3689
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
3690
+ }
2800
3691
  this._onTouched();
2801
3692
  }
2802
3693
  /**
@@ -2817,9 +3708,11 @@ class BsDatepickerInputDirective {
2817
3708
  return { bsDate: { invalid: _value } };
2818
3709
  }
2819
3710
  if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {
3711
+ this.writeValue(this._picker.minDate);
2820
3712
  return { bsDate: { minDate: this._picker.minDate } };
2821
3713
  }
2822
3714
  if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {
3715
+ this.writeValue(this._picker.maxDate);
2823
3716
  return { bsDate: { maxDate: this._picker.maxDate } };
2824
3717
  }
2825
3718
  }
@@ -2892,6 +3785,9 @@ class BsDatepickerInputDirective {
2892
3785
  hide() {
2893
3786
  this._picker.hide();
2894
3787
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
3788
+ if (this._picker._config.returnFocusToInput) {
3789
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
3790
+ }
2895
3791
  }
2896
3792
  }
2897
3793
  BsDatepickerInputDirective.decorators = [
@@ -2900,6 +3796,7 @@ BsDatepickerInputDirective.decorators = [
2900
3796
  host: {
2901
3797
  '(change)': 'onChange($event)',
2902
3798
  '(keyup.esc)': 'hide()',
3799
+ '(keydown)': 'onKeydownEvent($event)',
2903
3800
  '(blur)': 'onBlur()'
2904
3801
  },
2905
3802
  providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]
@@ -2913,6 +3810,53 @@ BsDatepickerInputDirective.ctorParameters = () => [
2913
3810
  { type: ElementRef },
2914
3811
  { type: ChangeDetectorRef }
2915
3812
  ];
3813
+ if (false) {
3814
+ /**
3815
+ * @type {?}
3816
+ * @private
3817
+ */
3818
+ BsDatepickerInputDirective.prototype._onChange;
3819
+ /**
3820
+ * @type {?}
3821
+ * @private
3822
+ */
3823
+ BsDatepickerInputDirective.prototype._onTouched;
3824
+ /**
3825
+ * @type {?}
3826
+ * @private
3827
+ */
3828
+ BsDatepickerInputDirective.prototype._validatorChange;
3829
+ /**
3830
+ * @type {?}
3831
+ * @private
3832
+ */
3833
+ BsDatepickerInputDirective.prototype._value;
3834
+ /**
3835
+ * @type {?}
3836
+ * @private
3837
+ */
3838
+ BsDatepickerInputDirective.prototype._picker;
3839
+ /**
3840
+ * @type {?}
3841
+ * @private
3842
+ */
3843
+ BsDatepickerInputDirective.prototype._localeService;
3844
+ /**
3845
+ * @type {?}
3846
+ * @private
3847
+ */
3848
+ BsDatepickerInputDirective.prototype._renderer;
3849
+ /**
3850
+ * @type {?}
3851
+ * @private
3852
+ */
3853
+ BsDatepickerInputDirective.prototype._elRef;
3854
+ /**
3855
+ * @type {?}
3856
+ * @private
3857
+ */
3858
+ BsDatepickerInputDirective.prototype.changeDetection;
3859
+ }
2916
3860
 
2917
3861
  /**
2918
3862
  * @fileoverview added by tsickle
@@ -2928,6 +3872,10 @@ class BsDaterangepickerConfig extends BsDatepickerConfig {
2928
3872
  BsDaterangepickerConfig.decorators = [
2929
3873
  { type: Injectable }
2930
3874
  ];
3875
+ if (false) {
3876
+ /** @type {?} */
3877
+ BsDaterangepickerConfig.prototype.displayMonths;
3878
+ }
2931
3879
 
2932
3880
  /**
2933
3881
  * @fileoverview added by tsickle
@@ -2943,6 +3891,8 @@ class BsDaterangepickerDirective {
2943
3891
  */
2944
3892
  constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {
2945
3893
  this._config = _config;
3894
+ this._elementRef = _elementRef;
3895
+ this._renderer = _renderer;
2946
3896
  /**
2947
3897
  * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
2948
3898
  */
@@ -2970,6 +3920,7 @@ class BsDaterangepickerDirective {
2970
3920
  Object.assign(this, _config);
2971
3921
  this.onShown = this._datepicker.onShown;
2972
3922
  this.onHidden = this._datepicker.onHidden;
3923
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
2973
3924
  }
2974
3925
  /**
2975
3926
  * Returns whether or not the daterangepicker is currently being shown
@@ -2983,12 +3934,7 @@ class BsDaterangepickerDirective {
2983
3934
  * @return {?}
2984
3935
  */
2985
3936
  set isOpen(value) {
2986
- if (value) {
2987
- this.show();
2988
- }
2989
- else {
2990
- this.hide();
2991
- }
3937
+ this.isOpen$.next(value);
2992
3938
  }
2993
3939
  /**
2994
3940
  * Initial value of daterangepicker
@@ -3006,6 +3952,7 @@ class BsDaterangepickerDirective {
3006
3952
  * @return {?}
3007
3953
  */
3008
3954
  ngOnInit() {
3955
+ this.isDestroy$ = new Subject();
3009
3956
  this._datepicker.listen({
3010
3957
  outsideClick: this.outsideClick,
3011
3958
  outsideEsc: this.outsideEsc,
@@ -3034,6 +3981,12 @@ class BsDaterangepickerDirective {
3034
3981
  if (changes.datesDisabled) {
3035
3982
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3036
3983
  }
3984
+ if (changes.datesEnabled) {
3985
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
3986
+ }
3987
+ if (changes.daysDisabled) {
3988
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
3989
+ }
3037
3990
  if (changes.isDisabled) {
3038
3991
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3039
3992
  }
@@ -3041,6 +3994,20 @@ class BsDaterangepickerDirective {
3041
3994
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3042
3995
  }
3043
3996
  }
3997
+ /**
3998
+ * @return {?}
3999
+ */
4000
+ ngAfterViewInit() {
4001
+ this.isOpen$.pipe(filter((/**
4002
+ * @param {?} isOpen
4003
+ * @return {?}
4004
+ */
4005
+ isOpen => isOpen !== this.isOpen)), takeUntil(this.isDestroy$))
4006
+ .subscribe((/**
4007
+ * @return {?}
4008
+ */
4009
+ () => this.toggle()));
4010
+ }
3044
4011
  /**
3045
4012
  * Opens an element’s datepicker. This is considered a “manual” triggering of
3046
4013
  * the datepicker.
@@ -3091,8 +4058,11 @@ class BsDaterangepickerDirective {
3091
4058
  isDisabled: this.isDisabled,
3092
4059
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3093
4060
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
4061
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3094
4062
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3095
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
4063
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4064
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4065
+ ranges: this.bsConfig && this.bsConfig.ranges
3096
4066
  });
3097
4067
  }
3098
4068
  /**
@@ -3107,6 +4077,9 @@ class BsDaterangepickerDirective {
3107
4077
  for (const sub of this._subs) {
3108
4078
  sub.unsubscribe();
3109
4079
  }
4080
+ if (this._config.returnFocusToInput) {
4081
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
4082
+ }
3110
4083
  }
3111
4084
  /**
3112
4085
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -3124,6 +4097,11 @@ class BsDaterangepickerDirective {
3124
4097
  */
3125
4098
  ngOnDestroy() {
3126
4099
  this._datepicker.dispose();
4100
+ this.isOpen$.next(false);
4101
+ if (this.isDestroy$) {
4102
+ this.isDestroy$.next();
4103
+ this.isDestroy$.complete();
4104
+ }
3127
4105
  }
3128
4106
  }
3129
4107
  BsDaterangepickerDirective.decorators = [
@@ -3155,9 +4133,124 @@ BsDaterangepickerDirective.propDecorators = {
3155
4133
  minDate: [{ type: Input }],
3156
4134
  maxDate: [{ type: Input }],
3157
4135
  dateCustomClasses: [{ type: Input }],
4136
+ daysDisabled: [{ type: Input }],
3158
4137
  datesDisabled: [{ type: Input }],
4138
+ datesEnabled: [{ type: Input }],
3159
4139
  bsValueChange: [{ type: Output }]
3160
4140
  };
4141
+ if (false) {
4142
+ /**
4143
+ * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
4144
+ * @type {?}
4145
+ */
4146
+ BsDaterangepickerDirective.prototype.placement;
4147
+ /**
4148
+ * Specifies events that should trigger. Supports a space separated list of
4149
+ * event names.
4150
+ * @type {?}
4151
+ */
4152
+ BsDaterangepickerDirective.prototype.triggers;
4153
+ /**
4154
+ * Close daterangepicker on outside click
4155
+ * @type {?}
4156
+ */
4157
+ BsDaterangepickerDirective.prototype.outsideClick;
4158
+ /**
4159
+ * A selector specifying the element the daterangepicker should be appended to.
4160
+ * @type {?}
4161
+ */
4162
+ BsDaterangepickerDirective.prototype.container;
4163
+ /** @type {?} */
4164
+ BsDaterangepickerDirective.prototype.outsideEsc;
4165
+ /**
4166
+ * Emits an event when the daterangepicker is shown
4167
+ * @type {?}
4168
+ */
4169
+ BsDaterangepickerDirective.prototype.onShown;
4170
+ /**
4171
+ * Emits an event when the daterangepicker is hidden
4172
+ * @type {?}
4173
+ */
4174
+ BsDaterangepickerDirective.prototype.onHidden;
4175
+ /** @type {?} */
4176
+ BsDaterangepickerDirective.prototype._bsValue;
4177
+ /** @type {?} */
4178
+ BsDaterangepickerDirective.prototype.isOpen$;
4179
+ /** @type {?} */
4180
+ BsDaterangepickerDirective.prototype.isDestroy$;
4181
+ /**
4182
+ * Config object for daterangepicker
4183
+ * @type {?}
4184
+ */
4185
+ BsDaterangepickerDirective.prototype.bsConfig;
4186
+ /**
4187
+ * Indicates whether daterangepicker's content is enabled or not
4188
+ * @type {?}
4189
+ */
4190
+ BsDaterangepickerDirective.prototype.isDisabled;
4191
+ /**
4192
+ * Minimum date which is available for selection
4193
+ * @type {?}
4194
+ */
4195
+ BsDaterangepickerDirective.prototype.minDate;
4196
+ /**
4197
+ * Maximum date which is available for selection
4198
+ * @type {?}
4199
+ */
4200
+ BsDaterangepickerDirective.prototype.maxDate;
4201
+ /**
4202
+ * Date custom classes
4203
+ * @type {?}
4204
+ */
4205
+ BsDaterangepickerDirective.prototype.dateCustomClasses;
4206
+ /**
4207
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
4208
+ * @type {?}
4209
+ */
4210
+ BsDaterangepickerDirective.prototype.daysDisabled;
4211
+ /**
4212
+ * Disable specific dates
4213
+ * @type {?}
4214
+ */
4215
+ BsDaterangepickerDirective.prototype.datesDisabled;
4216
+ /**
4217
+ * Enable specific dates
4218
+ * @type {?}
4219
+ */
4220
+ BsDaterangepickerDirective.prototype.datesEnabled;
4221
+ /**
4222
+ * Emits when daterangepicker value has been changed
4223
+ * @type {?}
4224
+ */
4225
+ BsDaterangepickerDirective.prototype.bsValueChange;
4226
+ /**
4227
+ * @type {?}
4228
+ * @protected
4229
+ */
4230
+ BsDaterangepickerDirective.prototype._subs;
4231
+ /**
4232
+ * @type {?}
4233
+ * @private
4234
+ */
4235
+ BsDaterangepickerDirective.prototype._datepicker;
4236
+ /**
4237
+ * @type {?}
4238
+ * @private
4239
+ */
4240
+ BsDaterangepickerDirective.prototype._datepickerRef;
4241
+ /** @type {?} */
4242
+ BsDaterangepickerDirective.prototype._config;
4243
+ /**
4244
+ * @type {?}
4245
+ * @private
4246
+ */
4247
+ BsDaterangepickerDirective.prototype._elementRef;
4248
+ /**
4249
+ * @type {?}
4250
+ * @private
4251
+ */
4252
+ BsDaterangepickerDirective.prototype._renderer;
4253
+ }
3161
4254
 
3162
4255
  /**
3163
4256
  * @fileoverview added by tsickle
@@ -3223,6 +4316,15 @@ class BsDaterangepickerInputDirective {
3223
4316
  this._setInputValue(this._value);
3224
4317
  }));
3225
4318
  }
4319
+ /**
4320
+ * @param {?} event
4321
+ * @return {?}
4322
+ */
4323
+ onKeydownEvent(event) {
4324
+ if (event.keyCode === 13 || event.code === 'Enter') {
4325
+ this.hide();
4326
+ }
4327
+ }
3226
4328
  /**
3227
4329
  * @param {?} date
3228
4330
  * @return {?}
@@ -3249,6 +4351,9 @@ class BsDaterangepickerInputDirective {
3249
4351
  /* tslint:disable-next-line: no-any*/
3250
4352
  this.writeValue(((/** @type {?} */ (event.target))).value);
3251
4353
  this._onChange(this._value);
4354
+ if (this._picker._config.returnFocusToInput) {
4355
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4356
+ }
3252
4357
  this._onTouched();
3253
4358
  }
3254
4359
  /**
@@ -3258,9 +4363,18 @@ class BsDaterangepickerInputDirective {
3258
4363
  validate(c) {
3259
4364
  /** @type {?} */
3260
4365
  const _value = c.value;
4366
+ /** @type {?} */
4367
+ const errors = [];
3261
4368
  if (_value === null || _value === undefined || !isArray(_value)) {
3262
4369
  return null;
3263
4370
  }
4371
+ // @ts-ignore
4372
+ _value.sort((/**
4373
+ * @param {?} a
4374
+ * @param {?} b
4375
+ * @return {?}
4376
+ */
4377
+ (a, b) => a - b));
3264
4378
  /** @type {?} */
3265
4379
  const _isFirstDateValid = isDateValid(_value[0]);
3266
4380
  /** @type {?} */
@@ -3272,10 +4386,16 @@ class BsDaterangepickerInputDirective {
3272
4386
  return { bsDate: { invalid: _value[1] } };
3273
4387
  }
3274
4388
  if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {
3275
- return { bsDate: { minDate: this._picker.minDate } };
4389
+ _value[0] = this._picker.minDate;
4390
+ errors.push({ bsDate: { minDate: this._picker.minDate } });
3276
4391
  }
3277
4392
  if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {
3278
- return { bsDate: { maxDate: this._picker.maxDate } };
4393
+ _value[1] = this._picker.maxDate;
4394
+ errors.push({ bsDate: { maxDate: this._picker.maxDate } });
4395
+ }
4396
+ if (errors.length > 0) {
4397
+ this.writeValue(_value);
4398
+ return errors;
3279
4399
  }
3280
4400
  }
3281
4401
  /**
@@ -3368,6 +4488,9 @@ class BsDaterangepickerInputDirective {
3368
4488
  hide() {
3369
4489
  this._picker.hide();
3370
4490
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
4491
+ if (this._picker._config.returnFocusToInput) {
4492
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4493
+ }
3371
4494
  }
3372
4495
  }
3373
4496
  BsDaterangepickerInputDirective.decorators = [
@@ -3376,6 +4499,7 @@ BsDaterangepickerInputDirective.decorators = [
3376
4499
  host: {
3377
4500
  '(change)': 'onChange($event)',
3378
4501
  '(keyup.esc)': 'hide()',
4502
+ '(keydown)': 'onKeydownEvent($event)',
3379
4503
  '(blur)': 'onBlur()'
3380
4504
  },
3381
4505
  providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]
@@ -3389,6 +4513,53 @@ BsDaterangepickerInputDirective.ctorParameters = () => [
3389
4513
  { type: ElementRef },
3390
4514
  { type: ChangeDetectorRef }
3391
4515
  ];
4516
+ if (false) {
4517
+ /**
4518
+ * @type {?}
4519
+ * @private
4520
+ */
4521
+ BsDaterangepickerInputDirective.prototype._onChange;
4522
+ /**
4523
+ * @type {?}
4524
+ * @private
4525
+ */
4526
+ BsDaterangepickerInputDirective.prototype._onTouched;
4527
+ /**
4528
+ * @type {?}
4529
+ * @private
4530
+ */
4531
+ BsDaterangepickerInputDirective.prototype._validatorChange;
4532
+ /**
4533
+ * @type {?}
4534
+ * @private
4535
+ */
4536
+ BsDaterangepickerInputDirective.prototype._value;
4537
+ /**
4538
+ * @type {?}
4539
+ * @private
4540
+ */
4541
+ BsDaterangepickerInputDirective.prototype._picker;
4542
+ /**
4543
+ * @type {?}
4544
+ * @private
4545
+ */
4546
+ BsDaterangepickerInputDirective.prototype._localeService;
4547
+ /**
4548
+ * @type {?}
4549
+ * @private
4550
+ */
4551
+ BsDaterangepickerInputDirective.prototype._renderer;
4552
+ /**
4553
+ * @type {?}
4554
+ * @private
4555
+ */
4556
+ BsDaterangepickerInputDirective.prototype._elRef;
4557
+ /**
4558
+ * @type {?}
4559
+ * @private
4560
+ */
4561
+ BsDaterangepickerInputDirective.prototype.changeDetection;
4562
+ }
3392
4563
 
3393
4564
  /**
3394
4565
  * @fileoverview added by tsickle
@@ -3433,29 +4604,87 @@ BsCurrentDateViewComponent.decorators = [
3433
4604
  BsCurrentDateViewComponent.propDecorators = {
3434
4605
  title: [{ type: Input }]
3435
4606
  };
4607
+ if (false) {
4608
+ /** @type {?} */
4609
+ BsCurrentDateViewComponent.prototype.title;
4610
+ }
3436
4611
 
3437
4612
  /**
3438
4613
  * @fileoverview added by tsickle
3439
4614
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3440
4615
  */
4616
+ /**
4617
+ * @record
4618
+ */
4619
+ function BsCustomDates() { }
4620
+ if (false) {
4621
+ /** @type {?} */
4622
+ BsCustomDates.prototype.label;
4623
+ /** @type {?} */
4624
+ BsCustomDates.prototype.value;
4625
+ }
3441
4626
  class BsCustomDatesViewComponent {
4627
+ constructor() {
4628
+ this.onSelect = new EventEmitter();
4629
+ this.customRange = null;
4630
+ }
4631
+ /**
4632
+ * @param {?} range
4633
+ * @return {?}
4634
+ */
4635
+ selectFromRanges(range) {
4636
+ this.onSelect.emit(range);
4637
+ }
4638
+ /**
4639
+ * @return {?}
4640
+ */
4641
+ checkRange() {
4642
+ return this.ranges ? this.ranges.filter((/**
4643
+ * @param {?} range
4644
+ * @return {?}
4645
+ */
4646
+ range => range.value === this.selectedRange)).length > 0 : false;
4647
+ }
3442
4648
  }
3443
4649
  BsCustomDatesViewComponent.decorators = [
3444
4650
  { type: Component, args: [{
3445
4651
  selector: 'bs-custom-date-view',
3446
4652
  template: `
3447
4653
  <div class="bs-datepicker-predefined-btns">
3448
- <button *ngFor="let range of ranges" type="button">{{ range.label }}</button>
3449
- <button *ngIf="isCustomRangeShown" type="button">Custom Range</button>
4654
+ <button *ngFor="let range of ranges"
4655
+ type="button"
4656
+ class="btn"
4657
+ (click)="selectFromRanges(range)"
4658
+ [class.selected]="range.value === selectedRange">
4659
+ {{ range.label }}
4660
+ </button>
4661
+ <button
4662
+ type="button"
4663
+ class="btn"
4664
+ (click)="selectFromRanges(customRange)"
4665
+ [class.selected]="!checkRange()">
4666
+ Custom Range
4667
+ </button>
3450
4668
  </div>
3451
4669
  `,
3452
4670
  changeDetection: ChangeDetectionStrategy.OnPush
3453
4671
  }] }
3454
4672
  ];
3455
4673
  BsCustomDatesViewComponent.propDecorators = {
3456
- isCustomRangeShown: [{ type: Input }],
3457
- ranges: [{ type: Input }]
4674
+ ranges: [{ type: Input }],
4675
+ selectedRange: [{ type: Input }],
4676
+ onSelect: [{ type: Output }]
3458
4677
  };
4678
+ if (false) {
4679
+ /** @type {?} */
4680
+ BsCustomDatesViewComponent.prototype.ranges;
4681
+ /** @type {?} */
4682
+ BsCustomDatesViewComponent.prototype.selectedRange;
4683
+ /** @type {?} */
4684
+ BsCustomDatesViewComponent.prototype.onSelect;
4685
+ /** @type {?} */
4686
+ BsCustomDatesViewComponent.prototype.customRange;
4687
+ }
3459
4688
 
3460
4689
  /**
3461
4690
  * @fileoverview added by tsickle
@@ -3522,11 +4751,199 @@ BsDatepickerDayDecoratorComponent.ctorParameters = () => [
3522
4751
  BsDatepickerDayDecoratorComponent.propDecorators = {
3523
4752
  day: [{ type: Input }]
3524
4753
  };
4754
+ if (false) {
4755
+ /** @type {?} */
4756
+ BsDatepickerDayDecoratorComponent.prototype.day;
4757
+ /**
4758
+ * @type {?}
4759
+ * @private
4760
+ */
4761
+ BsDatepickerDayDecoratorComponent.prototype._config;
4762
+ /**
4763
+ * @type {?}
4764
+ * @private
4765
+ */
4766
+ BsDatepickerDayDecoratorComponent.prototype._elRef;
4767
+ /**
4768
+ * @type {?}
4769
+ * @private
4770
+ */
4771
+ BsDatepickerDayDecoratorComponent.prototype._renderer;
4772
+ }
3525
4773
 
3526
4774
  /**
3527
- * @fileoverview added by tsickle
3528
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4775
+ * @fileoverview added by tsickle
4776
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4777
+ */
4778
+ /**
4779
+ * **************
4780
+ * @record
4781
+ */
4782
+ function NavigationViewModel() { }
4783
+ if (false) {
4784
+ /** @type {?} */
4785
+ NavigationViewModel.prototype.monthTitle;
4786
+ /** @type {?} */
4787
+ NavigationViewModel.prototype.yearTitle;
4788
+ /** @type {?|undefined} */
4789
+ NavigationViewModel.prototype.hideLeftArrow;
4790
+ /** @type {?|undefined} */
4791
+ NavigationViewModel.prototype.hideRightArrow;
4792
+ /** @type {?|undefined} */
4793
+ NavigationViewModel.prototype.disableLeftArrow;
4794
+ /** @type {?|undefined} */
4795
+ NavigationViewModel.prototype.disableRightArrow;
4796
+ }
4797
+ /**
4798
+ * @record
4799
+ */
4800
+ function CalendarCellViewModel() { }
4801
+ if (false) {
4802
+ /** @type {?} */
4803
+ CalendarCellViewModel.prototype.date;
4804
+ /** @type {?} */
4805
+ CalendarCellViewModel.prototype.label;
4806
+ /** @type {?|undefined} */
4807
+ CalendarCellViewModel.prototype.isDisabled;
4808
+ /** @type {?|undefined} */
4809
+ CalendarCellViewModel.prototype.isHovered;
4810
+ /** @type {?|undefined} */
4811
+ CalendarCellViewModel.prototype.isSelected;
4812
+ }
4813
+ /**
4814
+ * **************
4815
+ * @record
4816
+ */
4817
+ function DayViewModel() { }
4818
+ if (false) {
4819
+ /** @type {?|undefined} */
4820
+ DayViewModel.prototype.isOtherMonthHovered;
4821
+ /** @type {?|undefined} */
4822
+ DayViewModel.prototype.isOtherMonth;
4823
+ /** @type {?|undefined} */
4824
+ DayViewModel.prototype.isInRange;
4825
+ /** @type {?|undefined} */
4826
+ DayViewModel.prototype.isSelectionStart;
4827
+ /** @type {?|undefined} */
4828
+ DayViewModel.prototype.isSelectionEnd;
4829
+ /** @type {?|undefined} */
4830
+ DayViewModel.prototype.isToday;
4831
+ /** @type {?|undefined} */
4832
+ DayViewModel.prototype.customClasses;
4833
+ /** @type {?|undefined} */
4834
+ DayViewModel.prototype.monthIndex;
4835
+ /** @type {?|undefined} */
4836
+ DayViewModel.prototype.weekIndex;
4837
+ /** @type {?|undefined} */
4838
+ DayViewModel.prototype.dayIndex;
4839
+ }
4840
+ /**
4841
+ * @record
4842
+ */
4843
+ function WeekViewModel() { }
4844
+ if (false) {
4845
+ /** @type {?} */
4846
+ WeekViewModel.prototype.days;
4847
+ /** @type {?|undefined} */
4848
+ WeekViewModel.prototype.isHovered;
4849
+ }
4850
+ /**
4851
+ * @record
4852
+ */
4853
+ function DaysCalendarViewModel() { }
4854
+ if (false) {
4855
+ /** @type {?} */
4856
+ DaysCalendarViewModel.prototype.weeks;
4857
+ /** @type {?} */
4858
+ DaysCalendarViewModel.prototype.month;
4859
+ /** @type {?} */
4860
+ DaysCalendarViewModel.prototype.weekNumbers;
4861
+ /** @type {?} */
4862
+ DaysCalendarViewModel.prototype.weekdays;
4863
+ }
4864
+ /**
4865
+ * **************
4866
+ * @record
4867
+ */
4868
+ function MonthsCalendarViewModel() { }
4869
+ if (false) {
4870
+ /** @type {?} */
4871
+ MonthsCalendarViewModel.prototype.months;
4872
+ }
4873
+ /**
4874
+ * **************
4875
+ * @record
4876
+ */
4877
+ function YearsCalendarViewModel() { }
4878
+ if (false) {
4879
+ /** @type {?} */
4880
+ YearsCalendarViewModel.prototype.years;
4881
+ }
4882
+ /**
4883
+ * **************
4884
+ * @record
4885
+ */
4886
+ function DaysCalendarModel() { }
4887
+ if (false) {
4888
+ /** @type {?} */
4889
+ DaysCalendarModel.prototype.daysMatrix;
4890
+ /** @type {?} */
4891
+ DaysCalendarModel.prototype.month;
4892
+ }
4893
+ /**
4894
+ * **************
4895
+ * @record
4896
+ */
4897
+ function MonthViewOptions() { }
4898
+ if (false) {
4899
+ /** @type {?|undefined} */
4900
+ MonthViewOptions.prototype.width;
4901
+ /** @type {?|undefined} */
4902
+ MonthViewOptions.prototype.height;
4903
+ /** @type {?|undefined} */
4904
+ MonthViewOptions.prototype.firstDayOfWeek;
4905
+ }
4906
+ /**
4907
+ * **************
4908
+ * @record
4909
+ */
4910
+ function DatepickerFormatOptions() { }
4911
+ if (false) {
4912
+ /** @type {?} */
4913
+ DatepickerFormatOptions.prototype.locale;
4914
+ /** @type {?} */
4915
+ DatepickerFormatOptions.prototype.monthTitle;
4916
+ /** @type {?} */
4917
+ DatepickerFormatOptions.prototype.yearTitle;
4918
+ /** @type {?} */
4919
+ DatepickerFormatOptions.prototype.dayLabel;
4920
+ /** @type {?} */
4921
+ DatepickerFormatOptions.prototype.monthLabel;
4922
+ /** @type {?} */
4923
+ DatepickerFormatOptions.prototype.yearLabel;
4924
+ /** @type {?} */
4925
+ DatepickerFormatOptions.prototype.weekNumbers;
4926
+ }
4927
+ /**
4928
+ * @record
4929
+ */
4930
+ function DatepickerRenderOptions() { }
4931
+ if (false) {
4932
+ /** @type {?|undefined} */
4933
+ DatepickerRenderOptions.prototype.showWeekNumbers;
4934
+ /** @type {?|undefined} */
4935
+ DatepickerRenderOptions.prototype.displayMonths;
4936
+ }
4937
+ /**
4938
+ * @record
3529
4939
  */
4940
+ function DatepickerDateCustomClasses() { }
4941
+ if (false) {
4942
+ /** @type {?} */
4943
+ DatepickerDateCustomClasses.prototype.date;
4944
+ /** @type {?} */
4945
+ DatepickerDateCustomClasses.prototype.classes;
4946
+ }
3530
4947
  /** @enum {number} */
3531
4948
  const BsNavigationDirection = {
3532
4949
  UP: 0,
@@ -3534,6 +4951,36 @@ const BsNavigationDirection = {
3534
4951
  };
3535
4952
  BsNavigationDirection[BsNavigationDirection.UP] = 'UP';
3536
4953
  BsNavigationDirection[BsNavigationDirection.DOWN] = 'DOWN';
4954
+ /**
4955
+ * @record
4956
+ */
4957
+ function BsNavigationEvent() { }
4958
+ if (false) {
4959
+ /** @type {?|undefined} */
4960
+ BsNavigationEvent.prototype.direction;
4961
+ /** @type {?|undefined} */
4962
+ BsNavigationEvent.prototype.step;
4963
+ }
4964
+ /**
4965
+ * @record
4966
+ */
4967
+ function BsViewNavigationEvent() { }
4968
+ if (false) {
4969
+ /** @type {?|undefined} */
4970
+ BsViewNavigationEvent.prototype.unit;
4971
+ /** @type {?} */
4972
+ BsViewNavigationEvent.prototype.viewMode;
4973
+ }
4974
+ /**
4975
+ * @record
4976
+ */
4977
+ function CellHoverEvent() { }
4978
+ if (false) {
4979
+ /** @type {?} */
4980
+ CellHoverEvent.prototype.cell;
4981
+ /** @type {?} */
4982
+ CellHoverEvent.prototype.isHovered;
4983
+ }
3537
4984
 
3538
4985
  /**
3539
4986
  * @fileoverview added by tsickle
@@ -3572,15 +5019,16 @@ BsDatepickerNavigationViewComponent.decorators = [
3572
5019
  <span>&lsaquo;</span>
3573
5020
  </button>
3574
5021
 
3575
- &#8203; <!-- zero-width space needed for correct alignement
5022
+ <ng-container *ngIf="calendar.monthTitle">
5023
+ &#8203; <!-- zero-width space needed for correct alignement
3576
5024
  with preserveWhitespaces: false in Angular -->
3577
5025
 
3578
- <button class="current"
3579
- *ngIf="calendar.monthTitle"
5026
+ <button class="current"
3580
5027
  type="button"
3581
- (click)="view('month')">
3582
- <span>{{ calendar.monthTitle }}</span>
3583
- </button>
5028
+ (click)="view('month')"
5029
+ ><span>{{ calendar.monthTitle }}</span>
5030
+ </button>
5031
+ </ng-container>
3584
5032
 
3585
5033
  &#8203; <!-- zero-width space needed for correct alignement
3586
5034
  with preserveWhitespaces: false in Angular -->
@@ -3606,6 +5054,14 @@ BsDatepickerNavigationViewComponent.propDecorators = {
3606
5054
  onNavigate: [{ type: Output }],
3607
5055
  onViewMode: [{ type: Output }]
3608
5056
  };
5057
+ if (false) {
5058
+ /** @type {?} */
5059
+ BsDatepickerNavigationViewComponent.prototype.calendar;
5060
+ /** @type {?} */
5061
+ BsDatepickerNavigationViewComponent.prototype.onNavigate;
5062
+ /** @type {?} */
5063
+ BsDatepickerNavigationViewComponent.prototype.onViewMode;
5064
+ }
3609
5065
 
3610
5066
  /**
3611
5067
  * @fileoverview added by tsickle
@@ -3651,19 +5107,18 @@ class BsDaysCalendarViewComponent {
3651
5107
  * @return {?}
3652
5108
  */
3653
5109
  selectWeek(week) {
3654
- if (!this._config.selectWeek) {
5110
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
5111
+ return;
5112
+ }
5113
+ if (week.days.length === 0) {
3655
5114
  return;
3656
5115
  }
3657
- if (week.days
3658
- && week.days[0]
5116
+ if (this._config.selectWeek && week.days[0]
3659
5117
  && !week.days[0].isDisabled
3660
5118
  && this._config.selectFromOtherMonth) {
3661
5119
  this.onSelect.emit(week.days[0]);
3662
5120
  return;
3663
5121
  }
3664
- if (week.days.length === 0) {
3665
- return;
3666
- }
3667
5122
  /** @type {?} */
3668
5123
  const selectedDay = week.days.find((/**
3669
5124
  * @param {?} day
@@ -3675,6 +5130,21 @@ class BsDaysCalendarViewComponent {
3675
5130
  : !day.isOtherMonth && !day.isDisabled;
3676
5131
  }));
3677
5132
  this.onSelect.emit(selectedDay);
5133
+ if (this._config.selectWeekDateRange) {
5134
+ /** @type {?} */
5135
+ const days = week.days.slice(0);
5136
+ /** @type {?} */
5137
+ const lastDayOfRange = days.reverse().find((/**
5138
+ * @param {?} day
5139
+ * @return {?}
5140
+ */
5141
+ (day) => {
5142
+ return this._config.selectFromOtherMonth
5143
+ ? !day.isDisabled
5144
+ : !day.isOtherMonth && !day.isDisabled;
5145
+ }));
5146
+ this.onSelect.emit(lastDayOfRange);
5147
+ }
3678
5148
  }
3679
5149
  /**
3680
5150
  * @param {?} cell
@@ -3682,7 +5152,7 @@ class BsDaysCalendarViewComponent {
3682
5152
  * @return {?}
3683
5153
  */
3684
5154
  weekHoverHandler(cell, isHovered) {
3685
- if (!this._config.selectWeek) {
5155
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
3686
5156
  return;
3687
5157
  }
3688
5158
  /** @type {?} */
@@ -3772,6 +5242,29 @@ BsDaysCalendarViewComponent.propDecorators = {
3772
5242
  onHover: [{ type: Output }],
3773
5243
  onHoverWeek: [{ type: Output }]
3774
5244
  };
5245
+ if (false) {
5246
+ /** @type {?} */
5247
+ BsDaysCalendarViewComponent.prototype.calendar;
5248
+ /** @type {?} */
5249
+ BsDaysCalendarViewComponent.prototype.options;
5250
+ /** @type {?} */
5251
+ BsDaysCalendarViewComponent.prototype.onNavigate;
5252
+ /** @type {?} */
5253
+ BsDaysCalendarViewComponent.prototype.onViewMode;
5254
+ /** @type {?} */
5255
+ BsDaysCalendarViewComponent.prototype.onSelect;
5256
+ /** @type {?} */
5257
+ BsDaysCalendarViewComponent.prototype.onHover;
5258
+ /** @type {?} */
5259
+ BsDaysCalendarViewComponent.prototype.onHoverWeek;
5260
+ /** @type {?} */
5261
+ BsDaysCalendarViewComponent.prototype.isWeekHovered;
5262
+ /**
5263
+ * @type {?}
5264
+ * @private
5265
+ */
5266
+ BsDaysCalendarViewComponent.prototype._config;
5267
+ }
3775
5268
 
3776
5269
  /**
3777
5270
  * @fileoverview added by tsickle
@@ -3852,6 +5345,18 @@ BsMonthCalendarViewComponent.propDecorators = {
3852
5345
  onSelect: [{ type: Output }],
3853
5346
  onHover: [{ type: Output }]
3854
5347
  };
5348
+ if (false) {
5349
+ /** @type {?} */
5350
+ BsMonthCalendarViewComponent.prototype.calendar;
5351
+ /** @type {?} */
5352
+ BsMonthCalendarViewComponent.prototype.onNavigate;
5353
+ /** @type {?} */
5354
+ BsMonthCalendarViewComponent.prototype.onViewMode;
5355
+ /** @type {?} */
5356
+ BsMonthCalendarViewComponent.prototype.onSelect;
5357
+ /** @type {?} */
5358
+ BsMonthCalendarViewComponent.prototype.onHover;
5359
+ }
3855
5360
 
3856
5361
  /**
3857
5362
  * @fileoverview added by tsickle
@@ -3888,6 +5393,14 @@ BsTimepickerViewComponent.decorators = [
3888
5393
  `
3889
5394
  }] }
3890
5395
  ];
5396
+ if (false) {
5397
+ /** @type {?} */
5398
+ BsTimepickerViewComponent.prototype.ampm;
5399
+ /** @type {?} */
5400
+ BsTimepickerViewComponent.prototype.hours;
5401
+ /** @type {?} */
5402
+ BsTimepickerViewComponent.prototype.minutes;
5403
+ }
3891
5404
 
3892
5405
  /**
3893
5406
  * @fileoverview added by tsickle
@@ -3968,24 +5481,23 @@ BsYearsCalendarViewComponent.propDecorators = {
3968
5481
  onSelect: [{ type: Output }],
3969
5482
  onHover: [{ type: Output }]
3970
5483
  };
5484
+ if (false) {
5485
+ /** @type {?} */
5486
+ BsYearsCalendarViewComponent.prototype.calendar;
5487
+ /** @type {?} */
5488
+ BsYearsCalendarViewComponent.prototype.onNavigate;
5489
+ /** @type {?} */
5490
+ BsYearsCalendarViewComponent.prototype.onViewMode;
5491
+ /** @type {?} */
5492
+ BsYearsCalendarViewComponent.prototype.onSelect;
5493
+ /** @type {?} */
5494
+ BsYearsCalendarViewComponent.prototype.onHover;
5495
+ }
3971
5496
 
3972
5497
  /**
3973
5498
  * @fileoverview added by tsickle
3974
5499
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3975
5500
  */
3976
- /** @type {?} */
3977
- const _exports = [
3978
- BsDatepickerContainerComponent,
3979
- BsDatepickerDirective,
3980
- BsDatepickerInlineContainerComponent,
3981
- BsDatepickerInlineDirective,
3982
- BsDatepickerInputDirective,
3983
- BsDaterangepickerContainerComponent,
3984
- BsDaterangepickerDirective,
3985
- BsDaterangepickerInlineContainerComponent,
3986
- BsDaterangepickerInlineDirective,
3987
- BsDaterangepickerInputDirective
3988
- ];
3989
5501
  class BsDatepickerModule {
3990
5502
  /**
3991
5503
  * @return {?}
@@ -4021,7 +5533,16 @@ BsDatepickerModule.decorators = [
4021
5533
  BsMonthCalendarViewComponent,
4022
5534
  BsTimepickerViewComponent,
4023
5535
  BsYearsCalendarViewComponent,
4024
- ..._exports
5536
+ BsDatepickerContainerComponent,
5537
+ BsDatepickerDirective,
5538
+ BsDatepickerInlineContainerComponent,
5539
+ BsDatepickerInlineDirective,
5540
+ BsDatepickerInputDirective,
5541
+ BsDaterangepickerContainerComponent,
5542
+ BsDaterangepickerDirective,
5543
+ BsDaterangepickerInlineContainerComponent,
5544
+ BsDaterangepickerInlineDirective,
5545
+ BsDaterangepickerInputDirective
4025
5546
  ],
4026
5547
  entryComponents: [
4027
5548
  BsDatepickerContainerComponent,
@@ -4029,7 +5550,18 @@ BsDatepickerModule.decorators = [
4029
5550
  BsDatepickerInlineContainerComponent,
4030
5551
  BsDaterangepickerInlineContainerComponent
4031
5552
  ],
4032
- exports: _exports
5553
+ exports: [
5554
+ BsDatepickerContainerComponent,
5555
+ BsDatepickerDirective,
5556
+ BsDatepickerInlineContainerComponent,
5557
+ BsDatepickerInlineDirective,
5558
+ BsDatepickerInputDirective,
5559
+ BsDaterangepickerContainerComponent,
5560
+ BsDaterangepickerDirective,
5561
+ BsDaterangepickerInlineContainerComponent,
5562
+ BsDaterangepickerInlineDirective,
5563
+ BsDaterangepickerInputDirective
5564
+ ]
4033
5565
  },] }
4034
5566
  ];
4035
5567
 
@@ -4437,6 +5969,123 @@ DatePickerInnerComponent.propDecorators = {
4437
5969
  activeDateChange: [{ type: Output }],
4438
5970
  activeDate: [{ type: Input }]
4439
5971
  };
5972
+ if (false) {
5973
+ /** @type {?} */
5974
+ DatePickerInnerComponent.prototype.locale;
5975
+ /** @type {?} */
5976
+ DatePickerInnerComponent.prototype.datepickerMode;
5977
+ /** @type {?} */
5978
+ DatePickerInnerComponent.prototype.startingDay;
5979
+ /** @type {?} */
5980
+ DatePickerInnerComponent.prototype.yearRange;
5981
+ /** @type {?} */
5982
+ DatePickerInnerComponent.prototype.minDate;
5983
+ /** @type {?} */
5984
+ DatePickerInnerComponent.prototype.maxDate;
5985
+ /** @type {?} */
5986
+ DatePickerInnerComponent.prototype.minMode;
5987
+ /** @type {?} */
5988
+ DatePickerInnerComponent.prototype.maxMode;
5989
+ /** @type {?} */
5990
+ DatePickerInnerComponent.prototype.showWeeks;
5991
+ /** @type {?} */
5992
+ DatePickerInnerComponent.prototype.formatDay;
5993
+ /** @type {?} */
5994
+ DatePickerInnerComponent.prototype.formatMonth;
5995
+ /** @type {?} */
5996
+ DatePickerInnerComponent.prototype.formatYear;
5997
+ /** @type {?} */
5998
+ DatePickerInnerComponent.prototype.formatDayHeader;
5999
+ /** @type {?} */
6000
+ DatePickerInnerComponent.prototype.formatDayTitle;
6001
+ /** @type {?} */
6002
+ DatePickerInnerComponent.prototype.formatMonthTitle;
6003
+ /** @type {?} */
6004
+ DatePickerInnerComponent.prototype.onlyCurrentMonth;
6005
+ /** @type {?} */
6006
+ DatePickerInnerComponent.prototype.shortcutPropagation;
6007
+ /** @type {?} */
6008
+ DatePickerInnerComponent.prototype.customClass;
6009
+ /** @type {?} */
6010
+ DatePickerInnerComponent.prototype.monthColLimit;
6011
+ /** @type {?} */
6012
+ DatePickerInnerComponent.prototype.yearColLimit;
6013
+ /** @type {?} */
6014
+ DatePickerInnerComponent.prototype.dateDisabled;
6015
+ /** @type {?} */
6016
+ DatePickerInnerComponent.prototype.dayDisabled;
6017
+ /** @type {?} */
6018
+ DatePickerInnerComponent.prototype.initDate;
6019
+ /** @type {?} */
6020
+ DatePickerInnerComponent.prototype.selectionDone;
6021
+ /** @type {?} */
6022
+ DatePickerInnerComponent.prototype.update;
6023
+ /** @type {?} */
6024
+ DatePickerInnerComponent.prototype.activeDateChange;
6025
+ /** @type {?} */
6026
+ DatePickerInnerComponent.prototype.stepDay;
6027
+ /** @type {?} */
6028
+ DatePickerInnerComponent.prototype.stepMonth;
6029
+ /** @type {?} */
6030
+ DatePickerInnerComponent.prototype.stepYear;
6031
+ /** @type {?} */
6032
+ DatePickerInnerComponent.prototype.uniqueId;
6033
+ /**
6034
+ * @type {?}
6035
+ * @protected
6036
+ */
6037
+ DatePickerInnerComponent.prototype.modes;
6038
+ /**
6039
+ * @type {?}
6040
+ * @protected
6041
+ */
6042
+ DatePickerInnerComponent.prototype.dateFormatter;
6043
+ /**
6044
+ * @type {?}
6045
+ * @protected
6046
+ */
6047
+ DatePickerInnerComponent.prototype._activeDate;
6048
+ /**
6049
+ * @type {?}
6050
+ * @protected
6051
+ */
6052
+ DatePickerInnerComponent.prototype.selectedDate;
6053
+ /**
6054
+ * @type {?}
6055
+ * @protected
6056
+ */
6057
+ DatePickerInnerComponent.prototype.activeDateId;
6058
+ /**
6059
+ * @type {?}
6060
+ * @protected
6061
+ */
6062
+ DatePickerInnerComponent.prototype.refreshViewHandlerDay;
6063
+ /**
6064
+ * @type {?}
6065
+ * @protected
6066
+ */
6067
+ DatePickerInnerComponent.prototype.compareHandlerDay;
6068
+ /**
6069
+ * @type {?}
6070
+ * @protected
6071
+ */
6072
+ DatePickerInnerComponent.prototype.refreshViewHandlerMonth;
6073
+ /**
6074
+ * @type {?}
6075
+ * @protected
6076
+ */
6077
+ DatePickerInnerComponent.prototype.compareHandlerMonth;
6078
+ /**
6079
+ * @type {?}
6080
+ * @protected
6081
+ */
6082
+ DatePickerInnerComponent.prototype.refreshViewHandlerYear;
6083
+ /**
6084
+ * @type {?}
6085
+ * @protected
6086
+ */
6087
+ DatePickerInnerComponent.prototype.compareHandlerYear;
6088
+ }
4440
6089
 
4441
6090
  /**
4442
6091
  * @fileoverview added by tsickle
@@ -4466,6 +6115,42 @@ class DatepickerConfig {
4466
6115
  DatepickerConfig.decorators = [
4467
6116
  { type: Injectable }
4468
6117
  ];
6118
+ if (false) {
6119
+ /** @type {?} */
6120
+ DatepickerConfig.prototype.locale;
6121
+ /** @type {?} */
6122
+ DatepickerConfig.prototype.datepickerMode;
6123
+ /** @type {?} */
6124
+ DatepickerConfig.prototype.startingDay;
6125
+ /** @type {?} */
6126
+ DatepickerConfig.prototype.yearRange;
6127
+ /** @type {?} */
6128
+ DatepickerConfig.prototype.minMode;
6129
+ /** @type {?} */
6130
+ DatepickerConfig.prototype.maxMode;
6131
+ /** @type {?} */
6132
+ DatepickerConfig.prototype.showWeeks;
6133
+ /** @type {?} */
6134
+ DatepickerConfig.prototype.formatDay;
6135
+ /** @type {?} */
6136
+ DatepickerConfig.prototype.formatMonth;
6137
+ /** @type {?} */
6138
+ DatepickerConfig.prototype.formatYear;
6139
+ /** @type {?} */
6140
+ DatepickerConfig.prototype.formatDayHeader;
6141
+ /** @type {?} */
6142
+ DatepickerConfig.prototype.formatDayTitle;
6143
+ /** @type {?} */
6144
+ DatepickerConfig.prototype.formatMonthTitle;
6145
+ /** @type {?} */
6146
+ DatepickerConfig.prototype.onlyCurrentMonth;
6147
+ /** @type {?} */
6148
+ DatepickerConfig.prototype.monthColLimit;
6149
+ /** @type {?} */
6150
+ DatepickerConfig.prototype.yearColLimit;
6151
+ /** @type {?} */
6152
+ DatepickerConfig.prototype.shortcutPropagation;
6153
+ }
4469
6154
 
4470
6155
  /**
4471
6156
  * @fileoverview added by tsickle
@@ -4654,6 +6339,143 @@ DatePickerComponent.propDecorators = {
4654
6339
  activeDateChange: [{ type: Output }],
4655
6340
  _datePicker: [{ type: ViewChild, args: [DatePickerInnerComponent, { static: true },] }]
4656
6341
  };
6342
+ if (false) {
6343
+ /**
6344
+ * sets datepicker mode, supports: `day`, `month`, `year`
6345
+ * @type {?}
6346
+ */
6347
+ DatePickerComponent.prototype.datepickerMode;
6348
+ /**
6349
+ * default date to show if `ng-model` value is not specified
6350
+ * @type {?}
6351
+ */
6352
+ DatePickerComponent.prototype.initDate;
6353
+ /**
6354
+ * oldest selectable date
6355
+ * @type {?}
6356
+ */
6357
+ DatePickerComponent.prototype.minDate;
6358
+ /**
6359
+ * latest selectable date
6360
+ * @type {?}
6361
+ */
6362
+ DatePickerComponent.prototype.maxDate;
6363
+ /**
6364
+ * set lower datepicker mode, supports: `day`, `month`, `year`
6365
+ * @type {?}
6366
+ */
6367
+ DatePickerComponent.prototype.minMode;
6368
+ /**
6369
+ * sets upper datepicker mode, supports: `day`, `month`, `year`
6370
+ * @type {?}
6371
+ */
6372
+ DatePickerComponent.prototype.maxMode;
6373
+ /**
6374
+ * if false week numbers will be hidden
6375
+ * @type {?}
6376
+ */
6377
+ DatePickerComponent.prototype.showWeeks;
6378
+ /**
6379
+ * format of day in month
6380
+ * @type {?}
6381
+ */
6382
+ DatePickerComponent.prototype.formatDay;
6383
+ /**
6384
+ * format of month in year
6385
+ * @type {?}
6386
+ */
6387
+ DatePickerComponent.prototype.formatMonth;
6388
+ /**
6389
+ * format of year in year range
6390
+ * @type {?}
6391
+ */
6392
+ DatePickerComponent.prototype.formatYear;
6393
+ /**
6394
+ * format of day in week header
6395
+ * @type {?}
6396
+ */
6397
+ DatePickerComponent.prototype.formatDayHeader;
6398
+ /**
6399
+ * format of title when selecting day
6400
+ * @type {?}
6401
+ */
6402
+ DatePickerComponent.prototype.formatDayTitle;
6403
+ /**
6404
+ * format of title when selecting month
6405
+ * @type {?}
6406
+ */
6407
+ DatePickerComponent.prototype.formatMonthTitle;
6408
+ /**
6409
+ * starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday)
6410
+ * @type {?}
6411
+ */
6412
+ DatePickerComponent.prototype.startingDay;
6413
+ /**
6414
+ * number of years displayed in year selection
6415
+ * @type {?}
6416
+ */
6417
+ DatePickerComponent.prototype.yearRange;
6418
+ /**
6419
+ * if true only dates from the currently displayed month will be shown
6420
+ * @type {?}
6421
+ */
6422
+ DatePickerComponent.prototype.onlyCurrentMonth;
6423
+ /**
6424
+ * if true shortcut`s event propagation will be disabled
6425
+ * @type {?}
6426
+ */
6427
+ DatePickerComponent.prototype.shortcutPropagation;
6428
+ /**
6429
+ * number of months displayed in a single row of month picker
6430
+ * @type {?}
6431
+ */
6432
+ DatePickerComponent.prototype.monthColLimit;
6433
+ /**
6434
+ * number of years displayed in a single row of year picker
6435
+ * @type {?}
6436
+ */
6437
+ DatePickerComponent.prototype.yearColLimit;
6438
+ /**
6439
+ * array of custom css classes to be applied to targeted dates
6440
+ * @type {?}
6441
+ */
6442
+ DatePickerComponent.prototype.customClass;
6443
+ /**
6444
+ * array of disabled dates
6445
+ * @type {?}
6446
+ */
6447
+ DatePickerComponent.prototype.dateDisabled;
6448
+ /**
6449
+ * disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday)
6450
+ * @type {?}
6451
+ */
6452
+ DatePickerComponent.prototype.dayDisabled;
6453
+ /** @type {?} */
6454
+ DatePickerComponent.prototype.selectionDone;
6455
+ /**
6456
+ * callback to invoke when the activeDate is changed.
6457
+ * @type {?}
6458
+ */
6459
+ DatePickerComponent.prototype.activeDateChange;
6460
+ /** @type {?} */
6461
+ DatePickerComponent.prototype._datePicker;
6462
+ /** @type {?} */
6463
+ DatePickerComponent.prototype.onChange;
6464
+ /** @type {?} */
6465
+ DatePickerComponent.prototype.onTouched;
6466
+ /** @type {?} */
6467
+ DatePickerComponent.prototype.config;
6468
+ /**
6469
+ * @type {?}
6470
+ * @protected
6471
+ */
6472
+ DatePickerComponent.prototype._now;
6473
+ /**
6474
+ * @type {?}
6475
+ * @protected
6476
+ */
6477
+ DatePickerComponent.prototype._activeDate;
6478
+ }
4657
6479
 
4658
6480
  /**
4659
6481
  * @fileoverview added by tsickle
@@ -4876,6 +6698,18 @@ DayPickerComponent.decorators = [
4876
6698
  DayPickerComponent.ctorParameters = () => [
4877
6699
  { type: DatePickerInnerComponent }
4878
6700
  ];
6701
+ if (false) {
6702
+ /** @type {?} */
6703
+ DayPickerComponent.prototype.labels;
6704
+ /** @type {?} */
6705
+ DayPickerComponent.prototype.title;
6706
+ /** @type {?} */
6707
+ DayPickerComponent.prototype.rows;
6708
+ /** @type {?} */
6709
+ DayPickerComponent.prototype.weekNumbers;
6710
+ /** @type {?} */
6711
+ DayPickerComponent.prototype.datePicker;
6712
+ }
4879
6713
 
4880
6714
  /**
4881
6715
  * @fileoverview added by tsickle
@@ -4986,6 +6820,16 @@ MonthPickerComponent.decorators = [
4986
6820
  MonthPickerComponent.ctorParameters = () => [
4987
6821
  { type: DatePickerInnerComponent }
4988
6822
  ];
6823
+ if (false) {
6824
+ /** @type {?} */
6825
+ MonthPickerComponent.prototype.title;
6826
+ /** @type {?} */
6827
+ MonthPickerComponent.prototype.rows;
6828
+ /** @type {?} */
6829
+ MonthPickerComponent.prototype.datePicker;
6830
+ /** @type {?} */
6831
+ MonthPickerComponent.prototype.maxMode;
6832
+ }
4989
6833
 
4990
6834
  /**
4991
6835
  * @fileoverview added by tsickle
@@ -5102,6 +6946,14 @@ YearPickerComponent.decorators = [
5102
6946
  YearPickerComponent.ctorParameters = () => [
5103
6947
  { type: DatePickerInnerComponent }
5104
6948
  ];
6949
+ if (false) {
6950
+ /** @type {?} */
6951
+ YearPickerComponent.prototype.datePicker;
6952
+ /** @type {?} */
6953
+ YearPickerComponent.prototype.title;
6954
+ /** @type {?} */
6955
+ YearPickerComponent.prototype.rows;
6956
+ }
5105
6957
 
5106
6958
  /**
5107
6959
  * @fileoverview added by tsickle
@@ -5136,5 +6988,15 @@ DatepickerModule.decorators = [
5136
6988
  },] }
5137
6989
  ];
5138
6990
 
6991
+ /**
6992
+ * @fileoverview added by tsickle
6993
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6994
+ */
6995
+
6996
+ /**
6997
+ * @fileoverview added by tsickle
6998
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6999
+ */
7000
+
5139
7001
  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 };
5140
7002
  //# sourceMappingURL=ngx-bootstrap-datepicker.js.map