<template>
  <div class="cov-vue-date">
    <div class="datepickbox">
      <input
        v-model="date.time"
        type="text"
        title="input date"
        class="cov-datepicker"
        :readonly="readonly"
        :disabled="readonly"
        :placeholder="option.placeholder"
        :required="required"
        :style="option.inputStyle ? option.inputStyle : {}"
        @click="showCheck"
        @foucus="showCheck"
      />
      <span
        v-if="readonly != true && readonly != 'true'"
        class="glyphicon glyphicon-remove-circle btn-remove"
        @click="date.time = ''; $emit('change', '')"
      />
    </div>
    <div
      v-if="showInfo.check && readonly != true && readonly != 'true'"
      class="datepicker-overlay"
      :style="{'background' : option.overlayOpacity? 'rgba(0,0,0,'+option.overlayOpacity+')' : 'rgba(0,0,0,0.5)'}"
      @click="dismiss($event)"
    >
      <div
        class="cov-date-body"
        :style="{'background-color': option.color ? option.color.header : '#3f51b5'}"
      >
        <div class="cov-date-monthly">
          <div
            class="cov-date-previous"
            @click="nextMonth('pre')"
          >
            «
          </div>
          <div
            class="cov-date-caption"
            :style="{'color': option.color ? option.color.headerText : '#fff'}"
          >
            <span @click="showYear"><small>{{ checked.year }}</small></span>
            <br />
            <span @click="showMonth">{{ displayInfo.month }}</span>
          </div>
          <div
            class="cov-date-next"
            @click="nextMonth('next')"
          >
            »
          </div>
        </div>
        <div
          v-if="showInfo.day"
          class="cov-date-box"
        >
          <div class="cov-picker-box">
            <div class="week">
              <ul>
                <li v-for="weekie in library.week" :key="'weekie-' + weekie">{{ weekie }}</li>
              </ul>
            </div>
            <div
              v-for="day in dayList"
              :key="'day-' + day"
              class="day"
              track-by="$index"
              :class="{'checked':day.checked,'unavailable':day.unavailable,'passive-day': !(day.inMonth)}"
              :style="day.checked ? 
                (option.color && option.color.checkedDay ? { background: option.color.checkedDay } : { background: '#F50057' }) : {}"
              @click="checkDay(day)"
            >
              {{ day.value }}
            </div>
          </div>
        </div>
        <div
          v-if="showInfo.year"
          class="cov-date-box list-box"
        >
          <div
            id="yearList"
            class="cov-picker-box date-list"
          >
            <div
              v-for="yearItem in library.year"
              :key="'year-' + yearItem"
              class="date-item"
              track-by="$index"
              @click="setYear(yearItem)"
            >
              {{ yearItem }}
            </div>
          </div>
        </div>
        <div
          v-if="showInfo.month"
          class="cov-date-box list-box"
        >
          <div class="cov-picker-box date-list">
            <div
              v-for="monthItem in library.month"
              :key="'month-' + monthItem"
              class="date-item"
              track-by="$index"
              @click="setMonth(monthItem)"
            >
              {{ monthItem }}
            </div>
          </div>
        </div>
        <div
          v-if="showInfo.hour"
          class="cov-date-box list-box"
        >
          <div class="cov-picker-box date-list">
            <div class="watch-box">
              <div class="hour-box">
                <div class="mui-pciker-rule mui-pciker-rule-ft" />
                <ul>
                  <li
                    v-for="hitem in hours"
                    :key="'hour-' + hitem"
                    class="hour-item"
                    :class="{'active':hitem.checked}"
                    @click="setTime('hour', hitem, hours)"
                  >
                    {{ hitem.value }}
                  </li>
                </ul>
              </div>
              <div class="min-box">
                <div class="mui-pciker-rule mui-pciker-rule-ft" />
                <div
                  v-for="mitem in mins"
                  :key="'min-' + mitem"
                  class="min-item"
                  :class="{'active':mitem.checked}"
                  @click="setTime('min',mitem, mins)"
                >
                  {{ mitem.value }}
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="button-box">
          <span @click="showInfo.check=false">{{ option.buttons? option.buttons.cancel : 'Cancel' }}</span>
          <span @click="picked">{{ option.buttons? option.buttons.ok : 'Ok' }}</span>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
'use strict';

Object.defineProperty(exports, '__esModule', {
  value: true,
});

var _moment = require('moment');

var _moment2 = _interopRequireDefault(_moment);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = {
  name: 'vue-datepicker',
  props: {
    required: false,
    date: {
      type: Object,
      required: true,
    },
    readonly: {
      type: Boolean,
      default: false,
    },
    option: {
      type: Object,
      default: function _default() {
        return {
          type: 'day',
          SundayFirst: false,
          week: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
          month: ['January', 'February', 'March', 'April', 'May'
            , 'June', 'July', 'August', 'September', 'October'
            , 'November', 'December'],
          format: 'YYYY-MM-DD',
          color: {
            checked: '#F50057',
            header: '#3f51b5',
            headerText: '#fff',
          },
          inputStyle: {
            'display': 'inline-block',
            'padding': '6px',
            'line-height': '22px',
            'font-size': '16px',
            'border': '2px solid #fff',
            'box-shadow': '0 1px 3px 0 rgba(0, 0, 0, 0.2)',
            'border-radius': '2px',
            'color': '#5F5F5F',
          },
          placeholder: 'when?',
          buttons: {
            ok: 'OK',
            cancel: 'Cancel',
          },
          overlayOpacity: 0.5,
          dismissible: true,
        };
      },
    },
    limit: {
      type: Array,
      default: function _default() {
        return [];
      },
    },
  },
  data: function data() {
    function hours() {
      var list = [];
      var hour = 24;
      while (hour > 0) {
        hour--;
        list.push({
          checked: false,
          value: hour < 10 ? '0' + hour : hour,
        });
      }
      return list;
    }
    function mins() {
      var list = [];
      var min = 60;
      while (min > 0) {
        min--;
        list.push({
          checked: false,
          value: min < 10 ? '0' + min : min,
        });
      }
      return list;
    }
    return {
      hours: hours(),
      mins: mins(),
      showInfo: {
        hour: false,
        day: false,
        month: false,
        year: false,
        check: false,
      },
      displayInfo: {
        month: '',
      },
      library: {
        week: this.option.week,
        month: this.option.month,
        year: [],
      },
      checked: {
        oldtime: '',
        currentMoment: null,
        year: '',
        month: '',
        day: '',
        hour: '00',
        min: '00',
      },
      dayList: [],
      selectedDays: [],
    };
  },

  methods: {
    pad: function pad(n) {
      n = Math.floor(n);
      return n < 10 ? '0' + n : n;
    },
    nextMonth: function nextMonth(type) {
      var next = null;
      type === 'next' 
        ? next = (0, _moment2.default)(this.checked.currentMoment).add(1, 'M') 
        : next = (0, _moment2.default)(this.checked.currentMoment).add(-1, 'M');
      this.showDay(next);
    },
    showDay: function showDay(time) {
      if (time === undefined || !Date.parse(time)) {
        this.checked.currentMoment = (0, _moment2.default)();
      } else {
        this.checked.currentMoment = (0, _moment2.default)(time, this.option.format);
      }
      this.showOne('day');
      this.checked.year = (0, _moment2.default)(this.checked.currentMoment).format('YYYY');
      this.checked.month = (0, _moment2.default)(this.checked.currentMoment).format('MM');
      this.checked.day = (0, _moment2.default)(this.checked.currentMoment).format('DD');
      this.displayInfo.month = this.library.month[(0, _moment2.default)(this.checked.currentMoment).month()];
      var days = [];
      var currentMoment = this.checked.currentMoment;
      var firstDay = (0, _moment2.default)(currentMoment).date(1).day();
      // gettting previous and next month
      // let currentMonth = moment(currentMoment)
      var previousMonth = (0, _moment2.default)(currentMoment);
      var nextMonth = (0, _moment2.default)(currentMoment);
      nextMonth.add(1, 'months');
      previousMonth.subtract(1, 'months');
      var monthDays = (0, _moment2.default)(currentMoment).daysInMonth();
      var oldtime = this.checked.oldtime;
      for (var i = 1; i <= monthDays; ++i) {
        days.push({
          value: i,
          inMonth: true,
          unavailable: false,
          checked: false,
          moment: (0, _moment2.default)(currentMoment).date(i),
        });
        if (i === Math.ceil((0, _moment2.default)(currentMoment).format('D')) 
            && (0, _moment2.default)(oldtime, this.option.format).year() === (0, _moment2.default)(currentMoment).year() 
            && (0, _moment2.default)(oldtime, this.option.format).month() === (0, _moment2.default)(currentMoment).month()) {
          days[i - 1].checked = true;
        }
        this.checkBySelectDays(i, days);
      }
      if (firstDay === 0) firstDay = 7;
      for (var _i = 0; _i < firstDay - (this.option.SundayFirst ? 0 : 1); _i++) {
        var passiveDay = {
          value: previousMonth.daysInMonth() - _i,
          inMonth: false,
          action: 'previous',
          unavailable: false,
          checked: false,
          moment: (0, _moment2.default)(currentMoment).date(1).subtract(_i + 1, 'days'),
        };
        days.unshift(passiveDay);
      }
      if (this.limit.length > 0) {
        var _iteratorNormalCompletion = true;
        var _didIteratorError = false;
        var _iteratorError = undefined;

        try {
          for (var _iterator = this.limit[Symbol.iterator](), _step; 
            !(_iteratorNormalCompletion = (_step = _iterator.next()).done);
            _iteratorNormalCompletion = true) {
            var li = _step.value;

            switch (li.type) {
            case 'fromto':
              days = this.limitFromTo(li, days);
              break;
            case 'weekday':
              days = this.limitWeekDay(li, days);
              break;
            }
          }
        } catch (err) {
          _didIteratorError = true;
          _iteratorError = err;
        } finally {
          try {
            if (!_iteratorNormalCompletion && _iterator.return) {
              _iterator.return();
            }
          } finally {
            if (_didIteratorError) {
              // eslint-disable-next-line
              throw _iteratorError;
            }
          }
        }
      }
      var passiveDaysAtFinal = 42 - days.length;
      for (var _i2 = 1; _i2 <= passiveDaysAtFinal; _i2++) {
        var _passiveDay = {
          value: _i2,
          inMonth: false,
          action: 'next',
          unavailable: false,
          checked: false,
          moment: (0, _moment2.default)(currentMoment).add(1, 'months').date(_i2),
        };
        days.push(_passiveDay);
      }
      this.dayList = days;
    },
    checkBySelectDays: function checkBySelectDays(d, days) {
      var _this = this;

      this.selectedDays.forEach(function (day) {
        if (_this.checked.year === 
              (0, _moment2.default)(day).format('YYYY') && _this.checked.month === (0, _moment2.default)(day).format('MM') && d === Math.ceil((0, _moment2.default)(day).format('D'))) {
          days[d - 1].checked = true;
        }
      });
    },
    limitWeekDay: function limitWeekDay(limit, days) {
      days.map(function (day) {
        if (limit.available.indexOf(Math.floor(day.moment.format('d'))) === -1) {
          day.unavailable = true;
        }
      });
      return days;
    },
    limitFromTo: function limitFromTo(limit, days) {
      var _this2 = this;

      if (limit.from || limit.to) {
        days.map(function (day) {
          if (_this2.getLimitCondition(limit, day)) {
            day.unavailable = true;
          }
        });
      }
      return days;
    },
    getLimitCondition: function getLimitCondition(limit, day) {
      var tmpMoment = (0, _moment2.default)(this.checked.year + '-' + this.pad(this.checked.month) + '-' + this.pad(day.value));
      if (limit.from && !limit.to) {
        return !tmpMoment.isAfter(limit.from);
      } else if (!limit.from && limit.to) {
        return !tmpMoment.isBefore(limit.to);
      } else {
        return !tmpMoment.isBetween(limit.from, limit.to);
      }
    },
    checkDay: function checkDay(obj) {
      if (obj.unavailable || obj.value === '') {
        return false;
      }
      if (!obj.inMonth) {
        this.nextMonth(obj.action);
      }
      if (this.option.type === 'day' || this.option.type === 'min') {
        this.dayList.forEach(function (x) {
          x.checked = false;
        });
        this.checked.day = this.pad(obj.value);
        obj.checked = true;
      } else {
        var day = this.pad(obj.value);
        var ctime = this.checked.year + '-' + this.checked.month + '-' + day;
        if (obj.checked === true) {
          obj.checked = false;
          this.selectedDays.$remove(ctime);
        } else {
          this.selectedDays.push(ctime);
          obj.checked = true;
        }
      }
      switch (this.option.type) {
      case 'day':
        this.picked();
        break;
      case 'min':
        this.showOne('hour');
        // shift activated time items to visible position.
        this.shiftActTime();
        break;
      }
    },
    showYear: function showYear() {
      var _this3 = this;

      var year = (0, _moment2.default)(this.checked.currentMoment).year();
      this.library.year = [];
      var yearTmp = [];
      for (var i = year - 100; i < year + 5; ++i) {
        yearTmp.push(i);
      }
      this.library.year = yearTmp;
      this.showOne('year');
      this.$nextTick(function () {
        var listDom = document.getElementById('yearList');
        listDom.scrollTop = listDom.scrollHeight - 100;
        _this3.addYear();
      });
    },
    showOne: function showOne(type) {
      switch (type) {
      case 'year':
        this.showInfo.hour = false;
        this.showInfo.day = false;
        this.showInfo.year = true;
        this.showInfo.month = false;
        break;
      case 'month':
        this.showInfo.hour = false;
        this.showInfo.day = false;
        this.showInfo.year = false;
        this.showInfo.month = true;
        break;
      case 'day':
        this.showInfo.hour = false;
        this.showInfo.day = true;
        this.showInfo.year = false;
        this.showInfo.month = false;
        break;
      case 'hour':
        this.showInfo.hour = true;
        this.showInfo.day = false;
        this.showInfo.year = false;
        this.showInfo.month = false;
        break;
      default:
        this.showInfo.day = true;
        this.showInfo.year = false;
        this.showInfo.month = false;
        this.showInfo.hour = false;
      }
    },
    showMonth: function showMonth() {
      this.showOne('month');
    },
    addYear: function addYear() {
      var _this4 = this;

      var listDom = document.getElementById('yearList');
      // eslint-disable-next-line
      listDom.addEventListener('scroll', function (e) {
        if (listDom.scrollTop < listDom.scrollHeight - 100) {
          var len = _this4.library.year.length;
          var lastYear = _this4.library.year[len - 1];
          _this4.library.year.push(lastYear + 1);
        }
      }, false);
    },
    setYear: function setYear(year) {
      this.checked.currentMoment = (0, _moment2.default)(year + '-' + this.checked.month + '-' + this.checked.day);
      this.showDay(this.checked.currentMoment);
    },
    setMonth: function setMonth(month) {
      var mo = this.library.month.indexOf(month) + 1;
      if (mo < 10) {
        mo = '0' + '' + mo;
      }
      this.checked.currentMoment = (0, _moment2.default)(this.checked.year + '-' + mo + '-' + this.checked.day);
      this.showDay(this.checked.currentMoment);
    },
    showCheck: function showCheck() {
      if (this.date.time === '') {
        this.showDay();
      } else {
        if (this.option.type === 'day' || this.option.type === 'min') {
          this.checked.oldtime = this.date.time;
          this.showDay(this.date.time);
        } else {
          this.selectedDays = JSON.parse(this.date.time);
          if (this.selectedDays.length) {
            this.checked.oldtime = this.selectedDays[0];
            this.showDay(this.selectedDays[0]);
          } else {
            this.showDay();
          }
        }
      }
      this.showInfo.check = true;
    },
    setTime: function setTime(type, obj, list) {
      var _iteratorNormalCompletion2 = true;
      var _didIteratorError2 = false;
      var _iteratorError2 = undefined;

      try {
        for (var _iterator2 = list[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
          var item = _step2.value;

          item.checked = false;
          if (item.value === obj.value) {
            item.checked = true;
            this.checked[type] = item.value;
          }
        }
      } catch (err) {
        _didIteratorError2 = true;
        _iteratorError2 = err;
      } finally {
        try {
          if (!_iteratorNormalCompletion2 && _iterator2.return) {
            _iterator2.return();
          }
        } finally {
          if (_didIteratorError2) {
            // eslint-disable-next-line
            throw _iteratorError2;
          }
        }
      }
    },
    picked: function picked() {
      if (this.option.type === 'day' || this.option.type === 'min') {
        var ctime = this.checked.year + '-' + this.checked.month + '-' + this.checked.day + ' ' + this.checked.hour + ':' + this.checked.min;
        this.checked.currentMoment = (0, _moment2.default)(ctime, 'YYYY-MM-DD HH:mm');
        this.date.time = (0, _moment2.default)(this.checked.currentMoment).format(this.option.format);
      } else {
        this.date.time = JSON.stringify(this.selectedDays);
      }
      this.showInfo.check = false;
      this.$emit('change', this.date.time);
    },
    dismiss: function dismiss(evt) {
      if (evt.target.className === 'datepicker-overlay') {
        if (this.option.dismissible === undefined || this.option.dismissible) {
          this.showInfo.check = false;
          this.$emit('cancel');
        }
      }
    },
    shiftActTime: function shiftActTime() {
      // shift activated time items to visible position.
      this.$nextTick(function () {
        if (!document.querySelector('.hour-item.active')) {
          return false;
        }
        document.querySelector('.hour-box').scrollTop = (document.querySelector('.hour-item.active').offsetTop || 0) - 250;
        document.querySelector('.min-box').scrollTop = (document.querySelector('.min-item.active').offsetTop || 0) - 250;
      });
    },
  },
};
</script>


<style scoped>
.datepicker-overlay {
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 998;
    top: 0;
    left: 0;
    overflow: hidden;
    -webkit-animation: fadein 0.5s;
    /* Safari, Chrome and Opera > 12.1 */
    -moz-animation: fadein 0.5s;
    /* Firefox < 16 */
    -ms-animation: fadein 0.5s;
    /* Internet Explorer */
    -o-animation: fadein 0.5s;
    /* Opera < 12.1 */
    animation: fadein 0.5s;
}
@keyframes fadein {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
/* Firefox < 16 */
@-moz-keyframes fadein {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
/* Safari, Chrome and Opera > 12.1 */
@-webkit-keyframes fadein {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
/* Internet Explorer */
@-ms-keyframes fadein {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
/* Opera < 12.1 */
@-o-keyframes fadein {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
.cov-date-body {
    display: inline-block;
    background: #3f51b5;
    overflow: hidden;
    position: relative;
    font-size: 16px;
    font-family: "Roboto";
    font-weight: 400;
    position: fixed;
    display: block;
    width: 400px;
    max-width: 100%;
    z-index: 999;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);
}
.cov-picker-box {
    background: #fff;
    width: 100%;
    display: inline-block;
    padding: 25px;
    box-sizing: border-box !important;
    -moz-box-sizing: border-box !important;
    -webkit-box-sizing: border-box !important;
    -ms-box-sizing: border-box !important;
    width: 400px;
    max-width: 100%;
    height: 280px;
    text-align: start !important;
}
.cov-picker-box td {
    height: 34px;
    width: 34px;
    padding: 0;
    line-height: 34px;
    color: #000;
    background: #fff;
    text-align: center;
    cursor: pointer;
}
.cov-picker-box td:hover {
    background: #e6e6e6;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
}
.day {
    width: 14.2857143%;
    display: inline-block;
    text-align: center;
    cursor: pointer;
    height: 34px;
    padding: 0;
    line-height: 34px;
    color: #000;
    background: #fff;
    vertical-align: middle;
}
.week ul {
    margin: 0 0 8px;
    padding: 0;
    list-style: none;
}
.week ul li {
    width: 14.2%;
    display: inline-block;
    text-align: center;
    background: transparent;
    color: #000;
    font-weight: bold;
}
.passive-day {
    color: #bbb;
}
.checked {
    background: #f50057;
    color: #fff !important;
    border-radius: 3px;
}
.unavailable {
    color: #ccc;
    cursor: not-allowed;
}
.cov-date-monthly {
    height: 150px;
}
.cov-date-monthly > div {
    display: inline-block;
    padding: 0;
    margin: 0;
    vertical-align: middle;
    color: #fff;
    height: 150px;
    float: left;
    text-align: center;
    cursor: pointer;
}
.cov-date-previous,
.cov-date-next {
    position: relative;
    width: 20% !important;
    text-indent: -300px;
    overflow: hidden;
    color: #fff;
}
.cov-date-caption {
    width: 60%;
    padding: 50px 0 !important;
    box-sizing: border-box;
    font-size: 24px;
}
.cov-date-caption span:hover {
    color: rgba(255, 255, 255, 0.7);
}
.cov-date-previous:hover,
.cov-date-next:hover {
    background: rgba(255, 255, 255, 0.1);
}
.day:hover {
    background: #eaeaea;
}
.unavailable:hover {
    background: none;
}
.checked:hover {
    background: #ff4f8e;
}
.cov-date-next::before,
.cov-date-previous::before {
    width: 20px;
    height: 2px;
    text-align: center;
    position: absolute;
    background: #fff;
    top: 50%;
    margin-top: -7px;
    margin-left: -7px;
    left: 50%;
    line-height: 0;
    content: "";
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
}
.cov-date-next::after,
.cov-date-previous::after {
    width: 20px;
    height: 2px;
    text-align: center;
    position: absolute;
    background: #fff;
    margin-top: 6px;
    margin-left: -7px;
    top: 50%;
    left: 50%;
    line-height: 0;
    content: "";
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
.cov-date-previous::after {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
}
.cov-date-previous::before {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
.date-item {
    text-align: center;
    font-size: 20px;
    padding: 10px 0;
    cursor: pointer;
}
.date-item:hover {
    background: #e0e0e0;
}
.date-list {
    overflow: auto;
    vertical-align: top;
    padding: 0;
}
.cov-vue-date {
    display: inline-block;
    color: #5d5d5d;
}
.button-box {
    background: #fff;
    vertical-align: top;
    height: 50px;
    line-height: 50px;
    text-align: right;
    padding-right: 20px;
}
.button-box span {
    cursor: pointer;
    padding: 10px 20px;
}
.watch-box {
    height: 100%;
    overflow: hidden;
}
.hour-box,
.min-box {
    display: inline-block;
    width: 50%;
    text-align: center;
    height: 100%;
    overflow: auto;
    float: left;
}
.hour-box ul,
.min-box ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.hour-item,
.min-item {
    padding: 10px;
    font-size: 36px;
    cursor: pointer;
}
.hour-item:hover,
.min-item:hover {
    background: #e3e3e3;
}
.hour-box .active,
.min-box .active {
    background: #f50057;
    color: #fff !important;
}
::-webkit-scrollbar {
    width: 2px;
}
::-webkit-scrollbar-track {
    background: #e3e3e3;
}
::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 2px;
}
.btn-remove {
    float: right;
    top: -33px;
    right: 1px;
    position: relative;
    cursor: pointer;
    padding: 9px;
}

.cov-datepicker[disabled] {
    cursor: not-allowed;
    background-color: #eee !important;
    opacity: 1;
}
</style>