wot-design
Version:
Mobile UI components built on vue.js
1,721 lines (1,504 loc) • 55.7 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, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // 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 = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 62);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
/* globals __VUE_SSR_CONTEXT__ */
// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.
function normalizeComponent (
scriptExports,
render,
staticRenderFns,
functionalTemplate,
injectStyles,
scopeId,
moduleIdentifier, /* server only */
shadowMode /* vue-cli only */
) {
// Vue.extend constructor export interop
var options = typeof scriptExports === 'function'
? scriptExports.options
: scriptExports
// render functions
if (render) {
options.render = render
options.staticRenderFns = staticRenderFns
options._compiled = true
}
// functional template
if (functionalTemplate) {
options.functional = true
}
// scopedId
if (scopeId) {
options._scopeId = 'data-v-' + 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 = shadowMode
? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
: injectStyles
}
if (hook) {
if (options.functional) {
// 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
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 {
exports: scriptExports,
options: options
}
}
/***/ }),
/***/ 1:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isServer; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isSupportSticky; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getScrollTargetEvent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return padZero; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return range; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return isEqual; });
/* unused harmony export bus */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getType; });
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
var isServer = vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer;
/**
* judge if the browser is support sticky
*/
var isSupportSticky = function isSupportSticky() {
var div = document.createElement('div');
var style = 'display: none; position: -webkit-sticky; position: sticky';
div.style.cssText = style;
var body = document.body;
body.appendChild(div);
var isSupport = /sticky/i.test(window.getComputedStyle(div).position);
body.removeChild(div);
div = null;
return isSupport;
};
/**
* get the overscroll parentNode
* @param {*} element current node
* @param {*} rootElement root node
*/
var getScrollTargetEvent = function getScrollTargetEvent(element) {
var rootElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
var currentNode = element;
while (currentNode && currentNode.tagName !== 'HTML' && currentNode.tagName !== 'BODY' && currentNode !== rootElement && currentNode.nodeType === 1) {
var overflowY = document.defaultView.getComputedStyle(currentNode).overflowY;
if (overflowY === 'auto' || overflowY === 'scroll') {
return currentNode;
}
currentNode = currentNode.parentNode;
}
return rootElement;
};
var padZero = function padZero(number) {
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
number = number + '';
while (number.length < length) {
number = '0' + number;
}
return number;
};
var range = function range(value, min, max) {
return Math.min(Math.max(value, min), max);
};
/** @description 比较数值是否相等 */
var isEqual = function isEqual(value1, value2) {
if (value1 === value2) return true;
if (!(value1 instanceof Array)) return false;
if (!(value2 instanceof Array)) return false;
if (value1.length !== value2.length) return false;
for (var i = 0; i !== value1.length; ++i) {
if (value1[i] !== value2[i]) return false;
}
return true;
};
var bus = new vue__WEBPACK_IMPORTED_MODULE_0___default.a();
/**
* @description 获取目标原始类型
* @param target 任意类型
* @returns {string} type 数据类型
*/
function getType(target) {
// 得到原生类型
var typeStr = Object.prototype.toString.call(target); // 拿到类型值
var type = typeStr.match(/\[object (\w+)\]/)[1]; // 类型值转小写并返回
return type.toLowerCase();
}
/***/ }),
/***/ 10:
/***/ (function(module, exports, __webpack_require__) {
var arrayWithHoles = __webpack_require__(24);
var iterableToArrayLimit = __webpack_require__(25);
var nonIterableRest = __webpack_require__(26);
function _slicedToArray(arr, i) {
return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
}
module.exports = _slicedToArray;
/***/ }),
/***/ 12:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/button");
/***/ }),
/***/ 17:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/action-sheet");
/***/ }),
/***/ 2:
/***/ (function(module, exports) {
module.exports = require("vue");
/***/ }),
/***/ 24:
/***/ (function(module, exports) {
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
module.exports = _arrayWithHoles;
/***/ }),
/***/ 25:
/***/ (function(module, exports) {
function _iterableToArrayLimit(arr, i) {
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;
}
module.exports = _iterableToArrayLimit;
/***/ }),
/***/ 26:
/***/ (function(module, exports) {
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
module.exports = _nonIterableRest;
/***/ }),
/***/ 3:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return compareDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return compareMonth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return compareYear; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return getMonthEndDay; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return getMonths; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return getYears; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return getWeekRange; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getDayOffset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getDayByOffset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return getWeekOffset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return getWeekByOffset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return getMonthOffset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getMonthByOffset; });
/* unused harmony export getDefaultTime */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getDateByDefaultTime; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return getTimeData; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return getWeekNumber; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return dateToTimestamp; });
/* harmony import */ var wot_design_src_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
/**
* 比较两个时间的日期是否相等
* @param {Date} date1
* @param {Date} date2
*/
function compareDate(date1, date2) {
if (!date1) return -1;
if (!date2) return 1;
var year1 = date1.getFullYear();
var year2 = date2.getFullYear();
var month1 = date1.getMonth();
var month2 = date2.getMonth();
var day1 = date1.getDate();
var day2 = date2.getDate();
if (year1 === year2) {
if (month1 === month2) {
return day1 === day2 ? 0 : day1 > day2 ? 1 : -1;
}
return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
}
return year1 > year2 ? 1 : -1;
}
/**
* 比较两个日期的月份是否相等
* @param {Date} date1
* @param {Date} date2
*/
function compareMonth(date1, date2) {
if (!date1) return -1;
if (!date2) return 1;
var year1 = date1.getFullYear();
var year2 = date2.getFullYear();
var month1 = date1.getMonth();
var month2 = date2.getMonth();
if (year1 === year2) {
return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
}
return year1 > year2 ? 1 : -1;
}
/**
* 比较两个日期的年份是否一致
* @param {Date} date1
* @param {Date} date2
*/
function compareYear(date1, date2) {
var year1 = date1.getFullYear();
var year2 = date2.getFullYear();
return year1 === year2 ? 0 : year1 > year2 ? 1 : -1;
}
/**
* 获取一个月的最后一天
* @param {number} year
* @param {number} month
*/
function getMonthEndDay(year, month) {
return 32 - new Date(year, month - 1, 32).getDate();
}
/**
* 根据最小日期和最大日期获取这之间总共有几个月份
* @param {Date} minDate
* @param {Date} maxDate
*/
function getMonths(minDate, maxDate) {
var months = [];
var month = new Date(minDate.getTime());
month.setDate(1);
while (compareMonth(month, maxDate) < 1) {
months.push(new Date(month.getTime()));
month.setMonth(month.getMonth() + 1);
}
return months;
}
/**
* 根据最小日期和最大日期获取这之间总共有几年
* @param {Date} minDate
* @param {Date} maxDate
*/
function getYears(minDate, maxDate) {
var years = [];
var year = new Date(minDate.getTime());
year.setMonth(0);
year.setDate(1);
while (compareYear(year, maxDate) < 1) {
years.push(new Date(year.getTime()));
year.setFullYear(year.getFullYear() + 1);
}
return years;
}
/**
* 获取一个日期所在周的第一天和最后一天
* @param {Date} date
*/
function getWeekRange(date, firstDayOfWeek) {
if (firstDayOfWeek >= 7) {
firstDayOfWeek = firstDayOfWeek % 7;
}
date = new Date(date.getTime());
date.setHours(0, 0, 0, 0);
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
var week = date.getDay();
var weekStart = new Date(year, month, day - (7 + week - firstDayOfWeek) % 7);
var weekEnd = new Date(year, month, day + 6 - (7 + week - firstDayOfWeek) % 7);
return [weekStart, weekEnd];
}
/**
* 获取日期偏移量
* @param {Date} date1
* @param {Date} date2
*/
function getDayOffset(date1, date2) {
return (date1.getTime() - date2.getTime()) / (24 * 60 * 60 * 1000) + 1;
}
/**
* 获取偏移日期
* @param {Date} date
* @param {number} offset
*/
function getDayByOffset(date, offset) {
date = new Date(date.getTime());
date.setDate(date.getDate() + offset);
return date;
}
function getWeekOffset(date1, date2) {
return (date1.getTime() - date2.getTime()) / (7 * 24 * 60 * 60 * 1000) + 1;
}
function getWeekByOffset(date, offset) {
date = new Date(date.getTime());
date.setDate(date.getDate() + offset * 7);
return date;
}
/**
* 获取月份偏移量
* @param {Date} date1
* @param {Date} date2
*/
function getMonthOffset(date1, date2) {
var year1 = date1.getFullYear();
var year2 = date2.getFullYear();
var month1 = date1.getMonth();
var month2 = date2.getMonth();
month1 = (year1 - year2) * 12 + month1;
return month1 - month2 + 1;
}
/**
* 获取偏移月份
* @param {Date} date
* @param {number} offset
*/
function getMonthByOffset(date, offset) {
date = new Date(date.getTime());
date.setMonth(date.getMonth() + offset);
return date;
}
/**
* 获取默认时间,格式化为数组
* @param {array|string|null} defaultTime
*/
function getDefaultTime(defaultTime) {
if (Object(wot_design_src_utils__WEBPACK_IMPORTED_MODULE_0__[/* getType */ "b"])(defaultTime) === 'array') {
var startTime = (defaultTime[0] || '00:00:00').split(':').map(function (item) {
return parseInt(item);
});
var endTime = (defaultTime[1] || '00:00:00').split(':').map(function (item) {
return parseInt(item);
});
return [startTime, endTime];
} else {
var time = (defaultTime || '00:00:00').split(':').map(function (item) {
return parseInt(item);
});
return [time, time];
}
}
/**
* 根据默认时间获取日期
* @param {Date} date
* @param {array} defaultTime
*/
function getDateByDefaultTime(date, defaultTime) {
date = new Date(date.getTime());
date.setHours(defaultTime[0]);
date.setMinutes(defaultTime[1]);
date.setSeconds(defaultTime[2]);
return date;
}
/**
* 获取经过 iteratee 格式化后的长度为 n 的数组
* @param {number} n
* @param {function} iteratee
*/
var times = function times(n, iteratee) {
var index = -1;
var result = Array(n < 0 ? 0 : n);
while (++index < n) {
result[index] = iteratee(index);
}
return result;
};
/**
* 获取时分秒
* @param {Date} date
*/
var getTime = function getTime(date) {
return [date.getHours(), date.getMinutes(), date.getSeconds()];
};
/**
* 根据最小最大日期获取时间数据,用于填入picker
* @param {*} param0
*/
function getTimeData() {
var _this = this;
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
date = _ref.date,
minDate = _ref.minDate,
maxDate = _ref.maxDate,
isHideSecond = _ref.isHideSecond,
filter = _ref.filter;
var compareMin = compareDate(date, minDate);
var compareMax = compareDate(date, maxDate);
var minHour = 0;
var maxHour = 23;
var minMinute = 0;
var maxMinute = 59;
var minSecond = 0;
var maxSecond = 59;
if (compareMin === 0) {
var minTime = getTime(minDate);
var currentTime = getTime(date);
minHour = minTime[0];
if (minTime[0] === currentTime[0]) {
minMinute = minTime[1];
if (minTime[1] === currentTime[1]) {
minSecond = minTime[2];
}
}
}
if (compareMax === 0) {
var maxTime = getTime(maxDate);
var _currentTime = getTime(date);
maxHour = maxTime[0];
if (maxTime[0] === _currentTime[0]) {
maxMinute = maxTime[1];
if (maxTime[1] === _currentTime[1]) {
maxSecond = maxTime[2];
}
}
}
var columns = [];
var hours = times(24, function (index) {
return {
label: _this.t('wd.calendarView.hour', {
value: Object(wot_design_src_utils__WEBPACK_IMPORTED_MODULE_0__[/* padZero */ "f"])(index)
}),
value: index,
disabled: index < minHour || index > maxHour
};
});
var minutes = times(60, function (index) {
return {
label: _this.t('wd.calendarView.minute', {
value: Object(wot_design_src_utils__WEBPACK_IMPORTED_MODULE_0__[/* padZero */ "f"])(index)
}),
value: index,
disabled: index < minMinute || index > maxMinute
};
});
var seconds;
if (filter && Object(wot_design_src_utils__WEBPACK_IMPORTED_MODULE_0__[/* getType */ "b"])(filter) === 'function') {
hours = filter({
type: 'hour',
values: hours
});
minutes = filter({
type: 'minute',
values: minutes
});
}
if (!isHideSecond) {
seconds = times(60, function (index) {
return {
label: _this.t('wd.calendarView.second', {
value: Object(wot_design_src_utils__WEBPACK_IMPORTED_MODULE_0__[/* padZero */ "f"])(index)
}),
value: index,
disabled: index < minSecond || index > maxSecond
};
});
if (filter && Object(wot_design_src_utils__WEBPACK_IMPORTED_MODULE_0__[/* getType */ "b"])(filter) === 'function') {
seconds = filter({
type: 'second',
values: seconds
});
}
}
columns = isHideSecond ? [hours, minutes] : [hours, minutes, seconds];
return columns;
}
/**
* 获取当前是第几周
* @param {Date} date
*/
function getWeekNumber(date) {
date = new Date(date.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 week = 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() - week.getTime()) / 86400000 - 3 + (week.getDay() + 6) % 7) / 7);
}
function dateToTimestamp(value) {
if (value instanceof Array) {
return value.map(function (item) {
return item && item.getTime ? item.getTime() : item;
});
}
return value && value.getTime ? value.getTime() : value;
}
/***/ }),
/***/ 31:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/tabs");
/***/ }),
/***/ 32:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/tab");
/***/ }),
/***/ 33:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/calendar-view");
/***/ }),
/***/ 34:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/tag");
/***/ }),
/***/ 4:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/mixins/locale");
/***/ }),
/***/ 62:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar/src/main.vue?vue&type=template&id=6d9756be&
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{ staticClass: "wd-calendar" },
[
_c(
"div",
{ staticClass: "wd-calendar__field", on: { click: _vm.open } },
[
_vm._t("default", [
_c(
"div",
{
staticClass: "wd-calendar__cell",
class: [
{
"is-disabled": _vm.disabled,
"is-readonly": _vm.readonly,
"is-align-right": _vm.alignRight,
"is-error": _vm.error
},
_vm.size ? "is-" + _vm.size : ""
]
},
[
_vm.label || _vm.$slots.label
? _c(
"div",
{
staticClass: "wd-calendar__label",
class: {
"is-required": _vm.required
},
style: _vm.labelWidth
? "min-width: " +
_vm.labelWidth +
"; max-width: " +
_vm.labelWidth
: ""
},
[
_vm._t("label", [
_vm._v(
"\n " +
_vm._s(_vm.label) +
"\n "
)
])
],
2
)
: _vm._e(),
_vm._v(" "),
_c(
"div",
{
staticClass: "wd-calendar__value",
class: {
"wd-calendar__value--placeholder":
!_vm.value ||
(_vm.value instanceof Array && !_vm.value.length)
}
},
[
_vm._v(
_vm._s(
(!_vm.value ||
(_vm.value instanceof Array && !_vm.value.length)
? _vm.placeholder
: _vm.showValue) || _vm.t("wd.calendar.placeholder")
)
)
]
),
_vm._v(" "),
!_vm.disabled && !_vm.readonly
? _c("i", {
staticClass: "wd-calendar__arrow wd-icon-arrow-right"
})
: _vm._e()
]
)
])
],
2
),
_vm._v(" "),
_c(
"wd-action-sheet",
{
attrs: {
duration: 250,
"close-on-click-modal": _vm.closeOnClickModal,
"close-on-popstate": _vm.closeOnPopstate,
"safe-area-inset-bottom": _vm.safeAreaInsetBottom
},
on: { close: _vm.close },
model: {
value: _vm.pickerShow,
callback: function($$v) {
_vm.pickerShow = $$v
},
expression: "pickerShow"
}
},
[
_c("div", { staticClass: "wd-calendar__header" }, [
!_vm.showTypeSwitch && _vm.shortcuts.length === 0
? _c("div", { staticClass: "wd-calendar__title" }, [
_vm._v(_vm._s(_vm.title || _vm.t("wd.calendar.title")))
])
: _vm._e(),
_vm._v(" "),
_vm.showTypeSwitch
? _c(
"div",
{ staticClass: "wd-calendar__tabs" },
[
_c(
"wd-tabs",
{
ref: "tabs",
on: { change: _vm.handleTypeChange },
model: {
value: _vm.currentTab,
callback: function($$v) {
_vm.currentTab = $$v
},
expression: "currentTab"
}
},
[
_c("wd-tab", {
attrs: { title: _vm.t("wd.calendar.day") }
}),
_vm._v(" "),
_c("wd-tab", {
attrs: { title: _vm.t("wd.calendar.week") }
}),
_vm._v(" "),
_c("wd-tab", {
attrs: { title: _vm.t("wd.calendar.month") }
})
],
1
)
],
1
)
: _vm._e(),
_vm._v(" "),
_vm.shortcuts.length > 0
? _c(
"div",
{ staticClass: "wd-calendar__shortcuts" },
_vm._l(_vm.shortcuts, function(item, index) {
return _c(
"wd-tag",
{
key: item.text,
staticClass: "wd-calendar__tag",
attrs: { type: "primary", plain: "", round: "" },
on: {
click: function($event) {
return _vm.handleShortcutClick(index)
}
}
},
[_vm._v(_vm._s(item.text))]
)
}),
1
)
: _vm._e(),
_vm._v(" "),
_c("i", {
staticClass: "wd-calendar__close wd-icon-add",
on: { click: _vm.close }
})
]),
_vm._v(" "),
_c(
"div",
{
staticClass: "wd-calendar__view",
class: {
"is-show-confirm": _vm.showConfirm
}
},
[
_vm.currentType.indexOf("range") > -1
? _c(
"div",
{
staticClass: "wd-calendar__range-label",
class: {
"is-monthrange": _vm.currentType === "monthrange"
}
},
[
_c(
"div",
{
staticClass: "wd-calendar__range-label-item",
class: {
"is-placeholder":
!_vm.calendarValue || !_vm.calendarValue[0]
},
staticStyle: { "text-align": "right" }
},
[
_vm._v(
"\n " +
_vm._s(_vm.rangeLabel[0]) +
"\n "
)
]
),
_vm._v(" "),
_c(
"div",
{ staticClass: "wd-calendar__range-sperator" },
[_vm._v("/")]
),
_vm._v(" "),
_c(
"div",
{
staticClass: "wd-calendar__range-label-item",
class: {
"is-placeholder":
!_vm.calendarValue || !_vm.calendarValue[1]
}
},
[
_vm._v(
"\n " +
_vm._s(_vm.rangeLabel[1]) +
"\n "
)
]
)
]
)
: _vm._e(),
_vm._v(" "),
_c("wd-calendar-view", {
ref: "calendarView",
attrs: {
type: _vm.currentType,
"min-date": _vm.minDate,
"max-date": _vm.maxDate,
"first-day-of-week": _vm.firstDayOfWeek,
formatter: _vm.formatter,
"panel-height": _vm.panelHeight,
"max-range": _vm.maxRange,
"range-prompt": _vm.rangePrompt,
"allow-same-day": _vm.allowSameDay,
"default-time": _vm.defaultTime,
"time-filter": _vm.timeFilter,
"hide-second": _vm.hideSecond,
"show-panel-title": _vm.currentType.indexOf("range") === -1
},
on: { change: _vm.handleChange },
model: {
value: _vm.calendarValue,
callback: function($$v) {
_vm.calendarValue = $$v
},
expression: "calendarValue"
}
})
],
1
),
_vm._v(" "),
_vm.showConfirm
? _c(
"div",
{ staticClass: "wd-calendar__confirm" },
[
_c(
"wd-button",
{
attrs: { block: "", disabled: _vm.confirmBtnDisabled },
on: { click: _vm.handleConfirm }
},
[
_vm._v(
_vm._s(_vm.confirmText || _vm.t("wd.calendar.confirm"))
)
]
)
],
1
)
: _vm._e()
]
)
],
1
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./packages/calendar/src/main.vue?vue&type=template&id=6d9756be&
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(10);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/dayjs/dayjs.min.js
var dayjs_min = __webpack_require__(7);
var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
// EXTERNAL MODULE: external "wot-design/lib/mixins/locale"
var locale_ = __webpack_require__(4);
var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
// EXTERNAL MODULE: external "wot-design/lib/action-sheet"
var action_sheet_ = __webpack_require__(17);
var action_sheet_default = /*#__PURE__*/__webpack_require__.n(action_sheet_);
// EXTERNAL MODULE: external "wot-design/lib/tabs"
var tabs_ = __webpack_require__(31);
var tabs_default = /*#__PURE__*/__webpack_require__.n(tabs_);
// EXTERNAL MODULE: external "wot-design/lib/tab"
var tab_ = __webpack_require__(32);
var tab_default = /*#__PURE__*/__webpack_require__.n(tab_);
// EXTERNAL MODULE: external "wot-design/lib/calendar-view"
var calendar_view_ = __webpack_require__(33);
var calendar_view_default = /*#__PURE__*/__webpack_require__.n(calendar_view_);
// EXTERNAL MODULE: external "wot-design/lib/tag"
var tag_ = __webpack_require__(34);
var tag_default = /*#__PURE__*/__webpack_require__.n(tag_);
// EXTERNAL MODULE: external "wot-design/lib/button"
var button_ = __webpack_require__(12);
var button_default = /*#__PURE__*/__webpack_require__.n(button_);
// EXTERNAL MODULE: ./packages/calendar-view/src/utils.js
var utils = __webpack_require__(3);
// EXTERNAL MODULE: ./src/utils/index.js
var src_utils = __webpack_require__(1);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar/src/main.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var current = new Date();
var currentYear = current.getFullYear();
var currentMonth = current.getMonth();
var currentDay = current.getDate();
var mainvue_type_script_lang_js_defaultDisplayFormat = function defaultDisplayFormat(value, type) {
switch (type) {
case 'date':
return dayjs_min_default()(value).format('YYYY-MM-DD');
case 'dates':
return value.map(function (item) {
return item ? dayjs_min_default()(item).format('YYYY-MM-DD') : '';
}).join(', ');
case 'daterange':
{
var startLabel = value[0] ? dayjs_min_default()(value[0]).format('YYYY-MM-DD') : this.t('wd.calendar.startTime');
var endLabel = value[1] ? dayjs_min_default()(value[1]).format('YYYY-MM-DD') : this.t('wd.calendar.endTime');
return "".concat(startLabel, " ").concat(this.t('wd.calendar.to'), " ").concat(endLabel);
}
case 'datetime':
return dayjs_min_default()(value).format('YYYY-MM-DD HH:mm:ss');
case 'datetimerange':
{
var _startLabel = value[0] ? dayjs_min_default()(value[0]).format(this.t('wd.calendar.timeFormat')) : this.t('wd.calendar.startTime');
var _endLabel = value[1] ? dayjs_min_default()(value[1]).format(this.t('wd.calendar.timeFormat')) : this.t('wd.calendar.endTime');
return "".concat(_startLabel, " ").concat(this.t('wd.calendar.to'), "\n").concat(_endLabel);
}
case 'week':
{
var year = new Date(value).getFullYear();
var week = Object(utils["n" /* getWeekNumber */])(value);
return this.t('wd.calendar.weekFormat', {
week: Object(src_utils["f" /* padZero */])(week),
year: year
});
}
case 'weekrange':
{
var year1 = new Date(value[0]).getFullYear();
var week1 = Object(utils["n" /* getWeekNumber */])(value[0]);
var year2 = new Date(value[1]).getFullYear();
var week2 = Object(utils["n" /* getWeekNumber */])(value[1]);
var _startLabel2 = value[0] ? this.t('wd.calendar.weekFormat', {
week: Object(src_utils["f" /* padZero */])(week1),
year: year1
}) : this.t('wd.calendar.startWeek');
var _endLabel2 = value[1] ? this.t('wd.calendar.weekFormat', {
week: Object(src_utils["f" /* padZero */])(week2),
year: year2
}) : this.t('wd.calendar.endWeek');
return "".concat(_startLabel2, " - ").concat(_endLabel2);
}
case 'month':
return dayjs_min_default()(value).format('YYYY / MM');
case 'monthrange':
{
var _startLabel3 = value[0] ? dayjs_min_default()(value[0]).format('YYYY / MM') : this.t('wd.calendar.startMonth');
var _endLabel3 = value[1] ? dayjs_min_default()(value[1]).format('YYYY / MM') : this.t('wd.calendar.endMonth');
return "".concat(_startLabel3, " ").concat(this.t('wd.calendar.to'), " ").concat(_endLabel3);
}
}
};
var mainvue_type_script_lang_js_formatRange = function formatRange(value, rangeType, type) {
switch (type) {
case 'daterange':
{
if (!value) {
return rangeType === 'end' ? this.t('wd.calendar.endTime') : this.t('wd.calendar.startTime');
}
return dayjs_min_default()(value).format(this.t('wd.calendar.dateFormat'));
}
case 'datetimerange':
{
if (!value) {
return rangeType === 'end' ? this.t('wd.calendar.endTime') : this.t('wd.calendar.startTime');
}
return dayjs_min_default()(value).format(this.t('wd.calendar.timeFormat'));
}
case 'weekrange':
{
if (!value) {
return rangeType === 'end' ? this.t('wd.calendar.endWeek') : this.t('wd.calendar.startWeek');
}
var date = new Date(value);
var year = date.getFullYear();
var week = Object(utils["n" /* getWeekNumber */])(value);
return this.t('wd.calendar.weekFormat', {
year: year,
week: week
});
}
case 'monthrange':
{
if (!value) {
return rangeType === 'end' ? this.t('wd.calendar.endMonth') : this.t('wd.calendar.startMonth');
}
return dayjs_min_default()(value).format(this.t('wd.calendar.monthFormat'));
}
}
};
/* harmony default export */ var mainvue_type_script_lang_js_ = ({
name: 'WdCalendar',
mixins: [locale_default.a],
components: {
WdTabs: tabs_default.a,
WdTab: tab_default.a,
WdCalendarView: calendar_view_default.a,
WdTag: tag_default.a,
WdActionSheet: action_sheet_default.a,
WdButton: button_default.a
},
props: {
value: null,
type: {
type: String,
default: 'date'
},
minDate: {
type: Date,
default: function _default() {
return new Date(currentYear, currentMonth - 6, currentDay);
}
},
maxDate: {
type: Date,
default: function _default() {
return new Date(currentYear, currentMonth + 6, currentDay, 23, 59, 59);
}
},
firstDayOfWeek: {
type: Number,
default: 0
},
formatter: Function,
maxRange: Number,
rangePrompt: String,
allowSameDay: Boolean,
defaultTime: [String, Array],
timeFilter: Function,
hideSecond: Boolean,
label: String,
labelWidth: String,
disabled: Boolean,
readonly: Boolean,
placeholder: String,
title: String,
alignRight: Boolean,
error: Boolean,
required: Boolean,
size: String,
center: Boolean,
closeOnClickModal: {
type: Boolean,
default: true
},
showConfirm: {
type: Boolean,
default: true
},
confirmText: String,
displayFormat: Function,
innerDisplayFormat: Function,
ellipsis: Boolean,
showTypeSwitch: Boolean,
shortcuts: {
type: Array,
default: function _default() {
return [];
}
},
onShortcutsClick: Function,
beforeConfirm: Function,
closeOnPopstate: {
type: Boolean,
default: true
},
safeAreaInsetBottom: {
type: Boolean,
default: true
}
},
data: function data() {
return {
pickerShow: false,
calendarValue: '',
lastCalendarValue: '',
currentTab: 0,
lastTab: 0,
currentType: 'date',
lastCurrentType: 'date',
inited: false,
isChange: false,
showValue: ''
};
},
computed: {
panelHeight: function panelHeight() {
return this.showConfirm ? 338 : 400;
},
confirmBtnDisabled: function confirmBtnDisabled() {
var confirmBtnDisabled = false; // 范围选择未选择满,或者多日期选择未选择日期,按钮置灰不可点击
if (this.type.indexOf('range') > -1 && (!this.calendarValue || !this.calendarValue[0] || !this.calendarValue[1]) || this.type === 'dates' && (!this.calendarValue || this.calendarValue.length === 0) || !this.calendarValue) {
confirmBtnDisabled = true;
}
return confirmBtnDisabled;
},
rangeLabel: function rangeLabel() {
var _this = this;
if (this.currentType.indexOf('range') === -1) return [];
var _ref = this.calendarValue || [],
_ref2 = slicedToArray_default()(_ref, 2),
start = _ref2[0],
end = _ref2[1];
return [start, end].map(function (item, index) {
return (_this.innerDisplayFormat || mainvue_type_script_lang_js_formatRange.bind(_this))(item, index === 0 ? 'start' : 'end', _this.currentType);
});
}
},
watch: {
value: {
handler: function handler(val, oldVal) {
var _this2 = this;
if (Object(src_utils["c" /* isEqual */])(Object(utils["d" /* dateToTimestamp */])(val), Object(utils["d" /* dateToTimestamp */])(oldVal))) return;
this.calendarValue = val instanceof Array ? val.slice(0) : val;
this.$nextTick(function () {
_this2.setShowValue();
_this2.scrollIntoView();
});
},
immediate: true
},
type: {
handler: function handler(val) {
var _this3 = this;
if (this.showTypeSwitch) {
var tabs = ['date', 'week', 'month'];
var rangeTabs = ['daterange', 'weekrange', 'monthrange'];
var index = val.indexOf('range') > -1 ? rangeTabs.indexOf(val) || 0 : tabs.indexOf(val);
this.currentTab = index;
}
this.currentType = val;
this.$nextTick(function () {
_this3.setShowValue();
});
},
immediate: true
},
displayFormat: function displayFormat() {
this.setShowValue();
}
},
methods: {
scrollIntoView: function scrollIntoView() {
this.$refs.calendarView.scrollIntoView();
},
// 对外暴露方法
open: function open() {
var _this4 = this;
var disabled = this.disabled,
readonly = this.readonly;
if (disabled || readonly) return;
this.pickerShow = true;
this.lastCalendarValue = this.calendarValue instanceof Array ? this.calendarValue.slice(0) : this.calendarValue;
this.lastTab = this.currentTab;
this.lastCurrentType = this.currentType;
setTimeout(function () {
_this4.scrollIntoView();
if (_this4.showTypeSwitch) {
_this4.$refs.tabs.lineScrollIntoView();
_this4.$refs.tabs.setLineStyle(false);
}
}, 250);
},
// 对外暴露方法
close: function close() {
var _this5 = this;
this.pickerShow = false;
if (this.isChange) {
setTimeout(function () {
_this5.calendarValue = _this5.lastCurrentType instanceof Array ? _this5.lastCalendarValue.slice(0) : _this5.lastCalendarValue;
_this5.currentTab = _this5.lastTab;
_this5.currentType = _this5.lastCurrentType;
}, 250);
}
this.$emit('cancel');
},
handleTypeChange: function handleTypeChange(index) {
this.isChange = true;
var tabs = ['date', 'week', 'month'];
var rangeTabs = ['daterange', 'weekrange', 'monthrange'];
var type = this.type.indexOf('range') > -1 ? rangeTabs[index] : tabs[index];
this.currentType = type;
},
handleChange: function handleChange(value) {
this.isChange = true;
this.$emit('change', value);
if (!this.showConfirm && !this.confirmBtnDisabled) {
this.handleConfirm();
}
},
setShowValue: function setShowValue() {
if (!(this.value instanceof Array) && this.value || this.value instanceof Array && this.value.length) {
this.showValue = (this.displayFormat || mainvue_type_script_lang_js_defaultDisplayFormat.bind(this))(this.value, this.currentType);
}
},
handleConfirm: function handleConfirm() {
var _this6 = this;
if (this.beforeConfirm) {
this.beforeConfirm({
value: this.calendarValue,
resolve: function resolve(isPAss) {
isPAss && _this6.onConfirm();
}
});
} else {
this.onConfirm();
}
},
onConfirm: function onConfirm() {
this.isChange = false;
this.pickerShow = false;
this.setShowValue();
this.$emit('input', this.calendarValue);
this.$emit('confirm', this.calendarValue);
},
handleShortcutClick: function handleShortcutClick(index) {
this.isChange = true;
if (this.onShortcutsClick && typeof this.onShortcutsClick === 'function') {
var calendarValue = this.onShortcutsClick({
item: this.shortcuts[index],
index: index
});
this.calendarValue = calendarValue;
}
if (!this.showConfirm) {
this.handleConfirm();
}
}
}
});
// CONCATENATED MODULE: ./packages/calendar/src/main.vue?vue&type=script&lang=js&
/* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(0);
// CONCATENATED MODULE: ./packages/calendar/src/main.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_mainvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/calendar/src/main.vue"
/* harmony default export */ var main = (component.exports);
// CONCATENATED MODULE: ./packages/calendar/index.js
main.install = function (Vue) {
Vue.component(main.name, main);
};
/* harmony default export */ var calendar = __webpack_exports__["default"] = (main);
/***/ }),
/***/ 7:
/***/ (function(module, exports, __webpack_require__) {
!function(t,e){ true?module.exports=e():undefined}(this,function(){"use strict";var t="millisecond",e="second",n="minute",r="hour",i="day",s="week",u="month",a="quarter",o="year",f="date",h=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,c=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},$=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},l={s:$,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+$(r,2,"0")+":"+$(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,u),s=n-i<0,a=e.clone().add(r+(s?-1:1),u);return+(-(r+(n-i)/(s?i-a:a-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return{M:u,y:o,w:s,d:i,D:f,h:r,m:n,s:e,ms:t,Q:a}[h]||String(h||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},y="en",M={};M[y]=d;var m=function(t){return t instanceof S},D=function(t,e,n){var r;if(!t)r