ngx-bootstrap 3.1.2 → 3.3.0

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 (441) hide show
  1. package/CHANGELOG.md +236 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/README.md +8 -5
  4. package/accordion/package.json +1 -1
  5. package/alert/package.json +1 -1
  6. package/bundles/ngx-bootstrap.es2015.js +13985 -11505
  7. package/bundles/ngx-bootstrap.es2015.js.map +1 -1
  8. package/bundles/ngx-bootstrap.umd.js +2 -1
  9. package/bundles/ngx-bootstrap.umd.js.map +1 -1
  10. package/bundles/ngx-bootstrap.umd.min.js +1 -1
  11. package/buttons/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +217 -63
  14. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  15. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  16. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  17. package/chronos/esm2015/i18n/ca.js +128 -0
  18. package/chronos/esm2015/i18n/lt.js +1 -1
  19. package/chronos/esm2015/i18n/pl.js +7 -1
  20. package/chronos/esm2015/index.js +2 -2
  21. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  22. package/chronos/esm2015/public_api.js +3 -2
  23. package/chronos/esm2015/utils/date-compare.js +20 -1
  24. package/chronos/esm5/i18n/ca.js +128 -0
  25. package/chronos/esm5/i18n/lt.js +1 -1
  26. package/chronos/esm5/i18n/pl.js +7 -1
  27. package/chronos/esm5/index.js +2 -2
  28. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  29. package/chronos/esm5/public_api.js +3 -2
  30. package/chronos/esm5/utils/date-compare.js +20 -1
  31. package/chronos/fesm2015/ngx-bootstrap-chronos.js +223 -67
  32. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  33. package/chronos/fesm5/ngx-bootstrap-chronos.js +224 -67
  34. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  35. package/chronos/i18n/ca.d.ts +2 -0
  36. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  37. package/chronos/package.json +1 -1
  38. package/chronos/public_api.d.ts +2 -1
  39. package/chronos/utils/date-compare.d.ts +2 -0
  40. package/collapse/package.json +1 -1
  41. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +11 -1
  42. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  43. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  44. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  45. package/component-loader/component-loader.class.d.ts +1 -1
  46. package/component-loader/esm2015/component-loader.class.js +12 -2
  47. package/component-loader/esm2015/listen-options.model.js +3 -1
  48. package/component-loader/esm5/component-loader.class.js +12 -2
  49. package/component-loader/esm5/listen-options.model.js +3 -1
  50. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +12 -2
  51. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  52. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +12 -2
  53. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  54. package/component-loader/listen-options.model.d.ts +1 -0
  55. package/component-loader/ngx-bootstrap-component-loader.metadata.json +1 -1
  56. package/component-loader/package.json +1 -1
  57. package/datepicker/base/bs-datepicker-container.d.ts +5 -1
  58. package/datepicker/bs-datepicker-inline.component.d.ts +48 -0
  59. package/datepicker/bs-datepicker-inline.config.d.ts +3 -0
  60. package/datepicker/bs-datepicker.component.d.ts +14 -0
  61. package/datepicker/bs-datepicker.config.d.ts +22 -1
  62. package/datepicker/bs-datepicker.css +56 -5
  63. package/datepicker/bs-datepicker.css.map +3 -3
  64. package/datepicker/bs-datepicker.module.d.ts +0 -1
  65. package/datepicker/bs-datepicker.scss +21 -8
  66. package/datepicker/bs-daterangepicker.component.d.ts +5 -0
  67. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2967 -2546
  68. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  69. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
  70. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  71. package/datepicker/engine/flag-days-calendar.d.ts +2 -0
  72. package/datepicker/engine/view-mode.d.ts +1 -1
  73. package/datepicker/esm2015/base/bs-datepicker-container.js +22 -1
  74. package/datepicker/esm2015/bs-datepicker-inline.component.js +179 -0
  75. package/datepicker/esm2015/bs-datepicker-inline.config.js +22 -0
  76. package/datepicker/esm2015/bs-datepicker-input.directive.js +2 -1
  77. package/datepicker/esm2015/bs-datepicker.component.js +34 -2
  78. package/datepicker/esm2015/bs-datepicker.config.js +28 -1
  79. package/datepicker/esm2015/bs-datepicker.module.js +10 -11
  80. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +9 -4
  81. package/datepicker/esm2015/bs-daterangepicker.component.js +17 -2
  82. package/datepicker/esm2015/engine/flag-days-calendar.js +16 -6
  83. package/datepicker/esm2015/engine/view-mode.js +4 -3
  84. package/datepicker/esm2015/models/index.js +7 -1
  85. package/datepicker/esm2015/ngx-bootstrap-datepicker.js +19 -18
  86. package/datepicker/esm2015/public_api.js +11 -9
  87. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +27 -1
  88. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +25 -11
  89. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +15 -5
  90. package/datepicker/esm2015/reducer/bs-datepicker.state.js +9 -1
  91. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -3
  92. package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.js +33 -2
  93. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +50 -0
  94. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +5 -3
  95. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +71 -4
  96. package/datepicker/esm2015/utils/bs-calendar-utils.js +13 -2
  97. package/datepicker/esm5/base/bs-datepicker-container.js +34 -1
  98. package/datepicker/esm5/bs-datepicker-inline.component.js +196 -0
  99. package/datepicker/esm5/bs-datepicker-inline.config.js +29 -0
  100. package/datepicker/esm5/bs-datepicker-input.directive.js +2 -1
  101. package/datepicker/esm5/bs-datepicker.component.js +34 -2
  102. package/datepicker/esm5/bs-datepicker.config.js +28 -1
  103. package/datepicker/esm5/bs-datepicker.module.js +10 -7
  104. package/datepicker/esm5/bs-daterangepicker-input.directive.js +9 -4
  105. package/datepicker/esm5/bs-daterangepicker.component.js +17 -2
  106. package/datepicker/esm5/engine/flag-days-calendar.js +16 -6
  107. package/datepicker/esm5/engine/view-mode.js +4 -3
  108. package/datepicker/esm5/models/index.js +7 -1
  109. package/datepicker/esm5/ngx-bootstrap-datepicker.js +19 -18
  110. package/datepicker/esm5/public_api.js +11 -9
  111. package/datepicker/esm5/reducer/bs-datepicker.actions.js +35 -1
  112. package/datepicker/esm5/reducer/bs-datepicker.effects.js +33 -11
  113. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +15 -5
  114. package/datepicker/esm5/reducer/bs-datepicker.state.js +9 -1
  115. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -3
  116. package/datepicker/esm5/themes/bs/bs-datepicker-day-decorator.directive.js +30 -3
  117. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +48 -0
  118. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +5 -3
  119. package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +75 -3
  120. package/datepicker/esm5/utils/bs-calendar-utils.js +13 -2
  121. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +3192 -2829
  122. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  123. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +3407 -2994
  124. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  125. package/datepicker/models/index.d.ts +3 -0
  126. package/datepicker/ngx-bootstrap-datepicker.d.ts +17 -16
  127. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  128. package/datepicker/package.json +1 -1
  129. package/datepicker/public_api.d.ts +11 -8
  130. package/datepicker/reducer/bs-datepicker.actions.d.ts +4 -0
  131. package/datepicker/reducer/bs-datepicker.effects.d.ts +4 -2
  132. package/datepicker/reducer/bs-datepicker.state.d.ts +4 -0
  133. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +8 -1
  134. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +9 -0
  135. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +8 -1
  136. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  137. package/datepicker/utils/scss/mixins.css.map +4 -2
  138. package/datepicker/utils/scss/mixins.scss +10 -0
  139. package/dropdown/bs-dropdown-container.component.d.ts +3 -0
  140. package/dropdown/bs-dropdown-toggle.directive.d.ts +3 -1
  141. package/dropdown/bs-dropdown.config.d.ts +2 -0
  142. package/dropdown/bs-dropdown.directive.d.ts +8 -2
  143. package/dropdown/bs-dropdown.state.d.ts +1 -0
  144. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +62 -5
  145. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  146. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +1 -1
  147. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  148. package/dropdown/esm2015/bs-dropdown-container.component.js +13 -2
  149. package/dropdown/esm2015/bs-dropdown-toggle.directive.js +10 -3
  150. package/dropdown/esm2015/bs-dropdown.config.js +10 -1
  151. package/dropdown/esm2015/bs-dropdown.directive.js +30 -3
  152. package/dropdown/esm2015/bs-dropdown.module.js +2 -2
  153. package/dropdown/esm2015/bs-dropdown.state.js +3 -1
  154. package/dropdown/esm5/bs-dropdown-container.component.js +19 -2
  155. package/dropdown/esm5/bs-dropdown-toggle.directive.js +9 -3
  156. package/dropdown/esm5/bs-dropdown.config.js +10 -1
  157. package/dropdown/esm5/bs-dropdown.directive.js +40 -3
  158. package/dropdown/esm5/bs-dropdown.module.js +2 -2
  159. package/dropdown/esm5/bs-dropdown.state.js +3 -1
  160. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +49 -5
  161. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  162. package/dropdown/fesm5/ngx-bootstrap-dropdown.js +64 -5
  163. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  164. package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
  165. package/dropdown/package.json +1 -1
  166. package/esm2015/ngx-bootstrap.js +2 -2
  167. package/esm2015/public_api.js +2 -2
  168. package/esm5/ngx-bootstrap.js +2 -2
  169. package/esm5/public_api.js +2 -2
  170. package/fesm2015/ngx-bootstrap.js +1 -1
  171. package/fesm5/ngx-bootstrap.js +1 -1
  172. package/locale/bundles/ngx-bootstrap-locale.umd.js +2 -1
  173. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
  174. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
  175. package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
  176. package/locale/esm2015/public_api.js +2 -1
  177. package/locale/esm5/ngx-bootstrap-locale.js +2 -2
  178. package/locale/esm5/public_api.js +2 -1
  179. package/locale/fesm2015/ngx-bootstrap-locale.js +1 -1
  180. package/locale/fesm5/ngx-bootstrap-locale.js +1 -1
  181. package/locale/ngx-bootstrap-locale.metadata.json +1 -1
  182. package/locale/package.json +1 -1
  183. package/locale/public_api.d.ts +1 -0
  184. package/mini-ngrx/package.json +1 -1
  185. package/modal/bs-modal-ref.service.d.ts +4 -0
  186. package/modal/bundles/ngx-bootstrap-modal.umd.js +8 -1
  187. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  188. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
  189. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  190. package/modal/esm2015/bs-modal-ref.service.js +10 -1
  191. package/modal/esm2015/bs-modal.service.js +4 -1
  192. package/modal/esm5/bs-modal-ref.service.js +10 -1
  193. package/modal/esm5/bs-modal.service.js +4 -1
  194. package/modal/fesm2015/ngx-bootstrap-modal.js +8 -1
  195. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  196. package/modal/fesm5/ngx-bootstrap-modal.js +8 -1
  197. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  198. package/modal/package.json +1 -1
  199. package/package.json +2 -2
  200. package/pagination/esm2015/models/index.js +1 -4
  201. package/pagination/esm5/models/index.js +1 -4
  202. package/pagination/models/index.d.ts +0 -1
  203. package/pagination/package.json +1 -1
  204. package/popover/bundles/ngx-bootstrap-popover.umd.js +3 -2
  205. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  206. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  207. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  208. package/popover/esm2015/popover-container.component.js +19 -8
  209. package/popover/esm5/popover-container.component.js +3 -2
  210. package/popover/fesm2015/ngx-bootstrap-popover.js +19 -8
  211. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  212. package/popover/fesm5/ngx-bootstrap-popover.js +3 -2
  213. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  214. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  215. package/popover/package.json +1 -1
  216. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +1192 -252
  217. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  218. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +1 -1
  219. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  220. package/positioning/esm2015/models/index.js +44 -0
  221. package/positioning/esm2015/modifiers/arrow.js +54 -0
  222. package/positioning/esm2015/modifiers/flip.js +65 -0
  223. package/positioning/esm2015/modifiers/index.js +11 -0
  224. package/positioning/esm2015/modifiers/initData.js +34 -0
  225. package/positioning/esm2015/modifiers/preventOverflow.js +70 -0
  226. package/positioning/esm2015/modifiers/shift.js +29 -0
  227. package/positioning/esm2015/ng-positioning.js +19 -220
  228. package/positioning/esm2015/positioning.service.js +44 -4
  229. package/positioning/esm2015/utils/computeAutoPlacement.js +64 -0
  230. package/positioning/esm2015/utils/findCommonOffsetParent.js +47 -0
  231. package/positioning/esm2015/utils/getBordersSize.js +20 -0
  232. package/positioning/esm2015/utils/getBoundaries.js +66 -0
  233. package/positioning/esm2015/utils/getBoundingClientRect.js +61 -0
  234. package/positioning/esm2015/utils/getClientRect.js +13 -0
  235. package/positioning/esm2015/utils/getFixedPositionOffsetParent.js +26 -0
  236. package/positioning/esm2015/utils/getOffsetParent.js +37 -0
  237. package/positioning/esm2015/utils/getOffsetRectRelativeToArbitraryNode.js +62 -0
  238. package/positioning/esm2015/utils/getOffsets.js +20 -0
  239. package/positioning/esm2015/utils/getOppositePlacement.js +15 -0
  240. package/positioning/esm2015/utils/getOppositeVariation.js +20 -0
  241. package/positioning/esm2015/utils/getOuterSizes.js +21 -0
  242. package/positioning/esm2015/utils/getParentNode.js +17 -0
  243. package/positioning/esm2015/utils/getReferenceOffsets.js +21 -0
  244. package/positioning/esm2015/utils/getRoot.js +17 -0
  245. package/positioning/esm2015/utils/getScroll.js +22 -0
  246. package/positioning/esm2015/utils/getScrollParent.js +32 -0
  247. package/positioning/esm2015/utils/getStyleComputedProperty.js +21 -0
  248. package/positioning/esm2015/utils/getTargetOffsets.js +38 -0
  249. package/positioning/esm2015/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +29 -0
  250. package/positioning/esm2015/utils/getWindowSizes.js +34 -0
  251. package/positioning/esm2015/utils/includeScroll.js +23 -0
  252. package/positioning/esm2015/utils/index.js +28 -0
  253. package/positioning/esm2015/utils/isBrowser.js +7 -0
  254. package/positioning/esm2015/utils/isFixed.js +22 -0
  255. package/positioning/esm2015/utils/isIE.js +22 -0
  256. package/positioning/esm2015/utils/isNumeric.js +14 -0
  257. package/positioning/esm2015/utils/isOffsetContainer.js +18 -0
  258. package/positioning/esm2015/utils/setAllStyles.js +55 -0
  259. package/positioning/esm2015/utils/setStyles.js +28 -0
  260. package/positioning/esm5/models/index.js +44 -0
  261. package/positioning/esm5/modifiers/arrow.js +56 -0
  262. package/positioning/esm5/modifiers/flip.js +66 -0
  263. package/positioning/esm5/modifiers/index.js +11 -0
  264. package/positioning/esm5/modifiers/initData.js +34 -0
  265. package/positioning/esm5/modifiers/preventOverflow.js +73 -0
  266. package/positioning/esm5/modifiers/shift.js +31 -0
  267. package/positioning/esm5/ng-positioning.js +24 -247
  268. package/positioning/esm5/positioning.service.js +49 -5
  269. package/positioning/esm5/utils/computeAutoPlacement.js +72 -0
  270. package/positioning/esm5/utils/findCommonOffsetParent.js +47 -0
  271. package/positioning/esm5/utils/getBordersSize.js +20 -0
  272. package/positioning/esm5/utils/getBoundaries.js +68 -0
  273. package/positioning/esm5/utils/getBoundingClientRect.js +61 -0
  274. package/positioning/esm5/utils/getClientRect.js +14 -0
  275. package/positioning/esm5/utils/getFixedPositionOffsetParent.js +26 -0
  276. package/positioning/esm5/utils/getOffsetParent.js +37 -0
  277. package/positioning/esm5/utils/getOffsetRectRelativeToArbitraryNode.js +63 -0
  278. package/positioning/esm5/utils/getOffsets.js +20 -0
  279. package/positioning/esm5/utils/getOppositePlacement.js +15 -0
  280. package/positioning/esm5/utils/getOppositeVariation.js +20 -0
  281. package/positioning/esm5/utils/getOuterSizes.js +21 -0
  282. package/positioning/esm5/utils/getParentNode.js +17 -0
  283. package/positioning/esm5/utils/getReferenceOffsets.js +22 -0
  284. package/positioning/esm5/utils/getRoot.js +17 -0
  285. package/positioning/esm5/utils/getScroll.js +23 -0
  286. package/positioning/esm5/utils/getScrollParent.js +32 -0
  287. package/positioning/esm5/utils/getStyleComputedProperty.js +21 -0
  288. package/positioning/esm5/utils/getTargetOffsets.js +38 -0
  289. package/positioning/esm5/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +30 -0
  290. package/positioning/esm5/utils/getWindowSizes.js +34 -0
  291. package/positioning/esm5/utils/includeScroll.js +24 -0
  292. package/positioning/esm5/utils/index.js +28 -0
  293. package/positioning/esm5/utils/isBrowser.js +7 -0
  294. package/positioning/esm5/utils/isFixed.js +22 -0
  295. package/positioning/esm5/utils/isIE.js +22 -0
  296. package/positioning/esm5/utils/isNumeric.js +14 -0
  297. package/positioning/esm5/utils/isOffsetContainer.js +18 -0
  298. package/positioning/esm5/utils/setAllStyles.js +55 -0
  299. package/positioning/esm5/utils/setStyles.js +28 -0
  300. package/positioning/fesm2015/ngx-bootstrap-positioning.js +1108 -211
  301. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  302. package/positioning/fesm5/ngx-bootstrap-positioning.js +1148 -249
  303. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  304. package/positioning/models/index.d.ts +27 -0
  305. package/positioning/modifiers/arrow.d.ts +2 -0
  306. package/positioning/modifiers/flip.d.ts +2 -0
  307. package/positioning/modifiers/index.d.ts +5 -0
  308. package/positioning/modifiers/initData.d.ts +2 -0
  309. package/positioning/modifiers/preventOverflow.d.ts +2 -0
  310. package/positioning/modifiers/shift.d.ts +2 -0
  311. package/positioning/ng-positioning.d.ts +7 -10
  312. package/positioning/ngx-bootstrap-positioning.metadata.json +1 -1
  313. package/positioning/package.json +1 -1
  314. package/positioning/positioning.service.d.ts +7 -1
  315. package/positioning/utils/computeAutoPlacement.d.ts +2 -0
  316. package/positioning/utils/findCommonOffsetParent.d.ts +1 -0
  317. package/positioning/utils/getBordersSize.d.ts +4 -0
  318. package/positioning/utils/getBoundaries.d.ts +1 -0
  319. package/positioning/utils/getBoundingClientRect.d.ts +2 -0
  320. package/positioning/utils/getClientRect.d.ts +5 -0
  321. package/positioning/utils/getFixedPositionOffsetParent.d.ts +1 -0
  322. package/positioning/utils/getOffsetParent.d.ts +1 -0
  323. package/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
  324. package/positioning/utils/getOffsets.d.ts +2 -0
  325. package/positioning/utils/getOppositePlacement.d.ts +4 -0
  326. package/positioning/utils/getOppositeVariation.d.ts +4 -0
  327. package/positioning/utils/getOuterSizes.d.ts +7 -0
  328. package/positioning/utils/getParentNode.d.ts +4 -0
  329. package/positioning/utils/getReferenceOffsets.d.ts +2 -0
  330. package/positioning/utils/getRoot.d.ts +4 -0
  331. package/positioning/utils/getScroll.d.ts +4 -0
  332. package/positioning/utils/getScrollParent.d.ts +1 -0
  333. package/positioning/utils/getStyleComputedProperty.d.ts +4 -0
  334. package/positioning/utils/getTargetOffsets.d.ts +2 -0
  335. package/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
  336. package/positioning/utils/getWindowSizes.d.ts +4 -0
  337. package/positioning/utils/includeScroll.d.ts +2 -0
  338. package/positioning/utils/index.d.ts +22 -0
  339. package/positioning/utils/isBrowser.d.ts +1 -0
  340. package/positioning/utils/isFixed.d.ts +1 -0
  341. package/positioning/utils/isIE.d.ts +1 -0
  342. package/positioning/utils/isNumeric.d.ts +4 -0
  343. package/positioning/utils/isOffsetContainer.d.ts +1 -0
  344. package/positioning/utils/setAllStyles.d.ts +6 -0
  345. package/positioning/utils/setStyles.d.ts +5 -0
  346. package/progressbar/package.json +1 -1
  347. package/rating/bundles/ngx-bootstrap-rating.umd.js +3 -1
  348. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
  349. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
  350. package/rating/esm2015/rating.component.js +3 -1
  351. package/rating/esm5/rating.component.js +3 -1
  352. package/rating/fesm2015/ngx-bootstrap-rating.js +3 -1
  353. package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
  354. package/rating/fesm5/ngx-bootstrap-rating.js +3 -1
  355. package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
  356. package/rating/package.json +1 -1
  357. package/schematics/ng-add/index.js +17 -9
  358. package/schematics/ng-add/index.js.map +1 -1
  359. package/schematics/ng-add/index.spec.js +2 -3
  360. package/schematics/ng-add/index.spec.js.map +1 -1
  361. package/sortable/package.json +1 -1
  362. package/tabs/package.json +1 -1
  363. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +3 -1
  364. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  365. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +1 -1
  366. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  367. package/timepicker/esm2015/timepicker.component.js +5 -1
  368. package/timepicker/esm5/timepicker.component.js +5 -1
  369. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +3 -1
  370. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  371. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +3 -1
  372. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  373. package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
  374. package/timepicker/package.json +1 -1
  375. package/timepicker/timepicker.component.d.ts +1 -0
  376. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +15 -4
  377. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  378. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +1 -1
  379. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  380. package/tooltip/esm2015/tooltip-container.component.js +15 -7
  381. package/tooltip/esm2015/tooltip.config.js +10 -1
  382. package/tooltip/esm2015/tooltip.directive.js +13 -4
  383. package/tooltip/esm5/tooltip-container.component.js +6 -2
  384. package/tooltip/esm5/tooltip.config.js +10 -1
  385. package/tooltip/esm5/tooltip.directive.js +13 -4
  386. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +25 -10
  387. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  388. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +16 -5
  389. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  390. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  391. package/tooltip/package.json +1 -1
  392. package/tooltip/tooltip-container.component.d.ts +1 -0
  393. package/tooltip/tooltip.config.d.ts +2 -0
  394. package/tooltip/tooltip.directive.d.ts +2 -0
  395. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +93 -35
  396. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  397. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +1 -1
  398. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  399. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
  400. package/typeahead/esm2015/public_api.js +2 -1
  401. package/typeahead/esm2015/typeahead-container.component.js +15 -4
  402. package/typeahead/esm2015/typeahead.config.js +55 -0
  403. package/typeahead/esm2015/typeahead.directive.js +68 -32
  404. package/typeahead/esm2015/typeahead.module.js +3 -2
  405. package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
  406. package/typeahead/esm5/public_api.js +2 -1
  407. package/typeahead/esm5/typeahead-container.component.js +12 -4
  408. package/typeahead/esm5/typeahead.config.js +57 -0
  409. package/typeahead/esm5/typeahead.directive.js +69 -34
  410. package/typeahead/esm5/typeahead.module.js +3 -2
  411. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +96 -36
  412. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  413. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +95 -38
  414. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  415. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  416. package/typeahead/package.json +1 -1
  417. package/typeahead/public_api.d.ts +1 -0
  418. package/typeahead/typeahead-container.component.d.ts +1 -1
  419. package/typeahead/typeahead.config.d.ts +11 -0
  420. package/typeahead/typeahead.directive.d.ts +14 -5
  421. package/utils/bundles/ngx-bootstrap-utils.umd.js +31 -11
  422. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
  423. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +1 -1
  424. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
  425. package/utils/esm2015/facade/browser.js +13 -14
  426. package/utils/esm2015/ngx-bootstrap-utils.js +2 -2
  427. package/utils/esm2015/public_api.js +2 -2
  428. package/utils/esm2015/triggers.js +23 -1
  429. package/utils/esm5/facade/browser.js +10 -11
  430. package/utils/esm5/ngx-bootstrap-utils.js +2 -2
  431. package/utils/esm5/public_api.js +2 -2
  432. package/utils/esm5/triggers.js +23 -1
  433. package/utils/facade/browser.d.ts +5 -5
  434. package/utils/fesm2015/ngx-bootstrap-utils.js +34 -15
  435. package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
  436. package/utils/fesm5/ngx-bootstrap-utils.js +31 -12
  437. package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
  438. package/utils/ngx-bootstrap-utils.metadata.json +1 -1
  439. package/utils/package.json +1 -1
  440. package/utils/public_api.d.ts +1 -1
  441. package/utils/triggers.d.ts +2 -0
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("ngx-bootstrap/chronos"),require("@angular/core"),require("@angular/forms"),require("ngx-bootstrap/utils"),require("@angular/common"),require("rxjs"),require("rxjs/operators"),require("ngx-bootstrap/mini-ngrx"),require("ngx-bootstrap/component-loader"),require("ngx-bootstrap/positioning")):"function"==typeof define&&define.amd?define("ngx-bootstrap/datepicker",["exports","ngx-bootstrap/chronos","@angular/core","@angular/forms","ngx-bootstrap/utils","@angular/common","rxjs","rxjs/operators","ngx-bootstrap/mini-ngrx","ngx-bootstrap/component-loader","ngx-bootstrap/positioning"],t):t((e["ngx-bootstrap"]=e["ngx-bootstrap"]||{},e["ngx-bootstrap"].datepicker={}),e.chronos,e.ng.core,e.ng.forms,e.utils,e.ng.common,e.rxjs,e.rxjs.operators,e.miniNgrx,e.componentLoader,e.positioning)}(this,function(e,f,o,t,n,a,i,r,s,c,d){"use strict";var l=function(){function e(){}return e.prototype.format=function(e,t,n){return f.formatDate(e,t,n)},e}(),u=function(){function e(){this.selectionDone=new o.EventEmitter(undefined),this.update=new o.EventEmitter(!1),this.activeDateChange=new o.EventEmitter(undefined),this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new l}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate},set:function(e){this._activeDate=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.uniqueId="datepicker--"+Math.floor(1e4*Math.random()),this.initDate?(this.activeDate=this.initDate,this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate)):this.activeDate===undefined&&(this.activeDate=new Date)},e.prototype.ngOnChanges=function(e){this.refreshView(),this.checkIfActiveDateGotUpdated(e.activeDate)},e.prototype.checkIfActiveDateGotUpdated=function(e){if(e&&!e.firstChange){var t=e.previousValue;t&&t instanceof Date&&t.getTime()!==e.currentValue.getTime()&&this.activeDateChange.emit(this.activeDate)}},e.prototype.setCompareHandler=function(e,t){"day"===t&&(this.compareHandlerDay=e),"month"===t&&(this.compareHandlerMonth=e),"year"===t&&(this.compareHandlerYear=e)},e.prototype.compare=function(e,t){return e===undefined||t===undefined?undefined:"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(e,t):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(e,t):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(e,t):void 0},e.prototype.setRefreshViewHandler=function(e,t){"day"===t&&(this.refreshViewHandlerDay=e),"month"===t&&(this.refreshViewHandlerMonth=e),"year"===t&&(this.refreshViewHandlerYear=e)},e.prototype.refreshView=function(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()},e.prototype.dateFilter=function(e,t){return this.dateFormatter.format(e,t,this.locale)},e.prototype.isActive=function(e){return 0===this.compare(e.date,this.activeDate)&&(this.activeDateId=e.uid,!0)},e.prototype.createDateObject=function(e,t){var n={};return n.date=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n.date=this.fixTimeZone(n.date),n.label=this.dateFilter(e,t),n.selected=0===this.compare(e,this.selectedDate),n.disabled=this.isDisabled(e),n.current=0===this.compare(e,new Date),n.customClass=this.getCustomClassForDate(n.date),n},e.prototype.split=function(e,t){for(var n=[];0<e.length;)n.push(e.splice(0,t));return n},e.prototype.fixTimeZone=function(e){var t=e.getHours();return new Date(e.getFullYear(),e.getMonth(),e.getDate(),23===t?t+2:0)},e.prototype.select=function(e,t){void 0===t&&(t=!0),this.datepickerMode===this.minMode?(this.activeDate||(this.activeDate=new Date(0,0,0,0,0,0,0)),this.activeDate=new Date(e.getFullYear(),e.getMonth(),e.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),t&&this.selectionDone.emit(this.activeDate)):(this.activeDate=new Date(e.getFullYear(),e.getMonth(),e.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),t&&(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1])),this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate),this.refreshView()},e.prototype.move=function(e){var t;if("day"===this.datepickerMode&&(t=this.stepDay),"month"===this.datepickerMode&&(t=this.stepMonth),"year"===this.datepickerMode&&(t=this.stepYear),t){var n=this.activeDate.getFullYear()+e*(t.years||0),a=this.activeDate.getMonth()+e*(t.months||0);this.activeDate=new Date(n,a,1),this.refreshView(),this.activeDateChange.emit(this.activeDate)}},e.prototype.toggleMode=function(e){var t=e||1;this.datepickerMode===this.maxMode&&1===t||this.datepickerMode===this.minMode&&-1===t||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+t],this.refreshView())},e.prototype.getCustomClassForDate=function(t){var n=this;if(!this.customClass)return"";var e=this.customClass.find(function(e){return e.date.valueOf()===t.valueOf()&&e.mode===n.datepickerMode},this);return e===undefined?"":e.clazz},e.prototype.compareDateDisabled=function(e,t){return e===undefined||t===undefined?undefined:"day"===e.mode&&this.compareHandlerDay?this.compareHandlerDay(e.date,t):"month"===e.mode&&this.compareHandlerMonth?this.compareHandlerMonth(e.date,t):"year"===e.mode&&this.compareHandlerYear?this.compareHandlerYear(e.date,t):undefined},e.prototype.isDisabled=function(t){var n=this,a=!1;return this.dateDisabled&&this.dateDisabled.forEach(function(e){0===n.compareDateDisabled(e,t)&&(a=!0)}),this.dayDisabled&&(a=a||-1<this.dayDisabled.indexOf(t.getDay())),a||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&0<this.compare(t,this.maxDate)},e.decorators=[{type:o.Component,args:[{selector:"datepicker-inner",template:'\n \x3c!--&lt;!&ndash;ng-keydown="keydown($event)"&ndash;&gt;--\x3e\n <div *ngIf="datepickerMode" class="well well-sm bg-faded p-a card" role="application" >\n <ng-content></ng-content>\n </div>\n '}]}],e.propDecorators={locale:[{type:o.Input}],datepickerMode:[{type:o.Input}],startingDay:[{type:o.Input}],yearRange:[{type:o.Input}],minDate:[{type:o.Input}],maxDate:[{type:o.Input}],minMode:[{type:o.Input}],maxMode:[{type:o.Input}],showWeeks:[{type:o.Input}],formatDay:[{type:o.Input}],formatMonth:[{type:o.Input}],formatYear:[{type:o.Input}],formatDayHeader:[{type:o.Input}],formatDayTitle:[{type:o.Input}],formatMonthTitle:[{type:o.Input}],onlyCurrentMonth:[{type:o.Input}],shortcutPropagation:[{type:o.Input}],customClass:[{type:o.Input}],monthColLimit:[{type:o.Input}],yearColLimit:[{type:o.Input}],dateDisabled:[{type:o.Input}],dayDisabled:[{type:o.Input}],initDate:[{type:o.Input}],selectionDone:[{type:o.Output}],update:[{type:o.Output}],activeDateChange:[{type:o.Output}],activeDate:[{type:o.Input}]},e}(),h=function(){function e(){this.locale="en",this.datepickerMode="day",this.startingDay=0,this.yearRange=20,this.minMode="day",this.maxMode="year",this.showWeeks=!0,this.formatDay="DD",this.formatMonth="MMMM",this.formatYear="YYYY",this.formatDayHeader="dd",this.formatDayTitle="MMMM YYYY",this.formatMonthTitle="YYYY",this.onlyCurrentMonth=!1,this.monthColLimit=3,this.yearColLimit=5,this.shortcutPropagation=!1}return e.decorators=[{type:o.Injectable}],e}(),p={provide:t.NG_VALUE_ACCESSOR,useExisting:o.forwardRef(function(){return y}),multi:!0},y=function(){function e(e){this.datepickerMode="day",this.showWeeks=!0,this.selectionDone=new o.EventEmitter(undefined),this.activeDateChange=new o.EventEmitter(undefined),this.onChange=Function.prototype,this.onTouched=Function.prototype,this._now=new Date,this.config=e,this.configureOptions()}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate||this._now},set:function(e){this._activeDate=e},enumerable:!0,configurable:!0}),e.prototype.configureOptions=function(){Object.assign(this,this.config)},e.prototype.onUpdate=function(e){this.activeDate=e,this.onChange(e)},e.prototype.onSelectionDone=function(e){this.selectionDone.emit(e)},e.prototype.onActiveDateChange=function(e){this.activeDateChange.emit(e)},e.prototype.writeValue=function(e){if(0!==this._datePicker.compare(e,this._activeDate))return e&&e instanceof Date?(this.activeDate=e,void this._datePicker.select(e,!1)):void(this.activeDate=e?new Date(e):void 0)},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.decorators=[{type:o.Component,args:[{selector:"datepicker",template:'\n <datepicker-inner [activeDate]="activeDate"\n (update)="onUpdate($event)"\n [locale]="config.locale"\n [datepickerMode]="datepickerMode"\n [initDate]="initDate"\n [minDate]="minDate"\n [maxDate]="maxDate"\n [minMode]="minMode"\n [maxMode]="maxMode"\n [showWeeks]="showWeeks"\n [formatDay]="formatDay"\n [formatMonth]="formatMonth"\n [formatYear]="formatYear"\n [formatDayHeader]="formatDayHeader"\n [formatDayTitle]="formatDayTitle"\n [formatMonthTitle]="formatMonthTitle"\n [startingDay]="startingDay"\n [yearRange]="yearRange"\n [customClass]="customClass"\n [dateDisabled]="dateDisabled"\n [dayDisabled]="dayDisabled"\n [onlyCurrentMonth]="onlyCurrentMonth"\n [shortcutPropagation]="shortcutPropagation"\n [monthColLimit]="monthColLimit"\n [yearColLimit]="yearColLimit"\n (selectionDone)="onSelectionDone($event)"\n (activeDateChange)="onActiveDateChange($event)">\n <daypicker tabindex="0"></daypicker>\n <monthpicker tabindex="0"></monthpicker>\n <yearpicker tabindex="0"></yearpicker>\n </datepicker-inner>\n ',providers:[p]}]}],e.ctorParameters=function(){return[{type:h}]},e.propDecorators={datepickerMode:[{type:o.Input}],initDate:[{type:o.Input}],minDate:[{type:o.Input}],maxDate:[{type:o.Input}],minMode:[{type:o.Input}],maxMode:[{type:o.Input}],showWeeks:[{type:o.Input}],formatDay:[{type:o.Input}],formatMonth:[{type:o.Input}],formatYear:[{type:o.Input}],formatDayHeader:[{type:o.Input}],formatDayTitle:[{type:o.Input}],formatMonthTitle:[{type:o.Input}],startingDay:[{type:o.Input}],yearRange:[{type:o.Input}],onlyCurrentMonth:[{type:o.Input}],shortcutPropagation:[{type:o.Input}],monthColLimit:[{type:o.Input}],yearColLimit:[{type:o.Input}],customClass:[{type:o.Input}],dateDisabled:[{type:o.Input}],dayDisabled:[{type:o.Input}],activeDate:[{type:o.Input}],selectionDone:[{type:o.Output}],activeDateChange:[{type:o.Output}],_datePicker:[{type:o.ViewChild,args:[u]}]},e}(),m=function(){function e(e){this.labels=[],this.rows=[],this.weekNumbers=[],this.datePicker=e}return Object.defineProperty(e.prototype,"isBs4",{get:function(){return!n.isBs3()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var f=this;this.datePicker.stepDay={months:1},this.datePicker.setRefreshViewHandler(function(){var e=this.activeDate.getFullYear(),t=this.activeDate.getMonth(),n=new Date(e,t,1),a=this.startingDay-n.getDay(),i=0<a?7-a:-a,r=new Date(n.getTime());0<i&&r.setDate(1-i);for(var o=f.getDates(r,42),s=[],c=0;c<42;c++){var d=this.createDateObject(o[c],this.formatDay);d.secondary=o[c].getMonth()!==t,d.uid=this.uniqueId+"-"+c,s[c]=d}f.labels=[];for(var l=0;l<7;l++)f.labels[l]={},f.labels[l].abbr=this.dateFilter(s[l].date,this.formatDayHeader),f.labels[l].full=this.dateFilter(s[l].date,"EEEE");if(f.title=this.dateFilter(this.activeDate,this.formatDayTitle),f.rows=this.split(s,7),this.showWeeks){f.weekNumbers=[];for(var u=(11-this.startingDay)%7,h=f.rows.length,p=0;p<h;p++)f.weekNumbers.push(f.getISO8601WeekNumber(f.rows[p][u].date))}},"day"),this.datePicker.setCompareHandler(function(e,t){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),a=new Date(t.getFullYear(),t.getMonth(),t.getDate());return n.getTime()-a.getTime()},"day"),this.datePicker.refreshView()},e.prototype.getDates=function(e,t){for(var n,a=new Array(t),i=new Date(e.getTime()),r=0;r<t;)n=new Date(i.getTime()),n=this.datePicker.fixTimeZone(n),a[r++]=n,i=new Date(n.getFullYear(),n.getMonth(),n.getDate()+1);return a},e.prototype.getISO8601WeekNumber=function(e){var t=new Date(e.getTime());t.setDate(t.getDate()+4-(t.getDay()||7));var n=t.getTime();return t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t.getTime())/864e5)/7)+1},e.decorators=[{type:o.Component,args:[{selector:"daypicker",template:'\n<table *ngIf="datePicker.datepickerMode === \'day\'" role="grid" [attr.aria-labelledby]="datePicker.uniqueId + \'-title\'" aria-activedescendant="activeDateId">\n <thead>\n <tr>\n <th>\n <button *ngIf="!isBs4"\n type="button"\n class="btn btn-default btn-secondary btn-sm pull-left float-left"\n (click)="datePicker.move(-1)"\n tabindex="-1">‹</button>\n <button *ngIf="isBs4"\n type="button"\n class="btn btn-default btn-secondary btn-sm pull-left float-left"\n (click)="datePicker.move(-1)"\n tabindex="-1">&lt;</button>\n </th>\n <th [attr.colspan]="5 + (datePicker.showWeeks ? 1 : 0)">\n <button [id]="datePicker.uniqueId + \'-title\'"\n type="button" class="btn btn-default btn-secondary btn-sm"\n (click)="datePicker.toggleMode(0)"\n [disabled]="datePicker.datepickerMode === datePicker.maxMode"\n [ngClass]="{disabled: datePicker.datepickerMode === datePicker.maxMode}" tabindex="-1" style="width:100%;">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button *ngIf="!isBs4"\n type="button"\n class="btn btn-default btn-secondary btn-sm pull-right float-right"\n (click)="datePicker.move(1)"\n tabindex="-1">›</button>\n <button *ngIf="isBs4"\n type="button"\n class="btn btn-default btn-secondary btn-sm pull-right float-right"\n (click)="datePicker.move(1)"\n tabindex="-1">&gt;\n </button>\n </th>\n </tr>\n <tr>\n <th *ngIf="datePicker.showWeeks"></th>\n <th *ngFor="let labelz of labels" class="text-center">\n <small aria-label="labelz.full"><b>{{ labelz.abbr }}</b></small>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-template ngFor [ngForOf]="rows" let-rowz="$implicit" let-index="index">\n <tr *ngIf="!(datePicker.onlyCurrentMonth && rowz[0].secondary && rowz[6].secondary)">\n <td *ngIf="datePicker.showWeeks" class="h6" class="text-center">\n <em>{{ weekNumbers[index] }}</em>\n </td>\n <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [id]="dtz.uid">\n <button type="button" style="min-width:100%;" class="btn btn-sm {{dtz.customClass}}"\n *ngIf="!(datePicker.onlyCurrentMonth && dtz.secondary)"\n [ngClass]="{\'btn-secondary\': isBs4 && !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': dtz.selected, disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz), \'btn-default\': !isBs4}"\n [disabled]="dtz.disabled"\n (click)="datePicker.select(dtz.date)" tabindex="-1">\n <span [ngClass]="{\'text-muted\': dtz.secondary || dtz.current, \'text-info\': !isBs4 && dtz.current}">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </ng-template>\n </tbody>\n</table>\n ',styles:["\n :host .btn-secondary {\n color: #292b2c;\n background-color: #fff;\n border-color: #ccc;\n }\n :host .btn-info .text-muted {\n color: #292b2c !important;\n }\n "]}]}],e.ctorParameters=function(){return[{type:u}]},e}(),g=function(){function e(e){this.rows=[],this.datePicker=e}return Object.defineProperty(e.prototype,"isBs4",{get:function(){return!n.isBs3()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var i=this;this.datePicker.stepMonth={years:1},this.datePicker.setRefreshViewHandler(function(){for(var e,t=new Array(12),n=this.activeDate.getFullYear(),a=0;a<12;a++)e=new Date(n,a,1),e=this.fixTimeZone(e),t[a]=this.createDateObject(e,this.formatMonth),t[a].uid=this.uniqueId+"-"+a;i.title=this.dateFilter(this.activeDate,this.formatMonthTitle),i.rows=this.split(t,i.datePicker.monthColLimit)},"month"),this.datePicker.setCompareHandler(function(e,t){var n=new Date(e.getFullYear(),e.getMonth()),a=new Date(t.getFullYear(),t.getMonth());return n.getTime()-a.getTime()},"month"),this.datePicker.refreshView()},e.decorators=[{type:o.Component,args:[{selector:"monthpicker",template:'\n<table *ngIf="datePicker.datepickerMode===\'month\'" role="grid">\n <thead>\n <tr>\n <th>\n <button type="button" class="btn btn-default btn-sm pull-left float-left"\n (click)="datePicker.move(-1)" tabindex="-1">‹</button></th>\n <th [attr.colspan]="((datePicker.monthColLimit - 2) <= 0) ? 1 : datePicker.monthColLimit - 2">\n <button [id]="datePicker.uniqueId + \'-title\'"\n type="button" class="btn btn-default btn-sm"\n (click)="datePicker.toggleMode(0)"\n [disabled]="datePicker.datepickerMode === maxMode"\n [ngClass]="{disabled: datePicker.datepickerMode === maxMode}" tabindex="-1" style="width:100%;">\n <strong>{{ title }}</strong> \n </button>\n </th>\n <th>\n <button type="button" class="btn btn-default btn-sm pull-right float-right"\n (click)="datePicker.move(1)" tabindex="-1">›</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let rowz of rows">\n <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [attr.id]="dtz.uid" [ngClass]="dtz.customClass">\n <button type="button" style="min-width:100%;" class="btn btn-default"\n [ngClass]="{\'btn-link\': isBs4 && !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}"\n [disabled]="dtz.disabled"\n (click)="datePicker.select(dtz.date)" tabindex="-1">\n <span [ngClass]="{\'text-success\': isBs4 && dtz.current, \'text-info\': !isBs4 && dtz.current}">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n ',styles:["\n :host .btn-info .text-success {\n color: #fff !important;\n }\n "]}]}],e.ctorParameters=function(){return[{type:u}]},e}(),b=function(){function e(e){this.rows=[],this.datePicker=e}return Object.defineProperty(e.prototype,"isBs4",{get:function(){return!n.isBs3()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var i=this;this.datePicker.stepYear={years:this.datePicker.yearRange},this.datePicker.setRefreshViewHandler(function(){for(var e,t=new Array(this.yearRange),n=i.getStartingYear(this.activeDate.getFullYear()),a=0;a<this.yearRange;a++)e=new Date(n+a,0,1),e=this.fixTimeZone(e),t[a]=this.createDateObject(e,this.formatYear),t[a].uid=this.uniqueId+"-"+a;i.title=[t[0].label,t[this.yearRange-1].label].join(" - "),i.rows=this.split(t,i.datePicker.yearColLimit)},"year"),this.datePicker.setCompareHandler(function(e,t){return e.getFullYear()-t.getFullYear()},"year"),this.datePicker.refreshView()},e.prototype.getStartingYear=function(e){return(e-1)/this.datePicker.yearRange*this.datePicker.yearRange+1},e.decorators=[{type:o.Component,args:[{selector:"yearpicker",template:'\n<table *ngIf="datePicker.datepickerMode===\'year\'" role="grid">\n <thead>\n <tr>\n <th>\n <button type="button" class="btn btn-default btn-sm pull-left float-left"\n (click)="datePicker.move(-1)" tabindex="-1">‹</button>\n </th>\n <th [attr.colspan]="((datePicker.yearColLimit - 2) <= 0) ? 1 : datePicker.yearColLimit - 2">\n <button [id]="datePicker.uniqueId + \'-title\'" role="heading"\n type="button" class="btn btn-default btn-sm"\n (click)="datePicker.toggleMode(0)"\n [disabled]="datePicker.datepickerMode === datePicker.maxMode"\n [ngClass]="{disabled: datePicker.datepickerMode === datePicker.maxMode}" tabindex="-1" style="width:100%;">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button type="button" class="btn btn-default btn-sm pull-right float-right"\n (click)="datePicker.move(1)" tabindex="-1">›</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let rowz of rows">\n <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [attr.id]="dtz.uid">\n <button type="button" style="min-width:100%;" class="btn btn-default"\n [ngClass]="{\'btn-link\': isBs4 && !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}"\n [disabled]="dtz.disabled"\n (click)="datePicker.select(dtz.date)" tabindex="-1">\n <span [ngClass]="{\'text-success\': isBs4 && dtz.current, \'text-info\': !isBs4 && dtz.current}">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n ',styles:["\n :host .btn-info .text-success {\n color: #fff !important;\n }\n "]}]}],e.ctorParameters=function(){return[{type:u}]},e}(),v=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[h]}},e.decorators=[{type:o.NgModule,args:[{imports:[a.CommonModule,t.FormsModule],declarations:[y,u,m,g,b],exports:[y,u,m,g,b],entryComponents:[y]}]}],e}(),D=function(e,t){return(D=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function w(e,t){function n(){this.constructor=e}D(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function k(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function _(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,i,r=n.call(e),o=[];try{for(;(void 0===t||0<t--)&&!(a=r.next()).done;)o.push(a.value)}catch(s){i={error:s}}finally{try{a&&!a.done&&(n=r["return"])&&n.call(r)}finally{if(i)throw i.error}}return o}function C(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(_(arguments[t]));return e}var M=function(){function e(){this._customRangesFish=[]}return Object.defineProperty(e.prototype,"minDate",{set:function(e){this._effects.setMinDate(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{set:function(e){this._effects.setMaxDate(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisabled",{set:function(e){this._effects.setDisabled(e)},enumerable:!0,configurable:!0}),e.prototype.setViewMode=function(e){},e.prototype.navigateTo=function(e){},e.prototype.dayHoverHandler=function(e){},e.prototype.monthHoverHandler=function(e){},e.prototype.yearHoverHandler=function(e){},e.prototype.daySelectHandler=function(e){},e.prototype.monthSelectHandler=function(e){},e.prototype.yearSelectHandler=function(e){},e.prototype._stopPropagation=function(e){e.stopPropagation()},e}(),x=function(){function e(){this.containerClass="theme-green",this.displayMonths=1,this.showWeekNumbers=!0,this.dateInputFormat="L",this.rangeSeparator=" - ",this.rangeInputFormat="L",this.monthTitle="MMMM",this.yearTitle="YYYY",this.dayLabel="D",this.monthLabel="MMMM",this.yearLabel="YYYY",this.weekNumbers="w"}return e.decorators=[{type:o.Injectable}],e}(),O=function(){function t(){}return t.prototype.calculate=function(){return{type:t.CALCULATE}},t.prototype.format=function(){return{type:t.FORMAT}},t.prototype.flag=function(){return{type:t.FLAG}},t.prototype.select=function(e){return{type:t.SELECT,payload:e}},t.prototype.changeViewMode=function(e){return{type:t.CHANGE_VIEWMODE,payload:e}},t.prototype.navigateTo=function(e){return{type:t.NAVIGATE_TO,payload:e}},t.prototype.navigateStep=function(e){return{type:t.NAVIGATE_OFFSET,payload:e}},t.prototype.setOptions=function(e){return{type:t.SET_OPTIONS,payload:e}},t.prototype.selectRange=function(e){return{type:t.SELECT_RANGE,payload:e}},t.prototype.hoverDay=function(e){return{type:t.HOVER,payload:e.isHovered?e.cell.date:null}},t.prototype.minDate=function(e){return{type:t.SET_MIN_DATE,payload:e}},t.prototype.maxDate=function(e){return{type:t.SET_MAX_DATE,payload:e}},t.prototype.isDisabled=function(e){return{type:t.SET_IS_DISABLED,payload:e}},t.prototype.setLocale=function(e){return{type:t.SET_LOCALE,payload:e}},t.CALCULATE="[datepicker] calculate dates matrix",t.FORMAT="[datepicker] format datepicker values",t.FLAG="[datepicker] set flags",t.SELECT="[datepicker] select date",t.NAVIGATE_OFFSET="[datepicker] shift view date",t.NAVIGATE_TO="[datepicker] change view date",t.SET_OPTIONS="[datepicker] update render options",t.HOVER="[datepicker] hover date",t.CHANGE_VIEWMODE="[datepicker] switch view mode",t.SET_MIN_DATE="[datepicker] set min date",t.SET_MAX_DATE="[datepicker] set max date",t.SET_IS_DISABLED="[datepicker] set is disabled",t.SET_LOCALE="[datepicker] set datepicker locale",t.SELECT_RANGE="[daterangepicker] select dates range",t.decorators=[{type:o.Injectable}],t}(),I=function(){function e(){this._defaultLocale="en",this._locale=new i.BehaviorSubject(this._defaultLocale),this._localeChange=this._locale.asObservable()}return Object.defineProperty(e.prototype,"locale",{get:function(){return this._locale},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"localeChange",{get:function(){return this._localeChange},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentLocale",{get:function(){return this._locale.getValue()},enumerable:!0,configurable:!0}),e.prototype.use=function(e){e!==this.currentLocale&&this._locale.next(e)},e.decorators=[{type:o.Injectable}],e}(),S=function(){function e(e,t){this._actions=e,this._localeService=t,this._subs=[]}return e.prototype.init=function(e){return this._store=e,this},e.prototype.setValue=function(e){this._store.dispatch(this._actions.select(e))},e.prototype.setRangeValue=function(e){this._store.dispatch(this._actions.selectRange(e))},e.prototype.setMinDate=function(e){return this._store.dispatch(this._actions.minDate(e)),this},e.prototype.setMaxDate=function(e){return this._store.dispatch(this._actions.maxDate(e)),this},e.prototype.setDisabled=function(e){return this._store.dispatch(this._actions.isDisabled(e)),this},e.prototype.setOptions=function(e){var t=Object.assign({locale:this._localeService.currentLocale},e);return this._store.dispatch(this._actions.setOptions(t)),this},e.prototype.setBindings=function(e){return e.daysCalendar=this._store.select(function(e){return e.flaggedMonths}).pipe(r.filter(function(e){return!!e})),e.monthsCalendar=this._store.select(function(e){return e.flaggedMonthsCalendar}).pipe(r.filter(function(e){return!!e})),e.yearsCalendar=this._store.select(function(e){return e.yearsCalendarFlagged}).pipe(r.filter(function(e){return!!e})),e.viewMode=this._store.select(function(e){return e.view.mode}),e.options=this._store.select(function(e){return e.showWeekNumbers}).pipe(r.map(function(e){return{showWeekNumbers:e}})),this},e.prototype.setEventHandlers=function(e){var n=this;return e.setViewMode=function(e){n._store.dispatch(n._actions.changeViewMode(e))},e.navigateTo=function(e){n._store.dispatch(n._actions.navigateStep(e.step))},e.dayHoverHandler=function(e){var t=e.cell;t.isOtherMonth||t.isDisabled||(n._store.dispatch(n._actions.hoverDay(e)),t.isHovered=e.isHovered)},e.monthHoverHandler=function(e){e.cell.isHovered=e.isHovered},e.yearHoverHandler=function(e){e.cell.isHovered=e.isHovered},e.monthSelectHandler=function(e){e.isDisabled||n._store.dispatch(n._actions.navigateTo({unit:{month:f.getMonth(e.date)},viewMode:"day"}))},e.yearSelectHandler=function(e){e.isDisabled||n._store.dispatch(n._actions.navigateTo({unit:{year:f.getFullYear(e.date)},viewMode:"month"}))},this},e.prototype.registerDatepickerSideEffects=function(){var t=this;return this._subs.push(this._store.select(function(e){return e.view}).subscribe(function(e){t._store.dispatch(t._actions.calculate())})),this._subs.push(this._store.select(function(e){return e.monthsModel}).pipe(r.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.format())})),this._subs.push(this._store.select(function(e){return e.formattedMonths}).pipe(r.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.selectedDate}).pipe(r.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.selectedRange}).pipe(r.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.monthsCalendar}).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.yearsCalendarModel}).pipe(r.filter(function(e){return!!e})).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.hoveredDate}).pipe(r.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._localeService.localeChange.subscribe(function(e){return t._store.dispatch(t._actions.setLocale(e))})),this},e.prototype.destroy=function(){try{for(var e=k(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a},e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[{type:O},{type:I}]},e}(),E={date:new Date,mode:"day"},A=Object.assign(new x,{locale:"en",view:E,selectedRange:[],monthViewOptions:{width:7,height:6}});function V(e,t,n){var a=t&&f.isBefore(f.endOf(e,"month"),t,"day"),i=n&&f.isAfter(f.startOf(e,"month"),n,"day");return a||i}function H(e,t,n){var a=t&&f.isBefore(f.endOf(e,"year"),t,"day"),i=n&&f.isAfter(f.startOf(e,"year"),n,"day");return a||i}function T(e,t){for(var n=e.initialDate,a=new Array(e.height),i=0;i<e.height;i++){a[i]=new Array(e.width);for(var r=0;r<e.width;r++)a[i][r]=t(n),n=f.shiftDate(n,e.shift)}return a}function P(e,t){var n=f.getFirstDayOfMonth(e),a=function i(e,t){if(f.isFirstDayOfWeek(e,t.firstDayOfWeek))return e;var n=function a(e,t){if(0===t)return e;var n=e-t%7;return n<0?n+7:n}(f.getDay(e),t.firstDayOfWeek);return f.shiftDate(e,{day:-n})}(n,t);return{daysMatrix:T({width:t.width,height:t.height,initialDate:a,shift:{day:1}},function(e){return e}),month:n}}function R(e,a,i){return{month:e.month,monthTitle:f.formatDate(e.month,a.monthTitle,a.locale),yearTitle:f.formatDate(e.month,a.yearTitle,a.locale),weekNumbers:function r(e,t,n){return e.map(function(e){return e[0]?f.formatDate(e[0],t,n):""})}(e.daysMatrix,a.weekNumbers,a.locale),weekdays:function o(e){var t=f.getLocale(e),n=t.weekdaysShort(),a=t.firstDayOfWeek();return C(n.slice(a),n.slice(0,a))}(a.locale),weeks:e.daysMatrix.map(function(e,n){return{days:e.map(function(e,t){return{date:e,label:f.formatDate(e,a.dayLabel,a.locale),monthIndex:i,weekIndex:n,dayIndex:t}})}})}}var F=4,L=3,N={month:1};function j(e,t){var n=f.startOf(e,"year");return{months:T({width:L,height:F,initialDate:n,shift:N},function(e){return{date:e,label:f.formatDate(e,t.monthLabel,t.locale)}}),monthTitle:"",yearTitle:f.formatDate(e,t.yearTitle,t.locale)}}var Y=4,z=4,B=Y*z,W=-1*(Math.floor(B/2)-1),$={year:1};function G(e,t){var n=f.shiftDate(e,{year:W}),a=T({width:z,height:Y,initialDate:n,shift:$},function(e){return{date:e,label:f.formatDate(e,t.yearLabel,t.locale)}});return{years:a,monthTitle:"",yearTitle:function i(e,t){var n=f.formatDate(e[0][0].date,t.yearTitle,t.locale),a=f.formatDate(e[Y-1][z-1].date,t.yearTitle,t.locale);return n+" - "+a}(a,t)}}function q(e,t){switch(void 0===e&&(e=A),t.type){case O.CALCULATE:return function c(e){var t=e.displayMonths,n=e.view.date;if("day"===e.view.mode){e.monthViewOptions.firstDayOfWeek=f.getLocale(e.locale).firstDayOfWeek();for(var a=new Array(t),i=0;i<t;i++)a[i]=P(n,e.monthViewOptions),n=f.shiftDate(n,{month:1});return Object.assign({},e,{monthsModel:a})}if("month"===e.view.mode){for(var r=new Array(t),o=0;o<t;o++)r[o]=j(n,U(e)),n=f.shiftDate(n,{year:1});return Object.assign({},e,{monthsCalendar:r})}if("year"!==e.view.mode)return e;for(var s=new Array(t),o=0;o<t;o++)s[o]=G(n,U(e)),n=f.shiftDate(n,{year:B});return Object.assign({},e,{yearsCalendarModel:s})}(e);case O.FORMAT:return function d(n,e){if("day"===n.view.mode){var t=n.monthsModel.map(function(e,t){return R(e,U(n),t)});return Object.assign({},n,{formattedMonths:t})}var a=n.displayMonths,i=n.view.date;if("month"===n.view.mode){for(var r=new Array(a),o=0;o<a;o++)r[o]=j(i,U(n)),i=f.shiftDate(i,{year:1});return Object.assign({},n,{monthsCalendar:r})}if("year"!==n.view.mode)return n;for(var s=new Array(a),o=0;o<a;o++)s[o]=G(i,U(n)),i=f.shiftDate(i,{year:16});return Object.assign({},n,{yearsCalendarModel:s})}(e);case O.FLAG:return function o(a,e){if("day"===a.view.mode){var t=a.formattedMonths.map(function(e,t){return function n(h,p){return h.weeks.forEach(function(u,e){u.days.forEach(function(e,t){var n=!f.isSameMonth(e.date,h.month),a=!n&&f.isSameDay(e.date,p.hoveredDate),i=!n&&p.selectedRange&&f.isSameDay(e.date,p.selectedRange[0]),r=!n&&p.selectedRange&&f.isSameDay(e.date,p.selectedRange[1]),o=!n&&f.isSameDay(e.date,p.selectedDate)||i||r,s=!n&&p.selectedRange&&function l(e,t,n){return!(!e||!t[0])&&(t[1]?e>t[0]&&e<=t[1]:!!n&&(e>t[0]&&e<=n))}(e.date,p.selectedRange,p.hoveredDate),c=p.isDisabled||f.isBefore(e.date,p.minDate,"day")||f.isAfter(e.date,p.maxDate,"day"),d=Object.assign({},e,{isOtherMonth:n,isHovered:a,isSelected:o,isSelectionStart:i,isSelectionEnd:r,isInRange:s,isDisabled:c});e.isOtherMonth===d.isOtherMonth&&e.isHovered===d.isHovered&&e.isSelected===d.isSelected&&e.isSelectionStart===d.isSelectionStart&&e.isSelectionEnd===d.isSelectionEnd&&e.isDisabled===d.isDisabled&&e.isInRange===d.isInRange||(u.days[t]=d)})}),h.hideLeftArrow=p.isDisabled||0<p.monthIndex&&p.monthIndex!==p.displayMonths,h.hideRightArrow=p.isDisabled||p.monthIndex<p.displayMonths&&p.monthIndex+1!==p.displayMonths,h.disableLeftArrow=V(f.shiftDate(h.month,{month:-1}),p.minDate,p.maxDate),h.disableRightArrow=V(f.shiftDate(h.month,{month:1}),p.minDate,p.maxDate),h}(e,{isDisabled:a.isDisabled,minDate:a.minDate,maxDate:a.maxDate,hoveredDate:a.hoveredDate,selectedDate:a.selectedDate,selectedRange:a.selectedRange,displayMonths:a.displayMonths,monthIndex:t})});return Object.assign({},a,{flaggedMonths:t})}if("month"===a.view.mode){var n=a.monthsCalendar.map(function(e,t){return function n(o,s){return o.months.forEach(function(e,r){e.forEach(function(e,t){var n=f.isSameMonth(e.date,s.hoveredMonth),a=s.isDisabled||V(e.date,s.minDate,s.maxDate),i=Object.assign(e,{isHovered:n,isDisabled:a});e.isHovered===i.isHovered&&e.isDisabled===i.isDisabled||(o.months[r][t]=i)})}),o.hideLeftArrow=0<s.monthIndex&&s.monthIndex!==s.displayMonths,o.hideRightArrow=s.monthIndex<s.displayMonths&&s.monthIndex+1!==s.displayMonths,o.disableLeftArrow=H(f.shiftDate(o.months[0][0].date,{year:-1}),s.minDate,s.maxDate),o.disableRightArrow=H(f.shiftDate(o.months[0][0].date,{year:1}),s.minDate,s.maxDate),o}(e,{isDisabled:a.isDisabled,minDate:a.minDate,maxDate:a.maxDate,hoveredMonth:a.hoveredMonth,displayMonths:a.displayMonths,monthIndex:t})});return Object.assign({},a,{flaggedMonthsCalendar:n})}if("year"!==a.view.mode)return a;var i=a.yearsCalendarModel.map(function(e,t){return function n(o,s){o.years.forEach(function(e,r){e.forEach(function(e,t){var n=f.isSameYear(e.date,s.hoveredYear),a=s.isDisabled||H(e.date,s.minDate,s.maxDate),i=Object.assign(e,{isHovered:n,isDisabled:a});e.isHovered===i.isHovered&&e.isDisabled===i.isDisabled||(o.years[r][t]=i)})}),o.hideLeftArrow=0<s.yearIndex&&s.yearIndex!==s.displayMonths,o.hideRightArrow=s.yearIndex<s.displayMonths&&s.yearIndex+1!==s.displayMonths,o.disableLeftArrow=H(f.shiftDate(o.years[0][0].date,{year:-1}),s.minDate,s.maxDate);var e=o.years.length-1,t=o.years[e].length-1;return o.disableRightArrow=H(f.shiftDate(o.years[e][t].date,{year:1}),s.minDate,s.maxDate),o}(e,{isDisabled:a.isDisabled,minDate:a.minDate,maxDate:a.maxDate,hoveredYear:a.hoveredYear,displayMonths:a.displayMonths,yearIndex:t})});return Object.assign({},a,{yearsCalendarFlagged:i})}(e);case O.NAVIGATE_OFFSET:var n=f.shiftDate(f.startOf(e.view.date,"month"),t.payload),a={view:{mode:e.view.mode,date:n}};return Object.assign({},e,a);case O.NAVIGATE_TO:var i=t.payload;a={view:{date:n=f.setFullDate(e.view.date,i.unit),mode:r=i.viewMode}};return Object.assign({},e,a);case O.CHANGE_VIEWMODE:t.payload,0;a={view:{date:n=e.view.date,mode:r=t.payload}};return Object.assign({},e,a);case O.HOVER:return Object.assign({},e,{hoveredDate:t.payload});case O.SELECT:a={selectedDate:t.payload,view:e.view};var r=e.view.mode;n=Z(t.payload||e.view.date,e.minDate,e.maxDate);return a.view={mode:r,date:n},Object.assign({},e,a);case O.SET_OPTIONS:a=t.payload,r=e.view.mode,n=Z(f.isDateValid(a.value)&&a.value||f.isArray(a.value)&&f.isDateValid(a.value[0])&&a.value[0]||e.view.date,a.minDate,a.maxDate);return a.view={mode:r,date:n},a.value&&(f.isArray(a.value)&&(a.selectedRange=a.value),a.value instanceof Date&&(a.selectedDate=a.value)),Object.assign({},e,a);case O.SELECT_RANGE:a={selectedRange:t.payload,view:e.view},r=e.view.mode,n=Z(t.payload&&t.payload[0]||e.view.date,e.minDate,e.maxDate);return a.view={mode:r,date:n},Object.assign({},e,a);case O.SET_MIN_DATE:return Object.assign({},e,{minDate:t.payload});case O.SET_MAX_DATE:return Object.assign({},e,{maxDate:t.payload});case O.SET_IS_DISABLED:return Object.assign({},e,{isDisabled:t.payload});default:return e}}function U(e){return{locale:e.locale,monthTitle:e.monthTitle,yearTitle:e.yearTitle,dayLabel:e.dayLabel,monthLabel:e.monthLabel,yearLabel:e.yearLabel,weekNumbers:e.weekNumbers}}function Z(e,t,n){var a=Array.isArray(e)?e[0]:e;return t&&f.isAfter(t,a,"day")?t:n&&f.isBefore(n,a,"day")?n:a}var Q=function(n){function e(){var e=new i.BehaviorSubject({type:"[datepicker] dispatcher init"}),t=new s.MiniState(A,e,q);return n.call(this,e,q,t)||this}return w(e,n),e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[]},e}(s.MiniStore),K=function(r){function e(e,t,n,a){var i=r.call(this)||this;return i._config=e,i._store=t,i._actions=n,i.valueChange=new o.EventEmitter,i._subs=[],i._effects=a,i}return w(e,r),Object.defineProperty(e.prototype,"value",{set:function(e){this._effects.setValue(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.containerClass=this._config.containerClass,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(function(e){return e.selectedDate}).subscribe(function(e){return t.valueChange.emit(e)}))},e.prototype.daySelectHandler=function(e){e.isOtherMonth||e.isDisabled||this._store.dispatch(this._actions.select(e.date))},e.prototype.ngOnDestroy=function(){try{for(var e=k(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a;this._effects.destroy()},e.decorators=[{type:o.Component,args:[{selector:"bs-datepicker-container",providers:[Q,S],template:'\x3c!-- days calendar view mode --\x3e\n<div class="bs-datepicker" [ngClass]="containerClass" *ngIf="viewMode | async">\n <div class="bs-datepicker-container">\n\n \x3c!--calendars--\x3e\n <div class="bs-calendar-container" [ngSwitch]="viewMode | async" role="application">\n \x3c!--days calendar--\x3e\n <div *ngSwitchCase="\'day\'">\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 (onSelect)="daySelectHandler($event)"\n ></bs-days-calendar-view>\n </div>\n\n \x3c!--months calendar--\x3e\n <div *ngSwitchCase="\'month\'">\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 \x3c!--years calendar--\x3e\n <div *ngSwitchCase="\'year\'">\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\n </div>\n\n \x3c!--applycancel buttons--\x3e\n <div class="bs-datepicker-buttons" *ngIf="false">\n <button class="btn btn-success">Apply</button>\n <button class="btn btn-default">Cancel</button>\n </div>\n\n </div>\n\n \x3c!--custom dates or date ranges picker--\x3e\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',host:{"(click)":"_stopPropagation($event)",style:"position: absolute; display: block;",role:"dialog","aria-label":"calendar"}}]}],e.ctorParameters=function(){return[{type:x},{type:Q},{type:O},{type:S}]},e}(M),X=function(){function e(e,t,n,a,i){this._config=e,this.placement="bottom",this.triggers="click",this.outsideClick=!0,this.container="body",this.bsValueChange=new o.EventEmitter,this._subs=[],Object.assign(this,this._config),this._datepicker=i.createLoader(t,a,n),this.onShown=this._datepicker.onShown,this.onHidden=this._datepicker.onHidden}return Object.defineProperty(e.prototype,"isOpen",{get:function(){return this._datepicker.isShown},set:function(e){e?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bsValue",{set:function(e){this._bsValue!==e&&(this._bsValue=e,this.bsValueChange.emit(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this._datepicker.listen({outsideClick:this.outsideClick,triggers:this.triggers,show:function(){return e.show()}}),this.setConfig()},e.prototype.ngOnChanges=function(e){this._datepickerRef&&this._datepickerRef.instance&&(e.minDate&&(this._datepickerRef.instance.minDate=this.minDate),e.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),e.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled))},e.prototype.show=function(){var t=this;this._datepicker.isShown||(this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:x,useValue:this._config}).attach(K).to(this.container).position({attachment:this.placement}).show({placement:this.placement}),this._subs.push(this.bsValueChange.subscribe(function(e){t._datepickerRef.instance.value=e})),this._subs.push(this._datepickerRef.instance.valueChange.subscribe(function(e){t.bsValue=e,t.hide()})))},e.prototype.hide=function(){this.isOpen&&this._datepicker.hide();try{for(var e=k(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a},e.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},e.prototype.setConfig=function(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate})},e.prototype.ngOnDestroy=function(){this._datepicker.dispose()},e.decorators=[{type:o.Directive,args:[{selector:"[bsDatepicker]",exportAs:"bsDatepicker"}]}],e.ctorParameters=function(){return[{type:x},{type:o.ElementRef},{type:o.Renderer2},{type:o.ViewContainerRef},{type:c.ComponentLoaderFactory}]},e.propDecorators={placement:[{type:o.Input}],triggers:[{type:o.Input}],outsideClick:[{type:o.Input}],container:[{type:o.Input}],isOpen:[{type:o.Input}],onShown:[{type:o.Output}],onHidden:[{type:o.Output}],bsValue:[{type:o.Input}],bsConfig:[{type:o.Input}],isDisabled:[{type:o.Input}],minDate:[{type:o.Input}],maxDate:[{type:o.Input}],bsValueChange:[{type:o.Output}]},e}(),J={provide:t.NG_VALUE_ACCESSOR,useExisting:o.forwardRef(function(){return te}),multi:!0},ee={provide:t.NG_VALIDATORS,useExisting:o.forwardRef(function(){return te}),multi:!0},te=function(){function e(e,t,n,a,i){var r=this;this._picker=e,this._localeService=t,this._renderer=n,this._elRef=a,this.changeDetection=i,this._onChange=Function.prototype,this._onTouched=Function.prototype,this._validatorChange=Function.prototype,this._picker.bsValueChange.subscribe(function(e){r._setInputValue(e),r._value!==e&&(r._value=e,r._onChange(e),r._onTouched()),r.changeDetection.markForCheck()}),this._localeService.localeChange.subscribe(function(){r._setInputValue(r._value)})}return e.prototype._setInputValue=function(e){var t=e?f.formatDate(e,this._picker._config.dateInputFormat,this._localeService.currentLocale):"";this._renderer.setProperty(this._elRef.nativeElement,"value",t)},e.prototype.onChange=function(e){this.writeValue(e.target.value),this._onChange(this._value),this._onTouched()},e.prototype.validate=function(e){var t=e.value;if(null===t||t===undefined||""===t)return null;if(f.isDate(t)){if(!f.isDateValid(t))return{bsDate:{invalid:t}};if(this._picker&&this._picker.minDate&&f.isBefore(t,this._picker.minDate,"date"))return{bsDate:{minDate:this._picker.minDate}};if(this._picker&&this._picker.maxDate&&f.isAfter(t,this._picker.maxDate,"date"))return{bsDate:{maxDate:this._picker.maxDate}}}},e.prototype.registerOnValidatorChange=function(e){this._validatorChange=e},e.prototype.writeValue=function(e){if(e){var t=this._localeService.currentLocale;if(!f.getLocale(t))throw new Error('Locale "'+t+'" is not defined, please add it with "defineLocale(...)"');this._value=f.parseDate(e,this._picker._config.dateInputFormat,this._localeService.currentLocale)}else this._value=null;this._picker.bsValue=this._value},e.prototype.setDisabledState=function(e){(this._picker.isDisabled=e)?this._renderer.setAttribute(this._elRef.nativeElement,"disabled","disabled"):this._renderer.removeAttribute(this._elRef.nativeElement,"disabled")},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.onBlur=function(){this._onTouched()},e.prototype.hide=function(){this._picker.hide()},e.decorators=[{type:o.Directive,args:[{selector:"input[bsDatepicker]",host:{"(change)":"onChange($event)","(keyup.esc)":"hide()","(blur)":"onBlur()"},providers:[J,ee]}]}],e.ctorParameters=function(){return[{type:X,decorators:[{type:o.Host}]},{type:I},{type:o.Renderer2},{type:o.ElementRef},{type:o.ChangeDetectorRef}]},e}(),ne=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.displayMonths=2,e}return w(e,t),e.decorators=[{type:o.Injectable}],e}(x),ae=function(r){function e(e,t,n,a){var i=r.call(this)||this;return i._config=e,i._store=t,i._actions=n,i.valueChange=new o.EventEmitter,i._rangeStack=[],i._subs=[],i._effects=a,i}return w(e,r),Object.defineProperty(e.prototype,"value",{set:function(e){this._effects.setRangeValue(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.containerClass=this._config.containerClass,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(function(e){return e.selectedRange}).subscribe(function(e){return t.valueChange.emit(e)}))},e.prototype.daySelectHandler=function(e){e.isOtherMonth||e.isDisabled||(1===this._rangeStack.length&&(this._rangeStack=e.date>=this._rangeStack[0]?[this._rangeStack[0],e.date]:[e.date]),0===this._rangeStack.length&&(this._rangeStack=[e.date]),this._store.dispatch(this._actions.selectRange(this._rangeStack)),2===this._rangeStack.length&&(this._rangeStack=[]))},e.prototype.ngOnDestroy=function(){try{for(var e=k(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a;this._effects.destroy()},e.decorators=[{type:o.Component,args:[{selector:"bs-daterangepicker-container",providers:[Q,S],template:'\x3c!-- days calendar view mode --\x3e\n<div class="bs-datepicker" [ngClass]="containerClass" *ngIf="viewMode | async">\n <div class="bs-datepicker-container">\n\n \x3c!--calendars--\x3e\n <div class="bs-calendar-container" [ngSwitch]="viewMode | async" role="application">\n \x3c!--days calendar--\x3e\n <div *ngSwitchCase="\'day\'">\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 (onSelect)="daySelectHandler($event)"\n ></bs-days-calendar-view>\n </div>\n\n \x3c!--months calendar--\x3e\n <div *ngSwitchCase="\'month\'">\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 \x3c!--years calendar--\x3e\n <div *ngSwitchCase="\'year\'">\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\n </div>\n\n \x3c!--applycancel buttons--\x3e\n <div class="bs-datepicker-buttons" *ngIf="false">\n <button class="btn btn-success">Apply</button>\n <button class="btn btn-default">Cancel</button>\n </div>\n\n </div>\n\n \x3c!--custom dates or date ranges picker--\x3e\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',host:{"(click)":"_stopPropagation($event)",style:"position: absolute; display: block;",role:"dialog","aria-label":"calendar"}}]}],e.ctorParameters=function(){return[{type:x},{type:Q},{type:O},{type:S}]},e}(M),ie=function(){function e(e,t,n,a,i){this._config=e,this.placement="bottom",this.triggers="click",this.outsideClick=!0,this.container="body",this.bsValueChange=new o.EventEmitter,this._subs=[],this._datepicker=i.createLoader(t,a,n),Object.assign(this,e),this.onShown=this._datepicker.onShown,this.onHidden=this._datepicker.onHidden}return Object.defineProperty(e.prototype,"isOpen",{get:function(){return this._datepicker.isShown},set:function(e){e?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bsValue",{set:function(e){this._bsValue!==e&&(this._bsValue=e,this.bsValueChange.emit(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this._datepicker.listen({outsideClick:this.outsideClick,triggers:this.triggers,show:function(){return e.show()}}),this.setConfig()},e.prototype.ngOnChanges=function(e){this._datepickerRef&&this._datepickerRef.instance&&(e.minDate&&(this._datepickerRef.instance.minDate=this.minDate),e.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),e.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled))},e.prototype.show=function(){var t=this;this._datepicker.isShown||(this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:x,useValue:this._config}).attach(ae).to(this.container).position({attachment:this.placement}).show({placement:this.placement}),this._subs.push(this.bsValueChange.subscribe(function(e){t._datepickerRef.instance.value=e})),this._subs.push(this._datepickerRef.instance.valueChange.pipe(r.filter(function(e){return e&&e[0]&&!!e[1]})).subscribe(function(e){t.bsValue=e,t.hide()})))},e.prototype.setConfig=function(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate})},e.prototype.hide=function(){this.isOpen&&this._datepicker.hide();try{for(var e=k(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a},e.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},e.prototype.ngOnDestroy=function(){this._datepicker.dispose()},e.decorators=[{type:o.Directive,args:[{selector:"[bsDaterangepicker]",exportAs:"bsDaterangepicker"}]}],e.ctorParameters=function(){return[{type:ne},{type:o.ElementRef},{type:o.Renderer2},{type:o.ViewContainerRef},{type:c.ComponentLoaderFactory}]},e.propDecorators={placement:[{type:o.Input}],triggers:[{type:o.Input}],outsideClick:[{type:o.Input}],container:[{type:o.Input}],isOpen:[{type:o.Input}],onShown:[{type:o.Output}],onHidden:[{type:o.Output}],bsValue:[{type:o.Input}],bsConfig:[{type:o.Input}],isDisabled:[{type:o.Input}],minDate:[{type:o.Input}],maxDate:[{type:o.Input}],bsValueChange:[{type:o.Output}]},e}(),re={provide:t.NG_VALUE_ACCESSOR,useExisting:o.forwardRef(function(){return se}),multi:!0},oe={provide:t.NG_VALIDATORS,useExisting:o.forwardRef(function(){return se}),multi:!0},se=function(){function e(e,t,n,a,i){var r=this;this._picker=e,this._localeService=t,this._renderer=n,this._elRef=a,this.changeDetection=i,this._onChange=Function.prototype,this._onTouched=Function.prototype,this._validatorChange=Function.prototype,this._picker.bsValueChange.subscribe(function(e){r._setInputValue(e),r._value!==e&&(r._value=e,r._onChange(e),r._onTouched()),r.changeDetection.markForCheck()}),this._localeService.localeChange.subscribe(function(){r._setInputValue(r._value)})}return e.prototype._setInputValue=function(e){var t="";if(e){var n=e[0]?f.formatDate(e[0],this._picker._config.rangeInputFormat,this._localeService.currentLocale):"",a=e[1]?f.formatDate(e[1],this._picker._config.rangeInputFormat,this._localeService.currentLocale):"";t=n&&a?n+this._picker._config.rangeSeparator+a:""}this._renderer.setProperty(this._elRef.nativeElement,"value",t)},e.prototype.onChange=function(e){this.writeValue(e.target.value),this._onChange(this._value),this._onTouched()},e.prototype.validate=function(e){var t=e.value;return null!==t&&t!==undefined&&f.isArray(t)?f.isDateValid(t[0])&&f.isDateValid(t[0])?this._picker&&this._picker.minDate&&f.isBefore(t[0],this._picker.minDate,"date")?{bsDate:{minDate:this._picker.minDate}}:this._picker&&this._picker.maxDate&&f.isAfter(t[1],this._picker.maxDate,"date")?{bsDate:{maxDate:this._picker.maxDate}}:void 0:{bsDate:{invalid:t}}:null},e.prototype.registerOnValidatorChange=function(e){this._validatorChange=e},e.prototype.writeValue=function(e){var t=this;if(e){var n=this._localeService.currentLocale;if(!f.getLocale(n))throw new Error('Locale "'+n+'" is not defined, please add it with "defineLocale(...)"');var a=[];"string"==typeof e&&(a=e.split(this._picker._config.rangeSeparator)),Array.isArray(e)&&(a=e),this._value=a.map(function(e){return f.parseDate(e,t._picker._config.dateInputFormat,t._localeService.currentLocale)}).map(function(e){return isNaN(e.valueOf())?null:e})}else this._value=null;this._picker.bsValue=this._value},e.prototype.setDisabledState=function(e){(this._picker.isDisabled=e)?this._renderer.setAttribute(this._elRef.nativeElement,"disabled","disabled"):this._renderer.removeAttribute(this._elRef.nativeElement,"disabled")},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.onBlur=function(){this._onTouched()},e.prototype.hide=function(){this._picker.hide()},e.decorators=[{type:o.Directive,args:[{selector:"input[bsDaterangepicker]",host:{"(change)":"onChange($event)","(keyup.esc)":"hide()","(blur)":"onBlur()"},providers:[re,oe]}]}],e.ctorParameters=function(){return[{type:ie,decorators:[{type:o.Host}]},{type:I},{type:o.Renderer2},{type:o.ElementRef},{type:o.ChangeDetectorRef}]},e}(),ce=function(){function e(){}return e.decorators=[{type:o.Component,args:[{selector:"bs-calendar-layout",template:'\n \x3c!-- current date, will be added in nearest releases --\x3e\n <bs-current-date title="hey there" *ngIf="false"></bs-current-date>\n\n \x3c!--navigation--\x3e\n <div class="bs-datepicker-head">\n <ng-content select="bs-datepicker-navigation-view"></ng-content>\n </div>\n\n <div class="bs-datepicker-body">\n <ng-content></ng-content>\n </div>\n\n \x3c!--timepicker--\x3e\n <bs-timepicker *ngIf="false"></bs-timepicker>\n '}]}],e}(),de=function(){function e(){}return e.decorators=[{type:o.Component,args:[{selector:"bs-current-date",template:'<div class="current-timedate"><span>{{ title }}</span></div>'}]}],e.propDecorators={title:[{type:o.Input}]},e}(),le=function(){function e(){}return e.decorators=[{type:o.Component,args:[{selector:"bs-custom-date-view",template:'\n <div class="bs-datepicker-predefined-btns">\n <button *ngFor="let range of ranges">{{ range.label }}</button>\n <button *ngIf="isCustomRangeShown">Custom Range</button>\n </div>\n ',changeDetection:o.ChangeDetectionStrategy.OnPush}]}],e.propDecorators={isCustomRangeShown:[{type:o.Input}],ranges:[{type:o.Input}]},e}(),ue=function(){function e(){}return e.decorators=[{type:o.Component,args:[{selector:"[bsDatepickerDayDecorator]",changeDetection:o.ChangeDetectionStrategy.OnPush,host:{"[class.disabled]":"day.isDisabled","[class.is-highlighted]":"day.isHovered","[class.is-other-month]":"day.isOtherMonth","[class.in-range]":"day.isInRange","[class.select-start]":"day.isSelectionStart","[class.select-end]":"day.isSelectionEnd","[class.selected]":"day.isSelected"},template:"{{ day.label }}"}]}],e.propDecorators={day:[{type:o.Input}]},e}(),he={UP:0,DOWN:1};he[he.UP]="UP",he[he.DOWN]="DOWN";var pe=function(){function e(){this.onNavigate=new o.EventEmitter,this.onViewMode=new o.EventEmitter}return e.prototype.navTo=function(e){this.onNavigate.emit(e?he.DOWN:he.UP)},e.prototype.view=function(e){this.onViewMode.emit(e)},e.decorators=[{type:o.Component,args:[{selector:"bs-datepicker-navigation-view",changeDetection:o.ChangeDetectionStrategy.OnPush,template:'\n <button class="previous"\n [disabled]="calendar.disableLeftArrow"\n [style.visibility]="calendar.hideLeftArrow ? \'hidden\' : \'visible\'"\n (click)="navTo(true)"><span>&lsaquo;</span>\n </button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="current"\n *ngIf="calendar.monthTitle"\n (click)="view(\'month\')"\n ><span>{{ calendar.monthTitle }}</span>\n </button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="current" (click)="view(\'year\')"\n ><span>{{ calendar.yearTitle }}</span></button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="next"\n [disabled]="calendar.disableRightArrow"\n [style.visibility]="calendar.hideRightArrow ? \'hidden\' : \'visible\'"\n (click)="navTo(false)"><span>&rsaquo;</span>\n </button>\n '}]}],e.propDecorators={calendar:[{type:o.Input}],onNavigate:[{type:o.Output}],onViewMode:[{type:o.Output}]},e}(),fe=function(){function e(){this.onNavigate=new o.EventEmitter,this.onViewMode=new o.EventEmitter,this.onSelect=new o.EventEmitter,this.onHover=new o.EventEmitter}return e.prototype.navigateTo=function(e){var t=he.DOWN===e?-1:1;this.onNavigate.emit({step:{month:t}})},e.prototype.changeViewMode=function(e){this.onViewMode.emit(e)},e.prototype.selectDay=function(e){this.onSelect.emit(e)},e.prototype.hoverDay=function(e,t){this.onHover.emit({cell:e,isHovered:t})},e.decorators=[{type:o.Component,args:[{selector:"bs-days-calendar-view",template:'\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="changeViewMode($event)"\n ></bs-datepicker-navigation-view>\n\n \x3c!--days matrix--\x3e\n <table role="grid" class="days weeks">\n <thead>\n <tr>\n \x3c!--if show weeks--\x3e\n <th *ngIf="options.showWeekNumbers"></th>\n <th *ngFor="let weekday of calendar.weekdays; let i = index"\n aria-label="weekday">{{ calendar.weekdays[i] }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let week of calendar.weeks; let i = index">\n <td class="week" *ngIf="options.showWeekNumbers">\n <span>{{ calendar.weekNumbers[i] }}</span>\n </td>\n <td *ngFor="let day of week.days" role="gridcell">\n <span bsDatepickerDayDecorator\n [day]="day"\n (click)="selectDay(day)"\n (mouseenter)="hoverDay(day, true)"\n (mouseleave)="hoverDay(day, false)">{{ day.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n\n </bs-calendar-layout>\n '}]}],e.propDecorators={calendar:[{type:o.Input}],options:[{type:o.Input}],onNavigate:[{type:o.Output}],onViewMode:[{type:o.Output}],onSelect:[{type:o.Output}],onHover:[{type:o.Output}]},e}(),ye=function(){function e(){this.onNavigate=new o.EventEmitter,this.onViewMode=new o.EventEmitter,this.onSelect=new o.EventEmitter,this.onHover=new o.EventEmitter}return e.prototype.navigateTo=function(e){var t=he.DOWN===e?-1:1;this.onNavigate.emit({step:{year:t}})},e.prototype.viewMonth=function(e){this.onSelect.emit(e)},e.prototype.hoverMonth=function(e,t){this.onHover.emit({cell:e,isHovered:t})},e.prototype.changeViewMode=function(e){this.onViewMode.emit(e)},e.decorators=[{type:o.Component,args:[{selector:"bs-month-calendar-view",template:'\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="changeViewMode($event)"\n ></bs-datepicker-navigation-view>\n\n <table role="grid" class="months">\n <tbody>\n <tr *ngFor="let row of calendar.months">\n <td *ngFor="let month of row" role="gridcell"\n (click)="viewMonth(month)"\n (mouseenter)="hoverMonth(month, true)"\n (mouseleave)="hoverMonth(month, false)"\n [class.disabled]="month.isDisabled"\n [class.is-highlighted]="month.isHovered">\n <span>{{ month.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n '}]}],e.propDecorators={calendar:[{type:o.Input}],onNavigate:[{type:o.Output}],onViewMode:[{type:o.Output}],onSelect:[{type:o.Output}],onHover:[{type:o.Output}]},e}(),me=function(){function e(){this.ampm="ok",this.hours=0,this.minutes=0}return e.decorators=[{type:o.Component,args:[{selector:"bs-timepicker",template:'\n <div class="bs-timepicker-container">\n <div class="bs-timepicker-controls">\n <button class="bs-decrease">-</button>\n <input type="text" [value]="hours" placeholder="00">\n <button class="bs-increase">+</button>\n </div>\n <div class="bs-timepicker-controls">\n <button class="bs-decrease">-</button>\n <input type="text" [value]="minutes" placeholder="00">\n <button class="bs-increase">+</button>\n </div>\n <button class="switch-time-format">{{ ampm }}\n <img\n src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg=="\n alt="">\n </button>\n </div>\n '}]}],e}(),ge=function(){function e(){this.onNavigate=new o.EventEmitter,this.onViewMode=new o.EventEmitter,this.onSelect=new o.EventEmitter,this.onHover=new o.EventEmitter}return e.prototype.navigateTo=function(e){var t=he.DOWN===e?-1:1;this.onNavigate.emit({step:{year:t*B}})},e.prototype.viewYear=function(e){this.onSelect.emit(e)},e.prototype.hoverYear=function(e,t){this.onHover.emit({cell:e,isHovered:t})},e.prototype.changeViewMode=function(e){this.onViewMode.emit(e)},e.decorators=[{type:o.Component,args:[{selector:"bs-years-calendar-view",template:'\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="changeViewMode($event)"\n ></bs-datepicker-navigation-view>\n\n <table role="grid" class="years">\n <tbody>\n <tr *ngFor="let row of calendar.years">\n <td *ngFor="let year of row" role="gridcell"\n (click)="viewYear(year)"\n (mouseenter)="hoverYear(year, true)"\n (mouseleave)="hoverYear(year, false)"\n [class.disabled]="year.isDisabled"\n [class.is-highlighted]="year.isHovered">\n <span>{{ year.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n '}]}],e.propDecorators={calendar:[{type:o.Input}],onNavigate:[{type:o.Output}],onViewMode:[{type:o.Output}],onSelect:[{type:o.Output}],onHover:[{type:o.Output}]},e}(),be=[K,ae,X,te,se,ie],ve=function(){function e(){n.warnOnce("BsDatepickerModule is under development,\n BREAKING CHANGES are possible,\n PLEASE, read changelog")}return e.forRoot=function(){return{ngModule:e,providers:[c.ComponentLoaderFactory,d.PositioningService,Q,O,x,ne,S,I]}},e.decorators=[{type:o.NgModule,args:[{imports:[a.CommonModule],declarations:C([ue,de,pe,me,ce,fe,ye,ge,le],be),entryComponents:[K,ae],exports:be}]}],e.ctorParameters=function(){return[]},e}();e.DatePickerComponent=y,e.DatepickerModule=v,e.DayPickerComponent=m,e.MonthPickerComponent=g,e.YearPickerComponent=b,e.DateFormatter=l,e.DatepickerConfig=h,e.BsDatepickerModule=ve,e.BsDatepickerDirective=X,e.BsDaterangepickerDirective=ie,e.BsDatepickerConfig=x,e.BsDaterangepickerConfig=ne,e.BsLocaleService=I,e.ɵm=M,e.ɵr=te,e.ɵs=se,e.ɵb=u,e.ɵa=p,e.ɵp=O,e.ɵo=S,e.ɵn=Q,e.ɵg=ce,e.ɵd=de,e.ɵk=le,e.ɵl=K,e.ɵc=ue,e.ɵe=pe,e.ɵq=ae,e.ɵh=fe,e.ɵi=ye,e.ɵf=me,e.ɵj=ge,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("ngx-bootstrap/chronos"),require("ngx-bootstrap/mini-ngrx"),require("ngx-bootstrap/component-loader"),require("@angular/forms"),require("@angular/common"),require("ngx-bootstrap/positioning"),require("ngx-bootstrap/utils")):"function"==typeof define&&define.amd?define("ngx-bootstrap/datepicker",["exports","@angular/core","rxjs","rxjs/operators","ngx-bootstrap/chronos","ngx-bootstrap/mini-ngrx","ngx-bootstrap/component-loader","@angular/forms","@angular/common","ngx-bootstrap/positioning","ngx-bootstrap/utils"],t):t((e["ngx-bootstrap"]=e["ngx-bootstrap"]||{},e["ngx-bootstrap"].datepicker={}),e.ng.core,e.rxjs,e.rxjs.operators,e.chronos,e.miniNgrx,e.componentLoader,e.ng.forms,e.ng.common,e.positioning,e.utils)}(this,function(e,r,a,n,m,i,t,s,o,c,d){"use strict";var l=function(){function e(){this.containerClass="theme-green",this.displayMonths=1,this.showWeekNumbers=!0,this.dateInputFormat="L",this.rangeSeparator=" - ",this.rangeInputFormat="L",this.monthTitle="MMMM",this.yearTitle="YYYY",this.dayLabel="D",this.monthLabel="MMMM",this.yearLabel="YYYY",this.weekNumbers="w"}return e.decorators=[{type:r.Injectable}],e}(),h=function(e,t){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function u(e,t){function n(){this.constructor=e}h(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function p(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function f(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,i,s=n.call(e),r=[];try{for(;(void 0===t||0<t--)&&!(a=s.next()).done;)r.push(a.value)}catch(o){i={error:o}}finally{try{a&&!a.done&&(n=s["return"])&&n.call(s)}finally{if(i)throw i.error}}return r}function y(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(f(arguments[t]));return e}var b=function(){function e(){this._customRangesFish=[]}return Object.defineProperty(e.prototype,"minDate",{set:function(e){this._effects.setMinDate(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{set:function(e){this._effects.setMaxDate(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"daysDisabled",{set:function(e){this._effects.setDaysDisabled(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"datesDisabled",{set:function(e){this._effects.setDatesDisabled(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisabled",{set:function(e){this._effects.setDisabled(e)},enumerable:!0,configurable:!0}),e.prototype.setViewMode=function(e){},e.prototype.navigateTo=function(e){},e.prototype.dayHoverHandler=function(e){},e.prototype.weekHoverHandler=function(e){},e.prototype.monthHoverHandler=function(e){},e.prototype.yearHoverHandler=function(e){},e.prototype.daySelectHandler=function(e){},e.prototype.monthSelectHandler=function(e){},e.prototype.yearSelectHandler=function(e){},e.prototype._stopPropagation=function(e){e.stopPropagation()},e}(),g=function(){function t(){}return t.prototype.calculate=function(){return{type:t.CALCULATE}},t.prototype.format=function(){return{type:t.FORMAT}},t.prototype.flag=function(){return{type:t.FLAG}},t.prototype.select=function(e){return{type:t.SELECT,payload:e}},t.prototype.changeViewMode=function(e){return{type:t.CHANGE_VIEWMODE,payload:e}},t.prototype.navigateTo=function(e){return{type:t.NAVIGATE_TO,payload:e}},t.prototype.navigateStep=function(e){return{type:t.NAVIGATE_OFFSET,payload:e}},t.prototype.setOptions=function(e){return{type:t.SET_OPTIONS,payload:e}},t.prototype.selectRange=function(e){return{type:t.SELECT_RANGE,payload:e}},t.prototype.hoverDay=function(e){return{type:t.HOVER,payload:e.isHovered?e.cell.date:null}},t.prototype.minDate=function(e){return{type:t.SET_MIN_DATE,payload:e}},t.prototype.maxDate=function(e){return{type:t.SET_MAX_DATE,payload:e}},t.prototype.daysDisabled=function(e){return{type:t.SET_DAYSDISABLED,payload:e}},t.prototype.datesDisabled=function(e){return{type:t.SET_DATESDISABLED,payload:e}},t.prototype.isDisabled=function(e){return{type:t.SET_IS_DISABLED,payload:e}},t.prototype.setLocale=function(e){return{type:t.SET_LOCALE,payload:e}},t.CALCULATE="[datepicker] calculate dates matrix",t.FORMAT="[datepicker] format datepicker values",t.FLAG="[datepicker] set flags",t.SELECT="[datepicker] select date",t.NAVIGATE_OFFSET="[datepicker] shift view date",t.NAVIGATE_TO="[datepicker] change view date",t.SET_OPTIONS="[datepicker] update render options",t.HOVER="[datepicker] hover date",t.CHANGE_VIEWMODE="[datepicker] switch view mode",t.SET_MIN_DATE="[datepicker] set min date",t.SET_MAX_DATE="[datepicker] set max date",t.SET_DAYSDISABLED="[datepicker] set days disabled",t.SET_DATESDISABLED="[datepicker] set dates disabled",t.SET_IS_DISABLED="[datepicker] set is disabled",t.SET_LOCALE="[datepicker] set datepicker locale",t.SELECT_RANGE="[daterangepicker] select dates range",t.decorators=[{type:r.Injectable}],t}(),v=function(){function e(){this._defaultLocale="en",this._locale=new a.BehaviorSubject(this._defaultLocale),this._localeChange=this._locale.asObservable()}return Object.defineProperty(e.prototype,"locale",{get:function(){return this._locale},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"localeChange",{get:function(){return this._localeChange},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentLocale",{get:function(){return this._locale.getValue()},enumerable:!0,configurable:!0}),e.prototype.use=function(e){e!==this.currentLocale&&this._locale.next(e)},e.decorators=[{type:r.Injectable}],e}(),D=function(){function e(e,t){this._actions=e,this._localeService=t,this._subs=[]}return e.prototype.init=function(e){return this._store=e,this},e.prototype.setValue=function(e){this._store.dispatch(this._actions.select(e))},e.prototype.setRangeValue=function(e){this._store.dispatch(this._actions.selectRange(e))},e.prototype.setMinDate=function(e){return this._store.dispatch(this._actions.minDate(e)),this},e.prototype.setMaxDate=function(e){return this._store.dispatch(this._actions.maxDate(e)),this},e.prototype.setDaysDisabled=function(e){return this._store.dispatch(this._actions.daysDisabled(e)),this},e.prototype.setDatesDisabled=function(e){return this._store.dispatch(this._actions.datesDisabled(e)),this},e.prototype.setDisabled=function(e){return this._store.dispatch(this._actions.isDisabled(e)),this},e.prototype.setOptions=function(e){var t=Object.assign({locale:this._localeService.currentLocale},e);return this._store.dispatch(this._actions.setOptions(t)),this},e.prototype.setBindings=function(e){return e.daysCalendar=this._store.select(function(e){return e.flaggedMonths}).pipe(n.filter(function(e){return!!e})),e.monthsCalendar=this._store.select(function(e){return e.flaggedMonthsCalendar}).pipe(n.filter(function(e){return!!e})),e.yearsCalendar=this._store.select(function(e){return e.yearsCalendarFlagged}).pipe(n.filter(function(e){return!!e})),e.viewMode=this._store.select(function(e){return e.view.mode}),e.options=this._store.select(function(e){return e.showWeekNumbers}).pipe(n.map(function(e){return{showWeekNumbers:e}})),this},e.prototype.setEventHandlers=function(e){var n=this;return e.setViewMode=function(e){n._store.dispatch(n._actions.changeViewMode(e))},e.navigateTo=function(e){n._store.dispatch(n._actions.navigateStep(e.step))},e.dayHoverHandler=function(e){var t=e.cell;t.isOtherMonth||t.isDisabled||(n._store.dispatch(n._actions.hoverDay(e)),t.isHovered=e.isHovered)},e.monthHoverHandler=function(e){e.cell.isHovered=e.isHovered},e.yearHoverHandler=function(e){e.cell.isHovered=e.isHovered},e.monthSelectHandler=function(e){e.isDisabled||n._store.dispatch(n._actions.navigateTo({unit:{month:m.getMonth(e.date),year:m.getFullYear(e.date)},viewMode:"day"}))},e.yearSelectHandler=function(e){e.isDisabled||n._store.dispatch(n._actions.navigateTo({unit:{year:m.getFullYear(e.date)},viewMode:"month"}))},this},e.prototype.registerDatepickerSideEffects=function(){var t=this;return this._subs.push(this._store.select(function(e){return e.view}).subscribe(function(e){t._store.dispatch(t._actions.calculate())})),this._subs.push(this._store.select(function(e){return e.monthsModel}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.format())})),this._subs.push(this._store.select(function(e){return e.formattedMonths}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.selectedDate}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.selectedRange}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.monthsCalendar}).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.yearsCalendarModel}).pipe(n.filter(function(e){return!!e})).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.hoveredDate}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._localeService.localeChange.subscribe(function(e){return t._store.dispatch(t._actions.setLocale(e))})),this},e.prototype.destroy=function(){try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:g},{type:v}]},e}(),k={date:new Date,mode:"day"},w=Object.assign(new l,{locale:"en",view:k,selectedRange:[],monthViewOptions:{width:7,height:6}});function _(e,t,n){var a=t&&m.isBefore(m.endOf(e,"month"),t,"day"),i=n&&m.isAfter(m.startOf(e,"month"),n,"day");return a||i}function C(e,t,n){var a=t&&m.isBefore(m.endOf(e,"year"),t,"day"),i=n&&m.isAfter(m.startOf(e,"year"),n,"day");return a||i}function M(e,t){for(var n=e.initialDate,a=new Array(e.height),i=0;i<e.height;i++){a[i]=new Array(e.width);for(var s=0;s<e.width;s++)a[i][s]=t(n),n=m.shiftDate(n,e.shift)}return a}function x(e,t){var n=m.getFirstDayOfMonth(e),a=function i(e,t){if(m.isFirstDayOfWeek(e,t.firstDayOfWeek))return e;var n=function a(e,t){if(0===t)return e;var n=e-t%7;return n<0?n+7:n}(m.getDay(e),t.firstDayOfWeek);return m.shiftDate(e,{day:-n})}(n,t);return{daysMatrix:M({width:t.width,height:t.height,initialDate:a,shift:{day:1}},function(e){return e}),month:n}}function O(e,a,i){return{month:e.month,monthTitle:m.formatDate(e.month,a.monthTitle,a.locale),yearTitle:m.formatDate(e.month,a.yearTitle,a.locale),weekNumbers:function s(e,t,n){return e.map(function(e){return e[0]?m.formatDate(e[0],t,n):""})}(e.daysMatrix,a.weekNumbers,a.locale),weekdays:function r(e){var t=m.getLocale(e),n=t.weekdaysShort(),a=t.firstDayOfWeek();return y(n.slice(a),n.slice(0,a))}(a.locale),weeks:e.daysMatrix.map(function(e,n){return{days:e.map(function(e,t){return{date:e,label:m.formatDate(e,a.dayLabel,a.locale),monthIndex:i,weekIndex:n,dayIndex:t}})}})}}function I(y,b){return y.weeks.forEach(function(f){f.days.forEach(function(e,t){var n=!m.isSameMonth(e.date,y.month),a=!n&&m.isSameDay(e.date,b.hoveredDate),i=!n&&b.selectedRange&&m.isSameDay(e.date,b.selectedRange[0]),s=!n&&b.selectedRange&&m.isSameDay(e.date,b.selectedRange[1]),r=!n&&m.isSameDay(e.date,b.selectedDate)||i||s,o=!n&&b.selectedRange&&function u(e,t,n){if(!e||!t[0])return!1;if(t[1])return e>t[0]&&e<=t[1];if(n)return e>t[0]&&e<=n;return!1}(e.date,b.selectedRange,b.hoveredDate),c=b.isDisabled||m.isBefore(e.date,b.minDate,"day")||m.isAfter(e.date,b.maxDate,"day")||m.isDisabledDay(e.date,b.daysDisabled)||function p(t,e){return!(e===undefined||!e||!e.length)&&e.some(function(e){return m.isSame(t,e,"date")})}(e.date,b.datesDisabled),d=new Date,l=!n&&m.isSameDay(e.date,d),h=Object.assign({},e,{isOtherMonth:n,isHovered:a,isSelected:r,isSelectionStart:i,isSelectionEnd:s,isInRange:o,isDisabled:c,isToday:l});e.isOtherMonth===h.isOtherMonth&&e.isHovered===h.isHovered&&e.isSelected===h.isSelected&&e.isSelectionStart===h.isSelectionStart&&e.isSelectionEnd===h.isSelectionEnd&&e.isDisabled===h.isDisabled&&e.isInRange===h.isInRange||(f.days[t]=h)})}),y.hideLeftArrow=b.isDisabled||0<b.monthIndex&&b.monthIndex!==b.displayMonths,y.hideRightArrow=b.isDisabled||b.monthIndex<b.displayMonths&&b.monthIndex+1!==b.displayMonths,y.disableLeftArrow=_(m.shiftDate(y.month,{month:-1}),b.minDate,b.maxDate),y.disableRightArrow=_(m.shiftDate(y.month,{month:1}),b.minDate,b.maxDate),y}function S(e,t){return!t||t<=e}var E=4,H=3,A={month:1};function V(e,t){var n=m.startOf(e,"year");return{months:M({width:H,height:E,initialDate:n,shift:A},function(e){return{date:e,label:m.formatDate(e,t.monthLabel,t.locale)}}),monthTitle:"",yearTitle:m.formatDate(e,t.yearTitle,t.locale)}}var T=4,P=4,R=T*P,F=-1*(Math.floor(R/2)-1),L={year:1};function j(e,t){var n=m.shiftDate(e,{year:F}),a=M({width:P,height:T,initialDate:n,shift:L},function(e){return{date:e,label:m.formatDate(e,t.yearLabel,t.locale)}});return{years:a,monthTitle:"",yearTitle:function i(e,t){var n=m.formatDate(e[0][0].date,t.yearTitle,t.locale),a=m.formatDate(e[T-1][P-1].date,t.yearTitle,t.locale);return n+" - "+a}(a,t)}}function N(e,t){switch(void 0===e&&(e=w),t.type){case g.CALCULATE:return function c(e){var t=e.displayMonths,n=e.view.date;if("day"===e.view.mode){e.monthViewOptions.firstDayOfWeek=m.getLocale(e.locale).firstDayOfWeek();for(var a=new Array(t),i=0;i<t;i++)a[i]=x(n,e.monthViewOptions),n=m.shiftDate(n,{month:1});return Object.assign({},e,{monthsModel:a})}if("month"===e.view.mode){for(var s=new Array(t),r=0;r<t;r++)s[r]=V(n,Y(e)),n=m.shiftDate(n,{year:1});return Object.assign({},e,{monthsCalendar:s})}if("year"!==e.view.mode)return e;for(var o=new Array(t),r=0;r<t;r++)o[r]=j(n,Y(e)),n=m.shiftDate(n,{year:R});return Object.assign({},e,{yearsCalendarModel:o})}(e);case g.FORMAT:return function d(n,e){if("day"===n.view.mode){var t=n.monthsModel.map(function(e,t){return O(e,Y(n),t)});return Object.assign({},n,{formattedMonths:t})}var a=n.displayMonths,i=n.view.date;if("month"===n.view.mode){for(var s=new Array(a),r=0;r<a;r++)s[r]=V(i,Y(n)),i=m.shiftDate(i,{year:1});return Object.assign({},n,{monthsCalendar:s})}if("year"!==n.view.mode)return n;for(var o=new Array(a),r=0;r<a;r++)o[r]=j(i,Y(n)),i=m.shiftDate(i,{year:16});return Object.assign({},n,{yearsCalendarModel:o})}(e);case g.FLAG:return function r(a,e){if("day"===a.view.mode){var t=a.formattedMonths.map(function(e,t){return I(e,{isDisabled:a.isDisabled,minDate:a.minDate,maxDate:a.maxDate,daysDisabled:a.daysDisabled,datesDisabled:a.datesDisabled,hoveredDate:a.hoveredDate,selectedDate:a.selectedDate,selectedRange:a.selectedRange,displayMonths:a.displayMonths,monthIndex:t})});return Object.assign({},a,{flaggedMonths:t})}if("month"===a.view.mode){var n=a.monthsCalendar.map(function(e,t){return function n(r,o){return r.months.forEach(function(e,s){e.forEach(function(e,t){var n=m.isSameMonth(e.date,o.hoveredMonth),a=o.isDisabled||_(e.date,o.minDate,o.maxDate),i=Object.assign(e,{isHovered:n,isDisabled:a});e.isHovered===i.isHovered&&e.isDisabled===i.isDisabled||(r.months[s][t]=i)})}),r.hideLeftArrow=0<o.monthIndex&&o.monthIndex!==o.displayMonths,r.hideRightArrow=o.monthIndex<o.displayMonths&&o.monthIndex+1!==o.displayMonths,r.disableLeftArrow=C(m.shiftDate(r.months[0][0].date,{year:-1}),o.minDate,o.maxDate),r.disableRightArrow=C(m.shiftDate(r.months[0][0].date,{year:1}),o.minDate,o.maxDate),r}(e,{isDisabled:a.isDisabled,minDate:a.minDate,maxDate:a.maxDate,hoveredMonth:a.hoveredMonth,displayMonths:a.displayMonths,monthIndex:t})});return Object.assign({},a,{flaggedMonthsCalendar:n})}if("year"!==a.view.mode)return a;var i=a.yearsCalendarModel.map(function(e,t){return function n(r,o){r.years.forEach(function(e,s){e.forEach(function(e,t){var n=m.isSameYear(e.date,o.hoveredYear),a=o.isDisabled||C(e.date,o.minDate,o.maxDate),i=Object.assign(e,{isHovered:n,isDisabled:a});e.isHovered===i.isHovered&&e.isDisabled===i.isDisabled||(r.years[s][t]=i)})}),r.hideLeftArrow=0<o.yearIndex&&o.yearIndex!==o.displayMonths,r.hideRightArrow=o.yearIndex<o.displayMonths&&o.yearIndex+1!==o.displayMonths,r.disableLeftArrow=C(m.shiftDate(r.years[0][0].date,{year:-1}),o.minDate,o.maxDate);var e=r.years.length-1,t=r.years[e].length-1;return r.disableRightArrow=C(m.shiftDate(r.years[e][t].date,{year:1}),o.minDate,o.maxDate),r}(e,{isDisabled:a.isDisabled,minDate:a.minDate,maxDate:a.maxDate,hoveredYear:a.hoveredYear,displayMonths:a.displayMonths,yearIndex:t})});return Object.assign({},a,{yearsCalendarFlagged:i})}(e);case g.NAVIGATE_OFFSET:var n=m.shiftDate(m.startOf(e.view.date,"month"),t.payload),a={view:{mode:e.view.mode,date:n}};return Object.assign({},e,a);case g.NAVIGATE_TO:var i=t.payload,s=(n=m.setFullDate(e.view.date,i.unit),a=void 0,void 0);return a=S(i.viewMode,e.minMode)?{view:{date:n,mode:s=i.viewMode}}:{selectedDate:n,view:{date:n,mode:s=e.view.mode}},Object.assign({},e,a);case g.CHANGE_VIEWMODE:if(!S(t.payload,e.minMode))return e;a={view:{date:n=e.view.date,mode:s=t.payload}};return Object.assign({},e,a);case g.HOVER:return Object.assign({},e,{hoveredDate:t.payload});case g.SELECT:a={selectedDate:t.payload,view:e.view},s=e.view.mode,n=z(t.payload||e.view.date,e.minDate,e.maxDate);return a.view={mode:s,date:n},Object.assign({},e,a);case g.SET_OPTIONS:s=(a=t.payload).minMode?a.minMode:e.view.mode,n=z(m.isDateValid(a.value)&&a.value||m.isArray(a.value)&&m.isDateValid(a.value[0])&&a.value[0]||e.view.date,a.minDate,a.maxDate);return a.view={mode:s,date:n},a.value&&(m.isArray(a.value)&&(a.selectedRange=a.value),a.value instanceof Date&&(a.selectedDate=a.value)),Object.assign({},e,a);case g.SELECT_RANGE:a={selectedRange:t.payload,view:e.view},s=e.view.mode,n=z(t.payload&&t.payload[0]||e.view.date,e.minDate,e.maxDate);return a.view={mode:s,date:n},Object.assign({},e,a);case g.SET_MIN_DATE:return Object.assign({},e,{minDate:t.payload});case g.SET_MAX_DATE:return Object.assign({},e,{maxDate:t.payload});case g.SET_IS_DISABLED:return Object.assign({},e,{isDisabled:t.payload});default:return e}}function Y(e){return{locale:e.locale,monthTitle:e.monthTitle,yearTitle:e.yearTitle,dayLabel:e.dayLabel,monthLabel:e.monthLabel,yearLabel:e.yearLabel,weekNumbers:e.weekNumbers}}function z(e,t,n){var a=Array.isArray(e)?e[0]:e;return t&&m.isAfter(t,a,"day")?t:n&&m.isBefore(n,a,"day")?n:a}var B=function(n){function e(){var e=new a.BehaviorSubject({type:"[datepicker] dispatcher init"}),t=new i.MiniState(w,e,N);return n.call(this,e,N,t)||this}return u(e,n),e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[]},e}(i.MiniStore),$=function(s){function e(e,t,n,a){var i=s.call(this)||this;return i._config=e,i._store=t,i._actions=n,i.valueChange=new r.EventEmitter,i._subs=[],i._effects=a,i}return u(e,s),Object.defineProperty(e.prototype,"value",{set:function(e){this._effects.setValue(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.isOtherMonthsActive=this._config.selectFromOtherMonth,this.containerClass=this._config.containerClass,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(function(e){return e.selectedDate}).subscribe(function(e){return t.valueChange.emit(e)}))},e.prototype.daySelectHandler=function(e){(this.isOtherMonthsActive?e.isDisabled:e.isOtherMonth||e.isDisabled)||this._store.dispatch(this._actions.select(e.date))},e.prototype.ngOnDestroy=function(){try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a;this._effects.destroy()},e.decorators=[{type:r.Component,args:[{selector:"bs-datepicker-container",providers:[B,D],template:'\x3c!-- days calendar view mode --\x3e\n<div class="bs-datepicker" [ngClass]="containerClass" *ngIf="viewMode | async">\n <div class="bs-datepicker-container">\n\n \x3c!--calendars--\x3e\n <div class="bs-calendar-container" [ngSwitch]="viewMode | async" role="application">\n \x3c!--days calendar--\x3e\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 \x3c!--months calendar--\x3e\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 \x3c!--years calendar--\x3e\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\n </div>\n\n \x3c!--applycancel buttons--\x3e\n <div class="bs-datepicker-buttons" *ngIf="false">\n <button class="btn btn-success">Apply</button>\n <button class="btn btn-default">Cancel</button>\n </div>\n\n </div>\n\n \x3c!--custom dates or date ranges picker--\x3e\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',host:{"(click)":"_stopPropagation($event)",style:"position: absolute; display: block;",role:"dialog","aria-label":"calendar"}}]}],e.ctorParameters=function(){return[{type:l},{type:B},{type:g},{type:D}]},e}(b),W=function(){function e(e,t,n,a,i){this._config=e,this.placement="bottom",this.triggers="click",this.outsideClick=!0,this.container="body",this.outsideEsc=!0,this.bsValueChange=new r.EventEmitter,this._subs=[],Object.assign(this,this._config),this._datepicker=i.createLoader(t,a,n),this.onShown=this._datepicker.onShown,this.onHidden=this._datepicker.onHidden}return Object.defineProperty(e.prototype,"isOpen",{get:function(){return this._datepicker.isShown},set:function(e){e?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bsValue",{set:function(e){this._bsValue!==e&&(this._bsValue=e,this.bsValueChange.emit(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this._datepicker.listen({outsideClick:this.outsideClick,outsideEsc:this.outsideEsc,triggers:this.triggers,show:function(){return e.show()}}),this.setConfig()},e.prototype.ngOnChanges=function(e){this._datepickerRef&&this._datepickerRef.instance&&(e.minDate&&(this._datepickerRef.instance.minDate=this.minDate),e.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),e.daysDisabled&&(this._datepickerRef.instance.daysDisabled=this.daysDisabled),e.datesDisabled&&(this._datepickerRef.instance.datesDisabled=this.datesDisabled),e.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled))},e.prototype.show=function(){var t=this;this._datepicker.isShown||(this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:l,useValue:this._config}).attach($).to(this.container).position({attachment:this.placement}).show({placement:this.placement}),this._subs.push(this.bsValueChange.subscribe(function(e){t._datepickerRef.instance.value=e})),this._subs.push(this._datepickerRef.instance.valueChange.subscribe(function(e){t.bsValue=e,t.hide()})))},e.prototype.hide=function(){this.isOpen&&this._datepicker.hide();try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a},e.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},e.prototype.setConfig=function(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate,daysDisabled:this.daysDisabled||this.bsConfig&&this.bsConfig.daysDisabled,datesDisabled:this.datesDisabled||this.bsConfig&&this.bsConfig.datesDisabled,minMode:this.minMode||this.bsConfig&&this.bsConfig.minMode})},e.prototype.ngOnDestroy=function(){this._datepicker.dispose()},e.decorators=[{type:r.Directive,args:[{selector:"[bsDatepicker]",exportAs:"bsDatepicker"}]}],e.ctorParameters=function(){return[{type:l},{type:r.ElementRef},{type:r.Renderer2},{type:r.ViewContainerRef},{type:t.ComponentLoaderFactory}]},e.propDecorators={placement:[{type:r.Input}],triggers:[{type:r.Input}],outsideClick:[{type:r.Input}],container:[{type:r.Input}],outsideEsc:[{type:r.Input}],isOpen:[{type:r.Input}],onShown:[{type:r.Output}],onHidden:[{type:r.Output}],bsValue:[{type:r.Input}],bsConfig:[{type:r.Input}],isDisabled:[{type:r.Input}],minDate:[{type:r.Input}],maxDate:[{type:r.Input}],minMode:[{type:r.Input}],daysDisabled:[{type:r.Input}],datesDisabled:[{type:r.Input}],bsValueChange:[{type:r.Output}]},e}(),G=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.decorators=[{type:r.Injectable}],t}(l),q=function(i){function e(e,t,n,a){return i.call(this,e,t,n,a)||this}return u(e,i),e.decorators=[{type:r.Component,args:[{selector:"bs-datepicker-inline-container",providers:[B,D],template:'\x3c!-- days calendar view mode --\x3e\n<div class="bs-datepicker" [ngClass]="containerClass" *ngIf="viewMode | async">\n <div class="bs-datepicker-container">\n\n \x3c!--calendars--\x3e\n <div class="bs-calendar-container" [ngSwitch]="viewMode | async" role="application">\n \x3c!--days calendar--\x3e\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 \x3c!--months calendar--\x3e\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 \x3c!--years calendar--\x3e\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\n </div>\n\n \x3c!--applycancel buttons--\x3e\n <div class="bs-datepicker-buttons" *ngIf="false">\n <button class="btn btn-success">Apply</button>\n <button class="btn btn-default">Cancel</button>\n </div>\n\n </div>\n\n \x3c!--custom dates or date ranges picker--\x3e\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',host:{"(click)":"_stopPropagation($event)",style:"display: inline-block;"}}]}],e.ctorParameters=function(){return[{type:l},{type:B},{type:g},{type:D}]},e}($),U=function(){function e(e,t,n,a,i){this._config=e,this._elementRef=t,this.bsValueChange=new r.EventEmitter,this._subs=[],Object.assign(this,this._config),this._datepicker=i.createLoader(t,a,n)}return Object.defineProperty(e.prototype,"bsValue",{set:function(e){this._bsValue!==e&&(this._bsValue=e,this.bsValueChange.emit(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:l,useValue:this._config}).attach(q).to(this._elementRef).show(),this._subs.push(this.bsValueChange.subscribe(function(e){t._datepickerRef.instance.value=e})),this._subs.push(this._datepickerRef.instance.valueChange.subscribe(function(e){t.bsValue=e}))},e.prototype.ngOnChanges=function(e){this._datepickerRef&&this._datepickerRef.instance&&(e.minDate&&(this._datepickerRef.instance.minDate=this.minDate),e.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),e.datesDisabled&&(this._datepickerRef.instance.datesDisabled=this.datesDisabled),e.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled))},e.prototype.setConfig=function(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate,datesDisabled:this.datesDisabled||this.bsConfig&&this.bsConfig.datesDisabled})},e.prototype.ngOnDestroy=function(){this._datepicker.dispose()},e.decorators=[{type:r.Directive,args:[{selector:"bs-datepicker-inline",exportAs:"bsDatepickerInline"}]}],e.ctorParameters=function(){return[{type:G},{type:r.ElementRef},{type:r.Renderer2},{type:r.ViewContainerRef},{type:t.ComponentLoaderFactory}]},e.propDecorators={bsValue:[{type:r.Input}],bsConfig:[{type:r.Input}],isDisabled:[{type:r.Input}],minDate:[{type:r.Input}],maxDate:[{type:r.Input}],datesDisabled:[{type:r.Input}],bsValueChange:[{type:r.Output}]},e}(),Z={provide:s.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return K}),multi:!0},Q={provide:s.NG_VALIDATORS,useExisting:r.forwardRef(function(){return K}),multi:!0},K=function(){function e(e,t,n,a,i){var s=this;this._picker=e,this._localeService=t,this._renderer=n,this._elRef=a,this.changeDetection=i,this._onChange=Function.prototype,this._onTouched=Function.prototype,this._validatorChange=Function.prototype,this._picker.bsValueChange.subscribe(function(e){s._setInputValue(e),s._value!==e&&(s._value=e,s._onChange(e),s._onTouched()),s.changeDetection.markForCheck()}),this._localeService.localeChange.subscribe(function(){s._setInputValue(s._value)})}return e.prototype._setInputValue=function(e){var t=e?m.formatDate(e,this._picker._config.dateInputFormat,this._localeService.currentLocale):"";this._renderer.setProperty(this._elRef.nativeElement,"value",t)},e.prototype.onChange=function(e){this.writeValue(e.target.value),this._onChange(this._value),this._onTouched()},e.prototype.validate=function(e){var t=e.value;if(null===t||t===undefined||""===t)return null;if(m.isDate(t)){if(!m.isDateValid(t))return{bsDate:{invalid:t}};if(this._picker&&this._picker.minDate&&m.isBefore(t,this._picker.minDate,"date"))return{bsDate:{minDate:this._picker.minDate}};if(this._picker&&this._picker.maxDate&&m.isAfter(t,this._picker.maxDate,"date"))return{bsDate:{maxDate:this._picker.maxDate}}}},e.prototype.registerOnValidatorChange=function(e){this._validatorChange=e},e.prototype.writeValue=function(e){if(e){var t=this._localeService.currentLocale;if(!m.getLocale(t))throw new Error('Locale "'+t+'" is not defined, please add it with "defineLocale(...)"');this._value=m.parseDate(e,this._picker._config.dateInputFormat,this._localeService.currentLocale)}else this._value=null;this._picker.bsValue=this._value},e.prototype.setDisabledState=function(e){(this._picker.isDisabled=e)?this._renderer.setAttribute(this._elRef.nativeElement,"disabled","disabled"):this._renderer.removeAttribute(this._elRef.nativeElement,"disabled")},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.onBlur=function(){this._onTouched()},e.prototype.hide=function(){this._picker.hide(),this._renderer.selectRootElement(this._elRef.nativeElement).blur()},e.decorators=[{type:r.Directive,args:[{selector:"input[bsDatepicker]",host:{"(change)":"onChange($event)","(keyup.esc)":"hide()","(blur)":"onBlur()"},providers:[Z,Q]}]}],e.ctorParameters=function(){return[{type:W,decorators:[{type:r.Host}]},{type:v},{type:r.Renderer2},{type:r.ElementRef},{type:r.ChangeDetectorRef}]},e}(),X=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.displayMonths=2,e}return u(e,t),e.decorators=[{type:r.Injectable}],e}(l),J=function(s){function e(e,t,n,a){var i=s.call(this)||this;return i._config=e,i._store=t,i._actions=n,i.valueChange=new r.EventEmitter,i._rangeStack=[],i._subs=[],i._effects=a,i}return u(e,s),Object.defineProperty(e.prototype,"value",{set:function(e){this._effects.setRangeValue(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.containerClass=this._config.containerClass,this.isOtherMonthsActive=this._config.selectFromOtherMonth,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(function(e){return e.selectedRange}).subscribe(function(e){return t.valueChange.emit(e)}))},e.prototype.daySelectHandler=function(e){(this.isOtherMonthsActive?e.isDisabled:e.isOtherMonth||e.isDisabled)||(1===this._rangeStack.length&&(this._rangeStack=e.date>=this._rangeStack[0]?[this._rangeStack[0],e.date]:[e.date]),0===this._rangeStack.length&&(this._rangeStack=[e.date]),this._store.dispatch(this._actions.selectRange(this._rangeStack)),2===this._rangeStack.length&&(this._rangeStack=[]))},e.prototype.ngOnDestroy=function(){try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a;this._effects.destroy()},e.decorators=[{type:r.Component,args:[{selector:"bs-daterangepicker-container",providers:[B,D],template:'\x3c!-- days calendar view mode --\x3e\n<div class="bs-datepicker" [ngClass]="containerClass" *ngIf="viewMode | async">\n <div class="bs-datepicker-container">\n\n \x3c!--calendars--\x3e\n <div class="bs-calendar-container" [ngSwitch]="viewMode | async" role="application">\n \x3c!--days calendar--\x3e\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 \x3c!--months calendar--\x3e\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 \x3c!--years calendar--\x3e\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\n </div>\n\n \x3c!--applycancel buttons--\x3e\n <div class="bs-datepicker-buttons" *ngIf="false">\n <button class="btn btn-success">Apply</button>\n <button class="btn btn-default">Cancel</button>\n </div>\n\n </div>\n\n \x3c!--custom dates or date ranges picker--\x3e\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',host:{"(click)":"_stopPropagation($event)",style:"position: absolute; display: block;",role:"dialog","aria-label":"calendar"}}]}],e.ctorParameters=function(){return[{type:l},{type:B},{type:g},{type:D}]},e}(b),ee=function(){function e(e,t,n,a,i){this._config=e,this.placement="bottom",this.triggers="click",this.outsideClick=!0,this.container="body",this.outsideEsc=!0,this.bsValueChange=new r.EventEmitter,this._subs=[],this._datepicker=i.createLoader(t,a,n),Object.assign(this,e),this.onShown=this._datepicker.onShown,this.onHidden=this._datepicker.onHidden}return Object.defineProperty(e.prototype,"isOpen",{get:function(){return this._datepicker.isShown},set:function(e){e?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bsValue",{set:function(e){this._bsValue!==e&&(this._bsValue=e,this.bsValueChange.emit(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this._datepicker.listen({outsideClick:this.outsideClick,outsideEsc:this.outsideEsc,triggers:this.triggers,show:function(){return e.show()}}),this.setConfig()},e.prototype.ngOnChanges=function(e){this._datepickerRef&&this._datepickerRef.instance&&(e.minDate&&(this._datepickerRef.instance.minDate=this.minDate),e.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),e.datesDisabled&&(this._datepickerRef.instance.datesDisabled=this.datesDisabled),e.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled))},e.prototype.show=function(){var t=this;this._datepicker.isShown||(this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:l,useValue:this._config}).attach(J).to(this.container).position({attachment:this.placement}).show({placement:this.placement}),this._subs.push(this.bsValueChange.subscribe(function(e){t._datepickerRef.instance.value=e})),this._subs.push(this._datepickerRef.instance.valueChange.pipe(n.filter(function(e){return e&&e[0]&&!!e[1]})).subscribe(function(e){t.bsValue=e,t.hide()})))},e.prototype.setConfig=function(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate,datesDisabled:this.datesDisabled||this.bsConfig&&this.bsConfig.datesDisabled})},e.prototype.hide=function(){this.isOpen&&this._datepicker.hide();try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(i){n={error:i}}finally{try{t&&!t.done&&(a=e["return"])&&a.call(e)}finally{if(n)throw n.error}}var n,a},e.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},e.prototype.ngOnDestroy=function(){this._datepicker.dispose()},e.decorators=[{type:r.Directive,args:[{selector:"[bsDaterangepicker]",exportAs:"bsDaterangepicker"}]}],e.ctorParameters=function(){return[{type:X},{type:r.ElementRef},{type:r.Renderer2},{type:r.ViewContainerRef},{type:t.ComponentLoaderFactory}]},e.propDecorators={placement:[{type:r.Input}],triggers:[{type:r.Input}],outsideClick:[{type:r.Input}],container:[{type:r.Input}],outsideEsc:[{type:r.Input}],isOpen:[{type:r.Input}],onShown:[{type:r.Output}],onHidden:[{type:r.Output}],bsValue:[{type:r.Input}],bsConfig:[{type:r.Input}],isDisabled:[{type:r.Input}],minDate:[{type:r.Input}],maxDate:[{type:r.Input}],datesDisabled:[{type:r.Input}],bsValueChange:[{type:r.Output}]},e}(),te={provide:s.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return ae}),multi:!0},ne={provide:s.NG_VALIDATORS,useExisting:r.forwardRef(function(){return ae}),multi:!0},ae=function(){function e(e,t,n,a,i){var s=this;this._picker=e,this._localeService=t,this._renderer=n,this._elRef=a,this.changeDetection=i,this._onChange=Function.prototype,this._onTouched=Function.prototype,this._validatorChange=Function.prototype,this._picker.bsValueChange.subscribe(function(e){s._setInputValue(e),s._value!==e&&(s._value=e,s._onChange(e),s._onTouched()),s.changeDetection.markForCheck()}),this._localeService.localeChange.subscribe(function(){s._setInputValue(s._value)})}return e.prototype._setInputValue=function(e){var t="";if(e){var n=e[0]?m.formatDate(e[0],this._picker._config.rangeInputFormat,this._localeService.currentLocale):"",a=e[1]?m.formatDate(e[1],this._picker._config.rangeInputFormat,this._localeService.currentLocale):"";t=n&&a?n+this._picker._config.rangeSeparator+a:""}this._renderer.setProperty(this._elRef.nativeElement,"value",t)},e.prototype.onChange=function(e){this.writeValue(e.target.value),this._onChange(this._value),this._onTouched()},e.prototype.validate=function(e){var t=e.value;if(null===t||t===undefined||!m.isArray(t))return null;var n=m.isDateValid(t[0]),a=m.isDateValid(t[1]);return n?a?this._picker&&this._picker.minDate&&m.isBefore(t[0],this._picker.minDate,"date")?{bsDate:{minDate:this._picker.minDate}}:this._picker&&this._picker.maxDate&&m.isAfter(t[1],this._picker.maxDate,"date")?{bsDate:{maxDate:this._picker.maxDate}}:void 0:{bsDate:{invalid:t[1]}}:{bsDate:{invalid:t[0]}}},e.prototype.registerOnValidatorChange=function(e){this._validatorChange=e},e.prototype.writeValue=function(e){var t=this;if(e){var n=this._localeService.currentLocale;if(!m.getLocale(n))throw new Error('Locale "'+n+'" is not defined, please add it with "defineLocale(...)"');var a=[];"string"==typeof e&&(a=e.split(this._picker._config.rangeSeparator)),Array.isArray(e)&&(a=e),this._value=a.map(function(e){return m.parseDate(e,t._picker._config.dateInputFormat,t._localeService.currentLocale)}).map(function(e){return isNaN(e.valueOf())?null:e})}else this._value=null;this._picker.bsValue=this._value},e.prototype.setDisabledState=function(e){(this._picker.isDisabled=e)?this._renderer.setAttribute(this._elRef.nativeElement,"disabled","disabled"):this._renderer.removeAttribute(this._elRef.nativeElement,"disabled")},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.onBlur=function(){this._onTouched()},e.prototype.hide=function(){this._picker.hide(),this._renderer.selectRootElement(this._elRef.nativeElement).blur()},e.decorators=[{type:r.Directive,args:[{selector:"input[bsDaterangepicker]",host:{"(change)":"onChange($event)","(keyup.esc)":"hide()","(blur)":"onBlur()"},providers:[te,ne]}]}],e.ctorParameters=function(){return[{type:ee,decorators:[{type:r.Host}]},{type:v},{type:r.Renderer2},{type:r.ElementRef},{type:r.ChangeDetectorRef}]},e}(),ie=function(){function e(){}return e.decorators=[{type:r.Component,args:[{selector:"bs-calendar-layout",template:'\n \x3c!-- current date, will be added in nearest releases --\x3e\n <bs-current-date title="hey there" *ngIf="false"></bs-current-date>\n\n \x3c!--navigation--\x3e\n <div class="bs-datepicker-head">\n <ng-content select="bs-datepicker-navigation-view"></ng-content>\n </div>\n\n <div class="bs-datepicker-body">\n <ng-content></ng-content>\n </div>\n\n \x3c!--timepicker--\x3e\n <bs-timepicker *ngIf="false"></bs-timepicker>\n '}]}],e}(),se=function(){function e(){}return e.decorators=[{type:r.Component,args:[{selector:"bs-current-date",template:'<div class="current-timedate"><span>{{ title }}</span></div>'}]}],e.propDecorators={title:[{type:r.Input}]},e}(),re=function(){function e(){}return e.decorators=[{type:r.Component,args:[{selector:"bs-custom-date-view",template:'\n <div class="bs-datepicker-predefined-btns">\n <button *ngFor="let range of ranges">{{ range.label }}</button>\n <button *ngIf="isCustomRangeShown">Custom Range</button>\n </div>\n ',changeDetection:r.ChangeDetectionStrategy.OnPush}]}],e.propDecorators={isCustomRangeShown:[{type:r.Input}],ranges:[{type:r.Input}]},e}(),oe=function(){function e(e,t,n){this._config=e,this._elRef=t,this._renderer=n}return e.prototype.ngOnInit=function(){this.day.isToday&&this._config&&this._config.customTodayClass&&this._renderer.addClass(this._elRef.nativeElement,this._config.customTodayClass)},e.decorators=[{type:r.Component,args:[{selector:"[bsDatepickerDayDecorator]",changeDetection:r.ChangeDetectionStrategy.OnPush,host:{"[class.disabled]":"day.isDisabled","[class.is-highlighted]":"day.isHovered","[class.is-other-month]":"day.isOtherMonth","[class.is-active-other-month]":"day.isOtherMonthHovered","[class.in-range]":"day.isInRange","[class.select-start]":"day.isSelectionStart","[class.select-end]":"day.isSelectionEnd","[class.selected]":"day.isSelected"},template:"{{ day.label }}"}]}],e.ctorParameters=function(){return[{type:l},{type:r.ElementRef},{type:r.Renderer2}]},e.propDecorators={day:[{type:r.Input}]},e}(),ce={UP:0,DOWN:1};ce[ce.UP]="UP",ce[ce.DOWN]="DOWN";var de=function(){function e(){this.onNavigate=new r.EventEmitter,this.onViewMode=new r.EventEmitter}return e.prototype.navTo=function(e){this.onNavigate.emit(e?ce.DOWN:ce.UP)},e.prototype.view=function(e){this.onViewMode.emit(e)},e.decorators=[{type:r.Component,args:[{selector:"bs-datepicker-navigation-view",changeDetection:r.ChangeDetectionStrategy.OnPush,template:'\n <button class="previous"\n [disabled]="calendar.disableLeftArrow"\n [style.visibility]="calendar.hideLeftArrow ? \'hidden\' : \'visible\'"\n (click)="navTo(true)"><span>&lsaquo;</span>\n </button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="current"\n *ngIf="calendar.monthTitle"\n (click)="view(\'month\')"\n ><span>{{ calendar.monthTitle }}</span>\n </button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="current" (click)="view(\'year\')"\n ><span>{{ calendar.yearTitle }}</span></button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="next"\n [disabled]="calendar.disableRightArrow"\n [style.visibility]="calendar.hideRightArrow ? \'hidden\' : \'visible\'"\n (click)="navTo(false)"><span>&rsaquo;</span>\n </button>\n '}]}],e.propDecorators={calendar:[{type:r.Input}],onNavigate:[{type:r.Output}],onViewMode:[{type:r.Output}]},e}(),le=function(){function e(e){this._config=e,this.onNavigate=new r.EventEmitter,this.onViewMode=new r.EventEmitter,this.onSelect=new r.EventEmitter,this.onHover=new r.EventEmitter,this.onHoverWeek=new r.EventEmitter}return e.prototype.navigateTo=function(e){var t=ce.DOWN===e?-1:1;this.onNavigate.emit({step:{month:t}})},e.prototype.changeViewMode=function(e){this.onViewMode.emit(e)},e.prototype.selectDay=function(e){this.onSelect.emit(e)},e.prototype.selectWeek=function(e){var t=this;if(this._config.selectWeek)if(e.days&&e.days[0]&&!e.days[0].isDisabled&&this._config.selectFromOtherMonth)this.onSelect.emit(e.days[0]);else if(0!==e.days.length){var n=e.days.find(function(e){return t._config.selectFromOtherMonth?!e.isDisabled:!e.isOtherMonth&&!e.isDisabled});this.onSelect.emit(n)}},e.prototype.weekHoverHandler=function(e,t){var n=this;this._config.selectWeek&&(e.days.find(function(e){return n._config.selectFromOtherMonth?!e.isDisabled:!e.isOtherMonth&&!e.isDisabled})&&(e.isHovered=t,this.isWeekHovered=t,this.onHoverWeek.emit(e)))},e.prototype.hoverDay=function(e,t){this._config.selectFromOtherMonth&&e.isOtherMonth&&(e.isOtherMonthHovered=t),this.onHover.emit({cell:e,isHovered:t})},e.decorators=[{type:r.Component,args:[{selector:"bs-days-calendar-view",template:'\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="changeViewMode($event)"\n ></bs-datepicker-navigation-view>\n\n \x3c!--days matrix--\x3e\n <table role="grid" class="days weeks">\n <thead>\n <tr>\n \x3c!--if show weeks--\x3e\n <th *ngIf="options.showWeekNumbers"></th>\n <th *ngFor="let weekday of calendar.weekdays; let i = index"\n aria-label="weekday">{{ calendar.weekdays[i] }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let week of calendar.weeks; let i = index">\n <td class="week" [class.active-week]="isWeekHovered" *ngIf="options.showWeekNumbers">\n <span\n (click)="selectWeek(week)"\n (mouseenter)="weekHoverHandler(week, true)"\n (mouseleave)="weekHoverHandler(week, false)">{{ calendar.weekNumbers[i] }}</span>\n </td>\n <td *ngFor="let day of week.days" role="gridcell">\n <span bsDatepickerDayDecorator\n [day]="day"\n (click)="selectDay(day)"\n (mouseenter)="hoverDay(day, true)"\n (mouseleave)="hoverDay(day, false)">{{ day.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n\n </bs-calendar-layout>\n '}]}],e.ctorParameters=function(){return[{type:l}]},e.propDecorators={calendar:[{type:r.Input}],options:[{type:r.Input}],onNavigate:[{type:r.Output}],onViewMode:[{type:r.Output}],onSelect:[{type:r.Output}],onHover:[{type:r.Output}],onHoverWeek:[{type:r.Output}]},e}(),he=function(){function e(){this.onNavigate=new r.EventEmitter,this.onViewMode=new r.EventEmitter,this.onSelect=new r.EventEmitter,this.onHover=new r.EventEmitter}return e.prototype.navigateTo=function(e){var t=ce.DOWN===e?-1:1;this.onNavigate.emit({step:{year:t}})},e.prototype.viewMonth=function(e){this.onSelect.emit(e)},e.prototype.hoverMonth=function(e,t){this.onHover.emit({cell:e,isHovered:t})},e.prototype.changeViewMode=function(e){this.onViewMode.emit(e)},e.decorators=[{type:r.Component,args:[{selector:"bs-month-calendar-view",template:'\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="changeViewMode($event)"\n ></bs-datepicker-navigation-view>\n\n <table role="grid" class="months">\n <tbody>\n <tr *ngFor="let row of calendar.months">\n <td *ngFor="let month of row" role="gridcell"\n (click)="viewMonth(month)"\n (mouseenter)="hoverMonth(month, true)"\n (mouseleave)="hoverMonth(month, false)"\n [class.disabled]="month.isDisabled"\n [class.is-highlighted]="month.isHovered">\n <span>{{ month.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n '}]}],e.propDecorators={calendar:[{type:r.Input}],onNavigate:[{type:r.Output}],onViewMode:[{type:r.Output}],onSelect:[{type:r.Output}],onHover:[{type:r.Output}]},e}(),ue=function(){function e(){this.ampm="ok",this.hours=0,this.minutes=0}return e.decorators=[{type:r.Component,args:[{selector:"bs-timepicker",template:'\n <div class="bs-timepicker-container">\n <div class="bs-timepicker-controls">\n <button class="bs-decrease">-</button>\n <input type="text" [value]="hours" placeholder="00">\n <button class="bs-increase">+</button>\n </div>\n <div class="bs-timepicker-controls">\n <button class="bs-decrease">-</button>\n <input type="text" [value]="minutes" placeholder="00">\n <button class="bs-increase">+</button>\n </div>\n <button class="switch-time-format">{{ ampm }}\n <img\n src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg=="\n alt="">\n </button>\n </div>\n '}]}],e}(),pe=function(){function e(){this.onNavigate=new r.EventEmitter,this.onViewMode=new r.EventEmitter,this.onSelect=new r.EventEmitter,this.onHover=new r.EventEmitter}return e.prototype.navigateTo=function(e){var t=ce.DOWN===e?-1:1;this.onNavigate.emit({step:{year:t*R}})},e.prototype.viewYear=function(e){this.onSelect.emit(e)},e.prototype.hoverYear=function(e,t){this.onHover.emit({cell:e,isHovered:t})},e.prototype.changeViewMode=function(e){this.onViewMode.emit(e)},e.decorators=[{type:r.Component,args:[{selector:"bs-years-calendar-view",template:'\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="changeViewMode($event)"\n ></bs-datepicker-navigation-view>\n\n <table role="grid" class="years">\n <tbody>\n <tr *ngFor="let row of calendar.years">\n <td *ngFor="let year of row" role="gridcell"\n (click)="viewYear(year)"\n (mouseenter)="hoverYear(year, true)"\n (mouseleave)="hoverYear(year, false)"\n [class.disabled]="year.isDisabled"\n [class.is-highlighted]="year.isHovered">\n <span>{{ year.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n '}]}],e.propDecorators={calendar:[{type:r.Input}],onNavigate:[{type:r.Output}],onViewMode:[{type:r.Output}],onSelect:[{type:r.Output}],onHover:[{type:r.Output}]},e}(),fe=[$,J,q,W,K,ae,ee,U],ye=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[t.ComponentLoaderFactory,c.PositioningService,B,g,l,X,G,D,v]}},e.decorators=[{type:r.NgModule,args:[{imports:[o.CommonModule],declarations:y([oe,se,de,ue,ie,le,he,pe,re],fe),entryComponents:[$,J,q],exports:fe}]}],e}(),be=function(){function e(){}return e.prototype.format=function(e,t,n){return m.formatDate(e,t,n)},e}(),me=function(){function e(){this.selectionDone=new r.EventEmitter(undefined),this.update=new r.EventEmitter(!1),this.activeDateChange=new r.EventEmitter(undefined),this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new be}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate},set:function(e){this._activeDate=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.uniqueId="datepicker--"+Math.floor(1e4*Math.random()),this.initDate?(this.activeDate=this.initDate,this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate)):this.activeDate===undefined&&(this.activeDate=new Date)},e.prototype.ngOnChanges=function(e){this.refreshView(),this.checkIfActiveDateGotUpdated(e.activeDate)},e.prototype.checkIfActiveDateGotUpdated=function(e){if(e&&!e.firstChange){var t=e.previousValue;t&&t instanceof Date&&t.getTime()!==e.currentValue.getTime()&&this.activeDateChange.emit(this.activeDate)}},e.prototype.setCompareHandler=function(e,t){"day"===t&&(this.compareHandlerDay=e),"month"===t&&(this.compareHandlerMonth=e),"year"===t&&(this.compareHandlerYear=e)},e.prototype.compare=function(e,t){return e===undefined||t===undefined?undefined:"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(e,t):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(e,t):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(e,t):void 0},e.prototype.setRefreshViewHandler=function(e,t){"day"===t&&(this.refreshViewHandlerDay=e),"month"===t&&(this.refreshViewHandlerMonth=e),"year"===t&&(this.refreshViewHandlerYear=e)},e.prototype.refreshView=function(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()},e.prototype.dateFilter=function(e,t){return this.dateFormatter.format(e,t,this.locale)},e.prototype.isActive=function(e){return 0===this.compare(e.date,this.activeDate)&&(this.activeDateId=e.uid,!0)},e.prototype.createDateObject=function(e,t){var n={};return n.date=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n.date=this.fixTimeZone(n.date),n.label=this.dateFilter(e,t),n.selected=0===this.compare(e,this.selectedDate),n.disabled=this.isDisabled(e),n.current=0===this.compare(e,new Date),n.customClass=this.getCustomClassForDate(n.date),n},e.prototype.split=function(e,t){for(var n=[];0<e.length;)n.push(e.splice(0,t));return n},e.prototype.fixTimeZone=function(e){var t=e.getHours();return new Date(e.getFullYear(),e.getMonth(),e.getDate(),23===t?t+2:0)},e.prototype.select=function(e,t){void 0===t&&(t=!0),this.datepickerMode===this.minMode?(this.activeDate||(this.activeDate=new Date(0,0,0,0,0,0,0)),this.activeDate=new Date(e.getFullYear(),e.getMonth(),e.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),t&&this.selectionDone.emit(this.activeDate)):(this.activeDate=new Date(e.getFullYear(),e.getMonth(),e.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),t&&(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1])),this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate),this.refreshView()},e.prototype.move=function(e){var t;if("day"===this.datepickerMode&&(t=this.stepDay),"month"===this.datepickerMode&&(t=this.stepMonth),"year"===this.datepickerMode&&(t=this.stepYear),t){var n=this.activeDate.getFullYear()+e*(t.years||0),a=this.activeDate.getMonth()+e*(t.months||0);this.activeDate=new Date(n,a,1),this.refreshView(),this.activeDateChange.emit(this.activeDate)}},e.prototype.toggleMode=function(e){var t=e||1;this.datepickerMode===this.maxMode&&1===t||this.datepickerMode===this.minMode&&-1===t||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+t],this.refreshView())},e.prototype.getCustomClassForDate=function(t){var n=this;if(!this.customClass)return"";var e=this.customClass.find(function(e){return e.date.valueOf()===t.valueOf()&&e.mode===n.datepickerMode},this);return e===undefined?"":e.clazz},e.prototype.compareDateDisabled=function(e,t){return e===undefined||t===undefined?undefined:"day"===e.mode&&this.compareHandlerDay?this.compareHandlerDay(e.date,t):"month"===e.mode&&this.compareHandlerMonth?this.compareHandlerMonth(e.date,t):"year"===e.mode&&this.compareHandlerYear?this.compareHandlerYear(e.date,t):undefined},e.prototype.isDisabled=function(t){var n=this,a=!1;return this.dateDisabled&&this.dateDisabled.forEach(function(e){0===n.compareDateDisabled(e,t)&&(a=!0)}),this.dayDisabled&&(a=a||-1<this.dayDisabled.indexOf(t.getDay())),a||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&0<this.compare(t,this.maxDate)},e.decorators=[{type:r.Component,args:[{selector:"datepicker-inner",template:'\n \x3c!--&lt;!&ndash;ng-keydown="keydown($event)"&ndash;&gt;--\x3e\n <div *ngIf="datepickerMode" class="well well-sm bg-faded p-a card" role="application" >\n <ng-content></ng-content>\n </div>\n '}]}],e.propDecorators={locale:[{type:r.Input}],datepickerMode:[{type:r.Input}],startingDay:[{type:r.Input}],yearRange:[{type:r.Input}],minDate:[{type:r.Input}],maxDate:[{type:r.Input}],minMode:[{type:r.Input}],maxMode:[{type:r.Input}],showWeeks:[{type:r.Input}],formatDay:[{type:r.Input}],formatMonth:[{type:r.Input}],formatYear:[{type:r.Input}],formatDayHeader:[{type:r.Input}],formatDayTitle:[{type:r.Input}],formatMonthTitle:[{type:r.Input}],onlyCurrentMonth:[{type:r.Input}],shortcutPropagation:[{type:r.Input}],customClass:[{type:r.Input}],monthColLimit:[{type:r.Input}],yearColLimit:[{type:r.Input}],dateDisabled:[{type:r.Input}],dayDisabled:[{type:r.Input}],initDate:[{type:r.Input}],selectionDone:[{type:r.Output}],update:[{type:r.Output}],activeDateChange:[{type:r.Output}],activeDate:[{type:r.Input}]},e}(),ge=function(){function e(){this.locale="en",this.datepickerMode="day",this.startingDay=0,this.yearRange=20,this.minMode="day",this.maxMode="year",this.showWeeks=!0,this.formatDay="DD",this.formatMonth="MMMM",this.formatYear="YYYY",this.formatDayHeader="dd",this.formatDayTitle="MMMM YYYY",this.formatMonthTitle="YYYY",this.onlyCurrentMonth=!1,this.monthColLimit=3,this.yearColLimit=5,this.shortcutPropagation=!1}return e.decorators=[{type:r.Injectable}],e}(),ve={provide:s.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return De}),multi:!0},De=function(){function e(e){this.datepickerMode="day",this.showWeeks=!0,this.selectionDone=new r.EventEmitter(undefined),this.activeDateChange=new r.EventEmitter(undefined),this.onChange=Function.prototype,this.onTouched=Function.prototype,this._now=new Date,this.config=e,this.configureOptions()}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate||this._now},set:function(e){this._activeDate=e},enumerable:!0,configurable:!0}),e.prototype.configureOptions=function(){Object.assign(this,this.config)},e.prototype.onUpdate=function(e){this.activeDate=e,this.onChange(e)},e.prototype.onSelectionDone=function(e){this.selectionDone.emit(e)},e.prototype.onActiveDateChange=function(e){this.activeDateChange.emit(e)},e.prototype.writeValue=function(e){if(0!==this._datePicker.compare(e,this._activeDate))return e&&e instanceof Date?(this.activeDate=e,void this._datePicker.select(e,!1)):void(this.activeDate=e?new Date(e):void 0)},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.decorators=[{type:r.Component,args:[{selector:"datepicker",template:'\n <datepicker-inner [activeDate]="activeDate"\n (update)="onUpdate($event)"\n [locale]="config.locale"\n [datepickerMode]="datepickerMode"\n [initDate]="initDate"\n [minDate]="minDate"\n [maxDate]="maxDate"\n [minMode]="minMode"\n [maxMode]="maxMode"\n [showWeeks]="showWeeks"\n [formatDay]="formatDay"\n [formatMonth]="formatMonth"\n [formatYear]="formatYear"\n [formatDayHeader]="formatDayHeader"\n [formatDayTitle]="formatDayTitle"\n [formatMonthTitle]="formatMonthTitle"\n [startingDay]="startingDay"\n [yearRange]="yearRange"\n [customClass]="customClass"\n [dateDisabled]="dateDisabled"\n [dayDisabled]="dayDisabled"\n [onlyCurrentMonth]="onlyCurrentMonth"\n [shortcutPropagation]="shortcutPropagation"\n [monthColLimit]="monthColLimit"\n [yearColLimit]="yearColLimit"\n (selectionDone)="onSelectionDone($event)"\n (activeDateChange)="onActiveDateChange($event)">\n <daypicker tabindex="0"></daypicker>\n <monthpicker tabindex="0"></monthpicker>\n <yearpicker tabindex="0"></yearpicker>\n </datepicker-inner>\n ',providers:[ve]}]}],e.ctorParameters=function(){return[{type:ge}]},e.propDecorators={datepickerMode:[{type:r.Input}],initDate:[{type:r.Input}],minDate:[{type:r.Input}],maxDate:[{type:r.Input}],minMode:[{type:r.Input}],maxMode:[{type:r.Input}],showWeeks:[{type:r.Input}],formatDay:[{type:r.Input}],formatMonth:[{type:r.Input}],formatYear:[{type:r.Input}],formatDayHeader:[{type:r.Input}],formatDayTitle:[{type:r.Input}],formatMonthTitle:[{type:r.Input}],startingDay:[{type:r.Input}],yearRange:[{type:r.Input}],onlyCurrentMonth:[{type:r.Input}],shortcutPropagation:[{type:r.Input}],monthColLimit:[{type:r.Input}],yearColLimit:[{type:r.Input}],customClass:[{type:r.Input}],dateDisabled:[{type:r.Input}],dayDisabled:[{type:r.Input}],activeDate:[{type:r.Input}],selectionDone:[{type:r.Output}],activeDateChange:[{type:r.Output}],_datePicker:[{type:r.ViewChild,args:[me]}]},e}(),ke=function(){function e(e){this.labels=[],this.rows=[],this.weekNumbers=[],this.datePicker=e}return Object.defineProperty(e.prototype,"isBs4",{get:function(){return!d.isBs3()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var f=this;this.datePicker.stepDay={months:1},this.datePicker.setRefreshViewHandler(function(){var e=this.activeDate.getFullYear(),t=this.activeDate.getMonth(),n=new Date(e,t,1),a=this.startingDay-n.getDay(),i=0<a?7-a:-a,s=new Date(n.getTime());0<i&&s.setDate(1-i);for(var r=f.getDates(s,42),o=[],c=0;c<42;c++){var d=this.createDateObject(r[c],this.formatDay);d.secondary=r[c].getMonth()!==t,d.uid=this.uniqueId+"-"+c,o[c]=d}f.labels=[];for(var l=0;l<7;l++)f.labels[l]={},f.labels[l].abbr=this.dateFilter(o[l].date,this.formatDayHeader),f.labels[l].full=this.dateFilter(o[l].date,"EEEE");if(f.title=this.dateFilter(this.activeDate,this.formatDayTitle),f.rows=this.split(o,7),this.showWeeks){f.weekNumbers=[];for(var h=(11-this.startingDay)%7,u=f.rows.length,p=0;p<u;p++)f.weekNumbers.push(f.getISO8601WeekNumber(f.rows[p][h].date))}},"day"),this.datePicker.setCompareHandler(function(e,t){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),a=new Date(t.getFullYear(),t.getMonth(),t.getDate());return n.getTime()-a.getTime()},"day"),this.datePicker.refreshView()},e.prototype.getDates=function(e,t){for(var n,a=new Array(t),i=new Date(e.getTime()),s=0;s<t;)n=new Date(i.getTime()),n=this.datePicker.fixTimeZone(n),a[s++]=n,i=new Date(n.getFullYear(),n.getMonth(),n.getDate()+1);return a},e.prototype.getISO8601WeekNumber=function(e){var t=new Date(e.getTime());t.setDate(t.getDate()+4-(t.getDay()||7));var n=t.getTime();return t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t.getTime())/864e5)/7)+1},e.decorators=[{type:r.Component,args:[{selector:"daypicker",template:'\n<table *ngIf="datePicker.datepickerMode === \'day\'" role="grid" [attr.aria-labelledby]="datePicker.uniqueId + \'-title\'" aria-activedescendant="activeDateId">\n <thead>\n <tr>\n <th>\n <button *ngIf="!isBs4"\n type="button"\n class="btn btn-default btn-secondary btn-sm pull-left float-left"\n (click)="datePicker.move(-1)"\n tabindex="-1">‹</button>\n <button *ngIf="isBs4"\n type="button"\n class="btn btn-default btn-secondary btn-sm pull-left float-left"\n (click)="datePicker.move(-1)"\n tabindex="-1">&lt;</button>\n </th>\n <th [attr.colspan]="5 + (datePicker.showWeeks ? 1 : 0)">\n <button [id]="datePicker.uniqueId + \'-title\'"\n type="button" class="btn btn-default btn-secondary btn-sm"\n (click)="datePicker.toggleMode(0)"\n [disabled]="datePicker.datepickerMode === datePicker.maxMode"\n [ngClass]="{disabled: datePicker.datepickerMode === datePicker.maxMode}" tabindex="-1" style="width:100%;">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button *ngIf="!isBs4"\n type="button"\n class="btn btn-default btn-secondary btn-sm pull-right float-right"\n (click)="datePicker.move(1)"\n tabindex="-1">›</button>\n <button *ngIf="isBs4"\n type="button"\n class="btn btn-default btn-secondary btn-sm pull-right float-right"\n (click)="datePicker.move(1)"\n tabindex="-1">&gt;\n </button>\n </th>\n </tr>\n <tr>\n <th *ngIf="datePicker.showWeeks"></th>\n <th *ngFor="let labelz of labels" class="text-center">\n <small aria-label="labelz.full"><b>{{ labelz.abbr }}</b></small>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-template ngFor [ngForOf]="rows" let-rowz="$implicit" let-index="index">\n <tr *ngIf="!(datePicker.onlyCurrentMonth && rowz[0].secondary && rowz[6].secondary)">\n <td *ngIf="datePicker.showWeeks" class="h6" class="text-center">\n <em>{{ weekNumbers[index] }}</em>\n </td>\n <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [id]="dtz.uid">\n <button type="button" style="min-width:100%;" class="btn btn-sm {{dtz.customClass}}"\n *ngIf="!(datePicker.onlyCurrentMonth && dtz.secondary)"\n [ngClass]="{\'btn-secondary\': isBs4 && !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': dtz.selected, disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz), \'btn-default\': !isBs4}"\n [disabled]="dtz.disabled"\n (click)="datePicker.select(dtz.date)" tabindex="-1">\n <span [ngClass]="{\'text-muted\': dtz.secondary || dtz.current, \'text-info\': !isBs4 && dtz.current}">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </ng-template>\n </tbody>\n</table>\n ',styles:["\n :host .btn-secondary {\n color: #292b2c;\n background-color: #fff;\n border-color: #ccc;\n }\n :host .btn-info .text-muted {\n color: #292b2c !important;\n }\n "]}]}],e.ctorParameters=function(){return[{type:me}]},e}(),we=function(){function e(e){this.rows=[],this.datePicker=e}return Object.defineProperty(e.prototype,"isBs4",{get:function(){return!d.isBs3()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var i=this;this.datePicker.stepMonth={years:1},this.datePicker.setRefreshViewHandler(function(){for(var e,t=new Array(12),n=this.activeDate.getFullYear(),a=0;a<12;a++)e=new Date(n,a,1),e=this.fixTimeZone(e),t[a]=this.createDateObject(e,this.formatMonth),t[a].uid=this.uniqueId+"-"+a;i.title=this.dateFilter(this.activeDate,this.formatMonthTitle),i.rows=this.split(t,i.datePicker.monthColLimit)},"month"),this.datePicker.setCompareHandler(function(e,t){var n=new Date(e.getFullYear(),e.getMonth()),a=new Date(t.getFullYear(),t.getMonth());return n.getTime()-a.getTime()},"month"),this.datePicker.refreshView()},e.decorators=[{type:r.Component,args:[{selector:"monthpicker",template:'\n<table *ngIf="datePicker.datepickerMode===\'month\'" role="grid">\n <thead>\n <tr>\n <th>\n <button type="button" class="btn btn-default btn-sm pull-left float-left"\n (click)="datePicker.move(-1)" tabindex="-1">‹</button></th>\n <th [attr.colspan]="((datePicker.monthColLimit - 2) <= 0) ? 1 : datePicker.monthColLimit - 2">\n <button [id]="datePicker.uniqueId + \'-title\'"\n type="button" class="btn btn-default btn-sm"\n (click)="datePicker.toggleMode(0)"\n [disabled]="datePicker.datepickerMode === maxMode"\n [ngClass]="{disabled: datePicker.datepickerMode === maxMode}" tabindex="-1" style="width:100%;">\n <strong>{{ title }}</strong> \n </button>\n </th>\n <th>\n <button type="button" class="btn btn-default btn-sm pull-right float-right"\n (click)="datePicker.move(1)" tabindex="-1">›</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let rowz of rows">\n <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [attr.id]="dtz.uid" [ngClass]="dtz.customClass">\n <button type="button" style="min-width:100%;" class="btn btn-default"\n [ngClass]="{\'btn-link\': isBs4 && !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}"\n [disabled]="dtz.disabled"\n (click)="datePicker.select(dtz.date)" tabindex="-1">\n <span [ngClass]="{\'text-success\': isBs4 && dtz.current, \'text-info\': !isBs4 && dtz.current}">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n ',styles:["\n :host .btn-info .text-success {\n color: #fff !important;\n }\n "]}]}],e.ctorParameters=function(){return[{type:me}]},e}(),_e=function(){function e(e){this.rows=[],this.datePicker=e}return Object.defineProperty(e.prototype,"isBs4",{get:function(){return!d.isBs3()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var i=this;this.datePicker.stepYear={years:this.datePicker.yearRange},this.datePicker.setRefreshViewHandler(function(){for(var e,t=new Array(this.yearRange),n=i.getStartingYear(this.activeDate.getFullYear()),a=0;a<this.yearRange;a++)e=new Date(n+a,0,1),e=this.fixTimeZone(e),t[a]=this.createDateObject(e,this.formatYear),t[a].uid=this.uniqueId+"-"+a;i.title=[t[0].label,t[this.yearRange-1].label].join(" - "),i.rows=this.split(t,i.datePicker.yearColLimit)},"year"),this.datePicker.setCompareHandler(function(e,t){return e.getFullYear()-t.getFullYear()},"year"),this.datePicker.refreshView()},e.prototype.getStartingYear=function(e){return(e-1)/this.datePicker.yearRange*this.datePicker.yearRange+1},e.decorators=[{type:r.Component,args:[{selector:"yearpicker",template:'\n<table *ngIf="datePicker.datepickerMode===\'year\'" role="grid">\n <thead>\n <tr>\n <th>\n <button type="button" class="btn btn-default btn-sm pull-left float-left"\n (click)="datePicker.move(-1)" tabindex="-1">‹</button>\n </th>\n <th [attr.colspan]="((datePicker.yearColLimit - 2) <= 0) ? 1 : datePicker.yearColLimit - 2">\n <button [id]="datePicker.uniqueId + \'-title\'" role="heading"\n type="button" class="btn btn-default btn-sm"\n (click)="datePicker.toggleMode(0)"\n [disabled]="datePicker.datepickerMode === datePicker.maxMode"\n [ngClass]="{disabled: datePicker.datepickerMode === datePicker.maxMode}" tabindex="-1" style="width:100%;">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button type="button" class="btn btn-default btn-sm pull-right float-right"\n (click)="datePicker.move(1)" tabindex="-1">›</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let rowz of rows">\n <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [attr.id]="dtz.uid">\n <button type="button" style="min-width:100%;" class="btn btn-default"\n [ngClass]="{\'btn-link\': isBs4 && !dtz.selected && !datePicker.isActive(dtz), \'btn-info\': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}"\n [disabled]="dtz.disabled"\n (click)="datePicker.select(dtz.date)" tabindex="-1">\n <span [ngClass]="{\'text-success\': isBs4 && dtz.current, \'text-info\': !isBs4 && dtz.current}">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n ',styles:["\n :host .btn-info .text-success {\n color: #fff !important;\n }\n "]}]}],e.ctorParameters=function(){return[{type:me}]},e}(),Ce=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[ge]}},e.decorators=[{type:r.NgModule,args:[{imports:[o.CommonModule,s.FormsModule],declarations:[De,me,ke,we,_e],exports:[De,me,ke,we,_e],entryComponents:[De]}]}],e}();e.BsDatepickerConfig=l,e.BsDatepickerDirective=W,e.BsDatepickerInlineConfig=G,e.BsDatepickerInlineDirective=U,e.BsDatepickerModule=ye,e.BsDaterangepickerConfig=X,e.BsDaterangepickerDirective=ee,e.BsLocaleService=v,e.DateFormatter=be,e.DatePickerComponent=De,e.DatepickerConfig=ge,e.DatepickerModule=Ce,e.DayPickerComponent=ke,e.MonthPickerComponent=we,e.YearPickerComponent=_e,e.ɵl=b,e.ɵr=K,e.ɵs=ae,e.ɵt=me,e.ɵa=ve,e.ɵo=g,e.ɵn=D,e.ɵm=B,e.ɵf=ie,e.ɵc=se,e.ɵj=re,e.ɵk=$,e.ɵb=oe,e.ɵq=q,e.ɵd=de,e.ɵp=J,e.ɵg=le,e.ɵh=he,e.ɵe=ue,e.ɵi=pe,Object.defineProperty(e,"__esModule",{value:!0})});
2
2
  //# sourceMappingURL=ngx-bootstrap-datepicker.umd.min.js.map