ngx-bootstrap 5.3.2 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/CHANGELOG.md +148 -99
  2. package/README.md +14 -10
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +71 -2
  4. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  6. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  7. package/accordion/fesm2015/ngx-bootstrap-accordion.js +79 -0
  8. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  9. package/accordion/fesm5/ngx-bootstrap-accordion.js +80 -1
  10. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  11. package/accordion/package.json +2 -2
  12. package/alert/bundles/ngx-bootstrap-alert.umd.js +224 -2
  13. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  14. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +15 -1
  15. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  16. package/alert/fesm2015/ngx-bootstrap-alert.js +71 -0
  17. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  18. package/alert/fesm5/ngx-bootstrap-alert.js +72 -1
  19. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  20. package/alert/package.json +2 -2
  21. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +208 -85
  22. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  23. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  24. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  25. package/buttons/button-radio-group.directive.d.ts +4 -1
  26. package/buttons/esm2015/button-radio-group.directive.js +26 -2
  27. package/buttons/esm5/button-radio-group.directive.js +30 -2
  28. package/buttons/fesm2015/ngx-bootstrap-buttons.js +194 -65
  29. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  30. package/buttons/fesm5/ngx-bootstrap-buttons.js +216 -83
  31. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  32. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  33. package/buttons/package.json +2 -2
  34. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +295 -4
  35. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  36. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +15 -1
  37. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  38. package/carousel/carousel.component.d.ts +2 -0
  39. package/carousel/esm2015/carousel.component.js +15 -2
  40. package/carousel/esm2015/slide.component.js +21 -2
  41. package/carousel/esm5/carousel.component.js +15 -2
  42. package/carousel/esm5/slide.component.js +6 -2
  43. package/carousel/fesm2015/ngx-bootstrap-carousel.js +169 -2
  44. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  45. package/carousel/fesm5/ngx-bootstrap-carousel.js +156 -4
  46. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  47. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  48. package/carousel/package.json +2 -2
  49. package/carousel/slide.component.d.ts +1 -0
  50. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +11172 -10061
  51. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  52. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  53. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  54. package/chronos/esm2015/format/format.js +1 -1
  55. package/chronos/esm2015/i18n/ka.js +108 -0
  56. package/chronos/esm2015/i18n/kk.js +89 -0
  57. package/chronos/esm2015/i18n/sq.js +62 -0
  58. package/chronos/esm2015/i18n/th-be.js +85 -0
  59. package/chronos/esm2015/index.js +2 -2
  60. package/chronos/esm2015/locale/locale.class.js +16 -2
  61. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  62. package/chronos/esm2015/public_api.js +5 -1
  63. package/chronos/esm2015/units/year.js +4 -1
  64. package/chronos/esm5/format/format.js +1 -1
  65. package/chronos/esm5/i18n/ka.js +108 -0
  66. package/chronos/esm5/i18n/kk.js +89 -0
  67. package/chronos/esm5/i18n/sq.js +62 -0
  68. package/chronos/esm5/i18n/th-be.js +86 -0
  69. package/chronos/esm5/index.js +2 -2
  70. package/chronos/esm5/locale/locale.class.js +22 -2
  71. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  72. package/chronos/esm5/public_api.js +5 -1
  73. package/chronos/esm5/units/year.js +4 -1
  74. package/chronos/fesm2015/ngx-bootstrap-chronos.js +1117 -13
  75. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  76. package/chronos/fesm5/ngx-bootstrap-chronos.js +1130 -13
  77. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  78. package/chronos/i18n/ka.d.ts +2 -0
  79. package/chronos/i18n/kk.d.ts +2 -0
  80. package/chronos/i18n/sq.d.ts +2 -0
  81. package/chronos/i18n/th-be.d.ts +2 -0
  82. package/chronos/locale/locale.class.d.ts +2 -0
  83. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  84. package/chronos/package.json +2 -2
  85. package/chronos/public_api.d.ts +4 -0
  86. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +100 -2
  87. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  88. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +1 -1
  89. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  90. package/collapse/collapse.directive.d.ts +1 -0
  91. package/collapse/esm2015/collapse.directive.js +14 -1
  92. package/collapse/esm5/collapse.directive.js +14 -1
  93. package/collapse/fesm2015/ngx-bootstrap-collapse.js +108 -0
  94. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  95. package/collapse/fesm5/ngx-bootstrap-collapse.js +109 -1
  96. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  97. package/collapse/ngx-bootstrap-collapse.metadata.json +1 -1
  98. package/collapse/package.json +2 -2
  99. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +169 -2
  100. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  101. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  102. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  103. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +177 -0
  104. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  105. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +178 -1
  106. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  107. package/component-loader/package.json +2 -2
  108. package/datepicker/base/bs-datepicker-container.d.ts +2 -1
  109. package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
  110. package/datepicker/bs-datepicker-input.directive.d.ts +1 -0
  111. package/datepicker/bs-datepicker.component.d.ts +12 -3
  112. package/datepicker/bs-datepicker.config.d.ts +31 -1
  113. package/datepicker/bs-datepicker.css +19 -1
  114. package/datepicker/bs-datepicker.css.map +3 -3
  115. package/datepicker/bs-datepicker.scss +0 -1
  116. package/datepicker/bs-daterangepicker-inline.component.d.ts +8 -0
  117. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -0
  118. package/datepicker/bs-daterangepicker.component.d.ts +16 -3
  119. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2100 -99
  120. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  121. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +15 -1
  122. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  123. package/datepicker/engine/flag-days-calendar.d.ts +1 -0
  124. package/datepicker/esm2015/base/bs-datepicker-container.js +10 -3
  125. package/datepicker/esm2015/bs-datepicker-inline.component.js +25 -9
  126. package/datepicker/esm2015/bs-datepicker-input.directive.js +19 -1
  127. package/datepicker/esm2015/bs-datepicker.component.js +55 -8
  128. package/datepicker/esm2015/bs-datepicker.config.js +42 -3
  129. package/datepicker/esm2015/bs-datepicker.module.js +23 -16
  130. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +37 -7
  131. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +34 -3
  132. package/datepicker/esm2015/bs-daterangepicker.component.js +66 -9
  133. package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
  134. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  135. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +15 -11
  136. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +28 -6
  137. package/datepicker/esm2015/reducer/bs-datepicker.state.js +7 -1
  138. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +46 -8
  139. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -2
  140. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  141. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +8 -7
  142. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +21 -3
  143. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  144. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +22 -8
  145. package/datepicker/esm2015/utils/bs-calendar-utils.js +18 -3
  146. package/datepicker/esm5/base/bs-datepicker-container.js +14 -3
  147. package/datepicker/esm5/bs-datepicker-inline.component.js +25 -9
  148. package/datepicker/esm5/bs-datepicker-input.directive.js +23 -1
  149. package/datepicker/esm5/bs-datepicker.component.js +59 -8
  150. package/datepicker/esm5/bs-datepicker.config.js +42 -3
  151. package/datepicker/esm5/bs-datepicker.module.js +26 -19
  152. package/datepicker/esm5/bs-daterangepicker-inline.component.js +37 -7
  153. package/datepicker/esm5/bs-daterangepicker-input.directive.js +38 -3
  154. package/datepicker/esm5/bs-daterangepicker.component.js +70 -9
  155. package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
  156. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  157. package/datepicker/esm5/reducer/bs-datepicker.effects.js +21 -17
  158. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +28 -6
  159. package/datepicker/esm5/reducer/bs-datepicker.state.js +7 -1
  160. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +39 -7
  161. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -2
  162. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  163. package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +2 -2
  164. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +25 -3
  165. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  166. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +22 -8
  167. package/datepicker/esm5/utils/bs-calendar-utils.js +18 -3
  168. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +1953 -91
  169. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  170. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +1985 -98
  171. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  172. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  173. package/datepicker/package.json +2 -2
  174. package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
  175. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
  176. package/datepicker/reducer/bs-datepicker.state.d.ts +3 -0
  177. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +6 -1
  178. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -0
  179. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  180. package/datepicker/utils/scss/mixins.css.map +1 -1
  181. package/datepicker/utils/scss/mixins.scss +9 -0
  182. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +387 -3
  183. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  184. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +15 -1
  185. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  186. package/dropdown/esm2015/bs-dropdown-container.component.js +2 -2
  187. package/dropdown/esm5/bs-dropdown-container.component.js +2 -2
  188. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +234 -1
  189. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  190. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +234 -1
  191. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  192. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  193. package/dropdown/package.json +2 -2
  194. package/locale/bundles/ngx-bootstrap-locale.umd.js +36 -2
  195. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
  196. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
  197. package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
  198. package/locale/esm2015/public_api.js +5 -1
  199. package/locale/esm5/ngx-bootstrap-locale.js +2 -2
  200. package/locale/esm5/public_api.js +5 -1
  201. package/locale/fesm2015/ngx-bootstrap-locale.js +11 -1
  202. package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -1
  203. package/locale/fesm5/ngx-bootstrap-locale.js +11 -1
  204. package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -1
  205. package/locale/ngx-bootstrap-locale.metadata.json +1 -1
  206. package/locale/package.json +2 -2
  207. package/locale/public_api.d.ts +4 -0
  208. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +187 -2
  209. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  210. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +15 -1
  211. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  212. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +32 -0
  213. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -1
  214. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +32 -0
  215. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  216. package/mini-ngrx/package.json +2 -2
  217. package/modal/bs-modal.service.d.ts +1 -2
  218. package/modal/bundles/ngx-bootstrap-modal.umd.js +558 -16
  219. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  220. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +15 -1
  221. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  222. package/modal/esm2015/bs-modal.service.js +13 -4
  223. package/modal/esm2015/modal-container.component.js +24 -5
  224. package/modal/esm2015/modal-options.class.js +16 -1
  225. package/modal/esm2015/modal.directive.js +21 -4
  226. package/modal/esm2015/modal.module.js +10 -1
  227. package/modal/esm5/bs-modal.service.js +28 -8
  228. package/modal/esm5/modal-container.component.js +28 -5
  229. package/modal/esm5/modal-options.class.js +16 -1
  230. package/modal/esm5/modal.directive.js +25 -4
  231. package/modal/esm5/modal.module.js +13 -1
  232. package/modal/fesm2015/ngx-bootstrap-modal.js +354 -10
  233. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  234. package/modal/fesm5/ngx-bootstrap-modal.js +381 -15
  235. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  236. package/modal/modal-container.component.d.ts +3 -1
  237. package/modal/modal-options.class.d.ts +13 -0
  238. package/modal/modal.directive.d.ts +3 -1
  239. package/modal/modal.module.d.ts +1 -0
  240. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  241. package/modal/package.json +2 -2
  242. package/package.json +2 -2
  243. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +276 -4
  244. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  245. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  246. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  247. package/pagination/esm2015/models/index.js +49 -4
  248. package/pagination/esm2015/pager.component.js +2 -2
  249. package/pagination/esm2015/pagination.component.js +33 -3
  250. package/pagination/esm2015/public_api.js +1 -1
  251. package/pagination/esm5/models/index.js +49 -4
  252. package/pagination/esm5/pager.component.js +2 -2
  253. package/pagination/esm5/pagination.component.js +33 -3
  254. package/pagination/esm5/public_api.js +1 -1
  255. package/pagination/fesm2015/ngx-bootstrap-pagination.js +284 -2
  256. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  257. package/pagination/fesm5/ngx-bootstrap-pagination.js +285 -3
  258. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  259. package/pagination/models/index.d.ts +28 -0
  260. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  261. package/pagination/package.json +2 -2
  262. package/pagination/pagination.component.d.ts +12 -2
  263. package/pagination/public_api.d.ts +1 -0
  264. package/popover/bundles/ngx-bootstrap-popover.umd.js +215 -20
  265. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  266. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  267. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  268. package/popover/esm2015/popover.config.js +10 -1
  269. package/popover/esm2015/popover.directive.js +97 -16
  270. package/popover/esm5/popover.config.js +10 -1
  271. package/popover/esm5/popover.directive.js +98 -16
  272. package/popover/fesm2015/ngx-bootstrap-popover.js +221 -16
  273. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  274. package/popover/fesm5/ngx-bootstrap-popover.js +222 -16
  275. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  276. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  277. package/popover/package.json +2 -2
  278. package/popover/popover.config.d.ts +2 -0
  279. package/popover/popover.directive.d.ts +9 -1
  280. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +286 -13
  281. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  282. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +15 -1
  283. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  284. package/positioning/esm2015/modifiers/arrow.js +19 -5
  285. package/positioning/esm2015/modifiers/initData.js +12 -2
  286. package/positioning/esm2015/modifiers/shift.js +6 -4
  287. package/positioning/esm5/modifiers/arrow.js +19 -5
  288. package/positioning/esm5/modifiers/initData.js +12 -2
  289. package/positioning/esm5/modifiers/shift.js +8 -6
  290. package/positioning/fesm2015/ngx-bootstrap-positioning.js +128 -8
  291. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  292. package/positioning/fesm5/ngx-bootstrap-positioning.js +132 -10
  293. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  294. package/positioning/package.json +2 -2
  295. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +77 -2
  296. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  297. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  298. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  299. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +85 -0
  300. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  301. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +85 -0
  302. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  303. package/progressbar/package.json +2 -2
  304. package/rating/bundles/ngx-bootstrap-rating.umd.js +92 -7
  305. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  306. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  307. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  308. package/rating/esm2015/ngx-bootstrap-rating.js +2 -2
  309. package/rating/esm2015/public_api.js +2 -1
  310. package/rating/esm2015/rating.component.js +14 -5
  311. package/rating/esm2015/rating.config.js +27 -0
  312. package/rating/esm2015/rating.module.js +3 -2
  313. package/rating/esm5/ngx-bootstrap-rating.js +2 -2
  314. package/rating/esm5/public_api.js +2 -1
  315. package/rating/esm5/rating.component.js +13 -5
  316. package/rating/esm5/rating.config.js +29 -0
  317. package/rating/esm5/rating.module.js +3 -2
  318. package/rating/fesm2015/ngx-bootstrap-rating.js +101 -7
  319. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  320. package/rating/fesm5/ngx-bootstrap-rating.js +101 -7
  321. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  322. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  323. package/rating/package.json +2 -2
  324. package/rating/public_api.d.ts +1 -0
  325. package/rating/rating.component.d.ts +4 -1
  326. package/rating/rating.config.d.ts +5 -0
  327. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +254 -2
  328. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  329. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +15 -1
  330. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  331. package/sortable/fesm2015/ngx-bootstrap-sortable.js +113 -0
  332. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  333. package/sortable/fesm5/ngx-bootstrap-sortable.js +114 -1
  334. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  335. package/sortable/package.json +2 -2
  336. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +153 -4
  337. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  338. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  339. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  340. package/tabs/esm2015/tab.directive.js +13 -2
  341. package/tabs/esm2015/tabset.component.js +7 -2
  342. package/tabs/esm2015/tabset.config.js +10 -1
  343. package/tabs/esm5/tab.directive.js +17 -2
  344. package/tabs/esm5/tabset.component.js +7 -2
  345. package/tabs/esm5/tabset.config.js +10 -1
  346. package/tabs/fesm2015/ngx-bootstrap-tabs.js +157 -2
  347. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  348. package/tabs/fesm5/ngx-bootstrap-tabs.js +162 -3
  349. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  350. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  351. package/tabs/package.json +2 -2
  352. package/tabs/tab.directive.d.ts +2 -0
  353. package/tabs/tabset.component.d.ts +2 -0
  354. package/tabs/tabset.config.d.ts +2 -0
  355. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +464 -8
  356. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  357. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +15 -1
  358. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  359. package/timepicker/esm2015/timepicker.component.js +8 -2
  360. package/timepicker/esm2015/timepicker.config.js +28 -1
  361. package/timepicker/esm2015/timepicker.utils.js +9 -6
  362. package/timepicker/esm5/timepicker.component.js +8 -2
  363. package/timepicker/esm5/timepicker.config.js +28 -1
  364. package/timepicker/esm5/timepicker.utils.js +9 -6
  365. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +311 -6
  366. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  367. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +315 -7
  368. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  369. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  370. package/timepicker/package.json +2 -2
  371. package/timepicker/timepicker.component.d.ts +3 -0
  372. package/timepicker/timepicker.config.d.ts +6 -0
  373. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +356 -8
  374. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  375. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +15 -1
  376. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  377. package/tooltip/esm2015/tooltip.directive.js +48 -10
  378. package/tooltip/esm5/tooltip.directive.js +51 -10
  379. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +201 -7
  380. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  381. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +204 -7
  382. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  383. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  384. package/tooltip/package.json +2 -2
  385. package/tooltip/tooltip.directive.d.ts +3 -1
  386. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +748 -69
  387. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  388. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +15 -1
  389. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  390. package/typeahead/esm2015/models/index.js +87 -0
  391. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
  392. package/typeahead/esm2015/public_api.js +2 -1
  393. package/typeahead/esm2015/typeahead-container.component.js +82 -37
  394. package/typeahead/esm2015/typeahead-order.class.js +19 -0
  395. package/typeahead/esm2015/typeahead.config.js +10 -1
  396. package/typeahead/esm2015/typeahead.directive.js +133 -30
  397. package/typeahead/esm5/models/index.js +87 -0
  398. package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
  399. package/typeahead/esm5/public_api.js +2 -1
  400. package/typeahead/esm5/typeahead-container.component.js +92 -37
  401. package/typeahead/esm5/typeahead-order.class.js +23 -0
  402. package/typeahead/esm5/typeahead.config.js +10 -1
  403. package/typeahead/esm5/typeahead.directive.js +140 -36
  404. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +574 -61
  405. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  406. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +594 -67
  407. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  408. package/typeahead/models/index.d.ts +41 -0
  409. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  410. package/typeahead/package.json +2 -2
  411. package/typeahead/public_api.d.ts +2 -0
  412. package/typeahead/typeahead-container.component.d.ts +15 -7
  413. package/typeahead/typeahead-order.class.d.ts +6 -0
  414. package/typeahead/typeahead.config.d.ts +2 -0
  415. package/typeahead/typeahead.directive.d.ts +28 -10
  416. package/utils/bundles/ngx-bootstrap-utils.umd.js +54 -2
  417. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
  418. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +2 -2
  419. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
  420. package/utils/fesm2015/ngx-bootstrap-utils.js +62 -0
  421. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
  422. package/utils/fesm5/ngx-bootstrap-utils.js +62 -0
  423. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
  424. package/utils/package.json +2 -2
  425. package/bundles/ngx-bootstrap.umd.js +0 -1037
  426. package/bundles/ngx-bootstrap.umd.js.map +0 -1
  427. package/bundles/ngx-bootstrap.umd.min.js +0 -2
  428. package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
  429. package/esm2015/ngx-bootstrap.js +0 -9
  430. package/esm2015/public_api.js +0 -30
  431. package/esm5/ngx-bootstrap.js +0 -9
  432. package/esm5/public_api.js +0 -30
  433. package/fesm2015/ngx-bootstrap.js +0 -24
  434. package/fesm2015/ngx-bootstrap.js.map +0 -1
  435. package/fesm5/ngx-bootstrap.js +0 -24
  436. package/fesm5/ngx-bootstrap.js.map +0 -1
  437. package/ngx-bootstrap.d.ts +0 -4
  438. package/ngx-bootstrap.metadata.json +0 -1
  439. package/public_api.d.ts +0 -25
@@ -1,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,7 @@ var /**
77
213
  */
78
214
  BsDatepickerAbstractComponent = /** @class */ (function () {
79
215
  function BsDatepickerAbstractComponent() {
80
- this._customRangesFish = [];
216
+ this.customRanges = [];
81
217
  }
82
218
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "minDate", {
83
219
  set: /**
@@ -123,6 +259,17 @@ BsDatepickerAbstractComponent = /** @class */ (function () {
123
259
  enumerable: true,
124
260
  configurable: true
125
261
  });
262
+ Object.defineProperty(BsDatepickerAbstractComponent.prototype, "datesEnabled", {
263
+ set: /**
264
+ * @param {?} value
265
+ * @return {?}
266
+ */
267
+ function (value) {
268
+ this._effects.setDatesEnabled(value);
269
+ },
270
+ enumerable: true,
271
+ configurable: true
272
+ });
126
273
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "isDisabled", {
127
274
  set: /**
128
275
  * @param {?} value
@@ -242,6 +389,26 @@ BsDatepickerAbstractComponent = /** @class */ (function () {
242
389
  };
243
390
  return BsDatepickerAbstractComponent;
244
391
  }());
392
+ if (false) {
393
+ /** @type {?} */
394
+ BsDatepickerAbstractComponent.prototype.containerClass;
395
+ /** @type {?} */
396
+ BsDatepickerAbstractComponent.prototype.isOtherMonthsActive;
397
+ /** @type {?} */
398
+ BsDatepickerAbstractComponent.prototype._effects;
399
+ /** @type {?} */
400
+ BsDatepickerAbstractComponent.prototype.customRanges;
401
+ /** @type {?} */
402
+ BsDatepickerAbstractComponent.prototype.viewMode;
403
+ /** @type {?} */
404
+ BsDatepickerAbstractComponent.prototype.daysCalendar;
405
+ /** @type {?} */
406
+ BsDatepickerAbstractComponent.prototype.monthsCalendar;
407
+ /** @type {?} */
408
+ BsDatepickerAbstractComponent.prototype.yearsCalendar;
409
+ /** @type {?} */
410
+ BsDatepickerAbstractComponent.prototype.options;
411
+ }
245
412
 
246
413
  /**
247
414
  * @fileoverview added by tsickle
@@ -435,6 +602,20 @@ var BsDatepickerActions = /** @class */ (function () {
435
602
  payload: dates
436
603
  };
437
604
  };
605
+ /**
606
+ * @param {?} dates
607
+ * @return {?}
608
+ */
609
+ BsDatepickerActions.prototype.datesEnabled = /**
610
+ * @param {?} dates
611
+ * @return {?}
612
+ */
613
+ function (dates) {
614
+ return {
615
+ type: BsDatepickerActions.SET_DATESENABLED,
616
+ payload: dates
617
+ };
618
+ };
438
619
  /**
439
620
  * @param {?} value
440
621
  * @return {?}
@@ -490,6 +671,7 @@ var BsDatepickerActions = /** @class */ (function () {
490
671
  BsDatepickerActions.SET_MAX_DATE = '[datepicker] set max date';
491
672
  BsDatepickerActions.SET_DAYSDISABLED = '[datepicker] set days disabled';
492
673
  BsDatepickerActions.SET_DATESDISABLED = '[datepicker] set dates disabled';
674
+ BsDatepickerActions.SET_DATESENABLED = '[datepicker] set dates enabled';
493
675
  BsDatepickerActions.SET_IS_DISABLED = '[datepicker] set is disabled';
494
676
  BsDatepickerActions.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';
495
677
  BsDatepickerActions.SET_LOCALE = '[datepicker] set datepicker locale';
@@ -499,6 +681,44 @@ var BsDatepickerActions = /** @class */ (function () {
499
681
  ];
500
682
  return BsDatepickerActions;
501
683
  }());
684
+ if (false) {
685
+ /** @type {?} */
686
+ BsDatepickerActions.CALCULATE;
687
+ /** @type {?} */
688
+ BsDatepickerActions.FORMAT;
689
+ /** @type {?} */
690
+ BsDatepickerActions.FLAG;
691
+ /** @type {?} */
692
+ BsDatepickerActions.SELECT;
693
+ /** @type {?} */
694
+ BsDatepickerActions.NAVIGATE_OFFSET;
695
+ /** @type {?} */
696
+ BsDatepickerActions.NAVIGATE_TO;
697
+ /** @type {?} */
698
+ BsDatepickerActions.SET_OPTIONS;
699
+ /** @type {?} */
700
+ BsDatepickerActions.HOVER;
701
+ /** @type {?} */
702
+ BsDatepickerActions.CHANGE_VIEWMODE;
703
+ /** @type {?} */
704
+ BsDatepickerActions.SET_MIN_DATE;
705
+ /** @type {?} */
706
+ BsDatepickerActions.SET_MAX_DATE;
707
+ /** @type {?} */
708
+ BsDatepickerActions.SET_DAYSDISABLED;
709
+ /** @type {?} */
710
+ BsDatepickerActions.SET_DATESDISABLED;
711
+ /** @type {?} */
712
+ BsDatepickerActions.SET_DATESENABLED;
713
+ /** @type {?} */
714
+ BsDatepickerActions.SET_IS_DISABLED;
715
+ /** @type {?} */
716
+ BsDatepickerActions.SET_DATE_CUSTOM_CLASSES;
717
+ /** @type {?} */
718
+ BsDatepickerActions.SET_LOCALE;
719
+ /** @type {?} */
720
+ BsDatepickerActions.SELECT_RANGE;
721
+ }
502
722
 
503
723
  /**
504
724
  * @fileoverview added by tsickle
@@ -559,6 +779,23 @@ var BsLocaleService = /** @class */ (function () {
559
779
  ];
560
780
  return BsLocaleService;
561
781
  }());
782
+ if (false) {
783
+ /**
784
+ * @type {?}
785
+ * @private
786
+ */
787
+ BsLocaleService.prototype._defaultLocale;
788
+ /**
789
+ * @type {?}
790
+ * @private
791
+ */
792
+ BsLocaleService.prototype._locale;
793
+ /**
794
+ * @type {?}
795
+ * @private
796
+ */
797
+ BsLocaleService.prototype._localeChange;
798
+ }
562
799
 
563
800
  /**
564
801
  * @fileoverview added by tsickle
@@ -632,36 +869,40 @@ var BsDatepickerEffects = /** @class */ (function () {
632
869
  return this;
633
870
  };
634
871
  /**
635
- * @template THIS
636
- * @this {THIS}
637
872
  * @param {?} value
638
- * @return {THIS}
873
+ * @return {?}
639
874
  */
640
875
  BsDatepickerEffects.prototype.setDaysDisabled = /**
641
- * @template THIS
642
- * @this {THIS}
643
876
  * @param {?} value
644
- * @return {THIS}
877
+ * @return {?}
645
878
  */
646
879
  function (value) {
647
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.daysDisabled(value));
648
- return (/** @type {?} */ (this));
880
+ this._store.dispatch(this._actions.daysDisabled(value));
881
+ return this;
649
882
  };
650
883
  /**
651
- * @template THIS
652
- * @this {THIS}
653
884
  * @param {?} value
654
- * @return {THIS}
885
+ * @return {?}
655
886
  */
656
887
  BsDatepickerEffects.prototype.setDatesDisabled = /**
657
- * @template THIS
658
- * @this {THIS}
659
888
  * @param {?} value
660
- * @return {THIS}
889
+ * @return {?}
890
+ */
891
+ function (value) {
892
+ this._store.dispatch(this._actions.datesDisabled(value));
893
+ return this;
894
+ };
895
+ /**
896
+ * @param {?} value
897
+ * @return {?}
898
+ */
899
+ BsDatepickerEffects.prototype.setDatesEnabled = /**
900
+ * @param {?} value
901
+ * @return {?}
661
902
  */
662
903
  function (value) {
663
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.datesDisabled(value));
664
- return (/** @type {?} */ (this));
904
+ this._store.dispatch(this._actions.datesEnabled(value));
905
+ return this;
665
906
  };
666
907
  /**
667
908
  * @param {?} value
@@ -1045,6 +1286,38 @@ var BsDatepickerEffects = /** @class */ (function () {
1045
1286
  ]; };
1046
1287
  return BsDatepickerEffects;
1047
1288
  }());
1289
+ if (false) {
1290
+ /** @type {?} */
1291
+ BsDatepickerEffects.prototype.viewMode;
1292
+ /** @type {?} */
1293
+ BsDatepickerEffects.prototype.daysCalendar;
1294
+ /** @type {?} */
1295
+ BsDatepickerEffects.prototype.monthsCalendar;
1296
+ /** @type {?} */
1297
+ BsDatepickerEffects.prototype.yearsCalendar;
1298
+ /** @type {?} */
1299
+ BsDatepickerEffects.prototype.options;
1300
+ /**
1301
+ * @type {?}
1302
+ * @private
1303
+ */
1304
+ BsDatepickerEffects.prototype._store;
1305
+ /**
1306
+ * @type {?}
1307
+ * @private
1308
+ */
1309
+ BsDatepickerEffects.prototype._subs;
1310
+ /**
1311
+ * @type {?}
1312
+ * @private
1313
+ */
1314
+ BsDatepickerEffects.prototype._actions;
1315
+ /**
1316
+ * @type {?}
1317
+ * @private
1318
+ */
1319
+ BsDatepickerEffects.prototype._localeService;
1320
+ }
1048
1321
 
1049
1322
  /**
1050
1323
  * @fileoverview added by tsickle
@@ -1060,6 +1333,91 @@ var defaultMonthOptions = {
1060
1333
  * @fileoverview added by tsickle
1061
1334
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1062
1335
  */
1336
+ /**
1337
+ * @record
1338
+ */
1339
+ function BsDatepickerViewState() { }
1340
+ if (false) {
1341
+ /** @type {?} */
1342
+ BsDatepickerViewState.prototype.date;
1343
+ /** @type {?} */
1344
+ BsDatepickerViewState.prototype.mode;
1345
+ }
1346
+ var BsDatepickerState = /** @class */ (function () {
1347
+ function BsDatepickerState() {
1348
+ }
1349
+ return BsDatepickerState;
1350
+ }());
1351
+ if (false) {
1352
+ /** @type {?} */
1353
+ BsDatepickerState.prototype.selectedDate;
1354
+ /** @type {?} */
1355
+ BsDatepickerState.prototype.selectedRange;
1356
+ /** @type {?} */
1357
+ BsDatepickerState.prototype.view;
1358
+ /** @type {?} */
1359
+ BsDatepickerState.prototype.isDisabled;
1360
+ /** @type {?} */
1361
+ BsDatepickerState.prototype.minDate;
1362
+ /** @type {?} */
1363
+ BsDatepickerState.prototype.maxDate;
1364
+ /** @type {?} */
1365
+ BsDatepickerState.prototype.daysDisabled;
1366
+ /** @type {?} */
1367
+ BsDatepickerState.prototype.datesDisabled;
1368
+ /** @type {?} */
1369
+ BsDatepickerState.prototype.datesEnabled;
1370
+ /** @type {?} */
1371
+ BsDatepickerState.prototype.minMode;
1372
+ /** @type {?} */
1373
+ BsDatepickerState.prototype.dateCustomClasses;
1374
+ /** @type {?} */
1375
+ BsDatepickerState.prototype.hoveredDate;
1376
+ /** @type {?} */
1377
+ BsDatepickerState.prototype.hoveredMonth;
1378
+ /** @type {?} */
1379
+ BsDatepickerState.prototype.hoveredYear;
1380
+ /** @type {?} */
1381
+ BsDatepickerState.prototype.monthsModel;
1382
+ /** @type {?} */
1383
+ BsDatepickerState.prototype.formattedMonths;
1384
+ /** @type {?} */
1385
+ BsDatepickerState.prototype.flaggedMonths;
1386
+ /** @type {?} */
1387
+ BsDatepickerState.prototype.selectFromOtherMonth;
1388
+ /** @type {?} */
1389
+ BsDatepickerState.prototype.showPreviousMonth;
1390
+ /** @type {?} */
1391
+ BsDatepickerState.prototype.displayOneMonthRange;
1392
+ /** @type {?} */
1393
+ BsDatepickerState.prototype.monthsCalendar;
1394
+ /** @type {?} */
1395
+ BsDatepickerState.prototype.flaggedMonthsCalendar;
1396
+ /** @type {?} */
1397
+ BsDatepickerState.prototype.yearsCalendarModel;
1398
+ /** @type {?} */
1399
+ BsDatepickerState.prototype.yearsCalendarFlagged;
1400
+ /** @type {?} */
1401
+ BsDatepickerState.prototype.monthViewOptions;
1402
+ /** @type {?} */
1403
+ BsDatepickerState.prototype.showWeekNumbers;
1404
+ /** @type {?} */
1405
+ BsDatepickerState.prototype.displayMonths;
1406
+ /** @type {?} */
1407
+ BsDatepickerState.prototype.locale;
1408
+ /** @type {?} */
1409
+ BsDatepickerState.prototype.monthTitle;
1410
+ /** @type {?} */
1411
+ BsDatepickerState.prototype.yearTitle;
1412
+ /** @type {?} */
1413
+ BsDatepickerState.prototype.dayLabel;
1414
+ /** @type {?} */
1415
+ BsDatepickerState.prototype.monthLabel;
1416
+ /** @type {?} */
1417
+ BsDatepickerState.prototype.yearLabel;
1418
+ /** @type {?} */
1419
+ BsDatepickerState.prototype.weekNumbers;
1420
+ }
1063
1421
  /** @type {?} */
1064
1422
  var _initialView = { date: new Date(), mode: 'day' };
1065
1423
  /** @type {?} */
@@ -1134,7 +1492,7 @@ function isYearDisabled(date, min, max) {
1134
1492
  * @return {?}
1135
1493
  */
1136
1494
  function isDisabledDate(date, datesDisabled) {
1137
- if (datesDisabled === undefined || !datesDisabled || !datesDisabled.length) {
1495
+ if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {
1138
1496
  return false;
1139
1497
  }
1140
1498
  return datesDisabled.some((/**
@@ -1143,6 +1501,21 @@ function isDisabledDate(date, datesDisabled) {
1143
1501
  */
1144
1502
  function (dateDisabled) { return isSame(date, dateDisabled, 'date'); }));
1145
1503
  }
1504
+ /**
1505
+ * @param {?} date
1506
+ * @param {?} datesEnabled
1507
+ * @return {?}
1508
+ */
1509
+ function isEnabledDate(date, datesEnabled) {
1510
+ if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {
1511
+ return false;
1512
+ }
1513
+ return !datesEnabled.some((/**
1514
+ * @param {?} enabledDate
1515
+ * @return {?}
1516
+ */
1517
+ function (enabledDate) { return isSame(date, enabledDate, 'date'); }));
1518
+ }
1146
1519
  /**
1147
1520
  * @param {?} state
1148
1521
  * @param {?=} calendarIndex
@@ -1159,6 +1532,20 @@ function getYearsCalendarInitialDate(state, calendarIndex) {
1159
1532
  * @fileoverview added by tsickle
1160
1533
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1161
1534
  */
1535
+ /**
1536
+ * @record
1537
+ */
1538
+ function MatrixOptions() { }
1539
+ if (false) {
1540
+ /** @type {?} */
1541
+ MatrixOptions.prototype.height;
1542
+ /** @type {?} */
1543
+ MatrixOptions.prototype.width;
1544
+ /** @type {?} */
1545
+ MatrixOptions.prototype.initialDate;
1546
+ /** @type {?} */
1547
+ MatrixOptions.prototype.shift;
1548
+ }
1162
1549
  /**
1163
1550
  * @template T
1164
1551
  * @param {?} options
@@ -1282,6 +1669,36 @@ function getShiftedWeekdays(locale) {
1282
1669
  * @fileoverview added by tsickle
1283
1670
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1284
1671
  */
1672
+ /**
1673
+ * @record
1674
+ */
1675
+ function FlagDaysCalendarOptions() { }
1676
+ if (false) {
1677
+ /** @type {?} */
1678
+ FlagDaysCalendarOptions.prototype.isDisabled;
1679
+ /** @type {?} */
1680
+ FlagDaysCalendarOptions.prototype.minDate;
1681
+ /** @type {?} */
1682
+ FlagDaysCalendarOptions.prototype.maxDate;
1683
+ /** @type {?} */
1684
+ FlagDaysCalendarOptions.prototype.daysDisabled;
1685
+ /** @type {?} */
1686
+ FlagDaysCalendarOptions.prototype.datesDisabled;
1687
+ /** @type {?} */
1688
+ FlagDaysCalendarOptions.prototype.datesEnabled;
1689
+ /** @type {?} */
1690
+ FlagDaysCalendarOptions.prototype.hoveredDate;
1691
+ /** @type {?} */
1692
+ FlagDaysCalendarOptions.prototype.selectedDate;
1693
+ /** @type {?} */
1694
+ FlagDaysCalendarOptions.prototype.selectedRange;
1695
+ /** @type {?} */
1696
+ FlagDaysCalendarOptions.prototype.displayMonths;
1697
+ /** @type {?} */
1698
+ FlagDaysCalendarOptions.prototype.monthIndex;
1699
+ /** @type {?} */
1700
+ FlagDaysCalendarOptions.prototype.dateCustomClasses;
1701
+ }
1285
1702
  /**
1286
1703
  * @param {?} formattedMonth
1287
1704
  * @param {?} options
@@ -1327,7 +1744,8 @@ function flagDaysCalendar(formattedMonth, options) {
1327
1744
  isBefore(day.date, options.minDate, 'day') ||
1328
1745
  isAfter(day.date, options.maxDate, 'day') ||
1329
1746
  isDisabledDay(day.date, options.daysDisabled) ||
1330
- isDisabledDate(day.date, options.datesDisabled);
1747
+ isDisabledDate(day.date, options.datesDisabled) ||
1748
+ isEnabledDate(day.date, options.datesEnabled);
1331
1749
  /** @type {?} */
1332
1750
  var currentDate = new Date();
1333
1751
  /** @type {?} */
@@ -1456,6 +1874,26 @@ function formatMonthsCalendar(viewDate, formatOptions) {
1456
1874
  * @fileoverview added by tsickle
1457
1875
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1458
1876
  */
1877
+ /**
1878
+ * @record
1879
+ */
1880
+ function FlagMonthCalendarOptions() { }
1881
+ if (false) {
1882
+ /** @type {?} */
1883
+ FlagMonthCalendarOptions.prototype.isDisabled;
1884
+ /** @type {?} */
1885
+ FlagMonthCalendarOptions.prototype.minDate;
1886
+ /** @type {?} */
1887
+ FlagMonthCalendarOptions.prototype.maxDate;
1888
+ /** @type {?} */
1889
+ FlagMonthCalendarOptions.prototype.hoveredMonth;
1890
+ /** @type {?} */
1891
+ FlagMonthCalendarOptions.prototype.selectedDate;
1892
+ /** @type {?} */
1893
+ FlagMonthCalendarOptions.prototype.displayMonths;
1894
+ /** @type {?} */
1895
+ FlagMonthCalendarOptions.prototype.monthIndex;
1896
+ }
1459
1897
  /**
1460
1898
  * @param {?} monthCalendar
1461
1899
  * @param {?} options
@@ -1577,6 +2015,26 @@ function formatYearRangeTitle(yearsMatrix, formatOptions) {
1577
2015
  * @fileoverview added by tsickle
1578
2016
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1579
2017
  */
2018
+ /**
2019
+ * @record
2020
+ */
2021
+ function FlagYearsCalendarOptions() { }
2022
+ if (false) {
2023
+ /** @type {?} */
2024
+ FlagYearsCalendarOptions.prototype.isDisabled;
2025
+ /** @type {?} */
2026
+ FlagYearsCalendarOptions.prototype.minDate;
2027
+ /** @type {?} */
2028
+ FlagYearsCalendarOptions.prototype.maxDate;
2029
+ /** @type {?} */
2030
+ FlagYearsCalendarOptions.prototype.hoveredYear;
2031
+ /** @type {?} */
2032
+ FlagYearsCalendarOptions.prototype.selectedDate;
2033
+ /** @type {?} */
2034
+ FlagYearsCalendarOptions.prototype.displayMonths;
2035
+ /** @type {?} */
2036
+ FlagYearsCalendarOptions.prototype.yearIndex;
2037
+ }
1580
2038
  /**
1581
2039
  * @param {?} yearsCalendar
1582
2040
  * @param {?} options
@@ -1643,10 +2101,10 @@ function bsDatepickerReducer(state, action) {
1643
2101
  return calculateReducer(state);
1644
2102
  }
1645
2103
  case BsDatepickerActions.FORMAT: {
1646
- return formatReducer(state);
2104
+ return formatReducer(state, action);
1647
2105
  }
1648
2106
  case BsDatepickerActions.FLAG: {
1649
- return flagReducer(state);
2107
+ return flagReducer(state, action);
1650
2108
  }
1651
2109
  case BsDatepickerActions.NAVIGATE_OFFSET: {
1652
2110
  return navigateOffsetReducer(state, action);
@@ -1775,11 +2233,15 @@ function bsDatepickerReducer(state, action) {
1775
2233
  function calculateReducer(state) {
1776
2234
  // how many calendars
1777
2235
  /** @type {?} */
1778
- var displayMonths = state.displayMonths;
2236
+ var displayMonths = (state.displayOneMonthRange &&
2237
+ isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;
1779
2238
  // use selected date on initial rendering if set
1780
2239
  /** @type {?} */
1781
2240
  var viewDate = state.view.date;
1782
2241
  if (state.view.mode === 'day') {
2242
+ if (state.showPreviousMonth && state.selectedRange.length === 0) {
2243
+ viewDate = shiftDate(viewDate, { month: -1 });
2244
+ }
1783
2245
  state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();
1784
2246
  /** @type {?} */
1785
2247
  var monthsModel = new Array(displayMonths);
@@ -1865,6 +2327,8 @@ function formatReducer(state, action) {
1865
2327
  * @return {?}
1866
2328
  */
1867
2329
  function flagReducer(state, action) {
2330
+ /** @type {?} */
2331
+ var displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
1868
2332
  if (state.view.mode === 'day') {
1869
2333
  /** @type {?} */
1870
2334
  var flaggedMonths = state.formattedMonths.map((/**
@@ -1879,10 +2343,11 @@ function flagReducer(state, action) {
1879
2343
  maxDate: state.maxDate,
1880
2344
  daysDisabled: state.daysDisabled,
1881
2345
  datesDisabled: state.datesDisabled,
2346
+ datesEnabled: state.datesEnabled,
1882
2347
  hoveredDate: state.hoveredDate,
1883
2348
  selectedDate: state.selectedDate,
1884
2349
  selectedRange: state.selectedRange,
1885
- displayMonths: state.displayMonths,
2350
+ displayMonths: displayMonths,
1886
2351
  dateCustomClasses: state.dateCustomClasses,
1887
2352
  monthIndex: monthIndex
1888
2353
  });
@@ -1903,7 +2368,7 @@ function flagReducer(state, action) {
1903
2368
  maxDate: state.maxDate,
1904
2369
  hoveredMonth: state.hoveredMonth,
1905
2370
  selectedDate: state.selectedDate,
1906
- displayMonths: state.displayMonths,
2371
+ displayMonths: displayMonths,
1907
2372
  monthIndex: monthIndex
1908
2373
  });
1909
2374
  }));
@@ -1923,7 +2388,7 @@ function flagReducer(state, action) {
1923
2388
  maxDate: state.maxDate,
1924
2389
  hoveredYear: state.hoveredYear,
1925
2390
  selectedDate: state.selectedDate,
1926
- displayMonths: state.displayMonths,
2391
+ displayMonths: displayMonths,
1927
2392
  yearIndex: yearIndex
1928
2393
  });
1929
2394
  }));
@@ -1997,6 +2462,21 @@ function getViewDate(viewDate, minDate, maxDate) {
1997
2462
  }
1998
2463
  return _date;
1999
2464
  }
2465
+ /**
2466
+ * @param {?} viewDate
2467
+ * @param {?} minDate
2468
+ * @param {?} maxDate
2469
+ * @return {?}
2470
+ */
2471
+ function isDisplayOneMonth(viewDate, minDate, maxDate) {
2472
+ if (maxDate && isSame(maxDate, viewDate, 'day')) {
2473
+ return true;
2474
+ }
2475
+ if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {
2476
+ return true;
2477
+ }
2478
+ return false;
2479
+ }
2000
2480
 
2001
2481
  /**
2002
2482
  * @fileoverview added by tsickle
@@ -2156,6 +2636,9 @@ var BsDatepickerContainerComponent = /** @class */ (function (_super) {
2156
2636
  * @return {?}
2157
2637
  */
2158
2638
  function (day) {
2639
+ if (!day) {
2640
+ return;
2641
+ }
2159
2642
  /** @type {?} */
2160
2643
  var isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2161
2644
  if (isDisabled) {
@@ -2190,7 +2673,7 @@ var BsDatepickerContainerComponent = /** @class */ (function (_super) {
2190
2673
  { type: Component, args: [{
2191
2674
  selector: 'bs-datepicker-container',
2192
2675
  providers: [BsDatepickerStore, BsDatepickerEffects],
2193
- 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",
2676
+ 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",
2194
2677
  host: {
2195
2678
  class: 'bottom',
2196
2679
  '(click)': '_stopPropagation($event)',
@@ -2212,14 +2695,49 @@ var BsDatepickerContainerComponent = /** @class */ (function (_super) {
2212
2695
  ]; };
2213
2696
  return BsDatepickerContainerComponent;
2214
2697
  }(BsDatepickerAbstractComponent));
2215
-
2216
- /**
2217
- * @fileoverview added by tsickle
2218
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2219
- */
2698
+ if (false) {
2699
+ /** @type {?} */
2700
+ BsDatepickerContainerComponent.prototype.valueChange;
2701
+ /** @type {?} */
2702
+ BsDatepickerContainerComponent.prototype.animationState;
2703
+ /** @type {?} */
2704
+ BsDatepickerContainerComponent.prototype._subs;
2705
+ /**
2706
+ * @type {?}
2707
+ * @private
2708
+ */
2709
+ BsDatepickerContainerComponent.prototype._config;
2710
+ /**
2711
+ * @type {?}
2712
+ * @private
2713
+ */
2714
+ BsDatepickerContainerComponent.prototype._store;
2715
+ /**
2716
+ * @type {?}
2717
+ * @private
2718
+ */
2719
+ BsDatepickerContainerComponent.prototype._element;
2720
+ /**
2721
+ * @type {?}
2722
+ * @private
2723
+ */
2724
+ BsDatepickerContainerComponent.prototype._actions;
2725
+ /**
2726
+ * @type {?}
2727
+ * @private
2728
+ */
2729
+ BsDatepickerContainerComponent.prototype._positionService;
2730
+ }
2731
+
2732
+ /**
2733
+ * @fileoverview added by tsickle
2734
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2735
+ */
2220
2736
  var BsDatepickerDirective = /** @class */ (function () {
2221
2737
  function BsDatepickerDirective(_config, _elementRef, _renderer, _viewContainerRef, cis) {
2222
2738
  this._config = _config;
2739
+ this._elementRef = _elementRef;
2740
+ this._renderer = _renderer;
2223
2741
  /**
2224
2742
  * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
2225
2743
  */
@@ -2248,6 +2766,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2248
2766
  this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
2249
2767
  this.onShown = this._datepicker.onShown;
2250
2768
  this.onHidden = this._datepicker.onHidden;
2769
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
2251
2770
  }
2252
2771
  Object.defineProperty(BsDatepickerDirective.prototype, "isOpen", {
2253
2772
  /**
@@ -2265,12 +2784,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2265
2784
  * @return {?}
2266
2785
  */
2267
2786
  function (value) {
2268
- if (value) {
2269
- this.show();
2270
- }
2271
- else {
2272
- this.hide();
2273
- }
2787
+ this.isOpen$.next(value);
2274
2788
  },
2275
2789
  enumerable: true,
2276
2790
  configurable: true
@@ -2285,7 +2799,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2285
2799
  * @return {?}
2286
2800
  */
2287
2801
  function (value) {
2288
- if (this._bsValue === value) {
2802
+ if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {
2289
2803
  return;
2290
2804
  }
2291
2805
  this._bsValue = value;
@@ -2302,6 +2816,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2302
2816
  */
2303
2817
  function () {
2304
2818
  var _this = this;
2819
+ this.isDestroy$ = new Subject();
2305
2820
  this._datepicker.listen({
2306
2821
  outsideClick: this.outsideClick,
2307
2822
  outsideEsc: this.outsideEsc,
@@ -2337,6 +2852,9 @@ var BsDatepickerDirective = /** @class */ (function () {
2337
2852
  if (changes.datesDisabled) {
2338
2853
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
2339
2854
  }
2855
+ if (changes.datesEnabled) {
2856
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2857
+ }
2340
2858
  if (changes.isDisabled) {
2341
2859
  this._datepickerRef.instance.isDisabled = this.isDisabled;
2342
2860
  }
@@ -2344,6 +2862,24 @@ var BsDatepickerDirective = /** @class */ (function () {
2344
2862
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
2345
2863
  }
2346
2864
  };
2865
+ /**
2866
+ * @return {?}
2867
+ */
2868
+ BsDatepickerDirective.prototype.ngAfterViewInit = /**
2869
+ * @return {?}
2870
+ */
2871
+ function () {
2872
+ var _this = this;
2873
+ this.isOpen$.pipe(filter((/**
2874
+ * @param {?} isOpen
2875
+ * @return {?}
2876
+ */
2877
+ function (isOpen) { return isOpen !== _this.isOpen; })), takeUntil(this.isDestroy$))
2878
+ .subscribe((/**
2879
+ * @return {?}
2880
+ */
2881
+ function () { return _this.toggle(); }));
2882
+ };
2347
2883
  /**
2348
2884
  * Opens an element’s datepicker. This is considered a “manual” triggering of
2349
2885
  * the datepicker.
@@ -2420,6 +2956,9 @@ var BsDatepickerDirective = /** @class */ (function () {
2420
2956
  }
2421
2957
  finally { if (e_1) throw e_1.error; }
2422
2958
  }
2959
+ if (this._config.returnFocusToInput) {
2960
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
2961
+ }
2423
2962
  };
2424
2963
  /**
2425
2964
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -2461,6 +3000,7 @@ var BsDatepickerDirective = /** @class */ (function () {
2461
3000
  daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
2462
3001
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2463
3002
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3003
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
2464
3004
  minMode: this.minMode || this.bsConfig && this.bsConfig.minMode
2465
3005
  });
2466
3006
  };
@@ -2472,6 +3012,11 @@ var BsDatepickerDirective = /** @class */ (function () {
2472
3012
  */
2473
3013
  function () {
2474
3014
  this._datepicker.dispose();
3015
+ this.isOpen$.next(false);
3016
+ if (this.isDestroy$) {
3017
+ this.isDestroy$.next();
3018
+ this.isDestroy$.complete();
3019
+ }
2475
3020
  };
2476
3021
  BsDatepickerDirective.decorators = [
2477
3022
  { type: Directive, args: [{
@@ -2504,11 +3049,130 @@ var BsDatepickerDirective = /** @class */ (function () {
2504
3049
  minMode: [{ type: Input }],
2505
3050
  daysDisabled: [{ type: Input }],
2506
3051
  datesDisabled: [{ type: Input }],
3052
+ datesEnabled: [{ type: Input }],
2507
3053
  dateCustomClasses: [{ type: Input }],
2508
3054
  bsValueChange: [{ type: Output }]
2509
3055
  };
2510
3056
  return BsDatepickerDirective;
2511
3057
  }());
3058
+ if (false) {
3059
+ /**
3060
+ * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
3061
+ * @type {?}
3062
+ */
3063
+ BsDatepickerDirective.prototype.placement;
3064
+ /**
3065
+ * Specifies events that should trigger. Supports a space separated list of
3066
+ * event names.
3067
+ * @type {?}
3068
+ */
3069
+ BsDatepickerDirective.prototype.triggers;
3070
+ /**
3071
+ * Close datepicker on outside click
3072
+ * @type {?}
3073
+ */
3074
+ BsDatepickerDirective.prototype.outsideClick;
3075
+ /**
3076
+ * A selector specifying the element the datepicker should be appended to.
3077
+ * @type {?}
3078
+ */
3079
+ BsDatepickerDirective.prototype.container;
3080
+ /** @type {?} */
3081
+ BsDatepickerDirective.prototype.outsideEsc;
3082
+ /**
3083
+ * Emits an event when the datepicker is shown
3084
+ * @type {?}
3085
+ */
3086
+ BsDatepickerDirective.prototype.onShown;
3087
+ /**
3088
+ * Emits an event when the datepicker is hidden
3089
+ * @type {?}
3090
+ */
3091
+ BsDatepickerDirective.prototype.onHidden;
3092
+ /** @type {?} */
3093
+ BsDatepickerDirective.prototype._bsValue;
3094
+ /** @type {?} */
3095
+ BsDatepickerDirective.prototype.isOpen$;
3096
+ /** @type {?} */
3097
+ BsDatepickerDirective.prototype.isDestroy$;
3098
+ /**
3099
+ * Config object for datepicker
3100
+ * @type {?}
3101
+ */
3102
+ BsDatepickerDirective.prototype.bsConfig;
3103
+ /**
3104
+ * Indicates whether datepicker's content is enabled or not
3105
+ * @type {?}
3106
+ */
3107
+ BsDatepickerDirective.prototype.isDisabled;
3108
+ /**
3109
+ * Minimum date which is available for selection
3110
+ * @type {?}
3111
+ */
3112
+ BsDatepickerDirective.prototype.minDate;
3113
+ /**
3114
+ * Maximum date which is available for selection
3115
+ * @type {?}
3116
+ */
3117
+ BsDatepickerDirective.prototype.maxDate;
3118
+ /**
3119
+ * Minimum view mode : day, month, or year
3120
+ * @type {?}
3121
+ */
3122
+ BsDatepickerDirective.prototype.minMode;
3123
+ /**
3124
+ * Disable Certain days in the week
3125
+ * @type {?}
3126
+ */
3127
+ BsDatepickerDirective.prototype.daysDisabled;
3128
+ /**
3129
+ * Disable specific dates
3130
+ * @type {?}
3131
+ */
3132
+ BsDatepickerDirective.prototype.datesDisabled;
3133
+ /**
3134
+ * Enable specific dates
3135
+ * @type {?}
3136
+ */
3137
+ BsDatepickerDirective.prototype.datesEnabled;
3138
+ /**
3139
+ * Date custom classes
3140
+ * @type {?}
3141
+ */
3142
+ BsDatepickerDirective.prototype.dateCustomClasses;
3143
+ /**
3144
+ * Emits when datepicker value has been changed
3145
+ * @type {?}
3146
+ */
3147
+ BsDatepickerDirective.prototype.bsValueChange;
3148
+ /**
3149
+ * @type {?}
3150
+ * @protected
3151
+ */
3152
+ BsDatepickerDirective.prototype._subs;
3153
+ /**
3154
+ * @type {?}
3155
+ * @private
3156
+ */
3157
+ BsDatepickerDirective.prototype._datepicker;
3158
+ /**
3159
+ * @type {?}
3160
+ * @private
3161
+ */
3162
+ BsDatepickerDirective.prototype._datepickerRef;
3163
+ /** @type {?} */
3164
+ BsDatepickerDirective.prototype._config;
3165
+ /**
3166
+ * @type {?}
3167
+ * @private
3168
+ */
3169
+ BsDatepickerDirective.prototype._elementRef;
3170
+ /**
3171
+ * @type {?}
3172
+ * @private
3173
+ */
3174
+ BsDatepickerDirective.prototype._renderer;
3175
+ }
2512
3176
 
2513
3177
  /**
2514
3178
  * @fileoverview added by tsickle
@@ -2541,7 +3205,7 @@ var BsDatepickerInlineContainerComponent = /** @class */ (function (_super) {
2541
3205
  { type: Component, args: [{
2542
3206
  selector: 'bs-datepicker-inline-container',
2543
3207
  providers: [BsDatepickerStore, BsDatepickerEffects],
2544
- 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",
3208
+ 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",
2545
3209
  host: {
2546
3210
  '(click)': '_stopPropagation($event)'
2547
3211
  },
@@ -2606,11 +3270,6 @@ var BsDatepickerInlineDirective = /** @class */ (function () {
2606
3270
  function () {
2607
3271
  var _this = this;
2608
3272
  this.setConfig();
2609
- this._datepickerRef = this._datepicker
2610
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
2611
- .attach(BsDatepickerInlineContainerComponent)
2612
- .to(this._elementRef)
2613
- .show();
2614
3273
  // if date changes from external source (model -> view)
2615
3274
  this._subs.push(this.bsValueChange.subscribe((/**
2616
3275
  * @param {?} value
@@ -2642,21 +3301,27 @@ var BsDatepickerInlineDirective = /** @class */ (function () {
2642
3301
  }
2643
3302
  if (changes.minDate) {
2644
3303
  this._datepickerRef.instance.minDate = this.minDate;
2645
- this._datepickerRef.instance.value = this._bsValue;
3304
+ this.setConfig();
2646
3305
  }
2647
3306
  if (changes.maxDate) {
2648
3307
  this._datepickerRef.instance.maxDate = this.maxDate;
2649
- this._datepickerRef.instance.value = this._bsValue;
3308
+ this.setConfig();
2650
3309
  }
2651
3310
  if (changes.datesDisabled) {
2652
3311
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3312
+ this.setConfig();
3313
+ }
3314
+ if (changes.datesEnabled) {
3315
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2653
3316
  this._datepickerRef.instance.value = this._bsValue;
2654
3317
  }
2655
3318
  if (changes.isDisabled) {
2656
3319
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3320
+ this.setConfig();
2657
3321
  }
2658
3322
  if (changes.dateCustomClasses) {
2659
3323
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3324
+ this.setConfig();
2660
3325
  }
2661
3326
  };
2662
3327
  /**
@@ -2671,14 +3336,23 @@ var BsDatepickerInlineDirective = /** @class */ (function () {
2671
3336
  * @return {?}
2672
3337
  */
2673
3338
  function () {
3339
+ if (this._datepicker) {
3340
+ this._datepicker.hide();
3341
+ }
2674
3342
  this._config = Object.assign({}, this._config, this.bsConfig, {
2675
3343
  value: this._bsValue,
2676
3344
  isDisabled: this.isDisabled,
2677
3345
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
2678
3346
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
2679
3347
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2680
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
3348
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3349
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled
2681
3350
  });
3351
+ this._datepickerRef = this._datepicker
3352
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
3353
+ .attach(BsDatepickerInlineContainerComponent)
3354
+ .to(this._elementRef)
3355
+ .show();
2682
3356
  };
2683
3357
  /**
2684
3358
  * @return {?}
@@ -2710,11 +3384,78 @@ var BsDatepickerInlineDirective = /** @class */ (function () {
2710
3384
  minDate: [{ type: Input }],
2711
3385
  maxDate: [{ type: Input }],
2712
3386
  dateCustomClasses: [{ type: Input }],
3387
+ datesEnabled: [{ type: Input }],
2713
3388
  datesDisabled: [{ type: Input }],
2714
3389
  bsValueChange: [{ type: Output }]
2715
3390
  };
2716
3391
  return BsDatepickerInlineDirective;
2717
3392
  }());
3393
+ if (false) {
3394
+ /** @type {?} */
3395
+ BsDatepickerInlineDirective.prototype._bsValue;
3396
+ /**
3397
+ * Config object for datepicker
3398
+ * @type {?}
3399
+ */
3400
+ BsDatepickerInlineDirective.prototype.bsConfig;
3401
+ /**
3402
+ * Indicates whether datepicker is enabled or not
3403
+ * @type {?}
3404
+ */
3405
+ BsDatepickerInlineDirective.prototype.isDisabled;
3406
+ /**
3407
+ * Minimum date which is available for selection
3408
+ * @type {?}
3409
+ */
3410
+ BsDatepickerInlineDirective.prototype.minDate;
3411
+ /**
3412
+ * Maximum date which is available for selection
3413
+ * @type {?}
3414
+ */
3415
+ BsDatepickerInlineDirective.prototype.maxDate;
3416
+ /**
3417
+ * Date custom classes
3418
+ * @type {?}
3419
+ */
3420
+ BsDatepickerInlineDirective.prototype.dateCustomClasses;
3421
+ /**
3422
+ * Disable specific dates
3423
+ * @type {?}
3424
+ */
3425
+ BsDatepickerInlineDirective.prototype.datesEnabled;
3426
+ /**
3427
+ * Enable specific dates
3428
+ * @type {?}
3429
+ */
3430
+ BsDatepickerInlineDirective.prototype.datesDisabled;
3431
+ /**
3432
+ * Emits when datepicker value has been changed
3433
+ * @type {?}
3434
+ */
3435
+ BsDatepickerInlineDirective.prototype.bsValueChange;
3436
+ /**
3437
+ * @type {?}
3438
+ * @protected
3439
+ */
3440
+ BsDatepickerInlineDirective.prototype._subs;
3441
+ /**
3442
+ * @type {?}
3443
+ * @private
3444
+ */
3445
+ BsDatepickerInlineDirective.prototype._datepicker;
3446
+ /**
3447
+ * @type {?}
3448
+ * @private
3449
+ */
3450
+ BsDatepickerInlineDirective.prototype._datepickerRef;
3451
+ /** @type {?} */
3452
+ BsDatepickerInlineDirective.prototype._config;
3453
+ /**
3454
+ * @type {?}
3455
+ * @private
3456
+ */
3457
+ BsDatepickerInlineDirective.prototype._elementRef;
3458
+ }
2718
3459
 
2719
3460
  /**
2720
3461
  * @fileoverview added by tsickle
@@ -2737,6 +3478,15 @@ var BsDaterangepickerInlineConfig = /** @class */ (function (_super) {
2737
3478
  ];
2738
3479
  return BsDaterangepickerInlineConfig;
2739
3480
  }(BsDatepickerConfig));
3481
+ if (false) {
3482
+ /** @type {?} */
3483
+ BsDaterangepickerInlineConfig.prototype.displayMonths;
3484
+ /**
3485
+ * turn on/off animation
3486
+ * @type {?}
3487
+ */
3488
+ BsDaterangepickerInlineConfig.prototype.isAnimated;
3489
+ }
2740
3490
 
2741
3491
  /**
2742
3492
  * @fileoverview added by tsickle
@@ -2754,8 +3504,10 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2754
3504
  _this.valueChange = new EventEmitter();
2755
3505
  _this.animationState = 'void';
2756
3506
  _this._rangeStack = [];
3507
+ _this.chosenRange = [];
2757
3508
  _this._subs = [];
2758
3509
  _this._effects = _effects;
3510
+ _this.customRanges = _this._config.ranges;
2759
3511
  _renderer.setStyle(_element.nativeElement, 'display', 'block');
2760
3512
  _renderer.setStyle(_element.nativeElement, 'position', 'absolute');
2761
3513
  return _this;
@@ -2820,7 +3572,10 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2820
3572
  * @param {?} date
2821
3573
  * @return {?}
2822
3574
  */
2823
- function (date) { return _this.valueChange.emit(date); })));
3575
+ function (date) {
3576
+ _this.valueChange.emit(date);
3577
+ _this.chosenRange = date;
3578
+ })));
2824
3579
  };
2825
3580
  Object.defineProperty(BsDaterangepickerContainerComponent.prototype, "isTopPosition", {
2826
3581
  get: /**
@@ -2850,6 +3605,9 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2850
3605
  * @return {?}
2851
3606
  */
2852
3607
  function (day) {
3608
+ if (!day) {
3609
+ return;
3610
+ }
2853
3611
  /** @type {?} */
2854
3612
  var isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2855
3613
  if (isDisabled) {
@@ -2897,11 +3655,23 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2897
3655
  }
2898
3656
  this._effects.destroy();
2899
3657
  };
3658
+ /**
3659
+ * @param {?} dates
3660
+ * @return {?}
3661
+ */
3662
+ BsDaterangepickerContainerComponent.prototype.setRangeOnCalendar = /**
3663
+ * @param {?} dates
3664
+ * @return {?}
3665
+ */
3666
+ function (dates) {
3667
+ this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
3668
+ this._store.dispatch(this._actions.selectRange(this._rangeStack));
3669
+ };
2900
3670
  BsDaterangepickerContainerComponent.decorators = [
2901
3671
  { type: Component, args: [{
2902
3672
  selector: 'bs-daterangepicker-container',
2903
3673
  providers: [BsDatepickerStore, BsDatepickerEffects],
2904
- 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",
3674
+ 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",
2905
3675
  host: {
2906
3676
  class: 'bottom',
2907
3677
  '(click)': '_stopPropagation($event)',
@@ -2923,6 +3693,43 @@ var BsDaterangepickerContainerComponent = /** @class */ (function (_super) {
2923
3693
  ]; };
2924
3694
  return BsDaterangepickerContainerComponent;
2925
3695
  }(BsDatepickerAbstractComponent));
3696
+ if (false) {
3697
+ /** @type {?} */
3698
+ BsDaterangepickerContainerComponent.prototype.valueChange;
3699
+ /** @type {?} */
3700
+ BsDaterangepickerContainerComponent.prototype.animationState;
3701
+ /** @type {?} */
3702
+ BsDaterangepickerContainerComponent.prototype._rangeStack;
3703
+ /** @type {?} */
3704
+ BsDaterangepickerContainerComponent.prototype.chosenRange;
3705
+ /** @type {?} */
3706
+ BsDaterangepickerContainerComponent.prototype._subs;
3707
+ /**
3708
+ * @type {?}
3709
+ * @private
3710
+ */
3711
+ BsDaterangepickerContainerComponent.prototype._config;
3712
+ /**
3713
+ * @type {?}
3714
+ * @private
3715
+ */
3716
+ BsDaterangepickerContainerComponent.prototype._store;
3717
+ /**
3718
+ * @type {?}
3719
+ * @private
3720
+ */
3721
+ BsDaterangepickerContainerComponent.prototype._element;
3722
+ /**
3723
+ * @type {?}
3724
+ * @private
3725
+ */
3726
+ BsDaterangepickerContainerComponent.prototype._actions;
3727
+ /**
3728
+ * @type {?}
3729
+ * @private
3730
+ */
3731
+ BsDaterangepickerContainerComponent.prototype._positionService;
3732
+ }
2926
3733
 
2927
3734
  /**
2928
3735
  * @fileoverview added by tsickle
@@ -2940,7 +3747,7 @@ var BsDaterangepickerInlineContainerComponent = /** @class */ (function (_super)
2940
3747
  { type: Component, args: [{
2941
3748
  selector: 'bs-daterangepicker-inline-container',
2942
3749
  providers: [BsDatepickerStore, BsDatepickerEffects],
2943
- 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",
3750
+ 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",
2944
3751
  host: {
2945
3752
  '(click)': '_stopPropagation($event)'
2946
3753
  },
@@ -3005,11 +3812,6 @@ var BsDaterangepickerInlineDirective = /** @class */ (function () {
3005
3812
  function () {
3006
3813
  var _this = this;
3007
3814
  this.setConfig();
3008
- this._datepickerRef = this._datepicker
3009
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
3010
- .attach(BsDaterangepickerInlineContainerComponent)
3011
- .to(this._elementRef)
3012
- .show();
3013
3815
  // if date changes from external source (model -> view)
3014
3816
  this._subs.push(this.bsValueChange.subscribe((/**
3015
3817
  * @param {?} value
@@ -3047,18 +3849,30 @@ var BsDaterangepickerInlineDirective = /** @class */ (function () {
3047
3849
  }
3048
3850
  if (changes.minDate) {
3049
3851
  this._datepickerRef.instance.minDate = this.minDate;
3852
+ this.setConfig();
3050
3853
  }
3051
3854
  if (changes.maxDate) {
3052
3855
  this._datepickerRef.instance.maxDate = this.maxDate;
3856
+ this.setConfig();
3857
+ }
3858
+ if (changes.datesEnabled) {
3859
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
3053
3860
  }
3054
3861
  if (changes.datesDisabled) {
3055
3862
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3863
+ this.setConfig();
3864
+ }
3865
+ if (changes.daysDisabled) {
3866
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
3867
+ this.setConfig();
3056
3868
  }
3057
3869
  if (changes.isDisabled) {
3058
3870
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3871
+ this.setConfig();
3059
3872
  }
3060
3873
  if (changes.dateCustomClasses) {
3061
3874
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3875
+ this.setConfig();
3062
3876
  }
3063
3877
  };
3064
3878
  /**
@@ -3073,14 +3887,25 @@ var BsDaterangepickerInlineDirective = /** @class */ (function () {
3073
3887
  * @return {?}
3074
3888
  */
3075
3889
  function () {
3890
+ if (this._datepicker) {
3891
+ this._datepicker.hide();
3892
+ }
3076
3893
  this._config = Object.assign({}, this._config, this.bsConfig, {
3077
3894
  value: this._bsValue,
3078
3895
  isDisabled: this.isDisabled,
3079
3896
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3080
3897
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
3898
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3081
3899
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3082
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
3900
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3901
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
3902
+ ranges: this.bsConfig && this.bsConfig.ranges
3083
3903
  });
3904
+ this._datepickerRef = this._datepicker
3905
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
3906
+ .attach(BsDaterangepickerInlineContainerComponent)
3907
+ .to(this._elementRef)
3908
+ .show();
3084
3909
  };
3085
3910
  /**
3086
3911
  * @return {?}
@@ -3112,11 +3937,84 @@ var BsDaterangepickerInlineDirective = /** @class */ (function () {
3112
3937
  minDate: [{ type: Input }],
3113
3938
  maxDate: [{ type: Input }],
3114
3939
  dateCustomClasses: [{ type: Input }],
3940
+ daysDisabled: [{ type: Input }],
3115
3941
  datesDisabled: [{ type: Input }],
3942
+ datesEnabled: [{ type: Input }],
3116
3943
  bsValueChange: [{ type: Output }]
3117
3944
  };
3118
3945
  return BsDaterangepickerInlineDirective;
3119
3946
  }());
3947
+ if (false) {
3948
+ /** @type {?} */
3949
+ BsDaterangepickerInlineDirective.prototype._bsValue;
3950
+ /**
3951
+ * Config object for datepicker
3952
+ * @type {?}
3953
+ */
3954
+ BsDaterangepickerInlineDirective.prototype.bsConfig;
3955
+ /**
3956
+ * Indicates whether datepicker is enabled or not
3957
+ * @type {?}
3958
+ */
3959
+ BsDaterangepickerInlineDirective.prototype.isDisabled;
3960
+ /**
3961
+ * Minimum date which is available for selection
3962
+ * @type {?}
3963
+ */
3964
+ BsDaterangepickerInlineDirective.prototype.minDate;
3965
+ /**
3966
+ * Maximum date which is available for selection
3967
+ * @type {?}
3968
+ */
3969
+ BsDaterangepickerInlineDirective.prototype.maxDate;
3970
+ /**
3971
+ * Date custom classes
3972
+ * @type {?}
3973
+ */
3974
+ BsDaterangepickerInlineDirective.prototype.dateCustomClasses;
3975
+ /**
3976
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
3977
+ * @type {?}
3978
+ */
3979
+ BsDaterangepickerInlineDirective.prototype.daysDisabled;
3980
+ /**
3981
+ * Disable specific dates
3982
+ * @type {?}
3983
+ */
3984
+ BsDaterangepickerInlineDirective.prototype.datesDisabled;
3985
+ /**
3986
+ * Disable specific dates
3987
+ * @type {?}
3988
+ */
3989
+ BsDaterangepickerInlineDirective.prototype.datesEnabled;
3990
+ /**
3991
+ * Emits when daterangepicker value has been changed
3992
+ * @type {?}
3993
+ */
3994
+ BsDaterangepickerInlineDirective.prototype.bsValueChange;
3995
+ /**
3996
+ * @type {?}
3997
+ * @protected
3998
+ */
3999
+ BsDaterangepickerInlineDirective.prototype._subs;
4000
+ /**
4001
+ * @type {?}
4002
+ * @private
4003
+ */
4004
+ BsDaterangepickerInlineDirective.prototype._datepicker;
4005
+ /**
4006
+ * @type {?}
4007
+ * @private
4008
+ */
4009
+ BsDaterangepickerInlineDirective.prototype._datepickerRef;
4010
+ /** @type {?} */
4011
+ BsDaterangepickerInlineDirective.prototype._config;
4012
+ /**
4013
+ * @type {?}
4014
+ * @private
4015
+ */
4016
+ BsDaterangepickerInlineDirective.prototype._elementRef;
4017
+ }
3120
4018
 
3121
4019
  /**
3122
4020
  * @fileoverview added by tsickle
@@ -3176,6 +4074,19 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3176
4074
  _this._setInputValue(_this._value);
3177
4075
  }));
3178
4076
  }
4077
+ /**
4078
+ * @param {?} event
4079
+ * @return {?}
4080
+ */
4081
+ BsDatepickerInputDirective.prototype.onKeydownEvent = /**
4082
+ * @param {?} event
4083
+ * @return {?}
4084
+ */
4085
+ function (event) {
4086
+ if (event.keyCode === 13 || event.code === 'Enter') {
4087
+ this.hide();
4088
+ }
4089
+ };
3179
4090
  /**
3180
4091
  * @param {?} value
3181
4092
  * @return {?}
@@ -3202,6 +4113,9 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3202
4113
  /* tslint:disable-next-line: no-any*/
3203
4114
  this.writeValue(((/** @type {?} */ (event.target))).value);
3204
4115
  this._onChange(this._value);
4116
+ if (this._picker._config.returnFocusToInput) {
4117
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4118
+ }
3205
4119
  this._onTouched();
3206
4120
  };
3207
4121
  /**
@@ -3226,9 +4140,11 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3226
4140
  return { bsDate: { invalid: _value } };
3227
4141
  }
3228
4142
  if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {
4143
+ this.writeValue(this._picker.minDate);
3229
4144
  return { bsDate: { minDate: this._picker.minDate } };
3230
4145
  }
3231
4146
  if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {
4147
+ this.writeValue(this._picker.maxDate);
3232
4148
  return { bsDate: { maxDate: this._picker.maxDate } };
3233
4149
  }
3234
4150
  }
@@ -3327,6 +4243,9 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3327
4243
  function () {
3328
4244
  this._picker.hide();
3329
4245
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
4246
+ if (this._picker._config.returnFocusToInput) {
4247
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4248
+ }
3330
4249
  };
3331
4250
  BsDatepickerInputDirective.decorators = [
3332
4251
  { type: Directive, args: [{
@@ -3334,6 +4253,7 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3334
4253
  host: {
3335
4254
  '(change)': 'onChange($event)',
3336
4255
  '(keyup.esc)': 'hide()',
4256
+ '(keydown)': 'onKeydownEvent($event)',
3337
4257
  '(blur)': 'onBlur()'
3338
4258
  },
3339
4259
  providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]
@@ -3349,6 +4269,53 @@ var BsDatepickerInputDirective = /** @class */ (function () {
3349
4269
  ]; };
3350
4270
  return BsDatepickerInputDirective;
3351
4271
  }());
4272
+ if (false) {
4273
+ /**
4274
+ * @type {?}
4275
+ * @private
4276
+ */
4277
+ BsDatepickerInputDirective.prototype._onChange;
4278
+ /**
4279
+ * @type {?}
4280
+ * @private
4281
+ */
4282
+ BsDatepickerInputDirective.prototype._onTouched;
4283
+ /**
4284
+ * @type {?}
4285
+ * @private
4286
+ */
4287
+ BsDatepickerInputDirective.prototype._validatorChange;
4288
+ /**
4289
+ * @type {?}
4290
+ * @private
4291
+ */
4292
+ BsDatepickerInputDirective.prototype._value;
4293
+ /**
4294
+ * @type {?}
4295
+ * @private
4296
+ */
4297
+ BsDatepickerInputDirective.prototype._picker;
4298
+ /**
4299
+ * @type {?}
4300
+ * @private
4301
+ */
4302
+ BsDatepickerInputDirective.prototype._localeService;
4303
+ /**
4304
+ * @type {?}
4305
+ * @private
4306
+ */
4307
+ BsDatepickerInputDirective.prototype._renderer;
4308
+ /**
4309
+ * @type {?}
4310
+ * @private
4311
+ */
4312
+ BsDatepickerInputDirective.prototype._elRef;
4313
+ /**
4314
+ * @type {?}
4315
+ * @private
4316
+ */
4317
+ BsDatepickerInputDirective.prototype.changeDetection;
4318
+ }
3352
4319
 
3353
4320
  /**
3354
4321
  * @fileoverview added by tsickle
@@ -3367,6 +4334,10 @@ var BsDaterangepickerConfig = /** @class */ (function (_super) {
3367
4334
  ];
3368
4335
  return BsDaterangepickerConfig;
3369
4336
  }(BsDatepickerConfig));
4337
+ if (false) {
4338
+ /** @type {?} */
4339
+ BsDaterangepickerConfig.prototype.displayMonths;
4340
+ }
3370
4341
 
3371
4342
  /**
3372
4343
  * @fileoverview added by tsickle
@@ -3375,6 +4346,8 @@ var BsDaterangepickerConfig = /** @class */ (function (_super) {
3375
4346
  var BsDaterangepickerDirective = /** @class */ (function () {
3376
4347
  function BsDaterangepickerDirective(_config, _elementRef, _renderer, _viewContainerRef, cis) {
3377
4348
  this._config = _config;
4349
+ this._elementRef = _elementRef;
4350
+ this._renderer = _renderer;
3378
4351
  /**
3379
4352
  * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
3380
4353
  */
@@ -3402,6 +4375,7 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3402
4375
  Object.assign(this, _config);
3403
4376
  this.onShown = this._datepicker.onShown;
3404
4377
  this.onHidden = this._datepicker.onHidden;
4378
+ this.isOpen$ = new BehaviorSubject(this.isOpen);
3405
4379
  }
3406
4380
  Object.defineProperty(BsDaterangepickerDirective.prototype, "isOpen", {
3407
4381
  /**
@@ -3419,12 +4393,7 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3419
4393
  * @return {?}
3420
4394
  */
3421
4395
  function (value) {
3422
- if (value) {
3423
- this.show();
3424
- }
3425
- else {
3426
- this.hide();
3427
- }
4396
+ this.isOpen$.next(value);
3428
4397
  },
3429
4398
  enumerable: true,
3430
4399
  configurable: true
@@ -3456,6 +4425,7 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3456
4425
  */
3457
4426
  function () {
3458
4427
  var _this = this;
4428
+ this.isDestroy$ = new Subject();
3459
4429
  this._datepicker.listen({
3460
4430
  outsideClick: this.outsideClick,
3461
4431
  outsideEsc: this.outsideEsc,
@@ -3488,6 +4458,12 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3488
4458
  if (changes.datesDisabled) {
3489
4459
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3490
4460
  }
4461
+ if (changes.datesEnabled) {
4462
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
4463
+ }
4464
+ if (changes.daysDisabled) {
4465
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
4466
+ }
3491
4467
  if (changes.isDisabled) {
3492
4468
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3493
4469
  }
@@ -3495,6 +4471,24 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3495
4471
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3496
4472
  }
3497
4473
  };
4474
+ /**
4475
+ * @return {?}
4476
+ */
4477
+ BsDaterangepickerDirective.prototype.ngAfterViewInit = /**
4478
+ * @return {?}
4479
+ */
4480
+ function () {
4481
+ var _this = this;
4482
+ this.isOpen$.pipe(filter((/**
4483
+ * @param {?} isOpen
4484
+ * @return {?}
4485
+ */
4486
+ function (isOpen) { return isOpen !== _this.isOpen; })), takeUntil(this.isDestroy$))
4487
+ .subscribe((/**
4488
+ * @return {?}
4489
+ */
4490
+ function () { return _this.toggle(); }));
4491
+ };
3498
4492
  /**
3499
4493
  * Opens an element’s datepicker. This is considered a “manual” triggering of
3500
4494
  * the datepicker.
@@ -3562,8 +4556,11 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3562
4556
  isDisabled: this.isDisabled,
3563
4557
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3564
4558
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
4559
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3565
4560
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3566
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
4561
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4562
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4563
+ ranges: this.bsConfig && this.bsConfig.ranges
3567
4564
  });
3568
4565
  };
3569
4566
  /**
@@ -3598,6 +4595,9 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3598
4595
  }
3599
4596
  finally { if (e_1) throw e_1.error; }
3600
4597
  }
4598
+ if (this._config.returnFocusToInput) {
4599
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
4600
+ }
3601
4601
  };
3602
4602
  /**
3603
4603
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -3627,6 +4627,11 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3627
4627
  */
3628
4628
  function () {
3629
4629
  this._datepicker.dispose();
4630
+ this.isOpen$.next(false);
4631
+ if (this.isDestroy$) {
4632
+ this.isDestroy$.next();
4633
+ this.isDestroy$.complete();
4634
+ }
3630
4635
  };
3631
4636
  BsDaterangepickerDirective.decorators = [
3632
4637
  { type: Directive, args: [{
@@ -3657,11 +4662,126 @@ var BsDaterangepickerDirective = /** @class */ (function () {
3657
4662
  minDate: [{ type: Input }],
3658
4663
  maxDate: [{ type: Input }],
3659
4664
  dateCustomClasses: [{ type: Input }],
4665
+ daysDisabled: [{ type: Input }],
3660
4666
  datesDisabled: [{ type: Input }],
4667
+ datesEnabled: [{ type: Input }],
3661
4668
  bsValueChange: [{ type: Output }]
3662
4669
  };
3663
4670
  return BsDaterangepickerDirective;
3664
4671
  }());
4672
+ if (false) {
4673
+ /**
4674
+ * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
4675
+ * @type {?}
4676
+ */
4677
+ BsDaterangepickerDirective.prototype.placement;
4678
+ /**
4679
+ * Specifies events that should trigger. Supports a space separated list of
4680
+ * event names.
4681
+ * @type {?}
4682
+ */
4683
+ BsDaterangepickerDirective.prototype.triggers;
4684
+ /**
4685
+ * Close daterangepicker on outside click
4686
+ * @type {?}
4687
+ */
4688
+ BsDaterangepickerDirective.prototype.outsideClick;
4689
+ /**
4690
+ * A selector specifying the element the daterangepicker should be appended to.
4691
+ * @type {?}
4692
+ */
4693
+ BsDaterangepickerDirective.prototype.container;
4694
+ /** @type {?} */
4695
+ BsDaterangepickerDirective.prototype.outsideEsc;
4696
+ /**
4697
+ * Emits an event when the daterangepicker is shown
4698
+ * @type {?}
4699
+ */
4700
+ BsDaterangepickerDirective.prototype.onShown;
4701
+ /**
4702
+ * Emits an event when the daterangepicker is hidden
4703
+ * @type {?}
4704
+ */
4705
+ BsDaterangepickerDirective.prototype.onHidden;
4706
+ /** @type {?} */
4707
+ BsDaterangepickerDirective.prototype._bsValue;
4708
+ /** @type {?} */
4709
+ BsDaterangepickerDirective.prototype.isOpen$;
4710
+ /** @type {?} */
4711
+ BsDaterangepickerDirective.prototype.isDestroy$;
4712
+ /**
4713
+ * Config object for daterangepicker
4714
+ * @type {?}
4715
+ */
4716
+ BsDaterangepickerDirective.prototype.bsConfig;
4717
+ /**
4718
+ * Indicates whether daterangepicker's content is enabled or not
4719
+ * @type {?}
4720
+ */
4721
+ BsDaterangepickerDirective.prototype.isDisabled;
4722
+ /**
4723
+ * Minimum date which is available for selection
4724
+ * @type {?}
4725
+ */
4726
+ BsDaterangepickerDirective.prototype.minDate;
4727
+ /**
4728
+ * Maximum date which is available for selection
4729
+ * @type {?}
4730
+ */
4731
+ BsDaterangepickerDirective.prototype.maxDate;
4732
+ /**
4733
+ * Date custom classes
4734
+ * @type {?}
4735
+ */
4736
+ BsDaterangepickerDirective.prototype.dateCustomClasses;
4737
+ /**
4738
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
4739
+ * @type {?}
4740
+ */
4741
+ BsDaterangepickerDirective.prototype.daysDisabled;
4742
+ /**
4743
+ * Disable specific dates
4744
+ * @type {?}
4745
+ */
4746
+ BsDaterangepickerDirective.prototype.datesDisabled;
4747
+ /**
4748
+ * Enable specific dates
4749
+ * @type {?}
4750
+ */
4751
+ BsDaterangepickerDirective.prototype.datesEnabled;
4752
+ /**
4753
+ * Emits when daterangepicker value has been changed
4754
+ * @type {?}
4755
+ */
4756
+ BsDaterangepickerDirective.prototype.bsValueChange;
4757
+ /**
4758
+ * @type {?}
4759
+ * @protected
4760
+ */
4761
+ BsDaterangepickerDirective.prototype._subs;
4762
+ /**
4763
+ * @type {?}
4764
+ * @private
4765
+ */
4766
+ BsDaterangepickerDirective.prototype._datepicker;
4767
+ /**
4768
+ * @type {?}
4769
+ * @private
4770
+ */
4771
+ BsDaterangepickerDirective.prototype._datepickerRef;
4772
+ /** @type {?} */
4773
+ BsDaterangepickerDirective.prototype._config;
4774
+ /**
4775
+ * @type {?}
4776
+ * @private
4777
+ */
4778
+ BsDaterangepickerDirective.prototype._elementRef;
4779
+ /**
4780
+ * @type {?}
4781
+ * @private
4782
+ */
4783
+ BsDaterangepickerDirective.prototype._renderer;
4784
+ }
3665
4785
 
3666
4786
  /**
3667
4787
  * @fileoverview added by tsickle
@@ -3721,6 +4841,19 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3721
4841
  _this._setInputValue(_this._value);
3722
4842
  }));
3723
4843
  }
4844
+ /**
4845
+ * @param {?} event
4846
+ * @return {?}
4847
+ */
4848
+ BsDaterangepickerInputDirective.prototype.onKeydownEvent = /**
4849
+ * @param {?} event
4850
+ * @return {?}
4851
+ */
4852
+ function (event) {
4853
+ if (event.keyCode === 13 || event.code === 'Enter') {
4854
+ this.hide();
4855
+ }
4856
+ };
3724
4857
  /**
3725
4858
  * @param {?} date
3726
4859
  * @return {?}
@@ -3755,6 +4888,9 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3755
4888
  /* tslint:disable-next-line: no-any*/
3756
4889
  this.writeValue(((/** @type {?} */ (event.target))).value);
3757
4890
  this._onChange(this._value);
4891
+ if (this._picker._config.returnFocusToInput) {
4892
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4893
+ }
3758
4894
  this._onTouched();
3759
4895
  };
3760
4896
  /**
@@ -3768,9 +4904,18 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3768
4904
  function (c) {
3769
4905
  /** @type {?} */
3770
4906
  var _value = c.value;
4907
+ /** @type {?} */
4908
+ var errors = [];
3771
4909
  if (_value === null || _value === undefined || !isArray(_value)) {
3772
4910
  return null;
3773
4911
  }
4912
+ // @ts-ignore
4913
+ _value.sort((/**
4914
+ * @param {?} a
4915
+ * @param {?} b
4916
+ * @return {?}
4917
+ */
4918
+ function (a, b) { return a - b; }));
3774
4919
  /** @type {?} */
3775
4920
  var _isFirstDateValid = isDateValid(_value[0]);
3776
4921
  /** @type {?} */
@@ -3782,10 +4927,16 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3782
4927
  return { bsDate: { invalid: _value[1] } };
3783
4928
  }
3784
4929
  if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {
3785
- return { bsDate: { minDate: this._picker.minDate } };
4930
+ _value[0] = this._picker.minDate;
4931
+ errors.push({ bsDate: { minDate: this._picker.minDate } });
3786
4932
  }
3787
4933
  if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {
3788
- return { bsDate: { maxDate: this._picker.maxDate } };
4934
+ _value[1] = this._picker.maxDate;
4935
+ errors.push({ bsDate: { maxDate: this._picker.maxDate } });
4936
+ }
4937
+ if (errors.length > 0) {
4938
+ this.writeValue(_value);
4939
+ return errors;
3789
4940
  }
3790
4941
  };
3791
4942
  /**
@@ -3909,6 +5060,9 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3909
5060
  function () {
3910
5061
  this._picker.hide();
3911
5062
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
5063
+ if (this._picker._config.returnFocusToInput) {
5064
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
5065
+ }
3912
5066
  };
3913
5067
  BsDaterangepickerInputDirective.decorators = [
3914
5068
  { type: Directive, args: [{
@@ -3916,6 +5070,7 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3916
5070
  host: {
3917
5071
  '(change)': 'onChange($event)',
3918
5072
  '(keyup.esc)': 'hide()',
5073
+ '(keydown)': 'onKeydownEvent($event)',
3919
5074
  '(blur)': 'onBlur()'
3920
5075
  },
3921
5076
  providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]
@@ -3931,6 +5086,53 @@ var BsDaterangepickerInputDirective = /** @class */ (function () {
3931
5086
  ]; };
3932
5087
  return BsDaterangepickerInputDirective;
3933
5088
  }());
5089
+ if (false) {
5090
+ /**
5091
+ * @type {?}
5092
+ * @private
5093
+ */
5094
+ BsDaterangepickerInputDirective.prototype._onChange;
5095
+ /**
5096
+ * @type {?}
5097
+ * @private
5098
+ */
5099
+ BsDaterangepickerInputDirective.prototype._onTouched;
5100
+ /**
5101
+ * @type {?}
5102
+ * @private
5103
+ */
5104
+ BsDaterangepickerInputDirective.prototype._validatorChange;
5105
+ /**
5106
+ * @type {?}
5107
+ * @private
5108
+ */
5109
+ BsDaterangepickerInputDirective.prototype._value;
5110
+ /**
5111
+ * @type {?}
5112
+ * @private
5113
+ */
5114
+ BsDaterangepickerInputDirective.prototype._picker;
5115
+ /**
5116
+ * @type {?}
5117
+ * @private
5118
+ */
5119
+ BsDaterangepickerInputDirective.prototype._localeService;
5120
+ /**
5121
+ * @type {?}
5122
+ * @private
5123
+ */
5124
+ BsDaterangepickerInputDirective.prototype._renderer;
5125
+ /**
5126
+ * @type {?}
5127
+ * @private
5128
+ */
5129
+ BsDaterangepickerInputDirective.prototype._elRef;
5130
+ /**
5131
+ * @type {?}
5132
+ * @private
5133
+ */
5134
+ BsDaterangepickerInputDirective.prototype.changeDetection;
5135
+ }
3934
5136
 
3935
5137
  /**
3936
5138
  * @fileoverview added by tsickle
@@ -3966,27 +5168,79 @@ var BsCurrentDateViewComponent = /** @class */ (function () {
3966
5168
  };
3967
5169
  return BsCurrentDateViewComponent;
3968
5170
  }());
5171
+ if (false) {
5172
+ /** @type {?} */
5173
+ BsCurrentDateViewComponent.prototype.title;
5174
+ }
3969
5175
 
3970
5176
  /**
3971
5177
  * @fileoverview added by tsickle
3972
5178
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3973
5179
  */
5180
+ /**
5181
+ * @record
5182
+ */
5183
+ function BsCustomDates() { }
5184
+ if (false) {
5185
+ /** @type {?} */
5186
+ BsCustomDates.prototype.label;
5187
+ /** @type {?} */
5188
+ BsCustomDates.prototype.value;
5189
+ }
3974
5190
  var BsCustomDatesViewComponent = /** @class */ (function () {
3975
5191
  function BsCustomDatesViewComponent() {
5192
+ this.onSelect = new EventEmitter();
5193
+ this.customRange = null;
3976
5194
  }
5195
+ /**
5196
+ * @param {?} range
5197
+ * @return {?}
5198
+ */
5199
+ BsCustomDatesViewComponent.prototype.selectFromRanges = /**
5200
+ * @param {?} range
5201
+ * @return {?}
5202
+ */
5203
+ function (range) {
5204
+ this.onSelect.emit(range);
5205
+ };
5206
+ /**
5207
+ * @return {?}
5208
+ */
5209
+ BsCustomDatesViewComponent.prototype.checkRange = /**
5210
+ * @return {?}
5211
+ */
5212
+ function () {
5213
+ var _this = this;
5214
+ return this.ranges ? this.ranges.filter((/**
5215
+ * @param {?} range
5216
+ * @return {?}
5217
+ */
5218
+ function (range) { return range.value === _this.selectedRange; })).length > 0 : false;
5219
+ };
3977
5220
  BsCustomDatesViewComponent.decorators = [
3978
5221
  { type: Component, args: [{
3979
5222
  selector: 'bs-custom-date-view',
3980
- 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 ",
5223
+ 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 ",
3981
5224
  changeDetection: ChangeDetectionStrategy.OnPush
3982
5225
  }] }
3983
5226
  ];
3984
5227
  BsCustomDatesViewComponent.propDecorators = {
3985
- isCustomRangeShown: [{ type: Input }],
3986
- ranges: [{ type: Input }]
5228
+ ranges: [{ type: Input }],
5229
+ selectedRange: [{ type: Input }],
5230
+ onSelect: [{ type: Output }]
3987
5231
  };
3988
5232
  return BsCustomDatesViewComponent;
3989
5233
  }());
5234
+ if (false) {
5235
+ /** @type {?} */
5236
+ BsCustomDatesViewComponent.prototype.ranges;
5237
+ /** @type {?} */
5238
+ BsCustomDatesViewComponent.prototype.selectedRange;
5239
+ /** @type {?} */
5240
+ BsCustomDatesViewComponent.prototype.onSelect;
5241
+ /** @type {?} */
5242
+ BsCustomDatesViewComponent.prototype.customRange;
5243
+ }
3990
5244
 
3991
5245
  /**
3992
5246
  * @fileoverview added by tsickle
@@ -4053,11 +5307,199 @@ var BsDatepickerDayDecoratorComponent = /** @class */ (function () {
4053
5307
  };
4054
5308
  return BsDatepickerDayDecoratorComponent;
4055
5309
  }());
5310
+ if (false) {
5311
+ /** @type {?} */
5312
+ BsDatepickerDayDecoratorComponent.prototype.day;
5313
+ /**
5314
+ * @type {?}
5315
+ * @private
5316
+ */
5317
+ BsDatepickerDayDecoratorComponent.prototype._config;
5318
+ /**
5319
+ * @type {?}
5320
+ * @private
5321
+ */
5322
+ BsDatepickerDayDecoratorComponent.prototype._elRef;
5323
+ /**
5324
+ * @type {?}
5325
+ * @private
5326
+ */
5327
+ BsDatepickerDayDecoratorComponent.prototype._renderer;
5328
+ }
4056
5329
 
4057
5330
  /**
4058
- * @fileoverview added by tsickle
4059
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5331
+ * @fileoverview added by tsickle
5332
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5333
+ */
5334
+ /**
5335
+ * **************
5336
+ * @record
5337
+ */
5338
+ function NavigationViewModel() { }
5339
+ if (false) {
5340
+ /** @type {?} */
5341
+ NavigationViewModel.prototype.monthTitle;
5342
+ /** @type {?} */
5343
+ NavigationViewModel.prototype.yearTitle;
5344
+ /** @type {?|undefined} */
5345
+ NavigationViewModel.prototype.hideLeftArrow;
5346
+ /** @type {?|undefined} */
5347
+ NavigationViewModel.prototype.hideRightArrow;
5348
+ /** @type {?|undefined} */
5349
+ NavigationViewModel.prototype.disableLeftArrow;
5350
+ /** @type {?|undefined} */
5351
+ NavigationViewModel.prototype.disableRightArrow;
5352
+ }
5353
+ /**
5354
+ * @record
5355
+ */
5356
+ function CalendarCellViewModel() { }
5357
+ if (false) {
5358
+ /** @type {?} */
5359
+ CalendarCellViewModel.prototype.date;
5360
+ /** @type {?} */
5361
+ CalendarCellViewModel.prototype.label;
5362
+ /** @type {?|undefined} */
5363
+ CalendarCellViewModel.prototype.isDisabled;
5364
+ /** @type {?|undefined} */
5365
+ CalendarCellViewModel.prototype.isHovered;
5366
+ /** @type {?|undefined} */
5367
+ CalendarCellViewModel.prototype.isSelected;
5368
+ }
5369
+ /**
5370
+ * **************
5371
+ * @record
5372
+ */
5373
+ function DayViewModel() { }
5374
+ if (false) {
5375
+ /** @type {?|undefined} */
5376
+ DayViewModel.prototype.isOtherMonthHovered;
5377
+ /** @type {?|undefined} */
5378
+ DayViewModel.prototype.isOtherMonth;
5379
+ /** @type {?|undefined} */
5380
+ DayViewModel.prototype.isInRange;
5381
+ /** @type {?|undefined} */
5382
+ DayViewModel.prototype.isSelectionStart;
5383
+ /** @type {?|undefined} */
5384
+ DayViewModel.prototype.isSelectionEnd;
5385
+ /** @type {?|undefined} */
5386
+ DayViewModel.prototype.isToday;
5387
+ /** @type {?|undefined} */
5388
+ DayViewModel.prototype.customClasses;
5389
+ /** @type {?|undefined} */
5390
+ DayViewModel.prototype.monthIndex;
5391
+ /** @type {?|undefined} */
5392
+ DayViewModel.prototype.weekIndex;
5393
+ /** @type {?|undefined} */
5394
+ DayViewModel.prototype.dayIndex;
5395
+ }
5396
+ /**
5397
+ * @record
5398
+ */
5399
+ function WeekViewModel() { }
5400
+ if (false) {
5401
+ /** @type {?} */
5402
+ WeekViewModel.prototype.days;
5403
+ /** @type {?|undefined} */
5404
+ WeekViewModel.prototype.isHovered;
5405
+ }
5406
+ /**
5407
+ * @record
5408
+ */
5409
+ function DaysCalendarViewModel() { }
5410
+ if (false) {
5411
+ /** @type {?} */
5412
+ DaysCalendarViewModel.prototype.weeks;
5413
+ /** @type {?} */
5414
+ DaysCalendarViewModel.prototype.month;
5415
+ /** @type {?} */
5416
+ DaysCalendarViewModel.prototype.weekNumbers;
5417
+ /** @type {?} */
5418
+ DaysCalendarViewModel.prototype.weekdays;
5419
+ }
5420
+ /**
5421
+ * **************
5422
+ * @record
5423
+ */
5424
+ function MonthsCalendarViewModel() { }
5425
+ if (false) {
5426
+ /** @type {?} */
5427
+ MonthsCalendarViewModel.prototype.months;
5428
+ }
5429
+ /**
5430
+ * **************
5431
+ * @record
5432
+ */
5433
+ function YearsCalendarViewModel() { }
5434
+ if (false) {
5435
+ /** @type {?} */
5436
+ YearsCalendarViewModel.prototype.years;
5437
+ }
5438
+ /**
5439
+ * **************
5440
+ * @record
5441
+ */
5442
+ function DaysCalendarModel() { }
5443
+ if (false) {
5444
+ /** @type {?} */
5445
+ DaysCalendarModel.prototype.daysMatrix;
5446
+ /** @type {?} */
5447
+ DaysCalendarModel.prototype.month;
5448
+ }
5449
+ /**
5450
+ * **************
5451
+ * @record
5452
+ */
5453
+ function MonthViewOptions() { }
5454
+ if (false) {
5455
+ /** @type {?|undefined} */
5456
+ MonthViewOptions.prototype.width;
5457
+ /** @type {?|undefined} */
5458
+ MonthViewOptions.prototype.height;
5459
+ /** @type {?|undefined} */
5460
+ MonthViewOptions.prototype.firstDayOfWeek;
5461
+ }
5462
+ /**
5463
+ * **************
5464
+ * @record
5465
+ */
5466
+ function DatepickerFormatOptions() { }
5467
+ if (false) {
5468
+ /** @type {?} */
5469
+ DatepickerFormatOptions.prototype.locale;
5470
+ /** @type {?} */
5471
+ DatepickerFormatOptions.prototype.monthTitle;
5472
+ /** @type {?} */
5473
+ DatepickerFormatOptions.prototype.yearTitle;
5474
+ /** @type {?} */
5475
+ DatepickerFormatOptions.prototype.dayLabel;
5476
+ /** @type {?} */
5477
+ DatepickerFormatOptions.prototype.monthLabel;
5478
+ /** @type {?} */
5479
+ DatepickerFormatOptions.prototype.yearLabel;
5480
+ /** @type {?} */
5481
+ DatepickerFormatOptions.prototype.weekNumbers;
5482
+ }
5483
+ /**
5484
+ * @record
4060
5485
  */
5486
+ function DatepickerRenderOptions() { }
5487
+ if (false) {
5488
+ /** @type {?|undefined} */
5489
+ DatepickerRenderOptions.prototype.showWeekNumbers;
5490
+ /** @type {?|undefined} */
5491
+ DatepickerRenderOptions.prototype.displayMonths;
5492
+ }
5493
+ /**
5494
+ * @record
5495
+ */
5496
+ function DatepickerDateCustomClasses() { }
5497
+ if (false) {
5498
+ /** @type {?} */
5499
+ DatepickerDateCustomClasses.prototype.date;
5500
+ /** @type {?} */
5501
+ DatepickerDateCustomClasses.prototype.classes;
5502
+ }
4061
5503
  /** @enum {number} */
4062
5504
  var BsNavigationDirection = {
4063
5505
  UP: 0,
@@ -4065,6 +5507,36 @@ var BsNavigationDirection = {
4065
5507
  };
4066
5508
  BsNavigationDirection[BsNavigationDirection.UP] = 'UP';
4067
5509
  BsNavigationDirection[BsNavigationDirection.DOWN] = 'DOWN';
5510
+ /**
5511
+ * @record
5512
+ */
5513
+ function BsNavigationEvent() { }
5514
+ if (false) {
5515
+ /** @type {?|undefined} */
5516
+ BsNavigationEvent.prototype.direction;
5517
+ /** @type {?|undefined} */
5518
+ BsNavigationEvent.prototype.step;
5519
+ }
5520
+ /**
5521
+ * @record
5522
+ */
5523
+ function BsViewNavigationEvent() { }
5524
+ if (false) {
5525
+ /** @type {?|undefined} */
5526
+ BsViewNavigationEvent.prototype.unit;
5527
+ /** @type {?} */
5528
+ BsViewNavigationEvent.prototype.viewMode;
5529
+ }
5530
+ /**
5531
+ * @record
5532
+ */
5533
+ function CellHoverEvent() { }
5534
+ if (false) {
5535
+ /** @type {?} */
5536
+ CellHoverEvent.prototype.cell;
5537
+ /** @type {?} */
5538
+ CellHoverEvent.prototype.isHovered;
5539
+ }
4068
5540
 
4069
5541
  /**
4070
5542
  * @fileoverview added by tsickle
@@ -4101,7 +5573,7 @@ var BsDatepickerNavigationViewComponent = /** @class */ (function () {
4101
5573
  { type: Component, args: [{
4102
5574
  selector: 'bs-datepicker-navigation-view',
4103
5575
  changeDetection: ChangeDetectionStrategy.OnPush,
4104
- 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 "
5576
+ 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 "
4105
5577
  }] }
4106
5578
  ];
4107
5579
  BsDatepickerNavigationViewComponent.propDecorators = {
@@ -4111,6 +5583,14 @@ var BsDatepickerNavigationViewComponent = /** @class */ (function () {
4111
5583
  };
4112
5584
  return BsDatepickerNavigationViewComponent;
4113
5585
  }());
5586
+ if (false) {
5587
+ /** @type {?} */
5588
+ BsDatepickerNavigationViewComponent.prototype.calendar;
5589
+ /** @type {?} */
5590
+ BsDatepickerNavigationViewComponent.prototype.onNavigate;
5591
+ /** @type {?} */
5592
+ BsDatepickerNavigationViewComponent.prototype.onViewMode;
5593
+ }
4114
5594
 
4115
5595
  /**
4116
5596
  * @fileoverview added by tsickle
@@ -4170,19 +5650,18 @@ var BsDaysCalendarViewComponent = /** @class */ (function () {
4170
5650
  */
4171
5651
  function (week) {
4172
5652
  var _this = this;
4173
- if (!this._config.selectWeek) {
5653
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
5654
+ return;
5655
+ }
5656
+ if (week.days.length === 0) {
4174
5657
  return;
4175
5658
  }
4176
- if (week.days
4177
- && week.days[0]
5659
+ if (this._config.selectWeek && week.days[0]
4178
5660
  && !week.days[0].isDisabled
4179
5661
  && this._config.selectFromOtherMonth) {
4180
5662
  this.onSelect.emit(week.days[0]);
4181
5663
  return;
4182
5664
  }
4183
- if (week.days.length === 0) {
4184
- return;
4185
- }
4186
5665
  /** @type {?} */
4187
5666
  var selectedDay = week.days.find((/**
4188
5667
  * @param {?} day
@@ -4194,6 +5673,21 @@ var BsDaysCalendarViewComponent = /** @class */ (function () {
4194
5673
  : !day.isOtherMonth && !day.isDisabled;
4195
5674
  }));
4196
5675
  this.onSelect.emit(selectedDay);
5676
+ if (this._config.selectWeekDateRange) {
5677
+ /** @type {?} */
5678
+ var days = week.days.slice(0);
5679
+ /** @type {?} */
5680
+ var lastDayOfRange = days.reverse().find((/**
5681
+ * @param {?} day
5682
+ * @return {?}
5683
+ */
5684
+ function (day) {
5685
+ return _this._config.selectFromOtherMonth
5686
+ ? !day.isDisabled
5687
+ : !day.isOtherMonth && !day.isDisabled;
5688
+ }));
5689
+ this.onSelect.emit(lastDayOfRange);
5690
+ }
4197
5691
  };
4198
5692
  /**
4199
5693
  * @param {?} cell
@@ -4207,7 +5701,7 @@ var BsDaysCalendarViewComponent = /** @class */ (function () {
4207
5701
  */
4208
5702
  function (cell, isHovered) {
4209
5703
  var _this = this;
4210
- if (!this._config.selectWeek) {
5704
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
4211
5705
  return;
4212
5706
  }
4213
5707
  /** @type {?} */
@@ -4264,6 +5758,29 @@ var BsDaysCalendarViewComponent = /** @class */ (function () {
4264
5758
  };
4265
5759
  return BsDaysCalendarViewComponent;
4266
5760
  }());
5761
+ if (false) {
5762
+ /** @type {?} */
5763
+ BsDaysCalendarViewComponent.prototype.calendar;
5764
+ /** @type {?} */
5765
+ BsDaysCalendarViewComponent.prototype.options;
5766
+ /** @type {?} */
5767
+ BsDaysCalendarViewComponent.prototype.onNavigate;
5768
+ /** @type {?} */
5769
+ BsDaysCalendarViewComponent.prototype.onViewMode;
5770
+ /** @type {?} */
5771
+ BsDaysCalendarViewComponent.prototype.onSelect;
5772
+ /** @type {?} */
5773
+ BsDaysCalendarViewComponent.prototype.onHover;
5774
+ /** @type {?} */
5775
+ BsDaysCalendarViewComponent.prototype.onHoverWeek;
5776
+ /** @type {?} */
5777
+ BsDaysCalendarViewComponent.prototype.isWeekHovered;
5778
+ /**
5779
+ * @type {?}
5780
+ * @private
5781
+ */
5782
+ BsDaysCalendarViewComponent.prototype._config;
5783
+ }
4267
5784
 
4268
5785
  /**
4269
5786
  * @fileoverview added by tsickle
@@ -4339,6 +5856,18 @@ var BsMonthCalendarViewComponent = /** @class */ (function () {
4339
5856
  };
4340
5857
  return BsMonthCalendarViewComponent;
4341
5858
  }());
5859
+ if (false) {
5860
+ /** @type {?} */
5861
+ BsMonthCalendarViewComponent.prototype.calendar;
5862
+ /** @type {?} */
5863
+ BsMonthCalendarViewComponent.prototype.onNavigate;
5864
+ /** @type {?} */
5865
+ BsMonthCalendarViewComponent.prototype.onViewMode;
5866
+ /** @type {?} */
5867
+ BsMonthCalendarViewComponent.prototype.onSelect;
5868
+ /** @type {?} */
5869
+ BsMonthCalendarViewComponent.prototype.onHover;
5870
+ }
4342
5871
 
4343
5872
  /**
4344
5873
  * @fileoverview added by tsickle
@@ -4358,6 +5887,14 @@ var BsTimepickerViewComponent = /** @class */ (function () {
4358
5887
  ];
4359
5888
  return BsTimepickerViewComponent;
4360
5889
  }());
5890
+ if (false) {
5891
+ /** @type {?} */
5892
+ BsTimepickerViewComponent.prototype.ampm;
5893
+ /** @type {?} */
5894
+ BsTimepickerViewComponent.prototype.hours;
5895
+ /** @type {?} */
5896
+ BsTimepickerViewComponent.prototype.minutes;
5897
+ }
4361
5898
 
4362
5899
  /**
4363
5900
  * @fileoverview added by tsickle
@@ -4433,24 +5970,23 @@ var BsYearsCalendarViewComponent = /** @class */ (function () {
4433
5970
  };
4434
5971
  return BsYearsCalendarViewComponent;
4435
5972
  }());
5973
+ if (false) {
5974
+ /** @type {?} */
5975
+ BsYearsCalendarViewComponent.prototype.calendar;
5976
+ /** @type {?} */
5977
+ BsYearsCalendarViewComponent.prototype.onNavigate;
5978
+ /** @type {?} */
5979
+ BsYearsCalendarViewComponent.prototype.onViewMode;
5980
+ /** @type {?} */
5981
+ BsYearsCalendarViewComponent.prototype.onSelect;
5982
+ /** @type {?} */
5983
+ BsYearsCalendarViewComponent.prototype.onHover;
5984
+ }
4436
5985
 
4437
5986
  /**
4438
5987
  * @fileoverview added by tsickle
4439
5988
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4440
5989
  */
4441
- /** @type {?} */
4442
- var _exports = [
4443
- BsDatepickerContainerComponent,
4444
- BsDatepickerDirective,
4445
- BsDatepickerInlineContainerComponent,
4446
- BsDatepickerInlineDirective,
4447
- BsDatepickerInputDirective,
4448
- BsDaterangepickerContainerComponent,
4449
- BsDaterangepickerDirective,
4450
- BsDaterangepickerInlineContainerComponent,
4451
- BsDaterangepickerInlineDirective,
4452
- BsDaterangepickerInputDirective
4453
- ];
4454
5990
  var BsDatepickerModule = /** @class */ (function () {
4455
5991
  function BsDatepickerModule() {
4456
5992
  }
@@ -4480,7 +6016,7 @@ var BsDatepickerModule = /** @class */ (function () {
4480
6016
  BsDatepickerModule.decorators = [
4481
6017
  { type: NgModule, args: [{
4482
6018
  imports: [CommonModule],
4483
- declarations: __spread([
6019
+ declarations: [
4484
6020
  BsCalendarLayoutComponent,
4485
6021
  BsCurrentDateViewComponent,
4486
6022
  BsCustomDatesViewComponent,
@@ -4489,15 +6025,36 @@ var BsDatepickerModule = /** @class */ (function () {
4489
6025
  BsDaysCalendarViewComponent,
4490
6026
  BsMonthCalendarViewComponent,
4491
6027
  BsTimepickerViewComponent,
4492
- BsYearsCalendarViewComponent
4493
- ], _exports),
6028
+ BsYearsCalendarViewComponent,
6029
+ BsDatepickerContainerComponent,
6030
+ BsDatepickerDirective,
6031
+ BsDatepickerInlineContainerComponent,
6032
+ BsDatepickerInlineDirective,
6033
+ BsDatepickerInputDirective,
6034
+ BsDaterangepickerContainerComponent,
6035
+ BsDaterangepickerDirective,
6036
+ BsDaterangepickerInlineContainerComponent,
6037
+ BsDaterangepickerInlineDirective,
6038
+ BsDaterangepickerInputDirective
6039
+ ],
4494
6040
  entryComponents: [
4495
6041
  BsDatepickerContainerComponent,
4496
6042
  BsDaterangepickerContainerComponent,
4497
6043
  BsDatepickerInlineContainerComponent,
4498
6044
  BsDaterangepickerInlineContainerComponent
4499
6045
  ],
4500
- exports: _exports
6046
+ exports: [
6047
+ BsDatepickerContainerComponent,
6048
+ BsDatepickerDirective,
6049
+ BsDatepickerInlineContainerComponent,
6050
+ BsDatepickerInlineDirective,
6051
+ BsDatepickerInputDirective,
6052
+ BsDaterangepickerContainerComponent,
6053
+ BsDaterangepickerDirective,
6054
+ BsDaterangepickerInlineContainerComponent,
6055
+ BsDaterangepickerInlineDirective,
6056
+ BsDaterangepickerInputDirective
6057
+ ]
4501
6058
  },] }
4502
6059
  ];
4503
6060
  return BsDatepickerModule;
@@ -5032,6 +6589,123 @@ var DatePickerInnerComponent = /** @class */ (function () {
5032
6589
  };
5033
6590
  return DatePickerInnerComponent;
5034
6591
  }());
6592
+ if (false) {
6593
+ /** @type {?} */
6594
+ DatePickerInnerComponent.prototype.locale;
6595
+ /** @type {?} */
6596
+ DatePickerInnerComponent.prototype.datepickerMode;
6597
+ /** @type {?} */
6598
+ DatePickerInnerComponent.prototype.startingDay;
6599
+ /** @type {?} */
6600
+ DatePickerInnerComponent.prototype.yearRange;
6601
+ /** @type {?} */
6602
+ DatePickerInnerComponent.prototype.minDate;
6603
+ /** @type {?} */
6604
+ DatePickerInnerComponent.prototype.maxDate;
6605
+ /** @type {?} */
6606
+ DatePickerInnerComponent.prototype.minMode;
6607
+ /** @type {?} */
6608
+ DatePickerInnerComponent.prototype.maxMode;
6609
+ /** @type {?} */
6610
+ DatePickerInnerComponent.prototype.showWeeks;
6611
+ /** @type {?} */
6612
+ DatePickerInnerComponent.prototype.formatDay;
6613
+ /** @type {?} */
6614
+ DatePickerInnerComponent.prototype.formatMonth;
6615
+ /** @type {?} */
6616
+ DatePickerInnerComponent.prototype.formatYear;
6617
+ /** @type {?} */
6618
+ DatePickerInnerComponent.prototype.formatDayHeader;
6619
+ /** @type {?} */
6620
+ DatePickerInnerComponent.prototype.formatDayTitle;
6621
+ /** @type {?} */
6622
+ DatePickerInnerComponent.prototype.formatMonthTitle;
6623
+ /** @type {?} */
6624
+ DatePickerInnerComponent.prototype.onlyCurrentMonth;
6625
+ /** @type {?} */
6626
+ DatePickerInnerComponent.prototype.shortcutPropagation;
6627
+ /** @type {?} */
6628
+ DatePickerInnerComponent.prototype.customClass;
6629
+ /** @type {?} */
6630
+ DatePickerInnerComponent.prototype.monthColLimit;
6631
+ /** @type {?} */
6632
+ DatePickerInnerComponent.prototype.yearColLimit;
6633
+ /** @type {?} */
6634
+ DatePickerInnerComponent.prototype.dateDisabled;
6635
+ /** @type {?} */
6636
+ DatePickerInnerComponent.prototype.dayDisabled;
6637
+ /** @type {?} */
6638
+ DatePickerInnerComponent.prototype.initDate;
6639
+ /** @type {?} */
6640
+ DatePickerInnerComponent.prototype.selectionDone;
6641
+ /** @type {?} */
6642
+ DatePickerInnerComponent.prototype.update;
6643
+ /** @type {?} */
6644
+ DatePickerInnerComponent.prototype.activeDateChange;
6645
+ /** @type {?} */
6646
+ DatePickerInnerComponent.prototype.stepDay;
6647
+ /** @type {?} */
6648
+ DatePickerInnerComponent.prototype.stepMonth;
6649
+ /** @type {?} */
6650
+ DatePickerInnerComponent.prototype.stepYear;
6651
+ /** @type {?} */
6652
+ DatePickerInnerComponent.prototype.uniqueId;
6653
+ /**
6654
+ * @type {?}
6655
+ * @protected
6656
+ */
6657
+ DatePickerInnerComponent.prototype.modes;
6658
+ /**
6659
+ * @type {?}
6660
+ * @protected
6661
+ */
6662
+ DatePickerInnerComponent.prototype.dateFormatter;
6663
+ /**
6664
+ * @type {?}
6665
+ * @protected
6666
+ */
6667
+ DatePickerInnerComponent.prototype._activeDate;
6668
+ /**
6669
+ * @type {?}
6670
+ * @protected
6671
+ */
6672
+ DatePickerInnerComponent.prototype.selectedDate;
6673
+ /**
6674
+ * @type {?}
6675
+ * @protected
6676
+ */
6677
+ DatePickerInnerComponent.prototype.activeDateId;
6678
+ /**
6679
+ * @type {?}
6680
+ * @protected
6681
+ */
6682
+ DatePickerInnerComponent.prototype.refreshViewHandlerDay;
6683
+ /**
6684
+ * @type {?}
6685
+ * @protected
6686
+ */
6687
+ DatePickerInnerComponent.prototype.compareHandlerDay;
6688
+ /**
6689
+ * @type {?}
6690
+ * @protected
6691
+ */
6692
+ DatePickerInnerComponent.prototype.refreshViewHandlerMonth;
6693
+ /**
6694
+ * @type {?}
6695
+ * @protected
6696
+ */
6697
+ DatePickerInnerComponent.prototype.compareHandlerMonth;
6698
+ /**
6699
+ * @type {?}
6700
+ * @protected
6701
+ */
6702
+ DatePickerInnerComponent.prototype.refreshViewHandlerYear;
6703
+ /**
6704
+ * @type {?}
6705
+ * @protected
6706
+ */
6707
+ DatePickerInnerComponent.prototype.compareHandlerYear;
6708
+ }
5035
6709
 
5036
6710
  /**
5037
6711
  * @fileoverview added by tsickle
@@ -5062,6 +6736,42 @@ var DatepickerConfig = /** @class */ (function () {
5062
6736
  ];
5063
6737
  return DatepickerConfig;
5064
6738
  }());
6739
+ if (false) {
6740
+ /** @type {?} */
6741
+ DatepickerConfig.prototype.locale;
6742
+ /** @type {?} */
6743
+ DatepickerConfig.prototype.datepickerMode;
6744
+ /** @type {?} */
6745
+ DatepickerConfig.prototype.startingDay;
6746
+ /** @type {?} */
6747
+ DatepickerConfig.prototype.yearRange;
6748
+ /** @type {?} */
6749
+ DatepickerConfig.prototype.minMode;
6750
+ /** @type {?} */
6751
+ DatepickerConfig.prototype.maxMode;
6752
+ /** @type {?} */
6753
+ DatepickerConfig.prototype.showWeeks;
6754
+ /** @type {?} */
6755
+ DatepickerConfig.prototype.formatDay;
6756
+ /** @type {?} */
6757
+ DatepickerConfig.prototype.formatMonth;
6758
+ /** @type {?} */
6759
+ DatepickerConfig.prototype.formatYear;
6760
+ /** @type {?} */
6761
+ DatepickerConfig.prototype.formatDayHeader;
6762
+ /** @type {?} */
6763
+ DatepickerConfig.prototype.formatDayTitle;
6764
+ /** @type {?} */
6765
+ DatepickerConfig.prototype.formatMonthTitle;
6766
+ /** @type {?} */
6767
+ DatepickerConfig.prototype.onlyCurrentMonth;
6768
+ /** @type {?} */
6769
+ DatepickerConfig.prototype.monthColLimit;
6770
+ /** @type {?} */
6771
+ DatepickerConfig.prototype.yearColLimit;
6772
+ /** @type {?} */
6773
+ DatepickerConfig.prototype.shortcutPropagation;
6774
+ }
5065
6775
 
5066
6776
  /**
5067
6777
  * @fileoverview added by tsickle
@@ -5252,6 +6962,143 @@ var DatePickerComponent = /** @class */ (function () {
5252
6962
  };
5253
6963
  return DatePickerComponent;
5254
6964
  }());
6965
+ if (false) {
6966
+ /**
6967
+ * sets datepicker mode, supports: `day`, `month`, `year`
6968
+ * @type {?}
6969
+ */
6970
+ DatePickerComponent.prototype.datepickerMode;
6971
+ /**
6972
+ * default date to show if `ng-model` value is not specified
6973
+ * @type {?}
6974
+ */
6975
+ DatePickerComponent.prototype.initDate;
6976
+ /**
6977
+ * oldest selectable date
6978
+ * @type {?}
6979
+ */
6980
+ DatePickerComponent.prototype.minDate;
6981
+ /**
6982
+ * latest selectable date
6983
+ * @type {?}
6984
+ */
6985
+ DatePickerComponent.prototype.maxDate;
6986
+ /**
6987
+ * set lower datepicker mode, supports: `day`, `month`, `year`
6988
+ * @type {?}
6989
+ */
6990
+ DatePickerComponent.prototype.minMode;
6991
+ /**
6992
+ * sets upper datepicker mode, supports: `day`, `month`, `year`
6993
+ * @type {?}
6994
+ */
6995
+ DatePickerComponent.prototype.maxMode;
6996
+ /**
6997
+ * if false week numbers will be hidden
6998
+ * @type {?}
6999
+ */
7000
+ DatePickerComponent.prototype.showWeeks;
7001
+ /**
7002
+ * format of day in month
7003
+ * @type {?}
7004
+ */
7005
+ DatePickerComponent.prototype.formatDay;
7006
+ /**
7007
+ * format of month in year
7008
+ * @type {?}
7009
+ */
7010
+ DatePickerComponent.prototype.formatMonth;
7011
+ /**
7012
+ * format of year in year range
7013
+ * @type {?}
7014
+ */
7015
+ DatePickerComponent.prototype.formatYear;
7016
+ /**
7017
+ * format of day in week header
7018
+ * @type {?}
7019
+ */
7020
+ DatePickerComponent.prototype.formatDayHeader;
7021
+ /**
7022
+ * format of title when selecting day
7023
+ * @type {?}
7024
+ */
7025
+ DatePickerComponent.prototype.formatDayTitle;
7026
+ /**
7027
+ * format of title when selecting month
7028
+ * @type {?}
7029
+ */
7030
+ DatePickerComponent.prototype.formatMonthTitle;
7031
+ /**
7032
+ * starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday)
7033
+ * @type {?}
7034
+ */
7035
+ DatePickerComponent.prototype.startingDay;
7036
+ /**
7037
+ * number of years displayed in year selection
7038
+ * @type {?}
7039
+ */
7040
+ DatePickerComponent.prototype.yearRange;
7041
+ /**
7042
+ * if true only dates from the currently displayed month will be shown
7043
+ * @type {?}
7044
+ */
7045
+ DatePickerComponent.prototype.onlyCurrentMonth;
7046
+ /**
7047
+ * if true shortcut`s event propagation will be disabled
7048
+ * @type {?}
7049
+ */
7050
+ DatePickerComponent.prototype.shortcutPropagation;
7051
+ /**
7052
+ * number of months displayed in a single row of month picker
7053
+ * @type {?}
7054
+ */
7055
+ DatePickerComponent.prototype.monthColLimit;
7056
+ /**
7057
+ * number of years displayed in a single row of year picker
7058
+ * @type {?}
7059
+ */
7060
+ DatePickerComponent.prototype.yearColLimit;
7061
+ /**
7062
+ * array of custom css classes to be applied to targeted dates
7063
+ * @type {?}
7064
+ */
7065
+ DatePickerComponent.prototype.customClass;
7066
+ /**
7067
+ * array of disabled dates
7068
+ * @type {?}
7069
+ */
7070
+ DatePickerComponent.prototype.dateDisabled;
7071
+ /**
7072
+ * disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday)
7073
+ * @type {?}
7074
+ */
7075
+ DatePickerComponent.prototype.dayDisabled;
7076
+ /** @type {?} */
7077
+ DatePickerComponent.prototype.selectionDone;
7078
+ /**
7079
+ * callback to invoke when the activeDate is changed.
7080
+ * @type {?}
7081
+ */
7082
+ DatePickerComponent.prototype.activeDateChange;
7083
+ /** @type {?} */
7084
+ DatePickerComponent.prototype._datePicker;
7085
+ /** @type {?} */
7086
+ DatePickerComponent.prototype.onChange;
7087
+ /** @type {?} */
7088
+ DatePickerComponent.prototype.onTouched;
7089
+ /** @type {?} */
7090
+ DatePickerComponent.prototype.config;
7091
+ /**
7092
+ * @type {?}
7093
+ * @protected
7094
+ */
7095
+ DatePickerComponent.prototype._now;
7096
+ /**
7097
+ * @type {?}
7098
+ * @protected
7099
+ */
7100
+ DatePickerComponent.prototype._activeDate;
7101
+ }
5255
7102
 
5256
7103
  /**
5257
7104
  * @fileoverview added by tsickle
@@ -5424,6 +7271,18 @@ var DayPickerComponent = /** @class */ (function () {
5424
7271
  ]; };
5425
7272
  return DayPickerComponent;
5426
7273
  }());
7274
+ if (false) {
7275
+ /** @type {?} */
7276
+ DayPickerComponent.prototype.labels;
7277
+ /** @type {?} */
7278
+ DayPickerComponent.prototype.title;
7279
+ /** @type {?} */
7280
+ DayPickerComponent.prototype.rows;
7281
+ /** @type {?} */
7282
+ DayPickerComponent.prototype.weekNumbers;
7283
+ /** @type {?} */
7284
+ DayPickerComponent.prototype.datePicker;
7285
+ }
5427
7286
 
5428
7287
  /**
5429
7288
  * @fileoverview added by tsickle
@@ -5500,6 +7359,16 @@ var MonthPickerComponent = /** @class */ (function () {
5500
7359
  ]; };
5501
7360
  return MonthPickerComponent;
5502
7361
  }());
7362
+ if (false) {
7363
+ /** @type {?} */
7364
+ MonthPickerComponent.prototype.title;
7365
+ /** @type {?} */
7366
+ MonthPickerComponent.prototype.rows;
7367
+ /** @type {?} */
7368
+ MonthPickerComponent.prototype.datePicker;
7369
+ /** @type {?} */
7370
+ MonthPickerComponent.prototype.maxMode;
7371
+ }
5503
7372
 
5504
7373
  /**
5505
7374
  * @fileoverview added by tsickle
@@ -5586,6 +7455,14 @@ var YearPickerComponent = /** @class */ (function () {
5586
7455
  ]; };
5587
7456
  return YearPickerComponent;
5588
7457
  }());
7458
+ if (false) {
7459
+ /** @type {?} */
7460
+ YearPickerComponent.prototype.datePicker;
7461
+ /** @type {?} */
7462
+ YearPickerComponent.prototype.title;
7463
+ /** @type {?} */
7464
+ YearPickerComponent.prototype.rows;
7465
+ }
5589
7466
 
5590
7467
  /**
5591
7468
  * @fileoverview added by tsickle
@@ -5626,5 +7503,15 @@ var DatepickerModule = /** @class */ (function () {
5626
7503
  return DatepickerModule;
5627
7504
  }());
5628
7505
 
7506
+ /**
7507
+ * @fileoverview added by tsickle
7508
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7509
+ */
7510
+
7511
+ /**
7512
+ * @fileoverview added by tsickle
7513
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7514
+ */
7515
+
5629
7516
  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 };
5630
7517
  //# sourceMappingURL=ngx-bootstrap-datepicker.js.map