ngx-bootstrap 5.4.0 → 5.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/CHANGELOG.md +138 -99
  2. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +71 -2
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  4. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  6. package/accordion/fesm2015/ngx-bootstrap-accordion.js +79 -0
  7. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  8. package/accordion/fesm5/ngx-bootstrap-accordion.js +80 -1
  9. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  10. package/accordion/package.json +2 -2
  11. package/alert/bundles/ngx-bootstrap-alert.umd.js +224 -2
  12. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  13. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +15 -1
  14. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  15. package/alert/fesm2015/ngx-bootstrap-alert.js +71 -0
  16. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  17. package/alert/fesm5/ngx-bootstrap-alert.js +72 -1
  18. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  19. package/alert/package.json +2 -2
  20. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +208 -85
  21. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  22. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  23. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  24. package/buttons/button-radio-group.directive.d.ts +4 -1
  25. package/buttons/esm2015/button-radio-group.directive.js +26 -2
  26. package/buttons/esm5/button-radio-group.directive.js +30 -2
  27. package/buttons/fesm2015/ngx-bootstrap-buttons.js +194 -65
  28. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  29. package/buttons/fesm5/ngx-bootstrap-buttons.js +216 -83
  30. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  31. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  32. package/buttons/package.json +2 -2
  33. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +295 -4
  34. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  35. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +15 -1
  36. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  37. package/carousel/carousel.component.d.ts +2 -0
  38. package/carousel/esm2015/carousel.component.js +15 -2
  39. package/carousel/esm2015/slide.component.js +21 -2
  40. package/carousel/esm5/carousel.component.js +15 -2
  41. package/carousel/esm5/slide.component.js +6 -2
  42. package/carousel/fesm2015/ngx-bootstrap-carousel.js +169 -2
  43. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  44. package/carousel/fesm5/ngx-bootstrap-carousel.js +156 -4
  45. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  46. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  47. package/carousel/package.json +2 -2
  48. package/carousel/slide.component.d.ts +1 -0
  49. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +11172 -10061
  50. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  51. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  52. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  53. package/chronos/esm2015/format/format.js +1 -1
  54. package/chronos/esm2015/i18n/ka.js +108 -0
  55. package/chronos/esm2015/i18n/kk.js +89 -0
  56. package/chronos/esm2015/i18n/sq.js +62 -0
  57. package/chronos/esm2015/i18n/th-be.js +85 -0
  58. package/chronos/esm2015/index.js +2 -2
  59. package/chronos/esm2015/locale/locale.class.js +16 -2
  60. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  61. package/chronos/esm2015/public_api.js +5 -1
  62. package/chronos/esm2015/units/year.js +4 -1
  63. package/chronos/esm5/format/format.js +1 -1
  64. package/chronos/esm5/i18n/ka.js +108 -0
  65. package/chronos/esm5/i18n/kk.js +89 -0
  66. package/chronos/esm5/i18n/sq.js +62 -0
  67. package/chronos/esm5/i18n/th-be.js +86 -0
  68. package/chronos/esm5/index.js +2 -2
  69. package/chronos/esm5/locale/locale.class.js +22 -2
  70. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  71. package/chronos/esm5/public_api.js +5 -1
  72. package/chronos/esm5/units/year.js +4 -1
  73. package/chronos/fesm2015/ngx-bootstrap-chronos.js +1117 -13
  74. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  75. package/chronos/fesm5/ngx-bootstrap-chronos.js +1130 -13
  76. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  77. package/chronos/i18n/ka.d.ts +2 -0
  78. package/chronos/i18n/kk.d.ts +2 -0
  79. package/chronos/i18n/sq.d.ts +2 -0
  80. package/chronos/i18n/th-be.d.ts +2 -0
  81. package/chronos/locale/locale.class.d.ts +2 -0
  82. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  83. package/chronos/package.json +2 -2
  84. package/chronos/public_api.d.ts +4 -0
  85. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +100 -2
  86. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  87. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +1 -1
  88. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  89. package/collapse/collapse.directive.d.ts +1 -0
  90. package/collapse/esm2015/collapse.directive.js +14 -1
  91. package/collapse/esm5/collapse.directive.js +14 -1
  92. package/collapse/fesm2015/ngx-bootstrap-collapse.js +108 -0
  93. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  94. package/collapse/fesm5/ngx-bootstrap-collapse.js +109 -1
  95. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  96. package/collapse/ngx-bootstrap-collapse.metadata.json +1 -1
  97. package/collapse/package.json +2 -2
  98. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +169 -2
  99. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  100. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  101. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  102. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +177 -0
  103. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  104. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +178 -1
  105. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  106. package/component-loader/package.json +2 -2
  107. package/datepicker/base/bs-datepicker-container.d.ts +4 -1
  108. package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
  109. package/datepicker/bs-datepicker-input.directive.d.ts +1 -0
  110. package/datepicker/bs-datepicker.component.d.ts +12 -3
  111. package/datepicker/bs-datepicker.config.d.ts +26 -0
  112. package/datepicker/bs-datepicker.css +19 -1
  113. package/datepicker/bs-datepicker.css.map +3 -3
  114. package/datepicker/bs-datepicker.scss +0 -1
  115. package/datepicker/bs-daterangepicker-inline.component.d.ts +8 -0
  116. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -0
  117. package/datepicker/bs-daterangepicker.component.d.ts +16 -3
  118. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2116 -106
  119. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  120. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +15 -1
  121. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  122. package/datepicker/engine/flag-days-calendar.d.ts +1 -0
  123. package/datepicker/esm2015/base/bs-datepicker-container.js +18 -3
  124. package/datepicker/esm2015/bs-datepicker-inline.component.js +25 -9
  125. package/datepicker/esm2015/bs-datepicker-input.directive.js +19 -1
  126. package/datepicker/esm2015/bs-datepicker.component.js +55 -8
  127. package/datepicker/esm2015/bs-datepicker.config.js +36 -2
  128. package/datepicker/esm2015/bs-datepicker.module.js +23 -16
  129. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +37 -7
  130. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +34 -3
  131. package/datepicker/esm2015/bs-daterangepicker.component.js +66 -9
  132. package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
  133. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  134. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +15 -11
  135. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +25 -6
  136. package/datepicker/esm2015/reducer/bs-datepicker.state.js +5 -1
  137. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +46 -8
  138. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -2
  139. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  140. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +8 -7
  141. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +21 -3
  142. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  143. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +22 -8
  144. package/datepicker/esm2015/utils/bs-calendar-utils.js +18 -3
  145. package/datepicker/esm5/base/bs-datepicker-container.js +26 -3
  146. package/datepicker/esm5/bs-datepicker-inline.component.js +25 -9
  147. package/datepicker/esm5/bs-datepicker-input.directive.js +23 -1
  148. package/datepicker/esm5/bs-datepicker.component.js +59 -8
  149. package/datepicker/esm5/bs-datepicker.config.js +36 -2
  150. package/datepicker/esm5/bs-datepicker.module.js +26 -19
  151. package/datepicker/esm5/bs-daterangepicker-inline.component.js +37 -7
  152. package/datepicker/esm5/bs-daterangepicker-input.directive.js +38 -3
  153. package/datepicker/esm5/bs-daterangepicker.component.js +70 -9
  154. package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
  155. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  156. package/datepicker/esm5/reducer/bs-datepicker.effects.js +21 -17
  157. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +25 -6
  158. package/datepicker/esm5/reducer/bs-datepicker.state.js +5 -1
  159. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +39 -7
  160. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -2
  161. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  162. package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +2 -2
  163. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +25 -3
  164. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  165. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +22 -8
  166. package/datepicker/esm5/utils/bs-calendar-utils.js +18 -3
  167. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +1958 -91
  168. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  169. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +1989 -93
  170. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  171. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  172. package/datepicker/package.json +2 -2
  173. package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
  174. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
  175. package/datepicker/reducer/bs-datepicker.state.d.ts +2 -0
  176. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +6 -1
  177. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -0
  178. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  179. package/datepicker/utils/scss/mixins.css.map +1 -1
  180. package/datepicker/utils/scss/mixins.scss +9 -0
  181. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +395 -5
  182. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  183. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +15 -1
  184. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  185. package/dropdown/esm2015/bs-dropdown-container.component.js +2 -2
  186. package/dropdown/esm2015/bs-dropdown.directive.js +8 -3
  187. package/dropdown/esm5/bs-dropdown-container.component.js +2 -2
  188. package/dropdown/esm5/bs-dropdown.directive.js +9 -3
  189. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +241 -3
  190. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  191. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +242 -3
  192. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  193. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  194. package/dropdown/package.json +2 -2
  195. package/locale/bundles/ngx-bootstrap-locale.umd.js +36 -2
  196. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
  197. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
  198. package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
  199. package/locale/esm2015/public_api.js +5 -1
  200. package/locale/esm5/ngx-bootstrap-locale.js +2 -2
  201. package/locale/esm5/public_api.js +5 -1
  202. package/locale/fesm2015/ngx-bootstrap-locale.js +11 -1
  203. package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -1
  204. package/locale/fesm5/ngx-bootstrap-locale.js +11 -1
  205. package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -1
  206. package/locale/ngx-bootstrap-locale.metadata.json +1 -1
  207. package/locale/package.json +2 -2
  208. package/locale/public_api.d.ts +4 -0
  209. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +187 -2
  210. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  211. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +15 -1
  212. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  213. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +32 -0
  214. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -1
  215. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +32 -0
  216. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  217. package/mini-ngrx/package.json +2 -2
  218. package/modal/bs-modal.service.d.ts +1 -2
  219. package/modal/bundles/ngx-bootstrap-modal.umd.js +558 -16
  220. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  221. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +15 -1
  222. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  223. package/modal/esm2015/bs-modal.service.js +13 -4
  224. package/modal/esm2015/modal-container.component.js +24 -5
  225. package/modal/esm2015/modal-options.class.js +16 -1
  226. package/modal/esm2015/modal.directive.js +21 -4
  227. package/modal/esm2015/modal.module.js +10 -1
  228. package/modal/esm5/bs-modal.service.js +28 -8
  229. package/modal/esm5/modal-container.component.js +28 -5
  230. package/modal/esm5/modal-options.class.js +16 -1
  231. package/modal/esm5/modal.directive.js +25 -4
  232. package/modal/esm5/modal.module.js +13 -1
  233. package/modal/fesm2015/ngx-bootstrap-modal.js +354 -10
  234. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  235. package/modal/fesm5/ngx-bootstrap-modal.js +381 -15
  236. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  237. package/modal/modal-container.component.d.ts +3 -1
  238. package/modal/modal-options.class.d.ts +13 -0
  239. package/modal/modal.directive.d.ts +3 -1
  240. package/modal/modal.module.d.ts +1 -0
  241. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  242. package/modal/package.json +2 -2
  243. package/package.json +2 -2
  244. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +276 -4
  245. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  246. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  247. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  248. package/pagination/esm2015/models/index.js +49 -4
  249. package/pagination/esm2015/pager.component.js +2 -2
  250. package/pagination/esm2015/pagination.component.js +33 -3
  251. package/pagination/esm2015/public_api.js +1 -1
  252. package/pagination/esm5/models/index.js +49 -4
  253. package/pagination/esm5/pager.component.js +2 -2
  254. package/pagination/esm5/pagination.component.js +33 -3
  255. package/pagination/esm5/public_api.js +1 -1
  256. package/pagination/fesm2015/ngx-bootstrap-pagination.js +284 -2
  257. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  258. package/pagination/fesm5/ngx-bootstrap-pagination.js +285 -3
  259. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  260. package/pagination/models/index.d.ts +28 -0
  261. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  262. package/pagination/package.json +2 -2
  263. package/pagination/pagination.component.d.ts +12 -2
  264. package/pagination/public_api.d.ts +1 -0
  265. package/popover/bundles/ngx-bootstrap-popover.umd.js +215 -20
  266. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  267. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  268. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  269. package/popover/esm2015/popover.config.js +10 -1
  270. package/popover/esm2015/popover.directive.js +97 -16
  271. package/popover/esm5/popover.config.js +10 -1
  272. package/popover/esm5/popover.directive.js +98 -16
  273. package/popover/fesm2015/ngx-bootstrap-popover.js +221 -16
  274. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  275. package/popover/fesm5/ngx-bootstrap-popover.js +222 -16
  276. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  277. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  278. package/popover/package.json +2 -2
  279. package/popover/popover.config.d.ts +2 -0
  280. package/popover/popover.directive.d.ts +9 -1
  281. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +286 -13
  282. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  283. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +15 -1
  284. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  285. package/positioning/esm2015/modifiers/arrow.js +19 -5
  286. package/positioning/esm2015/modifiers/initData.js +12 -2
  287. package/positioning/esm2015/modifiers/shift.js +6 -4
  288. package/positioning/esm5/modifiers/arrow.js +19 -5
  289. package/positioning/esm5/modifiers/initData.js +12 -2
  290. package/positioning/esm5/modifiers/shift.js +8 -6
  291. package/positioning/fesm2015/ngx-bootstrap-positioning.js +128 -8
  292. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  293. package/positioning/fesm5/ngx-bootstrap-positioning.js +132 -10
  294. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  295. package/positioning/package.json +2 -2
  296. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +77 -2
  297. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  298. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  299. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  300. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +85 -0
  301. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  302. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +85 -0
  303. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  304. package/progressbar/package.json +2 -2
  305. package/rating/bundles/ngx-bootstrap-rating.umd.js +92 -7
  306. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  307. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  308. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  309. package/rating/esm2015/ngx-bootstrap-rating.js +2 -2
  310. package/rating/esm2015/public_api.js +2 -1
  311. package/rating/esm2015/rating.component.js +14 -5
  312. package/rating/esm2015/rating.config.js +27 -0
  313. package/rating/esm2015/rating.module.js +3 -2
  314. package/rating/esm5/ngx-bootstrap-rating.js +2 -2
  315. package/rating/esm5/public_api.js +2 -1
  316. package/rating/esm5/rating.component.js +13 -5
  317. package/rating/esm5/rating.config.js +29 -0
  318. package/rating/esm5/rating.module.js +3 -2
  319. package/rating/fesm2015/ngx-bootstrap-rating.js +101 -7
  320. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  321. package/rating/fesm5/ngx-bootstrap-rating.js +101 -7
  322. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  323. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  324. package/rating/package.json +2 -2
  325. package/rating/public_api.d.ts +1 -0
  326. package/rating/rating.component.d.ts +4 -1
  327. package/rating/rating.config.d.ts +5 -0
  328. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +254 -2
  329. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  330. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +15 -1
  331. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  332. package/sortable/fesm2015/ngx-bootstrap-sortable.js +113 -0
  333. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  334. package/sortable/fesm5/ngx-bootstrap-sortable.js +114 -1
  335. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  336. package/sortable/package.json +2 -2
  337. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +153 -4
  338. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  339. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  340. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  341. package/tabs/esm2015/tab.directive.js +13 -2
  342. package/tabs/esm2015/tabset.component.js +7 -2
  343. package/tabs/esm2015/tabset.config.js +10 -1
  344. package/tabs/esm5/tab.directive.js +17 -2
  345. package/tabs/esm5/tabset.component.js +7 -2
  346. package/tabs/esm5/tabset.config.js +10 -1
  347. package/tabs/fesm2015/ngx-bootstrap-tabs.js +157 -2
  348. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  349. package/tabs/fesm5/ngx-bootstrap-tabs.js +162 -3
  350. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  351. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  352. package/tabs/package.json +2 -2
  353. package/tabs/tab.directive.d.ts +2 -0
  354. package/tabs/tabset.component.d.ts +2 -0
  355. package/tabs/tabset.config.d.ts +2 -0
  356. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +464 -8
  357. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  358. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +15 -1
  359. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  360. package/timepicker/esm2015/timepicker.component.js +8 -2
  361. package/timepicker/esm2015/timepicker.config.js +28 -1
  362. package/timepicker/esm2015/timepicker.utils.js +9 -6
  363. package/timepicker/esm5/timepicker.component.js +8 -2
  364. package/timepicker/esm5/timepicker.config.js +28 -1
  365. package/timepicker/esm5/timepicker.utils.js +9 -6
  366. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +311 -6
  367. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  368. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +315 -7
  369. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  370. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  371. package/timepicker/package.json +2 -2
  372. package/timepicker/timepicker.component.d.ts +3 -0
  373. package/timepicker/timepicker.config.d.ts +6 -0
  374. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +355 -8
  375. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  376. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +15 -1
  377. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  378. package/tooltip/esm2015/tooltip.directive.js +47 -10
  379. package/tooltip/esm5/tooltip.directive.js +50 -10
  380. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +200 -7
  381. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  382. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +203 -7
  383. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  384. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  385. package/tooltip/package.json +2 -2
  386. package/tooltip/tooltip.directive.d.ts +3 -1
  387. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +719 -43
  388. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  389. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +15 -1
  390. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  391. package/typeahead/esm2015/models/index.js +87 -0
  392. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
  393. package/typeahead/esm2015/public_api.js +2 -1
  394. package/typeahead/esm2015/typeahead-container.component.js +52 -11
  395. package/typeahead/esm2015/typeahead-order.class.js +19 -0
  396. package/typeahead/esm2015/typeahead.config.js +10 -1
  397. package/typeahead/esm2015/typeahead.directive.js +133 -30
  398. package/typeahead/esm5/models/index.js +87 -0
  399. package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
  400. package/typeahead/esm5/public_api.js +2 -1
  401. package/typeahead/esm5/typeahead-container.component.js +59 -11
  402. package/typeahead/esm5/typeahead-order.class.js +23 -0
  403. package/typeahead/esm5/typeahead.config.js +10 -1
  404. package/typeahead/esm5/typeahead.directive.js +140 -36
  405. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +550 -37
  406. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  407. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +567 -43
  408. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  409. package/typeahead/models/index.d.ts +41 -0
  410. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  411. package/typeahead/package.json +2 -2
  412. package/typeahead/public_api.d.ts +2 -0
  413. package/typeahead/typeahead-container.component.d.ts +10 -5
  414. package/typeahead/typeahead-order.class.d.ts +6 -0
  415. package/typeahead/typeahead.config.d.ts +2 -0
  416. package/typeahead/typeahead.directive.d.ts +28 -10
  417. package/utils/bundles/ngx-bootstrap-utils.umd.js +54 -2
  418. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
  419. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +2 -2
  420. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
  421. package/utils/fesm2015/ngx-bootstrap-utils.js +62 -0
  422. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
  423. package/utils/fesm5/ngx-bootstrap-utils.js +62 -0
  424. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
  425. package/utils/package.json +2 -2
  426. package/bundles/ngx-bootstrap.umd.js +0 -1037
  427. package/bundles/ngx-bootstrap.umd.js.map +0 -1
  428. package/bundles/ngx-bootstrap.umd.min.js +0 -2
  429. package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
  430. package/esm2015/ngx-bootstrap.js +0 -9
  431. package/esm2015/public_api.js +0 -30
  432. package/esm5/ngx-bootstrap.js +0 -9
  433. package/esm5/public_api.js +0 -30
  434. package/fesm2015/ngx-bootstrap.js +0 -24
  435. package/fesm2015/ngx-bootstrap.js.map +0 -1
  436. package/fesm5/ngx-bootstrap.js +0 -24
  437. package/fesm5/ngx-bootstrap.js.map +0 -1
  438. package/ngx-bootstrap.d.ts +0 -4
  439. package/ngx-bootstrap.metadata.json +0 -1
  440. package/public_api.d.ts +0 -25
@@ -1,8 +1,8 @@
1
1
  import { Injectable, EventEmitter, Component, Renderer2, ElementRef, Directive, ViewContainerRef, Input, Output, forwardRef, Host, ChangeDetectorRef, ChangeDetectionStrategy, NgModule, ViewChild } from '@angular/core';
2
2
  import { __values, __spread, __extends } from 'tslib';
3
- import { filter, map, take } from 'rxjs/operators';
4
- 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';
5
- import { BehaviorSubject } from 'rxjs';
3
+ import { filter, map, take, takeUntil } from 'rxjs/operators';
4
+ 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';
5
+ import { BehaviorSubject, Subject } from 'rxjs';
6
6
  import { MiniState, MiniStore } from 'ngx-bootstrap/mini-ngrx';
7
7
  import { PositioningService } from 'ngx-bootstrap/positioning';
8
8
  import { trigger, state, style, transition, animate } from '@angular/animations';
@@ -33,6 +33,10 @@ var BsDatepickerConfig = /** @class */ (function () {
33
33
  * turn on/off animation
34
34
  */
35
35
  this.isAnimated = false;
36
+ /**
37
+ * If true, returns focus to the datepicker / daterangepicker input after date selection
38
+ */
39
+ this.returnFocusToInput = false;
36
40
  /**
37
41
  * CSS class which will be applied to datepicker container,
38
42
  * usually used to set color theme
@@ -64,6 +68,138 @@ var BsDatepickerConfig = /** @class */ (function () {
64
68
  ];
65
69
  return BsDatepickerConfig;
66
70
  }());
71
+ if (false) {
72
+ /**
73
+ * sets use adaptive position
74
+ * @type {?}
75
+ */
76
+ BsDatepickerConfig.prototype.adaptivePosition;
77
+ /**
78
+ * sets use UTC date time format
79
+ * @type {?}
80
+ */
81
+ BsDatepickerConfig.prototype.useUtc;
82
+ /**
83
+ * turn on/off animation
84
+ * @type {?}
85
+ */
86
+ BsDatepickerConfig.prototype.isAnimated;
87
+ /** @type {?} */
88
+ BsDatepickerConfig.prototype.value;
89
+ /** @type {?} */
90
+ BsDatepickerConfig.prototype.isDisabled;
91
+ /**
92
+ * Default min date for all date/range pickers
93
+ * @type {?}
94
+ */
95
+ BsDatepickerConfig.prototype.minDate;
96
+ /**
97
+ * Default max date for all date/range pickers
98
+ * @type {?}
99
+ */
100
+ BsDatepickerConfig.prototype.maxDate;
101
+ /**
102
+ * Default date custom classes for all date/range pickers
103
+ * @type {?}
104
+ */
105
+ BsDatepickerConfig.prototype.dateCustomClasses;
106
+ /**
107
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
108
+ * @type {?}
109
+ */
110
+ BsDatepickerConfig.prototype.daysDisabled;
111
+ /**
112
+ * Disable specific dates
113
+ * @type {?}
114
+ */
115
+ BsDatepickerConfig.prototype.datesDisabled;
116
+ /**
117
+ * Show one months for special cases (only for dateRangePicker)
118
+ * 1. maxDate is equal to today's date
119
+ * 2. minDate's month is equal to maxDate's month
120
+ * @type {?}
121
+ */
122
+ BsDatepickerConfig.prototype.displayOneMonthRange;
123
+ /**
124
+ * Enable specific dates
125
+ * @type {?}
126
+ */
127
+ BsDatepickerConfig.prototype.datesEnabled;
128
+ /**
129
+ * Makes dates from other months active
130
+ * @type {?}
131
+ */
132
+ BsDatepickerConfig.prototype.selectFromOtherMonth;
133
+ /**
134
+ * Allows select first date of the week by click on week number
135
+ * @type {?}
136
+ */
137
+ BsDatepickerConfig.prototype.selectWeek;
138
+ /**
139
+ * Allows select daterange as first and last day of week by click on week number (dateRangePicker only)
140
+ * @type {?}
141
+ */
142
+ BsDatepickerConfig.prototype.selectWeekDateRange;
143
+ /**
144
+ * Shows previous and current month, instead of current and next (dateRangePicker only)
145
+ * @type {?}
146
+ */
147
+ BsDatepickerConfig.prototype.showPreviousMonth;
148
+ /**
149
+ * Add class to current day
150
+ * @type {?}
151
+ */
152
+ BsDatepickerConfig.prototype.customTodayClass;
153
+ /**
154
+ * Default mode for all date pickers
155
+ * @type {?}
156
+ */
157
+ BsDatepickerConfig.prototype.minMode;
158
+ /**
159
+ * If true, returns focus to the datepicker / daterangepicker input after date selection
160
+ * @type {?}
161
+ */
162
+ BsDatepickerConfig.prototype.returnFocusToInput;
163
+ /**
164
+ * CSS class which will be applied to datepicker container,
165
+ * usually used to set color theme
166
+ * @type {?}
167
+ */
168
+ BsDatepickerConfig.prototype.containerClass;
169
+ /** @type {?} */
170
+ BsDatepickerConfig.prototype.displayMonths;
171
+ /**
172
+ * Allows to hide week numbers in datepicker
173
+ * @type {?}
174
+ */
175
+ BsDatepickerConfig.prototype.showWeekNumbers;
176
+ /** @type {?} */
177
+ BsDatepickerConfig.prototype.dateInputFormat;
178
+ /** @type {?} */
179
+ BsDatepickerConfig.prototype.rangeSeparator;
180
+ /**
181
+ * Date format for date range input field
182
+ * @type {?}
183
+ */
184
+ BsDatepickerConfig.prototype.rangeInputFormat;
185
+ /**
186
+ * Predefined ranges
187
+ * @type {?}
188
+ */
189
+ BsDatepickerConfig.prototype.ranges;
190
+ /** @type {?} */
191
+ BsDatepickerConfig.prototype.monthTitle;
192
+ /** @type {?} */
193
+ BsDatepickerConfig.prototype.yearTitle;
194
+ /** @type {?} */
195
+ BsDatepickerConfig.prototype.dayLabel;
196
+ /** @type {?} */
197
+ BsDatepickerConfig.prototype.monthLabel;
198
+ /** @type {?} */
199
+ BsDatepickerConfig.prototype.yearLabel;
200
+ /** @type {?} */
201
+ BsDatepickerConfig.prototype.weekNumbers;
202
+ }
67
203
 
68
204
  /**
69
205
  * @fileoverview added by tsickle
@@ -77,7 +213,8 @@ var /**
77
213
  */
78
214
  BsDatepickerAbstractComponent = /** @class */ (function () {
79
215
  function BsDatepickerAbstractComponent() {
80
- this._customRangesFish = [];
216
+ this.customRanges = [];
217
+ this.chosenRange = [];
81
218
  }
82
219
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "minDate", {
83
220
  set: /**
@@ -123,6 +260,17 @@ BsDatepickerAbstractComponent = /** @class */ (function () {
123
260
  enumerable: true,
124
261
  configurable: true
125
262
  });
263
+ Object.defineProperty(BsDatepickerAbstractComponent.prototype, "datesEnabled", {
264
+ set: /**
265
+ * @param {?} value
266
+ * @return {?}
267
+ */
268
+ function (value) {
269
+ this._effects.setDatesEnabled(value);
270
+ },
271
+ enumerable: true,
272
+ configurable: true
273
+ });
126
274
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "isDisabled", {
127
275
  set: /**
128
276
  * @param {?} value
@@ -226,6 +374,15 @@ BsDatepickerAbstractComponent = /** @class */ (function () {
226
374
  * @return {?}
227
375
  */
228
376
  function (event) { };
377
+ /**
378
+ * @param {?} dates
379
+ * @return {?}
380
+ */
381
+ BsDatepickerAbstractComponent.prototype.setRangeOnCalendar = /**
382
+ * @param {?} dates
383
+ * @return {?}
384
+ */
385
+ function (dates) { };
229
386
  /* tslint:disable-next-line: no-any */
230
387
  /* tslint:disable-next-line: no-any */
231
388
  /**
@@ -242,6 +399,28 @@ BsDatepickerAbstractComponent = /** @class */ (function () {
242
399
  };
243
400
  return BsDatepickerAbstractComponent;
244
401
  }());
402
+ if (false) {
403
+ /** @type {?} */
404
+ BsDatepickerAbstractComponent.prototype.containerClass;
405
+ /** @type {?} */
406
+ BsDatepickerAbstractComponent.prototype.isOtherMonthsActive;
407
+ /** @type {?} */
408
+ BsDatepickerAbstractComponent.prototype._effects;
409
+ /** @type {?} */
410
+ BsDatepickerAbstractComponent.prototype.customRanges;
411
+ /** @type {?} */
412
+ BsDatepickerAbstractComponent.prototype.chosenRange;
413
+ /** @type {?} */
414
+ BsDatepickerAbstractComponent.prototype.viewMode;
415
+ /** @type {?} */
416
+ BsDatepickerAbstractComponent.prototype.daysCalendar;
417
+ /** @type {?} */
418
+ BsDatepickerAbstractComponent.prototype.monthsCalendar;
419
+ /** @type {?} */
420
+ BsDatepickerAbstractComponent.prototype.yearsCalendar;
421
+ /** @type {?} */
422
+ BsDatepickerAbstractComponent.prototype.options;
423
+ }
245
424
 
246
425
  /**
247
426
  * @fileoverview added by tsickle
@@ -435,6 +614,20 @@ var BsDatepickerActions = /** @class */ (function () {
435
614
  payload: dates
436
615
  };
437
616
  };
617
+ /**
618
+ * @param {?} dates
619
+ * @return {?}
620
+ */
621
+ BsDatepickerActions.prototype.datesEnabled = /**
622
+ * @param {?} dates
623
+ * @return {?}
624
+ */
625
+ function (dates) {
626
+ return {
627
+ type: BsDatepickerActions.SET_DATESENABLED,
628
+ payload: dates
629
+ };
630
+ };
438
631
  /**
439
632
  * @param {?} value
440
633
  * @return {?}
@@ -490,6 +683,7 @@ var BsDatepickerActions = /** @class */ (function () {
490
683
  BsDatepickerActions.SET_MAX_DATE = '[datepicker] set max date';
491
684
  BsDatepickerActions.SET_DAYSDISABLED = '[datepicker] set days disabled';
492
685
  BsDatepickerActions.SET_DATESDISABLED = '[datepicker] set dates disabled';
686
+ BsDatepickerActions.SET_DATESENABLED = '[datepicker] set dates enabled';
493
687
  BsDatepickerActions.SET_IS_DISABLED = '[datepicker] set is disabled';
494
688
  BsDatepickerActions.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';
495
689
  BsDatepickerActions.SET_LOCALE = '[datepicker] set datepicker locale';
@@ -499,6 +693,44 @@ var BsDatepickerActions = /** @class */ (function () {
499
693
  ];
500
694
  return BsDatepickerActions;
501
695
  }());
696
+ if (false) {
697
+ /** @type {?} */
698
+ BsDatepickerActions.CALCULATE;
699
+ /** @type {?} */
700
+ BsDatepickerActions.FORMAT;
701
+ /** @type {?} */
702
+ BsDatepickerActions.FLAG;
703
+ /** @type {?} */
704
+ BsDatepickerActions.SELECT;
705
+ /** @type {?} */
706
+ BsDatepickerActions.NAVIGATE_OFFSET;
707
+ /** @type {?} */
708
+ BsDatepickerActions.NAVIGATE_TO;
709
+ /** @type {?} */
710
+ BsDatepickerActions.SET_OPTIONS;
711
+ /** @type {?} */
712
+ BsDatepickerActions.HOVER;
713
+ /** @type {?} */
714
+ BsDatepickerActions.CHANGE_VIEWMODE;
715
+ /** @type {?} */
716
+ BsDatepickerActions.SET_MIN_DATE;
717
+ /** @type {?} */
718
+ BsDatepickerActions.SET_MAX_DATE;
719
+ /** @type {?} */
720
+ BsDatepickerActions.SET_DAYSDISABLED;
721
+ /** @type {?} */
722
+ BsDatepickerActions.SET_DATESDISABLED;
723
+ /** @type {?} */
724
+ BsDatepickerActions.SET_DATESENABLED;
725
+ /** @type {?} */
726
+ BsDatepickerActions.SET_IS_DISABLED;
727
+ /** @type {?} */
728
+ BsDatepickerActions.SET_DATE_CUSTOM_CLASSES;
729
+ /** @type {?} */
730
+ BsDatepickerActions.SET_LOCALE;
731
+ /** @type {?} */
732
+ BsDatepickerActions.SELECT_RANGE;
733
+ }
502
734
 
503
735
  /**
504
736
  * @fileoverview added by tsickle
@@ -559,6 +791,23 @@ var BsLocaleService = /** @class */ (function () {
559
791
  ];
560
792
  return BsLocaleService;
561
793
  }());
794
+ if (false) {
795
+ /**
796
+ * @type {?}
797
+ * @private
798
+ */
799
+ BsLocaleService.prototype._defaultLocale;
800
+ /**
801
+ * @type {?}
802
+ * @private
803
+ */
804
+ BsLocaleService.prototype._locale;
805
+ /**
806
+ * @type {?}
807
+ * @private
808
+ */
809
+ BsLocaleService.prototype._localeChange;
810
+ }
562
811
 
563
812
  /**
564
813
  * @fileoverview added by tsickle
@@ -632,36 +881,40 @@ var BsDatepickerEffects = /** @class */ (function () {
632
881
  return this;
633
882
  };
634
883
  /**
635
- * @template THIS
636
- * @this {THIS}
637
884
  * @param {?} value
638
- * @return {THIS}
885
+ * @return {?}
639
886
  */
640
887
  BsDatepickerEffects.prototype.setDaysDisabled = /**
641
- * @template THIS
642
- * @this {THIS}
643
888
  * @param {?} value
644
- * @return {THIS}
889
+ * @return {?}
645
890
  */
646
891
  function (value) {
647
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.daysDisabled(value));
648
- return (/** @type {?} */ (this));
892
+ this._store.dispatch(this._actions.daysDisabled(value));
893
+ return this;
649
894
  };
650
895
  /**
651
- * @template THIS
652
- * @this {THIS}
653
896
  * @param {?} value
654
- * @return {THIS}
897
+ * @return {?}
655
898
  */
656
899
  BsDatepickerEffects.prototype.setDatesDisabled = /**
657
- * @template THIS
658
- * @this {THIS}
659
900
  * @param {?} value
660
- * @return {THIS}
901
+ * @return {?}
902
+ */
903
+ function (value) {
904
+ this._store.dispatch(this._actions.datesDisabled(value));
905
+ return this;
906
+ };
907
+ /**
908
+ * @param {?} value
909
+ * @return {?}
910
+ */
911
+ BsDatepickerEffects.prototype.setDatesEnabled = /**
912
+ * @param {?} value
913
+ * @return {?}
661
914
  */
662
915
  function (value) {
663
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.datesDisabled(value));
664
- return (/** @type {?} */ (this));
916
+ this._store.dispatch(this._actions.datesEnabled(value));
917
+ return this;
665
918
  };
666
919
  /**
667
920
  * @param {?} value
@@ -1045,6 +1298,38 @@ var BsDatepickerEffects = /** @class */ (function () {
1045
1298
  ]; };
1046
1299
  return BsDatepickerEffects;
1047
1300
  }());
1301
+ if (false) {
1302
+ /** @type {?} */
1303
+ BsDatepickerEffects.prototype.viewMode;
1304
+ /** @type {?} */
1305
+ BsDatepickerEffects.prototype.daysCalendar;
1306
+ /** @type {?} */
1307
+ BsDatepickerEffects.prototype.monthsCalendar;
1308
+ /** @type {?} */
1309
+ BsDatepickerEffects.prototype.yearsCalendar;
1310
+ /** @type {?} */
1311
+ BsDatepickerEffects.prototype.options;
1312
+ /**
1313
+ * @type {?}
1314
+ * @private
1315
+ */
1316
+ BsDatepickerEffects.prototype._store;
1317
+ /**
1318
+ * @type {?}
1319
+ * @private
1320
+ */
1321
+ BsDatepickerEffects.prototype._subs;
1322
+ /**
1323
+ * @type {?}
1324
+ * @private
1325
+ */
1326
+ BsDatepickerEffects.prototype._actions;
1327
+ /**
1328
+ * @type {?}
1329
+ * @private
1330
+ */
1331
+ BsDatepickerEffects.prototype._localeService;
1332
+ }
1048
1333
 
1049
1334
  /**
1050
1335
  * @fileoverview added by tsickle
@@ -1060,6 +1345,91 @@ var defaultMonthOptions = {
1060
1345
  * @fileoverview added by tsickle
1061
1346
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1062
1347
  */
1348
+ /**
1349
+ * @record
1350
+ */
1351
+ function BsDatepickerViewState() { }
1352
+ if (false) {
1353
+ /** @type {?} */
1354
+ BsDatepickerViewState.prototype.date;
1355
+ /** @type {?} */
1356
+ BsDatepickerViewState.prototype.mode;
1357
+ }
1358
+ var BsDatepickerState = /** @class */ (function () {
1359
+ function BsDatepickerState() {
1360
+ }
1361
+ return BsDatepickerState;
1362
+ }());
1363
+ if (false) {
1364
+ /** @type {?} */
1365
+ BsDatepickerState.prototype.selectedDate;
1366
+ /** @type {?} */
1367
+ BsDatepickerState.prototype.selectedRange;
1368
+ /** @type {?} */
1369
+ BsDatepickerState.prototype.view;
1370
+ /** @type {?} */
1371
+ BsDatepickerState.prototype.isDisabled;
1372
+ /** @type {?} */
1373
+ BsDatepickerState.prototype.minDate;
1374
+ /** @type {?} */
1375
+ BsDatepickerState.prototype.maxDate;
1376
+ /** @type {?} */
1377
+ BsDatepickerState.prototype.daysDisabled;
1378
+ /** @type {?} */
1379
+ BsDatepickerState.prototype.datesDisabled;
1380
+ /** @type {?} */
1381
+ BsDatepickerState.prototype.datesEnabled;
1382
+ /** @type {?} */
1383
+ BsDatepickerState.prototype.minMode;
1384
+ /** @type {?} */
1385
+ BsDatepickerState.prototype.dateCustomClasses;
1386
+ /** @type {?} */
1387
+ BsDatepickerState.prototype.hoveredDate;
1388
+ /** @type {?} */
1389
+ BsDatepickerState.prototype.hoveredMonth;
1390
+ /** @type {?} */
1391
+ BsDatepickerState.prototype.hoveredYear;
1392
+ /** @type {?} */
1393
+ BsDatepickerState.prototype.monthsModel;
1394
+ /** @type {?} */
1395
+ BsDatepickerState.prototype.formattedMonths;
1396
+ /** @type {?} */
1397
+ BsDatepickerState.prototype.flaggedMonths;
1398
+ /** @type {?} */
1399
+ BsDatepickerState.prototype.selectFromOtherMonth;
1400
+ /** @type {?} */
1401
+ BsDatepickerState.prototype.showPreviousMonth;
1402
+ /** @type {?} */
1403
+ BsDatepickerState.prototype.displayOneMonthRange;
1404
+ /** @type {?} */
1405
+ BsDatepickerState.prototype.monthsCalendar;
1406
+ /** @type {?} */
1407
+ BsDatepickerState.prototype.flaggedMonthsCalendar;
1408
+ /** @type {?} */
1409
+ BsDatepickerState.prototype.yearsCalendarModel;
1410
+ /** @type {?} */
1411
+ BsDatepickerState.prototype.yearsCalendarFlagged;
1412
+ /** @type {?} */
1413
+ BsDatepickerState.prototype.monthViewOptions;
1414
+ /** @type {?} */
1415
+ BsDatepickerState.prototype.showWeekNumbers;
1416
+ /** @type {?} */
1417
+ BsDatepickerState.prototype.displayMonths;
1418
+ /** @type {?} */
1419
+ BsDatepickerState.prototype.locale;
1420
+ /** @type {?} */
1421
+ BsDatepickerState.prototype.monthTitle;
1422
+ /** @type {?} */
1423
+ BsDatepickerState.prototype.yearTitle;
1424
+ /** @type {?} */
1425
+ BsDatepickerState.prototype.dayLabel;
1426
+ /** @type {?} */
1427
+ BsDatepickerState.prototype.monthLabel;
1428
+ /** @type {?} */
1429
+ BsDatepickerState.prototype.yearLabel;
1430
+ /** @type {?} */
1431
+ BsDatepickerState.prototype.weekNumbers;
1432
+ }
1063
1433
  /** @type {?} */
1064
1434
  var _initialView = { date: new Date(), mode: 'day' };
1065
1435
  /** @type {?} */
@@ -1134,7 +1504,7 @@ function isYearDisabled(date, min, max) {
1134
1504
  * @return {?}
1135
1505
  */
1136
1506
  function isDisabledDate(date, datesDisabled) {
1137
- if (datesDisabled === undefined || !datesDisabled || !datesDisabled.length) {
1507
+ if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {
1138
1508
  return false;
1139
1509
  }
1140
1510
  return datesDisabled.some((/**
@@ -1143,6 +1513,21 @@ function isDisabledDate(date, datesDisabled) {
1143
1513
  */
1144
1514
  function (dateDisabled) { return isSame(date, dateDisabled, 'date'); }));
1145
1515
  }
1516
+ /**
1517
+ * @param {?} date
1518
+ * @param {?} datesEnabled
1519
+ * @return {?}
1520
+ */
1521
+ function isEnabledDate(date, datesEnabled) {
1522
+ if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {
1523
+ return false;
1524
+ }
1525
+ return !datesEnabled.some((/**
1526
+ * @param {?} enabledDate
1527
+ * @return {?}
1528
+ */
1529
+ function (enabledDate) { return isSame(date, enabledDate, 'date'); }));
1530
+ }
1146
1531
  /**
1147
1532
  * @param {?} state
1148
1533
  * @param {?=} calendarIndex
@@ -1159,6 +1544,20 @@ function getYearsCalendarInitialDate(state, calendarIndex) {
1159
1544
  * @fileoverview added by tsickle
1160
1545
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1161
1546
  */
1547
+ /**
1548
+ * @record
1549
+ */
1550
+ function MatrixOptions() { }
1551
+ if (false) {
1552
+ /** @type {?} */
1553
+ MatrixOptions.prototype.height;
1554
+ /** @type {?} */
1555
+ MatrixOptions.prototype.width;
1556
+ /** @type {?} */
1557
+ MatrixOptions.prototype.initialDate;
1558
+ /** @type {?} */
1559
+ MatrixOptions.prototype.shift;
1560
+ }
1162
1561
  /**
1163
1562
  * @template T
1164
1563
  * @param {?} options
@@ -1282,6 +1681,36 @@ function getShiftedWeekdays(locale) {
1282
1681
  * @fileoverview added by tsickle
1283
1682
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1284
1683
  */
1684
+ /**
1685
+ * @record
1686
+ */
1687
+ function FlagDaysCalendarOptions() { }
1688
+ if (false) {
1689
+ /** @type {?} */
1690
+ FlagDaysCalendarOptions.prototype.isDisabled;
1691
+ /** @type {?} */
1692
+ FlagDaysCalendarOptions.prototype.minDate;
1693
+ /** @type {?} */
1694
+ FlagDaysCalendarOptions.prototype.maxDate;
1695
+ /** @type {?} */
1696
+ FlagDaysCalendarOptions.prototype.daysDisabled;
1697
+ /** @type {?} */
1698
+ FlagDaysCalendarOptions.prototype.datesDisabled;
1699
+ /** @type {?} */
1700
+ FlagDaysCalendarOptions.prototype.datesEnabled;
1701
+ /** @type {?} */
1702
+ FlagDaysCalendarOptions.prototype.hoveredDate;
1703
+ /** @type {?} */
1704
+ FlagDaysCalendarOptions.prototype.selectedDate;
1705
+ /** @type {?} */
1706
+ FlagDaysCalendarOptions.prototype.selectedRange;
1707
+ /** @type {?} */
1708
+ FlagDaysCalendarOptions.prototype.displayMonths;
1709
+ /** @type {?} */
1710
+ FlagDaysCalendarOptions.prototype.monthIndex;
1711
+ /** @type {?} */
1712
+ FlagDaysCalendarOptions.prototype.dateCustomClasses;
1713
+ }
1285
1714
  /**
1286
1715
  * @param {?} formattedMonth
1287
1716
  * @param {?} options
@@ -1327,7 +1756,8 @@ function flagDaysCalendar(formattedMonth, options) {
1327
1756
  isBefore(day.date, options.minDate, 'day') ||
1328
1757
  isAfter(day.date, options.maxDate, 'day') ||
1329
1758
  isDisabledDay(day.date, options.daysDisabled) ||
1330
- isDisabledDate(day.date, options.datesDisabled);
1759
+ isDisabledDate(day.date, options.datesDisabled) ||
1760
+ isEnabledDate(day.date, options.datesEnabled);
1331
1761
  /** @type {?} */
1332
1762
  var currentDate = new Date();
1333
1763
  /** @type {?} */
@@ -1456,6 +1886,26 @@ function formatMonthsCalendar(viewDate, formatOptions) {
1456
1886
  * @fileoverview added by tsickle
1457
1887
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1458
1888
  */
1889
+ /**
1890
+ * @record
1891
+ */
1892
+ function FlagMonthCalendarOptions() { }
1893
+ if (false) {
1894
+ /** @type {?} */
1895
+ FlagMonthCalendarOptions.prototype.isDisabled;
1896
+ /** @type {?} */
1897
+ FlagMonthCalendarOptions.prototype.minDate;
1898
+ /** @type {?} */
1899
+ FlagMonthCalendarOptions.prototype.maxDate;
1900
+ /** @type {?} */
1901
+ FlagMonthCalendarOptions.prototype.hoveredMonth;
1902
+ /** @type {?} */
1903
+ FlagMonthCalendarOptions.prototype.selectedDate;
1904
+ /** @type {?} */
1905
+ FlagMonthCalendarOptions.prototype.displayMonths;
1906
+ /** @type {?} */
1907
+ FlagMonthCalendarOptions.prototype.monthIndex;
1908
+ }
1459
1909
  /**
1460
1910
  * @param {?} monthCalendar
1461
1911
  * @param {?} options
@@ -1577,6 +2027,26 @@ function formatYearRangeTitle(yearsMatrix, formatOptions) {
1577
2027
  * @fileoverview added by tsickle
1578
2028
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1579
2029
  */
2030
+ /**
2031
+ * @record
2032
+ */
2033
+ function FlagYearsCalendarOptions() { }
2034
+ if (false) {
2035
+ /** @type {?} */
2036
+ FlagYearsCalendarOptions.prototype.isDisabled;
2037
+ /** @type {?} */
2038
+ FlagYearsCalendarOptions.prototype.minDate;
2039
+ /** @type {?} */
2040
+ FlagYearsCalendarOptions.prototype.maxDate;
2041
+ /** @type {?} */
2042
+ FlagYearsCalendarOptions.prototype.hoveredYear;
2043
+ /** @type {?} */
2044
+ FlagYearsCalendarOptions.prototype.selectedDate;
2045
+ /** @type {?} */
2046
+ FlagYearsCalendarOptions.prototype.displayMonths;
2047
+ /** @type {?} */
2048
+ FlagYearsCalendarOptions.prototype.yearIndex;
2049
+ }
1580
2050
  /**
1581
2051
  * @param {?} yearsCalendar
1582
2052
  * @param {?} options
@@ -1643,10 +2113,10 @@ function bsDatepickerReducer(state, action) {
1643
2113
  return calculateReducer(state);
1644
2114
  }
1645
2115
  case BsDatepickerActions.FORMAT: {
1646
- return formatReducer(state);
2116
+ return formatReducer(state, action);
1647
2117
  }
1648
2118
  case BsDatepickerActions.FLAG: {
1649
- return flagReducer(state);
2119
+ return flagReducer(state, action);
1650
2120
  }
1651
2121
  case BsDatepickerActions.NAVIGATE_OFFSET: {
1652
2122
  return navigateOffsetReducer(state, action);
@@ -1775,7 +2245,8 @@ function bsDatepickerReducer(state, action) {
1775
2245
  function calculateReducer(state) {
1776
2246
  // how many calendars
1777
2247
  /** @type {?} */
1778
- var displayMonths = state.displayMonths;
2248
+ var displayMonths = (state.displayOneMonthRange &&
2249
+ isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;
1779
2250
  // use selected date on initial rendering if set
1780
2251
  /** @type {?} */
1781
2252
  var viewDate = state.view.date;
@@ -1868,6 +2339,8 @@ function formatReducer(state, action) {
1868
2339
  * @return {?}
1869
2340
  */
1870
2341
  function flagReducer(state, action) {
2342
+ /** @type {?} */
2343
+ var displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
1871
2344
  if (state.view.mode === 'day') {
1872
2345
  /** @type {?} */
1873
2346
  var flaggedMonths = state.formattedMonths.map((/**
@@ -1882,10 +2355,11 @@ function flagReducer(state, action) {
1882
2355
  maxDate: state.maxDate,
1883
2356
  daysDisabled: state.daysDisabled,
1884
2357
  datesDisabled: state.datesDisabled,
2358
+ datesEnabled: state.datesEnabled,
1885
2359
  hoveredDate: state.hoveredDate,
1886
2360
  selectedDate: state.selectedDate,
1887
2361
  selectedRange: state.selectedRange,
1888
- displayMonths: state.displayMonths,
2362
+ displayMonths: displayMonths,
1889
2363
  dateCustomClasses: state.dateCustomClasses,
1890
2364
  monthIndex: monthIndex
1891
2365
  });
@@ -1906,7 +2380,7 @@ function flagReducer(state, action) {
1906
2380
  maxDate: state.maxDate,
1907
2381
  hoveredMonth: state.hoveredMonth,
1908
2382
  selectedDate: state.selectedDate,
1909
- displayMonths: state.displayMonths,
2383
+ displayMonths: displayMonths,
1910
2384
  monthIndex: monthIndex
1911
2385
  });
1912
2386
  }));
@@ -1926,7 +2400,7 @@ function flagReducer(state, action) {
1926
2400
  maxDate: state.maxDate,
1927
2401
  hoveredYear: state.hoveredYear,
1928
2402
  selectedDate: state.selectedDate,
1929
- displayMonths: state.displayMonths,
2403
+ displayMonths: displayMonths,
1930
2404
  yearIndex: yearIndex
1931
2405
  });
1932
2406
  }));
@@ -2000,6 +2474,21 @@ function getViewDate(viewDate, minDate, maxDate) {
2000
2474
  }
2001
2475
  return _date;
2002
2476
  }
2477
+ /**
2478
+ * @param {?} viewDate
2479
+ * @param {?} minDate
2480
+ * @param {?} maxDate
2481
+ * @return {?}
2482
+ */
2483
+ function isDisplayOneMonth(viewDate, minDate, maxDate) {
2484
+ if (maxDate && isSame(maxDate, viewDate, 'day')) {
2485
+ return true;
2486
+ }
2487
+ if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {
2488
+ return true;
2489
+ }
2490
+ return false;
2491
+ }
2003
2492
 
2004
2493
  /**
2005
2494
  * @fileoverview added by tsickle
@@ -2159,6 +2648,9 @@ var BsDatepickerContainerComponent = /** @class */ (function (_super) {
2159
2648
  * @return {?}
2160
2649
  */
2161
2650
  function (day) {
2651
+ if (!day) {
2652
+ return;
2653
+ }
2162
2654
  /** @type {?} */
2163
2655
  var isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2164
2656
  if (isDisabled) {
@@ -2193,7 +2685,7 @@ var BsDatepickerContainerComponent = /** @class */ (function (_super) {
2193
2685
  { type: Component, args: [{
2194
2686
  selector: 'bs-datepicker-container',
2195
2687
  providers: [BsDatepickerStore, BsDatepickerEffects],
2196
- 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",
2688
+ 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",
2197
2689
  host: {
2198
2690
  class: 'bottom',
2199
2691
  '(click)': '_stopPropagation($event)',
@@ -2215,6 +2707,39 @@ var BsDatepickerContainerComponent = /** @class */ (function (_super) {
2215
2707
  ]; };
2216
2708
  return BsDatepickerContainerComponent;
2217
2709
  }(BsDatepickerAbstractComponent));
2710
+ if (false) {
2711
+ /** @type {?} */
2712
+ BsDatepickerContainerComponent.prototype.valueChange;
2713
+ /** @type {?} */
2714
+ BsDatepickerContainerComponent.prototype.animationState;
2715
+ /** @type {?} */
2716
+ BsDatepickerContainerComponent.prototype._subs;
2717
+ /**
2718
+ * @type {?}
2719
+ * @private
2720
+ */
2721
+ BsDatepickerContainerComponent.prototype._config;
2722
+ /**
2723
+ * @type {?}
2724
+ * @private
2725
+ */
2726
+ BsDatepickerContainerComponent.prototype._store;
2727
+ /**
2728
+ * @type {?}
2729
+ * @private
2730
+ */
2731
+ BsDatepickerContainerComponent.prototype._element;
2732
+ /**
2733
+ * @type {?}
2734
+ * @private
2735
+ */
2736
+ BsDatepickerContainerComponent.prototype._actions;
2737
+ /**
2738
+ * @type {?}
2739
+ * @private
2740
+ */
2741
+ BsDatepickerContainerComponent.prototype._positionService;
2742
+ }
2218
2743
 
2219
2744
  /**
2220
2745
  * @fileoverview added by tsickle
@@ -2223,6 +2748,8 @@ var BsDatepickerContainerComponent = /** @class */ (function (_super) {
2223
2748
  var BsDatepickerDirective = /** @class */ (function () {
2224
2749
  function BsDatepickerDirective(_config, _elementRef, _renderer, _viewContainerRef, cis) {
2225
2750
  this._config = _config;
2751
+ this._elementRef = _elementRef;
2752
+ this._renderer = _renderer;
2226
2753
  /**
2227
2754
  * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
2228
2755
  */
@@ -2251,6 +2778,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2251
2778
  this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
2252
2779
  this.onShown = this._datepicker.onShown;
2253
2780
  this.onHidden = this._datepicker.onHidden;
2781
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
2254
2782
  }
2255
2783
  Object.defineProperty(BsDatepickerDirective.prototype, "isOpen", {
2256
2784
  /**
@@ -2268,12 +2796,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2268
2796
  * @return {?}
2269
2797
  */
2270
2798
  function (value) {
2271
- if (value) {
2272
- this.show();
2273
- }
2274
- else {
2275
- this.hide();
2276
- }
2799
+ this.isOpen$.next(value);
2277
2800
  },
2278
2801
  enumerable: true,
2279
2802
  configurable: true
@@ -2288,7 +2811,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2288
2811
  * @return {?}
2289
2812
  */
2290
2813
  function (value) {
2291
- if (this._bsValue === value) {
2814
+ if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {
2292
2815
  return;
2293
2816
  }
2294
2817
  this._bsValue = value;
@@ -2305,6 +2828,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2305
2828
  */
2306
2829
  function () {
2307
2830
  var _this = this;
2831
+ this.isDestroy$ = new Subject();
2308
2832
  this._datepicker.listen({
2309
2833
  outsideClick: this.outsideClick,
2310
2834
  outsideEsc: this.outsideEsc,
@@ -2340,6 +2864,9 @@ var BsDatepickerDirective = /** @class */ (function () {
2340
2864
  if (changes.datesDisabled) {
2341
2865
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
2342
2866
  }
2867
+ if (changes.datesEnabled) {
2868
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2869
+ }
2343
2870
  if (changes.isDisabled) {
2344
2871
  this._datepickerRef.instance.isDisabled = this.isDisabled;
2345
2872
  }
@@ -2347,6 +2874,24 @@ var BsDatepickerDirective = /** @class */ (function () {
2347
2874
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
2348
2875
  }
2349
2876
  };
2877
+ /**
2878
+ * @return {?}
2879
+ */
2880
+ BsDatepickerDirective.prototype.ngAfterViewInit = /**
2881
+ * @return {?}
2882
+ */
2883
+ function () {
2884
+ var _this = this;
2885
+ this.isOpen$.pipe(filter((/**
2886
+ * @param {?} isOpen
2887
+ * @return {?}
2888
+ */
2889
+ function (isOpen) { return isOpen !== _this.isOpen; })), takeUntil(this.isDestroy$))
2890
+ .subscribe((/**
2891
+ * @return {?}
2892
+ */
2893
+ function () { return _this.toggle(); }));
2894
+ };
2350
2895
  /**
2351
2896
  * Opens an element’s datepicker. This is considered a “manual” triggering of
2352
2897
  * the datepicker.
@@ -2423,6 +2968,9 @@ var BsDatepickerDirective = /** @class */ (function () {
2423
2968
  }
2424
2969
  finally { if (e_1) throw e_1.error; }
2425
2970
  }
2971
+ if (this._config.returnFocusToInput) {
2972
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
2973
+ }
2426
2974
  };
2427
2975
  /**
2428
2976
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -2464,6 +3012,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2464
3012
  daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
2465
3013
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2466
3014
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3015
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
2467
3016
  minMode: this.minMode || this.bsConfig && this.bsConfig.minMode
2468
3017
  });
2469
3018
  };
@@ -2475,6 +3024,11 @@ var BsDatepickerDirective = /** @class */ (function () {
2475
3024
  */
2476
3025
  function () {
2477
3026
  this._datepicker.dispose();
3027
+ this.isOpen$.next(false);
3028
+ if (this.isDestroy$) {
3029
+ this.isDestroy$.next();
3030
+ this.isDestroy$.complete();
3031
+ }
2478
3032
  };
2479
3033
  BsDatepickerDirective.decorators = [
2480
3034
  { type: Directive, args: [{
@@ -2507,11 +3061,130 @@ var BsDatepickerDirective = /** @class */ (function () {
2507
3061
  minMode: [{ type: Input }],
2508
3062
  daysDisabled: [{ type: Input }],
2509
3063
  datesDisabled: [{ type: Input }],
3064
+ datesEnabled: [{ type: Input }],
2510
3065
  dateCustomClasses: [{ type: Input }],
2511
3066
  bsValueChange: [{ type: Output }]
2512
3067
  };
2513
3068
  return BsDatepickerDirective;
2514
3069
  }());
3070
+ if (false) {
3071
+ /**
3072
+ * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
3073
+ * @type {?}
3074
+ */
3075
+ BsDatepickerDirective.prototype.placement;
3076
+ /**
3077
+ * Specifies events that should trigger. Supports a space separated list of
3078
+ * event names.
3079
+ * @type {?}
3080
+ */
3081
+ BsDatepickerDirective.prototype.triggers;
3082
+ /**
3083
+ * Close datepicker on outside click
3084
+ * @type {?}
3085
+ */
3086
+ BsDatepickerDirective.prototype.outsideClick;
3087
+ /**
3088
+ * A selector specifying the element the datepicker should be appended to.
3089
+ * @type {?}
3090
+ */
3091
+ BsDatepickerDirective.prototype.container;
3092
+ /** @type {?} */
3093
+ BsDatepickerDirective.prototype.outsideEsc;
3094
+ /**
3095
+ * Emits an event when the datepicker is shown
3096
+ * @type {?}
3097
+ */
3098
+ BsDatepickerDirective.prototype.onShown;
3099
+ /**
3100
+ * Emits an event when the datepicker is hidden
3101
+ * @type {?}
3102
+ */
3103
+ BsDatepickerDirective.prototype.onHidden;
3104
+ /** @type {?} */
3105
+ BsDatepickerDirective.prototype._bsValue;
3106
+ /** @type {?} */
3107
+ BsDatepickerDirective.prototype.isOpen$;
3108
+ /** @type {?} */
3109
+ BsDatepickerDirective.prototype.isDestroy$;
3110
+ /**
3111
+ * Config object for datepicker
3112
+ * @type {?}
3113
+ */
3114
+ BsDatepickerDirective.prototype.bsConfig;
3115
+ /**
3116
+ * Indicates whether datepicker's content is enabled or not
3117
+ * @type {?}
3118
+ */
3119
+ BsDatepickerDirective.prototype.isDisabled;
3120
+ /**
3121
+ * Minimum date which is available for selection
3122
+ * @type {?}
3123
+ */
3124
+ BsDatepickerDirective.prototype.minDate;
3125
+ /**
3126
+ * Maximum date which is available for selection
3127
+ * @type {?}
3128
+ */
3129
+ BsDatepickerDirective.prototype.maxDate;
3130
+ /**
3131
+ * Minimum view mode : day, month, or year
3132
+ * @type {?}
3133
+ */
3134
+ BsDatepickerDirective.prototype.minMode;
3135
+ /**
3136
+ * Disable Certain days in the week
3137
+ * @type {?}
3138
+ */
3139
+ BsDatepickerDirective.prototype.daysDisabled;
3140
+ /**
3141
+ * Disable specific dates
3142
+ * @type {?}
3143
+ */
3144
+ BsDatepickerDirective.prototype.datesDisabled;
3145
+ /**
3146
+ * Enable specific dates
3147
+ * @type {?}
3148
+ */
3149
+ BsDatepickerDirective.prototype.datesEnabled;
3150
+ /**
3151
+ * Date custom classes
3152
+ * @type {?}
3153
+ */
3154
+ BsDatepickerDirective.prototype.dateCustomClasses;
3155
+ /**
3156
+ * Emits when datepicker value has been changed
3157
+ * @type {?}
3158
+ */
3159
+ BsDatepickerDirective.prototype.bsValueChange;
3160
+ /**
3161
+ * @type {?}
3162
+ * @protected
3163
+ */
3164
+ BsDatepickerDirective.prototype._subs;
3165
+ /**
3166
+ * @type {?}
3167
+ * @private
3168
+ */
3169
+ BsDatepickerDirective.prototype._datepicker;
3170
+ /**
3171
+ * @type {?}
3172
+ * @private
3173
+ */
3174
+ BsDatepickerDirective.prototype._datepickerRef;
3175
+ /** @type {?} */
3176
+ BsDatepickerDirective.prototype._config;
3177
+ /**
3178
+ * @type {?}
3179
+ * @private
3180
+ */
3181
+ BsDatepickerDirective.prototype._elementRef;
3182
+ /**
3183
+ * @type {?}
3184
+ * @private
3185
+ */
3186
+ BsDatepickerDirective.prototype._renderer;
3187
+ }
2515
3188
 
2516
3189
  /**
2517
3190
  * @fileoverview added by tsickle
@@ -2544,7 +3217,7 @@ var BsDatepickerInlineContainerComponent = /** @class */ (function (_super) {
2544
3217
  { type: Component, args: [{
2545
3218
  selector: 'bs-datepicker-inline-container',
2546
3219
  providers: [BsDatepickerStore, BsDatepickerEffects],
2547
- 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",
3220
+ 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",
2548
3221
  host: {
2549
3222
  '(click)': '_stopPropagation($event)'
2550
3223
  },
@@ -2609,11 +3282,6 @@ var BsDatepickerInlineDirective = /** @class */ (function () {
2609
3282
  function () {
2610
3283
  var _this = this;
2611
3284
  this.setConfig();
2612
- this._datepickerRef = this._datepicker
2613
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
2614
- .attach(BsDatepickerInlineContainerComponent)
2615
- .to(this._elementRef)
2616
- .show();
2617
3285
  // if date changes from external source (model -> view)
2618
3286
  this._subs.push(this.bsValueChange.subscribe((/**
2619
3287
  * @param {?} value
@@ -2645,21 +3313,27 @@ var BsDatepickerInlineDirective = /** @class */ (function () {
2645
3313
  }
2646
3314
  if (changes.minDate) {
2647
3315
  this._datepickerRef.instance.minDate = this.minDate;
2648
- this._datepickerRef.instance.value = this._bsValue;
3316
+ this.setConfig();
2649
3317
  }
2650
3318
  if (changes.maxDate) {
2651
3319
  this._datepickerRef.instance.maxDate = this.maxDate;
2652
- this._datepickerRef.instance.value = this._bsValue;
3320
+ this.setConfig();
2653
3321
  }
2654
3322
  if (changes.datesDisabled) {
2655
3323
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3324
+ this.setConfig();
3325
+ }
3326
+ if (changes.datesEnabled) {
3327
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2656
3328
  this._datepickerRef.instance.value = this._bsValue;
2657
3329
  }
2658
3330
  if (changes.isDisabled) {
2659
3331
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3332
+ this.setConfig();
2660
3333
  }
2661
3334
  if (changes.dateCustomClasses) {
2662
3335
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3336
+ this.setConfig();
2663
3337
  }
2664
3338
  };
2665
3339
  /**
@@ -2674,14 +3348,23 @@ var BsDatepickerInlineDirective = /** @class */ (function () {
2674
3348
  * @return {?}
2675
3349
  */
2676
3350
  function () {
3351
+ if (this._datepicker) {
3352
+ this._datepicker.hide();
3353
+ }
2677
3354
  this._config = Object.assign({}, this._config, this.bsConfig, {
2678
3355
  value: this._bsValue,
2679
3356
  isDisabled: this.isDisabled,
2680
3357
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
2681
3358
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
2682
3359
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2683
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
3360
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3361
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled
2684
3362
  });
3363
+ this._datepickerRef = this._datepicker
3364
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
3365
+ .attach(BsDatepickerInlineContainerComponent)
3366
+ .to(this._elementRef)
3367
+ .show();
2685
3368
  };
2686
3369
  /**
2687
3370
  * @return {?}
@@ -2713,11 +3396,78 @@ var BsDatepickerInlineDirective = /** @class */ (function () {
2713
3396
  minDate: [{ type: Input }],
2714
3397
  maxDate: [{ type: Input }],
2715
3398
  dateCustomClasses: [{ type: Input }],
3399
+ datesEnabled: [{ type: Input }],
2716
3400
  datesDisabled: [{ type: Input }],
2717
3401
  bsValueChange: [{ type: Output }]
2718
3402
  };
2719
3403
  return BsDatepickerInlineDirective;
2720
3404
  }());
3405
+ if (false) {
3406
+ /** @type {?} */
3407
+ BsDatepickerInlineDirective.prototype._bsValue;
3408
+ /**
3409
+ * Config object for datepicker
3410
+ * @type {?}
3411
+ */
3412
+ BsDatepickerInlineDirective.prototype.bsConfig;
3413
+ /**
3414
+ * Indicates whether datepicker is enabled or not
3415
+ * @type {?}
3416
+ */
3417
+ BsDatepickerInlineDirective.prototype.isDisabled;
3418
+ /**
3419
+ * Minimum date which is available for selection
3420
+ * @type {?}
3421
+ */
3422
+ BsDatepickerInlineDirective.prototype.minDate;
3423
+ /**
3424
+ * Maximum date which is available for selection
3425
+ * @type {?}
3426
+ */
3427
+ BsDatepickerInlineDirective.prototype.maxDate;
3428
+ /**
3429
+ * Date custom classes
3430
+ * @type {?}
3431
+ */
3432
+ BsDatepickerInlineDirective.prototype.dateCustomClasses;
3433
+ /**
3434
+ * Disable specific dates
3435
+ * @type {?}
3436
+ */
3437
+ BsDatepickerInlineDirective.prototype.datesEnabled;
3438
+ /**
3439
+ * Enable specific dates
3440
+ * @type {?}
3441
+ */
3442
+ BsDatepickerInlineDirective.prototype.datesDisabled;
3443
+ /**
3444
+ * Emits when datepicker value has been changed
3445
+ * @type {?}
3446
+ */
3447
+ BsDatepickerInlineDirective.prototype.bsValueChange;
3448
+ /**
3449
+ * @type {?}
3450
+ * @protected
3451
+ */
3452
+ BsDatepickerInlineDirective.prototype._subs;
3453
+ /**
3454
+ * @type {?}
3455
+ * @private
3456
+ */
3457
+ BsDatepickerInlineDirective.prototype._datepicker;
3458
+ /**
3459
+ * @type {?}
3460
+ * @private
3461
+ */
3462
+ BsDatepickerInlineDirective.prototype._datepickerRef;
3463
+ /** @type {?} */
3464
+ BsDatepickerInlineDirective.prototype._config;
3465
+ /**
3466
+ * @type {?}
3467
+ * @private
3468
+ */
3469
+ BsDatepickerInlineDirective.prototype._elementRef;
3470
+ }
2721
3471
 
2722
3472
  /**
2723
3473
  * @fileoverview added by tsickle
@@ -2740,6 +3490,15 @@ var BsDaterangepickerInlineConfig = /** @class */ (function (_super) {
2740
3490
  ];
2741
3491
  return BsDaterangepickerInlineConfig;
2742
3492
  }(BsDatepickerConfig));
3493
+ if (false) {
3494
+ /** @type {?} */
3495
+ BsDaterangepickerInlineConfig.prototype.displayMonths;
3496
+ /**
3497
+ * turn on/off animation
3498
+ * @type {?}
3499
+ */
3500
+ BsDaterangepickerInlineConfig.prototype.isAnimated;
3501
+ }
2743
3502
 
2744
3503
  /**
2745
3504
  * @fileoverview added by tsickle
@@ -2757,8 +3516,10 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2757
3516
  _this.valueChange = new EventEmitter();
2758
3517
  _this.animationState = 'void';
2759
3518
  _this._rangeStack = [];
3519
+ _this.chosenRange = [];
2760
3520
  _this._subs = [];
2761
3521
  _this._effects = _effects;
3522
+ _this.customRanges = _this._config.ranges;
2762
3523
  _renderer.setStyle(_element.nativeElement, 'display', 'block');
2763
3524
  _renderer.setStyle(_element.nativeElement, 'position', 'absolute');
2764
3525
  return _this;
@@ -2823,7 +3584,10 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2823
3584
  * @param {?} date
2824
3585
  * @return {?}
2825
3586
  */
2826
- function (date) { return _this.valueChange.emit(date); })));
3587
+ function (date) {
3588
+ _this.valueChange.emit(date);
3589
+ _this.chosenRange = date;
3590
+ })));
2827
3591
  };
2828
3592
  Object.defineProperty(BsDaterangepickerContainerComponent.prototype, "isTopPosition", {
2829
3593
  get: /**
@@ -2853,6 +3617,9 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2853
3617
  * @return {?}
2854
3618
  */
2855
3619
  function (day) {
3620
+ if (!day) {
3621
+ return;
3622
+ }
2856
3623
  /** @type {?} */
2857
3624
  var isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2858
3625
  if (isDisabled) {
@@ -2900,11 +3667,23 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2900
3667
  }
2901
3668
  this._effects.destroy();
2902
3669
  };
3670
+ /**
3671
+ * @param {?} dates
3672
+ * @return {?}
3673
+ */
3674
+ BsDaterangepickerContainerComponent.prototype.setRangeOnCalendar = /**
3675
+ * @param {?} dates
3676
+ * @return {?}
3677
+ */
3678
+ function (dates) {
3679
+ this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
3680
+ this._store.dispatch(this._actions.selectRange(this._rangeStack));
3681
+ };
2903
3682
  BsDaterangepickerContainerComponent.decorators = [
2904
3683
  { type: Component, args: [{
2905
3684
  selector: 'bs-daterangepicker-container',
2906
3685
  providers: [BsDatepickerStore, BsDatepickerEffects],
2907
- 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",
3686
+ 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",
2908
3687
  host: {
2909
3688
  class: 'bottom',
2910
3689
  '(click)': '_stopPropagation($event)',
@@ -2926,6 +3705,43 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2926
3705
  ]; };
2927
3706
  return BsDaterangepickerContainerComponent;
2928
3707
  }(BsDatepickerAbstractComponent));
3708
+ if (false) {
3709
+ /** @type {?} */
3710
+ BsDaterangepickerContainerComponent.prototype.valueChange;
3711
+ /** @type {?} */
3712
+ BsDaterangepickerContainerComponent.prototype.animationState;
3713
+ /** @type {?} */
3714
+ BsDaterangepickerContainerComponent.prototype._rangeStack;
3715
+ /** @type {?} */
3716
+ BsDaterangepickerContainerComponent.prototype.chosenRange;
3717
+ /** @type {?} */
3718
+ BsDaterangepickerContainerComponent.prototype._subs;
3719
+ /**
3720
+ * @type {?}
3721
+ * @private
3722
+ */
3723
+ BsDaterangepickerContainerComponent.prototype._config;
3724
+ /**
3725
+ * @type {?}
3726
+ * @private
3727
+ */
3728
+ BsDaterangepickerContainerComponent.prototype._store;
3729
+ /**
3730
+ * @type {?}
3731
+ * @private
3732
+ */
3733
+ BsDaterangepickerContainerComponent.prototype._element;
3734
+ /**
3735
+ * @type {?}
3736
+ * @private
3737
+ */
3738
+ BsDaterangepickerContainerComponent.prototype._actions;
3739
+ /**
3740
+ * @type {?}
3741
+ * @private
3742
+ */
3743
+ BsDaterangepickerContainerComponent.prototype._positionService;
3744
+ }
2929
3745
 
2930
3746
  /**
2931
3747
  * @fileoverview added by tsickle
@@ -2943,7 +3759,7 @@ var BsDaterangepickerInlineContainerComponent = /** @class */ (function (_super)
2943
3759
  { type: Component, args: [{
2944
3760
  selector: 'bs-daterangepicker-inline-container',
2945
3761
  providers: [BsDatepickerStore, BsDatepickerEffects],
2946
- 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",
3762
+ 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",
2947
3763
  host: {
2948
3764
  '(click)': '_stopPropagation($event)'
2949
3765
  },
@@ -3008,11 +3824,6 @@ var BsDaterangepickerInlineDirective = /** @class */ (function () {
3008
3824
  function () {
3009
3825
  var _this = this;
3010
3826
  this.setConfig();
3011
- this._datepickerRef = this._datepicker
3012
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
3013
- .attach(BsDaterangepickerInlineContainerComponent)
3014
- .to(this._elementRef)
3015
- .show();
3016
3827
  // if date changes from external source (model -> view)
3017
3828
  this._subs.push(this.bsValueChange.subscribe((/**
3018
3829
  * @param {?} value
@@ -3050,18 +3861,30 @@ var BsDaterangepickerInlineDirective = /** @class */ (function () {
3050
3861
  }
3051
3862
  if (changes.minDate) {
3052
3863
  this._datepickerRef.instance.minDate = this.minDate;
3864
+ this.setConfig();
3053
3865
  }
3054
3866
  if (changes.maxDate) {
3055
3867
  this._datepickerRef.instance.maxDate = this.maxDate;
3868
+ this.setConfig();
3869
+ }
3870
+ if (changes.datesEnabled) {
3871
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
3056
3872
  }
3057
3873
  if (changes.datesDisabled) {
3058
3874
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3875
+ this.setConfig();
3876
+ }
3877
+ if (changes.daysDisabled) {
3878
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
3879
+ this.setConfig();
3059
3880
  }
3060
3881
  if (changes.isDisabled) {
3061
3882
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3883
+ this.setConfig();
3062
3884
  }
3063
3885
  if (changes.dateCustomClasses) {
3064
3886
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3887
+ this.setConfig();
3065
3888
  }
3066
3889
  };
3067
3890
  /**
@@ -3076,14 +3899,25 @@ var BsDaterangepickerInlineDirective = /** @class */ (function () {
3076
3899
  * @return {?}
3077
3900
  */
3078
3901
  function () {
3902
+ if (this._datepicker) {
3903
+ this._datepicker.hide();
3904
+ }
3079
3905
  this._config = Object.assign({}, this._config, this.bsConfig, {
3080
3906
  value: this._bsValue,
3081
3907
  isDisabled: this.isDisabled,
3082
3908
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3083
3909
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
3910
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3084
3911
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3085
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
3912
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3913
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
3914
+ ranges: this.bsConfig && this.bsConfig.ranges
3086
3915
  });
3916
+ this._datepickerRef = this._datepicker
3917
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
3918
+ .attach(BsDaterangepickerInlineContainerComponent)
3919
+ .to(this._elementRef)
3920
+ .show();
3087
3921
  };
3088
3922
  /**
3089
3923
  * @return {?}
@@ -3115,11 +3949,84 @@ var BsDaterangepickerInlineDirective = /** @class */ (function () {
3115
3949
  minDate: [{ type: Input }],
3116
3950
  maxDate: [{ type: Input }],
3117
3951
  dateCustomClasses: [{ type: Input }],
3952
+ daysDisabled: [{ type: Input }],
3118
3953
  datesDisabled: [{ type: Input }],
3954
+ datesEnabled: [{ type: Input }],
3119
3955
  bsValueChange: [{ type: Output }]
3120
3956
  };
3121
3957
  return BsDaterangepickerInlineDirective;
3122
3958
  }());
3959
+ if (false) {
3960
+ /** @type {?} */
3961
+ BsDaterangepickerInlineDirective.prototype._bsValue;
3962
+ /**
3963
+ * Config object for datepicker
3964
+ * @type {?}
3965
+ */
3966
+ BsDaterangepickerInlineDirective.prototype.bsConfig;
3967
+ /**
3968
+ * Indicates whether datepicker is enabled or not
3969
+ * @type {?}
3970
+ */
3971
+ BsDaterangepickerInlineDirective.prototype.isDisabled;
3972
+ /**
3973
+ * Minimum date which is available for selection
3974
+ * @type {?}
3975
+ */
3976
+ BsDaterangepickerInlineDirective.prototype.minDate;
3977
+ /**
3978
+ * Maximum date which is available for selection
3979
+ * @type {?}
3980
+ */
3981
+ BsDaterangepickerInlineDirective.prototype.maxDate;
3982
+ /**
3983
+ * Date custom classes
3984
+ * @type {?}
3985
+ */
3986
+ BsDaterangepickerInlineDirective.prototype.dateCustomClasses;
3987
+ /**
3988
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
3989
+ * @type {?}
3990
+ */
3991
+ BsDaterangepickerInlineDirective.prototype.daysDisabled;
3992
+ /**
3993
+ * Disable specific dates
3994
+ * @type {?}
3995
+ */
3996
+ BsDaterangepickerInlineDirective.prototype.datesDisabled;
3997
+ /**
3998
+ * Disable specific dates
3999
+ * @type {?}
4000
+ */
4001
+ BsDaterangepickerInlineDirective.prototype.datesEnabled;
4002
+ /**
4003
+ * Emits when daterangepicker value has been changed
4004
+ * @type {?}
4005
+ */
4006
+ BsDaterangepickerInlineDirective.prototype.bsValueChange;
4007
+ /**
4008
+ * @type {?}
4009
+ * @protected
4010
+ */
4011
+ BsDaterangepickerInlineDirective.prototype._subs;
4012
+ /**
4013
+ * @type {?}
4014
+ * @private
4015
+ */
4016
+ BsDaterangepickerInlineDirective.prototype._datepicker;
4017
+ /**
4018
+ * @type {?}
4019
+ * @private
4020
+ */
4021
+ BsDaterangepickerInlineDirective.prototype._datepickerRef;
4022
+ /** @type {?} */
4023
+ BsDaterangepickerInlineDirective.prototype._config;
4024
+ /**
4025
+ * @type {?}
4026
+ * @private
4027
+ */
4028
+ BsDaterangepickerInlineDirective.prototype._elementRef;
4029
+ }
3123
4030
 
3124
4031
  /**
3125
4032
  * @fileoverview added by tsickle
@@ -3179,6 +4086,19 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3179
4086
  _this._setInputValue(_this._value);
3180
4087
  }));
3181
4088
  }
4089
+ /**
4090
+ * @param {?} event
4091
+ * @return {?}
4092
+ */
4093
+ BsDatepickerInputDirective.prototype.onKeydownEvent = /**
4094
+ * @param {?} event
4095
+ * @return {?}
4096
+ */
4097
+ function (event) {
4098
+ if (event.keyCode === 13 || event.code === 'Enter') {
4099
+ this.hide();
4100
+ }
4101
+ };
3182
4102
  /**
3183
4103
  * @param {?} value
3184
4104
  * @return {?}
@@ -3205,6 +4125,9 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3205
4125
  /* tslint:disable-next-line: no-any*/
3206
4126
  this.writeValue(((/** @type {?} */ (event.target))).value);
3207
4127
  this._onChange(this._value);
4128
+ if (this._picker._config.returnFocusToInput) {
4129
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4130
+ }
3208
4131
  this._onTouched();
3209
4132
  };
3210
4133
  /**
@@ -3229,9 +4152,11 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3229
4152
  return { bsDate: { invalid: _value } };
3230
4153
  }
3231
4154
  if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {
4155
+ this.writeValue(this._picker.minDate);
3232
4156
  return { bsDate: { minDate: this._picker.minDate } };
3233
4157
  }
3234
4158
  if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {
4159
+ this.writeValue(this._picker.maxDate);
3235
4160
  return { bsDate: { maxDate: this._picker.maxDate } };
3236
4161
  }
3237
4162
  }
@@ -3330,6 +4255,9 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3330
4255
  function () {
3331
4256
  this._picker.hide();
3332
4257
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
4258
+ if (this._picker._config.returnFocusToInput) {
4259
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4260
+ }
3333
4261
  };
3334
4262
  BsDatepickerInputDirective.decorators = [
3335
4263
  { type: Directive, args: [{
@@ -3337,6 +4265,7 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3337
4265
  host: {
3338
4266
  '(change)': 'onChange($event)',
3339
4267
  '(keyup.esc)': 'hide()',
4268
+ '(keydown)': 'onKeydownEvent($event)',
3340
4269
  '(blur)': 'onBlur()'
3341
4270
  },
3342
4271
  providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]
@@ -3352,6 +4281,53 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3352
4281
  ]; };
3353
4282
  return BsDatepickerInputDirective;
3354
4283
  }());
4284
+ if (false) {
4285
+ /**
4286
+ * @type {?}
4287
+ * @private
4288
+ */
4289
+ BsDatepickerInputDirective.prototype._onChange;
4290
+ /**
4291
+ * @type {?}
4292
+ * @private
4293
+ */
4294
+ BsDatepickerInputDirective.prototype._onTouched;
4295
+ /**
4296
+ * @type {?}
4297
+ * @private
4298
+ */
4299
+ BsDatepickerInputDirective.prototype._validatorChange;
4300
+ /**
4301
+ * @type {?}
4302
+ * @private
4303
+ */
4304
+ BsDatepickerInputDirective.prototype._value;
4305
+ /**
4306
+ * @type {?}
4307
+ * @private
4308
+ */
4309
+ BsDatepickerInputDirective.prototype._picker;
4310
+ /**
4311
+ * @type {?}
4312
+ * @private
4313
+ */
4314
+ BsDatepickerInputDirective.prototype._localeService;
4315
+ /**
4316
+ * @type {?}
4317
+ * @private
4318
+ */
4319
+ BsDatepickerInputDirective.prototype._renderer;
4320
+ /**
4321
+ * @type {?}
4322
+ * @private
4323
+ */
4324
+ BsDatepickerInputDirective.prototype._elRef;
4325
+ /**
4326
+ * @type {?}
4327
+ * @private
4328
+ */
4329
+ BsDatepickerInputDirective.prototype.changeDetection;
4330
+ }
3355
4331
 
3356
4332
  /**
3357
4333
  * @fileoverview added by tsickle
@@ -3370,6 +4346,10 @@ var BsDaterangepickerConfig = /** @class */ (function (_super) {
3370
4346
  ];
3371
4347
  return BsDaterangepickerConfig;
3372
4348
  }(BsDatepickerConfig));
4349
+ if (false) {
4350
+ /** @type {?} */
4351
+ BsDaterangepickerConfig.prototype.displayMonths;
4352
+ }
3373
4353
 
3374
4354
  /**
3375
4355
  * @fileoverview added by tsickle
@@ -3378,6 +4358,8 @@ var BsDaterangepickerConfig = /** @class */ (function (_super) {
3378
4358
  var BsDaterangepickerDirective = /** @class */ (function () {
3379
4359
  function BsDaterangepickerDirective(_config, _elementRef, _renderer, _viewContainerRef, cis) {
3380
4360
  this._config = _config;
4361
+ this._elementRef = _elementRef;
4362
+ this._renderer = _renderer;
3381
4363
  /**
3382
4364
  * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
3383
4365
  */
@@ -3405,6 +4387,7 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3405
4387
  Object.assign(this, _config);
3406
4388
  this.onShown = this._datepicker.onShown;
3407
4389
  this.onHidden = this._datepicker.onHidden;
4390
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
3408
4391
  }
3409
4392
  Object.defineProperty(BsDaterangepickerDirective.prototype, "isOpen", {
3410
4393
  /**
@@ -3422,12 +4405,7 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3422
4405
  * @return {?}
3423
4406
  */
3424
4407
  function (value) {
3425
- if (value) {
3426
- this.show();
3427
- }
3428
- else {
3429
- this.hide();
3430
- }
4408
+ this.isOpen$.next(value);
3431
4409
  },
3432
4410
  enumerable: true,
3433
4411
  configurable: true
@@ -3459,6 +4437,7 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3459
4437
  */
3460
4438
  function () {
3461
4439
  var _this = this;
4440
+ this.isDestroy$ = new Subject();
3462
4441
  this._datepicker.listen({
3463
4442
  outsideClick: this.outsideClick,
3464
4443
  outsideEsc: this.outsideEsc,
@@ -3491,6 +4470,12 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3491
4470
  if (changes.datesDisabled) {
3492
4471
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3493
4472
  }
4473
+ if (changes.datesEnabled) {
4474
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
4475
+ }
4476
+ if (changes.daysDisabled) {
4477
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
4478
+ }
3494
4479
  if (changes.isDisabled) {
3495
4480
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3496
4481
  }
@@ -3498,6 +4483,24 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3498
4483
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3499
4484
  }
3500
4485
  };
4486
+ /**
4487
+ * @return {?}
4488
+ */
4489
+ BsDaterangepickerDirective.prototype.ngAfterViewInit = /**
4490
+ * @return {?}
4491
+ */
4492
+ function () {
4493
+ var _this = this;
4494
+ this.isOpen$.pipe(filter((/**
4495
+ * @param {?} isOpen
4496
+ * @return {?}
4497
+ */
4498
+ function (isOpen) { return isOpen !== _this.isOpen; })), takeUntil(this.isDestroy$))
4499
+ .subscribe((/**
4500
+ * @return {?}
4501
+ */
4502
+ function () { return _this.toggle(); }));
4503
+ };
3501
4504
  /**
3502
4505
  * Opens an element’s datepicker. This is considered a “manual” triggering of
3503
4506
  * the datepicker.
@@ -3565,8 +4568,11 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3565
4568
  isDisabled: this.isDisabled,
3566
4569
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3567
4570
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
4571
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3568
4572
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3569
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
4573
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4574
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4575
+ ranges: this.bsConfig && this.bsConfig.ranges
3570
4576
  });
3571
4577
  };
3572
4578
  /**
@@ -3601,6 +4607,9 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3601
4607
  }
3602
4608
  finally { if (e_1) throw e_1.error; }
3603
4609
  }
4610
+ if (this._config.returnFocusToInput) {
4611
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
4612
+ }
3604
4613
  };
3605
4614
  /**
3606
4615
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -3630,6 +4639,11 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3630
4639
  */
3631
4640
  function () {
3632
4641
  this._datepicker.dispose();
4642
+ this.isOpen$.next(false);
4643
+ if (this.isDestroy$) {
4644
+ this.isDestroy$.next();
4645
+ this.isDestroy$.complete();
4646
+ }
3633
4647
  };
3634
4648
  BsDaterangepickerDirective.decorators = [
3635
4649
  { type: Directive, args: [{
@@ -3660,11 +4674,126 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3660
4674
  minDate: [{ type: Input }],
3661
4675
  maxDate: [{ type: Input }],
3662
4676
  dateCustomClasses: [{ type: Input }],
4677
+ daysDisabled: [{ type: Input }],
3663
4678
  datesDisabled: [{ type: Input }],
4679
+ datesEnabled: [{ type: Input }],
3664
4680
  bsValueChange: [{ type: Output }]
3665
4681
  };
3666
4682
  return BsDaterangepickerDirective;
3667
4683
  }());
4684
+ if (false) {
4685
+ /**
4686
+ * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
4687
+ * @type {?}
4688
+ */
4689
+ BsDaterangepickerDirective.prototype.placement;
4690
+ /**
4691
+ * Specifies events that should trigger. Supports a space separated list of
4692
+ * event names.
4693
+ * @type {?}
4694
+ */
4695
+ BsDaterangepickerDirective.prototype.triggers;
4696
+ /**
4697
+ * Close daterangepicker on outside click
4698
+ * @type {?}
4699
+ */
4700
+ BsDaterangepickerDirective.prototype.outsideClick;
4701
+ /**
4702
+ * A selector specifying the element the daterangepicker should be appended to.
4703
+ * @type {?}
4704
+ */
4705
+ BsDaterangepickerDirective.prototype.container;
4706
+ /** @type {?} */
4707
+ BsDaterangepickerDirective.prototype.outsideEsc;
4708
+ /**
4709
+ * Emits an event when the daterangepicker is shown
4710
+ * @type {?}
4711
+ */
4712
+ BsDaterangepickerDirective.prototype.onShown;
4713
+ /**
4714
+ * Emits an event when the daterangepicker is hidden
4715
+ * @type {?}
4716
+ */
4717
+ BsDaterangepickerDirective.prototype.onHidden;
4718
+ /** @type {?} */
4719
+ BsDaterangepickerDirective.prototype._bsValue;
4720
+ /** @type {?} */
4721
+ BsDaterangepickerDirective.prototype.isOpen$;
4722
+ /** @type {?} */
4723
+ BsDaterangepickerDirective.prototype.isDestroy$;
4724
+ /**
4725
+ * Config object for daterangepicker
4726
+ * @type {?}
4727
+ */
4728
+ BsDaterangepickerDirective.prototype.bsConfig;
4729
+ /**
4730
+ * Indicates whether daterangepicker's content is enabled or not
4731
+ * @type {?}
4732
+ */
4733
+ BsDaterangepickerDirective.prototype.isDisabled;
4734
+ /**
4735
+ * Minimum date which is available for selection
4736
+ * @type {?}
4737
+ */
4738
+ BsDaterangepickerDirective.prototype.minDate;
4739
+ /**
4740
+ * Maximum date which is available for selection
4741
+ * @type {?}
4742
+ */
4743
+ BsDaterangepickerDirective.prototype.maxDate;
4744
+ /**
4745
+ * Date custom classes
4746
+ * @type {?}
4747
+ */
4748
+ BsDaterangepickerDirective.prototype.dateCustomClasses;
4749
+ /**
4750
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
4751
+ * @type {?}
4752
+ */
4753
+ BsDaterangepickerDirective.prototype.daysDisabled;
4754
+ /**
4755
+ * Disable specific dates
4756
+ * @type {?}
4757
+ */
4758
+ BsDaterangepickerDirective.prototype.datesDisabled;
4759
+ /**
4760
+ * Enable specific dates
4761
+ * @type {?}
4762
+ */
4763
+ BsDaterangepickerDirective.prototype.datesEnabled;
4764
+ /**
4765
+ * Emits when daterangepicker value has been changed
4766
+ * @type {?}
4767
+ */
4768
+ BsDaterangepickerDirective.prototype.bsValueChange;
4769
+ /**
4770
+ * @type {?}
4771
+ * @protected
4772
+ */
4773
+ BsDaterangepickerDirective.prototype._subs;
4774
+ /**
4775
+ * @type {?}
4776
+ * @private
4777
+ */
4778
+ BsDaterangepickerDirective.prototype._datepicker;
4779
+ /**
4780
+ * @type {?}
4781
+ * @private
4782
+ */
4783
+ BsDaterangepickerDirective.prototype._datepickerRef;
4784
+ /** @type {?} */
4785
+ BsDaterangepickerDirective.prototype._config;
4786
+ /**
4787
+ * @type {?}
4788
+ * @private
4789
+ */
4790
+ BsDaterangepickerDirective.prototype._elementRef;
4791
+ /**
4792
+ * @type {?}
4793
+ * @private
4794
+ */
4795
+ BsDaterangepickerDirective.prototype._renderer;
4796
+ }
3668
4797
 
3669
4798
  /**
3670
4799
  * @fileoverview added by tsickle
@@ -3724,6 +4853,19 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3724
4853
  _this._setInputValue(_this._value);
3725
4854
  }));
3726
4855
  }
4856
+ /**
4857
+ * @param {?} event
4858
+ * @return {?}
4859
+ */
4860
+ BsDaterangepickerInputDirective.prototype.onKeydownEvent = /**
4861
+ * @param {?} event
4862
+ * @return {?}
4863
+ */
4864
+ function (event) {
4865
+ if (event.keyCode === 13 || event.code === 'Enter') {
4866
+ this.hide();
4867
+ }
4868
+ };
3727
4869
  /**
3728
4870
  * @param {?} date
3729
4871
  * @return {?}
@@ -3758,6 +4900,9 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3758
4900
  /* tslint:disable-next-line: no-any*/
3759
4901
  this.writeValue(((/** @type {?} */ (event.target))).value);
3760
4902
  this._onChange(this._value);
4903
+ if (this._picker._config.returnFocusToInput) {
4904
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4905
+ }
3761
4906
  this._onTouched();
3762
4907
  };
3763
4908
  /**
@@ -3771,9 +4916,18 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3771
4916
  function (c) {
3772
4917
  /** @type {?} */
3773
4918
  var _value = c.value;
4919
+ /** @type {?} */
4920
+ var errors = [];
3774
4921
  if (_value === null || _value === undefined || !isArray(_value)) {
3775
4922
  return null;
3776
4923
  }
4924
+ // @ts-ignore
4925
+ _value.sort((/**
4926
+ * @param {?} a
4927
+ * @param {?} b
4928
+ * @return {?}
4929
+ */
4930
+ function (a, b) { return a - b; }));
3777
4931
  /** @type {?} */
3778
4932
  var _isFirstDateValid = isDateValid(_value[0]);
3779
4933
  /** @type {?} */
@@ -3785,10 +4939,16 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3785
4939
  return { bsDate: { invalid: _value[1] } };
3786
4940
  }
3787
4941
  if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {
3788
- return { bsDate: { minDate: this._picker.minDate } };
4942
+ _value[0] = this._picker.minDate;
4943
+ errors.push({ bsDate: { minDate: this._picker.minDate } });
3789
4944
  }
3790
4945
  if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {
3791
- return { bsDate: { maxDate: this._picker.maxDate } };
4946
+ _value[1] = this._picker.maxDate;
4947
+ errors.push({ bsDate: { maxDate: this._picker.maxDate } });
4948
+ }
4949
+ if (errors.length > 0) {
4950
+ this.writeValue(_value);
4951
+ return errors;
3792
4952
  }
3793
4953
  };
3794
4954
  /**
@@ -3912,6 +5072,9 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3912
5072
  function () {
3913
5073
  this._picker.hide();
3914
5074
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
5075
+ if (this._picker._config.returnFocusToInput) {
5076
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
5077
+ }
3915
5078
  };
3916
5079
  BsDaterangepickerInputDirective.decorators = [
3917
5080
  { type: Directive, args: [{
@@ -3919,6 +5082,7 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3919
5082
  host: {
3920
5083
  '(change)': 'onChange($event)',
3921
5084
  '(keyup.esc)': 'hide()',
5085
+ '(keydown)': 'onKeydownEvent($event)',
3922
5086
  '(blur)': 'onBlur()'
3923
5087
  },
3924
5088
  providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]
@@ -3934,6 +5098,53 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3934
5098
  ]; };
3935
5099
  return BsDaterangepickerInputDirective;
3936
5100
  }());
5101
+ if (false) {
5102
+ /**
5103
+ * @type {?}
5104
+ * @private
5105
+ */
5106
+ BsDaterangepickerInputDirective.prototype._onChange;
5107
+ /**
5108
+ * @type {?}
5109
+ * @private
5110
+ */
5111
+ BsDaterangepickerInputDirective.prototype._onTouched;
5112
+ /**
5113
+ * @type {?}
5114
+ * @private
5115
+ */
5116
+ BsDaterangepickerInputDirective.prototype._validatorChange;
5117
+ /**
5118
+ * @type {?}
5119
+ * @private
5120
+ */
5121
+ BsDaterangepickerInputDirective.prototype._value;
5122
+ /**
5123
+ * @type {?}
5124
+ * @private
5125
+ */
5126
+ BsDaterangepickerInputDirective.prototype._picker;
5127
+ /**
5128
+ * @type {?}
5129
+ * @private
5130
+ */
5131
+ BsDaterangepickerInputDirective.prototype._localeService;
5132
+ /**
5133
+ * @type {?}
5134
+ * @private
5135
+ */
5136
+ BsDaterangepickerInputDirective.prototype._renderer;
5137
+ /**
5138
+ * @type {?}
5139
+ * @private
5140
+ */
5141
+ BsDaterangepickerInputDirective.prototype._elRef;
5142
+ /**
5143
+ * @type {?}
5144
+ * @private
5145
+ */
5146
+ BsDaterangepickerInputDirective.prototype.changeDetection;
5147
+ }
3937
5148
 
3938
5149
  /**
3939
5150
  * @fileoverview added by tsickle
@@ -3969,27 +5180,79 @@ var BsCurrentDateViewComponent = /** @class */ (function () {
3969
5180
  };
3970
5181
  return BsCurrentDateViewComponent;
3971
5182
  }());
5183
+ if (false) {
5184
+ /** @type {?} */
5185
+ BsCurrentDateViewComponent.prototype.title;
5186
+ }
3972
5187
 
3973
5188
  /**
3974
5189
  * @fileoverview added by tsickle
3975
5190
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3976
5191
  */
5192
+ /**
5193
+ * @record
5194
+ */
5195
+ function BsCustomDates() { }
5196
+ if (false) {
5197
+ /** @type {?} */
5198
+ BsCustomDates.prototype.label;
5199
+ /** @type {?} */
5200
+ BsCustomDates.prototype.value;
5201
+ }
3977
5202
  var BsCustomDatesViewComponent = /** @class */ (function () {
3978
5203
  function BsCustomDatesViewComponent() {
5204
+ this.onSelect = new EventEmitter();
5205
+ this.customRange = null;
3979
5206
  }
5207
+ /**
5208
+ * @param {?} range
5209
+ * @return {?}
5210
+ */
5211
+ BsCustomDatesViewComponent.prototype.selectFromRanges = /**
5212
+ * @param {?} range
5213
+ * @return {?}
5214
+ */
5215
+ function (range) {
5216
+ this.onSelect.emit(range);
5217
+ };
5218
+ /**
5219
+ * @return {?}
5220
+ */
5221
+ BsCustomDatesViewComponent.prototype.checkRange = /**
5222
+ * @return {?}
5223
+ */
5224
+ function () {
5225
+ var _this = this;
5226
+ return this.ranges ? this.ranges.filter((/**
5227
+ * @param {?} range
5228
+ * @return {?}
5229
+ */
5230
+ function (range) { return range.value === _this.selectedRange; })).length > 0 : false;
5231
+ };
3980
5232
  BsCustomDatesViewComponent.decorators = [
3981
5233
  { type: Component, args: [{
3982
5234
  selector: 'bs-custom-date-view',
3983
- template: "\n <div class=\"bs-datepicker-predefined-btns\">\n <button *ngFor=\"let range of ranges\" type=\"button\">{{ range.label }}</button>\n <button *ngIf=\"isCustomRangeShown\" type=\"button\">Custom Range</button>\n </div>\n ",
5235
+ template: "\n <div class=\"bs-datepicker-predefined-btns\">\n <button *ngFor=\"let range of ranges\"\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(range)\"\n [class.selected]=\"range.value === selectedRange\">\n {{ range.label }}\n </button>\n <button\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(customRange)\"\n [class.selected]=\"!checkRange()\">\n Custom Range\n </button>\n </div>\n ",
3984
5236
  changeDetection: ChangeDetectionStrategy.OnPush
3985
5237
  }] }
3986
5238
  ];
3987
5239
  BsCustomDatesViewComponent.propDecorators = {
3988
- isCustomRangeShown: [{ type: Input }],
3989
- ranges: [{ type: Input }]
5240
+ ranges: [{ type: Input }],
5241
+ selectedRange: [{ type: Input }],
5242
+ onSelect: [{ type: Output }]
3990
5243
  };
3991
5244
  return BsCustomDatesViewComponent;
3992
5245
  }());
5246
+ if (false) {
5247
+ /** @type {?} */
5248
+ BsCustomDatesViewComponent.prototype.ranges;
5249
+ /** @type {?} */
5250
+ BsCustomDatesViewComponent.prototype.selectedRange;
5251
+ /** @type {?} */
5252
+ BsCustomDatesViewComponent.prototype.onSelect;
5253
+ /** @type {?} */
5254
+ BsCustomDatesViewComponent.prototype.customRange;
5255
+ }
3993
5256
 
3994
5257
  /**
3995
5258
  * @fileoverview added by tsickle
@@ -4056,11 +5319,199 @@ var BsDatepickerDayDecoratorComponent = /** @class */ (function () {
4056
5319
  };
4057
5320
  return BsDatepickerDayDecoratorComponent;
4058
5321
  }());
5322
+ if (false) {
5323
+ /** @type {?} */
5324
+ BsDatepickerDayDecoratorComponent.prototype.day;
5325
+ /**
5326
+ * @type {?}
5327
+ * @private
5328
+ */
5329
+ BsDatepickerDayDecoratorComponent.prototype._config;
5330
+ /**
5331
+ * @type {?}
5332
+ * @private
5333
+ */
5334
+ BsDatepickerDayDecoratorComponent.prototype._elRef;
5335
+ /**
5336
+ * @type {?}
5337
+ * @private
5338
+ */
5339
+ BsDatepickerDayDecoratorComponent.prototype._renderer;
5340
+ }
4059
5341
 
4060
5342
  /**
4061
- * @fileoverview added by tsickle
4062
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5343
+ * @fileoverview added by tsickle
5344
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5345
+ */
5346
+ /**
5347
+ * **************
5348
+ * @record
5349
+ */
5350
+ function NavigationViewModel() { }
5351
+ if (false) {
5352
+ /** @type {?} */
5353
+ NavigationViewModel.prototype.monthTitle;
5354
+ /** @type {?} */
5355
+ NavigationViewModel.prototype.yearTitle;
5356
+ /** @type {?|undefined} */
5357
+ NavigationViewModel.prototype.hideLeftArrow;
5358
+ /** @type {?|undefined} */
5359
+ NavigationViewModel.prototype.hideRightArrow;
5360
+ /** @type {?|undefined} */
5361
+ NavigationViewModel.prototype.disableLeftArrow;
5362
+ /** @type {?|undefined} */
5363
+ NavigationViewModel.prototype.disableRightArrow;
5364
+ }
5365
+ /**
5366
+ * @record
5367
+ */
5368
+ function CalendarCellViewModel() { }
5369
+ if (false) {
5370
+ /** @type {?} */
5371
+ CalendarCellViewModel.prototype.date;
5372
+ /** @type {?} */
5373
+ CalendarCellViewModel.prototype.label;
5374
+ /** @type {?|undefined} */
5375
+ CalendarCellViewModel.prototype.isDisabled;
5376
+ /** @type {?|undefined} */
5377
+ CalendarCellViewModel.prototype.isHovered;
5378
+ /** @type {?|undefined} */
5379
+ CalendarCellViewModel.prototype.isSelected;
5380
+ }
5381
+ /**
5382
+ * **************
5383
+ * @record
5384
+ */
5385
+ function DayViewModel() { }
5386
+ if (false) {
5387
+ /** @type {?|undefined} */
5388
+ DayViewModel.prototype.isOtherMonthHovered;
5389
+ /** @type {?|undefined} */
5390
+ DayViewModel.prototype.isOtherMonth;
5391
+ /** @type {?|undefined} */
5392
+ DayViewModel.prototype.isInRange;
5393
+ /** @type {?|undefined} */
5394
+ DayViewModel.prototype.isSelectionStart;
5395
+ /** @type {?|undefined} */
5396
+ DayViewModel.prototype.isSelectionEnd;
5397
+ /** @type {?|undefined} */
5398
+ DayViewModel.prototype.isToday;
5399
+ /** @type {?|undefined} */
5400
+ DayViewModel.prototype.customClasses;
5401
+ /** @type {?|undefined} */
5402
+ DayViewModel.prototype.monthIndex;
5403
+ /** @type {?|undefined} */
5404
+ DayViewModel.prototype.weekIndex;
5405
+ /** @type {?|undefined} */
5406
+ DayViewModel.prototype.dayIndex;
5407
+ }
5408
+ /**
5409
+ * @record
5410
+ */
5411
+ function WeekViewModel() { }
5412
+ if (false) {
5413
+ /** @type {?} */
5414
+ WeekViewModel.prototype.days;
5415
+ /** @type {?|undefined} */
5416
+ WeekViewModel.prototype.isHovered;
5417
+ }
5418
+ /**
5419
+ * @record
5420
+ */
5421
+ function DaysCalendarViewModel() { }
5422
+ if (false) {
5423
+ /** @type {?} */
5424
+ DaysCalendarViewModel.prototype.weeks;
5425
+ /** @type {?} */
5426
+ DaysCalendarViewModel.prototype.month;
5427
+ /** @type {?} */
5428
+ DaysCalendarViewModel.prototype.weekNumbers;
5429
+ /** @type {?} */
5430
+ DaysCalendarViewModel.prototype.weekdays;
5431
+ }
5432
+ /**
5433
+ * **************
5434
+ * @record
5435
+ */
5436
+ function MonthsCalendarViewModel() { }
5437
+ if (false) {
5438
+ /** @type {?} */
5439
+ MonthsCalendarViewModel.prototype.months;
5440
+ }
5441
+ /**
5442
+ * **************
5443
+ * @record
5444
+ */
5445
+ function YearsCalendarViewModel() { }
5446
+ if (false) {
5447
+ /** @type {?} */
5448
+ YearsCalendarViewModel.prototype.years;
5449
+ }
5450
+ /**
5451
+ * **************
5452
+ * @record
5453
+ */
5454
+ function DaysCalendarModel() { }
5455
+ if (false) {
5456
+ /** @type {?} */
5457
+ DaysCalendarModel.prototype.daysMatrix;
5458
+ /** @type {?} */
5459
+ DaysCalendarModel.prototype.month;
5460
+ }
5461
+ /**
5462
+ * **************
5463
+ * @record
5464
+ */
5465
+ function MonthViewOptions() { }
5466
+ if (false) {
5467
+ /** @type {?|undefined} */
5468
+ MonthViewOptions.prototype.width;
5469
+ /** @type {?|undefined} */
5470
+ MonthViewOptions.prototype.height;
5471
+ /** @type {?|undefined} */
5472
+ MonthViewOptions.prototype.firstDayOfWeek;
5473
+ }
5474
+ /**
5475
+ * **************
5476
+ * @record
5477
+ */
5478
+ function DatepickerFormatOptions() { }
5479
+ if (false) {
5480
+ /** @type {?} */
5481
+ DatepickerFormatOptions.prototype.locale;
5482
+ /** @type {?} */
5483
+ DatepickerFormatOptions.prototype.monthTitle;
5484
+ /** @type {?} */
5485
+ DatepickerFormatOptions.prototype.yearTitle;
5486
+ /** @type {?} */
5487
+ DatepickerFormatOptions.prototype.dayLabel;
5488
+ /** @type {?} */
5489
+ DatepickerFormatOptions.prototype.monthLabel;
5490
+ /** @type {?} */
5491
+ DatepickerFormatOptions.prototype.yearLabel;
5492
+ /** @type {?} */
5493
+ DatepickerFormatOptions.prototype.weekNumbers;
5494
+ }
5495
+ /**
5496
+ * @record
4063
5497
  */
5498
+ function DatepickerRenderOptions() { }
5499
+ if (false) {
5500
+ /** @type {?|undefined} */
5501
+ DatepickerRenderOptions.prototype.showWeekNumbers;
5502
+ /** @type {?|undefined} */
5503
+ DatepickerRenderOptions.prototype.displayMonths;
5504
+ }
5505
+ /**
5506
+ * @record
5507
+ */
5508
+ function DatepickerDateCustomClasses() { }
5509
+ if (false) {
5510
+ /** @type {?} */
5511
+ DatepickerDateCustomClasses.prototype.date;
5512
+ /** @type {?} */
5513
+ DatepickerDateCustomClasses.prototype.classes;
5514
+ }
4064
5515
  /** @enum {number} */
4065
5516
  var BsNavigationDirection = {
4066
5517
  UP: 0,
@@ -4068,6 +5519,36 @@ var BsNavigationDirection = {
4068
5519
  };
4069
5520
  BsNavigationDirection[BsNavigationDirection.UP] = 'UP';
4070
5521
  BsNavigationDirection[BsNavigationDirection.DOWN] = 'DOWN';
5522
+ /**
5523
+ * @record
5524
+ */
5525
+ function BsNavigationEvent() { }
5526
+ if (false) {
5527
+ /** @type {?|undefined} */
5528
+ BsNavigationEvent.prototype.direction;
5529
+ /** @type {?|undefined} */
5530
+ BsNavigationEvent.prototype.step;
5531
+ }
5532
+ /**
5533
+ * @record
5534
+ */
5535
+ function BsViewNavigationEvent() { }
5536
+ if (false) {
5537
+ /** @type {?|undefined} */
5538
+ BsViewNavigationEvent.prototype.unit;
5539
+ /** @type {?} */
5540
+ BsViewNavigationEvent.prototype.viewMode;
5541
+ }
5542
+ /**
5543
+ * @record
5544
+ */
5545
+ function CellHoverEvent() { }
5546
+ if (false) {
5547
+ /** @type {?} */
5548
+ CellHoverEvent.prototype.cell;
5549
+ /** @type {?} */
5550
+ CellHoverEvent.prototype.isHovered;
5551
+ }
4071
5552
 
4072
5553
  /**
4073
5554
  * @fileoverview added by tsickle
@@ -4104,7 +5585,7 @@ var BsDatepickerNavigationViewComponent = /** @class */ (function () {
4104
5585
  { type: Component, args: [{
4105
5586
  selector: 'bs-datepicker-navigation-view',
4106
5587
  changeDetection: ChangeDetectionStrategy.OnPush,
4107
- template: "\n <button class=\"previous\"\n [disabled]=\"calendar.disableLeftArrow\"\n [style.visibility]=\"calendar.hideLeftArrow ? 'hidden' : 'visible'\"\n type=\"button\"\n (click)=\"navTo(true)\">\n <span>&lsaquo;</span>\n </button>\n\n &#8203; <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"current\"\n *ngIf=\"calendar.monthTitle\"\n type=\"button\"\n (click)=\"view('month')\">\n <span>{{ calendar.monthTitle }}</span>\n </button>\n\n &#8203; <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"current\" (click)=\"view('year')\" type=\"button\">\n <span>{{ calendar.yearTitle }}</span>\n </button>\n\n &#8203; <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"next\"\n [disabled]=\"calendar.disableRightArrow\"\n [style.visibility]=\"calendar.hideRightArrow ? 'hidden' : 'visible'\"\n type=\"button\"\n (click)=\"navTo(false)\"><span>&rsaquo;</span>\n </button>\n "
5588
+ template: "\n <button class=\"previous\"\n [disabled]=\"calendar.disableLeftArrow\"\n [style.visibility]=\"calendar.hideLeftArrow ? 'hidden' : 'visible'\"\n type=\"button\"\n (click)=\"navTo(true)\">\n <span>&lsaquo;</span>\n </button>\n\n <ng-container *ngIf=\"calendar.monthTitle\">\n &#8203; <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"current\"\n type=\"button\"\n (click)=\"view('month')\"\n ><span>{{ calendar.monthTitle }}</span>\n </button>\n </ng-container>\n\n &#8203; <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"current\" (click)=\"view('year')\" type=\"button\">\n <span>{{ calendar.yearTitle }}</span>\n </button>\n\n &#8203; <!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular -->\n\n <button class=\"next\"\n [disabled]=\"calendar.disableRightArrow\"\n [style.visibility]=\"calendar.hideRightArrow ? 'hidden' : 'visible'\"\n type=\"button\"\n (click)=\"navTo(false)\"><span>&rsaquo;</span>\n </button>\n "
4108
5589
  }] }
4109
5590
  ];
4110
5591
  BsDatepickerNavigationViewComponent.propDecorators = {
@@ -4114,6 +5595,14 @@ var BsDatepickerNavigationViewComponent = /** @class */ (function () {
4114
5595
  };
4115
5596
  return BsDatepickerNavigationViewComponent;
4116
5597
  }());
5598
+ if (false) {
5599
+ /** @type {?} */
5600
+ BsDatepickerNavigationViewComponent.prototype.calendar;
5601
+ /** @type {?} */
5602
+ BsDatepickerNavigationViewComponent.prototype.onNavigate;
5603
+ /** @type {?} */
5604
+ BsDatepickerNavigationViewComponent.prototype.onViewMode;
5605
+ }
4117
5606
 
4118
5607
  /**
4119
5608
  * @fileoverview added by tsickle
@@ -4173,19 +5662,18 @@ var BsDaysCalendarViewComponent = /** @class */ (function () {
4173
5662
  */
4174
5663
  function (week) {
4175
5664
  var _this = this;
4176
- if (!this._config.selectWeek) {
5665
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
5666
+ return;
5667
+ }
5668
+ if (week.days.length === 0) {
4177
5669
  return;
4178
5670
  }
4179
- if (week.days
4180
- && week.days[0]
5671
+ if (this._config.selectWeek && week.days[0]
4181
5672
  && !week.days[0].isDisabled
4182
5673
  && this._config.selectFromOtherMonth) {
4183
5674
  this.onSelect.emit(week.days[0]);
4184
5675
  return;
4185
5676
  }
4186
- if (week.days.length === 0) {
4187
- return;
4188
- }
4189
5677
  /** @type {?} */
4190
5678
  var selectedDay = week.days.find((/**
4191
5679
  * @param {?} day
@@ -4197,6 +5685,21 @@ var BsDaysCalendarViewComponent = /** @class */ (function () {
4197
5685
  : !day.isOtherMonth && !day.isDisabled;
4198
5686
  }));
4199
5687
  this.onSelect.emit(selectedDay);
5688
+ if (this._config.selectWeekDateRange) {
5689
+ /** @type {?} */
5690
+ var days = week.days.slice(0);
5691
+ /** @type {?} */
5692
+ var lastDayOfRange = days.reverse().find((/**
5693
+ * @param {?} day
5694
+ * @return {?}
5695
+ */
5696
+ function (day) {
5697
+ return _this._config.selectFromOtherMonth
5698
+ ? !day.isDisabled
5699
+ : !day.isOtherMonth && !day.isDisabled;
5700
+ }));
5701
+ this.onSelect.emit(lastDayOfRange);
5702
+ }
4200
5703
  };
4201
5704
  /**
4202
5705
  * @param {?} cell
@@ -4210,7 +5713,7 @@ var BsDaysCalendarViewComponent = /** @class */ (function () {
4210
5713
  */
4211
5714
  function (cell, isHovered) {
4212
5715
  var _this = this;
4213
- if (!this._config.selectWeek) {
5716
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
4214
5717
  return;
4215
5718
  }
4216
5719
  /** @type {?} */
@@ -4267,6 +5770,29 @@ var BsDaysCalendarViewComponent = /** @class */ (function () {
4267
5770
  };
4268
5771
  return BsDaysCalendarViewComponent;
4269
5772
  }());
5773
+ if (false) {
5774
+ /** @type {?} */
5775
+ BsDaysCalendarViewComponent.prototype.calendar;
5776
+ /** @type {?} */
5777
+ BsDaysCalendarViewComponent.prototype.options;
5778
+ /** @type {?} */
5779
+ BsDaysCalendarViewComponent.prototype.onNavigate;
5780
+ /** @type {?} */
5781
+ BsDaysCalendarViewComponent.prototype.onViewMode;
5782
+ /** @type {?} */
5783
+ BsDaysCalendarViewComponent.prototype.onSelect;
5784
+ /** @type {?} */
5785
+ BsDaysCalendarViewComponent.prototype.onHover;
5786
+ /** @type {?} */
5787
+ BsDaysCalendarViewComponent.prototype.onHoverWeek;
5788
+ /** @type {?} */
5789
+ BsDaysCalendarViewComponent.prototype.isWeekHovered;
5790
+ /**
5791
+ * @type {?}
5792
+ * @private
5793
+ */
5794
+ BsDaysCalendarViewComponent.prototype._config;
5795
+ }
4270
5796
 
4271
5797
  /**
4272
5798
  * @fileoverview added by tsickle
@@ -4342,6 +5868,18 @@ var BsMonthCalendarViewComponent = /** @class */ (function () {
4342
5868
  };
4343
5869
  return BsMonthCalendarViewComponent;
4344
5870
  }());
5871
+ if (false) {
5872
+ /** @type {?} */
5873
+ BsMonthCalendarViewComponent.prototype.calendar;
5874
+ /** @type {?} */
5875
+ BsMonthCalendarViewComponent.prototype.onNavigate;
5876
+ /** @type {?} */
5877
+ BsMonthCalendarViewComponent.prototype.onViewMode;
5878
+ /** @type {?} */
5879
+ BsMonthCalendarViewComponent.prototype.onSelect;
5880
+ /** @type {?} */
5881
+ BsMonthCalendarViewComponent.prototype.onHover;
5882
+ }
4345
5883
 
4346
5884
  /**
4347
5885
  * @fileoverview added by tsickle
@@ -4361,6 +5899,14 @@ var BsTimepickerViewComponent = /** @class */ (function () {
4361
5899
  ];
4362
5900
  return BsTimepickerViewComponent;
4363
5901
  }());
5902
+ if (false) {
5903
+ /** @type {?} */
5904
+ BsTimepickerViewComponent.prototype.ampm;
5905
+ /** @type {?} */
5906
+ BsTimepickerViewComponent.prototype.hours;
5907
+ /** @type {?} */
5908
+ BsTimepickerViewComponent.prototype.minutes;
5909
+ }
4364
5910
 
4365
5911
  /**
4366
5912
  * @fileoverview added by tsickle
@@ -4436,24 +5982,23 @@ var BsYearsCalendarViewComponent = /** @class */ (function () {
4436
5982
  };
4437
5983
  return BsYearsCalendarViewComponent;
4438
5984
  }());
5985
+ if (false) {
5986
+ /** @type {?} */
5987
+ BsYearsCalendarViewComponent.prototype.calendar;
5988
+ /** @type {?} */
5989
+ BsYearsCalendarViewComponent.prototype.onNavigate;
5990
+ /** @type {?} */
5991
+ BsYearsCalendarViewComponent.prototype.onViewMode;
5992
+ /** @type {?} */
5993
+ BsYearsCalendarViewComponent.prototype.onSelect;
5994
+ /** @type {?} */
5995
+ BsYearsCalendarViewComponent.prototype.onHover;
5996
+ }
4439
5997
 
4440
5998
  /**
4441
5999
  * @fileoverview added by tsickle
4442
6000
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4443
6001
  */
4444
- /** @type {?} */
4445
- var _exports = [
4446
- BsDatepickerContainerComponent,
4447
- BsDatepickerDirective,
4448
- BsDatepickerInlineContainerComponent,
4449
- BsDatepickerInlineDirective,
4450
- BsDatepickerInputDirective,
4451
- BsDaterangepickerContainerComponent,
4452
- BsDaterangepickerDirective,
4453
- BsDaterangepickerInlineContainerComponent,
4454
- BsDaterangepickerInlineDirective,
4455
- BsDaterangepickerInputDirective
4456
- ];
4457
6002
  var BsDatepickerModule = /** @class */ (function () {
4458
6003
  function BsDatepickerModule() {
4459
6004
  }
@@ -4483,7 +6028,7 @@ var BsDatepickerModule = /** @class */ (function () {
4483
6028
  BsDatepickerModule.decorators = [
4484
6029
  { type: NgModule, args: [{
4485
6030
  imports: [CommonModule],
4486
- declarations: __spread([
6031
+ declarations: [
4487
6032
  BsCalendarLayoutComponent,
4488
6033
  BsCurrentDateViewComponent,
4489
6034
  BsCustomDatesViewComponent,
@@ -4492,15 +6037,36 @@ var BsDatepickerModule = /** @class */ (function () {
4492
6037
  BsDaysCalendarViewComponent,
4493
6038
  BsMonthCalendarViewComponent,
4494
6039
  BsTimepickerViewComponent,
4495
- BsYearsCalendarViewComponent
4496
- ], _exports),
6040
+ BsYearsCalendarViewComponent,
6041
+ BsDatepickerContainerComponent,
6042
+ BsDatepickerDirective,
6043
+ BsDatepickerInlineContainerComponent,
6044
+ BsDatepickerInlineDirective,
6045
+ BsDatepickerInputDirective,
6046
+ BsDaterangepickerContainerComponent,
6047
+ BsDaterangepickerDirective,
6048
+ BsDaterangepickerInlineContainerComponent,
6049
+ BsDaterangepickerInlineDirective,
6050
+ BsDaterangepickerInputDirective
6051
+ ],
4497
6052
  entryComponents: [
4498
6053
  BsDatepickerContainerComponent,
4499
6054
  BsDaterangepickerContainerComponent,
4500
6055
  BsDatepickerInlineContainerComponent,
4501
6056
  BsDaterangepickerInlineContainerComponent
4502
6057
  ],
4503
- exports: _exports
6058
+ exports: [
6059
+ BsDatepickerContainerComponent,
6060
+ BsDatepickerDirective,
6061
+ BsDatepickerInlineContainerComponent,
6062
+ BsDatepickerInlineDirective,
6063
+ BsDatepickerInputDirective,
6064
+ BsDaterangepickerContainerComponent,
6065
+ BsDaterangepickerDirective,
6066
+ BsDaterangepickerInlineContainerComponent,
6067
+ BsDaterangepickerInlineDirective,
6068
+ BsDaterangepickerInputDirective
6069
+ ]
4504
6070
  },] }
4505
6071
  ];
4506
6072
  return BsDatepickerModule;
@@ -5035,6 +6601,123 @@ var DatePickerInnerComponent = /** @class */ (function () {
5035
6601
  };
5036
6602
  return DatePickerInnerComponent;
5037
6603
  }());
6604
+ if (false) {
6605
+ /** @type {?} */
6606
+ DatePickerInnerComponent.prototype.locale;
6607
+ /** @type {?} */
6608
+ DatePickerInnerComponent.prototype.datepickerMode;
6609
+ /** @type {?} */
6610
+ DatePickerInnerComponent.prototype.startingDay;
6611
+ /** @type {?} */
6612
+ DatePickerInnerComponent.prototype.yearRange;
6613
+ /** @type {?} */
6614
+ DatePickerInnerComponent.prototype.minDate;
6615
+ /** @type {?} */
6616
+ DatePickerInnerComponent.prototype.maxDate;
6617
+ /** @type {?} */
6618
+ DatePickerInnerComponent.prototype.minMode;
6619
+ /** @type {?} */
6620
+ DatePickerInnerComponent.prototype.maxMode;
6621
+ /** @type {?} */
6622
+ DatePickerInnerComponent.prototype.showWeeks;
6623
+ /** @type {?} */
6624
+ DatePickerInnerComponent.prototype.formatDay;
6625
+ /** @type {?} */
6626
+ DatePickerInnerComponent.prototype.formatMonth;
6627
+ /** @type {?} */
6628
+ DatePickerInnerComponent.prototype.formatYear;
6629
+ /** @type {?} */
6630
+ DatePickerInnerComponent.prototype.formatDayHeader;
6631
+ /** @type {?} */
6632
+ DatePickerInnerComponent.prototype.formatDayTitle;
6633
+ /** @type {?} */
6634
+ DatePickerInnerComponent.prototype.formatMonthTitle;
6635
+ /** @type {?} */
6636
+ DatePickerInnerComponent.prototype.onlyCurrentMonth;
6637
+ /** @type {?} */
6638
+ DatePickerInnerComponent.prototype.shortcutPropagation;
6639
+ /** @type {?} */
6640
+ DatePickerInnerComponent.prototype.customClass;
6641
+ /** @type {?} */
6642
+ DatePickerInnerComponent.prototype.monthColLimit;
6643
+ /** @type {?} */
6644
+ DatePickerInnerComponent.prototype.yearColLimit;
6645
+ /** @type {?} */
6646
+ DatePickerInnerComponent.prototype.dateDisabled;
6647
+ /** @type {?} */
6648
+ DatePickerInnerComponent.prototype.dayDisabled;
6649
+ /** @type {?} */
6650
+ DatePickerInnerComponent.prototype.initDate;
6651
+ /** @type {?} */
6652
+ DatePickerInnerComponent.prototype.selectionDone;
6653
+ /** @type {?} */
6654
+ DatePickerInnerComponent.prototype.update;
6655
+ /** @type {?} */
6656
+ DatePickerInnerComponent.prototype.activeDateChange;
6657
+ /** @type {?} */
6658
+ DatePickerInnerComponent.prototype.stepDay;
6659
+ /** @type {?} */
6660
+ DatePickerInnerComponent.prototype.stepMonth;
6661
+ /** @type {?} */
6662
+ DatePickerInnerComponent.prototype.stepYear;
6663
+ /** @type {?} */
6664
+ DatePickerInnerComponent.prototype.uniqueId;
6665
+ /**
6666
+ * @type {?}
6667
+ * @protected
6668
+ */
6669
+ DatePickerInnerComponent.prototype.modes;
6670
+ /**
6671
+ * @type {?}
6672
+ * @protected
6673
+ */
6674
+ DatePickerInnerComponent.prototype.dateFormatter;
6675
+ /**
6676
+ * @type {?}
6677
+ * @protected
6678
+ */
6679
+ DatePickerInnerComponent.prototype._activeDate;
6680
+ /**
6681
+ * @type {?}
6682
+ * @protected
6683
+ */
6684
+ DatePickerInnerComponent.prototype.selectedDate;
6685
+ /**
6686
+ * @type {?}
6687
+ * @protected
6688
+ */
6689
+ DatePickerInnerComponent.prototype.activeDateId;
6690
+ /**
6691
+ * @type {?}
6692
+ * @protected
6693
+ */
6694
+ DatePickerInnerComponent.prototype.refreshViewHandlerDay;
6695
+ /**
6696
+ * @type {?}
6697
+ * @protected
6698
+ */
6699
+ DatePickerInnerComponent.prototype.compareHandlerDay;
6700
+ /**
6701
+ * @type {?}
6702
+ * @protected
6703
+ */
6704
+ DatePickerInnerComponent.prototype.refreshViewHandlerMonth;
6705
+ /**
6706
+ * @type {?}
6707
+ * @protected
6708
+ */
6709
+ DatePickerInnerComponent.prototype.compareHandlerMonth;
6710
+ /**
6711
+ * @type {?}
6712
+ * @protected
6713
+ */
6714
+ DatePickerInnerComponent.prototype.refreshViewHandlerYear;
6715
+ /**
6716
+ * @type {?}
6717
+ * @protected
6718
+ */
6719
+ DatePickerInnerComponent.prototype.compareHandlerYear;
6720
+ }
5038
6721
 
5039
6722
  /**
5040
6723
  * @fileoverview added by tsickle
@@ -5065,6 +6748,42 @@ var DatepickerConfig = /** @class */ (function () {
5065
6748
  ];
5066
6749
  return DatepickerConfig;
5067
6750
  }());
6751
+ if (false) {
6752
+ /** @type {?} */
6753
+ DatepickerConfig.prototype.locale;
6754
+ /** @type {?} */
6755
+ DatepickerConfig.prototype.datepickerMode;
6756
+ /** @type {?} */
6757
+ DatepickerConfig.prototype.startingDay;
6758
+ /** @type {?} */
6759
+ DatepickerConfig.prototype.yearRange;
6760
+ /** @type {?} */
6761
+ DatepickerConfig.prototype.minMode;
6762
+ /** @type {?} */
6763
+ DatepickerConfig.prototype.maxMode;
6764
+ /** @type {?} */
6765
+ DatepickerConfig.prototype.showWeeks;
6766
+ /** @type {?} */
6767
+ DatepickerConfig.prototype.formatDay;
6768
+ /** @type {?} */
6769
+ DatepickerConfig.prototype.formatMonth;
6770
+ /** @type {?} */
6771
+ DatepickerConfig.prototype.formatYear;
6772
+ /** @type {?} */
6773
+ DatepickerConfig.prototype.formatDayHeader;
6774
+ /** @type {?} */
6775
+ DatepickerConfig.prototype.formatDayTitle;
6776
+ /** @type {?} */
6777
+ DatepickerConfig.prototype.formatMonthTitle;
6778
+ /** @type {?} */
6779
+ DatepickerConfig.prototype.onlyCurrentMonth;
6780
+ /** @type {?} */
6781
+ DatepickerConfig.prototype.monthColLimit;
6782
+ /** @type {?} */
6783
+ DatepickerConfig.prototype.yearColLimit;
6784
+ /** @type {?} */
6785
+ DatepickerConfig.prototype.shortcutPropagation;
6786
+ }
5068
6787
 
5069
6788
  /**
5070
6789
  * @fileoverview added by tsickle
@@ -5255,6 +6974,143 @@ var DatePickerComponent = /** @class */ (function () {
5255
6974
  };
5256
6975
  return DatePickerComponent;
5257
6976
  }());
6977
+ if (false) {
6978
+ /**
6979
+ * sets datepicker mode, supports: `day`, `month`, `year`
6980
+ * @type {?}
6981
+ */
6982
+ DatePickerComponent.prototype.datepickerMode;
6983
+ /**
6984
+ * default date to show if `ng-model` value is not specified
6985
+ * @type {?}
6986
+ */
6987
+ DatePickerComponent.prototype.initDate;
6988
+ /**
6989
+ * oldest selectable date
6990
+ * @type {?}
6991
+ */
6992
+ DatePickerComponent.prototype.minDate;
6993
+ /**
6994
+ * latest selectable date
6995
+ * @type {?}
6996
+ */
6997
+ DatePickerComponent.prototype.maxDate;
6998
+ /**
6999
+ * set lower datepicker mode, supports: `day`, `month`, `year`
7000
+ * @type {?}
7001
+ */
7002
+ DatePickerComponent.prototype.minMode;
7003
+ /**
7004
+ * sets upper datepicker mode, supports: `day`, `month`, `year`
7005
+ * @type {?}
7006
+ */
7007
+ DatePickerComponent.prototype.maxMode;
7008
+ /**
7009
+ * if false week numbers will be hidden
7010
+ * @type {?}
7011
+ */
7012
+ DatePickerComponent.prototype.showWeeks;
7013
+ /**
7014
+ * format of day in month
7015
+ * @type {?}
7016
+ */
7017
+ DatePickerComponent.prototype.formatDay;
7018
+ /**
7019
+ * format of month in year
7020
+ * @type {?}
7021
+ */
7022
+ DatePickerComponent.prototype.formatMonth;
7023
+ /**
7024
+ * format of year in year range
7025
+ * @type {?}
7026
+ */
7027
+ DatePickerComponent.prototype.formatYear;
7028
+ /**
7029
+ * format of day in week header
7030
+ * @type {?}
7031
+ */
7032
+ DatePickerComponent.prototype.formatDayHeader;
7033
+ /**
7034
+ * format of title when selecting day
7035
+ * @type {?}
7036
+ */
7037
+ DatePickerComponent.prototype.formatDayTitle;
7038
+ /**
7039
+ * format of title when selecting month
7040
+ * @type {?}
7041
+ */
7042
+ DatePickerComponent.prototype.formatMonthTitle;
7043
+ /**
7044
+ * starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday)
7045
+ * @type {?}
7046
+ */
7047
+ DatePickerComponent.prototype.startingDay;
7048
+ /**
7049
+ * number of years displayed in year selection
7050
+ * @type {?}
7051
+ */
7052
+ DatePickerComponent.prototype.yearRange;
7053
+ /**
7054
+ * if true only dates from the currently displayed month will be shown
7055
+ * @type {?}
7056
+ */
7057
+ DatePickerComponent.prototype.onlyCurrentMonth;
7058
+ /**
7059
+ * if true shortcut`s event propagation will be disabled
7060
+ * @type {?}
7061
+ */
7062
+ DatePickerComponent.prototype.shortcutPropagation;
7063
+ /**
7064
+ * number of months displayed in a single row of month picker
7065
+ * @type {?}
7066
+ */
7067
+ DatePickerComponent.prototype.monthColLimit;
7068
+ /**
7069
+ * number of years displayed in a single row of year picker
7070
+ * @type {?}
7071
+ */
7072
+ DatePickerComponent.prototype.yearColLimit;
7073
+ /**
7074
+ * array of custom css classes to be applied to targeted dates
7075
+ * @type {?}
7076
+ */
7077
+ DatePickerComponent.prototype.customClass;
7078
+ /**
7079
+ * array of disabled dates
7080
+ * @type {?}
7081
+ */
7082
+ DatePickerComponent.prototype.dateDisabled;
7083
+ /**
7084
+ * disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday)
7085
+ * @type {?}
7086
+ */
7087
+ DatePickerComponent.prototype.dayDisabled;
7088
+ /** @type {?} */
7089
+ DatePickerComponent.prototype.selectionDone;
7090
+ /**
7091
+ * callback to invoke when the activeDate is changed.
7092
+ * @type {?}
7093
+ */
7094
+ DatePickerComponent.prototype.activeDateChange;
7095
+ /** @type {?} */
7096
+ DatePickerComponent.prototype._datePicker;
7097
+ /** @type {?} */
7098
+ DatePickerComponent.prototype.onChange;
7099
+ /** @type {?} */
7100
+ DatePickerComponent.prototype.onTouched;
7101
+ /** @type {?} */
7102
+ DatePickerComponent.prototype.config;
7103
+ /**
7104
+ * @type {?}
7105
+ * @protected
7106
+ */
7107
+ DatePickerComponent.prototype._now;
7108
+ /**
7109
+ * @type {?}
7110
+ * @protected
7111
+ */
7112
+ DatePickerComponent.prototype._activeDate;
7113
+ }
5258
7114
 
5259
7115
  /**
5260
7116
  * @fileoverview added by tsickle
@@ -5427,6 +7283,18 @@ var DayPickerComponent = /** @class */ (function () {
5427
7283
  ]; };
5428
7284
  return DayPickerComponent;
5429
7285
  }());
7286
+ if (false) {
7287
+ /** @type {?} */
7288
+ DayPickerComponent.prototype.labels;
7289
+ /** @type {?} */
7290
+ DayPickerComponent.prototype.title;
7291
+ /** @type {?} */
7292
+ DayPickerComponent.prototype.rows;
7293
+ /** @type {?} */
7294
+ DayPickerComponent.prototype.weekNumbers;
7295
+ /** @type {?} */
7296
+ DayPickerComponent.prototype.datePicker;
7297
+ }
5430
7298
 
5431
7299
  /**
5432
7300
  * @fileoverview added by tsickle
@@ -5503,6 +7371,16 @@ var MonthPickerComponent = /** @class */ (function () {
5503
7371
  ]; };
5504
7372
  return MonthPickerComponent;
5505
7373
  }());
7374
+ if (false) {
7375
+ /** @type {?} */
7376
+ MonthPickerComponent.prototype.title;
7377
+ /** @type {?} */
7378
+ MonthPickerComponent.prototype.rows;
7379
+ /** @type {?} */
7380
+ MonthPickerComponent.prototype.datePicker;
7381
+ /** @type {?} */
7382
+ MonthPickerComponent.prototype.maxMode;
7383
+ }
5506
7384
 
5507
7385
  /**
5508
7386
  * @fileoverview added by tsickle
@@ -5589,6 +7467,14 @@ var YearPickerComponent = /** @class */ (function () {
5589
7467
  ]; };
5590
7468
  return YearPickerComponent;
5591
7469
  }());
7470
+ if (false) {
7471
+ /** @type {?} */
7472
+ YearPickerComponent.prototype.datePicker;
7473
+ /** @type {?} */
7474
+ YearPickerComponent.prototype.title;
7475
+ /** @type {?} */
7476
+ YearPickerComponent.prototype.rows;
7477
+ }
5592
7478
 
5593
7479
  /**
5594
7480
  * @fileoverview added by tsickle
@@ -5629,5 +7515,15 @@ var DatepickerModule = /** @class */ (function () {
5629
7515
  return DatepickerModule;
5630
7516
  }());
5631
7517
 
7518
+ /**
7519
+ * @fileoverview added by tsickle
7520
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7521
+ */
7522
+
7523
+ /**
7524
+ * @fileoverview added by tsickle
7525
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7526
+ */
7527
+
5632
7528
  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 };
5633
7529
  //# sourceMappingURL=ngx-bootstrap-datepicker.js.map