{"version":3,"sources":["webpack:///./node_modules/ant-design-vue/es/vc-drawer/src/IDrawerPropTypes.js","webpack:///./node_modules/ant-design-vue/es/vc-drawer/src/utils.js","webpack:///./node_modules/ant-design-vue/es/vc-drawer/src/Drawer.js","webpack:///./node_modules/ant-design-vue/es/vc-drawer/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/placements.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/Dropdown.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-form/src/createFormField.js","webpack:///./node_modules/ant-design-vue/es/vc-input-number/src/InputHandler.js","webpack:///./node_modules/ant-design-vue/es/vc-input-number/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-form/src/utils.js","webpack:///./node_modules/ant-design-vue/es/vc-form/src/createFieldsStore.js","webpack:///./node_modules/ant-design-vue/es/vc-form/src/createBaseForm.js","webpack:///./node_modules/ant-design-vue/es/vc-form/src/createForm.js","webpack:///./node_modules/ant-design-vue/es/vc-form/src/createDOMForm.js","webpack:///./node_modules/ant-design-vue/es/vc-dialog/LazyRenderBox.js","webpack:///./node_modules/ant-design-vue/es/vc-dialog/IDialogPropTypes.js","webpack:///./node_modules/ant-design-vue/es/vc-dialog/Dialog.js","webpack:///./node_modules/ant-design-vue/es/vc-dialog/DialogWrap.js","webpack:///./node_modules/ant-design-vue/es/vc-dialog/index.js"],"names":["IProps","width","any","height","defaultOpen","bool","firstEnter","open","prefixCls","string","placement","level","oneOfType","array","levelMove","number","func","ease","duration","handler","showMask","maskStyle","object","className","wrapStyle","maskClosable","afterVisibleChange","keyboard","IDrawerProps","wrapperClassName","forceRender","getContainer","getOpenCount","switchScrollingEffect","transitionEndObject","transition","WebkitTransition","MozTransition","OTransition","transitionStr","Object","keys","filter","key","document","html","getElementsByTagName","style","transitionEnd","addEventListener","target","eventType","callback","options","attachEvent","removeEventListener","detachEvent","isNumeric","value","isNaN","parseFloat","isFinite","window","createElement","noop","currentDrawer","use","name","Drawer","mixins","BaseMixin","props","data","this","levelDom","contentDom","maskDom","handlerdom","mousePos","sFirstEnter","timeout","children","drawerId","Number","Date","now","Math","random","toString","replace","round","orignalOpen","preProps","$props","sOpen","mounted","_this","$nextTick","passiveSupported","defineProperty","get","passive","getOpen","getDefault","isOpenChange","domFocus","$forceUpdate","watch","_open","_x","apply","arguments","val","_this2","container","setState","getParentAndLevelDom","updated","_this3","beforeDestroy","setLevelDomTransform","body","overflow","clearTimeout","methods","dom","focus","onKeyDown","e","keyCode","KeyCode","ESC","stopPropagation","$emit","onMaskTouchEnd","onTouchEnd","onIconTouchEnd","close","onWrapperTransitionEnd","contentWrapper","propertyName","match","_open2","getCurrentDrawerSome","overflowX","left","parent","defaultGetContainer","some","getSelfContainer","_this4","querySelectorAll","HTMLElement","parentNode","Array","prototype","slice","call","forEach","child","nodeName","push","vars","isArray","dataToArray","item","openTransition","placementName","_this5","_$props","trnasitionEnd","levelValue","$levelMove","arg","cb","result","length","transformArguments","$value","placementPos","transform","msTransform","eventArray","domArray","right","scrollHeight","innerHeight","documentElement","clientHeight","innerWidth","offsetWidth","getScrollBarSize","widthTransition","trannsformTransition","position","setTimeout","i","removeMoveHandler","removeStartHandler","heightTransition","change","g","getChildToRender","_classnames","_this6","h","$createElement","_$props2","$slots","wrapperClassname","isHorizontal","contentValue","getBoundingClientRect","handlerChildren","handlerDefalut","handlerSlot","handlerSlotVnode","handleIconClick","click","on","directives","c","domContProps","transitionend","keydown","directivesMaskDom","directivesContentWrapper","directivesContentDom","attrs","tabIndex","getTouchParentScroll","root","currentTarget","differX","differY","isY","max","abs","isX","scrollY","scrollX","scrollWidth","clientWidth","t","scrollTop","l","scrollLeft","scrollTo","currentT","currentL","touches","startPos","x","clientX","y","clientY","changedTouches","preventDefault","appendChild","render","_this7","_$props3","portal","$forceRender","Portal","autoAdjustOverflow","adjustX","adjustY","targetOffset","topLeft","points","offset","topCenter","topRight","bottomLeft","bottomCenter","bottomRight","minOverlayWidthMatchTrigger","def","transitionName","overlayClassName","openClassName","animation","align","overlayStyle","overlay","trigger","alignPoint","showAction","hideAction","getPopupContainer","visible","defaultVisible","mouseEnterDelay","mouseLeaveDelay","sVisible","onClick","childOriginEvents","onVisibleChange","__emit","getMinOverlayWidthMatchTrigger","getOverlayElement","$scopedSlots","getMenuElement","extraOverlayProps","getPopupDomNode","type","getMenuElementOrLambda","$refs","getOpenClassName","overlayNode","rootNode","$el","minWidth","_component","alignInstance","forceAlign","renderChildren","otherProps","triggerHideAction","indexOf","triggerProps","popupClassName","popupStyle","builtinPlacements","action","popupPlacement","popupAlign","popupTransitionName","popupAnimation","popupVisible","afterPopupVisibleChange","popupVisibleChange","ref","slot","Field","fields","isFormField","obj","createFormField","field","InputHandler","disabled","touchableProps","activeClassName","MAX_SAFE_INTEGER","pow","isValidProps","isEqual","oldValue","newValue","inputNumberProps","defaultValue","focusOnUpDown","autoFocus","placeholder","readonly","min","step","upHandler","downHandler","useTouch","formatter","parser","precision","required","pattern","decimalSeparator","autoComplete","title","id","model","prop","event","input","prevProps","validValue","getValidValue","toNumber","inputValue","toPrecisionAsStep","sValue","focused","updatedFunc","$data","nextInputValue","pressingUpOrDown","inputting","rawInput","nextValue","stop","inputElem","inputRef","cursorStart","partRestoreByAfter","cursorAfter","currentValue","lastKeyCode","BACKSPACE","fixCaret","DELETE","pos","activeElement","UP","ratio","getRatio","up","DOWN","_ratio","down","ENTER","recordCursorPosition","_len","args","_key","concat","onKeyUp","_len2","_key2","onTrigger","composing","onChange","getValueFromEvent","onFocus","_len3","_key3","onBlur","getCurrentValidValue","setValue","$listeners","blur","originValue","getInputDisplayValue","_len4","_key4","isNotCompleteNumber","metaKey","ctrlKey","shiftKey","trim","v","_$data","_$data$sValue","_$data$inputValue","newValueInString","toFixed","changed","getPrecision","valueString","parseInt","getMaxPrecision","ratioPrecision","stepPrecision","currentValuePrecision","getPrecisionFactor","state","_ref","inputDisplayValue","inputDisplayValueFormat","formatWrapper","selectionStart","cursorEnd","selectionEnd","cursorBefore","substring","start","end","currentStart","currentEnd","setSelectionRange","restoreByAfter","str","fullStr","index","lastIndexOf","prevCursorPos","charAt","_","partStr","num","_focused","numberIsTooLarge","upStep","rat","precisionFactor","downStep","stepFn","recursive","outOfRange","autoStepTimer","handleInputClick","onCompositionstart","onCompositionend","_classNames","classes","upDisabledClass","downDisabledClass","editable","upEvents","downEvents","touchstart","touchend","mousedown","mouseup","mouseleave","isUpDisabled","isDownDisabled","_getListeners","_getListeners$mouseen","mouseenter","_getListeners$mousele","_getListeners$mouseov","mouseover","_getListeners$mouseou","mouseout","contentProps","upHandlerProps","unselectable","role","downHandlerProps","domProps","argumentContainer","Container","WrappedComponent","getDisplayName","identity","flattenArray","arr","treeTraverse","path","tree","isLeafNode","errorMessage","subTree","subTreeKey","flattenFields","maybeNestedFields","node","normalizeValidateRules","validate","rules","validateTrigger","validateRules","map","newItem","getValidateTriggers","reduce","pre","curr","checked","getParams","ns","opt","names","isEmptyObject","hasRules","partOf","a","b","internalFlattenFields","FieldsStore","fieldsMeta","validFieldsName","getAllFieldsName","nowFields","nowValues","f","getValueFromFields","fieldMeta","getFieldMeta","normalize","nowValue","getValidFieldsFullName","acc","meta","dirty","initialValue","hidden","maybePartialName","maybePartialNames","getValidFieldsName","fullName","partialName","prefix","startsWith","getValueProps","valuePropName","getField","fieldValue","getNotCollectedFields","member","getter","fullNames","isArrayValue","suffixNameStartIndex","every","n","setFieldsInitialValue","initialValues","flattenedInitialValues","flattenRegisteredFields","setFieldMeta","getAllValues","getFieldsValue","getNestedFields","getFieldValue","getNestedField","getFieldsError","getFieldError","errors","message","getErrorStrs","getFieldMember","isFieldValidating","isFieldsValidating","isFieldTouched","isFieldsTouched","createFieldsStore","DEFAULT_TRIGGER","option","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","nextProps","updateFields","deep","cleanUpUselessFields","onCollectCommon","originalProps","_fieldMeta$originalPr","valuesAll","valuesAllSet","getForm","touched","onCollect","name_","_onCollectCommon","setFieldsAsDirty","newField","setFields","onCollectValidate","_onCollectCommon2","validateFieldsInternal","firstFields","validateFirst","getCacheBind","fn","cache","oriFn","bind","getFieldDecorator","fieldOption","formItem","_getFieldProps","getFieldProps","restProps","fieldElem","originalEvents","newProps","getFieldValuePropValue","newEvents","triggerEvents","usersFieldOption","Error","_fieldOption$validate","inputProps","inputListeners","inputAttrs","validateTriggers","saveRef","getFieldInstance","getRules","actionRules","changedFields","_changedFields","getNestedAllFields","formContext","allUpdate","itemSelfUpdate","setFieldsValue","changedValues","values","newFields","allValues","component","preserve","clearField","recoverClearedField","removedList","resetFields","fieldNames","_ref$options","allRules","allFields","alreadyErrors","force","validating","validator","messages","errorsGroup","errorFieldName","fieldName","ruleFieldName","_ref2","restPath","test","expired","nowAllFields","fieldErrors","nowField","_ref3","validateFields","_this8","pending","Promise","resolve","reject","_getParams","oldCb","console","error","isSubmitting","submit","_this9","_getOptionProps","wrappedComponentProps","scopedSlots","slotsKey","mixin","computedStyle","el","getComputedStyle","currentStyle","word","letter","toUpperCase","validateFieldsAndScroll","validNames","firstNode","firstTop","instance","elm","top","toLowerCase","overflowY","ownerDocument","getScrollableContainer","onlyScrollIfNeeded","scroll","hiddenClassName","mask","afterClose","closable","destroyOnClose","mousePosition","shape","loose","footer","maskTransitionName","maskAnimation","bodyStyle","wrapClassName","zIndex","bodyProps","maskProps","wrapProps","dialogStyle","dialogClass","closeIcon","focusTriggerAfterClose","uuid","getScroll","w","ret","method","d","setTransformOrigin","cacheOverflow","destroyPopup","provide","dialogContext","updatedCallback","beforeMount","inTransition","titleId","wrap","display","timeoutId","getDialogWrap","openTime","tryFocus","dialogNode","dialog","elOffset","rect","doc","defaultView","parentWindow","lastOutSideFocusNode","contains","sentinelStart","onAnimateLeave","onDialogMouseDown","dialogMouseDown","onMaskMouseUp","onMaskClick","onKeydown","TAB","sentinelEnd","getDialogElement","tempFooter","dest","header","closer","sentinelStyle","cls","getTransitionName","dialogElement","LazyRenderBox","dialogTransitionProps","getTransitionProps","afterLeave","getZIndexStyle","getWrapStyle","getMaskStyle","getMaskElement","maskElement","maskTransition","getMaskTransitionName","maskTransitionProps","openCount","hasOwnProperty","DialogWrap","inheritAttrs","dialogProps","$attrs","Dialog","childProps"],"mappings":"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","file":"js/chunk-vendors~f99c446b.67d14c33.js","sourcesContent":["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 _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}","import PropTypes from '../../_util/vue-types';\nimport Touchable from '../../vc-m-feedback';\nimport { getListeners } from '../../_util/props-util';\n\nvar InputHandler = {\n name: 'InputHandler',\n props: {\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool\n },\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n disabled = _$props.disabled;\n\n var touchableProps = {\n props: {\n disabled: disabled,\n activeClassName: prefixCls + '-handler-active'\n },\n on: getListeners(this)\n };\n return h(\n Touchable,\n touchableProps,\n [h('span', [this.$slots['default']])]\n );\n }\n};\n\nexport default InputHandler;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\n// based on rc-input-number 4.5.5\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { initDefaultProps, hasProp, getOptionProps, getListeners } from '../../_util/props-util';\nimport classNames from 'classnames';\nimport KeyCode from '../../_util/KeyCode';\nimport InputHandler from './InputHandler';\n\nfunction noop() {}\n\nfunction preventDefault(e) {\n e.preventDefault();\n}\n\nfunction defaultParser(input) {\n return input.replace(/[^\\w\\.-]+/g, '');\n}\n\n/**\n * When click and hold on a button - the speed of auto changin the value.\n */\nvar SPEED = 200;\n\n/**\n * When click and hold on a button - the delay before auto changin the value.\n */\nvar DELAY = 600;\n\n/**\n * Max Safe Integer -- on IE this is not available, so manually set the number in that case.\n * The reason this is used, instead of Infinity is because numbers above the MSI are unstable\n */\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar isValidProps = function isValidProps(value) {\n return value !== undefined && value !== null;\n};\n\nvar isEqual = function isEqual(oldValue, newValue) {\n return newValue === oldValue || typeof newValue === 'number' && typeof oldValue === 'number' && isNaN(newValue) && isNaN(oldValue);\n};\n\nvar inputNumberProps = {\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n focusOnUpDown: PropTypes.bool,\n autoFocus: PropTypes.bool,\n // onChange: PropTypes.func,\n // onKeyDown: PropTypes.func,\n // onKeyUp: PropTypes.func,\n prefixCls: PropTypes.string,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n // onFocus: PropTypes.func,\n // onBlur: PropTypes.func,\n readonly: PropTypes.bool,\n max: PropTypes.number,\n min: PropTypes.number,\n step: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n upHandler: PropTypes.any,\n downHandler: PropTypes.any,\n useTouch: PropTypes.bool,\n formatter: PropTypes.func,\n parser: PropTypes.func,\n // onMouseEnter: PropTypes.func,\n // onMouseLeave: PropTypes.func,\n // onMouseOver: PropTypes.func,\n // onMouseOut: PropTypes.func,\n precision: PropTypes.number,\n required: PropTypes.bool,\n pattern: PropTypes.string,\n decimalSeparator: PropTypes.string,\n autoComplete: PropTypes.string,\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.string,\n id: PropTypes.string\n};\n\nexport default {\n name: 'VCInputNumber',\n mixins: [BaseMixin],\n model: {\n prop: 'value',\n event: 'change'\n },\n props: initDefaultProps(inputNumberProps, {\n focusOnUpDown: true,\n useTouch: false,\n prefixCls: 'rc-input-number',\n min: -MAX_SAFE_INTEGER,\n step: 1,\n parser: defaultParser,\n required: false,\n autoComplete: 'off'\n }),\n data: function data() {\n var props = getOptionProps(this);\n this.prevProps = _extends({}, props);\n var value = void 0;\n if ('value' in props) {\n value = this.value;\n } else {\n value = this.defaultValue;\n }\n var validValue = this.getValidValue(this.toNumber(value));\n return {\n inputValue: this.toPrecisionAsStep(validValue),\n sValue: validValue,\n focused: this.autoFocus\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.autoFocus && !_this.disabled) {\n _this.focus();\n }\n _this.updatedFunc();\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n var _$props = this.$props,\n value = _$props.value,\n max = _$props.max,\n min = _$props.min;\n var focused = this.$data.focused;\n var prevProps = this.prevProps;\n\n var props = getOptionProps(this);\n // Don't trigger in componentDidMount\n if (prevProps) {\n if (!isEqual(prevProps.value, value) || !isEqual(prevProps.max, max) || !isEqual(prevProps.min, min)) {\n var validValue = focused ? value : this.getValidValue(value);\n var nextInputValue = void 0;\n if (this.pressingUpOrDown) {\n nextInputValue = validValue;\n } else if (this.inputting) {\n nextInputValue = this.rawInput;\n } else {\n nextInputValue = this.toPrecisionAsStep(validValue);\n }\n this.setState({\n // eslint-disable-line\n sValue: validValue,\n inputValue: nextInputValue\n });\n }\n\n // Trigger onChange when max or min change\n // https://github.com/ant-design/ant-design/issues/11574\n var nextValue = 'value' in props ? value : this.sValue;\n // ref: null < 20 === true\n // https://github.com/ant-design/ant-design/issues/14277\n if ('max' in props && prevProps.max !== max && typeof nextValue === 'number' && nextValue > max) {\n this.$emit('change', max);\n }\n if ('min' in props && prevProps.min !== min && typeof nextValue === 'number' && nextValue < min) {\n this.$emit('change', min);\n }\n }\n this.prevProps = _extends({}, props);\n this.$nextTick(function () {\n _this2.updatedFunc();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.stop();\n },\n\n methods: {\n updatedFunc: function updatedFunc() {\n var inputElem = this.$refs.inputRef;\n // Restore cursor\n try {\n // Firefox set the input cursor after it get focused.\n // This caused that if an input didn't init with the selection,\n // set will cause cursor not correct when first focus.\n // Safari will focus input if set selection. We need skip this.\n if (this.cursorStart !== undefined && this.focused) {\n // In most cases, the string after cursor is stable.\n // We can move the cursor before it\n\n if (\n // If not match full str, try to match part of str\n !this.partRestoreByAfter(this.cursorAfter) && this.sValue !== this.value) {\n // If not match any of then, let's just keep the position\n // TODO: Logic should not reach here, need check if happens\n var pos = this.cursorStart + 1;\n\n // If not have last string, just position to the end\n if (!this.cursorAfter) {\n pos = inputElem.value.length;\n } else if (this.lastKeyCode === KeyCode.BACKSPACE) {\n pos = this.cursorStart - 1;\n } else if (this.lastKeyCode === KeyCode.DELETE) {\n pos = this.cursorStart;\n }\n this.fixCaret(pos, pos);\n } else if (this.currentValue === inputElem.value) {\n // Handle some special key code\n switch (this.lastKeyCode) {\n case KeyCode.BACKSPACE:\n this.fixCaret(this.cursorStart - 1, this.cursorStart - 1);\n break;\n case KeyCode.DELETE:\n this.fixCaret(this.cursorStart + 1, this.cursorStart + 1);\n break;\n default:\n // Do nothing\n }\n }\n }\n } catch (e) {}\n // Do nothing\n\n // Reset last key\n this.lastKeyCode = null;\n\n // pressingUpOrDown is true means that someone just click up or down button\n if (!this.pressingUpOrDown) {\n return;\n }\n if (this.focusOnUpDown && this.focused) {\n if (document.activeElement !== inputElem) {\n this.focus();\n }\n }\n\n this.pressingUpOrDown = false;\n },\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === KeyCode.UP) {\n var ratio = this.getRatio(e);\n this.up(e, ratio);\n this.stop();\n } else if (e.keyCode === KeyCode.DOWN) {\n var _ratio = this.getRatio(e);\n this.down(e, _ratio);\n this.stop();\n } else if (e.keyCode === KeyCode.ENTER) {\n this.$emit('pressEnter', e);\n }\n // Trigger user key down\n this.recordCursorPosition();\n this.lastKeyCode = e.keyCode;\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 this.$emit.apply(this, ['keydown', e].concat(_toConsumableArray(args)));\n },\n onKeyUp: function onKeyUp(e) {\n this.stop();\n\n this.recordCursorPosition();\n\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n this.$emit.apply(this, ['keyup', e].concat(_toConsumableArray(args)));\n },\n onTrigger: function onTrigger(e) {\n if (e.target.composing) return false;\n this.onChange(e);\n },\n onChange: function onChange(e) {\n if (this.focused) {\n this.inputting = true;\n }\n this.rawInput = this.parser(this.getValueFromEvent(e));\n this.setState({ inputValue: this.rawInput });\n this.$emit('change', this.toNumber(this.rawInput)); // valid number or invalid string\n },\n onFocus: function onFocus() {\n this.setState({\n focused: true\n });\n\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this.$emit.apply(this, ['focus'].concat(_toConsumableArray(args)));\n },\n onBlur: function onBlur() {\n this.inputting = false;\n this.setState({\n focused: false\n });\n var value = this.getCurrentValidValue(this.inputValue);\n var newValue = this.setValue(value);\n if (this.$listeners.blur) {\n var originValue = this.$refs.inputRef.value;\n var inputValue = this.getInputDisplayValue({ focused: false, sValue: newValue });\n this.$refs.inputRef.value = inputValue;\n\n for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this.$emit.apply(this, ['blur'].concat(_toConsumableArray(args)));\n this.$refs.inputRef.value = originValue;\n }\n },\n getCurrentValidValue: function getCurrentValidValue(value) {\n var val = value;\n if (val === '') {\n val = '';\n } else if (!this.isNotCompleteNumber(parseFloat(val, 10))) {\n val = this.getValidValue(val);\n } else {\n val = this.sValue;\n }\n return this.toNumber(val);\n },\n getRatio: function getRatio(e) {\n var ratio = 1;\n if (e.metaKey || e.ctrlKey) {\n ratio = 0.1;\n } else if (e.shiftKey) {\n ratio = 10;\n }\n return ratio;\n },\n getValueFromEvent: function getValueFromEvent(e) {\n // optimize for chinese input expierence\n // https://github.com/ant-design/ant-design/issues/8196\n var value = e.target.value.trim().replace(/。/g, '.');\n\n if (isValidProps(this.decimalSeparator)) {\n value = value.replace(this.decimalSeparator, '.');\n }\n\n return value;\n },\n getValidValue: function getValidValue(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.min;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.max;\n\n var val = parseFloat(value, 10);\n // https://github.com/ant-design/ant-design/issues/7358\n if (isNaN(val)) {\n return value;\n }\n if (val < min) {\n val = min;\n }\n if (val > max) {\n val = max;\n }\n return val;\n },\n setValue: function setValue(v, callback) {\n // trigger onChange\n var precision = this.$props.precision;\n\n var newValue = this.isNotCompleteNumber(parseFloat(v, 10)) ? null : parseFloat(v, 10);\n var _$data = this.$data,\n _$data$sValue = _$data.sValue,\n value = _$data$sValue === undefined ? null : _$data$sValue,\n _$data$inputValue = _$data.inputValue,\n inputValue = _$data$inputValue === undefined ? null : _$data$inputValue;\n // https://github.com/ant-design/ant-design/issues/7363\n // https://github.com/ant-design/ant-design/issues/16622\n\n var newValueInString = typeof newValue === 'number' ? newValue.toFixed(precision) : '' + newValue;\n var changed = newValue !== value || newValueInString !== '' + inputValue;\n if (!hasProp(this, 'value')) {\n this.setState({\n sValue: newValue,\n inputValue: this.toPrecisionAsStep(v)\n }, callback);\n } else {\n // always set input value same as value\n this.setState({\n inputValue: this.toPrecisionAsStep(this.sValue)\n }, callback);\n }\n if (changed) {\n this.$emit('change', newValue);\n }\n return newValue;\n },\n getPrecision: function getPrecision(value) {\n if (isValidProps(this.precision)) {\n return this.precision;\n }\n var valueString = value.toString();\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n var precision = 0;\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n },\n\n // step={1.0} value={1.51}\n // press +\n // then value should be 2.51, rather than 2.5\n // if this.$props.precision is undefined\n // https://github.com/react-component/input-number/issues/39\n getMaxPrecision: function getMaxPrecision(currentValue) {\n var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n if (isValidProps(this.precision)) {\n return this.precision;\n }\n var step = this.step;\n\n var ratioPrecision = this.getPrecision(ratio);\n var stepPrecision = this.getPrecision(step);\n var currentValuePrecision = this.getPrecision(currentValue);\n if (!currentValue) {\n return ratioPrecision + stepPrecision;\n }\n return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);\n },\n getPrecisionFactor: function getPrecisionFactor(currentValue) {\n var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var precision = this.getMaxPrecision(currentValue, ratio);\n return Math.pow(10, precision);\n },\n getInputDisplayValue: function getInputDisplayValue(state) {\n var _ref = state || this.$data,\n focused = _ref.focused,\n inputValue = _ref.inputValue,\n sValue = _ref.sValue;\n\n var inputDisplayValue = void 0;\n if (focused) {\n inputDisplayValue = inputValue;\n } else {\n inputDisplayValue = this.toPrecisionAsStep(sValue);\n }\n\n if (inputDisplayValue === undefined || inputDisplayValue === null) {\n inputDisplayValue = '';\n }\n\n var inputDisplayValueFormat = this.formatWrapper(inputDisplayValue);\n if (isValidProps(this.$props.decimalSeparator)) {\n inputDisplayValueFormat = inputDisplayValueFormat.toString().replace('.', this.$props.decimalSeparator);\n }\n\n return inputDisplayValueFormat;\n },\n recordCursorPosition: function recordCursorPosition() {\n // Record position\n try {\n var inputElem = this.$refs.inputRef;\n this.cursorStart = inputElem.selectionStart;\n this.cursorEnd = inputElem.selectionEnd;\n this.currentValue = inputElem.value;\n this.cursorBefore = inputElem.value.substring(0, this.cursorStart);\n this.cursorAfter = inputElem.value.substring(this.cursorEnd);\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n },\n fixCaret: function fixCaret(start, end) {\n if (start === undefined || end === undefined || !this.$refs.inputRef || !this.$refs.inputRef.value) {\n return;\n }\n\n try {\n var inputElem = this.$refs.inputRef;\n var currentStart = inputElem.selectionStart;\n var currentEnd = inputElem.selectionEnd;\n\n if (start !== currentStart || end !== currentEnd) {\n inputElem.setSelectionRange(start, end);\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n },\n restoreByAfter: function restoreByAfter(str) {\n if (str === undefined) return false;\n\n var fullStr = this.$refs.inputRef.value;\n var index = fullStr.lastIndexOf(str);\n\n if (index === -1) return false;\n\n var prevCursorPos = this.cursorBefore.length;\n if (this.lastKeyCode === KeyCode.DELETE && this.cursorBefore.charAt(prevCursorPos - 1) === str[0]) {\n this.fixCaret(prevCursorPos, prevCursorPos);\n return true;\n }\n if (index + str.length === fullStr.length) {\n this.fixCaret(index, index);\n\n return true;\n }\n return false;\n },\n partRestoreByAfter: function partRestoreByAfter(str) {\n var _this3 = this;\n\n if (str === undefined) return false;\n\n // For loop from full str to the str with last char to map. e.g. 123\n // -> 123\n // -> 23\n // -> 3\n return Array.prototype.some.call(str, function (_, start) {\n var partStr = str.substring(start);\n\n return _this3.restoreByAfter(partStr);\n });\n },\n focus: function focus() {\n this.$refs.inputRef.focus();\n this.recordCursorPosition();\n },\n blur: function blur() {\n this.$refs.inputRef.blur();\n },\n formatWrapper: function formatWrapper(num) {\n // http://2ality.com/2012/03/signedzero.html\n // https://github.com/ant-design/ant-design/issues/9439\n if (this.formatter) {\n return this.formatter(num);\n }\n return num;\n },\n toPrecisionAsStep: function toPrecisionAsStep(num) {\n if (this.isNotCompleteNumber(num) || num === '') {\n return num;\n }\n var precision = Math.abs(this.getMaxPrecision(num));\n if (!isNaN(precision)) {\n return Number(num).toFixed(precision);\n }\n return num.toString();\n },\n\n // '1.' '1x' 'xx' '' => are not complete numbers\n isNotCompleteNumber: function isNotCompleteNumber(num) {\n return isNaN(num) || num === '' || num === null || num && num.toString().indexOf('.') === num.toString().length - 1;\n },\n toNumber: function toNumber(num) {\n var _$props2 = this.$props,\n precision = _$props2.precision,\n autoFocus = _$props2.autoFocus;\n var _focused = this.focused,\n focused = _focused === undefined ? autoFocus : _focused;\n // num.length > 16 => This is to prevent input of large numbers\n\n var numberIsTooLarge = num && num.length > 16 && focused;\n if (this.isNotCompleteNumber(num) || numberIsTooLarge) {\n return num;\n }\n if (isValidProps(precision)) {\n return Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision);\n }\n return Number(num);\n },\n upStep: function upStep(val, rat) {\n var step = this.step;\n\n var precisionFactor = this.getPrecisionFactor(val, rat);\n var precision = Math.abs(this.getMaxPrecision(val, rat));\n var result = ((precisionFactor * val + precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n },\n downStep: function downStep(val, rat) {\n var step = this.step;\n\n var precisionFactor = this.getPrecisionFactor(val, rat);\n var precision = Math.abs(this.getMaxPrecision(val, rat));\n var result = ((precisionFactor * val - precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n },\n stepFn: function stepFn(type, e) {\n var _this4 = this;\n\n var ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var recursive = arguments[3];\n\n this.stop();\n if (e) {\n // e.persist()\n e.preventDefault();\n }\n if (this.disabled) {\n return;\n }\n var max = this.max,\n min = this.min;\n\n var value = this.getCurrentValidValue(this.inputValue) || 0;\n if (this.isNotCompleteNumber(value)) {\n return;\n }\n var val = this[type + 'Step'](value, ratio);\n var outOfRange = val > max || val < min;\n if (val > max) {\n val = max;\n } else if (val < min) {\n val = min;\n }\n this.setValue(val);\n this.setState({\n focused: true\n });\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(function () {\n _this4[type](e, ratio, true);\n }, recursive ? SPEED : DELAY);\n },\n stop: function stop() {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n },\n down: function down(e, ratio, recursive) {\n this.pressingUpOrDown = true;\n this.stepFn('down', e, ratio, recursive);\n },\n up: function up(e, ratio, recursive) {\n this.pressingUpOrDown = true;\n this.stepFn('up', e, ratio, recursive);\n },\n handleInputClick: function handleInputClick() {\n this.$emit('click');\n },\n onCompositionstart: function onCompositionstart(e) {\n e.target.composing = true;\n },\n onCompositionend: function onCompositionend(e) {\n this.onChange(e);\n e.target.composing = false;\n }\n },\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props3 = this.$props,\n prefixCls = _$props3.prefixCls,\n disabled = _$props3.disabled,\n readonly = _$props3.readonly,\n useTouch = _$props3.useTouch,\n autoComplete = _$props3.autoComplete,\n upHandler = _$props3.upHandler,\n downHandler = _$props3.downHandler;\n\n var classes = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-focused', this.focused), _classNames));\n var upDisabledClass = '';\n var downDisabledClass = '';\n var sValue = this.sValue;\n\n if (sValue || sValue === 0) {\n if (!isNaN(sValue)) {\n var val = Number(sValue);\n if (val >= this.max) {\n upDisabledClass = prefixCls + '-handler-up-disabled';\n }\n if (val <= this.min) {\n downDisabledClass = prefixCls + '-handler-down-disabled';\n }\n } else {\n upDisabledClass = prefixCls + '-handler-up-disabled';\n downDisabledClass = prefixCls + '-handler-down-disabled';\n }\n }\n\n var editable = !this.readonly && !this.disabled;\n\n // focus state, show input value\n // unfocus state, show valid value\n var inputDisplayValue = this.getInputDisplayValue();\n\n var upEvents = void 0;\n var downEvents = void 0;\n if (useTouch) {\n upEvents = {\n touchstart: editable && !upDisabledClass ? this.up : noop,\n touchend: this.stop\n };\n downEvents = {\n touchstart: editable && !downDisabledClass ? this.down : noop,\n touchend: this.stop\n };\n } else {\n upEvents = {\n mousedown: editable && !upDisabledClass ? this.up : noop,\n mouseup: this.stop,\n mouseleave: this.stop\n };\n downEvents = {\n mousedown: editable && !downDisabledClass ? this.down : noop,\n mouseup: this.stop,\n mouseleave: this.stop\n };\n }\n var isUpDisabled = !!upDisabledClass || disabled || readonly;\n var isDownDisabled = !!downDisabledClass || disabled || readonly;\n\n var _getListeners = getListeners(this),\n _getListeners$mouseen = _getListeners.mouseenter,\n mouseenter = _getListeners$mouseen === undefined ? noop : _getListeners$mouseen,\n _getListeners$mousele = _getListeners.mouseleave,\n mouseleave = _getListeners$mousele === undefined ? noop : _getListeners$mousele,\n _getListeners$mouseov = _getListeners.mouseover,\n mouseover = _getListeners$mouseov === undefined ? noop : _getListeners$mouseov,\n _getListeners$mouseou = _getListeners.mouseout,\n mouseout = _getListeners$mouseou === undefined ? noop : _getListeners$mouseou;\n\n var contentProps = {\n on: { mouseenter: mouseenter, mouseleave: mouseleave, mouseover: mouseover, mouseout: mouseout },\n 'class': classes,\n attrs: { title: this.$props.title }\n };\n var upHandlerProps = {\n props: {\n disabled: isUpDisabled,\n prefixCls: prefixCls\n },\n attrs: {\n unselectable: 'unselectable',\n role: 'button',\n 'aria-label': 'Increase Value',\n 'aria-disabled': !!isUpDisabled\n },\n 'class': prefixCls + '-handler ' + prefixCls + '-handler-up ' + upDisabledClass,\n on: upEvents,\n ref: 'up'\n };\n var downHandlerProps = {\n props: {\n disabled: isDownDisabled,\n prefixCls: prefixCls\n },\n attrs: {\n unselectable: 'unselectable',\n role: 'button',\n 'aria-label': 'Decrease Value',\n 'aria-disabled': !!isDownDisabled\n },\n 'class': prefixCls + '-handler ' + prefixCls + '-handler-down ' + downDisabledClass,\n on: downEvents,\n ref: 'down'\n };\n // ref for test\n return h(\n 'div',\n contentProps,\n [h(\n 'div',\n { 'class': prefixCls + '-handler-wrap' },\n [h(\n InputHandler,\n upHandlerProps,\n [upHandler || h('span', {\n attrs: {\n unselectable: 'unselectable'\n },\n 'class': prefixCls + '-handler-up-inner',\n on: {\n 'click': preventDefault\n }\n })]\n ), h(\n InputHandler,\n downHandlerProps,\n [downHandler || h('span', {\n attrs: {\n unselectable: 'unselectable'\n },\n 'class': prefixCls + '-handler-down-inner',\n on: {\n 'click': preventDefault\n }\n })]\n )]\n ), h(\n 'div',\n { 'class': prefixCls + '-input-wrap' },\n [h('input', {\n attrs: {\n role: 'spinbutton',\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': sValue,\n required: this.required,\n type: this.type,\n placeholder: this.placeholder,\n\n tabIndex: this.tabIndex,\n autoComplete: autoComplete,\n\n readonly: this.readonly,\n disabled: this.disabled,\n max: this.max,\n min: this.min,\n step: this.step,\n name: this.name,\n title: this.title,\n id: this.id,\n\n pattern: this.pattern\n },\n on: {\n 'click': this.handleInputClick,\n 'focus': this.onFocus,\n 'blur': this.onBlur,\n 'keydown': editable ? this.onKeyDown : noop,\n 'keyup': editable ? this.onKeyUp : noop,\n 'input': this.onTrigger,\n 'compositionstart': this.onCompositionstart,\n 'compositionend': this.onCompositionend\n },\n\n 'class': prefixCls + '-input',\n ref: 'inputRef',\n domProps: {\n 'value': inputDisplayValue\n }\n })]\n )]\n );\n }\n};","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 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;"],"sourceRoot":""}