buefy 0.8.1 → 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 (86) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/buefy.css +40 -1
  3. package/dist/buefy.js +131 -40
  4. package/dist/buefy.min.css +1 -1
  5. package/dist/buefy.min.js +2 -1
  6. package/dist/cjs/datepicker.js +126 -23
  7. package/dist/cjs/slider.js +3 -15
  8. package/dist/components/autocomplete/index.js +2 -2
  9. package/dist/components/autocomplete/index.min.js +2 -1
  10. package/dist/components/button/index.js +2 -2
  11. package/dist/components/button/index.min.js +2 -1
  12. package/dist/components/checkbox/index.js +2 -2
  13. package/dist/components/checkbox/index.min.js +2 -1
  14. package/dist/components/clockpicker/index.js +2 -2
  15. package/dist/components/clockpicker/index.min.js +2 -1
  16. package/dist/components/collapse/index.js +2 -2
  17. package/dist/components/collapse/index.min.js +2 -1
  18. package/dist/components/datepicker/index.js +128 -25
  19. package/dist/components/datepicker/index.min.js +2 -1
  20. package/dist/components/dialog/index.js +2 -2
  21. package/dist/components/dialog/index.min.js +2 -1
  22. package/dist/components/dropdown/index.js +2 -2
  23. package/dist/components/dropdown/index.min.js +2 -1
  24. package/dist/components/field/index.js +2 -2
  25. package/dist/components/field/index.min.js +2 -1
  26. package/dist/components/icon/index.js +2 -2
  27. package/dist/components/icon/index.min.js +2 -1
  28. package/dist/components/input/index.js +2 -2
  29. package/dist/components/input/index.min.js +2 -1
  30. package/dist/components/loading/index.js +2 -2
  31. package/dist/components/loading/index.min.js +2 -1
  32. package/dist/components/menu/index.js +2 -2
  33. package/dist/components/menu/index.min.js +2 -1
  34. package/dist/components/message/index.js +2 -2
  35. package/dist/components/message/index.min.js +2 -1
  36. package/dist/components/modal/index.js +2 -2
  37. package/dist/components/modal/index.min.js +2 -1
  38. package/dist/components/navbar/index.js +2 -2
  39. package/dist/components/navbar/index.min.js +2 -1
  40. package/dist/components/notification/index.js +2 -2
  41. package/dist/components/notification/index.min.js +2 -1
  42. package/dist/components/numberinput/index.js +2 -2
  43. package/dist/components/numberinput/index.min.js +2 -1
  44. package/dist/components/pagination/index.js +2 -2
  45. package/dist/components/pagination/index.min.js +2 -1
  46. package/dist/components/progress/index.js +2 -2
  47. package/dist/components/progress/index.min.js +2 -1
  48. package/dist/components/radio/index.js +2 -2
  49. package/dist/components/radio/index.min.js +2 -1
  50. package/dist/components/select/index.js +2 -2
  51. package/dist/components/select/index.min.js +2 -1
  52. package/dist/components/slider/index.js +5 -17
  53. package/dist/components/slider/index.min.js +2 -1
  54. package/dist/components/snackbar/index.js +2 -2
  55. package/dist/components/snackbar/index.min.js +2 -1
  56. package/dist/components/steps/index.js +2 -2
  57. package/dist/components/steps/index.min.js +2 -1
  58. package/dist/components/switch/index.js +2 -2
  59. package/dist/components/switch/index.min.js +2 -1
  60. package/dist/components/table/index.js +2 -2
  61. package/dist/components/table/index.min.js +2 -1
  62. package/dist/components/tabs/index.js +2 -2
  63. package/dist/components/tabs/index.min.js +2 -1
  64. package/dist/components/tag/index.js +2 -2
  65. package/dist/components/tag/index.min.js +2 -1
  66. package/dist/components/taginput/index.js +2 -2
  67. package/dist/components/taginput/index.min.js +2 -1
  68. package/dist/components/timepicker/index.js +2 -2
  69. package/dist/components/timepicker/index.min.js +2 -1
  70. package/dist/components/toast/index.js +2 -2
  71. package/dist/components/toast/index.min.js +2 -1
  72. package/dist/components/tooltip/index.js +2 -2
  73. package/dist/components/tooltip/index.min.js +2 -1
  74. package/dist/components/upload/index.js +2 -2
  75. package/dist/components/upload/index.min.js +2 -1
  76. package/dist/esm/datepicker.js +126 -23
  77. package/dist/esm/slider.js +3 -15
  78. package/package.json +5 -2
  79. package/src/components/datepicker/Datepicker.spec.js +60 -0
  80. package/src/components/datepicker/Datepicker.vue +29 -15
  81. package/src/components/datepicker/DatepickerTable.spec.js +89 -1
  82. package/src/components/datepicker/DatepickerTable.vue +60 -3
  83. package/src/components/datepicker/DatepickerTableRow.spec.js +127 -17
  84. package/src/components/datepicker/DatepickerTableRow.vue +46 -3
  85. package/src/components/slider/Slider.vue +3 -14
  86. package/src/scss/components/_datepicker.scss +37 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Buefy Changelog
2
2
 
3
+ ## 0.8.2
4
+
5
+ * Add range selection using ``range`` prop to datepicker (thanks @afifsohaili)
6
+
7
+ ### Fixes
8
+
9
+ * Fix #1624 autosizing slider into container (thanks @yxngl)
10
+ * Fix #1625 Buefy global name in UMD format
11
+ * Fix #1626 include CSS files as side effects (thanks @modularcoder)
12
+
3
13
  ## 0.8.1
4
14
 
5
15
  ### New features
package/dist/buefy.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Buefy v0.8.1 | MIT License | github.com/buefy/buefy */
1
+ /*! Buefy v0.8.2 | MIT License | github.com/buefy/buefy */
2
2
  .is-noscroll {
3
3
  position: fixed;
4
4
  overflow-y: hidden;
@@ -11762,11 +11762,50 @@ label.panel-block:hover {
11762
11762
  cursor: pointer;
11763
11763
  }
11764
11764
 
11765
+ .datepicker .datepicker-table .datepicker-body .datepicker-cell.is-selectable.is-within-hovered-range.is-first-hovered {
11766
+ background-color: #7a7a7a;
11767
+ color: #dbdbdb;
11768
+ border-bottom-right-radius: 0;
11769
+ border-top-right-radius: 0;
11770
+ }
11771
+
11772
+ .datepicker .datepicker-table .datepicker-body .datepicker-cell.is-selectable.is-within-hovered-range.is-within-hovered {
11773
+ background-color: whitesmoke;
11774
+ color: #0a0a0a;
11775
+ border-radius: 0;
11776
+ }
11777
+
11778
+ .datepicker .datepicker-table .datepicker-body .datepicker-cell.is-selectable.is-within-hovered-range.is-last-hovered {
11779
+ background-color: #7a7a7a;
11780
+ color: #dbdbdb;
11781
+ border-bottom-left-radius: 0;
11782
+ border-top-left-radius: 0;
11783
+ }
11784
+
11765
11785
  .datepicker .datepicker-table .datepicker-body .datepicker-cell.is-selected {
11766
11786
  background-color: #7957d5;
11767
11787
  color: white;
11768
11788
  }
11769
11789
 
11790
+ .datepicker .datepicker-table .datepicker-body .datepicker-cell.is-selected.is-first-selected {
11791
+ background-color: #7957d5;
11792
+ color: white;
11793
+ border-bottom-right-radius: 0;
11794
+ border-top-right-radius: 0;
11795
+ }
11796
+
11797
+ .datepicker .datepicker-table .datepicker-body .datepicker-cell.is-selected.is-within-selected {
11798
+ background-color: rgba(121, 87, 213, 0.5);
11799
+ border-radius: 0;
11800
+ }
11801
+
11802
+ .datepicker .datepicker-table .datepicker-body .datepicker-cell.is-selected.is-last-selected {
11803
+ background-color: #7957d5;
11804
+ color: white;
11805
+ border-bottom-left-radius: 0;
11806
+ border-top-left-radius: 0;
11807
+ }
11808
+
11770
11809
  .datepicker .datepicker-table .datepicker-body .datepicker-cell.is-nearby:not(.is-selected) {
11771
11810
  color: #b5b5b5;
11772
11811
  }
package/dist/buefy.js CHANGED
@@ -1,8 +1,8 @@
1
- /*! Buefy v0.8.1 | MIT License | github.com/buefy/buefy */
1
+ /*! Buefy v0.8.2 | MIT License | github.com/buefy/buefy */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) :
4
4
  typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) :
5
- (global = global || self, factory(global.buefy = {}, global.Vue));
5
+ (global = global || self, factory(global.Buefy = {}, global.Vue));
6
6
  }(this, function (exports, Vue) { 'use strict';
7
7
 
8
8
  Vue = Vue && Vue.hasOwnProperty('default') ? Vue['default'] : Vue;
@@ -3342,10 +3342,14 @@
3342
3342
  //
3343
3343
  //
3344
3344
  //
3345
+ //
3345
3346
  var script$e = {
3346
3347
  name: 'BDatepickerTableRow',
3347
3348
  props: {
3348
- selectedDate: Date,
3349
+ selectedDate: {
3350
+ type: [Date, Array]
3351
+ },
3352
+ hoveredDateRange: Array,
3349
3353
  week: {
3350
3354
  type: Array,
3351
3355
  required: true
@@ -3512,17 +3516,45 @@
3512
3516
  return false;
3513
3517
  }
3514
3518
 
3519
+ if (Array.isArray(dateTwo)) {
3520
+ return dateTwo.some(function (date) {
3521
+ return dateOne.getDate() === date.getDate() && dateOne.getFullYear() === date.getFullYear() && dateOne.getMonth() === date.getMonth();
3522
+ });
3523
+ }
3524
+
3515
3525
  return dateOne.getDate() === dateTwo.getDate() && dateOne.getFullYear() === dateTwo.getFullYear() && dateOne.getMonth() === dateTwo.getMonth();
3516
3526
  }
3517
3527
 
3528
+ function dateWithin(dateOne, dates) {
3529
+ if (!Array.isArray(dates)) {
3530
+ return false;
3531
+ }
3532
+
3533
+ return dateOne > dates[0] && dateOne < dates[1];
3534
+ }
3535
+
3518
3536
  return {
3519
- 'is-selected': dateMatch(day, this.selectedDate),
3537
+ 'is-selected': dateMatch(day, this.selectedDate) || dateWithin(day, this.selectedDate),
3538
+ 'is-first-selected': dateMatch(day, Array.isArray(this.selectedDate) && this.selectedDate[0]),
3539
+ 'is-within-selected': dateWithin(day, this.selectedDate),
3540
+ 'is-last-selected': dateMatch(day, Array.isArray(this.selectedDate) && this.selectedDate[1]),
3541
+ 'is-within-hovered-range': this.hoveredDateRange && this.hoveredDateRange.length === 2 && (dateMatch(day, this.hoveredDateRange) || dateWithin(day, this.hoveredDateRange)),
3542
+ 'is-first-hovered': dateMatch(day, Array.isArray(this.hoveredDateRange) && this.hoveredDateRange[0]),
3543
+ 'is-within-hovered': dateWithin(day, this.hoveredDateRange),
3544
+ 'is-last-hovered': dateMatch(day, Array.isArray(this.hoveredDateRange) && this.hoveredDateRange[1]),
3520
3545
  'is-today': dateMatch(day, this.dateCreator()),
3521
3546
  'is-selectable': this.selectableDate(day) && !this.disabled,
3522
3547
  'is-unselectable': !this.selectableDate(day) || this.disabled,
3523
3548
  'is-invisible': !this.nearbyMonthDays && day.getMonth() !== this.month,
3524
3549
  'is-nearby': this.nearbySelectableMonthDays && day.getMonth() !== this.month
3525
3550
  };
3551
+ },
3552
+ setRangeHoverEndDate: function setRangeHoverEndDate(day) {
3553
+ var isRangeInput = Array.isArray(this.selectedDate);
3554
+
3555
+ if (isRangeInput) {
3556
+ this.$emit('rangeHoverEndDate', day);
3557
+ }
3526
3558
  }
3527
3559
  }
3528
3560
  };
@@ -3531,7 +3563,7 @@
3531
3563
  const __vue_script__$e = script$e;
3532
3564
 
3533
3565
  /* template */
3534
- var __vue_render__$d = 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);}]}},[_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)};
3566
+ var __vue_render__$d = 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)};
3535
3567
  var __vue_staticRenderFns__$d = [];
3536
3568
 
3537
3569
  /* style */
@@ -3559,11 +3591,17 @@
3559
3591
  undefined
3560
3592
  );
3561
3593
 
3594
+ var isDefined = function isDefined(d) {
3595
+ return d !== undefined;
3596
+ };
3597
+
3562
3598
  var script$f = {
3563
3599
  name: 'BDatepickerTable',
3564
3600
  components: _defineProperty({}, DatepickerTableRow.name, DatepickerTableRow),
3565
3601
  props: {
3566
- value: Date,
3602
+ value: {
3603
+ type: [Date, Array]
3604
+ },
3567
3605
  dayNames: Array,
3568
3606
  monthNames: Array,
3569
3607
  firstDayOfWeek: Number,
@@ -3590,7 +3628,15 @@
3590
3628
  default: function _default() {
3591
3629
  return 4;
3592
3630
  }
3593
- }
3631
+ },
3632
+ range: Boolean
3633
+ },
3634
+ data: function data() {
3635
+ return {
3636
+ selectedBeginDate: undefined,
3637
+ selectedEndDate: undefined,
3638
+ hoveredEndDate: undefined
3639
+ };
3594
3640
  },
3595
3641
  computed: {
3596
3642
  visibleDayNames: function visibleDayNames() {
@@ -3665,6 +3711,21 @@
3665
3711
  }
3666
3712
 
3667
3713
  return weeksInThisMonth;
3714
+ },
3715
+ hoveredDateRange: function hoveredDateRange() {
3716
+ if (!this.range) {
3717
+ return [];
3718
+ }
3719
+
3720
+ if (!isNaN(this.selectedEndDate)) {
3721
+ return [];
3722
+ }
3723
+
3724
+ if (this.hoveredEndDate < this.selectedBeginDate) {
3725
+ return [this.hoveredEndDate, this.selectedBeginDate].filter(isDefined);
3726
+ }
3727
+
3728
+ return [this.selectedBeginDate, this.hoveredEndDate].filter(isDefined);
3668
3729
  }
3669
3730
  },
3670
3731
  methods: {
@@ -3672,7 +3733,34 @@
3672
3733
  * Emit input event with selected date as payload for v-model in parent
3673
3734
  */
3674
3735
  updateSelectedDate: function updateSelectedDate(date) {
3675
- this.$emit('input', date);
3736
+ if (!this.range) {
3737
+ this.$emit('input', date);
3738
+ } else {
3739
+ this.handleSelectRangeDate(date);
3740
+ }
3741
+ },
3742
+
3743
+ /*
3744
+ * If both begin and end dates are set, reset the end date and set the begin date.
3745
+ * If only begin date is selected, emit an array of the begin date and the new date.
3746
+ * If not set, only set the begin date.
3747
+ */
3748
+ handleSelectRangeDate: function handleSelectRangeDate(date) {
3749
+ if (this.selectedBeginDate && this.selectedEndDate) {
3750
+ this.selectedBeginDate = date;
3751
+ this.selectedEndDate = undefined;
3752
+ } else if (this.selectedBeginDate && !this.selectedEndDate) {
3753
+ if (this.selectedBeginDate > date) {
3754
+ this.selectedEndDate = this.selectedBeginDate;
3755
+ this.selectedBeginDate = date;
3756
+ } else {
3757
+ this.selectedEndDate = date;
3758
+ }
3759
+
3760
+ this.$emit('input', [this.selectedBeginDate, this.selectedEndDate]);
3761
+ } else {
3762
+ this.selectedBeginDate = date;
3763
+ }
3676
3764
  },
3677
3765
 
3678
3766
  /*
@@ -3712,6 +3800,9 @@
3712
3800
  return weekDate.getTime() === timed;
3713
3801
  });
3714
3802
  });
3803
+ },
3804
+ setRangeHoverEndDate: function setRangeHoverEndDate(day) {
3805
+ this.hoveredEndDate = day;
3715
3806
  }
3716
3807
  }
3717
3808
  };
@@ -3720,7 +3811,7 @@
3720
3811
  const __vue_script__$f = script$f;
3721
3812
 
3722
3813
  /* template */
3723
- var __vue_render__$e = 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},on:{"select":_vm.updateSelectedDate}})}))])};
3814
+ var __vue_render__$e = 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}})}))])};
3724
3815
  var __vue_staticRenderFns__$e = [];
3725
3816
 
3726
3817
  /* style */
@@ -3983,12 +4074,15 @@
3983
4074
  var _components$1;
3984
4075
 
3985
4076
  var defaultDateFormatter = function defaultDateFormatter(date, vm) {
3986
- var yyyyMMdd = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate();
3987
- var d = new Date(yyyyMMdd);
3988
- return !vm.isTypeMonth ? d.toLocaleDateString() : d.toLocaleDateString(undefined, {
3989
- year: 'numeric',
3990
- month: '2-digit'
3991
- });
4077
+ var targetDates = Array.isArray(date) ? date : [date];
4078
+ return targetDates.map(function (date) {
4079
+ var yyyyMMdd = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate();
4080
+ var d = new Date(yyyyMMdd);
4081
+ return !vm.isTypeMonth ? d.toLocaleDateString() : d.toLocaleDateString(undefined, {
4082
+ year: 'numeric',
4083
+ month: '2-digit'
4084
+ });
4085
+ }).join(' - ');
3992
4086
  };
3993
4087
 
3994
4088
  var defaultDateParser = function defaultDateParser(date, vm) {
@@ -4013,7 +4107,9 @@
4013
4107
  mixins: [FormElementMixin],
4014
4108
  inheritAttrs: false,
4015
4109
  props: {
4016
- value: Date,
4110
+ value: {
4111
+ type: [Date, Array]
4112
+ },
4017
4113
  dayNames: {
4018
4114
  type: Array,
4019
4115
  default: function _default() {
@@ -4137,10 +4233,14 @@
4137
4233
  default: function _default() {
4138
4234
  return 4;
4139
4235
  }
4236
+ },
4237
+ range: {
4238
+ type: Boolean,
4239
+ default: false
4140
4240
  }
4141
4241
  },
4142
4242
  data: function data() {
4143
- var focusedDate = this.value || this.focusedDate || this.dateCreator();
4243
+ var focusedDate = Array.isArray(this.value) ? this.value[0] : this.value || this.focusedDate || this.dateCreator();
4144
4244
  return {
4145
4245
  dateSelected: this.value,
4146
4246
  focusedDateData: {
@@ -4267,11 +4367,14 @@
4267
4367
  * Format date into string
4268
4368
  */
4269
4369
  formatValue: function formatValue(value) {
4270
- if (value && !isNaN(value)) {
4271
- return this.dateFormatter(value, this);
4272
- } else {
4273
- return null;
4370
+ if (Array.isArray(value)) {
4371
+ var isArrayWithValidDates = Array.isArray(value) && value.every(function (v) {
4372
+ return !isNaN(v);
4373
+ });
4374
+ return isArrayWithValidDates ? this.dateFormatter(value, this) : null;
4274
4375
  }
4376
+
4377
+ return value && !isNaN(value) ? this.dateFormatter(value, this) : null;
4275
4378
  },
4276
4379
 
4277
4380
  /*
@@ -4354,7 +4457,7 @@
4354
4457
  this.computedValue = date ? new Date(date + ' 00:00:00') : null;
4355
4458
  },
4356
4459
  updateInternalState: function updateInternalState(value) {
4357
- var currentDate = !value ? this.dateCreator() : value;
4460
+ var currentDate = Array.isArray(value) ? value[0] : !value ? this.dateCreator() : value;
4358
4461
  this.focusedDateData = {
4359
4462
  month: currentDate.getMonth(),
4360
4463
  year: currentDate.getFullYear()
@@ -4406,8 +4509,8 @@
4406
4509
  },
4407
4510
 
4408
4511
  /**
4409
- * Keypress event that is bound to the document.
4410
- */
4512
+ * Keypress event that is bound to the document.
4513
+ */
4411
4514
  keyPress: function keyPress(event) {
4412
4515
  // Esc key
4413
4516
  if (this.$refs.dropdown && this.$refs.dropdown.isActive && event.keyCode === 27) {
@@ -4431,7 +4534,7 @@
4431
4534
  const __vue_script__$h = script$h;
4432
4535
 
4433
4536
  /* template */
4434
- var __vue_render__$g = 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},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)};
4537
+ var __vue_render__$g = 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)};
4435
4538
  var __vue_staticRenderFns__$g = [];
4436
4539
 
4437
4540
  /* style */
@@ -7219,6 +7322,9 @@
7219
7322
  left: this.barStart
7220
7323
  };
7221
7324
  },
7325
+ sliderSize: function sliderSize() {
7326
+ return this.$refs.slider['clientWidth'];
7327
+ },
7222
7328
  rootClasses: function rootClasses() {
7223
7329
  return {
7224
7330
  'is-rounded': this.rounded,
@@ -7298,9 +7404,6 @@
7298
7404
 
7299
7405
  this.emitChange();
7300
7406
  },
7301
- setSize: function setSize() {
7302
- this.sliderSize = this.$refs.slider['clientWidth'];
7303
- },
7304
7407
  emitChange: function emitChange() {
7305
7408
  this.$emit('change', this.isRange ? [this.minValue, this.maxValue] : this.value1);
7306
7409
  }
@@ -7308,18 +7411,6 @@
7308
7411
  created: function created() {
7309
7412
  this.setValues(this.value);
7310
7413
  this.isThumbReversed = false;
7311
- },
7312
- mounted: function mounted() {
7313
- this.setSize();
7314
-
7315
- if (typeof window !== 'undefined') {
7316
- window.addEventListener('resize', this.setSize);
7317
- }
7318
- },
7319
- beforeDestroy: function beforeDestroy() {
7320
- if (typeof window !== 'undefined') {
7321
- window.removeEventListener('resize', this.setSize);
7322
- }
7323
7414
  }
7324
7415
  };
7325
7416