UNPKG

wot-design

Version:

Mobile UI components built on vue.js

1,712 lines (1,490 loc) 78 kB
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