element-ui
Version:
A Component Library for Vue.js.
1,707 lines (1,459 loc) • 146 kB
JavaScript
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/dist/";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 176);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, exports) {
/* globals __VUE_SSR_CONTEXT__ */
// IMPORTANT: Do NOT use ES2015 features in this file.
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.
module.exports = function normalizeComponent (
rawScriptExports,
compiledTemplate,
functionalTemplate,
injectStyles,
scopeId,
moduleIdentifier /* server only */
) {
var esModule
var scriptExports = rawScriptExports = rawScriptExports || {}
// ES6 modules interop
var type = typeof rawScriptExports.default
if (type === 'object' || type === 'function') {
esModule = rawScriptExports
scriptExports = rawScriptExports.default
}
// Vue.extend constructor export interop
var options = typeof scriptExports === 'function'
? scriptExports.options
: scriptExports
// render functions
if (compiledTemplate) {
options.render = compiledTemplate.render
options.staticRenderFns = compiledTemplate.staticRenderFns
options._compiled = true
}
// functional template
if (functionalTemplate) {
options.functional = true
}
// scopedId
if (scopeId) {
options._scopeId = scopeId
}
var hook
if (moduleIdentifier) { // server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__
}
// inject component styles
if (injectStyles) {
injectStyles.call(this, context)
}
// register component module identifier for async chunk inferrence
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier)
}
}
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook
} else if (injectStyles) {
hook = injectStyles
}
if (hook) {
var functional = options.functional
var existing = functional
? options.render
: options.beforeCreate
if (!functional) {
// inject component registration as beforeCreate hook
options.beforeCreate = existing
? [].concat(existing, hook)
: [hook]
} else {
// for template-only hot-reload because in that case the render fn doesn't
// go through the normalizer
options._injectStyles = hook
// register for functioal component in vue file
options.render = function renderWithStyleInjection (h, context) {
hook.call(context)
return existing(h, context)
}
}
}
return {
esModule: esModule,
exports: scriptExports,
options: options
}
}
/***/ }),
/***/ 1:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/mixins/emitter");
/***/ }),
/***/ 10:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/utils/clickoutside");
/***/ }),
/***/ 11:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.extractTimeFormat = exports.extractDateFormat = exports.nextYear = exports.prevYear = exports.nextMonth = exports.prevMonth = exports.changeYearMonthAndClampDate = exports.timeWithinRange = exports.limitTimeRange = exports.clearMilliseconds = exports.clearTime = exports.modifyWithTimeString = exports.modifyTime = exports.modifyDate = exports.range = exports.getRangeHours = exports.getWeekNumber = exports.getStartDateOfMonth = exports.nextDate = exports.prevDate = exports.getFirstDayOfMonth = exports.getDayCountOfYear = exports.getDayCountOfMonth = exports.parseDate = exports.formatDate = exports.isDateObject = exports.isDate = exports.toDate = undefined;
var _date = __webpack_require__(29);
var _date2 = _interopRequireDefault(_date);
var _locale = __webpack_require__(12);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
var months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
var getI18nSettings = function getI18nSettings() {
return {
dayNamesShort: weeks.map(function (week) {
return (0, _locale.t)('el.datepicker.weeks.' + week);
}),
dayNames: weeks.map(function (week) {
return (0, _locale.t)('el.datepicker.weeks.' + week);
}),
monthNamesShort: months.map(function (month) {
return (0, _locale.t)('el.datepicker.months.' + month);
}),
monthNames: months.map(function (month, index) {
return (0, _locale.t)('el.datepicker.month' + (index + 1));
}),
amPm: ['am', 'pm']
};
};
var newArray = function newArray(start, end) {
var result = [];
for (var i = start; i <= end; i++) {
result.push(i);
}
return result;
};
var toDate = exports.toDate = function toDate(date) {
return isDate(date) ? new Date(date) : null;
};
var isDate = exports.isDate = function isDate(date) {
if (date === null || date === undefined) return false;
if (isNaN(new Date(date).getTime())) return false;
if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
return true;
};
var isDateObject = exports.isDateObject = function isDateObject(val) {
return val instanceof Date;
};
var formatDate = exports.formatDate = function formatDate(date, format) {
date = toDate(date);
if (!date) return '';
return _date2.default.format(date, format || 'yyyy-MM-dd', getI18nSettings());
};
var parseDate = exports.parseDate = function parseDate(string, format) {
return _date2.default.parse(string, format || 'yyyy-MM-dd', getI18nSettings());
};
var getDayCountOfMonth = exports.getDayCountOfMonth = function getDayCountOfMonth(year, month) {
if (month === 3 || month === 5 || month === 8 || month === 10) {
return 30;
}
if (month === 1) {
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
return 29;
} else {
return 28;
}
}
return 31;
};
var getDayCountOfYear = exports.getDayCountOfYear = function getDayCountOfYear(year) {
var isLeapYear = year % 400 === 0 || year % 100 !== 0 && year % 4 === 0;
return isLeapYear ? 366 : 365;
};
var getFirstDayOfMonth = exports.getFirstDayOfMonth = function getFirstDayOfMonth(date) {
var temp = new Date(date.getTime());
temp.setDate(1);
return temp.getDay();
};
// see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
// {prev, next} Date should work for Daylight Saving Time
// Adding 24 * 60 * 60 * 1000 does not work in the above scenario
var prevDate = exports.prevDate = function prevDate(date) {
var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
};
var nextDate = exports.nextDate = function nextDate(date) {
var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
};
var getStartDateOfMonth = exports.getStartDateOfMonth = function getStartDateOfMonth(year, month) {
var result = new Date(year, month, 1);
var day = result.getDay();
if (day === 0) {
return prevDate(result, 7);
} else {
return prevDate(result, day);
}
};
var getWeekNumber = exports.getWeekNumber = function getWeekNumber(src) {
if (!isDate(src)) return null;
var date = new Date(src.getTime());
date.setHours(0, 0, 0, 0);
// Thursday in current week decides the year.
date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
// January 4 is always in week 1.
var week1 = new Date(date.getFullYear(), 0, 4);
// Adjust to Thursday in week 1 and count number of weeks from date to week 1.
// Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.
return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
};
var getRangeHours = exports.getRangeHours = function getRangeHours(ranges) {
var hours = [];
var disabledHours = [];
(ranges || []).forEach(function (range) {
var value = range.map(function (date) {
return date.getHours();
});
disabledHours = disabledHours.concat(newArray(value[0], value[1]));
});
if (disabledHours.length) {
for (var i = 0; i < 24; i++) {
hours[i] = disabledHours.indexOf(i) === -1;
}
} else {
for (var _i = 0; _i < 24; _i++) {
hours[_i] = false;
}
}
return hours;
};
var range = exports.range = function range(n) {
// see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
return Array.apply(null, { length: n }).map(function (_, n) {
return n;
});
};
var modifyDate = exports.modifyDate = function modifyDate(date, y, m, d) {
return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
};
var modifyTime = exports.modifyTime = function modifyTime(date, h, m, s) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
};
var modifyWithTimeString = exports.modifyWithTimeString = function modifyWithTimeString(date, time) {
if (date == null || !time) {
return date;
}
time = parseDate(time, 'HH:mm:ss');
return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
};
var clearTime = exports.clearTime = function clearTime(date) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
};
var clearMilliseconds = exports.clearMilliseconds = function clearMilliseconds(date) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
};
var limitTimeRange = exports.limitTimeRange = function limitTimeRange(date, ranges) {
var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'HH:mm:ss';
// TODO: refactory a more elegant solution
if (ranges.length === 0) return date;
var normalizeDate = function normalizeDate(date) {
return _date2.default.parse(_date2.default.format(date, format), format);
};
var ndate = normalizeDate(date);
var nranges = ranges.map(function (range) {
return range.map(normalizeDate);
});
if (nranges.some(function (nrange) {
return ndate >= nrange[0] && ndate <= nrange[1];
})) return date;
var minDate = nranges[0][0];
var maxDate = nranges[0][0];
nranges.forEach(function (nrange) {
minDate = new Date(Math.min(nrange[0], minDate));
maxDate = new Date(Math.max(nrange[1], minDate));
});
var ret = ndate < minDate ? minDate : maxDate;
// preserve Year/Month/Date
return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());
};
var timeWithinRange = exports.timeWithinRange = function timeWithinRange(date, selectableRange, format) {
var limitedDate = limitTimeRange(date, selectableRange, format);
return limitedDate.getTime() === date.getTime();
};
var changeYearMonthAndClampDate = exports.changeYearMonthAndClampDate = function changeYearMonthAndClampDate(date, year, month) {
// clamp date to the number of days in `year`, `month`
// eg: (2010-1-31, 2010, 2) => 2010-2-28
var monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
return modifyDate(date, year, month, monthDate);
};
var prevMonth = exports.prevMonth = function prevMonth(date) {
var year = date.getFullYear();
var month = date.getMonth();
return month === 0 ? changeYearMonthAndClampDate(date, year - 1, 11) : changeYearMonthAndClampDate(date, year, month - 1);
};
var nextMonth = exports.nextMonth = function nextMonth(date) {
var year = date.getFullYear();
var month = date.getMonth();
return month === 11 ? changeYearMonthAndClampDate(date, year + 1, 0) : changeYearMonthAndClampDate(date, year, month + 1);
};
var prevYear = exports.prevYear = function prevYear(date) {
var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var year = date.getFullYear();
var month = date.getMonth();
return changeYearMonthAndClampDate(date, year - amount, month);
};
var nextYear = exports.nextYear = function nextYear(date) {
var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var year = date.getFullYear();
var month = date.getMonth();
return changeYearMonthAndClampDate(date, year + amount, month);
};
var extractDateFormat = exports.extractDateFormat = function extractDateFormat(format) {
return format.replace(/\W?m{1,2}|\W?ZZ/g, '').replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '').trim();
};
var extractTimeFormat = exports.extractTimeFormat = function extractTimeFormat(format) {
return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '').trim();
};
/***/ }),
/***/ 12:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/locale");
/***/ }),
/***/ 15:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/button");
/***/ }),
/***/ 17:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/scrollbar");
/***/ }),
/***/ 176:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _datePicker = __webpack_require__(177);
var _datePicker2 = _interopRequireDefault(_datePicker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* istanbul ignore next */
_datePicker2.default.install = function install(Vue) {
Vue.component(_datePicker2.default.name, _datePicker2.default);
};
exports.default = _datePicker2.default;
/***/ }),
/***/ 177:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _picker = __webpack_require__(27);
var _picker2 = _interopRequireDefault(_picker);
var _date = __webpack_require__(178);
var _date2 = _interopRequireDefault(_date);
var _dateRange = __webpack_require__(189);
var _dateRange2 = _interopRequireDefault(_dateRange);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var getPanel = function getPanel(type) {
if (type === 'daterange' || type === 'datetimerange') {
return _dateRange2.default;
}
return _date2.default;
};
exports.default = {
mixins: [_picker2.default],
name: 'ElDatePicker',
props: {
type: {
type: String,
default: 'date'
},
timeArrowControl: Boolean
},
watch: {
type: function type(_type) {
if (this.picker) {
this.unmountPicker();
this.panel = getPanel(_type);
this.mountPicker();
} else {
this.panel = getPanel(_type);
}
}
},
created: function created() {
this.panel = getPanel(this.type);
}
};
/***/ }),
/***/ 178:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue__ = __webpack_require__(179);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2555bb87_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_vue__ = __webpack_require__(188);
var normalizeComponent = __webpack_require__(0)
/* script */
/* template */
/* template functional */
var __vue_template_functional__ = false
/* styles */
var __vue_styles__ = null
/* scopeId */
var __vue_scopeId__ = null
/* moduleIdentifier (server only) */
var __vue_module_identifier__ = null
var Component = normalizeComponent(
__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue___default.a,
__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2555bb87_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_vue__["a" /* default */],
__vue_template_functional__,
__vue_styles__,
__vue_scopeId__,
__vue_module_identifier__
)
/* harmony default export */ __webpack_exports__["default"] = (Component.exports);
/***/ }),
/***/ 179:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _util = __webpack_require__(11);
var _clickoutside = __webpack_require__(10);
var _clickoutside2 = _interopRequireDefault(_clickoutside);
var _locale = __webpack_require__(5);
var _locale2 = _interopRequireDefault(_locale);
var _input = __webpack_require__(6);
var _input2 = _interopRequireDefault(_input);
var _button = __webpack_require__(15);
var _button2 = _interopRequireDefault(_button);
var _time = __webpack_require__(31);
var _time2 = _interopRequireDefault(_time);
var _yearTable = __webpack_require__(180);
var _yearTable2 = _interopRequireDefault(_yearTable);
var _monthTable = __webpack_require__(183);
var _monthTable2 = _interopRequireDefault(_monthTable);
var _dateTable = __webpack_require__(49);
var _dateTable2 = _interopRequireDefault(_dateTable);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
mixins: [_locale2.default],
directives: { Clickoutside: _clickoutside2.default },
watch: {
showTime: function showTime(val) {
var _this = this;
/* istanbul ignore if */
if (!val) return;
this.$nextTick(function (_) {
var inputElm = _this.$refs.input.$el;
if (inputElm) {
_this.pickerWidth = inputElm.getBoundingClientRect().width + 10;
}
});
},
value: function value(val) {
if (this.selectionMode === 'dates' && this.value) return;
if ((0, _util.isDate)(val)) {
this.date = new Date(val);
} else {
this.date = this.getDefaultValue();
}
},
defaultValue: function defaultValue(val) {
if (!(0, _util.isDate)(this.value)) {
this.date = val ? new Date(val) : new Date();
}
},
timePickerVisible: function timePickerVisible(val) {
var _this2 = this;
if (val) this.$nextTick(function () {
return _this2.$refs.timepicker.adjustSpinners();
});
},
selectionMode: function selectionMode(newVal) {
if (newVal === 'month') {
/* istanbul ignore next */
if (this.currentView !== 'year' || this.currentView !== 'month') {
this.currentView = 'month';
}
} else if (newVal === 'dates') {
this.currentView = 'date';
}
}
},
methods: {
proxyTimePickerDataProperties: function proxyTimePickerDataProperties() {
var _this3 = this;
var format = function format(timeFormat) {
_this3.$refs.timepicker.format = timeFormat;
};
var value = function value(_value) {
_this3.$refs.timepicker.value = _value;
};
var date = function date(_date) {
_this3.$refs.timepicker.date = _date;
};
this.$watch('value', value);
this.$watch('date', date);
format(this.timeFormat);
value(this.value);
date(this.date);
},
handleClear: function handleClear() {
this.date = this.getDefaultValue();
this.$emit('pick', null);
},
emit: function emit(value) {
var _this4 = this;
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
if (!value) {
this.$emit.apply(this, ['pick', value].concat(args));
} else if (Array.isArray(value)) {
var dates = value.map(function (date) {
return _this4.showTime ? (0, _util.clearMilliseconds)(date) : (0, _util.clearTime)(date);
});
this.$emit.apply(this, ['pick', dates].concat(args));
} else {
this.$emit.apply(this, ['pick', this.showTime ? (0, _util.clearMilliseconds)(value) : (0, _util.clearTime)(value)].concat(args));
}
this.userInputDate = null;
this.userInputTime = null;
},
// resetDate() {
// this.date = new Date(this.date);
// },
showMonthPicker: function showMonthPicker() {
this.currentView = 'month';
},
showYearPicker: function showYearPicker() {
this.currentView = 'year';
},
// XXX: 没用到
// handleLabelClick() {
// if (this.currentView === 'date') {
// this.showMonthPicker();
// } else if (this.currentView === 'month') {
// this.showYearPicker();
// }
// },
prevMonth: function prevMonth() {
this.date = (0, _util.prevMonth)(this.date);
},
nextMonth: function nextMonth() {
this.date = (0, _util.nextMonth)(this.date);
},
prevYear: function prevYear() {
if (this.currentView === 'year') {
this.date = (0, _util.prevYear)(this.date, 10);
} else {
this.date = (0, _util.prevYear)(this.date);
}
},
nextYear: function nextYear() {
if (this.currentView === 'year') {
this.date = (0, _util.nextYear)(this.date, 10);
} else {
this.date = (0, _util.nextYear)(this.date);
}
},
handleShortcutClick: function handleShortcutClick(shortcut) {
if (shortcut.onClick) {
shortcut.onClick(this);
}
},
handleTimePick: function handleTimePick(value, visible, first) {
if ((0, _util.isDate)(value)) {
var newDate = this.value ? (0, _util.modifyTime)(this.value, value.getHours(), value.getMinutes(), value.getSeconds()) : (0, _util.modifyWithTimeString)(this.getDefaultValue(), this.defaultTime);
this.date = newDate;
this.emit(this.date, true);
} else {
this.emit(value, true);
}
if (!first) {
this.timePickerVisible = visible;
}
},
handleTimePickClose: function handleTimePickClose() {
this.timePickerVisible = false;
},
handleMonthPick: function handleMonthPick(month) {
if (this.selectionMode === 'month') {
this.date = (0, _util.modifyDate)(this.date, this.year, month, 1);
this.emit(this.date);
} else {
this.date = (0, _util.changeYearMonthAndClampDate)(this.date, this.year, month);
// TODO: should emit intermediate value ??
// this.emit(this.date);
this.currentView = 'date';
}
},
handleDateSelect: function handleDateSelect(value) {
if (this.selectionMode === 'dates') {
this.selectedDate = value;
}
},
handleDatePick: function handleDatePick(value) {
if (this.selectionMode === 'day') {
this.date = this.value ? (0, _util.modifyDate)(this.value, value.getFullYear(), value.getMonth(), value.getDate()) : (0, _util.modifyWithTimeString)(value, this.defaultTime);
this.emit(this.date, this.showTime);
} else if (this.selectionMode === 'week') {
this.emit(value.date);
}
},
handleYearPick: function handleYearPick(year) {
if (this.selectionMode === 'year') {
this.date = (0, _util.modifyDate)(this.date, year, 0, 1);
this.emit(this.date);
} else {
this.date = (0, _util.changeYearMonthAndClampDate)(this.date, year, this.month);
// TODO: should emit intermediate value ??
// this.emit(this.date, true);
this.currentView = 'month';
}
},
changeToNow: function changeToNow() {
// NOTE: not a permanent solution
// consider disable "now" button in the future
if (!this.disabledDate || !this.disabledDate(new Date())) {
this.date = new Date();
this.emit(this.date);
}
},
confirm: function confirm() {
if (this.selectionMode === 'dates') {
this.emit(this.selectedDate);
} else {
// value were emitted in handle{Date,Time}Pick, nothing to update here
// deal with the scenario where: user opens the picker, then confirm without doing anything
var value = this.value ? this.value : (0, _util.modifyWithTimeString)(this.getDefaultValue(), this.defaultTime);
this.date = new Date(value); // refresh date
this.emit(value);
}
},
resetView: function resetView() {
if (this.selectionMode === 'month') {
this.currentView = 'month';
} else if (this.selectionMode === 'year') {
this.currentView = 'year';
} else {
this.currentView = 'date';
}
},
handleEnter: function handleEnter() {
document.body.addEventListener('keydown', this.handleKeydown);
},
handleLeave: function handleLeave() {
this.$emit('dodestroy');
document.body.removeEventListener('keydown', this.handleKeydown);
},
handleKeydown: function handleKeydown(event) {
var keyCode = event.keyCode;
var list = [38, 40, 37, 39];
if (this.visible && !this.timePickerVisible) {
if (list.indexOf(keyCode) !== -1) {
this.handleKeyControl(keyCode);
event.stopPropagation();
event.preventDefault();
}
if (keyCode === 13 && this.userInputDate === null && this.userInputTime === null) {
// Enter
this.emit(this.date, false);
}
}
},
handleKeyControl: function handleKeyControl(keyCode) {
var mapping = {
'year': {
38: -4, 40: 4, 37: -1, 39: 1, offset: function offset(date, step) {
return date.setFullYear(date.getFullYear() + step);
}
},
'month': {
38: -4, 40: 4, 37: -1, 39: 1, offset: function offset(date, step) {
return date.setMonth(date.getMonth() + step);
}
},
'week': {
38: -1, 40: 1, 37: -1, 39: 1, offset: function offset(date, step) {
return date.setDate(date.getDate() + step * 7);
}
},
'day': {
38: -7, 40: 7, 37: -1, 39: 1, offset: function offset(date, step) {
return date.setDate(date.getDate() + step);
}
}
};
var mode = this.selectionMode;
var year = 3.1536e10;
var now = this.date.getTime();
var newDate = new Date(this.date.getTime());
while (Math.abs(now - newDate.getTime()) <= year) {
var map = mapping[mode];
map.offset(newDate, map[keyCode]);
if (typeof this.disabledDate === 'function' && this.disabledDate(newDate)) {
continue;
}
this.date = newDate;
this.$emit('pick', newDate, true);
break;
}
},
handleVisibleTimeChange: function handleVisibleTimeChange(value) {
var time = (0, _util.parseDate)(value, this.timeFormat);
if (time) {
this.date = (0, _util.modifyDate)(time, this.year, this.month, this.monthDate);
this.userInputTime = null;
this.$refs.timepicker.value = this.date;
this.timePickerVisible = false;
this.emit(this.date, true);
}
},
handleVisibleDateChange: function handleVisibleDateChange(value) {
var date = (0, _util.parseDate)(value, this.dateFormat);
if (date) {
if (typeof this.disabledDate === 'function' && this.disabledDate(date)) {
return;
}
this.date = (0, _util.modifyTime)(date, this.date.getHours(), this.date.getMinutes(), this.date.getSeconds());
this.userInputDate = null;
this.resetView();
this.emit(this.date, true);
}
},
isValidValue: function isValidValue(value) {
return value && !isNaN(value) && (typeof this.disabledDate === 'function' ? !this.disabledDate(value) : true);
},
getDefaultValue: function getDefaultValue() {
// if default-value is set, return it
// otherwise, return now (the moment this method gets called)
return this.defaultValue ? new Date(this.defaultValue) : new Date();
}
},
components: {
TimePicker: _time2.default, YearTable: _yearTable2.default, MonthTable: _monthTable2.default, DateTable: _dateTable2.default, ElInput: _input2.default, ElButton: _button2.default
},
data: function data() {
return {
popperClass: '',
date: new Date(),
value: '',
defaultValue: null, // use getDefaultValue() for time computation
defaultTime: null,
showTime: false,
selectionMode: 'day',
shortcuts: '',
visible: false,
currentView: 'date',
disabledDate: '',
selectedDate: [],
firstDayOfWeek: 7,
showWeekNumber: false,
timePickerVisible: false,
format: '',
arrowControl: false,
userInputDate: null,
userInputTime: null
};
},
computed: {
year: function year() {
return this.date.getFullYear();
},
month: function month() {
return this.date.getMonth();
},
week: function week() {
return (0, _util.getWeekNumber)(this.date);
},
monthDate: function monthDate() {
return this.date.getDate();
},
footerVisible: function footerVisible() {
return this.showTime || this.selectionMode === 'dates';
},
visibleTime: function visibleTime() {
if (this.userInputTime !== null) {
return this.userInputTime;
} else {
return (0, _util.formatDate)(this.value || this.defaultValue, this.timeFormat);
}
},
visibleDate: function visibleDate() {
if (this.userInputDate !== null) {
return this.userInputDate;
} else {
return (0, _util.formatDate)(this.value || this.defaultValue, this.dateFormat);
}
},
yearLabel: function yearLabel() {
var yearTranslation = this.t('el.datepicker.year');
if (this.currentView === 'year') {
var startYear = Math.floor(this.year / 10) * 10;
if (yearTranslation) {
return startYear + ' ' + yearTranslation + ' - ' + (startYear + 9) + ' ' + yearTranslation;
}
return startYear + ' - ' + (startYear + 9);
}
return this.year + ' ' + yearTranslation;
},
timeFormat: function timeFormat() {
if (this.format) {
return (0, _util.extractTimeFormat)(this.format);
} else {
return 'HH:mm:ss';
}
},
dateFormat: function dateFormat() {
if (this.format) {
return (0, _util.extractDateFormat)(this.format);
} else {
return 'yyyy-MM-dd';
}
}
}
}; //
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/***/ }),
/***/ 180:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue__ = __webpack_require__(181);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f653c26_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_year_table_vue__ = __webpack_require__(182);
var normalizeComponent = __webpack_require__(0)
/* script */
/* template */
/* template functional */
var __vue_template_functional__ = false
/* styles */
var __vue_styles__ = null
/* scopeId */
var __vue_scopeId__ = null
/* moduleIdentifier (server only) */
var __vue_module_identifier__ = null
var Component = normalizeComponent(
__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue___default.a,
__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f653c26_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_year_table_vue__["a" /* default */],
__vue_template_functional__,
__vue_styles__,
__vue_scopeId__,
__vue_module_identifier__
)
/* harmony default export */ __webpack_exports__["default"] = (Component.exports);
/***/ }),
/***/ 181:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _dom = __webpack_require__(2);
var _util = __webpack_require__(11);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var datesInYear = function datesInYear(year) {
var numOfDays = (0, _util.getDayCountOfYear)(year);
var firstDay = new Date(year, 0, 1);
return (0, _util.range)(numOfDays).map(function (n) {
return (0, _util.nextDate)(firstDay, n);
});
};
exports.default = {
props: {
disabledDate: {},
value: {},
defaultValue: {
validator: function validator(val) {
// null or valid Date Object
return val === null || val instanceof Date && (0, _util.isDate)(val);
}
},
date: {}
},
computed: {
startYear: function startYear() {
return Math.floor(this.date.getFullYear() / 10) * 10;
}
},
methods: {
getCellStyle: function getCellStyle(year) {
var style = {};
var today = new Date();
style.disabled = typeof this.disabledDate === 'function' ? datesInYear(year).every(this.disabledDate) : false;
style.current = this.value.getFullYear() === year;
style.today = today.getFullYear() === year;
style.default = this.defaultValue && this.defaultValue.getFullYear() === year;
return style;
},
handleYearTableClick: function handleYearTableClick(event) {
var target = event.target;
if (target.tagName === 'A') {
if ((0, _dom.hasClass)(target.parentNode, 'disabled')) return;
var year = target.textContent || target.innerText;
this.$emit('pick', Number(year));
}
}
}
};
/***/ }),
/***/ 182:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:"el-year-table",on:{"click":_vm.handleYearTableClick}},[_c('tbody',[_c('tr',[_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 0)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear))])]),_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 1)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 1))])]),_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 2)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 2))])]),_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 3)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 3))])])]),_c('tr',[_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 4)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 4))])]),_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 5)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 5))])]),_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 6)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 6))])]),_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 7)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 7))])])]),_c('tr',[_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 8)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 8))])]),_c('td',{staticClass:"available",class:_vm.getCellStyle(_vm.startYear + 9)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.startYear + 9))])]),_c('td'),_c('td')])])])}
var staticRenderFns = []
var esExports = { render: render, staticRenderFns: staticRenderFns }
/* harmony default export */ __webpack_exports__["a"] = (esExports);
/***/ }),
/***/ 183:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue__ = __webpack_require__(184);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_312e3722_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_month_table_vue__ = __webpack_require__(185);
var normalizeComponent = __webpack_require__(0)
/* script */
/* template */
/* template functional */
var __vue_template_functional__ = false
/* styles */
var __vue_styles__ = null
/* scopeId */
var __vue_scopeId__ = null
/* moduleIdentifier (server only) */
var __vue_module_identifier__ = null
var Component = normalizeComponent(
__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue___default.a,
__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_312e3722_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_month_table_vue__["a" /* default */],
__vue_template_functional__,
__vue_styles__,
__vue_scopeId__,
__vue_module_identifier__
)
/* harmony default export */ __webpack_exports__["default"] = (Component.exports);
/***/ }),
/***/ 184:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _locale = __webpack_require__(5);
var _locale2 = _interopRequireDefault(_locale);
var _util = __webpack_require__(11);
var _dom = __webpack_require__(2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var datesInMonth = function datesInMonth(year, month) {
var numOfDays = (0, _util.getDayCountOfMonth)(year, month);
var firstDay = new Date(year, month, 1);
return (0, _util.range)(numOfDays).map(function (n) {
return (0, _util.nextDate)(firstDay, n);
});
}; //
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
exports.default = {
props: {
disabledDate: {},
value: {},
defaultValue: {
validator: function validator(val) {
// null or valid Date Object
return val === null || val instanceof Date && (0, _util.isDate)(val);
}
},
date: {}
},
mixins: [_locale2.default],
methods: {
getCellStyle: function getCellStyle(month) {
var style = {};
var year = this.date.getFullYear();
var today = new Date();
style.disabled = typeof this.disabledDate === 'function' ? datesInMonth(year, month).every(this.disabledDate) : false;
style.current = this.value.getFullYear() === year && this.value.getMonth() === month;
style.today = today.getFullYear() === year && today.getMonth() === month;
style.default = this.defaultValue && this.defaultValue.getFullYear() === year && this.defaultValue.getMonth() === month;
return style;
},
handleMonthTableClick: function handleMonthTableClick(event) {
var target = event.target;
if (target.tagName !== 'A') return;
if ((0, _dom.hasClass)(target.parentNode, 'disabled')) return;
var column = target.parentNode.cellIndex;
var row = target.parentNode.parentNode.rowIndex;
var month = row * 4 + column;
this.$emit('pick', month);
}
}
};
/***/ }),
/***/ 185:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:"el-month-table",on:{"click":_vm.handleMonthTableClick}},[_c('tbody',[_c('tr',[_c('td',{class:_vm.getCellStyle(0)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.jan')))])]),_c('td',{class:_vm.getCellStyle(1)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.feb')))])]),_c('td',{class:_vm.getCellStyle(2)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.mar')))])]),_c('td',{class:_vm.getCellStyle(3)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.apr')))])])]),_c('tr',[_c('td',{class:_vm.getCellStyle(4)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.may')))])]),_c('td',{class:_vm.getCellStyle(5)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.jun')))])]),_c('td',{class:_vm.getCellStyle(6)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.jul')))])]),_c('td',{class:_vm.getCellStyle(7)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.aug')))])])]),_c('tr',[_c('td',{class:_vm.getCellStyle(8)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.sep')))])]),_c('td',{class:_vm.getCellStyle(9)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.oct')))])]),_c('td',{class:_vm.getCellStyle(10)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.nov')))])]),_c('td',{class:_vm.getCellStyle(11)},[_c('a',{staticClass:"cell"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.dec')))])])])])])}
var staticRenderFns = []
var esExports = { render: render, staticRenderFns: staticRenderFns }
/* harmony default export */ __webpack_exports__["a"] = (esExports);
/***/ }),
/***/ 186:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _util = __webpack_require__(11);
var _dom = __webpack_require__(2);
var _locale = __webpack_require__(5);
var _locale2 = _interopRequireDefault(_locale);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _WEEKS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; //
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var clearHours = function clearHours(time) {
var cloneDate = new Date(time);
cloneDate.setHours(0, 0, 0, 0);
return cloneDate.getTime();
};
exports.default = {
mixins: [_locale2.default],
props: {
firstDayOfWeek: {
default: 7,
type: Number,
validator: function validator(val) {
return val >= 1 && val <= 7;
}
},
value: {},
defaultValue: {
validator: function validator(val) {
// either: null, valid Date object, Array of valid Date objects
return val === null || (0, _util.isDate)(val) || Array.isArray(val) && val.every(_util.isDate);
}
},
date: {},
selectionMode: {
default: 'day'
},
showWeekNumber: {
type: Boolean,
default: false
},
disabledDate: {},
selectedDate: {
type: Array
},
minDate: {},
maxDate: {},
rangeState: {
default: function _default() {
return {
endDate: null,
selecting: false,
row: null,
column: null
};
}
}
},
computed: {
offsetDay: function offsetDay() {
var week = this.firstDayOfWeek;
// 周日为界限,左右偏移的天数,3217654 例如周一就是 -1,目的是调整前两行日期的位置
return week > 3 ? 7 - week : -week;
},
WEEKS: function WEEKS() {
var week = this.firstDayOfWeek;
return _WEEKS.concat(_WEEKS).slice(week, week + 7);
},
year: function year() {
return this.date.getFullYear();
},
month: function month() {
return this.date.getMonth();
},
startDate: function startDate() {
return (0, _util.getStartDateOfMonth)(this.year, this.month);
},
rows: function rows() {
var _this = this;
// TODO: refactory rows / getCellClasses
var date = new Date(this.year, this.month, 1);
var day = (0, _util.getFirstDayOfMonth)(date); // day of first day
var dateCountOfMonth = (0, _util.getDayCountOfMonth)(date.getFullYear(), date.getMonth());
var dateCountOfLastMonth = (0, _util.getDayCountOfMonth)(date.getFullYear(), date.getMonth() === 0 ? 11 : date.getMonth() - 1);
day = day === 0 ? 7 : day;
var offset = this.offsetDay;
var rows = this.tableRows;
var count = 1;
var firstDayPosition = void 0;
var startDate = this.startDate;
var disabledDate = this.disabledDate;
var selectedDate = this.selectedDate || this.value;
var now = clearHours(new Date());
for (var i = 0; i < 6; i++) {
var row = rows[i];
if (this.showWeekNumber) {
if (!row[0]) {
row[0] = { type: 'week', text: (0, _util.getWeekNumber)((0, _util.nextDate)(startDate, i * 7 + 1)) };
}
}
var _loop = function _loop(j) {
var cell = row[_this.showWeekNumber ? j + 1 : j];
if (!cell) {
cell = { row: i, column: j, type: 'normal', inRange: false, start: false, end: false };
}
cell.type = 'normal';
var index = i * 7 + j;
var time = (0, _util.nextDate)(startDate, index - offset).getTime();
cell.inRange = time >= clearHours(_this.minDate) && time <= clearHours(_this.maxDate);
cell.start = _this.minDate && time === clearHours(_this.minDate);
cell.end = _this.maxDate && time === clearHours(_this.maxDate);
var isToday = time === now;
if (isToday) {
cell.type = 'today';
}
if (i >= 0 && i <= 1) {
if (j + i * 7 >= day + offset) {
cell.text = count++;
if (count === 2) {
firstDayPosition = i * 7 + j;
}
} else {
cell.text = dateCountOfLastMonth - (day + offset - j % 7) + 1 + i * 7;
cell.type = 'prev-month';
}
} else {
if (count <= dateCountOfMonth) {
cell.text = count++;
if (count === 2) {
firstDayPosition = i * 7 + j;
}