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
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/operators'), require('ngx-bootstrap/chronos'), require('rxjs'), require('ngx-bootstrap/mini-ngrx'), require('ngx-bootstrap/positioning'), require('@angular/animations'), require('ngx-bootstrap/component-loader'), require('@angular/forms'), require('@angular/common'), require('ngx-bootstrap/utils')) :
3
3
  typeof define === 'function' && define.amd ? define('ngx-bootstrap/datepicker', ['exports', '@angular/core', 'rxjs/operators', 'ngx-bootstrap/chronos', 'rxjs', 'ngx-bootstrap/mini-ngrx', 'ngx-bootstrap/positioning', '@angular/animations', 'ngx-bootstrap/component-loader', '@angular/forms', '@angular/common', 'ngx-bootstrap/utils'], factory) :
4
4
  (global = global || self, factory((global['ngx-bootstrap'] = global['ngx-bootstrap'] || {}, global['ngx-bootstrap'].datepicker = {}), global.ng.core, global.rxjs.operators, global.chronos, global.rxjs, global.miniNgrx, global.positioning, global.ng.animations, global.componentLoader, global.ng.forms, global.ng.common, global.utils));
5
- }(this, function (exports, core, operators, chronos, rxjs, miniNgrx, positioning, animations, componentLoader, forms, common, utils) { 'use strict';
5
+ }(this, (function (exports, core, operators, chronos, rxjs, miniNgrx, positioning, animations, componentLoader, forms, common, utils) { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
8
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -33,6 +33,83 @@
33
33
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34
34
  }
35
35
 
36
+ var __assign = function() {
37
+ __assign = Object.assign || function __assign(t) {
38
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
39
+ s = arguments[i];
40
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
41
+ }
42
+ return t;
43
+ };
44
+ return __assign.apply(this, arguments);
45
+ };
46
+
47
+ function __rest(s, e) {
48
+ var t = {};
49
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
50
+ t[p] = s[p];
51
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
52
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
53
+ t[p[i]] = s[p[i]];
54
+ return t;
55
+ }
56
+
57
+ function __decorate(decorators, target, key, desc) {
58
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
59
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
60
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
61
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
62
+ }
63
+
64
+ function __param(paramIndex, decorator) {
65
+ return function (target, key) { decorator(target, key, paramIndex); }
66
+ }
67
+
68
+ function __metadata(metadataKey, metadataValue) {
69
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
70
+ }
71
+
72
+ function __awaiter(thisArg, _arguments, P, generator) {
73
+ return new (P || (P = Promise))(function (resolve, reject) {
74
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
75
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
76
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
77
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
78
+ });
79
+ }
80
+
81
+ function __generator(thisArg, body) {
82
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
83
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
84
+ function verb(n) { return function (v) { return step([n, v]); }; }
85
+ function step(op) {
86
+ if (f) throw new TypeError("Generator is already executing.");
87
+ while (_) try {
88
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
89
+ if (y = 0, t) op = [op[0] & 2, t.value];
90
+ switch (op[0]) {
91
+ case 0: case 1: t = op; break;
92
+ case 4: _.label++; return { value: op[1], done: false };
93
+ case 5: _.label++; y = op[1]; op = [0]; continue;
94
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
95
+ default:
96
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
97
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
98
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
99
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
100
+ if (t[2]) _.ops.pop();
101
+ _.trys.pop(); continue;
102
+ }
103
+ op = body.call(thisArg, _);
104
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
105
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
106
+ }
107
+ }
108
+
109
+ function __exportStar(m, exports) {
110
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
111
+ }
112
+
36
113
  function __values(o) {
37
114
  var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
38
115
  if (m) return m.call(o);
@@ -65,6 +142,53 @@
65
142
  for (var ar = [], i = 0; i < arguments.length; i++)
66
143
  ar = ar.concat(__read(arguments[i]));
67
144
  return ar;
145
+ }
146
+
147
+ function __await(v) {
148
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
149
+ }
150
+
151
+ function __asyncGenerator(thisArg, _arguments, generator) {
152
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
153
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
154
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
155
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
156
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
157
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
158
+ function fulfill(value) { resume("next", value); }
159
+ function reject(value) { resume("throw", value); }
160
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
161
+ }
162
+
163
+ function __asyncDelegator(o) {
164
+ var i, p;
165
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
166
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
167
+ }
168
+
169
+ function __asyncValues(o) {
170
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
171
+ var m = o[Symbol.asyncIterator], i;
172
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
173
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
174
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
175
+ }
176
+
177
+ function __makeTemplateObject(cooked, raw) {
178
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
179
+ return cooked;
180
+ };
181
+
182
+ function __importStar(mod) {
183
+ if (mod && mod.__esModule) return mod;
184
+ var result = {};
185
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
186
+ result.default = mod;
187
+ return result;
188
+ }
189
+
190
+ function __importDefault(mod) {
191
+ return (mod && mod.__esModule) ? mod : { default: mod };
68
192
  }
69
193
 
70
194
  /**
@@ -89,6 +213,10 @@
89
213
  * turn on/off animation
90
214
  */
91
215
  this.isAnimated = false;
216
+ /**
217
+ * If true, returns focus to the datepicker / daterangepicker input after date selection
218
+ */
219
+ this.returnFocusToInput = false;
92
220
  /**
93
221
  * CSS class which will be applied to datepicker container,
94
222
  * usually used to set color theme
@@ -120,6 +248,138 @@
120
248
  ];
121
249
  return BsDatepickerConfig;
122
250
  }());
251
+ if (false) {
252
+ /**
253
+ * sets use adaptive position
254
+ * @type {?}
255
+ */
256
+ BsDatepickerConfig.prototype.adaptivePosition;
257
+ /**
258
+ * sets use UTC date time format
259
+ * @type {?}
260
+ */
261
+ BsDatepickerConfig.prototype.useUtc;
262
+ /**
263
+ * turn on/off animation
264
+ * @type {?}
265
+ */
266
+ BsDatepickerConfig.prototype.isAnimated;
267
+ /** @type {?} */
268
+ BsDatepickerConfig.prototype.value;
269
+ /** @type {?} */
270
+ BsDatepickerConfig.prototype.isDisabled;
271
+ /**
272
+ * Default min date for all date/range pickers
273
+ * @type {?}
274
+ */
275
+ BsDatepickerConfig.prototype.minDate;
276
+ /**
277
+ * Default max date for all date/range pickers
278
+ * @type {?}
279
+ */
280
+ BsDatepickerConfig.prototype.maxDate;
281
+ /**
282
+ * Default date custom classes for all date/range pickers
283
+ * @type {?}
284
+ */
285
+ BsDatepickerConfig.prototype.dateCustomClasses;
286
+ /**
287
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
288
+ * @type {?}
289
+ */
290
+ BsDatepickerConfig.prototype.daysDisabled;
291
+ /**
292
+ * Disable specific dates
293
+ * @type {?}
294
+ */
295
+ BsDatepickerConfig.prototype.datesDisabled;
296
+ /**
297
+ * Show one months for special cases (only for dateRangePicker)
298
+ * 1. maxDate is equal to today's date
299
+ * 2. minDate's month is equal to maxDate's month
300
+ * @type {?}
301
+ */
302
+ BsDatepickerConfig.prototype.displayOneMonthRange;
303
+ /**
304
+ * Enable specific dates
305
+ * @type {?}
306
+ */
307
+ BsDatepickerConfig.prototype.datesEnabled;
308
+ /**
309
+ * Makes dates from other months active
310
+ * @type {?}
311
+ */
312
+ BsDatepickerConfig.prototype.selectFromOtherMonth;
313
+ /**
314
+ * Allows select first date of the week by click on week number
315
+ * @type {?}
316
+ */
317
+ BsDatepickerConfig.prototype.selectWeek;
318
+ /**
319
+ * Allows select daterange as first and last day of week by click on week number (dateRangePicker only)
320
+ * @type {?}
321
+ */
322
+ BsDatepickerConfig.prototype.selectWeekDateRange;
323
+ /**
324
+ * Shows previous and current month, instead of current and next (dateRangePicker only)
325
+ * @type {?}
326
+ */
327
+ BsDatepickerConfig.prototype.showPreviousMonth;
328
+ /**
329
+ * Add class to current day
330
+ * @type {?}
331
+ */
332
+ BsDatepickerConfig.prototype.customTodayClass;
333
+ /**
334
+ * Default mode for all date pickers
335
+ * @type {?}
336
+ */
337
+ BsDatepickerConfig.prototype.minMode;
338
+ /**
339
+ * If true, returns focus to the datepicker / daterangepicker input after date selection
340
+ * @type {?}
341
+ */
342
+ BsDatepickerConfig.prototype.returnFocusToInput;
343
+ /**
344
+ * CSS class which will be applied to datepicker container,
345
+ * usually used to set color theme
346
+ * @type {?}
347
+ */
348
+ BsDatepickerConfig.prototype.containerClass;
349
+ /** @type {?} */
350
+ BsDatepickerConfig.prototype.displayMonths;
351
+ /**
352
+ * Allows to hide week numbers in datepicker
353
+ * @type {?}
354
+ */
355
+ BsDatepickerConfig.prototype.showWeekNumbers;
356
+ /** @type {?} */
357
+ BsDatepickerConfig.prototype.dateInputFormat;
358
+ /** @type {?} */
359
+ BsDatepickerConfig.prototype.rangeSeparator;
360
+ /**
361
+ * Date format for date range input field
362
+ * @type {?}
363
+ */
364
+ BsDatepickerConfig.prototype.rangeInputFormat;
365
+ /**
366
+ * Predefined ranges
367
+ * @type {?}
368
+ */
369
+ BsDatepickerConfig.prototype.ranges;
370
+ /** @type {?} */
371
+ BsDatepickerConfig.prototype.monthTitle;
372
+ /** @type {?} */
373
+ BsDatepickerConfig.prototype.yearTitle;
374
+ /** @type {?} */
375
+ BsDatepickerConfig.prototype.dayLabel;
376
+ /** @type {?} */
377
+ BsDatepickerConfig.prototype.monthLabel;
378
+ /** @type {?} */
379
+ BsDatepickerConfig.prototype.yearLabel;
380
+ /** @type {?} */
381
+ BsDatepickerConfig.prototype.weekNumbers;
382
+ }
123
383
 
124
384
  /**
125
385
  * @fileoverview added by tsickle
@@ -133,7 +393,7 @@
133
393
  */
134
394
  BsDatepickerAbstractComponent = /** @class */ (function () {
135
395
  function BsDatepickerAbstractComponent() {
136
- this._customRangesFish = [];
396
+ this.customRanges = [];
137
397
  }
138
398
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "minDate", {
139
399
  set: /**
@@ -179,6 +439,17 @@
179
439
  enumerable: true,
180
440
  configurable: true
181
441
  });
442
+ Object.defineProperty(BsDatepickerAbstractComponent.prototype, "datesEnabled", {
443
+ set: /**
444
+ * @param {?} value
445
+ * @return {?}
446
+ */
447
+ function (value) {
448
+ this._effects.setDatesEnabled(value);
449
+ },
450
+ enumerable: true,
451
+ configurable: true
452
+ });
182
453
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "isDisabled", {
183
454
  set: /**
184
455
  * @param {?} value
@@ -298,6 +569,26 @@
298
569
  };
299
570
  return BsDatepickerAbstractComponent;
300
571
  }());
572
+ if (false) {
573
+ /** @type {?} */
574
+ BsDatepickerAbstractComponent.prototype.containerClass;
575
+ /** @type {?} */
576
+ BsDatepickerAbstractComponent.prototype.isOtherMonthsActive;
577
+ /** @type {?} */
578
+ BsDatepickerAbstractComponent.prototype._effects;
579
+ /** @type {?} */
580
+ BsDatepickerAbstractComponent.prototype.customRanges;
581
+ /** @type {?} */
582
+ BsDatepickerAbstractComponent.prototype.viewMode;
583
+ /** @type {?} */
584
+ BsDatepickerAbstractComponent.prototype.daysCalendar;
585
+ /** @type {?} */
586
+ BsDatepickerAbstractComponent.prototype.monthsCalendar;
587
+ /** @type {?} */
588
+ BsDatepickerAbstractComponent.prototype.yearsCalendar;
589
+ /** @type {?} */
590
+ BsDatepickerAbstractComponent.prototype.options;
591
+ }
301
592
 
302
593
  /**
303
594
  * @fileoverview added by tsickle
@@ -491,6 +782,20 @@
491
782
  payload: dates
492
783
  };
493
784
  };
785
+ /**
786
+ * @param {?} dates
787
+ * @return {?}
788
+ */
789
+ BsDatepickerActions.prototype.datesEnabled = /**
790
+ * @param {?} dates
791
+ * @return {?}
792
+ */
793
+ function (dates) {
794
+ return {
795
+ type: BsDatepickerActions.SET_DATESENABLED,
796
+ payload: dates
797
+ };
798
+ };
494
799
  /**
495
800
  * @param {?} value
496
801
  * @return {?}
@@ -546,6 +851,7 @@
546
851
  BsDatepickerActions.SET_MAX_DATE = '[datepicker] set max date';
547
852
  BsDatepickerActions.SET_DAYSDISABLED = '[datepicker] set days disabled';
548
853
  BsDatepickerActions.SET_DATESDISABLED = '[datepicker] set dates disabled';
854
+ BsDatepickerActions.SET_DATESENABLED = '[datepicker] set dates enabled';
549
855
  BsDatepickerActions.SET_IS_DISABLED = '[datepicker] set is disabled';
550
856
  BsDatepickerActions.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';
551
857
  BsDatepickerActions.SET_LOCALE = '[datepicker] set datepicker locale';
@@ -555,6 +861,44 @@
555
861
  ];
556
862
  return BsDatepickerActions;
557
863
  }());
864
+ if (false) {
865
+ /** @type {?} */
866
+ BsDatepickerActions.CALCULATE;
867
+ /** @type {?} */
868
+ BsDatepickerActions.FORMAT;
869
+ /** @type {?} */
870
+ BsDatepickerActions.FLAG;
871
+ /** @type {?} */
872
+ BsDatepickerActions.SELECT;
873
+ /** @type {?} */
874
+ BsDatepickerActions.NAVIGATE_OFFSET;
875
+ /** @type {?} */
876
+ BsDatepickerActions.NAVIGATE_TO;
877
+ /** @type {?} */
878
+ BsDatepickerActions.SET_OPTIONS;
879
+ /** @type {?} */
880
+ BsDatepickerActions.HOVER;
881
+ /** @type {?} */
882
+ BsDatepickerActions.CHANGE_VIEWMODE;
883
+ /** @type {?} */
884
+ BsDatepickerActions.SET_MIN_DATE;
885
+ /** @type {?} */
886
+ BsDatepickerActions.SET_MAX_DATE;
887
+ /** @type {?} */
888
+ BsDatepickerActions.SET_DAYSDISABLED;
889
+ /** @type {?} */
890
+ BsDatepickerActions.SET_DATESDISABLED;
891
+ /** @type {?} */
892
+ BsDatepickerActions.SET_DATESENABLED;
893
+ /** @type {?} */
894
+ BsDatepickerActions.SET_IS_DISABLED;
895
+ /** @type {?} */
896
+ BsDatepickerActions.SET_DATE_CUSTOM_CLASSES;
897
+ /** @type {?} */
898
+ BsDatepickerActions.SET_LOCALE;
899
+ /** @type {?} */
900
+ BsDatepickerActions.SELECT_RANGE;
901
+ }
558
902
 
559
903
  /**
560
904
  * @fileoverview added by tsickle
@@ -615,6 +959,23 @@
615
959
  ];
616
960
  return BsLocaleService;
617
961
  }());
962
+ if (false) {
963
+ /**
964
+ * @type {?}
965
+ * @private
966
+ */
967
+ BsLocaleService.prototype._defaultLocale;
968
+ /**
969
+ * @type {?}
970
+ * @private
971
+ */
972
+ BsLocaleService.prototype._locale;
973
+ /**
974
+ * @type {?}
975
+ * @private
976
+ */
977
+ BsLocaleService.prototype._localeChange;
978
+ }
618
979
 
619
980
  /**
620
981
  * @fileoverview added by tsickle
@@ -688,36 +1049,40 @@
688
1049
  return this;
689
1050
  };
690
1051
  /**
691
- * @template THIS
692
- * @this {THIS}
693
1052
  * @param {?} value
694
- * @return {THIS}
1053
+ * @return {?}
695
1054
  */
696
1055
  BsDatepickerEffects.prototype.setDaysDisabled = /**
697
- * @template THIS
698
- * @this {THIS}
699
1056
  * @param {?} value
700
- * @return {THIS}
1057
+ * @return {?}
701
1058
  */
702
1059
  function (value) {
703
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.daysDisabled(value));
704
- return (/** @type {?} */ (this));
1060
+ this._store.dispatch(this._actions.daysDisabled(value));
1061
+ return this;
705
1062
  };
706
1063
  /**
707
- * @template THIS
708
- * @this {THIS}
709
1064
  * @param {?} value
710
- * @return {THIS}
1065
+ * @return {?}
711
1066
  */
712
1067
  BsDatepickerEffects.prototype.setDatesDisabled = /**
713
- * @template THIS
714
- * @this {THIS}
715
1068
  * @param {?} value
716
- * @return {THIS}
1069
+ * @return {?}
1070
+ */
1071
+ function (value) {
1072
+ this._store.dispatch(this._actions.datesDisabled(value));
1073
+ return this;
1074
+ };
1075
+ /**
1076
+ * @param {?} value
1077
+ * @return {?}
1078
+ */
1079
+ BsDatepickerEffects.prototype.setDatesEnabled = /**
1080
+ * @param {?} value
1081
+ * @return {?}
717
1082
  */
718
1083
  function (value) {
719
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.datesDisabled(value));
720
- return (/** @type {?} */ (this));
1084
+ this._store.dispatch(this._actions.datesEnabled(value));
1085
+ return this;
721
1086
  };
722
1087
  /**
723
1088
  * @param {?} value
@@ -1101,6 +1466,38 @@
1101
1466
  ]; };
1102
1467
  return BsDatepickerEffects;
1103
1468
  }());
1469
+ if (false) {
1470
+ /** @type {?} */
1471
+ BsDatepickerEffects.prototype.viewMode;
1472
+ /** @type {?} */
1473
+ BsDatepickerEffects.prototype.daysCalendar;
1474
+ /** @type {?} */
1475
+ BsDatepickerEffects.prototype.monthsCalendar;
1476
+ /** @type {?} */
1477
+ BsDatepickerEffects.prototype.yearsCalendar;
1478
+ /** @type {?} */
1479
+ BsDatepickerEffects.prototype.options;
1480
+ /**
1481
+ * @type {?}
1482
+ * @private
1483
+ */
1484
+ BsDatepickerEffects.prototype._store;
1485
+ /**
1486
+ * @type {?}
1487
+ * @private
1488
+ */
1489
+ BsDatepickerEffects.prototype._subs;
1490
+ /**
1491
+ * @type {?}
1492
+ * @private
1493
+ */
1494
+ BsDatepickerEffects.prototype._actions;
1495
+ /**
1496
+ * @type {?}
1497
+ * @private
1498
+ */
1499
+ BsDatepickerEffects.prototype._localeService;
1500
+ }
1104
1501
 
1105
1502
  /**
1106
1503
  * @fileoverview added by tsickle
@@ -1116,6 +1513,91 @@
1116
1513
  * @fileoverview added by tsickle
1117
1514
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1118
1515
  */
1516
+ /**
1517
+ * @record
1518
+ */
1519
+ function BsDatepickerViewState() { }
1520
+ if (false) {
1521
+ /** @type {?} */
1522
+ BsDatepickerViewState.prototype.date;
1523
+ /** @type {?} */
1524
+ BsDatepickerViewState.prototype.mode;
1525
+ }
1526
+ var BsDatepickerState = /** @class */ (function () {
1527
+ function BsDatepickerState() {
1528
+ }
1529
+ return BsDatepickerState;
1530
+ }());
1531
+ if (false) {
1532
+ /** @type {?} */
1533
+ BsDatepickerState.prototype.selectedDate;
1534
+ /** @type {?} */
1535
+ BsDatepickerState.prototype.selectedRange;
1536
+ /** @type {?} */
1537
+ BsDatepickerState.prototype.view;
1538
+ /** @type {?} */
1539
+ BsDatepickerState.prototype.isDisabled;
1540
+ /** @type {?} */
1541
+ BsDatepickerState.prototype.minDate;
1542
+ /** @type {?} */
1543
+ BsDatepickerState.prototype.maxDate;
1544
+ /** @type {?} */
1545
+ BsDatepickerState.prototype.daysDisabled;
1546
+ /** @type {?} */
1547
+ BsDatepickerState.prototype.datesDisabled;
1548
+ /** @type {?} */
1549
+ BsDatepickerState.prototype.datesEnabled;
1550
+ /** @type {?} */
1551
+ BsDatepickerState.prototype.minMode;
1552
+ /** @type {?} */
1553
+ BsDatepickerState.prototype.dateCustomClasses;
1554
+ /** @type {?} */
1555
+ BsDatepickerState.prototype.hoveredDate;
1556
+ /** @type {?} */
1557
+ BsDatepickerState.prototype.hoveredMonth;
1558
+ /** @type {?} */
1559
+ BsDatepickerState.prototype.hoveredYear;
1560
+ /** @type {?} */
1561
+ BsDatepickerState.prototype.monthsModel;
1562
+ /** @type {?} */
1563
+ BsDatepickerState.prototype.formattedMonths;
1564
+ /** @type {?} */
1565
+ BsDatepickerState.prototype.flaggedMonths;
1566
+ /** @type {?} */
1567
+ BsDatepickerState.prototype.selectFromOtherMonth;
1568
+ /** @type {?} */
1569
+ BsDatepickerState.prototype.showPreviousMonth;
1570
+ /** @type {?} */
1571
+ BsDatepickerState.prototype.displayOneMonthRange;
1572
+ /** @type {?} */
1573
+ BsDatepickerState.prototype.monthsCalendar;
1574
+ /** @type {?} */
1575
+ BsDatepickerState.prototype.flaggedMonthsCalendar;
1576
+ /** @type {?} */
1577
+ BsDatepickerState.prototype.yearsCalendarModel;
1578
+ /** @type {?} */
1579
+ BsDatepickerState.prototype.yearsCalendarFlagged;
1580
+ /** @type {?} */
1581
+ BsDatepickerState.prototype.monthViewOptions;
1582
+ /** @type {?} */
1583
+ BsDatepickerState.prototype.showWeekNumbers;
1584
+ /** @type {?} */
1585
+ BsDatepickerState.prototype.displayMonths;
1586
+ /** @type {?} */
1587
+ BsDatepickerState.prototype.locale;
1588
+ /** @type {?} */
1589
+ BsDatepickerState.prototype.monthTitle;
1590
+ /** @type {?} */
1591
+ BsDatepickerState.prototype.yearTitle;
1592
+ /** @type {?} */
1593
+ BsDatepickerState.prototype.dayLabel;
1594
+ /** @type {?} */
1595
+ BsDatepickerState.prototype.monthLabel;
1596
+ /** @type {?} */
1597
+ BsDatepickerState.prototype.yearLabel;
1598
+ /** @type {?} */
1599
+ BsDatepickerState.prototype.weekNumbers;
1600
+ }
1119
1601
  /** @type {?} */
1120
1602
  var _initialView = { date: new Date(), mode: 'day' };
1121
1603
  /** @type {?} */
@@ -1190,7 +1672,7 @@
1190
1672
  * @return {?}
1191
1673
  */
1192
1674
  function isDisabledDate(date, datesDisabled) {
1193
- if (datesDisabled === undefined || !datesDisabled || !datesDisabled.length) {
1675
+ if (!datesDisabled || !chronos.isArray(datesDisabled) || !datesDisabled.length) {
1194
1676
  return false;
1195
1677
  }
1196
1678
  return datesDisabled.some((/**
@@ -1199,6 +1681,21 @@
1199
1681
  */
1200
1682
  function (dateDisabled) { return chronos.isSame(date, dateDisabled, 'date'); }));
1201
1683
  }
1684
+ /**
1685
+ * @param {?} date
1686
+ * @param {?} datesEnabled
1687
+ * @return {?}
1688
+ */
1689
+ function isEnabledDate(date, datesEnabled) {
1690
+ if (!datesEnabled || !chronos.isArray(datesEnabled) || !datesEnabled.length) {
1691
+ return false;
1692
+ }
1693
+ return !datesEnabled.some((/**
1694
+ * @param {?} enabledDate
1695
+ * @return {?}
1696
+ */
1697
+ function (enabledDate) { return chronos.isSame(date, enabledDate, 'date'); }));
1698
+ }
1202
1699
  /**
1203
1700
  * @param {?} state
1204
1701
  * @param {?=} calendarIndex
@@ -1215,6 +1712,20 @@
1215
1712
  * @fileoverview added by tsickle
1216
1713
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1217
1714
  */
1715
+ /**
1716
+ * @record
1717
+ */
1718
+ function MatrixOptions() { }
1719
+ if (false) {
1720
+ /** @type {?} */
1721
+ MatrixOptions.prototype.height;
1722
+ /** @type {?} */
1723
+ MatrixOptions.prototype.width;
1724
+ /** @type {?} */
1725
+ MatrixOptions.prototype.initialDate;
1726
+ /** @type {?} */
1727
+ MatrixOptions.prototype.shift;
1728
+ }
1218
1729
  /**
1219
1730
  * @template T
1220
1731
  * @param {?} options
@@ -1338,6 +1849,36 @@
1338
1849
  * @fileoverview added by tsickle
1339
1850
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1340
1851
  */
1852
+ /**
1853
+ * @record
1854
+ */
1855
+ function FlagDaysCalendarOptions() { }
1856
+ if (false) {
1857
+ /** @type {?} */
1858
+ FlagDaysCalendarOptions.prototype.isDisabled;
1859
+ /** @type {?} */
1860
+ FlagDaysCalendarOptions.prototype.minDate;
1861
+ /** @type {?} */
1862
+ FlagDaysCalendarOptions.prototype.maxDate;
1863
+ /** @type {?} */
1864
+ FlagDaysCalendarOptions.prototype.daysDisabled;
1865
+ /** @type {?} */
1866
+ FlagDaysCalendarOptions.prototype.datesDisabled;
1867
+ /** @type {?} */
1868
+ FlagDaysCalendarOptions.prototype.datesEnabled;
1869
+ /** @type {?} */
1870
+ FlagDaysCalendarOptions.prototype.hoveredDate;
1871
+ /** @type {?} */
1872
+ FlagDaysCalendarOptions.prototype.selectedDate;
1873
+ /** @type {?} */
1874
+ FlagDaysCalendarOptions.prototype.selectedRange;
1875
+ /** @type {?} */
1876
+ FlagDaysCalendarOptions.prototype.displayMonths;
1877
+ /** @type {?} */
1878
+ FlagDaysCalendarOptions.prototype.monthIndex;
1879
+ /** @type {?} */
1880
+ FlagDaysCalendarOptions.prototype.dateCustomClasses;
1881
+ }
1341
1882
  /**
1342
1883
  * @param {?} formattedMonth
1343
1884
  * @param {?} options
@@ -1383,7 +1924,8 @@
1383
1924
  chronos.isBefore(day.date, options.minDate, 'day') ||
1384
1925
  chronos.isAfter(day.date, options.maxDate, 'day') ||
1385
1926
  chronos.isDisabledDay(day.date, options.daysDisabled) ||
1386
- isDisabledDate(day.date, options.datesDisabled);
1927
+ isDisabledDate(day.date, options.datesDisabled) ||
1928
+ isEnabledDate(day.date, options.datesEnabled);
1387
1929
  /** @type {?} */
1388
1930
  var currentDate = new Date();
1389
1931
  /** @type {?} */
@@ -1513,14 +2055,34 @@
1513
2055
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1514
2056
  */
1515
2057
  /**
1516
- * @param {?} monthCalendar
1517
- * @param {?} options
1518
- * @return {?}
2058
+ * @record
1519
2059
  */
1520
- function flagMonthsCalendar(monthCalendar, options) {
1521
- monthCalendar.months.forEach((/**
1522
- * @param {?} months
1523
- * @param {?} rowIndex
2060
+ function FlagMonthCalendarOptions() { }
2061
+ if (false) {
2062
+ /** @type {?} */
2063
+ FlagMonthCalendarOptions.prototype.isDisabled;
2064
+ /** @type {?} */
2065
+ FlagMonthCalendarOptions.prototype.minDate;
2066
+ /** @type {?} */
2067
+ FlagMonthCalendarOptions.prototype.maxDate;
2068
+ /** @type {?} */
2069
+ FlagMonthCalendarOptions.prototype.hoveredMonth;
2070
+ /** @type {?} */
2071
+ FlagMonthCalendarOptions.prototype.selectedDate;
2072
+ /** @type {?} */
2073
+ FlagMonthCalendarOptions.prototype.displayMonths;
2074
+ /** @type {?} */
2075
+ FlagMonthCalendarOptions.prototype.monthIndex;
2076
+ }
2077
+ /**
2078
+ * @param {?} monthCalendar
2079
+ * @param {?} options
2080
+ * @return {?}
2081
+ */
2082
+ function flagMonthsCalendar(monthCalendar, options) {
2083
+ monthCalendar.months.forEach((/**
2084
+ * @param {?} months
2085
+ * @param {?} rowIndex
1524
2086
  * @return {?}
1525
2087
  */
1526
2088
  function (months, rowIndex) {
@@ -1633,6 +2195,26 @@
1633
2195
  * @fileoverview added by tsickle
1634
2196
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1635
2197
  */
2198
+ /**
2199
+ * @record
2200
+ */
2201
+ function FlagYearsCalendarOptions() { }
2202
+ if (false) {
2203
+ /** @type {?} */
2204
+ FlagYearsCalendarOptions.prototype.isDisabled;
2205
+ /** @type {?} */
2206
+ FlagYearsCalendarOptions.prototype.minDate;
2207
+ /** @type {?} */
2208
+ FlagYearsCalendarOptions.prototype.maxDate;
2209
+ /** @type {?} */
2210
+ FlagYearsCalendarOptions.prototype.hoveredYear;
2211
+ /** @type {?} */
2212
+ FlagYearsCalendarOptions.prototype.selectedDate;
2213
+ /** @type {?} */
2214
+ FlagYearsCalendarOptions.prototype.displayMonths;
2215
+ /** @type {?} */
2216
+ FlagYearsCalendarOptions.prototype.yearIndex;
2217
+ }
1636
2218
  /**
1637
2219
  * @param {?} yearsCalendar
1638
2220
  * @param {?} options
@@ -1699,10 +2281,10 @@
1699
2281
  return calculateReducer(state);
1700
2282
  }
1701
2283
  case BsDatepickerActions.FORMAT: {
1702
- return formatReducer(state);
2284
+ return formatReducer(state, action);
1703
2285
  }
1704
2286
  case BsDatepickerActions.FLAG: {
1705
- return flagReducer(state);
2287
+ return flagReducer(state, action);
1706
2288
  }
1707
2289
  case BsDatepickerActions.NAVIGATE_OFFSET: {
1708
2290
  return navigateOffsetReducer(state, action);
@@ -1831,11 +2413,15 @@
1831
2413
  function calculateReducer(state) {
1832
2414
  // how many calendars
1833
2415
  /** @type {?} */
1834
- var displayMonths = state.displayMonths;
2416
+ var displayMonths = (state.displayOneMonthRange &&
2417
+ isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;
1835
2418
  // use selected date on initial rendering if set
1836
2419
  /** @type {?} */
1837
2420
  var viewDate = state.view.date;
1838
2421
  if (state.view.mode === 'day') {
2422
+ if (state.showPreviousMonth && state.selectedRange.length === 0) {
2423
+ viewDate = chronos.shiftDate(viewDate, { month: -1 });
2424
+ }
1839
2425
  state.monthViewOptions.firstDayOfWeek = chronos.getLocale(state.locale).firstDayOfWeek();
1840
2426
  /** @type {?} */
1841
2427
  var monthsModel = new Array(displayMonths);
@@ -1921,6 +2507,8 @@
1921
2507
  * @return {?}
1922
2508
  */
1923
2509
  function flagReducer(state, action) {
2510
+ /** @type {?} */
2511
+ var displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
1924
2512
  if (state.view.mode === 'day') {
1925
2513
  /** @type {?} */
1926
2514
  var flaggedMonths = state.formattedMonths.map((/**
@@ -1935,10 +2523,11 @@
1935
2523
  maxDate: state.maxDate,
1936
2524
  daysDisabled: state.daysDisabled,
1937
2525
  datesDisabled: state.datesDisabled,
2526
+ datesEnabled: state.datesEnabled,
1938
2527
  hoveredDate: state.hoveredDate,
1939
2528
  selectedDate: state.selectedDate,
1940
2529
  selectedRange: state.selectedRange,
1941
- displayMonths: state.displayMonths,
2530
+ displayMonths: displayMonths,
1942
2531
  dateCustomClasses: state.dateCustomClasses,
1943
2532
  monthIndex: monthIndex
1944
2533
  });
@@ -1959,7 +2548,7 @@
1959
2548
  maxDate: state.maxDate,
1960
2549
  hoveredMonth: state.hoveredMonth,
1961
2550
  selectedDate: state.selectedDate,
1962
- displayMonths: state.displayMonths,
2551
+ displayMonths: displayMonths,
1963
2552
  monthIndex: monthIndex
1964
2553
  });
1965
2554
  }));
@@ -1979,7 +2568,7 @@
1979
2568
  maxDate: state.maxDate,
1980
2569
  hoveredYear: state.hoveredYear,
1981
2570
  selectedDate: state.selectedDate,
1982
- displayMonths: state.displayMonths,
2571
+ displayMonths: displayMonths,
1983
2572
  yearIndex: yearIndex
1984
2573
  });
1985
2574
  }));
@@ -2053,6 +2642,21 @@
2053
2642
  }
2054
2643
  return _date;
2055
2644
  }
2645
+ /**
2646
+ * @param {?} viewDate
2647
+ * @param {?} minDate
2648
+ * @param {?} maxDate
2649
+ * @return {?}
2650
+ */
2651
+ function isDisplayOneMonth(viewDate, minDate, maxDate) {
2652
+ if (maxDate && chronos.isSame(maxDate, viewDate, 'day')) {
2653
+ return true;
2654
+ }
2655
+ if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {
2656
+ return true;
2657
+ }
2658
+ return false;
2659
+ }
2056
2660
 
2057
2661
  /**
2058
2662
  * @fileoverview added by tsickle
@@ -2212,6 +2816,9 @@
2212
2816
  * @return {?}
2213
2817
  */
2214
2818
  function (day) {
2819
+ if (!day) {
2820
+ return;
2821
+ }
2215
2822
  /** @type {?} */
2216
2823
  var isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2217
2824
  if (isDisabled) {
@@ -2246,7 +2853,7 @@
2246
2853
  { type: core.Component, args: [{
2247
2854
  selector: 'bs-datepicker-container',
2248
2855
  providers: [BsDatepickerStore, BsDatepickerEffects],
2249
- 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",
2856
+ template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view \n [selectedRange]=\"chosenRange\" \n [ranges]=\"customRanges\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
2250
2857
  host: {
2251
2858
  class: 'bottom',
2252
2859
  '(click)': '_stopPropagation($event)',
@@ -2268,6 +2875,39 @@
2268
2875
  ]; };
2269
2876
  return BsDatepickerContainerComponent;
2270
2877
  }(BsDatepickerAbstractComponent));
2878
+ if (false) {
2879
+ /** @type {?} */
2880
+ BsDatepickerContainerComponent.prototype.valueChange;
2881
+ /** @type {?} */
2882
+ BsDatepickerContainerComponent.prototype.animationState;
2883
+ /** @type {?} */
2884
+ BsDatepickerContainerComponent.prototype._subs;
2885
+ /**
2886
+ * @type {?}
2887
+ * @private
2888
+ */
2889
+ BsDatepickerContainerComponent.prototype._config;
2890
+ /**
2891
+ * @type {?}
2892
+ * @private
2893
+ */
2894
+ BsDatepickerContainerComponent.prototype._store;
2895
+ /**
2896
+ * @type {?}
2897
+ * @private
2898
+ */
2899
+ BsDatepickerContainerComponent.prototype._element;
2900
+ /**
2901
+ * @type {?}
2902
+ * @private
2903
+ */
2904
+ BsDatepickerContainerComponent.prototype._actions;
2905
+ /**
2906
+ * @type {?}
2907
+ * @private
2908
+ */
2909
+ BsDatepickerContainerComponent.prototype._positionService;
2910
+ }
2271
2911
 
2272
2912
  /**
2273
2913
  * @fileoverview added by tsickle
@@ -2276,6 +2916,8 @@
2276
2916
  var BsDatepickerDirective = /** @class */ (function () {
2277
2917
  function BsDatepickerDirective(_config, _elementRef, _renderer, _viewContainerRef, cis) {
2278
2918
  this._config = _config;
2919
+ this._elementRef = _elementRef;
2920
+ this._renderer = _renderer;
2279
2921
  /**
2280
2922
  * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
2281
2923
  */
@@ -2304,6 +2946,7 @@
2304
2946
  this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
2305
2947
  this.onShown = this._datepicker.onShown;
2306
2948
  this.onHidden = this._datepicker.onHidden;
2949
+ this.isOpen$ = new rxjs.BehaviorSubject(this.isOpen);
2307
2950
  }
2308
2951
  Object.defineProperty(BsDatepickerDirective.prototype, "isOpen", {
2309
2952
  /**
@@ -2321,12 +2964,7 @@
2321
2964
  * @return {?}
2322
2965
  */
2323
2966
  function (value) {
2324
- if (value) {
2325
- this.show();
2326
- }
2327
- else {
2328
- this.hide();
2329
- }
2967
+ this.isOpen$.next(value);
2330
2968
  },
2331
2969
  enumerable: true,
2332
2970
  configurable: true
@@ -2341,7 +2979,7 @@
2341
2979
  * @return {?}
2342
2980
  */
2343
2981
  function (value) {
2344
- if (this._bsValue === value) {
2982
+ if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {
2345
2983
  return;
2346
2984
  }
2347
2985
  this._bsValue = value;
@@ -2358,6 +2996,7 @@
2358
2996
  */
2359
2997
  function () {
2360
2998
  var _this = this;
2999
+ this.isDestroy$ = new rxjs.Subject();
2361
3000
  this._datepicker.listen({
2362
3001
  outsideClick: this.outsideClick,
2363
3002
  outsideEsc: this.outsideEsc,
@@ -2393,6 +3032,9 @@
2393
3032
  if (changes.datesDisabled) {
2394
3033
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
2395
3034
  }
3035
+ if (changes.datesEnabled) {
3036
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
3037
+ }
2396
3038
  if (changes.isDisabled) {
2397
3039
  this._datepickerRef.instance.isDisabled = this.isDisabled;
2398
3040
  }
@@ -2400,6 +3042,24 @@
2400
3042
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
2401
3043
  }
2402
3044
  };
3045
+ /**
3046
+ * @return {?}
3047
+ */
3048
+ BsDatepickerDirective.prototype.ngAfterViewInit = /**
3049
+ * @return {?}
3050
+ */
3051
+ function () {
3052
+ var _this = this;
3053
+ this.isOpen$.pipe(operators.filter((/**
3054
+ * @param {?} isOpen
3055
+ * @return {?}
3056
+ */
3057
+ function (isOpen) { return isOpen !== _this.isOpen; })), operators.takeUntil(this.isDestroy$))
3058
+ .subscribe((/**
3059
+ * @return {?}
3060
+ */
3061
+ function () { return _this.toggle(); }));
3062
+ };
2403
3063
  /**
2404
3064
  * Opens an element’s datepicker. This is considered a “manual” triggering of
2405
3065
  * the datepicker.
@@ -2476,6 +3136,9 @@
2476
3136
  }
2477
3137
  finally { if (e_1) throw e_1.error; }
2478
3138
  }
3139
+ if (this._config.returnFocusToInput) {
3140
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
3141
+ }
2479
3142
  };
2480
3143
  /**
2481
3144
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -2517,6 +3180,7 @@
2517
3180
  daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
2518
3181
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2519
3182
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3183
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
2520
3184
  minMode: this.minMode || this.bsConfig && this.bsConfig.minMode
2521
3185
  });
2522
3186
  };
@@ -2528,6 +3192,11 @@
2528
3192
  */
2529
3193
  function () {
2530
3194
  this._datepicker.dispose();
3195
+ this.isOpen$.next(false);
3196
+ if (this.isDestroy$) {
3197
+ this.isDestroy$.next();
3198
+ this.isDestroy$.complete();
3199
+ }
2531
3200
  };
2532
3201
  BsDatepickerDirective.decorators = [
2533
3202
  { type: core.Directive, args: [{
@@ -2560,11 +3229,130 @@
2560
3229
  minMode: [{ type: core.Input }],
2561
3230
  daysDisabled: [{ type: core.Input }],
2562
3231
  datesDisabled: [{ type: core.Input }],
3232
+ datesEnabled: [{ type: core.Input }],
2563
3233
  dateCustomClasses: [{ type: core.Input }],
2564
3234
  bsValueChange: [{ type: core.Output }]
2565
3235
  };
2566
3236
  return BsDatepickerDirective;
2567
3237
  }());
3238
+ if (false) {
3239
+ /**
3240
+ * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
3241
+ * @type {?}
3242
+ */
3243
+ BsDatepickerDirective.prototype.placement;
3244
+ /**
3245
+ * Specifies events that should trigger. Supports a space separated list of
3246
+ * event names.
3247
+ * @type {?}
3248
+ */
3249
+ BsDatepickerDirective.prototype.triggers;
3250
+ /**
3251
+ * Close datepicker on outside click
3252
+ * @type {?}
3253
+ */
3254
+ BsDatepickerDirective.prototype.outsideClick;
3255
+ /**
3256
+ * A selector specifying the element the datepicker should be appended to.
3257
+ * @type {?}
3258
+ */
3259
+ BsDatepickerDirective.prototype.container;
3260
+ /** @type {?} */
3261
+ BsDatepickerDirective.prototype.outsideEsc;
3262
+ /**
3263
+ * Emits an event when the datepicker is shown
3264
+ * @type {?}
3265
+ */
3266
+ BsDatepickerDirective.prototype.onShown;
3267
+ /**
3268
+ * Emits an event when the datepicker is hidden
3269
+ * @type {?}
3270
+ */
3271
+ BsDatepickerDirective.prototype.onHidden;
3272
+ /** @type {?} */
3273
+ BsDatepickerDirective.prototype._bsValue;
3274
+ /** @type {?} */
3275
+ BsDatepickerDirective.prototype.isOpen$;
3276
+ /** @type {?} */
3277
+ BsDatepickerDirective.prototype.isDestroy$;
3278
+ /**
3279
+ * Config object for datepicker
3280
+ * @type {?}
3281
+ */
3282
+ BsDatepickerDirective.prototype.bsConfig;
3283
+ /**
3284
+ * Indicates whether datepicker's content is enabled or not
3285
+ * @type {?}
3286
+ */
3287
+ BsDatepickerDirective.prototype.isDisabled;
3288
+ /**
3289
+ * Minimum date which is available for selection
3290
+ * @type {?}
3291
+ */
3292
+ BsDatepickerDirective.prototype.minDate;
3293
+ /**
3294
+ * Maximum date which is available for selection
3295
+ * @type {?}
3296
+ */
3297
+ BsDatepickerDirective.prototype.maxDate;
3298
+ /**
3299
+ * Minimum view mode : day, month, or year
3300
+ * @type {?}
3301
+ */
3302
+ BsDatepickerDirective.prototype.minMode;
3303
+ /**
3304
+ * Disable Certain days in the week
3305
+ * @type {?}
3306
+ */
3307
+ BsDatepickerDirective.prototype.daysDisabled;
3308
+ /**
3309
+ * Disable specific dates
3310
+ * @type {?}
3311
+ */
3312
+ BsDatepickerDirective.prototype.datesDisabled;
3313
+ /**
3314
+ * Enable specific dates
3315
+ * @type {?}
3316
+ */
3317
+ BsDatepickerDirective.prototype.datesEnabled;
3318
+ /**
3319
+ * Date custom classes
3320
+ * @type {?}
3321
+ */
3322
+ BsDatepickerDirective.prototype.dateCustomClasses;
3323
+ /**
3324
+ * Emits when datepicker value has been changed
3325
+ * @type {?}
3326
+ */
3327
+ BsDatepickerDirective.prototype.bsValueChange;
3328
+ /**
3329
+ * @type {?}
3330
+ * @protected
3331
+ */
3332
+ BsDatepickerDirective.prototype._subs;
3333
+ /**
3334
+ * @type {?}
3335
+ * @private
3336
+ */
3337
+ BsDatepickerDirective.prototype._datepicker;
3338
+ /**
3339
+ * @type {?}
3340
+ * @private
3341
+ */
3342
+ BsDatepickerDirective.prototype._datepickerRef;
3343
+ /** @type {?} */
3344
+ BsDatepickerDirective.prototype._config;
3345
+ /**
3346
+ * @type {?}
3347
+ * @private
3348
+ */
3349
+ BsDatepickerDirective.prototype._elementRef;
3350
+ /**
3351
+ * @type {?}
3352
+ * @private
3353
+ */
3354
+ BsDatepickerDirective.prototype._renderer;
3355
+ }
2568
3356
 
2569
3357
  /**
2570
3358
  * @fileoverview added by tsickle
@@ -2597,7 +3385,7 @@
2597
3385
  { type: core.Component, args: [{
2598
3386
  selector: 'bs-datepicker-inline-container',
2599
3387
  providers: [BsDatepickerStore, BsDatepickerEffects],
2600
- 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",
3388
+ template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view \n [selectedRange]=\"chosenRange\" \n [ranges]=\"customRanges\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
2601
3389
  host: {
2602
3390
  '(click)': '_stopPropagation($event)'
2603
3391
  },
@@ -2662,11 +3450,6 @@
2662
3450
  function () {
2663
3451
  var _this = this;
2664
3452
  this.setConfig();
2665
- this._datepickerRef = this._datepicker
2666
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
2667
- .attach(BsDatepickerInlineContainerComponent)
2668
- .to(this._elementRef)
2669
- .show();
2670
3453
  // if date changes from external source (model -> view)
2671
3454
  this._subs.push(this.bsValueChange.subscribe((/**
2672
3455
  * @param {?} value
@@ -2698,21 +3481,27 @@
2698
3481
  }
2699
3482
  if (changes.minDate) {
2700
3483
  this._datepickerRef.instance.minDate = this.minDate;
2701
- this._datepickerRef.instance.value = this._bsValue;
3484
+ this.setConfig();
2702
3485
  }
2703
3486
  if (changes.maxDate) {
2704
3487
  this._datepickerRef.instance.maxDate = this.maxDate;
2705
- this._datepickerRef.instance.value = this._bsValue;
3488
+ this.setConfig();
2706
3489
  }
2707
3490
  if (changes.datesDisabled) {
2708
3491
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3492
+ this.setConfig();
3493
+ }
3494
+ if (changes.datesEnabled) {
3495
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2709
3496
  this._datepickerRef.instance.value = this._bsValue;
2710
3497
  }
2711
3498
  if (changes.isDisabled) {
2712
3499
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3500
+ this.setConfig();
2713
3501
  }
2714
3502
  if (changes.dateCustomClasses) {
2715
3503
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3504
+ this.setConfig();
2716
3505
  }
2717
3506
  };
2718
3507
  /**
@@ -2727,14 +3516,23 @@
2727
3516
  * @return {?}
2728
3517
  */
2729
3518
  function () {
3519
+ if (this._datepicker) {
3520
+ this._datepicker.hide();
3521
+ }
2730
3522
  this._config = Object.assign({}, this._config, this.bsConfig, {
2731
3523
  value: this._bsValue,
2732
3524
  isDisabled: this.isDisabled,
2733
3525
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
2734
3526
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
2735
3527
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2736
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
3528
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3529
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled
2737
3530
  });
3531
+ this._datepickerRef = this._datepicker
3532
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
3533
+ .attach(BsDatepickerInlineContainerComponent)
3534
+ .to(this._elementRef)
3535
+ .show();
2738
3536
  };
2739
3537
  /**
2740
3538
  * @return {?}
@@ -2766,11 +3564,78 @@
2766
3564
  minDate: [{ type: core.Input }],
2767
3565
  maxDate: [{ type: core.Input }],
2768
3566
  dateCustomClasses: [{ type: core.Input }],
3567
+ datesEnabled: [{ type: core.Input }],
2769
3568
  datesDisabled: [{ type: core.Input }],
2770
3569
  bsValueChange: [{ type: core.Output }]
2771
3570
  };
2772
3571
  return BsDatepickerInlineDirective;
2773
3572
  }());
3573
+ if (false) {
3574
+ /** @type {?} */
3575
+ BsDatepickerInlineDirective.prototype._bsValue;
3576
+ /**
3577
+ * Config object for datepicker
3578
+ * @type {?}
3579
+ */
3580
+ BsDatepickerInlineDirective.prototype.bsConfig;
3581
+ /**
3582
+ * Indicates whether datepicker is enabled or not
3583
+ * @type {?}
3584
+ */
3585
+ BsDatepickerInlineDirective.prototype.isDisabled;
3586
+ /**
3587
+ * Minimum date which is available for selection
3588
+ * @type {?}
3589
+ */
3590
+ BsDatepickerInlineDirective.prototype.minDate;
3591
+ /**
3592
+ * Maximum date which is available for selection
3593
+ * @type {?}
3594
+ */
3595
+ BsDatepickerInlineDirective.prototype.maxDate;
3596
+ /**
3597
+ * Date custom classes
3598
+ * @type {?}
3599
+ */
3600
+ BsDatepickerInlineDirective.prototype.dateCustomClasses;
3601
+ /**
3602
+ * Disable specific dates
3603
+ * @type {?}
3604
+ */
3605
+ BsDatepickerInlineDirective.prototype.datesEnabled;
3606
+ /**
3607
+ * Enable specific dates
3608
+ * @type {?}
3609
+ */
3610
+ BsDatepickerInlineDirective.prototype.datesDisabled;
3611
+ /**
3612
+ * Emits when datepicker value has been changed
3613
+ * @type {?}
3614
+ */
3615
+ BsDatepickerInlineDirective.prototype.bsValueChange;
3616
+ /**
3617
+ * @type {?}
3618
+ * @protected
3619
+ */
3620
+ BsDatepickerInlineDirective.prototype._subs;
3621
+ /**
3622
+ * @type {?}
3623
+ * @private
3624
+ */
3625
+ BsDatepickerInlineDirective.prototype._datepicker;
3626
+ /**
3627
+ * @type {?}
3628
+ * @private
3629
+ */
3630
+ BsDatepickerInlineDirective.prototype._datepickerRef;
3631
+ /** @type {?} */
3632
+ BsDatepickerInlineDirective.prototype._config;
3633
+ /**
3634
+ * @type {?}
3635
+ * @private
3636
+ */
3637
+ BsDatepickerInlineDirective.prototype._elementRef;
3638
+ }
2774
3639
 
2775
3640
  /**
2776
3641
  * @fileoverview added by tsickle
@@ -2793,6 +3658,15 @@
2793
3658
  ];
2794
3659
  return BsDaterangepickerInlineConfig;
2795
3660
  }(BsDatepickerConfig));
3661
+ if (false) {
3662
+ /** @type {?} */
3663
+ BsDaterangepickerInlineConfig.prototype.displayMonths;
3664
+ /**
3665
+ * turn on/off animation
3666
+ * @type {?}
3667
+ */
3668
+ BsDaterangepickerInlineConfig.prototype.isAnimated;
3669
+ }
2796
3670
 
2797
3671
  /**
2798
3672
  * @fileoverview added by tsickle
@@ -2810,8 +3684,10 @@
2810
3684
  _this.valueChange = new core.EventEmitter();
2811
3685
  _this.animationState = 'void';
2812
3686
  _this._rangeStack = [];
3687
+ _this.chosenRange = [];
2813
3688
  _this._subs = [];
2814
3689
  _this._effects = _effects;
3690
+ _this.customRanges = _this._config.ranges;
2815
3691
  _renderer.setStyle(_element.nativeElement, 'display', 'block');
2816
3692
  _renderer.setStyle(_element.nativeElement, 'position', 'absolute');
2817
3693
  return _this;
@@ -2876,7 +3752,10 @@
2876
3752
  * @param {?} date
2877
3753
  * @return {?}
2878
3754
  */
2879
- function (date) { return _this.valueChange.emit(date); })));
3755
+ function (date) {
3756
+ _this.valueChange.emit(date);
3757
+ _this.chosenRange = date;
3758
+ })));
2880
3759
  };
2881
3760
  Object.defineProperty(BsDaterangepickerContainerComponent.prototype, "isTopPosition", {
2882
3761
  get: /**
@@ -2906,6 +3785,9 @@
2906
3785
  * @return {?}
2907
3786
  */
2908
3787
  function (day) {
3788
+ if (!day) {
3789
+ return;
3790
+ }
2909
3791
  /** @type {?} */
2910
3792
  var isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2911
3793
  if (isDisabled) {
@@ -2953,11 +3835,23 @@
2953
3835
  }
2954
3836
  this._effects.destroy();
2955
3837
  };
3838
+ /**
3839
+ * @param {?} dates
3840
+ * @return {?}
3841
+ */
3842
+ BsDaterangepickerContainerComponent.prototype.setRangeOnCalendar = /**
3843
+ * @param {?} dates
3844
+ * @return {?}
3845
+ */
3846
+ function (dates) {
3847
+ this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
3848
+ this._store.dispatch(this._actions.selectRange(this._rangeStack));
3849
+ };
2956
3850
  BsDaterangepickerContainerComponent.decorators = [
2957
3851
  { type: core.Component, args: [{
2958
3852
  selector: 'bs-daterangepicker-container',
2959
3853
  providers: [BsDatepickerStore, BsDatepickerEffects],
2960
- 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",
3854
+ template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view \n [selectedRange]=\"chosenRange\" \n [ranges]=\"customRanges\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
2961
3855
  host: {
2962
3856
  class: 'bottom',
2963
3857
  '(click)': '_stopPropagation($event)',
@@ -2979,6 +3873,43 @@
2979
3873
  ]; };
2980
3874
  return BsDaterangepickerContainerComponent;
2981
3875
  }(BsDatepickerAbstractComponent));
3876
+ if (false) {
3877
+ /** @type {?} */
3878
+ BsDaterangepickerContainerComponent.prototype.valueChange;
3879
+ /** @type {?} */
3880
+ BsDaterangepickerContainerComponent.prototype.animationState;
3881
+ /** @type {?} */
3882
+ BsDaterangepickerContainerComponent.prototype._rangeStack;
3883
+ /** @type {?} */
3884
+ BsDaterangepickerContainerComponent.prototype.chosenRange;
3885
+ /** @type {?} */
3886
+ BsDaterangepickerContainerComponent.prototype._subs;
3887
+ /**
3888
+ * @type {?}
3889
+ * @private
3890
+ */
3891
+ BsDaterangepickerContainerComponent.prototype._config;
3892
+ /**
3893
+ * @type {?}
3894
+ * @private
3895
+ */
3896
+ BsDaterangepickerContainerComponent.prototype._store;
3897
+ /**
3898
+ * @type {?}
3899
+ * @private
3900
+ */
3901
+ BsDaterangepickerContainerComponent.prototype._element;
3902
+ /**
3903
+ * @type {?}
3904
+ * @private
3905
+ */
3906
+ BsDaterangepickerContainerComponent.prototype._actions;
3907
+ /**
3908
+ * @type {?}
3909
+ * @private
3910
+ */
3911
+ BsDaterangepickerContainerComponent.prototype._positionService;
3912
+ }
2982
3913
 
2983
3914
  /**
2984
3915
  * @fileoverview added by tsickle
@@ -2996,7 +3927,7 @@
2996
3927
  { type: core.Component, args: [{
2997
3928
  selector: 'bs-daterangepicker-inline-container',
2998
3929
  providers: [BsDatepickerStore, BsDatepickerEffects],
2999
- 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",
3930
+ template: "<!-- days calendar view mode -->\n<div class=\"bs-datepicker\" [ngClass]=\"containerClass\" *ngIf=\"viewMode | async\">\n <div class=\"bs-datepicker-container\"\n [@datepickerAnimation]=\"animationState\"\n (@datepickerAnimation.done)=\"positionServiceEnable()\">\n <!--calendars-->\n <div class=\"bs-calendar-container\" [ngSwitch]=\"viewMode | async\" role=\"application\">\n <!--days calendar-->\n <div *ngSwitchCase=\"'day'\" class=\"bs-media-container\">\n <bs-days-calendar-view\n *ngFor=\"let calendar of daysCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n [options]=\"options | async\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"dayHoverHandler($event)\"\n (onHoverWeek)=\"weekHoverHandler($event)\"\n (onSelect)=\"daySelectHandler($event)\">\n </bs-days-calendar-view>\n </div>\n\n <!--months calendar-->\n <div *ngSwitchCase=\"'month'\" class=\"bs-media-container\">\n <bs-month-calendar-view\n *ngFor=\"let calendar of monthsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"monthHoverHandler($event)\"\n (onSelect)=\"monthSelectHandler($event)\">\n </bs-month-calendar-view>\n </div>\n\n <!--years calendar-->\n <div *ngSwitchCase=\"'year'\" class=\"bs-media-container\">\n <bs-years-calendar-view\n *ngFor=\"let calendar of yearsCalendar | async\"\n [class.bs-datepicker-multiple]=\"(daysCalendar | async)?.length > 1\"\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"setViewMode($event)\"\n (onHover)=\"yearHoverHandler($event)\"\n (onSelect)=\"yearSelectHandler($event)\">\n </bs-years-calendar-view>\n </div>\n </div>\n\n <!--applycancel buttons-->\n <div class=\"bs-datepicker-buttons\" *ngIf=\"false\">\n <button class=\"btn btn-success\" type=\"button\">Apply</button>\n <button class=\"btn btn-default\" type=\"button\">Cancel</button>\n </div>\n </div>\n\n <!--custom dates or date ranges picker-->\n <div class=\"bs-datepicker-custom-range\" *ngIf=\"customRanges?.length > 0\">\n <bs-custom-date-view \n [selectedRange]=\"chosenRange\" \n [ranges]=\"customRanges\"\n (onSelect)=\"setRangeOnCalendar($event)\">\n </bs-custom-date-view>\n </div>\n</div>\n",
3000
3931
  host: {
3001
3932
  '(click)': '_stopPropagation($event)'
3002
3933
  },
@@ -3061,11 +3992,6 @@
3061
3992
  function () {
3062
3993
  var _this = this;
3063
3994
  this.setConfig();
3064
- this._datepickerRef = this._datepicker
3065
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
3066
- .attach(BsDaterangepickerInlineContainerComponent)
3067
- .to(this._elementRef)
3068
- .show();
3069
3995
  // if date changes from external source (model -> view)
3070
3996
  this._subs.push(this.bsValueChange.subscribe((/**
3071
3997
  * @param {?} value
@@ -3103,18 +4029,30 @@
3103
4029
  }
3104
4030
  if (changes.minDate) {
3105
4031
  this._datepickerRef.instance.minDate = this.minDate;
4032
+ this.setConfig();
3106
4033
  }
3107
4034
  if (changes.maxDate) {
3108
4035
  this._datepickerRef.instance.maxDate = this.maxDate;
4036
+ this.setConfig();
4037
+ }
4038
+ if (changes.datesEnabled) {
4039
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
3109
4040
  }
3110
4041
  if (changes.datesDisabled) {
3111
4042
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
4043
+ this.setConfig();
4044
+ }
4045
+ if (changes.daysDisabled) {
4046
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
4047
+ this.setConfig();
3112
4048
  }
3113
4049
  if (changes.isDisabled) {
3114
4050
  this._datepickerRef.instance.isDisabled = this.isDisabled;
4051
+ this.setConfig();
3115
4052
  }
3116
4053
  if (changes.dateCustomClasses) {
3117
4054
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
4055
+ this.setConfig();
3118
4056
  }
3119
4057
  };
3120
4058
  /**
@@ -3129,14 +4067,25 @@
3129
4067
  * @return {?}
3130
4068
  */
3131
4069
  function () {
4070
+ if (this._datepicker) {
4071
+ this._datepicker.hide();
4072
+ }
3132
4073
  this._config = Object.assign({}, this._config, this.bsConfig, {
3133
4074
  value: this._bsValue,
3134
4075
  isDisabled: this.isDisabled,
3135
4076
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3136
4077
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
4078
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3137
4079
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3138
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
4080
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4081
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4082
+ ranges: this.bsConfig && this.bsConfig.ranges
3139
4083
  });
4084
+ this._datepickerRef = this._datepicker
4085
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
4086
+ .attach(BsDaterangepickerInlineContainerComponent)
4087
+ .to(this._elementRef)
4088
+ .show();
3140
4089
  };
3141
4090
  /**
3142
4091
  * @return {?}
@@ -3168,11 +4117,84 @@
3168
4117
  minDate: [{ type: core.Input }],
3169
4118
  maxDate: [{ type: core.Input }],
3170
4119
  dateCustomClasses: [{ type: core.Input }],
4120
+ daysDisabled: [{ type: core.Input }],
3171
4121
  datesDisabled: [{ type: core.Input }],
4122
+ datesEnabled: [{ type: core.Input }],
3172
4123
  bsValueChange: [{ type: core.Output }]
3173
4124
  };
3174
4125
  return BsDaterangepickerInlineDirective;
3175
4126
  }());
4127
+ if (false) {
4128
+ /** @type {?} */
4129
+ BsDaterangepickerInlineDirective.prototype._bsValue;
4130
+ /**
4131
+ * Config object for datepicker
4132
+ * @type {?}
4133
+ */
4134
+ BsDaterangepickerInlineDirective.prototype.bsConfig;
4135
+ /**
4136
+ * Indicates whether datepicker is enabled or not
4137
+ * @type {?}
4138
+ */
4139
+ BsDaterangepickerInlineDirective.prototype.isDisabled;
4140
+ /**
4141
+ * Minimum date which is available for selection
4142
+ * @type {?}
4143
+ */
4144
+ BsDaterangepickerInlineDirective.prototype.minDate;
4145
+ /**
4146
+ * Maximum date which is available for selection
4147
+ * @type {?}
4148
+ */
4149
+ BsDaterangepickerInlineDirective.prototype.maxDate;
4150
+ /**
4151
+ * Date custom classes
4152
+ * @type {?}
4153
+ */
4154
+ BsDaterangepickerInlineDirective.prototype.dateCustomClasses;
4155
+ /**
4156
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
4157
+ * @type {?}
4158
+ */
4159
+ BsDaterangepickerInlineDirective.prototype.daysDisabled;
4160
+ /**
4161
+ * Disable specific dates
4162
+ * @type {?}
4163
+ */
4164
+ BsDaterangepickerInlineDirective.prototype.datesDisabled;
4165
+ /**
4166
+ * Disable specific dates
4167
+ * @type {?}
4168
+ */
4169
+ BsDaterangepickerInlineDirective.prototype.datesEnabled;
4170
+ /**
4171
+ * Emits when daterangepicker value has been changed
4172
+ * @type {?}
4173
+ */
4174
+ BsDaterangepickerInlineDirective.prototype.bsValueChange;
4175
+ /**
4176
+ * @type {?}
4177
+ * @protected
4178
+ */
4179
+ BsDaterangepickerInlineDirective.prototype._subs;
4180
+ /**
4181
+ * @type {?}
4182
+ * @private
4183
+ */
4184
+ BsDaterangepickerInlineDirective.prototype._datepicker;
4185
+ /**
4186
+ * @type {?}
4187
+ * @private
4188
+ */
4189
+ BsDaterangepickerInlineDirective.prototype._datepickerRef;
4190
+ /** @type {?} */
4191
+ BsDaterangepickerInlineDirective.prototype._config;
4192
+ /**
4193
+ * @type {?}
4194
+ * @private
4195
+ */
4196
+ BsDaterangepickerInlineDirective.prototype._elementRef;
4197
+ }
3176
4198
 
3177
4199
  /**
3178
4200
  * @fileoverview added by tsickle
@@ -3232,6 +4254,19 @@
3232
4254
  _this._setInputValue(_this._value);
3233
4255
  }));
3234
4256
  }
4257
+ /**
4258
+ * @param {?} event
4259
+ * @return {?}
4260
+ */
4261
+ BsDatepickerInputDirective.prototype.onKeydownEvent = /**
4262
+ * @param {?} event
4263
+ * @return {?}
4264
+ */
4265
+ function (event) {
4266
+ if (event.keyCode === 13 || event.code === 'Enter') {
4267
+ this.hide();
4268
+ }
4269
+ };
3235
4270
  /**
3236
4271
  * @param {?} value
3237
4272
  * @return {?}
@@ -3258,6 +4293,9 @@
3258
4293
  /* tslint:disable-next-line: no-any*/
3259
4294
  this.writeValue(((/** @type {?} */ (event.target))).value);
3260
4295
  this._onChange(this._value);
4296
+ if (this._picker._config.returnFocusToInput) {
4297
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4298
+ }
3261
4299
  this._onTouched();
3262
4300
  };
3263
4301
  /**
@@ -3282,9 +4320,11 @@
3282
4320
  return { bsDate: { invalid: _value } };
3283
4321
  }
3284
4322
  if (this._picker && this._picker.minDate && chronos.isBefore(_value, this._picker.minDate, 'date')) {
4323
+ this.writeValue(this._picker.minDate);
3285
4324
  return { bsDate: { minDate: this._picker.minDate } };
3286
4325
  }
3287
4326
  if (this._picker && this._picker.maxDate && chronos.isAfter(_value, this._picker.maxDate, 'date')) {
4327
+ this.writeValue(this._picker.maxDate);
3288
4328
  return { bsDate: { maxDate: this._picker.maxDate } };
3289
4329
  }
3290
4330
  }
@@ -3383,6 +4423,9 @@
3383
4423
  function () {
3384
4424
  this._picker.hide();
3385
4425
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
4426
+ if (this._picker._config.returnFocusToInput) {
4427
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4428
+ }
3386
4429
  };
3387
4430
  BsDatepickerInputDirective.decorators = [
3388
4431
  { type: core.Directive, args: [{
@@ -3390,6 +4433,7 @@
3390
4433
  host: {
3391
4434
  '(change)': 'onChange($event)',
3392
4435
  '(keyup.esc)': 'hide()',
4436
+ '(keydown)': 'onKeydownEvent($event)',
3393
4437
  '(blur)': 'onBlur()'
3394
4438
  },
3395
4439
  providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]
@@ -3405,6 +4449,53 @@
3405
4449
  ]; };
3406
4450
  return BsDatepickerInputDirective;
3407
4451
  }());
4452
+ if (false) {
4453
+ /**
4454
+ * @type {?}
4455
+ * @private
4456
+ */
4457
+ BsDatepickerInputDirective.prototype._onChange;
4458
+ /**
4459
+ * @type {?}
4460
+ * @private
4461
+ */
4462
+ BsDatepickerInputDirective.prototype._onTouched;
4463
+ /**
4464
+ * @type {?}
4465
+ * @private
4466
+ */
4467
+ BsDatepickerInputDirective.prototype._validatorChange;
4468
+ /**
4469
+ * @type {?}
4470
+ * @private
4471
+ */
4472
+ BsDatepickerInputDirective.prototype._value;
4473
+ /**
4474
+ * @type {?}
4475
+ * @private
4476
+ */
4477
+ BsDatepickerInputDirective.prototype._picker;
4478
+ /**
4479
+ * @type {?}
4480
+ * @private
4481
+ */
4482
+ BsDatepickerInputDirective.prototype._localeService;
4483
+ /**
4484
+ * @type {?}
4485
+ * @private
4486
+ */
4487
+ BsDatepickerInputDirective.prototype._renderer;
4488
+ /**
4489
+ * @type {?}
4490
+ * @private
4491
+ */
4492
+ BsDatepickerInputDirective.prototype._elRef;
4493
+ /**
4494
+ * @type {?}
4495
+ * @private
4496
+ */
4497
+ BsDatepickerInputDirective.prototype.changeDetection;
4498
+ }
3408
4499
 
3409
4500
  /**
3410
4501
  * @fileoverview added by tsickle
@@ -3423,6 +4514,10 @@
3423
4514
  ];
3424
4515
  return BsDaterangepickerConfig;
3425
4516
  }(BsDatepickerConfig));
4517
+ if (false) {
4518
+ /** @type {?} */
4519
+ BsDaterangepickerConfig.prototype.displayMonths;
4520
+ }
3426
4521
 
3427
4522
  /**
3428
4523
  * @fileoverview added by tsickle
@@ -3431,6 +4526,8 @@
3431
4526
  var BsDaterangepickerDirective = /** @class */ (function () {
3432
4527
  function BsDaterangepickerDirective(_config, _elementRef, _renderer, _viewContainerRef, cis) {
3433
4528
  this._config = _config;
4529
+ this._elementRef = _elementRef;
4530
+ this._renderer = _renderer;
3434
4531
  /**
3435
4532
  * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
3436
4533
  */
@@ -3458,6 +4555,7 @@
3458
4555
  Object.assign(this, _config);
3459
4556
  this.onShown = this._datepicker.onShown;
3460
4557
  this.onHidden = this._datepicker.onHidden;
4558
+ this.isOpen$ = new rxjs.BehaviorSubject(this.isOpen);
3461
4559
  }
3462
4560
  Object.defineProperty(BsDaterangepickerDirective.prototype, "isOpen", {
3463
4561
  /**
@@ -3475,12 +4573,7 @@
3475
4573
  * @return {?}
3476
4574
  */
3477
4575
  function (value) {
3478
- if (value) {
3479
- this.show();
3480
- }
3481
- else {
3482
- this.hide();
3483
- }
4576
+ this.isOpen$.next(value);
3484
4577
  },
3485
4578
  enumerable: true,
3486
4579
  configurable: true
@@ -3512,6 +4605,7 @@
3512
4605
  */
3513
4606
  function () {
3514
4607
  var _this = this;
4608
+ this.isDestroy$ = new rxjs.Subject();
3515
4609
  this._datepicker.listen({
3516
4610
  outsideClick: this.outsideClick,
3517
4611
  outsideEsc: this.outsideEsc,
@@ -3544,6 +4638,12 @@
3544
4638
  if (changes.datesDisabled) {
3545
4639
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3546
4640
  }
4641
+ if (changes.datesEnabled) {
4642
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
4643
+ }
4644
+ if (changes.daysDisabled) {
4645
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
4646
+ }
3547
4647
  if (changes.isDisabled) {
3548
4648
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3549
4649
  }
@@ -3551,6 +4651,24 @@
3551
4651
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3552
4652
  }
3553
4653
  };
4654
+ /**
4655
+ * @return {?}
4656
+ */
4657
+ BsDaterangepickerDirective.prototype.ngAfterViewInit = /**
4658
+ * @return {?}
4659
+ */
4660
+ function () {
4661
+ var _this = this;
4662
+ this.isOpen$.pipe(operators.filter((/**
4663
+ * @param {?} isOpen
4664
+ * @return {?}
4665
+ */
4666
+ function (isOpen) { return isOpen !== _this.isOpen; })), operators.takeUntil(this.isDestroy$))
4667
+ .subscribe((/**
4668
+ * @return {?}
4669
+ */
4670
+ function () { return _this.toggle(); }));
4671
+ };
3554
4672
  /**
3555
4673
  * Opens an element’s datepicker. This is considered a “manual” triggering of
3556
4674
  * the datepicker.
@@ -3618,8 +4736,11 @@
3618
4736
  isDisabled: this.isDisabled,
3619
4737
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3620
4738
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
4739
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3621
4740
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3622
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
4741
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4742
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4743
+ ranges: this.bsConfig && this.bsConfig.ranges
3623
4744
  });
3624
4745
  };
3625
4746
  /**
@@ -3654,6 +4775,9 @@
3654
4775
  }
3655
4776
  finally { if (e_1) throw e_1.error; }
3656
4777
  }
4778
+ if (this._config.returnFocusToInput) {
4779
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
4780
+ }
3657
4781
  };
3658
4782
  /**
3659
4783
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -3683,6 +4807,11 @@
3683
4807
  */
3684
4808
  function () {
3685
4809
  this._datepicker.dispose();
4810
+ this.isOpen$.next(false);
4811
+ if (this.isDestroy$) {
4812
+ this.isDestroy$.next();
4813
+ this.isDestroy$.complete();
4814
+ }
3686
4815
  };
3687
4816
  BsDaterangepickerDirective.decorators = [
3688
4817
  { type: core.Directive, args: [{
@@ -3713,11 +4842,126 @@
3713
4842
  minDate: [{ type: core.Input }],
3714
4843
  maxDate: [{ type: core.Input }],
3715
4844
  dateCustomClasses: [{ type: core.Input }],
4845
+ daysDisabled: [{ type: core.Input }],
3716
4846
  datesDisabled: [{ type: core.Input }],
4847
+ datesEnabled: [{ type: core.Input }],
3717
4848
  bsValueChange: [{ type: core.Output }]
3718
4849
  };
3719
4850
  return BsDaterangepickerDirective;
3720
4851
  }());
4852
+ if (false) {
4853
+ /**
4854
+ * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
4855
+ * @type {?}
4856
+ */
4857
+ BsDaterangepickerDirective.prototype.placement;
4858
+ /**
4859
+ * Specifies events that should trigger. Supports a space separated list of
4860
+ * event names.
4861
+ * @type {?}
4862
+ */
4863
+ BsDaterangepickerDirective.prototype.triggers;
4864
+ /**
4865
+ * Close daterangepicker on outside click
4866
+ * @type {?}
4867
+ */
4868
+ BsDaterangepickerDirective.prototype.outsideClick;
4869
+ /**
4870
+ * A selector specifying the element the daterangepicker should be appended to.
4871
+ * @type {?}
4872
+ */
4873
+ BsDaterangepickerDirective.prototype.container;
4874
+ /** @type {?} */
4875
+ BsDaterangepickerDirective.prototype.outsideEsc;
4876
+ /**
4877
+ * Emits an event when the daterangepicker is shown
4878
+ * @type {?}
4879
+ */
4880
+ BsDaterangepickerDirective.prototype.onShown;
4881
+ /**
4882
+ * Emits an event when the daterangepicker is hidden
4883
+ * @type {?}
4884
+ */
4885
+ BsDaterangepickerDirective.prototype.onHidden;
4886
+ /** @type {?} */
4887
+ BsDaterangepickerDirective.prototype._bsValue;
4888
+ /** @type {?} */
4889
+ BsDaterangepickerDirective.prototype.isOpen$;
4890
+ /** @type {?} */
4891
+ BsDaterangepickerDirective.prototype.isDestroy$;
4892
+ /**
4893
+ * Config object for daterangepicker
4894
+ * @type {?}
4895
+ */
4896
+ BsDaterangepickerDirective.prototype.bsConfig;
4897
+ /**
4898
+ * Indicates whether daterangepicker's content is enabled or not
4899
+ * @type {?}
4900
+ */
4901
+ BsDaterangepickerDirective.prototype.isDisabled;
4902
+ /**
4903
+ * Minimum date which is available for selection
4904
+ * @type {?}
4905
+ */
4906
+ BsDaterangepickerDirective.prototype.minDate;
4907
+ /**
4908
+ * Maximum date which is available for selection
4909
+ * @type {?}
4910
+ */
4911
+ BsDaterangepickerDirective.prototype.maxDate;
4912
+ /**
4913
+ * Date custom classes
4914
+ * @type {?}
4915
+ */
4916
+ BsDaterangepickerDirective.prototype.dateCustomClasses;
4917
+ /**
4918
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
4919
+ * @type {?}
4920
+ */
4921
+ BsDaterangepickerDirective.prototype.daysDisabled;
4922
+ /**
4923
+ * Disable specific dates
4924
+ * @type {?}
4925
+ */
4926
+ BsDaterangepickerDirective.prototype.datesDisabled;
4927
+ /**
4928
+ * Enable specific dates
4929
+ * @type {?}
4930
+ */
4931
+ BsDaterangepickerDirective.prototype.datesEnabled;
4932
+ /**
4933
+ * Emits when daterangepicker value has been changed
4934
+ * @type {?}
4935
+ */
4936
+ BsDaterangepickerDirective.prototype.bsValueChange;
4937
+ /**
4938
+ * @type {?}
4939
+ * @protected
4940
+ */
4941
+ BsDaterangepickerDirective.prototype._subs;
4942
+ /**
4943
+ * @type {?}
4944
+ * @private
4945
+ */
4946
+ BsDaterangepickerDirective.prototype._datepicker;
4947
+ /**
4948
+ * @type {?}
4949
+ * @private
4950
+ */
4951
+ BsDaterangepickerDirective.prototype._datepickerRef;
4952
+ /** @type {?} */
4953
+ BsDaterangepickerDirective.prototype._config;
4954
+ /**
4955
+ * @type {?}
4956
+ * @private
4957
+ */
4958
+ BsDaterangepickerDirective.prototype._elementRef;
4959
+ /**
4960
+ * @type {?}
4961
+ * @private
4962
+ */
4963
+ BsDaterangepickerDirective.prototype._renderer;
4964
+ }
3721
4965
 
3722
4966
  /**
3723
4967
  * @fileoverview added by tsickle
@@ -3777,6 +5021,19 @@
3777
5021
  _this._setInputValue(_this._value);
3778
5022
  }));
3779
5023
  }
5024
+ /**
5025
+ * @param {?} event
5026
+ * @return {?}
5027
+ */
5028
+ BsDaterangepickerInputDirective.prototype.onKeydownEvent = /**
5029
+ * @param {?} event
5030
+ * @return {?}
5031
+ */
5032
+ function (event) {
5033
+ if (event.keyCode === 13 || event.code === 'Enter') {
5034
+ this.hide();
5035
+ }
5036
+ };
3780
5037
  /**
3781
5038
  * @param {?} date
3782
5039
  * @return {?}
@@ -3811,6 +5068,9 @@
3811
5068
  /* tslint:disable-next-line: no-any*/
3812
5069
  this.writeValue(((/** @type {?} */ (event.target))).value);
3813
5070
  this._onChange(this._value);
5071
+ if (this._picker._config.returnFocusToInput) {
5072
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
5073
+ }
3814
5074
  this._onTouched();
3815
5075
  };
3816
5076
  /**
@@ -3824,9 +5084,18 @@
3824
5084
  function (c) {
3825
5085
  /** @type {?} */
3826
5086
  var _value = c.value;
5087
+ /** @type {?} */
5088
+ var errors = [];
3827
5089
  if (_value === null || _value === undefined || !chronos.isArray(_value)) {
3828
5090
  return null;
3829
5091
  }
5092
+ // @ts-ignore
5093
+ _value.sort((/**
5094
+ * @param {?} a
5095
+ * @param {?} b
5096
+ * @return {?}
5097
+ */
5098
+ function (a, b) { return a - b; }));
3830
5099
  /** @type {?} */
3831
5100
  var _isFirstDateValid = chronos.isDateValid(_value[0]);
3832
5101
  /** @type {?} */
@@ -3838,10 +5107,16 @@
3838
5107
  return { bsDate: { invalid: _value[1] } };
3839
5108
  }
3840
5109
  if (this._picker && this._picker.minDate && chronos.isBefore(_value[0], this._picker.minDate, 'date')) {
3841
- return { bsDate: { minDate: this._picker.minDate } };
5110
+ _value[0] = this._picker.minDate;
5111
+ errors.push({ bsDate: { minDate: this._picker.minDate } });
3842
5112
  }
3843
5113
  if (this._picker && this._picker.maxDate && chronos.isAfter(_value[1], this._picker.maxDate, 'date')) {
3844
- return { bsDate: { maxDate: this._picker.maxDate } };
5114
+ _value[1] = this._picker.maxDate;
5115
+ errors.push({ bsDate: { maxDate: this._picker.maxDate } });
5116
+ }
5117
+ if (errors.length > 0) {
5118
+ this.writeValue(_value);
5119
+ return errors;
3845
5120
  }
3846
5121
  };
3847
5122
  /**
@@ -3965,6 +5240,9 @@
3965
5240
  function () {
3966
5241
  this._picker.hide();
3967
5242
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
5243
+ if (this._picker._config.returnFocusToInput) {
5244
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
5245
+ }
3968
5246
  };
3969
5247
  BsDaterangepickerInputDirective.decorators = [
3970
5248
  { type: core.Directive, args: [{
@@ -3972,6 +5250,7 @@
3972
5250
  host: {
3973
5251
  '(change)': 'onChange($event)',
3974
5252
  '(keyup.esc)': 'hide()',
5253
+ '(keydown)': 'onKeydownEvent($event)',
3975
5254
  '(blur)': 'onBlur()'
3976
5255
  },
3977
5256
  providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]
@@ -3987,6 +5266,53 @@
3987
5266
  ]; };
3988
5267
  return BsDaterangepickerInputDirective;
3989
5268
  }());
5269
+ if (false) {
5270
+ /**
5271
+ * @type {?}
5272
+ * @private
5273
+ */
5274
+ BsDaterangepickerInputDirective.prototype._onChange;
5275
+ /**
5276
+ * @type {?}
5277
+ * @private
5278
+ */
5279
+ BsDaterangepickerInputDirective.prototype._onTouched;
5280
+ /**
5281
+ * @type {?}
5282
+ * @private
5283
+ */
5284
+ BsDaterangepickerInputDirective.prototype._validatorChange;
5285
+ /**
5286
+ * @type {?}
5287
+ * @private
5288
+ */
5289
+ BsDaterangepickerInputDirective.prototype._value;
5290
+ /**
5291
+ * @type {?}
5292
+ * @private
5293
+ */
5294
+ BsDaterangepickerInputDirective.prototype._picker;
5295
+ /**
5296
+ * @type {?}
5297
+ * @private
5298
+ */
5299
+ BsDaterangepickerInputDirective.prototype._localeService;
5300
+ /**
5301
+ * @type {?}
5302
+ * @private
5303
+ */
5304
+ BsDaterangepickerInputDirective.prototype._renderer;
5305
+ /**
5306
+ * @type {?}
5307
+ * @private
5308
+ */
5309
+ BsDaterangepickerInputDirective.prototype._elRef;
5310
+ /**
5311
+ * @type {?}
5312
+ * @private
5313
+ */
5314
+ BsDaterangepickerInputDirective.prototype.changeDetection;
5315
+ }
3990
5316
 
3991
5317
  /**
3992
5318
  * @fileoverview added by tsickle
@@ -4022,27 +5348,79 @@
4022
5348
  };
4023
5349
  return BsCurrentDateViewComponent;
4024
5350
  }());
5351
+ if (false) {
5352
+ /** @type {?} */
5353
+ BsCurrentDateViewComponent.prototype.title;
5354
+ }
4025
5355
 
4026
5356
  /**
4027
5357
  * @fileoverview added by tsickle
4028
5358
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4029
5359
  */
5360
+ /**
5361
+ * @record
5362
+ */
5363
+ function BsCustomDates() { }
5364
+ if (false) {
5365
+ /** @type {?} */
5366
+ BsCustomDates.prototype.label;
5367
+ /** @type {?} */
5368
+ BsCustomDates.prototype.value;
5369
+ }
4030
5370
  var BsCustomDatesViewComponent = /** @class */ (function () {
4031
5371
  function BsCustomDatesViewComponent() {
5372
+ this.onSelect = new core.EventEmitter();
5373
+ this.customRange = null;
4032
5374
  }
5375
+ /**
5376
+ * @param {?} range
5377
+ * @return {?}
5378
+ */
5379
+ BsCustomDatesViewComponent.prototype.selectFromRanges = /**
5380
+ * @param {?} range
5381
+ * @return {?}
5382
+ */
5383
+ function (range) {
5384
+ this.onSelect.emit(range);
5385
+ };
5386
+ /**
5387
+ * @return {?}
5388
+ */
5389
+ BsCustomDatesViewComponent.prototype.checkRange = /**
5390
+ * @return {?}
5391
+ */
5392
+ function () {
5393
+ var _this = this;
5394
+ return this.ranges ? this.ranges.filter((/**
5395
+ * @param {?} range
5396
+ * @return {?}
5397
+ */
5398
+ function (range) { return range.value === _this.selectedRange; })).length > 0 : false;
5399
+ };
4033
5400
  BsCustomDatesViewComponent.decorators = [
4034
5401
  { type: core.Component, args: [{
4035
5402
  selector: 'bs-custom-date-view',
4036
- 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 ",
5403
+ template: "\n <div class=\"bs-datepicker-predefined-btns\">\n <button *ngFor=\"let range of ranges\"\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(range)\"\n [class.selected]=\"range.value === selectedRange\">\n {{ range.label }}\n </button>\n <button\n type=\"button\"\n class=\"btn\"\n (click)=\"selectFromRanges(customRange)\"\n [class.selected]=\"!checkRange()\">\n Custom Range\n </button>\n </div>\n ",
4037
5404
  changeDetection: core.ChangeDetectionStrategy.OnPush
4038
5405
  }] }
4039
5406
  ];
4040
5407
  BsCustomDatesViewComponent.propDecorators = {
4041
- isCustomRangeShown: [{ type: core.Input }],
4042
- ranges: [{ type: core.Input }]
5408
+ ranges: [{ type: core.Input }],
5409
+ selectedRange: [{ type: core.Input }],
5410
+ onSelect: [{ type: core.Output }]
4043
5411
  };
4044
5412
  return BsCustomDatesViewComponent;
4045
5413
  }());
5414
+ if (false) {
5415
+ /** @type {?} */
5416
+ BsCustomDatesViewComponent.prototype.ranges;
5417
+ /** @type {?} */
5418
+ BsCustomDatesViewComponent.prototype.selectedRange;
5419
+ /** @type {?} */
5420
+ BsCustomDatesViewComponent.prototype.onSelect;
5421
+ /** @type {?} */
5422
+ BsCustomDatesViewComponent.prototype.customRange;
5423
+ }
4046
5424
 
4047
5425
  /**
4048
5426
  * @fileoverview added by tsickle
@@ -4109,11 +5487,199 @@
4109
5487
  };
4110
5488
  return BsDatepickerDayDecoratorComponent;
4111
5489
  }());
5490
+ if (false) {
5491
+ /** @type {?} */
5492
+ BsDatepickerDayDecoratorComponent.prototype.day;
5493
+ /**
5494
+ * @type {?}
5495
+ * @private
5496
+ */
5497
+ BsDatepickerDayDecoratorComponent.prototype._config;
5498
+ /**
5499
+ * @type {?}
5500
+ * @private
5501
+ */
5502
+ BsDatepickerDayDecoratorComponent.prototype._elRef;
5503
+ /**
5504
+ * @type {?}
5505
+ * @private
5506
+ */
5507
+ BsDatepickerDayDecoratorComponent.prototype._renderer;
5508
+ }
4112
5509
 
4113
5510
  /**
4114
- * @fileoverview added by tsickle
4115
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5511
+ * @fileoverview added by tsickle
5512
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5513
+ */
5514
+ /**
5515
+ * **************
5516
+ * @record
5517
+ */
5518
+ function NavigationViewModel() { }
5519
+ if (false) {
5520
+ /** @type {?} */
5521
+ NavigationViewModel.prototype.monthTitle;
5522
+ /** @type {?} */
5523
+ NavigationViewModel.prototype.yearTitle;
5524
+ /** @type {?|undefined} */
5525
+ NavigationViewModel.prototype.hideLeftArrow;
5526
+ /** @type {?|undefined} */
5527
+ NavigationViewModel.prototype.hideRightArrow;
5528
+ /** @type {?|undefined} */
5529
+ NavigationViewModel.prototype.disableLeftArrow;
5530
+ /** @type {?|undefined} */
5531
+ NavigationViewModel.prototype.disableRightArrow;
5532
+ }
5533
+ /**
5534
+ * @record
5535
+ */
5536
+ function CalendarCellViewModel() { }
5537
+ if (false) {
5538
+ /** @type {?} */
5539
+ CalendarCellViewModel.prototype.date;
5540
+ /** @type {?} */
5541
+ CalendarCellViewModel.prototype.label;
5542
+ /** @type {?|undefined} */
5543
+ CalendarCellViewModel.prototype.isDisabled;
5544
+ /** @type {?|undefined} */
5545
+ CalendarCellViewModel.prototype.isHovered;
5546
+ /** @type {?|undefined} */
5547
+ CalendarCellViewModel.prototype.isSelected;
5548
+ }
5549
+ /**
5550
+ * **************
5551
+ * @record
5552
+ */
5553
+ function DayViewModel() { }
5554
+ if (false) {
5555
+ /** @type {?|undefined} */
5556
+ DayViewModel.prototype.isOtherMonthHovered;
5557
+ /** @type {?|undefined} */
5558
+ DayViewModel.prototype.isOtherMonth;
5559
+ /** @type {?|undefined} */
5560
+ DayViewModel.prototype.isInRange;
5561
+ /** @type {?|undefined} */
5562
+ DayViewModel.prototype.isSelectionStart;
5563
+ /** @type {?|undefined} */
5564
+ DayViewModel.prototype.isSelectionEnd;
5565
+ /** @type {?|undefined} */
5566
+ DayViewModel.prototype.isToday;
5567
+ /** @type {?|undefined} */
5568
+ DayViewModel.prototype.customClasses;
5569
+ /** @type {?|undefined} */
5570
+ DayViewModel.prototype.monthIndex;
5571
+ /** @type {?|undefined} */
5572
+ DayViewModel.prototype.weekIndex;
5573
+ /** @type {?|undefined} */
5574
+ DayViewModel.prototype.dayIndex;
5575
+ }
5576
+ /**
5577
+ * @record
5578
+ */
5579
+ function WeekViewModel() { }
5580
+ if (false) {
5581
+ /** @type {?} */
5582
+ WeekViewModel.prototype.days;
5583
+ /** @type {?|undefined} */
5584
+ WeekViewModel.prototype.isHovered;
5585
+ }
5586
+ /**
5587
+ * @record
5588
+ */
5589
+ function DaysCalendarViewModel() { }
5590
+ if (false) {
5591
+ /** @type {?} */
5592
+ DaysCalendarViewModel.prototype.weeks;
5593
+ /** @type {?} */
5594
+ DaysCalendarViewModel.prototype.month;
5595
+ /** @type {?} */
5596
+ DaysCalendarViewModel.prototype.weekNumbers;
5597
+ /** @type {?} */
5598
+ DaysCalendarViewModel.prototype.weekdays;
5599
+ }
5600
+ /**
5601
+ * **************
5602
+ * @record
5603
+ */
5604
+ function MonthsCalendarViewModel() { }
5605
+ if (false) {
5606
+ /** @type {?} */
5607
+ MonthsCalendarViewModel.prototype.months;
5608
+ }
5609
+ /**
5610
+ * **************
5611
+ * @record
5612
+ */
5613
+ function YearsCalendarViewModel() { }
5614
+ if (false) {
5615
+ /** @type {?} */
5616
+ YearsCalendarViewModel.prototype.years;
5617
+ }
5618
+ /**
5619
+ * **************
5620
+ * @record
5621
+ */
5622
+ function DaysCalendarModel() { }
5623
+ if (false) {
5624
+ /** @type {?} */
5625
+ DaysCalendarModel.prototype.daysMatrix;
5626
+ /** @type {?} */
5627
+ DaysCalendarModel.prototype.month;
5628
+ }
5629
+ /**
5630
+ * **************
5631
+ * @record
5632
+ */
5633
+ function MonthViewOptions() { }
5634
+ if (false) {
5635
+ /** @type {?|undefined} */
5636
+ MonthViewOptions.prototype.width;
5637
+ /** @type {?|undefined} */
5638
+ MonthViewOptions.prototype.height;
5639
+ /** @type {?|undefined} */
5640
+ MonthViewOptions.prototype.firstDayOfWeek;
5641
+ }
5642
+ /**
5643
+ * **************
5644
+ * @record
5645
+ */
5646
+ function DatepickerFormatOptions() { }
5647
+ if (false) {
5648
+ /** @type {?} */
5649
+ DatepickerFormatOptions.prototype.locale;
5650
+ /** @type {?} */
5651
+ DatepickerFormatOptions.prototype.monthTitle;
5652
+ /** @type {?} */
5653
+ DatepickerFormatOptions.prototype.yearTitle;
5654
+ /** @type {?} */
5655
+ DatepickerFormatOptions.prototype.dayLabel;
5656
+ /** @type {?} */
5657
+ DatepickerFormatOptions.prototype.monthLabel;
5658
+ /** @type {?} */
5659
+ DatepickerFormatOptions.prototype.yearLabel;
5660
+ /** @type {?} */
5661
+ DatepickerFormatOptions.prototype.weekNumbers;
5662
+ }
5663
+ /**
5664
+ * @record
5665
+ */
5666
+ function DatepickerRenderOptions() { }
5667
+ if (false) {
5668
+ /** @type {?|undefined} */
5669
+ DatepickerRenderOptions.prototype.showWeekNumbers;
5670
+ /** @type {?|undefined} */
5671
+ DatepickerRenderOptions.prototype.displayMonths;
5672
+ }
5673
+ /**
5674
+ * @record
4116
5675
  */
5676
+ function DatepickerDateCustomClasses() { }
5677
+ if (false) {
5678
+ /** @type {?} */
5679
+ DatepickerDateCustomClasses.prototype.date;
5680
+ /** @type {?} */
5681
+ DatepickerDateCustomClasses.prototype.classes;
5682
+ }
4117
5683
  /** @enum {number} */
4118
5684
  var BsNavigationDirection = {
4119
5685
  UP: 0,
@@ -4121,6 +5687,36 @@
4121
5687
  };
4122
5688
  BsNavigationDirection[BsNavigationDirection.UP] = 'UP';
4123
5689
  BsNavigationDirection[BsNavigationDirection.DOWN] = 'DOWN';
5690
+ /**
5691
+ * @record
5692
+ */
5693
+ function BsNavigationEvent() { }
5694
+ if (false) {
5695
+ /** @type {?|undefined} */
5696
+ BsNavigationEvent.prototype.direction;
5697
+ /** @type {?|undefined} */
5698
+ BsNavigationEvent.prototype.step;
5699
+ }
5700
+ /**
5701
+ * @record
5702
+ */
5703
+ function BsViewNavigationEvent() { }
5704
+ if (false) {
5705
+ /** @type {?|undefined} */
5706
+ BsViewNavigationEvent.prototype.unit;
5707
+ /** @type {?} */
5708
+ BsViewNavigationEvent.prototype.viewMode;
5709
+ }
5710
+ /**
5711
+ * @record
5712
+ */
5713
+ function CellHoverEvent() { }
5714
+ if (false) {
5715
+ /** @type {?} */
5716
+ CellHoverEvent.prototype.cell;
5717
+ /** @type {?} */
5718
+ CellHoverEvent.prototype.isHovered;
5719
+ }
4124
5720
 
4125
5721
  /**
4126
5722
  * @fileoverview added by tsickle
@@ -4157,7 +5753,7 @@
4157
5753
  { type: core.Component, args: [{
4158
5754
  selector: 'bs-datepicker-navigation-view',
4159
5755
  changeDetection: core.ChangeDetectionStrategy.OnPush,
4160
- 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 "
5756
+ 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 "
4161
5757
  }] }
4162
5758
  ];
4163
5759
  BsDatepickerNavigationViewComponent.propDecorators = {
@@ -4167,6 +5763,14 @@
4167
5763
  };
4168
5764
  return BsDatepickerNavigationViewComponent;
4169
5765
  }());
5766
+ if (false) {
5767
+ /** @type {?} */
5768
+ BsDatepickerNavigationViewComponent.prototype.calendar;
5769
+ /** @type {?} */
5770
+ BsDatepickerNavigationViewComponent.prototype.onNavigate;
5771
+ /** @type {?} */
5772
+ BsDatepickerNavigationViewComponent.prototype.onViewMode;
5773
+ }
4170
5774
 
4171
5775
  /**
4172
5776
  * @fileoverview added by tsickle
@@ -4226,19 +5830,18 @@
4226
5830
  */
4227
5831
  function (week) {
4228
5832
  var _this = this;
4229
- if (!this._config.selectWeek) {
5833
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
4230
5834
  return;
4231
5835
  }
4232
- if (week.days
4233
- && week.days[0]
5836
+ if (week.days.length === 0) {
5837
+ return;
5838
+ }
5839
+ if (this._config.selectWeek && week.days[0]
4234
5840
  && !week.days[0].isDisabled
4235
5841
  && this._config.selectFromOtherMonth) {
4236
5842
  this.onSelect.emit(week.days[0]);
4237
5843
  return;
4238
5844
  }
4239
- if (week.days.length === 0) {
4240
- return;
4241
- }
4242
5845
  /** @type {?} */
4243
5846
  var selectedDay = week.days.find((/**
4244
5847
  * @param {?} day
@@ -4250,6 +5853,21 @@
4250
5853
  : !day.isOtherMonth && !day.isDisabled;
4251
5854
  }));
4252
5855
  this.onSelect.emit(selectedDay);
5856
+ if (this._config.selectWeekDateRange) {
5857
+ /** @type {?} */
5858
+ var days = week.days.slice(0);
5859
+ /** @type {?} */
5860
+ var lastDayOfRange = days.reverse().find((/**
5861
+ * @param {?} day
5862
+ * @return {?}
5863
+ */
5864
+ function (day) {
5865
+ return _this._config.selectFromOtherMonth
5866
+ ? !day.isDisabled
5867
+ : !day.isOtherMonth && !day.isDisabled;
5868
+ }));
5869
+ this.onSelect.emit(lastDayOfRange);
5870
+ }
4253
5871
  };
4254
5872
  /**
4255
5873
  * @param {?} cell
@@ -4263,7 +5881,7 @@
4263
5881
  */
4264
5882
  function (cell, isHovered) {
4265
5883
  var _this = this;
4266
- if (!this._config.selectWeek) {
5884
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
4267
5885
  return;
4268
5886
  }
4269
5887
  /** @type {?} */
@@ -4320,6 +5938,29 @@
4320
5938
  };
4321
5939
  return BsDaysCalendarViewComponent;
4322
5940
  }());
5941
+ if (false) {
5942
+ /** @type {?} */
5943
+ BsDaysCalendarViewComponent.prototype.calendar;
5944
+ /** @type {?} */
5945
+ BsDaysCalendarViewComponent.prototype.options;
5946
+ /** @type {?} */
5947
+ BsDaysCalendarViewComponent.prototype.onNavigate;
5948
+ /** @type {?} */
5949
+ BsDaysCalendarViewComponent.prototype.onViewMode;
5950
+ /** @type {?} */
5951
+ BsDaysCalendarViewComponent.prototype.onSelect;
5952
+ /** @type {?} */
5953
+ BsDaysCalendarViewComponent.prototype.onHover;
5954
+ /** @type {?} */
5955
+ BsDaysCalendarViewComponent.prototype.onHoverWeek;
5956
+ /** @type {?} */
5957
+ BsDaysCalendarViewComponent.prototype.isWeekHovered;
5958
+ /**
5959
+ * @type {?}
5960
+ * @private
5961
+ */
5962
+ BsDaysCalendarViewComponent.prototype._config;
5963
+ }
4323
5964
 
4324
5965
  /**
4325
5966
  * @fileoverview added by tsickle
@@ -4395,6 +6036,18 @@
4395
6036
  };
4396
6037
  return BsMonthCalendarViewComponent;
4397
6038
  }());
6039
+ if (false) {
6040
+ /** @type {?} */
6041
+ BsMonthCalendarViewComponent.prototype.calendar;
6042
+ /** @type {?} */
6043
+ BsMonthCalendarViewComponent.prototype.onNavigate;
6044
+ /** @type {?} */
6045
+ BsMonthCalendarViewComponent.prototype.onViewMode;
6046
+ /** @type {?} */
6047
+ BsMonthCalendarViewComponent.prototype.onSelect;
6048
+ /** @type {?} */
6049
+ BsMonthCalendarViewComponent.prototype.onHover;
6050
+ }
4398
6051
 
4399
6052
  /**
4400
6053
  * @fileoverview added by tsickle
@@ -4414,6 +6067,14 @@
4414
6067
  ];
4415
6068
  return BsTimepickerViewComponent;
4416
6069
  }());
6070
+ if (false) {
6071
+ /** @type {?} */
6072
+ BsTimepickerViewComponent.prototype.ampm;
6073
+ /** @type {?} */
6074
+ BsTimepickerViewComponent.prototype.hours;
6075
+ /** @type {?} */
6076
+ BsTimepickerViewComponent.prototype.minutes;
6077
+ }
4417
6078
 
4418
6079
  /**
4419
6080
  * @fileoverview added by tsickle
@@ -4489,24 +6150,23 @@
4489
6150
  };
4490
6151
  return BsYearsCalendarViewComponent;
4491
6152
  }());
6153
+ if (false) {
6154
+ /** @type {?} */
6155
+ BsYearsCalendarViewComponent.prototype.calendar;
6156
+ /** @type {?} */
6157
+ BsYearsCalendarViewComponent.prototype.onNavigate;
6158
+ /** @type {?} */
6159
+ BsYearsCalendarViewComponent.prototype.onViewMode;
6160
+ /** @type {?} */
6161
+ BsYearsCalendarViewComponent.prototype.onSelect;
6162
+ /** @type {?} */
6163
+ BsYearsCalendarViewComponent.prototype.onHover;
6164
+ }
4492
6165
 
4493
6166
  /**
4494
6167
  * @fileoverview added by tsickle
4495
6168
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4496
6169
  */
4497
- /** @type {?} */
4498
- var _exports = [
4499
- BsDatepickerContainerComponent,
4500
- BsDatepickerDirective,
4501
- BsDatepickerInlineContainerComponent,
4502
- BsDatepickerInlineDirective,
4503
- BsDatepickerInputDirective,
4504
- BsDaterangepickerContainerComponent,
4505
- BsDaterangepickerDirective,
4506
- BsDaterangepickerInlineContainerComponent,
4507
- BsDaterangepickerInlineDirective,
4508
- BsDaterangepickerInputDirective
4509
- ];
4510
6170
  var BsDatepickerModule = /** @class */ (function () {
4511
6171
  function BsDatepickerModule() {
4512
6172
  }
@@ -4536,7 +6196,7 @@
4536
6196
  BsDatepickerModule.decorators = [
4537
6197
  { type: core.NgModule, args: [{
4538
6198
  imports: [common.CommonModule],
4539
- declarations: __spread([
6199
+ declarations: [
4540
6200
  BsCalendarLayoutComponent,
4541
6201
  BsCurrentDateViewComponent,
4542
6202
  BsCustomDatesViewComponent,
@@ -4545,15 +6205,36 @@
4545
6205
  BsDaysCalendarViewComponent,
4546
6206
  BsMonthCalendarViewComponent,
4547
6207
  BsTimepickerViewComponent,
4548
- BsYearsCalendarViewComponent
4549
- ], _exports),
6208
+ BsYearsCalendarViewComponent,
6209
+ BsDatepickerContainerComponent,
6210
+ BsDatepickerDirective,
6211
+ BsDatepickerInlineContainerComponent,
6212
+ BsDatepickerInlineDirective,
6213
+ BsDatepickerInputDirective,
6214
+ BsDaterangepickerContainerComponent,
6215
+ BsDaterangepickerDirective,
6216
+ BsDaterangepickerInlineContainerComponent,
6217
+ BsDaterangepickerInlineDirective,
6218
+ BsDaterangepickerInputDirective
6219
+ ],
4550
6220
  entryComponents: [
4551
6221
  BsDatepickerContainerComponent,
4552
6222
  BsDaterangepickerContainerComponent,
4553
6223
  BsDatepickerInlineContainerComponent,
4554
6224
  BsDaterangepickerInlineContainerComponent
4555
6225
  ],
4556
- exports: _exports
6226
+ exports: [
6227
+ BsDatepickerContainerComponent,
6228
+ BsDatepickerDirective,
6229
+ BsDatepickerInlineContainerComponent,
6230
+ BsDatepickerInlineDirective,
6231
+ BsDatepickerInputDirective,
6232
+ BsDaterangepickerContainerComponent,
6233
+ BsDaterangepickerDirective,
6234
+ BsDaterangepickerInlineContainerComponent,
6235
+ BsDaterangepickerInlineDirective,
6236
+ BsDaterangepickerInputDirective
6237
+ ]
4557
6238
  },] }
4558
6239
  ];
4559
6240
  return BsDatepickerModule;
@@ -5088,6 +6769,123 @@
5088
6769
  };
5089
6770
  return DatePickerInnerComponent;
5090
6771
  }());
6772
+ if (false) {
6773
+ /** @type {?} */
6774
+ DatePickerInnerComponent.prototype.locale;
6775
+ /** @type {?} */
6776
+ DatePickerInnerComponent.prototype.datepickerMode;
6777
+ /** @type {?} */
6778
+ DatePickerInnerComponent.prototype.startingDay;
6779
+ /** @type {?} */
6780
+ DatePickerInnerComponent.prototype.yearRange;
6781
+ /** @type {?} */
6782
+ DatePickerInnerComponent.prototype.minDate;
6783
+ /** @type {?} */
6784
+ DatePickerInnerComponent.prototype.maxDate;
6785
+ /** @type {?} */
6786
+ DatePickerInnerComponent.prototype.minMode;
6787
+ /** @type {?} */
6788
+ DatePickerInnerComponent.prototype.maxMode;
6789
+ /** @type {?} */
6790
+ DatePickerInnerComponent.prototype.showWeeks;
6791
+ /** @type {?} */
6792
+ DatePickerInnerComponent.prototype.formatDay;
6793
+ /** @type {?} */
6794
+ DatePickerInnerComponent.prototype.formatMonth;
6795
+ /** @type {?} */
6796
+ DatePickerInnerComponent.prototype.formatYear;
6797
+ /** @type {?} */
6798
+ DatePickerInnerComponent.prototype.formatDayHeader;
6799
+ /** @type {?} */
6800
+ DatePickerInnerComponent.prototype.formatDayTitle;
6801
+ /** @type {?} */
6802
+ DatePickerInnerComponent.prototype.formatMonthTitle;
6803
+ /** @type {?} */
6804
+ DatePickerInnerComponent.prototype.onlyCurrentMonth;
6805
+ /** @type {?} */
6806
+ DatePickerInnerComponent.prototype.shortcutPropagation;
6807
+ /** @type {?} */
6808
+ DatePickerInnerComponent.prototype.customClass;
6809
+ /** @type {?} */
6810
+ DatePickerInnerComponent.prototype.monthColLimit;
6811
+ /** @type {?} */
6812
+ DatePickerInnerComponent.prototype.yearColLimit;
6813
+ /** @type {?} */
6814
+ DatePickerInnerComponent.prototype.dateDisabled;
6815
+ /** @type {?} */
6816
+ DatePickerInnerComponent.prototype.dayDisabled;
6817
+ /** @type {?} */
6818
+ DatePickerInnerComponent.prototype.initDate;
6819
+ /** @type {?} */
6820
+ DatePickerInnerComponent.prototype.selectionDone;
6821
+ /** @type {?} */
6822
+ DatePickerInnerComponent.prototype.update;
6823
+ /** @type {?} */
6824
+ DatePickerInnerComponent.prototype.activeDateChange;
6825
+ /** @type {?} */
6826
+ DatePickerInnerComponent.prototype.stepDay;
6827
+ /** @type {?} */
6828
+ DatePickerInnerComponent.prototype.stepMonth;
6829
+ /** @type {?} */
6830
+ DatePickerInnerComponent.prototype.stepYear;
6831
+ /** @type {?} */
6832
+ DatePickerInnerComponent.prototype.uniqueId;
6833
+ /**
6834
+ * @type {?}
6835
+ * @protected
6836
+ */
6837
+ DatePickerInnerComponent.prototype.modes;
6838
+ /**
6839
+ * @type {?}
6840
+ * @protected
6841
+ */
6842
+ DatePickerInnerComponent.prototype.dateFormatter;
6843
+ /**
6844
+ * @type {?}
6845
+ * @protected
6846
+ */
6847
+ DatePickerInnerComponent.prototype._activeDate;
6848
+ /**
6849
+ * @type {?}
6850
+ * @protected
6851
+ */
6852
+ DatePickerInnerComponent.prototype.selectedDate;
6853
+ /**
6854
+ * @type {?}
6855
+ * @protected
6856
+ */
6857
+ DatePickerInnerComponent.prototype.activeDateId;
6858
+ /**
6859
+ * @type {?}
6860
+ * @protected
6861
+ */
6862
+ DatePickerInnerComponent.prototype.refreshViewHandlerDay;
6863
+ /**
6864
+ * @type {?}
6865
+ * @protected
6866
+ */
6867
+ DatePickerInnerComponent.prototype.compareHandlerDay;
6868
+ /**
6869
+ * @type {?}
6870
+ * @protected
6871
+ */
6872
+ DatePickerInnerComponent.prototype.refreshViewHandlerMonth;
6873
+ /**
6874
+ * @type {?}
6875
+ * @protected
6876
+ */
6877
+ DatePickerInnerComponent.prototype.compareHandlerMonth;
6878
+ /**
6879
+ * @type {?}
6880
+ * @protected
6881
+ */
6882
+ DatePickerInnerComponent.prototype.refreshViewHandlerYear;
6883
+ /**
6884
+ * @type {?}
6885
+ * @protected
6886
+ */
6887
+ DatePickerInnerComponent.prototype.compareHandlerYear;
6888
+ }
5091
6889
 
5092
6890
  /**
5093
6891
  * @fileoverview added by tsickle
@@ -5118,6 +6916,42 @@
5118
6916
  ];
5119
6917
  return DatepickerConfig;
5120
6918
  }());
6919
+ if (false) {
6920
+ /** @type {?} */
6921
+ DatepickerConfig.prototype.locale;
6922
+ /** @type {?} */
6923
+ DatepickerConfig.prototype.datepickerMode;
6924
+ /** @type {?} */
6925
+ DatepickerConfig.prototype.startingDay;
6926
+ /** @type {?} */
6927
+ DatepickerConfig.prototype.yearRange;
6928
+ /** @type {?} */
6929
+ DatepickerConfig.prototype.minMode;
6930
+ /** @type {?} */
6931
+ DatepickerConfig.prototype.maxMode;
6932
+ /** @type {?} */
6933
+ DatepickerConfig.prototype.showWeeks;
6934
+ /** @type {?} */
6935
+ DatepickerConfig.prototype.formatDay;
6936
+ /** @type {?} */
6937
+ DatepickerConfig.prototype.formatMonth;
6938
+ /** @type {?} */
6939
+ DatepickerConfig.prototype.formatYear;
6940
+ /** @type {?} */
6941
+ DatepickerConfig.prototype.formatDayHeader;
6942
+ /** @type {?} */
6943
+ DatepickerConfig.prototype.formatDayTitle;
6944
+ /** @type {?} */
6945
+ DatepickerConfig.prototype.formatMonthTitle;
6946
+ /** @type {?} */
6947
+ DatepickerConfig.prototype.onlyCurrentMonth;
6948
+ /** @type {?} */
6949
+ DatepickerConfig.prototype.monthColLimit;
6950
+ /** @type {?} */
6951
+ DatepickerConfig.prototype.yearColLimit;
6952
+ /** @type {?} */
6953
+ DatepickerConfig.prototype.shortcutPropagation;
6954
+ }
5121
6955
 
5122
6956
  /**
5123
6957
  * @fileoverview added by tsickle
@@ -5308,6 +7142,143 @@
5308
7142
  };
5309
7143
  return DatePickerComponent;
5310
7144
  }());
7145
+ if (false) {
7146
+ /**
7147
+ * sets datepicker mode, supports: `day`, `month`, `year`
7148
+ * @type {?}
7149
+ */
7150
+ DatePickerComponent.prototype.datepickerMode;
7151
+ /**
7152
+ * default date to show if `ng-model` value is not specified
7153
+ * @type {?}
7154
+ */
7155
+ DatePickerComponent.prototype.initDate;
7156
+ /**
7157
+ * oldest selectable date
7158
+ * @type {?}
7159
+ */
7160
+ DatePickerComponent.prototype.minDate;
7161
+ /**
7162
+ * latest selectable date
7163
+ * @type {?}
7164
+ */
7165
+ DatePickerComponent.prototype.maxDate;
7166
+ /**
7167
+ * set lower datepicker mode, supports: `day`, `month`, `year`
7168
+ * @type {?}
7169
+ */
7170
+ DatePickerComponent.prototype.minMode;
7171
+ /**
7172
+ * sets upper datepicker mode, supports: `day`, `month`, `year`
7173
+ * @type {?}
7174
+ */
7175
+ DatePickerComponent.prototype.maxMode;
7176
+ /**
7177
+ * if false week numbers will be hidden
7178
+ * @type {?}
7179
+ */
7180
+ DatePickerComponent.prototype.showWeeks;
7181
+ /**
7182
+ * format of day in month
7183
+ * @type {?}
7184
+ */
7185
+ DatePickerComponent.prototype.formatDay;
7186
+ /**
7187
+ * format of month in year
7188
+ * @type {?}
7189
+ */
7190
+ DatePickerComponent.prototype.formatMonth;
7191
+ /**
7192
+ * format of year in year range
7193
+ * @type {?}
7194
+ */
7195
+ DatePickerComponent.prototype.formatYear;
7196
+ /**
7197
+ * format of day in week header
7198
+ * @type {?}
7199
+ */
7200
+ DatePickerComponent.prototype.formatDayHeader;
7201
+ /**
7202
+ * format of title when selecting day
7203
+ * @type {?}
7204
+ */
7205
+ DatePickerComponent.prototype.formatDayTitle;
7206
+ /**
7207
+ * format of title when selecting month
7208
+ * @type {?}
7209
+ */
7210
+ DatePickerComponent.prototype.formatMonthTitle;
7211
+ /**
7212
+ * starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday)
7213
+ * @type {?}
7214
+ */
7215
+ DatePickerComponent.prototype.startingDay;
7216
+ /**
7217
+ * number of years displayed in year selection
7218
+ * @type {?}
7219
+ */
7220
+ DatePickerComponent.prototype.yearRange;
7221
+ /**
7222
+ * if true only dates from the currently displayed month will be shown
7223
+ * @type {?}
7224
+ */
7225
+ DatePickerComponent.prototype.onlyCurrentMonth;
7226
+ /**
7227
+ * if true shortcut`s event propagation will be disabled
7228
+ * @type {?}
7229
+ */
7230
+ DatePickerComponent.prototype.shortcutPropagation;
7231
+ /**
7232
+ * number of months displayed in a single row of month picker
7233
+ * @type {?}
7234
+ */
7235
+ DatePickerComponent.prototype.monthColLimit;
7236
+ /**
7237
+ * number of years displayed in a single row of year picker
7238
+ * @type {?}
7239
+ */
7240
+ DatePickerComponent.prototype.yearColLimit;
7241
+ /**
7242
+ * array of custom css classes to be applied to targeted dates
7243
+ * @type {?}
7244
+ */
7245
+ DatePickerComponent.prototype.customClass;
7246
+ /**
7247
+ * array of disabled dates
7248
+ * @type {?}
7249
+ */
7250
+ DatePickerComponent.prototype.dateDisabled;
7251
+ /**
7252
+ * disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday)
7253
+ * @type {?}
7254
+ */
7255
+ DatePickerComponent.prototype.dayDisabled;
7256
+ /** @type {?} */
7257
+ DatePickerComponent.prototype.selectionDone;
7258
+ /**
7259
+ * callback to invoke when the activeDate is changed.
7260
+ * @type {?}
7261
+ */
7262
+ DatePickerComponent.prototype.activeDateChange;
7263
+ /** @type {?} */
7264
+ DatePickerComponent.prototype._datePicker;
7265
+ /** @type {?} */
7266
+ DatePickerComponent.prototype.onChange;
7267
+ /** @type {?} */
7268
+ DatePickerComponent.prototype.onTouched;
7269
+ /** @type {?} */
7270
+ DatePickerComponent.prototype.config;
7271
+ /**
7272
+ * @type {?}
7273
+ * @protected
7274
+ */
7275
+ DatePickerComponent.prototype._now;
7276
+ /**
7277
+ * @type {?}
7278
+ * @protected
7279
+ */
7280
+ DatePickerComponent.prototype._activeDate;
7281
+ }
5311
7282
 
5312
7283
  /**
5313
7284
  * @fileoverview added by tsickle
@@ -5480,6 +7451,18 @@
5480
7451
  ]; };
5481
7452
  return DayPickerComponent;
5482
7453
  }());
7454
+ if (false) {
7455
+ /** @type {?} */
7456
+ DayPickerComponent.prototype.labels;
7457
+ /** @type {?} */
7458
+ DayPickerComponent.prototype.title;
7459
+ /** @type {?} */
7460
+ DayPickerComponent.prototype.rows;
7461
+ /** @type {?} */
7462
+ DayPickerComponent.prototype.weekNumbers;
7463
+ /** @type {?} */
7464
+ DayPickerComponent.prototype.datePicker;
7465
+ }
5483
7466
 
5484
7467
  /**
5485
7468
  * @fileoverview added by tsickle
@@ -5556,6 +7539,16 @@
5556
7539
  ]; };
5557
7540
  return MonthPickerComponent;
5558
7541
  }());
7542
+ if (false) {
7543
+ /** @type {?} */
7544
+ MonthPickerComponent.prototype.title;
7545
+ /** @type {?} */
7546
+ MonthPickerComponent.prototype.rows;
7547
+ /** @type {?} */
7548
+ MonthPickerComponent.prototype.datePicker;
7549
+ /** @type {?} */
7550
+ MonthPickerComponent.prototype.maxMode;
7551
+ }
5559
7552
 
5560
7553
  /**
5561
7554
  * @fileoverview added by tsickle
@@ -5642,6 +7635,14 @@
5642
7635
  ]; };
5643
7636
  return YearPickerComponent;
5644
7637
  }());
7638
+ if (false) {
7639
+ /** @type {?} */
7640
+ YearPickerComponent.prototype.datePicker;
7641
+ /** @type {?} */
7642
+ YearPickerComponent.prototype.title;
7643
+ /** @type {?} */
7644
+ YearPickerComponent.prototype.rows;
7645
+ }
5645
7646
 
5646
7647
  /**
5647
7648
  * @fileoverview added by tsickle
@@ -5724,5 +7725,5 @@
5724
7725
 
5725
7726
  Object.defineProperty(exports, '__esModule', { value: true });
5726
7727
 
5727
- }));
7728
+ })));
5728
7729
  //# sourceMappingURL=ngx-bootstrap-datepicker.umd.js.map