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 = "./components/calendar/index.tsx");
/******/ })
/************************************************************************/
/******/ ({

/***/ "./components/_util/hooks/useMemo.ts":
/*!*******************************************!*\
  !*** ./components/_util/hooks/useMemo.ts ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function (getValue) {\n  let cacheRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])();\n  Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"watch\"])(() => getValue(), val => {\n    if (val === cacheRef.value) return;\n    cacheRef.value = val;\n  }, {\n    immediate: true\n  });\n  return cacheRef;\n});\n\n//# sourceURL=webpack://x-ui-vue3/./components/_util/hooks/useMemo.ts?");

/***/ }),

/***/ "./components/calendar/CalendarHeader.tsx":
/*!************************************************!*\
  !*** ./components/calendar/CalendarHeader.tsx ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icon */ \"./components/icon/index.ts\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n  props: {\n    prefixCls: String,\n    value: Object,\n    title: String\n  },\n  emits: ['change', 'panelChange', 'prev', 'next'],\n\n  setup(props, {\n    attrs,\n    emit\n  }) {\n    function prev() {\n      emit('prev');\n    }\n\n    function next() {\n      emit('next');\n    }\n\n    function showMonthPanel() {\n      emit('panelChange');\n    }\n\n    return () => {\n      const {\n        prefixCls,\n        value\n      } = props;\n      return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"div\", {\n        \"class\": `${prefixCls}_header`\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"span\", {\n        \"class\": `${prefixCls}_header_title`,\n        \"onClick\": showMonthPanel\n      }, [props.title || value.format('YYYY年M月')]), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"span\", {\n        \"class\": `${prefixCls}_prev-btn`,\n        \"onClick\": prev\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(_icon__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n        \"type\": \"arrow-up\"\n      }, null)]), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"span\", {\n        \"class\": `${prefixCls}_next-btn`,\n        \"onClick\": next\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(_icon__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n        \"type\": \"arrow-down\"\n      }, null)])]);\n    };\n  }\n\n}));\n\n//# sourceURL=webpack://x-ui-vue3/./components/calendar/CalendarHeader.tsx?");

/***/ }),

/***/ "./components/calendar/MonthCalendar.tsx":
/*!***********************************************!*\
  !*** ./components/calendar/MonthCalendar.tsx ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"moment\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _CalendarHeader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CalendarHeader */ \"./components/calendar/CalendarHeader.tsx\");\n/* harmony import */ var _YearCalendar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./YearCalendar */ \"./components/calendar/YearCalendar.tsx\");\n/* harmony import */ var _useCalendar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useCalendar */ \"./components/calendar/useCalendar.ts\");\n\n\n\n\n\n\nconst monthsShort = moment__WEBPACK_IMPORTED_MODULE_1___default()().localeData().monthsShort();\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n  name: 'x-month-calendar',\n  props: {\n    prefixCls: {\n      default: 'x-month-calendar'\n    },\n    value: Object,\n    selectedValue: Array,\n    disabledDate: Function,\n    onSelect: Function\n  },\n  emits: ['change', 'panelChange'],\n\n  setup(props, {\n    emit\n  }) {\n    const {\n      valueRef,\n      monthsRef,\n      prevYear,\n      nextYear,\n      onSelect\n    } = Object(_useCalendar__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(props);\n    const visible = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n\n    function showMonthPanel() {\n      visible.value = true;\n    }\n\n    function onSelectYear(m) {\n      valueRef.value = m;\n      visible.value = false;\n    }\n\n    return () => {\n      const {\n        prefixCls\n      } = props;\n      const value = valueRef.value;\n      const trs = Array(4);\n\n      for (let i = 0; i < 4; i++) {\n        const tds = Array(4);\n\n        for (let j = 0; j < 4; j++) {\n          var _props$disabledDate;\n\n          const passed = i * 4 + j;\n          const month = monthsRef.value[passed];\n          const disabled = (_props$disabledDate = props.disabledDate) === null || _props$disabledDate === void 0 ? void 0 : _props$disabledDate.call(props, month);\n          const selected = month.isSame(value, 'month');\n          const isNextGroup = month.year() > value.year();\n          const cls = {\n            [`${prefixCls}_cell`]: true,\n            [`${prefixCls}_cell-disabled`]: disabled,\n            [`${prefixCls}_cell-selected`]: selected,\n            [`${prefixCls}_cell-next`]: isNextGroup,\n            [`${prefixCls}_cell-this`]: month.isSame(Date.now(), 'month')\n          };\n          tds[j] = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"td\", {\n            \"key\": passed,\n            \"class\": cls,\n            \"role\": \"gridcell\",\n            \"onClick\": disabled || onSelect.bind(null, month)\n          }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"div\", {\n            \"class\": `${prefixCls}_cell_text`,\n            \"aria-selected\": selected,\n            \"aria-disabled\": disabled\n          }, [monthsShort[month.month()]])]);\n        }\n\n        trs[i] = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"tr\", null, [tds]);\n      }\n\n      return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"div\", {\n        \"class\": prefixCls\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(_CalendarHeader__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n        \"prefixCls\": prefixCls,\n        \"title\": valueRef.value.format('YYYY年'),\n        \"onPrev\": prevYear,\n        \"onNext\": nextYear,\n        \"onPanelChange\": showMonthPanel\n      }, null), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"table\", {\n        \"class\": `${prefixCls}_table`,\n        \"cellspacing\": \"2\"\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"tbody\", null, [trs])]), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(vue__WEBPACK_IMPORTED_MODULE_0__[\"Transition\"], {\n        \"name\": \"calendar-ain\"\n      }, {\n        default: () => [visible.value ? Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(_YearCalendar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n          \"value\": value,\n          \"style\": 'position: absolute; top:0; left:0;',\n          \"onSelect\": onSelectYear\n        }, null) : null]\n      })]);\n    };\n  }\n\n}));\n\n//# sourceURL=webpack://x-ui-vue3/./components/calendar/MonthCalendar.tsx?");

/***/ }),

/***/ "./components/calendar/RangeCalendar.tsx":
/*!***********************************************!*\
  !*** ./components/calendar/RangeCalendar.tsx ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ \"./components/calendar/index.tsx\");\n/* harmony import */ var _util_hooks_useMemo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_util/hooks/useMemo */ \"./components/_util/hooks/useMemo.ts\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n  name: 'x-range-calendar',\n  props: {\n    prefixCls: String,\n    value: Array,\n    disabledDate: Function,\n    onSelect: Function\n  },\n  emits: ['update:value', 'change'],\n\n  setup(props, {\n    emit\n  }) {\n    const valueRef = Object(_util_hooks_useMemo__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(() => [...(props.value || [])]);\n    const hoverValueRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])([]);\n\n    function onHover(date) {\n      if (valueRef.value.length == 1) {\n        hoverValueRef.value = [valueRef.value[0], date].sort((a, b) => +a - +b);\n      }\n    }\n\n    function onSelect(date) {\n      let val = valueRef.value;\n\n      if (val.length == 1) {\n        val[1] = date.clone();\n        val.sort((a, b) => +a - +b);\n        hoverValueRef.value = [];\n        emit('update:value', [...val]);\n      } else {\n        val = valueRef.value = [date.clone()];\n      }\n\n      emit('change', [...val]);\n\n      if (val[0] && val[1]) {\n        var _props$onSelect;\n\n        (_props$onSelect = props.onSelect) === null || _props$onSelect === void 0 ? void 0 : _props$onSelect.call(props, val);\n      }\n    }\n\n    return () => {\n      const calendarProps = {\n        value: valueRef.value[0],\n        selectedValue: hoverValueRef.value.length ? hoverValueRef.value : valueRef.value,\n        disabledDate: props.disabledDate,\n        onHover,\n        onSelect\n      };\n      return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(_index__WEBPACK_IMPORTED_MODULE_1__[\"default\"], calendarProps, null);\n    };\n  }\n\n}));\n\n//# sourceURL=webpack://x-ui-vue3/./components/calendar/RangeCalendar.tsx?");

/***/ }),

/***/ "./components/calendar/YearCalendar.tsx":
/*!**********************************************!*\
  !*** ./components/calendar/YearCalendar.tsx ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _CalendarHeader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CalendarHeader */ \"./components/calendar/CalendarHeader.tsx\");\n/* harmony import */ var _useCalendar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./useCalendar */ \"./components/calendar/useCalendar.ts\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n  name: 'x-year-calendar',\n  props: {\n    prefixCls: {\n      default: 'x-month-calendar'\n    },\n    value: Object,\n    selectedValue: Array,\n    disabledDate: Function,\n    onSelect: Function\n  },\n  emits: ['change', 'panelChange'],\n\n  setup(props, {\n    emit\n  }) {\n    const {\n      valueRef,\n      yearsRef,\n      goYear,\n      onSelect\n    } = Object(_useCalendar__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props);\n\n    function showMonthPanel() {\n      emit('panelChange');\n    }\n\n    return () => {\n      const {\n        prefixCls\n      } = props;\n      const value = valueRef.value;\n      const year1 = value.clone().add(-value.year() % 10, 'years');\n      const year2 = year1.clone().add(9, 'years');\n      const trs = Array(4);\n\n      for (let i = 0; i < 4; i++) {\n        const tds = Array(4);\n\n        for (let j = 0; j < 4; j++) {\n          var _props$disabledDate;\n\n          const passed = i * 4 + j;\n          const year = yearsRef.value[passed];\n          const disabled = (_props$disabledDate = props.disabledDate) === null || _props$disabledDate === void 0 ? void 0 : _props$disabledDate.call(props, year);\n          const selected = year.isSame(value, 'month');\n          const isPrevGroup = year.year() < year1.year();\n          const isNextGroup = year.year() > year2.year();\n          const cls = {\n            [`${prefixCls}_cell`]: true,\n            [`${prefixCls}_cell-disabled`]: disabled,\n            [`${prefixCls}_cell-selected`]: selected,\n            [`${prefixCls}_cell-prev`]: isPrevGroup,\n            [`${prefixCls}_cell-next`]: isNextGroup,\n            [`${prefixCls}_cell-this`]: year.isSame(Date.now(), 'month')\n          };\n          tds[j] = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"td\", {\n            \"key\": passed,\n            \"class\": cls,\n            \"role\": \"gridcell\",\n            \"onClick\": disabled || (onSelect === null || onSelect === void 0 ? void 0 : onSelect.bind(null, year))\n          }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"div\", {\n            \"class\": `${prefixCls}_cell_text`,\n            \"aria-selected\": selected,\n            \"aria-disabled\": disabled\n          }, [year.year()])]);\n        }\n\n        trs[i] = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"tr\", null, [tds]);\n      }\n\n      return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"div\", {\n        \"class\": prefixCls\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(_CalendarHeader__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n        \"prefixCls\": prefixCls,\n        \"title\": `${year1.format('YYYY')} - ${year2.format('YYYY')}`,\n        \"onPrev\": goYear.bind(null, -10),\n        \"onNext\": goYear.bind(null, 10),\n        \"onPanelChange\": showMonthPanel\n      }, null), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"table\", {\n        \"class\": `${prefixCls}_table`,\n        \"cellspacing\": \"2\"\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"tbody\", null, [trs])])]);\n    };\n  }\n\n}));\n\n//# sourceURL=webpack://x-ui-vue3/./components/calendar/YearCalendar.tsx?");

/***/ }),

/***/ "./components/calendar/index.tsx":
/*!***************************************!*\
  !*** ./components/calendar/index.tsx ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _CalendarHeader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CalendarHeader */ \"./components/calendar/CalendarHeader.tsx\");\n/* harmony import */ var _MonthCalendar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MonthCalendar */ \"./components/calendar/MonthCalendar.tsx\");\n/* harmony import */ var _YearCalendar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./YearCalendar */ \"./components/calendar/YearCalendar.tsx\");\n/* harmony import */ var _RangeCalendar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./RangeCalendar */ \"./components/calendar/RangeCalendar.tsx\");\n/* harmony import */ var _useCalendar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./useCalendar */ \"./components/calendar/useCalendar.ts\");\n\n\n\n\n\n\n\nconst weekdays = ['日', '一', '二', '三', '四', '五', '六'];\nconst Calendar = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n  name: 'x-calendar',\n  props: {\n    prefixCls: {\n      default: 'x-calendar'\n    },\n    value: Object,\n    selectedValue: Array,\n    disabledDate: Function,\n    onSelect: Function,\n    onHover: Function\n  },\n  emits: ['change', 'panelChange'],\n\n  setup(props) {\n    const {\n      valueRef,\n      datesRef,\n      prevMonth,\n      nextMonth,\n      isSelected,\n      isInRange,\n      onSelect\n    } = Object(_useCalendar__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(props);\n    const visible = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n\n    function showMonthPanel() {\n      visible.value = true;\n    }\n\n    function onSelectMonth(m) {\n      valueRef.value = m;\n      visible.value = false;\n    }\n\n    return () => {\n      const {\n        prefixCls\n      } = props;\n      const value = valueRef.value;\n      const trs = Array(6);\n\n      for (let i = 0; i < 6; i++) {\n        const tds = Array(7);\n\n        for (let j = 0; j < 7; j++) {\n          var _props$disabledDate, _props$onHover;\n\n          const passed = i * 7 + j;\n          const date = datesRef.value[passed];\n          const disabled = (_props$disabledDate = props.disabledDate) === null || _props$disabledDate === void 0 ? void 0 : _props$disabledDate.call(props, date);\n          const isPrevGroup = date.year() < value.year() || date.month() < value.month();\n          const isNextGroup = date.year() > value.year() || date.month() > value.month();\n          const selected = isSelected(date, 'day');\n          const inRange = isInRange(date, 'day');\n          const cls = {\n            [`${prefixCls}_cell`]: true,\n            [`${prefixCls}_cell-disabled`]: disabled,\n            [`${prefixCls}_cell-selected`]: selected,\n            [`${prefixCls}_cell-in-range`]: inRange,\n            [`${prefixCls}_cell-prev`]: isPrevGroup,\n            [`${prefixCls}_cell-next`]: isNextGroup,\n            [`${prefixCls}_cell-this`]: date.isSame(Date.now(), 'day')\n          };\n          tds[j] = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"td\", {\n            \"key\": passed,\n            \"class\": cls,\n            \"role\": \"gridcell\",\n            \"onClick\": disabled || onSelect.bind(null, date),\n            \"onMouseenter\": disabled || ((_props$onHover = props.onHover) === null || _props$onHover === void 0 ? void 0 : _props$onHover.bind(null, date))\n          }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"div\", {\n            \"class\": `${prefixCls}_cell_text`,\n            \"aria-selected\": selected,\n            \"aria-disabled\": disabled\n          }, [date.date()])]);\n        }\n\n        trs[i] = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"tr\", null, [tds]);\n      }\n\n      return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"div\", {\n        \"class\": prefixCls\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(_CalendarHeader__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n        \"prefixCls\": prefixCls,\n        \"title\": value.format('YYYY年M月'),\n        \"onPrev\": prevMonth,\n        \"onNext\": nextMonth,\n        \"onPanelChange\": showMonthPanel\n      }, null), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"table\", {\n        \"class\": `${prefixCls}_table `,\n        \"cellspacing\": \"2\"\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"thead\", null, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"tr\", {\n        \"role\": \"row\"\n      }, [weekdays.map((day, i) => Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"th\", {\n        \"role\": \"columnheader\",\n        \"title\": day,\n        \"class\": `${prefixCls}_th`\n      }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"span\", {\n        \"class\": `${prefixCls}_th-text`\n      }, [day])]))])]), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"tbody\", null, [trs])]), Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(vue__WEBPACK_IMPORTED_MODULE_0__[\"Transition\"], {\n        \"name\": \"calendar-ain\"\n      }, {\n        default: () => [visible.value ? Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(_MonthCalendar__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n          \"value\": value,\n          \"style\": 'position: absolute; top:0; left:0;',\n          \"onSelect\": onSelectMonth\n        }, null) : null]\n      })]);\n    };\n  }\n\n});\n\nCalendar.install = app => {\n  app.component(Calendar.name, Calendar);\n  app.component(_MonthCalendar__WEBPACK_IMPORTED_MODULE_2__[\"default\"].name, _MonthCalendar__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n  app.component(_YearCalendar__WEBPACK_IMPORTED_MODULE_3__[\"default\"].name, _YearCalendar__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n  app.component(_RangeCalendar__WEBPACK_IMPORTED_MODULE_4__[\"default\"].name, _RangeCalendar__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Calendar);\n\n//# sourceURL=webpack://x-ui-vue3/./components/calendar/index.tsx?");

/***/ }),

/***/ "./components/calendar/useCalendar.ts":
/*!********************************************!*\
  !*** ./components/calendar/useCalendar.ts ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useCalendar; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"moment\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _util_hooks_useMemo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_util/hooks/useMemo */ \"./components/_util/hooks/useMemo.ts\");\n\n\n\nconst monthsShort = moment__WEBPACK_IMPORTED_MODULE_1___default()().localeData().monthsShort();\nfunction useCalendar(props) {\n  // const valueRef = ref<Moment>(moment.isMoment(props.value) ? props.value : moment())\n  // watch(() => props.value, () => valueRef.value = moment.isMoment(props.value) ? props.value : moment())\n  const valueRef = Object(_util_hooks_useMemo__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(() => moment__WEBPACK_IMPORTED_MODULE_1___default.a.isMoment(props.value) ? props.value : moment__WEBPACK_IMPORTED_MODULE_1___default()()); // const selectedValueRef = ref<Array<Moment>>(props.selectedValue)\n  // watch(() => props.selectedValue, () => selectedValueRef.value = props.selectedValue)\n\n  const selectedValueRef = Object(_util_hooks_useMemo__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(() => props.selectedValue);\n  const datesRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n    const month1 = valueRef.value.clone().date(1);\n    const day = month1.day();\n    const lastMonthDiffDay = (day + 7 - valueRef.value.localeData().firstDayOfWeek()) % 7; // 显示上月天\n\n    const lastMonth1 = month1.clone().add(-lastMonthDiffDay, 'days');\n    return Array.from(Array(42), (_, i) => lastMonth1.clone().add(i, 'days'));\n  });\n  const monthsRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n    const jan = valueRef.value.clone().month(0);\n    return Array.from(Array(16), (_, i) => jan.clone().add(i, 'months'));\n  });\n  const yearsRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n    const year = valueRef.value.year(),\n          decade = year - year % 10,\n          offset = decade % 4;\n    const lastYear = valueRef.value.clone().year(decade).add(-offset, 'years');\n    return Array.from(Array(16), (_, i) => lastYear.clone().add(i, 'years'));\n  });\n\n  function prevMonth() {\n    goMonth(-1);\n  }\n\n  function nextMonth() {\n    goMonth(1);\n  }\n\n  function prevYear() {\n    goYear(-1);\n  }\n\n  function nextYear() {\n    goYear(1);\n  }\n\n  function goMonth(direction) {\n    valueRef.value = valueRef.value.clone().add(direction, 'months');\n  }\n\n  function goYear(direction) {\n    valueRef.value = valueRef.value.clone().add(direction, 'years');\n  }\n\n  return {\n    valueRef,\n    selectedValueRef,\n    datesRef,\n    monthsRef,\n    yearsRef,\n    // func\n    goMonth,\n    goYear,\n    prevMonth,\n    nextMonth,\n    prevYear,\n    nextYear,\n\n    isSelected(date, granularity, selected = selectedValueRef.value) {\n      if (Array.isArray(selected)) {\n        const [v1 = null, v2 = null] = selected;\n        return date.isSame(v1, granularity) || date.isSame(v2, granularity);\n      } else {\n        return date.isSame(valueRef.value, granularity);\n      }\n    },\n\n    isInRange(date, granularity, selected = selectedValueRef.value) {\n      const [v1 = null, v2 = null] = selected || [];\n      return date.isAfter(v1, granularity) && date.isBefore(v2, granularity);\n    },\n\n    // event\n    onSelect(m) {\n      var _props$onSelect;\n\n      valueRef.value = m.clone();\n      (_props$onSelect = props.onSelect) === null || _props$onSelect === void 0 ? void 0 : _props$onSelect.call(props, m);\n    }\n\n  };\n}\n\n//# sourceURL=webpack://x-ui-vue3/./components/calendar/useCalendar.ts?");

/***/ }),

/***/ "./components/icon/Icon.tsx":
/*!**********************************!*\
  !*** ./components/icon/Icon.tsx ***!
  \**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _IconFont__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IconFont */ \"./components/icon/IconFont.tsx\");\n\n//@ts-nocheck\n\n\nconst MyIconFont = Object(_IconFont__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n  scriptUrl: 'https://at.alicdn.com/t/font_2698224_pms5giiz6xn.js'\n});\nconst Icon = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n  name: 'x-icon',\n  props: {\n    type: String,\n    spin: Boolean,\n    color: String,\n    size: String\n  },\n\n  setup(props) {\n    return () => {\n      const {\n        spin\n      } = props,\n            prefixCls = 'x-icon';\n      const cls = [prefixCls, {\n        [`${prefixCls}-spin`]: spin\n      }];\n      const style = {\n        fontSize: props.size + 'px',\n        color: props.color\n      };\n      return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(MyIconFont, {\n        \"class\": cls,\n        \"style\": style,\n        \"type\": props.type\n      }, null);\n    };\n  }\n\n});\n\nIcon.install = app => {\n  app.component(Icon.name, Icon);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Icon);\n\n//# sourceURL=webpack://x-ui-vue3/./components/icon/Icon.tsx?");

/***/ }),

/***/ "./components/icon/IconFont.tsx":
/*!**************************************!*\
  !*** ./components/icon/IconFont.tsx ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return create; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction createScriptUrlElements(scriptUrls, index = 0) {\n  const currentScriptUrl = scriptUrls[index];\n  const script = document.createElement('script');\n  script.setAttribute('src', currentScriptUrl);\n  script.setAttribute('data-namespace', currentScriptUrl);\n\n  if (scriptUrls.length > index + 1) {\n    script.onload = () => {\n      createScriptUrlElements(scriptUrls, index + 1);\n    };\n\n    script.onerror = () => {\n      createScriptUrlElements(scriptUrls, index + 1);\n    };\n  }\n\n  document.body.appendChild(script);\n}\n\nfunction create(options = {}) {\n  const {\n    scriptUrl,\n    extraCommonProps\n  } = options;\n\n  if (Array.isArray(scriptUrl)) {\n    // 因为iconfont资源会把svg插入before，所以前加载相同type会覆盖后加载，为了数组覆盖顺序，倒叙插入\n    createScriptUrlElements(scriptUrl.reverse());\n  } else {\n    createScriptUrlElements([scriptUrl]);\n  }\n\n  const IconFont = props => {\n    const {\n      type\n    } = props;\n    return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"i\", {\n      \"role\": \"img\"\n    }, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"svg\", null, [Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"createVNode\"])(\"use\", {\n      \"xlink:href\": `#${type}`\n    }, null)])]);\n  };\n\n  IconFont.props = {\n    type: String\n  };\n  return IconFont;\n}\n\n//# sourceURL=webpack://x-ui-vue3/./components/icon/IconFont.tsx?");

/***/ }),

/***/ "./components/icon/index.ts":
/*!**********************************!*\
  !*** ./components/icon/index.ts ***!
  \**********************************/
/*! exports provided: createFromIconfontCN, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Icon */ \"./components/icon/Icon.tsx\");\n/* harmony import */ var _IconFont__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IconFont */ \"./components/icon/IconFont.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createFromIconfontCN\", function() { return _IconFont__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_Icon__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n//# sourceURL=webpack://x-ui-vue3/./components/icon/index.ts?");

/***/ }),

/***/ "moment":
/*!*************************!*\
  !*** external "moment" ***!
  \*************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = require(\"moment\");\n\n//# sourceURL=webpack://x-ui-vue3/external_%22moment%22?");

/***/ }),

/***/ "vue":
/*!**********************!*\
  !*** external "Vue" ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = require(\"Vue\");\n\n//# sourceURL=webpack://x-ui-vue3/external_%22Vue%22?");

/***/ })

/******/ })["default"];