UNPKG

wot-design

Version:

Mobile UI components built on vue.js

1,721 lines (1,504 loc) 55.7 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 = 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