UNPKG

@ykcl/smart-ui-oversea

Version:

A Component Library for Vue.js.

1,548 lines (1,424 loc) 379 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 = "/dist/"; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 108); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, exports) { module.exports = require("vue"); /***/ }), /***/ 1: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return on; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return off; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return once; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return hasClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return removeClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getStyle; }); /* unused harmony export setStyle */ /* unused harmony export isScroll */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getScrollContainer; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isInContainer; }); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* istanbul ignore next */ var isServer = vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer; var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; var MOZ_HACK_REGEXP = /^moz([A-Z])/; var ieVersion = isServer ? 0 : Number(document.documentMode); /* istanbul ignore next */ var trim = function trim(string) { return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ''); }; /* istanbul ignore next */ var camelCase = function camelCase(name) { return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) { return offset ? letter.toUpperCase() : letter; }).replace(MOZ_HACK_REGEXP, 'Moz$1'); }; /* istanbul ignore next */ var on = function () { if (!isServer && document.addEventListener) { return function (element, event, handler) { if (element && event && handler) { element.addEventListener(event, handler, false); } }; } else { return function (element, event, handler) { if (element && event && handler) { element.attachEvent('on' + event, handler); } }; } }(); /* istanbul ignore next */ var off = function () { if (!isServer && document.removeEventListener) { return function (element, event, handler) { if (element && event) { element.removeEventListener(event, handler, false); } }; } else { return function (element, event, handler) { if (element && event) { element.detachEvent('on' + event, handler); } }; } }(); /* istanbul ignore next */ var once = function once(el, event, fn) { var listener = function listener() { if (fn) { fn.apply(this, arguments); } off(el, event, listener); }; on(el, event, listener); }; /* istanbul ignore next */ function hasClass(el, cls) { if (!el || !cls) return false; if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.'); if (el.classList) { return el.classList.contains(cls); } else { return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1; } }; /* istanbul ignore next */ function addClass(el, cls) { if (!el) return; var curClass = el.className; var classes = (cls || '').split(' '); for (var i = 0, j = classes.length; i < j; i++) { var clsName = classes[i]; if (!clsName) continue; if (el.classList) { el.classList.add(clsName); } else if (!hasClass(el, clsName)) { curClass += ' ' + clsName; } } if (!el.classList) { el.setAttribute('class', curClass); } }; /* istanbul ignore next */ function removeClass(el, cls) { if (!el || !cls) return; var classes = cls.split(' '); var curClass = ' ' + el.className + ' '; for (var i = 0, j = classes.length; i < j; i++) { var clsName = classes[i]; if (!clsName) continue; if (el.classList) { el.classList.remove(clsName); } else if (hasClass(el, clsName)) { curClass = curClass.replace(' ' + clsName + ' ', ' '); } } if (!el.classList) { el.setAttribute('class', trim(curClass)); } }; /* istanbul ignore next */ var getStyle = ieVersion < 9 ? function (element, styleName) { if (isServer) return; if (!element || !styleName) return null; styleName = camelCase(styleName); if (styleName === 'float') { styleName = 'styleFloat'; } try { switch (styleName) { case 'opacity': try { return element.filters.item('alpha').opacity / 100; } catch (e) { return 1.0; } default: return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null; } } catch (e) { return element.style[styleName]; } } : function (element, styleName) { if (isServer) return; if (!element || !styleName) return null; styleName = camelCase(styleName); if (styleName === 'float') { styleName = 'cssFloat'; } try { var computed = document.defaultView.getComputedStyle(element, ''); return element.style[styleName] || computed ? computed[styleName] : null; } catch (e) { return element.style[styleName]; } }; /* istanbul ignore next */ function setStyle(element, styleName, value) { if (!element || !styleName) return; if ((typeof styleName === 'undefined' ? 'undefined' : _typeof(styleName)) === 'object') { for (var prop in styleName) { if (styleName.hasOwnProperty(prop)) { setStyle(element, prop, styleName[prop]); } } } else { styleName = camelCase(styleName); if (styleName === 'opacity' && ieVersion < 9) { element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')'; } else { element.style[styleName] = value; } } }; var isScroll = function isScroll(el, vertical) { if (isServer) return; var determinedDirection = vertical !== null && vertical !== undefined; var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow'); return overflow.match(/(scroll|auto|overlay)/); }; var getScrollContainer = function getScrollContainer(el, vertical) { if (isServer) return; var parent = el; while (parent) { if ([window, document, document.documentElement].includes(parent)) { return window; } if (isScroll(parent, vertical)) { return parent; } parent = parent.parentNode; } return parent; }; var isInContainer = function isInContainer(el, container) { if (isServer || !el || !container) return false; var elRect = el.getBoundingClientRect(); var containerRect = void 0; if ([window, document, document.documentElement, null, undefined].includes(container)) { containerRect = { top: 0, right: window.innerWidth, bottom: window.innerHeight, left: 0 }; } else { containerRect = container.getBoundingClientRect(); } return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right; }; /***/ }), /***/ 10: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var element_ui_src_utils_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); var PopperJS = vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer ? function () {} : __webpack_require__(24); var stop = function stop(e) { return e.stopPropagation(); }; /** * @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper. * @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper. * @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end) * @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative). * @param {Boolean} [visible=false] Visibility of the popup element. * @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style. */ /* harmony default export */ __webpack_exports__["a"] = ({ props: { transformOrigin: { type: [Boolean, String], default: true }, placement: { type: String, default: 'bottom' }, boundariesPadding: { type: Number, default: 10 }, reference: {}, popper: {}, offset: { default: 0 }, value: Boolean, visibleArrow: Boolean, arrowOffset: { type: Number, default: 35 }, appendToBody: { type: Boolean, default: true }, popperOptions: { type: Object, default: function _default() { return { gpuAcceleration: false }; } } }, data: function data() { return { showPopper: false, currentPlacement: '' }; }, watch: { value: { immediate: true, handler: function handler(val) { this.showPopper = val; this.$emit('input', val); } }, showPopper: function showPopper(val) { if (this.disabled) return; val ? this.updatePopper() : this.destroyPopper(); this.$emit('input', val); } }, methods: { createPopper: function createPopper() { var _this = this; if (this.$isServer) return; this.currentPlacement = this.currentPlacement || this.placement; if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) { return; } var options = this.popperOptions; var popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper; var reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference; if (!reference && this.$slots.reference && this.$slots.reference[0]) { reference = this.referenceElm = this.$slots.reference[0].elm; } if (!popper || !reference) return; if (this.visibleArrow) this.appendArrow(popper); if (this.appendToBody) document.body.appendChild(this.popperElm); if (this.popperJS && this.popperJS.destroy) { this.popperJS.destroy(); } options.placement = this.currentPlacement; options.offset = this.offset; options.arrowOffset = this.arrowOffset; options.boundariesPadding = this.boundariesPadding; this.popperJS = new PopperJS(reference, popper, options); this.popperJS.onCreate(function (_) { _this.$emit('created', _this); _this.resetTransformOrigin(); _this.$nextTick(_this.updatePopper); }); if (typeof options.onUpdate === 'function') { this.popperJS.onUpdate(options.onUpdate); } this.popperJS._popper.style.zIndex = element_ui_src_utils_popup__WEBPACK_IMPORTED_MODULE_1__[/* PopupManager */ "a"].nextZIndex(); this.popperElm.addEventListener('click', stop); }, updatePopper: function updatePopper() { var popperJS = this.popperJS; if (popperJS) { popperJS.update(); if (popperJS._popper) { popperJS._popper.style.zIndex = element_ui_src_utils_popup__WEBPACK_IMPORTED_MODULE_1__[/* PopupManager */ "a"].nextZIndex(); } } else { this.createPopper(); } }, doDestroy: function doDestroy(forceDestroy) { /* istanbul ignore if */ if (!this.popperJS || this.showPopper && !forceDestroy) return; this.popperJS.destroy(); this.popperJS = null; }, destroyPopper: function destroyPopper() { if (this.popperJS) { this.resetTransformOrigin(); } }, resetTransformOrigin: function resetTransformOrigin() { if (!this.transformOrigin) return; var placementMap = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' }; var placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0]; var origin = placementMap[placement]; this.popperJS._popper.style.transformOrigin = typeof this.transformOrigin === 'string' ? this.transformOrigin : ['top', 'bottom'].indexOf(placement) > -1 ? 'center ' + origin : origin + ' center'; }, appendArrow: function appendArrow(element) { var hash = void 0; if (this.appended) { return; } this.appended = true; for (var item in element.attributes) { if (/^_v-/.test(element.attributes[item].name)) { hash = element.attributes[item].name; break; } } var arrow = document.createElement('div'); if (hash) { arrow.setAttribute(hash, ''); } arrow.setAttribute('x-arrow', ''); arrow.className = 'popper__arrow'; element.appendChild(arrow); } }, beforeDestroy: function beforeDestroy() { this.doDestroy(true); if (this.popperElm && this.popperElm.parentNode === document.body) { this.popperElm.removeEventListener('click', stop); document.body.removeChild(this.popperElm); } }, // call destroy in keep-alive mode deactivated: function deactivated() { this.$options.beforeDestroy[0].call(this); } }); /***/ }), /***/ 108: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./packages/date-picker/src/picker.vue + 4 modules var picker = __webpack_require__(40); // CONCATENATED MODULE: ./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date.vue?vue&type=template&id=6655ef3d var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "transition", { attrs: { name: "yk-zoom-in-top" }, on: { "after-enter": _vm.handleEnter, "after-leave": _vm.handleLeave }, }, [ _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.visible, expression: "visible", }, ], staticClass: "yk-picker-panel yk-date-picker yk-popper", class: [ { "has-time": _vm.showTime, }, _vm.popperClass, ], }, [ _c( "div", { staticClass: "yk-picker-panel__body-wrapper" }, [ _vm._t("sidebar"), _c("div", { staticClass: "yk-picker-panel__body" }, [ _vm.showTime ? _c("div", { staticClass: "yk-date-picker__time-header" }, [ _c( "span", { staticClass: "yk-date-picker__editor-wrap" }, [ _c("yk-input", { attrs: { placeholder: _vm.t("el.datepicker.selectDate"), value: _vm.visibleDate, size: "small", }, on: { input: function (val) { return (_vm.userInputDate = val) }, change: _vm.handleVisibleDateChange, }, }), ], 1 ), _c( "span", { directives: [ { name: "clickoutside", rawName: "v-clickoutside", value: _vm.handleTimePickClose, expression: "handleTimePickClose", }, ], staticClass: "yk-date-picker__editor-wrap", }, [ _c("yk-input", { ref: "input", attrs: { placeholder: _vm.t("el.datepicker.selectTime"), value: _vm.visibleTime, size: "small", }, on: { focus: function ($event) { _vm.timePickerVisible = true }, input: function (val) { return (_vm.userInputTime = val) }, change: _vm.handleVisibleTimeChange, }, }), _c("time-picker", { ref: "timepicker", attrs: { "time-arrow-control": _vm.arrowControl, visible: _vm.timePickerVisible, }, on: { pick: _vm.handleTimePick, mounted: _vm.proxyTimePickerDataProperties, }, }), ], 1 ), ]) : _vm._e(), _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.currentView !== "time", expression: "currentView !== 'time'", }, ], staticClass: "yk-date-picker__header", class: { "yk-date-picker__header--bordered": _vm.currentView === "year" || _vm.currentView === "month", }, }, [ _c("button", { staticClass: "yk-picker-panel__icon-btn yk-date-picker__prev-btn yk_icon_arrow_double_left", attrs: { type: "button", "aria-label": _vm.t("el.datepicker.prevYear"), }, on: { click: _vm.prevYear }, }), _c("button", { directives: [ { name: "show", rawName: "v-show", value: _vm.currentView === "date", expression: "currentView === 'date'", }, ], staticClass: "yk-picker-panel__icon-btn yk-date-picker__prev-btn yk_icon_arrow_border_1_left", attrs: { type: "button", "aria-label": _vm.t("el.datepicker.prevMonth"), }, on: { click: _vm.prevMonth }, }), _c( "span", { staticClass: "yk-date-picker__header-label", attrs: { role: "button" }, on: { click: _vm.showYearPicker }, }, [_vm._v(_vm._s(_vm.yearLabel))] ), _c( "span", { directives: [ { name: "show", rawName: "v-show", value: _vm.currentView === "date", expression: "currentView === 'date'", }, ], staticClass: "yk-date-picker__header-label", class: { active: _vm.currentView === "month" }, attrs: { role: "button" }, on: { click: _vm.showMonthPicker }, }, [ _vm._v( _vm._s(_vm.t("el.datepicker.month" + (_vm.month + 1))) ), ] ), _c("button", { staticClass: "yk-picker-panel__icon-btn yk-date-picker__next-btn yk_icon_arrow_double_right", attrs: { type: "button", "aria-label": _vm.t("el.datepicker.nextYear"), }, on: { click: _vm.nextYear }, }), _c("button", { directives: [ { name: "show", rawName: "v-show", value: _vm.currentView === "date", expression: "currentView === 'date'", }, ], staticClass: "yk-picker-panel__icon-btn yk-date-picker__next-btn yk_icon_arrow_border_1_right", attrs: { type: "button", "aria-label": _vm.t("el.datepicker.nextMonth"), }, on: { click: _vm.nextMonth }, }), ] ), _c( "div", { staticClass: "yk-picker-panel__content" }, [ _c("date-table", { directives: [ { name: "show", rawName: "v-show", value: _vm.currentView === "date", expression: "currentView === 'date'", }, ], attrs: { "selection-mode": _vm.selectionMode, "first-day-of-week": _vm.firstDayOfWeek, value: _vm.value, "default-value": _vm.defaultValue ? new Date(_vm.defaultValue) : null, date: _vm.date, "cell-class-name": _vm.cellClassName, "disabled-date": _vm.disabledDate, }, on: { pick: _vm.handleDatePick }, }), _c("year-table", { directives: [ { name: "show", rawName: "v-show", value: _vm.currentView === "year", expression: "currentView === 'year'", }, ], attrs: { value: _vm.value, "default-value": _vm.defaultValue ? new Date(_vm.defaultValue) : null, date: _vm.date, "disabled-date": _vm.disabledDate, }, on: { pick: _vm.handleYearPick }, }), _c("month-table", { directives: [ { name: "show", rawName: "v-show", value: _vm.currentView === "month", expression: "currentView === 'month'", }, ], attrs: { value: _vm.value, "default-value": _vm.defaultValue ? new Date(_vm.defaultValue) : null, date: _vm.date, "disabled-date": _vm.disabledDate, }, on: { pick: _vm.handleMonthPick }, }), ], 1 ), ]), ], 2 ), _c( "div", { directives: [ { name: "show", rawName: "v-show", value: (_vm.footerVisible && _vm.currentView === "date") || _vm.shortcuts, expression: "(footerVisible && currentView === 'date') || shortcuts", }, ], staticClass: "yk-picker-panel__footer", }, [ _vm.shortcuts ? _c( "div", { staticClass: "yk-picker-panel__slide__left" }, _vm._l(_vm.shortcuts, function (shortcut, key) { return _c( "yk-button", { key: key, attrs: { type: "primary", size: "small", plain: "" }, on: { click: function ($event) { _vm.handleShortcutClick(shortcut) }, }, }, [_vm._v(_vm._s(shortcut.text))] ) }), 1 ) : _vm._e(), _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.footerVisible && _vm.currentView === "date", expression: "footerVisible && currentView === 'date'", }, ], staticClass: "yk-picker-panel__slide__right", }, [ _c( "yk-button", { directives: [ { name: "show", rawName: "v-show", value: _vm.selectionMode !== "dates", expression: "selectionMode !== 'dates'", }, ], staticClass: "yk-picker-panel__link-btn", attrs: { plain: "", size: "medium" }, on: { click: _vm.changeToNow }, }, [ _vm._v( "\n " + _vm._s(_vm.t("el.datepicker.now")) + "\n " ), ] ), _c( "yk-button", { staticClass: "yk-picker-panel__link-btn", attrs: { size: "medium", type: "primary" }, on: { click: _vm.confirm }, }, [ _vm._v( "\n " + _vm._s(_vm.t("el.datepicker.confirm")) + "\n " ), ] ), ], 1 ), ] ), ] ), ] ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/date-picker/src/panel/date.vue?vue&type=template&id=6655ef3d // EXTERNAL MODULE: ./src/utils/date-util.js var date_util = __webpack_require__(4); // EXTERNAL MODULE: ./src/utils/clickoutside.js var clickoutside = __webpack_require__(19); // EXTERNAL MODULE: ./src/mixins/locale.js var locale = __webpack_require__(13); // EXTERNAL MODULE: ./packages/input/index.js + 6 modules var input = __webpack_require__(18); // EXTERNAL MODULE: ./packages/button/index.js + 10 modules var packages_button = __webpack_require__(22); // EXTERNAL MODULE: ./packages/date-picker/src/panel/time.vue + 4 modules var panel_time = __webpack_require__(37); // CONCATENATED MODULE: ./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/year-table.vue?vue&type=template&id=f25b9674 var year_tablevue_type_template_id_f25b9674_render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "table", { staticClass: "yk-year-table", on: { click: _vm.handleYearTableClick } }, [ _c("tbody", [ _c("tr", [ _c( "td", { staticClass: "available prev-year", class: _vm.getCellStyle(_vm.startYear - 1), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear - 1)), ]), ] ), _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 0), }, [_c("a", { staticClass: "cell" }, [_vm._v(_vm._s(_vm.startYear))])] ), _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 1), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 1)), ]), ] ), ]), _c("tr", [ _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 2), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 2)), ]), ] ), _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 3), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 3)), ]), ] ), _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 4), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 4)), ]), ] ), ]), _c("tr", [ _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 5), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 5)), ]), ] ), _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 6), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 6)), ]), ] ), _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 7), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 7)), ]), ] ), ]), _c("tr", [ _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 8), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 8)), ]), ] ), _c( "td", { staticClass: "available", class: _vm.getCellStyle(_vm.startYear + 9), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 9)), ]), ] ), _c( "td", { staticClass: "available next-year", class: _vm.getCellStyle(_vm.startYear + 10), }, [ _c("a", { staticClass: "cell" }, [ _vm._v(_vm._s(_vm.startYear + 10)), ]), ] ), ]), ]), ] ) } var year_tablevue_type_template_id_f25b9674_staticRenderFns = [] year_tablevue_type_template_id_f25b9674_render._withStripped = true // CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue?vue&type=template&id=f25b9674 // EXTERNAL MODULE: ./src/utils/dom.js var dom = __webpack_require__(1); // EXTERNAL MODULE: ./src/utils/util.js var util = __webpack_require__(3); // CONCATENATED MODULE: ./node_modules/_babel-loader@7.1.5@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/year-table.vue?vue&type=script&lang=js // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // var year_tablevue_type_script_lang_js_datesInYear = function datesInYear(year) { var numOfDays = Object(date_util["h" /* getDayCountOfYear */])(year); var firstDay = new Date(year, 0, 1); return Object(date_util["D" /* range */])(numOfDays).map(function (n) { return Object(date_util["w" /* nextDate */])(firstDay, n); }); }; /* harmony default export */ var year_tablevue_type_script_lang_js = ({ props: { disabledDate: {}, value: {}, defaultValue: { validator: function validator(val) { // null or valid Date Object return val === null || val instanceof Date && Object(date_util["q" /* isDate */])(val); } }, date: {} }, computed: { startYear: function startYear() { return Math.floor(this.date.getFullYear() / 10) * 10; } }, methods: { getCellStyle: function getCellStyle(year) { var style = {}; var today = new Date(); style.disabled = typeof this.disabledDate === 'function' ? year_tablevue_type_script_lang_js_datesInYear(year).every(this.disabledDate) : false; style.current = Object(util["b" /* arrayFindIndex */])(Object(util["e" /* coerceTruthyValueToArray */])(this.value), function (date) { return date.getFullYear() === year; }) >= 0; style.today = today.getFullYear() === year; style.default = this.defaultValue && this.defaultValue.getFullYear() === year; return style; }, handleYearTableClick: function handleYearTableClick(event) { var target = event.target; if (target.tagName === 'A') { if (Object(dom["d" /* hasClass */])(target.parentNode, 'disabled')) return; var year = target.textContent || target.innerText; this.$emit('pick', Number(year)); } } } }); // CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue?vue&type=script&lang=js /* harmony default export */ var basic_year_tablevue_type_script_lang_js = (year_tablevue_type_script_lang_js); // EXTERNAL MODULE: ./node_modules/_vue-loader@15.11.1@vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(2); // CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( basic_year_tablevue_type_script_lang_js, year_tablevue_type_template_id_f25b9674_render, year_tablevue_type_template_id_f25b9674_staticRenderFns, false, null, null, null ) /* harmony default export */ var year_table = (component.exports); // CONCATENATED MODULE: ./node_modules/_vue-loader@15.11.1@vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/month-table.vue?vue&type=template&id=5c19c79e var month_tablevue_type_template_id_5c19c79e_render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "table", { staticClass: "yk-month-table", on: { click: _vm.handleMonthTableClick, mousemove: _vm.handleMouseMove }, }, [ _c( "tbody", _vm._l(_vm.rows, function (row, key) { return _c( "tr", { key: key }, _vm._l(row, function (cell, key) { return _c("td", { key: key, class: _vm.getCellStyle(cell) }, [ _c("div", [ _c("a", { staticClass: "cell" }, [ _vm._v( _vm._s( _vm.t("el.datepicker.months." + _vm.months[cell.text]) ) ), ]), ]), ]) }), 0 ) }), 0 ), ] ) } var month_tablevue_type_template_id_5c19c79e_staticRenderFns = [] month_tablevue_type_template_id_5c19c79e_render._withStripped = true // CONCATENATED MODULE: ./packages/date-picker/src/basic/month-table.vue?vue&type=template&id=5c19c79e // CONCATENATED MODULE: ./node_modules/_babel-loader@7.1.5@babel-loader/lib!./node_modules/_vue-loader@15.11.1@vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/month-table.vue?vue&type=script&lang=js // // // // // // // // // // // // // // var month_tablevue_type_script_lang_js_datesInMonth = function datesInMonth(year, month) { var numOfDays = Object(date_util["g" /* getDayCountOfMonth */])(year, month); var firstDay = new Date(year, month, 1); return Object(date_util["D" /* range */])(numOfDays).map(function (n) { return Object(date_util["w" /* nextDate */])(firstDay, n); }); }; var clearDate = function clearDate(date) { return new Date(date.getFullYear(), date.getMonth()); }; var getMonthTimestamp = function getMonthTimestamp(time) { if (typeof time === 'number' || typeof time === 'string') { return clearDate(new Date(time)).getTime(); } else if (time instanceof Date) { return clearDate(time).getTime(); } else { return NaN; } }; /* harmony default export */ var month_tablevue_type_script_lang_js = ({ props: { disabledDate: {}, value: {}, selectionMode: { default: 'month' }, minDate: {}, maxDate: {}, defaultValue: { validator: function validator(val) { // null or valid Date Object return val === null || Object(date_util["q" /* isDate */])(val) || Array.isArray(val) && val.every(date_util["q" /* isDate */]); } }, date: {}, rangeState: { default: function _default() { return { endDate: null, selecting: false }; } } }, mixins: [locale["a" /* default */]], watch: { 'rangeState.endDate': function rangeStateEndDate(newVal) { this.markRange(this.minDate, newVal); }, minDate: function minDate(newVal, oldVal) { if (getMonthTimestamp(newVal) !== getMonthTimestamp(oldVal)) { this.markRange(this.minDate, this.maxDate); } }, maxDate: function maxDate(newVal, oldVal) { if (getMonthTimestamp(newVal) !== getMonthTimestamp(oldVal)) { this.markRange(this.minDate, this.maxDate); } } }, data: function data() { return { months: ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'], tableRows: [[], [], [], []], lastRow: null, lastColumn: null }; }, methods: { cellMatchesDate: function cellMatchesDate(cell, date) { var value = new Date(date); return this.date.getFullYear() === value.getFullYear() && Number(cell.text) === value.getMonth(); }, getCellStyle: function getCellStyle(cell) { var _this = this; var style = {}; var year = this.date.getFullYear(); var today = new Date(); var month = cell.text; var defaultValue = this.defaultValue ? Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue] : []; style.disabled = typeof this.disabledDate === 'function' ? month_tablevue_type_script_lang_js_datesInMonth(year, month).every(this.disabledDate) : false; style.current = Object(util["b" /* arrayFindIndex */])(Object(util["e" /* coerceTruthyValueToArray */])(this.value), function (date) { return date.getFullYear() === year && date.getMonth() === month; }) >= 0; style.today = today.getFullYear() === year && today.getMonth() === month; style.default = defaultValue.some(function (date) { return _this.cellMatchesDate(cell, date); }); if (cell.inRange) { style['in-range'] = true; if (cell.start) { style['start-date'] = true; } if (cell.end) { style['end-date'] = true; } } return style; }, getMonthOfCell: function getMonthOfCell(month) { var year = this.date.getFullYear(); return new Date(year, month, 1); }, markRange: function markRange(minDate, maxDate) { minDate = getMonthTimestamp(minDate); maxDate = getMonthTimestamp(maxDate) || minDate; var _ref = [Math.min(minDate, maxDate), Math.max(minDate, maxDate)]; minDate = _ref[0]; maxDate = _ref[1]; var rows = this.rows; for (var i = 0, k = rows.length; i < k; i++) { var row = rows[i]; for (var j = 0, l = row.length; j < l; j++) { var cell = row[j]; var index = i * 3 + j; var time = new Date(this.date.getFullYear(), index).getTime(); cell.inRange = minDate && time >= minDate && time <= maxDate; cell.start = minDate && time === minDate; cell.end = maxDate && time === maxDate; } } }, handleMouseMove: function handleMouseMove(event) { if (!this.rangeState.selecting) return; var target = event.target; if (target.tagName === 'A') { target = target.parentNode.parentNode; } if (target.tagName === 'DIV') { target = target.parentNode; } if (target.tagName !== 'TD') return; var row = target.parentNode.rowIndex; var column = target.cellIndex; // can not select disabled date if (this.rows[row][column].disabled) return; // only update rangeState when mouse moves to a new cell // this avoids frequent Date object creation and improves performance if (row !== this.lastRow || column !== this.lastColumn) { this.lastRow = row; this.lastColumn = column; this.$emit('changerange', { minDate: this.minDate, maxDate: this.maxDate, rangeState: { selecting: true, endDate: this.getMonthOfCell(row * 3 + column) } }); } }, handleMonthTableClick: function handleMonthTableClick(event) { var target = event.target; if (target.tagName === 'A') { target = target.parentNode.parentNode; } if (target.tagName === 'DIV') { target = target.parentNode; } if (target.tagName !== 'TD') return; if (Object(dom["d" /* hasClass */])(target, 'disabled')) return; var column = target.cellIndex; var row = target.parentNode.rowIndex; var month = row * 3 + column; var newDate = this.getMonthOfCell(month); if (this.selectionMode === 'range') { if (!this.rangeState.selecting) { this.$emit('pick', { minDate: newDate, maxDate: null }); this.rangeState.selecting = true; } else { if (newDate >= this.minDate) { this.$emit('pick', { minDate: this.minDate, maxDate: newDate }); } else { this.$emit('pick', { minDate: newDate, maxDate: this.minDate }); } this.rangeState.selecting = false; } } else { this.$emit('pick', month); } } }, computed: { rows: function rows() { var _this2 = this; // TODO: refactory rows / getCellClasses var rows = this.tableRows; var disabledDate = this.disabledDate; var selectedDate = []; var now = getMonthTimestamp(new Date()); for (var i = 0; i < 4; i++) { var row = rows[i]; var _loop = function _loop(j) { var cell = row[j]; if (!cell) { cell