ngx-bootstrap 5.4.0 → 5.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/CHANGELOG.md +138 -99
  2. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +71 -2
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  4. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +1 -1
  5. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  6. package/accordion/fesm2015/ngx-bootstrap-accordion.js +79 -0
  7. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  8. package/accordion/fesm5/ngx-bootstrap-accordion.js +80 -1
  9. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  10. package/accordion/package.json +2 -2
  11. package/alert/bundles/ngx-bootstrap-alert.umd.js +224 -2
  12. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
  13. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +15 -1
  14. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
  15. package/alert/fesm2015/ngx-bootstrap-alert.js +71 -0
  16. package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
  17. package/alert/fesm5/ngx-bootstrap-alert.js +72 -1
  18. package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
  19. package/alert/package.json +2 -2
  20. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +208 -85
  21. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  22. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +1 -1
  23. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  24. package/buttons/button-radio-group.directive.d.ts +4 -1
  25. package/buttons/esm2015/button-radio-group.directive.js +26 -2
  26. package/buttons/esm5/button-radio-group.directive.js +30 -2
  27. package/buttons/fesm2015/ngx-bootstrap-buttons.js +194 -65
  28. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  29. package/buttons/fesm5/ngx-bootstrap-buttons.js +216 -83
  30. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  31. package/buttons/ngx-bootstrap-buttons.metadata.json +1 -1
  32. package/buttons/package.json +2 -2
  33. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +295 -4
  34. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  35. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +15 -1
  36. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  37. package/carousel/carousel.component.d.ts +2 -0
  38. package/carousel/esm2015/carousel.component.js +15 -2
  39. package/carousel/esm2015/slide.component.js +21 -2
  40. package/carousel/esm5/carousel.component.js +15 -2
  41. package/carousel/esm5/slide.component.js +6 -2
  42. package/carousel/fesm2015/ngx-bootstrap-carousel.js +169 -2
  43. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  44. package/carousel/fesm5/ngx-bootstrap-carousel.js +156 -4
  45. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  46. package/carousel/ngx-bootstrap-carousel.metadata.json +1 -1
  47. package/carousel/package.json +2 -2
  48. package/carousel/slide.component.d.ts +1 -0
  49. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +11172 -10061
  50. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  51. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  52. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  53. package/chronos/esm2015/format/format.js +1 -1
  54. package/chronos/esm2015/i18n/ka.js +108 -0
  55. package/chronos/esm2015/i18n/kk.js +89 -0
  56. package/chronos/esm2015/i18n/sq.js +62 -0
  57. package/chronos/esm2015/i18n/th-be.js +85 -0
  58. package/chronos/esm2015/index.js +2 -2
  59. package/chronos/esm2015/locale/locale.class.js +16 -2
  60. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  61. package/chronos/esm2015/public_api.js +5 -1
  62. package/chronos/esm2015/units/year.js +4 -1
  63. package/chronos/esm5/format/format.js +1 -1
  64. package/chronos/esm5/i18n/ka.js +108 -0
  65. package/chronos/esm5/i18n/kk.js +89 -0
  66. package/chronos/esm5/i18n/sq.js +62 -0
  67. package/chronos/esm5/i18n/th-be.js +86 -0
  68. package/chronos/esm5/index.js +2 -2
  69. package/chronos/esm5/locale/locale.class.js +22 -2
  70. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  71. package/chronos/esm5/public_api.js +5 -1
  72. package/chronos/esm5/units/year.js +4 -1
  73. package/chronos/fesm2015/ngx-bootstrap-chronos.js +1117 -13
  74. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  75. package/chronos/fesm5/ngx-bootstrap-chronos.js +1130 -13
  76. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  77. package/chronos/i18n/ka.d.ts +2 -0
  78. package/chronos/i18n/kk.d.ts +2 -0
  79. package/chronos/i18n/sq.d.ts +2 -0
  80. package/chronos/i18n/th-be.d.ts +2 -0
  81. package/chronos/locale/locale.class.d.ts +2 -0
  82. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  83. package/chronos/package.json +2 -2
  84. package/chronos/public_api.d.ts +4 -0
  85. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +100 -2
  86. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
  87. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +1 -1
  88. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
  89. package/collapse/collapse.directive.d.ts +1 -0
  90. package/collapse/esm2015/collapse.directive.js +14 -1
  91. package/collapse/esm5/collapse.directive.js +14 -1
  92. package/collapse/fesm2015/ngx-bootstrap-collapse.js +108 -0
  93. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
  94. package/collapse/fesm5/ngx-bootstrap-collapse.js +109 -1
  95. package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
  96. package/collapse/ngx-bootstrap-collapse.metadata.json +1 -1
  97. package/collapse/package.json +2 -2
  98. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +169 -2
  99. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  100. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  101. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  102. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +177 -0
  103. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  104. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +178 -1
  105. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  106. package/component-loader/package.json +2 -2
  107. package/datepicker/base/bs-datepicker-container.d.ts +4 -1
  108. package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
  109. package/datepicker/bs-datepicker-input.directive.d.ts +1 -0
  110. package/datepicker/bs-datepicker.component.d.ts +12 -3
  111. package/datepicker/bs-datepicker.config.d.ts +26 -0
  112. package/datepicker/bs-datepicker.css +19 -1
  113. package/datepicker/bs-datepicker.css.map +3 -3
  114. package/datepicker/bs-datepicker.scss +0 -1
  115. package/datepicker/bs-daterangepicker-inline.component.d.ts +8 -0
  116. package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -0
  117. package/datepicker/bs-daterangepicker.component.d.ts +16 -3
  118. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2116 -106
  119. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  120. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +15 -1
  121. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  122. package/datepicker/engine/flag-days-calendar.d.ts +1 -0
  123. package/datepicker/esm2015/base/bs-datepicker-container.js +18 -3
  124. package/datepicker/esm2015/bs-datepicker-inline.component.js +25 -9
  125. package/datepicker/esm2015/bs-datepicker-input.directive.js +19 -1
  126. package/datepicker/esm2015/bs-datepicker.component.js +55 -8
  127. package/datepicker/esm2015/bs-datepicker.config.js +36 -2
  128. package/datepicker/esm2015/bs-datepicker.module.js +23 -16
  129. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +37 -7
  130. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +34 -3
  131. package/datepicker/esm2015/bs-daterangepicker.component.js +66 -9
  132. package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
  133. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  134. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +15 -11
  135. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +25 -6
  136. package/datepicker/esm2015/reducer/bs-datepicker.state.js +5 -1
  137. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +46 -8
  138. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -2
  139. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  140. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +8 -7
  141. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +21 -3
  142. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  143. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +22 -8
  144. package/datepicker/esm2015/utils/bs-calendar-utils.js +18 -3
  145. package/datepicker/esm5/base/bs-datepicker-container.js +26 -3
  146. package/datepicker/esm5/bs-datepicker-inline.component.js +25 -9
  147. package/datepicker/esm5/bs-datepicker-input.directive.js +23 -1
  148. package/datepicker/esm5/bs-datepicker.component.js +59 -8
  149. package/datepicker/esm5/bs-datepicker.config.js +36 -2
  150. package/datepicker/esm5/bs-datepicker.module.js +26 -19
  151. package/datepicker/esm5/bs-daterangepicker-inline.component.js +37 -7
  152. package/datepicker/esm5/bs-daterangepicker-input.directive.js +38 -3
  153. package/datepicker/esm5/bs-daterangepicker.component.js +70 -9
  154. package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
  155. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  156. package/datepicker/esm5/reducer/bs-datepicker.effects.js +21 -17
  157. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +25 -6
  158. package/datepicker/esm5/reducer/bs-datepicker.state.js +5 -1
  159. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +39 -7
  160. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -2
  161. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  162. package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +2 -2
  163. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +25 -3
  164. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  165. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +22 -8
  166. package/datepicker/esm5/utils/bs-calendar-utils.js +18 -3
  167. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +1958 -91
  168. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  169. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +1989 -93
  170. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  171. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  172. package/datepicker/package.json +2 -2
  173. package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
  174. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
  175. package/datepicker/reducer/bs-datepicker.state.d.ts +2 -0
  176. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +6 -1
  177. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -0
  178. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  179. package/datepicker/utils/scss/mixins.css.map +1 -1
  180. package/datepicker/utils/scss/mixins.scss +9 -0
  181. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +395 -5
  182. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  183. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +15 -1
  184. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  185. package/dropdown/esm2015/bs-dropdown-container.component.js +2 -2
  186. package/dropdown/esm2015/bs-dropdown.directive.js +8 -3
  187. package/dropdown/esm5/bs-dropdown-container.component.js +2 -2
  188. package/dropdown/esm5/bs-dropdown.directive.js +9 -3
  189. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +241 -3
  190. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  191. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +242 -3
  192. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  193. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  194. package/dropdown/package.json +2 -2
  195. package/locale/bundles/ngx-bootstrap-locale.umd.js +36 -2
  196. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
  197. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
  198. package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
  199. package/locale/esm2015/public_api.js +5 -1
  200. package/locale/esm5/ngx-bootstrap-locale.js +2 -2
  201. package/locale/esm5/public_api.js +5 -1
  202. package/locale/fesm2015/ngx-bootstrap-locale.js +11 -1
  203. package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -1
  204. package/locale/fesm5/ngx-bootstrap-locale.js +11 -1
  205. package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -1
  206. package/locale/ngx-bootstrap-locale.metadata.json +1 -1
  207. package/locale/package.json +2 -2
  208. package/locale/public_api.d.ts +4 -0
  209. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +187 -2
  210. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -1
  211. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +15 -1
  212. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
  213. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +32 -0
  214. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -1
  215. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +32 -0
  216. package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
  217. package/mini-ngrx/package.json +2 -2
  218. package/modal/bs-modal.service.d.ts +1 -2
  219. package/modal/bundles/ngx-bootstrap-modal.umd.js +558 -16
  220. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  221. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +15 -1
  222. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  223. package/modal/esm2015/bs-modal.service.js +13 -4
  224. package/modal/esm2015/modal-container.component.js +24 -5
  225. package/modal/esm2015/modal-options.class.js +16 -1
  226. package/modal/esm2015/modal.directive.js +21 -4
  227. package/modal/esm2015/modal.module.js +10 -1
  228. package/modal/esm5/bs-modal.service.js +28 -8
  229. package/modal/esm5/modal-container.component.js +28 -5
  230. package/modal/esm5/modal-options.class.js +16 -1
  231. package/modal/esm5/modal.directive.js +25 -4
  232. package/modal/esm5/modal.module.js +13 -1
  233. package/modal/fesm2015/ngx-bootstrap-modal.js +354 -10
  234. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  235. package/modal/fesm5/ngx-bootstrap-modal.js +381 -15
  236. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  237. package/modal/modal-container.component.d.ts +3 -1
  238. package/modal/modal-options.class.d.ts +13 -0
  239. package/modal/modal.directive.d.ts +3 -1
  240. package/modal/modal.module.d.ts +1 -0
  241. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  242. package/modal/package.json +2 -2
  243. package/package.json +2 -2
  244. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +276 -4
  245. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  246. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +1 -1
  247. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  248. package/pagination/esm2015/models/index.js +49 -4
  249. package/pagination/esm2015/pager.component.js +2 -2
  250. package/pagination/esm2015/pagination.component.js +33 -3
  251. package/pagination/esm2015/public_api.js +1 -1
  252. package/pagination/esm5/models/index.js +49 -4
  253. package/pagination/esm5/pager.component.js +2 -2
  254. package/pagination/esm5/pagination.component.js +33 -3
  255. package/pagination/esm5/public_api.js +1 -1
  256. package/pagination/fesm2015/ngx-bootstrap-pagination.js +284 -2
  257. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  258. package/pagination/fesm5/ngx-bootstrap-pagination.js +285 -3
  259. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  260. package/pagination/models/index.d.ts +28 -0
  261. package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
  262. package/pagination/package.json +2 -2
  263. package/pagination/pagination.component.d.ts +12 -2
  264. package/pagination/public_api.d.ts +1 -0
  265. package/popover/bundles/ngx-bootstrap-popover.umd.js +215 -20
  266. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  267. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  268. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  269. package/popover/esm2015/popover.config.js +10 -1
  270. package/popover/esm2015/popover.directive.js +97 -16
  271. package/popover/esm5/popover.config.js +10 -1
  272. package/popover/esm5/popover.directive.js +98 -16
  273. package/popover/fesm2015/ngx-bootstrap-popover.js +221 -16
  274. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  275. package/popover/fesm5/ngx-bootstrap-popover.js +222 -16
  276. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  277. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  278. package/popover/package.json +2 -2
  279. package/popover/popover.config.d.ts +2 -0
  280. package/popover/popover.directive.d.ts +9 -1
  281. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +286 -13
  282. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  283. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +15 -1
  284. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  285. package/positioning/esm2015/modifiers/arrow.js +19 -5
  286. package/positioning/esm2015/modifiers/initData.js +12 -2
  287. package/positioning/esm2015/modifiers/shift.js +6 -4
  288. package/positioning/esm5/modifiers/arrow.js +19 -5
  289. package/positioning/esm5/modifiers/initData.js +12 -2
  290. package/positioning/esm5/modifiers/shift.js +8 -6
  291. package/positioning/fesm2015/ngx-bootstrap-positioning.js +128 -8
  292. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  293. package/positioning/fesm5/ngx-bootstrap-positioning.js +132 -10
  294. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  295. package/positioning/package.json +2 -2
  296. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +77 -2
  297. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  298. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  299. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  300. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +85 -0
  301. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  302. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +85 -0
  303. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  304. package/progressbar/package.json +2 -2
  305. package/rating/bundles/ngx-bootstrap-rating.umd.js +92 -7
  306. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  307. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +1 -1
  308. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  309. package/rating/esm2015/ngx-bootstrap-rating.js +2 -2
  310. package/rating/esm2015/public_api.js +2 -1
  311. package/rating/esm2015/rating.component.js +14 -5
  312. package/rating/esm2015/rating.config.js +27 -0
  313. package/rating/esm2015/rating.module.js +3 -2
  314. package/rating/esm5/ngx-bootstrap-rating.js +2 -2
  315. package/rating/esm5/public_api.js +2 -1
  316. package/rating/esm5/rating.component.js +13 -5
  317. package/rating/esm5/rating.config.js +29 -0
  318. package/rating/esm5/rating.module.js +3 -2
  319. package/rating/fesm2015/ngx-bootstrap-rating.js +101 -7
  320. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  321. package/rating/fesm5/ngx-bootstrap-rating.js +101 -7
  322. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  323. package/rating/ngx-bootstrap-rating.metadata.json +1 -1
  324. package/rating/package.json +2 -2
  325. package/rating/public_api.d.ts +1 -0
  326. package/rating/rating.component.d.ts +4 -1
  327. package/rating/rating.config.d.ts +5 -0
  328. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +254 -2
  329. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
  330. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +15 -1
  331. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
  332. package/sortable/fesm2015/ngx-bootstrap-sortable.js +113 -0
  333. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
  334. package/sortable/fesm5/ngx-bootstrap-sortable.js +114 -1
  335. package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
  336. package/sortable/package.json +2 -2
  337. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +153 -4
  338. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -1
  339. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +1 -1
  340. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -1
  341. package/tabs/esm2015/tab.directive.js +13 -2
  342. package/tabs/esm2015/tabset.component.js +7 -2
  343. package/tabs/esm2015/tabset.config.js +10 -1
  344. package/tabs/esm5/tab.directive.js +17 -2
  345. package/tabs/esm5/tabset.component.js +7 -2
  346. package/tabs/esm5/tabset.config.js +10 -1
  347. package/tabs/fesm2015/ngx-bootstrap-tabs.js +157 -2
  348. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
  349. package/tabs/fesm5/ngx-bootstrap-tabs.js +162 -3
  350. package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
  351. package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
  352. package/tabs/package.json +2 -2
  353. package/tabs/tab.directive.d.ts +2 -0
  354. package/tabs/tabset.component.d.ts +2 -0
  355. package/tabs/tabset.config.d.ts +2 -0
  356. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +464 -8
  357. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  358. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +15 -1
  359. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  360. package/timepicker/esm2015/timepicker.component.js +8 -2
  361. package/timepicker/esm2015/timepicker.config.js +28 -1
  362. package/timepicker/esm2015/timepicker.utils.js +9 -6
  363. package/timepicker/esm5/timepicker.component.js +8 -2
  364. package/timepicker/esm5/timepicker.config.js +28 -1
  365. package/timepicker/esm5/timepicker.utils.js +9 -6
  366. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +311 -6
  367. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  368. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +315 -7
  369. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  370. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  371. package/timepicker/package.json +2 -2
  372. package/timepicker/timepicker.component.d.ts +3 -0
  373. package/timepicker/timepicker.config.d.ts +6 -0
  374. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +355 -8
  375. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  376. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +15 -1
  377. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  378. package/tooltip/esm2015/tooltip.directive.js +47 -10
  379. package/tooltip/esm5/tooltip.directive.js +50 -10
  380. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +200 -7
  381. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  382. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +203 -7
  383. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  384. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  385. package/tooltip/package.json +2 -2
  386. package/tooltip/tooltip.directive.d.ts +3 -1
  387. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +719 -43
  388. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  389. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +15 -1
  390. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  391. package/typeahead/esm2015/models/index.js +87 -0
  392. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
  393. package/typeahead/esm2015/public_api.js +2 -1
  394. package/typeahead/esm2015/typeahead-container.component.js +52 -11
  395. package/typeahead/esm2015/typeahead-order.class.js +19 -0
  396. package/typeahead/esm2015/typeahead.config.js +10 -1
  397. package/typeahead/esm2015/typeahead.directive.js +133 -30
  398. package/typeahead/esm5/models/index.js +87 -0
  399. package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
  400. package/typeahead/esm5/public_api.js +2 -1
  401. package/typeahead/esm5/typeahead-container.component.js +59 -11
  402. package/typeahead/esm5/typeahead-order.class.js +23 -0
  403. package/typeahead/esm5/typeahead.config.js +10 -1
  404. package/typeahead/esm5/typeahead.directive.js +140 -36
  405. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +550 -37
  406. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  407. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +567 -43
  408. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  409. package/typeahead/models/index.d.ts +41 -0
  410. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  411. package/typeahead/package.json +2 -2
  412. package/typeahead/public_api.d.ts +2 -0
  413. package/typeahead/typeahead-container.component.d.ts +10 -5
  414. package/typeahead/typeahead-order.class.d.ts +6 -0
  415. package/typeahead/typeahead.config.d.ts +2 -0
  416. package/typeahead/typeahead.directive.d.ts +28 -10
  417. package/utils/bundles/ngx-bootstrap-utils.umd.js +54 -2
  418. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
  419. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +2 -2
  420. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
  421. package/utils/fesm2015/ngx-bootstrap-utils.js +62 -0
  422. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
  423. package/utils/fesm5/ngx-bootstrap-utils.js +62 -0
  424. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
  425. package/utils/package.json +2 -2
  426. package/bundles/ngx-bootstrap.umd.js +0 -1037
  427. package/bundles/ngx-bootstrap.umd.js.map +0 -1
  428. package/bundles/ngx-bootstrap.umd.min.js +0 -2
  429. package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
  430. package/esm2015/ngx-bootstrap.js +0 -9
  431. package/esm2015/public_api.js +0 -30
  432. package/esm5/ngx-bootstrap.js +0 -9
  433. package/esm5/public_api.js +0 -30
  434. package/fesm2015/ngx-bootstrap.js +0 -24
  435. package/fesm2015/ngx-bootstrap.js.map +0 -1
  436. package/fesm5/ngx-bootstrap.js +0 -24
  437. package/fesm5/ngx-bootstrap.js.map +0 -1
  438. package/ngx-bootstrap.d.ts +0 -4
  439. package/ngx-bootstrap.metadata.json +0 -1
  440. package/public_api.d.ts +0 -25
@@ -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,8 @@
133
393
  */
134
394
  BsDatepickerAbstractComponent = /** @class */ (function () {
135
395
  function BsDatepickerAbstractComponent() {
136
- this._customRangesFish = [];
396
+ this.customRanges = [];
397
+ this.chosenRange = [];
137
398
  }
138
399
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "minDate", {
139
400
  set: /**
@@ -179,6 +440,17 @@
179
440
  enumerable: true,
180
441
  configurable: true
181
442
  });
443
+ Object.defineProperty(BsDatepickerAbstractComponent.prototype, "datesEnabled", {
444
+ set: /**
445
+ * @param {?} value
446
+ * @return {?}
447
+ */
448
+ function (value) {
449
+ this._effects.setDatesEnabled(value);
450
+ },
451
+ enumerable: true,
452
+ configurable: true
453
+ });
182
454
  Object.defineProperty(BsDatepickerAbstractComponent.prototype, "isDisabled", {
183
455
  set: /**
184
456
  * @param {?} value
@@ -282,6 +554,15 @@
282
554
  * @return {?}
283
555
  */
284
556
  function (event) { };
557
+ /**
558
+ * @param {?} dates
559
+ * @return {?}
560
+ */
561
+ BsDatepickerAbstractComponent.prototype.setRangeOnCalendar = /**
562
+ * @param {?} dates
563
+ * @return {?}
564
+ */
565
+ function (dates) { };
285
566
  /* tslint:disable-next-line: no-any */
286
567
  /* tslint:disable-next-line: no-any */
287
568
  /**
@@ -298,6 +579,28 @@
298
579
  };
299
580
  return BsDatepickerAbstractComponent;
300
581
  }());
582
+ if (false) {
583
+ /** @type {?} */
584
+ BsDatepickerAbstractComponent.prototype.containerClass;
585
+ /** @type {?} */
586
+ BsDatepickerAbstractComponent.prototype.isOtherMonthsActive;
587
+ /** @type {?} */
588
+ BsDatepickerAbstractComponent.prototype._effects;
589
+ /** @type {?} */
590
+ BsDatepickerAbstractComponent.prototype.customRanges;
591
+ /** @type {?} */
592
+ BsDatepickerAbstractComponent.prototype.chosenRange;
593
+ /** @type {?} */
594
+ BsDatepickerAbstractComponent.prototype.viewMode;
595
+ /** @type {?} */
596
+ BsDatepickerAbstractComponent.prototype.daysCalendar;
597
+ /** @type {?} */
598
+ BsDatepickerAbstractComponent.prototype.monthsCalendar;
599
+ /** @type {?} */
600
+ BsDatepickerAbstractComponent.prototype.yearsCalendar;
601
+ /** @type {?} */
602
+ BsDatepickerAbstractComponent.prototype.options;
603
+ }
301
604
 
302
605
  /**
303
606
  * @fileoverview added by tsickle
@@ -491,6 +794,20 @@
491
794
  payload: dates
492
795
  };
493
796
  };
797
+ /**
798
+ * @param {?} dates
799
+ * @return {?}
800
+ */
801
+ BsDatepickerActions.prototype.datesEnabled = /**
802
+ * @param {?} dates
803
+ * @return {?}
804
+ */
805
+ function (dates) {
806
+ return {
807
+ type: BsDatepickerActions.SET_DATESENABLED,
808
+ payload: dates
809
+ };
810
+ };
494
811
  /**
495
812
  * @param {?} value
496
813
  * @return {?}
@@ -546,6 +863,7 @@
546
863
  BsDatepickerActions.SET_MAX_DATE = '[datepicker] set max date';
547
864
  BsDatepickerActions.SET_DAYSDISABLED = '[datepicker] set days disabled';
548
865
  BsDatepickerActions.SET_DATESDISABLED = '[datepicker] set dates disabled';
866
+ BsDatepickerActions.SET_DATESENABLED = '[datepicker] set dates enabled';
549
867
  BsDatepickerActions.SET_IS_DISABLED = '[datepicker] set is disabled';
550
868
  BsDatepickerActions.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes';
551
869
  BsDatepickerActions.SET_LOCALE = '[datepicker] set datepicker locale';
@@ -555,6 +873,44 @@
555
873
  ];
556
874
  return BsDatepickerActions;
557
875
  }());
876
+ if (false) {
877
+ /** @type {?} */
878
+ BsDatepickerActions.CALCULATE;
879
+ /** @type {?} */
880
+ BsDatepickerActions.FORMAT;
881
+ /** @type {?} */
882
+ BsDatepickerActions.FLAG;
883
+ /** @type {?} */
884
+ BsDatepickerActions.SELECT;
885
+ /** @type {?} */
886
+ BsDatepickerActions.NAVIGATE_OFFSET;
887
+ /** @type {?} */
888
+ BsDatepickerActions.NAVIGATE_TO;
889
+ /** @type {?} */
890
+ BsDatepickerActions.SET_OPTIONS;
891
+ /** @type {?} */
892
+ BsDatepickerActions.HOVER;
893
+ /** @type {?} */
894
+ BsDatepickerActions.CHANGE_VIEWMODE;
895
+ /** @type {?} */
896
+ BsDatepickerActions.SET_MIN_DATE;
897
+ /** @type {?} */
898
+ BsDatepickerActions.SET_MAX_DATE;
899
+ /** @type {?} */
900
+ BsDatepickerActions.SET_DAYSDISABLED;
901
+ /** @type {?} */
902
+ BsDatepickerActions.SET_DATESDISABLED;
903
+ /** @type {?} */
904
+ BsDatepickerActions.SET_DATESENABLED;
905
+ /** @type {?} */
906
+ BsDatepickerActions.SET_IS_DISABLED;
907
+ /** @type {?} */
908
+ BsDatepickerActions.SET_DATE_CUSTOM_CLASSES;
909
+ /** @type {?} */
910
+ BsDatepickerActions.SET_LOCALE;
911
+ /** @type {?} */
912
+ BsDatepickerActions.SELECT_RANGE;
913
+ }
558
914
 
559
915
  /**
560
916
  * @fileoverview added by tsickle
@@ -615,6 +971,23 @@
615
971
  ];
616
972
  return BsLocaleService;
617
973
  }());
974
+ if (false) {
975
+ /**
976
+ * @type {?}
977
+ * @private
978
+ */
979
+ BsLocaleService.prototype._defaultLocale;
980
+ /**
981
+ * @type {?}
982
+ * @private
983
+ */
984
+ BsLocaleService.prototype._locale;
985
+ /**
986
+ * @type {?}
987
+ * @private
988
+ */
989
+ BsLocaleService.prototype._localeChange;
990
+ }
618
991
 
619
992
  /**
620
993
  * @fileoverview added by tsickle
@@ -688,36 +1061,40 @@
688
1061
  return this;
689
1062
  };
690
1063
  /**
691
- * @template THIS
692
- * @this {THIS}
693
1064
  * @param {?} value
694
- * @return {THIS}
1065
+ * @return {?}
695
1066
  */
696
1067
  BsDatepickerEffects.prototype.setDaysDisabled = /**
697
- * @template THIS
698
- * @this {THIS}
699
1068
  * @param {?} value
700
- * @return {THIS}
1069
+ * @return {?}
701
1070
  */
702
1071
  function (value) {
703
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.daysDisabled(value));
704
- return (/** @type {?} */ (this));
1072
+ this._store.dispatch(this._actions.daysDisabled(value));
1073
+ return this;
705
1074
  };
706
1075
  /**
707
- * @template THIS
708
- * @this {THIS}
709
1076
  * @param {?} value
710
- * @return {THIS}
1077
+ * @return {?}
711
1078
  */
712
1079
  BsDatepickerEffects.prototype.setDatesDisabled = /**
713
- * @template THIS
714
- * @this {THIS}
715
1080
  * @param {?} value
716
- * @return {THIS}
1081
+ * @return {?}
1082
+ */
1083
+ function (value) {
1084
+ this._store.dispatch(this._actions.datesDisabled(value));
1085
+ return this;
1086
+ };
1087
+ /**
1088
+ * @param {?} value
1089
+ * @return {?}
1090
+ */
1091
+ BsDatepickerEffects.prototype.setDatesEnabled = /**
1092
+ * @param {?} value
1093
+ * @return {?}
717
1094
  */
718
1095
  function (value) {
719
- (/** @type {?} */ (this))._store.dispatch((/** @type {?} */ (this))._actions.datesDisabled(value));
720
- return (/** @type {?} */ (this));
1096
+ this._store.dispatch(this._actions.datesEnabled(value));
1097
+ return this;
721
1098
  };
722
1099
  /**
723
1100
  * @param {?} value
@@ -1101,6 +1478,38 @@
1101
1478
  ]; };
1102
1479
  return BsDatepickerEffects;
1103
1480
  }());
1481
+ if (false) {
1482
+ /** @type {?} */
1483
+ BsDatepickerEffects.prototype.viewMode;
1484
+ /** @type {?} */
1485
+ BsDatepickerEffects.prototype.daysCalendar;
1486
+ /** @type {?} */
1487
+ BsDatepickerEffects.prototype.monthsCalendar;
1488
+ /** @type {?} */
1489
+ BsDatepickerEffects.prototype.yearsCalendar;
1490
+ /** @type {?} */
1491
+ BsDatepickerEffects.prototype.options;
1492
+ /**
1493
+ * @type {?}
1494
+ * @private
1495
+ */
1496
+ BsDatepickerEffects.prototype._store;
1497
+ /**
1498
+ * @type {?}
1499
+ * @private
1500
+ */
1501
+ BsDatepickerEffects.prototype._subs;
1502
+ /**
1503
+ * @type {?}
1504
+ * @private
1505
+ */
1506
+ BsDatepickerEffects.prototype._actions;
1507
+ /**
1508
+ * @type {?}
1509
+ * @private
1510
+ */
1511
+ BsDatepickerEffects.prototype._localeService;
1512
+ }
1104
1513
 
1105
1514
  /**
1106
1515
  * @fileoverview added by tsickle
@@ -1116,6 +1525,91 @@
1116
1525
  * @fileoverview added by tsickle
1117
1526
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1118
1527
  */
1528
+ /**
1529
+ * @record
1530
+ */
1531
+ function BsDatepickerViewState() { }
1532
+ if (false) {
1533
+ /** @type {?} */
1534
+ BsDatepickerViewState.prototype.date;
1535
+ /** @type {?} */
1536
+ BsDatepickerViewState.prototype.mode;
1537
+ }
1538
+ var BsDatepickerState = /** @class */ (function () {
1539
+ function BsDatepickerState() {
1540
+ }
1541
+ return BsDatepickerState;
1542
+ }());
1543
+ if (false) {
1544
+ /** @type {?} */
1545
+ BsDatepickerState.prototype.selectedDate;
1546
+ /** @type {?} */
1547
+ BsDatepickerState.prototype.selectedRange;
1548
+ /** @type {?} */
1549
+ BsDatepickerState.prototype.view;
1550
+ /** @type {?} */
1551
+ BsDatepickerState.prototype.isDisabled;
1552
+ /** @type {?} */
1553
+ BsDatepickerState.prototype.minDate;
1554
+ /** @type {?} */
1555
+ BsDatepickerState.prototype.maxDate;
1556
+ /** @type {?} */
1557
+ BsDatepickerState.prototype.daysDisabled;
1558
+ /** @type {?} */
1559
+ BsDatepickerState.prototype.datesDisabled;
1560
+ /** @type {?} */
1561
+ BsDatepickerState.prototype.datesEnabled;
1562
+ /** @type {?} */
1563
+ BsDatepickerState.prototype.minMode;
1564
+ /** @type {?} */
1565
+ BsDatepickerState.prototype.dateCustomClasses;
1566
+ /** @type {?} */
1567
+ BsDatepickerState.prototype.hoveredDate;
1568
+ /** @type {?} */
1569
+ BsDatepickerState.prototype.hoveredMonth;
1570
+ /** @type {?} */
1571
+ BsDatepickerState.prototype.hoveredYear;
1572
+ /** @type {?} */
1573
+ BsDatepickerState.prototype.monthsModel;
1574
+ /** @type {?} */
1575
+ BsDatepickerState.prototype.formattedMonths;
1576
+ /** @type {?} */
1577
+ BsDatepickerState.prototype.flaggedMonths;
1578
+ /** @type {?} */
1579
+ BsDatepickerState.prototype.selectFromOtherMonth;
1580
+ /** @type {?} */
1581
+ BsDatepickerState.prototype.showPreviousMonth;
1582
+ /** @type {?} */
1583
+ BsDatepickerState.prototype.displayOneMonthRange;
1584
+ /** @type {?} */
1585
+ BsDatepickerState.prototype.monthsCalendar;
1586
+ /** @type {?} */
1587
+ BsDatepickerState.prototype.flaggedMonthsCalendar;
1588
+ /** @type {?} */
1589
+ BsDatepickerState.prototype.yearsCalendarModel;
1590
+ /** @type {?} */
1591
+ BsDatepickerState.prototype.yearsCalendarFlagged;
1592
+ /** @type {?} */
1593
+ BsDatepickerState.prototype.monthViewOptions;
1594
+ /** @type {?} */
1595
+ BsDatepickerState.prototype.showWeekNumbers;
1596
+ /** @type {?} */
1597
+ BsDatepickerState.prototype.displayMonths;
1598
+ /** @type {?} */
1599
+ BsDatepickerState.prototype.locale;
1600
+ /** @type {?} */
1601
+ BsDatepickerState.prototype.monthTitle;
1602
+ /** @type {?} */
1603
+ BsDatepickerState.prototype.yearTitle;
1604
+ /** @type {?} */
1605
+ BsDatepickerState.prototype.dayLabel;
1606
+ /** @type {?} */
1607
+ BsDatepickerState.prototype.monthLabel;
1608
+ /** @type {?} */
1609
+ BsDatepickerState.prototype.yearLabel;
1610
+ /** @type {?} */
1611
+ BsDatepickerState.prototype.weekNumbers;
1612
+ }
1119
1613
  /** @type {?} */
1120
1614
  var _initialView = { date: new Date(), mode: 'day' };
1121
1615
  /** @type {?} */
@@ -1190,7 +1684,7 @@
1190
1684
  * @return {?}
1191
1685
  */
1192
1686
  function isDisabledDate(date, datesDisabled) {
1193
- if (datesDisabled === undefined || !datesDisabled || !datesDisabled.length) {
1687
+ if (!datesDisabled || !chronos.isArray(datesDisabled) || !datesDisabled.length) {
1194
1688
  return false;
1195
1689
  }
1196
1690
  return datesDisabled.some((/**
@@ -1199,6 +1693,21 @@
1199
1693
  */
1200
1694
  function (dateDisabled) { return chronos.isSame(date, dateDisabled, 'date'); }));
1201
1695
  }
1696
+ /**
1697
+ * @param {?} date
1698
+ * @param {?} datesEnabled
1699
+ * @return {?}
1700
+ */
1701
+ function isEnabledDate(date, datesEnabled) {
1702
+ if (!datesEnabled || !chronos.isArray(datesEnabled) || !datesEnabled.length) {
1703
+ return false;
1704
+ }
1705
+ return !datesEnabled.some((/**
1706
+ * @param {?} enabledDate
1707
+ * @return {?}
1708
+ */
1709
+ function (enabledDate) { return chronos.isSame(date, enabledDate, 'date'); }));
1710
+ }
1202
1711
  /**
1203
1712
  * @param {?} state
1204
1713
  * @param {?=} calendarIndex
@@ -1215,6 +1724,20 @@
1215
1724
  * @fileoverview added by tsickle
1216
1725
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1217
1726
  */
1727
+ /**
1728
+ * @record
1729
+ */
1730
+ function MatrixOptions() { }
1731
+ if (false) {
1732
+ /** @type {?} */
1733
+ MatrixOptions.prototype.height;
1734
+ /** @type {?} */
1735
+ MatrixOptions.prototype.width;
1736
+ /** @type {?} */
1737
+ MatrixOptions.prototype.initialDate;
1738
+ /** @type {?} */
1739
+ MatrixOptions.prototype.shift;
1740
+ }
1218
1741
  /**
1219
1742
  * @template T
1220
1743
  * @param {?} options
@@ -1339,21 +1862,51 @@
1339
1862
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1340
1863
  */
1341
1864
  /**
1342
- * @param {?} formattedMonth
1343
- * @param {?} options
1344
- * @return {?}
1865
+ * @record
1345
1866
  */
1346
- function flagDaysCalendar(formattedMonth, options) {
1347
- formattedMonth.weeks.forEach((/**
1348
- * @param {?} week
1349
- * @return {?}
1350
- */
1351
- function (week) {
1352
- /* tslint:disable-next-line: cyclomatic-complexity */
1353
- week.days.forEach((/**
1354
- * @param {?} day
1355
- * @param {?} dayIndex
1356
- * @return {?}
1867
+ function FlagDaysCalendarOptions() { }
1868
+ if (false) {
1869
+ /** @type {?} */
1870
+ FlagDaysCalendarOptions.prototype.isDisabled;
1871
+ /** @type {?} */
1872
+ FlagDaysCalendarOptions.prototype.minDate;
1873
+ /** @type {?} */
1874
+ FlagDaysCalendarOptions.prototype.maxDate;
1875
+ /** @type {?} */
1876
+ FlagDaysCalendarOptions.prototype.daysDisabled;
1877
+ /** @type {?} */
1878
+ FlagDaysCalendarOptions.prototype.datesDisabled;
1879
+ /** @type {?} */
1880
+ FlagDaysCalendarOptions.prototype.datesEnabled;
1881
+ /** @type {?} */
1882
+ FlagDaysCalendarOptions.prototype.hoveredDate;
1883
+ /** @type {?} */
1884
+ FlagDaysCalendarOptions.prototype.selectedDate;
1885
+ /** @type {?} */
1886
+ FlagDaysCalendarOptions.prototype.selectedRange;
1887
+ /** @type {?} */
1888
+ FlagDaysCalendarOptions.prototype.displayMonths;
1889
+ /** @type {?} */
1890
+ FlagDaysCalendarOptions.prototype.monthIndex;
1891
+ /** @type {?} */
1892
+ FlagDaysCalendarOptions.prototype.dateCustomClasses;
1893
+ }
1894
+ /**
1895
+ * @param {?} formattedMonth
1896
+ * @param {?} options
1897
+ * @return {?}
1898
+ */
1899
+ function flagDaysCalendar(formattedMonth, options) {
1900
+ formattedMonth.weeks.forEach((/**
1901
+ * @param {?} week
1902
+ * @return {?}
1903
+ */
1904
+ function (week) {
1905
+ /* tslint:disable-next-line: cyclomatic-complexity */
1906
+ week.days.forEach((/**
1907
+ * @param {?} day
1908
+ * @param {?} dayIndex
1909
+ * @return {?}
1357
1910
  */
1358
1911
  function (day, dayIndex) {
1359
1912
  // datepicker
@@ -1383,7 +1936,8 @@
1383
1936
  chronos.isBefore(day.date, options.minDate, 'day') ||
1384
1937
  chronos.isAfter(day.date, options.maxDate, 'day') ||
1385
1938
  chronos.isDisabledDay(day.date, options.daysDisabled) ||
1386
- isDisabledDate(day.date, options.datesDisabled);
1939
+ isDisabledDate(day.date, options.datesDisabled) ||
1940
+ isEnabledDate(day.date, options.datesEnabled);
1387
1941
  /** @type {?} */
1388
1942
  var currentDate = new Date();
1389
1943
  /** @type {?} */
@@ -1512,6 +2066,26 @@
1512
2066
  * @fileoverview added by tsickle
1513
2067
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1514
2068
  */
2069
+ /**
2070
+ * @record
2071
+ */
2072
+ function FlagMonthCalendarOptions() { }
2073
+ if (false) {
2074
+ /** @type {?} */
2075
+ FlagMonthCalendarOptions.prototype.isDisabled;
2076
+ /** @type {?} */
2077
+ FlagMonthCalendarOptions.prototype.minDate;
2078
+ /** @type {?} */
2079
+ FlagMonthCalendarOptions.prototype.maxDate;
2080
+ /** @type {?} */
2081
+ FlagMonthCalendarOptions.prototype.hoveredMonth;
2082
+ /** @type {?} */
2083
+ FlagMonthCalendarOptions.prototype.selectedDate;
2084
+ /** @type {?} */
2085
+ FlagMonthCalendarOptions.prototype.displayMonths;
2086
+ /** @type {?} */
2087
+ FlagMonthCalendarOptions.prototype.monthIndex;
2088
+ }
1515
2089
  /**
1516
2090
  * @param {?} monthCalendar
1517
2091
  * @param {?} options
@@ -1633,6 +2207,26 @@
1633
2207
  * @fileoverview added by tsickle
1634
2208
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1635
2209
  */
2210
+ /**
2211
+ * @record
2212
+ */
2213
+ function FlagYearsCalendarOptions() { }
2214
+ if (false) {
2215
+ /** @type {?} */
2216
+ FlagYearsCalendarOptions.prototype.isDisabled;
2217
+ /** @type {?} */
2218
+ FlagYearsCalendarOptions.prototype.minDate;
2219
+ /** @type {?} */
2220
+ FlagYearsCalendarOptions.prototype.maxDate;
2221
+ /** @type {?} */
2222
+ FlagYearsCalendarOptions.prototype.hoveredYear;
2223
+ /** @type {?} */
2224
+ FlagYearsCalendarOptions.prototype.selectedDate;
2225
+ /** @type {?} */
2226
+ FlagYearsCalendarOptions.prototype.displayMonths;
2227
+ /** @type {?} */
2228
+ FlagYearsCalendarOptions.prototype.yearIndex;
2229
+ }
1636
2230
  /**
1637
2231
  * @param {?} yearsCalendar
1638
2232
  * @param {?} options
@@ -1699,10 +2293,10 @@
1699
2293
  return calculateReducer(state);
1700
2294
  }
1701
2295
  case BsDatepickerActions.FORMAT: {
1702
- return formatReducer(state);
2296
+ return formatReducer(state, action);
1703
2297
  }
1704
2298
  case BsDatepickerActions.FLAG: {
1705
- return flagReducer(state);
2299
+ return flagReducer(state, action);
1706
2300
  }
1707
2301
  case BsDatepickerActions.NAVIGATE_OFFSET: {
1708
2302
  return navigateOffsetReducer(state, action);
@@ -1831,7 +2425,8 @@
1831
2425
  function calculateReducer(state) {
1832
2426
  // how many calendars
1833
2427
  /** @type {?} */
1834
- var displayMonths = state.displayMonths;
2428
+ var displayMonths = (state.displayOneMonthRange &&
2429
+ isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) ? 1 : state.displayMonths;
1835
2430
  // use selected date on initial rendering if set
1836
2431
  /** @type {?} */
1837
2432
  var viewDate = state.view.date;
@@ -1924,6 +2519,8 @@
1924
2519
  * @return {?}
1925
2520
  */
1926
2521
  function flagReducer(state, action) {
2522
+ /** @type {?} */
2523
+ var displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
1927
2524
  if (state.view.mode === 'day') {
1928
2525
  /** @type {?} */
1929
2526
  var flaggedMonths = state.formattedMonths.map((/**
@@ -1938,10 +2535,11 @@
1938
2535
  maxDate: state.maxDate,
1939
2536
  daysDisabled: state.daysDisabled,
1940
2537
  datesDisabled: state.datesDisabled,
2538
+ datesEnabled: state.datesEnabled,
1941
2539
  hoveredDate: state.hoveredDate,
1942
2540
  selectedDate: state.selectedDate,
1943
2541
  selectedRange: state.selectedRange,
1944
- displayMonths: state.displayMonths,
2542
+ displayMonths: displayMonths,
1945
2543
  dateCustomClasses: state.dateCustomClasses,
1946
2544
  monthIndex: monthIndex
1947
2545
  });
@@ -1962,7 +2560,7 @@
1962
2560
  maxDate: state.maxDate,
1963
2561
  hoveredMonth: state.hoveredMonth,
1964
2562
  selectedDate: state.selectedDate,
1965
- displayMonths: state.displayMonths,
2563
+ displayMonths: displayMonths,
1966
2564
  monthIndex: monthIndex
1967
2565
  });
1968
2566
  }));
@@ -1982,7 +2580,7 @@
1982
2580
  maxDate: state.maxDate,
1983
2581
  hoveredYear: state.hoveredYear,
1984
2582
  selectedDate: state.selectedDate,
1985
- displayMonths: state.displayMonths,
2583
+ displayMonths: displayMonths,
1986
2584
  yearIndex: yearIndex
1987
2585
  });
1988
2586
  }));
@@ -2056,6 +2654,21 @@
2056
2654
  }
2057
2655
  return _date;
2058
2656
  }
2657
+ /**
2658
+ * @param {?} viewDate
2659
+ * @param {?} minDate
2660
+ * @param {?} maxDate
2661
+ * @return {?}
2662
+ */
2663
+ function isDisplayOneMonth(viewDate, minDate, maxDate) {
2664
+ if (maxDate && chronos.isSame(maxDate, viewDate, 'day')) {
2665
+ return true;
2666
+ }
2667
+ if (minDate && maxDate && minDate.getMonth() === maxDate.getMonth()) {
2668
+ return true;
2669
+ }
2670
+ return false;
2671
+ }
2059
2672
 
2060
2673
  /**
2061
2674
  * @fileoverview added by tsickle
@@ -2215,6 +2828,9 @@
2215
2828
  * @return {?}
2216
2829
  */
2217
2830
  function (day) {
2831
+ if (!day) {
2832
+ return;
2833
+ }
2218
2834
  /** @type {?} */
2219
2835
  var isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2220
2836
  if (isDisabled) {
@@ -2249,7 +2865,7 @@
2249
2865
  { type: core.Component, args: [{
2250
2866
  selector: 'bs-datepicker-container',
2251
2867
  providers: [BsDatepickerStore, BsDatepickerEffects],
2252
- 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",
2868
+ 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",
2253
2869
  host: {
2254
2870
  class: 'bottom',
2255
2871
  '(click)': '_stopPropagation($event)',
@@ -2271,6 +2887,39 @@
2271
2887
  ]; };
2272
2888
  return BsDatepickerContainerComponent;
2273
2889
  }(BsDatepickerAbstractComponent));
2890
+ if (false) {
2891
+ /** @type {?} */
2892
+ BsDatepickerContainerComponent.prototype.valueChange;
2893
+ /** @type {?} */
2894
+ BsDatepickerContainerComponent.prototype.animationState;
2895
+ /** @type {?} */
2896
+ BsDatepickerContainerComponent.prototype._subs;
2897
+ /**
2898
+ * @type {?}
2899
+ * @private
2900
+ */
2901
+ BsDatepickerContainerComponent.prototype._config;
2902
+ /**
2903
+ * @type {?}
2904
+ * @private
2905
+ */
2906
+ BsDatepickerContainerComponent.prototype._store;
2907
+ /**
2908
+ * @type {?}
2909
+ * @private
2910
+ */
2911
+ BsDatepickerContainerComponent.prototype._element;
2912
+ /**
2913
+ * @type {?}
2914
+ * @private
2915
+ */
2916
+ BsDatepickerContainerComponent.prototype._actions;
2917
+ /**
2918
+ * @type {?}
2919
+ * @private
2920
+ */
2921
+ BsDatepickerContainerComponent.prototype._positionService;
2922
+ }
2274
2923
 
2275
2924
  /**
2276
2925
  * @fileoverview added by tsickle
@@ -2279,6 +2928,8 @@
2279
2928
  var BsDatepickerDirective = /** @class */ (function () {
2280
2929
  function BsDatepickerDirective(_config, _elementRef, _renderer, _viewContainerRef, cis) {
2281
2930
  this._config = _config;
2931
+ this._elementRef = _elementRef;
2932
+ this._renderer = _renderer;
2282
2933
  /**
2283
2934
  * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
2284
2935
  */
@@ -2307,6 +2958,7 @@
2307
2958
  this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);
2308
2959
  this.onShown = this._datepicker.onShown;
2309
2960
  this.onHidden = this._datepicker.onHidden;
2961
+ this.isOpen$ = new rxjs.BehaviorSubject(this.isOpen);
2310
2962
  }
2311
2963
  Object.defineProperty(BsDatepickerDirective.prototype, "isOpen", {
2312
2964
  /**
@@ -2324,12 +2976,7 @@
2324
2976
  * @return {?}
2325
2977
  */
2326
2978
  function (value) {
2327
- if (value) {
2328
- this.show();
2329
- }
2330
- else {
2331
- this.hide();
2332
- }
2979
+ this.isOpen$.next(value);
2333
2980
  },
2334
2981
  enumerable: true,
2335
2982
  configurable: true
@@ -2344,7 +2991,7 @@
2344
2991
  * @return {?}
2345
2992
  */
2346
2993
  function (value) {
2347
- if (this._bsValue === value) {
2994
+ if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {
2348
2995
  return;
2349
2996
  }
2350
2997
  this._bsValue = value;
@@ -2361,6 +3008,7 @@
2361
3008
  */
2362
3009
  function () {
2363
3010
  var _this = this;
3011
+ this.isDestroy$ = new rxjs.Subject();
2364
3012
  this._datepicker.listen({
2365
3013
  outsideClick: this.outsideClick,
2366
3014
  outsideEsc: this.outsideEsc,
@@ -2396,6 +3044,9 @@
2396
3044
  if (changes.datesDisabled) {
2397
3045
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
2398
3046
  }
3047
+ if (changes.datesEnabled) {
3048
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
3049
+ }
2399
3050
  if (changes.isDisabled) {
2400
3051
  this._datepickerRef.instance.isDisabled = this.isDisabled;
2401
3052
  }
@@ -2403,6 +3054,24 @@
2403
3054
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
2404
3055
  }
2405
3056
  };
3057
+ /**
3058
+ * @return {?}
3059
+ */
3060
+ BsDatepickerDirective.prototype.ngAfterViewInit = /**
3061
+ * @return {?}
3062
+ */
3063
+ function () {
3064
+ var _this = this;
3065
+ this.isOpen$.pipe(operators.filter((/**
3066
+ * @param {?} isOpen
3067
+ * @return {?}
3068
+ */
3069
+ function (isOpen) { return isOpen !== _this.isOpen; })), operators.takeUntil(this.isDestroy$))
3070
+ .subscribe((/**
3071
+ * @return {?}
3072
+ */
3073
+ function () { return _this.toggle(); }));
3074
+ };
2406
3075
  /**
2407
3076
  * Opens an element’s datepicker. This is considered a “manual” triggering of
2408
3077
  * the datepicker.
@@ -2479,6 +3148,9 @@
2479
3148
  }
2480
3149
  finally { if (e_1) throw e_1.error; }
2481
3150
  }
3151
+ if (this._config.returnFocusToInput) {
3152
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
3153
+ }
2482
3154
  };
2483
3155
  /**
2484
3156
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -2520,6 +3192,7 @@
2520
3192
  daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
2521
3193
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2522
3194
  datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3195
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
2523
3196
  minMode: this.minMode || this.bsConfig && this.bsConfig.minMode
2524
3197
  });
2525
3198
  };
@@ -2531,6 +3204,11 @@
2531
3204
  */
2532
3205
  function () {
2533
3206
  this._datepicker.dispose();
3207
+ this.isOpen$.next(false);
3208
+ if (this.isDestroy$) {
3209
+ this.isDestroy$.next();
3210
+ this.isDestroy$.complete();
3211
+ }
2534
3212
  };
2535
3213
  BsDatepickerDirective.decorators = [
2536
3214
  { type: core.Directive, args: [{
@@ -2563,11 +3241,130 @@
2563
3241
  minMode: [{ type: core.Input }],
2564
3242
  daysDisabled: [{ type: core.Input }],
2565
3243
  datesDisabled: [{ type: core.Input }],
3244
+ datesEnabled: [{ type: core.Input }],
2566
3245
  dateCustomClasses: [{ type: core.Input }],
2567
3246
  bsValueChange: [{ type: core.Output }]
2568
3247
  };
2569
3248
  return BsDatepickerDirective;
2570
3249
  }());
3250
+ if (false) {
3251
+ /**
3252
+ * Placement of a datepicker. Accepts: "top", "bottom", "left", "right"
3253
+ * @type {?}
3254
+ */
3255
+ BsDatepickerDirective.prototype.placement;
3256
+ /**
3257
+ * Specifies events that should trigger. Supports a space separated list of
3258
+ * event names.
3259
+ * @type {?}
3260
+ */
3261
+ BsDatepickerDirective.prototype.triggers;
3262
+ /**
3263
+ * Close datepicker on outside click
3264
+ * @type {?}
3265
+ */
3266
+ BsDatepickerDirective.prototype.outsideClick;
3267
+ /**
3268
+ * A selector specifying the element the datepicker should be appended to.
3269
+ * @type {?}
3270
+ */
3271
+ BsDatepickerDirective.prototype.container;
3272
+ /** @type {?} */
3273
+ BsDatepickerDirective.prototype.outsideEsc;
3274
+ /**
3275
+ * Emits an event when the datepicker is shown
3276
+ * @type {?}
3277
+ */
3278
+ BsDatepickerDirective.prototype.onShown;
3279
+ /**
3280
+ * Emits an event when the datepicker is hidden
3281
+ * @type {?}
3282
+ */
3283
+ BsDatepickerDirective.prototype.onHidden;
3284
+ /** @type {?} */
3285
+ BsDatepickerDirective.prototype._bsValue;
3286
+ /** @type {?} */
3287
+ BsDatepickerDirective.prototype.isOpen$;
3288
+ /** @type {?} */
3289
+ BsDatepickerDirective.prototype.isDestroy$;
3290
+ /**
3291
+ * Config object for datepicker
3292
+ * @type {?}
3293
+ */
3294
+ BsDatepickerDirective.prototype.bsConfig;
3295
+ /**
3296
+ * Indicates whether datepicker's content is enabled or not
3297
+ * @type {?}
3298
+ */
3299
+ BsDatepickerDirective.prototype.isDisabled;
3300
+ /**
3301
+ * Minimum date which is available for selection
3302
+ * @type {?}
3303
+ */
3304
+ BsDatepickerDirective.prototype.minDate;
3305
+ /**
3306
+ * Maximum date which is available for selection
3307
+ * @type {?}
3308
+ */
3309
+ BsDatepickerDirective.prototype.maxDate;
3310
+ /**
3311
+ * Minimum view mode : day, month, or year
3312
+ * @type {?}
3313
+ */
3314
+ BsDatepickerDirective.prototype.minMode;
3315
+ /**
3316
+ * Disable Certain days in the week
3317
+ * @type {?}
3318
+ */
3319
+ BsDatepickerDirective.prototype.daysDisabled;
3320
+ /**
3321
+ * Disable specific dates
3322
+ * @type {?}
3323
+ */
3324
+ BsDatepickerDirective.prototype.datesDisabled;
3325
+ /**
3326
+ * Enable specific dates
3327
+ * @type {?}
3328
+ */
3329
+ BsDatepickerDirective.prototype.datesEnabled;
3330
+ /**
3331
+ * Date custom classes
3332
+ * @type {?}
3333
+ */
3334
+ BsDatepickerDirective.prototype.dateCustomClasses;
3335
+ /**
3336
+ * Emits when datepicker value has been changed
3337
+ * @type {?}
3338
+ */
3339
+ BsDatepickerDirective.prototype.bsValueChange;
3340
+ /**
3341
+ * @type {?}
3342
+ * @protected
3343
+ */
3344
+ BsDatepickerDirective.prototype._subs;
3345
+ /**
3346
+ * @type {?}
3347
+ * @private
3348
+ */
3349
+ BsDatepickerDirective.prototype._datepicker;
3350
+ /**
3351
+ * @type {?}
3352
+ * @private
3353
+ */
3354
+ BsDatepickerDirective.prototype._datepickerRef;
3355
+ /** @type {?} */
3356
+ BsDatepickerDirective.prototype._config;
3357
+ /**
3358
+ * @type {?}
3359
+ * @private
3360
+ */
3361
+ BsDatepickerDirective.prototype._elementRef;
3362
+ /**
3363
+ * @type {?}
3364
+ * @private
3365
+ */
3366
+ BsDatepickerDirective.prototype._renderer;
3367
+ }
2571
3368
 
2572
3369
  /**
2573
3370
  * @fileoverview added by tsickle
@@ -2600,7 +3397,7 @@
2600
3397
  { type: core.Component, args: [{
2601
3398
  selector: 'bs-datepicker-inline-container',
2602
3399
  providers: [BsDatepickerStore, BsDatepickerEffects],
2603
- 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",
3400
+ 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",
2604
3401
  host: {
2605
3402
  '(click)': '_stopPropagation($event)'
2606
3403
  },
@@ -2665,11 +3462,6 @@
2665
3462
  function () {
2666
3463
  var _this = this;
2667
3464
  this.setConfig();
2668
- this._datepickerRef = this._datepicker
2669
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
2670
- .attach(BsDatepickerInlineContainerComponent)
2671
- .to(this._elementRef)
2672
- .show();
2673
3465
  // if date changes from external source (model -> view)
2674
3466
  this._subs.push(this.bsValueChange.subscribe((/**
2675
3467
  * @param {?} value
@@ -2701,21 +3493,27 @@
2701
3493
  }
2702
3494
  if (changes.minDate) {
2703
3495
  this._datepickerRef.instance.minDate = this.minDate;
2704
- this._datepickerRef.instance.value = this._bsValue;
3496
+ this.setConfig();
2705
3497
  }
2706
3498
  if (changes.maxDate) {
2707
3499
  this._datepickerRef.instance.maxDate = this.maxDate;
2708
- this._datepickerRef.instance.value = this._bsValue;
3500
+ this.setConfig();
2709
3501
  }
2710
3502
  if (changes.datesDisabled) {
2711
3503
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3504
+ this.setConfig();
3505
+ }
3506
+ if (changes.datesEnabled) {
3507
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
2712
3508
  this._datepickerRef.instance.value = this._bsValue;
2713
3509
  }
2714
3510
  if (changes.isDisabled) {
2715
3511
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3512
+ this.setConfig();
2716
3513
  }
2717
3514
  if (changes.dateCustomClasses) {
2718
3515
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3516
+ this.setConfig();
2719
3517
  }
2720
3518
  };
2721
3519
  /**
@@ -2730,14 +3528,23 @@
2730
3528
  * @return {?}
2731
3529
  */
2732
3530
  function () {
3531
+ if (this._datepicker) {
3532
+ this._datepicker.hide();
3533
+ }
2733
3534
  this._config = Object.assign({}, this._config, this.bsConfig, {
2734
3535
  value: this._bsValue,
2735
3536
  isDisabled: this.isDisabled,
2736
3537
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
2737
3538
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
2738
3539
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
2739
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
3540
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
3541
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled
2740
3542
  });
3543
+ this._datepickerRef = this._datepicker
3544
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
3545
+ .attach(BsDatepickerInlineContainerComponent)
3546
+ .to(this._elementRef)
3547
+ .show();
2741
3548
  };
2742
3549
  /**
2743
3550
  * @return {?}
@@ -2769,11 +3576,78 @@
2769
3576
  minDate: [{ type: core.Input }],
2770
3577
  maxDate: [{ type: core.Input }],
2771
3578
  dateCustomClasses: [{ type: core.Input }],
3579
+ datesEnabled: [{ type: core.Input }],
2772
3580
  datesDisabled: [{ type: core.Input }],
2773
3581
  bsValueChange: [{ type: core.Output }]
2774
3582
  };
2775
3583
  return BsDatepickerInlineDirective;
2776
3584
  }());
3585
+ if (false) {
3586
+ /** @type {?} */
3587
+ BsDatepickerInlineDirective.prototype._bsValue;
3588
+ /**
3589
+ * Config object for datepicker
3590
+ * @type {?}
3591
+ */
3592
+ BsDatepickerInlineDirective.prototype.bsConfig;
3593
+ /**
3594
+ * Indicates whether datepicker is enabled or not
3595
+ * @type {?}
3596
+ */
3597
+ BsDatepickerInlineDirective.prototype.isDisabled;
3598
+ /**
3599
+ * Minimum date which is available for selection
3600
+ * @type {?}
3601
+ */
3602
+ BsDatepickerInlineDirective.prototype.minDate;
3603
+ /**
3604
+ * Maximum date which is available for selection
3605
+ * @type {?}
3606
+ */
3607
+ BsDatepickerInlineDirective.prototype.maxDate;
3608
+ /**
3609
+ * Date custom classes
3610
+ * @type {?}
3611
+ */
3612
+ BsDatepickerInlineDirective.prototype.dateCustomClasses;
3613
+ /**
3614
+ * Disable specific dates
3615
+ * @type {?}
3616
+ */
3617
+ BsDatepickerInlineDirective.prototype.datesEnabled;
3618
+ /**
3619
+ * Enable specific dates
3620
+ * @type {?}
3621
+ */
3622
+ BsDatepickerInlineDirective.prototype.datesDisabled;
3623
+ /**
3624
+ * Emits when datepicker value has been changed
3625
+ * @type {?}
3626
+ */
3627
+ BsDatepickerInlineDirective.prototype.bsValueChange;
3628
+ /**
3629
+ * @type {?}
3630
+ * @protected
3631
+ */
3632
+ BsDatepickerInlineDirective.prototype._subs;
3633
+ /**
3634
+ * @type {?}
3635
+ * @private
3636
+ */
3637
+ BsDatepickerInlineDirective.prototype._datepicker;
3638
+ /**
3639
+ * @type {?}
3640
+ * @private
3641
+ */
3642
+ BsDatepickerInlineDirective.prototype._datepickerRef;
3643
+ /** @type {?} */
3644
+ BsDatepickerInlineDirective.prototype._config;
3645
+ /**
3646
+ * @type {?}
3647
+ * @private
3648
+ */
3649
+ BsDatepickerInlineDirective.prototype._elementRef;
3650
+ }
2777
3651
 
2778
3652
  /**
2779
3653
  * @fileoverview added by tsickle
@@ -2796,6 +3670,15 @@
2796
3670
  ];
2797
3671
  return BsDaterangepickerInlineConfig;
2798
3672
  }(BsDatepickerConfig));
3673
+ if (false) {
3674
+ /** @type {?} */
3675
+ BsDaterangepickerInlineConfig.prototype.displayMonths;
3676
+ /**
3677
+ * turn on/off animation
3678
+ * @type {?}
3679
+ */
3680
+ BsDaterangepickerInlineConfig.prototype.isAnimated;
3681
+ }
2799
3682
 
2800
3683
  /**
2801
3684
  * @fileoverview added by tsickle
@@ -2813,8 +3696,10 @@
2813
3696
  _this.valueChange = new core.EventEmitter();
2814
3697
  _this.animationState = 'void';
2815
3698
  _this._rangeStack = [];
3699
+ _this.chosenRange = [];
2816
3700
  _this._subs = [];
2817
3701
  _this._effects = _effects;
3702
+ _this.customRanges = _this._config.ranges;
2818
3703
  _renderer.setStyle(_element.nativeElement, 'display', 'block');
2819
3704
  _renderer.setStyle(_element.nativeElement, 'position', 'absolute');
2820
3705
  return _this;
@@ -2879,7 +3764,10 @@
2879
3764
  * @param {?} date
2880
3765
  * @return {?}
2881
3766
  */
2882
- function (date) { return _this.valueChange.emit(date); })));
3767
+ function (date) {
3768
+ _this.valueChange.emit(date);
3769
+ _this.chosenRange = date;
3770
+ })));
2883
3771
  };
2884
3772
  Object.defineProperty(BsDaterangepickerContainerComponent.prototype, "isTopPosition", {
2885
3773
  get: /**
@@ -2909,6 +3797,9 @@
2909
3797
  * @return {?}
2910
3798
  */
2911
3799
  function (day) {
3800
+ if (!day) {
3801
+ return;
3802
+ }
2912
3803
  /** @type {?} */
2913
3804
  var isDisabled = this.isOtherMonthsActive ? day.isDisabled : (day.isOtherMonth || day.isDisabled);
2914
3805
  if (isDisabled) {
@@ -2956,11 +3847,23 @@
2956
3847
  }
2957
3848
  this._effects.destroy();
2958
3849
  };
3850
+ /**
3851
+ * @param {?} dates
3852
+ * @return {?}
3853
+ */
3854
+ BsDaterangepickerContainerComponent.prototype.setRangeOnCalendar = /**
3855
+ * @param {?} dates
3856
+ * @return {?}
3857
+ */
3858
+ function (dates) {
3859
+ this._rangeStack = (dates === null) ? [] : (dates.value instanceof Date ? [dates.value] : dates.value);
3860
+ this._store.dispatch(this._actions.selectRange(this._rangeStack));
3861
+ };
2959
3862
  BsDaterangepickerContainerComponent.decorators = [
2960
3863
  { type: core.Component, args: [{
2961
3864
  selector: 'bs-daterangepicker-container',
2962
3865
  providers: [BsDatepickerStore, BsDatepickerEffects],
2963
- 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",
3866
+ 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",
2964
3867
  host: {
2965
3868
  class: 'bottom',
2966
3869
  '(click)': '_stopPropagation($event)',
@@ -2982,6 +3885,43 @@
2982
3885
  ]; };
2983
3886
  return BsDaterangepickerContainerComponent;
2984
3887
  }(BsDatepickerAbstractComponent));
3888
+ if (false) {
3889
+ /** @type {?} */
3890
+ BsDaterangepickerContainerComponent.prototype.valueChange;
3891
+ /** @type {?} */
3892
+ BsDaterangepickerContainerComponent.prototype.animationState;
3893
+ /** @type {?} */
3894
+ BsDaterangepickerContainerComponent.prototype._rangeStack;
3895
+ /** @type {?} */
3896
+ BsDaterangepickerContainerComponent.prototype.chosenRange;
3897
+ /** @type {?} */
3898
+ BsDaterangepickerContainerComponent.prototype._subs;
3899
+ /**
3900
+ * @type {?}
3901
+ * @private
3902
+ */
3903
+ BsDaterangepickerContainerComponent.prototype._config;
3904
+ /**
3905
+ * @type {?}
3906
+ * @private
3907
+ */
3908
+ BsDaterangepickerContainerComponent.prototype._store;
3909
+ /**
3910
+ * @type {?}
3911
+ * @private
3912
+ */
3913
+ BsDaterangepickerContainerComponent.prototype._element;
3914
+ /**
3915
+ * @type {?}
3916
+ * @private
3917
+ */
3918
+ BsDaterangepickerContainerComponent.prototype._actions;
3919
+ /**
3920
+ * @type {?}
3921
+ * @private
3922
+ */
3923
+ BsDaterangepickerContainerComponent.prototype._positionService;
3924
+ }
2985
3925
 
2986
3926
  /**
2987
3927
  * @fileoverview added by tsickle
@@ -2999,7 +3939,7 @@
2999
3939
  { type: core.Component, args: [{
3000
3940
  selector: 'bs-daterangepicker-inline-container',
3001
3941
  providers: [BsDatepickerStore, BsDatepickerEffects],
3002
- 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",
3942
+ 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",
3003
3943
  host: {
3004
3944
  '(click)': '_stopPropagation($event)'
3005
3945
  },
@@ -3064,11 +4004,6 @@
3064
4004
  function () {
3065
4005
  var _this = this;
3066
4006
  this.setConfig();
3067
- this._datepickerRef = this._datepicker
3068
- .provide({ provide: BsDatepickerConfig, useValue: this._config })
3069
- .attach(BsDaterangepickerInlineContainerComponent)
3070
- .to(this._elementRef)
3071
- .show();
3072
4007
  // if date changes from external source (model -> view)
3073
4008
  this._subs.push(this.bsValueChange.subscribe((/**
3074
4009
  * @param {?} value
@@ -3106,18 +4041,30 @@
3106
4041
  }
3107
4042
  if (changes.minDate) {
3108
4043
  this._datepickerRef.instance.minDate = this.minDate;
4044
+ this.setConfig();
3109
4045
  }
3110
4046
  if (changes.maxDate) {
3111
4047
  this._datepickerRef.instance.maxDate = this.maxDate;
4048
+ this.setConfig();
4049
+ }
4050
+ if (changes.datesEnabled) {
4051
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
3112
4052
  }
3113
4053
  if (changes.datesDisabled) {
3114
4054
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
4055
+ this.setConfig();
4056
+ }
4057
+ if (changes.daysDisabled) {
4058
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
4059
+ this.setConfig();
3115
4060
  }
3116
4061
  if (changes.isDisabled) {
3117
4062
  this._datepickerRef.instance.isDisabled = this.isDisabled;
4063
+ this.setConfig();
3118
4064
  }
3119
4065
  if (changes.dateCustomClasses) {
3120
4066
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
4067
+ this.setConfig();
3121
4068
  }
3122
4069
  };
3123
4070
  /**
@@ -3132,14 +4079,25 @@
3132
4079
  * @return {?}
3133
4080
  */
3134
4081
  function () {
4082
+ if (this._datepicker) {
4083
+ this._datepicker.hide();
4084
+ }
3135
4085
  this._config = Object.assign({}, this._config, this.bsConfig, {
3136
4086
  value: this._bsValue,
3137
4087
  isDisabled: this.isDisabled,
3138
4088
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3139
4089
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
4090
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3140
4091
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3141
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
4092
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4093
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4094
+ ranges: this.bsConfig && this.bsConfig.ranges
3142
4095
  });
4096
+ this._datepickerRef = this._datepicker
4097
+ .provide({ provide: BsDatepickerConfig, useValue: this._config })
4098
+ .attach(BsDaterangepickerInlineContainerComponent)
4099
+ .to(this._elementRef)
4100
+ .show();
3143
4101
  };
3144
4102
  /**
3145
4103
  * @return {?}
@@ -3171,11 +4129,84 @@
3171
4129
  minDate: [{ type: core.Input }],
3172
4130
  maxDate: [{ type: core.Input }],
3173
4131
  dateCustomClasses: [{ type: core.Input }],
4132
+ daysDisabled: [{ type: core.Input }],
3174
4133
  datesDisabled: [{ type: core.Input }],
4134
+ datesEnabled: [{ type: core.Input }],
3175
4135
  bsValueChange: [{ type: core.Output }]
3176
4136
  };
3177
4137
  return BsDaterangepickerInlineDirective;
3178
4138
  }());
4139
+ if (false) {
4140
+ /** @type {?} */
4141
+ BsDaterangepickerInlineDirective.prototype._bsValue;
4142
+ /**
4143
+ * Config object for datepicker
4144
+ * @type {?}
4145
+ */
4146
+ BsDaterangepickerInlineDirective.prototype.bsConfig;
4147
+ /**
4148
+ * Indicates whether datepicker is enabled or not
4149
+ * @type {?}
4150
+ */
4151
+ BsDaterangepickerInlineDirective.prototype.isDisabled;
4152
+ /**
4153
+ * Minimum date which is available for selection
4154
+ * @type {?}
4155
+ */
4156
+ BsDaterangepickerInlineDirective.prototype.minDate;
4157
+ /**
4158
+ * Maximum date which is available for selection
4159
+ * @type {?}
4160
+ */
4161
+ BsDaterangepickerInlineDirective.prototype.maxDate;
4162
+ /**
4163
+ * Date custom classes
4164
+ * @type {?}
4165
+ */
4166
+ BsDaterangepickerInlineDirective.prototype.dateCustomClasses;
4167
+ /**
4168
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
4169
+ * @type {?}
4170
+ */
4171
+ BsDaterangepickerInlineDirective.prototype.daysDisabled;
4172
+ /**
4173
+ * Disable specific dates
4174
+ * @type {?}
4175
+ */
4176
+ BsDaterangepickerInlineDirective.prototype.datesDisabled;
4177
+ /**
4178
+ * Disable specific dates
4179
+ * @type {?}
4180
+ */
4181
+ BsDaterangepickerInlineDirective.prototype.datesEnabled;
4182
+ /**
4183
+ * Emits when daterangepicker value has been changed
4184
+ * @type {?}
4185
+ */
4186
+ BsDaterangepickerInlineDirective.prototype.bsValueChange;
4187
+ /**
4188
+ * @type {?}
4189
+ * @protected
4190
+ */
4191
+ BsDaterangepickerInlineDirective.prototype._subs;
4192
+ /**
4193
+ * @type {?}
4194
+ * @private
4195
+ */
4196
+ BsDaterangepickerInlineDirective.prototype._datepicker;
4197
+ /**
4198
+ * @type {?}
4199
+ * @private
4200
+ */
4201
+ BsDaterangepickerInlineDirective.prototype._datepickerRef;
4202
+ /** @type {?} */
4203
+ BsDaterangepickerInlineDirective.prototype._config;
4204
+ /**
4205
+ * @type {?}
4206
+ * @private
4207
+ */
4208
+ BsDaterangepickerInlineDirective.prototype._elementRef;
4209
+ }
3179
4210
 
3180
4211
  /**
3181
4212
  * @fileoverview added by tsickle
@@ -3235,6 +4266,19 @@
3235
4266
  _this._setInputValue(_this._value);
3236
4267
  }));
3237
4268
  }
4269
+ /**
4270
+ * @param {?} event
4271
+ * @return {?}
4272
+ */
4273
+ BsDatepickerInputDirective.prototype.onKeydownEvent = /**
4274
+ * @param {?} event
4275
+ * @return {?}
4276
+ */
4277
+ function (event) {
4278
+ if (event.keyCode === 13 || event.code === 'Enter') {
4279
+ this.hide();
4280
+ }
4281
+ };
3238
4282
  /**
3239
4283
  * @param {?} value
3240
4284
  * @return {?}
@@ -3261,6 +4305,9 @@
3261
4305
  /* tslint:disable-next-line: no-any*/
3262
4306
  this.writeValue(((/** @type {?} */ (event.target))).value);
3263
4307
  this._onChange(this._value);
4308
+ if (this._picker._config.returnFocusToInput) {
4309
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4310
+ }
3264
4311
  this._onTouched();
3265
4312
  };
3266
4313
  /**
@@ -3285,9 +4332,11 @@
3285
4332
  return { bsDate: { invalid: _value } };
3286
4333
  }
3287
4334
  if (this._picker && this._picker.minDate && chronos.isBefore(_value, this._picker.minDate, 'date')) {
4335
+ this.writeValue(this._picker.minDate);
3288
4336
  return { bsDate: { minDate: this._picker.minDate } };
3289
4337
  }
3290
4338
  if (this._picker && this._picker.maxDate && chronos.isAfter(_value, this._picker.maxDate, 'date')) {
4339
+ this.writeValue(this._picker.maxDate);
3291
4340
  return { bsDate: { maxDate: this._picker.maxDate } };
3292
4341
  }
3293
4342
  }
@@ -3386,6 +4435,9 @@
3386
4435
  function () {
3387
4436
  this._picker.hide();
3388
4437
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
4438
+ if (this._picker._config.returnFocusToInput) {
4439
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
4440
+ }
3389
4441
  };
3390
4442
  BsDatepickerInputDirective.decorators = [
3391
4443
  { type: core.Directive, args: [{
@@ -3393,6 +4445,7 @@
3393
4445
  host: {
3394
4446
  '(change)': 'onChange($event)',
3395
4447
  '(keyup.esc)': 'hide()',
4448
+ '(keydown)': 'onKeydownEvent($event)',
3396
4449
  '(blur)': 'onBlur()'
3397
4450
  },
3398
4451
  providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]
@@ -3408,6 +4461,53 @@
3408
4461
  ]; };
3409
4462
  return BsDatepickerInputDirective;
3410
4463
  }());
4464
+ if (false) {
4465
+ /**
4466
+ * @type {?}
4467
+ * @private
4468
+ */
4469
+ BsDatepickerInputDirective.prototype._onChange;
4470
+ /**
4471
+ * @type {?}
4472
+ * @private
4473
+ */
4474
+ BsDatepickerInputDirective.prototype._onTouched;
4475
+ /**
4476
+ * @type {?}
4477
+ * @private
4478
+ */
4479
+ BsDatepickerInputDirective.prototype._validatorChange;
4480
+ /**
4481
+ * @type {?}
4482
+ * @private
4483
+ */
4484
+ BsDatepickerInputDirective.prototype._value;
4485
+ /**
4486
+ * @type {?}
4487
+ * @private
4488
+ */
4489
+ BsDatepickerInputDirective.prototype._picker;
4490
+ /**
4491
+ * @type {?}
4492
+ * @private
4493
+ */
4494
+ BsDatepickerInputDirective.prototype._localeService;
4495
+ /**
4496
+ * @type {?}
4497
+ * @private
4498
+ */
4499
+ BsDatepickerInputDirective.prototype._renderer;
4500
+ /**
4501
+ * @type {?}
4502
+ * @private
4503
+ */
4504
+ BsDatepickerInputDirective.prototype._elRef;
4505
+ /**
4506
+ * @type {?}
4507
+ * @private
4508
+ */
4509
+ BsDatepickerInputDirective.prototype.changeDetection;
4510
+ }
3411
4511
 
3412
4512
  /**
3413
4513
  * @fileoverview added by tsickle
@@ -3426,6 +4526,10 @@
3426
4526
  ];
3427
4527
  return BsDaterangepickerConfig;
3428
4528
  }(BsDatepickerConfig));
4529
+ if (false) {
4530
+ /** @type {?} */
4531
+ BsDaterangepickerConfig.prototype.displayMonths;
4532
+ }
3429
4533
 
3430
4534
  /**
3431
4535
  * @fileoverview added by tsickle
@@ -3434,6 +4538,8 @@
3434
4538
  var BsDaterangepickerDirective = /** @class */ (function () {
3435
4539
  function BsDaterangepickerDirective(_config, _elementRef, _renderer, _viewContainerRef, cis) {
3436
4540
  this._config = _config;
4541
+ this._elementRef = _elementRef;
4542
+ this._renderer = _renderer;
3437
4543
  /**
3438
4544
  * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
3439
4545
  */
@@ -3461,6 +4567,7 @@
3461
4567
  Object.assign(this, _config);
3462
4568
  this.onShown = this._datepicker.onShown;
3463
4569
  this.onHidden = this._datepicker.onHidden;
4570
+ this.isOpen$ = new rxjs.BehaviorSubject(this.isOpen);
3464
4571
  }
3465
4572
  Object.defineProperty(BsDaterangepickerDirective.prototype, "isOpen", {
3466
4573
  /**
@@ -3478,12 +4585,7 @@
3478
4585
  * @return {?}
3479
4586
  */
3480
4587
  function (value) {
3481
- if (value) {
3482
- this.show();
3483
- }
3484
- else {
3485
- this.hide();
3486
- }
4588
+ this.isOpen$.next(value);
3487
4589
  },
3488
4590
  enumerable: true,
3489
4591
  configurable: true
@@ -3515,6 +4617,7 @@
3515
4617
  */
3516
4618
  function () {
3517
4619
  var _this = this;
4620
+ this.isDestroy$ = new rxjs.Subject();
3518
4621
  this._datepicker.listen({
3519
4622
  outsideClick: this.outsideClick,
3520
4623
  outsideEsc: this.outsideEsc,
@@ -3547,6 +4650,12 @@
3547
4650
  if (changes.datesDisabled) {
3548
4651
  this._datepickerRef.instance.datesDisabled = this.datesDisabled;
3549
4652
  }
4653
+ if (changes.datesEnabled) {
4654
+ this._datepickerRef.instance.datesEnabled = this.datesEnabled;
4655
+ }
4656
+ if (changes.daysDisabled) {
4657
+ this._datepickerRef.instance.daysDisabled = this.daysDisabled;
4658
+ }
3550
4659
  if (changes.isDisabled) {
3551
4660
  this._datepickerRef.instance.isDisabled = this.isDisabled;
3552
4661
  }
@@ -3554,6 +4663,24 @@
3554
4663
  this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;
3555
4664
  }
3556
4665
  };
4666
+ /**
4667
+ * @return {?}
4668
+ */
4669
+ BsDaterangepickerDirective.prototype.ngAfterViewInit = /**
4670
+ * @return {?}
4671
+ */
4672
+ function () {
4673
+ var _this = this;
4674
+ this.isOpen$.pipe(operators.filter((/**
4675
+ * @param {?} isOpen
4676
+ * @return {?}
4677
+ */
4678
+ function (isOpen) { return isOpen !== _this.isOpen; })), operators.takeUntil(this.isDestroy$))
4679
+ .subscribe((/**
4680
+ * @return {?}
4681
+ */
4682
+ function () { return _this.toggle(); }));
4683
+ };
3557
4684
  /**
3558
4685
  * Opens an element’s datepicker. This is considered a “manual” triggering of
3559
4686
  * the datepicker.
@@ -3621,8 +4748,11 @@
3621
4748
  isDisabled: this.isDisabled,
3622
4749
  minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,
3623
4750
  maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,
4751
+ daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,
3624
4752
  dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,
3625
- datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled
4753
+ datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,
4754
+ datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,
4755
+ ranges: this.bsConfig && this.bsConfig.ranges
3626
4756
  });
3627
4757
  };
3628
4758
  /**
@@ -3657,6 +4787,9 @@
3657
4787
  }
3658
4788
  finally { if (e_1) throw e_1.error; }
3659
4789
  }
4790
+ if (this._config.returnFocusToInput) {
4791
+ this._renderer.selectRootElement(this._elementRef.nativeElement).focus();
4792
+ }
3660
4793
  };
3661
4794
  /**
3662
4795
  * Toggles an element’s datepicker. This is considered a “manual” triggering
@@ -3686,6 +4819,11 @@
3686
4819
  */
3687
4820
  function () {
3688
4821
  this._datepicker.dispose();
4822
+ this.isOpen$.next(false);
4823
+ if (this.isDestroy$) {
4824
+ this.isDestroy$.next();
4825
+ this.isDestroy$.complete();
4826
+ }
3689
4827
  };
3690
4828
  BsDaterangepickerDirective.decorators = [
3691
4829
  { type: core.Directive, args: [{
@@ -3716,11 +4854,126 @@
3716
4854
  minDate: [{ type: core.Input }],
3717
4855
  maxDate: [{ type: core.Input }],
3718
4856
  dateCustomClasses: [{ type: core.Input }],
4857
+ daysDisabled: [{ type: core.Input }],
3719
4858
  datesDisabled: [{ type: core.Input }],
4859
+ datesEnabled: [{ type: core.Input }],
3720
4860
  bsValueChange: [{ type: core.Output }]
3721
4861
  };
3722
4862
  return BsDaterangepickerDirective;
3723
4863
  }());
4864
+ if (false) {
4865
+ /**
4866
+ * Placement of a daterangepicker. Accepts: "top", "bottom", "left", "right"
4867
+ * @type {?}
4868
+ */
4869
+ BsDaterangepickerDirective.prototype.placement;
4870
+ /**
4871
+ * Specifies events that should trigger. Supports a space separated list of
4872
+ * event names.
4873
+ * @type {?}
4874
+ */
4875
+ BsDaterangepickerDirective.prototype.triggers;
4876
+ /**
4877
+ * Close daterangepicker on outside click
4878
+ * @type {?}
4879
+ */
4880
+ BsDaterangepickerDirective.prototype.outsideClick;
4881
+ /**
4882
+ * A selector specifying the element the daterangepicker should be appended to.
4883
+ * @type {?}
4884
+ */
4885
+ BsDaterangepickerDirective.prototype.container;
4886
+ /** @type {?} */
4887
+ BsDaterangepickerDirective.prototype.outsideEsc;
4888
+ /**
4889
+ * Emits an event when the daterangepicker is shown
4890
+ * @type {?}
4891
+ */
4892
+ BsDaterangepickerDirective.prototype.onShown;
4893
+ /**
4894
+ * Emits an event when the daterangepicker is hidden
4895
+ * @type {?}
4896
+ */
4897
+ BsDaterangepickerDirective.prototype.onHidden;
4898
+ /** @type {?} */
4899
+ BsDaterangepickerDirective.prototype._bsValue;
4900
+ /** @type {?} */
4901
+ BsDaterangepickerDirective.prototype.isOpen$;
4902
+ /** @type {?} */
4903
+ BsDaterangepickerDirective.prototype.isDestroy$;
4904
+ /**
4905
+ * Config object for daterangepicker
4906
+ * @type {?}
4907
+ */
4908
+ BsDaterangepickerDirective.prototype.bsConfig;
4909
+ /**
4910
+ * Indicates whether daterangepicker's content is enabled or not
4911
+ * @type {?}
4912
+ */
4913
+ BsDaterangepickerDirective.prototype.isDisabled;
4914
+ /**
4915
+ * Minimum date which is available for selection
4916
+ * @type {?}
4917
+ */
4918
+ BsDaterangepickerDirective.prototype.minDate;
4919
+ /**
4920
+ * Maximum date which is available for selection
4921
+ * @type {?}
4922
+ */
4923
+ BsDaterangepickerDirective.prototype.maxDate;
4924
+ /**
4925
+ * Date custom classes
4926
+ * @type {?}
4927
+ */
4928
+ BsDaterangepickerDirective.prototype.dateCustomClasses;
4929
+ /**
4930
+ * Disable specific days, e.g. [0,6] will disable all Saturdays and Sundays
4931
+ * @type {?}
4932
+ */
4933
+ BsDaterangepickerDirective.prototype.daysDisabled;
4934
+ /**
4935
+ * Disable specific dates
4936
+ * @type {?}
4937
+ */
4938
+ BsDaterangepickerDirective.prototype.datesDisabled;
4939
+ /**
4940
+ * Enable specific dates
4941
+ * @type {?}
4942
+ */
4943
+ BsDaterangepickerDirective.prototype.datesEnabled;
4944
+ /**
4945
+ * Emits when daterangepicker value has been changed
4946
+ * @type {?}
4947
+ */
4948
+ BsDaterangepickerDirective.prototype.bsValueChange;
4949
+ /**
4950
+ * @type {?}
4951
+ * @protected
4952
+ */
4953
+ BsDaterangepickerDirective.prototype._subs;
4954
+ /**
4955
+ * @type {?}
4956
+ * @private
4957
+ */
4958
+ BsDaterangepickerDirective.prototype._datepicker;
4959
+ /**
4960
+ * @type {?}
4961
+ * @private
4962
+ */
4963
+ BsDaterangepickerDirective.prototype._datepickerRef;
4964
+ /** @type {?} */
4965
+ BsDaterangepickerDirective.prototype._config;
4966
+ /**
4967
+ * @type {?}
4968
+ * @private
4969
+ */
4970
+ BsDaterangepickerDirective.prototype._elementRef;
4971
+ /**
4972
+ * @type {?}
4973
+ * @private
4974
+ */
4975
+ BsDaterangepickerDirective.prototype._renderer;
4976
+ }
3724
4977
 
3725
4978
  /**
3726
4979
  * @fileoverview added by tsickle
@@ -3780,6 +5033,19 @@
3780
5033
  _this._setInputValue(_this._value);
3781
5034
  }));
3782
5035
  }
5036
+ /**
5037
+ * @param {?} event
5038
+ * @return {?}
5039
+ */
5040
+ BsDaterangepickerInputDirective.prototype.onKeydownEvent = /**
5041
+ * @param {?} event
5042
+ * @return {?}
5043
+ */
5044
+ function (event) {
5045
+ if (event.keyCode === 13 || event.code === 'Enter') {
5046
+ this.hide();
5047
+ }
5048
+ };
3783
5049
  /**
3784
5050
  * @param {?} date
3785
5051
  * @return {?}
@@ -3814,6 +5080,9 @@
3814
5080
  /* tslint:disable-next-line: no-any*/
3815
5081
  this.writeValue(((/** @type {?} */ (event.target))).value);
3816
5082
  this._onChange(this._value);
5083
+ if (this._picker._config.returnFocusToInput) {
5084
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
5085
+ }
3817
5086
  this._onTouched();
3818
5087
  };
3819
5088
  /**
@@ -3827,9 +5096,18 @@
3827
5096
  function (c) {
3828
5097
  /** @type {?} */
3829
5098
  var _value = c.value;
5099
+ /** @type {?} */
5100
+ var errors = [];
3830
5101
  if (_value === null || _value === undefined || !chronos.isArray(_value)) {
3831
5102
  return null;
3832
5103
  }
5104
+ // @ts-ignore
5105
+ _value.sort((/**
5106
+ * @param {?} a
5107
+ * @param {?} b
5108
+ * @return {?}
5109
+ */
5110
+ function (a, b) { return a - b; }));
3833
5111
  /** @type {?} */
3834
5112
  var _isFirstDateValid = chronos.isDateValid(_value[0]);
3835
5113
  /** @type {?} */
@@ -3841,10 +5119,16 @@
3841
5119
  return { bsDate: { invalid: _value[1] } };
3842
5120
  }
3843
5121
  if (this._picker && this._picker.minDate && chronos.isBefore(_value[0], this._picker.minDate, 'date')) {
3844
- return { bsDate: { minDate: this._picker.minDate } };
5122
+ _value[0] = this._picker.minDate;
5123
+ errors.push({ bsDate: { minDate: this._picker.minDate } });
3845
5124
  }
3846
5125
  if (this._picker && this._picker.maxDate && chronos.isAfter(_value[1], this._picker.maxDate, 'date')) {
3847
- return { bsDate: { maxDate: this._picker.maxDate } };
5126
+ _value[1] = this._picker.maxDate;
5127
+ errors.push({ bsDate: { maxDate: this._picker.maxDate } });
5128
+ }
5129
+ if (errors.length > 0) {
5130
+ this.writeValue(_value);
5131
+ return errors;
3848
5132
  }
3849
5133
  };
3850
5134
  /**
@@ -3968,6 +5252,9 @@
3968
5252
  function () {
3969
5253
  this._picker.hide();
3970
5254
  this._renderer.selectRootElement(this._elRef.nativeElement).blur();
5255
+ if (this._picker._config.returnFocusToInput) {
5256
+ this._renderer.selectRootElement(this._elRef.nativeElement).focus();
5257
+ }
3971
5258
  };
3972
5259
  BsDaterangepickerInputDirective.decorators = [
3973
5260
  { type: core.Directive, args: [{
@@ -3975,6 +5262,7 @@
3975
5262
  host: {
3976
5263
  '(change)': 'onChange($event)',
3977
5264
  '(keyup.esc)': 'hide()',
5265
+ '(keydown)': 'onKeydownEvent($event)',
3978
5266
  '(blur)': 'onBlur()'
3979
5267
  },
3980
5268
  providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]
@@ -3990,6 +5278,53 @@
3990
5278
  ]; };
3991
5279
  return BsDaterangepickerInputDirective;
3992
5280
  }());
5281
+ if (false) {
5282
+ /**
5283
+ * @type {?}
5284
+ * @private
5285
+ */
5286
+ BsDaterangepickerInputDirective.prototype._onChange;
5287
+ /**
5288
+ * @type {?}
5289
+ * @private
5290
+ */
5291
+ BsDaterangepickerInputDirective.prototype._onTouched;
5292
+ /**
5293
+ * @type {?}
5294
+ * @private
5295
+ */
5296
+ BsDaterangepickerInputDirective.prototype._validatorChange;
5297
+ /**
5298
+ * @type {?}
5299
+ * @private
5300
+ */
5301
+ BsDaterangepickerInputDirective.prototype._value;
5302
+ /**
5303
+ * @type {?}
5304
+ * @private
5305
+ */
5306
+ BsDaterangepickerInputDirective.prototype._picker;
5307
+ /**
5308
+ * @type {?}
5309
+ * @private
5310
+ */
5311
+ BsDaterangepickerInputDirective.prototype._localeService;
5312
+ /**
5313
+ * @type {?}
5314
+ * @private
5315
+ */
5316
+ BsDaterangepickerInputDirective.prototype._renderer;
5317
+ /**
5318
+ * @type {?}
5319
+ * @private
5320
+ */
5321
+ BsDaterangepickerInputDirective.prototype._elRef;
5322
+ /**
5323
+ * @type {?}
5324
+ * @private
5325
+ */
5326
+ BsDaterangepickerInputDirective.prototype.changeDetection;
5327
+ }
3993
5328
 
3994
5329
  /**
3995
5330
  * @fileoverview added by tsickle
@@ -4025,27 +5360,79 @@
4025
5360
  };
4026
5361
  return BsCurrentDateViewComponent;
4027
5362
  }());
5363
+ if (false) {
5364
+ /** @type {?} */
5365
+ BsCurrentDateViewComponent.prototype.title;
5366
+ }
4028
5367
 
4029
5368
  /**
4030
5369
  * @fileoverview added by tsickle
4031
5370
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4032
5371
  */
5372
+ /**
5373
+ * @record
5374
+ */
5375
+ function BsCustomDates() { }
5376
+ if (false) {
5377
+ /** @type {?} */
5378
+ BsCustomDates.prototype.label;
5379
+ /** @type {?} */
5380
+ BsCustomDates.prototype.value;
5381
+ }
4033
5382
  var BsCustomDatesViewComponent = /** @class */ (function () {
4034
5383
  function BsCustomDatesViewComponent() {
5384
+ this.onSelect = new core.EventEmitter();
5385
+ this.customRange = null;
4035
5386
  }
5387
+ /**
5388
+ * @param {?} range
5389
+ * @return {?}
5390
+ */
5391
+ BsCustomDatesViewComponent.prototype.selectFromRanges = /**
5392
+ * @param {?} range
5393
+ * @return {?}
5394
+ */
5395
+ function (range) {
5396
+ this.onSelect.emit(range);
5397
+ };
5398
+ /**
5399
+ * @return {?}
5400
+ */
5401
+ BsCustomDatesViewComponent.prototype.checkRange = /**
5402
+ * @return {?}
5403
+ */
5404
+ function () {
5405
+ var _this = this;
5406
+ return this.ranges ? this.ranges.filter((/**
5407
+ * @param {?} range
5408
+ * @return {?}
5409
+ */
5410
+ function (range) { return range.value === _this.selectedRange; })).length > 0 : false;
5411
+ };
4036
5412
  BsCustomDatesViewComponent.decorators = [
4037
5413
  { type: core.Component, args: [{
4038
5414
  selector: 'bs-custom-date-view',
4039
- 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 ",
5415
+ 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 ",
4040
5416
  changeDetection: core.ChangeDetectionStrategy.OnPush
4041
5417
  }] }
4042
5418
  ];
4043
5419
  BsCustomDatesViewComponent.propDecorators = {
4044
- isCustomRangeShown: [{ type: core.Input }],
4045
- ranges: [{ type: core.Input }]
5420
+ ranges: [{ type: core.Input }],
5421
+ selectedRange: [{ type: core.Input }],
5422
+ onSelect: [{ type: core.Output }]
4046
5423
  };
4047
5424
  return BsCustomDatesViewComponent;
4048
5425
  }());
5426
+ if (false) {
5427
+ /** @type {?} */
5428
+ BsCustomDatesViewComponent.prototype.ranges;
5429
+ /** @type {?} */
5430
+ BsCustomDatesViewComponent.prototype.selectedRange;
5431
+ /** @type {?} */
5432
+ BsCustomDatesViewComponent.prototype.onSelect;
5433
+ /** @type {?} */
5434
+ BsCustomDatesViewComponent.prototype.customRange;
5435
+ }
4049
5436
 
4050
5437
  /**
4051
5438
  * @fileoverview added by tsickle
@@ -4112,11 +5499,199 @@
4112
5499
  };
4113
5500
  return BsDatepickerDayDecoratorComponent;
4114
5501
  }());
5502
+ if (false) {
5503
+ /** @type {?} */
5504
+ BsDatepickerDayDecoratorComponent.prototype.day;
5505
+ /**
5506
+ * @type {?}
5507
+ * @private
5508
+ */
5509
+ BsDatepickerDayDecoratorComponent.prototype._config;
5510
+ /**
5511
+ * @type {?}
5512
+ * @private
5513
+ */
5514
+ BsDatepickerDayDecoratorComponent.prototype._elRef;
5515
+ /**
5516
+ * @type {?}
5517
+ * @private
5518
+ */
5519
+ BsDatepickerDayDecoratorComponent.prototype._renderer;
5520
+ }
4115
5521
 
4116
5522
  /**
4117
- * @fileoverview added by tsickle
4118
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5523
+ * @fileoverview added by tsickle
5524
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5525
+ */
5526
+ /**
5527
+ * **************
5528
+ * @record
5529
+ */
5530
+ function NavigationViewModel() { }
5531
+ if (false) {
5532
+ /** @type {?} */
5533
+ NavigationViewModel.prototype.monthTitle;
5534
+ /** @type {?} */
5535
+ NavigationViewModel.prototype.yearTitle;
5536
+ /** @type {?|undefined} */
5537
+ NavigationViewModel.prototype.hideLeftArrow;
5538
+ /** @type {?|undefined} */
5539
+ NavigationViewModel.prototype.hideRightArrow;
5540
+ /** @type {?|undefined} */
5541
+ NavigationViewModel.prototype.disableLeftArrow;
5542
+ /** @type {?|undefined} */
5543
+ NavigationViewModel.prototype.disableRightArrow;
5544
+ }
5545
+ /**
5546
+ * @record
5547
+ */
5548
+ function CalendarCellViewModel() { }
5549
+ if (false) {
5550
+ /** @type {?} */
5551
+ CalendarCellViewModel.prototype.date;
5552
+ /** @type {?} */
5553
+ CalendarCellViewModel.prototype.label;
5554
+ /** @type {?|undefined} */
5555
+ CalendarCellViewModel.prototype.isDisabled;
5556
+ /** @type {?|undefined} */
5557
+ CalendarCellViewModel.prototype.isHovered;
5558
+ /** @type {?|undefined} */
5559
+ CalendarCellViewModel.prototype.isSelected;
5560
+ }
5561
+ /**
5562
+ * **************
5563
+ * @record
5564
+ */
5565
+ function DayViewModel() { }
5566
+ if (false) {
5567
+ /** @type {?|undefined} */
5568
+ DayViewModel.prototype.isOtherMonthHovered;
5569
+ /** @type {?|undefined} */
5570
+ DayViewModel.prototype.isOtherMonth;
5571
+ /** @type {?|undefined} */
5572
+ DayViewModel.prototype.isInRange;
5573
+ /** @type {?|undefined} */
5574
+ DayViewModel.prototype.isSelectionStart;
5575
+ /** @type {?|undefined} */
5576
+ DayViewModel.prototype.isSelectionEnd;
5577
+ /** @type {?|undefined} */
5578
+ DayViewModel.prototype.isToday;
5579
+ /** @type {?|undefined} */
5580
+ DayViewModel.prototype.customClasses;
5581
+ /** @type {?|undefined} */
5582
+ DayViewModel.prototype.monthIndex;
5583
+ /** @type {?|undefined} */
5584
+ DayViewModel.prototype.weekIndex;
5585
+ /** @type {?|undefined} */
5586
+ DayViewModel.prototype.dayIndex;
5587
+ }
5588
+ /**
5589
+ * @record
5590
+ */
5591
+ function WeekViewModel() { }
5592
+ if (false) {
5593
+ /** @type {?} */
5594
+ WeekViewModel.prototype.days;
5595
+ /** @type {?|undefined} */
5596
+ WeekViewModel.prototype.isHovered;
5597
+ }
5598
+ /**
5599
+ * @record
5600
+ */
5601
+ function DaysCalendarViewModel() { }
5602
+ if (false) {
5603
+ /** @type {?} */
5604
+ DaysCalendarViewModel.prototype.weeks;
5605
+ /** @type {?} */
5606
+ DaysCalendarViewModel.prototype.month;
5607
+ /** @type {?} */
5608
+ DaysCalendarViewModel.prototype.weekNumbers;
5609
+ /** @type {?} */
5610
+ DaysCalendarViewModel.prototype.weekdays;
5611
+ }
5612
+ /**
5613
+ * **************
5614
+ * @record
5615
+ */
5616
+ function MonthsCalendarViewModel() { }
5617
+ if (false) {
5618
+ /** @type {?} */
5619
+ MonthsCalendarViewModel.prototype.months;
5620
+ }
5621
+ /**
5622
+ * **************
5623
+ * @record
5624
+ */
5625
+ function YearsCalendarViewModel() { }
5626
+ if (false) {
5627
+ /** @type {?} */
5628
+ YearsCalendarViewModel.prototype.years;
5629
+ }
5630
+ /**
5631
+ * **************
5632
+ * @record
5633
+ */
5634
+ function DaysCalendarModel() { }
5635
+ if (false) {
5636
+ /** @type {?} */
5637
+ DaysCalendarModel.prototype.daysMatrix;
5638
+ /** @type {?} */
5639
+ DaysCalendarModel.prototype.month;
5640
+ }
5641
+ /**
5642
+ * **************
5643
+ * @record
5644
+ */
5645
+ function MonthViewOptions() { }
5646
+ if (false) {
5647
+ /** @type {?|undefined} */
5648
+ MonthViewOptions.prototype.width;
5649
+ /** @type {?|undefined} */
5650
+ MonthViewOptions.prototype.height;
5651
+ /** @type {?|undefined} */
5652
+ MonthViewOptions.prototype.firstDayOfWeek;
5653
+ }
5654
+ /**
5655
+ * **************
5656
+ * @record
5657
+ */
5658
+ function DatepickerFormatOptions() { }
5659
+ if (false) {
5660
+ /** @type {?} */
5661
+ DatepickerFormatOptions.prototype.locale;
5662
+ /** @type {?} */
5663
+ DatepickerFormatOptions.prototype.monthTitle;
5664
+ /** @type {?} */
5665
+ DatepickerFormatOptions.prototype.yearTitle;
5666
+ /** @type {?} */
5667
+ DatepickerFormatOptions.prototype.dayLabel;
5668
+ /** @type {?} */
5669
+ DatepickerFormatOptions.prototype.monthLabel;
5670
+ /** @type {?} */
5671
+ DatepickerFormatOptions.prototype.yearLabel;
5672
+ /** @type {?} */
5673
+ DatepickerFormatOptions.prototype.weekNumbers;
5674
+ }
5675
+ /**
5676
+ * @record
5677
+ */
5678
+ function DatepickerRenderOptions() { }
5679
+ if (false) {
5680
+ /** @type {?|undefined} */
5681
+ DatepickerRenderOptions.prototype.showWeekNumbers;
5682
+ /** @type {?|undefined} */
5683
+ DatepickerRenderOptions.prototype.displayMonths;
5684
+ }
5685
+ /**
5686
+ * @record
4119
5687
  */
5688
+ function DatepickerDateCustomClasses() { }
5689
+ if (false) {
5690
+ /** @type {?} */
5691
+ DatepickerDateCustomClasses.prototype.date;
5692
+ /** @type {?} */
5693
+ DatepickerDateCustomClasses.prototype.classes;
5694
+ }
4120
5695
  /** @enum {number} */
4121
5696
  var BsNavigationDirection = {
4122
5697
  UP: 0,
@@ -4124,6 +5699,36 @@
4124
5699
  };
4125
5700
  BsNavigationDirection[BsNavigationDirection.UP] = 'UP';
4126
5701
  BsNavigationDirection[BsNavigationDirection.DOWN] = 'DOWN';
5702
+ /**
5703
+ * @record
5704
+ */
5705
+ function BsNavigationEvent() { }
5706
+ if (false) {
5707
+ /** @type {?|undefined} */
5708
+ BsNavigationEvent.prototype.direction;
5709
+ /** @type {?|undefined} */
5710
+ BsNavigationEvent.prototype.step;
5711
+ }
5712
+ /**
5713
+ * @record
5714
+ */
5715
+ function BsViewNavigationEvent() { }
5716
+ if (false) {
5717
+ /** @type {?|undefined} */
5718
+ BsViewNavigationEvent.prototype.unit;
5719
+ /** @type {?} */
5720
+ BsViewNavigationEvent.prototype.viewMode;
5721
+ }
5722
+ /**
5723
+ * @record
5724
+ */
5725
+ function CellHoverEvent() { }
5726
+ if (false) {
5727
+ /** @type {?} */
5728
+ CellHoverEvent.prototype.cell;
5729
+ /** @type {?} */
5730
+ CellHoverEvent.prototype.isHovered;
5731
+ }
4127
5732
 
4128
5733
  /**
4129
5734
  * @fileoverview added by tsickle
@@ -4160,7 +5765,7 @@
4160
5765
  { type: core.Component, args: [{
4161
5766
  selector: 'bs-datepicker-navigation-view',
4162
5767
  changeDetection: core.ChangeDetectionStrategy.OnPush,
4163
- 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 "
5768
+ 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 "
4164
5769
  }] }
4165
5770
  ];
4166
5771
  BsDatepickerNavigationViewComponent.propDecorators = {
@@ -4170,6 +5775,14 @@
4170
5775
  };
4171
5776
  return BsDatepickerNavigationViewComponent;
4172
5777
  }());
5778
+ if (false) {
5779
+ /** @type {?} */
5780
+ BsDatepickerNavigationViewComponent.prototype.calendar;
5781
+ /** @type {?} */
5782
+ BsDatepickerNavigationViewComponent.prototype.onNavigate;
5783
+ /** @type {?} */
5784
+ BsDatepickerNavigationViewComponent.prototype.onViewMode;
5785
+ }
4173
5786
 
4174
5787
  /**
4175
5788
  * @fileoverview added by tsickle
@@ -4229,19 +5842,18 @@
4229
5842
  */
4230
5843
  function (week) {
4231
5844
  var _this = this;
4232
- if (!this._config.selectWeek) {
5845
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
4233
5846
  return;
4234
5847
  }
4235
- if (week.days
4236
- && week.days[0]
5848
+ if (week.days.length === 0) {
5849
+ return;
5850
+ }
5851
+ if (this._config.selectWeek && week.days[0]
4237
5852
  && !week.days[0].isDisabled
4238
5853
  && this._config.selectFromOtherMonth) {
4239
5854
  this.onSelect.emit(week.days[0]);
4240
5855
  return;
4241
5856
  }
4242
- if (week.days.length === 0) {
4243
- return;
4244
- }
4245
5857
  /** @type {?} */
4246
5858
  var selectedDay = week.days.find((/**
4247
5859
  * @param {?} day
@@ -4253,6 +5865,21 @@
4253
5865
  : !day.isOtherMonth && !day.isDisabled;
4254
5866
  }));
4255
5867
  this.onSelect.emit(selectedDay);
5868
+ if (this._config.selectWeekDateRange) {
5869
+ /** @type {?} */
5870
+ var days = week.days.slice(0);
5871
+ /** @type {?} */
5872
+ var lastDayOfRange = days.reverse().find((/**
5873
+ * @param {?} day
5874
+ * @return {?}
5875
+ */
5876
+ function (day) {
5877
+ return _this._config.selectFromOtherMonth
5878
+ ? !day.isDisabled
5879
+ : !day.isOtherMonth && !day.isDisabled;
5880
+ }));
5881
+ this.onSelect.emit(lastDayOfRange);
5882
+ }
4256
5883
  };
4257
5884
  /**
4258
5885
  * @param {?} cell
@@ -4266,7 +5893,7 @@
4266
5893
  */
4267
5894
  function (cell, isHovered) {
4268
5895
  var _this = this;
4269
- if (!this._config.selectWeek) {
5896
+ if (!this._config.selectWeek && !this._config.selectWeekDateRange) {
4270
5897
  return;
4271
5898
  }
4272
5899
  /** @type {?} */
@@ -4323,6 +5950,29 @@
4323
5950
  };
4324
5951
  return BsDaysCalendarViewComponent;
4325
5952
  }());
5953
+ if (false) {
5954
+ /** @type {?} */
5955
+ BsDaysCalendarViewComponent.prototype.calendar;
5956
+ /** @type {?} */
5957
+ BsDaysCalendarViewComponent.prototype.options;
5958
+ /** @type {?} */
5959
+ BsDaysCalendarViewComponent.prototype.onNavigate;
5960
+ /** @type {?} */
5961
+ BsDaysCalendarViewComponent.prototype.onViewMode;
5962
+ /** @type {?} */
5963
+ BsDaysCalendarViewComponent.prototype.onSelect;
5964
+ /** @type {?} */
5965
+ BsDaysCalendarViewComponent.prototype.onHover;
5966
+ /** @type {?} */
5967
+ BsDaysCalendarViewComponent.prototype.onHoverWeek;
5968
+ /** @type {?} */
5969
+ BsDaysCalendarViewComponent.prototype.isWeekHovered;
5970
+ /**
5971
+ * @type {?}
5972
+ * @private
5973
+ */
5974
+ BsDaysCalendarViewComponent.prototype._config;
5975
+ }
4326
5976
 
4327
5977
  /**
4328
5978
  * @fileoverview added by tsickle
@@ -4398,6 +6048,18 @@
4398
6048
  };
4399
6049
  return BsMonthCalendarViewComponent;
4400
6050
  }());
6051
+ if (false) {
6052
+ /** @type {?} */
6053
+ BsMonthCalendarViewComponent.prototype.calendar;
6054
+ /** @type {?} */
6055
+ BsMonthCalendarViewComponent.prototype.onNavigate;
6056
+ /** @type {?} */
6057
+ BsMonthCalendarViewComponent.prototype.onViewMode;
6058
+ /** @type {?} */
6059
+ BsMonthCalendarViewComponent.prototype.onSelect;
6060
+ /** @type {?} */
6061
+ BsMonthCalendarViewComponent.prototype.onHover;
6062
+ }
4401
6063
 
4402
6064
  /**
4403
6065
  * @fileoverview added by tsickle
@@ -4417,6 +6079,14 @@
4417
6079
  ];
4418
6080
  return BsTimepickerViewComponent;
4419
6081
  }());
6082
+ if (false) {
6083
+ /** @type {?} */
6084
+ BsTimepickerViewComponent.prototype.ampm;
6085
+ /** @type {?} */
6086
+ BsTimepickerViewComponent.prototype.hours;
6087
+ /** @type {?} */
6088
+ BsTimepickerViewComponent.prototype.minutes;
6089
+ }
4420
6090
 
4421
6091
  /**
4422
6092
  * @fileoverview added by tsickle
@@ -4492,24 +6162,23 @@
4492
6162
  };
4493
6163
  return BsYearsCalendarViewComponent;
4494
6164
  }());
6165
+ if (false) {
6166
+ /** @type {?} */
6167
+ BsYearsCalendarViewComponent.prototype.calendar;
6168
+ /** @type {?} */
6169
+ BsYearsCalendarViewComponent.prototype.onNavigate;
6170
+ /** @type {?} */
6171
+ BsYearsCalendarViewComponent.prototype.onViewMode;
6172
+ /** @type {?} */
6173
+ BsYearsCalendarViewComponent.prototype.onSelect;
6174
+ /** @type {?} */
6175
+ BsYearsCalendarViewComponent.prototype.onHover;
6176
+ }
4495
6177
 
4496
6178
  /**
4497
6179
  * @fileoverview added by tsickle
4498
6180
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4499
6181
  */
4500
- /** @type {?} */
4501
- var _exports = [
4502
- BsDatepickerContainerComponent,
4503
- BsDatepickerDirective,
4504
- BsDatepickerInlineContainerComponent,
4505
- BsDatepickerInlineDirective,
4506
- BsDatepickerInputDirective,
4507
- BsDaterangepickerContainerComponent,
4508
- BsDaterangepickerDirective,
4509
- BsDaterangepickerInlineContainerComponent,
4510
- BsDaterangepickerInlineDirective,
4511
- BsDaterangepickerInputDirective
4512
- ];
4513
6182
  var BsDatepickerModule = /** @class */ (function () {
4514
6183
  function BsDatepickerModule() {
4515
6184
  }
@@ -4539,7 +6208,7 @@
4539
6208
  BsDatepickerModule.decorators = [
4540
6209
  { type: core.NgModule, args: [{
4541
6210
  imports: [common.CommonModule],
4542
- declarations: __spread([
6211
+ declarations: [
4543
6212
  BsCalendarLayoutComponent,
4544
6213
  BsCurrentDateViewComponent,
4545
6214
  BsCustomDatesViewComponent,
@@ -4548,15 +6217,36 @@
4548
6217
  BsDaysCalendarViewComponent,
4549
6218
  BsMonthCalendarViewComponent,
4550
6219
  BsTimepickerViewComponent,
4551
- BsYearsCalendarViewComponent
4552
- ], _exports),
6220
+ BsYearsCalendarViewComponent,
6221
+ BsDatepickerContainerComponent,
6222
+ BsDatepickerDirective,
6223
+ BsDatepickerInlineContainerComponent,
6224
+ BsDatepickerInlineDirective,
6225
+ BsDatepickerInputDirective,
6226
+ BsDaterangepickerContainerComponent,
6227
+ BsDaterangepickerDirective,
6228
+ BsDaterangepickerInlineContainerComponent,
6229
+ BsDaterangepickerInlineDirective,
6230
+ BsDaterangepickerInputDirective
6231
+ ],
4553
6232
  entryComponents: [
4554
6233
  BsDatepickerContainerComponent,
4555
6234
  BsDaterangepickerContainerComponent,
4556
6235
  BsDatepickerInlineContainerComponent,
4557
6236
  BsDaterangepickerInlineContainerComponent
4558
6237
  ],
4559
- exports: _exports
6238
+ exports: [
6239
+ BsDatepickerContainerComponent,
6240
+ BsDatepickerDirective,
6241
+ BsDatepickerInlineContainerComponent,
6242
+ BsDatepickerInlineDirective,
6243
+ BsDatepickerInputDirective,
6244
+ BsDaterangepickerContainerComponent,
6245
+ BsDaterangepickerDirective,
6246
+ BsDaterangepickerInlineContainerComponent,
6247
+ BsDaterangepickerInlineDirective,
6248
+ BsDaterangepickerInputDirective
6249
+ ]
4560
6250
  },] }
4561
6251
  ];
4562
6252
  return BsDatepickerModule;
@@ -5091,6 +6781,123 @@
5091
6781
  };
5092
6782
  return DatePickerInnerComponent;
5093
6783
  }());
6784
+ if (false) {
6785
+ /** @type {?} */
6786
+ DatePickerInnerComponent.prototype.locale;
6787
+ /** @type {?} */
6788
+ DatePickerInnerComponent.prototype.datepickerMode;
6789
+ /** @type {?} */
6790
+ DatePickerInnerComponent.prototype.startingDay;
6791
+ /** @type {?} */
6792
+ DatePickerInnerComponent.prototype.yearRange;
6793
+ /** @type {?} */
6794
+ DatePickerInnerComponent.prototype.minDate;
6795
+ /** @type {?} */
6796
+ DatePickerInnerComponent.prototype.maxDate;
6797
+ /** @type {?} */
6798
+ DatePickerInnerComponent.prototype.minMode;
6799
+ /** @type {?} */
6800
+ DatePickerInnerComponent.prototype.maxMode;
6801
+ /** @type {?} */
6802
+ DatePickerInnerComponent.prototype.showWeeks;
6803
+ /** @type {?} */
6804
+ DatePickerInnerComponent.prototype.formatDay;
6805
+ /** @type {?} */
6806
+ DatePickerInnerComponent.prototype.formatMonth;
6807
+ /** @type {?} */
6808
+ DatePickerInnerComponent.prototype.formatYear;
6809
+ /** @type {?} */
6810
+ DatePickerInnerComponent.prototype.formatDayHeader;
6811
+ /** @type {?} */
6812
+ DatePickerInnerComponent.prototype.formatDayTitle;
6813
+ /** @type {?} */
6814
+ DatePickerInnerComponent.prototype.formatMonthTitle;
6815
+ /** @type {?} */
6816
+ DatePickerInnerComponent.prototype.onlyCurrentMonth;
6817
+ /** @type {?} */
6818
+ DatePickerInnerComponent.prototype.shortcutPropagation;
6819
+ /** @type {?} */
6820
+ DatePickerInnerComponent.prototype.customClass;
6821
+ /** @type {?} */
6822
+ DatePickerInnerComponent.prototype.monthColLimit;
6823
+ /** @type {?} */
6824
+ DatePickerInnerComponent.prototype.yearColLimit;
6825
+ /** @type {?} */
6826
+ DatePickerInnerComponent.prototype.dateDisabled;
6827
+ /** @type {?} */
6828
+ DatePickerInnerComponent.prototype.dayDisabled;
6829
+ /** @type {?} */
6830
+ DatePickerInnerComponent.prototype.initDate;
6831
+ /** @type {?} */
6832
+ DatePickerInnerComponent.prototype.selectionDone;
6833
+ /** @type {?} */
6834
+ DatePickerInnerComponent.prototype.update;
6835
+ /** @type {?} */
6836
+ DatePickerInnerComponent.prototype.activeDateChange;
6837
+ /** @type {?} */
6838
+ DatePickerInnerComponent.prototype.stepDay;
6839
+ /** @type {?} */
6840
+ DatePickerInnerComponent.prototype.stepMonth;
6841
+ /** @type {?} */
6842
+ DatePickerInnerComponent.prototype.stepYear;
6843
+ /** @type {?} */
6844
+ DatePickerInnerComponent.prototype.uniqueId;
6845
+ /**
6846
+ * @type {?}
6847
+ * @protected
6848
+ */
6849
+ DatePickerInnerComponent.prototype.modes;
6850
+ /**
6851
+ * @type {?}
6852
+ * @protected
6853
+ */
6854
+ DatePickerInnerComponent.prototype.dateFormatter;
6855
+ /**
6856
+ * @type {?}
6857
+ * @protected
6858
+ */
6859
+ DatePickerInnerComponent.prototype._activeDate;
6860
+ /**
6861
+ * @type {?}
6862
+ * @protected
6863
+ */
6864
+ DatePickerInnerComponent.prototype.selectedDate;
6865
+ /**
6866
+ * @type {?}
6867
+ * @protected
6868
+ */
6869
+ DatePickerInnerComponent.prototype.activeDateId;
6870
+ /**
6871
+ * @type {?}
6872
+ * @protected
6873
+ */
6874
+ DatePickerInnerComponent.prototype.refreshViewHandlerDay;
6875
+ /**
6876
+ * @type {?}
6877
+ * @protected
6878
+ */
6879
+ DatePickerInnerComponent.prototype.compareHandlerDay;
6880
+ /**
6881
+ * @type {?}
6882
+ * @protected
6883
+ */
6884
+ DatePickerInnerComponent.prototype.refreshViewHandlerMonth;
6885
+ /**
6886
+ * @type {?}
6887
+ * @protected
6888
+ */
6889
+ DatePickerInnerComponent.prototype.compareHandlerMonth;
6890
+ /**
6891
+ * @type {?}
6892
+ * @protected
6893
+ */
6894
+ DatePickerInnerComponent.prototype.refreshViewHandlerYear;
6895
+ /**
6896
+ * @type {?}
6897
+ * @protected
6898
+ */
6899
+ DatePickerInnerComponent.prototype.compareHandlerYear;
6900
+ }
5094
6901
 
5095
6902
  /**
5096
6903
  * @fileoverview added by tsickle
@@ -5121,6 +6928,42 @@
5121
6928
  ];
5122
6929
  return DatepickerConfig;
5123
6930
  }());
6931
+ if (false) {
6932
+ /** @type {?} */
6933
+ DatepickerConfig.prototype.locale;
6934
+ /** @type {?} */
6935
+ DatepickerConfig.prototype.datepickerMode;
6936
+ /** @type {?} */
6937
+ DatepickerConfig.prototype.startingDay;
6938
+ /** @type {?} */
6939
+ DatepickerConfig.prototype.yearRange;
6940
+ /** @type {?} */
6941
+ DatepickerConfig.prototype.minMode;
6942
+ /** @type {?} */
6943
+ DatepickerConfig.prototype.maxMode;
6944
+ /** @type {?} */
6945
+ DatepickerConfig.prototype.showWeeks;
6946
+ /** @type {?} */
6947
+ DatepickerConfig.prototype.formatDay;
6948
+ /** @type {?} */
6949
+ DatepickerConfig.prototype.formatMonth;
6950
+ /** @type {?} */
6951
+ DatepickerConfig.prototype.formatYear;
6952
+ /** @type {?} */
6953
+ DatepickerConfig.prototype.formatDayHeader;
6954
+ /** @type {?} */
6955
+ DatepickerConfig.prototype.formatDayTitle;
6956
+ /** @type {?} */
6957
+ DatepickerConfig.prototype.formatMonthTitle;
6958
+ /** @type {?} */
6959
+ DatepickerConfig.prototype.onlyCurrentMonth;
6960
+ /** @type {?} */
6961
+ DatepickerConfig.prototype.monthColLimit;
6962
+ /** @type {?} */
6963
+ DatepickerConfig.prototype.yearColLimit;
6964
+ /** @type {?} */
6965
+ DatepickerConfig.prototype.shortcutPropagation;
6966
+ }
5124
6967
 
5125
6968
  /**
5126
6969
  * @fileoverview added by tsickle
@@ -5311,6 +7154,143 @@
5311
7154
  };
5312
7155
  return DatePickerComponent;
5313
7156
  }());
7157
+ if (false) {
7158
+ /**
7159
+ * sets datepicker mode, supports: `day`, `month`, `year`
7160
+ * @type {?}
7161
+ */
7162
+ DatePickerComponent.prototype.datepickerMode;
7163
+ /**
7164
+ * default date to show if `ng-model` value is not specified
7165
+ * @type {?}
7166
+ */
7167
+ DatePickerComponent.prototype.initDate;
7168
+ /**
7169
+ * oldest selectable date
7170
+ * @type {?}
7171
+ */
7172
+ DatePickerComponent.prototype.minDate;
7173
+ /**
7174
+ * latest selectable date
7175
+ * @type {?}
7176
+ */
7177
+ DatePickerComponent.prototype.maxDate;
7178
+ /**
7179
+ * set lower datepicker mode, supports: `day`, `month`, `year`
7180
+ * @type {?}
7181
+ */
7182
+ DatePickerComponent.prototype.minMode;
7183
+ /**
7184
+ * sets upper datepicker mode, supports: `day`, `month`, `year`
7185
+ * @type {?}
7186
+ */
7187
+ DatePickerComponent.prototype.maxMode;
7188
+ /**
7189
+ * if false week numbers will be hidden
7190
+ * @type {?}
7191
+ */
7192
+ DatePickerComponent.prototype.showWeeks;
7193
+ /**
7194
+ * format of day in month
7195
+ * @type {?}
7196
+ */
7197
+ DatePickerComponent.prototype.formatDay;
7198
+ /**
7199
+ * format of month in year
7200
+ * @type {?}
7201
+ */
7202
+ DatePickerComponent.prototype.formatMonth;
7203
+ /**
7204
+ * format of year in year range
7205
+ * @type {?}
7206
+ */
7207
+ DatePickerComponent.prototype.formatYear;
7208
+ /**
7209
+ * format of day in week header
7210
+ * @type {?}
7211
+ */
7212
+ DatePickerComponent.prototype.formatDayHeader;
7213
+ /**
7214
+ * format of title when selecting day
7215
+ * @type {?}
7216
+ */
7217
+ DatePickerComponent.prototype.formatDayTitle;
7218
+ /**
7219
+ * format of title when selecting month
7220
+ * @type {?}
7221
+ */
7222
+ DatePickerComponent.prototype.formatMonthTitle;
7223
+ /**
7224
+ * starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday)
7225
+ * @type {?}
7226
+ */
7227
+ DatePickerComponent.prototype.startingDay;
7228
+ /**
7229
+ * number of years displayed in year selection
7230
+ * @type {?}
7231
+ */
7232
+ DatePickerComponent.prototype.yearRange;
7233
+ /**
7234
+ * if true only dates from the currently displayed month will be shown
7235
+ * @type {?}
7236
+ */
7237
+ DatePickerComponent.prototype.onlyCurrentMonth;
7238
+ /**
7239
+ * if true shortcut`s event propagation will be disabled
7240
+ * @type {?}
7241
+ */
7242
+ DatePickerComponent.prototype.shortcutPropagation;
7243
+ /**
7244
+ * number of months displayed in a single row of month picker
7245
+ * @type {?}
7246
+ */
7247
+ DatePickerComponent.prototype.monthColLimit;
7248
+ /**
7249
+ * number of years displayed in a single row of year picker
7250
+ * @type {?}
7251
+ */
7252
+ DatePickerComponent.prototype.yearColLimit;
7253
+ /**
7254
+ * array of custom css classes to be applied to targeted dates
7255
+ * @type {?}
7256
+ */
7257
+ DatePickerComponent.prototype.customClass;
7258
+ /**
7259
+ * array of disabled dates
7260
+ * @type {?}
7261
+ */
7262
+ DatePickerComponent.prototype.dateDisabled;
7263
+ /**
7264
+ * disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday)
7265
+ * @type {?}
7266
+ */
7267
+ DatePickerComponent.prototype.dayDisabled;
7268
+ /** @type {?} */
7269
+ DatePickerComponent.prototype.selectionDone;
7270
+ /**
7271
+ * callback to invoke when the activeDate is changed.
7272
+ * @type {?}
7273
+ */
7274
+ DatePickerComponent.prototype.activeDateChange;
7275
+ /** @type {?} */
7276
+ DatePickerComponent.prototype._datePicker;
7277
+ /** @type {?} */
7278
+ DatePickerComponent.prototype.onChange;
7279
+ /** @type {?} */
7280
+ DatePickerComponent.prototype.onTouched;
7281
+ /** @type {?} */
7282
+ DatePickerComponent.prototype.config;
7283
+ /**
7284
+ * @type {?}
7285
+ * @protected
7286
+ */
7287
+ DatePickerComponent.prototype._now;
7288
+ /**
7289
+ * @type {?}
7290
+ * @protected
7291
+ */
7292
+ DatePickerComponent.prototype._activeDate;
7293
+ }
5314
7294
 
5315
7295
  /**
5316
7296
  * @fileoverview added by tsickle
@@ -5483,6 +7463,18 @@
5483
7463
  ]; };
5484
7464
  return DayPickerComponent;
5485
7465
  }());
7466
+ if (false) {
7467
+ /** @type {?} */
7468
+ DayPickerComponent.prototype.labels;
7469
+ /** @type {?} */
7470
+ DayPickerComponent.prototype.title;
7471
+ /** @type {?} */
7472
+ DayPickerComponent.prototype.rows;
7473
+ /** @type {?} */
7474
+ DayPickerComponent.prototype.weekNumbers;
7475
+ /** @type {?} */
7476
+ DayPickerComponent.prototype.datePicker;
7477
+ }
5486
7478
 
5487
7479
  /**
5488
7480
  * @fileoverview added by tsickle
@@ -5559,6 +7551,16 @@
5559
7551
  ]; };
5560
7552
  return MonthPickerComponent;
5561
7553
  }());
7554
+ if (false) {
7555
+ /** @type {?} */
7556
+ MonthPickerComponent.prototype.title;
7557
+ /** @type {?} */
7558
+ MonthPickerComponent.prototype.rows;
7559
+ /** @type {?} */
7560
+ MonthPickerComponent.prototype.datePicker;
7561
+ /** @type {?} */
7562
+ MonthPickerComponent.prototype.maxMode;
7563
+ }
5562
7564
 
5563
7565
  /**
5564
7566
  * @fileoverview added by tsickle
@@ -5645,6 +7647,14 @@
5645
7647
  ]; };
5646
7648
  return YearPickerComponent;
5647
7649
  }());
7650
+ if (false) {
7651
+ /** @type {?} */
7652
+ YearPickerComponent.prototype.datePicker;
7653
+ /** @type {?} */
7654
+ YearPickerComponent.prototype.title;
7655
+ /** @type {?} */
7656
+ YearPickerComponent.prototype.rows;
7657
+ }
5648
7658
 
5649
7659
  /**
5650
7660
  * @fileoverview added by tsickle
@@ -5727,5 +7737,5 @@
5727
7737
 
5728
7738
  Object.defineProperty(exports, '__esModule', { value: true });
5729
7739
 
5730
- }));
7740
+ })));
5731
7741
  //# sourceMappingURL=ngx-bootstrap-datepicker.umd.js.map