UNPKG

vue2-datepicker-dialog

Version:

A dialog compatible Datepicker Component For Vue2

1,505 lines (1,440 loc) 140 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.DatePicker = factory()); }(this, (function () { 'use strict'; function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _extends$1() { return _extends$1 = Object.assign ? Object.assign.bind() : function (a) { for (var b, c = 1; c < arguments.length; c++) for (var d in b = arguments[c], b) Object.prototype.hasOwnProperty.call(b, d) && (a[d] = b[d]); return a; }, _extends$1.apply(this, arguments); } var normalMerge = ["attrs", "props", "domProps"], toArrayMerge = ["class", "style", "directives"], functionalMerge = ["on", "nativeOn"], mergeJsxProps = function mergeJsxProps(a) { return a.reduce(function (c, a) { for (var b in a) if (!c[b]) c[b] = a[b];else if (-1 !== normalMerge.indexOf(b)) c[b] = _extends$1({}, c[b], a[b]);else if (-1 !== toArrayMerge.indexOf(b)) { var d = c[b] instanceof Array ? c[b] : [c[b]], e = a[b] instanceof Array ? a[b] : [a[b]]; c[b] = [].concat(d, e); } else if (-1 !== functionalMerge.indexOf(b)) { for (var f in a[b]) if (c[b][f]) { var g = c[b][f] instanceof Array ? c[b][f] : [c[b][f]], h = a[b][f] instanceof Array ? a[b][f] : [a[b][f]]; c[b][f] = [].concat(g, h); } else c[b][f] = a[b][f]; } else if ("hook" === b) for (var i in a[b]) c[b][i] = c[b][i] ? mergeFn(c[b][i], a[b][i]) : a[b][i];else c[b] = a[b]; return c; }, {}); }, mergeFn = function mergeFn(a, b) { return function () { a && a.apply(this, arguments), b && b.apply(this, arguments); }; }; var helper = mergeJsxProps; function isDate(value) { return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]'; } function toDate(value) { if (isDate(value)) { return new Date(value.getTime()); } if (value == null) { return new Date(NaN); } return new Date(value); } function isValidDate(value) { return isDate(value) && !isNaN(value.getTime()); } function startOfWeek(value) { var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; if (!(firstDayOfWeek >= 0 && firstDayOfWeek <= 6)) { throw new RangeError('weekStartsOn must be between 0 and 6'); } var date = toDate(value); var day = date.getDay(); var diff = (day + 7 - firstDayOfWeek) % 7; date.setDate(date.getDate() - diff); date.setHours(0, 0, 0, 0); return date; } function startOfWeekYear(value) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$firstDayOfWeek = _ref.firstDayOfWeek, firstDayOfWeek = _ref$firstDayOfWeek === void 0 ? 0 : _ref$firstDayOfWeek, _ref$firstWeekContain = _ref.firstWeekContainsDate, firstWeekContainsDate = _ref$firstWeekContain === void 0 ? 1 : _ref$firstWeekContain; if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { throw new RangeError('firstWeekContainsDate must be between 1 and 7'); } var date = toDate(value); var year = date.getFullYear(); var firstDateOfFirstWeek = new Date(0); for (var i = year + 1; i >= year - 1; i--) { firstDateOfFirstWeek.setFullYear(i, 0, firstWeekContainsDate); firstDateOfFirstWeek.setHours(0, 0, 0, 0); firstDateOfFirstWeek = startOfWeek(firstDateOfFirstWeek, firstDayOfWeek); if (date.getTime() >= firstDateOfFirstWeek.getTime()) { break; } } return firstDateOfFirstWeek; } function getWeek(value) { var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref2$firstDayOfWeek = _ref2.firstDayOfWeek, firstDayOfWeek = _ref2$firstDayOfWeek === void 0 ? 0 : _ref2$firstDayOfWeek, _ref2$firstWeekContai = _ref2.firstWeekContainsDate, firstWeekContainsDate = _ref2$firstWeekContai === void 0 ? 1 : _ref2$firstWeekContai; var date = toDate(value); var firstDateOfThisWeek = startOfWeek(date, firstDayOfWeek); var firstDateOfFirstWeek = startOfWeekYear(date, { firstDayOfWeek: firstDayOfWeek, firstWeekContainsDate: firstWeekContainsDate }); var diff = firstDateOfThisWeek.getTime() - firstDateOfFirstWeek.getTime(); return Math.round(diff / (7 * 24 * 3600 * 1000)) + 1; } var locale = { months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], weekdaysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], firstDayOfWeek: 0, firstWeekContainsDate: 1 }; var REGEX_FORMAT = /\[([^\]]+)]|YYYY|YY?|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|m{1,2}|s{1,2}|Z{1,2}|S{1,3}|w{1,2}|x|X|a|A/g; function pad(val) { var len = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2; var output = "".concat(Math.abs(val)); var sign = val < 0 ? '-' : ''; while (output.length < len) { output = "0".concat(output); } return sign + output; } function getOffset(date) { return Math.round(date.getTimezoneOffset() / 15) * 15; } function formatTimezone(offset) { var delimeter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var sign = offset > 0 ? '-' : '+'; var absOffset = Math.abs(offset); var hours = Math.floor(absOffset / 60); var minutes = absOffset % 60; return sign + pad(hours, 2) + delimeter + pad(minutes, 2); } var meridiem = function meridiem(h, _, isLowercase) { var word = h < 12 ? 'AM' : 'PM'; return isLowercase ? word.toLocaleLowerCase() : word; }; var formatFlags = { Y: function Y(date) { var y = date.getFullYear(); return y <= 9999 ? "".concat(y) : "+".concat(y); }, // Year: 00, 01, ..., 99 YY: function YY(date) { return pad(date.getFullYear(), 4).substr(2); }, // Year: 1900, 1901, ..., 2099 YYYY: function YYYY(date) { return pad(date.getFullYear(), 4); }, // Month: 1, 2, ..., 12 M: function M(date) { return date.getMonth() + 1; }, // Month: 01, 02, ..., 12 MM: function MM(date) { return pad(date.getMonth() + 1, 2); }, MMM: function MMM(date, locale) { return locale.monthsShort[date.getMonth()]; }, MMMM: function MMMM(date, locale) { return locale.months[date.getMonth()]; }, // Day of month: 1, 2, ..., 31 D: function D(date) { return date.getDate(); }, // Day of month: 01, 02, ..., 31 DD: function DD(date) { return pad(date.getDate(), 2); }, // Hour: 0, 1, ... 23 H: function H(date) { return date.getHours(); }, // Hour: 00, 01, ..., 23 HH: function HH(date) { return pad(date.getHours(), 2); }, // Hour: 1, 2, ..., 12 h: function h(date) { var hours = date.getHours(); if (hours === 0) { return 12; } if (hours > 12) { return hours % 12; } return hours; }, // Hour: 01, 02, ..., 12 hh: function hh() { var hours = formatFlags.h.apply(formatFlags, arguments); return pad(hours, 2); }, // Minute: 0, 1, ..., 59 m: function m(date) { return date.getMinutes(); }, // Minute: 00, 01, ..., 59 mm: function mm(date) { return pad(date.getMinutes(), 2); }, // Second: 0, 1, ..., 59 s: function s(date) { return date.getSeconds(); }, // Second: 00, 01, ..., 59 ss: function ss(date) { return pad(date.getSeconds(), 2); }, // 1/10 of second: 0, 1, ..., 9 S: function S(date) { return Math.floor(date.getMilliseconds() / 100); }, // 1/100 of second: 00, 01, ..., 99 SS: function SS(date) { return pad(Math.floor(date.getMilliseconds() / 10), 2); }, // Millisecond: 000, 001, ..., 999 SSS: function SSS(date) { return pad(date.getMilliseconds(), 3); }, // Day of week: 0, 1, ..., 6 d: function d(date) { return date.getDay(); }, // Day of week: 'Su', 'Mo', ..., 'Sa' dd: function dd(date, locale) { return locale.weekdaysMin[date.getDay()]; }, // Day of week: 'Sun', 'Mon',..., 'Sat' ddd: function ddd(date, locale) { return locale.weekdaysShort[date.getDay()]; }, // Day of week: 'Sunday', 'Monday', ...,'Saturday' dddd: function dddd(date, locale) { return locale.weekdays[date.getDay()]; }, // AM, PM A: function A(date, locale) { var meridiemFunc = locale.meridiem || meridiem; return meridiemFunc(date.getHours(), date.getMinutes(), false); }, // am, pm a: function a(date, locale) { var meridiemFunc = locale.meridiem || meridiem; return meridiemFunc(date.getHours(), date.getMinutes(), true); }, // Timezone: -01:00, +00:00, ... +12:00 Z: function Z(date) { return formatTimezone(getOffset(date), ':'); }, // Timezone: -0100, +0000, ... +1200 ZZ: function ZZ(date) { return formatTimezone(getOffset(date)); }, // Seconds timestamp: 512969520 X: function X(date) { return Math.floor(date.getTime() / 1000); }, // Milliseconds timestamp: 512969520900 x: function x(date) { return date.getTime(); }, w: function w(date, locale) { return getWeek(date, { firstDayOfWeek: locale.firstDayOfWeek, firstWeekContainsDate: locale.firstWeekContainsDate }); }, ww: function ww(date, locale) { return pad(formatFlags.w(date, locale), 2); } }; function format(val, str) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var formatStr = str ? String(str) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'; var date = toDate(val); if (!isValidDate(date)) { return 'Invalid Date'; } var locale$1 = options.locale || locale; return formatStr.replace(REGEX_FORMAT, function (match, p1) { if (p1) { return p1; } if (typeof formatFlags[match] === 'function') { return "".concat(formatFlags[match](date, locale$1)); } return match; }); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(source, true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); } function _nonIterableRest$1() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } function _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; } function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var formattingTokens = /(\[[^\[]*\])|(MM?M?M?|Do|DD?|ddd?d?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|S{1,3}|x|X|ZZ?|.)/g; var match1 = /\d/; // 0 - 9 var match2 = /\d\d/; // 00 - 99 var match3 = /\d{3}/; // 000 - 999 var match4 = /\d{4}/; // 0000 - 9999 var match1to2 = /\d\d?/; // 0 - 99 var matchShortOffset = /[+-]\d\d:?\d\d/; // +00:00 -00:00 +0000 or -0000 var matchSigned = /[+-]?\d+/; // -inf - inf var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 // const matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; // Word var YEAR = 'year'; var MONTH = 'month'; var DAY = 'day'; var HOUR = 'hour'; var MINUTE = 'minute'; var SECOND = 'second'; var MILLISECOND = 'millisecond'; var parseFlags = {}; var addParseFlag = function addParseFlag(token, regex, callback) { var tokens = Array.isArray(token) ? token : [token]; var func; if (typeof callback === 'string') { func = function func(input) { var value = parseInt(input, 10); return _defineProperty$1({}, callback, value); }; } else { func = callback; } tokens.forEach(function (key) { parseFlags[key] = [regex, func]; }); }; var escapeStringRegExp = function escapeStringRegExp(str) { return str.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); }; var matchWordRegExp = function matchWordRegExp(localeKey) { return function (locale) { var array = locale[localeKey]; if (!Array.isArray(array)) { throw new Error("Locale[".concat(localeKey, "] need an array")); } return new RegExp(array.map(escapeStringRegExp).join('|')); }; }; var matchWordCallback = function matchWordCallback(localeKey, key) { return function (input, locale) { var array = locale[localeKey]; if (!Array.isArray(array)) { throw new Error("Locale[".concat(localeKey, "] need an array")); } var index = array.indexOf(input); if (index < 0) { throw new Error('Invalid Word'); } return _defineProperty$1({}, key, index); }; }; addParseFlag('Y', matchSigned, YEAR); addParseFlag('YY', match2, function (input) { var year = new Date().getFullYear(); var cent = Math.floor(year / 100); var value = parseInt(input, 10); value = (value > 68 ? cent - 1 : cent) * 100 + value; return _defineProperty$1({}, YEAR, value); }); addParseFlag('YYYY', match4, YEAR); addParseFlag('M', match1to2, function (input) { return _defineProperty$1({}, MONTH, parseInt(input, 10) - 1); }); addParseFlag('MM', match2, function (input) { return _defineProperty$1({}, MONTH, parseInt(input, 10) - 1); }); addParseFlag('MMM', matchWordRegExp('monthsShort'), matchWordCallback('monthsShort', MONTH)); addParseFlag('MMMM', matchWordRegExp('months'), matchWordCallback('months', MONTH)); addParseFlag('D', match1to2, DAY); addParseFlag('DD', match2, DAY); addParseFlag(['H', 'h'], match1to2, HOUR); addParseFlag(['HH', 'hh'], match2, HOUR); addParseFlag('m', match1to2, MINUTE); addParseFlag('mm', match2, MINUTE); addParseFlag('s', match1to2, SECOND); addParseFlag('ss', match2, SECOND); addParseFlag('S', match1, function (input) { return _defineProperty$1({}, MILLISECOND, parseInt(input, 10) * 100); }); addParseFlag('SS', match2, function (input) { return _defineProperty$1({}, MILLISECOND, parseInt(input, 10) * 10); }); addParseFlag('SSS', match3, MILLISECOND); function matchMeridiem(locale) { return locale.meridiemParse || /[ap]\.?m?\.?/i; } function defaultIsPM(input) { return "".concat(input).toLowerCase().charAt(0) === 'p'; } addParseFlag(['A', 'a'], matchMeridiem, function (input, locale) { var isPM = typeof locale.isPM === 'function' ? locale.isPM(input) : defaultIsPM(input); return { isPM: isPM }; }); function offsetFromString(str) { var _ref8 = str.match(/([+-]|\d\d)/g) || ['-', '0', '0'], _ref9 = _slicedToArray$1(_ref8, 3), symbol = _ref9[0], hour = _ref9[1], minute = _ref9[2]; var minutes = parseInt(hour, 10) * 60 + parseInt(minute, 10); if (minutes === 0) { return 0; } return symbol === '+' ? -minutes : +minutes; } addParseFlag(['Z', 'ZZ'], matchShortOffset, function (input) { return { offset: offsetFromString(input) }; }); addParseFlag('x', matchSigned, function (input) { return { date: new Date(parseInt(input, 10)) }; }); addParseFlag('X', matchTimestamp, function (input) { return { date: new Date(parseFloat(input) * 1000) }; }); addParseFlag('d', match1, 'weekday'); addParseFlag('dd', matchWordRegExp('weekdaysMin'), matchWordCallback('weekdaysMin', 'weekday')); addParseFlag('ddd', matchWordRegExp('weekdaysShort'), matchWordCallback('weekdaysShort', 'weekday')); addParseFlag('dddd', matchWordRegExp('weekdays'), matchWordCallback('weekdays', 'weekday')); addParseFlag('w', match1to2, 'week'); addParseFlag('ww', match2, 'week'); function to24hour(hour, isPM) { if (hour !== undefined && isPM !== undefined) { if (isPM) { if (hour < 12) { return hour + 12; } } else if (hour === 12) { return 0; } } return hour; } function getFullInputArray(input) { var backupDate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date(); var result = [0, 0, 1, 0, 0, 0, 0]; var backupArr = [backupDate.getFullYear(), backupDate.getMonth(), backupDate.getDate(), backupDate.getHours(), backupDate.getMinutes(), backupDate.getSeconds(), backupDate.getMilliseconds()]; var useBackup = true; for (var i = 0; i < 7; i++) { if (input[i] === undefined) { result[i] = useBackup ? backupArr[i] : result[i]; } else { result[i] = input[i]; useBackup = false; } } return result; } function createDate(y, m, d, h, M, s, ms) { var date; if (y < 100 && y >= 0) { date = new Date(y + 400, m, d, h, M, s, ms); if (isFinite(date.getFullYear())) { date.setFullYear(y); } } else { date = new Date(y, m, d, h, M, s, ms); } return date; } function createUTCDate() { var date; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var y = args[0]; if (y < 100 && y >= 0) { args[0] += 400; date = new Date(Date.UTC.apply(Date, args)); // eslint-disable-next-line no-restricted-globals if (isFinite(date.getUTCFullYear())) { date.setUTCFullYear(y); } } else { date = new Date(Date.UTC.apply(Date, args)); } return date; } function makeParser(dateString, format, locale) { var tokens = format.match(formattingTokens); if (!tokens) { throw new Error(); } var length = tokens.length; var mark = {}; for (var i = 0; i < length; i += 1) { var token = tokens[i]; var parseTo = parseFlags[token]; if (!parseTo) { var word = token.replace(/^\[|\]$/g, ''); if (dateString.indexOf(word) === 0) { dateString = dateString.substr(word.length); } else { throw new Error('not match'); } } else { var regex = typeof parseTo[0] === 'function' ? parseTo[0](locale) : parseTo[0]; var parser = parseTo[1]; var value = (regex.exec(dateString) || [])[0]; var obj = parser(value, locale); mark = _objectSpread({}, mark, {}, obj); dateString = dateString.replace(value, ''); } } return mark; } function parse(str, format) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; try { var _options$locale = options.locale, _locale = _options$locale === void 0 ? locale : _options$locale, _options$backupDate = options.backupDate, backupDate = _options$backupDate === void 0 ? new Date() : _options$backupDate; var parseResult = makeParser(str, format, _locale); var year = parseResult.year, month = parseResult.month, day = parseResult.day, hour = parseResult.hour, minute = parseResult.minute, second = parseResult.second, millisecond = parseResult.millisecond, isPM = parseResult.isPM, date = parseResult.date, offset = parseResult.offset, weekday = parseResult.weekday, week = parseResult.week; if (date) { return date; } var inputArray = [year, month, day, hour, minute, second, millisecond]; inputArray[3] = to24hour(inputArray[3], isPM); // check week if (week !== undefined && month === undefined && day === undefined) { // new Date(year, 3) make sure in current year var firstDate = startOfWeekYear(year === undefined ? backupDate : new Date(year, 3), { firstDayOfWeek: _locale.firstDayOfWeek, firstWeekContainsDate: _locale.firstWeekContainsDate }); return new Date(firstDate.getTime() + (week - 1) * 7 * 24 * 3600 * 1000); } var parsedDate; var result = getFullInputArray(inputArray, backupDate); if (offset !== undefined) { result[6] += offset * 60 * 1000; parsedDate = createUTCDate.apply(void 0, _toConsumableArray(result)); } else { parsedDate = createDate.apply(void 0, _toConsumableArray(result)); } // check weekday if (weekday !== undefined && parsedDate.getDay() !== weekday) { return new Date(NaN); } return parsedDate; } catch (e) { return new Date(NaN); } } // new Date(10, 0, 1) The year from 0 to 99 will be incremented by 1900 automatically. function createDate$1(y) { var M = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var d = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; var h = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; var m = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; var s = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; var ms = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0; var date = new Date(y, M, d, h, m, s, ms); if (y < 100 && y >= 0) { date.setFullYear(y); } return date; } function isValidDate$1(date) { return date instanceof Date && !isNaN(date); } function isValidRangeDate(date) { return Array.isArray(date) && date.length === 2 && date.every(isValidDate$1) && date[0] <= date[1]; } function isValidDates(dates) { return Array.isArray(dates) && dates.every(isValidDate$1); } function getValidDate(value) { var date = new Date(value); if (isValidDate$1(date)) { return date; } for (var _len = arguments.length, backup = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { backup[_key - 1] = arguments[_key]; } if (backup.length) { return getValidDate.apply(void 0, backup); } return new Date(); } function startOfYear(value) { var date = new Date(value); date.setMonth(0, 1); date.setHours(0, 0, 0, 0); return date; } function startOfMonth(value) { var date = new Date(value); date.setDate(1); date.setHours(0, 0, 0, 0); return date; } function startOfDay(value) { var date = new Date(value); date.setHours(0, 0, 0, 0); return date; } function getCalendar(_ref) { var firstDayOfWeek = _ref.firstDayOfWeek, year = _ref.year, month = _ref.month; var arr = []; // change to the last day of the last month var calendar = createDate$1(year, month, 0); var lastDayInLastMonth = calendar.getDate(); // getDay() 0 is Sunday, 1 is Monday var firstDayInLastMonth = lastDayInLastMonth - (calendar.getDay() + 7 - firstDayOfWeek) % 7; for (var i = firstDayInLastMonth; i <= lastDayInLastMonth; i++) { arr.push(createDate$1(year, month, i - lastDayInLastMonth)); } // change to the last day of the current month calendar.setMonth(month + 1, 0); var lastDayInCurrentMonth = calendar.getDate(); for (var _i = 1; _i <= lastDayInCurrentMonth; _i++) { arr.push(createDate$1(year, month, _i)); } var lastMonthLength = lastDayInLastMonth - firstDayInLastMonth + 1; var nextMonthLength = 6 * 7 - lastMonthLength - lastDayInCurrentMonth; for (var _i2 = 1; _i2 <= nextMonthLength; _i2++) { arr.push(createDate$1(year, month, lastDayInCurrentMonth + _i2)); } return arr; } function setMonth(dirtyDate, dirtyMonth) { var date = new Date(dirtyDate); var month = typeof dirtyMonth === 'function' ? dirtyMonth(date.getMonth()) : Number(dirtyMonth); var year = date.getFullYear(); var daysInMonth = createDate$1(year, month + 1, 0).getDate(); var day = date.getDate(); date.setMonth(month, Math.min(day, daysInMonth)); return date; } function setYear(dirtyDate, dirtyYear) { var date = new Date(dirtyDate); var year = typeof dirtyYear === 'function' ? dirtyYear(date.getFullYear()) : dirtyYear; date.setFullYear(year); return date; } function assignTime(target, source) { var date = new Date(target); var time = new Date(source); date.setHours(time.getHours(), time.getMinutes(), time.getSeconds()); return date; } /** * chunk the array * @param {Array} arr * @param {Number} size */ function chunk(arr, size) { if (!Array.isArray(arr)) { return []; } var result = []; var len = arr.length; var i = 0; size = size || len; while (i < len) { result.push(arr.slice(i, i += size)); } return result; } /** * isObject * @param {*} obj * @returns {Boolean} */ function isObject(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; } /** * pick object * @param {Object} obj * @param {Array|String} props */ function pick(obj, props) { if (!isObject(obj)) return {}; if (!Array.isArray(props)) { props = [props]; } var res = {}; props.forEach(function (prop) { if (prop in obj) { res[prop] = obj[prop]; } }); return res; } /** * deep merge two object without merging array * @param {object} target * @param {object} source */ function mergeDeep(target, source) { if (!isObject(target)) { return {}; } var result = target; if (isObject(source)) { Object.keys(source).forEach(function (key) { var value = source[key]; if (isObject(value) && isObject(target[key])) { value = mergeDeep(target[key], value); } result = _objectSpread2(_objectSpread2({}, result), {}, _defineProperty({}, key, value)); }); } return result; } function unwrapExports (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; } function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } var en = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var locale = { months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], weekdaysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], firstDayOfWeek: 0, firstWeekContainsDate: 1 }; var _default = locale; exports["default"] = _default; module.exports = exports.default; }); var en$1 = unwrapExports(en); var lang = { formatLocale: en$1, yearFormat: 'YYYY', monthFormat: 'MMM', monthBeforeYear: true }; var defaultLocale = 'en'; var locales = {}; locales[defaultLocale] = lang; function locale$1(name, object, isLocal) { if (typeof name !== 'string') return locales[defaultLocale]; var l = defaultLocale; if (locales[name]) { l = name; } if (object) { locales[name] = object; l = name; } if (!isLocal) { defaultLocale = l; } return locales[name] || locales[defaultLocale]; } /** * get locale object * @param {string} name lang */ function getLocale(name) { return locale$1(name, null, true); } /* istanbul ignore file */ function rafThrottle(fn) { var isRunning = false; return function fnBinfRaf() { var _this = this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } if (isRunning) return; isRunning = true; requestAnimationFrame(function () { isRunning = false; fn.apply(_this, args); }); }; } /** * get the hidden element width, height * @param {HTMLElement} element dom */ function getPopupElementSize(element) { var originalDisplay = element.style.display; var originalVisibility = element.style.visibility; element.style.display = 'block'; element.style.visibility = 'hidden'; var styles = window.getComputedStyle(element); var width = element.offsetWidth + parseInt(styles.marginLeft, 10) + parseInt(styles.marginRight, 10); var height = element.offsetHeight + parseInt(styles.marginTop, 10) + parseInt(styles.marginBottom, 10); element.style.display = originalDisplay; element.style.visibility = originalVisibility; return { width: width, height: height }; } /** * get the popup position * @param {HTMLElement} el relative element * @param {Number} targetWidth target element's width * @param {Number} targetHeight target element's height * @param {Boolean} fixed */ function getRelativePosition(el, targetWidth, targetHeight, fixed) { var left = 0; var top = 0; var offsetX = 0; var offsetY = 0; var relativeRect = el.getBoundingClientRect(); var dw = document.documentElement.clientWidth; var dh = document.documentElement.clientHeight; if (fixed) { offsetX = window.pageXOffset + relativeRect.left; offsetY = window.pageYOffset + relativeRect.top; } if (dw - relativeRect.left < targetWidth && relativeRect.right < targetWidth) { left = offsetX - relativeRect.left + 1; } else if (relativeRect.left + relativeRect.width / 2 <= dw / 2) { left = offsetX; } else { left = offsetX + relativeRect.width - targetWidth; } if (relativeRect.top <= targetHeight && dh - relativeRect.bottom <= targetHeight) { top = offsetY + dh - relativeRect.top - targetHeight; } else if (relativeRect.top + relativeRect.height / 2 <= dh / 2) { top = offsetY + relativeRect.height; } else { top = offsetY - targetHeight; } return { left: "".concat(left, "px"), top: "".concat(top, "px") }; } function getScrollParent(node) { var until = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.body; if (!node || node === until) { return null; } var style = function style(value, prop) { return getComputedStyle(value, null).getPropertyValue(prop); }; var regex = /(auto|scroll)/; var scroll = regex.test(style(node, 'overflow') + style(node, 'overflow-y') + style(node, 'overflow-x')); return scroll ? node : getScrollParent(node.parentNode, until); } // var script = { name: 'Popup', inject: { prefixClass: { default: 'mx' } }, props: { visible: { type: Boolean, default: false }, appendToBody: { type: Boolean, default: true }, appendToElement: { type: String, required: false, default: null } }, data: function data() { return { top: '', left: '' }; }, watch: { visible: { immediate: true, handler: function handler(val) { var _this = this; this.$nextTick(function () { if (val) { _this.displayPopup(); } }); } } }, mounted: function mounted() { var _this2 = this; if (this.appendToElement !== null) { document.getElementById(this.appendToElement).appendChild(this.$el); } else if (this.appendToBody) { document.body.appendChild(this.$el); } this._clickoutEvent = 'ontouchend' in document ? 'touchstart' : 'mousedown'; document.addEventListener(this._clickoutEvent, this.handleClickOutside); // change the popup position when resize or scroll var relativeElement = this.$parent.$el; this._displayPopup = rafThrottle(function () { return _this2.displayPopup(); }); this._scrollParent = getScrollParent(relativeElement) || window; this._scrollParent.addEventListener('scroll', this._displayPopup); window.addEventListener('resize', this._displayPopup); }, beforeDestroy: function beforeDestroy() { if ((this.appendToBody || this.appendToElement !== null) && this.$el.parentNode) { this.$el.parentNode.removeChild(this.$el); } document.removeEventListener(this._clickoutEvent, this.handleClickOutside); this._scrollParent.removeEventListener('scroll', this._displayPopup); window.removeEventListener('resize', this._displayPopup); }, methods: { handleClickOutside: function handleClickOutside(evt) { if (!this.visible) return; var target = evt.target; var el = this.$el; if (el && !el.contains(target)) { this.$emit('clickoutside', evt); } }, displayPopup: function displayPopup() { if (!this.visible) return; var popup = this.$el; var relativeElement = this.$parent.$el; var fixed = this.appendToBody || this.appendToElement !== null; if (!this._popupRect) { this._popupRect = getPopupElementSize(popup); } var _this$_popupRect = this._popupRect, width = _this$_popupRect.width, height = _this$_popupRect.height; var _getRelativePosition = getRelativePosition(relativeElement, width, height, fixed), left = _getRelativePosition.left, top = _getRelativePosition.top; if (this.appendToElement === null) { this.left = left; this.top = top; } } } }; function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) { if (typeof shadowMode !== 'boolean') { createInjectorSSR = createInjector; createInjector = shadowMode; shadowMode = false; } // Vue.extend constructor export interop. var options = typeof script === 'function' ? script.options : script; // render functions if (template && template.render) { options.render = template.render; options.staticRenderFns = template.staticRenderFns; options._compiled = true; // functional template if (isFunctionalTemplate) { options.functional = true; } } // scopedId if (scopeId) { options._scopeId = scopeId; } var hook; if (moduleIdentifier) { // server build hook = function hook(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 (style) { style.call(this, createInjectorSSR(context)); } // register component module identifier for async chunk inference 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 (style) { hook = shadowMode ? function (context) { style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot)); } : function (context) { style.call(this, createInjector(context)); }; } if (hook) { if (options.functional) { // register for functional component in vue file var originalRender = options.render; options.render = function renderWithStyleInjection(h, context) { hook.call(context); return originalRender(h, context); }; } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate; options.beforeCreate = existing ? [].concat(existing, hook) : [hook]; } } return script; } /* script */ var __vue_script__ = script; /* template */ var __vue_render__ = function __vue_render__() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c('transition', { attrs: { "name": _vm.prefixClass + "-zoom-in-down" } }, [_vm.visible ? _c('div', { class: _vm.prefixClass + "-datepicker-main " + _vm.prefixClass + "-datepicker-popup", style: { top: _vm.top, left: _vm.left, position: 'absolute' } }, [_vm._t("default")], 2) : _vm._e()]); }; var __vue_staticRenderFns__ = []; /* style */ var __vue_inject_styles__ = undefined; /* scoped */ var __vue_scope_id__ = undefined; /* module identifier */ var __vue_module_identifier__ = undefined; /* functional template */ var __vue_is_functional_template__ = false; /* style inject */ /* style inject SSR */ /* style inject shadow dom */ var __vue_component__ = /*#__PURE__*/normalizeComponent({ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined); /* script */ /* template */ var __vue_render__$1 = function __vue_render__() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c('svg', { attrs: { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 1024 1024", "width": "1em", "height": "1em" } }, [_c('path', { attrs: { "d": "M940.218182 107.054545h-209.454546V46.545455h-65.163636v60.50909H363.054545V46.545455H297.890909v60.50909H83.781818c-18.618182 0-32.581818 13.963636-32.581818 32.581819v805.236363c0 18.618182 13.963636 32.581818 32.581818 32.581818h861.090909c18.618182 0 32.581818-13.963636 32.581818-32.581818V139.636364c-4.654545-18.618182-18.618182-32.581818-37.236363-32.581819zM297.890909 172.218182V232.727273h65.163636V172.218182h307.2V232.727273h65.163637V172.218182h176.872727v204.8H116.363636V172.218182h181.527273zM116.363636 912.290909V442.181818h795.927273v470.109091H116.363636z" } })]); }; var __vue_staticRenderFns__$1 = []; /* style */ var __vue_inject_styles__$1 = undefined; /* scoped */ var __vue_scope_id__$1 = undefined; /* module identifier */ var __vue_module_identifier__$1 = undefined; /* functional template */ var __vue_is_functional_template__$1 = false; /* style inject */ /* style inject SSR */ /* style inject shadow dom */ var __vue_component__$1 = /*#__PURE__*/normalizeComponent({ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 }, __vue_inject_styles__$1, {}, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined); /* script */ /* template */ var __vue_render__$2 = function __vue_render__() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c('svg', { attrs: { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 24 24", "width": "1em", "height": "1em" } }, [_c('path', { attrs: { "d": "M0 0h24v24H0z", "fill": "none" } }), _vm._v(" "), _c('path', { attrs: { "d": "M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" } }), _vm._v(" "), _c('path', { attrs: { "d": "M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z" } })]); }; var __vue_staticRenderFns__$2 = []; /* style */ var __vue_inject_styles__$2 = undefined; /* scoped */ var __vue_scope_id__$2 = undefined; /* module identifier */ var __vue_module_identifier__$2 = undefined; /* functional template */ var __vue_is_functional_template__$2 = false; /* style inject */ /* style inject SSR */ /* style inject shadow dom */ var __vue_component__$2 = /*#__PURE__*/normalizeComponent({ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 }, __vue_inject_styles__$2, {}, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined); /* script */ /* template */ var __vue_render__$3 = function __vue_render__() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c('svg', { attrs: { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 1024 1024", "width": "1em", "height": "1em" } }, [_c('path', { attrs: { "d": "M810.005333 274.005333l-237.994667 237.994667 237.994667 237.994667-60.010667 60.010667-237.994667-237.994667-237.994667 237.994667-60.010667-60.010667 237.994667-237.994667-237.994667-237.994667 60.010667-60.010667 237.994667 237.994667 237.994667-237.994667z" } })]); }; var __vue_staticRenderFns__$3 = []; /* style */ var __vue_inject_styles__$3 = undefined; /* scoped */ var __vue_scope_id__$3 = undefined; /* module identifier */ var __vue_module_identifier__$3 = undefined; /* functional template */ var __vue_is_functional_template__$3 = false; /* style inject */ /* style inject SSR */ /* style inject shadow dom */ var __vue_component__$3 = /*#__PURE__*/normalizeComponent({ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 }, __vue_inject_styles__$3, {}, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined); // // // // // // // // // // // // // // // // var script$1 = { props: { type: String, disabled: Boolean }, inject: { prefixClass: { default: 'mx' } } }; /* script */ var __vue_script__$1 = script$1; /* template */ var __vue_render__$4 = function __vue_render__() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c('button', _vm._g({ class: [_vm.pre