{"version":3,"sources":["webpack:///./node_modules/ant-design-vue/es/vc-form/src/utils.js","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/createFieldsStore.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-form/src/createBaseForm.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":["i","argumentContainer","Container","WrappedComponent","name","getDisplayName","props","identity","obj","flattenArray","arr","Array","prototype","concat","apply","treeTraverse","path","arguments","length","tree","isLeafNode","errorMessage","callback","isArray","forEach","subTree","index","Object","keys","subTreeKey","flattenFields","maybeNestedFields","fields","node","normalizeValidateRules","validate","rules","validateTrigger","validateRules","map","item","newItem","trigger","push","getValidateTriggers","filter","reduce","pre","curr","getValueFromEvent","e","target","type","checked","value","getErrorStrs","errors","message","getParams","ns","opt","cb","names","options","isEmptyObject","hasRules","some","startsWith","str","prefix","lastIndexOf","IProps","width","any","height","defaultOpen","bool","firstEnter","open","prefixCls","string","placement","level","oneOfType","array","levelMove","number","func","ease","duration","handler","showMask","maskStyle","object","className","wrapStyle","maskClosable","afterVisibleChange","keyboard","IDrawerProps","wrapperClassName","forceRender","getContainer","getOpenCount","switchScrollingEffect","transitionEndObject","transition","WebkitTransition","MozTransition","OTransition","transitionStr","key","document","html","getElementsByTagName","style","transitionEnd","addEventListener","eventType","attachEvent","removeEventListener","detachEvent","isNumeric","isNaN","parseFloat","isFinite","window","createElement","noop","currentDrawer","use","Drawer","mixins","BaseMixin","data","this","levelDom","contentDom","maskDom","handlerdom","mousePos","sFirstEnter","timeout","children","drawerId","Number","Date","now","Math","random","toString","replace","round","orignalOpen","preProps","$props","sOpen","mounted","_this","$nextTick","passiveSupported","defineProperty","get","passive","getOpen","getDefault","isOpenChange","domFocus","$forceUpdate","watch","_open","_x","val","_this2","container","setState","getParentAndLevelDom","updated","_this3","beforeDestroy","setLevelDomTransform","body","overflow","clearTimeout","methods","dom","focus","onKeyDown","keyCode","KeyCode","ESC","stopPropagation","$emit","onMaskTouchEnd","onTouchEnd","onIconTouchEnd","close","onWrapperTransitionEnd","contentWrapper","propertyName","match","_open2","getCurrentDrawerSome","overflowX","left","parent","defaultGetContainer","getSelfContainer","_this4","querySelectorAll","HTMLElement","parentNode","slice","call","child","nodeName","vars","dataToArray","openTransition","placementName","_this5","_$props","trnasitionEnd","levelValue","$levelMove","arg","result","transformArguments","$value","placementPos","transform","msTransform","eventArray","domArray","right","scrollHeight","innerHeight","documentElement","clientHeight","innerWidth","offsetWidth","getScrollBarSize","widthTransition","trannsformTransition","position","setTimeout","removeMoveHandler","removeStartHandler","heightTransition","change","g","getChildToRender","_classnames","_this6","h","$createElement","_$props2","$slots","wrapperClassname","isHorizontal","contentValue","getBoundingClientRect","handlerChildren","handlerDefalut","handlerSlot","handlerSlotVnode","handleIconClick","click","on","directives","c","domContProps","transitionend","keydown","directivesMaskDom","directivesContentWrapper","directivesContentDom","attrs","tabIndex","getTouchParentScroll","root","currentTarget","differX","differY","isY","max","abs","isX","scrollY","scrollX","scrollWidth","clientWidth","t","scrollTop","l","scrollLeft","scrollTo","currentT","currentL","touches","startPos","x","clientX","y","clientY","changedTouches","preventDefault","appendChild","render","_this7","_$props3","portal","Portal","autoAdjustOverflow","adjustX","adjustY","targetOffset","topLeft","points","offset","topCenter","topRight","bottomLeft","bottomCenter","bottomRight","minOverlayWidthMatchTrigger","def","transitionName","overlayClassName","openClassName","animation","align","overlayStyle","overlay","alignPoint","showAction","hideAction","getPopupContainer","visible","defaultVisible","mouseEnterDelay","mouseLeaveDelay","sVisible","onClick","childOriginEvents","onVisibleChange","__emit","getMinOverlayWidthMatchTrigger","getOverlayElement","$scopedSlots","overlayElement","getMenuElement","extraOverlayProps","getPopupDomNode","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","isFormField","createFormField","field","InputHandler","disabled","touchableProps","activeClassName","MAX_SAFE_INTEGER","pow","isValidProps","isEqual","oldValue","newValue","inputNumberProps","defaultValue","focusOnUpDown","autoFocus","placeholder","readonly","min","step","upHandler","downHandler","useTouch","formatter","parser","precision","required","pattern","decimalSeparator","autoComplete","title","id","model","prop","event","input","prevProps","validValue","getValidValue","toNumber","inputValue","toPrecisionAsStep","sValue","focused","updatedFunc","$data","nextInputValue","pressingUpOrDown","inputting","rawInput","nextValue","stop","inputElem","inputRef","cursorStart","partRestoreByAfter","cursorAfter","currentValue","lastKeyCode","BACKSPACE","fixCaret","DELETE","pos","activeElement","UP","ratio","getRatio","up","DOWN","_ratio","down","ENTER","recordCursorPosition","_len","args","_key","onKeyUp","_len2","_key2","onTrigger","composing","onChange","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","fullStr","prevCursorPos","charAt","_","partStr","num","_focused","numberIsTooLarge","upStep","rat","precisionFactor","downStep","stepFn","recursive","outOfRange","autoStepTimer","DELAY","handleInputClick","onCompositionstart","onCompositionend","_classNames","classes","upDisabledClass","downDisabledClass","editable","upEvents","downEvents","touchstart","touchend","mousedown","mouseup","mouseleave","isUpDisabled","isDownDisabled","_getListeners","_getListeners$mouseen","mouseenter","_getListeners$mousele","_getListeners$mouseov","mouseover","_getListeners$mouseou","mouseout","downHandlerProps","unselectable","role","domProps","partOf","a","b","internalFlattenFields","FieldsStore","_initialiseProps","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","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","mixin","getForm","fieldsStore","getFieldInstance","setFieldsValue","setFields","getFieldDecorator","getFieldProps","isSubmitting","submit","validateFields","resetFields","computedStyle","el","getComputedStyle","currentStyle","word","letter","toUpperCase","getScrollableContainer","toLowerCase","overflowY","ownerDocument","validateFieldsAndScroll","_getParams","error","values","validNames","firstNode","firstTop","instance","elm","top","onlyScrollIfNeeded","scroll","newCb","option","createBaseForm","validateMessages","onFieldsChange","onValuesChange","_option$mapProps","mapProps","mapPropsToFields","fieldNameProp","fieldMetaProp","fieldDataProp","_option$formPropName","formPropName","formName","_option$props","templateContext","formProps","Form","wrappedComponentRef","instances","cachedBind","clearedFieldMetaCache","formItems","renderFields","domFields","_fieldsStore","submitting","nextProps","updateFields","deep","cleanUpUselessFields","onCollectCommon","originalProps","_fieldMeta$originalPr","valuesAll","valuesAllSet","touched","onCollect","name_","_onCollectCommon","setFieldsAsDirty","newField","onCollectValidate","_onCollectCommon2","validateFieldsInternal","firstFields","validateFirst","getCacheBind","fn","cache","oriFn","bind","fieldOption","formItem","_getFieldProps","restProps","fieldElem","originalEvents","newProps","getFieldValuePropValue","newEvents","triggerEvents","usersFieldOption","Error","_fieldOption$validate","inputProps","inputListeners","inputAttrs","validateTriggers","saveRef","getRules","actionRules","changedFields","_changedFields","getNestedAllFields","formContext","allUpdate","itemSelfUpdate","changedValues","newFields","allValues","component","preserve","clearField","recoverClearedField","removedList","fieldNames","_ref$options","allRules","allFields","alreadyErrors","force","validating","validator","messages","errorsGroup","errorFieldName","fieldName","ruleFieldName","_ref2","restPath","test","expired","nowAllFields","fieldErrors","nowField","_ref3","_this8","pending","Promise","resolve","reject","oldCb","console","_this9","_getOptionProps","wrappedComponentProps","scopedSlots","slotsKey","hiddenClassName","mask","afterClose","closable","destroyOnClose","mousePosition","shape","loose","footer","maskTransitionName","maskAnimation","bodyStyle","wrapClassName","zIndex","bodyProps","maskProps","wrapProps","dialogStyle","dialogClass","closeIcon","focusTriggerAfterClose","uuid","getScroll","w","ret","method","d","setTransformOrigin","cacheOverflow","destroyPopup","provide","dialogContext","updatedCallback","beforeMount","inTransition","titleId","wrap","display","timeoutId","getDialogWrap","openTime","tryFocus","dialogNode","dialog","elOffset","rect","doc","defaultView","parentWindow","lastOutSideFocusNode","contains","sentinelStart","onAnimateLeave","onDialogMouseDown","dialogMouseDown","onMaskMouseUp","onMaskClick","onKeydown","TAB","sentinelEnd","getDialogElement","tempFooter","dest","header","closer","sentinelStyle","cls","getTransitionName","dialogElement","LazyRenderBox","dialogTransitionProps","getTransitionProps","afterLeave","getZIndexStyle","getWrapStyle","getMaskStyle","getMaskElement","maskElement","maskTransition","getMaskTransitionName","maskTransitionProps","openCount","hasOwnProperty","DialogWrap","inheritAttrs","dialogProps","$attrs","Dialog","childProps"],"mappings":"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","file":"js/chunk-vendors~f99c446b.08963778.js","sourcesContent":["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 _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 _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 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 _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 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":""}