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,152 @@
1
+ /*! Buefy v0.7.10 | MIT License | github.com/buefy/buefy */
2
+ import { c as config } from './chunk-2cb6f867.js';
3
+
4
+ var FormElementMixin = {
5
+ props: {
6
+ size: String,
7
+ expanded: Boolean,
8
+ loading: Boolean,
9
+ rounded: Boolean,
10
+ icon: String,
11
+ iconPack: String,
12
+ // Native options to use in HTML5 validation
13
+ autocomplete: String,
14
+ maxlength: [Number, String],
15
+ useHtml5Validation: {
16
+ type: Boolean,
17
+ default: function _default() {
18
+ return config.defaultUseHtml5Validation;
19
+ }
20
+ },
21
+ validationMessage: String
22
+ },
23
+ data: function data() {
24
+ return {
25
+ isValid: true,
26
+ isFocused: false,
27
+ newIconPack: this.iconPack || config.defaultIconPack
28
+ };
29
+ },
30
+ computed: {
31
+ /**
32
+ * Find parent Field, max 3 levels deep.
33
+ */
34
+ parentField: function parentField() {
35
+ var parent = this.$parent;
36
+
37
+ for (var i = 0; i < 3; i++) {
38
+ if (parent && !parent.$data._isField) {
39
+ parent = parent.$parent;
40
+ }
41
+ }
42
+
43
+ return parent;
44
+ },
45
+
46
+ /**
47
+ * Get the type prop from parent if it's a Field.
48
+ */
49
+ statusType: function statusType() {
50
+ if (!this.parentField) return;
51
+ if (!this.parentField.newType) return;
52
+
53
+ if (typeof this.parentField.newType === 'string') {
54
+ return this.parentField.newType;
55
+ } else {
56
+ for (var key in this.parentField.newType) {
57
+ if (this.parentField.newType[key]) {
58
+ return key;
59
+ }
60
+ }
61
+ }
62
+ },
63
+
64
+ /**
65
+ * Get the message prop from parent if it's a Field.
66
+ */
67
+ statusMessage: function statusMessage() {
68
+ if (!this.parentField) return;
69
+ return this.parentField.newMessage;
70
+ },
71
+
72
+ /**
73
+ * Fix icon size for inputs, large was too big
74
+ */
75
+ iconSize: function iconSize() {
76
+ switch (this.size) {
77
+ case 'is-small':
78
+ return this.size;
79
+
80
+ case 'is-medium':
81
+ return;
82
+
83
+ case 'is-large':
84
+ return this.newIconPack === 'mdi' ? 'is-medium' : '';
85
+ }
86
+ }
87
+ },
88
+ methods: {
89
+ /**
90
+ * Focus method that work dynamically depending on the component.
91
+ */
92
+ focus: function focus() {
93
+ var _this = this;
94
+
95
+ if (this.$data._elementRef === undefined) return;
96
+ this.$nextTick(function () {
97
+ var el = _this.$el.querySelector(_this.$data._elementRef);
98
+
99
+ if (el) el.focus();
100
+ });
101
+ },
102
+ onBlur: function onBlur($event) {
103
+ this.isFocused = false;
104
+ this.$emit('blur', $event);
105
+ this.checkHtml5Validity();
106
+ },
107
+ onFocus: function onFocus($event) {
108
+ this.isFocused = true;
109
+ this.$emit('focus', $event);
110
+ },
111
+
112
+ /**
113
+ * Check HTML5 validation, set isValid property.
114
+ * If validation fail, send 'is-danger' type,
115
+ * and error message to parent if it's a Field.
116
+ */
117
+ checkHtml5Validity: function checkHtml5Validity() {
118
+ var _this2 = this;
119
+
120
+ if (!this.useHtml5Validation) return;
121
+ if (this.$refs[this.$data._elementRef] === undefined) return;
122
+ var el = this.$el.querySelector(this.$data._elementRef);
123
+ var type = null;
124
+ var message = null;
125
+ var isValid = true;
126
+
127
+ if (!el.checkValidity()) {
128
+ type = 'is-danger';
129
+ message = this.validationMessage || el.validationMessage;
130
+ isValid = false;
131
+ }
132
+
133
+ this.isValid = isValid;
134
+ this.$nextTick(function () {
135
+ if (_this2.parentField) {
136
+ // Set type only if not defined
137
+ if (!_this2.parentField.type) {
138
+ _this2.parentField.newType = type;
139
+ } // Set message only if not defined
140
+
141
+
142
+ if (!_this2.parentField.message) {
143
+ _this2.parentField.newMessage = message;
144
+ }
145
+ }
146
+ });
147
+ return this.isValid;
148
+ }
149
+ }
150
+ };
151
+
152
+ export { FormElementMixin as F };
@@ -0,0 +1,545 @@
1
+ import { i as isMobile } from './chunk-e5fce48f.js';
2
+ import { c as config } from './chunk-9e3207cc.js';
3
+ import { F as FormElementMixin } from './chunk-10c85529.js';
4
+
5
+ var AM = 'AM';
6
+ var PM = 'PM';
7
+ var HOUR_FORMAT_24 = '24';
8
+ var HOUR_FORMAT_12 = '12';
9
+
10
+ var defaultTimeFormatter = function defaultTimeFormatter(date, vm) {
11
+ var hours = date.getHours();
12
+ var minutes = date.getMinutes();
13
+ var seconds = date.getSeconds();
14
+ var period = '';
15
+
16
+ if (vm.hourFormat === HOUR_FORMAT_12) {
17
+ period = ' ' + (hours < 12 ? AM : PM);
18
+
19
+ if (hours > 12) {
20
+ hours -= 12;
21
+ } else if (hours === 0) {
22
+ hours = 12;
23
+ }
24
+ }
25
+
26
+ return vm.pad(hours) + ':' + vm.pad(minutes) + (vm.enableSeconds ? ':' + vm.pad(seconds) : '') + period;
27
+ };
28
+
29
+ var defaultTimeParser = function defaultTimeParser(timeString, vm) {
30
+ if (timeString) {
31
+ var am = false;
32
+
33
+ if (vm.hourFormat === HOUR_FORMAT_12) {
34
+ var dateString12 = timeString.split(' ');
35
+ timeString = dateString12[0];
36
+ am = dateString12[1] === AM;
37
+ }
38
+
39
+ var time = timeString.split(':');
40
+ var hours = parseInt(time[0], 10);
41
+ var minutes = parseInt(time[1], 10);
42
+ var seconds = vm.enableSeconds ? parseInt(time[2], 10) : 0;
43
+
44
+ if (isNaN(hours) || hours < 0 || hours > 23 || vm.hourFormat === HOUR_FORMAT_12 && (hours < 1 || hours > 12) || isNaN(minutes) || minutes < 0 || minutes > 59) {
45
+ return null;
46
+ }
47
+
48
+ var d = null;
49
+
50
+ if (vm.computedValue && !isNaN(vm.computedValue)) {
51
+ d = new Date(vm.computedValue);
52
+ } else {
53
+ d = new Date();
54
+ d.setMilliseconds(0);
55
+ }
56
+
57
+ d.setSeconds(seconds);
58
+ d.setMinutes(minutes);
59
+
60
+ if (vm.hourFormat === HOUR_FORMAT_12) {
61
+ if (am && hours === 12) {
62
+ hours = 0;
63
+ } else if (!am && hours !== 12) {
64
+ hours += 12;
65
+ }
66
+ }
67
+
68
+ d.setHours(hours);
69
+ return new Date(d.getTime());
70
+ }
71
+
72
+ return null;
73
+ };
74
+
75
+ var TimepickerMixin = {
76
+ mixins: [FormElementMixin],
77
+ inheritAttrs: false,
78
+ props: {
79
+ value: Date,
80
+ inline: Boolean,
81
+ minTime: Date,
82
+ maxTime: Date,
83
+ placeholder: String,
84
+ editable: Boolean,
85
+ disabled: Boolean,
86
+ hourFormat: {
87
+ type: String,
88
+ default: HOUR_FORMAT_24,
89
+ validator: function validator(value) {
90
+ return value === HOUR_FORMAT_24 || value === HOUR_FORMAT_12;
91
+ }
92
+ },
93
+ incrementMinutes: {
94
+ type: Number,
95
+ default: 1
96
+ },
97
+ incrementSeconds: {
98
+ type: Number,
99
+ default: 1
100
+ },
101
+ timeFormatter: {
102
+ type: Function,
103
+ default: function _default(date, vm) {
104
+ if (typeof config.defaultTimeFormatter === 'function') {
105
+ return config.defaultTimeFormatter(date);
106
+ } else {
107
+ return defaultTimeFormatter(date, vm);
108
+ }
109
+ }
110
+ },
111
+ timeParser: {
112
+ type: Function,
113
+ default: function _default(date, vm) {
114
+ if (typeof config.defaultTimeParser === 'function') {
115
+ return config.defaultTimeParser(date);
116
+ } else {
117
+ return defaultTimeParser(date, vm);
118
+ }
119
+ }
120
+ },
121
+ mobileNative: {
122
+ type: Boolean,
123
+ default: function _default() {
124
+ return config.defaultTimepickerMobileNative;
125
+ }
126
+ },
127
+ position: String,
128
+ unselectableTimes: Array,
129
+ openOnFocus: Boolean,
130
+ enableSeconds: Boolean,
131
+ defaultMinutes: Number,
132
+ defaultSeconds: Number
133
+ },
134
+ data: function data() {
135
+ return {
136
+ dateSelected: this.value,
137
+ hoursSelected: null,
138
+ minutesSelected: null,
139
+ secondsSelected: null,
140
+ meridienSelected: null,
141
+ _elementRef: 'input',
142
+ AM: AM,
143
+ PM: PM,
144
+ HOUR_FORMAT_24: HOUR_FORMAT_24,
145
+ HOUR_FORMAT_12: HOUR_FORMAT_12
146
+ };
147
+ },
148
+ computed: {
149
+ computedValue: {
150
+ get: function get() {
151
+ return this.dateSelected;
152
+ },
153
+ set: function set(value) {
154
+ this.dateSelected = value;
155
+ this.$emit('input', value);
156
+ }
157
+ },
158
+ hours: function hours() {
159
+ var hours = [];
160
+ var numberOfHours = this.isHourFormat24 ? 24 : 12;
161
+
162
+ for (var i = 0; i < numberOfHours; i++) {
163
+ var value = i;
164
+ var label = value;
165
+
166
+ if (!this.isHourFormat24) {
167
+ value = i + 1;
168
+ label = value;
169
+
170
+ if (this.meridienSelected === this.AM) {
171
+ if (value === 12) {
172
+ value = 0;
173
+ }
174
+ } else if (this.meridienSelected === this.PM) {
175
+ if (value !== 12) {
176
+ value += 12;
177
+ }
178
+ }
179
+ }
180
+
181
+ hours.push({
182
+ label: this.formatNumber(label),
183
+ value: value
184
+ });
185
+ }
186
+
187
+ return hours;
188
+ },
189
+ minutes: function minutes() {
190
+ var minutes = [];
191
+
192
+ for (var i = 0; i < 60; i += this.incrementMinutes) {
193
+ minutes.push({
194
+ label: this.formatNumber(i, true),
195
+ value: i
196
+ });
197
+ }
198
+
199
+ return minutes;
200
+ },
201
+ seconds: function seconds() {
202
+ var seconds = [];
203
+
204
+ for (var i = 0; i < 60; i += this.incrementSeconds) {
205
+ seconds.push({
206
+ label: this.formatNumber(i, true),
207
+ value: i
208
+ });
209
+ }
210
+
211
+ return seconds;
212
+ },
213
+ meridiens: function meridiens() {
214
+ return [AM, PM];
215
+ },
216
+ isMobile: function isMobile$1() {
217
+ return this.mobileNative && isMobile.any();
218
+ },
219
+ isHourFormat24: function isHourFormat24() {
220
+ return this.hourFormat === HOUR_FORMAT_24;
221
+ }
222
+ },
223
+ watch: {
224
+ hourFormat: function hourFormat() {
225
+ if (this.hoursSelected !== null) {
226
+ this.meridienSelected = this.hoursSelected >= 12 ? PM : AM;
227
+ }
228
+ },
229
+
230
+ /**
231
+ * When v-model is changed:
232
+ * 1. Update internal value.
233
+ * 2. If it's invalid, validate again.
234
+ */
235
+ value: {
236
+ handler: function handler(value) {
237
+ this.updateInternalState(value);
238
+ !this.isValid && this.$refs.input.checkHtml5Validity();
239
+ },
240
+ immediate: true
241
+ }
242
+ },
243
+ methods: {
244
+ onMeridienChange: function onMeridienChange(value) {
245
+ if (this.hoursSelected !== null) {
246
+ if (value === PM) {
247
+ this.hoursSelected += 12;
248
+ } else if (value === AM) {
249
+ this.hoursSelected -= 12;
250
+ }
251
+ }
252
+
253
+ this.updateDateSelected(this.hoursSelected, this.minutesSelected, this.enableSeconds ? this.secondsSelected : 0, value);
254
+ },
255
+ onHoursChange: function onHoursChange(value) {
256
+ if (!this.minutesSelected && this.defaultMinutes) {
257
+ this.minutesSelected = this.defaultMinutes;
258
+ }
259
+
260
+ if (!this.secondsSelected && this.defaultSeconds) {
261
+ this.secondsSelected = this.defaultSeconds;
262
+ }
263
+
264
+ this.updateDateSelected(parseInt(value, 10), this.minutesSelected, this.enableSeconds ? this.secondsSelected : 0, this.meridienSelected);
265
+ },
266
+ onMinutesChange: function onMinutesChange(value) {
267
+ if (!this.secondsSelected && this.defaultSeconds) {
268
+ this.secondsSelected = this.defaultSeconds;
269
+ }
270
+
271
+ this.updateDateSelected(this.hoursSelected, parseInt(value, 10), this.enableSeconds ? this.secondsSelected : 0, this.meridienSelected);
272
+ },
273
+ onSecondsChange: function onSecondsChange(value) {
274
+ this.updateDateSelected(this.hoursSelected, this.minutesSelected, parseInt(value, 10), this.meridienSelected);
275
+ },
276
+ updateDateSelected: function updateDateSelected(hours, minutes, seconds, meridiens) {
277
+ if (hours != null && minutes != null && (!this.isHourFormat24 && meridiens !== null || this.isHourFormat24)) {
278
+ var time = null;
279
+
280
+ if (this.computedValue && !isNaN(this.computedValue)) {
281
+ time = new Date(this.computedValue);
282
+ } else {
283
+ time = new Date();
284
+ time.setMilliseconds(0);
285
+ }
286
+
287
+ time.setHours(hours);
288
+ time.setMinutes(minutes);
289
+ time.setSeconds(seconds);
290
+ this.computedValue = new Date(time.getTime());
291
+ }
292
+ },
293
+ updateInternalState: function updateInternalState(value) {
294
+ if (value) {
295
+ this.hoursSelected = value.getHours();
296
+ this.minutesSelected = value.getMinutes();
297
+ this.secondsSelected = value.getSeconds();
298
+ this.meridienSelected = value.getHours() >= 12 ? PM : AM;
299
+ } else {
300
+ this.hoursSelected = null;
301
+ this.minutesSelected = null;
302
+ this.secondsSelected = null;
303
+ this.meridienSelected = AM;
304
+ }
305
+
306
+ this.dateSelected = value;
307
+ },
308
+ isHourDisabled: function isHourDisabled(hour) {
309
+ var _this = this;
310
+
311
+ var disabled = false;
312
+
313
+ if (this.minTime) {
314
+ var minHours = this.minTime.getHours();
315
+ disabled = hour < minHours;
316
+ }
317
+
318
+ if (this.maxTime) {
319
+ if (!disabled) {
320
+ var maxHours = this.maxTime.getHours();
321
+ disabled = hour > maxHours;
322
+ }
323
+ }
324
+
325
+ if (this.unselectableTimes) {
326
+ if (!disabled) {
327
+ var unselectable = this.unselectableTimes.filter(function (time) {
328
+ if (_this.enableSeconds && _this.secondsSelected !== null) {
329
+ return time.getHours() === hour && time.getMinutes() === _this.minutesSelected && time.getSeconds() === _this.secondsSelected;
330
+ } else if (_this.minutesSelected !== null) {
331
+ return time.getHours() === hour && time.getMinutes() === _this.minutesSelected;
332
+ } else {
333
+ return time.getHours() === hour;
334
+ }
335
+ });
336
+ disabled = unselectable.length > 0;
337
+ }
338
+ }
339
+
340
+ return disabled;
341
+ },
342
+ isMinuteDisabled: function isMinuteDisabled(minute) {
343
+ var _this2 = this;
344
+
345
+ var disabled = false;
346
+
347
+ if (this.hoursSelected !== null) {
348
+ if (this.isHourDisabled(this.hoursSelected)) {
349
+ disabled = true;
350
+ } else {
351
+ if (this.minTime) {
352
+ var minHours = this.minTime.getHours();
353
+ var minMinutes = this.minTime.getMinutes();
354
+ disabled = this.hoursSelected === minHours && minute < minMinutes;
355
+ }
356
+
357
+ if (this.maxTime) {
358
+ if (!disabled) {
359
+ var maxHours = this.maxTime.getHours();
360
+ var maxMinutes = this.maxTime.getMinutes();
361
+ disabled = this.hoursSelected === maxHours && minute > maxMinutes;
362
+ }
363
+ }
364
+ }
365
+
366
+ if (this.unselectableTimes) {
367
+ if (!disabled) {
368
+ var unselectable = this.unselectableTimes.filter(function (time) {
369
+ if (_this2.enableSeconds && _this2.secondsSelected !== null) {
370
+ return time.getHours() === _this2.hoursSelected && time.getMinutes() === minute && time.getSeconds() === _this2.secondsSelected;
371
+ } else {
372
+ return time.getHours() === _this2.hoursSelected && time.getMinutes() === minute;
373
+ }
374
+ });
375
+ disabled = unselectable.length > 0;
376
+ }
377
+ }
378
+ }
379
+
380
+ return disabled;
381
+ },
382
+ isSecondDisabled: function isSecondDisabled(second) {
383
+ var _this3 = this;
384
+
385
+ var disabled = false;
386
+
387
+ if (this.minutesSelected !== null) {
388
+ if (this.isMinuteDisabled(this.minutesSelected)) {
389
+ disabled = true;
390
+ } else {
391
+ if (this.minTime) {
392
+ var minHours = this.minTime.getHours();
393
+ var minMinutes = this.minTime.getMinutes();
394
+ var minSeconds = this.minTime.getSeconds();
395
+ disabled = this.hoursSelected === minHours && this.minutesSelected === minMinutes && second < minSeconds;
396
+ }
397
+
398
+ if (this.maxTime) {
399
+ if (!disabled) {
400
+ var maxHours = this.maxTime.getHours();
401
+ var maxMinutes = this.maxTime.getMinutes();
402
+ var maxSeconds = this.maxTime.getSeconds();
403
+ disabled = this.hoursSelected === maxHours && this.minutesSelected === maxMinutes && second > maxSeconds;
404
+ }
405
+ }
406
+ }
407
+
408
+ if (this.unselectableTimes) {
409
+ if (!disabled) {
410
+ var unselectable = this.unselectableTimes.filter(function (time) {
411
+ return time.getHours() === _this3.hoursSelected && time.getMinutes() === _this3.minutesSelected && time.getSeconds() === second;
412
+ });
413
+ disabled = unselectable.length > 0;
414
+ }
415
+ }
416
+ }
417
+
418
+ return disabled;
419
+ },
420
+
421
+ /*
422
+ * Parse string into date
423
+ */
424
+ onChange: function onChange(value) {
425
+ var date = this.timeParser(value, this);
426
+ this.updateInternalState(date);
427
+
428
+ if (date && !isNaN(date)) {
429
+ this.computedValue = date;
430
+ } else {
431
+ // Force refresh input value when not valid date
432
+ this.computedValue = null;
433
+ this.$refs.input.newValue = this.computedValue;
434
+ }
435
+ },
436
+
437
+ /*
438
+ * Toggle timepicker
439
+ */
440
+ toggle: function toggle(active) {
441
+ if (this.$refs.dropdown) {
442
+ this.$refs.dropdown.isActive = typeof active === 'boolean' ? active : !this.$refs.dropdown.isActive;
443
+ }
444
+ },
445
+
446
+ /*
447
+ * Close timepicker
448
+ */
449
+ close: function close() {
450
+ this.toggle(false);
451
+ },
452
+
453
+ /*
454
+ * Call default onFocus method and show timepicker
455
+ */
456
+ handleOnFocus: function handleOnFocus() {
457
+ this.onFocus();
458
+
459
+ if (this.openOnFocus) {
460
+ this.toggle(true);
461
+ }
462
+ },
463
+
464
+ /*
465
+ * Format date into string 'HH-MM-SS'
466
+ */
467
+ formatHHMMSS: function formatHHMMSS(value) {
468
+ var date = new Date(value);
469
+
470
+ if (value && !isNaN(date)) {
471
+ var hours = date.getHours();
472
+ var minutes = date.getMinutes();
473
+ var seconds = date.getSeconds();
474
+ return this.formatNumber(hours, true) + ':' + this.formatNumber(minutes, true) + ':' + this.formatNumber(seconds, true);
475
+ }
476
+
477
+ return '';
478
+ },
479
+
480
+ /*
481
+ * Parse time from string
482
+ */
483
+ onChangeNativePicker: function onChangeNativePicker(event) {
484
+ var date = event.target.value;
485
+
486
+ if (date) {
487
+ var time = null;
488
+
489
+ if (this.computedValue && !isNaN(this.computedValue)) {
490
+ time = new Date(this.computedValue);
491
+ } else {
492
+ time = new Date();
493
+ time.setMilliseconds(0);
494
+ }
495
+
496
+ var t = date.split(':');
497
+ time.setHours(parseInt(t[0], 10));
498
+ time.setMinutes(parseInt(t[1], 10));
499
+ time.setSeconds(t[2] ? parseInt(t[2], 10) : 0);
500
+ this.computedValue = new Date(time.getTime());
501
+ } else {
502
+ this.computedValue = null;
503
+ }
504
+ },
505
+ formatNumber: function formatNumber(value, prependZero) {
506
+ return this.isHourFormat24 || prependZero ? this.pad(value) : value;
507
+ },
508
+ pad: function pad(value) {
509
+ return (value < 10 ? '0' : '') + value;
510
+ },
511
+
512
+ /*
513
+ * Format date into string
514
+ */
515
+ formatValue: function formatValue(date) {
516
+ if (date && !isNaN(date)) {
517
+ return this.timeFormatter(date, this);
518
+ } else {
519
+ return null;
520
+ }
521
+ },
522
+
523
+ /**
524
+ * Keypress event that is bound to the document.
525
+ */
526
+ keyPress: function keyPress(event) {
527
+ // Esc key
528
+ if (this.$refs.dropdown && this.$refs.dropdown.isActive && event.keyCode === 27) {
529
+ this.toggle(false);
530
+ }
531
+ }
532
+ },
533
+ created: function created() {
534
+ if (typeof window !== 'undefined') {
535
+ document.addEventListener('keyup', this.keyPress);
536
+ }
537
+ },
538
+ beforeDestroy: function beforeDestroy() {
539
+ if (typeof window !== 'undefined') {
540
+ document.removeEventListener('keyup', this.keyPress);
541
+ }
542
+ }
543
+ };
544
+
545
+ export { TimepickerMixin as T };
@@ -0,0 +1,7 @@
1
+ /*! Buefy v0.7.10 | MIT License | github.com/buefy/buefy */
2
+ // Polyfills for SSR
3
+ var isSSR = typeof window === 'undefined';
4
+ var HTMLElement = isSSR ? Object : window.HTMLElement;
5
+ var File = isSSR ? Object : window.File;
6
+
7
+ export { File as F, HTMLElement as H };