{"version":3,"file":"js/chunk-vendors-5960f81d.ce0c5cca.js","mappings":"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","sources":["webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-align/util.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-align/Align.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-align/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/Calendar.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/full-calendar/CalendarHeader.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/FullCalendar.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/MonthCalendar.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/picker/placements.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/Picker.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/range-calendar/CalendarPart.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/RangeCalendar.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/calendar/CalendarFooter.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/month/MonthPanel.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/year/YearPanel.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/decade/DecadePanel.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/calendar/CalendarHeader.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/calendar/OkButton.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/calendar/TimePickerButton.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/calendar/TodayButton.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/date/DateInput.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/date/DateConstants.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/date/DateTHead.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/date/DateTBody.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/date/DateTable.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/locale/en_US.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/mixin/CalendarMixin.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/mixin/CommonMixin.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/month/MonthTable.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/util/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-calendar/src/util/toTime.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-cascader/Menus.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-cascader/Cascader.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-cascader/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-checkbox/src/Checkbox.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-checkbox/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-collapse/src/PanelContent.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-collapse/src/Panel.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-collapse/src/openAnimationFactory.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-collapse/src/Collapse.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-collapse/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-collapse/src/commonProps.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-dialog/LazyRenderBox.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-dialog/IDialogPropTypes.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-dialog/Dialog.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-dialog/DialogWrap.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-dialog/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-drawer/src/IDrawerPropTypes.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-drawer/src/utils.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-drawer/src/Drawer.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-drawer/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-dropdown/src/placements.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-dropdown/src/Dropdown.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-dropdown/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-form/src/utils.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-form/src/createFieldsStore.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-form/src/createBaseForm.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-form/src/createForm.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-form/src/createDOMForm.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-form/src/createFormField.js"],"sourcesContent":["import _typeof from 'babel-runtime/helpers/typeof';\nimport contains from '../vc-util/Dom/contains';\nexport function buffer(fn, ms) {\n var timer = void 0;\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n function bufferFn() {\n clear();\n timer = setTimeout(fn, ms);\n }\n\n bufferFn.clear = clear;\n\n return bufferFn;\n}\n\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\n\nexport function isWindow(obj) {\n return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj.window === obj;\n}\n\nexport function isSimilarValue(val1, val2) {\n var int1 = Math.floor(val1);\n var int2 = Math.floor(val2);\n return Math.abs(int1 - int2) <= 1;\n}\n\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement)) {\n activeElement.focus();\n }\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport PropTypes from '../_util/vue-types';\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from '../vc-util/Dom/addEventListener';\nimport { isWindow, buffer, isSamePoint, isSimilarValue, restoreFocus } from './util';\nimport { cloneElement } from '../_util/vnode.js';\nimport clonedeep from 'lodash/cloneDeep';\nimport { getSlot, getListeners } from '../_util/props-util';\n\nfunction getElement(func) {\n if (typeof func !== 'function' || !func) return null;\n return func();\n}\n\nfunction getPoint(point) {\n if ((typeof point === 'undefined' ? 'undefined' : _typeof(point)) !== 'object' || !point) return null;\n return point;\n}\n\nexport default {\n props: {\n childrenProps: PropTypes.object,\n align: PropTypes.object.isRequired,\n target: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).def(function () {\n return window;\n }),\n monitorBufferTime: PropTypes.number.def(50),\n monitorWindowResize: PropTypes.bool.def(false),\n disabled: PropTypes.bool.def(false)\n },\n data: function data() {\n this.aligned = false;\n return {};\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.prevProps = _extends({}, _this.$props);\n var props = _this.$props;\n // if parent ref not attached .... use document.getElementById\n !_this.aligned && _this.forceAlign();\n if (!props.disabled && props.monitorWindowResize) {\n _this.startMonitorWindowResize();\n }\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n var prevProps = _this2.prevProps;\n var props = _this2.$props;\n var reAlign = false;\n if (!props.disabled) {\n var source = _this2.$el;\n var sourceRect = source ? source.getBoundingClientRect() : null;\n\n if (prevProps.disabled) {\n reAlign = true;\n } else {\n var lastElement = getElement(prevProps.target);\n var currentElement = getElement(props.target);\n var lastPoint = getPoint(prevProps.target);\n var currentPoint = getPoint(props.target);\n if (isWindow(lastElement) && isWindow(currentElement)) {\n // Skip if is window\n reAlign = false;\n } else if (lastElement !== currentElement || // Element change\n lastElement && !currentElement && currentPoint || // Change from element to point\n lastPoint && currentPoint && currentElement || // Change from point to element\n currentPoint && !isSamePoint(lastPoint, currentPoint)) {\n reAlign = true;\n }\n\n // If source element size changed\n var preRect = _this2.sourceRect || {};\n if (!reAlign && source && (!isSimilarValue(preRect.width, sourceRect.width) || !isSimilarValue(preRect.height, sourceRect.height))) {\n reAlign = true;\n }\n }\n _this2.sourceRect = sourceRect;\n }\n\n if (reAlign) {\n _this2.forceAlign();\n }\n\n if (props.monitorWindowResize && !props.disabled) {\n _this2.startMonitorWindowResize();\n } else {\n _this2.stopMonitorWindowResize();\n }\n _this2.prevProps = _extends({}, _this2.$props, { align: clonedeep(_this2.$props.align) });\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.stopMonitorWindowResize();\n },\n\n methods: {\n startMonitorWindowResize: function startMonitorWindowResize() {\n if (!this.resizeHandler) {\n this.bufferMonitor = buffer(this.forceAlign, this.$props.monitorBufferTime);\n this.resizeHandler = addEventListener(window, 'resize', this.bufferMonitor);\n }\n },\n stopMonitorWindowResize: function stopMonitorWindowResize() {\n if (this.resizeHandler) {\n this.bufferMonitor.clear();\n this.resizeHandler.remove();\n this.resizeHandler = null;\n }\n },\n forceAlign: function forceAlign() {\n var _$props = this.$props,\n disabled = _$props.disabled,\n target = _$props.target,\n align = _$props.align;\n\n if (!disabled && target) {\n var source = this.$el;\n var listeners = getListeners(this);\n var result = void 0;\n var element = getElement(target);\n var point = getPoint(target);\n\n // IE lose focus after element realign\n // We should record activeElement and restore later\n var activeElement = document.activeElement;\n\n if (element) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n restoreFocus(activeElement, source);\n this.aligned = true;\n listeners.align && listeners.align(source, result);\n }\n }\n },\n\n render: function render() {\n var childrenProps = this.$props.childrenProps;\n\n var child = getSlot(this)[0];\n if (child && childrenProps) {\n return cloneElement(child, { props: childrenProps });\n }\n return child;\n }\n};","// based on vc-align 2.4.5\nimport Align from './Align';\nexport default Align;","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getOptionProps, hasProp, getComponentFromProp } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport KeyCode from '../../_util/KeyCode';\nimport moment from 'moment';\nimport DateTable from './date/DateTable';\nimport CalendarHeader from './calendar/CalendarHeader';\nimport CalendarFooter from './calendar/CalendarFooter';\nimport CalendarMixin, { getNowByCurrentStateValue } from './mixin/CalendarMixin';\nimport CommonMixin from './mixin/CommonMixin';\nimport DateInput from './date/DateInput';\nimport enUs from './locale/en_US';\nimport { getTimeConfig, getTodayTime, syncTime } from './util';\nimport { goStartMonth, goEndMonth, goTime as _goTime } from './util/toTime';\n\nvar getMomentObjectIfValid = function getMomentObjectIfValid(date) {\n if (moment.isMoment(date) && date.isValid()) {\n return date;\n }\n return false;\n};\n\nvar Calendar = {\n name: 'Calendar',\n props: {\n locale: PropTypes.object.def(enUs),\n format: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.func]),\n visible: PropTypes.bool.def(true),\n prefixCls: PropTypes.string.def('rc-calendar'),\n // prefixCls: PropTypes.string,\n defaultValue: PropTypes.object,\n value: PropTypes.object,\n selectedValue: PropTypes.object,\n defaultSelectedValue: PropTypes.object,\n mode: PropTypes.oneOf(['time', 'date', 'month', 'year', 'decade']),\n // locale: PropTypes.object,\n showDateInput: PropTypes.bool.def(true),\n showWeekNumber: PropTypes.bool,\n showToday: PropTypes.bool.def(true),\n showOk: PropTypes.bool,\n // onSelect: PropTypes.func,\n // onOk: PropTypes.func,\n // onKeyDown: PropTypes.func,\n timePicker: PropTypes.any,\n dateInputPlaceholder: PropTypes.any,\n // onClear: PropTypes.func,\n // onChange: PropTypes.func,\n // onPanelChange: PropTypes.func,\n disabledDate: PropTypes.func,\n disabledTime: PropTypes.any,\n dateRender: PropTypes.func,\n renderFooter: PropTypes.func.def(function () {\n return null;\n }),\n renderSidebar: PropTypes.func.def(function () {\n return null;\n }),\n clearIcon: PropTypes.any,\n focusablePanel: PropTypes.bool.def(true),\n inputMode: PropTypes.string,\n inputReadOnly: PropTypes.bool\n },\n\n mixins: [BaseMixin, CommonMixin, CalendarMixin],\n\n data: function data() {\n var props = this.$props;\n return {\n sMode: this.mode || 'date',\n sValue: getMomentObjectIfValid(props.value) || getMomentObjectIfValid(props.defaultValue) || moment(),\n sSelectedValue: props.selectedValue || props.defaultSelectedValue\n };\n },\n\n watch: {\n mode: function mode(val) {\n this.setState({ sMode: val });\n },\n value: function value(val) {\n this.setState({\n sValue: getMomentObjectIfValid(val) || getMomentObjectIfValid(this.defaultValue) || getNowByCurrentStateValue(this.sValue)\n });\n },\n selectedValue: function selectedValue(val) {\n this.setState({\n sSelectedValue: val\n });\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.saveFocusElement(DateInput.getInstance());\n });\n },\n\n methods: {\n onPanelChange: function onPanelChange(value, mode) {\n var sValue = this.sValue;\n\n if (!hasProp(this, 'mode')) {\n this.setState({ sMode: mode });\n }\n this.__emit('panelChange', value || sValue, mode);\n },\n onKeyDown: function onKeyDown(event) {\n if (event.target.nodeName.toLowerCase() === 'input') {\n return undefined;\n }\n var keyCode = event.keyCode;\n // mac\n var ctrlKey = event.ctrlKey || event.metaKey;\n var disabledDate = this.disabledDate,\n value = this.sValue;\n\n switch (keyCode) {\n case KeyCode.DOWN:\n this.goTime(1, 'weeks');\n event.preventDefault();\n return 1;\n case KeyCode.UP:\n this.goTime(-1, 'weeks');\n event.preventDefault();\n return 1;\n case KeyCode.LEFT:\n if (ctrlKey) {\n this.goTime(-1, 'years');\n } else {\n this.goTime(-1, 'days');\n }\n event.preventDefault();\n return 1;\n case KeyCode.RIGHT:\n if (ctrlKey) {\n this.goTime(1, 'years');\n } else {\n this.goTime(1, 'days');\n }\n event.preventDefault();\n return 1;\n case KeyCode.HOME:\n this.setValue(goStartMonth(value));\n event.preventDefault();\n return 1;\n case KeyCode.END:\n this.setValue(goEndMonth(value));\n event.preventDefault();\n return 1;\n case KeyCode.PAGE_DOWN:\n this.goTime(1, 'month');\n event.preventDefault();\n return 1;\n case KeyCode.PAGE_UP:\n this.goTime(-1, 'month');\n event.preventDefault();\n return 1;\n case KeyCode.ENTER:\n if (!disabledDate || !disabledDate(value)) {\n this.onSelect(value, {\n source: 'keyboard'\n });\n }\n event.preventDefault();\n return 1;\n default:\n this.__emit('keydown', event);\n return 1;\n }\n },\n onClear: function onClear() {\n this.onSelect(null);\n this.__emit('clear');\n },\n onOk: function onOk() {\n var sSelectedValue = this.sSelectedValue;\n\n if (this.isAllowedDate(sSelectedValue)) {\n this.__emit('ok', sSelectedValue);\n }\n },\n onDateInputChange: function onDateInputChange(value) {\n this.onSelect(value, {\n source: 'dateInput'\n });\n },\n onDateInputSelect: function onDateInputSelect(value) {\n this.onSelect(value, {\n source: 'dateInputSelect'\n });\n },\n onDateTableSelect: function onDateTableSelect(value) {\n var timePicker = this.timePicker,\n sSelectedValue = this.sSelectedValue;\n\n if (!sSelectedValue && timePicker) {\n var timePickerProps = getOptionProps(timePicker);\n var timePickerDefaultValue = timePickerProps.defaultValue;\n if (timePickerDefaultValue) {\n syncTime(timePickerDefaultValue, value);\n }\n }\n this.onSelect(value);\n },\n onToday: function onToday() {\n var sValue = this.sValue;\n\n var now = getTodayTime(sValue);\n this.onSelect(now, {\n source: 'todayButton'\n });\n },\n onBlur: function onBlur(event) {\n var _this2 = this;\n\n setTimeout(function () {\n var dateInput = DateInput.getInstance();\n var rootInstance = _this2.rootInstance;\n\n if (!rootInstance || rootInstance.contains(document.activeElement) || dateInput && dateInput.contains(document.activeElement)) {\n // focused element is still part of Calendar\n return;\n }\n\n _this2.$emit('blur', event);\n }, 0);\n },\n getRootDOMNode: function getRootDOMNode() {\n return this.$el;\n },\n openTimePicker: function openTimePicker() {\n this.onPanelChange(null, 'time');\n },\n closeTimePicker: function closeTimePicker() {\n this.onPanelChange(null, 'date');\n },\n goTime: function goTime(direction, unit) {\n this.setValue(_goTime(this.sValue, direction, unit));\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var locale = this.locale,\n prefixCls = this.prefixCls,\n disabledDate = this.disabledDate,\n dateInputPlaceholder = this.dateInputPlaceholder,\n timePicker = this.timePicker,\n disabledTime = this.disabledTime,\n showDateInput = this.showDateInput,\n sValue = this.sValue,\n sSelectedValue = this.sSelectedValue,\n sMode = this.sMode,\n renderFooter = this.renderFooter,\n inputMode = this.inputMode,\n inputReadOnly = this.inputReadOnly,\n monthCellRender = this.monthCellRender,\n monthCellContentRender = this.monthCellContentRender,\n props = this.$props;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n var showTimePicker = sMode === 'time';\n var disabledTimeConfig = showTimePicker && disabledTime && timePicker ? getTimeConfig(sSelectedValue, disabledTime) : null;\n\n var timePickerEle = null;\n\n if (timePicker && showTimePicker) {\n var timePickerOriginProps = getOptionProps(timePicker);\n var timePickerProps = {\n props: _extends({\n showHour: true,\n showSecond: true,\n showMinute: true\n }, timePickerOriginProps, disabledTimeConfig, {\n value: sSelectedValue,\n disabledTime: disabledTime\n }),\n on: {\n change: this.onDateInputChange\n }\n };\n\n if (timePickerOriginProps.defaultValue !== undefined) {\n timePickerProps.props.defaultOpenValue = timePickerOriginProps.defaultValue;\n }\n timePickerEle = cloneElement(timePicker, timePickerProps);\n }\n\n var dateInputElement = showDateInput ? h(DateInput, {\n attrs: {\n format: this.getFormat(),\n\n value: sValue,\n locale: locale,\n placeholder: dateInputPlaceholder,\n showClear: true,\n disabledTime: disabledTime,\n disabledDate: disabledDate,\n\n prefixCls: prefixCls,\n selectedValue: sSelectedValue,\n\n clearIcon: clearIcon,\n\n inputMode: inputMode,\n inputReadOnly: inputReadOnly\n },\n key: 'date-input', on: {\n 'clear': this.onClear,\n 'change': this.onDateInputChange,\n 'select': this.onDateInputSelect\n }\n }) : null;\n var children = [];\n if (props.renderSidebar) {\n children.push(props.renderSidebar());\n }\n children.push(h(\n 'div',\n { 'class': prefixCls + '-panel', key: 'panel' },\n [dateInputElement, h(\n 'div',\n {\n attrs: { tabIndex: props.focusablePanel ? 0 : undefined },\n 'class': prefixCls + '-date-panel' },\n [h(CalendarHeader, {\n attrs: {\n locale: locale,\n mode: sMode,\n value: sValue,\n disabledMonth: disabledDate,\n\n renderFooter: renderFooter,\n showTimePicker: showTimePicker,\n prefixCls: prefixCls,\n monthCellRender: monthCellRender,\n monthCellContentRender: monthCellContentRender\n },\n on: {\n 'valueChange': this.setValue,\n 'panelChange': this.onPanelChange\n }\n }), timePicker && showTimePicker ? h(\n 'div',\n { 'class': prefixCls + '-time-picker' },\n [h(\n 'div',\n { 'class': prefixCls + '-time-picker-panel' },\n [timePickerEle]\n )]\n ) : null, h(\n 'div',\n { 'class': prefixCls + '-body' },\n [h(DateTable, {\n attrs: {\n locale: locale,\n value: sValue,\n selectedValue: sSelectedValue,\n prefixCls: prefixCls,\n dateRender: props.dateRender,\n\n disabledDate: disabledDate,\n showWeekNumber: props.showWeekNumber\n },\n on: {\n 'select': this.onDateTableSelect\n }\n })]\n ), h(CalendarFooter, {\n attrs: {\n showOk: props.showOk,\n mode: sMode,\n renderFooter: props.renderFooter,\n locale: locale,\n prefixCls: prefixCls,\n showToday: props.showToday,\n disabledTime: disabledTime,\n showTimePicker: showTimePicker,\n showDateInput: props.showDateInput,\n timePicker: timePicker,\n selectedValue: sSelectedValue,\n timePickerDisabled: !sSelectedValue,\n value: sValue,\n disabledDate: disabledDate,\n okDisabled: props.showOk !== false && (!sSelectedValue || !this.isAllowedDate(sSelectedValue))\n },\n on: {\n 'ok': this.onOk,\n 'select': this.onSelect,\n 'today': this.onToday,\n 'openTimePicker': this.openTimePicker,\n 'closeTimePicker': this.closeTimePicker\n }\n })]\n )]\n ));\n\n return this.renderRoot({\n children: children,\n 'class': props.showWeekNumber ? prefixCls + '-week-number' : ''\n });\n }\n};\n\nexport default Calendar;","import Calendar from './Calendar';\n\nexport default Calendar;","// based on rc-calendar 9.15.10\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport Calendar from './src/';\n\nVue.use(ref, { name: 'ant-ref' });\n\nexport default Calendar;","import PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { getMonthName } from '../util';\n\nvar CalendarHeader = {\n name: 'CalendarHeader',\n mixins: [BaseMixin],\n props: {\n value: PropTypes.object,\n locale: PropTypes.object,\n yearSelectOffset: PropTypes.number.def(10),\n yearSelectTotal: PropTypes.number.def(20),\n // onValueChange: PropTypes.func,\n // onTypeChange: PropTypes.func,\n Select: PropTypes.object,\n prefixCls: PropTypes.string,\n type: PropTypes.string,\n showTypeSwitch: PropTypes.bool,\n headerComponents: PropTypes.array\n },\n methods: {\n onYearChange: function onYearChange(year) {\n var newValue = this.value.clone();\n newValue.year(parseInt(year, 10));\n this.__emit('valueChange', newValue);\n },\n onMonthChange: function onMonthChange(month) {\n var newValue = this.value.clone();\n newValue.month(parseInt(month, 10));\n this.__emit('valueChange', newValue);\n },\n yearSelectElement: function yearSelectElement(year) {\n var h = this.$createElement;\n var yearSelectOffset = this.yearSelectOffset,\n yearSelectTotal = this.yearSelectTotal,\n prefixCls = this.prefixCls,\n Select = this.Select;\n\n var start = year - yearSelectOffset;\n var end = start + yearSelectTotal;\n\n var options = [];\n for (var index = start; index < end; index++) {\n options.push(h(\n Select.Option,\n { key: '' + index },\n [index]\n ));\n }\n return h(\n Select,\n {\n 'class': prefixCls + '-header-year-select',\n on: {\n 'change': this.onYearChange\n },\n attrs: {\n dropdownStyle: { zIndex: 2000 },\n dropdownMenuStyle: { maxHeight: '250px', overflow: 'auto', fontSize: '12px' },\n optionLabelProp: 'children',\n value: String(year),\n showSearch: false\n }\n },\n [options]\n );\n },\n monthSelectElement: function monthSelectElement(month) {\n var h = this.$createElement;\n var value = this.value,\n Select = this.Select,\n prefixCls = this.prefixCls;\n\n var t = value.clone();\n var options = [];\n\n for (var index = 0; index < 12; index++) {\n t.month(index);\n options.push(h(\n Select.Option,\n { key: '' + index },\n [getMonthName(t)]\n ));\n }\n\n return h(\n Select,\n {\n 'class': prefixCls + '-header-month-select',\n attrs: { dropdownStyle: { zIndex: 2000 },\n dropdownMenuStyle: {\n maxHeight: '250px',\n overflow: 'auto',\n overflowX: 'hidden',\n fontSize: '12px'\n },\n optionLabelProp: 'children',\n value: String(month),\n showSearch: false\n },\n on: {\n 'change': this.onMonthChange\n }\n },\n [options]\n );\n },\n changeTypeToDate: function changeTypeToDate() {\n this.__emit('typeChange', 'date');\n },\n changeTypeToMonth: function changeTypeToMonth() {\n this.__emit('typeChange', 'month');\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var value = this.value,\n locale = this.locale,\n prefixCls = this.prefixCls,\n type = this.type,\n showTypeSwitch = this.showTypeSwitch,\n headerComponents = this.headerComponents;\n\n var year = value.year();\n var month = value.month();\n var yearSelect = this.yearSelectElement(year);\n var monthSelect = type === 'month' ? null : this.monthSelectElement(month);\n var switchCls = prefixCls + '-header-switcher';\n var typeSwitcher = showTypeSwitch ? h(\n 'span',\n { 'class': switchCls },\n [type === 'date' ? h(\n 'span',\n { 'class': switchCls + '-focus' },\n [locale.month]\n ) : h(\n 'span',\n {\n on: {\n 'click': this.changeTypeToDate\n },\n 'class': switchCls + '-normal' },\n [locale.month]\n ), type === 'month' ? h(\n 'span',\n { 'class': switchCls + '-focus' },\n [locale.year]\n ) : h(\n 'span',\n {\n on: {\n 'click': this.changeTypeToMonth\n },\n 'class': switchCls + '-normal' },\n [locale.year]\n )]\n ) : null;\n\n return h(\n 'div',\n { 'class': prefixCls + '-header' },\n [typeSwitcher, monthSelect, yearSelect, headerComponents]\n );\n }\n};\n\nexport default CalendarHeader;","import _extends from 'babel-runtime/helpers/extends';\nimport moment from 'moment';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getOptionProps, hasProp, getListeners } from '../../_util/props-util';\nimport DateTable from './date/DateTable';\nimport MonthTable from './month/MonthTable';\nimport CalendarMixin, { getNowByCurrentStateValue } from './mixin/CalendarMixin';\nimport CommonMixin from './mixin/CommonMixin';\nimport CalendarHeader from './full-calendar/CalendarHeader';\nimport enUs from './locale/en_US';\nvar FullCalendar = {\n name: 'FullCalendar',\n props: {\n locale: PropTypes.object.def(enUs),\n format: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.func]),\n visible: PropTypes.bool.def(true),\n prefixCls: PropTypes.string.def('rc-calendar'),\n defaultType: PropTypes.string.def('date'),\n type: PropTypes.string,\n fullscreen: PropTypes.bool.def(false),\n monthCellRender: PropTypes.func,\n dateCellRender: PropTypes.func,\n showTypeSwitch: PropTypes.bool.def(true),\n Select: PropTypes.object.isRequired,\n headerComponents: PropTypes.array,\n headerComponent: PropTypes.object, // The whole header component\n headerRender: PropTypes.func,\n showHeader: PropTypes.bool.def(true),\n disabledDate: PropTypes.func,\n value: PropTypes.object,\n defaultValue: PropTypes.object,\n selectedValue: PropTypes.object,\n defaultSelectedValue: PropTypes.object,\n renderFooter: PropTypes.func.def(function () {\n return null;\n }),\n renderSidebar: PropTypes.func.def(function () {\n return null;\n })\n },\n mixins: [BaseMixin, CommonMixin, CalendarMixin],\n data: function data() {\n var type = void 0;\n if (hasProp(this, 'type')) {\n type = this.type;\n } else {\n type = this.defaultType;\n }\n var props = this.$props;\n return {\n sType: type,\n sValue: props.value || props.defaultValue || moment(),\n sSelectedValue: props.selectedValue || props.defaultSelectedValue\n };\n },\n\n watch: {\n type: function type(val) {\n this.setState({\n sType: val\n });\n },\n value: function value(val) {\n var sValue = val || this.defaultValue || getNowByCurrentStateValue(this.sValue);\n this.setState({\n sValue: sValue\n });\n },\n selectedValue: function selectedValue(val) {\n this.setState({\n sSelectedValue: val\n });\n }\n },\n methods: {\n onMonthSelect: function onMonthSelect(value) {\n this.onSelect(value, {\n target: 'month'\n });\n },\n setType: function setType(type) {\n if (!hasProp(this, 'type')) {\n this.setState({\n sType: type\n });\n }\n this.__emit('typeChange', type);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var locale = props.locale,\n prefixCls = props.prefixCls,\n fullscreen = props.fullscreen,\n showHeader = props.showHeader,\n headerComponent = props.headerComponent,\n headerRender = props.headerRender,\n disabledDate = props.disabledDate;\n var value = this.sValue,\n type = this.sType;\n\n\n var header = null;\n if (showHeader) {\n if (headerRender) {\n header = headerRender(value, type, locale);\n } else {\n var TheHeader = headerComponent || CalendarHeader;\n var headerProps = {\n props: _extends({}, props, {\n prefixCls: prefixCls + '-full',\n type: type,\n value: value\n }),\n on: _extends({}, getListeners(this), {\n typeChange: this.setType,\n valueChange: this.setValue\n }),\n key: 'calendar-header'\n };\n header = h(TheHeader, headerProps);\n }\n }\n\n var table = type === 'date' ? h(DateTable, {\n attrs: {\n dateRender: props.dateCellRender,\n contentRender: props.dateCellContentRender,\n locale: locale,\n prefixCls: prefixCls,\n\n value: value,\n disabledDate: disabledDate\n },\n on: {\n 'select': this.onSelect\n }\n }) : h(MonthTable, {\n attrs: {\n cellRender: props.monthCellRender,\n contentRender: props.monthCellContentRender,\n locale: locale,\n\n prefixCls: prefixCls + '-month-panel',\n value: value,\n disabledDate: disabledDate\n },\n on: {\n 'select': this.onMonthSelect\n }\n });\n\n var children = [header, h(\n 'div',\n { key: 'calendar-body', 'class': prefixCls + '-calendar-body' },\n [table]\n )];\n\n var className = [prefixCls + '-full'];\n\n if (fullscreen) {\n className.push(prefixCls + '-fullscreen');\n }\n\n return this.renderRoot({\n children: children,\n 'class': className.join(' ')\n });\n }\n};\n\nexport default FullCalendar;","import moment from 'moment';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport KeyCode from '../../_util/KeyCode';\nimport CalendarHeader from './calendar/CalendarHeader';\nimport CalendarFooter from './calendar/CalendarFooter';\nimport CalendarMixin from './mixin/CalendarMixin';\nimport CommonMixin from './mixin/CommonMixin';\nimport enUs from './locale/en_US';\nvar MonthCalendar = {\n name: 'MonthCalendar',\n props: {\n locale: PropTypes.object.def(enUs),\n format: PropTypes.string,\n visible: PropTypes.bool.def(true),\n prefixCls: PropTypes.string.def('rc-calendar'),\n monthCellRender: PropTypes.func,\n value: PropTypes.object,\n defaultValue: PropTypes.object,\n selectedValue: PropTypes.object,\n defaultSelectedValue: PropTypes.object,\n disabledDate: PropTypes.func,\n monthCellContentRender: PropTypes.func,\n renderFooter: PropTypes.func.def(function () {\n return null;\n }),\n renderSidebar: PropTypes.func.def(function () {\n return null;\n })\n },\n mixins: [BaseMixin, CommonMixin, CalendarMixin],\n\n data: function data() {\n var props = this.$props;\n return {\n mode: 'month',\n sValue: props.value || props.defaultValue || moment(),\n sSelectedValue: props.selectedValue || props.defaultSelectedValue\n };\n },\n\n methods: {\n onKeyDown: function onKeyDown(event) {\n var keyCode = event.keyCode;\n var ctrlKey = event.ctrlKey || event.metaKey;\n var stateValue = this.sValue;\n var disabledDate = this.disabledDate;\n\n var value = stateValue;\n switch (keyCode) {\n case KeyCode.DOWN:\n value = stateValue.clone();\n value.add(3, 'months');\n break;\n case KeyCode.UP:\n value = stateValue.clone();\n value.add(-3, 'months');\n break;\n case KeyCode.LEFT:\n value = stateValue.clone();\n if (ctrlKey) {\n value.add(-1, 'years');\n } else {\n value.add(-1, 'months');\n }\n break;\n case KeyCode.RIGHT:\n value = stateValue.clone();\n if (ctrlKey) {\n value.add(1, 'years');\n } else {\n value.add(1, 'months');\n }\n break;\n case KeyCode.ENTER:\n if (!disabledDate || !disabledDate(stateValue)) {\n this.onSelect(stateValue);\n }\n event.preventDefault();\n return 1;\n default:\n return undefined;\n }\n if (value !== stateValue) {\n this.setValue(value);\n event.preventDefault();\n return 1;\n }\n },\n handlePanelChange: function handlePanelChange(_, mode) {\n if (mode !== 'date') {\n this.setState({ mode: mode });\n }\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var mode = this.mode,\n value = this.sValue,\n props = this.$props,\n $scopedSlots = this.$scopedSlots;\n var prefixCls = props.prefixCls,\n locale = props.locale,\n disabledDate = props.disabledDate;\n\n var monthCellRender = this.monthCellRender || $scopedSlots.monthCellRender;\n var monthCellContentRender = this.monthCellContentRender || $scopedSlots.monthCellContentRender;\n var renderFooter = this.renderFooter || $scopedSlots.renderFooter;\n var children = h(\n 'div',\n { 'class': prefixCls + '-month-calendar-content' },\n [h(\n 'div',\n { 'class': prefixCls + '-month-header-wrap' },\n [h(CalendarHeader, {\n attrs: {\n prefixCls: prefixCls,\n mode: mode,\n value: value,\n locale: locale,\n disabledMonth: disabledDate,\n monthCellRender: monthCellRender,\n monthCellContentRender: monthCellContentRender\n },\n on: {\n 'monthSelect': this.onSelect,\n 'valueChange': this.setValue,\n 'panelChange': this.handlePanelChange\n }\n })]\n ), h(CalendarFooter, {\n attrs: { prefixCls: prefixCls, renderFooter: renderFooter }\n })]\n );\n return this.renderRoot({\n 'class': props.prefixCls + '-month-calendar',\n children: children\n });\n }\n};\n\nexport default MonthCalendar;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nvar placements = {\n bottomLeft: {\n points: ['tl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","import PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getOptionProps, hasProp, getEvents, getStyle } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport createChainedFunction from '../../_util/createChainedFunction';\nimport KeyCode from '../../_util/KeyCode';\nimport placements from './picker/placements';\nimport Trigger from '../../vc-trigger';\nimport moment from 'moment';\nimport isNil from 'lodash/isNil';\nvar TimeType = {\n validator: function validator(value) {\n if (Array.isArray(value)) {\n return value.length === 0 || value.findIndex(function (val) {\n return !isNil(val) && !moment.isMoment(val);\n }) === -1;\n } else {\n return isNil(value) || moment.isMoment(value);\n }\n }\n};\nvar Picker = {\n name: 'Picker',\n props: {\n animation: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n disabled: PropTypes.bool,\n transitionName: PropTypes.string,\n format: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.func]),\n // onChange: PropTypes.func,\n // onOpenChange: PropTypes.func,\n children: PropTypes.func,\n getCalendarContainer: PropTypes.func,\n calendar: PropTypes.any,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool.def(false),\n prefixCls: PropTypes.string.def('rc-calendar-picker'),\n placement: PropTypes.any.def('bottomLeft'),\n value: TimeType,\n defaultValue: TimeType,\n align: PropTypes.object.def(function () {\n return {};\n }),\n dropdownClassName: PropTypes.string,\n dateRender: PropTypes.func\n },\n mixins: [BaseMixin],\n\n data: function data() {\n var props = this.$props;\n var open = void 0;\n if (hasProp(this, 'open')) {\n open = props.open;\n } else {\n open = props.defaultOpen;\n }\n var value = props.value || props.defaultValue;\n return {\n sOpen: open,\n sValue: value\n };\n },\n\n watch: {\n value: function value(val) {\n this.setState({\n sValue: val\n });\n },\n open: function open(val) {\n this.setState({\n sOpen: val\n });\n }\n },\n mounted: function mounted() {\n this.preSOpen = this.sOpen;\n },\n updated: function updated() {\n if (!this.preSOpen && this.sOpen) {\n // setTimeout is for making sure saveCalendarRef happen before focusCalendar\n this.focusTimeout = setTimeout(this.focusCalendar, 0);\n }\n this.preSOpen = this.sOpen;\n },\n beforeDestroy: function beforeDestroy() {\n clearTimeout(this.focusTimeout);\n },\n\n methods: {\n onCalendarKeyDown: function onCalendarKeyDown(event) {\n if (event.keyCode === KeyCode.ESC) {\n event.stopPropagation();\n this.closeCalendar(this.focus);\n }\n },\n onCalendarSelect: function onCalendarSelect(value) {\n var cause = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var props = this.$props;\n if (!hasProp(this, 'value')) {\n this.setState({\n sValue: value\n });\n }\n var calendarProps = getOptionProps(props.calendar);\n if (cause.source === 'keyboard' || cause.source === 'dateInputSelect' || !calendarProps.timePicker && cause.source !== 'dateInput' || cause.source === 'todayButton') {\n this.closeCalendar(this.focus);\n }\n this.__emit('change', value);\n },\n onKeyDown: function onKeyDown(event) {\n if (!this.sOpen && (event.keyCode === KeyCode.DOWN || event.keyCode === KeyCode.ENTER)) {\n this.openCalendar();\n event.preventDefault();\n }\n },\n onCalendarOk: function onCalendarOk() {\n this.closeCalendar(this.focus);\n },\n onCalendarClear: function onCalendarClear() {\n this.closeCalendar(this.focus);\n },\n onCalendarBlur: function onCalendarBlur() {\n this.setOpen(false);\n },\n onVisibleChange: function onVisibleChange(open) {\n this.setOpen(open);\n },\n getCalendarElement: function getCalendarElement() {\n var props = this.$props;\n var calendarProps = getOptionProps(props.calendar);\n var calendarEvents = getEvents(props.calendar);\n var value = this.sValue;\n\n var defaultValue = value;\n var extraProps = {\n ref: 'calendarInstance',\n props: {\n defaultValue: defaultValue || calendarProps.defaultValue,\n selectedValue: value\n },\n on: {\n keydown: this.onCalendarKeyDown,\n ok: createChainedFunction(calendarEvents.ok, this.onCalendarOk),\n select: createChainedFunction(calendarEvents.select, this.onCalendarSelect),\n clear: createChainedFunction(calendarEvents.clear, this.onCalendarClear),\n blur: createChainedFunction(calendarEvents.blur, this.onCalendarBlur)\n }\n };\n\n return cloneElement(props.calendar, extraProps);\n },\n setOpen: function setOpen(open, callback) {\n if (this.sOpen !== open) {\n if (!hasProp(this, 'open')) {\n this.setState({\n sOpen: open\n }, callback);\n }\n this.__emit('openChange', open);\n }\n },\n openCalendar: function openCalendar(callback) {\n this.setOpen(true, callback);\n },\n closeCalendar: function closeCalendar(callback) {\n this.setOpen(false, callback);\n },\n focus: function focus() {\n if (!this.sOpen) {\n this.$el.focus();\n }\n },\n focusCalendar: function focusCalendar() {\n if (this.sOpen && this.calendarInstance && this.calendarInstance.componentInstance) {\n this.calendarInstance.componentInstance.focus();\n }\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var style = getStyle(this);\n var prefixCls = props.prefixCls,\n placement = props.placement,\n getCalendarContainer = props.getCalendarContainer,\n align = props.align,\n animation = props.animation,\n disabled = props.disabled,\n dropdownClassName = props.dropdownClassName,\n transitionName = props.transitionName;\n var sValue = this.sValue,\n sOpen = this.sOpen;\n\n var children = this.$scopedSlots['default'];\n var childrenState = {\n value: sValue,\n open: sOpen\n };\n if (this.sOpen || !this.calendarInstance) {\n this.calendarInstance = this.getCalendarElement();\n }\n\n return h(\n Trigger,\n {\n attrs: {\n popupAlign: align,\n builtinPlacements: placements,\n popupPlacement: placement,\n action: disabled && !sOpen ? [] : ['click'],\n destroyPopupOnHide: true,\n getPopupContainer: getCalendarContainer,\n popupStyle: style,\n popupAnimation: animation,\n popupTransitionName: transitionName,\n popupVisible: sOpen,\n\n prefixCls: prefixCls,\n popupClassName: dropdownClassName\n },\n on: {\n 'popupVisibleChange': this.onVisibleChange\n }\n },\n [h(\n 'template',\n { slot: 'popup' },\n [this.calendarInstance]\n ), cloneElement(children(childrenState, props), { on: { keydown: this.onKeyDown } })]\n );\n }\n};\n\nexport default Picker;","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { getOptionProps, getComponentFromProp, getListeners } from '../../../_util/props-util';\nimport { cloneElement } from '../../../_util/vnode';\nimport CalendarHeader from '../calendar/CalendarHeader';\nimport DateTable from '../date/DateTable';\nimport DateInput from '../date/DateInput';\nimport { getTimeConfig } from '../util/index';\nfunction noop() {}\nvar CalendarPart = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n value: PropTypes.any,\n hoverValue: PropTypes.any,\n selectedValue: PropTypes.any,\n direction: PropTypes.any,\n locale: PropTypes.any,\n showDateInput: PropTypes.bool,\n showTimePicker: PropTypes.bool,\n showWeekNumber: PropTypes.bool,\n format: PropTypes.any,\n placeholder: PropTypes.any,\n disabledDate: PropTypes.any,\n timePicker: PropTypes.any,\n disabledTime: PropTypes.any,\n disabledMonth: PropTypes.any,\n mode: PropTypes.any,\n // onInputSelect: PropTypes.func,\n timePickerDisabledTime: PropTypes.object,\n enableNext: PropTypes.any,\n enablePrev: PropTypes.any,\n clearIcon: PropTypes.any,\n dateRender: PropTypes.func,\n inputMode: PropTypes.string,\n inputReadOnly: PropTypes.bool\n },\n render: function render() {\n var h = arguments[0];\n var props = this.$props;\n var prefixCls = props.prefixCls,\n value = props.value,\n hoverValue = props.hoverValue,\n selectedValue = props.selectedValue,\n mode = props.mode,\n direction = props.direction,\n locale = props.locale,\n format = props.format,\n placeholder = props.placeholder,\n disabledDate = props.disabledDate,\n timePicker = props.timePicker,\n disabledTime = props.disabledTime,\n timePickerDisabledTime = props.timePickerDisabledTime,\n showTimePicker = props.showTimePicker,\n enablePrev = props.enablePrev,\n enableNext = props.enableNext,\n disabledMonth = props.disabledMonth,\n showDateInput = props.showDateInput,\n dateRender = props.dateRender,\n showWeekNumber = props.showWeekNumber,\n showClear = props.showClear,\n inputMode = props.inputMode,\n inputReadOnly = props.inputReadOnly;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n\n var _getListeners = getListeners(this),\n _getListeners$inputCh = _getListeners.inputChange,\n inputChange = _getListeners$inputCh === undefined ? noop : _getListeners$inputCh,\n _getListeners$inputSe = _getListeners.inputSelect,\n inputSelect = _getListeners$inputSe === undefined ? noop : _getListeners$inputSe,\n _getListeners$valueCh = _getListeners.valueChange,\n valueChange = _getListeners$valueCh === undefined ? noop : _getListeners$valueCh,\n _getListeners$panelCh = _getListeners.panelChange,\n panelChange = _getListeners$panelCh === undefined ? noop : _getListeners$panelCh,\n _getListeners$select = _getListeners.select,\n select = _getListeners$select === undefined ? noop : _getListeners$select,\n _getListeners$dayHove = _getListeners.dayHover,\n dayHover = _getListeners$dayHove === undefined ? noop : _getListeners$dayHove;\n\n var shouldShowTimePicker = showTimePicker && timePicker;\n var disabledTimeConfig = shouldShowTimePicker && disabledTime ? getTimeConfig(selectedValue, disabledTime) : null;\n var rangeClassName = prefixCls + '-range';\n var newProps = {\n locale: locale,\n value: value,\n prefixCls: prefixCls,\n showTimePicker: showTimePicker\n };\n var index = direction === 'left' ? 0 : 1;\n var timePickerEle = null;\n if (shouldShowTimePicker) {\n var timePickerProps = getOptionProps(timePicker);\n timePickerEle = cloneElement(timePicker, {\n props: _extends({\n showHour: true,\n showMinute: true,\n showSecond: true\n }, timePickerProps, disabledTimeConfig, timePickerDisabledTime, {\n defaultOpenValue: value,\n value: selectedValue[index]\n }),\n on: {\n change: inputChange\n }\n });\n }\n\n var dateInputElement = showDateInput && h(DateInput, {\n attrs: {\n format: format,\n locale: locale,\n prefixCls: prefixCls,\n timePicker: timePicker,\n disabledDate: disabledDate,\n placeholder: placeholder,\n disabledTime: disabledTime,\n value: value,\n showClear: showClear || false,\n selectedValue: selectedValue[index],\n\n clearIcon: clearIcon,\n inputMode: inputMode,\n inputReadOnly: inputReadOnly\n },\n on: {\n 'change': inputChange,\n 'select': inputSelect\n }\n });\n var headerProps = {\n props: _extends({}, newProps, {\n mode: mode,\n enableNext: enableNext,\n enablePrev: enablePrev,\n disabledMonth: disabledMonth\n }),\n on: {\n valueChange: valueChange,\n panelChange: panelChange\n }\n };\n var tableProps = {\n props: _extends({}, newProps, {\n hoverValue: hoverValue,\n selectedValue: selectedValue,\n dateRender: dateRender,\n disabledDate: disabledDate,\n showWeekNumber: showWeekNumber\n }),\n on: {\n select: select,\n dayHover: dayHover\n }\n };\n return h(\n 'div',\n { 'class': rangeClassName + '-part ' + rangeClassName + '-' + direction },\n [dateInputElement, h(\n 'div',\n { style: { outline: 'none' } },\n [h(CalendarHeader, headerProps), showTimePicker ? h(\n 'div',\n { 'class': prefixCls + '-time-picker' },\n [h(\n 'div',\n { 'class': prefixCls + '-time-picker-panel' },\n [timePickerEle]\n )]\n ) : null, h(\n 'div',\n { 'class': prefixCls + '-body' },\n [h(DateTable, tableProps)]\n )]\n )]\n );\n }\n};\n\nexport default CalendarPart;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _slicedToArray from 'babel-runtime/helpers/slicedToArray';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getOptionProps, hasProp, mergeProps, getComponentFromProp, getListeners } from '../../_util/props-util';\nimport moment from 'moment';\nimport KeyCode from '../../_util/KeyCode';\nimport CalendarPart from './range-calendar/CalendarPart';\nimport TodayButton from './calendar/TodayButton';\nimport OkButton from './calendar/OkButton';\nimport TimePickerButton from './calendar/TimePickerButton';\nimport CommonMixin from './mixin/CommonMixin';\nimport enUs from './locale/en_US';\nimport { syncTime, getTodayTime, isAllowedDate } from './util/';\nimport { goTime, goStartMonth, goEndMonth, includesTime } from './util/toTime';\n\nfunction noop() {}\n\nfunction isEmptyArray(arr) {\n return Array.isArray(arr) && (arr.length === 0 || arr.every(function (i) {\n return !i;\n }));\n}\n\nfunction isArraysEqual(a, b) {\n if (a === b) return true;\n if (a === null || typeof a === 'undefined' || b === null || typeof b === 'undefined') {\n return false;\n }\n if (a.length !== b.length) return false;\n\n for (var i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n\nfunction getValueFromSelectedValue(selectedValue) {\n var _selectedValue = _slicedToArray(selectedValue, 2),\n start = _selectedValue[0],\n end = _selectedValue[1];\n\n if (end && (start === undefined || start === null)) {\n start = end.clone().subtract(1, 'month');\n }\n\n if (start && (end === undefined || end === null)) {\n end = start.clone().add(1, 'month');\n }\n return [start, end];\n}\n\nfunction normalizeAnchor(props, init) {\n var selectedValue = props.selectedValue || init && props.defaultSelectedValue;\n var value = props.value || init && props.defaultValue;\n var normalizedValue = value ? getValueFromSelectedValue(value) : getValueFromSelectedValue(selectedValue);\n return !isEmptyArray(normalizedValue) ? normalizedValue : init && [moment(), moment().add(1, 'months')];\n}\n\nfunction generateOptions(length, extraOptionGen) {\n var arr = extraOptionGen ? extraOptionGen().concat() : [];\n for (var value = 0; value < length; value++) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n }\n return arr;\n}\n\nfunction onInputSelect(direction, value, cause) {\n if (!value) {\n return;\n }\n var originalValue = this.sSelectedValue;\n var selectedValue = originalValue.concat();\n var index = direction === 'left' ? 0 : 1;\n selectedValue[index] = value;\n if (selectedValue[0] && this.compare(selectedValue[0], selectedValue[1]) > 0) {\n selectedValue[1 - index] = this.sShowTimePicker ? selectedValue[index] : undefined;\n }\n this.__emit('inputSelect', selectedValue);\n this.fireSelectValueChange(selectedValue, null, cause || { source: 'dateInput' });\n}\n\nvar RangeCalendar = {\n props: {\n locale: PropTypes.object.def(enUs),\n visible: PropTypes.bool.def(true),\n prefixCls: PropTypes.string.def('rc-calendar'),\n dateInputPlaceholder: PropTypes.any,\n seperator: PropTypes.string.def('~'),\n defaultValue: PropTypes.any,\n value: PropTypes.any,\n hoverValue: PropTypes.any,\n mode: PropTypes.arrayOf(PropTypes.oneOf(['time', 'date', 'month', 'year', 'decade'])),\n showDateInput: PropTypes.bool.def(true),\n timePicker: PropTypes.any,\n showOk: PropTypes.bool,\n showToday: PropTypes.bool.def(true),\n defaultSelectedValue: PropTypes.array.def([]),\n selectedValue: PropTypes.array,\n showClear: PropTypes.bool,\n showWeekNumber: PropTypes.bool,\n // locale: PropTypes.object,\n // onChange: PropTypes.func,\n // onSelect: PropTypes.func,\n // onValueChange: PropTypes.func,\n // onHoverChange: PropTypes.func,\n // onPanelChange: PropTypes.func,\n format: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.func]),\n // onClear: PropTypes.func,\n type: PropTypes.any.def('both'),\n disabledDate: PropTypes.func,\n disabledTime: PropTypes.func.def(noop),\n renderFooter: PropTypes.func.def(function () {\n return null;\n }),\n renderSidebar: PropTypes.func.def(function () {\n return null;\n }),\n dateRender: PropTypes.func,\n clearIcon: PropTypes.any,\n inputReadOnly: PropTypes.bool\n },\n\n mixins: [BaseMixin, CommonMixin],\n\n data: function data() {\n var props = this.$props;\n var selectedValue = props.selectedValue || props.defaultSelectedValue;\n var value = normalizeAnchor(props, 1);\n return {\n sSelectedValue: selectedValue,\n prevSelectedValue: selectedValue,\n firstSelectedValue: null,\n sHoverValue: props.hoverValue || [],\n sValue: value,\n sShowTimePicker: false,\n sMode: props.mode || ['date', 'date'],\n sPanelTriggerSource: '' // Trigger by which picker panel: 'start' & 'end'\n };\n },\n\n watch: {\n value: function value() {\n var newState = {};\n newState.sValue = normalizeAnchor(this.$props, 0);\n this.setState(newState);\n },\n hoverValue: function hoverValue(val) {\n if (!isArraysEqual(this.sHoverValue, val)) {\n this.setState({ sHoverValue: val });\n }\n },\n selectedValue: function selectedValue(val) {\n var newState = {};\n newState.sSelectedValue = val;\n newState.prevSelectedValue = val;\n this.setState(newState);\n },\n mode: function mode(val) {\n if (!isArraysEqual(this.sMode, val)) {\n this.setState({ sMode: val });\n }\n }\n },\n\n methods: {\n onDatePanelEnter: function onDatePanelEnter() {\n if (this.hasSelectedValue()) {\n this.fireHoverValueChange(this.sSelectedValue.concat());\n }\n },\n onDatePanelLeave: function onDatePanelLeave() {\n if (this.hasSelectedValue()) {\n this.fireHoverValueChange([]);\n }\n },\n onSelect: function onSelect(value) {\n var type = this.type,\n sSelectedValue = this.sSelectedValue,\n prevSelectedValue = this.prevSelectedValue,\n firstSelectedValue = this.firstSelectedValue;\n\n var nextSelectedValue = void 0;\n if (type === 'both') {\n if (!firstSelectedValue) {\n syncTime(prevSelectedValue[0], value);\n nextSelectedValue = [value];\n } else if (this.compare(firstSelectedValue, value) < 0) {\n syncTime(prevSelectedValue[1], value);\n nextSelectedValue = [firstSelectedValue, value];\n } else {\n syncTime(prevSelectedValue[0], value);\n syncTime(prevSelectedValue[1], firstSelectedValue);\n nextSelectedValue = [value, firstSelectedValue];\n }\n } else if (type === 'start') {\n syncTime(prevSelectedValue[0], value);\n var endValue = sSelectedValue[1];\n nextSelectedValue = endValue && this.compare(endValue, value) > 0 ? [value, endValue] : [value];\n } else {\n // type === 'end'\n var startValue = sSelectedValue[0];\n if (startValue && this.compare(startValue, value) <= 0) {\n syncTime(prevSelectedValue[1], value);\n nextSelectedValue = [startValue, value];\n } else {\n syncTime(prevSelectedValue[0], value);\n nextSelectedValue = [value];\n }\n }\n\n this.fireSelectValueChange(nextSelectedValue);\n },\n onKeyDown: function onKeyDown(event) {\n var _this = this;\n\n if (event.target.nodeName.toLowerCase() === 'input') {\n return;\n }\n\n var keyCode = event.keyCode;\n\n var ctrlKey = event.ctrlKey || event.metaKey;\n\n var _$data = this.$data,\n selectedValue = _$data.sSelectedValue,\n hoverValue = _$data.sHoverValue,\n firstSelectedValue = _$data.firstSelectedValue,\n value = _$data.sValue;\n var disabledDate = this.$props.disabledDate;\n\n // Update last time of the picker\n\n var updateHoverPoint = function updateHoverPoint(func) {\n // Change hover to make focus in UI\n var currentHoverTime = void 0;\n var nextHoverTime = void 0;\n var nextHoverValue = void 0;\n\n if (!firstSelectedValue) {\n currentHoverTime = hoverValue[0] || selectedValue[0] || value[0] || moment();\n nextHoverTime = func(currentHoverTime);\n nextHoverValue = [nextHoverTime];\n _this.fireHoverValueChange(nextHoverValue);\n } else {\n if (hoverValue.length === 1) {\n currentHoverTime = hoverValue[0].clone();\n nextHoverTime = func(currentHoverTime);\n nextHoverValue = _this.onDayHover(nextHoverTime);\n } else {\n currentHoverTime = hoverValue[0].isSame(firstSelectedValue, 'day') ? hoverValue[1] : hoverValue[0];\n nextHoverTime = func(currentHoverTime);\n nextHoverValue = _this.onDayHover(nextHoverTime);\n }\n }\n\n // Find origin hover time on value index\n if (nextHoverValue.length >= 2) {\n var miss = nextHoverValue.some(function (ht) {\n return !includesTime(value, ht, 'month');\n });\n if (miss) {\n var newValue = nextHoverValue.slice().sort(function (t1, t2) {\n return t1.valueOf() - t2.valueOf();\n });\n if (newValue[0].isSame(newValue[1], 'month')) {\n newValue[1] = newValue[0].clone().add(1, 'month');\n }\n _this.fireValueChange(newValue);\n }\n } else if (nextHoverValue.length === 1) {\n // If only one value, let's keep the origin panel\n var oriValueIndex = value.findIndex(function (time) {\n return time.isSame(currentHoverTime, 'month');\n });\n if (oriValueIndex === -1) oriValueIndex = 0;\n\n if (value.every(function (time) {\n return !time.isSame(nextHoverTime, 'month');\n })) {\n var _newValue = value.slice();\n _newValue[oriValueIndex] = nextHoverTime.clone();\n _this.fireValueChange(_newValue);\n }\n }\n\n event.preventDefault();\n\n return nextHoverTime;\n };\n\n switch (keyCode) {\n case KeyCode.DOWN:\n updateHoverPoint(function (time) {\n return goTime(time, 1, 'weeks');\n });\n return;\n case KeyCode.UP:\n updateHoverPoint(function (time) {\n return goTime(time, -1, 'weeks');\n });\n return;\n case KeyCode.LEFT:\n if (ctrlKey) {\n updateHoverPoint(function (time) {\n return goTime(time, -1, 'years');\n });\n } else {\n updateHoverPoint(function (time) {\n return goTime(time, -1, 'days');\n });\n }\n return;\n case KeyCode.RIGHT:\n if (ctrlKey) {\n updateHoverPoint(function (time) {\n return goTime(time, 1, 'years');\n });\n } else {\n updateHoverPoint(function (time) {\n return goTime(time, 1, 'days');\n });\n }\n return;\n case KeyCode.HOME:\n updateHoverPoint(function (time) {\n return goStartMonth(time);\n });\n return;\n case KeyCode.END:\n updateHoverPoint(function (time) {\n return goEndMonth(time);\n });\n return;\n case KeyCode.PAGE_DOWN:\n updateHoverPoint(function (time) {\n return goTime(time, 1, 'month');\n });\n return;\n case KeyCode.PAGE_UP:\n updateHoverPoint(function (time) {\n return goTime(time, -1, 'month');\n });\n return;\n case KeyCode.ENTER:\n {\n var lastValue = void 0;\n if (hoverValue.length === 0) {\n lastValue = updateHoverPoint(function (time) {\n return time;\n });\n } else if (hoverValue.length === 1) {\n lastValue = hoverValue[0];\n } else {\n lastValue = hoverValue[0].isSame(firstSelectedValue, 'day') ? hoverValue[1] : hoverValue[0];\n }\n if (lastValue && (!disabledDate || !disabledDate(lastValue))) {\n this.onSelect(lastValue);\n }\n event.preventDefault();\n return;\n }\n default:\n this.__emit('keydown', event);\n }\n },\n onDayHover: function onDayHover(value) {\n var hoverValue = [];\n var sSelectedValue = this.sSelectedValue,\n firstSelectedValue = this.firstSelectedValue,\n type = this.type;\n\n if (type === 'start' && sSelectedValue[1]) {\n hoverValue = this.compare(value, sSelectedValue[1]) < 0 ? [value, sSelectedValue[1]] : [value];\n } else if (type === 'end' && sSelectedValue[0]) {\n hoverValue = this.compare(value, sSelectedValue[0]) > 0 ? [sSelectedValue[0], value] : [];\n } else {\n if (!firstSelectedValue) {\n if (this.sHoverValue.length) {\n this.setState({ sHoverValue: [] });\n }\n return hoverValue;\n }\n hoverValue = this.compare(value, firstSelectedValue) < 0 ? [value, firstSelectedValue] : [firstSelectedValue, value];\n }\n this.fireHoverValueChange(hoverValue);\n return hoverValue;\n },\n onToday: function onToday() {\n var startValue = getTodayTime(this.sValue[0]);\n var endValue = startValue.clone().add(1, 'months');\n this.setState({ sValue: [startValue, endValue] });\n },\n onOpenTimePicker: function onOpenTimePicker() {\n this.setState({\n sShowTimePicker: true\n });\n },\n onCloseTimePicker: function onCloseTimePicker() {\n this.setState({\n sShowTimePicker: false\n });\n },\n onOk: function onOk() {\n var sSelectedValue = this.sSelectedValue;\n\n if (this.isAllowedDateAndTime(sSelectedValue)) {\n this.__emit('ok', sSelectedValue);\n }\n },\n onStartInputChange: function onStartInputChange() {\n for (var _len = arguments.length, oargs = Array(_len), _key = 0; _key < _len; _key++) {\n oargs[_key] = arguments[_key];\n }\n\n var args = ['left'].concat(oargs);\n return onInputSelect.apply(this, args);\n },\n onEndInputChange: function onEndInputChange() {\n for (var _len2 = arguments.length, oargs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n oargs[_key2] = arguments[_key2];\n }\n\n var args = ['right'].concat(oargs);\n return onInputSelect.apply(this, args);\n },\n onStartInputSelect: function onStartInputSelect(value) {\n var args = ['left', value, { source: 'dateInputSelect' }];\n return onInputSelect.apply(this, args);\n },\n onEndInputSelect: function onEndInputSelect(value) {\n var args = ['right', value, { source: 'dateInputSelect' }];\n return onInputSelect.apply(this, args);\n },\n onStartValueChange: function onStartValueChange(leftValue) {\n var value = [].concat(_toConsumableArray(this.sValue));\n value[0] = leftValue;\n return this.fireValueChange(value);\n },\n onEndValueChange: function onEndValueChange(rightValue) {\n var value = [].concat(_toConsumableArray(this.sValue));\n value[1] = rightValue;\n return this.fireValueChange(value);\n },\n onStartPanelChange: function onStartPanelChange(value, mode) {\n var sMode = this.sMode,\n sValue = this.sValue;\n\n var newMode = [mode, sMode[1]];\n var newValue = [value || sValue[0], sValue[1]];\n this.__emit('panelChange', newValue, newMode);\n var newState = {\n sPanelTriggerSource: 'start'\n };\n if (!hasProp(this, 'mode')) {\n newState.sMode = newMode;\n }\n this.setState(newState);\n },\n onEndPanelChange: function onEndPanelChange(value, mode) {\n var sMode = this.sMode,\n sValue = this.sValue;\n\n var newMode = [sMode[0], mode];\n var newValue = [sValue[0], value || sValue[1]];\n this.__emit('panelChange', newValue, newMode);\n var newState = {\n sPanelTriggerSource: 'end'\n };\n if (!hasProp(this, 'mode')) {\n newState.sMode = newMode;\n }\n this.setState(newState);\n },\n getStartValue: function getStartValue() {\n var _$data2 = this.$data,\n selectedValue = _$data2.sSelectedValue,\n showTimePicker = _$data2.sShowTimePicker,\n value = _$data2.sValue,\n mode = _$data2.sMode,\n panelTriggerSource = _$data2.sPanelTriggerSource;\n\n var startValue = value[0];\n // keep selectedTime when select date\n if (selectedValue[0] && this.$props.timePicker) {\n startValue = startValue.clone();\n syncTime(selectedValue[0], startValue);\n }\n if (showTimePicker && selectedValue[0]) {\n startValue = selectedValue[0];\n }\n\n // Adjust month if date not align\n if (panelTriggerSource === 'end' && mode[0] === 'date' && mode[1] === 'date' && startValue.isSame(value[1], 'month')) {\n startValue = startValue.clone().subtract(1, 'month');\n }\n\n return startValue;\n },\n getEndValue: function getEndValue() {\n var _$data3 = this.$data,\n selectedValue = _$data3.sSelectedValue,\n showTimePicker = _$data3.sShowTimePicker,\n value = _$data3.sValue,\n mode = _$data3.sMode,\n panelTriggerSource = _$data3.sPanelTriggerSource;\n\n var endValue = value[1] ? value[1].clone() : value[0].clone().add(1, 'month');\n // keep selectedTime when select date\n if (selectedValue[1] && this.$props.timePicker) {\n syncTime(selectedValue[1], endValue);\n }\n if (showTimePicker) {\n endValue = selectedValue[1] ? selectedValue[1] : this.getStartValue();\n }\n\n // Adjust month if date not align\n if (!showTimePicker && panelTriggerSource !== 'end' && mode[0] === 'date' && mode[1] === 'date' && endValue.isSame(value[0], 'month')) {\n endValue = endValue.clone().add(1, 'month');\n }\n\n return endValue;\n },\n\n // get disabled hours for second picker\n getEndDisableTime: function getEndDisableTime() {\n var sSelectedValue = this.sSelectedValue,\n sValue = this.sValue,\n disabledTime = this.disabledTime;\n\n var userSettingDisabledTime = disabledTime(sSelectedValue, 'end') || {};\n var startValue = sSelectedValue && sSelectedValue[0] || sValue[0].clone();\n // if startTime and endTime is same day..\n // the second time picker will not able to pick time before first time picker\n if (!sSelectedValue[1] || startValue.isSame(sSelectedValue[1], 'day')) {\n var hours = startValue.hour();\n var minutes = startValue.minute();\n var second = startValue.second();\n var _disabledHours = userSettingDisabledTime.disabledHours,\n _disabledMinutes = userSettingDisabledTime.disabledMinutes,\n _disabledSeconds = userSettingDisabledTime.disabledSeconds;\n\n var oldDisabledMinutes = _disabledMinutes ? _disabledMinutes() : [];\n var olddisabledSeconds = _disabledSeconds ? _disabledSeconds() : [];\n _disabledHours = generateOptions(hours, _disabledHours);\n _disabledMinutes = generateOptions(minutes, _disabledMinutes);\n _disabledSeconds = generateOptions(second, _disabledSeconds);\n return {\n disabledHours: function disabledHours() {\n return _disabledHours;\n },\n disabledMinutes: function disabledMinutes(hour) {\n if (hour === hours) {\n return _disabledMinutes;\n }\n return oldDisabledMinutes;\n },\n disabledSeconds: function disabledSeconds(hour, minute) {\n if (hour === hours && minute === minutes) {\n return _disabledSeconds;\n }\n return olddisabledSeconds;\n }\n };\n }\n return userSettingDisabledTime;\n },\n isAllowedDateAndTime: function isAllowedDateAndTime(selectedValue) {\n return isAllowedDate(selectedValue[0], this.disabledDate, this.disabledStartTime) && isAllowedDate(selectedValue[1], this.disabledDate, this.disabledEndTime);\n },\n isMonthYearPanelShow: function isMonthYearPanelShow(mode) {\n return ['month', 'year', 'decade'].indexOf(mode) > -1;\n },\n hasSelectedValue: function hasSelectedValue() {\n var sSelectedValue = this.sSelectedValue;\n\n return !!sSelectedValue[1] && !!sSelectedValue[0];\n },\n compare: function compare(v1, v2) {\n if (this.timePicker) {\n return v1.diff(v2);\n }\n return v1.diff(v2, 'days');\n },\n fireSelectValueChange: function fireSelectValueChange(selectedValue, direct, cause) {\n var timePicker = this.timePicker,\n prevSelectedValue = this.prevSelectedValue;\n\n if (timePicker) {\n var timePickerProps = getOptionProps(timePicker);\n if (timePickerProps.defaultValue) {\n var timePickerDefaultValue = timePickerProps.defaultValue;\n if (!prevSelectedValue[0] && selectedValue[0]) {\n syncTime(timePickerDefaultValue[0], selectedValue[0]);\n }\n if (!prevSelectedValue[1] && selectedValue[1]) {\n syncTime(timePickerDefaultValue[1], selectedValue[1]);\n }\n }\n }\n // 尚未选择过时间,直接输入的话\n if (!this.sSelectedValue[0] || !this.sSelectedValue[1]) {\n var startValue = selectedValue[0] || moment();\n var endValue = selectedValue[1] || startValue.clone().add(1, 'months');\n this.setState({\n sSelectedValue: selectedValue,\n sValue: selectedValue && selectedValue.length === 2 ? getValueFromSelectedValue([startValue, endValue]) : this.sValue\n });\n }\n\n if (selectedValue[0] && !selectedValue[1]) {\n this.setState({ firstSelectedValue: selectedValue[0] });\n this.fireHoverValueChange(selectedValue.concat());\n }\n this.__emit('change', selectedValue);\n if (direct || selectedValue[0] && selectedValue[1]) {\n this.setState({\n prevSelectedValue: selectedValue,\n firstSelectedValue: null\n });\n this.fireHoverValueChange([]);\n this.__emit('select', selectedValue, cause);\n }\n if (!hasProp(this, 'selectedValue')) {\n this.setState({\n sSelectedValue: selectedValue\n });\n }\n },\n fireValueChange: function fireValueChange(value) {\n if (!hasProp(this, 'value')) {\n this.setState({\n sValue: value\n });\n }\n this.__emit('valueChange', value);\n },\n fireHoverValueChange: function fireHoverValueChange(hoverValue) {\n if (!hasProp(this, 'hoverValue')) {\n this.setState({ sHoverValue: hoverValue });\n }\n this.__emit('hoverChange', hoverValue);\n },\n clear: function clear() {\n this.fireSelectValueChange([], true);\n this.__emit('clear');\n },\n disabledStartTime: function disabledStartTime(time) {\n return this.disabledTime(time, 'start');\n },\n disabledEndTime: function disabledEndTime(time) {\n return this.disabledTime(time, 'end');\n },\n disabledStartMonth: function disabledStartMonth(month) {\n var sValue = this.sValue;\n\n return month.isAfter(sValue[1], 'month');\n },\n disabledEndMonth: function disabledEndMonth(month) {\n var sValue = this.sValue;\n\n return month.isBefore(sValue[0], 'month');\n }\n },\n\n render: function render() {\n var _className, _cls;\n\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var prefixCls = props.prefixCls,\n dateInputPlaceholder = props.dateInputPlaceholder,\n timePicker = props.timePicker,\n showOk = props.showOk,\n locale = props.locale,\n showClear = props.showClear,\n showToday = props.showToday,\n type = props.type,\n seperator = props.seperator;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n var sHoverValue = this.sHoverValue,\n sSelectedValue = this.sSelectedValue,\n mode = this.sMode,\n sShowTimePicker = this.sShowTimePicker,\n sValue = this.sValue;\n\n var className = (_className = {}, _defineProperty(_className, prefixCls, 1), _defineProperty(_className, prefixCls + '-hidden', !props.visible), _defineProperty(_className, prefixCls + '-range', 1), _defineProperty(_className, prefixCls + '-show-time-picker', sShowTimePicker), _defineProperty(_className, prefixCls + '-week-number', props.showWeekNumber), _className);\n var baseProps = {\n props: props,\n on: getListeners(this)\n };\n var newProps = {\n props: {\n selectedValue: sSelectedValue\n },\n on: {\n select: this.onSelect,\n dayHover: type === 'start' && sSelectedValue[1] || type === 'end' && sSelectedValue[0] || !!sHoverValue.length ? this.onDayHover : noop\n }\n };\n\n var placeholder1 = void 0;\n var placeholder2 = void 0;\n\n if (dateInputPlaceholder) {\n if (Array.isArray(dateInputPlaceholder)) {\n var _dateInputPlaceholder = _slicedToArray(dateInputPlaceholder, 2);\n\n placeholder1 = _dateInputPlaceholder[0];\n placeholder2 = _dateInputPlaceholder[1];\n } else {\n placeholder1 = placeholder2 = dateInputPlaceholder;\n }\n }\n var showOkButton = showOk === true || showOk !== false && !!timePicker;\n var cls = (_cls = {}, _defineProperty(_cls, prefixCls + '-footer', true), _defineProperty(_cls, prefixCls + '-range-bottom', true), _defineProperty(_cls, prefixCls + '-footer-show-ok', showOkButton), _cls);\n\n var startValue = this.getStartValue();\n var endValue = this.getEndValue();\n var todayTime = getTodayTime(startValue);\n var thisMonth = todayTime.month();\n var thisYear = todayTime.year();\n var isTodayInView = startValue.year() === thisYear && startValue.month() === thisMonth || endValue.year() === thisYear && endValue.month() === thisMonth;\n var nextMonthOfStart = startValue.clone().add(1, 'months');\n var isClosestMonths = nextMonthOfStart.year() === endValue.year() && nextMonthOfStart.month() === endValue.month();\n var leftPartProps = mergeProps(baseProps, newProps, {\n props: {\n hoverValue: sHoverValue,\n direction: 'left',\n disabledTime: this.disabledStartTime,\n disabledMonth: this.disabledStartMonth,\n format: this.getFormat(),\n value: startValue,\n mode: mode[0],\n placeholder: placeholder1,\n showDateInput: this.showDateInput,\n timePicker: timePicker,\n showTimePicker: sShowTimePicker || mode[0] === 'time',\n enablePrev: true,\n enableNext: !isClosestMonths || this.isMonthYearPanelShow(mode[1]),\n clearIcon: clearIcon\n },\n on: {\n inputChange: this.onStartInputChange,\n inputSelect: this.onStartInputSelect,\n valueChange: this.onStartValueChange,\n panelChange: this.onStartPanelChange\n }\n });\n var rightPartProps = mergeProps(baseProps, newProps, {\n props: {\n hoverValue: sHoverValue,\n direction: 'right',\n format: this.getFormat(),\n timePickerDisabledTime: this.getEndDisableTime(),\n placeholder: placeholder2,\n value: endValue,\n mode: mode[1],\n showDateInput: this.showDateInput,\n timePicker: timePicker,\n showTimePicker: sShowTimePicker || mode[1] === 'time',\n disabledTime: this.disabledEndTime,\n disabledMonth: this.disabledEndMonth,\n enablePrev: !isClosestMonths || this.isMonthYearPanelShow(mode[0]),\n enableNext: true,\n clearIcon: clearIcon\n },\n on: {\n inputChange: this.onEndInputChange,\n inputSelect: this.onEndInputSelect,\n valueChange: this.onEndValueChange,\n panelChange: this.onEndPanelChange\n }\n });\n var TodayButtonNode = null;\n if (showToday) {\n var todayButtonProps = mergeProps(baseProps, {\n props: {\n disabled: isTodayInView,\n value: sValue[0],\n text: locale.backToToday\n },\n on: {\n today: this.onToday\n }\n });\n TodayButtonNode = h(TodayButton, _mergeJSXProps([{ key: 'todayButton' }, todayButtonProps]));\n }\n\n var TimePickerButtonNode = null;\n if (props.timePicker) {\n var timePickerButtonProps = mergeProps(baseProps, {\n props: {\n showTimePicker: sShowTimePicker || mode[0] === 'time' && mode[1] === 'time',\n timePickerDisabled: !this.hasSelectedValue() || sHoverValue.length\n },\n on: {\n openTimePicker: this.onOpenTimePicker,\n closeTimePicker: this.onCloseTimePicker\n }\n });\n TimePickerButtonNode = h(TimePickerButton, _mergeJSXProps([{ key: 'timePickerButton' }, timePickerButtonProps]));\n }\n\n var OkButtonNode = null;\n if (showOkButton) {\n var okButtonProps = mergeProps(baseProps, {\n props: {\n okDisabled: !this.isAllowedDateAndTime(sSelectedValue) || !this.hasSelectedValue() || sHoverValue.length\n },\n on: {\n ok: this.onOk\n }\n });\n OkButtonNode = h(OkButton, _mergeJSXProps([{ key: 'okButtonNode' }, okButtonProps]));\n }\n var extraFooter = this.renderFooter(mode);\n return h(\n 'div',\n { ref: 'rootInstance', 'class': className, attrs: { tabIndex: '0' },\n on: {\n 'keydown': this.onKeyDown\n }\n },\n [props.renderSidebar(), h(\n 'div',\n { 'class': prefixCls + '-panel' },\n [showClear && sSelectedValue[0] && sSelectedValue[1] ? h(\n 'a',\n {\n attrs: { role: 'button', title: locale.clear },\n on: {\n 'click': this.clear\n }\n },\n [clearIcon || h('span', { 'class': prefixCls + '-clear-btn' })]\n ) : null, h(\n 'div',\n {\n 'class': prefixCls + '-date-panel',\n on: {\n 'mouseleave': type !== 'both' ? this.onDatePanelLeave : noop,\n 'mouseenter': type !== 'both' ? this.onDatePanelEnter : noop\n }\n },\n [h(CalendarPart, leftPartProps), h(\n 'span',\n { 'class': prefixCls + '-range-middle' },\n [seperator]\n ), h(CalendarPart, rightPartProps)]\n ), h(\n 'div',\n { 'class': cls },\n [showToday || props.timePicker || showOkButton || extraFooter ? h(\n 'div',\n { 'class': prefixCls + '-footer-btn' },\n [extraFooter, TodayButtonNode, TimePickerButtonNode, OkButtonNode]\n ) : null]\n )]\n )]\n );\n }\n};\n\nexport default RangeCalendar;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { getOptionProps, getListeners } from '../../../_util/props-util';\nimport TodayButton from './TodayButton';\nimport OkButton from './OkButton';\nimport TimePickerButton from './TimePickerButton';\n\nvar CalendarFooter = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n showDateInput: PropTypes.bool,\n disabledTime: PropTypes.any,\n timePicker: PropTypes.any,\n selectedValue: PropTypes.any,\n showOk: PropTypes.bool,\n // onSelect: PropTypes.func,\n value: PropTypes.object,\n renderFooter: PropTypes.func,\n defaultValue: PropTypes.object,\n locale: PropTypes.object,\n showToday: PropTypes.bool,\n disabledDate: PropTypes.func,\n showTimePicker: PropTypes.bool,\n okDisabled: PropTypes.bool,\n mode: PropTypes.string\n },\n methods: {\n onSelect: function onSelect(value) {\n this.__emit('select', value);\n },\n getRootDOMNode: function getRootDOMNode() {\n return this.$el;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var value = props.value,\n prefixCls = props.prefixCls,\n showOk = props.showOk,\n timePicker = props.timePicker,\n renderFooter = props.renderFooter,\n showToday = props.showToday,\n mode = props.mode;\n\n var footerEl = null;\n var extraFooter = renderFooter && renderFooter(mode);\n if (showToday || timePicker || extraFooter) {\n var _cls;\n\n var btnProps = {\n props: _extends({}, props, {\n value: value\n }),\n on: getListeners(this)\n };\n var nowEl = null;\n if (showToday) {\n nowEl = h(TodayButton, _mergeJSXProps([{ key: 'todayButton' }, btnProps]));\n }\n delete btnProps.props.value;\n var okBtn = null;\n if (showOk === true || showOk !== false && !!timePicker) {\n okBtn = h(OkButton, _mergeJSXProps([{ key: 'okButton' }, btnProps]));\n }\n var timePickerBtn = null;\n if (timePicker) {\n timePickerBtn = h(TimePickerButton, _mergeJSXProps([{ key: 'timePickerButton' }, btnProps]));\n }\n\n var footerBtn = void 0;\n if (nowEl || timePickerBtn || okBtn || extraFooter) {\n footerBtn = h(\n 'span',\n { 'class': prefixCls + '-footer-btn' },\n [extraFooter, nowEl, timePickerBtn, okBtn]\n );\n }\n var cls = (_cls = {}, _defineProperty(_cls, prefixCls + '-footer', true), _defineProperty(_cls, prefixCls + '-footer-show-ok', !!okBtn), _cls);\n footerEl = h(\n 'div',\n { 'class': cls },\n [footerBtn]\n );\n }\n return footerEl;\n }\n};\n\nexport default CalendarFooter;","import PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { hasProp, getListeners } from '../../../_util/props-util';\nimport MonthTable from './MonthTable';\n\nfunction goYear(direction) {\n this.changeYear(direction);\n}\n\nfunction noop() {}\n\nvar MonthPanel = {\n name: 'MonthPanel',\n mixins: [BaseMixin],\n props: {\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n cellRender: PropTypes.any,\n contentRender: PropTypes.any,\n locale: PropTypes.any,\n rootPrefixCls: PropTypes.string,\n // onChange: PropTypes.func,\n disabledDate: PropTypes.func,\n // onSelect: PropTypes.func,\n renderFooter: PropTypes.func,\n changeYear: PropTypes.func.def(noop)\n },\n\n data: function data() {\n var value = this.value,\n defaultValue = this.defaultValue;\n // bind methods\n\n this.nextYear = goYear.bind(this, 1);\n this.previousYear = goYear.bind(this, -1);\n return {\n sValue: value || defaultValue\n };\n },\n\n watch: {\n value: function value(val) {\n this.setState({\n sValue: val\n });\n }\n },\n methods: {\n setAndSelectValue: function setAndSelectValue(value) {\n this.setValue(value);\n this.__emit('select', value);\n },\n setValue: function setValue(value) {\n if (hasProp(this, 'value')) {\n this.setState({\n sValue: value\n });\n }\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var sValue = this.sValue,\n cellRender = this.cellRender,\n contentRender = this.contentRender,\n locale = this.locale,\n rootPrefixCls = this.rootPrefixCls,\n disabledDate = this.disabledDate,\n renderFooter = this.renderFooter;\n\n var year = sValue.year();\n var prefixCls = rootPrefixCls + '-month-panel';\n\n var footer = renderFooter && renderFooter('month');\n return h(\n 'div',\n { 'class': prefixCls },\n [h('div', [h(\n 'div',\n { 'class': prefixCls + '-header' },\n [h('a', {\n 'class': prefixCls + '-prev-year-btn',\n attrs: { role: 'button',\n\n title: locale.previousYear\n },\n on: {\n 'click': this.previousYear\n }\n }), h(\n 'a',\n {\n 'class': prefixCls + '-year-select',\n attrs: { role: 'button',\n\n title: locale.yearSelect\n },\n on: {\n 'click': getListeners(this).yearPanelShow || noop\n }\n },\n [h(\n 'span',\n { 'class': prefixCls + '-year-select-content' },\n [year]\n ), h(\n 'span',\n { 'class': prefixCls + '-year-select-arrow' },\n ['x']\n )]\n ), h('a', {\n 'class': prefixCls + '-next-year-btn',\n attrs: { role: 'button',\n\n title: locale.nextYear\n },\n on: {\n 'click': this.nextYear\n }\n })]\n ), h(\n 'div',\n { 'class': prefixCls + '-body' },\n [h(MonthTable, {\n attrs: {\n disabledDate: disabledDate,\n\n locale: locale,\n value: sValue,\n cellRender: cellRender,\n contentRender: contentRender,\n prefixCls: prefixCls\n },\n on: {\n 'select': this.setAndSelectValue\n }\n })]\n ), footer && h(\n 'div',\n { 'class': prefixCls + '-footer' },\n [footer]\n )])]\n );\n }\n};\n\nexport default MonthPanel;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { getListeners } from '../../../_util/props-util';\nvar ROW = 4;\nvar COL = 3;\nfunction noop() {}\nfunction goYear(direction) {\n var value = this.sValue.clone();\n value.add(direction, 'year');\n this.setState({\n sValue: value\n });\n}\n\nfunction chooseYear(year) {\n var value = this.sValue.clone();\n value.year(year);\n value.month(this.sValue.month());\n this.sValue = value;\n this.__emit('select', value);\n}\n\nexport default {\n mixins: [BaseMixin],\n props: {\n rootPrefixCls: PropTypes.string,\n value: PropTypes.object,\n defaultValue: PropTypes.object,\n locale: PropTypes.object,\n renderFooter: PropTypes.func,\n disabledDate: PropTypes.func\n },\n data: function data() {\n this.nextDecade = goYear.bind(this, 10);\n this.previousDecade = goYear.bind(this, -10);\n return {\n sValue: this.value || this.defaultValue\n };\n },\n\n watch: {\n value: function value(val) {\n this.sValue = val;\n }\n },\n methods: {\n years: function years() {\n var value = this.sValue;\n var currentYear = value.year();\n var startYear = parseInt(currentYear / 10, 10) * 10;\n var previousYear = startYear - 1;\n var years = [];\n var index = 0;\n for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {\n years[rowIndex] = [];\n for (var colIndex = 0; colIndex < COL; colIndex++) {\n var year = previousYear + index;\n var content = String(year);\n years[rowIndex][colIndex] = {\n content: content,\n year: year,\n title: content\n };\n index++;\n }\n }\n return years;\n }\n },\n\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n var value = this.sValue,\n locale = this.locale,\n renderFooter = this.renderFooter,\n $props = this.$props;\n\n var decadePanelShow = getListeners(this).decadePanelShow || noop;\n var years = this.years();\n var currentYear = value.year();\n var startYear = parseInt(currentYear / 10, 10) * 10;\n var endYear = startYear + 9;\n var prefixCls = this.rootPrefixCls + '-year-panel';\n var disabledDate = $props.disabledDate;\n\n\n var yeasEls = years.map(function (row, index) {\n var tds = row.map(function (yearData) {\n var _classNameMap;\n\n var disabled = false;\n if (disabledDate) {\n var testValue = value.clone();\n testValue.year(yearData.year);\n disabled = disabledDate(testValue);\n }\n var classNameMap = (_classNameMap = {}, _defineProperty(_classNameMap, prefixCls + '-cell', 1), _defineProperty(_classNameMap, prefixCls + '-cell-disabled', disabled), _defineProperty(_classNameMap, prefixCls + '-selected-cell', yearData.year === currentYear), _defineProperty(_classNameMap, prefixCls + '-last-decade-cell', yearData.year < startYear), _defineProperty(_classNameMap, prefixCls + '-next-decade-cell', yearData.year > endYear), _classNameMap);\n var clickHandler = noop;\n if (yearData.year < startYear) {\n clickHandler = _this.previousDecade;\n } else if (yearData.year > endYear) {\n clickHandler = _this.nextDecade;\n } else {\n clickHandler = chooseYear.bind(_this, yearData.year);\n }\n return h(\n 'td',\n {\n attrs: {\n role: 'gridcell',\n title: yearData.title\n },\n key: yearData.content,\n on: {\n 'click': disabled ? noop : clickHandler\n },\n\n 'class': classNameMap\n },\n [h(\n 'a',\n { 'class': prefixCls + '-year' },\n [yearData.content]\n )]\n );\n });\n return h(\n 'tr',\n { key: index, attrs: { role: 'row' }\n },\n [tds]\n );\n });\n var footer = renderFooter && renderFooter('year');\n return h(\n 'div',\n { 'class': prefixCls },\n [h('div', [h(\n 'div',\n { 'class': prefixCls + '-header' },\n [h('a', {\n 'class': prefixCls + '-prev-decade-btn',\n attrs: { role: 'button',\n\n title: locale.previousDecade\n },\n on: {\n 'click': this.previousDecade\n }\n }), h(\n 'a',\n {\n 'class': prefixCls + '-decade-select',\n attrs: { role: 'button',\n\n title: locale.decadeSelect\n },\n on: {\n 'click': decadePanelShow\n }\n },\n [h(\n 'span',\n { 'class': prefixCls + '-decade-select-content' },\n [startYear, '-', endYear]\n ), h(\n 'span',\n { 'class': prefixCls + '-decade-select-arrow' },\n ['x']\n )]\n ), h('a', {\n 'class': prefixCls + '-next-decade-btn',\n attrs: { role: 'button',\n\n title: locale.nextDecade\n },\n on: {\n 'click': this.nextDecade\n }\n })]\n ), h(\n 'div',\n { 'class': prefixCls + '-body' },\n [h(\n 'table',\n { 'class': prefixCls + '-table', attrs: { cellSpacing: '0', role: 'grid' }\n },\n [h(\n 'tbody',\n { 'class': prefixCls + '-tbody' },\n [yeasEls]\n )]\n )]\n ), footer && h(\n 'div',\n { 'class': prefixCls + '-footer' },\n [footer]\n )])]\n );\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nvar ROW = 4;\nvar COL = 3;\nfunction noop() {}\nfunction goYear(direction) {\n var next = this.sValue.clone();\n next.add(direction, 'years');\n this.setState({\n sValue: next\n });\n}\n\nfunction chooseDecade(year, event) {\n var next = this.sValue.clone();\n next.year(year);\n next.month(this.sValue.month());\n this.__emit('select', next);\n event.preventDefault();\n}\n\nexport default {\n mixins: [BaseMixin],\n props: {\n locale: PropTypes.object,\n value: PropTypes.object,\n defaultValue: PropTypes.object,\n rootPrefixCls: PropTypes.string,\n renderFooter: PropTypes.func\n },\n data: function data() {\n this.nextCentury = goYear.bind(this, 100);\n this.previousCentury = goYear.bind(this, -100);\n return {\n sValue: this.value || this.defaultValue\n };\n },\n\n watch: {\n value: function value(val) {\n this.sValue = val;\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n\n var value = this.sValue;\n var _$props = this.$props,\n locale = _$props.locale,\n renderFooter = _$props.renderFooter;\n\n var currentYear = value.year();\n var startYear = parseInt(currentYear / 100, 10) * 100;\n var preYear = startYear - 10;\n var endYear = startYear + 99;\n var decades = [];\n var index = 0;\n var prefixCls = this.rootPrefixCls + '-decade-panel';\n\n for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {\n decades[rowIndex] = [];\n for (var colIndex = 0; colIndex < COL; colIndex++) {\n var startDecade = preYear + index * 10;\n var endDecade = preYear + index * 10 + 9;\n decades[rowIndex][colIndex] = {\n startDecade: startDecade,\n endDecade: endDecade\n };\n index++;\n }\n }\n\n var footer = renderFooter && renderFooter('decade');\n var decadesEls = decades.map(function (row, decadeIndex) {\n var tds = row.map(function (decadeData) {\n var _classNameMap;\n\n var dStartDecade = decadeData.startDecade;\n var dEndDecade = decadeData.endDecade;\n var isLast = dStartDecade < startYear;\n var isNext = dEndDecade > endYear;\n var classNameMap = (_classNameMap = {}, _defineProperty(_classNameMap, prefixCls + '-cell', 1), _defineProperty(_classNameMap, prefixCls + '-selected-cell', dStartDecade <= currentYear && currentYear <= dEndDecade), _defineProperty(_classNameMap, prefixCls + '-last-century-cell', isLast), _defineProperty(_classNameMap, prefixCls + '-next-century-cell', isNext), _classNameMap);\n var content = dStartDecade + '-' + dEndDecade;\n var clickHandler = noop;\n if (isLast) {\n clickHandler = _this.previousCentury;\n } else if (isNext) {\n clickHandler = _this.nextCentury;\n } else {\n clickHandler = chooseDecade.bind(_this, dStartDecade);\n }\n return h(\n 'td',\n { key: dStartDecade, on: {\n 'click': clickHandler\n },\n attrs: { role: 'gridcell' },\n 'class': classNameMap },\n [h(\n 'a',\n { 'class': prefixCls + '-decade' },\n [content]\n )]\n );\n });\n return h(\n 'tr',\n { key: decadeIndex, attrs: { role: 'row' }\n },\n [tds]\n );\n });\n\n return h(\n 'div',\n { 'class': prefixCls },\n [h(\n 'div',\n { 'class': prefixCls + '-header' },\n [h('a', {\n 'class': prefixCls + '-prev-century-btn',\n attrs: { role: 'button',\n\n title: locale.previousCentury\n },\n on: {\n 'click': this.previousCentury\n }\n }), h(\n 'div',\n { 'class': prefixCls + '-century' },\n [startYear, '-', endYear]\n ), h('a', {\n 'class': prefixCls + '-next-century-btn',\n attrs: { role: 'button',\n\n title: locale.nextCentury\n },\n on: {\n 'click': this.nextCentury\n }\n })]\n ), h(\n 'div',\n { 'class': prefixCls + '-body' },\n [h(\n 'table',\n { 'class': prefixCls + '-table', attrs: { cellSpacing: '0', role: 'grid' }\n },\n [h(\n 'tbody',\n { 'class': prefixCls + '-tbody' },\n [decadesEls]\n )]\n )]\n ), footer && h(\n 'div',\n { 'class': prefixCls + '-footer' },\n [footer]\n )]\n );\n }\n};","import PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { getOptionProps, getListeners } from '../../../_util/props-util';\nimport MonthPanel from '../month/MonthPanel';\nimport YearPanel from '../year/YearPanel';\nimport DecadePanel from '../decade/DecadePanel';\nfunction noop() {}\nfunction goMonth(direction) {\n var next = this.value.clone();\n next.add(direction, 'months');\n this.__emit('valueChange', next);\n}\n\nfunction goYear(direction) {\n var next = this.value.clone();\n next.add(direction, 'years');\n this.__emit('valueChange', next);\n}\n\nfunction showIf(condition, el) {\n return condition ? el : null;\n}\n\nvar CalendarHeader = {\n name: 'CalendarHeader',\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n value: PropTypes.object,\n // onValueChange: PropTypes.func,\n showTimePicker: PropTypes.bool,\n // onPanelChange: PropTypes.func,\n locale: PropTypes.object,\n enablePrev: PropTypes.any.def(1),\n enableNext: PropTypes.any.def(1),\n disabledMonth: PropTypes.func,\n mode: PropTypes.any,\n monthCellRender: PropTypes.func,\n monthCellContentRender: PropTypes.func,\n renderFooter: PropTypes.func\n },\n data: function data() {\n this.nextMonth = goMonth.bind(this, 1);\n this.previousMonth = goMonth.bind(this, -1);\n this.nextYear = goYear.bind(this, 1);\n this.previousYear = goYear.bind(this, -1);\n return {\n yearPanelReferer: null\n };\n },\n\n methods: {\n onMonthSelect: function onMonthSelect(value) {\n this.__emit('panelChange', value, 'date');\n if (getListeners(this).monthSelect) {\n this.__emit('monthSelect', value);\n } else {\n this.__emit('valueChange', value);\n }\n },\n onYearSelect: function onYearSelect(value) {\n var referer = this.yearPanelReferer;\n this.setState({ yearPanelReferer: null });\n this.__emit('panelChange', value, referer);\n this.__emit('valueChange', value);\n },\n onDecadeSelect: function onDecadeSelect(value) {\n this.__emit('panelChange', value, 'year');\n this.__emit('valueChange', value);\n },\n changeYear: function changeYear(direction) {\n if (direction > 0) {\n this.nextYear();\n } else {\n this.previousYear();\n }\n },\n monthYearElement: function monthYearElement(showTimePicker) {\n var _this = this;\n\n var h = this.$createElement;\n\n var props = this.$props;\n var prefixCls = props.prefixCls;\n var locale = props.locale;\n var value = props.value;\n var localeData = value.localeData();\n var monthBeforeYear = locale.monthBeforeYear;\n var selectClassName = prefixCls + '-' + (monthBeforeYear ? 'my-select' : 'ym-select');\n var timeClassName = showTimePicker ? ' ' + prefixCls + '-time-status' : '';\n var year = h(\n 'a',\n {\n 'class': prefixCls + '-year-select' + timeClassName,\n attrs: { role: 'button',\n\n title: showTimePicker ? null : locale.yearSelect\n },\n on: {\n 'click': showTimePicker ? noop : function () {\n return _this.showYearPanel('date');\n }\n }\n },\n [value.format(locale.yearFormat)]\n );\n var month = h(\n 'a',\n {\n 'class': prefixCls + '-month-select' + timeClassName,\n attrs: { role: 'button',\n\n title: showTimePicker ? null : locale.monthSelect\n },\n on: {\n 'click': showTimePicker ? noop : this.showMonthPanel\n }\n },\n [locale.monthFormat ? value.format(locale.monthFormat) : localeData.monthsShort(value)]\n );\n var day = void 0;\n if (showTimePicker) {\n day = h(\n 'a',\n { 'class': prefixCls + '-day-select' + timeClassName, attrs: { role: 'button' }\n },\n [value.format(locale.dayFormat)]\n );\n }\n var my = [];\n if (monthBeforeYear) {\n my = [month, day, year];\n } else {\n my = [year, month, day];\n }\n return h(\n 'span',\n { 'class': selectClassName },\n [my]\n );\n },\n showMonthPanel: function showMonthPanel() {\n // null means that users' interaction doesn't change value\n this.__emit('panelChange', null, 'month');\n },\n showYearPanel: function showYearPanel(referer) {\n this.setState({ yearPanelReferer: referer });\n this.__emit('panelChange', null, 'year');\n },\n showDecadePanel: function showDecadePanel() {\n this.__emit('panelChange', null, 'decade');\n }\n },\n\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var prefixCls = props.prefixCls,\n locale = props.locale,\n mode = props.mode,\n value = props.value,\n showTimePicker = props.showTimePicker,\n enableNext = props.enableNext,\n enablePrev = props.enablePrev,\n disabledMonth = props.disabledMonth,\n renderFooter = props.renderFooter;\n\n\n var panel = null;\n if (mode === 'month') {\n panel = h(MonthPanel, {\n attrs: {\n locale: locale,\n value: value,\n rootPrefixCls: prefixCls,\n\n disabledDate: disabledMonth,\n cellRender: props.monthCellRender,\n contentRender: props.monthCellContentRender,\n renderFooter: renderFooter,\n changeYear: this.changeYear\n },\n on: {\n 'select': this.onMonthSelect,\n 'yearPanelShow': function yearPanelShow() {\n return _this2.showYearPanel('month');\n }\n }\n });\n }\n if (mode === 'year') {\n panel = h(YearPanel, {\n attrs: {\n locale: locale,\n value: value,\n rootPrefixCls: prefixCls,\n\n renderFooter: renderFooter,\n disabledDate: disabledMonth\n },\n on: {\n 'select': this.onYearSelect,\n 'decadePanelShow': this.showDecadePanel\n }\n });\n }\n if (mode === 'decade') {\n panel = h(DecadePanel, {\n attrs: {\n locale: locale,\n value: value,\n rootPrefixCls: prefixCls,\n\n renderFooter: renderFooter\n },\n on: {\n 'select': this.onDecadeSelect\n }\n });\n }\n\n return h(\n 'div',\n { 'class': prefixCls + '-header' },\n [h(\n 'div',\n { style: { position: 'relative' } },\n [showIf(enablePrev && !showTimePicker, h('a', {\n 'class': prefixCls + '-prev-year-btn',\n attrs: { role: 'button',\n\n title: locale.previousYear\n },\n on: {\n 'click': this.previousYear\n }\n })), showIf(enablePrev && !showTimePicker, h('a', {\n 'class': prefixCls + '-prev-month-btn',\n attrs: { role: 'button',\n\n title: locale.previousMonth\n },\n on: {\n 'click': this.previousMonth\n }\n })), this.monthYearElement(showTimePicker), showIf(enableNext && !showTimePicker, h('a', {\n 'class': prefixCls + '-next-month-btn',\n on: {\n 'click': this.nextMonth\n },\n attrs: {\n title: locale.nextMonth\n }\n })), showIf(enableNext && !showTimePicker, h('a', {\n 'class': prefixCls + '-next-year-btn',\n on: {\n 'click': this.nextYear\n },\n attrs: {\n title: locale.nextYear\n }\n }))]\n ), panel]\n );\n }\n};\n\nexport default CalendarHeader;","function noop() {}\nexport default {\n functional: true,\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props,\n _context$listeners = context.listeners,\n listeners = _context$listeners === undefined ? {} : _context$listeners;\n var prefixCls = props.prefixCls,\n locale = props.locale,\n okDisabled = props.okDisabled;\n var _listeners$ok = listeners.ok,\n ok = _listeners$ok === undefined ? noop : _listeners$ok;\n\n var className = prefixCls + \"-ok-btn\";\n if (okDisabled) {\n className += \" \" + prefixCls + \"-ok-btn-disabled\";\n }\n return h(\n \"a\",\n { \"class\": className, attrs: { role: \"button\" },\n on: {\n \"click\": okDisabled ? noop : ok\n }\n },\n [locale.ok]\n );\n }\n};","import _defineProperty from \"babel-runtime/helpers/defineProperty\";\nfunction noop() {}\nexport default {\n functional: true,\n render: function render(h, context) {\n var _className;\n\n var props = context.props,\n _context$listeners = context.listeners,\n listeners = _context$listeners === undefined ? {} : _context$listeners;\n var prefixCls = props.prefixCls,\n locale = props.locale,\n showTimePicker = props.showTimePicker,\n timePickerDisabled = props.timePickerDisabled;\n var _listeners$closeTimeP = listeners.closeTimePicker,\n closeTimePicker = _listeners$closeTimeP === undefined ? noop : _listeners$closeTimeP,\n _listeners$openTimePi = listeners.openTimePicker,\n openTimePicker = _listeners$openTimePi === undefined ? noop : _listeners$openTimePi;\n\n var className = (_className = {}, _defineProperty(_className, prefixCls + \"-time-picker-btn\", true), _defineProperty(_className, prefixCls + \"-time-picker-btn-disabled\", timePickerDisabled), _className);\n var onClick = noop;\n if (!timePickerDisabled) {\n onClick = showTimePicker ? closeTimePicker : openTimePicker;\n }\n return h(\n \"a\",\n { \"class\": className, attrs: { role: \"button\" },\n on: {\n \"click\": onClick\n }\n },\n [showTimePicker ? locale.dateSelect : locale.timeSelect]\n );\n }\n};","import { getTodayTimeStr, getTodayTime, isAllowedDate } from '../util/';\nfunction noop() {}\nexport default {\n functional: true,\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props,\n _context$listeners = context.listeners,\n listeners = _context$listeners === undefined ? {} : _context$listeners;\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n timePicker = props.timePicker,\n disabled = props.disabled,\n disabledDate = props.disabledDate,\n text = props.text;\n var _listeners$today = listeners.today,\n today = _listeners$today === undefined ? noop : _listeners$today;\n\n var localeNow = (!text && timePicker ? locale.now : text) || locale.today;\n var disabledToday = disabledDate && !isAllowedDate(getTodayTime(value), disabledDate);\n var isDisabled = disabledToday || disabled;\n var disabledTodayClass = isDisabled ? prefixCls + '-today-btn-disabled' : '';\n return h(\n 'a',\n {\n 'class': prefixCls + '-today-btn ' + disabledTodayClass,\n attrs: { role: 'button',\n\n title: getTodayTimeStr(value)\n },\n on: {\n 'click': isDisabled ? noop : today\n }\n },\n [localeNow]\n );\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { getComponentFromProp } from '../../../_util/props-util';\nimport moment from 'moment';\nimport { formatDate } from '../util';\nimport KeyCode from '../../../_util/KeyCode';\n\nvar cachedSelectionStart = void 0;\nvar cachedSelectionEnd = void 0;\nvar dateInputInstance = void 0;\n\nvar DateInput = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n timePicker: PropTypes.object,\n value: PropTypes.object,\n disabledTime: PropTypes.any,\n format: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.func]),\n locale: PropTypes.object,\n disabledDate: PropTypes.func,\n // onChange: PropTypes.func,\n // onClear: PropTypes.func,\n placeholder: PropTypes.string,\n // onSelect: PropTypes.func,\n selectedValue: PropTypes.object,\n clearIcon: PropTypes.any,\n inputMode: PropTypes.string,\n inputReadOnly: PropTypes.bool\n },\n\n data: function data() {\n var selectedValue = this.selectedValue;\n return {\n str: formatDate(selectedValue, this.format),\n invalid: false,\n hasFocus: false\n };\n },\n\n watch: {\n selectedValue: function selectedValue() {\n this.setState();\n },\n format: function format() {\n this.setState();\n }\n },\n\n updated: function updated() {\n var _this = this;\n\n this.$nextTick(function () {\n if (dateInputInstance && _this.$data.hasFocus && !_this.invalid && !(cachedSelectionStart === 0 && cachedSelectionEnd === 0)) {\n dateInputInstance.setSelectionRange(cachedSelectionStart, cachedSelectionEnd);\n }\n });\n },\n getInstance: function getInstance() {\n return dateInputInstance;\n },\n\n methods: {\n getDerivedStateFromProps: function getDerivedStateFromProps(nextProps, state) {\n var newState = {};\n if (dateInputInstance) {\n cachedSelectionStart = dateInputInstance.selectionStart;\n cachedSelectionEnd = dateInputInstance.selectionEnd;\n }\n // when popup show, click body will call this, bug!\n var selectedValue = nextProps.selectedValue;\n if (!state.hasFocus) {\n newState = {\n str: formatDate(selectedValue, this.format),\n invalid: false\n };\n }\n return newState;\n },\n onClear: function onClear() {\n this.setState({\n str: ''\n });\n this.__emit('clear', null);\n },\n onInputChange: function onInputChange(e) {\n var _e$target = e.target,\n str = _e$target.value,\n composing = _e$target.composing;\n var _str = this.str,\n oldStr = _str === undefined ? '' : _str;\n\n if (e.isComposing || composing || oldStr === str) return;\n\n var _$props = this.$props,\n disabledDate = _$props.disabledDate,\n format = _$props.format,\n selectedValue = _$props.selectedValue;\n\n // 没有内容,合法并直接退出\n\n if (!str) {\n this.__emit('change', null);\n this.setState({\n invalid: false,\n str: str\n });\n return;\n }\n\n // 不合法直接退出\n var parsed = moment(str, format, true);\n if (!parsed.isValid()) {\n this.setState({\n invalid: true,\n str: str\n });\n return;\n }\n var value = this.value.clone();\n value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());\n\n if (!value || disabledDate && disabledDate(value)) {\n this.setState({\n invalid: true,\n str: str\n });\n return;\n }\n\n if (selectedValue !== value || selectedValue && value && !selectedValue.isSame(value)) {\n this.setState({\n invalid: false,\n str: str\n });\n this.__emit('change', value);\n }\n },\n onFocus: function onFocus() {\n this.setState({ hasFocus: true });\n },\n onBlur: function onBlur() {\n this.setState(function (prevState, prevProps) {\n return {\n hasFocus: false,\n str: formatDate(prevProps.value, prevProps.format)\n };\n });\n },\n onKeyDown: function onKeyDown(event) {\n var keyCode = event.keyCode;\n var _$props2 = this.$props,\n value = _$props2.value,\n disabledDate = _$props2.disabledDate;\n\n if (keyCode === KeyCode.ENTER) {\n var validateDate = !disabledDate || !disabledDate(value);\n if (validateDate) {\n this.__emit('select', value.clone());\n }\n event.preventDefault();\n }\n },\n getRootDOMNode: function getRootDOMNode() {\n return this.$el;\n },\n focus: function focus() {\n if (dateInputInstance) {\n dateInputInstance.focus();\n }\n },\n saveDateInput: function saveDateInput(dateInput) {\n dateInputInstance = dateInput;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var invalid = this.invalid,\n str = this.str,\n locale = this.locale,\n prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n disabled = this.disabled,\n showClear = this.showClear,\n inputMode = this.inputMode,\n inputReadOnly = this.inputReadOnly;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n var invalidClass = invalid ? prefixCls + '-input-invalid' : '';\n return h(\n 'div',\n { 'class': prefixCls + '-input-wrap' },\n [h(\n 'div',\n { 'class': prefixCls + '-date-input-wrap' },\n [h('input', _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.saveDateInput\n }, {\n name: 'ant-input'\n }]\n }, {\n 'class': prefixCls + '-input ' + invalidClass,\n domProps: {\n 'value': str\n },\n attrs: {\n disabled: disabled,\n placeholder: placeholder,\n\n inputMode: inputMode,\n readOnly: inputReadOnly\n },\n on: {\n 'input': this.onInputChange,\n 'keydown': this.onKeyDown,\n 'focus': this.onFocus,\n 'blur': this.onBlur\n }\n }]))]\n ), showClear ? h(\n 'a',\n {\n attrs: { role: 'button', title: locale.clear },\n on: {\n 'click': this.onClear\n }\n },\n [clearIcon || h('span', { 'class': prefixCls + '-clear-btn' })]\n ) : null]\n );\n }\n};\n\nexport default DateInput;","export default {\n DATE_ROW_COUNT: 6,\n DATE_COL_COUNT: 7\n};","import DateConstants from './DateConstants';\nimport moment from 'moment';\n\nexport default {\n functional: true,\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props;\n\n var value = props.value;\n var localeData = value.localeData();\n var prefixCls = props.prefixCls;\n var veryShortWeekdays = [];\n var weekDays = [];\n var firstDayOfWeek = localeData.firstDayOfWeek();\n var showWeekNumberEl = void 0;\n var now = moment();\n for (var dateColIndex = 0; dateColIndex < DateConstants.DATE_COL_COUNT; dateColIndex++) {\n var index = (firstDayOfWeek + dateColIndex) % DateConstants.DATE_COL_COUNT;\n now.day(index);\n veryShortWeekdays[dateColIndex] = localeData.weekdaysMin(now);\n weekDays[dateColIndex] = localeData.weekdaysShort(now);\n }\n\n if (props.showWeekNumber) {\n showWeekNumberEl = h(\n 'th',\n {\n attrs: {\n role: 'columnheader'\n },\n 'class': prefixCls + '-column-header ' + prefixCls + '-week-number-header'\n },\n [h(\n 'span',\n { 'class': prefixCls + '-column-header-inner' },\n ['x']\n )]\n );\n }\n var weekDaysEls = weekDays.map(function (day, xindex) {\n return h(\n 'th',\n { key: xindex, attrs: { role: 'columnheader', title: day },\n 'class': prefixCls + '-column-header' },\n [h(\n 'span',\n { 'class': prefixCls + '-column-header-inner' },\n [veryShortWeekdays[xindex]]\n )]\n );\n });\n return h('thead', [h(\n 'tr',\n {\n attrs: { role: 'row' }\n },\n [showWeekNumberEl, weekDaysEls]\n )]);\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../../_util/vue-types';\nimport { getOptionProps, getListeners } from '../../../_util/props-util';\nimport cx from 'classnames';\nimport DateConstants from './DateConstants';\nimport { getTitleString, getTodayTime } from '../util/';\nfunction noop() {}\nfunction isSameDay(one, two) {\n return one && two && one.isSame(two, 'day');\n}\n\nfunction beforeCurrentMonthYear(current, today) {\n if (current.year() < today.year()) {\n return 1;\n }\n return current.year() === today.year() && current.month() < today.month();\n}\n\nfunction afterCurrentMonthYear(current, today) {\n if (current.year() > today.year()) {\n return 1;\n }\n return current.year() === today.year() && current.month() > today.month();\n}\n\nfunction getIdFromDate(date) {\n return 'rc-calendar-' + date.year() + '-' + date.month() + '-' + date.date();\n}\n\nvar DateTBody = {\n props: {\n contentRender: PropTypes.func,\n dateRender: PropTypes.func,\n disabledDate: PropTypes.func,\n prefixCls: PropTypes.string,\n selectedValue: PropTypes.oneOfType([PropTypes.any, PropTypes.arrayOf(PropTypes.any)]),\n value: PropTypes.object,\n hoverValue: PropTypes.any.def([]),\n showWeekNumber: PropTypes.bool\n },\n\n render: function render() {\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var contentRender = props.contentRender,\n prefixCls = props.prefixCls,\n selectedValue = props.selectedValue,\n value = props.value,\n showWeekNumber = props.showWeekNumber,\n dateRender = props.dateRender,\n disabledDate = props.disabledDate,\n hoverValue = props.hoverValue;\n\n var _getListeners = getListeners(this),\n _getListeners$select = _getListeners.select,\n select = _getListeners$select === undefined ? noop : _getListeners$select,\n _getListeners$dayHove = _getListeners.dayHover,\n dayHover = _getListeners$dayHove === undefined ? noop : _getListeners$dayHove;\n\n var iIndex = void 0;\n var jIndex = void 0;\n var current = void 0;\n var dateTable = [];\n var today = getTodayTime(value);\n var cellClass = prefixCls + '-cell';\n var weekNumberCellClass = prefixCls + '-week-number-cell';\n var dateClass = prefixCls + '-date';\n var todayClass = prefixCls + '-today';\n var selectedClass = prefixCls + '-selected-day';\n var selectedDateClass = prefixCls + '-selected-date'; // do not move with mouse operation\n var selectedStartDateClass = prefixCls + '-selected-start-date';\n var selectedEndDateClass = prefixCls + '-selected-end-date';\n var inRangeClass = prefixCls + '-in-range-cell';\n var lastMonthDayClass = prefixCls + '-last-month-cell';\n var nextMonthDayClass = prefixCls + '-next-month-btn-day';\n var disabledClass = prefixCls + '-disabled-cell';\n var firstDisableClass = prefixCls + '-disabled-cell-first-of-row';\n var lastDisableClass = prefixCls + '-disabled-cell-last-of-row';\n var lastDayOfMonthClass = prefixCls + '-last-day-of-month';\n var month1 = value.clone();\n month1.date(1);\n var day = month1.day();\n var lastMonthDiffDay = (day + 7 - value.localeData().firstDayOfWeek()) % 7;\n // calculate last month\n var lastMonth1 = month1.clone();\n lastMonth1.add(0 - lastMonthDiffDay, 'days');\n var passed = 0;\n for (iIndex = 0; iIndex < DateConstants.DATE_ROW_COUNT; iIndex++) {\n for (jIndex = 0; jIndex < DateConstants.DATE_COL_COUNT; jIndex++) {\n current = lastMonth1;\n if (passed) {\n current = current.clone();\n current.add(passed, 'days');\n }\n dateTable.push(current);\n passed++;\n }\n }\n var tableHtml = [];\n passed = 0;\n\n for (iIndex = 0; iIndex < DateConstants.DATE_ROW_COUNT; iIndex++) {\n var _cx;\n\n var isCurrentWeek = void 0;\n var weekNumberCell = void 0;\n var isActiveWeek = false;\n var dateCells = [];\n if (showWeekNumber) {\n weekNumberCell = h(\n 'td',\n { key: 'week-' + dateTable[passed].week(), attrs: { role: 'gridcell' },\n 'class': weekNumberCellClass },\n [dateTable[passed].week()]\n );\n }\n for (jIndex = 0; jIndex < DateConstants.DATE_COL_COUNT; jIndex++) {\n var next = null;\n var last = null;\n current = dateTable[passed];\n if (jIndex < DateConstants.DATE_COL_COUNT - 1) {\n next = dateTable[passed + 1];\n }\n if (jIndex > 0) {\n last = dateTable[passed - 1];\n }\n var cls = cellClass;\n var disabled = false;\n var selected = false;\n\n if (isSameDay(current, today)) {\n cls += ' ' + todayClass;\n isCurrentWeek = true;\n }\n\n var isBeforeCurrentMonthYear = beforeCurrentMonthYear(current, value);\n var isAfterCurrentMonthYear = afterCurrentMonthYear(current, value);\n\n if (selectedValue && Array.isArray(selectedValue)) {\n var rangeValue = hoverValue.length ? hoverValue : selectedValue;\n if (!isBeforeCurrentMonthYear && !isAfterCurrentMonthYear) {\n var startValue = rangeValue[0];\n var endValue = rangeValue[1];\n if (startValue) {\n if (isSameDay(current, startValue)) {\n selected = true;\n isActiveWeek = true;\n cls += ' ' + selectedStartDateClass;\n }\n }\n if (startValue || endValue) {\n if (isSameDay(current, endValue)) {\n selected = true;\n isActiveWeek = true;\n cls += ' ' + selectedEndDateClass;\n } else if ((startValue === null || startValue === undefined) && current.isBefore(endValue, 'day')) {\n cls += ' ' + inRangeClass;\n } else if ((endValue === null || endValue === undefined) && current.isAfter(startValue, 'day')) {\n cls += ' ' + inRangeClass;\n } else if (current.isAfter(startValue, 'day') && current.isBefore(endValue, 'day')) {\n cls += ' ' + inRangeClass;\n }\n }\n }\n } else if (isSameDay(current, value)) {\n // keyboard change value, highlight works\n selected = true;\n isActiveWeek = true;\n }\n\n if (isSameDay(current, selectedValue)) {\n cls += ' ' + selectedDateClass;\n }\n\n if (isBeforeCurrentMonthYear) {\n cls += ' ' + lastMonthDayClass;\n }\n if (isAfterCurrentMonthYear) {\n cls += ' ' + nextMonthDayClass;\n }\n\n if (current.clone().endOf('month').date() === current.date()) {\n cls += ' ' + lastDayOfMonthClass;\n }\n\n if (disabledDate) {\n if (disabledDate(current, value)) {\n disabled = true;\n\n if (!last || !disabledDate(last, value)) {\n cls += ' ' + firstDisableClass;\n }\n\n if (!next || !disabledDate(next, value)) {\n cls += ' ' + lastDisableClass;\n }\n }\n }\n\n if (selected) {\n cls += ' ' + selectedClass;\n }\n\n if (disabled) {\n cls += ' ' + disabledClass;\n }\n\n var dateHtml = void 0;\n if (dateRender) {\n dateHtml = dateRender(current, value);\n } else {\n var content = contentRender ? contentRender(current, value) : current.date();\n dateHtml = h(\n 'div',\n {\n key: getIdFromDate(current),\n 'class': dateClass,\n attrs: { 'aria-selected': selected,\n 'aria-disabled': disabled\n }\n },\n [content]\n );\n }\n\n dateCells.push(h(\n 'td',\n {\n key: passed,\n on: {\n 'click': disabled ? noop : select.bind(null, current),\n 'mouseenter': disabled ? noop : dayHover.bind(null, current)\n },\n attrs: {\n role: 'gridcell',\n title: getTitleString(current)\n },\n 'class': cls\n },\n [dateHtml]\n ));\n\n passed++;\n }\n\n tableHtml.push(h(\n 'tr',\n {\n key: iIndex,\n attrs: { role: 'row'\n },\n 'class': cx((_cx = {}, _defineProperty(_cx, prefixCls + '-current-week', isCurrentWeek), _defineProperty(_cx, prefixCls + '-active-week', isActiveWeek), _cx))\n },\n [weekNumberCell, dateCells]\n ));\n }\n return h(\n 'tbody',\n { 'class': prefixCls + '-tbody' },\n [tableHtml]\n );\n }\n};\n\nexport default DateTBody;","import DateTHead from './DateTHead';\nimport DateTBody from './DateTBody';\n\nexport default {\n functional: true,\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props,\n _context$listeners = context.listeners,\n listeners = _context$listeners === undefined ? {} : _context$listeners;\n\n var prefixCls = props.prefixCls;\n var bodyProps = {\n props: props,\n on: listeners\n };\n return h(\n 'table',\n { 'class': prefixCls + '-table', attrs: { cellSpacing: '0', role: 'grid' }\n },\n [h(DateTHead, bodyProps), h(DateTBody, bodyProps)]\n );\n }\n};","export default {\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { hasProp } from '../../../_util/props-util';\nimport moment from 'moment';\nimport { isAllowedDate as _isAllowedDate, getTodayTime } from '../util/index';\nfunction noop() {}\n\nexport function getNowByCurrentStateValue(value) {\n var ret = void 0;\n if (value) {\n ret = getTodayTime(value);\n } else {\n ret = moment();\n }\n return ret;\n}\nfunction isMoment(value) {\n if (Array.isArray(value)) {\n return value.length === 0 || value.findIndex(function (val) {\n return val === undefined || moment.isMoment(val);\n }) !== -1;\n } else {\n return value === undefined || moment.isMoment(value);\n }\n}\nvar MomentType = PropTypes.custom(isMoment);\nvar CalendarMixin = {\n mixins: [BaseMixin],\n name: 'CalendarMixinWrapper',\n props: {\n value: MomentType,\n defaultValue: MomentType\n },\n\n data: function data() {\n var props = this.$props;\n var sValue = props.value || props.defaultValue || getNowByCurrentStateValue();\n return {\n sValue: sValue,\n sSelectedValue: props.selectedValue || props.defaultSelectedValue\n };\n },\n\n watch: {\n value: function value(val) {\n var sValue = val || this.defaultValue || getNowByCurrentStateValue(this.sValue);\n this.setState({\n sValue: sValue\n });\n },\n selectedValue: function selectedValue(val) {\n this.setState({\n sSelectedValue: val\n });\n }\n },\n methods: {\n onSelect: function onSelect(value, cause) {\n if (value) {\n this.setValue(value);\n }\n this.setSelectedValue(value, cause);\n },\n renderRoot: function renderRoot(newProps) {\n var _className;\n\n var h = this.$createElement;\n\n var props = this.$props;\n var prefixCls = props.prefixCls;\n\n var className = (_className = {}, _defineProperty(_className, prefixCls, 1), _defineProperty(_className, prefixCls + '-hidden', !props.visible), _defineProperty(_className, newProps['class'], !!newProps['class']), _className);\n return h(\n 'div',\n {\n ref: 'rootInstance',\n 'class': className,\n attrs: { tabIndex: '0'\n },\n on: {\n 'keydown': this.onKeyDown || noop,\n 'blur': this.onBlur || noop\n }\n },\n [newProps.children]\n );\n },\n setSelectedValue: function setSelectedValue(selectedValue, cause) {\n // if (this.isAllowedDate(selectedValue)) {\n if (!hasProp(this, 'selectedValue')) {\n this.setState({\n sSelectedValue: selectedValue\n });\n }\n this.__emit('select', selectedValue, cause);\n // }\n },\n setValue: function setValue(value) {\n var originalValue = this.sValue;\n if (!hasProp(this, 'value')) {\n this.setState({\n sValue: value\n });\n }\n if (originalValue && value && !originalValue.isSame(value) || !originalValue && value || originalValue && !value) {\n this.__emit('change', value);\n }\n },\n isAllowedDate: function isAllowedDate(value) {\n var disabledDate = this.disabledDate;\n var disabledTime = this.disabledTime;\n return _isAllowedDate(value, disabledDate, disabledTime);\n }\n }\n};\n\nexport default CalendarMixin;","export default {\n methods: {\n getFormat: function getFormat() {\n var format = this.format;\n var locale = this.locale,\n timePicker = this.timePicker;\n\n if (!format) {\n if (timePicker) {\n format = locale.dateTimeFormat;\n } else {\n format = locale.dateFormat;\n }\n }\n return format;\n },\n focus: function focus() {\n if (this.focusElement) {\n this.focusElement.focus();\n } else if (this.$refs.rootInstance) {\n this.$refs.rootInstance.focus();\n }\n },\n saveFocusElement: function saveFocusElement(focusElement) {\n this.focusElement = focusElement;\n }\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../../_util/vue-types';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { getTodayTime, getMonthName } from '../util/index';\n\nvar ROW = 4;\nvar COL = 3;\n\nfunction noop() {}\n\nvar MonthTable = {\n name: 'MonthTable',\n mixins: [BaseMixin],\n props: {\n cellRender: PropTypes.func,\n prefixCls: PropTypes.string,\n value: PropTypes.object,\n locale: PropTypes.any,\n contentRender: PropTypes.any,\n disabledDate: PropTypes.func\n },\n data: function data() {\n return {\n sValue: this.value\n };\n },\n\n watch: {\n value: function value(val) {\n this.setState({\n sValue: val\n });\n }\n },\n methods: {\n setAndSelectValue: function setAndSelectValue(value) {\n this.setState({\n sValue: value\n });\n this.__emit('select', value);\n },\n chooseMonth: function chooseMonth(month) {\n var next = this.sValue.clone();\n next.month(month);\n this.setAndSelectValue(next);\n },\n months: function months() {\n var value = this.sValue;\n var current = value.clone();\n var months = [];\n var index = 0;\n for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {\n months[rowIndex] = [];\n for (var colIndex = 0; colIndex < COL; colIndex++) {\n current.month(index);\n var content = getMonthName(current);\n months[rowIndex][colIndex] = {\n value: index,\n content: content,\n title: content\n };\n index++;\n }\n }\n return months;\n }\n },\n\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n\n var props = this.$props;\n var value = this.sValue;\n var today = getTodayTime(value);\n var months = this.months();\n var currentMonth = value.month();\n var prefixCls = props.prefixCls,\n locale = props.locale,\n contentRender = props.contentRender,\n cellRender = props.cellRender,\n disabledDate = props.disabledDate;\n\n var monthsEls = months.map(function (month, index) {\n var tds = month.map(function (monthData) {\n var _classNameMap;\n\n var disabled = false;\n if (disabledDate) {\n var testValue = value.clone();\n testValue.month(monthData.value);\n disabled = disabledDate(testValue);\n }\n var classNameMap = (_classNameMap = {}, _defineProperty(_classNameMap, prefixCls + '-cell', 1), _defineProperty(_classNameMap, prefixCls + '-cell-disabled', disabled), _defineProperty(_classNameMap, prefixCls + '-selected-cell', monthData.value === currentMonth), _defineProperty(_classNameMap, prefixCls + '-current-cell', today.year() === value.year() && monthData.value === today.month()), _classNameMap);\n var cellEl = void 0;\n if (cellRender) {\n var currentValue = value.clone();\n currentValue.month(monthData.value);\n cellEl = cellRender(currentValue, locale);\n } else {\n var content = void 0;\n if (contentRender) {\n var _currentValue = value.clone();\n _currentValue.month(monthData.value);\n content = contentRender(_currentValue, locale);\n } else {\n content = monthData.content;\n }\n cellEl = h(\n 'a',\n { 'class': prefixCls + '-month' },\n [content]\n );\n }\n return h(\n 'td',\n {\n attrs: {\n role: 'gridcell',\n\n title: monthData.title\n },\n key: monthData.value,\n on: {\n 'click': disabled ? noop : function () {\n return _this.chooseMonth(monthData.value);\n }\n },\n 'class': classNameMap\n },\n [cellEl]\n );\n });\n return h(\n 'tr',\n { key: index, attrs: { role: 'row' }\n },\n [tds]\n );\n });\n\n return h(\n 'table',\n { 'class': prefixCls + '-table', attrs: { cellSpacing: '0', role: 'grid' }\n },\n [h(\n 'tbody',\n { 'class': prefixCls + '-tbody' },\n [monthsEls]\n )]\n );\n }\n};\n\nexport default MonthTable;","import _extends from 'babel-runtime/helpers/extends';\nimport moment from 'moment';\n\nvar defaultDisabledTime = {\n disabledHours: function disabledHours() {\n return [];\n },\n disabledMinutes: function disabledMinutes() {\n return [];\n },\n disabledSeconds: function disabledSeconds() {\n return [];\n }\n};\n\nexport function getTodayTime(value) {\n var today = moment();\n today.locale(value.locale()).utcOffset(value.utcOffset());\n return today;\n}\n\nexport function getTitleString(value) {\n return value.format('LL');\n}\n\nexport function getTodayTimeStr(value) {\n var today = getTodayTime(value);\n return getTitleString(today);\n}\n\nexport function getMonthName(month) {\n var locale = month.locale();\n var localeData = month.localeData();\n return localeData[locale === 'zh-cn' ? 'months' : 'monthsShort'](month);\n}\n\nexport function syncTime(from, to) {\n if (!moment.isMoment(from) || !moment.isMoment(to)) return;\n to.hour(from.hour());\n to.minute(from.minute());\n to.second(from.second());\n to.millisecond(from.millisecond());\n}\n\nexport function getTimeConfig(value, disabledTime) {\n var disabledTimeConfig = disabledTime ? disabledTime(value) : {};\n disabledTimeConfig = _extends({}, defaultDisabledTime, disabledTimeConfig);\n return disabledTimeConfig;\n}\n\nexport function isTimeValidByConfig(value, disabledTimeConfig) {\n var invalidTime = false;\n if (value) {\n var hour = value.hour();\n var minutes = value.minute();\n var seconds = value.second();\n var disabledHours = disabledTimeConfig.disabledHours();\n if (disabledHours.indexOf(hour) === -1) {\n var disabledMinutes = disabledTimeConfig.disabledMinutes(hour);\n if (disabledMinutes.indexOf(minutes) === -1) {\n var disabledSeconds = disabledTimeConfig.disabledSeconds(hour, minutes);\n invalidTime = disabledSeconds.indexOf(seconds) !== -1;\n } else {\n invalidTime = true;\n }\n } else {\n invalidTime = true;\n }\n }\n return !invalidTime;\n}\n\nexport function isTimeValid(value, disabledTime) {\n var disabledTimeConfig = getTimeConfig(value, disabledTime);\n return isTimeValidByConfig(value, disabledTimeConfig);\n}\n\nexport function isAllowedDate(value, disabledDate, disabledTime) {\n if (disabledDate) {\n if (disabledDate(value)) {\n return false;\n }\n }\n if (disabledTime) {\n if (!isTimeValid(value, disabledTime)) {\n return false;\n }\n }\n return true;\n}\n\nexport function formatDate(value, format) {\n if (!value) {\n return '';\n }\n\n if (Array.isArray(format)) {\n format = format[0];\n }\n\n if (typeof format === 'function') {\n var result = format(value);\n if (typeof result === 'string') {\n return result;\n } else {\n throw new Error('The function of format does not return a string');\n }\n }\n\n return value.format(format);\n}","export function goStartMonth(time) {\n return time.clone().startOf('month');\n}\n\nexport function goEndMonth(time) {\n return time.clone().endOf('month');\n}\n\nexport function goTime(time, direction, unit) {\n return time.clone().add(direction, unit);\n}\n\nexport function includesTime() {\n var timeList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var time = arguments[1];\n var unit = arguments[2];\n\n return timeList.some(function (t) {\n return t.isSame(time, unit);\n });\n}","import { getComponentFromProp } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\nimport arrayTreeFilter from 'array-tree-filter';\nimport BaseMixin from '../_util/BaseMixin';\n\nexport default {\n name: 'CascaderMenus',\n mixins: [BaseMixin],\n props: {\n value: PropTypes.array.def([]),\n activeValue: PropTypes.array.def([]),\n options: PropTypes.array,\n prefixCls: PropTypes.string.def('rc-cascader-menus'),\n expandTrigger: PropTypes.string.def('click'),\n // onSelect: PropTypes.func,\n visible: PropTypes.bool.def(false),\n dropdownMenuColumnStyle: PropTypes.object,\n defaultFieldNames: PropTypes.object,\n fieldNames: PropTypes.object,\n expandIcon: PropTypes.any,\n loadingIcon: PropTypes.any\n },\n data: function data() {\n this.menuItems = {};\n return {};\n },\n\n watch: {\n visible: function visible(val) {\n var _this = this;\n\n if (val) {\n this.$nextTick(function () {\n _this.scrollActiveItemToView();\n });\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.scrollActiveItemToView();\n });\n },\n\n methods: {\n getFieldName: function getFieldName(name) {\n var _$props = this.$props,\n fieldNames = _$props.fieldNames,\n defaultFieldNames = _$props.defaultFieldNames;\n // 防止只设置单个属性的名字\n\n return fieldNames[name] || defaultFieldNames[name];\n },\n getOption: function getOption(option, menuIndex) {\n var _this3 = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n expandTrigger = this.expandTrigger;\n\n var loadingIcon = getComponentFromProp(this, 'loadingIcon');\n var expandIcon = getComponentFromProp(this, 'expandIcon');\n var onSelect = function onSelect(e) {\n _this3.__emit('select', option, menuIndex, e);\n };\n var onItemDoubleClick = function onItemDoubleClick(e) {\n _this3.__emit('itemDoubleClick', option, menuIndex, e);\n };\n var key = option[this.getFieldName('value')];\n var expandProps = {\n attrs: {\n role: 'menuitem'\n },\n on: {\n click: onSelect,\n dblclick: onItemDoubleClick,\n mousedown: function mousedown(e) {\n return e.preventDefault();\n }\n },\n key: Array.isArray(key) ? key.join('__ant__') : key\n };\n var menuItemCls = prefixCls + '-menu-item';\n var expandIconNode = null;\n var hasChildren = option[this.getFieldName('children')] && option[this.getFieldName('children')].length > 0;\n if (hasChildren || option.isLeaf === false) {\n menuItemCls += ' ' + prefixCls + '-menu-item-expand';\n if (!option.loading) {\n expandIconNode = h(\n 'span',\n { 'class': prefixCls + '-menu-item-expand-icon' },\n [expandIcon]\n );\n }\n }\n if (expandTrigger === 'hover' && (hasChildren || option.isLeaf === false)) {\n expandProps.on = {\n mouseenter: this.delayOnSelect.bind(this, onSelect),\n mouseleave: this.delayOnSelect.bind(this),\n click: onSelect\n };\n }\n if (this.isActiveOption(option, menuIndex)) {\n menuItemCls += ' ' + prefixCls + '-menu-item-active';\n expandProps.ref = this.getMenuItemRef(menuIndex);\n }\n if (option.disabled) {\n menuItemCls += ' ' + prefixCls + '-menu-item-disabled';\n }\n var loadingIconNode = null;\n if (option.loading) {\n menuItemCls += ' ' + prefixCls + '-menu-item-loading';\n loadingIconNode = loadingIcon || null;\n }\n var title = '';\n if (option.title) {\n title = option.title;\n } else if (typeof option[this.getFieldName('label')] === 'string') {\n title = option[this.getFieldName('label')];\n }\n expandProps.attrs.title = title;\n expandProps['class'] = menuItemCls;\n return h(\n 'li',\n expandProps,\n [option[this.getFieldName('label')], expandIconNode, loadingIconNode]\n );\n },\n getActiveOptions: function getActiveOptions(values) {\n var _this4 = this;\n\n var activeValue = values || this.activeValue;\n var options = this.options;\n return arrayTreeFilter(options, function (o, level) {\n return o[_this4.getFieldName('value')] === activeValue[level];\n }, { childrenKeyName: this.getFieldName('children') });\n },\n getShowOptions: function getShowOptions() {\n var _this5 = this;\n\n var options = this.options;\n\n var result = this.getActiveOptions().map(function (activeOption) {\n return activeOption[_this5.getFieldName('children')];\n }).filter(function (activeOption) {\n return !!activeOption;\n });\n result.unshift(options);\n return result;\n },\n delayOnSelect: function delayOnSelect(onSelect) {\n var _this6 = this;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n if (typeof onSelect === 'function') {\n this.delayTimer = setTimeout(function () {\n onSelect(args);\n _this6.delayTimer = null;\n }, 150);\n }\n },\n scrollActiveItemToView: function scrollActiveItemToView() {\n // scroll into view\n var optionsLength = this.getShowOptions().length;\n for (var i = 0; i < optionsLength; i++) {\n var itemComponent = this.$refs['menuItems_' + i];\n if (itemComponent) {\n var target = itemComponent;\n target.parentNode.scrollTop = target.offsetTop;\n }\n }\n },\n isActiveOption: function isActiveOption(option, menuIndex) {\n var _activeValue = this.activeValue,\n activeValue = _activeValue === undefined ? [] : _activeValue;\n\n return activeValue[menuIndex] === option[this.getFieldName('value')];\n },\n getMenuItemRef: function getMenuItemRef(index) {\n return 'menuItems_' + index;\n }\n },\n\n render: function render() {\n var _this7 = this;\n\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n dropdownMenuColumnStyle = this.dropdownMenuColumnStyle;\n\n return h('div', [this.getShowOptions().map(function (options, menuIndex) {\n return h(\n 'ul',\n { 'class': prefixCls + '-menu', key: menuIndex, style: dropdownMenuColumnStyle },\n [options.map(function (option) {\n return _this7.getOption(option, menuIndex);\n })]\n );\n })]);\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport { getComponentFromProp, getListeners } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\nimport Trigger from '../vc-trigger';\nimport Menus from './Menus';\nimport KeyCode from '../_util/KeyCode';\nimport arrayTreeFilter from 'array-tree-filter';\nimport shallowEqualArrays from 'shallow-equal/arrays';\nimport { hasProp, getEvents, getSlot } from '../_util/props-util';\nimport BaseMixin from '../_util/BaseMixin';\nimport { cloneElement } from '../_util/vnode';\n\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n }\n};\n\nexport default {\n mixins: [BaseMixin],\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n value: PropTypes.array,\n defaultValue: PropTypes.array,\n options: PropTypes.array,\n // onChange: PropTypes.func,\n // onPopupVisibleChange: PropTypes.func,\n popupVisible: PropTypes.bool,\n disabled: PropTypes.bool.def(false),\n transitionName: PropTypes.string.def(''),\n popupClassName: PropTypes.string.def(''),\n popupStyle: PropTypes.object.def(function () {\n return {};\n }),\n popupPlacement: PropTypes.string.def('bottomLeft'),\n prefixCls: PropTypes.string.def('rc-cascader'),\n dropdownMenuColumnStyle: PropTypes.object,\n builtinPlacements: PropTypes.object.def(BUILT_IN_PLACEMENTS),\n loadData: PropTypes.func,\n changeOnSelect: PropTypes.bool,\n // onKeyDown: PropTypes.func,\n expandTrigger: PropTypes.string.def('click'),\n fieldNames: PropTypes.object.def(function () {\n return {\n label: 'label',\n value: 'value',\n children: 'children'\n };\n }),\n expandIcon: PropTypes.any,\n loadingIcon: PropTypes.any,\n getPopupContainer: PropTypes.func\n },\n data: function data() {\n var initialValue = [];\n var value = this.value,\n defaultValue = this.defaultValue,\n popupVisible = this.popupVisible;\n\n if (hasProp(this, 'value')) {\n initialValue = value || [];\n } else if (hasProp(this, 'defaultValue')) {\n initialValue = defaultValue || [];\n }\n // warning(!('filedNames' in props),\n // '`filedNames` of Cascader is a typo usage and deprecated, please use `fieldNames` instead.');\n\n return {\n sPopupVisible: popupVisible,\n sActiveValue: initialValue,\n sValue: initialValue\n };\n },\n\n watch: {\n value: function value(val, oldValue) {\n if (!shallowEqualArrays(val, oldValue)) {\n var newValues = {\n sValue: val || []\n };\n // allow activeValue diff from value\n // https://github.com/ant-design/ant-design/issues/2767\n if (!hasProp(this, 'loadData')) {\n newValues.sActiveValue = val || [];\n }\n this.setState(newValues);\n }\n },\n popupVisible: function popupVisible(val) {\n this.setState({\n sPopupVisible: val\n });\n }\n },\n methods: {\n getPopupDOMNode: function getPopupDOMNode() {\n return this.$refs.trigger.getPopupDomNode();\n },\n getFieldName: function getFieldName(name) {\n var defaultFieldNames = this.defaultFieldNames,\n fieldNames = this.fieldNames;\n\n return fieldNames[name] || defaultFieldNames[name];\n },\n getFieldNames: function getFieldNames() {\n return this.fieldNames;\n },\n getCurrentLevelOptions: function getCurrentLevelOptions() {\n var _this = this;\n\n var _options = this.options,\n options = _options === undefined ? [] : _options,\n _sActiveValue = this.sActiveValue,\n sActiveValue = _sActiveValue === undefined ? [] : _sActiveValue;\n\n var result = arrayTreeFilter(options, function (o, level) {\n return o[_this.getFieldName('value')] === sActiveValue[level];\n }, { childrenKeyName: this.getFieldName('children') });\n if (result[result.length - 2]) {\n return result[result.length - 2][this.getFieldName('children')];\n }\n return [].concat(_toConsumableArray(options)).filter(function (o) {\n return !o.disabled;\n });\n },\n getActiveOptions: function getActiveOptions(activeValue) {\n var _this2 = this;\n\n return arrayTreeFilter(this.options || [], function (o, level) {\n return o[_this2.getFieldName('value')] === activeValue[level];\n }, { childrenKeyName: this.getFieldName('children') });\n },\n setPopupVisible: function setPopupVisible(popupVisible) {\n if (!hasProp(this, 'popupVisible')) {\n this.setState({ sPopupVisible: popupVisible });\n }\n // sync activeValue with value when panel open\n if (popupVisible && !this.sPopupVisible) {\n this.setState({\n sActiveValue: this.sValue\n });\n }\n this.__emit('popupVisibleChange', popupVisible);\n },\n handleChange: function handleChange(options, setProps, e) {\n var _this3 = this;\n\n if (e.type !== 'keydown' || e.keyCode === KeyCode.ENTER) {\n this.__emit('change', options.map(function (o) {\n return o[_this3.getFieldName('value')];\n }), options);\n this.setPopupVisible(setProps.visible);\n }\n },\n handlePopupVisibleChange: function handlePopupVisibleChange(popupVisible) {\n this.setPopupVisible(popupVisible);\n },\n handleMenuSelect: function handleMenuSelect(targetOption, menuIndex, e) {\n // Keep focused state for keyboard support\n var triggerNode = this.$refs.trigger.getRootDomNode();\n if (triggerNode && triggerNode.focus) {\n triggerNode.focus();\n }\n var changeOnSelect = this.changeOnSelect,\n loadData = this.loadData,\n expandTrigger = this.expandTrigger;\n\n if (!targetOption || targetOption.disabled) {\n return;\n }\n var sActiveValue = this.sActiveValue;\n\n sActiveValue = sActiveValue.slice(0, menuIndex + 1);\n sActiveValue[menuIndex] = targetOption[this.getFieldName('value')];\n var activeOptions = this.getActiveOptions(sActiveValue);\n if (targetOption.isLeaf === false && !targetOption[this.getFieldName('children')] && loadData) {\n if (changeOnSelect) {\n this.handleChange(activeOptions, { visible: true }, e);\n }\n this.setState({ sActiveValue: sActiveValue });\n loadData(activeOptions);\n return;\n }\n var newState = {};\n if (!targetOption[this.getFieldName('children')] || !targetOption[this.getFieldName('children')].length) {\n this.handleChange(activeOptions, { visible: false }, e);\n // set value to activeValue when select leaf option\n newState.sValue = sActiveValue;\n // add e.type judgement to prevent `onChange` being triggered by mouseEnter\n } else if (changeOnSelect && (e.type === 'click' || e.type === 'keydown')) {\n if (expandTrigger === 'hover') {\n this.handleChange(activeOptions, { visible: false }, e);\n } else {\n this.handleChange(activeOptions, { visible: true }, e);\n }\n // set value to activeValue on every select\n newState.sValue = sActiveValue;\n }\n newState.sActiveValue = sActiveValue;\n // not change the value by keyboard\n if (hasProp(this, 'value') || e.type === 'keydown' && e.keyCode !== KeyCode.ENTER) {\n delete newState.sValue;\n }\n this.setState(newState);\n },\n handleItemDoubleClick: function handleItemDoubleClick() {\n var changeOnSelect = this.$props.changeOnSelect;\n\n if (changeOnSelect) {\n this.setPopupVisible(false);\n }\n },\n handleKeyDown: function handleKeyDown(e) {\n var _this4 = this;\n\n var $slots = this.$slots;\n\n var children = $slots['default'] && $slots['default'][0];\n // https://github.com/ant-design/ant-design/issues/6717\n // Don't bind keyboard support when children specify the onKeyDown\n if (children) {\n var keydown = getEvents(children).keydown;\n if (keydown) {\n keydown(e);\n return;\n }\n }\n var activeValue = [].concat(_toConsumableArray(this.sActiveValue));\n var currentLevel = activeValue.length - 1 < 0 ? 0 : activeValue.length - 1;\n var currentOptions = this.getCurrentLevelOptions();\n var currentIndex = currentOptions.map(function (o) {\n return o[_this4.getFieldName('value')];\n }).indexOf(activeValue[currentLevel]);\n if (e.keyCode !== KeyCode.DOWN && e.keyCode !== KeyCode.UP && e.keyCode !== KeyCode.LEFT && e.keyCode !== KeyCode.RIGHT && e.keyCode !== KeyCode.ENTER && e.keyCode !== KeyCode.SPACE && e.keyCode !== KeyCode.BACKSPACE && e.keyCode !== KeyCode.ESC && e.keyCode !== KeyCode.TAB) {\n return;\n }\n // Press any keys above to reopen menu\n if (!this.sPopupVisible && e.keyCode !== KeyCode.BACKSPACE && e.keyCode !== KeyCode.LEFT && e.keyCode !== KeyCode.RIGHT && e.keyCode !== KeyCode.ESC && e.keyCode !== KeyCode.TAB) {\n this.setPopupVisible(true);\n return;\n }\n if (e.keyCode === KeyCode.DOWN || e.keyCode === KeyCode.UP) {\n e.preventDefault();\n var nextIndex = currentIndex;\n if (nextIndex !== -1) {\n if (e.keyCode === KeyCode.DOWN) {\n nextIndex += 1;\n nextIndex = nextIndex >= currentOptions.length ? 0 : nextIndex;\n } else {\n nextIndex -= 1;\n nextIndex = nextIndex < 0 ? currentOptions.length - 1 : nextIndex;\n }\n } else {\n nextIndex = 0;\n }\n activeValue[currentLevel] = currentOptions[nextIndex][this.getFieldName('value')];\n } else if (e.keyCode === KeyCode.LEFT || e.keyCode === KeyCode.BACKSPACE) {\n e.preventDefault();\n activeValue.splice(activeValue.length - 1, 1);\n } else if (e.keyCode === KeyCode.RIGHT) {\n e.preventDefault();\n if (currentOptions[currentIndex] && currentOptions[currentIndex][this.getFieldName('children')]) {\n activeValue.push(currentOptions[currentIndex][this.getFieldName('children')][0][this.getFieldName('value')]);\n }\n } else if (e.keyCode === KeyCode.ESC || e.keyCode === KeyCode.TAB) {\n this.setPopupVisible(false);\n return;\n }\n if (!activeValue || activeValue.length === 0) {\n this.setPopupVisible(false);\n }\n var activeOptions = this.getActiveOptions(activeValue);\n var targetOption = activeOptions[activeOptions.length - 1];\n this.handleMenuSelect(targetOption, activeOptions.length - 1, e);\n this.__emit('keydown', e);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var $props = this.$props,\n sActiveValue = this.sActiveValue,\n handleMenuSelect = this.handleMenuSelect,\n sPopupVisible = this.sPopupVisible,\n handlePopupVisibleChange = this.handlePopupVisibleChange,\n handleKeyDown = this.handleKeyDown;\n\n var listeners = getListeners(this);\n\n var prefixCls = $props.prefixCls,\n transitionName = $props.transitionName,\n popupClassName = $props.popupClassName,\n _$props$options = $props.options,\n options = _$props$options === undefined ? [] : _$props$options,\n disabled = $props.disabled,\n builtinPlacements = $props.builtinPlacements,\n popupPlacement = $props.popupPlacement,\n restProps = _objectWithoutProperties($props, ['prefixCls', 'transitionName', 'popupClassName', 'options', 'disabled', 'builtinPlacements', 'popupPlacement']);\n // Did not show popup when there is no options\n\n\n var menus = h('div');\n var emptyMenuClassName = '';\n if (options && options.length > 0) {\n var loadingIcon = getComponentFromProp(this, 'loadingIcon');\n var expandIcon = getComponentFromProp(this, 'expandIcon') || '>';\n var menusProps = {\n props: _extends({}, $props, {\n fieldNames: this.getFieldNames(),\n defaultFieldNames: this.defaultFieldNames,\n activeValue: sActiveValue,\n visible: sPopupVisible,\n loadingIcon: loadingIcon,\n expandIcon: expandIcon\n }),\n on: _extends({}, listeners, {\n select: handleMenuSelect,\n itemDoubleClick: this.handleItemDoubleClick\n })\n };\n menus = h(Menus, menusProps);\n } else {\n emptyMenuClassName = ' ' + prefixCls + '-menus-empty';\n }\n var triggerProps = {\n props: _extends({}, restProps, {\n disabled: disabled,\n popupPlacement: popupPlacement,\n builtinPlacements: builtinPlacements,\n popupTransitionName: transitionName,\n action: disabled ? [] : ['click'],\n popupVisible: disabled ? false : sPopupVisible,\n prefixCls: prefixCls + '-menus',\n popupClassName: popupClassName + emptyMenuClassName\n }),\n on: _extends({}, listeners, {\n popupVisibleChange: handlePopupVisibleChange\n }),\n ref: 'trigger'\n };\n var children = getSlot(this, 'default')[0];\n return h(\n Trigger,\n triggerProps,\n [children && cloneElement(children, {\n on: {\n keydown: handleKeyDown\n },\n attrs: {\n tabIndex: disabled ? undefined : 0\n }\n }), h(\n 'template',\n { slot: 'popup' },\n [menus]\n )]\n );\n }\n};","// based on rc-cascader 0.17.4\nimport Cascader from './Cascader';\nexport default Cascader;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport { getOptionProps, hasProp, initDefaultProps, getAttrs, getListeners } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\n\nexport default {\n name: 'Checkbox',\n mixins: [BaseMixin],\n inheritAttrs: false,\n model: {\n prop: 'checked',\n event: 'change'\n },\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n name: PropTypes.string,\n id: PropTypes.string,\n type: PropTypes.string,\n defaultChecked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n checked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n disabled: PropTypes.bool,\n // onFocus: PropTypes.func,\n // onBlur: PropTypes.func,\n // onChange: PropTypes.func,\n // onClick: PropTypes.func,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n readOnly: PropTypes.bool,\n autoFocus: PropTypes.bool,\n value: PropTypes.any\n }, {\n prefixCls: 'rc-checkbox',\n type: 'checkbox',\n defaultChecked: false\n }),\n data: function data() {\n var checked = hasProp(this, 'checked') ? this.checked : this.defaultChecked;\n return {\n sChecked: checked\n };\n },\n\n watch: {\n checked: function checked(val) {\n this.sChecked = val;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.autoFocus) {\n _this.$refs.input && _this.$refs.input.focus();\n }\n });\n },\n\n methods: {\n focus: function focus() {\n this.$refs.input.focus();\n },\n blur: function blur() {\n this.$refs.input.blur();\n },\n handleChange: function handleChange(e) {\n var props = getOptionProps(this);\n if (props.disabled) {\n return;\n }\n if (!('checked' in props)) {\n this.sChecked = e.target.checked;\n }\n this.$forceUpdate(); // change前,维持现有状态\n e.shiftKey = this.eventShiftKey;\n this.__emit('change', {\n target: _extends({}, props, {\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n\n nativeEvent: e\n });\n this.eventShiftKey = false;\n // fix https://github.com/vueComponent/ant-design-vue/issues/3047\n if ('checked' in props) {\n this.$refs.input.checked = props.checked;\n }\n },\n onClick: function onClick(e) {\n this.__emit('click', e);\n // onChange没能获取到shiftKey,使用onClick hack\n this.eventShiftKey = e.shiftKey;\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n prefixCls = _getOptionProps.prefixCls,\n name = _getOptionProps.name,\n id = _getOptionProps.id,\n type = _getOptionProps.type,\n disabled = _getOptionProps.disabled,\n readOnly = _getOptionProps.readOnly,\n tabIndex = _getOptionProps.tabIndex,\n autoFocus = _getOptionProps.autoFocus,\n value = _getOptionProps.value,\n others = _objectWithoutProperties(_getOptionProps, ['prefixCls', 'name', 'id', 'type', 'disabled', 'readOnly', 'tabIndex', 'autoFocus', 'value']);\n\n var attrs = getAttrs(this);\n var globalProps = Object.keys(_extends({}, others, attrs)).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'aria-' || key.substr(0, 5) === 'data-' || key === 'role') {\n prev[key] = others[key];\n }\n return prev;\n }, {});\n\n var sChecked = this.sChecked;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-checked', sChecked), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _classNames));\n\n return h(\n 'span',\n { 'class': classString },\n [h('input', _mergeJSXProps([{\n attrs: {\n name: name,\n id: id,\n type: type,\n readOnly: readOnly,\n disabled: disabled,\n tabIndex: tabIndex,\n\n autoFocus: autoFocus\n },\n 'class': prefixCls + '-input',\n domProps: {\n 'checked': !!sChecked,\n 'value': value\n },\n ref: 'input'\n }, {\n attrs: globalProps,\n on: _extends({}, getListeners(this), {\n change: this.handleChange,\n click: this.onClick\n })\n }])), h('span', { 'class': prefixCls + '-inner' })]\n );\n }\n};","import Checkbox from './Checkbox';\n\nexport default Checkbox;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../_util/vue-types';\n\nexport default {\n name: 'PanelContent',\n props: {\n prefixCls: PropTypes.string,\n isActive: PropTypes.bool,\n destroyInactivePanel: PropTypes.bool,\n forceRender: PropTypes.bool,\n role: PropTypes.any\n },\n data: function data() {\n return {\n _isActive: undefined\n };\n },\n render: function render() {\n var _contentCls;\n\n var h = arguments[0];\n\n this._isActive = this.forceRender || this._isActive || this.isActive;\n if (!this._isActive) {\n return null;\n }\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n isActive = _$props.isActive,\n destroyInactivePanel = _$props.destroyInactivePanel,\n forceRender = _$props.forceRender,\n role = _$props.role;\n var $slots = this.$slots;\n\n var contentCls = (_contentCls = {}, _defineProperty(_contentCls, prefixCls + '-content', true), _defineProperty(_contentCls, prefixCls + '-content-active', isActive), _contentCls);\n var child = !forceRender && !isActive && destroyInactivePanel ? null : h(\n 'div',\n { 'class': prefixCls + '-content-box' },\n [$slots['default']]\n );\n return h(\n 'div',\n { 'class': contentCls, attrs: { role: role }\n },\n [child]\n );\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PanelContent from './PanelContent';\nimport { initDefaultProps, getComponentFromProp } from '../../_util/props-util';\nimport { panelProps } from './commonProps';\n\nexport default {\n name: 'Panel',\n props: initDefaultProps(panelProps(), {\n showArrow: true,\n isActive: false,\n destroyInactivePanel: false,\n headerClass: '',\n forceRender: false\n }),\n methods: {\n handleItemClick: function handleItemClick() {\n this.$emit('itemClick', this.panelKey);\n },\n handleKeyPress: function handleKeyPress(e) {\n if (e.key === 'Enter' || e.keyCode === 13 || e.which === 13) {\n this.handleItemClick();\n }\n }\n },\n render: function render() {\n var _headerCls, _itemCls;\n\n var h = arguments[0];\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n headerClass = _$props.headerClass,\n isActive = _$props.isActive,\n showArrow = _$props.showArrow,\n destroyInactivePanel = _$props.destroyInactivePanel,\n disabled = _$props.disabled,\n openAnimation = _$props.openAnimation,\n accordion = _$props.accordion,\n forceRender = _$props.forceRender,\n expandIcon = _$props.expandIcon,\n extra = _$props.extra;\n var $slots = this.$slots;\n\n\n var transitionProps = {\n props: _extends({\n appear: true,\n css: false\n }),\n on: _extends({}, openAnimation)\n };\n var headerCls = (_headerCls = {}, _defineProperty(_headerCls, prefixCls + '-header', true), _defineProperty(_headerCls, headerClass, headerClass), _headerCls);\n var header = getComponentFromProp(this, 'header');\n var itemCls = (_itemCls = {}, _defineProperty(_itemCls, prefixCls + '-item', true), _defineProperty(_itemCls, prefixCls + '-item-active', isActive), _defineProperty(_itemCls, prefixCls + '-item-disabled', disabled), _itemCls);\n var icon = h('i', { 'class': 'arrow' });\n if (showArrow && typeof expandIcon === 'function') {\n icon = expandIcon(this.$props);\n }\n return h(\n 'div',\n { 'class': itemCls, attrs: { role: 'tablist' }\n },\n [h(\n 'div',\n {\n 'class': headerCls,\n on: {\n 'click': this.handleItemClick.bind(this),\n 'keypress': this.handleKeyPress\n },\n attrs: {\n role: accordion ? 'tab' : 'button',\n tabIndex: disabled ? -1 : 0,\n 'aria-expanded': isActive\n }\n },\n [showArrow && icon, header, extra && h(\n 'div',\n { 'class': prefixCls + '-extra' },\n [extra]\n )]\n ), h(\n 'transition',\n transitionProps,\n [h(\n PanelContent,\n {\n directives: [{\n name: 'show',\n value: isActive\n }],\n attrs: {\n prefixCls: prefixCls,\n isActive: isActive,\n destroyInactivePanel: destroyInactivePanel,\n forceRender: forceRender,\n role: accordion ? 'tabpanel' : null\n }\n },\n [$slots['default']]\n )]\n )]\n );\n }\n};","import cssAnimation from '../../_util/css-animation';\n\nfunction animate(node, show, transitionName, done) {\n var height = void 0;\n return cssAnimation(node, transitionName, {\n start: function start() {\n if (!show) {\n node.style.height = node.offsetHeight + 'px';\n } else {\n height = node.offsetHeight;\n node.style.height = 0;\n }\n },\n active: function active() {\n node.style.height = (show ? height : 0) + 'px';\n },\n end: function end() {\n node.style.height = '';\n done();\n }\n });\n}\n\nfunction animation(prefixCls) {\n return {\n enter: function enter(node, done) {\n return animate(node, true, prefixCls + '-anim', done);\n },\n leave: function leave(node, done) {\n return animate(node, false, prefixCls + '-anim', done);\n }\n };\n}\n\nexport default animation;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { hasProp, getPropsData, isEmptyElement, initDefaultProps } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport openAnimationFactory from './openAnimationFactory';\nimport { collapseProps } from './commonProps';\n\nfunction _toArray(activeKey) {\n var currentActiveKey = activeKey;\n if (!Array.isArray(currentActiveKey)) {\n currentActiveKey = currentActiveKey ? [currentActiveKey] : [];\n }\n return currentActiveKey.map(function (key) {\n return String(key);\n });\n}\nexport default {\n name: 'Collapse',\n mixins: [BaseMixin],\n model: {\n prop: 'activeKey',\n event: 'change'\n },\n props: initDefaultProps(collapseProps(), {\n prefixCls: 'rc-collapse',\n accordion: false,\n destroyInactivePanel: false\n }),\n data: function data() {\n var _$props = this.$props,\n activeKey = _$props.activeKey,\n defaultActiveKey = _$props.defaultActiveKey,\n openAnimation = _$props.openAnimation,\n prefixCls = _$props.prefixCls;\n\n var currentActiveKey = defaultActiveKey;\n if (hasProp(this, 'activeKey')) {\n currentActiveKey = activeKey;\n }\n var currentOpenAnimations = openAnimation || openAnimationFactory(prefixCls);\n return {\n currentOpenAnimations: currentOpenAnimations,\n stateActiveKey: _toArray(currentActiveKey)\n };\n },\n\n watch: {\n activeKey: function activeKey(val) {\n this.setState({\n stateActiveKey: _toArray(val)\n });\n },\n openAnimation: function openAnimation(val) {\n this.setState({\n currentOpenAnimations: val\n });\n }\n },\n methods: {\n onClickItem: function onClickItem(key) {\n var activeKey = this.stateActiveKey;\n if (this.accordion) {\n activeKey = activeKey[0] === key ? [] : [key];\n } else {\n activeKey = [].concat(_toConsumableArray(activeKey));\n var index = activeKey.indexOf(key);\n var isActive = index > -1;\n if (isActive) {\n // remove active state\n activeKey.splice(index, 1);\n } else {\n activeKey.push(key);\n }\n }\n this.setActiveKey(activeKey);\n },\n getNewChild: function getNewChild(child, index) {\n if (isEmptyElement(child)) return;\n var activeKey = this.stateActiveKey;\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n accordion = _$props2.accordion,\n destroyInactivePanel = _$props2.destroyInactivePanel,\n expandIcon = _$props2.expandIcon;\n\n // If there is no key provide, use the panel order as default key\n\n var key = child.key || String(index);\n\n var _getPropsData = getPropsData(child),\n header = _getPropsData.header,\n headerClass = _getPropsData.headerClass,\n disabled = _getPropsData.disabled;\n\n var isActive = false;\n\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n\n var panelEvents = {};\n if (!disabled && disabled !== '') {\n panelEvents = {\n itemClick: this.onClickItem\n };\n }\n\n var props = {\n key: key,\n props: {\n panelKey: key,\n header: header,\n headerClass: headerClass,\n isActive: isActive,\n prefixCls: prefixCls,\n destroyInactivePanel: destroyInactivePanel,\n openAnimation: this.currentOpenAnimations,\n accordion: accordion,\n expandIcon: expandIcon\n },\n on: panelEvents\n };\n\n return cloneElement(child, props);\n },\n getItems: function getItems() {\n var _this = this;\n\n var newChildren = [];\n this.$slots['default'] && this.$slots['default'].forEach(function (child, index) {\n newChildren.push(_this.getNewChild(child, index));\n });\n return newChildren;\n },\n setActiveKey: function setActiveKey(activeKey) {\n this.setState({ stateActiveKey: activeKey });\n this.$emit('change', this.accordion ? activeKey[0] : activeKey);\n }\n },\n render: function render() {\n var h = arguments[0];\n var _$props3 = this.$props,\n prefixCls = _$props3.prefixCls,\n accordion = _$props3.accordion;\n\n var collapseClassName = _defineProperty({}, prefixCls, true);\n return h(\n 'div',\n { 'class': collapseClassName, attrs: { role: accordion ? 'tablist' : null }\n },\n [this.getItems()]\n );\n }\n};","// based on rc-collapse 1.11.8\nimport CollapsePanel from './src/Panel';\nimport Collapse from './src/Collapse';\nimport { collapseProps, panelProps } from './src/commonProps';\n\nCollapse.Panel = CollapsePanel;\n\nexport { collapseProps, panelProps };\nexport default Collapse;","import PropTypes from '../../_util/vue-types';\n\nvar collapseProps = function collapseProps() {\n return {\n prefixCls: PropTypes.string,\n activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))]),\n defaultActiveKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))]),\n accordion: PropTypes.bool,\n destroyInactivePanel: PropTypes.bool,\n bordered: PropTypes.bool,\n expandIcon: PropTypes.func,\n openAnimation: PropTypes.object,\n expandIconPosition: PropTypes.oneOf(['left', 'right'])\n };\n};\n\nvar panelProps = function panelProps() {\n return {\n openAnimation: PropTypes.object,\n prefixCls: PropTypes.string,\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]),\n headerClass: PropTypes.string,\n showArrow: PropTypes.bool,\n isActive: PropTypes.bool,\n destroyInactivePanel: PropTypes.bool,\n disabled: PropTypes.bool,\n accordion: PropTypes.bool,\n forceRender: PropTypes.bool,\n expandIcon: PropTypes.func,\n extra: PropTypes.any,\n panelKey: PropTypes.any\n };\n};\n\nexport { collapseProps, panelProps };","import PropTypes from '../_util/vue-types';\nimport { getListeners } from '../_util/props-util';\n\nvar ILazyRenderBoxPropTypes = {\n visible: PropTypes.bool,\n hiddenClassName: PropTypes.string,\n forceRender: PropTypes.bool\n};\n\nexport default {\n props: ILazyRenderBoxPropTypes,\n render: function render() {\n var h = arguments[0];\n\n return h(\n 'div',\n { on: getListeners(this) },\n [this.$slots['default']]\n );\n }\n};","import PropTypes from '../_util/vue-types';\n\nfunction IDialogPropTypes() {\n return {\n keyboard: PropTypes.bool,\n mask: PropTypes.bool,\n afterClose: PropTypes.func,\n // onClose: PropTypes. (e: SyntheticEvent) =>any,\n closable: PropTypes.bool,\n maskClosable: PropTypes.bool,\n visible: PropTypes.bool,\n destroyOnClose: PropTypes.bool,\n mousePosition: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }).loose,\n title: PropTypes.any,\n footer: PropTypes.any,\n transitionName: PropTypes.string,\n maskTransitionName: PropTypes.string,\n animation: PropTypes.any,\n maskAnimation: PropTypes.any,\n wrapStyle: PropTypes.object,\n bodyStyle: PropTypes.object,\n maskStyle: PropTypes.object,\n prefixCls: PropTypes.string,\n wrapClassName: PropTypes.string,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n zIndex: PropTypes.number,\n bodyProps: PropTypes.any,\n maskProps: PropTypes.any,\n wrapProps: PropTypes.any,\n getContainer: PropTypes.any,\n dialogStyle: PropTypes.object.def(function () {\n return {};\n }),\n dialogClass: PropTypes.string.def(''),\n closeIcon: PropTypes.any,\n forceRender: PropTypes.bool,\n getOpenCount: PropTypes.func,\n // https://github.com/ant-design/ant-design/issues/19771\n // https://github.com/react-component/dialog/issues/95\n focusTriggerAfterClose: PropTypes.bool\n };\n}\n\nexport default IDialogPropTypes;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport { getComponentFromProp, initDefaultProps } from '../_util/props-util';\nimport KeyCode from '../_util/KeyCode';\nimport contains from '../vc-util/Dom/contains';\nimport LazyRenderBox from './LazyRenderBox';\nimport BaseMixin from '../_util/BaseMixin';\nimport getTransitionProps from '../_util/getTransitionProps';\nimport _switchScrollingEffect from '../_util/switchScrollingEffect';\nimport getDialogPropTypes from './IDialogPropTypes';\nvar IDialogPropTypes = getDialogPropTypes();\n\nvar uuid = 0;\n\nfunction noop() {}\nfunction getScroll(w, top) {\n var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n var method = 'scroll' + (top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction setTransformOrigin(node, value) {\n var style = node.style;\n ['Webkit', 'Moz', 'Ms', 'ms'].forEach(function (prefix) {\n style[prefix + 'TransformOrigin'] = value;\n });\n style['transformOrigin'] = value;\n}\n\nfunction offset(el) {\n var rect = el.getBoundingClientRect();\n var pos = {\n left: rect.left,\n top: rect.top\n };\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n pos.top += getScroll(w, true);\n return pos;\n}\n\nvar cacheOverflow = {};\n\nexport default {\n mixins: [BaseMixin],\n props: initDefaultProps(IDialogPropTypes, {\n mask: true,\n visible: false,\n keyboard: true,\n closable: true,\n maskClosable: true,\n destroyOnClose: false,\n prefixCls: 'rc-dialog',\n getOpenCount: function getOpenCount() {\n return null;\n },\n focusTriggerAfterClose: true\n }),\n data: function data() {\n return {\n destroyPopup: false\n };\n },\n provide: function provide() {\n return {\n dialogContext: this\n };\n },\n\n\n watch: {\n visible: function visible(val) {\n var _this = this;\n\n if (val) {\n this.destroyPopup = false;\n }\n this.$nextTick(function () {\n _this.updatedCallback(!val);\n });\n }\n },\n\n beforeMount: function beforeMount() {\n this.inTransition = false;\n this.titleId = 'rcDialogTitle' + uuid++;\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.updatedCallback(false);\n // if forceRender is true, set element style display to be none;\n if ((_this2.forceRender || _this2.getContainer === false && !_this2.visible) && _this2.$refs.wrap) {\n _this2.$refs.wrap.style.display = 'none';\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n var visible = this.visible,\n getOpenCount = this.getOpenCount;\n\n if ((visible || this.inTransition) && !getOpenCount()) {\n this.switchScrollingEffect();\n }\n clearTimeout(this.timeoutId);\n },\n\n methods: {\n // 对外暴露的 api 不要更改名称或删除\n getDialogWrap: function getDialogWrap() {\n return this.$refs.wrap;\n },\n updatedCallback: function updatedCallback(visible) {\n var mousePosition = this.mousePosition;\n var mask = this.mask,\n focusTriggerAfterClose = this.focusTriggerAfterClose;\n\n if (this.visible) {\n // first show\n if (!visible) {\n this.openTime = Date.now();\n // this.lastOutSideFocusNode = document.activeElement\n this.switchScrollingEffect();\n // this.$refs.wrap.focus()\n this.tryFocus();\n var dialogNode = this.$refs.dialog.$el;\n if (mousePosition) {\n var elOffset = offset(dialogNode);\n setTransformOrigin(dialogNode, mousePosition.x - elOffset.left + 'px ' + (mousePosition.y - elOffset.top) + 'px');\n } else {\n setTransformOrigin(dialogNode, '');\n }\n }\n } else if (visible) {\n this.inTransition = true;\n if (mask && this.lastOutSideFocusNode && focusTriggerAfterClose) {\n try {\n this.lastOutSideFocusNode.focus();\n } catch (e) {\n this.lastOutSideFocusNode = null;\n }\n this.lastOutSideFocusNode = null;\n }\n }\n },\n tryFocus: function tryFocus() {\n if (!contains(this.$refs.wrap, document.activeElement)) {\n this.lastOutSideFocusNode = document.activeElement;\n this.$refs.sentinelStart.focus();\n }\n },\n onAnimateLeave: function onAnimateLeave() {\n var afterClose = this.afterClose,\n destroyOnClose = this.destroyOnClose;\n // need demo?\n // https://github.com/react-component/dialog/pull/28\n\n if (this.$refs.wrap) {\n this.$refs.wrap.style.display = 'none';\n }\n if (destroyOnClose) {\n this.destroyPopup = true;\n }\n this.inTransition = false;\n this.switchScrollingEffect();\n if (afterClose) {\n afterClose();\n }\n },\n onDialogMouseDown: function onDialogMouseDown() {\n this.dialogMouseDown = true;\n },\n onMaskMouseUp: function onMaskMouseUp() {\n var _this3 = this;\n\n if (this.dialogMouseDown) {\n this.timeoutId = setTimeout(function () {\n _this3.dialogMouseDown = false;\n }, 0);\n }\n },\n onMaskClick: function onMaskClick(e) {\n // android trigger click on open (fastclick??)\n if (Date.now() - this.openTime < 300) {\n return;\n }\n if (e.target === e.currentTarget && !this.dialogMouseDown) {\n this.close(e);\n }\n },\n onKeydown: function onKeydown(e) {\n var props = this.$props;\n if (props.keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n this.close(e);\n return;\n }\n // keep focus inside dialog\n if (props.visible) {\n if (e.keyCode === KeyCode.TAB) {\n var activeElement = document.activeElement;\n var sentinelStart = this.$refs.sentinelStart;\n if (e.shiftKey) {\n if (activeElement === sentinelStart) {\n this.$refs.sentinelEnd.focus();\n }\n } else if (activeElement === this.$refs.sentinelEnd) {\n sentinelStart.focus();\n }\n }\n }\n },\n getDialogElement: function getDialogElement() {\n var h = this.$createElement;\n var closable = this.closable,\n prefixCls = this.prefixCls,\n width = this.width,\n height = this.height,\n title = this.title,\n tempFooter = this.footer,\n bodyStyle = this.bodyStyle,\n visible = this.visible,\n bodyProps = this.bodyProps,\n forceRender = this.forceRender,\n dialogStyle = this.dialogStyle,\n dialogClass = this.dialogClass;\n\n var dest = _extends({}, dialogStyle);\n if (width !== undefined) {\n dest.width = typeof width === 'number' ? width + 'px' : width;\n }\n if (height !== undefined) {\n dest.height = typeof height === 'number' ? height + 'px' : height;\n }\n\n var footer = void 0;\n if (tempFooter) {\n footer = h(\n 'div',\n { key: 'footer', 'class': prefixCls + '-footer', ref: 'footer' },\n [tempFooter]\n );\n }\n\n var header = void 0;\n if (title) {\n header = h(\n 'div',\n { key: 'header', 'class': prefixCls + '-header', ref: 'header' },\n [h(\n 'div',\n { 'class': prefixCls + '-title', attrs: { id: this.titleId }\n },\n [title]\n )]\n );\n }\n\n var closer = void 0;\n if (closable) {\n var closeIcon = getComponentFromProp(this, 'closeIcon');\n closer = h(\n 'button',\n {\n attrs: {\n type: 'button',\n\n 'aria-label': 'Close'\n },\n key: 'close',\n on: {\n 'click': this.close || noop\n },\n 'class': prefixCls + '-close'\n },\n [closeIcon || h('span', { 'class': prefixCls + '-close-x' })]\n );\n }\n\n var style = dest;\n var sentinelStyle = { width: 0, height: 0, overflow: 'hidden' };\n var cls = _defineProperty({}, prefixCls, true);\n var transitionName = this.getTransitionName();\n var dialogElement = h(\n LazyRenderBox,\n {\n directives: [{\n name: 'show',\n value: visible\n }],\n\n key: 'dialog-element',\n attrs: { role: 'document',\n\n forceRender: forceRender\n },\n ref: 'dialog',\n style: style,\n 'class': [cls, dialogClass], on: {\n 'mousedown': this.onDialogMouseDown\n }\n },\n [h('div', {\n attrs: { tabIndex: 0, 'aria-hidden': 'true' },\n ref: 'sentinelStart', style: sentinelStyle }), h(\n 'div',\n { 'class': prefixCls + '-content' },\n [closer, header, h(\n 'div',\n _mergeJSXProps([{ key: 'body', 'class': prefixCls + '-body', style: bodyStyle, ref: 'body' }, bodyProps]),\n [this.$slots['default']]\n ), footer]\n ), h('div', {\n attrs: { tabIndex: 0, 'aria-hidden': 'true' },\n ref: 'sentinelEnd', style: sentinelStyle })]\n );\n var dialogTransitionProps = getTransitionProps(transitionName, {\n afterLeave: this.onAnimateLeave\n });\n return h(\n 'transition',\n _mergeJSXProps([{ key: 'dialog' }, dialogTransitionProps]),\n [visible || !this.destroyPopup ? dialogElement : null]\n );\n },\n getZIndexStyle: function getZIndexStyle() {\n var style = {};\n var props = this.$props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n },\n getWrapStyle: function getWrapStyle() {\n return _extends({}, this.getZIndexStyle(), this.wrapStyle);\n },\n getMaskStyle: function getMaskStyle() {\n return _extends({}, this.getZIndexStyle(), this.maskStyle);\n },\n getMaskElement: function getMaskElement() {\n var h = this.$createElement;\n\n var props = this.$props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = h(LazyRenderBox, _mergeJSXProps([{\n directives: [{\n name: 'show',\n value: props.visible\n }],\n\n style: this.getMaskStyle(),\n key: 'mask',\n 'class': props.prefixCls + '-mask'\n }, props.maskProps]));\n if (maskTransition) {\n var maskTransitionProps = getTransitionProps(maskTransition);\n maskElement = h(\n 'transition',\n _mergeJSXProps([{ key: 'mask' }, maskTransitionProps]),\n [maskElement]\n );\n }\n }\n return maskElement;\n },\n getMaskTransitionName: function getMaskTransitionName() {\n var props = this.$props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n },\n getTransitionName: function getTransitionName() {\n var props = this.$props;\n var transitionName = props.transitionName;\n var animation = props.animation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n },\n\n // setScrollbar() {\n // if (this.bodyIsOverflowing && this.scrollbarWidth !== undefined) {\n // document.body.style.paddingRight = `${this.scrollbarWidth}px`;\n // }\n // },\n switchScrollingEffect: function switchScrollingEffect() {\n var getOpenCount = this.getOpenCount;\n\n var openCount = getOpenCount();\n if (openCount === 1) {\n if (cacheOverflow.hasOwnProperty('overflowX')) {\n return;\n }\n cacheOverflow = {\n overflowX: document.body.style.overflowX,\n overflowY: document.body.style.overflowY,\n overflow: document.body.style.overflow\n };\n _switchScrollingEffect();\n // Must be set after switchScrollingEffect\n document.body.style.overflow = 'hidden';\n } else if (!openCount) {\n // IE browser doesn't merge overflow style, need to set it separately\n // https://github.com/ant-design/ant-design/issues/19393\n if (cacheOverflow.overflow !== undefined) {\n document.body.style.overflow = cacheOverflow.overflow;\n }\n if (cacheOverflow.overflowX !== undefined) {\n document.body.style.overflowX = cacheOverflow.overflowX;\n }\n if (cacheOverflow.overflowY !== undefined) {\n document.body.style.overflowY = cacheOverflow.overflowY;\n }\n cacheOverflow = {};\n _switchScrollingEffect(true);\n }\n },\n\n // removeScrollingEffect() {\n // const { getOpenCount } = this;\n // const openCount = getOpenCount();\n // if (openCount !== 0) {\n // return;\n // }\n // document.body.style.overflow = '';\n // switchScrollingEffect(true);\n // // this.resetAdjustments();\n // },\n close: function close(e) {\n this.__emit('close', e);\n }\n },\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n maskClosable = this.maskClosable,\n visible = this.visible,\n wrapClassName = this.wrapClassName,\n title = this.title,\n wrapProps = this.wrapProps;\n\n var style = this.getWrapStyle();\n // clear hide display\n // and only set display after async anim, not here for hide\n if (visible) {\n style.display = null;\n }\n return h(\n 'div',\n { 'class': prefixCls + '-root' },\n [this.getMaskElement(), h(\n 'div',\n _mergeJSXProps([{\n attrs: {\n tabIndex: -1,\n\n role: 'dialog',\n 'aria-labelledby': title ? this.titleId : null\n },\n on: {\n 'keydown': this.onKeydown,\n 'click': maskClosable ? this.onMaskClick : noop,\n 'mouseup': maskClosable ? this.onMaskMouseUp : noop\n },\n\n 'class': prefixCls + '-wrap ' + (wrapClassName || ''),\n ref: 'wrap',\n style: style\n }, wrapProps]),\n [this.getDialogElement()]\n )]\n );\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport Dialog from './Dialog';\nimport getDialogPropTypes from './IDialogPropTypes';\nimport { getListeners } from '../_util/props-util';\nimport Portal from '../_util/PortalWrapper';\nvar IDialogPropTypes = getDialogPropTypes();\nvar DialogWrap = {\n inheritAttrs: false,\n props: _extends({}, IDialogPropTypes, {\n visible: IDialogPropTypes.visible.def(false)\n }),\n\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n var _$props = this.$props,\n visible = _$props.visible,\n getContainer = _$props.getContainer,\n forceRender = _$props.forceRender;\n\n var dialogProps = {\n props: this.$props,\n attrs: this.$attrs,\n ref: '_component',\n key: 'dialog',\n on: getListeners(this)\n };\n // 渲染在当前 dom 里;\n if (getContainer === false) {\n return h(\n Dialog,\n _mergeJSXProps([dialogProps, {\n attrs: {\n getOpenCount: function getOpenCount() {\n return 2;\n } // 不对 body 做任何操作。。\n }\n }]),\n [this.$slots['default']]\n );\n }\n return h(Portal, {\n attrs: {\n visible: visible,\n forceRender: forceRender,\n getContainer: getContainer,\n children: function children(childProps) {\n dialogProps.props = _extends({}, dialogProps.props, childProps);\n return h(\n Dialog,\n dialogProps,\n [_this.$slots['default']]\n );\n }\n }\n });\n }\n};\n\nexport default DialogWrap;","// based on vc-dialog 7.5.14\nimport DialogWrap from './DialogWrap';\nexport default DialogWrap;","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\n\nvar IProps = {\n width: PropTypes.any,\n height: PropTypes.any,\n defaultOpen: PropTypes.bool,\n firstEnter: PropTypes.bool,\n open: PropTypes.bool,\n prefixCls: PropTypes.string,\n placement: PropTypes.string,\n level: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n levelMove: PropTypes.oneOfType([PropTypes.number, PropTypes.func, PropTypes.array]),\n ease: PropTypes.string,\n duration: PropTypes.string,\n handler: PropTypes.any,\n showMask: PropTypes.bool,\n maskStyle: PropTypes.object,\n className: PropTypes.string,\n wrapStyle: PropTypes.object,\n maskClosable: PropTypes.bool,\n afterVisibleChange: PropTypes.func,\n keyboard: PropTypes.bool\n};\n\nvar IDrawerProps = _extends({}, IProps, {\n wrapperClassName: PropTypes.string,\n forceRender: PropTypes.bool,\n getContainer: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object, PropTypes.bool])\n});\n\nvar IDrawerChildProps = _extends({}, IProps, {\n getContainer: PropTypes.func,\n getOpenCount: PropTypes.func,\n switchScrollingEffect: PropTypes.func\n});\n\nexport { IDrawerProps, IDrawerChildProps };","export function dataToArray(vars) {\n if (Array.isArray(vars)) {\n return vars;\n }\n return [vars];\n}\nvar transitionEndObject = {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend'\n};\nexport var transitionStr = Object.keys(transitionEndObject).filter(function (key) {\n if (typeof document === 'undefined') {\n return false;\n }\n var html = document.getElementsByTagName('html')[0];\n return key in (html ? html.style : {});\n})[0];\nexport var transitionEnd = transitionEndObject[transitionStr];\n\nexport function addEventListener(target, eventType, callback, options) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, options);\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n }\n}\n\nexport function removeEventListener(target, eventType, callback, options) {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback, options);\n } else if (target.attachEvent) {\n target.detachEvent('on' + eventType, callback);\n }\n}\n\nexport function transformArguments(arg, cb) {\n var result = void 0;\n if (typeof arg === 'function') {\n result = arg(cb);\n } else {\n result = arg;\n }\n if (Array.isArray(result)) {\n if (result.length === 2) {\n return result;\n }\n return [result[0], result[1]];\n }\n return [result];\n}\n\nexport var isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value); // eslint-disable-line\n};\n\nexport var windowIsUndefined = !(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport var getTouchParentScroll = function getTouchParentScroll(root, currentTarget, differX, differY) {\n if (!currentTarget || currentTarget === document || currentTarget instanceof Document) {\n return false;\n }\n // root 为 drawer-content 设定了 overflow, 判断为 root 的 parent 时结束滚动;\n if (currentTarget === root.parentNode) {\n return true;\n }\n\n var isY = Math.max(Math.abs(differX), Math.abs(differY)) === Math.abs(differY);\n var isX = Math.max(Math.abs(differX), Math.abs(differY)) === Math.abs(differX);\n\n var scrollY = currentTarget.scrollHeight - currentTarget.clientHeight;\n var scrollX = currentTarget.scrollWidth - currentTarget.clientWidth;\n\n var style = document.defaultView.getComputedStyle(currentTarget);\n var overflowY = style.overflowY === 'auto' || style.overflowY === 'scroll';\n var overflowX = style.overflowX === 'auto' || style.overflowX === 'scroll';\n\n var y = scrollY && overflowY;\n var x = scrollX && overflowX;\n\n if (isY && (!y || y && (currentTarget.scrollTop >= scrollY && differY < 0 || currentTarget.scrollTop <= 0 && differY > 0)) || isX && (!x || x && (currentTarget.scrollLeft >= scrollX && scrollX < 0 || currentTarget.scrollLeft <= 0 && scrollX > 0))) {\n return getTouchParentScroll(root, currentTarget.parentNode, differX, differY);\n }\n return false;\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classnames from 'classnames';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { initDefaultProps, getEvents, getListeners } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport getScrollBarSize from '../../_util/getScrollBarSize';\nimport { IDrawerProps } from './IDrawerPropTypes';\nimport KeyCode from '../../_util/KeyCode';\nimport { dataToArray, transitionEnd, transitionStr, addEventListener, removeEventListener, transformArguments, isNumeric } from './utils';\nimport Portal from '../../_util/Portal';\n\nfunction noop() {}\n\nvar currentDrawer = {};\nvar windowIsUndefined = !(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nVue.use(ref, { name: 'ant-ref' });\nvar Drawer = {\n mixins: [BaseMixin],\n props: initDefaultProps(IDrawerProps, {\n prefixCls: 'drawer',\n placement: 'left',\n getContainer: 'body',\n level: 'all',\n duration: '.3s',\n ease: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n firstEnter: false, // 记录首次进入.\n showMask: true,\n handler: true,\n maskStyle: {},\n wrapperClassName: '',\n className: ''\n }),\n data: function data() {\n this.levelDom = [];\n this.contentDom = null;\n this.maskDom = null;\n this.handlerdom = null;\n this.mousePos = null;\n this.sFirstEnter = this.firstEnter;\n this.timeout = null;\n this.children = null;\n this.drawerId = Number((Date.now() + Math.random()).toString().replace('.', Math.round(Math.random() * 9))).toString(16);\n var open = this.open !== undefined ? this.open : !!this.defaultOpen;\n currentDrawer[this.drawerId] = open;\n this.orignalOpen = this.open;\n this.preProps = _extends({}, this.$props);\n return {\n sOpen: open\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (!windowIsUndefined) {\n var passiveSupported = false;\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveSupported = true;\n return null;\n }\n }));\n _this.passive = passiveSupported ? { passive: false } : false;\n }\n var open = _this.getOpen();\n if (_this.handler || open || _this.sFirstEnter) {\n _this.getDefault(_this.$props);\n if (open) {\n _this.isOpenChange = true;\n _this.$nextTick(function () {\n _this.domFocus();\n });\n }\n _this.$forceUpdate();\n }\n });\n },\n\n watch: {\n open: function (_open) {\n function open(_x) {\n return _open.apply(this, arguments);\n }\n\n open.toString = function () {\n return _open.toString();\n };\n\n return open;\n }(function (val) {\n var _this2 = this;\n\n if (val !== undefined && val !== this.preProps.open) {\n this.isOpenChange = true;\n // 没渲染 dom 时,获取默认数据;\n if (!this.container) {\n this.getDefault(this.$props);\n }\n this.setState({\n sOpen: open\n });\n }\n this.preProps.open = val;\n if (val) {\n this.$nextTick(function () {\n _this2.domFocus();\n });\n }\n }),\n placement: function placement(val) {\n if (val !== this.preProps.placement) {\n // test 的 bug, 有动画过场,删除 dom\n this.contentDom = null;\n }\n this.preProps.placement = val;\n },\n level: function level(val) {\n if (this.preProps.level !== val) {\n this.getParentAndLevelDom(this.$props);\n }\n this.preProps.level = val;\n }\n },\n updated: function updated() {\n var _this3 = this;\n\n this.$nextTick(function () {\n // dom 没渲染时,重走一遍。\n if (!_this3.sFirstEnter && _this3.container) {\n _this3.$forceUpdate();\n _this3.sFirstEnter = true;\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n delete currentDrawer[this.drawerId];\n delete this.isOpenChange;\n if (this.container) {\n if (this.sOpen) {\n this.setLevelDomTransform(false, true);\n }\n document.body.style.overflow = '';\n }\n this.sFirstEnter = false;\n clearTimeout(this.timeout);\n },\n\n methods: {\n domFocus: function domFocus() {\n if (this.dom) {\n this.dom.focus();\n }\n },\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n this.$emit('close', e);\n }\n },\n onMaskTouchEnd: function onMaskTouchEnd(e) {\n this.$emit('close', e);\n this.onTouchEnd(e, true);\n },\n onIconTouchEnd: function onIconTouchEnd(e) {\n this.$emit('handleClick', e);\n this.onTouchEnd(e);\n },\n onTouchEnd: function onTouchEnd(e, close) {\n if (this.open !== undefined) {\n return;\n }\n var open = close || this.sOpen;\n this.isOpenChange = true;\n this.setState({\n sOpen: !open\n });\n },\n onWrapperTransitionEnd: function onWrapperTransitionEnd(e) {\n if (e.target === this.contentWrapper && e.propertyName.match(/transform$/)) {\n var _open2 = this.getOpen();\n this.dom.style.transition = '';\n if (!_open2 && this.getCurrentDrawerSome()) {\n document.body.style.overflowX = '';\n if (this.maskDom) {\n this.maskDom.style.left = '';\n this.maskDom.style.width = '';\n }\n }\n if (this.afterVisibleChange) {\n this.afterVisibleChange(!!_open2);\n }\n }\n },\n getDefault: function getDefault(props) {\n this.getParentAndLevelDom(props);\n if (props.getContainer || props.parent) {\n this.container = this.defaultGetContainer();\n }\n },\n getCurrentDrawerSome: function getCurrentDrawerSome() {\n return !Object.keys(currentDrawer).some(function (key) {\n return currentDrawer[key];\n });\n },\n getSelfContainer: function getSelfContainer() {\n return this.container;\n },\n getParentAndLevelDom: function getParentAndLevelDom(props) {\n var _this4 = this;\n\n if (windowIsUndefined) {\n return;\n }\n var level = props.level,\n getContainer = props.getContainer;\n\n this.levelDom = [];\n if (getContainer) {\n if (typeof getContainer === 'string') {\n var dom = document.querySelectorAll(getContainer)[0];\n this.parent = dom;\n }\n if (typeof getContainer === 'function') {\n this.parent = getContainer();\n }\n if ((typeof getContainer === 'undefined' ? 'undefined' : _typeof(getContainer)) === 'object' && getContainer instanceof window.HTMLElement) {\n this.parent = getContainer;\n }\n }\n if (!getContainer && this.container) {\n this.parent = this.container.parentNode;\n }\n if (level === 'all') {\n var children = Array.prototype.slice.call(this.parent.children);\n children.forEach(function (child) {\n if (child.nodeName !== 'SCRIPT' && child.nodeName !== 'STYLE' && child.nodeName !== 'LINK' && child !== _this4.container) {\n _this4.levelDom.push(child);\n }\n });\n } else if (level) {\n dataToArray(level).forEach(function (key) {\n document.querySelectorAll(key).forEach(function (item) {\n _this4.levelDom.push(item);\n });\n });\n }\n },\n setLevelDomTransform: function setLevelDomTransform(open, openTransition, placementName, value) {\n var _this5 = this;\n\n var _$props = this.$props,\n placement = _$props.placement,\n levelMove = _$props.levelMove,\n duration = _$props.duration,\n ease = _$props.ease,\n getContainer = _$props.getContainer;\n\n if (!windowIsUndefined) {\n this.levelDom.forEach(function (dom) {\n if (_this5.isOpenChange || openTransition) {\n /* eslint no-param-reassign: \"error\" */\n dom.style.transition = 'transform ' + duration + ' ' + ease;\n addEventListener(dom, transitionEnd, _this5.trnasitionEnd);\n var levelValue = open ? value : 0;\n if (levelMove) {\n var $levelMove = transformArguments(levelMove, { target: dom, open: open });\n levelValue = open ? $levelMove[0] : $levelMove[1] || 0;\n }\n var $value = typeof levelValue === 'number' ? levelValue + 'px' : levelValue;\n var placementPos = placement === 'left' || placement === 'top' ? $value : '-' + $value;\n dom.style.transform = levelValue ? placementName + '(' + placementPos + ')' : '';\n dom.style.msTransform = levelValue ? placementName + '(' + placementPos + ')' : '';\n }\n });\n // 处理 body 滚动\n if (getContainer === 'body') {\n var eventArray = ['touchstart'];\n var domArray = [document.body, this.maskDom, this.handlerdom, this.contentDom];\n var right = document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth ? getScrollBarSize(1) : 0;\n var widthTransition = 'width ' + duration + ' ' + ease;\n var trannsformTransition = 'transform ' + duration + ' ' + ease;\n if (open && document.body.style.overflow !== 'hidden') {\n document.body.style.overflow = 'hidden';\n if (right) {\n document.body.style.position = 'relative';\n document.body.style.width = 'calc(100% - ' + right + 'px)';\n this.dom.style.transition = 'none';\n switch (placement) {\n case 'right':\n this.dom.style.transform = 'translateX(-' + right + 'px)';\n this.dom.style.msTransform = 'translateX(-' + right + 'px)';\n break;\n case 'top':\n case 'bottom':\n this.dom.style.width = 'calc(100% - ' + right + 'px)';\n this.dom.style.transform = 'translateZ(0)';\n break;\n default:\n break;\n }\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () {\n _this5.dom.style.transition = trannsformTransition + ',' + widthTransition;\n _this5.dom.style.width = '';\n _this5.dom.style.transform = '';\n _this5.dom.style.msTransform = '';\n });\n }\n // 手机禁滚\n domArray.forEach(function (item, i) {\n if (!item) {\n return;\n }\n addEventListener(item, eventArray[i] || 'touchmove', i ? _this5.removeMoveHandler : _this5.removeStartHandler, _this5.passive);\n });\n } else if (this.getCurrentDrawerSome()) {\n document.body.style.overflow = '';\n if ((this.isOpenChange || openTransition) && right) {\n document.body.style.position = '';\n document.body.style.width = '';\n if (transitionStr) {\n document.body.style.overflowX = 'hidden';\n }\n this.dom.style.transition = 'none';\n var heightTransition = void 0;\n switch (placement) {\n case 'right':\n {\n this.dom.style.transform = 'translateX(' + right + 'px)';\n this.dom.style.msTransform = 'translateX(' + right + 'px)';\n this.dom.style.width = '100%';\n widthTransition = 'width 0s ' + ease + ' ' + duration;\n if (this.maskDom) {\n this.maskDom.style.left = '-' + right + 'px';\n this.maskDom.style.width = 'calc(100% + ' + right + 'px)';\n }\n break;\n }\n case 'top':\n case 'bottom':\n {\n this.dom.style.width = 'calc(100% + ' + right + 'px)';\n this.dom.style.height = '100%';\n this.dom.style.transform = 'translateZ(0)';\n heightTransition = 'height 0s ' + ease + ' ' + duration;\n break;\n }\n default:\n break;\n }\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () {\n _this5.dom.style.transition = trannsformTransition + ',' + (heightTransition ? heightTransition + ',' : '') + widthTransition;\n _this5.dom.style.transform = '';\n _this5.dom.style.msTransform = '';\n _this5.dom.style.width = '';\n _this5.dom.style.height = '';\n });\n }\n domArray.forEach(function (item, i) {\n if (!item) {\n return;\n }\n removeEventListener(item, eventArray[i] || 'touchmove', i ? _this5.removeMoveHandler : _this5.removeStartHandler, _this5.passive);\n });\n }\n }\n }\n\n var _getListeners = getListeners(this),\n change = _getListeners.change;\n\n if (change && this.isOpenChange && this.sFirstEnter) {\n change(open);\n this.isOpenChange = false;\n }\n },\n getChildToRender: function getChildToRender(open) {\n var _classnames,\n _this6 = this;\n\n var h = this.$createElement;\n var _$props2 = this.$props,\n className = _$props2.className,\n prefixCls = _$props2.prefixCls,\n placement = _$props2.placement,\n handler = _$props2.handler,\n showMask = _$props2.showMask,\n maskStyle = _$props2.maskStyle,\n width = _$props2.width,\n height = _$props2.height,\n wrapStyle = _$props2.wrapStyle,\n keyboard = _$props2.keyboard,\n maskClosable = _$props2.maskClosable;\n\n var children = this.$slots['default'];\n var wrapperClassname = classnames(prefixCls, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-' + placement, true), _defineProperty(_classnames, prefixCls + '-open', open), _defineProperty(_classnames, className, !!className), _defineProperty(_classnames, 'no-mask', !showMask), _classnames));\n var isOpenChange = this.isOpenChange;\n var isHorizontal = placement === 'left' || placement === 'right';\n var placementName = 'translate' + (isHorizontal ? 'X' : 'Y');\n // 百分比与像素动画不同步,第一次打用后全用像素动画。\n // const defaultValue = !this.contentDom || !level ? '100%' : `${value}px`;\n var placementPos = placement === 'left' || placement === 'top' ? '-100%' : '100%';\n var transform = open ? '' : placementName + '(' + placementPos + ')';\n if (isOpenChange === undefined || isOpenChange) {\n var contentValue = this.contentDom ? this.contentDom.getBoundingClientRect()[isHorizontal ? 'width' : 'height'] : 0;\n var value = (isHorizontal ? width : height) || contentValue;\n this.setLevelDomTransform(open, false, placementName, value);\n }\n var handlerChildren = void 0;\n if (handler !== false) {\n var handlerDefalut = h(\n 'div',\n { 'class': 'drawer-handle' },\n [h('i', { 'class': 'drawer-handle-icon' })]\n );\n var handlerSlot = this.handler;\n\n var handlerSlotVnode = handlerSlot && handlerSlot[0] || handlerDefalut;\n\n var _getEvents = getEvents(handlerSlotVnode),\n handleIconClick = _getEvents.click;\n\n handlerChildren = cloneElement(handlerSlotVnode, {\n on: {\n click: function click(e) {\n handleIconClick && handleIconClick();\n _this6.onIconTouchEnd(e);\n }\n },\n directives: [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.handlerdom = c;\n }\n }]\n });\n }\n var domContProps = {\n 'class': wrapperClassname,\n directives: [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.dom = c;\n }\n }],\n on: {\n transitionend: this.onWrapperTransitionEnd,\n keydown: open && keyboard ? this.onKeyDown : noop\n },\n style: wrapStyle\n };\n var directivesMaskDom = [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.maskDom = c;\n }\n }];\n var directivesContentWrapper = [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.contentWrapper = c;\n }\n }];\n var directivesContentDom = [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.contentDom = c;\n }\n }];\n return h(\n 'div',\n _mergeJSXProps([domContProps, {\n attrs: { tabIndex: -1 }\n }]),\n [showMask && h('div', _mergeJSXProps([{\n key: open // 第二次渲染时虚拟DOM没有改变,没有出发dom更新,使用key强制更新 https://github.com/vueComponent/ant-design-vue/issues/2407\n , 'class': prefixCls + '-mask',\n on: {\n 'click': maskClosable ? this.onMaskTouchEnd : noop\n },\n\n style: maskStyle\n }, { directives: directivesMaskDom }])), h(\n 'div',\n _mergeJSXProps([{\n 'class': prefixCls + '-content-wrapper',\n style: {\n transform: transform,\n msTransform: transform,\n width: isNumeric(width) ? width + 'px' : width,\n height: isNumeric(height) ? height + 'px' : height\n }\n }, { directives: directivesContentWrapper }]),\n [h(\n 'div',\n _mergeJSXProps([{\n 'class': prefixCls + '-content'\n }, { directives: directivesContentDom }, {\n on: {\n 'touchstart': open ? this.removeStartHandler : noop,\n 'touchmove': open ? this.removeMoveHandler : noop\n }\n }]),\n [children]\n ), handlerChildren]\n )]\n );\n },\n getOpen: function getOpen() {\n return this.open !== undefined ? this.open : this.sOpen;\n },\n getTouchParentScroll: function getTouchParentScroll(root, currentTarget, differX, differY) {\n if (!currentTarget || currentTarget === document) {\n return false;\n }\n // root 为 drawer-content 设定了 overflow, 判断为 root 的 parent 时结束滚动;\n if (currentTarget === root.parentNode) {\n return true;\n }\n\n var isY = Math.max(Math.abs(differX), Math.abs(differY)) === Math.abs(differY);\n var isX = Math.max(Math.abs(differX), Math.abs(differY)) === Math.abs(differX);\n\n var scrollY = currentTarget.scrollHeight - currentTarget.clientHeight;\n var scrollX = currentTarget.scrollWidth - currentTarget.clientWidth;\n /**\n *
\n *
\n *
\n * 在没设定 overflow: auto 或 scroll 时,currentTarget 里获取不到 scrollTop 或 scrollLeft,\n * 预先用 scrollTo 来滚动,如果取出的值跟滚动前取出不同,则 currnetTarget 被设定了 overflow; 否则就是上面这种。\n */\n var t = currentTarget.scrollTop;\n var l = currentTarget.scrollLeft;\n if (currentTarget.scrollTo) {\n currentTarget.scrollTo(currentTarget.scrollLeft + 1, currentTarget.scrollTop + 1);\n }\n var currentT = currentTarget.scrollTop;\n var currentL = currentTarget.scrollLeft;\n if (currentTarget.scrollTo) {\n currentTarget.scrollTo(currentTarget.scrollLeft - 1, currentTarget.scrollTop - 1);\n }\n if (isY && (!scrollY || !(currentT - t) || scrollY && (currentTarget.scrollTop >= scrollY && differY < 0 || currentTarget.scrollTop <= 0 && differY > 0)) || isX && (!scrollX || !(currentL - l) || scrollX && (currentTarget.scrollLeft >= scrollX && differX < 0 || currentTarget.scrollLeft <= 0 && differX > 0))) {\n return this.getTouchParentScroll(root, currentTarget.parentNode, differX, differY);\n }\n return false;\n },\n removeStartHandler: function removeStartHandler(e) {\n if (e.touches.length > 1) {\n return;\n }\n this.startPos = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY\n };\n },\n removeMoveHandler: function removeMoveHandler(e) {\n if (e.changedTouches.length > 1) {\n return;\n }\n var currentTarget = e.currentTarget;\n var differX = e.changedTouches[0].clientX - this.startPos.x;\n var differY = e.changedTouches[0].clientY - this.startPos.y;\n if (currentTarget === this.maskDom || currentTarget === this.handlerdom || currentTarget === this.contentDom && this.getTouchParentScroll(currentTarget, e.target, differX, differY)) {\n e.preventDefault();\n }\n },\n trnasitionEnd: function trnasitionEnd(e) {\n removeEventListener(e.target, transitionEnd, this.trnasitionEnd);\n e.target.style.transition = '';\n },\n defaultGetContainer: function defaultGetContainer() {\n if (windowIsUndefined) {\n return null;\n }\n var container = document.createElement('div');\n this.parent.appendChild(container);\n if (this.wrapperClassName) {\n container.className = this.wrapperClassName;\n }\n return container;\n }\n },\n\n render: function render() {\n var _this7 = this;\n\n var h = arguments[0];\n var _$props3 = this.$props,\n getContainer = _$props3.getContainer,\n wrapperClassName = _$props3.wrapperClassName,\n handler = _$props3.handler,\n forceRender = _$props3.forceRender;\n\n var open = this.getOpen();\n var portal = null;\n currentDrawer[this.drawerId] = open ? this.container : open;\n var children = this.getChildToRender(this.sFirstEnter ? open : false);\n if (!getContainer) {\n var directives = [{\n name: 'ant-ref',\n value: function value(c) {\n _this7.container = c;\n }\n }];\n return h(\n 'div',\n _mergeJSXProps([{ 'class': wrapperClassName }, { directives: directives }]),\n [children]\n );\n }\n if (!this.container || !open && !this.sFirstEnter) {\n return null;\n }\n // 如果有 handler 为内置强制渲染;\n var $forceRender = !!handler || forceRender;\n if ($forceRender || open || this.dom) {\n portal = h(Portal, {\n attrs: { getContainer: this.getSelfContainer, children: children }\n });\n }\n return portal;\n }\n};\n\nexport default Drawer;","// base in 1.7.7\n// export this package's api\nimport Drawer from './Drawer';\n\nexport default Drawer;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport PropTypes from '../../_util/vue-types';\nimport Trigger from '../../vc-trigger';\nimport placements from './placements';\nimport { hasProp, getEvents, getOptionProps } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { cloneElement } from '../../_util/vnode';\n\nexport default {\n mixins: [BaseMixin],\n props: {\n minOverlayWidthMatchTrigger: PropTypes.bool,\n prefixCls: PropTypes.string.def('rc-dropdown'),\n transitionName: PropTypes.string,\n overlayClassName: PropTypes.string.def(''),\n openClassName: PropTypes.string,\n animation: PropTypes.any,\n align: PropTypes.object,\n overlayStyle: PropTypes.object.def(function () {\n return {};\n }),\n placement: PropTypes.string.def('bottomLeft'),\n overlay: PropTypes.any,\n trigger: PropTypes.array.def(['hover']),\n alignPoint: PropTypes.bool,\n showAction: PropTypes.array.def([]),\n hideAction: PropTypes.array.def([]),\n getPopupContainer: PropTypes.func,\n visible: PropTypes.bool,\n defaultVisible: PropTypes.bool.def(false),\n mouseEnterDelay: PropTypes.number.def(0.15),\n mouseLeaveDelay: PropTypes.number.def(0.1)\n },\n data: function data() {\n var sVisible = this.defaultVisible;\n if (hasProp(this, 'visible')) {\n sVisible = this.visible;\n }\n return {\n sVisible: sVisible\n };\n },\n\n watch: {\n visible: function visible(val) {\n if (val !== undefined) {\n this.setState({\n sVisible: val\n });\n }\n }\n },\n methods: {\n onClick: function onClick(e) {\n // do no call onVisibleChange, if you need click to hide, use onClick and control visible\n if (!hasProp(this, 'visible')) {\n this.setState({\n sVisible: false\n });\n }\n this.$emit('overlayClick', e);\n if (this.childOriginEvents.click) {\n this.childOriginEvents.click(e);\n }\n },\n onVisibleChange: function onVisibleChange(visible) {\n if (!hasProp(this, 'visible')) {\n this.setState({\n sVisible: visible\n });\n }\n this.__emit('visibleChange', visible);\n },\n getMinOverlayWidthMatchTrigger: function getMinOverlayWidthMatchTrigger() {\n var props = getOptionProps(this);\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n },\n getOverlayElement: function getOverlayElement() {\n var overlay = this.overlay || this.$slots.overlay || this.$scopedSlots.overlay;\n var overlayElement = void 0;\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n return overlayElement;\n },\n getMenuElement: function getMenuElement() {\n var _this = this;\n\n var onClick = this.onClick,\n prefixCls = this.prefixCls,\n $slots = this.$slots;\n\n this.childOriginEvents = getEvents($slots.overlay[0]);\n var overlayElement = this.getOverlayElement();\n var extraOverlayProps = {\n props: {\n prefixCls: prefixCls + '-menu',\n getPopupContainer: function getPopupContainer() {\n return _this.getPopupDomNode();\n }\n },\n on: {\n click: onClick\n }\n };\n if (typeof overlayElement.type === 'string') {\n delete extraOverlayProps.props.prefixCls;\n }\n return cloneElement($slots.overlay[0], extraOverlayProps);\n },\n getMenuElementOrLambda: function getMenuElementOrLambda() {\n var overlay = this.overlay || this.$slots.overlay || this.$scopedSlots.overlay;\n if (typeof overlay === 'function') {\n return this.getMenuElement;\n }\n return this.getMenuElement();\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.trigger.getPopupDomNode();\n },\n getOpenClassName: function getOpenClassName() {\n var _$props = this.$props,\n openClassName = _$props.openClassName,\n prefixCls = _$props.prefixCls;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n return prefixCls + '-open';\n },\n afterVisibleChange: function afterVisibleChange(visible) {\n if (visible && this.getMinOverlayWidthMatchTrigger()) {\n var overlayNode = this.getPopupDomNode();\n var rootNode = this.$el;\n if (rootNode && overlayNode && rootNode.offsetWidth > overlayNode.offsetWidth) {\n overlayNode.style.minWidth = rootNode.offsetWidth + 'px';\n if (this.$refs.trigger && this.$refs.trigger._component && this.$refs.trigger._component.$refs && this.$refs.trigger._component.$refs.alignInstance) {\n this.$refs.trigger._component.$refs.alignInstance.forceAlign();\n }\n }\n }\n },\n renderChildren: function renderChildren() {\n var children = this.$slots['default'] && this.$slots['default'][0];\n var sVisible = this.sVisible;\n\n return sVisible && children ? cloneElement(children, { 'class': this.getOpenClassName() }) : children;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n transitionName = _$props2.transitionName,\n animation = _$props2.animation,\n align = _$props2.align,\n placement = _$props2.placement,\n getPopupContainer = _$props2.getPopupContainer,\n showAction = _$props2.showAction,\n hideAction = _$props2.hideAction,\n overlayClassName = _$props2.overlayClassName,\n overlayStyle = _$props2.overlayStyle,\n trigger = _$props2.trigger,\n otherProps = _objectWithoutProperties(_$props2, ['prefixCls', 'transitionName', 'animation', 'align', 'placement', 'getPopupContainer', 'showAction', 'hideAction', 'overlayClassName', 'overlayStyle', 'trigger']);\n\n var triggerHideAction = hideAction;\n if (!triggerHideAction && trigger.indexOf('contextmenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n var triggerProps = {\n props: _extends({}, otherProps, {\n prefixCls: prefixCls,\n popupClassName: overlayClassName,\n popupStyle: overlayStyle,\n builtinPlacements: placements,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: this.sVisible,\n afterPopupVisibleChange: this.afterVisibleChange,\n getPopupContainer: getPopupContainer\n }),\n on: {\n popupVisibleChange: this.onVisibleChange\n },\n ref: 'trigger'\n };\n return h(\n Trigger,\n triggerProps,\n [this.renderChildren(), h(\n 'template',\n { slot: 'popup' },\n [this.$slots.overlay && this.getMenuElement()]\n )]\n );\n }\n};","// base in 2.4.1\nimport Dropdown from './Dropdown';\nexport default Dropdown;","import _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport warning from 'warning';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.name || 'WrappedComponent';\n}\n\nexport function argumentContainer(Container, WrappedComponent) {\n /* eslint no-param-reassign:0 */\n Container.name = 'Form_' + getDisplayName(WrappedComponent);\n Container.WrappedComponent = WrappedComponent;\n Container.props = _extends({}, Container.props, WrappedComponent.props);\n return Container;\n}\n\nexport function identity(obj) {\n return obj;\n}\n\nexport function flattenArray(arr) {\n return Array.prototype.concat.apply([], arr);\n}\n\nexport function treeTraverse() {\n var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var tree = arguments[1];\n var isLeafNode = arguments[2];\n var errorMessage = arguments[3];\n var callback = arguments[4];\n\n if (isLeafNode(path, tree)) {\n callback(path, tree);\n } else if (tree === undefined || tree === null) {\n // Do nothing\n } else if (Array.isArray(tree)) {\n tree.forEach(function (subTree, index) {\n return treeTraverse(path + '[' + index + ']', subTree, isLeafNode, errorMessage, callback);\n });\n } else {\n // It's object and not a leaf node\n if ((typeof tree === 'undefined' ? 'undefined' : _typeof(tree)) !== 'object') {\n warning(false, errorMessage);\n return;\n }\n Object.keys(tree).forEach(function (subTreeKey) {\n var subTree = tree[subTreeKey];\n treeTraverse('' + path + (path ? '.' : '') + subTreeKey, subTree, isLeafNode, errorMessage, callback);\n });\n }\n}\n\nexport function flattenFields(maybeNestedFields, isLeafNode, errorMessage) {\n var fields = {};\n treeTraverse(undefined, maybeNestedFields, isLeafNode, errorMessage, function (path, node) {\n fields[path] = node;\n });\n return fields;\n}\n\nexport function normalizeValidateRules(validate, rules, validateTrigger) {\n var validateRules = validate.map(function (item) {\n var newItem = _extends({}, item, {\n trigger: item.trigger || []\n });\n if (typeof newItem.trigger === 'string') {\n newItem.trigger = [newItem.trigger];\n }\n return newItem;\n });\n if (rules) {\n validateRules.push({\n trigger: validateTrigger ? [].concat(validateTrigger) : [],\n rules: rules\n });\n }\n return validateRules;\n}\n\nexport function getValidateTriggers(validateRules) {\n return validateRules.filter(function (item) {\n return !!item.rules && item.rules.length;\n }).map(function (item) {\n return item.trigger;\n }).reduce(function (pre, curr) {\n return pre.concat(curr);\n }, []);\n}\n\nexport function getValueFromEvent(e) {\n // To support custom element\n if (!e || !e.target) {\n return e;\n }\n var target = e.target;\n\n return target.type === 'checkbox' ? target.checked : target.value;\n}\n\nexport function getErrorStrs(errors) {\n if (errors) {\n return errors.map(function (e) {\n if (e && e.message) {\n return e.message;\n }\n return e;\n });\n }\n return errors;\n}\n\nexport function getParams(ns, opt, cb) {\n var names = ns;\n var options = opt;\n var callback = cb;\n if (cb === undefined) {\n if (typeof names === 'function') {\n callback = names;\n options = {};\n names = undefined;\n } else if (Array.isArray(names)) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n } else {\n callback = options;\n options = names || {};\n names = undefined;\n }\n }\n return {\n names: names,\n options: options,\n callback: callback\n };\n}\n\nexport function isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\n\nexport function hasRules(validate) {\n if (validate) {\n return validate.some(function (item) {\n return item.rules && item.rules.length;\n });\n }\n return false;\n}\n\nexport function startsWith(str, prefix) {\n return str.lastIndexOf(prefix, 0) === 0;\n}","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport set from 'lodash/set';\nimport createFormField, { isFormField } from './createFormField';\nimport { hasRules, flattenFields, getErrorStrs, startsWith } from './utils';\n\nfunction partOf(a, b) {\n return b.indexOf(a) === 0 && ['.', '['].indexOf(b[a.length]) !== -1;\n}\n\nfunction internalFlattenFields(fields) {\n return flattenFields(fields, function (_, node) {\n return isFormField(node);\n }, 'You must wrap field data with `createFormField`.');\n}\n\nvar FieldsStore = function () {\n function FieldsStore(fields) {\n _classCallCheck(this, FieldsStore);\n\n _initialiseProps.call(this);\n\n this.fields = internalFlattenFields(fields);\n this.fieldsMeta = {};\n }\n\n _createClass(FieldsStore, [{\n key: 'updateFields',\n value: function updateFields(fields) {\n this.fields = internalFlattenFields(fields);\n }\n }, {\n key: 'flattenRegisteredFields',\n value: function flattenRegisteredFields(fields) {\n var validFieldsName = this.getAllFieldsName();\n return flattenFields(fields, function (path) {\n return validFieldsName.indexOf(path) >= 0;\n }, 'You cannot set a form field before rendering a field associated with the value. You can use `getFieldDecorator(id, options)` instead `v-decorator=\"[id, options]\"` to register it before render.');\n }\n }, {\n key: 'setFields',\n value: function setFields(fields) {\n var _this = this;\n\n var fieldsMeta = this.fieldsMeta;\n var nowFields = _extends({}, this.fields, fields);\n var nowValues = {};\n Object.keys(fieldsMeta).forEach(function (f) {\n nowValues[f] = _this.getValueFromFields(f, nowFields);\n });\n Object.keys(nowValues).forEach(function (f) {\n var value = nowValues[f];\n var fieldMeta = _this.getFieldMeta(f);\n if (fieldMeta && fieldMeta.normalize) {\n var nowValue = fieldMeta.normalize(value, _this.getValueFromFields(f, _this.fields), nowValues);\n if (nowValue !== value) {\n nowFields[f] = _extends({}, nowFields[f], {\n value: nowValue\n });\n }\n }\n });\n this.fields = nowFields;\n }\n }, {\n key: 'resetFields',\n value: function resetFields(ns) {\n var fields = this.fields;\n\n var names = ns ? this.getValidFieldsFullName(ns) : this.getAllFieldsName();\n return names.reduce(function (acc, name) {\n var field = fields[name];\n if (field && 'value' in field) {\n acc[name] = {};\n }\n return acc;\n }, {});\n }\n }, {\n key: 'setFieldMeta',\n value: function setFieldMeta(name, meta) {\n this.fieldsMeta[name] = meta;\n }\n }, {\n key: 'setFieldsAsDirty',\n value: function setFieldsAsDirty() {\n var _this2 = this;\n\n Object.keys(this.fields).forEach(function (name) {\n var field = _this2.fields[name];\n var fieldMeta = _this2.fieldsMeta[name];\n if (field && fieldMeta && hasRules(fieldMeta.validate)) {\n _this2.fields[name] = _extends({}, field, {\n dirty: true\n });\n }\n });\n }\n }, {\n key: 'getFieldMeta',\n value: function getFieldMeta(name) {\n this.fieldsMeta[name] = this.fieldsMeta[name] || {};\n return this.fieldsMeta[name];\n }\n }, {\n key: 'getValueFromFields',\n value: function getValueFromFields(name, fields) {\n var field = fields[name];\n if (field && 'value' in field) {\n return field.value;\n }\n var fieldMeta = this.getFieldMeta(name);\n return fieldMeta && fieldMeta.initialValue;\n }\n }, {\n key: 'getValidFieldsName',\n value: function getValidFieldsName() {\n var _this3 = this;\n\n var fieldsMeta = this.fieldsMeta;\n\n return fieldsMeta ? Object.keys(fieldsMeta).filter(function (name) {\n return !_this3.getFieldMeta(name).hidden;\n }) : [];\n }\n }, {\n key: 'getAllFieldsName',\n value: function getAllFieldsName() {\n var fieldsMeta = this.fieldsMeta;\n\n return fieldsMeta ? Object.keys(fieldsMeta) : [];\n }\n }, {\n key: 'getValidFieldsFullName',\n value: function getValidFieldsFullName(maybePartialName) {\n var maybePartialNames = Array.isArray(maybePartialName) ? maybePartialName : [maybePartialName];\n return this.getValidFieldsName().filter(function (fullName) {\n return maybePartialNames.some(function (partialName) {\n return fullName === partialName || startsWith(fullName, partialName) && ['.', '['].indexOf(fullName[partialName.length]) >= 0;\n });\n });\n }\n }, {\n key: 'getFieldValuePropValue',\n value: function getFieldValuePropValue(fieldMeta) {\n var name = fieldMeta.name,\n getValueProps = fieldMeta.getValueProps,\n valuePropName = fieldMeta.valuePropName;\n\n var field = this.getField(name);\n var fieldValue = 'value' in field ? field.value : fieldMeta.initialValue;\n if (getValueProps) {\n return getValueProps(fieldValue);\n }\n return _defineProperty({}, valuePropName, fieldValue);\n }\n }, {\n key: 'getField',\n value: function getField(name) {\n return _extends({}, this.fields[name], {\n name: name\n });\n }\n }, {\n key: 'getNotCollectedFields',\n value: function getNotCollectedFields() {\n var _this4 = this;\n\n var fieldsName = this.getValidFieldsName();\n return fieldsName.filter(function (name) {\n return !_this4.fields[name];\n }).map(function (name) {\n return {\n name: name,\n dirty: false,\n value: _this4.getFieldMeta(name).initialValue\n };\n }).reduce(function (acc, field) {\n return set(acc, field.name, createFormField(field));\n }, {});\n }\n }, {\n key: 'getNestedAllFields',\n value: function getNestedAllFields() {\n var _this5 = this;\n\n return Object.keys(this.fields).reduce(function (acc, name) {\n return set(acc, name, createFormField(_this5.fields[name]));\n }, this.getNotCollectedFields());\n }\n }, {\n key: 'getFieldMember',\n value: function getFieldMember(name, member) {\n return this.getField(name)[member];\n }\n }, {\n key: 'getNestedFields',\n value: function getNestedFields(names, getter) {\n var fields = names || this.getValidFieldsName();\n return fields.reduce(function (acc, f) {\n return set(acc, f, getter(f));\n }, {});\n }\n }, {\n key: 'getNestedField',\n value: function getNestedField(name, getter) {\n var fullNames = this.getValidFieldsFullName(name);\n if (fullNames.length === 0 || // Not registered\n fullNames.length === 1 && fullNames[0] === name // Name already is full name.\n ) {\n return getter(name);\n }\n var isArrayValue = fullNames[0][name.length] === '[';\n var suffixNameStartIndex = isArrayValue ? name.length : name.length + 1;\n return fullNames.reduce(function (acc, fullName) {\n return set(acc, fullName.slice(suffixNameStartIndex), getter(fullName));\n }, isArrayValue ? [] : {});\n }\n }, {\n key: 'isValidNestedFieldName',\n\n\n // @private\n // BG: `a` and `a.b` cannot be use in the same form\n value: function isValidNestedFieldName(name) {\n var names = this.getAllFieldsName();\n return names.every(function (n) {\n return !partOf(n, name) && !partOf(name, n);\n });\n }\n }, {\n key: 'clearField',\n value: function clearField(name) {\n delete this.fields[name];\n delete this.fieldsMeta[name];\n }\n }]);\n\n return FieldsStore;\n}();\n\nvar _initialiseProps = function _initialiseProps() {\n var _this6 = this;\n\n this.setFieldsInitialValue = function (initialValues) {\n var flattenedInitialValues = _this6.flattenRegisteredFields(initialValues);\n var fieldsMeta = _this6.fieldsMeta;\n Object.keys(flattenedInitialValues).forEach(function (name) {\n if (fieldsMeta[name]) {\n _this6.setFieldMeta(name, _extends({}, _this6.getFieldMeta(name), {\n initialValue: flattenedInitialValues[name]\n }));\n }\n });\n };\n\n this.getAllValues = function () {\n var fieldsMeta = _this6.fieldsMeta,\n fields = _this6.fields;\n\n return Object.keys(fieldsMeta).reduce(function (acc, name) {\n return set(acc, name, _this6.getValueFromFields(name, fields));\n }, {});\n };\n\n this.getFieldsValue = function (names) {\n return _this6.getNestedFields(names, _this6.getFieldValue);\n };\n\n this.getFieldValue = function (name) {\n var fields = _this6.fields;\n\n return _this6.getNestedField(name, function (fullName) {\n return _this6.getValueFromFields(fullName, fields);\n });\n };\n\n this.getFieldsError = function (names) {\n return _this6.getNestedFields(names, _this6.getFieldError);\n };\n\n this.getFieldError = function (name) {\n return _this6.getNestedField(name, function (fullName) {\n return getErrorStrs(_this6.getFieldMember(fullName, 'errors'));\n });\n };\n\n this.isFieldValidating = function (name) {\n return _this6.getFieldMember(name, 'validating');\n };\n\n this.isFieldsValidating = function (ns) {\n var names = ns || _this6.getValidFieldsName();\n return names.some(function (n) {\n return _this6.isFieldValidating(n);\n });\n };\n\n this.isFieldTouched = function (name) {\n return _this6.getFieldMember(name, 'touched');\n };\n\n this.isFieldsTouched = function (ns) {\n var names = ns || _this6.getValidFieldsName();\n return names.some(function (n) {\n return _this6.isFieldTouched(n);\n });\n };\n};\n\nexport default function createFieldsStore(fields) {\n return new FieldsStore(fields);\n}","import _typeof from 'babel-runtime/helpers/typeof';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport AsyncValidator from 'async-validator';\nimport warning from 'warning';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport eq from 'lodash/eq';\nimport omit from 'lodash/omit';\nimport createFieldsStore from './createFieldsStore';\nimport { cloneElement } from '../../_util/vnode';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getOptionProps, getEvents, slotHasProp, getComponentName, getListeners } from '../../_util/props-util';\nimport PropTypes from '../../_util/vue-types';\n\nimport { argumentContainer, identity, normalizeValidateRules, getValidateTriggers, getValueFromEvent, hasRules, getParams, isEmptyObject, flattenArray } from './utils';\n\nvar DEFAULT_TRIGGER = 'change';\n\nfunction createBaseForm() {\n var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var mixins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var validateMessages = option.validateMessages,\n onFieldsChange = option.onFieldsChange,\n onValuesChange = option.onValuesChange,\n _option$mapProps = option.mapProps,\n mapProps = _option$mapProps === undefined ? identity : _option$mapProps,\n mapPropsToFields = option.mapPropsToFields,\n fieldNameProp = option.fieldNameProp,\n fieldMetaProp = option.fieldMetaProp,\n fieldDataProp = option.fieldDataProp,\n _option$formPropName = option.formPropName,\n formPropName = _option$formPropName === undefined ? 'form' : _option$formPropName,\n formName = option.name,\n _option$props = option.props,\n props = _option$props === undefined ? {} : _option$props,\n templateContext = option.templateContext;\n\n return function decorate(WrappedComponent) {\n var formProps = {};\n if (Array.isArray(props)) {\n props.forEach(function (prop) {\n formProps[prop] = PropTypes.any;\n });\n } else {\n formProps = props;\n }\n var Form = {\n mixins: [BaseMixin].concat(_toConsumableArray(mixins)),\n props: _extends({}, formProps, {\n wrappedComponentRef: PropTypes.func.def(function () {})\n }),\n data: function data() {\n var _this = this;\n\n var fields = mapPropsToFields && mapPropsToFields(this.$props);\n this.fieldsStore = createFieldsStore(fields || {});\n this.templateContext = templateContext;\n this.instances = {};\n this.cachedBind = {};\n this.clearedFieldMetaCache = {};\n this.formItems = {};\n this.renderFields = {};\n this.domFields = {};\n\n // HACK: https://github.com/ant-design/ant-design/issues/6406\n ['getFieldsValue', 'getFieldValue', 'setFieldsInitialValue', 'getFieldsError', 'getFieldError', 'isFieldValidating', 'isFieldsValidating', 'isFieldsTouched', 'isFieldTouched'].forEach(function (key) {\n _this[key] = function () {\n var _fieldsStore;\n\n return (_fieldsStore = _this.fieldsStore)[key].apply(_fieldsStore, arguments);\n };\n });\n\n return {\n submitting: false\n };\n },\n\n watch: templateContext ? {} : {\n $props: {\n handler: function handler(nextProps) {\n if (mapPropsToFields) {\n this.fieldsStore.updateFields(mapPropsToFields(nextProps));\n }\n },\n\n deep: true\n }\n },\n mounted: function mounted() {\n this.cleanUpUselessFields();\n },\n updated: function updated() {\n // form updated add for template v-decorator\n this.cleanUpUselessFields();\n },\n\n methods: {\n updateFields: function updateFields() {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.fieldsStore.updateFields(mapPropsToFields(fields));\n if (templateContext) {\n templateContext.$forceUpdate();\n }\n },\n onCollectCommon: function onCollectCommon(name, action, args) {\n var fieldMeta = this.fieldsStore.getFieldMeta(name);\n if (fieldMeta[action]) {\n fieldMeta[action].apply(fieldMeta, _toConsumableArray(args));\n } else if (fieldMeta.originalProps && fieldMeta.originalProps[action]) {\n var _fieldMeta$originalPr;\n\n (_fieldMeta$originalPr = fieldMeta.originalProps)[action].apply(_fieldMeta$originalPr, _toConsumableArray(args));\n }\n var value = fieldMeta.getValueFromEvent ? fieldMeta.getValueFromEvent.apply(fieldMeta, _toConsumableArray(args)) : getValueFromEvent.apply(undefined, _toConsumableArray(args));\n if (onValuesChange && value !== this.fieldsStore.getFieldValue(name)) {\n var valuesAll = this.fieldsStore.getAllValues();\n var valuesAllSet = {};\n valuesAll[name] = value;\n Object.keys(valuesAll).forEach(function (key) {\n return set(valuesAllSet, key, valuesAll[key]);\n });\n onValuesChange(_extends(_defineProperty({}, formPropName, this.getForm()), this.$props), set({}, name, value), valuesAllSet);\n }\n var field = this.fieldsStore.getField(name);\n return { name: name, field: _extends({}, field, { value: value, touched: true }), fieldMeta: fieldMeta };\n },\n onCollect: function onCollect(name_, action) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var _onCollectCommon = this.onCollectCommon(name_, action, args),\n name = _onCollectCommon.name,\n field = _onCollectCommon.field,\n fieldMeta = _onCollectCommon.fieldMeta;\n\n var validate = fieldMeta.validate;\n\n this.fieldsStore.setFieldsAsDirty();\n var newField = _extends({}, field, {\n dirty: hasRules(validate)\n });\n this.setFields(_defineProperty({}, name, newField));\n },\n onCollectValidate: function onCollectValidate(name_, action) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n var _onCollectCommon2 = this.onCollectCommon(name_, action, args),\n field = _onCollectCommon2.field,\n fieldMeta = _onCollectCommon2.fieldMeta;\n\n var newField = _extends({}, field, {\n dirty: true\n });\n this.fieldsStore.setFieldsAsDirty();\n this.validateFieldsInternal([newField], {\n action: action,\n options: {\n firstFields: !!fieldMeta.validateFirst\n }\n });\n },\n getCacheBind: function getCacheBind(name, action, fn) {\n if (!this.cachedBind[name]) {\n this.cachedBind[name] = {};\n }\n var cache = this.cachedBind[name];\n if (!cache[action] || cache[action].oriFn !== fn) {\n cache[action] = {\n fn: fn.bind(this, name, action),\n oriFn: fn\n };\n }\n return cache[action].fn;\n },\n getFieldDecorator: function getFieldDecorator(name, fieldOption, formItem) {\n var _this2 = this;\n\n var _getFieldProps = this.getFieldProps(name, fieldOption),\n props = _getFieldProps.props,\n restProps = _objectWithoutProperties(_getFieldProps, ['props']);\n\n this.formItems[name] = formItem;\n return function (fieldElem) {\n // We should put field in record if it is rendered\n _this2.renderFields[name] = true;\n\n var fieldMeta = _this2.fieldsStore.getFieldMeta(name);\n var originalProps = getOptionProps(fieldElem);\n var originalEvents = getEvents(fieldElem);\n if (process.env.NODE_ENV !== 'production') {\n var valuePropName = fieldMeta.valuePropName;\n warning(!slotHasProp(fieldElem, valuePropName), '`getFieldDecorator` will override `' + valuePropName + '`, ' + ('so please don\\'t set `' + valuePropName + ' and v-model` directly ') + 'and use `setFieldsValue` to set it.');\n warning(!(!slotHasProp(fieldElem, valuePropName) && valuePropName in originalProps && !(fieldOption && 'initialValue' in fieldOption)), getComponentName(fieldElem.componentOptions) + ' `default value` can not collect, ' + ' please use `option.initialValue` to set default value.');\n var defaultValuePropName = 'default' + valuePropName[0].toUpperCase() + valuePropName.slice(1);\n warning(!slotHasProp(fieldElem, defaultValuePropName), '`' + defaultValuePropName + '` is invalid ' + ('for `getFieldDecorator` will set `' + valuePropName + '`,') + ' please use `option.initialValue` instead.');\n }\n fieldMeta.originalProps = originalProps;\n // fieldMeta.ref = fieldElem.data && fieldElem.data.ref\n var newProps = _extends({\n props: _extends({}, props, _this2.fieldsStore.getFieldValuePropValue(fieldMeta))\n }, restProps);\n newProps.domProps.value = newProps.props.value;\n var newEvents = {};\n Object.keys(newProps.on).forEach(function (key) {\n if (originalEvents[key]) {\n var triggerEvents = newProps.on[key];\n newEvents[key] = function () {\n originalEvents[key].apply(originalEvents, arguments);\n triggerEvents.apply(undefined, arguments);\n };\n } else {\n newEvents[key] = newProps.on[key];\n }\n });\n return cloneElement(fieldElem, _extends({}, newProps, { on: newEvents }));\n };\n },\n getFieldProps: function getFieldProps(name) {\n var _this3 = this;\n\n var usersFieldOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!name) {\n throw new Error('Must call `getFieldProps` with valid name string!');\n }\n if (process.env.NODE_ENV !== 'production') {\n warning(this.fieldsStore.isValidNestedFieldName(name), 'One field name cannot be part of another, e.g. `a` and `a.b`. Check field: ' + name);\n warning(!('exclusive' in usersFieldOption), '`option.exclusive` of `getFieldProps`|`getFieldDecorator` had been remove.');\n }\n\n delete this.clearedFieldMetaCache[name];\n\n var fieldOption = _extends({\n name: name,\n trigger: DEFAULT_TRIGGER,\n valuePropName: 'value',\n validate: []\n }, usersFieldOption);\n\n var rules = fieldOption.rules,\n trigger = fieldOption.trigger,\n _fieldOption$validate = fieldOption.validateTrigger,\n validateTrigger = _fieldOption$validate === undefined ? trigger : _fieldOption$validate,\n validate = fieldOption.validate;\n\n\n var fieldMeta = this.fieldsStore.getFieldMeta(name);\n if ('initialValue' in fieldOption) {\n fieldMeta.initialValue = fieldOption.initialValue;\n }\n\n var inputProps = _extends({}, this.fieldsStore.getFieldValuePropValue(fieldOption));\n var inputListeners = {};\n var inputAttrs = {};\n if (fieldNameProp) {\n inputProps[fieldNameProp] = formName ? formName + '_' + name : name;\n }\n\n var validateRules = normalizeValidateRules(validate, rules, validateTrigger);\n var validateTriggers = getValidateTriggers(validateRules);\n validateTriggers.forEach(function (action) {\n if (inputListeners[action]) return;\n inputListeners[action] = _this3.getCacheBind(name, action, _this3.onCollectValidate);\n });\n\n // make sure that the value will be collect\n if (trigger && validateTriggers.indexOf(trigger) === -1) {\n inputListeners[trigger] = this.getCacheBind(name, trigger, this.onCollect);\n }\n\n var meta = _extends({}, fieldMeta, fieldOption, {\n validate: validateRules\n });\n this.fieldsStore.setFieldMeta(name, meta);\n if (fieldMetaProp) {\n inputAttrs[fieldMetaProp] = meta;\n }\n\n if (fieldDataProp) {\n inputAttrs[fieldDataProp] = this.fieldsStore.getField(name);\n }\n // This field is rendered, record it\n this.renderFields[name] = true;\n return {\n props: omit(inputProps, ['id']),\n // id: inputProps.id,\n domProps: {\n value: inputProps.value\n },\n attrs: _extends({}, inputAttrs, {\n id: inputProps.id\n }),\n directives: [{\n name: 'ant-ref',\n value: this.getCacheBind(name, name + '__ref', this.saveRef)\n }],\n on: inputListeners\n };\n },\n getFieldInstance: function getFieldInstance(name) {\n return this.instances[name];\n },\n getRules: function getRules(fieldMeta, action) {\n var actionRules = fieldMeta.validate.filter(function (item) {\n return !action || item.trigger.indexOf(action) >= 0;\n }).map(function (item) {\n return item.rules;\n });\n return flattenArray(actionRules);\n },\n setFields: function setFields(maybeNestedFields, callback) {\n var _this4 = this;\n\n var fields = this.fieldsStore.flattenRegisteredFields(maybeNestedFields);\n this.fieldsStore.setFields(fields);\n var changedFields = Object.keys(fields).reduce(function (acc, name) {\n return set(acc, name, _this4.fieldsStore.getField(name));\n }, {});\n if (onFieldsChange) {\n var _changedFields = Object.keys(fields).reduce(function (acc, name) {\n return set(acc, name, _this4.fieldsStore.getField(name));\n }, {});\n onFieldsChange(this, _changedFields, this.fieldsStore.getNestedAllFields());\n }\n var formContext = templateContext || this;\n var allUpdate = false;\n Object.keys(changedFields).forEach(function (key) {\n var formItem = _this4.formItems[key];\n formItem = typeof formItem === 'function' ? formItem() : formItem;\n if (formItem && formItem.itemSelfUpdate) {\n formItem.$forceUpdate();\n } else {\n allUpdate = true;\n }\n });\n if (allUpdate) {\n formContext.$forceUpdate();\n }\n this.$nextTick(function () {\n callback && callback();\n });\n },\n setFieldsValue: function setFieldsValue(changedValues, callback) {\n var fieldsMeta = this.fieldsStore.fieldsMeta;\n\n var values = this.fieldsStore.flattenRegisteredFields(changedValues);\n var newFields = Object.keys(values).reduce(function (acc, name) {\n var isRegistered = fieldsMeta[name];\n if (process.env.NODE_ENV !== 'production') {\n warning(isRegistered, 'Cannot use `setFieldsValue` until ' + 'you use `getFieldDecorator` or `getFieldProps` to register it.');\n }\n if (isRegistered) {\n var value = values[name];\n acc[name] = {\n value: value\n };\n }\n return acc;\n }, {});\n this.setFields(newFields, callback);\n if (onValuesChange) {\n var allValues = this.fieldsStore.getAllValues();\n onValuesChange(_extends(_defineProperty({}, formPropName, this.getForm()), this.$props), changedValues, allValues);\n }\n },\n saveRef: function saveRef(name, _, component) {\n if (!component) {\n var fieldMeta = this.fieldsStore.getFieldMeta(name);\n if (!fieldMeta.preserve) {\n // after destroy, delete data\n this.clearedFieldMetaCache[name] = {\n field: this.fieldsStore.getField(name),\n meta: fieldMeta\n };\n this.clearField(name);\n }\n delete this.domFields[name];\n return;\n }\n this.domFields[name] = true;\n this.recoverClearedField(name);\n // const fieldMeta = this.fieldsStore.getFieldMeta(name)\n // if (fieldMeta) {\n // const ref = fieldMeta.ref\n // if (ref) {\n // if (typeof ref === 'string') {\n // throw new Error(`can not set ref string for ${name}`)\n // }\n // ref(component)\n // }\n // }\n this.instances[name] = component;\n },\n cleanUpUselessFields: function cleanUpUselessFields() {\n var _this5 = this;\n\n var fieldList = this.fieldsStore.getAllFieldsName();\n var removedList = fieldList.filter(function (field) {\n var fieldMeta = _this5.fieldsStore.getFieldMeta(field);\n return !_this5.renderFields[field] && !_this5.domFields[field] && !fieldMeta.preserve;\n });\n if (removedList.length) {\n removedList.forEach(this.clearField);\n }\n this.renderFields = {};\n },\n clearField: function clearField(name) {\n this.fieldsStore.clearField(name);\n delete this.instances[name];\n delete this.cachedBind[name];\n },\n resetFields: function resetFields(ns) {\n var _this6 = this;\n\n var newFields = this.fieldsStore.resetFields(ns);\n if (Object.keys(newFields).length > 0) {\n this.setFields(newFields);\n }\n if (ns) {\n var names = Array.isArray(ns) ? ns : [ns];\n names.forEach(function (name) {\n return delete _this6.clearedFieldMetaCache[name];\n });\n } else {\n this.clearedFieldMetaCache = {};\n }\n },\n recoverClearedField: function recoverClearedField(name) {\n if (this.clearedFieldMetaCache[name]) {\n this.fieldsStore.setFields(_defineProperty({}, name, this.clearedFieldMetaCache[name].field));\n this.fieldsStore.setFieldMeta(name, this.clearedFieldMetaCache[name].meta);\n delete this.clearedFieldMetaCache[name];\n }\n },\n validateFieldsInternal: function validateFieldsInternal(fields, _ref, callback) {\n var _this7 = this;\n\n var fieldNames = _ref.fieldNames,\n action = _ref.action,\n _ref$options = _ref.options,\n options = _ref$options === undefined ? {} : _ref$options;\n\n var allRules = {};\n var allValues = {};\n var allFields = {};\n var alreadyErrors = {};\n fields.forEach(function (field) {\n var name = field.name;\n if (options.force !== true && field.dirty === false) {\n if (field.errors) {\n set(alreadyErrors, name, { errors: field.errors });\n }\n return;\n }\n var fieldMeta = _this7.fieldsStore.getFieldMeta(name);\n var newField = _extends({}, field);\n newField.errors = undefined;\n newField.validating = true;\n newField.dirty = true;\n allRules[name] = _this7.getRules(fieldMeta, action);\n allValues[name] = newField.value;\n allFields[name] = newField;\n });\n this.setFields(allFields);\n // in case normalize\n Object.keys(allValues).forEach(function (f) {\n allValues[f] = _this7.fieldsStore.getFieldValue(f);\n });\n if (callback && isEmptyObject(allFields)) {\n callback(isEmptyObject(alreadyErrors) ? null : alreadyErrors, this.fieldsStore.getFieldsValue(fieldNames));\n return;\n }\n var validator = new AsyncValidator(allRules);\n if (validateMessages) {\n validator.messages(validateMessages);\n }\n validator.validate(allValues, options, function (errors) {\n var errorsGroup = _extends({}, alreadyErrors);\n if (errors && errors.length) {\n errors.forEach(function (e) {\n var errorFieldName = e.field;\n var fieldName = errorFieldName;\n\n // Handle using array validation rule.\n // ref: https://github.com/ant-design/ant-design/issues/14275\n Object.keys(allRules).some(function (ruleFieldName) {\n var rules = allRules[ruleFieldName] || [];\n\n // Exist if match rule\n if (ruleFieldName === errorFieldName) {\n fieldName = ruleFieldName;\n return true;\n }\n\n // Skip if not match array type\n if (rules.every(function (_ref2) {\n var type = _ref2.type;\n return type !== 'array';\n }) && errorFieldName.indexOf(ruleFieldName) !== 0) {\n return false;\n }\n\n // Exist if match the field name\n var restPath = errorFieldName.slice(ruleFieldName.length + 1);\n if (/^\\d+$/.test(restPath)) {\n fieldName = ruleFieldName;\n return true;\n }\n\n return false;\n });\n\n var field = get(errorsGroup, fieldName);\n if ((typeof field === 'undefined' ? 'undefined' : _typeof(field)) !== 'object' || Array.isArray(field)) {\n set(errorsGroup, fieldName, { errors: [] });\n }\n var fieldErrors = get(errorsGroup, fieldName.concat('.errors'));\n fieldErrors.push(e);\n });\n }\n var expired = [];\n var nowAllFields = {};\n Object.keys(allRules).forEach(function (name) {\n var fieldErrors = get(errorsGroup, name);\n var nowField = _this7.fieldsStore.getField(name);\n // avoid concurrency problems\n if (!eq(nowField.value, allValues[name])) {\n expired.push({\n name: name\n });\n } else {\n nowField.errors = fieldErrors && fieldErrors.errors;\n nowField.value = allValues[name];\n nowField.validating = false;\n nowField.dirty = false;\n nowAllFields[name] = nowField;\n }\n });\n _this7.setFields(nowAllFields);\n if (callback) {\n if (expired.length) {\n expired.forEach(function (_ref3) {\n var name = _ref3.name;\n\n var fieldErrors = [{\n message: name + ' need to revalidate',\n field: name\n }];\n set(errorsGroup, name, {\n expired: true,\n errors: fieldErrors\n });\n });\n }\n\n callback(isEmptyObject(errorsGroup) ? null : errorsGroup, _this7.fieldsStore.getFieldsValue(fieldNames));\n }\n });\n },\n validateFields: function validateFields(ns, opt, cb) {\n var _this8 = this;\n\n var pending = new Promise(function (resolve, reject) {\n var _getParams = getParams(ns, opt, cb),\n names = _getParams.names,\n options = _getParams.options;\n\n var _getParams2 = getParams(ns, opt, cb),\n callback = _getParams2.callback;\n\n if (!callback || typeof callback === 'function') {\n var oldCb = callback;\n callback = function callback(errors, values) {\n if (oldCb) {\n oldCb(errors, values);\n } else if (errors) {\n reject({ errors: errors, values: values });\n } else {\n resolve(values);\n }\n };\n }\n var fieldNames = names ? _this8.fieldsStore.getValidFieldsFullName(names) : _this8.fieldsStore.getValidFieldsName();\n var fields = fieldNames.filter(function (name) {\n var fieldMeta = _this8.fieldsStore.getFieldMeta(name);\n return hasRules(fieldMeta.validate);\n }).map(function (name) {\n var field = _this8.fieldsStore.getField(name);\n field.value = _this8.fieldsStore.getFieldValue(name);\n return field;\n });\n if (!fields.length) {\n callback(null, _this8.fieldsStore.getFieldsValue(fieldNames));\n return;\n }\n if (!('firstFields' in options)) {\n options.firstFields = fieldNames.filter(function (name) {\n var fieldMeta = _this8.fieldsStore.getFieldMeta(name);\n return !!fieldMeta.validateFirst;\n });\n }\n _this8.validateFieldsInternal(fields, {\n fieldNames: fieldNames,\n options: options\n }, callback);\n });\n pending['catch'](function (e) {\n if (console.error && process.env.NODE_ENV !== 'production') {\n console.error(e);\n }\n return e;\n });\n return pending;\n },\n isSubmitting: function isSubmitting() {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n warning(false, '`isSubmitting` is deprecated. ' + \"Actually, it's more convenient to handle submitting status by yourself.\");\n }\n return this.submitting;\n },\n submit: function submit(callback) {\n var _this9 = this;\n\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n warning(false, '`submit` is deprecated. ' + \"Actually, it's more convenient to handle submitting status by yourself.\");\n }\n var fn = function fn() {\n _this9.setState({\n submitting: false\n });\n };\n this.setState({\n submitting: true\n });\n callback(fn);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var $slots = this.$slots,\n $scopedSlots = this.$scopedSlots;\n\n var formProps = _defineProperty({}, formPropName, this.getForm());\n\n var _getOptionProps = getOptionProps(this),\n wrappedComponentRef = _getOptionProps.wrappedComponentRef,\n restProps = _objectWithoutProperties(_getOptionProps, ['wrappedComponentRef']);\n\n var wrappedComponentProps = {\n props: mapProps.call(this, _extends({}, formProps, restProps)),\n on: getListeners(this),\n ref: 'WrappedComponent',\n directives: [{\n name: 'ant-ref',\n value: wrappedComponentRef\n }]\n };\n if (Object.keys($scopedSlots).length) {\n wrappedComponentProps.scopedSlots = $scopedSlots;\n }\n var slotsKey = Object.keys($slots);\n return WrappedComponent ? h(\n WrappedComponent,\n wrappedComponentProps,\n [slotsKey.length ? slotsKey.map(function (name) {\n return h(\n 'template',\n { slot: name },\n [$slots[name]]\n );\n }) : null]\n ) : null;\n }\n };\n if (!WrappedComponent) return Form;\n if (Array.isArray(WrappedComponent.props)) {\n var newProps = {};\n WrappedComponent.props.forEach(function (prop) {\n newProps[prop] = PropTypes.any;\n });\n newProps[formPropName] = Object;\n WrappedComponent.props = newProps;\n } else {\n WrappedComponent.props = WrappedComponent.props || {};\n if (!(formPropName in WrappedComponent.props)) {\n WrappedComponent.props[formPropName] = Object;\n }\n }\n return argumentContainer(Form, WrappedComponent);\n };\n}\n\nexport default createBaseForm;","import createBaseForm from './createBaseForm';\n\nexport var mixin = {\n methods: {\n getForm: function getForm() {\n return {\n getFieldsValue: this.fieldsStore.getFieldsValue,\n getFieldValue: this.fieldsStore.getFieldValue,\n getFieldInstance: this.getFieldInstance,\n setFieldsValue: this.setFieldsValue,\n setFields: this.setFields,\n setFieldsInitialValue: this.fieldsStore.setFieldsInitialValue,\n getFieldDecorator: this.getFieldDecorator,\n getFieldProps: this.getFieldProps,\n getFieldsError: this.fieldsStore.getFieldsError,\n getFieldError: this.fieldsStore.getFieldError,\n isFieldValidating: this.fieldsStore.isFieldValidating,\n isFieldsValidating: this.fieldsStore.isFieldsValidating,\n isFieldsTouched: this.fieldsStore.isFieldsTouched,\n isFieldTouched: this.fieldsStore.isFieldTouched,\n isSubmitting: this.isSubmitting,\n submit: this.submit,\n validateFields: this.validateFields,\n resetFields: this.resetFields\n };\n }\n }\n};\n\nfunction createForm(options) {\n return createBaseForm(options, [mixin]);\n}\n\nexport default createForm;","import _extends from 'babel-runtime/helpers/extends';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport has from 'lodash/has';\nimport createBaseForm from './createBaseForm';\nimport { mixin as formMixin } from './createForm';\nimport { getParams } from './utils';\n\nfunction computedStyle(el, prop) {\n var getComputedStyle = window.getComputedStyle;\n var style =\n // If we have getComputedStyle\n getComputedStyle ? // Query it\n // TODO: From CSS-Query notes, we might need (node, null) for FF\n getComputedStyle(el) : // Otherwise, we are in IE and use currentStyle\n el.currentStyle;\n if (style) {\n return style[\n // Switch to camelCase for CSSOM\n // DEV: Grabbed from jQuery\n // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194\n // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597\n prop.replace(/-(\\w)/gi, function (word, letter) {\n return letter.toUpperCase();\n })];\n }\n return undefined;\n}\n\nfunction getScrollableContainer(n) {\n var node = n;\n var nodeName = void 0;\n /* eslint no-cond-assign:0 */\n while ((nodeName = node.nodeName.toLowerCase()) !== 'body') {\n var overflowY = computedStyle(node, 'overflowY');\n // https://stackoverflow.com/a/36900407/3040605\n if (node !== n && (overflowY === 'auto' || overflowY === 'scroll') && node.scrollHeight > node.clientHeight) {\n return node;\n }\n node = node.parentNode;\n }\n return nodeName === 'body' ? node.ownerDocument : node;\n}\n\nvar mixin = {\n methods: {\n getForm: function getForm() {\n return _extends({}, formMixin.methods.getForm.call(this), {\n validateFieldsAndScroll: this.validateFieldsAndScroll\n });\n },\n validateFieldsAndScroll: function validateFieldsAndScroll(ns, opt, cb) {\n var _this = this;\n\n var _getParams = getParams(ns, opt, cb),\n names = _getParams.names,\n callback = _getParams.callback,\n options = _getParams.options;\n\n var newCb = function newCb(error, values) {\n if (error) {\n var validNames = _this.fieldsStore.getValidFieldsName();\n var firstNode = void 0;\n var firstTop = void 0;\n validNames.forEach(function (name) {\n if (has(error, name)) {\n var instance = _this.getFieldInstance(name);\n if (instance) {\n var node = instance.$el || instance.elm;\n var top = node.getBoundingClientRect().top;\n if (node.type !== 'hidden' && (firstTop === undefined || firstTop > top)) {\n firstTop = top;\n firstNode = node;\n }\n }\n }\n });\n\n if (firstNode) {\n var c = options.container || getScrollableContainer(firstNode);\n scrollIntoView(firstNode, c, _extends({\n onlyScrollIfNeeded: true\n }, options.scroll));\n }\n }\n\n if (typeof callback === 'function') {\n callback(error, values);\n }\n };\n\n return this.validateFields(names, options, newCb);\n }\n }\n};\n\nfunction createDOMForm(option) {\n return createBaseForm(_extends({}, option), [mixin]);\n}\n\nexport default createDOMForm;","import _extends from \"babel-runtime/helpers/extends\";\nimport _classCallCheck from \"babel-runtime/helpers/classCallCheck\";\n\nvar Field = function Field(fields) {\n _classCallCheck(this, Field);\n\n _extends(this, fields);\n};\n\nexport function isFormField(obj) {\n return obj instanceof Field;\n}\n\nexport default function createFormField(field) {\n if (isFormField(field)) {\n return field;\n }\n return new Field(field);\n}"],"names":["buffer","fn","ms","timer","clear","clearTimeout","bufferFn","setTimeout","isSamePoint","prev","next","pageX","pageY","clientX","clientY","isWindow","obj","window","isSimilarValue","val1","val2","int1","Math","floor","int2","abs","restoreFocus","activeElement","container","document","contains","focus","getElement","func","getPoint","point","props","childrenProps","object","align","isRequired","target","oneOfType","def","monitorBufferTime","number","monitorWindowResize","bool","disabled","data","this","aligned","mounted","_this","$nextTick","prevProps","$props","forceAlign","startMonitorWindowResize","updated","_this2","reAlign","source","$el","sourceRect","getBoundingClientRect","lastElement","currentElement","lastPoint","currentPoint","preRect","width","height","stopMonitorWindowResize","beforeDestroy","methods","resizeHandler","bufferMonitor","addEventListener","remove","_$props","listeners","result","element","render","child","getMomentObjectIfValid","date","isValid","Calendar","name","locale","format","string","arrayOf","visible","prefixCls","defaultValue","value","selectedValue","defaultSelectedValue","mode","oneOf","showDateInput","showWeekNumber","showToday","showOk","timePicker","any","dateInputPlaceholder","disabledDate","disabledTime","dateRender","renderFooter","renderSidebar","clearIcon","focusablePanel","inputMode","inputReadOnly","mixins","BaseMixin","CommonMixin","CalendarMixin","sMode","sValue","sSelectedValue","watch","val","setState","saveFocusElement","DateInput","getInstance","onPanelChange","__emit","onKeyDown","event","nodeName","toLowerCase","keyCode","ctrlKey","metaKey","KeyCode","DOWN","goTime","preventDefault","UP","LEFT","RIGHT","HOME","setValue","END","PAGE_DOWN","PAGE_UP","ENTER","onSelect","onClear","onOk","isAllowedDate","onDateInputChange","onDateInputSelect","onDateTableSelect","timePickerProps","timePickerDefaultValue","onToday","now","onBlur","dateInput","rootInstance","$emit","getRootDOMNode","openTimePicker","closeTimePicker","direction","unit","h","arguments","monthCellRender","monthCellContentRender","showTimePicker","disabledTimeConfig","timePickerEle","timePickerOriginProps","showHour","showSecond","showMinute","on","change","undefined","defaultOpenValue","dateInputElement","attrs","getFormat","placeholder","showClear","key","children","push","tabIndex","CalendarHeader","disabledMonth","DateTable","CalendarFooter","timePickerDisabled","okDisabled","renderRoot","use","yearSelectOffset","yearSelectTotal","Select","type","showTypeSwitch","headerComponents","array","onYearChange","year","newValue","clone","parseInt","onMonthChange","month","yearSelectElement","$createElement","start","end","options","index","Option","dropdownStyle","zIndex","dropdownMenuStyle","maxHeight","overflow","fontSize","optionLabelProp","String","showSearch","monthSelectElement","t","overflowX","changeTypeToDate","changeTypeToMonth","yearSelect","monthSelect","switchCls","typeSwitcher","FullCalendar","defaultType","fullscreen","dateCellRender","headerComponent","headerRender","showHeader","sType","onMonthSelect","setType","header","TheHeader","headerProps","typeChange","valueChange","table","contentRender","dateCellContentRender","MonthTable","cellRender","className","join","MonthCalendar","stateValue","add","handlePanelChange","_","$scopedSlots","autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","bottomLeft","points","offset","bottomRight","topRight","topLeft","TimeType","validator","Array","isArray","length","findIndex","Picker","animation","transitionName","getCalendarContainer","calendar","open","defaultOpen","placement","dropdownClassName","sOpen","preSOpen","focusTimeout","focusCalendar","onCalendarKeyDown","ESC","stopPropagation","closeCalendar","onCalendarSelect","cause","calendarProps","openCalendar","onCalendarOk","onCalendarClear","onCalendarBlur","setOpen","onVisibleChange","getCalendarElement","calendarEvents","extraProps","ref","keydown","ok","createChainedFunction","select","blur","callback","calendarInstance","componentInstance","style","childrenState","popupAlign","builtinPlacements","popupPlacement","action","destroyPopupOnHide","getPopupContainer","popupStyle","popupAnimation","popupTransitionName","popupVisible","popupClassName","slot","noop","CalendarPart","hoverValue","timePickerDisabledTime","enableNext","enablePrev","_getListeners","_getListeners$inputCh","inputChange","_getListeners$inputSe","inputSelect","_getListeners$valueCh","_getListeners$panelCh","panelChange","_getListeners$select","_getListeners$dayHove","dayHover","shouldShowTimePicker","rangeClassName","newProps","tableProps","outline","isEmptyArray","arr","every","i","isArraysEqual","a","b","getValueFromSelectedValue","_selectedValue","subtract","normalizeAnchor","init","normalizedValue","generateOptions","extraOptionGen","concat","indexOf","onInputSelect","originalValue","compare","sShowTimePicker","fireSelectValueChange","RangeCalendar","seperator","prevSelectedValue","firstSelectedValue","sHoverValue","sPanelTriggerSource","newState","onDatePanelEnter","hasSelectedValue","fireHoverValueChange","onDatePanelLeave","nextSelectedValue","endValue","startValue","_$data","$data","updateHoverPoint","currentHoverTime","nextHoverTime","nextHoverValue","onDayHover","isSame","miss","some","ht","slice","sort","t1","t2","valueOf","fireValueChange","oriValueIndex","time","_newValue","lastValue","onOpenTimePicker","onCloseTimePicker","isAllowedDateAndTime","onStartInputChange","_len","oargs","_key","args","apply","onEndInputChange","_len2","_key2","onStartInputSelect","onEndInputSelect","onStartValueChange","leftValue","onEndValueChange","rightValue","onStartPanelChange","newMode","onEndPanelChange","getStartValue","_$data2","panelTriggerSource","getEndValue","_$data3","getEndDisableTime","userSettingDisabledTime","hours","hour","minutes","minute","second","_disabledHours","disabledHours","_disabledMinutes","disabledMinutes","_disabledSeconds","disabledSeconds","oldDisabledMinutes","olddisabledSeconds","disabledStartTime","disabledEndTime","isMonthYearPanelShow","v1","v2","diff","direct","disabledStartMonth","isAfter","disabledEndMonth","isBefore","_className","_cls","baseProps","placeholder1","placeholder2","_dateInputPlaceholder","showOkButton","cls","todayTime","thisMonth","thisYear","isTodayInView","nextMonthOfStart","isClosestMonths","leftPartProps","rightPartProps","TodayButtonNode","todayButtonProps","text","backToToday","today","TodayButton","TimePickerButtonNode","timePickerButtonProps","TimePickerButton","OkButtonNode","okButtonProps","OkButton","extraFooter","role","title","footerEl","btnProps","nowEl","okBtn","timePickerBtn","footerBtn","goYear","changeYear","MonthPanel","rootPrefixCls","nextYear","bind","previousYear","setAndSelectValue","footer","yearPanelShow","ROW","COL","chooseYear","nextDecade","previousDecade","years","currentYear","startYear","rowIndex","colIndex","content","decadePanelShow","endYear","yeasEls","map","row","tds","yearData","_classNameMap","testValue","classNameMap","clickHandler","decadeSelect","cellSpacing","chooseDecade","nextCentury","previousCentury","preYear","decades","startDecade","endDecade","decadesEls","decadeIndex","decadeData","dStartDecade","dEndDecade","isLast","isNext","goMonth","showIf","condition","el","nextMonth","previousMonth","yearPanelReferer","onYearSelect","referer","onDecadeSelect","monthYearElement","localeData","monthBeforeYear","selectClassName","timeClassName","showYearPanel","yearFormat","showMonthPanel","monthFormat","monthsShort","day","dayFormat","my","showDecadePanel","panel","YearPanel","DecadePanel","position","functional","createElement","context","_context$listeners","_listeners$ok","_listeners$closeTimeP","_listeners$openTimePi","onClick","dateSelect","timeSelect","_listeners$today","localeNow","disabledToday","isDisabled","disabledTodayClass","cachedSelectionStart","cachedSelectionEnd","dateInputInstance","str","invalid","hasFocus","setSelectionRange","getDerivedStateFromProps","nextProps","state","selectionStart","selectionEnd","onInputChange","e","_e$target","composing","_str","oldStr","isComposing","parsed","onFocus","prevState","_$props2","validateDate","saveDateInput","invalidClass","directives","domProps","readOnly","DATE_ROW_COUNT","DATE_COL_COUNT","veryShortWeekdays","weekDays","firstDayOfWeek","showWeekNumberEl","dateColIndex","DateConstants","weekdaysMin","weekdaysShort","weekDaysEls","xindex","isSameDay","one","two","beforeCurrentMonthYear","current","afterCurrentMonthYear","getIdFromDate","DateTBody","iIndex","jIndex","dateTable","cellClass","weekNumberCellClass","dateClass","todayClass","selectedClass","selectedDateClass","selectedStartDateClass","selectedEndDateClass","inRangeClass","lastMonthDayClass","nextMonthDayClass","disabledClass","firstDisableClass","lastDisableClass","lastDayOfMonthClass","month1","lastMonthDiffDay","lastMonth1","passed","tableHtml","_cx","isCurrentWeek","weekNumberCell","isActiveWeek","dateCells","week","last","selected","isBeforeCurrentMonthYear","isAfterCurrentMonthYear","rangeValue","endOf","dateHtml","bodyProps","DateTHead","weekSelect","dateFormat","dateTimeFormat","getNowByCurrentStateValue","ret","isMoment","MomentType","custom","setSelectedValue","focusElement","$refs","chooseMonth","months","currentMonth","monthsEls","monthData","cellEl","currentValue","_currentValue","defaultDisabledTime","getTodayTime","utcOffset","getTitleString","getTodayTimeStr","getMonthName","syncTime","from","to","millisecond","getTimeConfig","isTimeValidByConfig","invalidTime","seconds","isTimeValid","formatDate","Error","goStartMonth","startOf","goEndMonth","includesTime","timeList","activeValue","expandTrigger","dropdownMenuColumnStyle","defaultFieldNames","fieldNames","expandIcon","loadingIcon","menuItems","scrollActiveItemToView","getFieldName","getOption","option","menuIndex","_this3","onItemDoubleClick","expandProps","click","dblclick","mousedown","menuItemCls","expandIconNode","hasChildren","isLeaf","loading","mouseenter","delayOnSelect","mouseleave","isActiveOption","getMenuItemRef","loadingIconNode","getActiveOptions","values","_this4","o","level","childrenKeyName","getShowOptions","_this5","activeOption","filter","unshift","_this6","delayTimer","optionsLength","itemComponent","parentNode","scrollTop","offsetTop","_activeValue","_this7","BUILT_IN_PLACEMENTS","model","prop","loadData","changeOnSelect","label","initialValue","sPopupVisible","sActiveValue","oldValue","newValues","getPopupDOMNode","trigger","getPopupDomNode","getFieldNames","getCurrentLevelOptions","_options","_sActiveValue","setPopupVisible","handleChange","setProps","handlePopupVisibleChange","handleMenuSelect","targetOption","triggerNode","getRootDomNode","activeOptions","handleItemDoubleClick","handleKeyDown","$slots","currentLevel","currentOptions","currentIndex","SPACE","BACKSPACE","TAB","nextIndex","splice","_$props$options","restProps","menus","emptyMenuClassName","menusProps","itemDoubleClick","Menus","triggerProps","popupVisibleChange","inheritAttrs","id","defaultChecked","checked","autoFocus","sChecked","input","$forceUpdate","shiftKey","eventShiftKey","nativeEvent","_classNames","_getOptionProps","others","globalProps","Object","keys","reduce","substr","classString","isActive","destroyInactivePanel","forceRender","_isActive","_contentCls","contentCls","showArrow","headerClass","handleItemClick","panelKey","handleKeyPress","which","_headerCls","_itemCls","openAnimation","accordion","extra","transitionProps","appear","css","headerCls","itemCls","icon","PanelContent","animate","node","show","done","offsetHeight","active","enter","leave","_toArray","activeKey","currentActiveKey","defaultActiveKey","currentOpenAnimations","openAnimationFactory","stateActiveKey","onClickItem","setActiveKey","getNewChild","_getPropsData","panelEvents","itemClick","getItems","newChildren","forEach","_$props3","collapseClassName","Collapse","Panel","collapseProps","bordered","expandIconPosition","panelProps","ILazyRenderBoxPropTypes","hiddenClassName","IDialogPropTypes","keyboard","mask","afterClose","closable","maskClosable","destroyOnClose","mousePosition","shape","x","y","loose","maskTransitionName","maskAnimation","wrapStyle","bodyStyle","maskStyle","wrapClassName","maskProps","wrapProps","getContainer","dialogStyle","dialogClass","closeIcon","getOpenCount","focusTriggerAfterClose","uuid","getScroll","w","top","method","d","documentElement","body","setTransformOrigin","prefix","rect","pos","left","doc","ownerDocument","defaultView","parentWindow","cacheOverflow","destroyPopup","provide","dialogContext","updatedCallback","beforeMount","inTransition","titleId","wrap","display","switchScrollingEffect","timeoutId","getDialogWrap","openTime","Date","tryFocus","dialogNode","dialog","elOffset","lastOutSideFocusNode","sentinelStart","onAnimateLeave","onDialogMouseDown","dialogMouseDown","onMaskMouseUp","onMaskClick","currentTarget","close","onKeydown","sentinelEnd","getDialogElement","tempFooter","dest","closer","sentinelStyle","getTransitionName","dialogElement","LazyRenderBox","dialogTransitionProps","getTransitionProps","afterLeave","getZIndexStyle","getWrapStyle","getMaskStyle","getMaskElement","maskElement","maskTransition","getMaskTransitionName","maskTransitionProps","openCount","hasOwnProperty","overflowY","DialogWrap","dialogProps","$attrs","Dialog","childProps","IProps","firstEnter","levelMove","ease","duration","handler","showMask","afterVisibleChange","IDrawerProps","wrapperClassName","dataToArray","vars","transitionEndObject","transition","WebkitTransition","MozTransition","OTransition","transitionStr","html","getElementsByTagName","transitionEnd","eventType","attachEvent","removeEventListener","detachEvent","transformArguments","arg","cb","isNumeric","isNaN","parseFloat","isFinite","currentDrawer","Drawer","levelDom","contentDom","maskDom","handlerdom","mousePos","sFirstEnter","timeout","drawerId","Number","random","toString","replace","round","orignalOpen","preProps","passiveSupported","defineProperty","get","passive","getOpen","getDefault","isOpenChange","domFocus","_open","_x","getParentAndLevelDom","setLevelDomTransform","dom","onMaskTouchEnd","onTouchEnd","onIconTouchEnd","onWrapperTransitionEnd","contentWrapper","propertyName","match","_open2","getCurrentDrawerSome","parent","defaultGetContainer","getSelfContainer","querySelectorAll","HTMLElement","prototype","call","item","openTransition","placementName","trnasitionEnd","levelValue","$levelMove","$value","placementPos","transform","msTransform","eventArray","domArray","right","scrollHeight","innerHeight","clientHeight","innerWidth","offsetWidth","getScrollBarSize","widthTransition","trannsformTransition","removeMoveHandler","removeStartHandler","heightTransition","getChildToRender","_classnames","wrapperClassname","isHorizontal","contentValue","handlerChildren","handlerDefalut","handlerSlot","handlerSlotVnode","_getEvents","handleIconClick","c","domContProps","transitionend","directivesMaskDom","directivesContentWrapper","directivesContentDom","getTouchParentScroll","root","differX","differY","isY","max","isX","scrollY","scrollX","scrollWidth","clientWidth","l","scrollLeft","scrollTo","currentT","currentL","touches","startPos","changedTouches","appendChild","portal","$forceRender","Portal","topCenter","bottomCenter","minOverlayWidthMatchTrigger","overlayClassName","openClassName","overlayStyle","overlay","alignPoint","showAction","hideAction","defaultVisible","mouseEnterDelay","mouseLeaveDelay","sVisible","childOriginEvents","getMinOverlayWidthMatchTrigger","getOverlayElement","overlayElement","getMenuElement","extraOverlayProps","getMenuElementOrLambda","getOpenClassName","overlayNode","rootNode","minWidth","_component","alignInstance","renderChildren","otherProps","triggerHideAction","afterPopupVisibleChange","getDisplayName","WrappedComponent","argumentContainer","Container","identity","flattenArray","treeTraverse","path","tree","isLeafNode","errorMessage","subTree","subTreeKey","flattenFields","maybeNestedFields","fields","normalizeValidateRules","validate","rules","validateTrigger","validateRules","newItem","getValidateTriggers","pre","curr","getValueFromEvent","getErrorStrs","errors","message","getParams","ns","opt","names","isEmptyObject","hasRules","startsWith","lastIndexOf","partOf","internalFlattenFields","FieldsStore","_initialiseProps","fieldsMeta","validFieldsName","getAllFieldsName","nowFields","nowValues","f","getValueFromFields","fieldMeta","getFieldMeta","normalize","nowValue","getValidFieldsFullName","acc","field","meta","dirty","hidden","maybePartialName","maybePartialNames","getValidFieldsName","fullName","partialName","getValueProps","valuePropName","getField","fieldValue","fieldsName","createFormField","getNotCollectedFields","member","getter","fullNames","isArrayValue","suffixNameStartIndex","n","setFieldsInitialValue","initialValues","flattenedInitialValues","flattenRegisteredFields","setFieldMeta","getAllValues","getFieldsValue","getNestedFields","getFieldValue","getNestedField","getFieldsError","getFieldError","getFieldMember","isFieldValidating","isFieldsValidating","isFieldTouched","isFieldsTouched","createFieldsStore","DEFAULT_TRIGGER","validateMessages","onFieldsChange","onValuesChange","_option$mapProps","mapProps","mapPropsToFields","fieldNameProp","fieldMetaProp","fieldDataProp","_option$formPropName","formPropName","formName","_option$props","templateContext","formProps","Form","wrappedComponentRef","fieldsStore","instances","cachedBind","clearedFieldMetaCache","formItems","renderFields","domFields","_fieldsStore","submitting","updateFields","deep","cleanUpUselessFields","onCollectCommon","originalProps","_fieldMeta$originalPr","valuesAll","valuesAllSet","getForm","touched","onCollect","name_","_onCollectCommon","setFieldsAsDirty","newField","setFields","onCollectValidate","_onCollectCommon2","validateFieldsInternal","firstFields","validateFirst","getCacheBind","cache","oriFn","getFieldDecorator","fieldOption","formItem","_getFieldProps","getFieldProps","fieldElem","originalEvents","getFieldValuePropValue","newEvents","triggerEvents","usersFieldOption","_fieldOption$validate","inputProps","inputListeners","inputAttrs","validateTriggers","saveRef","getFieldInstance","getRules","actionRules","changedFields","_changedFields","getNestedAllFields","formContext","allUpdate","itemSelfUpdate","setFieldsValue","changedValues","newFields","isRegistered","allValues","component","preserve","clearField","recoverClearedField","fieldList","removedList","resetFields","_ref","_ref$options","allRules","allFields","alreadyErrors","force","validating","A","messages","errorsGroup","errorFieldName","fieldName","ruleFieldName","_ref2","restPath","test","fieldErrors","expired","nowAllFields","nowField","_ref3","validateFields","_this8","pending","Promise","resolve","reject","_getParams","_getParams2","oldCb","console","error","isSubmitting","submit","_this9","wrappedComponentProps","scopedSlots","slotsKey","mixin","computedStyle","getComputedStyle","currentStyle","word","letter","toUpperCase","getScrollableContainer","validateFieldsAndScroll","newCb","validNames","firstNode","firstTop","instance","elm","onlyScrollIfNeeded","scroll","createDOMForm","Field","isFormField"],"sourceRoot":""}