wot-design
Version:
Mobile UI components built on vue.js
1,712 lines (1,490 loc) • 78 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 = 51);
/******/ })
/************************************************************************/
/******/ ({
/***/ 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;
/***/ }),
/***/ 18:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/picker-view");
/***/ }),
/***/ 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;
}
/***/ }),
/***/ 30:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/toast");
/***/ }),
/***/ 4:
/***/ (function(module, exports) {
module.exports = require("wot-design/lib/mixins/locale");
/***/ }),
/***/ 51:
/***/ (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-view/src/main.vue?vue&type=template&id=51e6dca3&
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{ staticClass: "wd-calendar-view" },
[
_vm.type === "month" || _vm.type === "monthrange"
? _c("year-panel", {
ref: "yearPanel",
attrs: {
type: _vm.type,
value: _vm.value,
"min-date": _vm.minDate,
"max-date": _vm.maxDate,
formatter: _vm.formatter,
"max-range": _vm.maxRange,
"range-prompt": _vm.rangePrompt,
"allow-same-day": _vm.allowSameDay,
"show-panel-title": _vm.showPanelTitle,
"default-time": _vm.formatDefauleTime,
"panel-height": _vm.panelHeight
},
on: { change: _vm.handleChange }
})
: _c("month-panel", {
ref: "monthPanel",
attrs: {
type: _vm.type,
value: _vm.value,
"min-date": _vm.minDate,
"max-date": _vm.maxDate,
"first-day-of-week": _vm.firstDayOfWeek,
formatter: _vm.formatter,
"max-range": _vm.maxRange,
"range-prompt": _vm.rangePrompt,
"allow-same-day": _vm.allowSameDay,
"show-panel-title": _vm.showPanelTitle,
"default-time": _vm.formatDefauleTime,
"panel-height": _vm.panelHeight,
"time-filter": _vm.timeFilter,
"hide-second": _vm.hideSecond
},
on: { change: _vm.handleChange }
})
],
1
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./packages/calendar-view/src/main.vue?vue&type=template&id=51e6dca3&
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar-view/src/yearPanel.vue?vue&type=template&id=b7229d66&
var yearPanelvue_type_template_id_b7229d66_render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "wd-year-panel" }, [
_vm.showPanelTitle
? _c("div", { staticClass: "wd-year-panel__title" }, [
_vm._v("\n " + _vm._s(_vm.title) + "\n ")
])
: _vm._e(),
_vm._v(" "),
_c(
"div",
{
ref: "container",
staticClass: "wd-year-panel__container",
style: {
height:
(_vm.panelHeight || 378) + (_vm.showPanelTitle ? 26 : 16) + "px"
}
},
_vm._l(_vm.years, function(item) {
return _c("year", {
key: item.getTime(),
ref: "years",
refInFor: true,
attrs: {
type: _vm.type,
date: item,
value: _vm.value,
"min-date": _vm.minDate,
"max-date": _vm.maxDate,
formatter: _vm.formatter,
"max-range": _vm.maxRange,
"range-prompt": _vm.rangePrompt,
"allow-same-day": _vm.allowSameDay,
"default-time": _vm.defaultTime
},
on: { change: _vm.handleDateChange }
})
}),
1
)
])
}
var yearPanelvue_type_template_id_b7229d66_staticRenderFns = []
yearPanelvue_type_template_id_b7229d66_render._withStripped = true
// CONCATENATED MODULE: ./packages/calendar-view/src/yearPanel.vue?vue&type=template&id=b7229d66&
// 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: ./src/utils/index.js
var utils = __webpack_require__(1);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar-view/src/year.vue?vue&type=template&id=12c105b2&
var yearvue_type_template_id_12c105b2_render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "wd-year" }, [
_c("div", { staticClass: "wd-year__title" }, [
_vm._v(_vm._s(_vm.formatTitle))
]),
_vm._v(" "),
_c(
"div",
{ staticClass: "wd-year__months" },
_vm._l(_vm.months, function(month) {
return _c(
"div",
{
key: month.date.getTime(),
staticClass: "wd-year__month",
class: [
{
"is-disabled": month.disabled
},
_vm.getItemClass(month.type, _vm.value, _vm.type)
],
on: {
click: function($event) {
return _vm.handleDateClick(month)
}
}
},
[
_c("div", { staticClass: "wd-year__month-container" }, [
_c("div", { staticClass: "wd-year__month-top" }, [
_vm._v(_vm._s(month.topInfo))
]),
_vm._v(" "),
_c("div", { staticClass: "wd-year__month-text" }, [
_vm._v(
"\n " +
_vm._s(_vm.getMonthLabel(month.date)) +
"\n "
)
]),
_vm._v(" "),
_c("div", { staticClass: "wd-year__month-bottom" }, [
_vm._v(_vm._s(month.bottomInfo))
])
])
]
)
}),
0
)
])
}
var yearvue_type_template_id_12c105b2_staticRenderFns = []
yearvue_type_template_id_12c105b2_render._withStripped = true
// CONCATENATED MODULE: ./packages/calendar-view/src/year.vue?vue&type=template&id=12c105b2&
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(10);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: external "wot-design/lib/toast"
var toast_ = __webpack_require__(30);
var toast_default = /*#__PURE__*/__webpack_require__.n(toast_);
// EXTERNAL MODULE: ./packages/calendar-view/src/utils.js
var src_utils = __webpack_require__(3);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar-view/src/year.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var yearvue_type_script_lang_js_ = ({
mixins: [locale_default.a],
props: {
type: String,
date: Date,
value: null,
minDate: Date,
maxDate: Date,
formatter: Function,
maxRange: Number,
rangePrompt: String,
allowSameDay: Boolean,
defaultTime: Array
},
computed: {
months: function months() {
var months = [];
var year = this.date.getFullYear();
for (var month = 0; month < 12; month++) {
var date = new Date(year, month, 1);
var type = this.getMonthType(date, this.value);
if (!type && Object(src_utils["b" /* compareMonth */])(date, new Date()) === 0) {
type = 'current';
}
var monthObj = this.getFormatterDate(date, month, type);
months.push(monthObj);
}
return months;
},
formatTitle: function formatTitle() {
return dayjs_min_default()(this.date).format(this.t('wd.calendarView.yearTitle'));
}
},
methods: {
getMonthLabel: function getMonthLabel(date) {
return dayjs_min_default()(date).format(this.t('wd.calendarView.month'));
},
getItemClass: function getItemClass(monthType, value) {
var classList = ['is-' + monthType];
if (this.type.indexOf('range') > -1) {
if (!value || !value[1]) {
classList.push('is-without-end');
} else if (value && value[0] && value[1]) {
if (this.type === 'monthrange' && Object(src_utils["b" /* compareMonth */])(value[0], value[1]) === 0) {
classList.push('is-same-end');
}
}
}
return classList.join(' ');
},
getMonthType: function getMonthType(date) {
if (this.type === 'monthrange') {
var _ref = this.value || [],
_ref2 = slicedToArray_default()(_ref, 2),
startDate = _ref2[0],
endDate = _ref2[1];
if (startDate && Object(src_utils["b" /* compareMonth */])(date, startDate) === 0) {
if (endDate && Object(src_utils["b" /* compareMonth */])(startDate, endDate) === 0) {
return 'same';
}
return 'start';
} else if (endDate && Object(src_utils["b" /* compareMonth */])(date, endDate) === 0) {
return 'end';
} else if (startDate && endDate && Object(src_utils["b" /* compareMonth */])(date, startDate) === 1 && Object(src_utils["b" /* compareMonth */])(date, endDate) === -1) {
return 'middle';
} else {
return '';
}
} else {
if (this.value && Object(src_utils["b" /* compareMonth */])(date, this.value) === 0) {
return 'selected';
} else {
return '';
}
}
},
handleDateClick: function handleDateClick(date) {
if (date.disabled) return;
switch (this.type) {
case 'month':
this.handleMonthChange(date);
break;
case 'monthrange':
this.handleMonthRangeChange(date);
break;
default:
this.handleMonthChange(date);
}
},
getDate: function getDate(date, isEnd) {
date = this.defaultTime && this.defaultTime.length > 0 ? Object(src_utils["e" /* getDateByDefaultTime */])(date, isEnd ? this.defaultTime[1] : this.defaultTime[0]) : date;
if (date < this.minDate) return new Date(this.minDate.getTime());
if (date > this.maxDate) return new Date(this.maxDate.getTime());
return date;
},
handleMonthChange: function handleMonthChange(date) {
if (date.type !== 'selected') {
this.$emit('change', this.getDate(date.date));
}
},
handleMonthRangeChange: function handleMonthRangeChange(date) {
var value;
var _ref3 = this.value || [],
_ref4 = slicedToArray_default()(_ref3, 2),
startDate = _ref4[0],
endDate = _ref4[1];
var compare = Object(src_utils["b" /* compareMonth */])(date.date, startDate); // 禁止选择同个日期
if (!this.allowSameDay && !endDate && compare === 0) return;
if (startDate && !endDate && compare > -1) {
if (this.maxRange && Object(src_utils["j" /* getMonthOffset */])(date.date, startDate) > this.maxRange) {
var maxEndDate = Object(src_utils["h" /* getMonthByOffset */])(startDate, this.maxRange - 1);
value = [startDate, this.getDate(maxEndDate)];
toast_default()({
msg: this.rangePrompt || this.t('wd.calendarView.rangePromptMonth', {
maxRange: this.maxRange
}),
context: this
});
} else {
value = [startDate, this.getDate(date.date)];
}
} else {
value = [this.getDate(date.date), null];
}
this.$emit('change', value);
},
getFormatterDate: function getFormatterDate(date, month, type) {
var monthObj = {
date: date,
text: month + 1,
topInfo: '',
bottomInfo: '',
type: type,
disabled: Object(src_utils["b" /* compareMonth */])(date, this.minDate) === -1 || Object(src_utils["b" /* compareMonth */])(date, this.maxDate) === 1
};
if (this.formatter) {
if (Object(utils["b" /* getType */])(this.formatter) === 'function') {
monthObj = this.formatter(monthObj);
} else {
console.error('[wot-design] error(wd-calendar-view): the formatter prop of wd-calendar-view should be a function');
}
}
return monthObj;
}
}
});
// CONCATENATED MODULE: ./packages/calendar-view/src/year.vue?vue&type=script&lang=js&
/* harmony default export */ var src_yearvue_type_script_lang_js_ = (yearvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(0);
// CONCATENATED MODULE: ./packages/calendar-view/src/year.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_yearvue_type_script_lang_js_,
yearvue_type_template_id_12c105b2_render,
yearvue_type_template_id_12c105b2_staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/calendar-view/src/year.vue"
/* harmony default export */ var src_year = (component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar-view/src/yearPanel.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var yearPanelvue_type_script_lang_js_ = ({
mixins: [locale_default.a],
components: {
Year: src_year
},
props: {
type: String,
value: null,
minDate: Date,
maxDate: Date,
formatter: Function,
maxRange: Number,
rangePrompt: String,
allowSameDay: Boolean,
showPanelTitle: Boolean,
defaultTime: Array,
panelHeight: Number
},
data: function data() {
return {
title: ''
};
},
computed: {
years: function years() {
return Object(src_utils["q" /* getYears */])(this.minDate, this.maxDate);
}
},
mounted: function mounted() {
if (this.showPanelTitle) {
this.onScroll();
this.$refs.container.addEventListener('scroll', this.onScroll);
this.$refs.container.addEventListener('touchmove', this.onScroll);
}
this.scrollIntoView();
},
beforeDestroy: function beforeDestroy() {
if (this.showPanelTitle) {
this.$refs.container.removeEventListener('scroll', this.onScroll);
this.$refs.container.removeEventListener('touchmove', this.onScroll);
}
},
methods: {
onScroll: function onScroll() {
var _this$$refs = this.$refs,
container = _this$$refs.container,
years = _this$$refs.years;
var top = container.scrollTop;
var bottom = top + container.clientHeight;
var heights = years.map(function (item) {
return item.$el.clientHeight;
});
var heightSum = heights.reduce(function (a, b) {
return a + b;
});
if (bottom > heightSum && top > 0) return;
var currentYear;
var height = 0;
for (var i = 0, len = years.length; i < len; i++) {
var visible = height < bottom && height + heights[i] > top;
if (visible && !currentYear) {
currentYear = years[i];
}
height += heights[i];
}
if (currentYear) {
this.title = dayjs_min_default()(currentYear.date).format(this.t('wd.calendarView.yearTitle'));
}
},
scrollIntoView: function scrollIntoView() {
var _this = this;
var activeDate;
var type = Object(utils["b" /* getType */])(this.value);
if (type === 'array') {
activeDate = this.value[0];
} else if (type === 'Date') {
activeDate = this.value;
}
if (!activeDate) {
activeDate = new Date();
}
this.years.some(function (year, index) {
if (Object(src_utils["c" /* compareYear */])(year, activeDate) === 0) {
var _this$$refs2 = _this.$refs,
container = _this$$refs2.container,
years = _this$$refs2.years;
container.scrollTop = years[index].$el.getBoundingClientRect().top - container.getBoundingClientRect().top + container.scrollTop;
return true;
}
return false;
});
},
handleDateChange: function handleDateChange(value) {
if (!Object(utils["c" /* isEqual */])(Object(src_utils["d" /* dateToTimestamp */])(value), Object(src_utils["d" /* dateToTimestamp */])(this.value))) {
this.$emit('change', value);
}
}
}
});
// CONCATENATED MODULE: ./packages/calendar-view/src/yearPanel.vue?vue&type=script&lang=js&
/* harmony default export */ var src_yearPanelvue_type_script_lang_js_ = (yearPanelvue_type_script_lang_js_);
// CONCATENATED MODULE: ./packages/calendar-view/src/yearPanel.vue
/* normalize component */
var yearPanel_component = Object(componentNormalizer["a" /* default */])(
src_yearPanelvue_type_script_lang_js_,
yearPanelvue_type_template_id_b7229d66_render,
yearPanelvue_type_template_id_b7229d66_staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var yearPanel_api; }
yearPanel_component.options.__file = "packages/calendar-view/src/yearPanel.vue"
/* harmony default export */ var yearPanel = (yearPanel_component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar-view/src/monthPanel.vue?vue&type=template&id=6573a964&
var monthPanelvue_type_template_id_6573a964_render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "wd-month-panel" }, [
_vm.showPanelTitle
? _c("div", { staticClass: "wd-month-panel__title" }, [
_vm._v("\n " + _vm._s(_vm.title) + "\n ")
])
: _vm._e(),
_vm._v(" "),
_c(
"div",
{ staticClass: "wd-month-panel__weeks" },
_vm._l(7, function(item) {
return _c("div", { key: item, staticClass: "wd-month-panel__week" }, [
_vm._v(_vm._s(_vm.getWeekLabel(item - 1 + _vm.firstDayOfWeek)))
])
}),
0
),
_vm._v(" "),
_c(
"div",
{
ref: "container",
staticClass: "wd-month-panel__container",
class: {
"wd-month-panel__container--time": !!_vm.timeType
},
style: {
height:
(_vm.timeType
? (_vm.panelHeight || 378) - 125
: _vm.panelHeight || 378) + "px"
}
},
_vm._l(_vm.months, function(item) {
return _c("month", {
key: item.getTime(),
ref: "months",
refInFor: true,
attrs: {
type: _vm.type,
date: item,
value: _vm.value,
"min-date": _vm.minDate,
"max-date": _vm.maxDate,
"first-day-of-week": _vm.firstDayOfWeek,
formatter: _vm.formatter,
"max-range": _vm.maxRange,
"range-prompt": _vm.rangePrompt,
"allow-same-day": _vm.allowSameDay,
"default-time": _vm.defaultTime
},
on: { change: _vm.handleDateChange }
})
}),
1
),
_vm._v(" "),
!!_vm.timeType
? _c("div", { staticClass: "wd-month-panel__time" }, [
_vm.type === "datetimerange"
? _c("div", { staticClass: "wd-month-panel__time-label" }, [
_c("div", { staticClass: "wd-month-panel__time-text" }, [
_vm._v(
_vm._s(
_vm.timeType === "start"
? _vm.t("wd.calendarView.startTime")
: _vm.t("wd.calendarView.endTime")
)
)
])
])
: _vm._e(),
_vm._v(" "),
_c(
"div",
{ staticClass: "wd-month-panel__time-picker" },
[
_c("wd-picker-view", {
attrs: { columns: _vm.timeData, "columns-height": 105 },
on: { change: _vm.handleTimeChange },
model: {
value: _vm.timeValue,
callback: function($$v) {
_vm.timeValue = $$v
},
expression: "timeValue"
}
})
],
1
)
])
: _vm._e()
])
}
var monthPanelvue_type_template_id_6573a964_staticRenderFns = []
monthPanelvue_type_template_id_6573a964_render._withStripped = true
// CONCATENATED MODULE: ./packages/calendar-view/src/monthPanel.vue?vue&type=template&id=6573a964&
// EXTERNAL MODULE: external "wot-design/lib/picker-view"
var picker_view_ = __webpack_require__(18);
var picker_view_default = /*#__PURE__*/__webpack_require__.n(picker_view_);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar-view/src/month.vue?vue&type=template&id=a1dbf2f4&
var monthvue_type_template_id_a1dbf2f4_render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c("div", { staticClass: "wd-month" }, [
_c("div", { staticClass: "wd-month__title" }, [
_vm._v(_vm._s(_vm.formatTitle))
]),
_vm._v(" "),
_c(
"div",
{ staticClass: "wd-month__days" },
_vm._l(_vm.days, function(day, index) {
return _c(
"div",
{
key: day.date.getTime(),
staticClass: "wd-month__day",
class: [
{
"is-disabled": day.disabled
},
_vm.getItemClass(day.type, _vm.value, _vm.type)
],
style: _vm.getFirstDayStyle(index, day.date, _vm.firstDayOfWeek),
on: {
click: function($event) {
return _vm.handleDateClick(day)
}
}
},
[
_c("div", { staticClass: "wd-month__day-container" }, [
_c("div", { staticClass: "wd-month__day-top" }, [
_vm._v(_vm._s(day.topInfo))
]),
_vm._v(" "),
_c("div", { staticClass: "wd-month__day-text" }, [
_vm._v("\n " + _vm._s(day.text) + "\n ")
]),
_vm._v(" "),
_c("div", { staticClass: "wd-month__day-bottom" }, [
_vm._v(_vm._s(day.bottomInfo))
])
])
]
)
}),
0
)
])
}
var monthvue_type_template_id_a1dbf2f4_staticRenderFns = []
monthvue_type_template_id_a1dbf2f4_render._withStripped = true
// CONCATENATED MODULE: ./packages/calendar-view/src/month.vue?vue&type=template&id=a1dbf2f4&
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/calendar-view/src/month.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var monthvue_type_script_lang_js_ = ({
mixins: [locale_default.a],
props: {
type: String,
date: Date,
value: null,
minDate: Date,
maxDate: Date,
firstDayOfWeek: Number,
formatter: Function,
maxRange: Number,
rangePrompt: String,
allowSameDay: Boolean,
defaultTime: Array
},
computed: {
days: function days() {
var days = [];
var year = this.date.getFullYear();
var month = this.date.getMonth();
var totalDay = Object(src_utils["i" /* getMonthEndDay */])(year, month + 1);
var value = this.value;
if ((this.type === 'week' || this.type === 'weekrange') && value) {
value = this.getWeekValue();
}
for (var day = 1; day <= totalDay; day++) {
var date = new Date(year, month, day);
var type = this.getDayType(date, value);
if (!type && Object(src_utils["a" /* compareDate */])(date, new Date()) === 0) {
type = 'current';
}
var dayObj = this.getFormatterDate(date, day, type);
days.push(dayObj);
}
return days;
},
formatTitle: function formatTitle() {
return dayjs_min_default()(this.date).format(this.t('wd.calendarView.monthTitle'));
}
},
methods: {
getItemClass: function getItemClass(monthType, value) {
var classList = ['is-' + monthType];
if (this.type.indexOf('range') > -1) {
if (!value || !value[1]) {
classList.push('is-without-end');
}
}
return classList.join(' ');
},
getFirstDayStyle: function getFirstDayStyle(index, date, firstDayOfWeek) {
if (firstDayOfWeek >= 7) {
firstDayOfWeek = firstDayOfWeek % 7;
}
if (index !== 0) return '';
var offset = (7 + date.getDay() - firstDayOfWeek) % 7;
return 'margin-left: ' + 100 / 7 * offset + '%';
},
getDayType: function getDayType(date, value) {
switch (this.type) {
case 'date':
case 'datetime':
return this.getDateType(date);
case 'dates':
return this.getDatesType(date);
case 'daterange':
case 'datetimerange':
return this.getDatetimeType(date, value);
case 'week':
return this.getWeektimeType(date, value);
case 'weekrange':
return this.getWeektimeType(date, value);
default:
return this.getDateType(date);
}
},
getDateType: function getDateType(date) {
if (this.value && Object(src_utils["a" /* compareDate */])(date, this.value) === 0) {
return 'selected';
}
return '';
},
getDatesType: function getDatesType(date) {
if (!this.value) return '';
var type = '';
this.value.some(function (item) {
if (Object(src_utils["a" /* compareDate */])(date, item) === 0) {
type = 'selected';
return true;
}
return false;
});
return type;
},
getDatetimeType: function getDatetimeType(date, value) {
var _ref = value || [],
_ref2 = slicedToArray_default()(_ref, 2),
startDate = _ref2[0],
endDate = _ref2[1];
if (startDate && Object(src_utils["a" /* compareDate */])(date, startDate) === 0) {
if (this.allowSameDay && endDate && Object(src_utils["a" /* compareDate */])(startDate, endDate) === 0) {
return 'same';
}
return 'start';
} else if (endDate && Object(src_utils["a" /* compareDate */])(date, endDate) === 0) {
return 'end';
} else if (startDate && endDate && Object(src_utils["a" /* compareDate */])(date, startDate) === 1 && Object(src_utils["a" /* compareDate */])(date, endDate) === -1) {
return 'middle';
} else {
return '';
}
},
getWeektimeType: function getWeektimeTyp