buefy 0.7.9 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/dist/buefy.css +13759 -8263
  3. package/dist/buefy.js +9073 -14866
  4. package/dist/buefy.min.css +1 -5
  5. package/dist/buefy.min.js +2 -2
  6. package/dist/cjs/autocomplete.js +22 -0
  7. package/dist/cjs/button.js +106 -0
  8. package/dist/cjs/checkbox.js +135 -0
  9. package/dist/cjs/chunk-07fe6fc0.js +247 -0
  10. package/dist/cjs/chunk-0af453a7.js +105 -0
  11. package/dist/cjs/chunk-0e89e51b.js +394 -0
  12. package/dist/cjs/chunk-13e039f5.js +104 -0
  13. package/dist/cjs/chunk-143d9e6d.js +404 -0
  14. package/dist/cjs/chunk-19ebd649.js +114 -0
  15. package/dist/cjs/chunk-1b1231ce.js +94 -0
  16. package/dist/cjs/chunk-1e6abfcf.js +94 -0
  17. package/dist/cjs/chunk-28d164b1.js +172 -0
  18. package/dist/cjs/chunk-3396605d.js +394 -0
  19. package/dist/cjs/chunk-364a37a0.js +404 -0
  20. package/dist/cjs/chunk-3b066933.js +103 -0
  21. package/dist/cjs/chunk-3dffe6e7.js +54 -0
  22. package/dist/cjs/chunk-4a03b064.js +199 -0
  23. package/dist/cjs/chunk-50b06939.js +153 -0
  24. package/dist/cjs/chunk-52623128.js +105 -0
  25. package/dist/cjs/chunk-53d4f332.js +94 -0
  26. package/dist/cjs/chunk-544a95da.js +404 -0
  27. package/dist/cjs/chunk-545f01b1.js +49 -0
  28. package/dist/cjs/chunk-59b91990.js +64 -0
  29. package/dist/cjs/chunk-5b2a3329.js +394 -0
  30. package/dist/cjs/chunk-60061aa8.js +172 -0
  31. package/dist/cjs/chunk-67658e54.js +404 -0
  32. package/dist/cjs/chunk-6963026a.js +86 -0
  33. package/dist/cjs/chunk-6cece6b7.js +140 -0
  34. package/dist/cjs/chunk-6d6465c1.js +140 -0
  35. package/dist/cjs/chunk-6e9c0aca.js +94 -0
  36. package/dist/cjs/chunk-77f69fca.js +106 -0
  37. package/dist/cjs/chunk-7a25d736.js +114 -0
  38. package/dist/cjs/chunk-876befa8.js +247 -0
  39. package/dist/cjs/chunk-8985ffff.js +105 -0
  40. package/dist/cjs/chunk-8a05c8c9.js +207 -0
  41. package/dist/cjs/chunk-90407463.js +258 -0
  42. package/dist/cjs/chunk-956525c9.js +106 -0
  43. package/dist/cjs/chunk-96ce35a2.js +114 -0
  44. package/dist/cjs/chunk-9da1d120.js +86 -0
  45. package/dist/cjs/chunk-9f6a8079.js +54 -0
  46. package/dist/cjs/chunk-a60dc21d.js +281 -0
  47. package/dist/cjs/chunk-b628277d.js +199 -0
  48. package/dist/cjs/chunk-c146745e.js +153 -0
  49. package/dist/cjs/chunk-c2aec7a9.js +547 -0
  50. package/dist/cjs/chunk-c9641331.js +86 -0
  51. package/dist/cjs/chunk-d492406b.js +172 -0
  52. package/dist/cjs/chunk-e0aa62a0.js +404 -0
  53. package/dist/cjs/chunk-e45e0329.js +48 -0
  54. package/dist/cjs/chunk-e5de6583.js +207 -0
  55. package/dist/cjs/chunk-e85cceb6.js +258 -0
  56. package/dist/cjs/chunk-ed5addd6.js +547 -0
  57. package/dist/cjs/chunk-ef4753d5.js +283 -0
  58. package/dist/cjs/chunk-f0c597f9.js +199 -0
  59. package/dist/cjs/chunk-f1df1c63.js +9 -0
  60. package/dist/cjs/chunk-f1ee2f5c.js +207 -0
  61. package/dist/cjs/chunk-fbd4d545.js +247 -0
  62. package/dist/cjs/clockpicker.js +447 -0
  63. package/dist/cjs/collapse.js +102 -0
  64. package/dist/cjs/datepicker.js +1281 -0
  65. package/dist/cjs/dialog.js +237 -0
  66. package/dist/cjs/dropdown.js +19 -0
  67. package/dist/cjs/field.js +18 -0
  68. package/dist/cjs/icon.js +17 -0
  69. package/dist/cjs/index.js +164 -0
  70. package/dist/cjs/input.js +20 -0
  71. package/dist/cjs/loading.js +166 -0
  72. package/dist/cjs/menu.js +231 -0
  73. package/dist/cjs/message.js +65 -0
  74. package/dist/cjs/modal.js +48 -0
  75. package/dist/cjs/navbar.js +258 -0
  76. package/dist/cjs/notification.js +142 -0
  77. package/dist/cjs/numberinput.js +191 -0
  78. package/dist/cjs/pagination.js +19 -0
  79. package/dist/cjs/progress.js +151 -0
  80. package/dist/cjs/radio.js +224 -0
  81. package/dist/cjs/select.js +20 -0
  82. package/dist/cjs/slider.js +511 -0
  83. package/dist/cjs/snackbar.js +114 -0
  84. package/dist/cjs/steps.js +352 -0
  85. package/dist/cjs/switch.js +144 -0
  86. package/dist/cjs/table.js +877 -0
  87. package/dist/cjs/tabs.js +258 -0
  88. package/dist/cjs/tag.js +63 -0
  89. package/dist/cjs/taginput.js +297 -0
  90. package/dist/cjs/timepicker.js +75 -0
  91. package/dist/cjs/toast.js +89 -0
  92. package/dist/cjs/tooltip.js +17 -0
  93. package/dist/cjs/upload.js +210 -0
  94. package/dist/components/autocomplete/index.js +1084 -2
  95. package/dist/components/autocomplete/index.min.js +2 -0
  96. package/dist/components/button/index.js +425 -2
  97. package/dist/components/button/index.min.js +2 -0
  98. package/dist/components/checkbox/index.js +342 -2
  99. package/dist/components/checkbox/index.min.js +2 -0
  100. package/dist/components/clockpicker/index.js +2340 -2
  101. package/dist/components/clockpicker/index.min.js +2 -0
  102. package/dist/components/collapse/index.js +201 -2
  103. package/dist/components/collapse/index.min.js +2 -0
  104. package/dist/components/datepicker/index.js +2720 -2
  105. package/dist/components/datepicker/index.min.js +2 -0
  106. package/dist/components/dialog/index.js +768 -2
  107. package/dist/components/dialog/index.min.js +2 -0
  108. package/dist/components/dropdown/index.js +555 -2
  109. package/dist/components/dropdown/index.min.js +2 -0
  110. package/dist/components/field/index.js +447 -2
  111. package/dist/components/field/index.min.js +2 -0
  112. package/dist/components/icon/index.js +322 -2
  113. package/dist/components/icon/index.min.js +2 -0
  114. package/dist/components/input/index.js +675 -2
  115. package/dist/components/input/index.min.js +2 -0
  116. package/dist/components/loading/index.js +282 -2
  117. package/dist/components/loading/index.min.js +2 -0
  118. package/dist/components/menu/index.js +550 -2
  119. package/dist/components/menu/index.min.js +2 -0
  120. package/dist/components/message/index.js +482 -2
  121. package/dist/components/message/index.min.js +2 -0
  122. package/dist/components/modal/index.js +400 -2
  123. package/dist/components/modal/index.min.js +2 -0
  124. package/dist/components/navbar/index.js +371 -0
  125. package/dist/components/navbar/index.min.js +2 -0
  126. package/dist/components/notification/index.js +705 -2
  127. package/dist/components/notification/index.min.js +2 -0
  128. package/dist/components/numberinput/index.js +846 -2
  129. package/dist/components/numberinput/index.min.js +2 -0
  130. package/dist/components/pagination/index.js +577 -2
  131. package/dist/components/pagination/index.min.js +2 -0
  132. package/dist/components/progress/index.js +250 -0
  133. package/dist/components/progress/index.min.js +2 -0
  134. package/dist/components/radio/index.js +323 -2
  135. package/dist/components/radio/index.min.js +2 -0
  136. package/dist/components/select/index.js +571 -2
  137. package/dist/components/select/index.min.js +2 -0
  138. package/dist/components/slider/index.js +764 -0
  139. package/dist/components/slider/index.min.js +2 -0
  140. package/dist/components/snackbar/index.js +397 -2
  141. package/dist/components/snackbar/index.min.js +2 -0
  142. package/dist/components/steps/index.js +721 -2
  143. package/dist/components/steps/index.min.js +2 -0
  144. package/dist/components/switch/index.js +243 -2
  145. package/dist/components/switch/index.min.js +2 -0
  146. package/dist/components/table/index.js +1870 -2
  147. package/dist/components/table/index.min.js +2 -0
  148. package/dist/components/tabs/index.js +627 -2
  149. package/dist/components/tabs/index.min.js +2 -0
  150. package/dist/components/tag/index.js +262 -2
  151. package/dist/components/tag/index.min.js +2 -0
  152. package/dist/components/taginput/index.js +1459 -2
  153. package/dist/components/taginput/index.min.js +2 -0
  154. package/dist/components/timepicker/index.js +2053 -2
  155. package/dist/components/timepicker/index.min.js +2 -0
  156. package/dist/components/toast/index.js +372 -2
  157. package/dist/components/toast/index.min.js +2 -0
  158. package/dist/components/tooltip/index.js +236 -2
  159. package/dist/components/tooltip/index.min.js +2 -0
  160. package/dist/components/upload/index.js +501 -2
  161. package/dist/components/upload/index.min.js +2 -0
  162. package/dist/esm/autocomplete.js +18 -0
  163. package/dist/esm/button.js +102 -0
  164. package/dist/esm/checkbox.js +131 -0
  165. package/dist/esm/chunk-00e3e67f.js +401 -0
  166. package/dist/esm/chunk-051f8b06.js +105 -0
  167. package/dist/esm/chunk-0566c90d.js +152 -0
  168. package/dist/esm/chunk-07e19446.js +545 -0
  169. package/dist/esm/chunk-085a700d.js +7 -0
  170. package/dist/esm/chunk-0ad6938a.js +53 -0
  171. package/dist/esm/chunk-0e3f4fb5.js +52 -0
  172. package/dist/esm/chunk-10c85529.js +151 -0
  173. package/dist/esm/chunk-121b1efa.js +197 -0
  174. package/dist/esm/chunk-19dad95e.js +256 -0
  175. package/dist/esm/chunk-231b6066.js +113 -0
  176. package/dist/esm/chunk-24d1a01f.js +279 -0
  177. package/dist/esm/chunk-297bff6b.js +393 -0
  178. package/dist/esm/chunk-2b2ae5c6.js +245 -0
  179. package/dist/esm/chunk-2cb6f867.js +46 -0
  180. package/dist/esm/chunk-33717194.js +392 -0
  181. package/dist/esm/chunk-3b811b77.js +139 -0
  182. package/dist/esm/chunk-3e47308f.js +104 -0
  183. package/dist/esm/chunk-411d6eea.js +84 -0
  184. package/dist/esm/chunk-4535dec5.js +92 -0
  185. package/dist/esm/chunk-47a5f3a1.js +103 -0
  186. package/dist/esm/chunk-4a5384da.js +205 -0
  187. package/dist/esm/chunk-4b663574.js +112 -0
  188. package/dist/esm/chunk-4d393f09.js +170 -0
  189. package/dist/esm/chunk-4d695899.js +257 -0
  190. package/dist/esm/chunk-4f508891.js +171 -0
  191. package/dist/esm/chunk-531b8274.js +281 -0
  192. package/dist/esm/chunk-591ee4a2.js +151 -0
  193. package/dist/esm/chunk-5d3bf82e.js +170 -0
  194. package/dist/esm/chunk-5e0b0665.js +104 -0
  195. package/dist/esm/chunk-648b9aa4.js +45 -0
  196. package/dist/esm/chunk-666940cf.js +546 -0
  197. package/dist/esm/chunk-67c97e13.js +246 -0
  198. package/dist/esm/chunk-6844653e.js +401 -0
  199. package/dist/esm/chunk-699b7cb4.js +245 -0
  200. package/dist/esm/chunk-6f881e7d.js +51 -0
  201. package/dist/esm/chunk-7123d158.js +256 -0
  202. package/dist/esm/chunk-7cf87590.js +60 -0
  203. package/dist/esm/chunk-823177ac.js +545 -0
  204. package/dist/esm/chunk-8838757a.js +401 -0
  205. package/dist/esm/chunk-8ca878c0.js +198 -0
  206. package/dist/esm/chunk-8fc2e874.js +85 -0
  207. package/dist/esm/chunk-912ed715.js +92 -0
  208. package/dist/esm/chunk-92acc21f.js +392 -0
  209. package/dist/esm/chunk-98e86f40.js +197 -0
  210. package/dist/esm/chunk-99a1f9df.js +92 -0
  211. package/dist/esm/chunk-9a776697.js +112 -0
  212. package/dist/esm/chunk-9e3207cc.js +46 -0
  213. package/dist/esm/chunk-9ec14e09.js +112 -0
  214. package/dist/esm/chunk-a5ea70d0.js +205 -0
  215. package/dist/esm/chunk-ac3f4847.js +138 -0
  216. package/dist/esm/chunk-b5376f3e.js +92 -0
  217. package/dist/esm/chunk-b56eb2c8.js +197 -0
  218. package/dist/esm/chunk-b796d1b2.js +392 -0
  219. package/dist/esm/chunk-b822a5db.js +205 -0
  220. package/dist/esm/chunk-b9bdb0e4.js +6 -0
  221. package/dist/esm/chunk-bfe15983.js +401 -0
  222. package/dist/esm/chunk-c9039f68.js +104 -0
  223. package/dist/esm/chunk-cc718c15.js +245 -0
  224. package/dist/esm/chunk-cca88db8.js +99 -0
  225. package/dist/esm/chunk-d6200087.js +50 -0
  226. package/dist/esm/chunk-daeac852.js +138 -0
  227. package/dist/esm/chunk-db31c548.js +103 -0
  228. package/dist/esm/chunk-e5568f45.js +84 -0
  229. package/dist/esm/chunk-e5fce48f.js +59 -0
  230. package/dist/esm/chunk-e84b4047.js +170 -0
  231. package/dist/esm/chunk-e8d90b72.js +98 -0
  232. package/dist/esm/chunk-e932bb68.js +206 -0
  233. package/dist/esm/chunk-edd8ff91.js +103 -0
  234. package/dist/esm/chunk-f0465d8d.js +84 -0
  235. package/dist/esm/chunk-f743d154.js +93 -0
  236. package/dist/esm/chunk-f8036b32.js +402 -0
  237. package/dist/esm/chunk-f984748f.js +401 -0
  238. package/dist/esm/chunk-fd5b0e1e.js +99 -0
  239. package/dist/esm/clockpicker.js +443 -0
  240. package/dist/esm/collapse.js +98 -0
  241. package/dist/esm/datepicker.js +1277 -0
  242. package/dist/esm/dialog.js +231 -0
  243. package/dist/esm/dropdown.js +14 -0
  244. package/dist/esm/field.js +14 -0
  245. package/dist/esm/icon.js +13 -0
  246. package/dist/esm/index.js +154 -0
  247. package/dist/esm/input.js +16 -0
  248. package/dist/esm/loading.js +159 -0
  249. package/dist/esm/menu.js +225 -0
  250. package/dist/esm/message.js +61 -0
  251. package/dist/esm/modal.js +42 -0
  252. package/dist/esm/navbar.js +253 -0
  253. package/dist/esm/notification.js +135 -0
  254. package/dist/esm/numberinput.js +187 -0
  255. package/dist/esm/pagination.js +15 -0
  256. package/dist/esm/progress.js +147 -0
  257. package/dist/esm/radio.js +219 -0
  258. package/dist/esm/select.js +16 -0
  259. package/dist/esm/slider.js +506 -0
  260. package/dist/esm/snackbar.js +108 -0
  261. package/dist/esm/steps.js +347 -0
  262. package/dist/esm/switch.js +140 -0
  263. package/dist/esm/table.js +872 -0
  264. package/dist/esm/tabs.js +253 -0
  265. package/dist/esm/tag.js +59 -0
  266. package/dist/esm/taginput.js +293 -0
  267. package/dist/esm/timepicker.js +71 -0
  268. package/dist/esm/toast.js +83 -0
  269. package/dist/esm/tooltip.js +13 -0
  270. package/dist/esm/upload.js +206 -0
  271. package/package.json +26 -4
  272. package/src/components/checkbox/Checkbox.vue +12 -4
  273. package/src/components/checkbox/CheckboxButton.vue +10 -2
  274. package/src/components/clockpicker/Clockpicker.vue +0 -5
  275. package/src/components/datepicker/Datepicker.spec.js +60 -0
  276. package/src/components/datepicker/Datepicker.vue +46 -19
  277. package/src/components/datepicker/DatepickerTable.spec.js +107 -2
  278. package/src/components/datepicker/DatepickerTable.vue +73 -4
  279. package/src/components/datepicker/DatepickerTableRow.spec.js +127 -17
  280. package/src/components/datepicker/DatepickerTableRow.vue +103 -4
  281. package/src/components/dialog/Dialog.vue +5 -3
  282. package/src/components/dialog/index.js +2 -2
  283. package/src/components/dropdown/Dropdown.vue +1 -4
  284. package/src/components/dropdown/DropdownItem.vue +7 -3
  285. package/src/components/field/Field.spec.js +18 -0
  286. package/src/components/field/Field.vue +21 -2
  287. package/src/components/index.js +6 -0
  288. package/src/components/input/Input.vue +2 -2
  289. package/src/components/loading/index.js +1 -1
  290. package/src/components/modal/index.js +1 -1
  291. package/src/components/navbar/NavBar.spec.js +76 -0
  292. package/src/components/navbar/Navbar.vue +127 -0
  293. package/src/components/navbar/NavbarBurger.vue +25 -0
  294. package/src/components/navbar/NavbarItem.vue +21 -0
  295. package/src/components/navbar/index.js +20 -0
  296. package/src/components/notification/index.js +1 -1
  297. package/src/components/pagination/Pagination.vue +28 -6
  298. package/src/components/progress/Progress.spec.js +77 -0
  299. package/src/components/progress/Progress.vue +108 -0
  300. package/src/components/progress/__snapshots__/Progress.spec.js.snap +7 -0
  301. package/src/components/progress/index.js +17 -0
  302. package/src/components/radio/Radio.spec.js +18 -1
  303. package/src/components/radio/Radio.vue +11 -5
  304. package/src/components/radio/RadioButton.spec.js +18 -1
  305. package/src/components/radio/RadioButton.vue +20 -8
  306. package/src/components/select/Select.spec.js +22 -1
  307. package/src/components/select/Select.vue +2 -1
  308. package/src/components/select/__snapshots__/Select.spec.js.snap +7 -0
  309. package/src/components/slider/Slider.spec.js +10 -0
  310. package/src/components/slider/Slider.vue +240 -0
  311. package/src/components/slider/SliderThumb.vue +188 -0
  312. package/src/components/slider/SliderTick.vue +43 -0
  313. package/src/components/slider/index.js +20 -0
  314. package/src/components/snackbar/index.js +2 -2
  315. package/src/components/steps/StepItem.vue +2 -3
  316. package/src/components/steps/Steps.vue +7 -5
  317. package/src/components/switch/Switch.spec.js +29 -0
  318. package/src/components/switch/Switch.vue +29 -5
  319. package/src/components/switch/__snapshots__/Switch.spec.js.snap +3 -0
  320. package/src/components/table/Table.vue +30 -8
  321. package/src/components/table/TableColumn.vue +2 -2
  322. package/src/components/tag/Tag.vue +4 -1
  323. package/src/components/taginput/Taginput.spec.js +10 -0
  324. package/src/components/taginput/Taginput.vue +8 -3
  325. package/src/components/toast/index.js +2 -2
  326. package/src/components/tooltip/Tooltip.vue +5 -5
  327. package/src/components/upload/Upload.vue +15 -8
  328. package/src/index.js +11 -4
  329. package/src/scss/buefy-build.scss +3 -3
  330. package/src/scss/buefy.scss +4 -0
  331. package/src/scss/components/_datepicker.scss +40 -1
  332. package/src/scss/components/_form.scss +52 -1
  333. package/src/scss/components/_progress.scss +45 -0
  334. package/src/scss/components/_radio.scss +14 -14
  335. package/src/scss/components/_slider.scss +138 -0
  336. package/src/scss/components/_steps.scss +4 -4
  337. package/src/scss/components/_switch.scss +54 -2
  338. package/src/scss/components/_taginput.scss +3 -0
  339. package/src/scss/components/_upload.scss +1 -3
  340. package/src/utils/SlotComponent.js +9 -2
  341. package/src/utils/TimepickerMixin.js +17 -6
  342. package/src/utils/config.js +4 -1
  343. package/src/utils/helpers.spec.js +67 -0
  344. package/src/utils/plugins.js +2 -1
  345. package/types/components.d.ts +3 -3
  346. package/types/index.d.ts +24 -11
  347. package/dist/components/index.js +0 -2
@@ -0,0 +1,1277 @@
1
+ import { _ as _defineProperty } from './chunk-d6200087.js';
2
+ import { i as isMobile } from './chunk-e5fce48f.js';
3
+ import { c as config } from './chunk-9e3207cc.js';
4
+ import { F as FormElementMixin } from './chunk-10c85529.js';
5
+ import { I as Icon } from './chunk-e84b4047.js';
6
+ import { _ as __vue_normalize__, r as registerComponent, u as use } from './chunk-cca88db8.js';
7
+ import { I as Input } from './chunk-98e86f40.js';
8
+ import { D as Dropdown, a as DropdownItem } from './chunk-00e3e67f.js';
9
+ import { F as Field } from './chunk-531b8274.js';
10
+ import { S as Select } from './chunk-912ed715.js';
11
+
12
+ //
13
+ //
14
+ //
15
+ //
16
+ //
17
+ //
18
+ //
19
+ //
20
+ //
21
+ //
22
+ //
23
+ //
24
+ //
25
+ //
26
+ //
27
+ //
28
+ //
29
+ //
30
+ //
31
+ //
32
+ //
33
+ //
34
+ //
35
+ //
36
+ //
37
+ //
38
+ //
39
+ //
40
+ //
41
+ //
42
+ //
43
+ //
44
+ //
45
+ //
46
+ //
47
+ //
48
+ //
49
+ //
50
+ var script = {
51
+ name: 'BDatepickerTableRow',
52
+ props: {
53
+ selectedDate: {
54
+ type: [Date, Array]
55
+ },
56
+ hoveredDateRange: Array,
57
+ week: {
58
+ type: Array,
59
+ required: true
60
+ },
61
+ month: {
62
+ type: Number,
63
+ required: true
64
+ },
65
+ minDate: Date,
66
+ maxDate: Date,
67
+ disabled: Boolean,
68
+ unselectableDates: Array,
69
+ unselectableDaysOfWeek: Array,
70
+ selectableDates: Array,
71
+ events: Array,
72
+ indicators: String,
73
+ dateCreator: Function,
74
+ nearbyMonthDays: Boolean,
75
+ nearbySelectableMonthDays: Boolean,
76
+ showWeekNumber: {
77
+ type: Boolean,
78
+ default: function _default() {
79
+ return false;
80
+ }
81
+ },
82
+ rulesForFirstWeek: {
83
+ type: Number,
84
+ default: function _default() {
85
+ return 4;
86
+ }
87
+ },
88
+ firstDayOfWeek: Number
89
+ },
90
+ methods: {
91
+ firstWeekOffset: function firstWeekOffset(year, dow, doy) {
92
+ // first-week day -- which january is always in the first week (4 for iso, 1 for other)
93
+ var fwd = 7 + dow - doy; // first-week day local weekday -- which local weekday is fwd
94
+
95
+ var firstJanuary = new Date(year, 0, fwd);
96
+ var fwdlw = (7 + firstJanuary.getDay() - dow) % 7;
97
+ return -fwdlw + fwd - 1;
98
+ },
99
+ daysInYear: function daysInYear(year) {
100
+ return this.isLeapYear(year) ? 366 : 365;
101
+ },
102
+ isLeapYear: function isLeapYear(year) {
103
+ return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
104
+ },
105
+ getSetDayOfYear: function getSetDayOfYear(input) {
106
+ var dayOfYear = Math.round((input - new Date(input.getFullYear(), 0, 1)) / 864e5) + 1;
107
+ return dayOfYear;
108
+ },
109
+ weeksInYear: function weeksInYear(year, dow, doy) {
110
+ var weekOffset = this.firstWeekOffset(year, dow, doy);
111
+ var weekOffsetNext = this.firstWeekOffset(year + 1, dow, doy);
112
+ return (this.daysInYear(year) - weekOffset + weekOffsetNext) / 7;
113
+ },
114
+ getWeekNumber: function getWeekNumber(mom) {
115
+ var dow = this.firstDayOfWeek; // first day of week
116
+ // Rules for the first week : 1 for the 1st January, 4 for the 4th January
117
+
118
+ var doy = this.rulesForFirstWeek;
119
+ var weekOffset = this.firstWeekOffset(mom.getFullYear(), dow, doy);
120
+ var week = Math.floor((this.getSetDayOfYear(mom) - weekOffset - 1) / 7) + 1;
121
+ var resWeek;
122
+ var resYear;
123
+
124
+ if (week < 1) {
125
+ resYear = mom.getFullYear() - 1;
126
+ resWeek = week + this.weeksInYear(resYear, dow, doy);
127
+ } else if (week > this.weeksInYear(mom.getFullYear(), dow, doy)) {
128
+ resWeek = week - this.weeksInYear(mom.getFullYear(), dow, doy);
129
+ resYear = mom.getFullYear() + 1;
130
+ } else {
131
+ resYear = mom.getFullYear();
132
+ resWeek = week;
133
+ }
134
+
135
+ return resWeek;
136
+ },
137
+
138
+ /*
139
+ * Check that selected day is within earliest/latest params and
140
+ * is within this month
141
+ */
142
+ selectableDate: function selectableDate(day) {
143
+ var validity = [];
144
+
145
+ if (this.minDate) {
146
+ validity.push(day >= this.minDate);
147
+ }
148
+
149
+ if (this.maxDate) {
150
+ validity.push(day <= this.maxDate);
151
+ }
152
+
153
+ if (this.nearbyMonthDays && !this.nearbySelectableMonthDays) {
154
+ validity.push(day.getMonth() === this.month);
155
+ }
156
+
157
+ if (this.selectableDates) {
158
+ for (var i = 0; i < this.selectableDates.length; i++) {
159
+ var enabledDate = this.selectableDates[i];
160
+
161
+ if (day.getDate() === enabledDate.getDate() && day.getFullYear() === enabledDate.getFullYear() && day.getMonth() === enabledDate.getMonth()) {
162
+ return true;
163
+ } else {
164
+ validity.push(false);
165
+ }
166
+ }
167
+ }
168
+
169
+ if (this.unselectableDates) {
170
+ for (var _i = 0; _i < this.unselectableDates.length; _i++) {
171
+ var disabledDate = this.unselectableDates[_i];
172
+ validity.push(day.getDate() !== disabledDate.getDate() || day.getFullYear() !== disabledDate.getFullYear() || day.getMonth() !== disabledDate.getMonth());
173
+ }
174
+ }
175
+
176
+ if (this.unselectableDaysOfWeek) {
177
+ for (var _i2 = 0; _i2 < this.unselectableDaysOfWeek.length; _i2++) {
178
+ var dayOfWeek = this.unselectableDaysOfWeek[_i2];
179
+ validity.push(day.getDay() !== dayOfWeek);
180
+ }
181
+ }
182
+
183
+ return validity.indexOf(false) < 0;
184
+ },
185
+
186
+ /*
187
+ * Emit select event with chosen date as payload
188
+ */
189
+ emitChosenDate: function emitChosenDate(day) {
190
+ if (this.disabled) return;
191
+
192
+ if (this.selectableDate(day)) {
193
+ this.$emit('select', day);
194
+ }
195
+ },
196
+ eventsDateMatch: function eventsDateMatch(day) {
197
+ if (!this.events || !this.events.length) return false;
198
+ var dayEvents = [];
199
+
200
+ for (var i = 0; i < this.events.length; i++) {
201
+ if (this.events[i].date.getDay() === day.getDay()) {
202
+ dayEvents.push(this.events[i]);
203
+ }
204
+ }
205
+
206
+ if (!dayEvents.length) {
207
+ return false;
208
+ }
209
+
210
+ return dayEvents;
211
+ },
212
+
213
+ /*
214
+ * Build classObject for cell using validations
215
+ */
216
+ classObject: function classObject(day) {
217
+ function dateMatch(dateOne, dateTwo) {
218
+ // if either date is null or undefined, return false
219
+ if (!dateOne || !dateTwo) {
220
+ return false;
221
+ }
222
+
223
+ if (Array.isArray(dateTwo)) {
224
+ return dateTwo.some(function (date) {
225
+ return dateOne.getDate() === date.getDate() && dateOne.getFullYear() === date.getFullYear() && dateOne.getMonth() === date.getMonth();
226
+ });
227
+ }
228
+
229
+ return dateOne.getDate() === dateTwo.getDate() && dateOne.getFullYear() === dateTwo.getFullYear() && dateOne.getMonth() === dateTwo.getMonth();
230
+ }
231
+
232
+ function dateWithin(dateOne, dates) {
233
+ if (!Array.isArray(dates)) {
234
+ return false;
235
+ }
236
+
237
+ return dateOne > dates[0] && dateOne < dates[1];
238
+ }
239
+
240
+ return {
241
+ 'is-selected': dateMatch(day, this.selectedDate) || dateWithin(day, this.selectedDate),
242
+ 'is-first-selected': dateMatch(day, Array.isArray(this.selectedDate) && this.selectedDate[0]),
243
+ 'is-within-selected': dateWithin(day, this.selectedDate),
244
+ 'is-last-selected': dateMatch(day, Array.isArray(this.selectedDate) && this.selectedDate[1]),
245
+ 'is-within-hovered-range': this.hoveredDateRange && this.hoveredDateRange.length === 2 && (dateMatch(day, this.hoveredDateRange) || dateWithin(day, this.hoveredDateRange)),
246
+ 'is-first-hovered': dateMatch(day, Array.isArray(this.hoveredDateRange) && this.hoveredDateRange[0]),
247
+ 'is-within-hovered': dateWithin(day, this.hoveredDateRange),
248
+ 'is-last-hovered': dateMatch(day, Array.isArray(this.hoveredDateRange) && this.hoveredDateRange[1]),
249
+ 'is-today': dateMatch(day, this.dateCreator()),
250
+ 'is-selectable': this.selectableDate(day) && !this.disabled,
251
+ 'is-unselectable': !this.selectableDate(day) || this.disabled,
252
+ 'is-invisible': !this.nearbyMonthDays && day.getMonth() !== this.month,
253
+ 'is-nearby': this.nearbySelectableMonthDays && day.getMonth() !== this.month
254
+ };
255
+ },
256
+ setRangeHoverEndDate: function setRangeHoverEndDate(day) {
257
+ var isRangeInput = Array.isArray(this.selectedDate);
258
+
259
+ if (isRangeInput) {
260
+ this.$emit('rangeHoverEndDate', day);
261
+ }
262
+ }
263
+ }
264
+ };
265
+
266
+ /* script */
267
+ const __vue_script__ = script;
268
+
269
+ /* template */
270
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"datepicker-row"},[(_vm.showWeekNumber)?_c('a',{staticClass:"datepicker-cell is-week-number"},[_vm._v("\n "+_vm._s(_vm.getWeekNumber(_vm.week[6]))+"\n ")]):_vm._e(),_vm._v(" "),_vm._l((_vm.week),function(day,index){return [(_vm.selectableDate(day) && !_vm.disabled)?_c('a',{key:index,staticClass:"datepicker-cell",class:[_vm.classObject(day), {'has-event': _vm.eventsDateMatch(day)}, _vm.indicators],attrs:{"role":"button","href":"#","disabled":_vm.disabled},on:{"click":function($event){$event.preventDefault();_vm.emitChosenDate(day);},"keydown":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"enter",13,$event.key)){ return null; }$event.preventDefault();_vm.emitChosenDate(day);},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"space",32,$event.key)){ return null; }$event.preventDefault();_vm.emitChosenDate(day);}],"mouseenter":function($event){_vm.setRangeHoverEndDate(day);}}},[_vm._v("\n "+_vm._s(day.getDate())+"\n "),(_vm.eventsDateMatch(day))?_c('div',{staticClass:"events"},_vm._l((_vm.eventsDateMatch(day)),function(event,index){return _c('div',{key:index,staticClass:"event",class:event.type})})):_vm._e()]):_c('div',{key:index,staticClass:"datepicker-cell",class:_vm.classObject(day)},[_vm._v("\n "+_vm._s(day.getDate())+"\n ")])]})],2)};
271
+ var __vue_staticRenderFns__ = [];
272
+
273
+ /* style */
274
+ const __vue_inject_styles__ = undefined;
275
+ /* scoped */
276
+ const __vue_scope_id__ = undefined;
277
+ /* module identifier */
278
+ const __vue_module_identifier__ = undefined;
279
+ /* functional template */
280
+ const __vue_is_functional_template__ = false;
281
+ /* style inject */
282
+
283
+ /* style inject SSR */
284
+
285
+
286
+
287
+ var DatepickerTableRow = __vue_normalize__(
288
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
289
+ __vue_inject_styles__,
290
+ __vue_script__,
291
+ __vue_scope_id__,
292
+ __vue_is_functional_template__,
293
+ __vue_module_identifier__,
294
+ undefined,
295
+ undefined
296
+ );
297
+
298
+ var isDefined = function isDefined(d) {
299
+ return d !== undefined;
300
+ };
301
+
302
+ var script$1 = {
303
+ name: 'BDatepickerTable',
304
+ components: _defineProperty({}, DatepickerTableRow.name, DatepickerTableRow),
305
+ props: {
306
+ value: {
307
+ type: [Date, Array]
308
+ },
309
+ dayNames: Array,
310
+ monthNames: Array,
311
+ firstDayOfWeek: Number,
312
+ events: Array,
313
+ indicators: String,
314
+ minDate: Date,
315
+ maxDate: Date,
316
+ focused: Object,
317
+ disabled: Boolean,
318
+ dateCreator: Function,
319
+ unselectableDates: Array,
320
+ unselectableDaysOfWeek: Array,
321
+ selectableDates: Array,
322
+ nearbyMonthDays: Boolean,
323
+ nearbySelectableMonthDays: Boolean,
324
+ showWeekNumber: {
325
+ type: Boolean,
326
+ default: function _default() {
327
+ return false;
328
+ }
329
+ },
330
+ rulesForFirstWeek: {
331
+ type: Number,
332
+ default: function _default() {
333
+ return 4;
334
+ }
335
+ },
336
+ range: Boolean
337
+ },
338
+ data: function data() {
339
+ return {
340
+ selectedBeginDate: undefined,
341
+ selectedEndDate: undefined,
342
+ hoveredEndDate: undefined
343
+ };
344
+ },
345
+ computed: {
346
+ visibleDayNames: function visibleDayNames() {
347
+ var visibleDayNames = [];
348
+ var index = this.firstDayOfWeek;
349
+
350
+ while (visibleDayNames.length < this.dayNames.length) {
351
+ var currentDayName = this.dayNames[index % this.dayNames.length];
352
+ visibleDayNames.push(currentDayName);
353
+ index++;
354
+ }
355
+
356
+ if (this.showWeekNumber) visibleDayNames.unshift('');
357
+ return visibleDayNames;
358
+ },
359
+ hasEvents: function hasEvents() {
360
+ return this.events && this.events.length;
361
+ },
362
+
363
+ /*
364
+ * Return array of all events in the specified month
365
+ */
366
+ eventsInThisMonth: function eventsInThisMonth() {
367
+ if (!this.events) return [];
368
+ var monthEvents = [];
369
+
370
+ for (var i = 0; i < this.events.length; i++) {
371
+ var event = this.events[i];
372
+
373
+ if (!event.hasOwnProperty('date')) {
374
+ event = {
375
+ date: event
376
+ };
377
+ }
378
+
379
+ if (!event.hasOwnProperty('type')) {
380
+ event.type = 'is-primary';
381
+ }
382
+
383
+ if (event.date.getMonth() === this.focused.month && event.date.getFullYear() === this.focused.year) {
384
+ monthEvents.push(event);
385
+ }
386
+ }
387
+
388
+ return monthEvents;
389
+ },
390
+
391
+ /*
392
+ * Return array of all weeks in the specified month
393
+ */
394
+ weeksInThisMonth: function weeksInThisMonth() {
395
+ var month = this.focused.month;
396
+ var year = this.focused.year;
397
+ var weeksInThisMonth = [];
398
+ var daysInThisMonth = new Date(year, month + 1, 0).getDate();
399
+ var startingDay = 1;
400
+
401
+ while (startingDay <= daysInThisMonth + 6) {
402
+ var newWeek = this.weekBuilder(startingDay, month, year);
403
+ var weekValid = false;
404
+ newWeek.forEach(function (day) {
405
+ if (day.getMonth() === month) {
406
+ weekValid = true;
407
+ }
408
+ });
409
+
410
+ if (weekValid) {
411
+ weeksInThisMonth.push(newWeek);
412
+ }
413
+
414
+ startingDay += 7;
415
+ }
416
+
417
+ return weeksInThisMonth;
418
+ },
419
+ hoveredDateRange: function hoveredDateRange() {
420
+ if (!this.range) {
421
+ return [];
422
+ }
423
+
424
+ if (!isNaN(this.selectedEndDate)) {
425
+ return [];
426
+ }
427
+
428
+ if (this.hoveredEndDate < this.selectedBeginDate) {
429
+ return [this.hoveredEndDate, this.selectedBeginDate].filter(isDefined);
430
+ }
431
+
432
+ return [this.selectedBeginDate, this.hoveredEndDate].filter(isDefined);
433
+ }
434
+ },
435
+ methods: {
436
+ /*
437
+ * Emit input event with selected date as payload for v-model in parent
438
+ */
439
+ updateSelectedDate: function updateSelectedDate(date) {
440
+ if (!this.range) {
441
+ this.$emit('input', date);
442
+ } else {
443
+ this.handleSelectRangeDate(date);
444
+ }
445
+ },
446
+
447
+ /*
448
+ * If both begin and end dates are set, reset the end date and set the begin date.
449
+ * If only begin date is selected, emit an array of the begin date and the new date.
450
+ * If not set, only set the begin date.
451
+ */
452
+ handleSelectRangeDate: function handleSelectRangeDate(date) {
453
+ if (this.selectedBeginDate && this.selectedEndDate) {
454
+ this.selectedBeginDate = date;
455
+ this.selectedEndDate = undefined;
456
+ } else if (this.selectedBeginDate && !this.selectedEndDate) {
457
+ if (this.selectedBeginDate > date) {
458
+ this.selectedEndDate = this.selectedBeginDate;
459
+ this.selectedBeginDate = date;
460
+ } else {
461
+ this.selectedEndDate = date;
462
+ }
463
+
464
+ this.$emit('input', [this.selectedBeginDate, this.selectedEndDate]);
465
+ } else {
466
+ this.selectedBeginDate = date;
467
+ }
468
+ },
469
+
470
+ /*
471
+ * Return array of all days in the week that the startingDate is within
472
+ */
473
+ weekBuilder: function weekBuilder(startingDate, month, year) {
474
+ var thisMonth = new Date(year, month);
475
+ var thisWeek = [];
476
+ var dayOfWeek = new Date(year, month, startingDate).getDay();
477
+ var end = dayOfWeek >= this.firstDayOfWeek ? dayOfWeek - this.firstDayOfWeek : 7 - this.firstDayOfWeek + dayOfWeek;
478
+ var daysAgo = 1;
479
+
480
+ for (var i = 0; i < end; i++) {
481
+ thisWeek.unshift(new Date(thisMonth.getFullYear(), thisMonth.getMonth(), startingDate - daysAgo));
482
+ daysAgo++;
483
+ }
484
+
485
+ thisWeek.push(new Date(year, month, startingDate));
486
+ var daysForward = 1;
487
+
488
+ while (thisWeek.length < 7) {
489
+ thisWeek.push(new Date(year, month, startingDate + daysForward));
490
+ daysForward++;
491
+ }
492
+
493
+ return thisWeek;
494
+ },
495
+ eventsInThisWeek: function eventsInThisWeek(week) {
496
+ return this.eventsInThisMonth.filter(function (event) {
497
+ var stripped = new Date(Date.parse(event.date));
498
+ stripped.setHours(0);
499
+ stripped.setMinutes(0);
500
+ stripped.setSeconds(0);
501
+ stripped.setMilliseconds(0);
502
+ var timed = stripped.getTime();
503
+ return week.some(function (weekDate) {
504
+ return weekDate.getTime() === timed;
505
+ });
506
+ });
507
+ },
508
+ setRangeHoverEndDate: function setRangeHoverEndDate(day) {
509
+ this.hoveredEndDate = day;
510
+ }
511
+ }
512
+ };
513
+
514
+ /* script */
515
+ const __vue_script__$1 = script$1;
516
+
517
+ /* template */
518
+ var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:"datepicker-table"},[_c('header',{staticClass:"datepicker-header"},_vm._l((_vm.visibleDayNames),function(day,index){return _c('div',{key:index,staticClass:"datepicker-cell"},[_vm._v("\n "+_vm._s(day)+"\n ")])})),_vm._v(" "),_c('div',{staticClass:"datepicker-body",class:{'has-events':_vm.hasEvents}},_vm._l((_vm.weeksInThisMonth),function(week,index){return _c('b-datepicker-table-row',{key:index,attrs:{"selected-date":_vm.value,"week":week,"month":_vm.focused.month,"min-date":_vm.minDate,"max-date":_vm.maxDate,"disabled":_vm.disabled,"unselectable-dates":_vm.unselectableDates,"unselectable-days-of-week":_vm.unselectableDaysOfWeek,"selectable-dates":_vm.selectableDates,"events":_vm.eventsInThisWeek(week),"indicators":_vm.indicators,"date-creator":_vm.dateCreator,"nearby-month-days":_vm.nearbyMonthDays,"nearby-selectable-month-days":_vm.nearbySelectableMonthDays,"show-week-number":_vm.showWeekNumber,"first-day-of-week":_vm.firstDayOfWeek,"rules-for-first-week":_vm.rulesForFirstWeek,"range":_vm.range,"hovered-date-range":_vm.hoveredDateRange},on:{"select":_vm.updateSelectedDate,"rangeHoverEndDate":_vm.setRangeHoverEndDate}})}))])};
519
+ var __vue_staticRenderFns__$1 = [];
520
+
521
+ /* style */
522
+ const __vue_inject_styles__$1 = undefined;
523
+ /* scoped */
524
+ const __vue_scope_id__$1 = undefined;
525
+ /* module identifier */
526
+ const __vue_module_identifier__$1 = undefined;
527
+ /* functional template */
528
+ const __vue_is_functional_template__$1 = false;
529
+ /* style inject */
530
+
531
+ /* style inject SSR */
532
+
533
+
534
+
535
+ var DatepickerTable = __vue_normalize__(
536
+ { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
537
+ __vue_inject_styles__$1,
538
+ __vue_script__$1,
539
+ __vue_scope_id__$1,
540
+ __vue_is_functional_template__$1,
541
+ __vue_module_identifier__$1,
542
+ undefined,
543
+ undefined
544
+ );
545
+
546
+ //
547
+ //
548
+ //
549
+ //
550
+ //
551
+ //
552
+ //
553
+ //
554
+ //
555
+ //
556
+ //
557
+ //
558
+ //
559
+ //
560
+ //
561
+ //
562
+ //
563
+ //
564
+ //
565
+ //
566
+ //
567
+ //
568
+ //
569
+ //
570
+ //
571
+ //
572
+ //
573
+ //
574
+ //
575
+ //
576
+ //
577
+ //
578
+ //
579
+ //
580
+ //
581
+ //
582
+ //
583
+ //
584
+ //
585
+ //
586
+ //
587
+ //
588
+ var script$2 = {
589
+ name: 'BDatepickerMonth',
590
+ props: {
591
+ value: Date,
592
+ monthNames: Array,
593
+ events: Array,
594
+ indicators: String,
595
+ minDate: Date,
596
+ maxDate: Date,
597
+ focused: Object,
598
+ disabled: Boolean,
599
+ dateCreator: Function,
600
+ unselectableDates: Array,
601
+ unselectableDaysOfWeek: Array,
602
+ selectableDates: Array
603
+ },
604
+ computed: {
605
+ hasEvents: function hasEvents() {
606
+ return this.events && this.events.length;
607
+ },
608
+
609
+ /*
610
+ * Return array of all events in the specified month
611
+ */
612
+ eventsInThisYear: function eventsInThisYear() {
613
+ if (!this.events) return [];
614
+ var yearEvents = [];
615
+
616
+ for (var i = 0; i < this.events.length; i++) {
617
+ var event = this.events[i];
618
+
619
+ if (!event.hasOwnProperty('date')) {
620
+ event = {
621
+ date: event
622
+ };
623
+ }
624
+
625
+ if (!event.hasOwnProperty('type')) {
626
+ event.type = 'is-primary';
627
+ }
628
+
629
+ if (event.date.getFullYear() === this.focused.year) {
630
+ yearEvents.push(event);
631
+ }
632
+ }
633
+
634
+ return yearEvents;
635
+ },
636
+ monthDates: function monthDates() {
637
+ var year = this.focused.year;
638
+ var months = [];
639
+
640
+ for (var i = 0; i < 12; i++) {
641
+ var d = new Date(year, i, 1);
642
+ d.setHours(0, 0, 0, 0);
643
+ months.push(d);
644
+ }
645
+
646
+ return months;
647
+ }
648
+ },
649
+ methods: {
650
+ selectableDate: function selectableDate(day) {
651
+ var validity = [];
652
+
653
+ if (this.minDate) {
654
+ validity.push(day >= this.minDate);
655
+ }
656
+
657
+ if (this.maxDate) {
658
+ validity.push(day <= this.maxDate);
659
+ }
660
+
661
+ validity.push(day.getFullYear() === this.focused.year);
662
+
663
+ if (this.selectableDates) {
664
+ for (var i = 0; i < this.selectableDates.length; i++) {
665
+ var enabledDate = this.selectableDates[i];
666
+
667
+ if (day.getFullYear() === enabledDate.getFullYear() && day.getMonth() === enabledDate.getMonth()) {
668
+ return true;
669
+ } else {
670
+ validity.push(false);
671
+ }
672
+ }
673
+ }
674
+
675
+ if (this.unselectableDates) {
676
+ for (var _i = 0; _i < this.unselectableDates.length; _i++) {
677
+ var disabledDate = this.unselectableDates[_i];
678
+ validity.push(day.getFullYear() !== disabledDate.getFullYear() || day.getMonth() !== disabledDate.getMonth());
679
+ }
680
+ }
681
+
682
+ if (this.unselectableDaysOfWeek) {
683
+ for (var _i2 = 0; _i2 < this.unselectableDaysOfWeek.length; _i2++) {
684
+ var dayOfWeek = this.unselectableDaysOfWeek[_i2];
685
+ validity.push(day.getDay() !== dayOfWeek);
686
+ }
687
+ }
688
+
689
+ return validity.indexOf(false) < 0;
690
+ },
691
+ eventsDateMatch: function eventsDateMatch(day) {
692
+ if (!this.eventsInThisYear.length) return false;
693
+ var monthEvents = [];
694
+
695
+ for (var i = 0; i < this.eventsInThisYear.length; i++) {
696
+ if (this.eventsInThisYear[i].date.getMonth() === day.getMonth()) {
697
+ monthEvents.push(this.events[i]);
698
+ }
699
+ }
700
+
701
+ if (!monthEvents.length) {
702
+ return false;
703
+ }
704
+
705
+ return monthEvents;
706
+ },
707
+
708
+ /*
709
+ * Build classObject for cell using validations
710
+ */
711
+ classObject: function classObject(day) {
712
+ function dateMatch(dateOne, dateTwo) {
713
+ // if either date is null or undefined, return false
714
+ if (!dateOne || !dateTwo) {
715
+ return false;
716
+ }
717
+
718
+ return dateOne.getFullYear() === dateTwo.getFullYear() && dateOne.getMonth() === dateTwo.getMonth();
719
+ }
720
+
721
+ return {
722
+ 'is-selected': dateMatch(day, this.value),
723
+ 'is-today': dateMatch(day, this.dateCreator()),
724
+ 'is-selectable': this.selectableDate(day) && !this.disabled,
725
+ 'is-unselectable': !this.selectableDate(day) || this.disabled
726
+ };
727
+ },
728
+
729
+ /*
730
+ * Emit select event with chosen date as payload
731
+ */
732
+ emitChosenDate: function emitChosenDate(day) {
733
+ if (this.disabled) return;
734
+
735
+ if (this.selectableDate(day)) {
736
+ this.$emit('input', day);
737
+ }
738
+ }
739
+ }
740
+ };
741
+
742
+ /* script */
743
+ const __vue_script__$2 = script$2;
744
+
745
+ /* template */
746
+ var __vue_render__$2 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:"datepicker-table"},[_c('div',{staticClass:"datepicker-body",class:{'has-events':_vm.hasEvents}},[_c('div',{staticClass:"datepicker-months"},[_vm._l((_vm.monthDates),function(date,index){return [(_vm.selectableDate(date) && !_vm.disabled)?_c('a',{key:index,staticClass:"datepicker-cell",class:[
747
+ _vm.classObject(date),
748
+ {'has-event': _vm.eventsDateMatch(date)},
749
+ _vm.indicators
750
+ ],attrs:{"role":"button","href":"#","disabled":_vm.disabled},on:{"click":function($event){$event.preventDefault();_vm.emitChosenDate(date);},"keydown":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"enter",13,$event.key)){ return null; }$event.preventDefault();_vm.emitChosenDate(date);},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"space",32,$event.key)){ return null; }$event.preventDefault();_vm.emitChosenDate(date);}]}},[_vm._v("\n "+_vm._s(_vm.monthNames[date.getMonth()])+"\n "),(_vm.eventsDateMatch(date))?_c('div',{staticClass:"events"},_vm._l((_vm.eventsDateMatch(date)),function(event,index){return _c('div',{key:index,staticClass:"event",class:event.type})})):_vm._e()]):_c('div',{key:index,staticClass:"datepicker-cell",class:_vm.classObject(date)},[_vm._v("\n "+_vm._s(_vm.monthNames[date.getMonth()])+"\n ")])]})],2)])])};
751
+ var __vue_staticRenderFns__$2 = [];
752
+
753
+ /* style */
754
+ const __vue_inject_styles__$2 = undefined;
755
+ /* scoped */
756
+ const __vue_scope_id__$2 = undefined;
757
+ /* module identifier */
758
+ const __vue_module_identifier__$2 = undefined;
759
+ /* functional template */
760
+ const __vue_is_functional_template__$2 = false;
761
+ /* style inject */
762
+
763
+ /* style inject SSR */
764
+
765
+
766
+
767
+ var DatepickerMonth = __vue_normalize__(
768
+ { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
769
+ __vue_inject_styles__$2,
770
+ __vue_script__$2,
771
+ __vue_scope_id__$2,
772
+ __vue_is_functional_template__$2,
773
+ __vue_module_identifier__$2,
774
+ undefined,
775
+ undefined
776
+ );
777
+
778
+ var _components;
779
+
780
+ var defaultDateFormatter = function defaultDateFormatter(date, vm) {
781
+ var targetDates = Array.isArray(date) ? date : [date];
782
+ return targetDates.map(function (date) {
783
+ var yyyyMMdd = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate();
784
+ var d = new Date(yyyyMMdd);
785
+ return !vm.isTypeMonth ? d.toLocaleDateString() : d.toLocaleDateString(undefined, {
786
+ year: 'numeric',
787
+ month: '2-digit'
788
+ });
789
+ }).join(' - ');
790
+ };
791
+
792
+ var defaultDateParser = function defaultDateParser(date, vm) {
793
+ if (!vm.isTypeMonth) return new Date(Date.parse(date));
794
+
795
+ if (date) {
796
+ var s = date.split('/');
797
+ var year = s[0].length === 4 ? s[0] : s[1];
798
+ var month = s[0].length === 2 ? s[0] : s[1];
799
+
800
+ if (year && month) {
801
+ return new Date(parseInt(year, 10), parseInt(month - 1, 10), 1, 0, 0, 0, 0);
802
+ }
803
+ }
804
+
805
+ return null;
806
+ };
807
+
808
+ var script$3 = {
809
+ name: 'BDatepicker',
810
+ components: (_components = {}, _defineProperty(_components, DatepickerTable.name, DatepickerTable), _defineProperty(_components, DatepickerMonth.name, DatepickerMonth), _defineProperty(_components, Input.name, Input), _defineProperty(_components, Field.name, Field), _defineProperty(_components, Select.name, Select), _defineProperty(_components, Icon.name, Icon), _defineProperty(_components, Dropdown.name, Dropdown), _defineProperty(_components, DropdownItem.name, DropdownItem), _components),
811
+ mixins: [FormElementMixin],
812
+ inheritAttrs: false,
813
+ props: {
814
+ value: {
815
+ type: [Date, Array]
816
+ },
817
+ dayNames: {
818
+ type: Array,
819
+ default: function _default() {
820
+ if (Array.isArray(config.defaultDayNames)) {
821
+ return config.defaultDayNames;
822
+ } else {
823
+ return ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'S'];
824
+ }
825
+ }
826
+ },
827
+ monthNames: {
828
+ type: Array,
829
+ default: function _default() {
830
+ if (Array.isArray(config.defaultMonthNames)) {
831
+ return config.defaultMonthNames;
832
+ } else {
833
+ return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
834
+ }
835
+ }
836
+ },
837
+ firstDayOfWeek: {
838
+ type: Number,
839
+ default: function _default() {
840
+ if (typeof config.defaultFirstDayOfWeek === 'number') {
841
+ return config.defaultFirstDayOfWeek;
842
+ } else {
843
+ return 0;
844
+ }
845
+ }
846
+ },
847
+ inline: Boolean,
848
+ minDate: Date,
849
+ maxDate: Date,
850
+ focusedDate: Date,
851
+ placeholder: String,
852
+ editable: Boolean,
853
+ disabled: Boolean,
854
+ unselectableDates: Array,
855
+ unselectableDaysOfWeek: {
856
+ type: Array,
857
+ default: function _default() {
858
+ return config.defaultUnselectableDaysOfWeek;
859
+ }
860
+ },
861
+ selectableDates: Array,
862
+ dateFormatter: {
863
+ type: Function,
864
+ default: function _default(date, vm) {
865
+ if (typeof config.defaultDateFormatter === 'function') {
866
+ return config.defaultDateFormatter(date);
867
+ } else {
868
+ return defaultDateFormatter(date, vm);
869
+ }
870
+ }
871
+ },
872
+ dateParser: {
873
+ type: Function,
874
+ default: function _default(date, vm) {
875
+ if (typeof config.defaultDateParser === 'function') {
876
+ return config.defaultDateParser(date);
877
+ } else {
878
+ return defaultDateParser(date, vm);
879
+ }
880
+ }
881
+ },
882
+ dateCreator: {
883
+ type: Function,
884
+ default: function _default() {
885
+ if (typeof config.defaultDateCreator === 'function') {
886
+ return config.defaultDateCreator();
887
+ } else {
888
+ return new Date();
889
+ }
890
+ }
891
+ },
892
+ mobileNative: {
893
+ type: Boolean,
894
+ default: function _default() {
895
+ return config.defaultDatepickerMobileNative;
896
+ }
897
+ },
898
+ position: String,
899
+ events: Array,
900
+ indicators: {
901
+ type: String,
902
+ default: 'dots'
903
+ },
904
+ openOnFocus: Boolean,
905
+ yearsRange: {
906
+ type: Array,
907
+ default: function _default() {
908
+ return config.defaultDatepickerYearsRange;
909
+ }
910
+ },
911
+ type: {
912
+ type: String,
913
+ validator: function validator(value) {
914
+ return ['month'].indexOf(value) >= 0;
915
+ }
916
+ },
917
+ nearbyMonthDays: {
918
+ type: Boolean,
919
+ default: function _default() {
920
+ return config.defaultDatepickerNearbyMonthDays;
921
+ }
922
+ },
923
+ nearbySelectableMonthDays: {
924
+ type: Boolean,
925
+ default: function _default() {
926
+ return config.defaultDatepickerNearbySelectableMonthDays;
927
+ }
928
+ },
929
+ showWeekNumber: {
930
+ type: Boolean,
931
+ default: function _default() {
932
+ return config.defaultDatepickerShowWeekNumber;
933
+ }
934
+ },
935
+ rulesForFirstWeek: {
936
+ type: Number,
937
+ default: function _default() {
938
+ return 4;
939
+ }
940
+ },
941
+ range: {
942
+ type: Boolean,
943
+ default: false
944
+ }
945
+ },
946
+ data: function data() {
947
+ var focusedDate = Array.isArray(this.value) ? this.value[0] : this.value || this.focusedDate || this.dateCreator();
948
+ return {
949
+ dateSelected: this.value,
950
+ focusedDateData: {
951
+ month: focusedDate.getMonth(),
952
+ year: focusedDate.getFullYear()
953
+ },
954
+ _elementRef: 'input',
955
+ _isDatepicker: true
956
+ };
957
+ },
958
+ computed: {
959
+ computedValue: {
960
+ get: function get() {
961
+ return this.dateSelected;
962
+ },
963
+ set: function set(value) {
964
+ this.updateInternalState(value);
965
+ this.togglePicker(false);
966
+ this.$emit('input', value);
967
+ }
968
+ },
969
+
970
+ /*
971
+ * Returns an array of years for the year dropdown. If earliest/latest
972
+ * dates are set by props, range of years will fall within those dates.
973
+ */
974
+ listOfYears: function listOfYears() {
975
+ var latestYear = this.focusedDateData.year + this.yearsRange[1];
976
+
977
+ if (this.maxDate && this.maxDate.getFullYear() < latestYear) {
978
+ latestYear = Math.max(this.maxDate.getFullYear(), this.focusedDateData.year);
979
+ }
980
+
981
+ var earliestYear = this.focusedDateData.year + this.yearsRange[0];
982
+
983
+ if (this.minDate && this.minDate.getFullYear() > earliestYear) {
984
+ earliestYear = Math.min(this.minDate.getFullYear(), this.focusedDateData.year);
985
+ }
986
+
987
+ var arrayOfYears = [];
988
+
989
+ for (var i = earliestYear; i <= latestYear; i++) {
990
+ arrayOfYears.push(i);
991
+ }
992
+
993
+ return arrayOfYears.reverse();
994
+ },
995
+ showPrev: function showPrev() {
996
+ if (!this.minDate) return false;
997
+
998
+ if (this.isTypeMonth) {
999
+ return this.focusedDateData.year <= this.minDate.getFullYear();
1000
+ }
1001
+
1002
+ var dateToCheck = new Date(this.focusedDateData.year, this.focusedDateData.month);
1003
+ var date = new Date(this.minDate.getFullYear(), this.minDate.getMonth());
1004
+ return dateToCheck <= date;
1005
+ },
1006
+ showNext: function showNext() {
1007
+ if (!this.maxDate) return false;
1008
+
1009
+ if (this.isTypeMonth) {
1010
+ return this.focusedDateData.year >= this.maxDate.getFullYear();
1011
+ }
1012
+
1013
+ var dateToCheck = new Date(this.focusedDateData.year, this.focusedDateData.month);
1014
+ var date = new Date(this.maxDate.getFullYear(), this.maxDate.getMonth());
1015
+ return dateToCheck >= date;
1016
+ },
1017
+ isMobile: function isMobile$1() {
1018
+ return this.mobileNative && isMobile.any();
1019
+ },
1020
+ isTypeMonth: function isTypeMonth() {
1021
+ return this.type === 'month';
1022
+ }
1023
+ },
1024
+ watch: {
1025
+ /**
1026
+ * When v-model is changed:
1027
+ * 1. Update internal value.
1028
+ * 2. If it's invalid, validate again.
1029
+ */
1030
+ value: function value(_value) {
1031
+ this.updateInternalState(_value);
1032
+ this.togglePicker(false);
1033
+ !this.isValid && this.$refs.input.checkHtml5Validity();
1034
+ },
1035
+ focusedDate: function focusedDate(value) {
1036
+ if (value) {
1037
+ this.focusedDateData = {
1038
+ month: value.getMonth(),
1039
+ year: value.getFullYear()
1040
+ };
1041
+ }
1042
+ },
1043
+
1044
+ /*
1045
+ * Emit input event on month and/or year change
1046
+ */
1047
+ 'focusedDateData.month': function focusedDateDataMonth(value) {
1048
+ this.$emit('change-month', value);
1049
+ },
1050
+ 'focusedDateData.year': function focusedDateDataYear(value) {
1051
+ this.$emit('change-year', value);
1052
+ }
1053
+ },
1054
+ methods: {
1055
+ /*
1056
+ * Parse string into date
1057
+ */
1058
+ onChange: function onChange(value) {
1059
+ var date = this.dateParser(value, this);
1060
+
1061
+ if (date && !isNaN(date)) {
1062
+ this.computedValue = date;
1063
+ } else {
1064
+ // Force refresh input value when not valid date
1065
+ this.computedValue = null;
1066
+ this.$refs.input.newValue = this.computedValue;
1067
+ }
1068
+ },
1069
+
1070
+ /*
1071
+ * Format date into string
1072
+ */
1073
+ formatValue: function formatValue(value) {
1074
+ if (Array.isArray(value)) {
1075
+ var isArrayWithValidDates = Array.isArray(value) && value.every(function (v) {
1076
+ return !isNaN(v);
1077
+ });
1078
+ return isArrayWithValidDates ? this.dateFormatter(value, this) : null;
1079
+ }
1080
+
1081
+ return value && !isNaN(value) ? this.dateFormatter(value, this) : null;
1082
+ },
1083
+
1084
+ /*
1085
+ * Either decrement month by 1 if not January or decrement year by 1
1086
+ * and set month to 11 (December) or decrement year when 'month'
1087
+ */
1088
+ prev: function prev() {
1089
+ if (this.disabled) return;
1090
+
1091
+ if (this.isTypeMonth) {
1092
+ this.focusedDateData.year -= 1;
1093
+ } else {
1094
+ if (this.focusedDateData.month > 0) {
1095
+ this.focusedDateData.month -= 1;
1096
+ } else {
1097
+ this.focusedDateData.month = 11;
1098
+ this.focusedDateData.year -= 1;
1099
+ }
1100
+ }
1101
+ },
1102
+
1103
+ /*
1104
+ * Either increment month by 1 if not December or increment year by 1
1105
+ * and set month to 0 (January) or increment year when 'month'
1106
+ */
1107
+ next: function next() {
1108
+ if (this.disabled) return;
1109
+
1110
+ if (this.isTypeMonth) {
1111
+ this.focusedDateData.year += 1;
1112
+ } else {
1113
+ if (this.focusedDateData.month < 11) {
1114
+ this.focusedDateData.month += 1;
1115
+ } else {
1116
+ this.focusedDateData.month = 0;
1117
+ this.focusedDateData.year += 1;
1118
+ }
1119
+ }
1120
+ },
1121
+ formatNative: function formatNative(value) {
1122
+ return this.isTypeMonth ? this.formatYYYYMM(value) : this.formatYYYYMMDD(value);
1123
+ },
1124
+
1125
+ /*
1126
+ * Format date into string 'YYYY-MM-DD'
1127
+ */
1128
+ formatYYYYMMDD: function formatYYYYMMDD(value) {
1129
+ var date = new Date(value);
1130
+
1131
+ if (value && !isNaN(date)) {
1132
+ var year = date.getFullYear();
1133
+ var month = date.getMonth() + 1;
1134
+ var day = date.getDate();
1135
+ return year + '-' + ((month < 10 ? '0' : '') + month) + '-' + ((day < 10 ? '0' : '') + day);
1136
+ }
1137
+
1138
+ return '';
1139
+ },
1140
+
1141
+ /*
1142
+ * Format date into string 'YYYY-MM'
1143
+ */
1144
+ formatYYYYMM: function formatYYYYMM(value) {
1145
+ var date = new Date(value);
1146
+
1147
+ if (value && !isNaN(date)) {
1148
+ var year = date.getFullYear();
1149
+ var month = date.getMonth() + 1;
1150
+ return year + '-' + ((month < 10 ? '0' : '') + month);
1151
+ }
1152
+
1153
+ return '';
1154
+ },
1155
+
1156
+ /*
1157
+ * Parse date from string
1158
+ */
1159
+ onChangeNativePicker: function onChangeNativePicker(event) {
1160
+ var date = event.target.value;
1161
+ this.computedValue = date ? new Date(date + ' 00:00:00') : null;
1162
+ },
1163
+ updateInternalState: function updateInternalState(value) {
1164
+ var currentDate = Array.isArray(value) ? value[0] : !value ? this.dateCreator() : value;
1165
+ this.focusedDateData = {
1166
+ month: currentDate.getMonth(),
1167
+ year: currentDate.getFullYear()
1168
+ };
1169
+ this.dateSelected = value;
1170
+ },
1171
+
1172
+ /*
1173
+ * Toggle datepicker
1174
+ */
1175
+ togglePicker: function togglePicker(active) {
1176
+ if (this.$refs.dropdown) {
1177
+ this.$refs.dropdown.isActive = typeof active === 'boolean' ? active : !this.$refs.dropdown.isActive;
1178
+ }
1179
+ },
1180
+
1181
+ /*
1182
+ * Call default onFocus method and show datepicker
1183
+ */
1184
+ handleOnFocus: function handleOnFocus(event) {
1185
+ this.onFocus(event);
1186
+
1187
+ if (this.openOnFocus) {
1188
+ this.togglePicker(true);
1189
+ }
1190
+ },
1191
+
1192
+ /*
1193
+ * Toggle dropdown
1194
+ */
1195
+ toggle: function toggle() {
1196
+ if (this.mobileNative && this.isMobile) {
1197
+ var input = this.$refs.input.$refs.input;
1198
+ input.focus();
1199
+ input.click();
1200
+ return;
1201
+ }
1202
+
1203
+ this.$refs.dropdown.toggle();
1204
+ },
1205
+
1206
+ /*
1207
+ * Avoid dropdown toggle when is already visible
1208
+ */
1209
+ onInputClick: function onInputClick(event) {
1210
+ if (this.$refs.dropdown.isActive) {
1211
+ event.stopPropagation();
1212
+ }
1213
+ },
1214
+
1215
+ /**
1216
+ * Keypress event that is bound to the document.
1217
+ */
1218
+ keyPress: function keyPress(event) {
1219
+ // Esc key
1220
+ if (this.$refs.dropdown && this.$refs.dropdown.isActive && event.keyCode === 27) {
1221
+ this.togglePicker(false);
1222
+ }
1223
+ }
1224
+ },
1225
+ created: function created() {
1226
+ if (typeof window !== 'undefined') {
1227
+ document.addEventListener('keyup', this.keyPress);
1228
+ }
1229
+ },
1230
+ beforeDestroy: function beforeDestroy() {
1231
+ if (typeof window !== 'undefined') {
1232
+ document.removeEventListener('keyup', this.keyPress);
1233
+ }
1234
+ }
1235
+ };
1236
+
1237
+ /* script */
1238
+ const __vue_script__$3 = script$3;
1239
+
1240
+ /* template */
1241
+ var __vue_render__$3 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"datepicker control",class:[_vm.size, {'is-expanded': _vm.expanded}]},[(!_vm.isMobile || _vm.inline)?_c('b-dropdown',{ref:"dropdown",attrs:{"position":_vm.position,"disabled":_vm.disabled,"inline":_vm.inline}},[(!_vm.inline)?_c('b-input',_vm._b({ref:"input",attrs:{"slot":"trigger","autocomplete":"off","value":_vm.formatValue(_vm.computedValue),"placeholder":_vm.placeholder,"size":_vm.size,"icon":_vm.icon,"icon-pack":_vm.iconPack,"rounded":_vm.rounded,"loading":_vm.loading,"disabled":_vm.disabled,"readonly":!_vm.editable,"use-html5-validation":_vm.useHtml5Validation},on:{"focus":_vm.handleOnFocus,"blur":_vm.onBlur},nativeOn:{"click":function($event){_vm.onInputClick($event);},"keyup":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"enter",13,$event.key)){ return null; }_vm.togglePicker(true);},"change":function($event){_vm.onChange($event.target.value);}},slot:"trigger"},'b-input',_vm.$attrs,false)):_vm._e(),_vm._v(" "),_c('b-dropdown-item',{attrs:{"disabled":_vm.disabled,"custom":""}},[_c('header',{staticClass:"datepicker-header"},[(_vm.$slots.header !== undefined && _vm.$slots.header.length)?[_vm._t("header")]:_c('div',{staticClass:"pagination field is-centered",class:_vm.size},[_c('a',{directives:[{name:"show",rawName:"v-show",value:(!_vm.showPrev && !_vm.disabled),expression:"!showPrev && !disabled"}],staticClass:"pagination-previous",attrs:{"role":"button","href":"#","disabled":_vm.disabled},on:{"click":function($event){$event.preventDefault();_vm.prev($event);},"keydown":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"enter",13,$event.key)){ return null; }$event.preventDefault();_vm.prev($event);},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"space",32,$event.key)){ return null; }$event.preventDefault();_vm.prev($event);}]}},[_c('b-icon',{attrs:{"icon":"chevron-left","pack":_vm.iconPack,"both":"","type":"is-primary is-clickable"}})],1),_vm._v(" "),_c('a',{directives:[{name:"show",rawName:"v-show",value:(!_vm.showNext && !_vm.disabled),expression:"!showNext && !disabled"}],staticClass:"pagination-next",attrs:{"role":"button","href":"#","disabled":_vm.disabled},on:{"click":function($event){$event.preventDefault();_vm.next($event);},"keydown":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"enter",13,$event.key)){ return null; }$event.preventDefault();_vm.next($event);},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"space",32,$event.key)){ return null; }$event.preventDefault();_vm.next($event);}]}},[_c('b-icon',{attrs:{"icon":"chevron-right","pack":_vm.iconPack,"both":"","type":"is-primary is-clickable"}})],1),_vm._v(" "),_c('div',{staticClass:"pagination-list"},[_c('b-field',[(!_vm.isTypeMonth)?_c('b-select',{attrs:{"disabled":_vm.disabled,"size":_vm.size},model:{value:(_vm.focusedDateData.month),callback:function ($$v) {_vm.$set(_vm.focusedDateData, "month", $$v);},expression:"focusedDateData.month"}},_vm._l((_vm.monthNames),function(month,index){return _c('option',{key:month,domProps:{"value":index}},[_vm._v("\n "+_vm._s(month)+"\n ")])})):_vm._e(),_vm._v(" "),_c('b-select',{attrs:{"disabled":_vm.disabled,"size":_vm.size},model:{value:(_vm.focusedDateData.year),callback:function ($$v) {_vm.$set(_vm.focusedDateData, "year", $$v);},expression:"focusedDateData.year"}},_vm._l((_vm.listOfYears),function(year){return _c('option',{key:year,domProps:{"value":year}},[_vm._v("\n "+_vm._s(year)+"\n ")])}))],1)],1)])],2),_vm._v(" "),(!_vm.isTypeMonth)?_c('div',{staticClass:"datepicker-content"},[_c('b-datepicker-table',{attrs:{"day-names":_vm.dayNames,"month-names":_vm.monthNames,"first-day-of-week":_vm.firstDayOfWeek,"rules-for-first-week":_vm.rulesForFirstWeek,"min-date":_vm.minDate,"max-date":_vm.maxDate,"focused":_vm.focusedDateData,"disabled":_vm.disabled,"unselectable-dates":_vm.unselectableDates,"unselectable-days-of-week":_vm.unselectableDaysOfWeek,"selectable-dates":_vm.selectableDates,"events":_vm.events,"indicators":_vm.indicators,"date-creator":_vm.dateCreator,"type-month":_vm.isTypeMonth,"nearby-month-days":_vm.nearbyMonthDays,"nearby-selectable-month-days":_vm.nearbySelectableMonthDays,"show-week-number":_vm.showWeekNumber,"range":_vm.range},on:{"close":function($event){_vm.togglePicker(false);}},model:{value:(_vm.computedValue),callback:function ($$v) {_vm.computedValue=$$v;},expression:"computedValue"}})],1):_c('div',[_c('b-datepicker-month',{attrs:{"month-names":_vm.monthNames,"min-date":_vm.minDate,"max-date":_vm.maxDate,"focused":_vm.focusedDateData,"disabled":_vm.disabled,"unselectable-dates":_vm.unselectableDates,"unselectable-days-of-week":_vm.unselectableDaysOfWeek,"selectable-dates":_vm.selectableDates,"events":_vm.events,"indicators":_vm.indicators,"date-creator":_vm.dateCreator},on:{"close":function($event){_vm.togglePicker(false);}},model:{value:(_vm.computedValue),callback:function ($$v) {_vm.computedValue=$$v;},expression:"computedValue"}})],1),_vm._v(" "),(_vm.$slots.default !== undefined && _vm.$slots.default.length)?_c('footer',{staticClass:"datepicker-footer"},[_vm._t("default")],2):_vm._e()])],1):_c('b-input',_vm._b({ref:"input",attrs:{"type":!_vm.isTypeMonth ? 'date' : 'month',"autocomplete":"off","value":_vm.formatNative(_vm.computedValue),"placeholder":_vm.placeholder,"size":_vm.size,"icon":_vm.icon,"icon-pack":_vm.iconPack,"loading":_vm.loading,"max":_vm.formatNative(_vm.maxDate),"min":_vm.formatNative(_vm.minDate),"disabled":_vm.disabled,"readonly":false,"show-week-number":_vm.showWeekNumber,"use-html5-validation":_vm.useHtml5Validation},on:{"focus":_vm.handleOnFocus,"blur":_vm.onBlur},nativeOn:{"change":function($event){_vm.onChangeNativePicker($event);}}},'b-input',_vm.$attrs,false))],1)};
1242
+ var __vue_staticRenderFns__$3 = [];
1243
+
1244
+ /* style */
1245
+ const __vue_inject_styles__$3 = undefined;
1246
+ /* scoped */
1247
+ const __vue_scope_id__$3 = undefined;
1248
+ /* module identifier */
1249
+ const __vue_module_identifier__$3 = undefined;
1250
+ /* functional template */
1251
+ const __vue_is_functional_template__$3 = false;
1252
+ /* style inject */
1253
+
1254
+ /* style inject SSR */
1255
+
1256
+
1257
+
1258
+ var Datepicker = __vue_normalize__(
1259
+ { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
1260
+ __vue_inject_styles__$3,
1261
+ __vue_script__$3,
1262
+ __vue_scope_id__$3,
1263
+ __vue_is_functional_template__$3,
1264
+ __vue_module_identifier__$3,
1265
+ undefined,
1266
+ undefined
1267
+ );
1268
+
1269
+ var Plugin = {
1270
+ install: function install(Vue) {
1271
+ registerComponent(Vue, Datepicker);
1272
+ }
1273
+ };
1274
+ use(Plugin);
1275
+
1276
+ export default Plugin;
1277
+ export { Datepicker };