{"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","dataToArray","vars","Array","isArray","transitionEndObject","transition","WebkitTransition","MozTransition","OTransition","transitionStr","Object","keys","filter","key","document","html","getElementsByTagName","style","transitionEnd","addEventListener","target","eventType","callback","options","attachEvent","removeEventListener","detachEvent","transformArguments","arg","cb","result","length","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","undefined","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","prototype","slice","call","forEach","child","nodeName","push","item","openTransition","placementName","_this5","_$props","trnasitionEnd","levelValue","$levelMove","$value","placementPos","transform","msTransform","eventArray","domArray","right","scrollHeight","innerHeight","documentElement","clientHeight","innerWidth","offsetWidth","getScrollBarSize","widthTransition","trannsformTransition","position","setTimeout","i","removeMoveHandler","removeStartHandler","heightTransition","_getListeners","change","getChildToRender","_classnames","_this6","h","$createElement","_$props2","$slots","wrapperClassname","isHorizontal","contentValue","getBoundingClientRect","handlerChildren","handlerDefalut","handlerSlot","handlerSlotVnode","_getEvents","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","placements","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","overlayElement","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","defaultParser","input","SPEED","DELAY","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","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$mouseen","mouseenter","_getListeners$mousele","_getListeners$mouseov","mouseover","_getListeners$mouseou","mouseout","contentProps","upHandlerProps","unselectable","role","downHandlerProps","domProps","getDisplayName","WrappedComponent","argumentContainer","Container","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","getErrorStrs","errors","message","getParams","ns","opt","names","isEmptyObject","hasRules","startsWith","prefix","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","getValueProps","valuePropName","getField","fieldValue","fieldsName","getNotCollectedFields","member","getter","fullNames","isArrayValue","suffixNameStartIndex","every","n","setFieldsInitialValue","initialValues","flattenedInitialValues","flattenRegisteredFields","setFieldMeta","getAllValues","getFieldsValue","getNestedFields","getFieldValue","getNestedField","getFieldsError","getFieldError","getFieldMember","isFieldValidating","isFieldsValidating","isFieldTouched","isFieldsTouched","createFieldsStore","DEFAULT_TRIGGER","createBaseForm","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","isRegistered","allValues","component","preserve","clearField","recoverClearedField","fieldList","removedList","resetFields","fieldNames","_ref$options","allRules","allFields","alreadyErrors","force","validating","validator","messages","errorsGroup","errorFieldName","fieldName","ruleFieldName","_ref2","restPath","test","fieldErrors","expired","nowAllFields","nowField","_ref3","validateFields","_this8","pending","Promise","resolve","reject","_getParams","_getParams2","oldCb","console","error","isSubmitting","submit","_this9","_getOptionProps","wrappedComponentProps","scopedSlots","slotsKey","mixin","computedStyle","el","getComputedStyle","currentStyle","word","letter","toUpperCase","getScrollableContainer","toLowerCase","overflowY","ownerDocument","validateFieldsAndScroll","newCb","validNames","firstNode","firstTop","instance","elm","top","onlyScrollIfNeeded","scroll","createDOMForm","ILazyRenderBoxPropTypes","hiddenClassName","IDialogPropTypes","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","rect","doc","defaultView","parentWindow","cacheOverflow","destroyPopup","provide","dialogContext","updatedCallback","beforeMount","inTransition","titleId","wrap","display","timeoutId","getDialogWrap","openTime","tryFocus","dialogNode","dialog","elOffset","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.e107dec3.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":""}